@@ -31,9 +31,8 @@ define void @combine_zero_stores_4xi8(ptr %p) {
31
31
define void @combine_zero_stores_8xi8 (ptr %p ) {
32
32
; RV32-LABEL: combine_zero_stores_8xi8:
33
33
; RV32: # %bb.0:
34
- ; RV32-NEXT: vsetivli zero, 2, e32, mf2, ta, ma
35
- ; RV32-NEXT: vmv.v.i v8, 0
36
- ; RV32-NEXT: vse32.v v8, (a0)
34
+ ; RV32-NEXT: sw zero, 0(a0)
35
+ ; RV32-NEXT: sw zero, 4(a0)
37
36
; RV32-NEXT: ret
38
37
;
39
38
; RV64-LABEL: combine_zero_stores_8xi8:
@@ -72,9 +71,8 @@ define void @combine_zero_stores_2xi16(ptr %p) {
72
71
define void @combine_zero_stores_4xi16 (ptr %p ) {
73
72
; RV32-LABEL: combine_zero_stores_4xi16:
74
73
; RV32: # %bb.0:
75
- ; RV32-NEXT: vsetivli zero, 2, e32, mf2, ta, ma
76
- ; RV32-NEXT: vmv.v.i v8, 0
77
- ; RV32-NEXT: vse32.v v8, (a0)
74
+ ; RV32-NEXT: sw zero, 0(a0)
75
+ ; RV32-NEXT: sw zero, 4(a0)
78
76
; RV32-NEXT: ret
79
77
;
80
78
; RV64-LABEL: combine_zero_stores_4xi16:
@@ -104,9 +102,8 @@ define void @combine_zero_stores_8xi16(ptr %p) {
104
102
;
105
103
; RV64-LABEL: combine_zero_stores_8xi16:
106
104
; RV64: # %bb.0:
107
- ; RV64-NEXT: vsetivli zero, 2, e64, m1, ta, ma
108
- ; RV64-NEXT: vmv.v.i v8, 0
109
- ; RV64-NEXT: vse64.v v8, (a0)
105
+ ; RV64-NEXT: sd zero, 0(a0)
106
+ ; RV64-NEXT: sd zero, 8(a0)
110
107
; RV64-NEXT: ret
111
108
store i16 zeroinitializer , ptr %p , align 16
112
109
%gep1 = getelementptr i16 , ptr %p , i64 1
@@ -129,9 +126,8 @@ define void @combine_zero_stores_8xi16(ptr %p) {
129
126
define void @combine_zero_stores_2xi32 (ptr %p ) {
130
127
; RV32-LABEL: combine_zero_stores_2xi32:
131
128
; RV32: # %bb.0:
132
- ; RV32-NEXT: vsetivli zero, 2, e32, mf2, ta, ma
133
- ; RV32-NEXT: vmv.v.i v8, 0
134
- ; RV32-NEXT: vse32.v v8, (a0)
129
+ ; RV32-NEXT: sw zero, 0(a0)
130
+ ; RV32-NEXT: sw zero, 4(a0)
135
131
; RV32-NEXT: ret
136
132
;
137
133
; RV64-LABEL: combine_zero_stores_2xi32:
@@ -154,9 +150,8 @@ define void @combine_zero_stores_4xi32(ptr %p) {
154
150
;
155
151
; RV64-LABEL: combine_zero_stores_4xi32:
156
152
; RV64: # %bb.0:
157
- ; RV64-NEXT: vsetivli zero, 2, e64, m1, ta, ma
158
- ; RV64-NEXT: vmv.v.i v8, 0
159
- ; RV64-NEXT: vse64.v v8, (a0)
153
+ ; RV64-NEXT: sd zero, 0(a0)
154
+ ; RV64-NEXT: sd zero, 8(a0)
160
155
; RV64-NEXT: ret
161
156
store i32 zeroinitializer , ptr %p , align 16
162
157
%gep1 = getelementptr i32 , ptr %p , i64 1
@@ -201,18 +196,11 @@ define void @combine_zero_stores_8xi32(ptr %p) {
201
196
}
202
197
203
198
define void @combine_zero_stores_2xi32_unaligned (ptr %p ) {
204
- ; RV32-LABEL: combine_zero_stores_2xi32_unaligned:
205
- ; RV32: # %bb.0:
206
- ; RV32-NEXT: vsetivli zero, 2, e32, mf2, ta, ma
207
- ; RV32-NEXT: vmv.v.i v8, 0
208
- ; RV32-NEXT: vse32.v v8, (a0)
209
- ; RV32-NEXT: ret
210
- ;
211
- ; RV64-LABEL: combine_zero_stores_2xi32_unaligned:
212
- ; RV64: # %bb.0:
213
- ; RV64-NEXT: sw zero, 0(a0)
214
- ; RV64-NEXT: sw zero, 4(a0)
215
- ; RV64-NEXT: ret
199
+ ; CHECK-LABEL: combine_zero_stores_2xi32_unaligned:
200
+ ; CHECK: # %bb.0:
201
+ ; CHECK-NEXT: sw zero, 0(a0)
202
+ ; CHECK-NEXT: sw zero, 4(a0)
203
+ ; CHECK-NEXT: ret
216
204
store i32 zeroinitializer , ptr %p
217
205
%gep = getelementptr i8 , ptr %p , i64 4
218
206
store i32 zeroinitializer , ptr %gep
@@ -230,9 +218,8 @@ define void @combine_zero_stores_2xi64(ptr %p) {
230
218
;
231
219
; RV64-LABEL: combine_zero_stores_2xi64:
232
220
; RV64: # %bb.0:
233
- ; RV64-NEXT: vsetivli zero, 2, e64, m1, ta, ma
234
- ; RV64-NEXT: vmv.v.i v8, 0
235
- ; RV64-NEXT: vse64.v v8, (a0)
221
+ ; RV64-NEXT: sd zero, 0(a0)
222
+ ; RV64-NEXT: sd zero, 8(a0)
236
223
; RV64-NEXT: ret
237
224
store i64 zeroinitializer , ptr %p
238
225
%gep = getelementptr i8 , ptr %p , i64 8
@@ -243,10 +230,8 @@ define void @combine_zero_stores_2xi64(ptr %p) {
243
230
define void @combine_fp_zero_stores_crash (ptr %ptr ) {
244
231
; CHECK-LABEL: combine_fp_zero_stores_crash:
245
232
; CHECK: # %bb.0:
246
- ; CHECK-NEXT: addi a0, a0, 4
247
- ; CHECK-NEXT: vsetivli zero, 2, e32, mf2, ta, ma
248
- ; CHECK-NEXT: vmv.v.i v8, 0
249
- ; CHECK-NEXT: vse32.v v8, (a0)
233
+ ; CHECK-NEXT: sw zero, 4(a0)
234
+ ; CHECK-NEXT: sw zero, 8(a0)
250
235
; CHECK-NEXT: ret
251
236
%addr1 = getelementptr float , ptr %ptr , i64 1
252
237
%addr2 = getelementptr float , ptr %ptr , i64 2
0 commit comments