@@ -250,84 +250,68 @@ define void @buildvector_v32i8(ptr %dst, i8 %a0, i8 %a1, i8 %a2, i8 %a3, i8 %a4,
250
250
; CHECK-NEXT: vinsgr2vr.b $vr0, $a2, 14
251
251
; CHECK-NEXT: ld.b $a1, $sp, 72
252
252
; CHECK-NEXT: vinsgr2vr.b $vr0, $a3, 15
253
- ; CHECK-NEXT: xvori .b $xr1 , $xr0, 0
254
- ; CHECK-NEXT: xvpermi.q $xr1, $xr0, 1
253
+ ; CHECK-NEXT: ld .b $a2 , $sp, 80
254
+ ; CHECK-NEXT: xvpermi.d $xr1, $xr0, 14
255
255
; CHECK-NEXT: vinsgr2vr.b $vr1, $a1, 0
256
- ; CHECK-NEXT: ld.b $a1, $sp, 80
257
- ; CHECK-NEXT: xvpermi.q $xr0, $xr1, 2
258
- ; CHECK-NEXT: xvori.b $xr1, $xr0, 0
259
- ; CHECK-NEXT: xvpermi.q $xr1, $xr0, 1
260
- ; CHECK-NEXT: vinsgr2vr.b $vr1, $a1, 1
261
256
; CHECK-NEXT: ld.b $a1, $sp, 88
262
257
; CHECK-NEXT: xvpermi.q $xr0, $xr1, 2
263
- ; CHECK-NEXT: xvori.b $xr1, $xr0, 0
264
- ; CHECK-NEXT: xvpermi.q $xr1, $xr0, 1
265
- ; CHECK-NEXT: vinsgr2vr.b $vr1, $a1, 2
266
- ; CHECK-NEXT: ld.b $a1, $sp, 96
258
+ ; CHECK-NEXT: xvpermi.d $xr1, $xr0, 14
259
+ ; CHECK-NEXT: vinsgr2vr.b $vr1, $a2, 1
260
+ ; CHECK-NEXT: ld.b $a2, $sp, 96
267
261
; CHECK-NEXT: xvpermi.q $xr0, $xr1, 2
268
- ; CHECK-NEXT: xvori.b $xr1, $xr0, 0
269
- ; CHECK-NEXT: xvpermi.q $xr1, $xr0, 1
270
- ; CHECK-NEXT: vinsgr2vr.b $vr1, $a1, 3
262
+ ; CHECK-NEXT: xvpermi.d $xr1, $xr0, 14
263
+ ; CHECK-NEXT: vinsgr2vr.b $vr1, $a1, 2
271
264
; CHECK-NEXT: ld.b $a1, $sp, 104
272
265
; CHECK-NEXT: xvpermi.q $xr0, $xr1, 2
273
- ; CHECK-NEXT: xvori.b $xr1, $xr0, 0
274
- ; CHECK-NEXT: xvpermi.q $xr1, $xr0, 1
275
- ; CHECK-NEXT: vinsgr2vr.b $vr1, $a1, 4
276
- ; CHECK-NEXT: ld.b $a1, $sp, 112
266
+ ; CHECK-NEXT: xvpermi.d $xr1, $xr0, 14
267
+ ; CHECK-NEXT: vinsgr2vr.b $vr1, $a2, 3
268
+ ; CHECK-NEXT: ld.b $a2, $sp, 112
277
269
; CHECK-NEXT: xvpermi.q $xr0, $xr1, 2
278
- ; CHECK-NEXT: xvori.b $xr1, $xr0, 0
279
- ; CHECK-NEXT: xvpermi.q $xr1, $xr0, 1
280
- ; CHECK-NEXT: vinsgr2vr.b $vr1, $a1, 5
270
+ ; CHECK-NEXT: xvpermi.d $xr1, $xr0, 14
271
+ ; CHECK-NEXT: vinsgr2vr.b $vr1, $a1, 4
281
272
; CHECK-NEXT: ld.b $a1, $sp, 120
282
273
; CHECK-NEXT: xvpermi.q $xr0, $xr1, 2
283
- ; CHECK-NEXT: xvori.b $xr1, $xr0, 0
284
- ; CHECK-NEXT: xvpermi.q $xr1, $xr0, 1
285
- ; CHECK-NEXT: vinsgr2vr.b $vr1, $a1, 6
286
- ; CHECK-NEXT: ld.b $a1, $sp, 128
274
+ ; CHECK-NEXT: xvpermi.d $xr1, $xr0, 14
275
+ ; CHECK-NEXT: vinsgr2vr.b $vr1, $a2, 5
276
+ ; CHECK-NEXT: ld.b $a2, $sp, 128
287
277
; CHECK-NEXT: xvpermi.q $xr0, $xr1, 2
288
- ; CHECK-NEXT: xvori.b $xr1, $xr0, 0
289
- ; CHECK-NEXT: xvpermi.q $xr1, $xr0, 1
290
- ; CHECK-NEXT: vinsgr2vr.b $vr1, $a1, 7
278
+ ; CHECK-NEXT: xvpermi.d $xr1, $xr0, 14
279
+ ; CHECK-NEXT: vinsgr2vr.b $vr1, $a1, 6
291
280
; CHECK-NEXT: ld.b $a1, $sp, 136
292
281
; CHECK-NEXT: xvpermi.q $xr0, $xr1, 2
293
- ; CHECK-NEXT: xvori.b $xr1, $xr0, 0
294
- ; CHECK-NEXT: xvpermi.q $xr1, $xr0, 1
295
- ; CHECK-NEXT: vinsgr2vr.b $vr1, $a1, 8
296
- ; CHECK-NEXT: ld.b $a1, $sp, 144
282
+ ; CHECK-NEXT: xvpermi.d $xr1, $xr0, 14
283
+ ; CHECK-NEXT: vinsgr2vr.b $vr1, $a2, 7
284
+ ; CHECK-NEXT: ld.b $a2, $sp, 144
297
285
; CHECK-NEXT: xvpermi.q $xr0, $xr1, 2
298
- ; CHECK-NEXT: xvori.b $xr1, $xr0, 0
299
- ; CHECK-NEXT: xvpermi.q $xr1, $xr0, 1
300
- ; CHECK-NEXT: vinsgr2vr.b $vr1, $a1, 9
286
+ ; CHECK-NEXT: xvpermi.d $xr1, $xr0, 14
287
+ ; CHECK-NEXT: vinsgr2vr.b $vr1, $a1, 8
301
288
; CHECK-NEXT: ld.b $a1, $sp, 152
302
289
; CHECK-NEXT: xvpermi.q $xr0, $xr1, 2
303
- ; CHECK-NEXT: xvori.b $xr1, $xr0, 0
304
- ; CHECK-NEXT: xvpermi.q $xr1, $xr0, 1
305
- ; CHECK-NEXT: vinsgr2vr.b $vr1, $a1, 10
306
- ; CHECK-NEXT: ld.b $a1, $sp, 160
290
+ ; CHECK-NEXT: xvpermi.d $xr1, $xr0, 14
291
+ ; CHECK-NEXT: vinsgr2vr.b $vr1, $a2, 9
292
+ ; CHECK-NEXT: ld.b $a2, $sp, 160
307
293
; CHECK-NEXT: xvpermi.q $xr0, $xr1, 2
308
- ; CHECK-NEXT: xvori.b $xr1, $xr0, 0
309
- ; CHECK-NEXT: xvpermi.q $xr1, $xr0, 1
310
- ; CHECK-NEXT: vinsgr2vr.b $vr1, $a1, 11
294
+ ; CHECK-NEXT: xvpermi.d $xr1, $xr0, 14
295
+ ; CHECK-NEXT: vinsgr2vr.b $vr1, $a1, 10
311
296
; CHECK-NEXT: ld.b $a1, $sp, 168
312
297
; CHECK-NEXT: xvpermi.q $xr0, $xr1, 2
313
- ; CHECK-NEXT: xvori.b $xr1, $xr0, 0
314
- ; CHECK-NEXT: xvpermi.q $xr1, $xr0, 1
315
- ; CHECK-NEXT: vinsgr2vr.b $vr1, $a1, 12
316
- ; CHECK-NEXT: ld.b $a1, $sp, 176
298
+ ; CHECK-NEXT: xvpermi.d $xr1, $xr0, 14
299
+ ; CHECK-NEXT: vinsgr2vr.b $vr1, $a2, 11
300
+ ; CHECK-NEXT: ld.b $a2, $sp, 176
317
301
; CHECK-NEXT: xvpermi.q $xr0, $xr1, 2
318
- ; CHECK-NEXT: xvori.b $xr1, $xr0, 0
319
- ; CHECK-NEXT: xvpermi.q $xr1, $xr0, 1
320
- ; CHECK-NEXT: vinsgr2vr.b $vr1, $a1, 13
302
+ ; CHECK-NEXT: xvpermi.d $xr1, $xr0, 14
303
+ ; CHECK-NEXT: vinsgr2vr.b $vr1, $a1, 12
321
304
; CHECK-NEXT: ld.b $a1, $sp, 184
322
305
; CHECK-NEXT: xvpermi.q $xr0, $xr1, 2
323
- ; CHECK-NEXT: xvori.b $xr1, $xr0, 0
324
- ; CHECK-NEXT: xvpermi.q $xr1, $xr0, 1
306
+ ; CHECK-NEXT: xvpermi.d $xr1, $xr0, 14
307
+ ; CHECK-NEXT: vinsgr2vr.b $vr1, $a2, 13
308
+ ; CHECK-NEXT: ld.b $a2, $sp, 192
309
+ ; CHECK-NEXT: xvpermi.q $xr0, $xr1, 2
310
+ ; CHECK-NEXT: xvpermi.d $xr1, $xr0, 14
325
311
; CHECK-NEXT: vinsgr2vr.b $vr1, $a1, 14
326
- ; CHECK-NEXT: ld.b $a1, $sp, 192
327
312
; CHECK-NEXT: xvpermi.q $xr0, $xr1, 2
328
- ; CHECK-NEXT: xvori.b $xr1, $xr0, 0
329
- ; CHECK-NEXT: xvpermi.q $xr1, $xr0, 1
330
- ; CHECK-NEXT: vinsgr2vr.b $vr1, $a1, 15
313
+ ; CHECK-NEXT: xvpermi.d $xr1, $xr0, 14
314
+ ; CHECK-NEXT: vinsgr2vr.b $vr1, $a2, 15
331
315
; CHECK-NEXT: xvpermi.q $xr0, $xr1, 2
332
316
; CHECK-NEXT: xvst $xr0, $a0, 0
333
317
; CHECK-NEXT: ret
@@ -371,54 +355,46 @@ entry:
371
355
define void @buildvector_v16i16 (ptr %dst , i16 %a0 , i16 %a1 , i16 %a2 , i16 %a3 , i16 %a4 , i16 %a5 , i16 %a6 , i16 %a7 , i16 %a8 , i16 %a9 , i16 %a10 , i16 %a11 , i16 %a12 , i16 %a13 , i16 %a14 , i16 %a15 ) nounwind {
372
356
; CHECK-LABEL: buildvector_v16i16:
373
357
; CHECK: # %bb.0: # %entry
374
- ; CHECK-NEXT: ld.h $t0, $sp, 8
375
- ; CHECK-NEXT: ld.h $t1, $sp, 0
358
+ ; CHECK-NEXT: ld.h $t0, $sp, 64
359
+ ; CHECK-NEXT: ld.h $t1, $sp, 56
360
+ ; CHECK-NEXT: ld.h $t2, $sp, 48
361
+ ; CHECK-NEXT: ld.h $t3, $sp, 40
362
+ ; CHECK-NEXT: ld.h $t4, $sp, 32
363
+ ; CHECK-NEXT: ld.h $t5, $sp, 24
364
+ ; CHECK-NEXT: ld.h $t6, $sp, 16
365
+ ; CHECK-NEXT: ld.h $t7, $sp, 8
366
+ ; CHECK-NEXT: ld.h $t8, $sp, 0
376
367
; CHECK-NEXT: vinsgr2vr.h $vr0, $a1, 0
377
368
; CHECK-NEXT: vinsgr2vr.h $vr0, $a2, 1
378
369
; CHECK-NEXT: vinsgr2vr.h $vr0, $a3, 2
379
370
; CHECK-NEXT: vinsgr2vr.h $vr0, $a4, 3
380
371
; CHECK-NEXT: vinsgr2vr.h $vr0, $a5, 4
381
372
; CHECK-NEXT: vinsgr2vr.h $vr0, $a6, 5
382
373
; CHECK-NEXT: vinsgr2vr.h $vr0, $a7, 6
383
- ; CHECK-NEXT: vinsgr2vr.h $vr0, $t1, 7
384
- ; CHECK-NEXT: ld.h $a1, $sp, 16
385
- ; CHECK-NEXT: xvori.b $xr1, $xr0, 0
386
- ; CHECK-NEXT: xvpermi.q $xr1, $xr0, 1
387
- ; CHECK-NEXT: vinsgr2vr.h $vr1, $t0, 0
374
+ ; CHECK-NEXT: vinsgr2vr.h $vr0, $t8, 7
375
+ ; CHECK-NEXT: xvpermi.d $xr1, $xr0, 14
376
+ ; CHECK-NEXT: vinsgr2vr.h $vr1, $t7, 0
388
377
; CHECK-NEXT: xvpermi.q $xr0, $xr1, 2
389
- ; CHECK-NEXT: ld.h $a2, $sp, 24
390
- ; CHECK-NEXT: xvori.b $xr1, $xr0, 0
391
- ; CHECK-NEXT: xvpermi.q $xr1, $xr0, 1
392
- ; CHECK-NEXT: vinsgr2vr.h $vr1, $a1, 1
378
+ ; CHECK-NEXT: xvpermi.d $xr1, $xr0, 14
379
+ ; CHECK-NEXT: vinsgr2vr.h $vr1, $t6, 1
393
380
; CHECK-NEXT: xvpermi.q $xr0, $xr1, 2
394
- ; CHECK-NEXT: ld.h $a1, $sp, 32
395
- ; CHECK-NEXT: xvori.b $xr1, $xr0, 0
396
- ; CHECK-NEXT: xvpermi.q $xr1, $xr0, 1
397
- ; CHECK-NEXT: vinsgr2vr.h $vr1, $a2, 2
381
+ ; CHECK-NEXT: xvpermi.d $xr1, $xr0, 14
382
+ ; CHECK-NEXT: vinsgr2vr.h $vr1, $t5, 2
398
383
; CHECK-NEXT: xvpermi.q $xr0, $xr1, 2
399
- ; CHECK-NEXT: ld.h $a2, $sp, 40
400
- ; CHECK-NEXT: xvori.b $xr1, $xr0, 0
401
- ; CHECK-NEXT: xvpermi.q $xr1, $xr0, 1
402
- ; CHECK-NEXT: vinsgr2vr.h $vr1, $a1, 3
384
+ ; CHECK-NEXT: xvpermi.d $xr1, $xr0, 14
385
+ ; CHECK-NEXT: vinsgr2vr.h $vr1, $t4, 3
403
386
; CHECK-NEXT: xvpermi.q $xr0, $xr1, 2
404
- ; CHECK-NEXT: ld.h $a1, $sp, 48
405
- ; CHECK-NEXT: xvori.b $xr1, $xr0, 0
406
- ; CHECK-NEXT: xvpermi.q $xr1, $xr0, 1
407
- ; CHECK-NEXT: vinsgr2vr.h $vr1, $a2, 4
387
+ ; CHECK-NEXT: xvpermi.d $xr1, $xr0, 14
388
+ ; CHECK-NEXT: vinsgr2vr.h $vr1, $t3, 4
408
389
; CHECK-NEXT: xvpermi.q $xr0, $xr1, 2
409
- ; CHECK-NEXT: ld.h $a2, $sp, 56
410
- ; CHECK-NEXT: xvori.b $xr1, $xr0, 0
411
- ; CHECK-NEXT: xvpermi.q $xr1, $xr0, 1
412
- ; CHECK-NEXT: vinsgr2vr.h $vr1, $a1, 5
390
+ ; CHECK-NEXT: xvpermi.d $xr1, $xr0, 14
391
+ ; CHECK-NEXT: vinsgr2vr.h $vr1, $t2, 5
413
392
; CHECK-NEXT: xvpermi.q $xr0, $xr1, 2
414
- ; CHECK-NEXT: ld.h $a1, $sp, 64
415
- ; CHECK-NEXT: xvori.b $xr1, $xr0, 0
416
- ; CHECK-NEXT: xvpermi.q $xr1, $xr0, 1
417
- ; CHECK-NEXT: vinsgr2vr.h $vr1, $a2, 6
393
+ ; CHECK-NEXT: xvpermi.d $xr1, $xr0, 14
394
+ ; CHECK-NEXT: vinsgr2vr.h $vr1, $t1, 6
418
395
; CHECK-NEXT: xvpermi.q $xr0, $xr1, 2
419
- ; CHECK-NEXT: xvori.b $xr1, $xr0, 0
420
- ; CHECK-NEXT: xvpermi.q $xr1, $xr0, 1
421
- ; CHECK-NEXT: vinsgr2vr.h $vr1, $a1, 7
396
+ ; CHECK-NEXT: xvpermi.d $xr1, $xr0, 14
397
+ ; CHECK-NEXT: vinsgr2vr.h $vr1, $t0, 7
422
398
; CHECK-NEXT: xvpermi.q $xr0, $xr1, 2
423
399
; CHECK-NEXT: xvst $xr0, $a0, 0
424
400
; CHECK-NEXT: ret
0 commit comments