xref: /llvm-project/llvm/test/CodeGen/RISCV/make-compressible-zbc.mir (revision 4eb978026152772bcdd139899e8d0192f7ddbc11)
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2# RUN: llc -o - %s -mtriple=riscv32 -mattr=+zcb -simplify-mir \
3# RUN:   -run-pass=riscv-make-compressible | FileCheck --check-prefixes=CHECK %s
4# RUN: llc -o - %s -mtriple=riscv64 -mattr=+zcb -simplify-mir \
5# RUN:   -run-pass=riscv-make-compressible | FileCheck --check-prefixes=CHECK %s
6
7--- |
8  define void @store_common_value_i8(ptr %a, ptr %b, ptr %c) #0 {
9  entry:
10    store i8 0, ptr %a, align 1
11    store i8 0, ptr %b, align 1
12    store i8 0, ptr %c, align 1
13    ret void
14  }
15
16  define void @store_common_value_i16(ptr %a, ptr %b, ptr %c) #0 {
17  entry:
18    store i16 0, ptr %a, align 2
19    store i16 0, ptr %b, align 2
20    store i16 0, ptr %c, align 2
21    ret void
22  }
23
24  define void @store_common_ptr_i8(ptr %p) #0 {
25  entry:
26    store volatile i8 1, ptr %p, align 1
27    store volatile i8 3, ptr %p, align 1
28    store volatile i8 5, ptr %p, align 1
29    ret void
30  }
31
32  define void @store_common_ptr_i16(ptr %p) #0 {
33  entry:
34    store volatile i16 1, ptr %p, align 2
35    store volatile i16 3, ptr %p, align 2
36    store volatile i16 5, ptr %p, align 2
37    ret void
38  }
39
40  define void @load_common_ptr_i8(ptr %p) #0 {
41  entry:
42    %0 = load volatile i8, ptr %p, align 1
43    %a = sext i8 %0 to i32
44    %1 = load volatile i8, ptr %p, align 1
45    %2 = load volatile i8, ptr %p, align 1
46    ret void
47  }
48
49  define void @load_common_ptr_s16(ptr %p) #0 {
50  entry:
51    %0 = load volatile i16, ptr %p, align 2
52    %1 = load volatile i16, ptr %p, align 2
53    %2 = load volatile i16, ptr %p, align 2
54    ret void
55  }
56
57  define void @load_common_ptr_u16(ptr %p) #0 {
58  entry:
59    %0 = load volatile i16, ptr %p, align 2
60    %1 = load volatile i16, ptr %p, align 2
61    %2 = load volatile i16, ptr %p, align 2
62    ret void
63  }
64
65  define void @store_large_offset_i8(ptr %p) #0 {
66  entry:
67    %0 = getelementptr inbounds i8, ptr %p, i8 100
68    store volatile i8 1, ptr %0, align 1
69    %1 = getelementptr inbounds i8, ptr %p, i8 101
70    store volatile i8 3, ptr %1, align 1
71    %2 = getelementptr inbounds i8, ptr %p, i8 102
72    store volatile i8 5, ptr %2, align 1
73    %3 = getelementptr inbounds i8, ptr %p, i8 103
74    store volatile i8 7, ptr %3, align 1
75    ret void
76  }
77
78  define void @store_large_offset_i16(ptr %p) #0 {
79  entry:
80    %0 = getelementptr inbounds i16, ptr %p, i16 100
81    store volatile i16 1, ptr %0, align 2
82    %1 = getelementptr inbounds i16, ptr %p, i16 100
83    store volatile i16 3, ptr %1, align 2
84    %2 = getelementptr inbounds i16, ptr %p, i16 101
85    store volatile i16 3, ptr %1, align 2
86    %3 = getelementptr inbounds i16, ptr %p, i16 101
87    store volatile i16 7, ptr %3, align 2
88    ret void
89  }
90
91  define void @load_large_offset_i8(ptr %p) #0 {
92  entry:
93    %0 = getelementptr inbounds i8, ptr %p, i8 100
94    %a = load volatile i8, ptr %0
95    %1 = getelementptr inbounds i8, ptr %p, i8 101
96    %b = load volatile i8, ptr %1
97    %2 = getelementptr inbounds i8, ptr %p, i8 102
98    %c = load volatile i8, ptr %2
99    %3 = getelementptr inbounds i8, ptr %p, i8 103
100    %d = load volatile i8, ptr %3
101    ret void
102  }
103
104  define void @load_large_offset_s16(ptr %p) #0 {
105  entry:
106    %0 = getelementptr inbounds i16, ptr %p, i16 100
107    %a = load volatile i16, ptr %0, align 2
108    %1 = getelementptr inbounds i16, ptr %p, i16 100
109    %b = load volatile i16, ptr %1, align 2
110    %2 = getelementptr inbounds i16, ptr %p, i16 101
111    %c = load volatile i16, ptr %2, align 2
112    %3 = getelementptr inbounds i16, ptr %p, i16 101
113    %d = load volatile i16, ptr %3, align 2
114    ret void
115  }
116
117  define void @load_large_offset_u16(ptr %p) #0 {
118  entry:
119    %0 = getelementptr inbounds i16, ptr %p, i16 100
120    %a = load volatile i16, ptr %0, align 2
121    %1 = getelementptr inbounds i16, ptr %p, i16 100
122    %b = load volatile i16, ptr %1, align 2
123    %2 = getelementptr inbounds i16, ptr %p, i16 101
124    %c = load volatile i16, ptr %2, align 2
125    %3 = getelementptr inbounds i16, ptr %p, i16 101
126    %d = load volatile i16, ptr %3, align 2
127    ret void
128  }
129
130  define void @store_large_offset_no_opt_i8(ptr %p) #0 {
131  entry:
132    %0 = getelementptr inbounds i8, ptr %p, i8 100
133    store volatile i8 1, ptr %0, align 1
134    %1 = getelementptr inbounds i8, ptr %p, i8 101
135    store volatile i8 3, ptr %1, align 1
136    %2 = getelementptr inbounds i8, ptr %p, i8 104
137    store volatile i8 5, ptr %2, align 1
138    ret void
139  }
140
141  define void @store_large_offset_no_opt_i16(ptr %p) #0 {
142  entry:
143    %0 = getelementptr inbounds i16, ptr %p, i16 100
144    store volatile i8 1, ptr %0, align 2
145    %1 = getelementptr inbounds i16, ptr %p, i16 100
146    store volatile i8 3, ptr %1, align 2
147    %2 = getelementptr inbounds i16, ptr %p, i16 101
148    store volatile i8 5, ptr %2, align 2
149    ret void
150  }
151
152  define void @load_large_offset_no_opt_i8(ptr %p) #0 {
153  entry:
154    %0 = getelementptr inbounds i8, ptr %p, i8 100
155    %a = load volatile i8, ptr %0
156    %1 = getelementptr inbounds i8, ptr %p, i8 101
157    %b = load volatile i8, ptr %1
158    %2 = getelementptr inbounds i8, ptr %p, i8 103
159    %c = load volatile i8, ptr %2
160    ret void
161  }
162
163  define void @load_large_offset_no_opt_s16(ptr %p) #0 {
164  entry:
165    %0 = getelementptr inbounds i16, ptr %p, i16 100
166    %a = load volatile i16, ptr %0, align 2
167    %1 = getelementptr inbounds i16, ptr %p, i16 101
168    %c = load volatile i16, ptr %1, align 2
169    %2 = getelementptr inbounds i16, ptr %p, i16 102
170    %d = load volatile i16, ptr %2, align 2
171    ret void
172  }
173
174  define void @load_large_offset_no_opt_u16(ptr %p) #0 {
175  entry:
176    %0 = getelementptr inbounds i16, ptr %p, i16 100
177    %a = load volatile i16, ptr %0, align 2
178    %1 = getelementptr inbounds i16, ptr %p, i16 101
179    %c = load volatile i16, ptr %1, align 2
180    %2 = getelementptr inbounds i16, ptr %p, i16 102
181    %d = load volatile i16, ptr %2, align 2
182    ret void
183  }
184  attributes #0 = { minsize }
185
186...
187---
188name:            store_common_value_i8
189tracksRegLiveness: true
190body:             |
191  bb.0.entry:
192    liveins: $x10, $x11, $x12
193
194    ; CHECK-LABEL: name: store_common_value_i8
195    ; CHECK: liveins: $x10, $x11, $x12
196    ; CHECK-NEXT: {{  $}}
197    ; CHECK-NEXT: $x13 = ADDI $x0, 0
198    ; CHECK-NEXT: SB $x13, killed renamable $x10, 0 :: (store (s8) into %ir.a)
199    ; CHECK-NEXT: SB $x13, killed renamable $x11, 0 :: (store (s8) into %ir.b)
200    ; CHECK-NEXT: SB $x13, killed renamable $x12, 0 :: (store (s8) into %ir.c)
201    ; CHECK-NEXT: PseudoRET
202    SB $x0, killed renamable $x10, 0 :: (store (s8) into %ir.a)
203    SB $x0, killed renamable $x11, 0 :: (store (s8) into %ir.b)
204    SB $x0, killed renamable $x12, 0 :: (store (s8) into %ir.c)
205    PseudoRET
206
207...
208---
209name:            store_common_value_i16
210tracksRegLiveness: true
211body:             |
212  bb.0.entry:
213    liveins: $x10, $x11, $x12
214
215    ; CHECK-LABEL: name: store_common_value_i16
216    ; CHECK: liveins: $x10, $x11, $x12
217    ; CHECK-NEXT: {{  $}}
218    ; CHECK-NEXT: $x13 = ADDI $x0, 0
219    ; CHECK-NEXT: SH $x13, killed renamable $x10, 0 :: (store (s16) into %ir.a)
220    ; CHECK-NEXT: SH $x13, killed renamable $x11, 0 :: (store (s16) into %ir.b)
221    ; CHECK-NEXT: SH $x13, killed renamable $x12, 0 :: (store (s16) into %ir.c)
222    ; CHECK-NEXT: PseudoRET
223    SH $x0, killed renamable $x10, 0 :: (store (s16) into %ir.a)
224    SH $x0, killed renamable $x11, 0 :: (store (s16) into %ir.b)
225    SH $x0, killed renamable $x12, 0 :: (store (s16) into %ir.c)
226    PseudoRET
227
228...
229---
230name:            store_common_ptr_i8
231tracksRegLiveness: true
232body:             |
233  bb.0.entry:
234    liveins: $x16
235
236    ; CHECK-LABEL: name: store_common_ptr_i8
237    ; CHECK: liveins: $x16
238    ; CHECK-NEXT: {{  $}}
239    ; CHECK-NEXT: renamable $x10 = ADDI $x0, 1
240    ; CHECK-NEXT: $x11 = ADDI $x16, 0
241    ; CHECK-NEXT: SB killed renamable $x10, $x11, 0 :: (volatile store (s8) into %ir.p)
242    ; CHECK-NEXT: renamable $x10 = ADDI $x0, 3
243    ; CHECK-NEXT: SB killed renamable $x10, $x11, 0 :: (volatile store (s8) into %ir.p)
244    ; CHECK-NEXT: renamable $x10 = ADDI $x0, 5
245    ; CHECK-NEXT: SB killed renamable $x10, killed $x11, 0 :: (volatile store (s8) into %ir.p)
246    ; CHECK-NEXT: PseudoRET
247    renamable $x10 = ADDI $x0, 1
248    SB killed renamable $x10, renamable $x16, 0 :: (volatile store (s8) into %ir.p)
249    renamable $x10 = ADDI $x0, 3
250    SB killed renamable $x10, renamable $x16, 0 :: (volatile store (s8) into %ir.p)
251    renamable $x10 = ADDI $x0, 5
252    SB killed renamable $x10, killed renamable $x16, 0 :: (volatile store (s8) into %ir.p)
253    PseudoRET
254
255...
256---
257name:            store_common_ptr_i16
258tracksRegLiveness: true
259body:             |
260  bb.0.entry:
261    liveins: $x16
262
263    ; CHECK-LABEL: name: store_common_ptr_i16
264    ; CHECK: liveins: $x16
265    ; CHECK-NEXT: {{  $}}
266    ; CHECK-NEXT: renamable $x10 = ADDI $x0, 1
267    ; CHECK-NEXT: $x11 = ADDI $x16, 0
268    ; CHECK-NEXT: SH killed renamable $x10, $x11, 0 :: (volatile store (s16) into %ir.p)
269    ; CHECK-NEXT: renamable $x10 = ADDI $x0, 3
270    ; CHECK-NEXT: SH killed renamable $x10, $x11, 0 :: (volatile store (s16) into %ir.p)
271    ; CHECK-NEXT: renamable $x10 = ADDI $x0, 5
272    ; CHECK-NEXT: SH killed renamable $x10, killed $x11, 0 :: (volatile store (s16) into %ir.p)
273    ; CHECK-NEXT: PseudoRET
274    renamable $x10 = ADDI $x0, 1
275    SH killed renamable $x10, renamable $x16, 0 :: (volatile store (s16) into %ir.p)
276    renamable $x10 = ADDI $x0, 3
277    SH killed renamable $x10, renamable $x16, 0 :: (volatile store (s16) into %ir.p)
278    renamable $x10 = ADDI $x0, 5
279    SH killed renamable $x10, killed renamable $x16, 0 :: (volatile store (s16) into %ir.p)
280    PseudoRET
281
282...
283---
284name:            load_common_ptr_i8
285body:             |
286  bb.0.entry:
287    liveins: $x16
288
289    ; CHECK-LABEL: name: load_common_ptr_i8
290    ; CHECK: liveins: $x16
291    ; CHECK-NEXT: {{  $}}
292    ; CHECK-NEXT: $x11 = ADDI $x16, 0
293    ; CHECK-NEXT: dead $x10 = LBU $x11, 0 :: (volatile load (s8) from %ir.p)
294    ; CHECK-NEXT: dead $x10 = LBU $x11, 0 :: (volatile load (s8) from %ir.p)
295    ; CHECK-NEXT: dead $x10 = LBU killed $x11, 0 :: (volatile load (s8) from %ir.p)
296    ; CHECK-NEXT: PseudoRET
297    dead $x10 = LBU renamable $x16, 0 :: (volatile load (s8) from %ir.p)
298    dead $x10 = LBU renamable $x16, 0 :: (volatile load (s8) from %ir.p)
299    dead $x10 = LBU killed renamable $x16, 0 :: (volatile load (s8) from %ir.p)
300    PseudoRET
301
302...
303---
304name:            load_common_ptr_s16
305body:             |
306  bb.0.entry:
307    liveins: $x16
308
309    ; CHECK-LABEL: name: load_common_ptr_s16
310    ; CHECK: liveins: $x16
311    ; CHECK-NEXT: {{  $}}
312    ; CHECK-NEXT: $x11 = ADDI $x16, 0
313    ; CHECK-NEXT: dead $x10 = LH $x11, 0 :: (volatile load (s16) from %ir.p)
314    ; CHECK-NEXT: dead $x10 = LH $x11, 0 :: (volatile load (s16) from %ir.p)
315    ; CHECK-NEXT: dead $x10 = LH killed $x11, 0 :: (volatile load (s16) from %ir.p)
316    ; CHECK-NEXT: PseudoRET
317    dead $x10 = LH renamable $x16, 0 :: (volatile load (s16) from %ir.p)
318    dead $x10 = LH renamable $x16, 0 :: (volatile load (s16) from %ir.p)
319    dead $x10 = LH killed renamable $x16, 0 :: (volatile load (s16) from %ir.p)
320    PseudoRET
321
322...
323---
324name:            load_common_ptr_u16
325body:             |
326  bb.0.entry:
327    liveins: $x16
328
329    ; CHECK-LABEL: name: load_common_ptr_u16
330    ; CHECK: liveins: $x16
331    ; CHECK-NEXT: {{  $}}
332    ; CHECK-NEXT: $x11 = ADDI $x16, 0
333    ; CHECK-NEXT: dead $x10 = LHU $x11, 0 :: (volatile load (s16) from %ir.p)
334    ; CHECK-NEXT: dead $x10 = LHU $x11, 0 :: (volatile load (s16) from %ir.p)
335    ; CHECK-NEXT: dead $x10 = LHU killed $x11, 0 :: (volatile load (s16) from %ir.p)
336    ; CHECK-NEXT: PseudoRET
337    dead $x10 = LHU renamable $x16, 0 :: (volatile load (s16) from %ir.p)
338    dead $x10 = LHU renamable $x16, 0 :: (volatile load (s16) from %ir.p)
339    dead $x10 = LHU killed renamable $x16, 0 :: (volatile load (s16) from %ir.p)
340    PseudoRET
341
342...
343---
344name:            store_large_offset_i8
345tracksRegLiveness: true
346body:             |
347  bb.0.entry:
348    liveins: $x10
349
350    ; CHECK-LABEL: name: store_large_offset_i8
351    ; CHECK: liveins: $x10
352    ; CHECK-NEXT: {{  $}}
353    ; CHECK-NEXT: renamable $x11 = ADDI $x0, 1
354    ; CHECK-NEXT: $x12 = ADDI $x10, 100
355    ; CHECK-NEXT: SB killed renamable $x11, $x12, 0 :: (volatile store (s8) into %ir.0)
356    ; CHECK-NEXT: renamable $x11 = ADDI $x0, 3
357    ; CHECK-NEXT: SB killed renamable $x11, $x12, 1 :: (volatile store (s8) into %ir.1)
358    ; CHECK-NEXT: renamable $x11 = ADDI $x0, 5
359    ; CHECK-NEXT: SB killed renamable $x11, $x12, 2 :: (volatile store (s8) into %ir.2)
360    ; CHECK-NEXT: renamable $x11 = ADDI $x0, 7
361    ; CHECK-NEXT: SB killed renamable $x11, killed $x12, 3 :: (volatile store (s8) into %ir.3)
362    ; CHECK-NEXT: PseudoRET
363    renamable $x11 = ADDI $x0, 1
364    SB killed renamable $x11, renamable $x10, 100 :: (volatile store (s8) into %ir.0)
365    renamable $x11 = ADDI $x0, 3
366    SB killed renamable $x11, renamable $x10, 101 :: (volatile store (s8) into %ir.1)
367    renamable $x11 = ADDI $x0, 5
368    SB killed renamable $x11, renamable $x10, 102 :: (volatile store (s8) into %ir.2)
369    renamable $x11 = ADDI $x0, 7
370    SB killed renamable $x11, killed renamable $x10, 103 :: (volatile store (s8) into %ir.3)
371    PseudoRET
372
373...
374---
375name:            store_large_offset_i16
376tracksRegLiveness: true
377body:             |
378  bb.0.entry:
379    liveins: $x10
380    ; CHECK-LABEL: name: store_large_offset_i16
381    ; CHECK: liveins: $x10
382    ; CHECK-NEXT: {{  $}}
383    ; CHECK-NEXT: renamable $x11 = ADDI $x0, 1
384    ; CHECK-NEXT: $x12 = ADDI $x10, 200
385    ; CHECK-NEXT: SH killed renamable $x11, $x12, 0 :: (volatile store (s16) into %ir.0)
386    ; CHECK-NEXT: renamable $x11 = ADDI $x0, 3
387    ; CHECK-NEXT: SH killed renamable $x11, $x12, 0 :: (volatile store (s16) into %ir.1)
388    ; CHECK-NEXT: renamable $x11 = ADDI $x0, 5
389    ; CHECK-NEXT: SH killed renamable $x11, $x12, 2 :: (volatile store (s16) into %ir.2)
390    ; CHECK-NEXT: renamable $x11 = ADDI $x0, 7
391    ; CHECK-NEXT: SH killed renamable $x11, killed $x12, 2 :: (volatile store (s16) into %ir.3)
392    ; CHECK-NEXT: PseudoRET
393    renamable $x11 = ADDI $x0, 1
394    SH killed renamable $x11, renamable $x10, 200 :: (volatile store (s16) into %ir.0)
395    renamable $x11 = ADDI $x0, 3
396    SH killed renamable $x11, renamable $x10, 200 :: (volatile store (s16) into %ir.1)
397    renamable $x11 = ADDI $x0, 5
398    SH killed renamable $x11, renamable $x10, 202 :: (volatile store (s16) into %ir.2)
399    renamable $x11 = ADDI $x0, 7
400    SH killed renamable $x11, killed renamable $x10, 202 :: (volatile store (s16) into %ir.3)
401    PseudoRET
402
403...
404---
405name:            load_large_offset_i8
406tracksRegLiveness: true
407body:             |
408  bb.0.entry:
409    liveins: $x16
410
411    ; CHECK-LABEL: name: load_large_offset_i8
412    ; CHECK: liveins: $x16
413    ; CHECK-NEXT: {{  $}}
414    ; CHECK-NEXT: $x11 = ADDI $x16, 100
415    ; CHECK-NEXT: dead $x10 = LBU $x11, 0 :: (volatile load (s8) from %ir.0)
416    ; CHECK-NEXT: dead $x10 = LBU $x11, 1 :: (volatile load (s8) from %ir.1)
417    ; CHECK-NEXT: dead $x10 = LBU $x11, 2 :: (volatile load (s8) from %ir.2)
418    ; CHECK-NEXT: dead $x10 = LBU killed $x11, 3 :: (volatile load (s8) from %ir.3)
419    ; CHECK-NEXT: PseudoRET
420    dead $x10 = LBU renamable $x16, 100 :: (volatile load (s8) from %ir.0)
421    dead $x10 = LBU renamable $x16, 101 :: (volatile load (s8) from %ir.1)
422    dead $x10 = LBU renamable $x16, 102 :: (volatile load (s8) from %ir.2)
423    dead $x10 = LBU killed renamable $x16, 103 :: (volatile load (s8) from %ir.3)
424    PseudoRET
425
426...
427---
428name:            load_large_offset_s16
429tracksRegLiveness: true
430body:             |
431  bb.0.entry:
432    liveins: $x16
433
434    ; CHECK-LABEL: name: load_large_offset_s16
435    ; CHECK: liveins: $x16
436    ; CHECK-NEXT: {{  $}}
437    ; CHECK-NEXT: $x11 = ADDI $x16, 100
438    ; CHECK-NEXT: dead $x10 = LH $x11, 0 :: (volatile load (s16) from %ir.0)
439    ; CHECK-NEXT: dead $x10 = LH $x11, 0 :: (volatile load (s16) from %ir.1)
440    ; CHECK-NEXT: dead $x10 = LH $x11, 2 :: (volatile load (s16) from %ir.2)
441    ; CHECK-NEXT: dead $x10 = LH killed $x11, 2 :: (volatile load (s16) from %ir.3)
442    ; CHECK-NEXT: PseudoRET
443    dead $x10 = LH renamable $x16, 100 :: (volatile load (s16) from %ir.0)
444    dead $x10 = LH renamable $x16, 100 :: (volatile load (s16) from %ir.1)
445    dead $x10 = LH renamable $x16, 102 :: (volatile load (s16) from %ir.2)
446    dead $x10 = LH killed renamable $x16, 102 :: (volatile load (s16) from %ir.3)
447    PseudoRET
448
449...
450---
451name:            load_large_offset_u16
452tracksRegLiveness: true
453body:             |
454  bb.0.entry:
455    liveins: $x16
456
457    ; CHECK-LABEL: name: load_large_offset_u16
458    ; CHECK: liveins: $x16
459    ; CHECK-NEXT: {{  $}}
460    ; CHECK-NEXT: $x11 = ADDI $x16, 100
461    ; CHECK-NEXT: dead $x10 = LHU $x11, 0 :: (volatile load (s16) from %ir.0)
462    ; CHECK-NEXT: dead $x10 = LHU $x11, 0 :: (volatile load (s16) from %ir.1)
463    ; CHECK-NEXT: dead $x10 = LHU $x11, 2 :: (volatile load (s16) from %ir.2)
464    ; CHECK-NEXT: dead $x10 = LHU killed $x11, 2 :: (volatile load (s16) from %ir.3)
465    ; CHECK-NEXT: PseudoRET
466    dead $x10 = LHU renamable $x16, 100 :: (volatile load (s16) from %ir.0)
467    dead $x10 = LHU renamable $x16, 100 :: (volatile load (s16) from %ir.1)
468    dead $x10 = LHU renamable $x16, 102 :: (volatile load (s16) from %ir.2)
469    dead $x10 = LHU killed renamable $x16, 102 :: (volatile load (s16) from %ir.3)
470    PseudoRET
471
472...
473---
474name:            store_large_offset_no_opt_i8
475tracksRegLiveness: true
476body:             |
477  bb.0.entry:
478    liveins: $x16
479
480    ; CHECK-LABEL: name: store_large_offset_no_opt_i8
481    ; CHECK: liveins: $x16
482    ; CHECK-NEXT: {{  $}}
483    ; CHECK-NEXT: renamable $x11 = ADDI $x0, 1
484    ; CHECK-NEXT: SB killed renamable $x11, renamable $x16, 100 :: (volatile store (s8) into %ir.0)
485    ; CHECK-NEXT: renamable $x11 = ADDI $x0, 3
486    ; CHECK-NEXT: SB killed renamable $x11, renamable $x16, 101 :: (volatile store (s8) into %ir.1)
487    ; CHECK-NEXT: renamable $x11 = ADDI $x0, 5
488    ; CHECK-NEXT: SB killed renamable $x11, renamable $x16, 104 :: (volatile store (s8) into %ir.2)
489    ; CHECK-NEXT: PseudoRET
490    renamable $x11 = ADDI $x0, 1
491    SB killed renamable $x11, renamable $x16, 100 :: (volatile store (s8) into %ir.0)
492    renamable $x11 = ADDI $x0, 3
493    SB killed renamable $x11, renamable $x16, 101 :: (volatile store (s8) into %ir.1)
494    renamable $x11 = ADDI $x0, 5
495    SB killed renamable $x11, renamable $x16, 104 :: (volatile store (s8) into %ir.2)
496    PseudoRET
497
498...
499---
500name:            store_large_offset_no_opt_i16
501tracksRegLiveness: true
502body:             |
503  bb.0.entry:
504    liveins: $x16
505
506    ; CHECK-LABEL: name: store_large_offset_no_opt_i16
507    ; CHECK: liveins: $x16
508    ; CHECK-NEXT: {{  $}}
509    ; CHECK-NEXT: renamable $x11 = ADDI $x0, 1
510    ; CHECK-NEXT: SH killed renamable $x11, renamable $x16, 200 :: (volatile store (s16) into %ir.0)
511    ; CHECK-NEXT: renamable $x11 = ADDI $x0, 3
512    ; CHECK-NEXT: SH killed renamable $x11, renamable $x16, 202 :: (volatile store (s16) into %ir.1)
513    ; CHECK-NEXT: renamable $x11 = ADDI $x0, 5
514    ; CHECK-NEXT: SH killed renamable $x11, renamable $x16, 204 :: (volatile store (s16) into %ir.2)
515    ; CHECK-NEXT: PseudoRET
516    renamable $x11 = ADDI $x0, 1
517    SH killed renamable $x11, renamable $x16, 200 :: (volatile store (s16) into %ir.0)
518    renamable $x11 = ADDI $x0, 3
519    SH killed renamable $x11, renamable $x16, 202 :: (volatile store (s16) into %ir.1)
520    renamable $x11 = ADDI $x0, 5
521    SH killed renamable $x11, renamable $x16, 204 :: (volatile store (s16) into %ir.2)
522    PseudoRET
523
524...
525---
526name:            load_large_offset_no_opt_i8
527tracksRegLiveness: true
528body:             |
529  bb.0.entry:
530    liveins: $x16
531
532    ; CHECK-LABEL: name: load_large_offset_no_opt_i8
533    ; CHECK: liveins: $x16
534    ; CHECK-NEXT: {{  $}}
535    ; CHECK-NEXT: dead $x10 = LBU renamable $x16, 100 :: (volatile load (s8) from %ir.0)
536    ; CHECK-NEXT: dead $x10 = LBU renamable $x16, 101 :: (volatile load (s8) from %ir.1)
537    ; CHECK-NEXT: dead $x10 = LBU killed renamable $x16, 104 :: (volatile load (s8) from %ir.2)
538    ; CHECK-NEXT: PseudoRET
539    dead $x10 = LBU renamable $x16, 100 :: (volatile load (s8) from %ir.0)
540    dead $x10 = LBU renamable $x16, 101 :: (volatile load (s8) from %ir.1)
541    dead $x10 = LBU killed renamable $x16, 104 :: (volatile load (s8) from %ir.2)
542    PseudoRET
543
544...
545---
546name:            load_large_offset_no_opt_s16
547tracksRegLiveness: true
548body:             |
549  bb.0.entry:
550    liveins: $x16
551
552    ; CHECK-LABEL: name: load_large_offset_no_opt_s16
553    ; CHECK: liveins: $x16
554    ; CHECK-NEXT: {{  $}}
555    ; CHECK-NEXT: dead $x10 = LH renamable $x16, 100 :: (volatile load (s8) from %ir.0)
556    ; CHECK-NEXT: dead $x10 = LH renamable $x16, 102 :: (volatile load (s8) from %ir.1)
557    ; CHECK-NEXT: dead $x10 = LH killed renamable $x16, 104 :: (volatile load (s8) from %ir.2)
558    ; CHECK-NEXT: PseudoRET
559    dead $x10 = LH renamable $x16, 100 :: (volatile load (s8) from %ir.0)
560    dead $x10 = LH renamable $x16, 102 :: (volatile load (s8) from %ir.1)
561    dead $x10 = LH killed renamable $x16, 104 :: (volatile load (s8) from %ir.2)
562    PseudoRET
563
564...
565---
566name:            load_large_offset_no_opt_u16
567tracksRegLiveness: true
568body:             |
569  bb.0.entry:
570    liveins: $x16
571
572    ; CHECK-LABEL: name: load_large_offset_no_opt_u16
573    ; CHECK: liveins: $x16
574    ; CHECK-NEXT: {{  $}}
575    ; CHECK-NEXT: dead $x10 = LHU renamable $x16, 100 :: (volatile load (s8) from %ir.0)
576    ; CHECK-NEXT: dead $x10 = LHU renamable $x16, 102 :: (volatile load (s8) from %ir.1)
577    ; CHECK-NEXT: dead $x10 = LHU killed renamable $x16, 104 :: (volatile load (s8) from %ir.2)
578    ; CHECK-NEXT: PseudoRET
579    dead $x10 = LHU renamable $x16, 100 :: (volatile load (s8) from %ir.0)
580    dead $x10 = LHU renamable $x16, 102 :: (volatile load (s8) from %ir.1)
581    dead $x10 = LHU killed renamable $x16, 104 :: (volatile load (s8) from %ir.2)
582    PseudoRET
583
584...
585