xref: /llvm-project/llvm/test/CodeGen/RISCV/machineoutliner-x5.mir (revision 80df56e03b0455382cec51557bfc9f099d5c0a6f)
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