Skip to content

Commit 5b23e09

Browse files
committed
Precommit test
1 parent ddf40e0 commit 5b23e09

File tree

1 file changed

+45
-0
lines changed

1 file changed

+45
-0
lines changed

llvm/test/CodeGen/RISCV/rvv/remat.ll

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,3 +109,48 @@ define void @vid_passthru(ptr %p, <vscale x 8 x i64> %v) {
109109
store volatile <vscale x 8 x i64> %vid, ptr %p
110110
ret void
111111
}
112+
113+
define void @vmv.v.i(ptr %p) {
114+
; CHECK-LABEL: vmv.v.i:
115+
; CHECK: # %bb.0:
116+
; CHECK-NEXT: addi sp, sp, -16
117+
; CHECK-NEXT: .cfi_def_cfa_offset 16
118+
; CHECK-NEXT: csrr a1, vlenb
119+
; CHECK-NEXT: slli a1, a1, 3
120+
; CHECK-NEXT: sub sp, sp, a1
121+
; CHECK-NEXT: .cfi_escape 0x0f, 0x0d, 0x72, 0x00, 0x11, 0x10, 0x22, 0x11, 0x08, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # sp + 16 + 8 * vlenb
122+
; CHECK-NEXT: vsetvli a1, zero, e64, m8, ta, ma
123+
; CHECK-NEXT: vmv.v.i v8, 1
124+
; CHECK-NEXT: vs8r.v v8, (a0)
125+
; CHECK-NEXT: vl8re64.v v16, (a0)
126+
; CHECK-NEXT: addi a1, sp, 16
127+
; CHECK-NEXT: vs8r.v v16, (a1) # Unknown-size Folded Spill
128+
; CHECK-NEXT: vl8re64.v v24, (a0)
129+
; CHECK-NEXT: vl8re64.v v0, (a0)
130+
; CHECK-NEXT: vl8re64.v v16, (a0)
131+
; CHECK-NEXT: vs8r.v v16, (a0)
132+
; CHECK-NEXT: vs8r.v v0, (a0)
133+
; CHECK-NEXT: vs8r.v v24, (a0)
134+
; CHECK-NEXT: vl8r.v v16, (a1) # Unknown-size Folded Reload
135+
; CHECK-NEXT: vs8r.v v16, (a0)
136+
; CHECK-NEXT: vs8r.v v8, (a0)
137+
; CHECK-NEXT: csrr a0, vlenb
138+
; CHECK-NEXT: slli a0, a0, 3
139+
; CHECK-NEXT: add sp, sp, a0
140+
; CHECK-NEXT: addi sp, sp, 16
141+
; CHECK-NEXT: ret
142+
%vmv.v.i = call <vscale x 8 x i64> @llvm.riscv.vmv.v.x.nxv8i64(<vscale x 8 x i64> poison, i64 1, i64 -1)
143+
store volatile <vscale x 8 x i64> %vmv.v.i, ptr %p
144+
145+
%a = load volatile <vscale x 8 x i64>, ptr %p
146+
%b = load volatile <vscale x 8 x i64>, ptr %p
147+
%c = load volatile <vscale x 8 x i64>, ptr %p
148+
%d = load volatile <vscale x 8 x i64>, ptr %p
149+
store volatile <vscale x 8 x i64> %d, ptr %p
150+
store volatile <vscale x 8 x i64> %c, ptr %p
151+
store volatile <vscale x 8 x i64> %b, ptr %p
152+
store volatile <vscale x 8 x i64> %a, ptr %p
153+
154+
store volatile <vscale x 8 x i64> %vmv.v.i, ptr %p
155+
ret void
156+
}

0 commit comments

Comments
 (0)