1# Check that modifying X5 register is not a problem for machine outliner 2 3# RUN: llc -mtriple=riscv32 -x mir -run-pass=machine-outliner -simplify-mir -verify-machineinstrs < %s \ 4# RUN: | FileCheck -check-prefixes=CHECK,RV32I-MO %s 5# RUN: llc -mtriple=riscv64 -x mir -run-pass=machine-outliner -simplify-mir -verify-machineinstrs < %s \ 6# RUN: | FileCheck -check-prefixes=CHECK,RV64I-MO %s 7 8--- | 9 define i32 @outline_tail_1(i32 %a, i32 %b) { ret i32 0 } 10 11 define i32 @outline_tail_2(i32 %a, i32 %b) { ret i32 0 } 12... 13--- 14name: outline_tail_1 15tracksRegLiveness: true 16isOutlined: false 17body: | 18 bb.0: 19 liveins: $x10, $x11, $x5 20 ; RV32I-MO-LABEL: name: outline_tail_1 21 ; RV32I-MO: PseudoTAIL target-flags(riscv-call) @OUTLINED_FUNCTION_0, implicit $x2, implicit-def $x10, implicit-def $x11, implicit-def $x12, implicit $x2, implicit $x5, implicit $x10, implicit $x11 22 ; 23 ; RV64I-MO-LABEL: name: outline_tail_1 24 ; RV64I-MO: PseudoTAIL target-flags(riscv-call) @OUTLINED_FUNCTION_0, implicit $x2, implicit-def $x10, implicit-def $x11, implicit-def $x12, implicit $x2, implicit $x5, implicit $x10, implicit $x11 25 $x11 = ORI $x11, 1023 26 $x12 = ADDI $x10, 17 27 $x10 = ADD $x10, $x5 28 $x11 = AND $x12, $x11 29 $x10 = SUB $x10, $x11 30 PseudoRET implicit $x10 31... 32--- 33name: outline_tail_2 34tracksRegLiveness: true 35isOutlined: false 36body: | 37 bb.0: 38 liveins: $x10, $x11, $x5 39 ; RV32I-MO-LABEL: name: outline_tail_2 40 ; RV32I-MO: PseudoTAIL target-flags(riscv-call) @OUTLINED_FUNCTION_0, implicit $x2, implicit-def $x10, implicit-def $x11, implicit-def $x12, implicit $x2, implicit $x5, implicit $x10, implicit $x11 41 ; 42 ; RV64I-MO-LABEL: name: outline_tail_2 43 ; RV64I-MO: PseudoTAIL target-flags(riscv-call) @OUTLINED_FUNCTION_0, implicit $x2, implicit-def $x10, implicit-def $x11, implicit-def $x12, implicit $x2, implicit $x5, implicit $x10, implicit $x11 44 $x11 = ORI $x11, 1023 45 $x12 = ADDI $x10, 17 46 $x10 = ADD $x10, $x5 47 $x11 = AND $x12, $x11 48 $x10 = SUB $x10, $x11 49 PseudoRET implicit $x10 50... 51 52 53# CHECK-LABEL: name: OUTLINED_FUNCTION_0 54# CHECK: isOutlined: true 55