[NFC][RemoveDIs] Prefer iterators over inst-pointers in InstCombine
[llvm-project.git] / llvm / test / CodeGen / PowerPC / frame_index_scavenging.mir
blob1c96e11eda92532a3ef3192295ab8cbcef1d1635
1 # REQUIRES: asserts
2 # RUN: llc -mtriple=powerpc64le-unknown-linux-gnu -mcpu=pwr8 \
3 # RUN:     -start-before=prologepilog -debug-only=reginfo --filetype=null \
4 # RUN:     -verify-machineinstrs %s 2>&1 >/dev/null | FileCheck %s --check-prefix=P8
5 # RUN: llc -mtriple=powerpc64le-unknown-linux-gnu -mcpu=pwr9 \
6 # RUN:     -start-before=prologepilog -debug-only=reginfo --filetype=null \
7 # RUN:     -verify-machineinstrs %s 2>&1 >/dev/null | FileCheck %s --check-prefix=P9
8 # RUN: llc -mtriple=powerpc64le-unknown-linux-gnu -mcpu=pwr9 \
9 # RUN:     -start-before=prologepilog -debug-only=reginfo \
10 # RUN:     --filetype=null -ppc-enable-pe-vector-spills \
11 # RUN:     -verify-machineinstrs %s 2>&1 >/dev/null | FileCheck %s --check-prefix=P9-REGSPILL
12 # RUN: llc -mtriple=powerpc64le-unknown-linux-gnu -mcpu=pwr10 \
13 # RUN:     -start-before=prologepilog -debug-only=reginfo --filetype=null \
14 # RUN:     -verify-machineinstrs %s 2>&1 >/dev/null | FileCheck %s -check-prefix=P10
16 ---
17 name:            SpillGPR
18 alignment:       16
19 tracksRegLiveness: true
20 liveins:
21 body:             |
22   bb.0.entry:
23     $r14 = IMPLICIT_DEF
24     $r15 = IMPLICIT_DEF
25     $r16 = IMPLICIT_DEF
26     $r17 = IMPLICIT_DEF
27     $lr8 = IMPLICIT_DEF
28     BLR8 implicit undef $lr8, implicit undef $rm
29 ## TODO: Calling requiresFrameIndexScavenging from PEI::runOnMachineFunction
30 ##       always returns TRUE because MFI.isCalleeSavedInfoValid() always
31 ##       indicates that the callee saved info is invalid at that point. The
32 ##       info becomes valid for later calls. Can we do better?
33 # P8: requiresFrameIndexScavenging for SpillGPR.
34 # P8: TRUE - Invalid callee saved info.
35 # P8: requiresFrameIndexScavenging for SpillGPR.
36 # P8: FALSE - Scavenging is not required.
37 # P9: requiresFrameIndexScavenging for SpillGPR.
38 # P9: TRUE - Invalid callee saved info.
39 # P9: requiresFrameIndexScavenging for SpillGPR.
40 # P9: FALSE - Scavenging is not required.
41 # P9-REGSPILL: requiresFrameIndexScavenging for SpillGPR.
42 # P9-REGSPILL: TRUE - Invalid callee saved info.
43 # P9-REGSPILL: requiresFrameIndexScavenging for SpillGPR.
44 # P9-REGSPILL: FALSE - Scavenging is not required.
45 # P10: requiresFrameIndexScavenging for SpillGPR.
46 # P10: TRUE - Invalid callee saved info.
47 # P10: requiresFrameIndexScavenging for SpillGPR.
48 # P10: FALSE - Scavenging is not required.
49 ...
51 ---
52 name:            SpillFPR
53 alignment:       16
54 tracksRegLiveness: true
55 liveins:
56 body:             |
57   bb.0.entry:
58     $f14 = IMPLICIT_DEF
59     $f15 = IMPLICIT_DEF
60     $f16 = IMPLICIT_DEF
61     $f17 = IMPLICIT_DEF
62     $lr8 = IMPLICIT_DEF
63     BLR8 implicit undef $lr8, implicit undef $rm
65 # P8: requiresFrameIndexScavenging for SpillFPR.
66 # P8: TRUE - Invalid callee saved info.
67 # P8: requiresFrameIndexScavenging for SpillFPR.
68 # P8: FALSE - Scavenging is not required.
69 # P9: requiresFrameIndexScavenging for SpillFPR.
70 # P9: TRUE - Invalid callee saved info.
71 # P9: requiresFrameIndexScavenging for SpillFPR.
72 # P9: FALSE - Scavenging is not required.
73 # P9-REGSPILL: requiresFrameIndexScavenging for SpillFPR.
74 # P9-REGSPILL: TRUE - Invalid callee saved info.
75 # P9-REGSPILL: requiresFrameIndexScavenging for SpillFPR.
76 # P9-REGSPILL: FALSE - Scavenging is not required.
77 # P10: requiresFrameIndexScavenging for SpillFPR.
78 # P10: TRUE - Invalid callee saved info.
79 # P10: requiresFrameIndexScavenging for SpillFPR.
80 # P10: FALSE - Scavenging is not required.
81 ...
83 ---
84 name:            SpillVR
85 alignment:       16
86 tracksRegLiveness: true
87 liveins:
88 body:             |
89   bb.0.entry:
90     $v20 = IMPLICIT_DEF
91     $v21 = IMPLICIT_DEF
92     $v22 = IMPLICIT_DEF
93     $v23 = IMPLICIT_DEF
94     $lr8 = IMPLICIT_DEF
95     BLR8 implicit undef $lr8, implicit undef $rm
97 # P8: requiresFrameIndexScavenging for SpillVR.
98 # P8: TRUE - Invalid callee saved info.
99 # P8: requiresFrameIndexScavenging for SpillVR.
100 # P8: Memory Operand: STVX for register $v20.
101 # P8: TRUE - Memory operand is X-Form.
102 # P9: requiresFrameIndexScavenging for SpillVR.
103 # P9: TRUE - Invalid callee saved info.
104 # P9: requiresFrameIndexScavenging for SpillVR.
105 # P9: Memory Operand: STVX for register $v20.
106 # P9: TRUE - Memory operand is X-Form.
107 # P9-REGSPILL: requiresFrameIndexScavenging for SpillVR.
108 # P9-REGSPILL: TRUE - Invalid callee saved info.
109 # P9-REGSPILL: requiresFrameIndexScavenging for SpillVR.
110 # P9-REGSPILL: Memory Operand: STVX for register $v20.
111 # P9-REGSPILL: TRUE - Memory operand is X-Form.
112 # P10: requiresFrameIndexScavenging for SpillVR.
113 # P10: TRUE - Invalid callee saved info.
114 # P10: requiresFrameIndexScavenging for SpillVR.
115 # P10: Memory Operand: STVX for register $v20.
116 # P10: TRUE - Memory operand is X-Form.
120 name:            SpillMixed
121 alignment:       16
122 tracksRegLiveness: true
123 liveins:
124 body:             |
125   bb.0.entry:
126     $r14 = IMPLICIT_DEF
127     $r15 = IMPLICIT_DEF
128     $f16 = IMPLICIT_DEF
129     $f17 = IMPLICIT_DEF
130     $v20 = IMPLICIT_DEF
131     $v21 = IMPLICIT_DEF
132     $lr8 = IMPLICIT_DEF
133     BLR8 implicit undef $lr8, implicit undef $rm
135 # P8: requiresFrameIndexScavenging for SpillMixed.
136 # P8: TRUE - Invalid callee saved info.
137 # P9: requiresFrameIndexScavenging for SpillMixed.
138 # P9: TRUE - Invalid callee saved info.
139 # P9-REGSPILL: requiresFrameIndexScavenging for SpillMixed.
140 # P9-REGSPILL: TRUE - Invalid callee saved info.
141 # P10: requiresFrameIndexScavenging for SpillMixed.
142 # P10: TRUE - Invalid callee saved info.