1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py 2; RUN: opt -function-specialization -force-function-specialization -S < %s | FileCheck %s 3 4define i32 @main() { 5; CHECK-LABEL: @main( 6; CHECK-NEXT: bb: 7; CHECK-NEXT: tail call void @wombat.1(i8* undef, i64 undef, i64 undef, i32 (i8*, i8*)* bitcast (i32 ()* @quux to i32 (i8*, i8*)*)) 8; CHECK-NEXT: tail call void @wombat.2(i8* undef, i64 undef, i64 undef, i32 (i8*, i8*)* bitcast (i32 ()* @eggs to i32 (i8*, i8*)*)) 9; CHECK-NEXT: ret i32 undef 10; 11bb: 12 tail call void @wombat(i8* undef, i64 undef, i64 undef, i32 (i8*, i8*)* bitcast (i32 ()* @quux to i32 (i8*, i8*)*)) 13 tail call void @wombat(i8* undef, i64 undef, i64 undef, i32 (i8*, i8*)* bitcast (i32 ()* @eggs to i32 (i8*, i8*)*)) 14 ret i32 undef 15} 16 17declare i32 @quux() 18declare i32 @eggs() 19 20define internal void @wombat(i8* %arg, i64 %arg1, i64 %arg2, i32 (i8*, i8*)* %arg3) { 21bb4: 22 %tmp = tail call i32 %arg3(i8* undef, i8* undef) 23 ret void 24} 25