@@ -196,8 +196,7 @@ entry:
196
196
define void @buildvector_v8f32_const_splat (ptr %dst ) nounwind {
197
197
; CHECK-LABEL: buildvector_v8f32_const_splat:
198
198
; CHECK: # %bb.0: # %entry
199
- ; CHECK-NEXT: lu12i.w $a1, 260096
200
- ; CHECK-NEXT: xvreplgr2vr.w $xr0, $a1
199
+ ; CHECK-NEXT: xvldi $xr0, -1424
201
200
; CHECK-NEXT: xvst $xr0, $a0, 0
202
201
; CHECK-NEXT: ret
203
202
entry:
@@ -207,19 +206,11 @@ entry:
207
206
208
207
;; Also check buildvector_const_splat_xvldi_1100.
209
208
define void @buildvector_v4f64_const_splat (ptr %dst ) nounwind {
210
- ; LA32-LABEL: buildvector_v4f64_const_splat:
211
- ; LA32: # %bb.0: # %entry
212
- ; LA32-NEXT: pcalau12i $a1, %pc_hi20(.LCPI14_0)
213
- ; LA32-NEXT: xvld $xr0, $a1, %pc_lo12(.LCPI14_0)
214
- ; LA32-NEXT: xvst $xr0, $a0, 0
215
- ; LA32-NEXT: ret
216
- ;
217
- ; LA64-LABEL: buildvector_v4f64_const_splat:
218
- ; LA64: # %bb.0: # %entry
219
- ; LA64-NEXT: lu52i.d $a1, $zero, 1023
220
- ; LA64-NEXT: xvreplgr2vr.d $xr0, $a1
221
- ; LA64-NEXT: xvst $xr0, $a0, 0
222
- ; LA64-NEXT: ret
209
+ ; CHECK-LABEL: buildvector_v4f64_const_splat:
210
+ ; CHECK: # %bb.0: # %entry
211
+ ; CHECK-NEXT: xvldi $xr0, -912
212
+ ; CHECK-NEXT: xvst $xr0, $a0, 0
213
+ ; CHECK-NEXT: ret
223
214
entry:
224
215
store <4 x double > <double 1 .0 , double 1 .0 , double 1 .0 , double 1 .0 >, ptr %dst
225
216
ret void
@@ -229,8 +220,7 @@ entry:
229
220
define void @buildvector_const_splat_xvldi_0001 (ptr %dst ) nounwind {
230
221
; CHECK-LABEL: buildvector_const_splat_xvldi_0001:
231
222
; CHECK: # %bb.0: # %entry
232
- ; CHECK-NEXT: ori $a1, $zero, 768
233
- ; CHECK-NEXT: xvreplgr2vr.w $xr0, $a1
223
+ ; CHECK-NEXT: xvldi $xr0, -3837
234
224
; CHECK-NEXT: xvst $xr0, $a0, 0
235
225
; CHECK-NEXT: ret
236
226
entry:
@@ -241,8 +231,7 @@ entry:
241
231
define void @buildvector_const_splat_xvldi_0010 (ptr %dst ) nounwind {
242
232
; CHECK-LABEL: buildvector_const_splat_xvldi_0010:
243
233
; CHECK: # %bb.0: # %entry
244
- ; CHECK-NEXT: lu12i.w $a1, 16
245
- ; CHECK-NEXT: xvreplgr2vr.w $xr0, $a1
234
+ ; CHECK-NEXT: xvldi $xr0, -3583
246
235
; CHECK-NEXT: xvst $xr0, $a0, 0
247
236
; CHECK-NEXT: ret
248
237
entry:
@@ -253,8 +242,7 @@ entry:
253
242
define void @buildvector_const_splat_xvldi_0011 (ptr %dst ) nounwind {
254
243
; CHECK-LABEL: buildvector_const_splat_xvldi_0011:
255
244
; CHECK: # %bb.0: # %entry
256
- ; CHECK-NEXT: lu12i.w $a1, 4096
257
- ; CHECK-NEXT: xvreplgr2vr.w $xr0, $a1
245
+ ; CHECK-NEXT: xvldi $xr0, -3327
258
246
; CHECK-NEXT: xvst $xr0, $a0, 0
259
247
; CHECK-NEXT: ret
260
248
entry:
@@ -265,8 +253,7 @@ entry:
265
253
define void @buildvector_const_splat_xvldi_0101 (ptr %dst ) {
266
254
; CHECK-LABEL: buildvector_const_splat_xvldi_0101:
267
255
; CHECK: # %bb.0: # %entry
268
- ; CHECK-NEXT: ori $a1, $zero, 768
269
- ; CHECK-NEXT: xvreplgr2vr.h $xr0, $a1
256
+ ; CHECK-NEXT: xvldi $xr0, -2813
270
257
; CHECK-NEXT: xvst $xr0, $a0, 0
271
258
; CHECK-NEXT: ret
272
259
entry:
@@ -277,8 +264,7 @@ entry:
277
264
define void @buildvector_const_splat_xvldi_0110 (ptr %dst ) nounwind {
278
265
; CHECK-LABEL: buildvector_const_splat_xvldi_0110:
279
266
; CHECK: # %bb.0: # %entry
280
- ; CHECK-NEXT: ori $a1, $zero, 1023
281
- ; CHECK-NEXT: xvreplgr2vr.w $xr0, $a1
267
+ ; CHECK-NEXT: xvldi $xr0, -2557
282
268
; CHECK-NEXT: xvst $xr0, $a0, 0
283
269
; CHECK-NEXT: ret
284
270
entry:
@@ -289,9 +275,7 @@ entry:
289
275
define void @buildvector_const_splat_xvldi_0111 (ptr %dst ) nounwind {
290
276
; CHECK-LABEL: buildvector_const_splat_xvldi_0111:
291
277
; CHECK: # %bb.0: # %entry
292
- ; CHECK-NEXT: lu12i.w $a1, 15
293
- ; CHECK-NEXT: ori $a1, $a1, 4095
294
- ; CHECK-NEXT: xvreplgr2vr.w $xr0, $a1
278
+ ; CHECK-NEXT: xvldi $xr0, -2305
295
279
; CHECK-NEXT: xvst $xr0, $a0, 0
296
280
; CHECK-NEXT: ret
297
281
entry:
@@ -300,39 +284,22 @@ entry:
300
284
}
301
285
302
286
define void @buildvector_const_splat_xvldi_1001 (ptr %dst ) nounwind {
303
- ; LA32-LABEL: buildvector_const_splat_xvldi_1001:
304
- ; LA32: # %bb.0: # %entry
305
- ; LA32-NEXT: pcalau12i $a1, %pc_hi20(.LCPI21_0)
306
- ; LA32-NEXT: xvld $xr0, $a1, %pc_lo12(.LCPI21_0)
307
- ; LA32-NEXT: xvst $xr0, $a0, 0
308
- ; LA32-NEXT: ret
309
- ;
310
- ; LA64-LABEL: buildvector_const_splat_xvldi_1001:
311
- ; LA64: # %bb.0: # %entry
312
- ; LA64-NEXT: lu12i.w $a1, 15
313
- ; LA64-NEXT: ori $a1, $a1, 4095
314
- ; LA64-NEXT: xvreplgr2vr.d $xr0, $a1
315
- ; LA64-NEXT: xvst $xr0, $a0, 0
316
- ; LA64-NEXT: ret
287
+ ; CHECK-LABEL: buildvector_const_splat_xvldi_1001:
288
+ ; CHECK: # %bb.0: # %entry
289
+ ; CHECK-NEXT: xvldi $xr0, -1789
290
+ ; CHECK-NEXT: xvst $xr0, $a0, 0
291
+ ; CHECK-NEXT: ret
317
292
entry:
318
293
store <8 x i32 > <i32 65535 , i32 0 , i32 65535 , i32 0 , i32 65535 , i32 0 , i32 65535 , i32 0 >, ptr %dst
319
294
ret void
320
295
}
321
296
322
297
define void @buildvector_const_splat_xvldi_1011 (ptr %dst ) nounwind {
323
- ; LA32-LABEL: buildvector_const_splat_xvldi_1011:
324
- ; LA32: # %bb.0: # %entry
325
- ; LA32-NEXT: pcalau12i $a1, %pc_hi20(.LCPI22_0)
326
- ; LA32-NEXT: xvld $xr0, $a1, %pc_lo12(.LCPI22_0)
327
- ; LA32-NEXT: xvst $xr0, $a0, 0
328
- ; LA32-NEXT: ret
329
- ;
330
- ; LA64-LABEL: buildvector_const_splat_xvldi_1011:
331
- ; LA64: # %bb.0: # %entry
332
- ; LA64-NEXT: lu12i.w $a1, 262144
333
- ; LA64-NEXT: xvreplgr2vr.d $xr0, $a1
334
- ; LA64-NEXT: xvst $xr0, $a0, 0
335
- ; LA64-NEXT: ret
298
+ ; CHECK-LABEL: buildvector_const_splat_xvldi_1011:
299
+ ; CHECK: # %bb.0: # %entry
300
+ ; CHECK-NEXT: xvldi $xr0, -1280
301
+ ; CHECK-NEXT: xvst $xr0, $a0, 0
302
+ ; CHECK-NEXT: ret
336
303
entry:
337
304
store <8 x float > <float 2 .0 , float 0 .0 , float 2 .0 , float 0 .0 , float 2 .0 , float 0 .0 , float 2 .0 , float 0 .0 >, ptr %dst
338
305
ret void
@@ -1626,8 +1593,7 @@ define void @buildvector_v8f32_with_constant(ptr %dst, float %a1, float %a2, flo
1626
1593
; CHECK-NEXT: # kill: def $f2 killed $f2 def $xr2
1627
1594
; CHECK-NEXT: # kill: def $f1 killed $f1 def $xr1
1628
1595
; CHECK-NEXT: # kill: def $f0 killed $f0 def $xr0
1629
- ; CHECK-NEXT: lu12i.w $a1, 262144
1630
- ; CHECK-NEXT: xvreplgr2vr.w $xr4, $a1
1596
+ ; CHECK-NEXT: xvldi $xr4, -3264
1631
1597
; CHECK-NEXT: xvinsve0.w $xr4, $xr0, 1
1632
1598
; CHECK-NEXT: xvinsve0.w $xr4, $xr1, 2
1633
1599
; CHECK-NEXT: xvinsve0.w $xr4, $xr2, 5
0 commit comments