1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -mtriple=riscv32 -run-pass=regbankselect \
3 # RUN: -simplify-mir -verify-machineinstrs %s \
4 # RUN: -o - | FileCheck -check-prefixes=RV32 %s
5 # RUN: llc -mtriple=riscv64 -run-pass=regbankselect \
6 # RUN: -simplify-mir -verify-machineinstrs %s \
7 # RUN: -o - | FileCheck -check-prefixes=RV64 %s
13 tracksRegLiveness: true
17 ; RV32-LABEL: name: test_ret_nxv1i8
20 ; RV32-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 1 x s8>) = COPY $v8
21 ; RV32-NEXT: $v8 = COPY [[COPY]](<vscale x 1 x s8>)
22 ; RV32-NEXT: PseudoRET implicit $v8
24 ; RV64-LABEL: name: test_ret_nxv1i8
27 ; RV64-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 1 x s8>) = COPY $v8
28 ; RV64-NEXT: $v8 = COPY [[COPY]](<vscale x 1 x s8>)
29 ; RV64-NEXT: PseudoRET implicit $v8
30 %0:_(<vscale x 1 x s8>) = COPY $v8
31 $v8 = COPY %0(<vscale x 1 x s8>)
32 PseudoRET implicit $v8
38 tracksRegLiveness: true
42 ; RV32-LABEL: name: test_ret_nxv2i8
45 ; RV32-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 2 x s8>) = COPY $v8
46 ; RV32-NEXT: $v8 = COPY [[COPY]](<vscale x 2 x s8>)
47 ; RV32-NEXT: PseudoRET implicit $v8
49 ; RV64-LABEL: name: test_ret_nxv2i8
52 ; RV64-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 2 x s8>) = COPY $v8
53 ; RV64-NEXT: $v8 = COPY [[COPY]](<vscale x 2 x s8>)
54 ; RV64-NEXT: PseudoRET implicit $v8
55 %0:_(<vscale x 2 x s8>) = COPY $v8
56 $v8 = COPY %0(<vscale x 2 x s8>)
57 PseudoRET implicit $v8
63 tracksRegLiveness: true
67 ; RV32-LABEL: name: test_ret_nxv4i8
70 ; RV32-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 4 x s8>) = COPY $v8
71 ; RV32-NEXT: $v8 = COPY [[COPY]](<vscale x 4 x s8>)
72 ; RV32-NEXT: PseudoRET implicit $v8
74 ; RV64-LABEL: name: test_ret_nxv4i8
77 ; RV64-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 4 x s8>) = COPY $v8
78 ; RV64-NEXT: $v8 = COPY [[COPY]](<vscale x 4 x s8>)
79 ; RV64-NEXT: PseudoRET implicit $v8
80 %0:_(<vscale x 4 x s8>) = COPY $v8
81 $v8 = COPY %0(<vscale x 4 x s8>)
82 PseudoRET implicit $v8
88 tracksRegLiveness: true
92 ; RV32-LABEL: name: test_ret_nxv8i8
95 ; RV32-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 8 x s8>) = COPY $v8
96 ; RV32-NEXT: $v8 = COPY [[COPY]](<vscale x 8 x s8>)
97 ; RV32-NEXT: PseudoRET implicit $v8
99 ; RV64-LABEL: name: test_ret_nxv8i8
102 ; RV64-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 8 x s8>) = COPY $v8
103 ; RV64-NEXT: $v8 = COPY [[COPY]](<vscale x 8 x s8>)
104 ; RV64-NEXT: PseudoRET implicit $v8
105 %0:_(<vscale x 8 x s8>) = COPY $v8
106 $v8 = COPY %0(<vscale x 8 x s8>)
107 PseudoRET implicit $v8
111 name: test_ret_nxv16i8
113 tracksRegLiveness: true
117 ; RV32-LABEL: name: test_ret_nxv16i8
120 ; RV32-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 16 x s8>) = COPY $v8
121 ; RV32-NEXT: $v8m2 = COPY [[COPY]](<vscale x 16 x s8>)
122 ; RV32-NEXT: PseudoRET implicit $v8m2
124 ; RV64-LABEL: name: test_ret_nxv16i8
127 ; RV64-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 16 x s8>) = COPY $v8
128 ; RV64-NEXT: $v8m2 = COPY [[COPY]](<vscale x 16 x s8>)
129 ; RV64-NEXT: PseudoRET implicit $v8m2
130 %0:_(<vscale x 16 x s8>) = COPY $v8
131 $v8m2 = COPY %0(<vscale x 16 x s8>)
132 PseudoRET implicit $v8m2
136 name: test_ret_nxv32i8
138 tracksRegLiveness: true
142 ; RV32-LABEL: name: test_ret_nxv32i8
145 ; RV32-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 32 x s8>) = COPY $v8
146 ; RV32-NEXT: $v8m4 = COPY [[COPY]](<vscale x 32 x s8>)
147 ; RV32-NEXT: PseudoRET implicit $v8m4
149 ; RV64-LABEL: name: test_ret_nxv32i8
152 ; RV64-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 32 x s8>) = COPY $v8
153 ; RV64-NEXT: $v8m4 = COPY [[COPY]](<vscale x 32 x s8>)
154 ; RV64-NEXT: PseudoRET implicit $v8m4
155 %0:_(<vscale x 32 x s8>) = COPY $v8
156 $v8m4 = COPY %0(<vscale x 32 x s8>)
157 PseudoRET implicit $v8m4
161 name: test_ret_nxv64i8
163 tracksRegLiveness: true
167 ; RV32-LABEL: name: test_ret_nxv64i8
170 ; RV32-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 64 x s8>) = COPY $v8
171 ; RV32-NEXT: $v8m8 = COPY [[COPY]](<vscale x 64 x s8>)
172 ; RV32-NEXT: PseudoRET implicit $v8m8
174 ; RV64-LABEL: name: test_ret_nxv64i8
177 ; RV64-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 64 x s8>) = COPY $v8
178 ; RV64-NEXT: $v8m8 = COPY [[COPY]](<vscale x 64 x s8>)
179 ; RV64-NEXT: PseudoRET implicit $v8m8
180 %0:_(<vscale x 64 x s8>) = COPY $v8
181 $v8m8 = COPY %0(<vscale x 64 x s8>)
182 PseudoRET implicit $v8m8
186 name: test_ret_nxv1i16
188 tracksRegLiveness: true
192 ; RV32-LABEL: name: test_ret_nxv1i16
195 ; RV32-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 1 x s16>) = COPY $v8
196 ; RV32-NEXT: $v8 = COPY [[COPY]](<vscale x 1 x s16>)
197 ; RV32-NEXT: PseudoRET implicit $v8
199 ; RV64-LABEL: name: test_ret_nxv1i16
202 ; RV64-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 1 x s16>) = COPY $v8
203 ; RV64-NEXT: $v8 = COPY [[COPY]](<vscale x 1 x s16>)
204 ; RV64-NEXT: PseudoRET implicit $v8
205 %0:_(<vscale x 1 x s16>) = COPY $v8
206 $v8 = COPY %0(<vscale x 1 x s16>)
207 PseudoRET implicit $v8
211 name: test_ret_nxv2i16
213 tracksRegLiveness: true
217 ; RV32-LABEL: name: test_ret_nxv2i16
220 ; RV32-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 2 x s16>) = COPY $v8
221 ; RV32-NEXT: $v8 = COPY [[COPY]](<vscale x 2 x s16>)
222 ; RV32-NEXT: PseudoRET implicit $v8
224 ; RV64-LABEL: name: test_ret_nxv2i16
227 ; RV64-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 2 x s16>) = COPY $v8
228 ; RV64-NEXT: $v8 = COPY [[COPY]](<vscale x 2 x s16>)
229 ; RV64-NEXT: PseudoRET implicit $v8
230 %0:_(<vscale x 2 x s16>) = COPY $v8
231 $v8 = COPY %0(<vscale x 2 x s16>)
232 PseudoRET implicit $v8
236 name: test_ret_nxv4i16
238 tracksRegLiveness: true
242 ; RV32-LABEL: name: test_ret_nxv4i16
245 ; RV32-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 4 x s16>) = COPY $v8
246 ; RV32-NEXT: $v8 = COPY [[COPY]](<vscale x 4 x s16>)
247 ; RV32-NEXT: PseudoRET implicit $v8
249 ; RV64-LABEL: name: test_ret_nxv4i16
252 ; RV64-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 4 x s16>) = COPY $v8
253 ; RV64-NEXT: $v8 = COPY [[COPY]](<vscale x 4 x s16>)
254 ; RV64-NEXT: PseudoRET implicit $v8
255 %0:_(<vscale x 4 x s16>) = COPY $v8
256 $v8 = COPY %0(<vscale x 4 x s16>)
257 PseudoRET implicit $v8
261 name: test_ret_nxv8i16
263 tracksRegLiveness: true
267 ; RV32-LABEL: name: test_ret_nxv8i16
270 ; RV32-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 8 x s16>) = COPY $v8
271 ; RV32-NEXT: $v8m2 = COPY [[COPY]](<vscale x 8 x s16>)
272 ; RV32-NEXT: PseudoRET implicit $v8m2
274 ; RV64-LABEL: name: test_ret_nxv8i16
277 ; RV64-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 8 x s16>) = COPY $v8
278 ; RV64-NEXT: $v8m2 = COPY [[COPY]](<vscale x 8 x s16>)
279 ; RV64-NEXT: PseudoRET implicit $v8m2
280 %0:_(<vscale x 8 x s16>) = COPY $v8
281 $v8m2 = COPY %0(<vscale x 8 x s16>)
282 PseudoRET implicit $v8m2
286 name: test_ret_nxv16i16
288 tracksRegLiveness: true
292 ; RV32-LABEL: name: test_ret_nxv16i16
295 ; RV32-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 16 x s16>) = COPY $v8
296 ; RV32-NEXT: $v8m4 = COPY [[COPY]](<vscale x 16 x s16>)
297 ; RV32-NEXT: PseudoRET implicit $v8m4
299 ; RV64-LABEL: name: test_ret_nxv16i16
302 ; RV64-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 16 x s16>) = COPY $v8
303 ; RV64-NEXT: $v8m4 = COPY [[COPY]](<vscale x 16 x s16>)
304 ; RV64-NEXT: PseudoRET implicit $v8m4
305 %0:_(<vscale x 16 x s16>) = COPY $v8
306 $v8m4 = COPY %0(<vscale x 16 x s16>)
307 PseudoRET implicit $v8m4
311 name: test_ret_nxv32i16
313 tracksRegLiveness: true
317 ; RV32-LABEL: name: test_ret_nxv32i16
320 ; RV32-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 32 x s16>) = COPY $v8
321 ; RV32-NEXT: $v8m8 = COPY [[COPY]](<vscale x 32 x s16>)
322 ; RV32-NEXT: PseudoRET implicit $v8m8
324 ; RV64-LABEL: name: test_ret_nxv32i16
327 ; RV64-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 32 x s16>) = COPY $v8
328 ; RV64-NEXT: $v8m8 = COPY [[COPY]](<vscale x 32 x s16>)
329 ; RV64-NEXT: PseudoRET implicit $v8m8
330 %0:_(<vscale x 32 x s16>) = COPY $v8
331 $v8m8 = COPY %0(<vscale x 32 x s16>)
332 PseudoRET implicit $v8m8
336 name: test_ret_nxv1i32
338 tracksRegLiveness: true
342 ; RV32-LABEL: name: test_ret_nxv1i32
345 ; RV32-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 1 x s32>) = COPY $v8
346 ; RV32-NEXT: $v8 = COPY [[COPY]](<vscale x 1 x s32>)
347 ; RV32-NEXT: PseudoRET implicit $v8
349 ; RV64-LABEL: name: test_ret_nxv1i32
352 ; RV64-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 1 x s32>) = COPY $v8
353 ; RV64-NEXT: $v8 = COPY [[COPY]](<vscale x 1 x s32>)
354 ; RV64-NEXT: PseudoRET implicit $v8
355 %0:_(<vscale x 1 x s32>) = COPY $v8
356 $v8 = COPY %0(<vscale x 1 x s32>)
357 PseudoRET implicit $v8
361 name: test_ret_nxv2i32
363 tracksRegLiveness: true
367 ; RV32-LABEL: name: test_ret_nxv2i32
370 ; RV32-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 2 x s32>) = COPY $v8
371 ; RV32-NEXT: $v8 = COPY [[COPY]](<vscale x 2 x s32>)
372 ; RV32-NEXT: PseudoRET implicit $v8
374 ; RV64-LABEL: name: test_ret_nxv2i32
377 ; RV64-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 2 x s32>) = COPY $v8
378 ; RV64-NEXT: $v8 = COPY [[COPY]](<vscale x 2 x s32>)
379 ; RV64-NEXT: PseudoRET implicit $v8
380 %0:_(<vscale x 2 x s32>) = COPY $v8
381 $v8 = COPY %0(<vscale x 2 x s32>)
382 PseudoRET implicit $v8
386 name: test_ret_nxv4i32
388 tracksRegLiveness: true
392 ; RV32-LABEL: name: test_ret_nxv4i32
395 ; RV32-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 4 x s32>) = COPY $v8
396 ; RV32-NEXT: $v8m2 = COPY [[COPY]](<vscale x 4 x s32>)
397 ; RV32-NEXT: PseudoRET implicit $v8m2
399 ; RV64-LABEL: name: test_ret_nxv4i32
402 ; RV64-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 4 x s32>) = COPY $v8
403 ; RV64-NEXT: $v8m2 = COPY [[COPY]](<vscale x 4 x s32>)
404 ; RV64-NEXT: PseudoRET implicit $v8m2
405 %0:_(<vscale x 4 x s32>) = COPY $v8
406 $v8m2 = COPY %0(<vscale x 4 x s32>)
407 PseudoRET implicit $v8m2
411 name: test_ret_nxv8i32
413 tracksRegLiveness: true
417 ; RV32-LABEL: name: test_ret_nxv8i32
420 ; RV32-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 8 x s32>) = COPY $v8
421 ; RV32-NEXT: $v8m4 = COPY [[COPY]](<vscale x 8 x s32>)
422 ; RV32-NEXT: PseudoRET implicit $v8m4
424 ; RV64-LABEL: name: test_ret_nxv8i32
427 ; RV64-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 8 x s32>) = COPY $v8
428 ; RV64-NEXT: $v8m4 = COPY [[COPY]](<vscale x 8 x s32>)
429 ; RV64-NEXT: PseudoRET implicit $v8m4
430 %0:_(<vscale x 8 x s32>) = COPY $v8
431 $v8m4 = COPY %0(<vscale x 8 x s32>)
432 PseudoRET implicit $v8m4
436 name: test_ret_nxv16i32
438 tracksRegLiveness: true
442 ; RV32-LABEL: name: test_ret_nxv16i32
445 ; RV32-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 16 x s32>) = COPY $v8
446 ; RV32-NEXT: $v8m8 = COPY [[COPY]](<vscale x 16 x s32>)
447 ; RV32-NEXT: PseudoRET implicit $v8m8
449 ; RV64-LABEL: name: test_ret_nxv16i32
452 ; RV64-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 16 x s32>) = COPY $v8
453 ; RV64-NEXT: $v8m8 = COPY [[COPY]](<vscale x 16 x s32>)
454 ; RV64-NEXT: PseudoRET implicit $v8m8
455 %0:_(<vscale x 16 x s32>) = COPY $v8
456 $v8m8 = COPY %0(<vscale x 16 x s32>)
457 PseudoRET implicit $v8m8
461 name: test_ret_nxv1i64
463 tracksRegLiveness: true
467 ; RV32-LABEL: name: test_ret_nxv1i64
470 ; RV32-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 1 x s64>) = COPY $v8
471 ; RV32-NEXT: $v8 = COPY [[COPY]](<vscale x 1 x s64>)
472 ; RV32-NEXT: PseudoRET implicit $v8
474 ; RV64-LABEL: name: test_ret_nxv1i64
477 ; RV64-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 1 x s64>) = COPY $v8
478 ; RV64-NEXT: $v8 = COPY [[COPY]](<vscale x 1 x s64>)
479 ; RV64-NEXT: PseudoRET implicit $v8
480 %0:_(<vscale x 1 x s64>) = COPY $v8
481 $v8 = COPY %0(<vscale x 1 x s64>)
482 PseudoRET implicit $v8
486 name: test_ret_nxv2i64
488 tracksRegLiveness: true
492 ; RV32-LABEL: name: test_ret_nxv2i64
495 ; RV32-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 2 x s64>) = COPY $v8
496 ; RV32-NEXT: $v8m2 = COPY [[COPY]](<vscale x 2 x s64>)
497 ; RV32-NEXT: PseudoRET implicit $v8m2
499 ; RV64-LABEL: name: test_ret_nxv2i64
502 ; RV64-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 2 x s64>) = COPY $v8
503 ; RV64-NEXT: $v8m2 = COPY [[COPY]](<vscale x 2 x s64>)
504 ; RV64-NEXT: PseudoRET implicit $v8m2
505 %0:_(<vscale x 2 x s64>) = COPY $v8
506 $v8m2 = COPY %0(<vscale x 2 x s64>)
507 PseudoRET implicit $v8m2
511 name: test_ret_nxv4i64
513 tracksRegLiveness: true
517 ; RV32-LABEL: name: test_ret_nxv4i64
520 ; RV32-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 4 x s64>) = COPY $v8
521 ; RV32-NEXT: $v8m4 = COPY [[COPY]](<vscale x 4 x s64>)
522 ; RV32-NEXT: PseudoRET implicit $v8m4
524 ; RV64-LABEL: name: test_ret_nxv4i64
527 ; RV64-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 4 x s64>) = COPY $v8
528 ; RV64-NEXT: $v8m4 = COPY [[COPY]](<vscale x 4 x s64>)
529 ; RV64-NEXT: PseudoRET implicit $v8m4
530 %0:_(<vscale x 4 x s64>) = COPY $v8
531 $v8m4 = COPY %0(<vscale x 4 x s64>)
532 PseudoRET implicit $v8m4
536 name: test_ret_nxv8i64
538 tracksRegLiveness: true
542 ; RV32-LABEL: name: test_ret_nxv8i64
545 ; RV32-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 8 x s64>) = COPY $v8
546 ; RV32-NEXT: $v8m8 = COPY [[COPY]](<vscale x 8 x s64>)
547 ; RV32-NEXT: PseudoRET implicit $v8m8
549 ; RV64-LABEL: name: test_ret_nxv8i64
552 ; RV64-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 8 x s64>) = COPY $v8
553 ; RV64-NEXT: $v8m8 = COPY [[COPY]](<vscale x 8 x s64>)
554 ; RV64-NEXT: PseudoRET implicit $v8m8
555 %0:_(<vscale x 8 x s64>) = COPY $v8
556 $v8m8 = COPY %0(<vscale x 8 x s64>)
557 PseudoRET implicit $v8m8
561 name: test_ret_nxv64i1
563 tracksRegLiveness: true
567 ; RV32-LABEL: name: test_ret_nxv64i1
570 ; RV32-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 64 x s1>) = COPY $v8
571 ; RV32-NEXT: $v8 = COPY [[COPY]](<vscale x 64 x s1>)
572 ; RV32-NEXT: PseudoRET implicit $v8
574 ; RV64-LABEL: name: test_ret_nxv64i1
577 ; RV64-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 64 x s1>) = COPY $v8
578 ; RV64-NEXT: $v8 = COPY [[COPY]](<vscale x 64 x s1>)
579 ; RV64-NEXT: PseudoRET implicit $v8
580 %0:_(<vscale x 64 x s1>) = COPY $v8
581 $v8 = COPY %0(<vscale x 64 x s1>)
582 PseudoRET implicit $v8
586 name: test_ret_nxv32i1
588 tracksRegLiveness: true
592 ; RV32-LABEL: name: test_ret_nxv32i1
595 ; RV32-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 32 x s1>) = COPY $v8
596 ; RV32-NEXT: $v8 = COPY [[COPY]](<vscale x 32 x s1>)
597 ; RV32-NEXT: PseudoRET implicit $v8
599 ; RV64-LABEL: name: test_ret_nxv32i1
602 ; RV64-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 32 x s1>) = COPY $v8
603 ; RV64-NEXT: $v8 = COPY [[COPY]](<vscale x 32 x s1>)
604 ; RV64-NEXT: PseudoRET implicit $v8
605 %0:_(<vscale x 32 x s1>) = COPY $v8
606 $v8 = COPY %0(<vscale x 32 x s1>)
607 PseudoRET implicit $v8
611 name: test_ret_nxv16i1
613 tracksRegLiveness: true
617 ; RV32-LABEL: name: test_ret_nxv16i1
620 ; RV32-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 16 x s1>) = COPY $v8
621 ; RV32-NEXT: $v8 = COPY [[COPY]](<vscale x 16 x s1>)
622 ; RV32-NEXT: PseudoRET implicit $v8
624 ; RV64-LABEL: name: test_ret_nxv16i1
627 ; RV64-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 16 x s1>) = COPY $v8
628 ; RV64-NEXT: $v8 = COPY [[COPY]](<vscale x 16 x s1>)
629 ; RV64-NEXT: PseudoRET implicit $v8
630 %0:_(<vscale x 16 x s1>) = COPY $v8
631 $v8 = COPY %0(<vscale x 16 x s1>)
632 PseudoRET implicit $v8
636 name: test_ret_nxv8i1
638 tracksRegLiveness: true
642 ; RV32-LABEL: name: test_ret_nxv8i1
645 ; RV32-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 8 x s1>) = COPY $v8
646 ; RV32-NEXT: $v8 = COPY [[COPY]](<vscale x 8 x s1>)
647 ; RV32-NEXT: PseudoRET implicit $v8
649 ; RV64-LABEL: name: test_ret_nxv8i1
652 ; RV64-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 8 x s1>) = COPY $v8
653 ; RV64-NEXT: $v8 = COPY [[COPY]](<vscale x 8 x s1>)
654 ; RV64-NEXT: PseudoRET implicit $v8
655 %0:_(<vscale x 8 x s1>) = COPY $v8
656 $v8 = COPY %0(<vscale x 8 x s1>)
657 PseudoRET implicit $v8
661 name: test_ret_nxv4i1
663 tracksRegLiveness: true
667 ; RV32-LABEL: name: test_ret_nxv4i1
670 ; RV32-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 4 x s1>) = COPY $v8
671 ; RV32-NEXT: $v8 = COPY [[COPY]](<vscale x 4 x s1>)
672 ; RV32-NEXT: PseudoRET implicit $v8
674 ; RV64-LABEL: name: test_ret_nxv4i1
677 ; RV64-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 4 x s1>) = COPY $v8
678 ; RV64-NEXT: $v8 = COPY [[COPY]](<vscale x 4 x s1>)
679 ; RV64-NEXT: PseudoRET implicit $v8
680 %0:_(<vscale x 4 x s1>) = COPY $v8
681 $v8 = COPY %0(<vscale x 4 x s1>)
682 PseudoRET implicit $v8
686 name: test_ret_nxv2i1
688 tracksRegLiveness: true
692 ; RV32-LABEL: name: test_ret_nxv2i1
695 ; RV32-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 2 x s1>) = COPY $v8
696 ; RV32-NEXT: $v8 = COPY [[COPY]](<vscale x 2 x s1>)
697 ; RV32-NEXT: PseudoRET implicit $v8
699 ; RV64-LABEL: name: test_ret_nxv2i1
702 ; RV64-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 2 x s1>) = COPY $v8
703 ; RV64-NEXT: $v8 = COPY [[COPY]](<vscale x 2 x s1>)
704 ; RV64-NEXT: PseudoRET implicit $v8
705 %0:_(<vscale x 2 x s1>) = COPY $v8
706 $v8 = COPY %0(<vscale x 2 x s1>)
707 PseudoRET implicit $v8
711 name: test_ret_nxv1i1
713 tracksRegLiveness: true
717 ; RV32-LABEL: name: test_ret_nxv1i1
720 ; RV32-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 1 x s1>) = COPY $v8
721 ; RV32-NEXT: $v8 = COPY [[COPY]](<vscale x 1 x s1>)
722 ; RV32-NEXT: PseudoRET implicit $v8
724 ; RV64-LABEL: name: test_ret_nxv1i1
727 ; RV64-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 1 x s1>) = COPY $v8
728 ; RV64-NEXT: $v8 = COPY [[COPY]](<vscale x 1 x s1>)
729 ; RV64-NEXT: PseudoRET implicit $v8
730 %0:_(<vscale x 1 x s1>) = COPY $v8
731 $v8 = COPY %0(<vscale x 1 x s1>)
732 PseudoRET implicit $v8
736 name: test_ret_nxv1f32
738 tracksRegLiveness: true
742 ; RV32-LABEL: name: test_ret_nxv1f32
745 ; RV32-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 1 x s32>) = COPY $v8
746 ; RV32-NEXT: $v8 = COPY [[COPY]](<vscale x 1 x s32>)
747 ; RV32-NEXT: PseudoRET implicit $v8
749 ; RV64-LABEL: name: test_ret_nxv1f32
752 ; RV64-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 1 x s32>) = COPY $v8
753 ; RV64-NEXT: $v8 = COPY [[COPY]](<vscale x 1 x s32>)
754 ; RV64-NEXT: PseudoRET implicit $v8
755 %0:_(<vscale x 1 x s32>) = COPY $v8
756 $v8 = COPY %0(<vscale x 1 x s32>)
757 PseudoRET implicit $v8
761 name: test_ret_nxv2f32
763 tracksRegLiveness: true
767 ; RV32-LABEL: name: test_ret_nxv2f32
770 ; RV32-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 2 x s32>) = COPY $v8
771 ; RV32-NEXT: $v8 = COPY [[COPY]](<vscale x 2 x s32>)
772 ; RV32-NEXT: PseudoRET implicit $v8
774 ; RV64-LABEL: name: test_ret_nxv2f32
777 ; RV64-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 2 x s32>) = COPY $v8
778 ; RV64-NEXT: $v8 = COPY [[COPY]](<vscale x 2 x s32>)
779 ; RV64-NEXT: PseudoRET implicit $v8
780 %0:_(<vscale x 2 x s32>) = COPY $v8
781 $v8 = COPY %0(<vscale x 2 x s32>)
782 PseudoRET implicit $v8
786 name: test_ret_nxv4f32
788 tracksRegLiveness: true
792 ; RV32-LABEL: name: test_ret_nxv4f32
795 ; RV32-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 4 x s32>) = COPY $v8
796 ; RV32-NEXT: $v8m2 = COPY [[COPY]](<vscale x 4 x s32>)
797 ; RV32-NEXT: PseudoRET implicit $v8m2
799 ; RV64-LABEL: name: test_ret_nxv4f32
802 ; RV64-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 4 x s32>) = COPY $v8
803 ; RV64-NEXT: $v8m2 = COPY [[COPY]](<vscale x 4 x s32>)
804 ; RV64-NEXT: PseudoRET implicit $v8m2
805 %0:_(<vscale x 4 x s32>) = COPY $v8
806 $v8m2 = COPY %0(<vscale x 4 x s32>)
807 PseudoRET implicit $v8m2
811 name: test_ret_nxv8f32
813 tracksRegLiveness: true
817 ; RV32-LABEL: name: test_ret_nxv8f32
820 ; RV32-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 8 x s32>) = COPY $v8
821 ; RV32-NEXT: $v8m4 = COPY [[COPY]](<vscale x 8 x s32>)
822 ; RV32-NEXT: PseudoRET implicit $v8m4
824 ; RV64-LABEL: name: test_ret_nxv8f32
827 ; RV64-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 8 x s32>) = COPY $v8
828 ; RV64-NEXT: $v8m4 = COPY [[COPY]](<vscale x 8 x s32>)
829 ; RV64-NEXT: PseudoRET implicit $v8m4
830 %0:_(<vscale x 8 x s32>) = COPY $v8
831 $v8m4 = COPY %0(<vscale x 8 x s32>)
832 PseudoRET implicit $v8m4
836 name: test_ret_nxv16f32
838 tracksRegLiveness: true
842 ; RV32-LABEL: name: test_ret_nxv16f32
845 ; RV32-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 16 x s32>) = COPY $v8
846 ; RV32-NEXT: $v8m8 = COPY [[COPY]](<vscale x 16 x s32>)
847 ; RV32-NEXT: PseudoRET implicit $v8m8
849 ; RV64-LABEL: name: test_ret_nxv16f32
852 ; RV64-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 16 x s32>) = COPY $v8
853 ; RV64-NEXT: $v8m8 = COPY [[COPY]](<vscale x 16 x s32>)
854 ; RV64-NEXT: PseudoRET implicit $v8m8
855 %0:_(<vscale x 16 x s32>) = COPY $v8
856 $v8m8 = COPY %0(<vscale x 16 x s32>)
857 PseudoRET implicit $v8m8
861 name: test_ret_nxv1f64
863 tracksRegLiveness: true
867 ; RV32-LABEL: name: test_ret_nxv1f64
870 ; RV32-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 1 x s64>) = COPY $v8
871 ; RV32-NEXT: $v8 = COPY [[COPY]](<vscale x 1 x s64>)
872 ; RV32-NEXT: PseudoRET implicit $v8
874 ; RV64-LABEL: name: test_ret_nxv1f64
877 ; RV64-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 1 x s64>) = COPY $v8
878 ; RV64-NEXT: $v8 = COPY [[COPY]](<vscale x 1 x s64>)
879 ; RV64-NEXT: PseudoRET implicit $v8
880 %0:_(<vscale x 1 x s64>) = COPY $v8
881 $v8 = COPY %0(<vscale x 1 x s64>)
882 PseudoRET implicit $v8
886 name: test_ret_nxv2f64
888 tracksRegLiveness: true
892 ; RV32-LABEL: name: test_ret_nxv2f64
895 ; RV32-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 2 x s64>) = COPY $v8
896 ; RV32-NEXT: $v8m2 = COPY [[COPY]](<vscale x 2 x s64>)
897 ; RV32-NEXT: PseudoRET implicit $v8m2
899 ; RV64-LABEL: name: test_ret_nxv2f64
902 ; RV64-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 2 x s64>) = COPY $v8
903 ; RV64-NEXT: $v8m2 = COPY [[COPY]](<vscale x 2 x s64>)
904 ; RV64-NEXT: PseudoRET implicit $v8m2
905 %0:_(<vscale x 2 x s64>) = COPY $v8
906 $v8m2 = COPY %0(<vscale x 2 x s64>)
907 PseudoRET implicit $v8m2
911 name: test_ret_nxv4f64
913 tracksRegLiveness: true
917 ; RV32-LABEL: name: test_ret_nxv4f64
920 ; RV32-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 4 x s64>) = COPY $v8
921 ; RV32-NEXT: $v8m4 = COPY [[COPY]](<vscale x 4 x s64>)
922 ; RV32-NEXT: PseudoRET implicit $v8m4
924 ; RV64-LABEL: name: test_ret_nxv4f64
927 ; RV64-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 4 x s64>) = COPY $v8
928 ; RV64-NEXT: $v8m4 = COPY [[COPY]](<vscale x 4 x s64>)
929 ; RV64-NEXT: PseudoRET implicit $v8m4
930 %0:_(<vscale x 4 x s64>) = COPY $v8
931 $v8m4 = COPY %0(<vscale x 4 x s64>)
932 PseudoRET implicit $v8m4
936 name: test_ret_nxv8f64
938 tracksRegLiveness: true
942 ; RV32-LABEL: name: test_ret_nxv8f64
945 ; RV32-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 8 x s64>) = COPY $v8
946 ; RV32-NEXT: $v8m8 = COPY [[COPY]](<vscale x 8 x s64>)
947 ; RV32-NEXT: PseudoRET implicit $v8m8
949 ; RV64-LABEL: name: test_ret_nxv8f64
952 ; RV64-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 8 x s64>) = COPY $v8
953 ; RV64-NEXT: $v8m8 = COPY [[COPY]](<vscale x 8 x s64>)
954 ; RV64-NEXT: PseudoRET implicit $v8m8
955 %0:_(<vscale x 8 x s64>) = COPY $v8
956 $v8m8 = COPY %0(<vscale x 8 x s64>)
957 PseudoRET implicit $v8m8
961 name: test_ret_nxv1f16
963 tracksRegLiveness: true
967 ; RV32-LABEL: name: test_ret_nxv1f16
970 ; RV32-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 1 x s16>) = COPY $v8
971 ; RV32-NEXT: $v8 = COPY [[COPY]](<vscale x 1 x s16>)
972 ; RV32-NEXT: PseudoRET implicit $v8
974 ; RV64-LABEL: name: test_ret_nxv1f16
977 ; RV64-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 1 x s16>) = COPY $v8
978 ; RV64-NEXT: $v8 = COPY [[COPY]](<vscale x 1 x s16>)
979 ; RV64-NEXT: PseudoRET implicit $v8
980 %0:_(<vscale x 1 x s16>) = COPY $v8
981 $v8 = COPY %0(<vscale x 1 x s16>)
982 PseudoRET implicit $v8
986 name: test_ret_nxv2f16
988 tracksRegLiveness: true
992 ; RV32-LABEL: name: test_ret_nxv2f16
995 ; RV32-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 2 x s16>) = COPY $v8
996 ; RV32-NEXT: $v8 = COPY [[COPY]](<vscale x 2 x s16>)
997 ; RV32-NEXT: PseudoRET implicit $v8
999 ; RV64-LABEL: name: test_ret_nxv2f16
1000 ; RV64: liveins: $v8
1002 ; RV64-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 2 x s16>) = COPY $v8
1003 ; RV64-NEXT: $v8 = COPY [[COPY]](<vscale x 2 x s16>)
1004 ; RV64-NEXT: PseudoRET implicit $v8
1005 %0:_(<vscale x 2 x s16>) = COPY $v8
1006 $v8 = COPY %0(<vscale x 2 x s16>)
1007 PseudoRET implicit $v8
1011 name: test_ret_nxv4f16
1013 tracksRegLiveness: true
1017 ; RV32-LABEL: name: test_ret_nxv4f16
1018 ; RV32: liveins: $v8
1020 ; RV32-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 4 x s16>) = COPY $v8
1021 ; RV32-NEXT: $v8 = COPY [[COPY]](<vscale x 4 x s16>)
1022 ; RV32-NEXT: PseudoRET implicit $v8
1024 ; RV64-LABEL: name: test_ret_nxv4f16
1025 ; RV64: liveins: $v8
1027 ; RV64-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 4 x s16>) = COPY $v8
1028 ; RV64-NEXT: $v8 = COPY [[COPY]](<vscale x 4 x s16>)
1029 ; RV64-NEXT: PseudoRET implicit $v8
1030 %0:_(<vscale x 4 x s16>) = COPY $v8
1031 $v8 = COPY %0(<vscale x 4 x s16>)
1032 PseudoRET implicit $v8
1036 name: test_ret_nxv8f16
1038 tracksRegLiveness: true
1042 ; RV32-LABEL: name: test_ret_nxv8f16
1043 ; RV32: liveins: $v8
1045 ; RV32-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 8 x s16>) = COPY $v8
1046 ; RV32-NEXT: $v8m2 = COPY [[COPY]](<vscale x 8 x s16>)
1047 ; RV32-NEXT: PseudoRET implicit $v8m2
1049 ; RV64-LABEL: name: test_ret_nxv8f16
1050 ; RV64: liveins: $v8
1052 ; RV64-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 8 x s16>) = COPY $v8
1053 ; RV64-NEXT: $v8m2 = COPY [[COPY]](<vscale x 8 x s16>)
1054 ; RV64-NEXT: PseudoRET implicit $v8m2
1055 %0:_(<vscale x 8 x s16>) = COPY $v8
1056 $v8m2 = COPY %0(<vscale x 8 x s16>)
1057 PseudoRET implicit $v8m2
1061 name: test_ret_nxv16f16
1063 tracksRegLiveness: true
1067 ; RV32-LABEL: name: test_ret_nxv16f16
1068 ; RV32: liveins: $v8
1070 ; RV32-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 16 x s16>) = COPY $v8
1071 ; RV32-NEXT: $v8m4 = COPY [[COPY]](<vscale x 16 x s16>)
1072 ; RV32-NEXT: PseudoRET implicit $v8m4
1074 ; RV64-LABEL: name: test_ret_nxv16f16
1075 ; RV64: liveins: $v8
1077 ; RV64-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 16 x s16>) = COPY $v8
1078 ; RV64-NEXT: $v8m4 = COPY [[COPY]](<vscale x 16 x s16>)
1079 ; RV64-NEXT: PseudoRET implicit $v8m4
1080 %0:_(<vscale x 16 x s16>) = COPY $v8
1081 $v8m4 = COPY %0(<vscale x 16 x s16>)
1082 PseudoRET implicit $v8m4
1086 name: test_ret_nxv32f16
1088 tracksRegLiveness: true
1092 ; RV32-LABEL: name: test_ret_nxv32f16
1093 ; RV32: liveins: $v8
1095 ; RV32-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 32 x s16>) = COPY $v8
1096 ; RV32-NEXT: $v8m8 = COPY [[COPY]](<vscale x 32 x s16>)
1097 ; RV32-NEXT: PseudoRET implicit $v8m8
1099 ; RV64-LABEL: name: test_ret_nxv32f16
1100 ; RV64: liveins: $v8
1102 ; RV64-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 32 x s16>) = COPY $v8
1103 ; RV64-NEXT: $v8m8 = COPY [[COPY]](<vscale x 32 x s16>)
1104 ; RV64-NEXT: PseudoRET implicit $v8m8
1105 %0:_(<vscale x 32 x s16>) = COPY $v8
1106 $v8m8 = COPY %0(<vscale x 32 x s16>)
1107 PseudoRET implicit $v8m8
1111 name: test_ret_nxv1b16
1113 tracksRegLiveness: true
1117 ; RV32-LABEL: name: test_ret_nxv1b16
1118 ; RV32: liveins: $v8
1120 ; RV32-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 1 x s16>) = COPY $v8
1121 ; RV32-NEXT: $v8 = COPY [[COPY]](<vscale x 1 x s16>)
1122 ; RV32-NEXT: PseudoRET implicit $v8
1124 ; RV64-LABEL: name: test_ret_nxv1b16
1125 ; RV64: liveins: $v8
1127 ; RV64-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 1 x s16>) = COPY $v8
1128 ; RV64-NEXT: $v8 = COPY [[COPY]](<vscale x 1 x s16>)
1129 ; RV64-NEXT: PseudoRET implicit $v8
1130 %0:_(<vscale x 1 x s16>) = COPY $v8
1131 $v8 = COPY %0(<vscale x 1 x s16>)
1132 PseudoRET implicit $v8
1136 name: test_ret_nxv2b16
1138 tracksRegLiveness: true
1142 ; RV32-LABEL: name: test_ret_nxv2b16
1143 ; RV32: liveins: $v8
1145 ; RV32-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 2 x s16>) = COPY $v8
1146 ; RV32-NEXT: $v8 = COPY [[COPY]](<vscale x 2 x s16>)
1147 ; RV32-NEXT: PseudoRET implicit $v8
1149 ; RV64-LABEL: name: test_ret_nxv2b16
1150 ; RV64: liveins: $v8
1152 ; RV64-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 2 x s16>) = COPY $v8
1153 ; RV64-NEXT: $v8 = COPY [[COPY]](<vscale x 2 x s16>)
1154 ; RV64-NEXT: PseudoRET implicit $v8
1155 %0:_(<vscale x 2 x s16>) = COPY $v8
1156 $v8 = COPY %0(<vscale x 2 x s16>)
1157 PseudoRET implicit $v8
1161 name: test_ret_nxv4b16
1163 tracksRegLiveness: true
1167 ; RV32-LABEL: name: test_ret_nxv4b16
1168 ; RV32: liveins: $v8
1170 ; RV32-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 4 x s16>) = COPY $v8
1171 ; RV32-NEXT: $v8 = COPY [[COPY]](<vscale x 4 x s16>)
1172 ; RV32-NEXT: PseudoRET implicit $v8
1174 ; RV64-LABEL: name: test_ret_nxv4b16
1175 ; RV64: liveins: $v8
1177 ; RV64-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 4 x s16>) = COPY $v8
1178 ; RV64-NEXT: $v8 = COPY [[COPY]](<vscale x 4 x s16>)
1179 ; RV64-NEXT: PseudoRET implicit $v8
1180 %0:_(<vscale x 4 x s16>) = COPY $v8
1181 $v8 = COPY %0(<vscale x 4 x s16>)
1182 PseudoRET implicit $v8
1186 name: test_ret_nxv8b16
1188 tracksRegLiveness: true
1192 ; RV32-LABEL: name: test_ret_nxv8b16
1193 ; RV32: liveins: $v8
1195 ; RV32-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 8 x s16>) = COPY $v8
1196 ; RV32-NEXT: $v8m2 = COPY [[COPY]](<vscale x 8 x s16>)
1197 ; RV32-NEXT: PseudoRET implicit $v8m2
1199 ; RV64-LABEL: name: test_ret_nxv8b16
1200 ; RV64: liveins: $v8
1202 ; RV64-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 8 x s16>) = COPY $v8
1203 ; RV64-NEXT: $v8m2 = COPY [[COPY]](<vscale x 8 x s16>)
1204 ; RV64-NEXT: PseudoRET implicit $v8m2
1205 %0:_(<vscale x 8 x s16>) = COPY $v8
1206 $v8m2 = COPY %0(<vscale x 8 x s16>)
1207 PseudoRET implicit $v8m2
1211 name: test_ret_nxv16b16
1213 tracksRegLiveness: true
1217 ; RV32-LABEL: name: test_ret_nxv16b16
1218 ; RV32: liveins: $v8
1220 ; RV32-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 16 x s16>) = COPY $v8
1221 ; RV32-NEXT: $v8m4 = COPY [[COPY]](<vscale x 16 x s16>)
1222 ; RV32-NEXT: PseudoRET implicit $v8m4
1224 ; RV64-LABEL: name: test_ret_nxv16b16
1225 ; RV64: liveins: $v8
1227 ; RV64-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 16 x s16>) = COPY $v8
1228 ; RV64-NEXT: $v8m4 = COPY [[COPY]](<vscale x 16 x s16>)
1229 ; RV64-NEXT: PseudoRET implicit $v8m4
1230 %0:_(<vscale x 16 x s16>) = COPY $v8
1231 $v8m4 = COPY %0(<vscale x 16 x s16>)
1232 PseudoRET implicit $v8m4
1236 name: test_ret_nxv32b16
1238 tracksRegLiveness: true
1242 ; RV32-LABEL: name: test_ret_nxv32b16
1243 ; RV32: liveins: $v8
1245 ; RV32-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 32 x s16>) = COPY $v8
1246 ; RV32-NEXT: $v8m8 = COPY [[COPY]](<vscale x 32 x s16>)
1247 ; RV32-NEXT: PseudoRET implicit $v8m8
1249 ; RV64-LABEL: name: test_ret_nxv32b16
1250 ; RV64: liveins: $v8
1252 ; RV64-NEXT: [[COPY:%[0-9]+]]:vrb(<vscale x 32 x s16>) = COPY $v8
1253 ; RV64-NEXT: $v8m8 = COPY [[COPY]](<vscale x 32 x s16>)
1254 ; RV64-NEXT: PseudoRET implicit $v8m8
1255 %0:_(<vscale x 32 x s16>) = COPY $v8
1256 $v8m8 = COPY %0(<vscale x 32 x s16>)
1257 PseudoRET implicit $v8m8