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