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