1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -run-pass=arm-ldst-opt %s -o - | FileCheck %s
5 target datalayout = "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64"
6 target triple = "thumbv7m-none-unknown-eabi"
8 define i8* @STR_pre4(i8* %p, i32 %v) { unreachable }
9 define i8* @STR_pre8(i8* %p, i32 %v) { unreachable }
10 define i8* @STR_pre255(i8* %p, i32 %v) { unreachable }
11 define i8* @STR_pre256(i8* %p, i32 %v) { unreachable }
13 define i8* @STRD_pre4(i8* %p, i32 %v) { unreachable }
14 define i8* @STRD_pre8(i8* %p, i32 %v) { unreachable }
15 define i8* @STRD_pre255(i8* %p, i32 %v) { unreachable }
16 define i8* @STRD_pre256(i8* %p, i32 %v) { unreachable }
17 define i8* @STRD_pre1020(i8* %p, i32 %v) { unreachable }
18 define i8* @STRD_pre1024(i8* %p, i32 %v) { unreachable }
19 define i8* @STRD_prem4(i8* %p, i32 %v) { unreachable }
20 define i8* @STRD_prem8(i8* %p, i32 %v) { unreachable }
21 define i8* @STRD_prem255(i8* %p, i32 %v) { unreachable }
22 define i8* @STRD_prem256(i8* %p, i32 %v) { unreachable }
23 define i8* @STRD_prem1020(i8* %p, i32 %v) { unreachable }
24 define i8* @STRD_prem1024(i8* %p, i32 %v) { unreachable }
26 define i8* @STR_post4(i8* %p, i32 %v) { unreachable }
27 define i8* @STR_post8(i8* %p, i32 %v) { unreachable }
28 define i8* @STR_post255(i8* %p, i32 %v) { unreachable }
29 define i8* @STR_post256(i8* %p, i32 %v) { unreachable }
31 define i8* @STRD_post4(i8* %p, i32 %v) { unreachable }
32 define i8* @STRD_post8(i8* %p, i32 %v) { unreachable }
33 define i8* @STRD_post255(i8* %p, i32 %v) { unreachable }
34 define i8* @STRD_post256(i8* %p, i32 %v) { unreachable }
35 define i8* @STRD_post1020(i8* %p, i32 %v) { unreachable }
36 define i8* @STRD_post1024(i8* %p, i32 %v) { unreachable }
37 define i8* @STRD_postm4(i8* %p, i32 %v) { unreachable }
38 define i8* @STRD_postm8(i8* %p, i32 %v) { unreachable }
39 define i8* @STRD_postm255(i8* %p, i32 %v) { unreachable }
40 define i8* @STRD_postm256(i8* %p, i32 %v) { unreachable }
41 define i8* @STRD_postm1020(i8* %p, i32 %v) { unreachable }
42 define i8* @STRD_postm1024(i8* %p, i32 %v) { unreachable }
48 tracksRegLiveness: true
50 - { reg: '$r0', virtual-reg: '' }
51 - { reg: '$r1', virtual-reg: '' }
56 ; CHECK-LABEL: name: STR_pre4
57 ; CHECK: liveins: $r0, $r1
58 ; CHECK: early-clobber $r0 = t2STR_PRE killed $r1, $r0, 4, 14 /* CC::al */, $noreg :: (store (s32))
59 ; CHECK: tBX_RET 14 /* CC::al */, $noreg, implicit $r0
60 renamable $r0 = nuw t2ADDri killed renamable $r0, 4, 14 /* CC::al */, $noreg, $noreg
61 t2STRi12 killed renamable $r1, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s32))
62 tBX_RET 14 /* CC::al */, $noreg, implicit $r0
68 tracksRegLiveness: true
70 - { reg: '$r0', virtual-reg: '' }
71 - { reg: '$r1', virtual-reg: '' }
76 ; CHECK-LABEL: name: STR_pre8
77 ; CHECK: liveins: $r0, $r1
78 ; CHECK: renamable $r0 = nuw t2ADDri killed renamable $r0, 8, 14 /* CC::al */, $noreg, $noreg
79 ; CHECK: t2STRi12 killed renamable $r1, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s32))
80 ; CHECK: tBX_RET 14 /* CC::al */, $noreg, implicit $r0
81 renamable $r0 = nuw t2ADDri killed renamable $r0, 8, 14 /* CC::al */, $noreg, $noreg
82 t2STRi12 killed renamable $r1, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s32))
83 tBX_RET 14 /* CC::al */, $noreg, implicit $r0
89 tracksRegLiveness: true
91 - { reg: '$r0', virtual-reg: '' }
92 - { reg: '$r1', virtual-reg: '' }
97 ; CHECK-LABEL: name: STR_pre255
98 ; CHECK: liveins: $r0, $r1
99 ; CHECK: renamable $r0 = nuw t2ADDri killed renamable $r0, 255, 14 /* CC::al */, $noreg, $noreg
100 ; CHECK: t2STRi12 killed renamable $r1, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s32))
101 ; CHECK: tBX_RET 14 /* CC::al */, $noreg, implicit $r0
102 renamable $r0 = nuw t2ADDri killed renamable $r0, 255, 14 /* CC::al */, $noreg, $noreg
103 t2STRi12 killed renamable $r1, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s32))
104 tBX_RET 14 /* CC::al */, $noreg, implicit $r0
110 tracksRegLiveness: true
112 - { reg: '$r0', virtual-reg: '' }
113 - { reg: '$r1', virtual-reg: '' }
118 ; CHECK-LABEL: name: STR_pre256
119 ; CHECK: liveins: $r0, $r1
120 ; CHECK: renamable $r0 = nuw t2ADDri killed renamable $r0, 256, 14 /* CC::al */, $noreg, $noreg
121 ; CHECK: t2STRi12 killed renamable $r1, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s32))
122 ; CHECK: tBX_RET 14 /* CC::al */, $noreg, implicit $r0
123 renamable $r0 = nuw t2ADDri killed renamable $r0, 256, 14 /* CC::al */, $noreg, $noreg
124 t2STRi12 killed renamable $r1, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s32))
125 tBX_RET 14 /* CC::al */, $noreg, implicit $r0
131 tracksRegLiveness: true
133 - { reg: '$r0', virtual-reg: '' }
134 - { reg: '$r1', virtual-reg: '' }
135 - { reg: '$r2', virtual-reg: '' }
138 liveins: $r0, $r1, $r2
140 ; CHECK-LABEL: name: STRD_pre4
141 ; CHECK: liveins: $r0, $r1, $r2
142 ; CHECK: renamable $r0 = nuw t2ADDri killed renamable $r0, 4, 14 /* CC::al */, $noreg, $noreg
143 ; CHECK: t2STRDi8 killed $r1, killed $r2, $r0, 0, 14 /* CC::al */, $noreg :: (store (s64))
144 ; CHECK: tBX_RET 14 /* CC::al */, $noreg, implicit $r0
145 renamable $r0 = nuw t2ADDri killed renamable $r0, 4, 14 /* CC::al */, $noreg, $noreg
146 t2STRDi8 killed renamable $r1, killed renamable $r2, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s64))
147 tBX_RET 14 /* CC::al */, $noreg, implicit $r0
153 tracksRegLiveness: true
155 - { reg: '$r0', virtual-reg: '' }
156 - { reg: '$r1', virtual-reg: '' }
157 - { reg: '$r2', virtual-reg: '' }
160 liveins: $r0, $r1, $r2
162 ; CHECK-LABEL: name: STRD_pre8
163 ; CHECK: liveins: $r0, $r1, $r2
164 ; CHECK: $r0 = t2STRD_PRE killed renamable $r1, killed renamable $r2, killed $r0, 8, 14 /* CC::al */, $noreg :: (store (s64))
165 ; CHECK: tBX_RET 14 /* CC::al */, $noreg, implicit $r0
166 renamable $r0 = nuw t2ADDri killed renamable $r0, 8, 14 /* CC::al */, $noreg, $noreg
167 t2STRDi8 killed renamable $r1, killed renamable $r2, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s64))
168 tBX_RET 14 /* CC::al */, $noreg, implicit $r0
174 tracksRegLiveness: true
176 - { reg: '$r0', virtual-reg: '' }
177 - { reg: '$r1', virtual-reg: '' }
178 - { reg: '$r2', virtual-reg: '' }
181 liveins: $r0, $r1, $r2
183 ; CHECK-LABEL: name: STRD_pre255
184 ; CHECK: liveins: $r0, $r1, $r2
185 ; CHECK: renamable $r0 = nuw t2ADDri killed renamable $r0, 255, 14 /* CC::al */, $noreg, $noreg
186 ; CHECK: t2STRDi8 killed $r1, killed $r2, $r0, 0, 14 /* CC::al */, $noreg :: (store (s64))
187 ; CHECK: tBX_RET 14 /* CC::al */, $noreg, implicit $r0
188 renamable $r0 = nuw t2ADDri killed renamable $r0, 255, 14 /* CC::al */, $noreg, $noreg
189 t2STRDi8 killed renamable $r1, killed renamable $r2, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s64))
190 tBX_RET 14 /* CC::al */, $noreg, implicit $r0
196 tracksRegLiveness: true
198 - { reg: '$r0', virtual-reg: '' }
199 - { reg: '$r1', virtual-reg: '' }
200 - { reg: '$r2', virtual-reg: '' }
203 liveins: $r0, $r1, $r2
205 ; CHECK-LABEL: name: STRD_pre256
206 ; CHECK: liveins: $r0, $r1, $r2
207 ; CHECK: renamable $r0 = nuw t2ADDri killed renamable $r0, 256, 14 /* CC::al */, $noreg, $noreg
208 ; CHECK: t2STRDi8 killed $r1, killed $r2, $r0, 0, 14 /* CC::al */, $noreg :: (store (s64))
209 ; CHECK: tBX_RET 14 /* CC::al */, $noreg, implicit $r0
210 renamable $r0 = nuw t2ADDri killed renamable $r0, 256, 14 /* CC::al */, $noreg, $noreg
211 t2STRDi8 killed renamable $r1, killed renamable $r2, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s64))
212 tBX_RET 14 /* CC::al */, $noreg, implicit $r0
218 tracksRegLiveness: true
220 - { reg: '$r0', virtual-reg: '' }
221 - { reg: '$r1', virtual-reg: '' }
222 - { reg: '$r2', virtual-reg: '' }
225 liveins: $r0, $r1, $r2
227 ; CHECK-LABEL: name: STRD_pre1020
228 ; CHECK: liveins: $r0, $r1, $r2
229 ; CHECK: renamable $r0 = nuw t2ADDri killed renamable $r0, 1020, 14 /* CC::al */, $noreg, $noreg
230 ; CHECK: t2STRDi8 killed $r1, killed $r2, $r0, 0, 14 /* CC::al */, $noreg :: (store (s64))
231 ; CHECK: tBX_RET 14 /* CC::al */, $noreg, implicit $r0
232 renamable $r0 = nuw t2ADDri killed renamable $r0, 1020, 14 /* CC::al */, $noreg, $noreg
233 t2STRDi8 killed renamable $r1, killed renamable $r2, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s64))
234 tBX_RET 14 /* CC::al */, $noreg, implicit $r0
240 tracksRegLiveness: true
242 - { reg: '$r0', virtual-reg: '' }
243 - { reg: '$r1', virtual-reg: '' }
244 - { reg: '$r2', virtual-reg: '' }
247 liveins: $r0, $r1, $r2
249 ; CHECK-LABEL: name: STRD_pre1024
250 ; CHECK: liveins: $r0, $r1, $r2
251 ; CHECK: renamable $r0 = nuw t2ADDri killed renamable $r0, 1024, 14 /* CC::al */, $noreg, $noreg
252 ; CHECK: t2STRDi8 killed $r1, killed $r2, $r0, 0, 14 /* CC::al */, $noreg :: (store (s64))
253 ; CHECK: tBX_RET 14 /* CC::al */, $noreg, implicit $r0
254 renamable $r0 = nuw t2ADDri killed renamable $r0, 1024, 14 /* CC::al */, $noreg, $noreg
255 t2STRDi8 killed renamable $r1, killed renamable $r2, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s64))
256 tBX_RET 14 /* CC::al */, $noreg, implicit $r0
262 tracksRegLiveness: true
264 - { reg: '$r0', virtual-reg: '' }
265 - { reg: '$r1', virtual-reg: '' }
266 - { reg: '$r2', virtual-reg: '' }
269 liveins: $r0, $r1, $r2
271 ; CHECK-LABEL: name: STRD_prem4
272 ; CHECK: liveins: $r0, $r1, $r2
273 ; CHECK: renamable $r0 = nuw t2SUBri killed renamable $r0, 4, 14 /* CC::al */, $noreg, $noreg
274 ; CHECK: t2STRDi8 killed $r1, killed $r2, $r0, 0, 14 /* CC::al */, $noreg :: (store (s64))
275 ; CHECK: tBX_RET 14 /* CC::al */, $noreg, implicit $r0
276 renamable $r0 = nuw t2SUBri killed renamable $r0, 4, 14 /* CC::al */, $noreg, $noreg
277 t2STRDi8 killed renamable $r1, killed renamable $r2, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s64))
278 tBX_RET 14 /* CC::al */, $noreg, implicit $r0
284 tracksRegLiveness: true
286 - { reg: '$r0', virtual-reg: '' }
287 - { reg: '$r1', virtual-reg: '' }
288 - { reg: '$r2', virtual-reg: '' }
291 liveins: $r0, $r1, $r2
293 ; CHECK-LABEL: name: STRD_prem8
294 ; CHECK: liveins: $r0, $r1, $r2
295 ; CHECK: $r0 = t2STRD_PRE killed renamable $r1, killed renamable $r2, killed $r0, -8, 14 /* CC::al */, $noreg :: (store (s64))
296 ; CHECK: tBX_RET 14 /* CC::al */, $noreg, implicit $r0
297 renamable $r0 = nuw t2SUBri killed renamable $r0, 8, 14 /* CC::al */, $noreg, $noreg
298 t2STRDi8 killed renamable $r1, killed renamable $r2, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s64))
299 tBX_RET 14 /* CC::al */, $noreg, implicit $r0
305 tracksRegLiveness: true
307 - { reg: '$r0', virtual-reg: '' }
308 - { reg: '$r1', virtual-reg: '' }
309 - { reg: '$r2', virtual-reg: '' }
312 liveins: $r0, $r1, $r2
314 ; CHECK-LABEL: name: STRD_prem255
315 ; CHECK: liveins: $r0, $r1, $r2
316 ; CHECK: renamable $r0 = nuw t2SUBri killed renamable $r0, 255, 14 /* CC::al */, $noreg, $noreg
317 ; CHECK: t2STRDi8 killed $r1, killed $r2, $r0, 0, 14 /* CC::al */, $noreg :: (store (s64))
318 ; CHECK: tBX_RET 14 /* CC::al */, $noreg, implicit $r0
319 renamable $r0 = nuw t2SUBri killed renamable $r0, 255, 14 /* CC::al */, $noreg, $noreg
320 t2STRDi8 killed renamable $r1, killed renamable $r2, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s64))
321 tBX_RET 14 /* CC::al */, $noreg, implicit $r0
327 tracksRegLiveness: true
329 - { reg: '$r0', virtual-reg: '' }
330 - { reg: '$r1', virtual-reg: '' }
331 - { reg: '$r2', virtual-reg: '' }
334 liveins: $r0, $r1, $r2
336 ; CHECK-LABEL: name: STRD_prem256
337 ; CHECK: liveins: $r0, $r1, $r2
338 ; CHECK: renamable $r0 = nuw t2SUBri killed renamable $r0, 256, 14 /* CC::al */, $noreg, $noreg
339 ; CHECK: t2STRDi8 killed $r1, killed $r2, $r0, 0, 14 /* CC::al */, $noreg :: (store (s64))
340 ; CHECK: tBX_RET 14 /* CC::al */, $noreg, implicit $r0
341 renamable $r0 = nuw t2SUBri killed renamable $r0, 256, 14 /* CC::al */, $noreg, $noreg
342 t2STRDi8 killed renamable $r1, killed renamable $r2, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s64))
343 tBX_RET 14 /* CC::al */, $noreg, implicit $r0
349 tracksRegLiveness: true
351 - { reg: '$r0', virtual-reg: '' }
352 - { reg: '$r1', virtual-reg: '' }
353 - { reg: '$r2', virtual-reg: '' }
356 liveins: $r0, $r1, $r2
358 ; CHECK-LABEL: name: STRD_prem1020
359 ; CHECK: liveins: $r0, $r1, $r2
360 ; CHECK: renamable $r0 = nuw t2SUBri killed renamable $r0, 1020, 14 /* CC::al */, $noreg, $noreg
361 ; CHECK: t2STRDi8 killed $r1, killed $r2, $r0, 0, 14 /* CC::al */, $noreg :: (store (s64))
362 ; CHECK: tBX_RET 14 /* CC::al */, $noreg, implicit $r0
363 renamable $r0 = nuw t2SUBri killed renamable $r0, 1020, 14 /* CC::al */, $noreg, $noreg
364 t2STRDi8 killed renamable $r1, killed renamable $r2, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s64))
365 tBX_RET 14 /* CC::al */, $noreg, implicit $r0
371 tracksRegLiveness: true
373 - { reg: '$r0', virtual-reg: '' }
374 - { reg: '$r1', virtual-reg: '' }
375 - { reg: '$r2', virtual-reg: '' }
378 liveins: $r0, $r1, $r2
380 ; CHECK-LABEL: name: STRD_prem1024
381 ; CHECK: liveins: $r0, $r1, $r2
382 ; CHECK: renamable $r0 = nuw t2SUBri killed renamable $r0, 1024, 14 /* CC::al */, $noreg, $noreg
383 ; CHECK: t2STRDi8 killed $r1, killed $r2, $r0, 0, 14 /* CC::al */, $noreg :: (store (s64))
384 ; CHECK: tBX_RET 14 /* CC::al */, $noreg, implicit $r0
385 renamable $r0 = nuw t2SUBri killed renamable $r0, 1024, 14 /* CC::al */, $noreg, $noreg
386 t2STRDi8 killed renamable $r1, killed renamable $r2, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s64))
387 tBX_RET 14 /* CC::al */, $noreg, implicit $r0
394 tracksRegLiveness: true
396 - { reg: '$r0', virtual-reg: '' }
397 - { reg: '$r1', virtual-reg: '' }
402 ; CHECK-LABEL: name: STR_post4
403 ; CHECK: liveins: $r0, $r1
404 ; CHECK: early-clobber $r0 = t2STR_POST killed $r1, $r0, 4, 14 /* CC::al */, $noreg :: (store (s32))
405 ; CHECK: tBX_RET 14 /* CC::al */, $noreg, implicit $r0
406 t2STRi12 killed renamable $r1, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s32))
407 renamable $r0 = nuw t2ADDri killed renamable $r0, 4, 14 /* CC::al */, $noreg, $noreg
408 tBX_RET 14 /* CC::al */, $noreg, implicit $r0
414 tracksRegLiveness: true
416 - { reg: '$r0', virtual-reg: '' }
417 - { reg: '$r1', virtual-reg: '' }
422 ; CHECK-LABEL: name: STR_post8
423 ; CHECK: liveins: $r0, $r1
424 ; CHECK: early-clobber $r0 = t2STR_POST killed $r1, $r0, 8, 14 /* CC::al */, $noreg :: (store (s32))
425 ; CHECK: tBX_RET 14 /* CC::al */, $noreg, implicit $r0
426 t2STRi12 killed renamable $r1, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s32))
427 renamable $r0 = nuw t2ADDri killed renamable $r0, 8, 14 /* CC::al */, $noreg, $noreg
428 tBX_RET 14 /* CC::al */, $noreg, implicit $r0
434 tracksRegLiveness: true
436 - { reg: '$r0', virtual-reg: '' }
437 - { reg: '$r1', virtual-reg: '' }
442 ; CHECK-LABEL: name: STR_post255
443 ; CHECK: liveins: $r0, $r1
444 ; CHECK: t2STRi12 killed renamable $r1, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s32))
445 ; CHECK: renamable $r0 = nuw t2ADDri killed renamable $r0, 255, 14 /* CC::al */, $noreg, $noreg
446 ; CHECK: tBX_RET 14 /* CC::al */, $noreg, implicit $r0
447 t2STRi12 killed renamable $r1, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s32))
448 renamable $r0 = nuw t2ADDri killed renamable $r0, 255, 14 /* CC::al */, $noreg, $noreg
449 tBX_RET 14 /* CC::al */, $noreg, implicit $r0
455 tracksRegLiveness: true
457 - { reg: '$r0', virtual-reg: '' }
458 - { reg: '$r1', virtual-reg: '' }
463 ; CHECK-LABEL: name: STR_post256
464 ; CHECK: liveins: $r0, $r1
465 ; CHECK: t2STRi12 killed renamable $r1, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s32))
466 ; CHECK: renamable $r0 = nuw t2ADDri killed renamable $r0, 256, 14 /* CC::al */, $noreg, $noreg
467 ; CHECK: tBX_RET 14 /* CC::al */, $noreg, implicit $r0
468 t2STRi12 killed renamable $r1, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s32))
469 renamable $r0 = nuw t2ADDri killed renamable $r0, 256, 14 /* CC::al */, $noreg, $noreg
470 tBX_RET 14 /* CC::al */, $noreg, implicit $r0
476 tracksRegLiveness: true
478 - { reg: '$r0', virtual-reg: '' }
479 - { reg: '$r1', virtual-reg: '' }
480 - { reg: '$r2', virtual-reg: '' }
483 liveins: $r0, $r1, $r2
485 ; CHECK-LABEL: name: STRD_post4
486 ; CHECK: liveins: $r0, $r1, $r2
487 ; CHECK: $r0 = t2STRD_POST killed renamable $r1, killed renamable $r2, killed $r0, 4, 14 /* CC::al */, $noreg :: (store (s64))
488 ; CHECK: tBX_RET 14 /* CC::al */, $noreg, implicit $r0
489 t2STRDi8 killed renamable $r1, killed renamable $r2, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s64))
490 renamable $r0 = nuw t2ADDri killed renamable $r0, 4, 14 /* CC::al */, $noreg, $noreg
491 tBX_RET 14 /* CC::al */, $noreg, implicit $r0
497 tracksRegLiveness: true
499 - { reg: '$r0', virtual-reg: '' }
500 - { reg: '$r1', virtual-reg: '' }
501 - { reg: '$r2', virtual-reg: '' }
504 liveins: $r0, $r1, $r2
506 ; CHECK-LABEL: name: STRD_post8
507 ; CHECK: liveins: $r0, $r1, $r2
508 ; CHECK: $r0 = t2STRD_POST killed renamable $r1, killed renamable $r2, killed $r0, 8, 14 /* CC::al */, $noreg :: (store (s64))
509 ; CHECK: tBX_RET 14 /* CC::al */, $noreg, implicit $r0
510 t2STRDi8 killed renamable $r1, killed renamable $r2, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s64))
511 renamable $r0 = nuw t2ADDri killed renamable $r0, 8, 14 /* CC::al */, $noreg, $noreg
512 tBX_RET 14 /* CC::al */, $noreg, implicit $r0
518 tracksRegLiveness: true
520 - { reg: '$r0', virtual-reg: '' }
521 - { reg: '$r1', virtual-reg: '' }
522 - { reg: '$r2', virtual-reg: '' }
525 liveins: $r0, $r1, $r2
527 ; CHECK-LABEL: name: STRD_post255
528 ; CHECK: liveins: $r0, $r1, $r2
529 ; CHECK: t2STRDi8 killed $r1, killed $r2, $r0, 0, 14 /* CC::al */, $noreg :: (store (s64))
530 ; CHECK: renamable $r0 = nuw t2ADDri killed renamable $r0, 255, 14 /* CC::al */, $noreg, $noreg
531 ; CHECK: tBX_RET 14 /* CC::al */, $noreg, implicit $r0
532 t2STRDi8 killed renamable $r1, killed renamable $r2, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s64))
533 renamable $r0 = nuw t2ADDri killed renamable $r0, 255, 14 /* CC::al */, $noreg, $noreg
534 tBX_RET 14 /* CC::al */, $noreg, implicit $r0
540 tracksRegLiveness: true
542 - { reg: '$r0', virtual-reg: '' }
543 - { reg: '$r1', virtual-reg: '' }
544 - { reg: '$r2', virtual-reg: '' }
547 liveins: $r0, $r1, $r2
549 ; CHECK-LABEL: name: STRD_post256
550 ; CHECK: liveins: $r0, $r1, $r2
551 ; CHECK: $r0 = t2STRD_POST killed renamable $r1, killed renamable $r2, killed $r0, 256, 14 /* CC::al */, $noreg :: (store (s64))
552 ; CHECK: tBX_RET 14 /* CC::al */, $noreg, implicit $r0
553 t2STRDi8 killed renamable $r1, killed renamable $r2, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s64))
554 renamable $r0 = nuw t2ADDri killed renamable $r0, 256, 14 /* CC::al */, $noreg, $noreg
555 tBX_RET 14 /* CC::al */, $noreg, implicit $r0
561 tracksRegLiveness: true
563 - { reg: '$r0', virtual-reg: '' }
564 - { reg: '$r1', virtual-reg: '' }
565 - { reg: '$r2', virtual-reg: '' }
568 liveins: $r0, $r1, $r2
570 ; CHECK-LABEL: name: STRD_post1020
571 ; CHECK: liveins: $r0, $r1, $r2
572 ; CHECK: $r0 = t2STRD_POST killed renamable $r1, killed renamable $r2, killed $r0, 1020, 14 /* CC::al */, $noreg :: (store (s64))
573 ; CHECK: tBX_RET 14 /* CC::al */, $noreg, implicit $r0
574 t2STRDi8 killed renamable $r1, killed renamable $r2, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s64))
575 renamable $r0 = nuw t2ADDri killed renamable $r0, 1020, 14 /* CC::al */, $noreg, $noreg
576 tBX_RET 14 /* CC::al */, $noreg, implicit $r0
582 tracksRegLiveness: true
584 - { reg: '$r0', virtual-reg: '' }
585 - { reg: '$r1', virtual-reg: '' }
586 - { reg: '$r2', virtual-reg: '' }
589 liveins: $r0, $r1, $r2
591 ; CHECK-LABEL: name: STRD_post1024
592 ; CHECK: liveins: $r0, $r1, $r2
593 ; CHECK: t2STRDi8 killed $r1, killed $r2, $r0, 0, 14 /* CC::al */, $noreg :: (store (s64))
594 ; CHECK: renamable $r0 = nuw t2ADDri killed renamable $r0, 1024, 14 /* CC::al */, $noreg, $noreg
595 ; CHECK: tBX_RET 14 /* CC::al */, $noreg, implicit $r0
596 t2STRDi8 killed renamable $r1, killed renamable $r2, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s64))
597 renamable $r0 = nuw t2ADDri killed renamable $r0, 1024, 14 /* CC::al */, $noreg, $noreg
598 tBX_RET 14 /* CC::al */, $noreg, implicit $r0
604 tracksRegLiveness: true
606 - { reg: '$r0', virtual-reg: '' }
607 - { reg: '$r1', virtual-reg: '' }
608 - { reg: '$r2', virtual-reg: '' }
611 liveins: $r0, $r1, $r2
613 ; CHECK-LABEL: name: STRD_postm4
614 ; CHECK: liveins: $r0, $r1, $r2
615 ; CHECK: $r0 = t2STRD_POST killed renamable $r1, killed renamable $r2, killed $r0, -4, 14 /* CC::al */, $noreg :: (store (s64))
616 ; CHECK: tBX_RET 14 /* CC::al */, $noreg, implicit $r0
617 t2STRDi8 killed renamable $r1, killed renamable $r2, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s64))
618 renamable $r0 = nuw t2SUBri killed renamable $r0, 4, 14 /* CC::al */, $noreg, $noreg
619 tBX_RET 14 /* CC::al */, $noreg, implicit $r0
625 tracksRegLiveness: true
627 - { reg: '$r0', virtual-reg: '' }
628 - { reg: '$r1', virtual-reg: '' }
629 - { reg: '$r2', virtual-reg: '' }
632 liveins: $r0, $r1, $r2
634 ; CHECK-LABEL: name: STRD_postm8
635 ; CHECK: liveins: $r0, $r1, $r2
636 ; CHECK: $r0 = t2STRD_POST killed renamable $r1, killed renamable $r2, killed $r0, -8, 14 /* CC::al */, $noreg :: (store (s64))
637 ; CHECK: tBX_RET 14 /* CC::al */, $noreg, implicit $r0
638 t2STRDi8 killed renamable $r1, killed renamable $r2, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s64))
639 renamable $r0 = nuw t2SUBri killed renamable $r0, 8, 14 /* CC::al */, $noreg, $noreg
640 tBX_RET 14 /* CC::al */, $noreg, implicit $r0
646 tracksRegLiveness: true
648 - { reg: '$r0', virtual-reg: '' }
649 - { reg: '$r1', virtual-reg: '' }
650 - { reg: '$r2', virtual-reg: '' }
653 liveins: $r0, $r1, $r2
655 ; CHECK-LABEL: name: STRD_postm255
656 ; CHECK: liveins: $r0, $r1, $r2
657 ; CHECK: t2STRDi8 killed $r1, killed $r2, $r0, 0, 14 /* CC::al */, $noreg :: (store (s64))
658 ; CHECK: renamable $r0 = nuw t2SUBri killed renamable $r0, 255, 14 /* CC::al */, $noreg, $noreg
659 ; CHECK: tBX_RET 14 /* CC::al */, $noreg, implicit $r0
660 t2STRDi8 killed renamable $r1, killed renamable $r2, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s64))
661 renamable $r0 = nuw t2SUBri killed renamable $r0, 255, 14 /* CC::al */, $noreg, $noreg
662 tBX_RET 14 /* CC::al */, $noreg, implicit $r0
668 tracksRegLiveness: true
670 - { reg: '$r0', virtual-reg: '' }
671 - { reg: '$r1', virtual-reg: '' }
672 - { reg: '$r2', virtual-reg: '' }
675 liveins: $r0, $r1, $r2
677 ; CHECK-LABEL: name: STRD_postm256
678 ; CHECK: liveins: $r0, $r1, $r2
679 ; CHECK: $r0 = t2STRD_POST killed renamable $r1, killed renamable $r2, killed $r0, 256, 14 /* CC::al */, $noreg :: (store (s64))
680 ; CHECK: tBX_RET 14 /* CC::al */, $noreg, implicit $r0
681 t2STRDi8 killed renamable $r1, killed renamable $r2, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s64))
682 renamable $r0 = nuw t2ADDri killed renamable $r0, 256, 14 /* CC::al */, $noreg, $noreg
683 tBX_RET 14 /* CC::al */, $noreg, implicit $r0
689 tracksRegLiveness: true
691 - { reg: '$r0', virtual-reg: '' }
692 - { reg: '$r1', virtual-reg: '' }
693 - { reg: '$r2', virtual-reg: '' }
696 liveins: $r0, $r1, $r2
698 ; CHECK-LABEL: name: STRD_postm1020
699 ; CHECK: liveins: $r0, $r1, $r2
700 ; CHECK: $r0 = t2STRD_POST killed renamable $r1, killed renamable $r2, killed $r0, -1020, 14 /* CC::al */, $noreg :: (store (s64))
701 ; CHECK: tBX_RET 14 /* CC::al */, $noreg, implicit $r0
702 t2STRDi8 killed renamable $r1, killed renamable $r2, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s64))
703 renamable $r0 = nuw t2SUBri killed renamable $r0, 1020, 14 /* CC::al */, $noreg, $noreg
704 tBX_RET 14 /* CC::al */, $noreg, implicit $r0
710 tracksRegLiveness: true
712 - { reg: '$r0', virtual-reg: '' }
713 - { reg: '$r1', virtual-reg: '' }
714 - { reg: '$r2', virtual-reg: '' }
717 liveins: $r0, $r1, $r2
719 ; CHECK-LABEL: name: STRD_postm1024
720 ; CHECK: liveins: $r0, $r1, $r2
721 ; CHECK: t2STRDi8 killed $r1, killed $r2, $r0, 0, 14 /* CC::al */, $noreg :: (store (s64))
722 ; CHECK: renamable $r0 = nuw t2SUBri killed renamable $r0, 1024, 14 /* CC::al */, $noreg, $noreg
723 ; CHECK: tBX_RET 14 /* CC::al */, $noreg, implicit $r0
724 t2STRDi8 killed renamable $r1, killed renamable $r2, renamable $r0, 0, 14 /* CC::al */, $noreg :: (store (s64))
725 renamable $r0 = nuw t2SUBri killed renamable $r0, 1024, 14 /* CC::al */, $noreg, $noreg
726 tBX_RET 14 /* CC::al */, $noreg, implicit $r0