@@ -106,6 +106,26 @@ entry:
106
106
ret void
107
107
}
108
108
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
+
109
129
define void @buildvector_v16i16_const_splat (ptr %dst ) nounwind {
110
130
; CHECK-LABEL: buildvector_v16i16_const_splat:
111
131
; CHECK: # %bb.0: # %entry
@@ -117,6 +137,25 @@ entry:
117
137
ret void
118
138
}
119
139
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
+
120
159
define void @buildvector_v8i32_const_splat (ptr %dst ) nounwind {
121
160
; CHECK-LABEL: buildvector_v8i32_const_splat:
122
161
; CHECK: # %bb.0: # %entry
@@ -128,6 +167,25 @@ entry:
128
167
ret void
129
168
}
130
169
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
+
131
189
define void @buildvector_v4i64_const_splat (ptr %dst ) nounwind {
132
190
; CHECK-LABEL: buildvector_v4i64_const_splat:
133
191
; CHECK: # %bb.0: # %entry
@@ -154,8 +212,8 @@ entry:
154
212
define void @buildvector_v4f64_const_splat (ptr %dst ) nounwind {
155
213
; LA32-LABEL: buildvector_v4f64_const_splat:
156
214
; 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 )
159
217
; LA32-NEXT: xvst $xr0, $a0, 0
160
218
; LA32-NEXT: ret
161
219
;
@@ -173,8 +231,8 @@ entry:
173
231
define void @buildvector_v32i8_const (ptr %dst ) nounwind {
174
232
; CHECK-LABEL: buildvector_v32i8_const:
175
233
; 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 )
178
236
; CHECK-NEXT: xvst $xr0, $a0, 0
179
237
; CHECK-NEXT: ret
180
238
entry:
@@ -185,8 +243,8 @@ entry:
185
243
define void @buildvector_v16i16_const (ptr %dst ) nounwind {
186
244
; CHECK-LABEL: buildvector_v16i16_const:
187
245
; 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 )
190
248
; CHECK-NEXT: xvst $xr0, $a0, 0
191
249
; CHECK-NEXT: ret
192
250
entry:
@@ -197,8 +255,8 @@ entry:
197
255
define void @buildvector_v8i32_const (ptr %dst ) nounwind {
198
256
; CHECK-LABEL: buildvector_v8i32_const:
199
257
; 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 )
202
260
; CHECK-NEXT: xvst $xr0, $a0, 0
203
261
; CHECK-NEXT: ret
204
262
entry:
@@ -209,8 +267,8 @@ entry:
209
267
define void @buildvector_v4i64_const (ptr %dst ) nounwind {
210
268
; CHECK-LABEL: buildvector_v4i64_const:
211
269
; 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 )
214
272
; CHECK-NEXT: xvst $xr0, $a0, 0
215
273
; CHECK-NEXT: ret
216
274
entry:
@@ -221,8 +279,8 @@ entry:
221
279
define void @buildvector_v2f32_const (ptr %dst ) nounwind {
222
280
; CHECK-LABEL: buildvector_v2f32_const:
223
281
; 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 )
226
284
; CHECK-NEXT: xvst $xr0, $a0, 0
227
285
; CHECK-NEXT: ret
228
286
entry:
@@ -233,8 +291,8 @@ entry:
233
291
define void @buildvector_v4f64_const (ptr %dst ) nounwind {
234
292
; CHECK-LABEL: buildvector_v4f64_const:
235
293
; 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 )
238
296
; CHECK-NEXT: xvst $xr0, $a0, 0
239
297
; CHECK-NEXT: ret
240
298
entry:
0 commit comments