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
8 define void @store_common_value_i8(ptr %a, ptr %b, ptr %c) #0 {
10 store i8 0, ptr %a, align 1
11 store i8 0, ptr %b, align 1
12 store i8 0, ptr %c, align 1
16 define void @store_common_value_i16(ptr %a, ptr %b, ptr %c) #0 {
18 store i16 0, ptr %a, align 2
19 store i16 0, ptr %b, align 2
20 store i16 0, ptr %c, align 2
24 define void @store_common_ptr_i8(ptr %p) #0 {
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
32 define void @store_common_ptr_i16(ptr %p) #0 {
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
40 define void @load_common_ptr_i8(ptr %p) #0 {
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
49 define void @load_common_ptr_s16(ptr %p) #0 {
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
57 define void @load_common_ptr_u16(ptr %p) #0 {
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
65 define void @store_large_offset_i8(ptr %p) #0 {
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
78 define void @store_large_offset_i16(ptr %p) #0 {
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
91 define void @load_large_offset_i8(ptr %p) #0 {
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
104 define void @load_large_offset_s16(ptr %p) #0 {
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
117 define void @load_large_offset_u16(ptr %p) #0 {
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
129 define void @store_large_offset_no_opt_i8(ptr %p) #0 {
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
140 define void @store_large_offset_no_opt_i16(ptr %p) #0 {
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
153 define void @load_large_offset_no_opt_i8(ptr %p) #0 {
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
164 define void @load_large_offset_no_opt_s16(ptr %p) #0 {
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
175 define void @load_large_offset_no_opt_u16(ptr %p) #0 {
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
185 attributes #0 = { minsize }
189 name: store_common_value_i8
190 tracksRegLiveness: true
193 liveins: $x10, $x11, $x12
195 ; CHECK-LABEL: name: store_common_value_i8
196 ; CHECK: liveins: $x10, $x11, $x12
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)
210 name: store_common_value_i16
211 tracksRegLiveness: true
214 liveins: $x10, $x11, $x12
216 ; CHECK-LABEL: name: store_common_value_i16
217 ; CHECK: liveins: $x10, $x11, $x12
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)
231 name: store_common_ptr_i8
232 tracksRegLiveness: true
237 ; CHECK-LABEL: name: store_common_ptr_i8
238 ; CHECK: liveins: $x16
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)
258 name: store_common_ptr_i16
259 tracksRegLiveness: true
264 ; CHECK-LABEL: name: store_common_ptr_i16
265 ; CHECK: liveins: $x16
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)
285 name: load_common_ptr_i8
290 ; CHECK-LABEL: name: load_common_ptr_i8
291 ; CHECK: liveins: $x16
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)
305 name: load_common_ptr_s16
310 ; CHECK-LABEL: name: load_common_ptr_s16
311 ; CHECK: liveins: $x16
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)
325 name: load_common_ptr_u16
330 ; CHECK-LABEL: name: load_common_ptr_u16
331 ; CHECK: liveins: $x16
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)
345 name: store_large_offset_i8
346 tracksRegLiveness: true
351 ; CHECK-LABEL: name: store_large_offset_i8
352 ; CHECK: liveins: $x10
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)
376 name: store_large_offset_i16
377 tracksRegLiveness: true
381 ; CHECK-LABEL: name: store_large_offset_i16
382 ; CHECK: liveins: $x10
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)
406 name: load_large_offset_i8
407 tracksRegLiveness: true
412 ; CHECK-LABEL: name: load_large_offset_i8
413 ; CHECK: liveins: $x16
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)
429 name: load_large_offset_s16
430 tracksRegLiveness: true
435 ; CHECK-LABEL: name: load_large_offset_s16
436 ; CHECK: liveins: $x16
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)
452 name: load_large_offset_u16
453 tracksRegLiveness: true
458 ; CHECK-LABEL: name: load_large_offset_u16
459 ; CHECK: liveins: $x16
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)
475 name: store_large_offset_no_opt_i8
476 tracksRegLiveness: true
481 ; CHECK-LABEL: name: store_large_offset_no_opt_i8
482 ; CHECK: liveins: $x16
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)
501 name: store_large_offset_no_opt_i16
502 tracksRegLiveness: true
507 ; CHECK-LABEL: name: store_large_offset_no_opt_i16
508 ; CHECK: liveins: $x16
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)
527 name: load_large_offset_no_opt_i8
528 tracksRegLiveness: true
533 ; CHECK-LABEL: name: load_large_offset_no_opt_i8
534 ; CHECK: liveins: $x16
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)
547 name: load_large_offset_no_opt_s16
548 tracksRegLiveness: true
553 ; CHECK-LABEL: name: load_large_offset_no_opt_s16
554 ; CHECK: liveins: $x16
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)
567 name: load_large_offset_no_opt_u16
568 tracksRegLiveness: true
573 ; CHECK-LABEL: name: load_large_offset_no_opt_u16
574 ; CHECK: liveins: $x16
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)