Revert " [LoongArch][ISel] Check the number of sign bits in `PatGprGpr_32` (#107432)"
[llvm-project.git] / llvm / test / CodeGen / AArch64 / kcfi.ll
blob7c824c19ee69adba9982e751cbcfc2f2333a70b5
1 ; RUN: llc -mtriple=aarch64-- -verify-machineinstrs < %s | FileCheck %s --check-prefix=ASM
2 ; RUN: llc -mtriple=aarch64-- -verify-machineinstrs -global-isel < %s | FileCheck %s --check-prefix=ASM
4 ; RUN: llc -mtriple=aarch64-- -verify-machineinstrs -stop-after=finalize-isel < %s | FileCheck %s --check-prefixes=MIR,ISEL
5 ; RUN: llc -mtriple=aarch64-- -verify-machineinstrs -stop-after=finalize-isel -global-isel < %s | FileCheck %s --check-prefixes=MIR,ISEL
7 ; RUN: llc -mtriple=aarch64-- -verify-machineinstrs -mattr=harden-sls-blr -stop-after=finalize-isel < %s | FileCheck %s --check-prefixes=MIR,ISEL-SLS
8 ; RUN: llc -mtriple=aarch64-- -verify-machineinstrs -mattr=harden-sls-blr -stop-after=finalize-isel -global-isel < %s | FileCheck %s --check-prefixes=MIR,ISEL-SLS
10 ; RUN: llc -mtriple=aarch64-- -verify-machineinstrs -stop-after=kcfi < %s | FileCheck %s --check-prefixes=MIR,KCFI
11 ; RUN: llc -mtriple=aarch64-- -verify-machineinstrs -mattr=harden-sls-blr -stop-after=kcfi < %s | FileCheck %s --check-prefixes=MIR,KCFI-SLS
13 ; ASM:       .word 12345678
14 define void @f1(ptr noundef %x) !kcfi_type !1 {
15 ; ASM-LABEL: f1:
16 ; ASM:       // %bb.0:
17 ; ASM:         ldur w16, [x0, #-4]
18 ; ASM-NEXT:    movk w17, #24910
19 ; ASM-NEXT:    movk w17, #188, lsl #16
20 ; ASM-NEXT:    cmp w16, w17
21 ; ASM-NEXT:    b.eq .Ltmp0
22 ; ASM-NEXT:    brk #0x8220
23 ; ASM-NEXT:  .Ltmp0:
24 ; ASM-NEXT:    blr x0
26 ; MIR-LABEL: name: f1
27 ; MIR: body:
29 ; ISEL:     BLR %0, csr_aarch64_aapcs,{{.*}} cfi-type 12345678
30 ; ISEL-SLS: BLRNoIP %0, csr_aarch64_aapcs,{{.*}} cfi-type 12345678
32 ; KCFI:       BUNDLE{{.*}} {
33 ; KCFI-NEXT:    KCFI_CHECK $x0, 12345678, implicit-def $x9, implicit-def $x16, implicit-def $x17, implicit-def $nzcv
34 ; KCFI-NEXT:    BLR killed $x0, csr_aarch64_aapcs,{{.*}}
35 ; KCFI-NEXT:  }
37 ; KCFI-SLS:       BUNDLE{{.*}} {
38 ; KCFI-SLS-NEXT:    KCFI_CHECK $x0, 12345678, implicit-def $x9, implicit-def $x16, implicit-def $x17, implicit-def $nzcv
39 ; KCFI-SLS-NEXT:    BLRNoIP killed $x0, csr_aarch64_aapcs,{{.*}}
40 ; KCFI-SLS-NEXT:  }
42   call void %x() [ "kcfi"(i32 12345678) ]
43   ret void
46 ; ASM-NOT: .word:
47 define void @f2(ptr noundef %x) #0 {
48 ; ASM-LABEL: f2:
49 ; ASM:       // %bb.0:
50 ; ASM-NEXT:    nop
51 ; ASM-NEXT:    nop
52 ; ASM:         ldur w16, [x0, #-4]
53 ; ASM-NEXT:    movk w17, #24910
54 ; ASM-NEXT:    movk w17, #188, lsl #16
55 ; ASM-NEXT:    cmp w16, w17
56 ; ASM-NEXT:    b.eq .Ltmp1
57 ; ASM-NEXT:    brk #0x8220
58 ; ASM-NEXT:  .Ltmp1:
59 ; ASM-NEXT:    br x0
61 ; MIR-LABEL: name: f2
62 ; MIR: body:
64 ; ISEL:     TCRETURNri %0, 0, csr_aarch64_aapcs, implicit $sp, cfi-type 12345678
66 ; KCFI:       BUNDLE{{.*}} {
67 ; KCFI-NEXT:    KCFI_CHECK $x0, 12345678, implicit-def $x9, implicit-def $x16, implicit-def $x17, implicit-def $nzcv
68 ; KCFI-NEXT:    TCRETURNri killed $x0, 0, csr_aarch64_aapcs, implicit $sp
69 ; KCFI-NEXT:  }
71   tail call void %x() [ "kcfi"(i32 12345678) ]
72   ret void
75 attributes #0 = { "patchable-function-entry"="2" }
77 !llvm.module.flags = !{!0}
78 !0 = !{i32 4, !"kcfi", i32 1}
79 !1 = !{i32 12345678}