Re-land [openmp] Fix warnings when building on Windows with latest MSVC or Clang...
[llvm-project.git] / llvm / test / CodeGen / RISCV / kcfi.ll
blob52be56fcbf55feb44f8f0189c80a1cc788c320ff
1 ; RUN: llc -mtriple=riscv32 -verify-machineinstrs -riscv-no-aliases < %s \
2 ; RUN:      | FileCheck %s --check-prefixes=CHECK,RV32
3 ; RUN: llc -mtriple=riscv64 -verify-machineinstrs -riscv-no-aliases < %s \
4 ; RUN:      | FileCheck %s --check-prefixes=CHECK,RV64
6 ; CHECK:       .word 12345678
7 define void @f1(ptr noundef %x) !kcfi_type !1 {
8 ; CHECK-LABEL: f1:
9 ; CHECK:       # %bb.0:
10 ; CHECK:         lw t1, -4(a0)
11 ; CHECK-NEXT:    lui t2, 3014
12 ; RV32-NEXT:     addi t2, t2, 334
13 ; RV64-NEXT:     addiw t2, t2, 334
14 ; CHECK-NEXT:    beq t1, t2, .Ltmp0
15 ; CHECK-NEXT:  .Ltmp1:
16 ; CHECK-NEXT:    ebreak
17 ; CHECK-NEXT:    .section .kcfi_traps,"ao",@progbits,.text
18 ; CHECK-NEXT:  .Ltmp2:
19 ; CHECK-NEXT:    .word .Ltmp1-.Ltmp2
20 ; CHECK-NEXT:    .text
21 ; CHECK-NEXT:  .Ltmp0:
22 ; CHECK-NEXT:    jalr ra, 0(a0)
23   call void %x() [ "kcfi"(i32 12345678) ]
24 ; CHECK:         lw t1, -4(s0)
25 ; CHECK-NEXT:    addi t2, t2, 1234
26 ; CHECK-NEXT:    beq t1, t2, .Ltmp3
27 ; CHECK-NEXT:  .Ltmp4:
28 ; CHECK-NEXT:    ebreak
29 ; CHECK-NEXT:    .section .kcfi_traps,"ao",@progbits,.text
30 ; CHECK-NEXT:  .Ltmp5:
31 ; CHECK-NEXT:    .word .Ltmp4-.Ltmp5
32 ; CHECK-NEXT:    .text
33 ; CHECK-NEXT:  .Ltmp3:
34 ; CHECK-NEXT:    jalr ra, 0(s0)
35   call void %x() [ "kcfi"(i32 1234) ]
36   ret void
39 ; CHECK-NOT:   .word:
40 define void @f2(ptr noundef %x) #0 {
41 ; CHECK-LABEL: f2:
42 ; CHECK:       # %bb.0:
43 ; CHECK-NEXT:    addi zero, zero, 0
44 ; CHECK-NEXT:    addi zero, zero, 0
45 ; CHECK-NEXT:    lw t1, -4(a0)
46 ; CHECK-NEXT:    lui t2, 3014
47 ; RV32-NEXT:     addi t2, t2, 334
48 ; RV64-NEXT:     addiw t2, t2, 334
49 ; CHECK-NEXT:    beq t1, t2, .Ltmp6
50 ; CHECK-NEXT:  .Ltmp7:
51 ; CHECK-NEXT:    ebreak
52 ; CHECK-NEXT:    .section .kcfi_traps,"ao",@progbits,.text
53 ; CHECK-NEXT:  .Ltmp8:
54 ; CHECK-NEXT:    .word .Ltmp7-.Ltmp8
55 ; CHECK-NEXT:    .text
56 ; CHECK-NEXT:  .Ltmp6:
57 ; CHECK-NEXT:    jalr zero, 0(a0)
58   tail call void %x() [ "kcfi"(i32 12345678) ]
59   ret void
62 attributes #0 = { "patchable-function-entry"="2" }
64 !llvm.module.flags = !{!0}
65 !0 = !{i32 4, !"kcfi", i32 1}
66 !1 = !{i32 12345678}