@@ -106,6 +106,26 @@ entry:
106106 ret void
107107}
108108
109+ define void @buildvector_v32i8_const_splat_v4i64 (ptr %dst ) nounwind {
110+ ; LA32-LABEL: buildvector_v32i8_const_splat_v4i64:
111+ ; LA32: # %bb.0: # %entry
112+ ; LA32-NEXT: pcalau12i $a1, %pc_hi20(.LCPI7_0)
113+ ; LA32-NEXT: xvld $xr0, $a1, %pc_lo12(.LCPI7_0)
114+ ; LA32-NEXT: xvst $xr0, $a0, 0
115+ ; LA32-NEXT: ret
116+ ;
117+ ; LA64-LABEL: buildvector_v32i8_const_splat_v4i64:
118+ ; LA64: # %bb.0: # %entry
119+ ; LA64-NEXT: lu12i.w $a1, 7
120+ ; LA64-NEXT: ori $a1, $a1, 3453
121+ ; LA64-NEXT: xvreplgr2vr.d $xr0, $a1
122+ ; LA64-NEXT: xvst $xr0, $a0, 0
123+ ; LA64-NEXT: ret
124+ entry:
125+ store <32 x i8 > <i8 125 , i8 125 , i8 0 , i8 0 , i8 0 , i8 0 , i8 0 , i8 0 , i8 125 , i8 125 , i8 0 , i8 0 , i8 0 , i8 0 , i8 0 , i8 0 , i8 125 , i8 125 , i8 0 , i8 0 , i8 0 , i8 0 , i8 0 , i8 0 , i8 125 , i8 125 , i8 0 , i8 0 , i8 0 , i8 0 , i8 0 , i8 0 >, ptr %dst
126+ ret void
127+ }
128+
109129define void @buildvector_v16i16_const_splat (ptr %dst ) nounwind {
110130; CHECK-LABEL: buildvector_v16i16_const_splat:
111131; CHECK: # %bb.0: # %entry
@@ -117,6 +137,25 @@ entry:
117137 ret void
118138}
119139
140+ define void @buildvector_v16i16_const_splat_v4i64 (ptr %dst ) nounwind {
141+ ; LA32-LABEL: buildvector_v16i16_const_splat_v4i64:
142+ ; LA32: # %bb.0: # %entry
143+ ; LA32-NEXT: pcalau12i $a1, %pc_hi20(.LCPI9_0)
144+ ; LA32-NEXT: xvld $xr0, $a1, %pc_lo12(.LCPI9_0)
145+ ; LA32-NEXT: xvst $xr0, $a0, 0
146+ ; LA32-NEXT: ret
147+ ;
148+ ; LA64-LABEL: buildvector_v16i16_const_splat_v4i64:
149+ ; LA64: # %bb.0: # %entry
150+ ; LA64-NEXT: ori $a1, $zero, 512
151+ ; LA64-NEXT: xvreplgr2vr.d $xr0, $a1
152+ ; LA64-NEXT: xvst $xr0, $a0, 0
153+ ; LA64-NEXT: ret
154+ entry:
155+ store <16 x i16 > <i16 512 , i16 0 , i16 0 , i16 0 , i16 512 , i16 0 , i16 0 , i16 0 , i16 512 , i16 0 , i16 0 , i16 0 , i16 512 , i16 0 , i16 0 , i16 0 >, ptr %dst
156+ ret void
157+ }
158+
120159define void @buildvector_v8i32_const_splat (ptr %dst ) nounwind {
121160; CHECK-LABEL: buildvector_v8i32_const_splat:
122161; CHECK: # %bb.0: # %entry
@@ -128,6 +167,25 @@ entry:
128167 ret void
129168}
130169
170+ define void @buildvector_v8i32_const_splat_v4i64 (ptr %dst ) nounwind {
171+ ; LA32-LABEL: buildvector_v8i32_const_splat_v4i64:
172+ ; LA32: # %bb.0: # %entry
173+ ; LA32-NEXT: pcalau12i $a1, %pc_hi20(.LCPI11_0)
174+ ; LA32-NEXT: xvld $xr0, $a1, %pc_lo12(.LCPI11_0)
175+ ; LA32-NEXT: xvst $xr0, $a0, 0
176+ ; LA32-NEXT: ret
177+ ;
178+ ; LA64-LABEL: buildvector_v8i32_const_splat_v4i64:
179+ ; LA64: # %bb.0: # %entry
180+ ; LA64-NEXT: ori $a1, $zero, 512
181+ ; LA64-NEXT: xvreplgr2vr.d $xr0, $a1
182+ ; LA64-NEXT: xvst $xr0, $a0, 0
183+ ; LA64-NEXT: ret
184+ entry:
185+ store <8 x i32 > <i32 512 , i32 0 , i32 512 , i32 0 , i32 512 , i32 0 , i32 512 , i32 0 >, ptr %dst
186+ ret void
187+ }
188+
131189define void @buildvector_v4i64_const_splat (ptr %dst ) nounwind {
132190; CHECK-LABEL: buildvector_v4i64_const_splat:
133191; CHECK: # %bb.0: # %entry
@@ -154,8 +212,8 @@ entry:
154212define void @buildvector_v4f64_const_splat (ptr %dst ) nounwind {
155213; LA32-LABEL: buildvector_v4f64_const_splat:
156214; LA32: # %bb.0: # %entry
157- ; LA32-NEXT: pcalau12i $a1, %pc_hi20(.LCPI11_0 )
158- ; LA32-NEXT: xvld $xr0, $a1, %pc_lo12(.LCPI11_0 )
215+ ; LA32-NEXT: pcalau12i $a1, %pc_hi20(.LCPI14_0 )
216+ ; LA32-NEXT: xvld $xr0, $a1, %pc_lo12(.LCPI14_0 )
159217; LA32-NEXT: xvst $xr0, $a0, 0
160218; LA32-NEXT: ret
161219;
@@ -173,8 +231,8 @@ entry:
173231define void @buildvector_v32i8_const (ptr %dst ) nounwind {
174232; CHECK-LABEL: buildvector_v32i8_const:
175233; CHECK: # %bb.0: # %entry
176- ; CHECK-NEXT: pcalau12i $a1, %pc_hi20(.LCPI12_0 )
177- ; CHECK-NEXT: xvld $xr0, $a1, %pc_lo12(.LCPI12_0 )
234+ ; CHECK-NEXT: pcalau12i $a1, %pc_hi20(.LCPI15_0 )
235+ ; CHECK-NEXT: xvld $xr0, $a1, %pc_lo12(.LCPI15_0 )
178236; CHECK-NEXT: xvst $xr0, $a0, 0
179237; CHECK-NEXT: ret
180238entry:
@@ -185,8 +243,8 @@ entry:
185243define void @buildvector_v16i16_const (ptr %dst ) nounwind {
186244; CHECK-LABEL: buildvector_v16i16_const:
187245; CHECK: # %bb.0: # %entry
188- ; CHECK-NEXT: pcalau12i $a1, %pc_hi20(.LCPI13_0 )
189- ; CHECK-NEXT: xvld $xr0, $a1, %pc_lo12(.LCPI13_0 )
246+ ; CHECK-NEXT: pcalau12i $a1, %pc_hi20(.LCPI16_0 )
247+ ; CHECK-NEXT: xvld $xr0, $a1, %pc_lo12(.LCPI16_0 )
190248; CHECK-NEXT: xvst $xr0, $a0, 0
191249; CHECK-NEXT: ret
192250entry:
@@ -197,8 +255,8 @@ entry:
197255define void @buildvector_v8i32_const (ptr %dst ) nounwind {
198256; CHECK-LABEL: buildvector_v8i32_const:
199257; CHECK: # %bb.0: # %entry
200- ; CHECK-NEXT: pcalau12i $a1, %pc_hi20(.LCPI14_0 )
201- ; CHECK-NEXT: xvld $xr0, $a1, %pc_lo12(.LCPI14_0 )
258+ ; CHECK-NEXT: pcalau12i $a1, %pc_hi20(.LCPI17_0 )
259+ ; CHECK-NEXT: xvld $xr0, $a1, %pc_lo12(.LCPI17_0 )
202260; CHECK-NEXT: xvst $xr0, $a0, 0
203261; CHECK-NEXT: ret
204262entry:
@@ -209,8 +267,8 @@ entry:
209267define void @buildvector_v4i64_const (ptr %dst ) nounwind {
210268; CHECK-LABEL: buildvector_v4i64_const:
211269; CHECK: # %bb.0: # %entry
212- ; CHECK-NEXT: pcalau12i $a1, %pc_hi20(.LCPI15_0 )
213- ; CHECK-NEXT: xvld $xr0, $a1, %pc_lo12(.LCPI15_0 )
270+ ; CHECK-NEXT: pcalau12i $a1, %pc_hi20(.LCPI18_0 )
271+ ; CHECK-NEXT: xvld $xr0, $a1, %pc_lo12(.LCPI18_0 )
214272; CHECK-NEXT: xvst $xr0, $a0, 0
215273; CHECK-NEXT: ret
216274entry:
@@ -221,8 +279,8 @@ entry:
221279define void @buildvector_v2f32_const (ptr %dst ) nounwind {
222280; CHECK-LABEL: buildvector_v2f32_const:
223281; CHECK: # %bb.0: # %entry
224- ; CHECK-NEXT: pcalau12i $a1, %pc_hi20(.LCPI16_0 )
225- ; CHECK-NEXT: xvld $xr0, $a1, %pc_lo12(.LCPI16_0 )
282+ ; CHECK-NEXT: pcalau12i $a1, %pc_hi20(.LCPI19_0 )
283+ ; CHECK-NEXT: xvld $xr0, $a1, %pc_lo12(.LCPI19_0 )
226284; CHECK-NEXT: xvst $xr0, $a0, 0
227285; CHECK-NEXT: ret
228286entry:
@@ -233,8 +291,8 @@ entry:
233291define void @buildvector_v4f64_const (ptr %dst ) nounwind {
234292; CHECK-LABEL: buildvector_v4f64_const:
235293; CHECK: # %bb.0: # %entry
236- ; CHECK-NEXT: pcalau12i $a1, %pc_hi20(.LCPI17_0 )
237- ; CHECK-NEXT: xvld $xr0, $a1, %pc_lo12(.LCPI17_0 )
294+ ; CHECK-NEXT: pcalau12i $a1, %pc_hi20(.LCPI20_0 )
295+ ; CHECK-NEXT: xvld $xr0, $a1, %pc_lo12(.LCPI20_0 )
238296; CHECK-NEXT: xvst $xr0, $a0, 0
239297; CHECK-NEXT: ret
240298entry:
0 commit comments