Bump version to 19.1.0-rc3
[llvm-project.git] / llvm / test / CodeGen / RISCV / make-compressible-zbc.mir
blob89a6ca7af9be130b7b1e3cecda5be54ad58abb02
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
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   }
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   }
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   }
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   }
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   }
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   }
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   }
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   }
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   }
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   }
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   }
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   define void @store_large_offset_no_opt_i8(ptr %p) #0 {
130   entry:
131     %0 = getelementptr inbounds i8, ptr %p, i8 100
132     store volatile i8 1, ptr %0, align 1
133     %1 = getelementptr inbounds i8, ptr %p, i8 101
134     store volatile i8 3, ptr %1, align 1
135     %2 = getelementptr inbounds i8, ptr %p, i8 104
136     store volatile i8 5, ptr %2, align 1
137     ret void
138   }
140   define void @store_large_offset_no_opt_i16(ptr %p) #0 {
141   entry:
142     %0 = getelementptr inbounds i16, ptr %p, i16 100
143     %a = load volatile i16, ptr %0, align 2
144     %1 = getelementptr inbounds i16, ptr %p, i16 100
145     %b = load volatile i16, ptr %1, align 2
146     %2 = getelementptr inbounds i16, ptr %p, i16 101
147     %c = load volatile i16, ptr %2, align 2
148     %3 = getelementptr inbounds i16, ptr %p, i16 102
149     %d = load volatile i16, ptr %3, align 2
150     ret void
151   }
153   define void @load_large_offset_no_opt_i8(ptr %p) #0 {
154   entry:
155     %0 = getelementptr inbounds i8, ptr %p, i8 100
156     %a = load volatile i8, ptr %0
157     %1 = getelementptr inbounds i8, ptr %p, i8 101
158     %b = load volatile i8, ptr %1
159     %2 = getelementptr inbounds i8, ptr %p, i8 103
160     %c = load volatile i8, ptr %2
161     ret void
162   }
164   define void @load_large_offset_no_opt_s16(ptr %p) #0 {
165   entry:
166     %0 = getelementptr inbounds i16, ptr %p, i16 100
167     %a = load volatile i16, ptr %0, align 2
168     %1 = getelementptr inbounds i16, ptr %p, i16 101
169     %c = load volatile i16, ptr %1, align 2
170     %2 = getelementptr inbounds i16, ptr %p, i16 102
171     %d = load volatile i16, ptr %2, align 2
172     ret void
173   }
175   define void @load_large_offset_no_opt_u16(ptr %p) #0 {
176   entry:
177     %0 = getelementptr inbounds i16, ptr %p, i16 100
178     %a = load volatile i16, ptr %0, align 2
179     %1 = getelementptr inbounds i16, ptr %p, i16 101
180     %c = load volatile i16, ptr %1, align 2
181     %2 = getelementptr inbounds i16, ptr %p, i16 102
182     %d = load volatile i16, ptr %2, align 2
183     ret void
184   }
185   attributes #0 = { minsize }
189 name:            store_common_value_i8
190 tracksRegLiveness: true
191 body:             |
192   bb.0.entry:
193     liveins: $x10, $x11, $x12
195     ; CHECK-LABEL: name: store_common_value_i8
196     ; CHECK: liveins: $x10, $x11, $x12
197     ; CHECK-NEXT: {{  $}}
198     ; CHECK-NEXT: $x13 = ADDI $x0, 0
199     ; CHECK-NEXT: SB $x13, killed renamable $x10, 0 :: (store (s8) into %ir.a)
200     ; CHECK-NEXT: SB $x13, killed renamable $x11, 0 :: (store (s8) into %ir.b)
201     ; CHECK-NEXT: SB $x13, killed renamable $x12, 0 :: (store (s8) into %ir.c)
202     ; CHECK-NEXT: PseudoRET
203     SB $x0, killed renamable $x10, 0 :: (store (s8) into %ir.a)
204     SB $x0, killed renamable $x11, 0 :: (store (s8) into %ir.b)
205     SB $x0, killed renamable $x12, 0 :: (store (s8) into %ir.c)
206     PseudoRET
210 name:            store_common_value_i16
211 tracksRegLiveness: true
212 body:             |
213   bb.0.entry:
214     liveins: $x10, $x11, $x12
216     ; CHECK-LABEL: name: store_common_value_i16
217     ; CHECK: liveins: $x10, $x11, $x12
218     ; CHECK-NEXT: {{  $}}
219     ; CHECK-NEXT: $x13 = ADDI $x0, 0
220     ; CHECK-NEXT: SH $x13, killed renamable $x10, 0 :: (store (s16) into %ir.a)
221     ; CHECK-NEXT: SH $x13, killed renamable $x11, 0 :: (store (s16) into %ir.b)
222     ; CHECK-NEXT: SH $x13, killed renamable $x12, 0 :: (store (s16) into %ir.c)
223     ; CHECK-NEXT: PseudoRET
224     SH $x0, killed renamable $x10, 0 :: (store (s16) into %ir.a)
225     SH $x0, killed renamable $x11, 0 :: (store (s16) into %ir.b)
226     SH $x0, killed renamable $x12, 0 :: (store (s16) into %ir.c)
227     PseudoRET
231 name:            store_common_ptr_i8
232 tracksRegLiveness: true
233 body:             |
234   bb.0.entry:
235     liveins: $x16
237     ; CHECK-LABEL: name: store_common_ptr_i8
238     ; CHECK: liveins: $x16
239     ; CHECK-NEXT: {{  $}}
240     ; CHECK-NEXT: renamable $x10 = ADDI $x0, 1
241     ; CHECK-NEXT: $x11 = ADDI $x16, 0
242     ; CHECK-NEXT: SB killed renamable $x10, $x11, 0 :: (volatile store (s8) into %ir.p)
243     ; CHECK-NEXT: renamable $x10 = ADDI $x0, 3
244     ; CHECK-NEXT: SB killed renamable $x10, $x11, 0 :: (volatile store (s8) into %ir.p)
245     ; CHECK-NEXT: renamable $x10 = ADDI $x0, 5
246     ; CHECK-NEXT: SB killed renamable $x10, killed $x11, 0 :: (volatile store (s8) into %ir.p)
247     ; CHECK-NEXT: PseudoRET
248     renamable $x10 = ADDI $x0, 1
249     SB killed renamable $x10, renamable $x16, 0 :: (volatile store (s8) into %ir.p)
250     renamable $x10 = ADDI $x0, 3
251     SB killed renamable $x10, renamable $x16, 0 :: (volatile store (s8) into %ir.p)
252     renamable $x10 = ADDI $x0, 5
253     SB killed renamable $x10, killed renamable $x16, 0 :: (volatile store (s8) into %ir.p)
254     PseudoRET
258 name:            store_common_ptr_i16
259 tracksRegLiveness: true
260 body:             |
261   bb.0.entry:
262     liveins: $x16
264     ; CHECK-LABEL: name: store_common_ptr_i16
265     ; CHECK: liveins: $x16
266     ; CHECK-NEXT: {{  $}}
267     ; CHECK-NEXT: renamable $x10 = ADDI $x0, 1
268     ; CHECK-NEXT: $x11 = ADDI $x16, 0
269     ; CHECK-NEXT: SH killed renamable $x10, $x11, 0 :: (volatile store (s16) into %ir.p)
270     ; CHECK-NEXT: renamable $x10 = ADDI $x0, 3
271     ; CHECK-NEXT: SH killed renamable $x10, $x11, 0 :: (volatile store (s16) into %ir.p)
272     ; CHECK-NEXT: renamable $x10 = ADDI $x0, 5
273     ; CHECK-NEXT: SH killed renamable $x10, killed $x11, 0 :: (volatile store (s16) into %ir.p)
274     ; CHECK-NEXT: PseudoRET
275     renamable $x10 = ADDI $x0, 1
276     SH killed renamable $x10, renamable $x16, 0 :: (volatile store (s16) into %ir.p)
277     renamable $x10 = ADDI $x0, 3
278     SH killed renamable $x10, renamable $x16, 0 :: (volatile store (s16) into %ir.p)
279     renamable $x10 = ADDI $x0, 5
280     SH killed renamable $x10, killed renamable $x16, 0 :: (volatile store (s16) into %ir.p)
281     PseudoRET
285 name:            load_common_ptr_i8
286 body:             |
287   bb.0.entry:
288     liveins: $x16
290     ; CHECK-LABEL: name: load_common_ptr_i8
291     ; CHECK: liveins: $x16
292     ; CHECK-NEXT: {{  $}}
293     ; CHECK-NEXT: $x11 = ADDI $x16, 0
294     ; CHECK-NEXT: dead $x10 = LBU $x11, 0 :: (volatile load (s8) from %ir.p)
295     ; CHECK-NEXT: dead $x10 = LBU $x11, 0 :: (volatile load (s8) from %ir.p)
296     ; CHECK-NEXT: dead $x10 = LBU killed $x11, 0 :: (volatile load (s8) from %ir.p)
297     ; CHECK-NEXT: PseudoRET
298     dead $x10 = LBU renamable $x16, 0 :: (volatile load (s8) from %ir.p)
299     dead $x10 = LBU renamable $x16, 0 :: (volatile load (s8) from %ir.p)
300     dead $x10 = LBU killed renamable $x16, 0 :: (volatile load (s8) from %ir.p)
301     PseudoRET
305 name:            load_common_ptr_s16
306 body:             |
307   bb.0.entry:
308     liveins: $x16
310     ; CHECK-LABEL: name: load_common_ptr_s16
311     ; CHECK: liveins: $x16
312     ; CHECK-NEXT: {{  $}}
313     ; CHECK-NEXT: $x11 = ADDI $x16, 0
314     ; CHECK-NEXT: dead $x10 = LH $x11, 0 :: (volatile load (s16) from %ir.p)
315     ; CHECK-NEXT: dead $x10 = LH $x11, 0 :: (volatile load (s16) from %ir.p)
316     ; CHECK-NEXT: dead $x10 = LH killed $x11, 0 :: (volatile load (s16) from %ir.p)
317     ; CHECK-NEXT: PseudoRET
318     dead $x10 = LH renamable $x16, 0 :: (volatile load (s16) from %ir.p)
319     dead $x10 = LH renamable $x16, 0 :: (volatile load (s16) from %ir.p)
320     dead $x10 = LH killed renamable $x16, 0 :: (volatile load (s16) from %ir.p)
321     PseudoRET
325 name:            load_common_ptr_u16
326 body:             |
327   bb.0.entry:
328     liveins: $x16
330     ; CHECK-LABEL: name: load_common_ptr_u16
331     ; CHECK: liveins: $x16
332     ; CHECK-NEXT: {{  $}}
333     ; CHECK-NEXT: $x11 = ADDI $x16, 0
334     ; CHECK-NEXT: dead $x10 = LHU $x11, 0 :: (volatile load (s16) from %ir.p)
335     ; CHECK-NEXT: dead $x10 = LHU $x11, 0 :: (volatile load (s16) from %ir.p)
336     ; CHECK-NEXT: dead $x10 = LHU killed $x11, 0 :: (volatile load (s16) from %ir.p)
337     ; CHECK-NEXT: PseudoRET
338     dead $x10 = LHU renamable $x16, 0 :: (volatile load (s16) from %ir.p)
339     dead $x10 = LHU renamable $x16, 0 :: (volatile load (s16) from %ir.p)
340     dead $x10 = LHU killed renamable $x16, 0 :: (volatile load (s16) from %ir.p)
341     PseudoRET
345 name:            store_large_offset_i8
346 tracksRegLiveness: true
347 body:             |
348   bb.0.entry:
349     liveins: $x10
351     ; CHECK-LABEL: name: store_large_offset_i8
352     ; CHECK: liveins: $x10
353     ; CHECK-NEXT: {{  $}}
354     ; CHECK-NEXT: renamable $x11 = ADDI $x0, 1
355     ; CHECK-NEXT: $x12 = ADDI $x10, 100
356     ; CHECK-NEXT: SB killed renamable $x11, $x12, 0 :: (volatile store (s8) into %ir.0)
357     ; CHECK-NEXT: renamable $x11 = ADDI $x0, 3
358     ; CHECK-NEXT: SB killed renamable $x11, $x12, 1 :: (volatile store (s8) into %ir.1)
359     ; CHECK-NEXT: renamable $x11 = ADDI $x0, 5
360     ; CHECK-NEXT: SB killed renamable $x11, $x12, 2 :: (volatile store (s8) into %ir.2)
361     ; CHECK-NEXT: renamable $x11 = ADDI $x0, 7
362     ; CHECK-NEXT: SB killed renamable $x11, killed $x12, 3 :: (volatile store (s8) into %ir.3)
363     ; CHECK-NEXT: PseudoRET
364     renamable $x11 = ADDI $x0, 1
365     SB killed renamable $x11, renamable $x10, 100 :: (volatile store (s8) into %ir.0)
366     renamable $x11 = ADDI $x0, 3
367     SB killed renamable $x11, renamable $x10, 101 :: (volatile store (s8) into %ir.1)
368     renamable $x11 = ADDI $x0, 5
369     SB killed renamable $x11, renamable $x10, 102 :: (volatile store (s8) into %ir.2)
370     renamable $x11 = ADDI $x0, 7
371     SB killed renamable $x11, killed renamable $x10, 103 :: (volatile store (s8) into %ir.3)
372     PseudoRET
376 name:            store_large_offset_i16
377 tracksRegLiveness: true
378 body:             |
379   bb.0.entry:
380     liveins: $x10
381     ; CHECK-LABEL: name: store_large_offset_i16
382     ; CHECK: liveins: $x10
383     ; CHECK-NEXT: {{  $}}
384     ; CHECK-NEXT: renamable $x11 = ADDI $x0, 1
385     ; CHECK-NEXT: $x12 = ADDI $x10, 200
386     ; CHECK-NEXT: SH killed renamable $x11, $x12, 0 :: (volatile store (s16) into %ir.0)
387     ; CHECK-NEXT: renamable $x11 = ADDI $x0, 3
388     ; CHECK-NEXT: SH killed renamable $x11, $x12, 0 :: (volatile store (s16) into %ir.1)
389     ; CHECK-NEXT: renamable $x11 = ADDI $x0, 5
390     ; CHECK-NEXT: SH killed renamable $x11, $x12, 2 :: (volatile store (s16) into %ir.2)
391     ; CHECK-NEXT: renamable $x11 = ADDI $x0, 7
392     ; CHECK-NEXT: SH killed renamable $x11, killed $x12, 2 :: (volatile store (s16) into %ir.3)
393     ; CHECK-NEXT: PseudoRET
394     renamable $x11 = ADDI $x0, 1
395     SH killed renamable $x11, renamable $x10, 200 :: (volatile store (s16) into %ir.0)
396     renamable $x11 = ADDI $x0, 3
397     SH killed renamable $x11, renamable $x10, 200 :: (volatile store (s16) into %ir.1)
398     renamable $x11 = ADDI $x0, 5
399     SH killed renamable $x11, renamable $x10, 202 :: (volatile store (s16) into %ir.2)
400     renamable $x11 = ADDI $x0, 7
401     SH killed renamable $x11, killed renamable $x10, 202 :: (volatile store (s16) into %ir.3)
402     PseudoRET
406 name:            load_large_offset_i8
407 tracksRegLiveness: true
408 body:             |
409   bb.0.entry:
410     liveins: $x16
412     ; CHECK-LABEL: name: load_large_offset_i8
413     ; CHECK: liveins: $x16
414     ; CHECK-NEXT: {{  $}}
415     ; CHECK-NEXT: $x11 = ADDI $x16, 100
416     ; CHECK-NEXT: dead $x10 = LBU $x11, 0 :: (volatile load (s8) from %ir.0)
417     ; CHECK-NEXT: dead $x10 = LBU $x11, 1 :: (volatile load (s8) from %ir.1)
418     ; CHECK-NEXT: dead $x10 = LBU $x11, 2 :: (volatile load (s8) from %ir.2)
419     ; CHECK-NEXT: dead $x10 = LBU killed $x11, 3 :: (volatile load (s8) from %ir.3)
420     ; CHECK-NEXT: PseudoRET
421     dead $x10 = LBU renamable $x16, 100 :: (volatile load (s8) from %ir.0)
422     dead $x10 = LBU renamable $x16, 101 :: (volatile load (s8) from %ir.1)
423     dead $x10 = LBU renamable $x16, 102 :: (volatile load (s8) from %ir.2)
424     dead $x10 = LBU killed renamable $x16, 103 :: (volatile load (s8) from %ir.3)
425     PseudoRET
429 name:            load_large_offset_s16
430 tracksRegLiveness: true
431 body:             |
432   bb.0.entry:
433     liveins: $x16
435     ; CHECK-LABEL: name: load_large_offset_s16
436     ; CHECK: liveins: $x16
437     ; CHECK-NEXT: {{  $}}
438     ; CHECK-NEXT: $x11 = ADDI $x16, 100
439     ; CHECK-NEXT: dead $x10 = LH $x11, 0 :: (volatile load (s16) from %ir.0)
440     ; CHECK-NEXT: dead $x10 = LH $x11, 0 :: (volatile load (s16) from %ir.1)
441     ; CHECK-NEXT: dead $x10 = LH $x11, 2 :: (volatile load (s16) from %ir.2)
442     ; CHECK-NEXT: dead $x10 = LH killed $x11, 2 :: (volatile load (s16) from %ir.3)
443     ; CHECK-NEXT: PseudoRET
444     dead $x10 = LH renamable $x16, 100 :: (volatile load (s16) from %ir.0)
445     dead $x10 = LH renamable $x16, 100 :: (volatile load (s16) from %ir.1)
446     dead $x10 = LH renamable $x16, 102 :: (volatile load (s16) from %ir.2)
447     dead $x10 = LH killed renamable $x16, 102 :: (volatile load (s16) from %ir.3)
448     PseudoRET
452 name:            load_large_offset_u16
453 tracksRegLiveness: true
454 body:             |
455   bb.0.entry:
456     liveins: $x16
458     ; CHECK-LABEL: name: load_large_offset_u16
459     ; CHECK: liveins: $x16
460     ; CHECK-NEXT: {{  $}}
461     ; CHECK-NEXT: $x11 = ADDI $x16, 100
462     ; CHECK-NEXT: dead $x10 = LHU $x11, 0 :: (volatile load (s16) from %ir.0)
463     ; CHECK-NEXT: dead $x10 = LHU $x11, 0 :: (volatile load (s16) from %ir.1)
464     ; CHECK-NEXT: dead $x10 = LHU $x11, 2 :: (volatile load (s16) from %ir.2)
465     ; CHECK-NEXT: dead $x10 = LHU killed $x11, 2 :: (volatile load (s16) from %ir.3)
466     ; CHECK-NEXT: PseudoRET
467     dead $x10 = LHU renamable $x16, 100 :: (volatile load (s16) from %ir.0)
468     dead $x10 = LHU renamable $x16, 100 :: (volatile load (s16) from %ir.1)
469     dead $x10 = LHU renamable $x16, 102 :: (volatile load (s16) from %ir.2)
470     dead $x10 = LHU killed renamable $x16, 102 :: (volatile load (s16) from %ir.3)
471     PseudoRET
475 name:            store_large_offset_no_opt_i8
476 tracksRegLiveness: true
477 body:             |
478   bb.0.entry:
479     liveins: $x16
481     ; CHECK-LABEL: name: store_large_offset_no_opt_i8
482     ; CHECK: liveins: $x16
483     ; CHECK-NEXT: {{  $}}
484     ; CHECK-NEXT: renamable $x11 = ADDI $x0, 1
485     ; CHECK-NEXT: SB killed renamable $x11, renamable $x16, 100 :: (volatile store (s8) into %ir.0)
486     ; CHECK-NEXT: renamable $x11 = ADDI $x0, 3
487     ; CHECK-NEXT: SB killed renamable $x11, renamable $x16, 101 :: (volatile store (s8) into %ir.1)
488     ; CHECK-NEXT: renamable $x11 = ADDI $x0, 5
489     ; CHECK-NEXT: SB killed renamable $x11, renamable $x16, 104 :: (volatile store (s8) into %ir.2)
490     ; CHECK-NEXT: PseudoRET
491     renamable $x11 = ADDI $x0, 1
492     SB killed renamable $x11, renamable $x16, 100 :: (volatile store (s8) into %ir.0)
493     renamable $x11 = ADDI $x0, 3
494     SB killed renamable $x11, renamable $x16, 101 :: (volatile store (s8) into %ir.1)
495     renamable $x11 = ADDI $x0, 5
496     SB killed renamable $x11, renamable $x16, 104 :: (volatile store (s8) into %ir.2)
497     PseudoRET
501 name:            store_large_offset_no_opt_i16
502 tracksRegLiveness: true
503 body:             |
504   bb.0.entry:
505     liveins: $x16
507     ; CHECK-LABEL: name: store_large_offset_no_opt_i16
508     ; CHECK: liveins: $x16
509     ; CHECK-NEXT: {{  $}}
510     ; CHECK-NEXT: renamable $x11 = ADDI $x0, 1
511     ; CHECK-NEXT: SH killed renamable $x11, renamable $x16, 200 :: (volatile store (s16) into %ir.0)
512     ; CHECK-NEXT: renamable $x11 = ADDI $x0, 3
513     ; CHECK-NEXT: SH killed renamable $x11, renamable $x16, 202 :: (volatile store (s16) into %ir.1)
514     ; CHECK-NEXT: renamable $x11 = ADDI $x0, 5
515     ; CHECK-NEXT: SH killed renamable $x11, renamable $x16, 204 :: (volatile store (s16) into %ir.2)
516     ; CHECK-NEXT: PseudoRET
517     renamable $x11 = ADDI $x0, 1
518     SH killed renamable $x11, renamable $x16, 200 :: (volatile store (s16) into %ir.0)
519     renamable $x11 = ADDI $x0, 3
520     SH killed renamable $x11, renamable $x16, 202 :: (volatile store (s16) into %ir.1)
521     renamable $x11 = ADDI $x0, 5
522     SH killed renamable $x11, renamable $x16, 204 :: (volatile store (s16) into %ir.2)
523     PseudoRET
527 name:            load_large_offset_no_opt_i8
528 tracksRegLiveness: true
529 body:             |
530   bb.0.entry:
531     liveins: $x16
533     ; CHECK-LABEL: name: load_large_offset_no_opt_i8
534     ; CHECK: liveins: $x16
535     ; CHECK-NEXT: {{  $}}
536     ; CHECK-NEXT: dead $x10 = LBU renamable $x16, 100 :: (volatile load (s8) from %ir.0)
537     ; CHECK-NEXT: dead $x10 = LBU renamable $x16, 101 :: (volatile load (s8) from %ir.1)
538     ; CHECK-NEXT: dead $x10 = LBU killed renamable $x16, 104 :: (volatile load (s8) from %ir.2)
539     ; CHECK-NEXT: PseudoRET
540     dead $x10 = LBU renamable $x16, 100 :: (volatile load (s8) from %ir.0)
541     dead $x10 = LBU renamable $x16, 101 :: (volatile load (s8) from %ir.1)
542     dead $x10 = LBU killed renamable $x16, 104 :: (volatile load (s8) from %ir.2)
543     PseudoRET
547 name:            load_large_offset_no_opt_s16
548 tracksRegLiveness: true
549 body:             |
550   bb.0.entry:
551     liveins: $x16
553     ; CHECK-LABEL: name: load_large_offset_no_opt_s16
554     ; CHECK: liveins: $x16
555     ; CHECK-NEXT: {{  $}}
556     ; CHECK-NEXT: dead $x10 = LH renamable $x16, 100 :: (volatile load (s8) from %ir.0)
557     ; CHECK-NEXT: dead $x10 = LH renamable $x16, 102 :: (volatile load (s8) from %ir.1)
558     ; CHECK-NEXT: dead $x10 = LH killed renamable $x16, 104 :: (volatile load (s8) from %ir.2)
559     ; CHECK-NEXT: PseudoRET
560     dead $x10 = LH renamable $x16, 100 :: (volatile load (s8) from %ir.0)
561     dead $x10 = LH renamable $x16, 102 :: (volatile load (s8) from %ir.1)
562     dead $x10 = LH killed renamable $x16, 104 :: (volatile load (s8) from %ir.2)
563     PseudoRET
567 name:            load_large_offset_no_opt_u16
568 tracksRegLiveness: true
569 body:             |
570   bb.0.entry:
571     liveins: $x16
573     ; CHECK-LABEL: name: load_large_offset_no_opt_u16
574     ; CHECK: liveins: $x16
575     ; CHECK-NEXT: {{  $}}
576     ; CHECK-NEXT: dead $x10 = LHU renamable $x16, 100 :: (volatile load (s8) from %ir.0)
577     ; CHECK-NEXT: dead $x10 = LHU renamable $x16, 102 :: (volatile load (s8) from %ir.1)
578     ; CHECK-NEXT: dead $x10 = LHU killed renamable $x16, 104 :: (volatile load (s8) from %ir.2)
579     ; CHECK-NEXT: PseudoRET
580     dead $x10 = LHU renamable $x16, 100 :: (volatile load (s8) from %ir.0)
581     dead $x10 = LHU renamable $x16, 102 :: (volatile load (s8) from %ir.1)
582     dead $x10 = LHU killed renamable $x16, 104 :: (volatile load (s8) from %ir.2)
583     PseudoRET