|
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