Skip to content

Commit 6da8ff8

Browse files
committed
[RISCV] Add explicit VLS test line for vector spill/fill
I got asked about this offline and realized we didn't really have tests specific to the VLS frame lowering.
1 parent ad2bdd8 commit 6da8ff8

File tree

1 file changed

+54
-0
lines changed

1 file changed

+54
-0
lines changed

llvm/test/CodeGen/RISCV/rvv/rv64-spill-vector.ll

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
; RUN: | FileCheck --check-prefix=SPILL-O0 %s
44
; RUN: llc -mtriple=riscv64 -mattr=+v -O2 < %s \
55
; RUN: | FileCheck --check-prefix=SPILL-O2 %s
6+
; RUN: llc -mtriple=riscv64 -mattr=+v,+d -mattr=+d -riscv-v-vector-bits-max=128 -O2 < %s \
7+
; RUN: | FileCheck --check-prefix=SPILL-O2-VLEN128 %s
68

79
define <vscale x 1 x i64> @spill_lmul_1(<vscale x 1 x i64> %va) nounwind {
810
; SPILL-O0-LABEL: spill_lmul_1:
@@ -35,6 +37,19 @@ define <vscale x 1 x i64> @spill_lmul_1(<vscale x 1 x i64> %va) nounwind {
3537
; SPILL-O2-NEXT: add sp, sp, a0
3638
; SPILL-O2-NEXT: addi sp, sp, 16
3739
; SPILL-O2-NEXT: ret
40+
;
41+
; SPILL-O2-VLEN128-LABEL: spill_lmul_1:
42+
; SPILL-O2-VLEN128: # %bb.0: # %entry
43+
; SPILL-O2-VLEN128-NEXT: addi sp, sp, -16
44+
; SPILL-O2-VLEN128-NEXT: addi sp, sp, -16
45+
; SPILL-O2-VLEN128-NEXT: addi a0, sp, 16
46+
; SPILL-O2-VLEN128-NEXT: vs1r.v v8, (a0) # Unknown-size Folded Spill
47+
; SPILL-O2-VLEN128-NEXT: #APP
48+
; SPILL-O2-VLEN128-NEXT: #NO_APP
49+
; SPILL-O2-VLEN128-NEXT: vl1r.v v8, (a0) # Unknown-size Folded Reload
50+
; SPILL-O2-VLEN128-NEXT: addi sp, sp, 16
51+
; SPILL-O2-VLEN128-NEXT: addi sp, sp, 16
52+
; SPILL-O2-VLEN128-NEXT: ret
3853
entry:
3954
call void asm sideeffect "",
4055
"~{v0},~{v1},~{v2},~{v3},~{v4},~{v5},~{v6},~{v7},~{v8},~{v9},~{v10},~{v11},~{v12},~{v13},~{v14},~{v15},~{v16},~{v17},~{v18},~{v19},~{v20},~{v21},~{v22},~{v23},~{v24},~{v25},~{v26},~{v27},~{v28},~{v29},~{v30},~{v31}"()
@@ -77,6 +92,19 @@ define <vscale x 2 x i64> @spill_lmul_2(<vscale x 2 x i64> %va) nounwind {
7792
; SPILL-O2-NEXT: add sp, sp, a0
7893
; SPILL-O2-NEXT: addi sp, sp, 16
7994
; SPILL-O2-NEXT: ret
95+
;
96+
; SPILL-O2-VLEN128-LABEL: spill_lmul_2:
97+
; SPILL-O2-VLEN128: # %bb.0: # %entry
98+
; SPILL-O2-VLEN128-NEXT: addi sp, sp, -16
99+
; SPILL-O2-VLEN128-NEXT: addi sp, sp, -32
100+
; SPILL-O2-VLEN128-NEXT: addi a0, sp, 16
101+
; SPILL-O2-VLEN128-NEXT: vs2r.v v8, (a0) # Unknown-size Folded Spill
102+
; SPILL-O2-VLEN128-NEXT: #APP
103+
; SPILL-O2-VLEN128-NEXT: #NO_APP
104+
; SPILL-O2-VLEN128-NEXT: vl2r.v v8, (a0) # Unknown-size Folded Reload
105+
; SPILL-O2-VLEN128-NEXT: addi sp, sp, 32
106+
; SPILL-O2-VLEN128-NEXT: addi sp, sp, 16
107+
; SPILL-O2-VLEN128-NEXT: ret
80108
entry:
81109
call void asm sideeffect "",
82110
"~{v0},~{v1},~{v2},~{v3},~{v4},~{v5},~{v6},~{v7},~{v8},~{v9},~{v10},~{v11},~{v12},~{v13},~{v14},~{v15},~{v16},~{v17},~{v18},~{v19},~{v20},~{v21},~{v22},~{v23},~{v24},~{v25},~{v26},~{v27},~{v28},~{v29},~{v30},~{v31}"()
@@ -119,6 +147,19 @@ define <vscale x 4 x i64> @spill_lmul_4(<vscale x 4 x i64> %va) nounwind {
119147
; SPILL-O2-NEXT: add sp, sp, a0
120148
; SPILL-O2-NEXT: addi sp, sp, 16
121149
; SPILL-O2-NEXT: ret
150+
;
151+
; SPILL-O2-VLEN128-LABEL: spill_lmul_4:
152+
; SPILL-O2-VLEN128: # %bb.0: # %entry
153+
; SPILL-O2-VLEN128-NEXT: addi sp, sp, -16
154+
; SPILL-O2-VLEN128-NEXT: addi sp, sp, -64
155+
; SPILL-O2-VLEN128-NEXT: addi a0, sp, 16
156+
; SPILL-O2-VLEN128-NEXT: vs4r.v v8, (a0) # Unknown-size Folded Spill
157+
; SPILL-O2-VLEN128-NEXT: #APP
158+
; SPILL-O2-VLEN128-NEXT: #NO_APP
159+
; SPILL-O2-VLEN128-NEXT: vl4r.v v8, (a0) # Unknown-size Folded Reload
160+
; SPILL-O2-VLEN128-NEXT: addi sp, sp, 64
161+
; SPILL-O2-VLEN128-NEXT: addi sp, sp, 16
162+
; SPILL-O2-VLEN128-NEXT: ret
122163
entry:
123164
call void asm sideeffect "",
124165
"~{v0},~{v1},~{v2},~{v3},~{v4},~{v5},~{v6},~{v7},~{v8},~{v9},~{v10},~{v11},~{v12},~{v13},~{v14},~{v15},~{v16},~{v17},~{v18},~{v19},~{v20},~{v21},~{v22},~{v23},~{v24},~{v25},~{v26},~{v27},~{v28},~{v29},~{v30},~{v31}"()
@@ -161,6 +202,19 @@ define <vscale x 8 x i64> @spill_lmul_8(<vscale x 8 x i64> %va) nounwind {
161202
; SPILL-O2-NEXT: add sp, sp, a0
162203
; SPILL-O2-NEXT: addi sp, sp, 16
163204
; SPILL-O2-NEXT: ret
205+
;
206+
; SPILL-O2-VLEN128-LABEL: spill_lmul_8:
207+
; SPILL-O2-VLEN128: # %bb.0: # %entry
208+
; SPILL-O2-VLEN128-NEXT: addi sp, sp, -16
209+
; SPILL-O2-VLEN128-NEXT: addi sp, sp, -128
210+
; SPILL-O2-VLEN128-NEXT: addi a0, sp, 16
211+
; SPILL-O2-VLEN128-NEXT: vs8r.v v8, (a0) # Unknown-size Folded Spill
212+
; SPILL-O2-VLEN128-NEXT: #APP
213+
; SPILL-O2-VLEN128-NEXT: #NO_APP
214+
; SPILL-O2-VLEN128-NEXT: vl8r.v v8, (a0) # Unknown-size Folded Reload
215+
; SPILL-O2-VLEN128-NEXT: addi sp, sp, 128
216+
; SPILL-O2-VLEN128-NEXT: addi sp, sp, 16
217+
; SPILL-O2-VLEN128-NEXT: ret
164218
entry:
165219
call void asm sideeffect "",
166220
"~{v0},~{v1},~{v2},~{v3},~{v4},~{v5},~{v6},~{v7},~{v8},~{v9},~{v10},~{v11},~{v12},~{v13},~{v14},~{v15},~{v16},~{v17},~{v18},~{v19},~{v20},~{v21},~{v22},~{v23},~{v24},~{v25},~{v26},~{v27},~{v28},~{v29},~{v30},~{v31}"()

0 commit comments

Comments
 (0)