| ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py | |
| ; RUN: opt -passes="ipsccp<func-spec>" -force-specialization -S < %s | FileCheck %s | |
| define i32 @main() { | |
| ; CHECK-LABEL: @main( | |
| ; CHECK-NEXT: bb: | |
| ; CHECK-NEXT: tail call void @wombat.specialized.1(ptr undef, i64 undef, i64 undef, ptr @quux) | |
| ; CHECK-NEXT: tail call void @wombat.specialized.2(ptr undef, i64 undef, i64 undef, ptr @eggs) | |
| ; CHECK-NEXT: ret i32 undef | |
| ; | |
| bb: | |
| tail call void @wombat(ptr undef, i64 undef, i64 undef, ptr @quux) | |
| tail call void @wombat(ptr undef, i64 undef, i64 undef, ptr @eggs) | |
| ret i32 undef | |
| } | |
| declare i32 @quux() | |
| declare i32 @eggs() | |
| define internal void @wombat(ptr %arg, i64 %arg1, i64 %arg2, ptr %arg3) { | |
| bb4: | |
| %tmp = tail call i32 %arg3(ptr undef, ptr undef) | |
| ret void | |
| } |