1*cff5bef9SSami Tolvanen; RUN: opt < %s -passes=instcombine -S | FileCheck %s 2*cff5bef9SSami Tolvanen 3*cff5bef9SSami Tolvanendefine void @f1() #0 prefix i32 10 { 4*cff5bef9SSami Tolvanen ret void 5*cff5bef9SSami Tolvanen} 6*cff5bef9SSami Tolvanen 7*cff5bef9SSami Tolvanendeclare void @f2() #0 prefix i32 11 8*cff5bef9SSami Tolvanen 9*cff5bef9SSami Tolvanen; CHECK-LABEL: define void @g(ptr noundef %x) #0 10*cff5bef9SSami Tolvanendefine void @g(ptr noundef %x) #0 { 11*cff5bef9SSami Tolvanen ; CHECK: call void %x() [ "kcfi"(i32 10) ] 12*cff5bef9SSami Tolvanen call void %x() [ "kcfi"(i32 10) ] 13*cff5bef9SSami Tolvanen 14*cff5bef9SSami Tolvanen ; COM: Must drop the kcfi operand bundle from direct calls. 15*cff5bef9SSami Tolvanen ; CHECK: call void @f1() 16*cff5bef9SSami Tolvanen ; CHECK-NOT: [ "kcfi"(i32 10) ] 17*cff5bef9SSami Tolvanen call void @f1() [ "kcfi"(i32 10) ] 18*cff5bef9SSami Tolvanen 19*cff5bef9SSami Tolvanen ; CHECK: call void @f2() 20*cff5bef9SSami Tolvanen ; CHECK-NOT: [ "kcfi"(i32 10) ] 21*cff5bef9SSami Tolvanen call void @f2() [ "kcfi"(i32 10) ] 22*cff5bef9SSami Tolvanen ret void 23*cff5bef9SSami Tolvanen} 24*cff5bef9SSami Tolvanen 25*cff5bef9SSami Tolvanenattributes #0 = { "kcfi-target" } 26