|
1 | 1 | ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 2
|
2 |
| -; RUN: llc -mtriple=riscv32 -mattr=+v -verify-machineinstrs < %s | FileCheck -check-prefixes=CHECK,RV32 %s |
3 |
| -; RUN: llc -mtriple=riscv64 -mattr=+v -verify-machineinstrs < %s | FileCheck -check-prefixes=CHECK,RV64 %s |
| 2 | +; RUN: llc -mtriple=riscv32 -mattr=+v,+zfh,+experimental-zvfh -verify-machineinstrs < %s | FileCheck -check-prefixes=CHECK,RV32 %s |
| 3 | +; RUN: llc -mtriple=riscv64 -mattr=+v,+zfh,+experimental-zvfh -verify-machineinstrs < %s | FileCheck -check-prefixes=CHECK,RV64 %s |
4 | 4 |
|
5 | 5 | define void @store_v5i8(ptr %p, <5 x i8> %v) {
|
6 | 6 | ; CHECK-LABEL: store_v5i8:
|
@@ -103,56 +103,16 @@ define void @store_v6i16(ptr %p, <6 x i16> %v) {
|
103 | 103 | define void @store_v6f16(ptr %p, <6 x half> %v) {
|
104 | 104 | ; RV32-LABEL: store_v6f16:
|
105 | 105 | ; RV32: # %bb.0:
|
106 |
| -; RV32-NEXT: lh a2, 20(a1) |
107 |
| -; RV32-NEXT: lhu a3, 16(a1) |
108 |
| -; RV32-NEXT: slli a2, a2, 16 |
109 |
| -; RV32-NEXT: or a2, a3, a2 |
110 |
| -; RV32-NEXT: lh a3, 12(a1) |
111 |
| -; RV32-NEXT: lhu a4, 8(a1) |
112 |
| -; RV32-NEXT: lh a5, 4(a1) |
113 |
| -; RV32-NEXT: lhu a1, 0(a1) |
114 |
| -; RV32-NEXT: slli a3, a3, 16 |
115 |
| -; RV32-NEXT: or a3, a4, a3 |
116 |
| -; RV32-NEXT: slli a5, a5, 16 |
117 |
| -; RV32-NEXT: or a1, a1, a5 |
118 |
| -; RV32-NEXT: vsetivli zero, 4, e32, m1, ta, ma |
119 |
| -; RV32-NEXT: vslide1down.vx v8, v8, a1 |
120 |
| -; RV32-NEXT: vslide1down.vx v8, v8, a3 |
121 |
| -; RV32-NEXT: vslide1down.vx v8, v8, a2 |
122 |
| -; RV32-NEXT: vslidedown.vi v8, v8, 1 |
123 | 106 | ; RV32-NEXT: vsetivli zero, 1, e32, m1, ta, ma
|
124 |
| -; RV32-NEXT: vse32.v v8, (a0) |
125 | 107 | ; RV32-NEXT: vslidedown.vi v9, v8, 2
|
126 | 108 | ; RV32-NEXT: addi a1, a0, 8
|
127 | 109 | ; RV32-NEXT: vse32.v v9, (a1)
|
128 |
| -; RV32-NEXT: vslidedown.vi v8, v8, 1 |
129 |
| -; RV32-NEXT: addi a0, a0, 4 |
130 |
| -; RV32-NEXT: vse32.v v8, (a0) |
| 110 | +; RV32-NEXT: vsetivli zero, 4, e16, mf2, ta, ma |
| 111 | +; RV32-NEXT: vse16.v v8, (a0) |
131 | 112 | ; RV32-NEXT: ret
|
132 | 113 | ;
|
133 | 114 | ; RV64-LABEL: store_v6f16:
|
134 | 115 | ; RV64: # %bb.0:
|
135 |
| -; RV64-NEXT: lhu a2, 16(a1) |
136 |
| -; RV64-NEXT: lh a3, 24(a1) |
137 |
| -; RV64-NEXT: slli a2, a2, 32 |
138 |
| -; RV64-NEXT: lh a4, 8(a1) |
139 |
| -; RV64-NEXT: lhu a5, 0(a1) |
140 |
| -; RV64-NEXT: slli a3, a3, 48 |
141 |
| -; RV64-NEXT: or a2, a3, a2 |
142 |
| -; RV64-NEXT: slli a4, a4, 16 |
143 |
| -; RV64-NEXT: or a4, a5, a4 |
144 |
| -; RV64-NEXT: slli a4, a4, 32 |
145 |
| -; RV64-NEXT: lh a3, 40(a1) |
146 |
| -; RV64-NEXT: lhu a1, 32(a1) |
147 |
| -; RV64-NEXT: srli a4, a4, 32 |
148 |
| -; RV64-NEXT: or a2, a4, a2 |
149 |
| -; RV64-NEXT: slli a3, a3, 16 |
150 |
| -; RV64-NEXT: or a1, a1, a3 |
151 |
| -; RV64-NEXT: slli a1, a1, 32 |
152 |
| -; RV64-NEXT: srli a1, a1, 32 |
153 |
| -; RV64-NEXT: vsetivli zero, 2, e64, m1, ta, ma |
154 |
| -; RV64-NEXT: vslide1down.vx v8, v8, a2 |
155 |
| -; RV64-NEXT: vslide1down.vx v8, v8, a1 |
156 | 116 | ; RV64-NEXT: vsetivli zero, 1, e64, m1, ta, ma
|
157 | 117 | ; RV64-NEXT: vse64.v v8, (a0)
|
158 | 118 | ; RV64-NEXT: vsetivli zero, 1, e32, m1, ta, ma
|
|
0 commit comments