@@ -201,8 +201,7 @@ entry:
201201define void @buildvector_v8f32_const_splat (ptr %dst ) nounwind {
202202; CHECK-LABEL: buildvector_v8f32_const_splat:
203203; CHECK: # %bb.0: # %entry
204- ; CHECK-NEXT: lu12i.w $a1, 260096
205- ; CHECK-NEXT: xvreplgr2vr.w $xr0, $a1
204+ ; CHECK-NEXT: xvldi $xr0, -1424
206205; CHECK-NEXT: xvst $xr0, $a0, 0
207206; CHECK-NEXT: ret
208207entry:
@@ -212,19 +211,11 @@ entry:
212211
213212;; Also check buildvector_const_splat_xvldi_1100.
214213define void @buildvector_v4f64_const_splat (ptr %dst ) nounwind {
215- ; LA32-LABEL: buildvector_v4f64_const_splat:
216- ; LA32: # %bb.0: # %entry
217- ; LA32-NEXT: pcalau12i $a1, %pc_hi20(.LCPI14_0)
218- ; LA32-NEXT: xvld $xr0, $a1, %pc_lo12(.LCPI14_0)
219- ; LA32-NEXT: xvst $xr0, $a0, 0
220- ; LA32-NEXT: ret
221- ;
222- ; LA64-LABEL: buildvector_v4f64_const_splat:
223- ; LA64: # %bb.0: # %entry
224- ; LA64-NEXT: lu52i.d $a1, $zero, 1023
225- ; LA64-NEXT: xvreplgr2vr.d $xr0, $a1
226- ; LA64-NEXT: xvst $xr0, $a0, 0
227- ; LA64-NEXT: ret
214+ ; CHECK-LABEL: buildvector_v4f64_const_splat:
215+ ; CHECK: # %bb.0: # %entry
216+ ; CHECK-NEXT: xvldi $xr0, -912
217+ ; CHECK-NEXT: xvst $xr0, $a0, 0
218+ ; CHECK-NEXT: ret
228219entry:
229220 store <4 x double > <double 1 .0 , double 1 .0 , double 1 .0 , double 1 .0 >, ptr %dst
230221 ret void
@@ -234,8 +225,7 @@ entry:
234225define void @buildvector_const_splat_xvldi_0001 (ptr %dst ) nounwind {
235226; CHECK-LABEL: buildvector_const_splat_xvldi_0001:
236227; CHECK: # %bb.0: # %entry
237- ; CHECK-NEXT: ori $a1, $zero, 768
238- ; CHECK-NEXT: xvreplgr2vr.w $xr0, $a1
228+ ; CHECK-NEXT: xvldi $xr0, -3837
239229; CHECK-NEXT: xvst $xr0, $a0, 0
240230; CHECK-NEXT: ret
241231entry:
@@ -246,8 +236,7 @@ entry:
246236define void @buildvector_const_splat_xvldi_0010 (ptr %dst ) nounwind {
247237; CHECK-LABEL: buildvector_const_splat_xvldi_0010:
248238; CHECK: # %bb.0: # %entry
249- ; CHECK-NEXT: lu12i.w $a1, 16
250- ; CHECK-NEXT: xvreplgr2vr.w $xr0, $a1
239+ ; CHECK-NEXT: xvldi $xr0, -3583
251240; CHECK-NEXT: xvst $xr0, $a0, 0
252241; CHECK-NEXT: ret
253242entry:
@@ -258,8 +247,7 @@ entry:
258247define void @buildvector_const_splat_xvldi_0011 (ptr %dst ) nounwind {
259248; CHECK-LABEL: buildvector_const_splat_xvldi_0011:
260249; CHECK: # %bb.0: # %entry
261- ; CHECK-NEXT: lu12i.w $a1, 4096
262- ; CHECK-NEXT: xvreplgr2vr.w $xr0, $a1
250+ ; CHECK-NEXT: xvldi $xr0, -3327
263251; CHECK-NEXT: xvst $xr0, $a0, 0
264252; CHECK-NEXT: ret
265253entry:
@@ -270,8 +258,7 @@ entry:
270258define void @buildvector_const_splat_xvldi_0101 (ptr %dst ) {
271259; CHECK-LABEL: buildvector_const_splat_xvldi_0101:
272260; CHECK: # %bb.0: # %entry
273- ; CHECK-NEXT: ori $a1, $zero, 768
274- ; CHECK-NEXT: xvreplgr2vr.h $xr0, $a1
261+ ; CHECK-NEXT: xvldi $xr0, -2813
275262; CHECK-NEXT: xvst $xr0, $a0, 0
276263; CHECK-NEXT: ret
277264entry:
@@ -282,8 +269,7 @@ entry:
282269define void @buildvector_const_splat_xvldi_0110 (ptr %dst ) nounwind {
283270; CHECK-LABEL: buildvector_const_splat_xvldi_0110:
284271; CHECK: # %bb.0: # %entry
285- ; CHECK-NEXT: ori $a1, $zero, 1023
286- ; CHECK-NEXT: xvreplgr2vr.w $xr0, $a1
272+ ; CHECK-NEXT: xvldi $xr0, -2557
287273; CHECK-NEXT: xvst $xr0, $a0, 0
288274; CHECK-NEXT: ret
289275entry:
@@ -294,9 +280,7 @@ entry:
294280define void @buildvector_const_splat_xvldi_0111 (ptr %dst ) nounwind {
295281; CHECK-LABEL: buildvector_const_splat_xvldi_0111:
296282; CHECK: # %bb.0: # %entry
297- ; CHECK-NEXT: lu12i.w $a1, 15
298- ; CHECK-NEXT: ori $a1, $a1, 4095
299- ; CHECK-NEXT: xvreplgr2vr.w $xr0, $a1
283+ ; CHECK-NEXT: xvldi $xr0, -2305
300284; CHECK-NEXT: xvst $xr0, $a0, 0
301285; CHECK-NEXT: ret
302286entry:
@@ -305,39 +289,22 @@ entry:
305289}
306290
307291define void @buildvector_const_splat_xvldi_1001 (ptr %dst ) nounwind {
308- ; LA32-LABEL: buildvector_const_splat_xvldi_1001:
309- ; LA32: # %bb.0: # %entry
310- ; LA32-NEXT: pcalau12i $a1, %pc_hi20(.LCPI21_0)
311- ; LA32-NEXT: xvld $xr0, $a1, %pc_lo12(.LCPI21_0)
312- ; LA32-NEXT: xvst $xr0, $a0, 0
313- ; LA32-NEXT: ret
314- ;
315- ; LA64-LABEL: buildvector_const_splat_xvldi_1001:
316- ; LA64: # %bb.0: # %entry
317- ; LA64-NEXT: lu12i.w $a1, 15
318- ; LA64-NEXT: ori $a1, $a1, 4095
319- ; LA64-NEXT: xvreplgr2vr.d $xr0, $a1
320- ; LA64-NEXT: xvst $xr0, $a0, 0
321- ; LA64-NEXT: ret
292+ ; CHECK-LABEL: buildvector_const_splat_xvldi_1001:
293+ ; CHECK: # %bb.0: # %entry
294+ ; CHECK-NEXT: xvldi $xr0, -1789
295+ ; CHECK-NEXT: xvst $xr0, $a0, 0
296+ ; CHECK-NEXT: ret
322297entry:
323298 store <8 x i32 > <i32 65535 , i32 0 , i32 65535 , i32 0 , i32 65535 , i32 0 , i32 65535 , i32 0 >, ptr %dst
324299 ret void
325300}
326301
327302define void @buildvector_const_splat_xvldi_1011 (ptr %dst ) nounwind {
328- ; LA32-LABEL: buildvector_const_splat_xvldi_1011:
329- ; LA32: # %bb.0: # %entry
330- ; LA32-NEXT: pcalau12i $a1, %pc_hi20(.LCPI22_0)
331- ; LA32-NEXT: xvld $xr0, $a1, %pc_lo12(.LCPI22_0)
332- ; LA32-NEXT: xvst $xr0, $a0, 0
333- ; LA32-NEXT: ret
334- ;
335- ; LA64-LABEL: buildvector_const_splat_xvldi_1011:
336- ; LA64: # %bb.0: # %entry
337- ; LA64-NEXT: lu12i.w $a1, 262144
338- ; LA64-NEXT: xvreplgr2vr.d $xr0, $a1
339- ; LA64-NEXT: xvst $xr0, $a0, 0
340- ; LA64-NEXT: ret
303+ ; CHECK-LABEL: buildvector_const_splat_xvldi_1011:
304+ ; CHECK: # %bb.0: # %entry
305+ ; CHECK-NEXT: xvldi $xr0, -1280
306+ ; CHECK-NEXT: xvst $xr0, $a0, 0
307+ ; CHECK-NEXT: ret
341308entry:
342309 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
343310 ret void
@@ -2458,8 +2425,7 @@ define void @buildvector_v8f32_with_constant(ptr %dst, float %a1, float %a2, flo
24582425; CHECK-NEXT: # kill: def $f2 killed $f2 def $xr2
24592426; CHECK-NEXT: # kill: def $f1 killed $f1 def $xr1
24602427; CHECK-NEXT: # kill: def $f0 killed $f0 def $xr0
2461- ; CHECK-NEXT: lu12i.w $a1, 262144
2462- ; CHECK-NEXT: xvreplgr2vr.w $xr4, $a1
2428+ ; CHECK-NEXT: xvldi $xr4, -3264
24632429; CHECK-NEXT: xvinsve0.w $xr4, $xr0, 1
24642430; CHECK-NEXT: xvinsve0.w $xr4, $xr1, 2
24652431; CHECK-NEXT: xvinsve0.w $xr4, $xr2, 5
0 commit comments