Follow up to d0858bffa11, add missing REQUIRES x86
[llvm-project.git] / llvm / test / Transforms / FunctionSpecialization / function-specialization-constant-expression4.ll
blob0410bfd9407b99dbf6cde918c831afd7dc515767
1 ; RUN: opt -passes="ipsccp<func-spec>" -force-specialization -S < %s | FileCheck %s
3 ; Check that we don't crash and specialise on a function call with byval attribute.
5 ; CHECK-NOT: wombat.specialized.{{[0-9]+}}
7 declare ptr @quux()
8 declare ptr @eggs()
10 define i32 @main() {
11 ; CHECK:       bb:
12 ; CHECK-NEXT:    tail call void @wombat(ptr undef, i64 undef, i64 undef, ptr byval(i32) @quux)
13 ; CHECK-NEXT:    tail call void @wombat(ptr undef, i64 undef, i64 undef, ptr byval(i32) @eggs)
14 ; CHECK-NEXT:    ret i32 undef
16 bb:
17   tail call void @wombat(ptr undef, i64 undef, i64 undef, ptr byval(i32) @quux)
18   tail call void @wombat(ptr undef, i64 undef, i64 undef, ptr byval(i32) @eggs)
19   ret i32 undef
22 define internal void @wombat(ptr %arg, i64 %arg1, i64 %arg2, ptr byval(i32) %func) {
23 ; CHECK:       bb2:
24 ; CHECK-NEXT:    [[TMP:%.*]] = tail call ptr %func(ptr undef, ptr undef)
25 ; CHECK-NEXT:    ret void
27 bb2:
28   %tmp = tail call ptr %func(ptr undef, ptr undef)
29   ret void