|
92 | 92 | ret void
|
93 | 93 | }
|
94 | 94 |
|
| 95 | + define void @coalesce_shrink_removed_vsetvlis_uses() { |
| 96 | + ret void |
| 97 | + } |
| 98 | + |
95 | 99 | declare <vscale x 1 x i64> @llvm.riscv.vadd.nxv1i64.nxv1i64.i64(<vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i64>, i64) #1
|
96 | 100 |
|
97 | 101 | declare <vscale x 1 x i64> @llvm.riscv.vle.nxv1i64.i64(<vscale x 1 x i64>, ptr nocapture, i64) #4
|
@@ -576,3 +580,25 @@ body: |
|
576 | 580 | $v0 = PseudoVADD_VV_M1 $noreg, $noreg, $noreg, 3, 6, 0
|
577 | 581 | PseudoRET
|
578 | 582 | ...
|
| 583 | +--- |
| 584 | +name: coalesce_shrink_removed_vsetvlis_uses |
| 585 | +tracksRegLiveness: true |
| 586 | +body: | |
| 587 | + bb.0: |
| 588 | + liveins: $x10, $v8 |
| 589 | + ; CHECK-LABEL: name: coalesce_shrink_removed_vsetvlis_uses |
| 590 | + ; CHECK: liveins: $x10, $v8 |
| 591 | + ; CHECK-NEXT: {{ $}} |
| 592 | + ; CHECK-NEXT: %avl1:gprnox0 = ADDI $x0, 1 |
| 593 | + ; CHECK-NEXT: %avl2:gprnox0 = ADDI $x0, 2 |
| 594 | + ; CHECK-NEXT: dead $x0 = PseudoVSETVLI %avl2, 209 /* e32, m2, ta, ma */, implicit-def $vl, implicit-def $vtype |
| 595 | + ; CHECK-NEXT: %x:gpr = COPY $x10 |
| 596 | + ; CHECK-NEXT: renamable $v8 = PseudoVMV_S_X undef renamable $v8, %x, 1, 5 /* e32 */, implicit $vl, implicit $vtype |
| 597 | + ; CHECK-NEXT: PseudoRET implicit $v8 |
| 598 | + %avl1:gprnox0 = ADDI $x0, 1 |
| 599 | + dead $x0 = PseudoVSETVLI %avl1:gprnox0, 209, implicit-def dead $vl, implicit-def dead $vtype |
| 600 | + %avl2:gprnox0 = ADDI $x0, 2 |
| 601 | + dead $x0 = PseudoVSETVLI %avl2:gprnox0, 209, implicit-def dead $vl, implicit-def dead $vtype |
| 602 | + %x:gpr = COPY $x10 |
| 603 | + renamable $v8 = PseudoVMV_S_X undef renamable $v8, killed renamable %x, 1, 5 |
| 604 | + PseudoRET implicit $v8 |
0 commit comments