38 lines · plain
1# RUN: not --crash llc %s -mtriple=riscv64 \2# RUN: -run-pass=cfi-instr-inserter \3# RUN: -riscv-enable-cfi-instr-inserter=true \4# RUN: -o /dev/null 2>&1 | FileCheck %s5 6# CHECK: LLVM ERROR: Different saved locations for the same CSR7 8# Technically, it is possible that a callee-saved register is saved in multiple different locations.9# CFIInstrInserter should handle this, but currently it does not.10---11name: multiple_locations12tracksRegLiveness: true13body: |14 bb.0.entry:15 liveins: $x10, $x9, $x216 BEQ $x10, $x0, %bb.317 PseudoBR %bb.218 19 bb.1:20 liveins: $x10, $x9, $x221 $x5 = COPY $x922 CFI_INSTRUCTION register $x9, $x523 $x9 = COPY $x524 CFI_INSTRUCTION register $x9, $x925 PseudoBR %bb.326 27 bb.2:28 liveins: $x10, $x9, $x229 SD $x9, $x2, 0 :: (store (s64))30 CFI_INSTRUCTION offset $x9, 031 $x9 = LD $x2, 0 :: (load (s64))32 CFI_INSTRUCTION register $x9, $x933 PseudoBR %bb.334 35 bb.3:36 PseudoRET37...38