@@ -196,8 +196,7 @@ entry:
196196define void @buildvector_v8f32_const_splat (ptr %dst ) nounwind {
197197; CHECK-LABEL: buildvector_v8f32_const_splat:
198198; CHECK: # %bb.0: # %entry
199- ; CHECK-NEXT: lu12i.w $a1, 260096
200- ; CHECK-NEXT: xvreplgr2vr.w $xr0, $a1
199+ ; CHECK-NEXT: xvldi $xr0, -1424
201200; CHECK-NEXT: xvst $xr0, $a0, 0
202201; CHECK-NEXT: ret
203202entry:
@@ -207,19 +206,11 @@ entry:
207206
208207;; Also check buildvector_const_splat_xvldi_1100.
209208define 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
223214entry:
224215 store <4 x double > <double 1 .0 , double 1 .0 , double 1 .0 , double 1 .0 >, ptr %dst
225216 ret void
@@ -229,8 +220,7 @@ entry:
229220define void @buildvector_const_splat_xvldi_0001 (ptr %dst ) nounwind {
230221; CHECK-LABEL: buildvector_const_splat_xvldi_0001:
231222; CHECK: # %bb.0: # %entry
232- ; CHECK-NEXT: ori $a1, $zero, 768
233- ; CHECK-NEXT: xvreplgr2vr.w $xr0, $a1
223+ ; CHECK-NEXT: xvldi $xr0, -3837
234224; CHECK-NEXT: xvst $xr0, $a0, 0
235225; CHECK-NEXT: ret
236226entry:
@@ -241,8 +231,7 @@ entry:
241231define void @buildvector_const_splat_xvldi_0010 (ptr %dst ) nounwind {
242232; CHECK-LABEL: buildvector_const_splat_xvldi_0010:
243233; CHECK: # %bb.0: # %entry
244- ; CHECK-NEXT: lu12i.w $a1, 16
245- ; CHECK-NEXT: xvreplgr2vr.w $xr0, $a1
234+ ; CHECK-NEXT: xvldi $xr0, -3583
246235; CHECK-NEXT: xvst $xr0, $a0, 0
247236; CHECK-NEXT: ret
248237entry:
@@ -253,8 +242,7 @@ entry:
253242define void @buildvector_const_splat_xvldi_0011 (ptr %dst ) nounwind {
254243; CHECK-LABEL: buildvector_const_splat_xvldi_0011:
255244; CHECK: # %bb.0: # %entry
256- ; CHECK-NEXT: lu12i.w $a1, 4096
257- ; CHECK-NEXT: xvreplgr2vr.w $xr0, $a1
245+ ; CHECK-NEXT: xvldi $xr0, -3327
258246; CHECK-NEXT: xvst $xr0, $a0, 0
259247; CHECK-NEXT: ret
260248entry:
@@ -265,8 +253,7 @@ entry:
265253define void @buildvector_const_splat_xvldi_0101 (ptr %dst ) {
266254; CHECK-LABEL: buildvector_const_splat_xvldi_0101:
267255; CHECK: # %bb.0: # %entry
268- ; CHECK-NEXT: ori $a1, $zero, 768
269- ; CHECK-NEXT: xvreplgr2vr.h $xr0, $a1
256+ ; CHECK-NEXT: xvldi $xr0, -2813
270257; CHECK-NEXT: xvst $xr0, $a0, 0
271258; CHECK-NEXT: ret
272259entry:
@@ -277,8 +264,7 @@ entry:
277264define void @buildvector_const_splat_xvldi_0110 (ptr %dst ) nounwind {
278265; CHECK-LABEL: buildvector_const_splat_xvldi_0110:
279266; CHECK: # %bb.0: # %entry
280- ; CHECK-NEXT: ori $a1, $zero, 1023
281- ; CHECK-NEXT: xvreplgr2vr.w $xr0, $a1
267+ ; CHECK-NEXT: xvldi $xr0, -2557
282268; CHECK-NEXT: xvst $xr0, $a0, 0
283269; CHECK-NEXT: ret
284270entry:
@@ -289,9 +275,7 @@ entry:
289275define void @buildvector_const_splat_xvldi_0111 (ptr %dst ) nounwind {
290276; CHECK-LABEL: buildvector_const_splat_xvldi_0111:
291277; 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
295279; CHECK-NEXT: xvst $xr0, $a0, 0
296280; CHECK-NEXT: ret
297281entry:
@@ -300,39 +284,22 @@ entry:
300284}
301285
302286define 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
317292entry:
318293 store <8 x i32 > <i32 65535 , i32 0 , i32 65535 , i32 0 , i32 65535 , i32 0 , i32 65535 , i32 0 >, ptr %dst
319294 ret void
320295}
321296
322297define 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
336303entry:
337304 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
338305 ret void
@@ -1626,8 +1593,7 @@ define void @buildvector_v8f32_with_constant(ptr %dst, float %a1, float %a2, flo
16261593; CHECK-NEXT: # kill: def $f2 killed $f2 def $xr2
16271594; CHECK-NEXT: # kill: def $f1 killed $f1 def $xr1
16281595; 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
16311597; CHECK-NEXT: xvinsve0.w $xr4, $xr0, 1
16321598; CHECK-NEXT: xvinsve0.w $xr4, $xr1, 2
16331599; CHECK-NEXT: xvinsve0.w $xr4, $xr2, 5
0 commit comments