67 lines · plain
1; RUN: llc -mtriple=riscv32 -verify-machineinstrs -M no-aliases < %s \2; RUN: | FileCheck %s --check-prefixes=CHECK,RV323; RUN: llc -mtriple=riscv64 -verify-machineinstrs -M no-aliases < %s \4; RUN: | FileCheck %s --check-prefixes=CHECK,RV645 6; CHECK: .word 123456787define 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, 301412; RV32-NEXT: addi t2, t2, 33413; RV64-NEXT: addiw t2, t2, 33414; CHECK-NEXT: beq t1, t2, .Ltmp015; CHECK-NEXT: .Ltmp1:16; CHECK-NEXT: ebreak17; CHECK-NEXT: .section .kcfi_traps,"ao",@progbits,.text18; CHECK-NEXT: .Ltmp2:19; CHECK-NEXT: .word .Ltmp1-.Ltmp220; CHECK-NEXT: .text21; 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, 123426; CHECK-NEXT: beq t1, t2, .Ltmp327; CHECK-NEXT: .Ltmp4:28; CHECK-NEXT: ebreak29; CHECK-NEXT: .section .kcfi_traps,"ao",@progbits,.text30; CHECK-NEXT: .Ltmp5:31; CHECK-NEXT: .word .Ltmp4-.Ltmp532; CHECK-NEXT: .text33; CHECK-NEXT: .Ltmp3:34; CHECK-NEXT: jalr ra, 0(s0)35 call void %x() [ "kcfi"(i32 1234) ]36 ret void37}38 39; CHECK-NOT: .word:40define void @f2(ptr noundef %x) #0 {41; CHECK-LABEL: f2:42; CHECK: # %bb.0:43; CHECK-NEXT: addi zero, zero, 044; CHECK-NEXT: addi zero, zero, 045; CHECK-NEXT: lw t1, -4(a0)46; CHECK-NEXT: lui t2, 301447; RV32-NEXT: addi t2, t2, 33448; RV64-NEXT: addiw t2, t2, 33449; CHECK-NEXT: beq t1, t2, .Ltmp650; CHECK-NEXT: .Ltmp7:51; CHECK-NEXT: ebreak52; CHECK-NEXT: .section .kcfi_traps,"ao",@progbits,.text53; CHECK-NEXT: .Ltmp8:54; CHECK-NEXT: .word .Ltmp7-.Ltmp855; CHECK-NEXT: .text56; CHECK-NEXT: .Ltmp6:57; CHECK-NEXT: jalr zero, 0(a0)58 tail call void %x() [ "kcfi"(i32 12345678) ]59 ret void60}61 62attributes #0 = { "patchable-function-entry"="2" }63 64!llvm.module.flags = !{!0}65!0 = !{i32 4, !"kcfi", i32 1}66!1 = !{i32 12345678}67