| ; 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 |
| } |