|
3 | 3 | ; RUN: | FileCheck --check-prefix=SPILL-O0 %s
|
4 | 4 | ; RUN: llc -mtriple=riscv64 -mattr=+v -O2 < %s \
|
5 | 5 | ; 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 |
6 | 8 |
|
7 | 9 | define <vscale x 1 x i64> @spill_lmul_1(<vscale x 1 x i64> %va) nounwind {
|
8 | 10 | ; 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 {
|
35 | 37 | ; SPILL-O2-NEXT: add sp, sp, a0
|
36 | 38 | ; SPILL-O2-NEXT: addi sp, sp, 16
|
37 | 39 | ; 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 |
38 | 53 | entry:
|
39 | 54 | call void asm sideeffect "",
|
40 | 55 | "~{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 {
|
77 | 92 | ; SPILL-O2-NEXT: add sp, sp, a0
|
78 | 93 | ; SPILL-O2-NEXT: addi sp, sp, 16
|
79 | 94 | ; 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 |
80 | 108 | entry:
|
81 | 109 | call void asm sideeffect "",
|
82 | 110 | "~{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 {
|
119 | 147 | ; SPILL-O2-NEXT: add sp, sp, a0
|
120 | 148 | ; SPILL-O2-NEXT: addi sp, sp, 16
|
121 | 149 | ; 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 |
122 | 163 | entry:
|
123 | 164 | call void asm sideeffect "",
|
124 | 165 | "~{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 {
|
161 | 202 | ; SPILL-O2-NEXT: add sp, sp, a0
|
162 | 203 | ; SPILL-O2-NEXT: addi sp, sp, 16
|
163 | 204 | ; 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 |
164 | 218 | entry:
|
165 | 219 | call void asm sideeffect "",
|
166 | 220 | "~{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