[LLVM][IR] Use splat syntax when printing ConstantExpr based splats. (#116856)
[llvm-project.git] / llvm / test / CodeGen / RISCV / zcmp-cm-push-pop.mir
blob00cca9645ecb3cbd23d661cefb4671a24ba42f96
1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 4
2 # RUN: llc -mtriple=riscv32 -mattr=+zcmp -x mir -run-pass=prologepilog -verify-machineinstrs -o - %s \
3 # RUN: | FileCheck -check-prefixes=CHECK-ZCMP32 %s
4 # RUN: llc -mtriple=riscv32 -mattr=+save-restore -x mir -run-pass=prologepilog -verify-machineinstrs -o - %s \
5 # RUN: | FileCheck -check-prefixes=CHECK-LIBCALL32 %s
6 # RUN: llc -mtriple=riscv64 -mattr=+zcmp -x mir -run-pass=prologepilog -verify-machineinstrs -o - %s \
7 # RUN: | FileCheck -check-prefixes=CHECK-ZCMP64 %s
8 # RUN: llc -mtriple=riscv64 -mattr=+save-restore -x mir -run-pass=prologepilog -verify-machineinstrs -o - %s \
9 # RUN: | FileCheck -check-prefixes=CHECK-LIBCALL64 %s
10 # RUN: llc -mtriple=riscv32 -x mir -run-pass=prologepilog -verify-machineinstrs -o - %s \
11 # RUN: | FileCheck -check-prefixes=CHECK-NO-ZCMP32 %s
12 # RUN: llc -mtriple=riscv64 -x mir -run-pass=prologepilog -verify-machineinstrs -o - %s \
13 # RUN: | FileCheck -check-prefixes=CHECK-NO-ZCMP64 %s
14 ---
15 name: push_rvlist15
16 tracksRegLiveness: true
17 body:                   |
18   bb.0:
19     ; CHECK-ZCMP32-LABEL: name: push_rvlist15
20     ; CHECK-ZCMP32: liveins: $x1, $x8, $x9, $x18, $x19, $x20, $x21, $x22, $x23, $x24, $x25, $x26, $x27
21     ; CHECK-ZCMP32-NEXT: {{  $}}
22     ; CHECK-ZCMP32-NEXT: frame-setup CM_PUSH 15, 0, implicit-def $x2, implicit $x2, implicit $x1, implicit $x8, implicit $x9, implicit $x18, implicit $x19, implicit $x20, implicit $x21, implicit $x22, implicit $x23, implicit $x24, implicit $x25, implicit $x26, implicit $x27
23     ; CHECK-ZCMP32-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 64
24     ; CHECK-ZCMP32-NEXT: frame-setup CFI_INSTRUCTION offset $x1, -52
25     ; CHECK-ZCMP32-NEXT: frame-setup CFI_INSTRUCTION offset $x8, -48
26     ; CHECK-ZCMP32-NEXT: frame-setup CFI_INSTRUCTION offset $x9, -44
27     ; CHECK-ZCMP32-NEXT: frame-setup CFI_INSTRUCTION offset $x18, -40
28     ; CHECK-ZCMP32-NEXT: frame-setup CFI_INSTRUCTION offset $x19, -36
29     ; CHECK-ZCMP32-NEXT: frame-setup CFI_INSTRUCTION offset $x20, -32
30     ; CHECK-ZCMP32-NEXT: frame-setup CFI_INSTRUCTION offset $x21, -28
31     ; CHECK-ZCMP32-NEXT: frame-setup CFI_INSTRUCTION offset $x22, -24
32     ; CHECK-ZCMP32-NEXT: frame-setup CFI_INSTRUCTION offset $x23, -20
33     ; CHECK-ZCMP32-NEXT: frame-setup CFI_INSTRUCTION offset $x24, -16
34     ; CHECK-ZCMP32-NEXT: frame-setup CFI_INSTRUCTION offset $x25, -12
35     ; CHECK-ZCMP32-NEXT: frame-setup CFI_INSTRUCTION offset $x26, -8
36     ; CHECK-ZCMP32-NEXT: frame-setup CFI_INSTRUCTION offset $x27, -4
37     ; CHECK-ZCMP32-NEXT: $x1 = IMPLICIT_DEF
38     ; CHECK-ZCMP32-NEXT: $x8 = IMPLICIT_DEF
39     ; CHECK-ZCMP32-NEXT: $x9 = IMPLICIT_DEF
40     ; CHECK-ZCMP32-NEXT: $x18 = IMPLICIT_DEF
41     ; CHECK-ZCMP32-NEXT: $x19 = IMPLICIT_DEF
42     ; CHECK-ZCMP32-NEXT: $x20 = IMPLICIT_DEF
43     ; CHECK-ZCMP32-NEXT: $x21 = IMPLICIT_DEF
44     ; CHECK-ZCMP32-NEXT: $x22 = IMPLICIT_DEF
45     ; CHECK-ZCMP32-NEXT: $x23 = IMPLICIT_DEF
46     ; CHECK-ZCMP32-NEXT: $x24 = IMPLICIT_DEF
47     ; CHECK-ZCMP32-NEXT: $x25 = IMPLICIT_DEF
48     ; CHECK-ZCMP32-NEXT: $x26 = IMPLICIT_DEF
49     ; CHECK-ZCMP32-NEXT: $x27 = IMPLICIT_DEF
50     ; CHECK-ZCMP32-NEXT: frame-destroy CM_POP 15, 0, implicit-def $x2, implicit $x2, implicit-def $x1, implicit-def $x8, implicit-def $x9, implicit-def $x18, implicit-def $x19, implicit-def $x20, implicit-def $x21, implicit-def $x22, implicit-def $x23, implicit-def $x24, implicit-def $x25, implicit-def $x26, implicit-def $x27
51     ; CHECK-ZCMP32-NEXT: PseudoRET
52     ;
53     ; CHECK-LIBCALL32-LABEL: name: push_rvlist15
54     ; CHECK-LIBCALL32: liveins: $x1, $x8, $x9, $x18, $x19, $x20, $x21, $x22, $x23, $x24, $x25, $x26, $x27
55     ; CHECK-LIBCALL32-NEXT: {{  $}}
56     ; CHECK-LIBCALL32-NEXT: $x5 = frame-setup PseudoCALLReg target-flags(riscv-call) &__riscv_save_12
57     ; CHECK-LIBCALL32-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 64
58     ; CHECK-LIBCALL32-NEXT: frame-setup CFI_INSTRUCTION offset $x1, -4
59     ; CHECK-LIBCALL32-NEXT: frame-setup CFI_INSTRUCTION offset $x8, -8
60     ; CHECK-LIBCALL32-NEXT: frame-setup CFI_INSTRUCTION offset $x9, -12
61     ; CHECK-LIBCALL32-NEXT: frame-setup CFI_INSTRUCTION offset $x18, -16
62     ; CHECK-LIBCALL32-NEXT: frame-setup CFI_INSTRUCTION offset $x19, -20
63     ; CHECK-LIBCALL32-NEXT: frame-setup CFI_INSTRUCTION offset $x20, -24
64     ; CHECK-LIBCALL32-NEXT: frame-setup CFI_INSTRUCTION offset $x21, -28
65     ; CHECK-LIBCALL32-NEXT: frame-setup CFI_INSTRUCTION offset $x22, -32
66     ; CHECK-LIBCALL32-NEXT: frame-setup CFI_INSTRUCTION offset $x23, -36
67     ; CHECK-LIBCALL32-NEXT: frame-setup CFI_INSTRUCTION offset $x24, -40
68     ; CHECK-LIBCALL32-NEXT: frame-setup CFI_INSTRUCTION offset $x25, -44
69     ; CHECK-LIBCALL32-NEXT: frame-setup CFI_INSTRUCTION offset $x26, -48
70     ; CHECK-LIBCALL32-NEXT: frame-setup CFI_INSTRUCTION offset $x27, -52
71     ; CHECK-LIBCALL32-NEXT: $x1 = IMPLICIT_DEF
72     ; CHECK-LIBCALL32-NEXT: $x8 = IMPLICIT_DEF
73     ; CHECK-LIBCALL32-NEXT: $x9 = IMPLICIT_DEF
74     ; CHECK-LIBCALL32-NEXT: $x18 = IMPLICIT_DEF
75     ; CHECK-LIBCALL32-NEXT: $x19 = IMPLICIT_DEF
76     ; CHECK-LIBCALL32-NEXT: $x20 = IMPLICIT_DEF
77     ; CHECK-LIBCALL32-NEXT: $x21 = IMPLICIT_DEF
78     ; CHECK-LIBCALL32-NEXT: $x22 = IMPLICIT_DEF
79     ; CHECK-LIBCALL32-NEXT: $x23 = IMPLICIT_DEF
80     ; CHECK-LIBCALL32-NEXT: $x24 = IMPLICIT_DEF
81     ; CHECK-LIBCALL32-NEXT: $x25 = IMPLICIT_DEF
82     ; CHECK-LIBCALL32-NEXT: $x26 = IMPLICIT_DEF
83     ; CHECK-LIBCALL32-NEXT: $x27 = IMPLICIT_DEF
84     ; CHECK-LIBCALL32-NEXT: frame-destroy PseudoTAIL target-flags(riscv-call) &__riscv_restore_12, implicit $x2
85     ;
86     ; CHECK-ZCMP64-LABEL: name: push_rvlist15
87     ; CHECK-ZCMP64: liveins: $x1, $x8, $x9, $x18, $x19, $x20, $x21, $x22, $x23, $x24, $x25, $x26, $x27
88     ; CHECK-ZCMP64-NEXT: {{  $}}
89     ; CHECK-ZCMP64-NEXT: frame-setup CM_PUSH 15, 0, implicit-def $x2, implicit $x2, implicit $x1, implicit $x8, implicit $x9, implicit $x18, implicit $x19, implicit $x20, implicit $x21, implicit $x22, implicit $x23, implicit $x24, implicit $x25, implicit $x26, implicit $x27
90     ; CHECK-ZCMP64-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 112
91     ; CHECK-ZCMP64-NEXT: frame-setup CFI_INSTRUCTION offset $x1, -104
92     ; CHECK-ZCMP64-NEXT: frame-setup CFI_INSTRUCTION offset $x8, -96
93     ; CHECK-ZCMP64-NEXT: frame-setup CFI_INSTRUCTION offset $x9, -88
94     ; CHECK-ZCMP64-NEXT: frame-setup CFI_INSTRUCTION offset $x18, -80
95     ; CHECK-ZCMP64-NEXT: frame-setup CFI_INSTRUCTION offset $x19, -72
96     ; CHECK-ZCMP64-NEXT: frame-setup CFI_INSTRUCTION offset $x20, -64
97     ; CHECK-ZCMP64-NEXT: frame-setup CFI_INSTRUCTION offset $x21, -56
98     ; CHECK-ZCMP64-NEXT: frame-setup CFI_INSTRUCTION offset $x22, -48
99     ; CHECK-ZCMP64-NEXT: frame-setup CFI_INSTRUCTION offset $x23, -40
100     ; CHECK-ZCMP64-NEXT: frame-setup CFI_INSTRUCTION offset $x24, -32
101     ; CHECK-ZCMP64-NEXT: frame-setup CFI_INSTRUCTION offset $x25, -24
102     ; CHECK-ZCMP64-NEXT: frame-setup CFI_INSTRUCTION offset $x26, -16
103     ; CHECK-ZCMP64-NEXT: frame-setup CFI_INSTRUCTION offset $x27, -8
104     ; CHECK-ZCMP64-NEXT: $x1 = IMPLICIT_DEF
105     ; CHECK-ZCMP64-NEXT: $x8 = IMPLICIT_DEF
106     ; CHECK-ZCMP64-NEXT: $x9 = IMPLICIT_DEF
107     ; CHECK-ZCMP64-NEXT: $x18 = IMPLICIT_DEF
108     ; CHECK-ZCMP64-NEXT: $x19 = IMPLICIT_DEF
109     ; CHECK-ZCMP64-NEXT: $x20 = IMPLICIT_DEF
110     ; CHECK-ZCMP64-NEXT: $x21 = IMPLICIT_DEF
111     ; CHECK-ZCMP64-NEXT: $x22 = IMPLICIT_DEF
112     ; CHECK-ZCMP64-NEXT: $x23 = IMPLICIT_DEF
113     ; CHECK-ZCMP64-NEXT: $x24 = IMPLICIT_DEF
114     ; CHECK-ZCMP64-NEXT: $x25 = IMPLICIT_DEF
115     ; CHECK-ZCMP64-NEXT: $x26 = IMPLICIT_DEF
116     ; CHECK-ZCMP64-NEXT: $x27 = IMPLICIT_DEF
117     ; CHECK-ZCMP64-NEXT: frame-destroy CM_POP 15, 0, implicit-def $x2, implicit $x2, implicit-def $x1, implicit-def $x8, implicit-def $x9, implicit-def $x18, implicit-def $x19, implicit-def $x20, implicit-def $x21, implicit-def $x22, implicit-def $x23, implicit-def $x24, implicit-def $x25, implicit-def $x26, implicit-def $x27
118     ; CHECK-ZCMP64-NEXT: PseudoRET
119     ;
120     ; CHECK-LIBCALL64-LABEL: name: push_rvlist15
121     ; CHECK-LIBCALL64: liveins: $x1, $x8, $x9, $x18, $x19, $x20, $x21, $x22, $x23, $x24, $x25, $x26, $x27
122     ; CHECK-LIBCALL64-NEXT: {{  $}}
123     ; CHECK-LIBCALL64-NEXT: $x5 = frame-setup PseudoCALLReg target-flags(riscv-call) &__riscv_save_12
124     ; CHECK-LIBCALL64-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 112
125     ; CHECK-LIBCALL64-NEXT: frame-setup CFI_INSTRUCTION offset $x1, -8
126     ; CHECK-LIBCALL64-NEXT: frame-setup CFI_INSTRUCTION offset $x8, -16
127     ; CHECK-LIBCALL64-NEXT: frame-setup CFI_INSTRUCTION offset $x9, -24
128     ; CHECK-LIBCALL64-NEXT: frame-setup CFI_INSTRUCTION offset $x18, -32
129     ; CHECK-LIBCALL64-NEXT: frame-setup CFI_INSTRUCTION offset $x19, -40
130     ; CHECK-LIBCALL64-NEXT: frame-setup CFI_INSTRUCTION offset $x20, -48
131     ; CHECK-LIBCALL64-NEXT: frame-setup CFI_INSTRUCTION offset $x21, -56
132     ; CHECK-LIBCALL64-NEXT: frame-setup CFI_INSTRUCTION offset $x22, -64
133     ; CHECK-LIBCALL64-NEXT: frame-setup CFI_INSTRUCTION offset $x23, -72
134     ; CHECK-LIBCALL64-NEXT: frame-setup CFI_INSTRUCTION offset $x24, -80
135     ; CHECK-LIBCALL64-NEXT: frame-setup CFI_INSTRUCTION offset $x25, -88
136     ; CHECK-LIBCALL64-NEXT: frame-setup CFI_INSTRUCTION offset $x26, -96
137     ; CHECK-LIBCALL64-NEXT: frame-setup CFI_INSTRUCTION offset $x27, -104
138     ; CHECK-LIBCALL64-NEXT: $x1 = IMPLICIT_DEF
139     ; CHECK-LIBCALL64-NEXT: $x8 = IMPLICIT_DEF
140     ; CHECK-LIBCALL64-NEXT: $x9 = IMPLICIT_DEF
141     ; CHECK-LIBCALL64-NEXT: $x18 = IMPLICIT_DEF
142     ; CHECK-LIBCALL64-NEXT: $x19 = IMPLICIT_DEF
143     ; CHECK-LIBCALL64-NEXT: $x20 = IMPLICIT_DEF
144     ; CHECK-LIBCALL64-NEXT: $x21 = IMPLICIT_DEF
145     ; CHECK-LIBCALL64-NEXT: $x22 = IMPLICIT_DEF
146     ; CHECK-LIBCALL64-NEXT: $x23 = IMPLICIT_DEF
147     ; CHECK-LIBCALL64-NEXT: $x24 = IMPLICIT_DEF
148     ; CHECK-LIBCALL64-NEXT: $x25 = IMPLICIT_DEF
149     ; CHECK-LIBCALL64-NEXT: $x26 = IMPLICIT_DEF
150     ; CHECK-LIBCALL64-NEXT: $x27 = IMPLICIT_DEF
151     ; CHECK-LIBCALL64-NEXT: frame-destroy PseudoTAIL target-flags(riscv-call) &__riscv_restore_12, implicit $x2
152     ;
153     ; CHECK-NO-ZCMP32-LABEL: name: push_rvlist15
154     ; CHECK-NO-ZCMP32: liveins: $x1, $x8, $x9, $x18, $x19, $x20, $x21, $x22, $x23, $x24, $x25, $x26, $x27
155     ; CHECK-NO-ZCMP32-NEXT: {{  $}}
156     ; CHECK-NO-ZCMP32-NEXT: $x2 = frame-setup ADDI $x2, -64
157     ; CHECK-NO-ZCMP32-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 64
158     ; CHECK-NO-ZCMP32-NEXT: SW killed $x1, $x2, 60 :: (store (s32) into %stack.0)
159     ; CHECK-NO-ZCMP32-NEXT: SW killed $x8, $x2, 56 :: (store (s32) into %stack.1)
160     ; CHECK-NO-ZCMP32-NEXT: SW killed $x9, $x2, 52 :: (store (s32) into %stack.2)
161     ; CHECK-NO-ZCMP32-NEXT: SW killed $x18, $x2, 48 :: (store (s32) into %stack.3)
162     ; CHECK-NO-ZCMP32-NEXT: SW killed $x19, $x2, 44 :: (store (s32) into %stack.4)
163     ; CHECK-NO-ZCMP32-NEXT: SW killed $x20, $x2, 40 :: (store (s32) into %stack.5)
164     ; CHECK-NO-ZCMP32-NEXT: SW killed $x21, $x2, 36 :: (store (s32) into %stack.6)
165     ; CHECK-NO-ZCMP32-NEXT: SW killed $x22, $x2, 32 :: (store (s32) into %stack.7)
166     ; CHECK-NO-ZCMP32-NEXT: SW killed $x23, $x2, 28 :: (store (s32) into %stack.8)
167     ; CHECK-NO-ZCMP32-NEXT: SW killed $x24, $x2, 24 :: (store (s32) into %stack.9)
168     ; CHECK-NO-ZCMP32-NEXT: SW killed $x25, $x2, 20 :: (store (s32) into %stack.10)
169     ; CHECK-NO-ZCMP32-NEXT: SW killed $x26, $x2, 16 :: (store (s32) into %stack.11)
170     ; CHECK-NO-ZCMP32-NEXT: SW killed $x27, $x2, 12 :: (store (s32) into %stack.12)
171     ; CHECK-NO-ZCMP32-NEXT: frame-setup CFI_INSTRUCTION offset $x1, -4
172     ; CHECK-NO-ZCMP32-NEXT: frame-setup CFI_INSTRUCTION offset $x8, -8
173     ; CHECK-NO-ZCMP32-NEXT: frame-setup CFI_INSTRUCTION offset $x9, -12
174     ; CHECK-NO-ZCMP32-NEXT: frame-setup CFI_INSTRUCTION offset $x18, -16
175     ; CHECK-NO-ZCMP32-NEXT: frame-setup CFI_INSTRUCTION offset $x19, -20
176     ; CHECK-NO-ZCMP32-NEXT: frame-setup CFI_INSTRUCTION offset $x20, -24
177     ; CHECK-NO-ZCMP32-NEXT: frame-setup CFI_INSTRUCTION offset $x21, -28
178     ; CHECK-NO-ZCMP32-NEXT: frame-setup CFI_INSTRUCTION offset $x22, -32
179     ; CHECK-NO-ZCMP32-NEXT: frame-setup CFI_INSTRUCTION offset $x23, -36
180     ; CHECK-NO-ZCMP32-NEXT: frame-setup CFI_INSTRUCTION offset $x24, -40
181     ; CHECK-NO-ZCMP32-NEXT: frame-setup CFI_INSTRUCTION offset $x25, -44
182     ; CHECK-NO-ZCMP32-NEXT: frame-setup CFI_INSTRUCTION offset $x26, -48
183     ; CHECK-NO-ZCMP32-NEXT: frame-setup CFI_INSTRUCTION offset $x27, -52
184     ; CHECK-NO-ZCMP32-NEXT: $x1 = IMPLICIT_DEF
185     ; CHECK-NO-ZCMP32-NEXT: $x8 = IMPLICIT_DEF
186     ; CHECK-NO-ZCMP32-NEXT: $x9 = IMPLICIT_DEF
187     ; CHECK-NO-ZCMP32-NEXT: $x18 = IMPLICIT_DEF
188     ; CHECK-NO-ZCMP32-NEXT: $x19 = IMPLICIT_DEF
189     ; CHECK-NO-ZCMP32-NEXT: $x20 = IMPLICIT_DEF
190     ; CHECK-NO-ZCMP32-NEXT: $x21 = IMPLICIT_DEF
191     ; CHECK-NO-ZCMP32-NEXT: $x22 = IMPLICIT_DEF
192     ; CHECK-NO-ZCMP32-NEXT: $x23 = IMPLICIT_DEF
193     ; CHECK-NO-ZCMP32-NEXT: $x24 = IMPLICIT_DEF
194     ; CHECK-NO-ZCMP32-NEXT: $x25 = IMPLICIT_DEF
195     ; CHECK-NO-ZCMP32-NEXT: $x26 = IMPLICIT_DEF
196     ; CHECK-NO-ZCMP32-NEXT: $x27 = IMPLICIT_DEF
197     ; CHECK-NO-ZCMP32-NEXT: $x1 = LW $x2, 60 :: (load (s32) from %stack.0)
198     ; CHECK-NO-ZCMP32-NEXT: $x8 = LW $x2, 56 :: (load (s32) from %stack.1)
199     ; CHECK-NO-ZCMP32-NEXT: $x9 = LW $x2, 52 :: (load (s32) from %stack.2)
200     ; CHECK-NO-ZCMP32-NEXT: $x18 = LW $x2, 48 :: (load (s32) from %stack.3)
201     ; CHECK-NO-ZCMP32-NEXT: $x19 = LW $x2, 44 :: (load (s32) from %stack.4)
202     ; CHECK-NO-ZCMP32-NEXT: $x20 = LW $x2, 40 :: (load (s32) from %stack.5)
203     ; CHECK-NO-ZCMP32-NEXT: $x21 = LW $x2, 36 :: (load (s32) from %stack.6)
204     ; CHECK-NO-ZCMP32-NEXT: $x22 = LW $x2, 32 :: (load (s32) from %stack.7)
205     ; CHECK-NO-ZCMP32-NEXT: $x23 = LW $x2, 28 :: (load (s32) from %stack.8)
206     ; CHECK-NO-ZCMP32-NEXT: $x24 = LW $x2, 24 :: (load (s32) from %stack.9)
207     ; CHECK-NO-ZCMP32-NEXT: $x25 = LW $x2, 20 :: (load (s32) from %stack.10)
208     ; CHECK-NO-ZCMP32-NEXT: $x26 = LW $x2, 16 :: (load (s32) from %stack.11)
209     ; CHECK-NO-ZCMP32-NEXT: $x27 = LW $x2, 12 :: (load (s32) from %stack.12)
210     ; CHECK-NO-ZCMP32-NEXT: frame-destroy CFI_INSTRUCTION restore $x1
211     ; CHECK-NO-ZCMP32-NEXT: frame-destroy CFI_INSTRUCTION restore $x8
212     ; CHECK-NO-ZCMP32-NEXT: frame-destroy CFI_INSTRUCTION restore $x9
213     ; CHECK-NO-ZCMP32-NEXT: frame-destroy CFI_INSTRUCTION restore $x18
214     ; CHECK-NO-ZCMP32-NEXT: frame-destroy CFI_INSTRUCTION restore $x19
215     ; CHECK-NO-ZCMP32-NEXT: frame-destroy CFI_INSTRUCTION restore $x20
216     ; CHECK-NO-ZCMP32-NEXT: frame-destroy CFI_INSTRUCTION restore $x21
217     ; CHECK-NO-ZCMP32-NEXT: frame-destroy CFI_INSTRUCTION restore $x22
218     ; CHECK-NO-ZCMP32-NEXT: frame-destroy CFI_INSTRUCTION restore $x23
219     ; CHECK-NO-ZCMP32-NEXT: frame-destroy CFI_INSTRUCTION restore $x24
220     ; CHECK-NO-ZCMP32-NEXT: frame-destroy CFI_INSTRUCTION restore $x25
221     ; CHECK-NO-ZCMP32-NEXT: frame-destroy CFI_INSTRUCTION restore $x26
222     ; CHECK-NO-ZCMP32-NEXT: frame-destroy CFI_INSTRUCTION restore $x27
223     ; CHECK-NO-ZCMP32-NEXT: $x2 = frame-destroy ADDI $x2, 64
224     ; CHECK-NO-ZCMP32-NEXT: frame-destroy CFI_INSTRUCTION def_cfa_offset 0
225     ; CHECK-NO-ZCMP32-NEXT: PseudoRET
226     ;
227     ; CHECK-NO-ZCMP64-LABEL: name: push_rvlist15
228     ; CHECK-NO-ZCMP64: liveins: $x1, $x8, $x9, $x18, $x19, $x20, $x21, $x22, $x23, $x24, $x25, $x26, $x27
229     ; CHECK-NO-ZCMP64-NEXT: {{  $}}
230     ; CHECK-NO-ZCMP64-NEXT: $x2 = frame-setup ADDI $x2, -112
231     ; CHECK-NO-ZCMP64-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 112
232     ; CHECK-NO-ZCMP64-NEXT: SD killed $x1, $x2, 104 :: (store (s64) into %stack.0)
233     ; CHECK-NO-ZCMP64-NEXT: SD killed $x8, $x2, 96 :: (store (s64) into %stack.1)
234     ; CHECK-NO-ZCMP64-NEXT: SD killed $x9, $x2, 88 :: (store (s64) into %stack.2)
235     ; CHECK-NO-ZCMP64-NEXT: SD killed $x18, $x2, 80 :: (store (s64) into %stack.3)
236     ; CHECK-NO-ZCMP64-NEXT: SD killed $x19, $x2, 72 :: (store (s64) into %stack.4)
237     ; CHECK-NO-ZCMP64-NEXT: SD killed $x20, $x2, 64 :: (store (s64) into %stack.5)
238     ; CHECK-NO-ZCMP64-NEXT: SD killed $x21, $x2, 56 :: (store (s64) into %stack.6)
239     ; CHECK-NO-ZCMP64-NEXT: SD killed $x22, $x2, 48 :: (store (s64) into %stack.7)
240     ; CHECK-NO-ZCMP64-NEXT: SD killed $x23, $x2, 40 :: (store (s64) into %stack.8)
241     ; CHECK-NO-ZCMP64-NEXT: SD killed $x24, $x2, 32 :: (store (s64) into %stack.9)
242     ; CHECK-NO-ZCMP64-NEXT: SD killed $x25, $x2, 24 :: (store (s64) into %stack.10)
243     ; CHECK-NO-ZCMP64-NEXT: SD killed $x26, $x2, 16 :: (store (s64) into %stack.11)
244     ; CHECK-NO-ZCMP64-NEXT: SD killed $x27, $x2, 8 :: (store (s64) into %stack.12)
245     ; CHECK-NO-ZCMP64-NEXT: frame-setup CFI_INSTRUCTION offset $x1, -8
246     ; CHECK-NO-ZCMP64-NEXT: frame-setup CFI_INSTRUCTION offset $x8, -16
247     ; CHECK-NO-ZCMP64-NEXT: frame-setup CFI_INSTRUCTION offset $x9, -24
248     ; CHECK-NO-ZCMP64-NEXT: frame-setup CFI_INSTRUCTION offset $x18, -32
249     ; CHECK-NO-ZCMP64-NEXT: frame-setup CFI_INSTRUCTION offset $x19, -40
250     ; CHECK-NO-ZCMP64-NEXT: frame-setup CFI_INSTRUCTION offset $x20, -48
251     ; CHECK-NO-ZCMP64-NEXT: frame-setup CFI_INSTRUCTION offset $x21, -56
252     ; CHECK-NO-ZCMP64-NEXT: frame-setup CFI_INSTRUCTION offset $x22, -64
253     ; CHECK-NO-ZCMP64-NEXT: frame-setup CFI_INSTRUCTION offset $x23, -72
254     ; CHECK-NO-ZCMP64-NEXT: frame-setup CFI_INSTRUCTION offset $x24, -80
255     ; CHECK-NO-ZCMP64-NEXT: frame-setup CFI_INSTRUCTION offset $x25, -88
256     ; CHECK-NO-ZCMP64-NEXT: frame-setup CFI_INSTRUCTION offset $x26, -96
257     ; CHECK-NO-ZCMP64-NEXT: frame-setup CFI_INSTRUCTION offset $x27, -104
258     ; CHECK-NO-ZCMP64-NEXT: $x1 = IMPLICIT_DEF
259     ; CHECK-NO-ZCMP64-NEXT: $x8 = IMPLICIT_DEF
260     ; CHECK-NO-ZCMP64-NEXT: $x9 = IMPLICIT_DEF
261     ; CHECK-NO-ZCMP64-NEXT: $x18 = IMPLICIT_DEF
262     ; CHECK-NO-ZCMP64-NEXT: $x19 = IMPLICIT_DEF
263     ; CHECK-NO-ZCMP64-NEXT: $x20 = IMPLICIT_DEF
264     ; CHECK-NO-ZCMP64-NEXT: $x21 = IMPLICIT_DEF
265     ; CHECK-NO-ZCMP64-NEXT: $x22 = IMPLICIT_DEF
266     ; CHECK-NO-ZCMP64-NEXT: $x23 = IMPLICIT_DEF
267     ; CHECK-NO-ZCMP64-NEXT: $x24 = IMPLICIT_DEF
268     ; CHECK-NO-ZCMP64-NEXT: $x25 = IMPLICIT_DEF
269     ; CHECK-NO-ZCMP64-NEXT: $x26 = IMPLICIT_DEF
270     ; CHECK-NO-ZCMP64-NEXT: $x27 = IMPLICIT_DEF
271     ; CHECK-NO-ZCMP64-NEXT: $x1 = LD $x2, 104 :: (load (s64) from %stack.0)
272     ; CHECK-NO-ZCMP64-NEXT: $x8 = LD $x2, 96 :: (load (s64) from %stack.1)
273     ; CHECK-NO-ZCMP64-NEXT: $x9 = LD $x2, 88 :: (load (s64) from %stack.2)
274     ; CHECK-NO-ZCMP64-NEXT: $x18 = LD $x2, 80 :: (load (s64) from %stack.3)
275     ; CHECK-NO-ZCMP64-NEXT: $x19 = LD $x2, 72 :: (load (s64) from %stack.4)
276     ; CHECK-NO-ZCMP64-NEXT: $x20 = LD $x2, 64 :: (load (s64) from %stack.5)
277     ; CHECK-NO-ZCMP64-NEXT: $x21 = LD $x2, 56 :: (load (s64) from %stack.6)
278     ; CHECK-NO-ZCMP64-NEXT: $x22 = LD $x2, 48 :: (load (s64) from %stack.7)
279     ; CHECK-NO-ZCMP64-NEXT: $x23 = LD $x2, 40 :: (load (s64) from %stack.8)
280     ; CHECK-NO-ZCMP64-NEXT: $x24 = LD $x2, 32 :: (load (s64) from %stack.9)
281     ; CHECK-NO-ZCMP64-NEXT: $x25 = LD $x2, 24 :: (load (s64) from %stack.10)
282     ; CHECK-NO-ZCMP64-NEXT: $x26 = LD $x2, 16 :: (load (s64) from %stack.11)
283     ; CHECK-NO-ZCMP64-NEXT: $x27 = LD $x2, 8 :: (load (s64) from %stack.12)
284     ; CHECK-NO-ZCMP64-NEXT: frame-destroy CFI_INSTRUCTION restore $x1
285     ; CHECK-NO-ZCMP64-NEXT: frame-destroy CFI_INSTRUCTION restore $x8
286     ; CHECK-NO-ZCMP64-NEXT: frame-destroy CFI_INSTRUCTION restore $x9
287     ; CHECK-NO-ZCMP64-NEXT: frame-destroy CFI_INSTRUCTION restore $x18
288     ; CHECK-NO-ZCMP64-NEXT: frame-destroy CFI_INSTRUCTION restore $x19
289     ; CHECK-NO-ZCMP64-NEXT: frame-destroy CFI_INSTRUCTION restore $x20
290     ; CHECK-NO-ZCMP64-NEXT: frame-destroy CFI_INSTRUCTION restore $x21
291     ; CHECK-NO-ZCMP64-NEXT: frame-destroy CFI_INSTRUCTION restore $x22
292     ; CHECK-NO-ZCMP64-NEXT: frame-destroy CFI_INSTRUCTION restore $x23
293     ; CHECK-NO-ZCMP64-NEXT: frame-destroy CFI_INSTRUCTION restore $x24
294     ; CHECK-NO-ZCMP64-NEXT: frame-destroy CFI_INSTRUCTION restore $x25
295     ; CHECK-NO-ZCMP64-NEXT: frame-destroy CFI_INSTRUCTION restore $x26
296     ; CHECK-NO-ZCMP64-NEXT: frame-destroy CFI_INSTRUCTION restore $x27
297     ; CHECK-NO-ZCMP64-NEXT: $x2 = frame-destroy ADDI $x2, 112
298     ; CHECK-NO-ZCMP64-NEXT: frame-destroy CFI_INSTRUCTION def_cfa_offset 0
299     ; CHECK-NO-ZCMP64-NEXT: PseudoRET
300     $x1 = IMPLICIT_DEF
301     $x8 = IMPLICIT_DEF
302     $x9 = IMPLICIT_DEF
303     $x18 = IMPLICIT_DEF
304     $x19 = IMPLICIT_DEF
305     $x20 = IMPLICIT_DEF
306     $x21 = IMPLICIT_DEF
307     $x22 = IMPLICIT_DEF
308     $x23 = IMPLICIT_DEF
309     $x24 = IMPLICIT_DEF
310     $x25 = IMPLICIT_DEF
311     $x26 = IMPLICIT_DEF
312     $x27 = IMPLICIT_DEF
313     PseudoRET