@@ -385,19 +385,11 @@ entry:
385
385
}
386
386
387
387
define <8 x i16 > @concat_high_high_v8i16 (<8 x i16 > %a_vec , <8 x i16 > %b_vec ) {
388
- ; CHECK-SD-LABEL: concat_high_high_v8i16:
389
- ; CHECK-SD: // %bb.0: // %entry
390
- ; CHECK-SD-NEXT: ext v0.16b, v0.16b, v0.16b, #8
391
- ; CHECK-SD-NEXT: ext v1.16b, v1.16b, v1.16b, #8
392
- ; CHECK-SD-NEXT: mov v0.d[1], v1.d[0]
393
- ; CHECK-SD-NEXT: ret
394
- ;
395
- ; CHECK-GI-LABEL: concat_high_high_v8i16:
396
- ; CHECK-GI: // %bb.0: // %entry
397
- ; CHECK-GI-NEXT: mov d0, v0.d[1]
398
- ; CHECK-GI-NEXT: mov d1, v1.d[1]
399
- ; CHECK-GI-NEXT: mov v0.d[1], v1.d[0]
400
- ; CHECK-GI-NEXT: ret
388
+ ; CHECK-LABEL: concat_high_high_v8i16:
389
+ ; CHECK: // %bb.0: // %entry
390
+ ; CHECK-NEXT: mov v1.d[0], v0.d[1]
391
+ ; CHECK-NEXT: mov v0.16b, v1.16b
392
+ ; CHECK-NEXT: ret
401
393
entry:
402
394
%shuffle.i3 = shufflevector <8 x i16 > %a_vec , <8 x i16 > poison, <4 x i32 > <i32 4 , i32 5 , i32 6 , i32 7 >
403
395
%shuffle.i = shufflevector <8 x i16 > %b_vec , <8 x i16 > poison, <4 x i32 > <i32 4 , i32 5 , i32 6 , i32 7 >
@@ -406,19 +398,11 @@ entry:
406
398
}
407
399
408
400
define <8 x half > @concat_high_high_v8f16 (<8 x half > %a_vec , <8 x half > %b_vec ) {
409
- ; CHECK-SD-LABEL: concat_high_high_v8f16:
410
- ; CHECK-SD: // %bb.0: // %entry
411
- ; CHECK-SD-NEXT: ext v0.16b, v0.16b, v0.16b, #8
412
- ; CHECK-SD-NEXT: ext v1.16b, v1.16b, v1.16b, #8
413
- ; CHECK-SD-NEXT: mov v0.d[1], v1.d[0]
414
- ; CHECK-SD-NEXT: ret
415
- ;
416
- ; CHECK-GI-LABEL: concat_high_high_v8f16:
417
- ; CHECK-GI: // %bb.0: // %entry
418
- ; CHECK-GI-NEXT: mov d0, v0.d[1]
419
- ; CHECK-GI-NEXT: mov d1, v1.d[1]
420
- ; CHECK-GI-NEXT: mov v0.d[1], v1.d[0]
421
- ; CHECK-GI-NEXT: ret
401
+ ; CHECK-LABEL: concat_high_high_v8f16:
402
+ ; CHECK: // %bb.0: // %entry
403
+ ; CHECK-NEXT: mov v1.d[0], v0.d[1]
404
+ ; CHECK-NEXT: mov v0.16b, v1.16b
405
+ ; CHECK-NEXT: ret
422
406
entry:
423
407
%shuffle.i3 = shufflevector <8 x half > %a_vec , <8 x half > poison, <4 x i32 > <i32 4 , i32 5 , i32 6 , i32 7 >
424
408
%shuffle.i = shufflevector <8 x half > %b_vec , <8 x half > poison, <4 x i32 > <i32 4 , i32 5 , i32 6 , i32 7 >
@@ -427,19 +411,11 @@ entry:
427
411
}
428
412
429
413
define <8 x bfloat> @concat_high_high_v8bf16 (<8 x bfloat> %a_vec , <8 x bfloat> %b_vec ) {
430
- ; CHECK-SD-LABEL: concat_high_high_v8bf16:
431
- ; CHECK-SD: // %bb.0: // %entry
432
- ; CHECK-SD-NEXT: ext v0.16b, v0.16b, v0.16b, #8
433
- ; CHECK-SD-NEXT: ext v1.16b, v1.16b, v1.16b, #8
434
- ; CHECK-SD-NEXT: mov v0.d[1], v1.d[0]
435
- ; CHECK-SD-NEXT: ret
436
- ;
437
- ; CHECK-GI-LABEL: concat_high_high_v8bf16:
438
- ; CHECK-GI: // %bb.0: // %entry
439
- ; CHECK-GI-NEXT: mov d0, v0.d[1]
440
- ; CHECK-GI-NEXT: mov d1, v1.d[1]
441
- ; CHECK-GI-NEXT: mov v0.d[1], v1.d[0]
442
- ; CHECK-GI-NEXT: ret
414
+ ; CHECK-LABEL: concat_high_high_v8bf16:
415
+ ; CHECK: // %bb.0: // %entry
416
+ ; CHECK-NEXT: mov v1.d[0], v0.d[1]
417
+ ; CHECK-NEXT: mov v0.16b, v1.16b
418
+ ; CHECK-NEXT: ret
443
419
entry:
444
420
%shuffle.i3 = shufflevector <8 x bfloat> %a_vec , <8 x bfloat> poison, <4 x i32 > <i32 4 , i32 5 , i32 6 , i32 7 >
445
421
%shuffle.i = shufflevector <8 x bfloat> %b_vec , <8 x bfloat> poison, <4 x i32 > <i32 4 , i32 5 , i32 6 , i32 7 >
@@ -455,9 +431,8 @@ define <4 x i32> @concat_high_high_v4i32(<4 x i32> %a_vec, <4 x i32> %b_vec) {
455
431
;
456
432
; CHECK-GI-LABEL: concat_high_high_v4i32:
457
433
; CHECK-GI: // %bb.0: // %entry
458
- ; CHECK-GI-NEXT: mov d0, v0.d[1]
459
- ; CHECK-GI-NEXT: mov d1, v1.d[1]
460
- ; CHECK-GI-NEXT: mov v0.d[1], v1.d[0]
434
+ ; CHECK-GI-NEXT: mov v1.d[0], v0.d[1]
435
+ ; CHECK-GI-NEXT: mov v0.16b, v1.16b
461
436
; CHECK-GI-NEXT: ret
462
437
entry:
463
438
%shuffle.i3 = shufflevector <4 x i32 > %a_vec , <4 x i32 > poison, <2 x i32 > <i32 2 , i32 3 >
@@ -474,9 +449,8 @@ define <4 x float> @concat_high_high_v4f32(<4 x float> %a_vec, <4 x float> %b_ve
474
449
;
475
450
; CHECK-GI-LABEL: concat_high_high_v4f32:
476
451
; CHECK-GI: // %bb.0: // %entry
477
- ; CHECK-GI-NEXT: mov d0, v0.d[1]
478
- ; CHECK-GI-NEXT: mov d1, v1.d[1]
479
- ; CHECK-GI-NEXT: mov v0.d[1], v1.d[0]
452
+ ; CHECK-GI-NEXT: mov v1.d[0], v0.d[1]
453
+ ; CHECK-GI-NEXT: mov v0.16b, v1.16b
480
454
; CHECK-GI-NEXT: ret
481
455
entry:
482
456
%shuffle.i3 = shufflevector <4 x float > %a_vec , <4 x float > poison, <2 x i32 > <i32 2 , i32 3 >
@@ -486,19 +460,11 @@ entry:
486
460
}
487
461
488
462
define <16 x i8 > @concat_high_high_v16i8 (<16 x i8 > %a_vec , <16 x i8 > %b_vec ) {
489
- ; CHECK-SD-LABEL: concat_high_high_v16i8:
490
- ; CHECK-SD: // %bb.0: // %entry
491
- ; CHECK-SD-NEXT: ext v0.16b, v0.16b, v0.16b, #8
492
- ; CHECK-SD-NEXT: ext v1.16b, v1.16b, v1.16b, #8
493
- ; CHECK-SD-NEXT: mov v0.d[1], v1.d[0]
494
- ; CHECK-SD-NEXT: ret
495
- ;
496
- ; CHECK-GI-LABEL: concat_high_high_v16i8:
497
- ; CHECK-GI: // %bb.0: // %entry
498
- ; CHECK-GI-NEXT: mov d0, v0.d[1]
499
- ; CHECK-GI-NEXT: mov d1, v1.d[1]
500
- ; CHECK-GI-NEXT: mov v0.d[1], v1.d[0]
501
- ; CHECK-GI-NEXT: ret
463
+ ; CHECK-LABEL: concat_high_high_v16i8:
464
+ ; CHECK: // %bb.0: // %entry
465
+ ; CHECK-NEXT: mov v1.d[0], v0.d[1]
466
+ ; CHECK-NEXT: mov v0.16b, v1.16b
467
+ ; CHECK-NEXT: ret
502
468
entry:
503
469
%shuffle.i3 = shufflevector <16 x i8 > %a_vec , <16 x i8 > poison, <8 x i32 > <i32 8 , i32 9 , i32 10 , i32 11 , i32 12 , i32 13 , i32 14 , i32 15 >
504
470
%shuffle.i = shufflevector <16 x i8 > %b_vec , <16 x i8 > poison, <8 x i32 > <i32 8 , i32 9 , i32 10 , i32 11 , i32 12 , i32 13 , i32 14 , i32 15 >
0 commit comments