• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
2; RUN: opt < %s -mtriple=wasm32-unknown-unknown -S -inline | FileCheck %s
3
4; Check that having functions can be inlined into callers only when
5; they have a subset of the caller's features.
6
7target datalayout = "e-m:e-p:32:32-i64:64-n32:64-S128"
8target triple = "wasm32-unknown-unknown"
9
10declare void @foo()
11
12define internal void @uses_simd() #0 {
13; CHECK-LABEL: @uses_simd(
14; CHECK-NEXT:    tail call void @foo()
15; CHECK-NEXT:    ret void
16;
17  tail call void @foo()
18  ret void
19}
20
21define void @many_features() #1 {
22; CHECK-LABEL: @many_features(
23; CHECK-NEXT:    tail call void @foo()
24; CHECK-NEXT:    ret void
25;
26  tail call fastcc void @uses_simd()
27  ret void
28}
29
30define void @few_features() #2 {
31; CHECK-LABEL: @few_features(
32; CHECK-NEXT:    tail call fastcc void @uses_simd()
33; CHECK-NEXT:    ret void
34;
35  tail call fastcc void @uses_simd()
36  ret void
37}
38
39attributes #0 = { "target-cpu"="mvp" "target-features"="+simd128"}
40attributes #1 = { "target-cpu"="bleeding-edge" "target-features"="+simd128" }
41attributes #2 = { "target-cpu"="mvp" "target-features"="+multivalue" }
42