1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 2
2 # RUN: llc -mtriple=riscv32 -run-pass=legalizer %s -o - \
6 define i1 @phi_i1(i1 %cnd, i1 %a, i1 %b) {
8 br i1 %cnd, label %cond.end, label %cond.false
10 cond.false: ; preds = %entry
13 cond.end: ; preds = %entry, %cond.false
14 %cond = phi i1 [ %b, %cond.false ], [ %a, %entry ]
18 define i8 @phi_i8(i1 %cnd, i8 %a, i8 %b) {
20 br i1 %cnd, label %cond.end, label %cond.false
22 cond.false: ; preds = %entry
25 cond.end: ; preds = %entry, %cond.false
26 %cond = phi i8 [ %b, %cond.false ], [ %a, %entry ]
30 define i16 @phi_i16(i1 %cnd, i16 %a, i16 %b) {
32 br i1 %cnd, label %cond.end, label %cond.false
34 cond.false: ; preds = %entry
37 cond.end: ; preds = %entry, %cond.false
38 %cond = phi i16 [ %b, %cond.false ], [ %a, %entry ]
42 define i32 @phi_i32(i1 %cnd, i32 %a, i32 %b) {
44 br i1 %cnd, label %cond.end, label %cond.false
46 cond.false: ; preds = %entry
49 cond.end: ; preds = %entry, %cond.false
50 %cond = phi i32 [ %b, %cond.false ], [ %a, %entry ]
54 define ptr @phi_ptr(i1 %cnd, ptr %a, ptr %b) {
56 br i1 %cnd, label %cond.end, label %cond.false
58 cond.false: ; preds = %entry
61 cond.end: ; preds = %entry, %cond.false
62 %cond = phi ptr [ %b, %cond.false ], [ %a, %entry ]
66 define i48 @phi_i48(i1 %cnd, i48 %a, i48 %b) {
68 br i1 %cnd, label %cond.end, label %cond.false
70 cond.false: ; preds = %entry
73 cond.end: ; preds = %entry, %cond.false
74 %cond = phi i48 [ %b, %cond.false ], [ %a, %entry ]
78 define i64 @phi_i64(i1 %cnd, i64 %a, i64 %b) {
80 br i1 %cnd, label %cond.end, label %cond.false
82 cond.false: ; preds = %entry
85 cond.end: ; preds = %entry, %cond.false
86 %cond = phi i64 [ %b, %cond.false ], [ %a, %entry ]
90 define i72 @phi_i72(i1 %cnd, i72 %a, i72 %b) {
92 br i1 %cnd, label %cond.end, label %cond.false
94 cond.false: ; preds = %entry
97 cond.end: ; preds = %entry, %cond.false
98 %cond = phi i72 [ %b, %cond.false ], [ %a, %entry ]
106 tracksRegLiveness: true
108 - { id: 0, class: _ }
109 - { id: 1, class: _ }
110 - { id: 2, class: _ }
111 - { id: 3, class: _ }
112 - { id: 4, class: _ }
113 - { id: 5, class: _ }
114 - { id: 6, class: _ }
115 - { id: 7, class: _ }
122 ; CHECK-LABEL: name: phi_i1
124 ; CHECK-NEXT: successors: %bb.2(0x40000000), %bb.1(0x40000000)
125 ; CHECK-NEXT: liveins: $x10, $x11, $x12
127 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $x10
128 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11
129 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $x12
130 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
131 ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY]], [[C]]
132 ; CHECK-NEXT: G_BRCOND [[AND]](s32), %bb.2
133 ; CHECK-NEXT: G_BR %bb.1
135 ; CHECK-NEXT: bb.1.cond.false:
136 ; CHECK-NEXT: successors: %bb.2(0x80000000)
138 ; CHECK-NEXT: bb.2.cond.end:
139 ; CHECK-NEXT: [[PHI:%[0-9]+]]:_(s32) = G_PHI [[COPY2]](s32), %bb.1, [[COPY1]](s32), %bb.0
140 ; CHECK-NEXT: $x10 = COPY [[PHI]](s32)
141 ; CHECK-NEXT: PseudoRET implicit $x10
143 liveins: $x10, $x11, $x12
145 %3:_(s32) = COPY $x10
146 %0:_(s1) = G_TRUNC %3(s32)
147 %4:_(s32) = COPY $x11
148 %1:_(s1) = G_TRUNC %4(s32)
149 %5:_(s32) = COPY $x12
150 %2:_(s1) = G_TRUNC %5(s32)
151 G_BRCOND %0(s1), %bb.3
157 %6:_(s1) = G_PHI %2(s1), %bb.2, %1(s1), %bb.1
158 %7:_(s32) = G_ANYEXT %6(s1)
160 PseudoRET implicit $x10
166 tracksRegLiveness: true
168 - { id: 0, class: _ }
169 - { id: 1, class: _ }
170 - { id: 2, class: _ }
171 - { id: 3, class: _ }
172 - { id: 4, class: _ }
173 - { id: 5, class: _ }
174 - { id: 6, class: _ }
175 - { id: 7, class: _ }
182 ; CHECK-LABEL: name: phi_i8
184 ; CHECK-NEXT: successors: %bb.2(0x40000000), %bb.1(0x40000000)
185 ; CHECK-NEXT: liveins: $x10, $x11, $x12
187 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $x10
188 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11
189 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $x12
190 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
191 ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY]], [[C]]
192 ; CHECK-NEXT: G_BRCOND [[AND]](s32), %bb.2
193 ; CHECK-NEXT: G_BR %bb.1
195 ; CHECK-NEXT: bb.1.cond.false:
196 ; CHECK-NEXT: successors: %bb.2(0x80000000)
198 ; CHECK-NEXT: bb.2.cond.end:
199 ; CHECK-NEXT: [[PHI:%[0-9]+]]:_(s32) = G_PHI [[COPY2]](s32), %bb.1, [[COPY1]](s32), %bb.0
200 ; CHECK-NEXT: $x10 = COPY [[PHI]](s32)
201 ; CHECK-NEXT: PseudoRET implicit $x10
203 liveins: $x10, $x11, $x12
205 %3:_(s32) = COPY $x10
206 %0:_(s1) = G_TRUNC %3(s32)
207 %4:_(s32) = COPY $x11
208 %1:_(s8) = G_TRUNC %4(s32)
209 %5:_(s32) = COPY $x12
210 %2:_(s8) = G_TRUNC %5(s32)
211 G_BRCOND %0(s1), %bb.3
217 %6:_(s8) = G_PHI %2(s8), %bb.2, %1(s8), %bb.1
218 %7:_(s32) = G_ANYEXT %6(s8)
220 PseudoRET implicit $x10
226 tracksRegLiveness: true
228 - { id: 0, class: _ }
229 - { id: 1, class: _ }
230 - { id: 2, class: _ }
231 - { id: 3, class: _ }
232 - { id: 4, class: _ }
233 - { id: 5, class: _ }
234 - { id: 6, class: _ }
235 - { id: 7, class: _ }
242 ; CHECK-LABEL: name: phi_i16
244 ; CHECK-NEXT: successors: %bb.2(0x40000000), %bb.1(0x40000000)
245 ; CHECK-NEXT: liveins: $x10, $x11, $x12
247 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $x10
248 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11
249 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $x12
250 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
251 ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY]], [[C]]
252 ; CHECK-NEXT: G_BRCOND [[AND]](s32), %bb.2
253 ; CHECK-NEXT: G_BR %bb.1
255 ; CHECK-NEXT: bb.1.cond.false:
256 ; CHECK-NEXT: successors: %bb.2(0x80000000)
258 ; CHECK-NEXT: bb.2.cond.end:
259 ; CHECK-NEXT: [[PHI:%[0-9]+]]:_(s32) = G_PHI [[COPY2]](s32), %bb.1, [[COPY1]](s32), %bb.0
260 ; CHECK-NEXT: $x10 = COPY [[PHI]](s32)
261 ; CHECK-NEXT: PseudoRET implicit $x10
263 liveins: $x10, $x11, $x12
265 %3:_(s32) = COPY $x10
266 %0:_(s1) = G_TRUNC %3(s32)
267 %4:_(s32) = COPY $x11
268 %1:_(s16) = G_TRUNC %4(s32)
269 %5:_(s32) = COPY $x12
270 %2:_(s16) = G_TRUNC %5(s32)
271 G_BRCOND %0(s1), %bb.3
277 %6:_(s16) = G_PHI %2(s16), %bb.2, %1(s16), %bb.1
278 %7:_(s32) = G_ANYEXT %6(s16)
280 PseudoRET implicit $x10
286 tracksRegLiveness: true
288 - { id: 0, class: _ }
289 - { id: 1, class: _ }
290 - { id: 2, class: _ }
291 - { id: 3, class: _ }
292 - { id: 4, class: _ }
299 ; CHECK-LABEL: name: phi_i32
301 ; CHECK-NEXT: successors: %bb.2(0x40000000), %bb.1(0x40000000)
302 ; CHECK-NEXT: liveins: $x10, $x11, $x12
304 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $x10
305 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11
306 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $x12
307 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
308 ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY]], [[C]]
309 ; CHECK-NEXT: G_BRCOND [[AND]](s32), %bb.2
310 ; CHECK-NEXT: G_BR %bb.1
312 ; CHECK-NEXT: bb.1.cond.false:
313 ; CHECK-NEXT: successors: %bb.2(0x80000000)
315 ; CHECK-NEXT: bb.2.cond.end:
316 ; CHECK-NEXT: [[PHI:%[0-9]+]]:_(s32) = G_PHI [[COPY2]](s32), %bb.1, [[COPY1]](s32), %bb.0
317 ; CHECK-NEXT: $x10 = COPY [[PHI]](s32)
318 ; CHECK-NEXT: PseudoRET implicit $x10
320 liveins: $x10, $x11, $x12
322 %3:_(s32) = COPY $x10
323 %0:_(s1) = G_TRUNC %3(s32)
324 %1:_(s32) = COPY $x11
325 %2:_(s32) = COPY $x12
326 G_BRCOND %0(s1), %bb.3
332 %4:_(s32) = G_PHI %2(s32), %bb.2, %1(s32), %bb.1
334 PseudoRET implicit $x10
340 tracksRegLiveness: true
342 - { id: 0, class: _ }
343 - { id: 1, class: _ }
344 - { id: 2, class: _ }
345 - { id: 3, class: _ }
346 - { id: 4, class: _ }
353 ; CHECK-LABEL: name: phi_ptr
355 ; CHECK-NEXT: successors: %bb.2(0x40000000), %bb.1(0x40000000)
356 ; CHECK-NEXT: liveins: $x10, $x11, $x12
358 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $x10
359 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(p0) = COPY $x11
360 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(p0) = COPY $x12
361 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
362 ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY]], [[C]]
363 ; CHECK-NEXT: G_BRCOND [[AND]](s32), %bb.2
364 ; CHECK-NEXT: G_BR %bb.1
366 ; CHECK-NEXT: bb.1.cond.false:
367 ; CHECK-NEXT: successors: %bb.2(0x80000000)
369 ; CHECK-NEXT: bb.2.cond.end:
370 ; CHECK-NEXT: [[PHI:%[0-9]+]]:_(p0) = G_PHI [[COPY2]](p0), %bb.1, [[COPY1]](p0), %bb.0
371 ; CHECK-NEXT: $x10 = COPY [[PHI]](p0)
372 ; CHECK-NEXT: PseudoRET implicit $x10
374 liveins: $x10, $x11, $x12
376 %3:_(s32) = COPY $x10
377 %0:_(s1) = G_TRUNC %3(s32)
380 G_BRCOND %0(s1), %bb.3
386 %4:_(p0) = G_PHI %2(p0), %bb.2, %1(p0), %bb.1
388 PseudoRET implicit $x10
394 tracksRegLiveness: true
396 - { id: 0, class: _ }
397 - { id: 1, class: _ }
398 - { id: 2, class: _ }
399 - { id: 3, class: _ }
400 - { id: 4, class: _ }
401 - { id: 5, class: _ }
402 - { id: 6, class: _ }
403 - { id: 7, class: _ }
404 - { id: 8, class: _ }
405 - { id: 9, class: _ }
406 - { id: 10, class: _ }
407 - { id: 11, class: _ }
408 - { id: 12, class: _ }
409 - { id: 13, class: _ }
416 ; CHECK-LABEL: name: phi_i48
418 ; CHECK-NEXT: successors: %bb.2(0x40000000), %bb.1(0x40000000)
419 ; CHECK-NEXT: liveins: $x10, $x11, $x12, $x13, $x14
421 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $x10
422 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11
423 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $x12
424 ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $x13
425 ; CHECK-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $x14
426 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
427 ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY]], [[C]]
428 ; CHECK-NEXT: G_BRCOND [[AND]](s32), %bb.2
429 ; CHECK-NEXT: G_BR %bb.1
431 ; CHECK-NEXT: bb.1.cond.false:
432 ; CHECK-NEXT: successors: %bb.2(0x80000000)
434 ; CHECK-NEXT: bb.2.cond.end:
435 ; CHECK-NEXT: [[PHI:%[0-9]+]]:_(s32) = G_PHI [[COPY3]](s32), %bb.1, [[COPY1]](s32), %bb.0
436 ; CHECK-NEXT: [[PHI1:%[0-9]+]]:_(s32) = G_PHI [[COPY4]](s32), %bb.1, [[COPY2]](s32), %bb.0
437 ; CHECK-NEXT: $x10 = COPY [[PHI]](s32)
438 ; CHECK-NEXT: $x11 = COPY [[PHI1]](s32)
439 ; CHECK-NEXT: PseudoRET implicit $x10, implicit $x11
441 liveins: $x10, $x11, $x12, $x13, $x14
443 %3:_(s32) = COPY $x10
444 %0:_(s1) = G_TRUNC %3(s32)
445 %4:_(s32) = COPY $x11
446 %5:_(s32) = COPY $x12
447 %6:_(s64) = G_MERGE_VALUES %4(s32), %5(s32)
448 %1:_(s48) = G_TRUNC %6(s64)
449 %7:_(s32) = COPY $x13
450 %8:_(s32) = COPY $x14
451 %9:_(s64) = G_MERGE_VALUES %7(s32), %8(s32)
452 %2:_(s48) = G_TRUNC %9(s64)
453 G_BRCOND %0(s1), %bb.3
459 %10:_(s48) = G_PHI %2(s48), %bb.2, %1(s48), %bb.1
460 %13:_(s64) = G_ANYEXT %10(s48)
461 %11:_(s32), %12:_(s32) = G_UNMERGE_VALUES %13(s64)
464 PseudoRET implicit $x10, implicit $x11
470 tracksRegLiveness: true
472 - { id: 0, class: _ }
473 - { id: 1, class: _ }
474 - { id: 2, class: _ }
475 - { id: 3, class: _ }
476 - { id: 4, class: _ }
477 - { id: 5, class: _ }
478 - { id: 6, class: _ }
479 - { id: 7, class: _ }
480 - { id: 8, class: _ }
481 - { id: 9, class: _ }
482 - { id: 10, class: _ }
489 ; CHECK-LABEL: name: phi_i64
491 ; CHECK-NEXT: successors: %bb.2(0x40000000), %bb.1(0x40000000)
492 ; CHECK-NEXT: liveins: $x10, $x11, $x12, $x13, $x14
494 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $x10
495 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11
496 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $x12
497 ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $x13
498 ; CHECK-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $x14
499 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
500 ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY]], [[C]]
501 ; CHECK-NEXT: G_BRCOND [[AND]](s32), %bb.2
502 ; CHECK-NEXT: G_BR %bb.1
504 ; CHECK-NEXT: bb.1.cond.false:
505 ; CHECK-NEXT: successors: %bb.2(0x80000000)
507 ; CHECK-NEXT: bb.2.cond.end:
508 ; CHECK-NEXT: [[PHI:%[0-9]+]]:_(s32) = G_PHI [[COPY3]](s32), %bb.1, [[COPY1]](s32), %bb.0
509 ; CHECK-NEXT: [[PHI1:%[0-9]+]]:_(s32) = G_PHI [[COPY4]](s32), %bb.1, [[COPY2]](s32), %bb.0
510 ; CHECK-NEXT: $x10 = COPY [[PHI]](s32)
511 ; CHECK-NEXT: $x11 = COPY [[PHI1]](s32)
512 ; CHECK-NEXT: PseudoRET implicit $x10, implicit $x11
514 liveins: $x10, $x11, $x12, $x13, $x14
516 %3:_(s32) = COPY $x10
517 %0:_(s1) = G_TRUNC %3(s32)
518 %4:_(s32) = COPY $x11
519 %5:_(s32) = COPY $x12
520 %1:_(s64) = G_MERGE_VALUES %4(s32), %5(s32)
521 %6:_(s32) = COPY $x13
522 %7:_(s32) = COPY $x14
523 %2:_(s64) = G_MERGE_VALUES %6(s32), %7(s32)
524 G_BRCOND %0(s1), %bb.3
530 %8:_(s64) = G_PHI %2(s64), %bb.2, %1(s64), %bb.1
531 %9:_(s32), %10:_(s32) = G_UNMERGE_VALUES %8(s64)
534 PseudoRET implicit $x10, implicit $x11
540 tracksRegLiveness: true
542 - { id: 0, class: _ }
543 - { id: 1, class: _ }
544 - { id: 2, class: _ }
545 - { id: 3, class: _ }
546 - { id: 4, class: _ }
547 - { id: 5, class: _ }
548 - { id: 6, class: _ }
549 - { id: 7, class: _ }
550 - { id: 8, class: _ }
551 - { id: 9, class: _ }
552 - { id: 10, class: _ }
553 - { id: 11, class: _ }
554 - { id: 12, class: _ }
555 - { id: 13, class: _ }
556 - { id: 14, class: _ }
557 - { id: 15, class: _ }
558 - { id: 16, class: _ }
565 ; CHECK-LABEL: name: phi_i72
567 ; CHECK-NEXT: successors: %bb.2(0x40000000), %bb.1(0x40000000)
568 ; CHECK-NEXT: liveins: $x10, $x11, $x12
570 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $x10
571 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11
572 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $x11
573 ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $x11
574 ; CHECK-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $x12
575 ; CHECK-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $x12
576 ; CHECK-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $x12
577 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
578 ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY]], [[C]]
579 ; CHECK-NEXT: G_BRCOND [[AND]](s32), %bb.2
580 ; CHECK-NEXT: G_BR %bb.1
582 ; CHECK-NEXT: bb.1.cond.false:
583 ; CHECK-NEXT: successors: %bb.2(0x80000000)
585 ; CHECK-NEXT: bb.2.cond.end:
586 ; CHECK-NEXT: [[PHI:%[0-9]+]]:_(s32) = G_PHI [[COPY4]](s32), %bb.1, [[COPY1]](s32), %bb.0
587 ; CHECK-NEXT: [[PHI1:%[0-9]+]]:_(s32) = G_PHI [[COPY5]](s32), %bb.1, [[COPY2]](s32), %bb.0
588 ; CHECK-NEXT: [[PHI2:%[0-9]+]]:_(s32) = G_PHI [[COPY6]](s32), %bb.1, [[COPY3]](s32), %bb.0
589 ; CHECK-NEXT: $x10 = COPY [[PHI]](s32)
590 ; CHECK-NEXT: $x10 = COPY [[PHI1]](s32)
591 ; CHECK-NEXT: $x10 = COPY [[PHI2]](s32)
592 ; CHECK-NEXT: PseudoRET implicit $x10, implicit $x10, implicit $x10
594 liveins: $x10, $x11, $x12
596 %3:_(s32) = COPY $x10
597 %0:_(s1) = G_TRUNC %3(s32)
598 %4:_(s32) = COPY $x11
599 %5:_(s32) = COPY $x11
600 %6:_(s32) = COPY $x11
601 %7:_(s96) = G_MERGE_VALUES %4(s32), %5(s32), %6(s32)
602 %1:_(s72) = G_TRUNC %7(s96)
603 %8:_(s32) = COPY $x12
604 %9:_(s32) = COPY $x12
605 %10:_(s32) = COPY $x12
606 %11:_(s96) = G_MERGE_VALUES %8(s32), %9(s32), %10(s32)
607 %2:_(s72) = G_TRUNC %11(s96)
608 G_BRCOND %0(s1), %bb.3
614 %12:_(s72) = G_PHI %2(s72), %bb.2, %1(s72), %bb.1
615 %16:_(s96) = G_ANYEXT %12(s72)
616 %13:_(s32), %14:_(s32), %15:_(s32) = G_UNMERGE_VALUES %16(s96)
620 PseudoRET implicit $x10, implicit $x10, implicit $x10