Skip to content

Commit 42b4092

Browse files
lukel97preames
authored andcommitted
[RISCV] Precommit vmv.v.v with undef passthru tests
1 parent 3fe6a06 commit 42b4092

File tree

2 files changed

+28
-0
lines changed

2 files changed

+28
-0
lines changed

llvm/test/CodeGen/RISCV/rvv/vmv.v.v-peephole.ll

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -194,3 +194,17 @@ define <vscale x 2 x i32> @unfoldable_mismatched_sew(<vscale x 2 x i32> %passthr
194194
%b = call <vscale x 2 x i32> @llvm.riscv.vmv.v.v.nxv2i32(<vscale x 2 x i32> %passthru, <vscale x 2 x i32> %a.bitcast, iXLen %avl)
195195
ret <vscale x 2 x i32> %b
196196
}
197+
198+
199+
define <vscale x 1 x i64> @undef_passthru(<vscale x 1 x i64> %passthru, <vscale x 1 x i64> %x, <vscale x 1 x i64> %y, iXLen %avl) {
200+
; CHECK-LABEL: undef_passthru:
201+
; CHECK: # %bb.0:
202+
; CHECK-NEXT: vsetvli zero, a0, e64, m1, tu, ma
203+
; CHECK-NEXT: vadd.vv v8, v9, v10
204+
; CHECK-NEXT: vsetvli zero, zero, e64, m1, ta, ma
205+
; CHECK-NEXT: vmv.v.v v8, v8
206+
; CHECK-NEXT: ret
207+
%a = call <vscale x 1 x i64> @llvm.riscv.vadd.nxv1i64.nxv1i64(<vscale x 1 x i64> %passthru, <vscale x 1 x i64> %x, <vscale x 1 x i64> %y, iXLen %avl)
208+
%b = call <vscale x 1 x i64> @llvm.riscv.vmv.v.v.nxv1i64(<vscale x 1 x i64> undef, <vscale x 1 x i64> %a, iXLen %avl)
209+
ret <vscale x 1 x i64> %b
210+
}

llvm/test/CodeGen/RISCV/rvv/vmv.v.v-peephole.mir

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,3 +60,17 @@ body: |
6060
%x:vr = PseudoVADD_VV_M1 $noreg, $noreg, $noreg, 4, 5 /* e32 */, 0 /* tu, mu */
6161
%y:vr = PseudoVMV_V_V_M1 $noreg, %x, 4, 5 /* e32 */, 0 /* tu, mu */
6262
...
63+
---
64+
name: undef_passthru
65+
body: |
66+
bb.0:
67+
liveins: $v8
68+
; CHECK-LABEL: name: undef_passthru
69+
; CHECK: liveins: $v8
70+
; CHECK-NEXT: {{ $}}
71+
; CHECK-NEXT: %passthru:vr = COPY $v8
72+
; CHECK-NEXT: %x:vr = PseudoVADD_VV_M1 %passthru, $noreg, $noreg, 4, 5 /* e32 */, 0 /* tu, mu */
73+
; CHECK-NEXT: %y:vr = PseudoVMV_V_V_M1 $noreg, %x, 4, 5 /* e32 */, 1 /* ta, mu */
74+
%passthru:vr = COPY $v8
75+
%x:vr = PseudoVADD_VV_M1 %passthru, $noreg, $noreg, 4, 5 /* e32 */, 0 /* tu, mu */
76+
%y:vr = PseudoVMV_V_V_M1 $noreg, %x, 4, 5 /* e32 */, 1 /* ta, mu */

0 commit comments

Comments
 (0)