xref: /llvm-project/llvm/test/CodeGen/AArch64/kcfi-patchable-function-prefix.ll (revision bfb1559fbe2fb656f335a6b7a86e0d8e90fa72fb)
1; RUN: llc -mtriple=aarch64-- -verify-machineinstrs < %s | FileCheck %s
2
3; CHECK:          .p2align 2
4; CHECK-NOT:        nop
5; CHECK:          .word   12345678
6; CHECK-LABEL:    f1:
7define void @f1(ptr noundef %x) !kcfi_type !1 {
8; CHECK:            ldur    w16, [x0, #-4]
9  call void %x() [ "kcfi"(i32 12345678) ]
10  ret void
11}
12
13; CHECK:          .p2align 2
14; CHECK-NOT:       .word
15; CHECK-NOT:        nop
16; CHECK-LABEL:    f2:
17define void @f2(ptr noundef %x) {
18; CHECK:            ldur    w16, [x0, #-4]
19  call void %x() [ "kcfi"(i32 12345678) ]
20  ret void
21}
22
23; CHECK:          .p2align 2
24; CHECK:          .word   12345678
25; CHECK-COUNT-11:   nop
26; CHECK-LABEL:    f3:
27define void @f3(ptr noundef %x) #0 !kcfi_type !1 {
28; CHECK:            ldur    w16, [x0, #-48]
29  call void %x() [ "kcfi"(i32 12345678) ]
30  ret void
31}
32
33; CHECK:          .p2align 2
34; CHECK-NOT:      .word
35; CHECK-COUNT-11:   nop
36; CHECK-LABEL:    f4:
37define void @f4(ptr noundef %x) #0 {
38; CHECK:            ldur    w16, [x0, #-48]
39  call void %x() [ "kcfi"(i32 12345678) ]
40  ret void
41}
42
43attributes #0 = { "patchable-function-prefix"="11" }
44
45!llvm.module.flags = !{!0}
46!0 = !{i32 4, !"kcfi", i32 1}
47!1 = !{i32 12345678}
48