Skip to content

Commit ec16b44

Browse files
committed
Precommit tests
1 parent 153f149 commit ec16b44

File tree

2 files changed

+36
-0
lines changed

2 files changed

+36
-0
lines changed

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

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -206,3 +206,21 @@ define <vscale x 1 x i64> @undef_passthru(<vscale x 1 x i64> %passthru, <vscale
206206
%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)
207207
ret <vscale x 1 x i64> %b
208208
}
209+
210+
; Check that we can fold into vle64ff.v even if we need to move it past the
211+
; passthru and it's safe.
212+
define <vscale x 1 x i64> @vleff_move_past_passthru(ptr %p, ptr %q, iXLen %avl) {
213+
; CHECK-LABEL: vleff_move_past_passthru:
214+
; CHECK: # %bb.0:
215+
; CHECK-NEXT: vsetvli zero, a2, e64, m1, ta, ma
216+
; CHECK-NEXT: vle64ff.v v9, (a0)
217+
; CHECK-NEXT: vl1re64.v v8, (a1)
218+
; CHECK-NEXT: vsetvli zero, a2, e64, m1, tu, ma
219+
; CHECK-NEXT: vmv.v.v v8, v9
220+
; CHECK-NEXT: ret
221+
%a = call { <vscale x 1 x i64>, iXLen } @llvm.riscv.vleff(<vscale x 1 x i64> poison, ptr %p, iXLen %avl)
222+
%vec = extractvalue { <vscale x 1 x i64>, iXLen } %a, 0
223+
%passthru = load <vscale x 1 x i64>, ptr %q
224+
%b = call <vscale x 1 x i64> @llvm.riscv.vmv.v.v.nxv1i64(<vscale x 1 x i64> %passthru, <vscale x 1 x i64> %vec, iXLen %avl)
225+
ret <vscale x 1 x i64> %b
226+
}

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

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,3 +135,21 @@ body: |
135135
%3:vrnov0 = PseudoVMV_V_V_MF2 $noreg, %2, 0, 5 /* e32 */, 0 /* tu, mu */
136136
%7:vmv0 = COPY $v8
137137
%6:vrnov0 = PseudoVLSE32_V_MF2_MASK %3, $noreg, $noreg, %7, 0, 5 /* e32 */, 0 /* tu, mu */ :: (load unknown-size, align 4)
138+
...
139+
---
140+
name: move_vleff
141+
body: |
142+
bb.0:
143+
liveins: $v8
144+
; CHECK-LABEL: name: move_vleff
145+
; CHECK: liveins: $v8
146+
; CHECK-NEXT: {{ $}}
147+
; CHECK-NEXT: %x:vr, %vl:gpr = PseudoVLE32FF_V_M1 $noreg, $noreg, 4, 5 /* e32 */, 0 /* tu, mu */ :: (load unknown-size, align 1)
148+
; CHECK-NEXT: %passthru:vr = COPY $v8
149+
; CHECK-NEXT: %y:gpr = ADDI $x0, 1
150+
; CHECK-NEXT: %z:vr = PseudoVMV_V_V_M1 %passthru, %x, 4, 5 /* e32 */, 0 /* tu, mu */
151+
%x:vr, %vl:gpr = PseudoVLE32FF_V_M1 $noreg, $noreg, 4, 5 /* e32 */, 0 /* tu, mu */ :: (load unknown-size)
152+
%passthru:vr = COPY $v8
153+
%y:gpr = ADDI $x0, 1
154+
%z:vr = PseudoVMV_V_V_M1 %passthru, %x, 4, 5 /* e32 */, 0 /* tu, mu */
155+
...

0 commit comments

Comments
 (0)