@@ -571,29 +571,27 @@ define void @trunc_v8i19_to_v8i8_in_loop(ptr %A, ptr %dst) {
571
571
; CHECK-NEXT: mov x8, xzr
572
572
; CHECK-NEXT: LBB5_1: ; %loop
573
573
; CHECK-NEXT: ; =>This Inner Loop Header: Depth=1
574
- ; CHECK-NEXT: ldp x10, x9 , [x0]
575
- ; CHECK-NEXT: ldrb w13 , [x0, #18]
576
- ; CHECK-NEXT: ldrh w14 , [x0, #16]
574
+ ; CHECK-NEXT: ldp x9, x10 , [x0]
575
+ ; CHECK-NEXT: ldrb w14 , [x0, #18]
576
+ ; CHECK-NEXT: ldrh w15 , [x0, #16]
577
577
; CHECK-NEXT: add x0, x0, #32
578
- ; CHECK-NEXT: ubfx x12, x9, #12, #20
579
- ; CHECK-NEXT: fmov s0, w10
580
- ; CHECK-NEXT: lsr x11, x10, #19
581
- ; CHECK-NEXT: lsr x15, x9, #31
582
- ; CHECK-NEXT: fmov s1, w12
583
- ; CHECK-NEXT: lsr x12, x9, #50
584
- ; CHECK-NEXT: mov.s v0[1], w11
585
- ; CHECK-NEXT: orr w11, w14, w13, lsl #16
586
- ; CHECK-NEXT: lsr x13, x10, #38
587
- ; CHECK-NEXT: lsr x10, x10, #57
588
- ; CHECK-NEXT: mov.s v1[1], w15
589
- ; CHECK-NEXT: orr w12, w12, w11, lsl #14
590
- ; CHECK-NEXT: orr w9, w10, w9, lsl #7
591
- ; CHECK-NEXT: lsr w10, w11, #5
592
- ; CHECK-NEXT: mov.s v0[2], w13
578
+ ; CHECK-NEXT: ubfx x12, x10, #12, #20
579
+ ; CHECK-NEXT: fmov s1, w9
580
+ ; CHECK-NEXT: lsr x11, x9, #19
581
+ ; CHECK-NEXT: lsr x13, x10, #31
582
+ ; CHECK-NEXT: fmov s0, w12
583
+ ; CHECK-NEXT: lsr x12, x9, #38
584
+ ; CHECK-NEXT: extr x9, x10, x9, #57
585
+ ; CHECK-NEXT: mov.s v1[1], w11
586
+ ; CHECK-NEXT: orr x11, x15, x14, lsl #16
587
+ ; CHECK-NEXT: mov.s v0[1], w13
588
+ ; CHECK-NEXT: extr x13, x11, x10, #50
589
+ ; CHECK-NEXT: ubfx x10, x11, #5, #27
593
590
; CHECK-NEXT: mov.s v1[2], w12
594
- ; CHECK-NEXT: mov.s v0[3], w9
595
- ; CHECK-NEXT: mov.s v1[3], w10
596
- ; CHECK-NEXT: uzp1.8h v0, v0, v1
591
+ ; CHECK-NEXT: mov.s v0[2], w13
592
+ ; CHECK-NEXT: mov.s v1[3], w9
593
+ ; CHECK-NEXT: mov.s v0[3], w10
594
+ ; CHECK-NEXT: uzp1.8h v0, v1, v0
597
595
; CHECK-NEXT: xtn.8b v0, v0
598
596
; CHECK-NEXT: str d0, [x1, x8, lsl #3]
599
597
; CHECK-NEXT: add x8, x8, #1
@@ -608,35 +606,34 @@ define void @trunc_v8i19_to_v8i8_in_loop(ptr %A, ptr %dst) {
608
606
; CHECK-BE-NEXT: .LBB5_1: // %loop
609
607
; CHECK-BE-NEXT: // =>This Inner Loop Header: Depth=1
610
608
; CHECK-BE-NEXT: ldp x10, x9, [x0]
611
- ; CHECK-BE-NEXT: ldrb w16, [x0, #18]
612
- ; CHECK-BE-NEXT: lsr x11, x9, #40
613
- ; CHECK-BE-NEXT: ubfx x12, x9, #33, #7
614
- ; CHECK-BE-NEXT: lsr x15, x10, #45
615
- ; CHECK-BE-NEXT: lsr x13, x10, #40
616
- ; CHECK-BE-NEXT: ubfx x14, x10, #26, #14
617
- ; CHECK-BE-NEXT: orr w11, w12, w11, lsl #7
618
- ; CHECK-BE-NEXT: ldrh w12, [x0, #16]
619
- ; CHECK-BE-NEXT: fmov s0, w15
620
- ; CHECK-BE-NEXT: orr w13, w14, w13, lsl #14
621
- ; CHECK-BE-NEXT: ubfx x14, x9, #14, #18
609
+ ; CHECK-BE-NEXT: ldrh w16, [x0, #16]
610
+ ; CHECK-BE-NEXT: ldrb w17, [x0, #18]
622
611
; CHECK-BE-NEXT: add x0, x0, #32
623
- ; CHECK-BE-NEXT: fmov s1, w11
624
- ; CHECK-BE-NEXT: orr w11, w16, w12, lsl #8
625
- ; CHECK-BE-NEXT: lsl x12, x9, #24
626
- ; CHECK-BE-NEXT: mov v0.s[1], w13
612
+ ; CHECK-BE-NEXT: lsl x11, x9, #24
613
+ ; CHECK-BE-NEXT: lsr x12, x9, #40
614
+ ; CHECK-BE-NEXT: lsr x13, x10, #45
615
+ ; CHECK-BE-NEXT: lsl x14, x10, #24
616
+ ; CHECK-BE-NEXT: lsr x15, x10, #40
617
+ ; CHECK-BE-NEXT: extr x12, x12, x11, #57
618
+ ; CHECK-BE-NEXT: fmov s0, w13
627
619
; CHECK-BE-NEXT: ubfx x13, x10, #7, #25
620
+ ; CHECK-BE-NEXT: extr x14, x15, x14, #50
621
+ ; CHECK-BE-NEXT: ubfx x15, x9, #14, #18
628
622
; CHECK-BE-NEXT: extr x9, x10, x9, #40
629
- ; CHECK-BE-NEXT: orr w12, w11 , w12
630
- ; CHECK-BE-NEXT: mov v1.s[1], w14
631
- ; CHECK-BE-NEXT: lsr w12, w12, #19
623
+ ; CHECK-BE-NEXT: fmov s1 , w12
624
+ ; CHECK-BE-NEXT: orr w12, w17, w16, lsl #8
625
+ ; CHECK-BE-NEXT: mov v0.s[1], w14
632
626
; CHECK-BE-NEXT: ubfx x9, x9, #12, #20
627
+ ; CHECK-BE-NEXT: orr w11, w12, w11
628
+ ; CHECK-BE-NEXT: mov v1.s[1], w15
629
+ ; CHECK-BE-NEXT: lsr w11, w11, #19
633
630
; CHECK-BE-NEXT: mov v0.s[2], w13
634
- ; CHECK-BE-NEXT: mov v1.s[2], w12
631
+ ; CHECK-BE-NEXT: mov v1.s[2], w11
635
632
; CHECK-BE-NEXT: mov v0.s[3], w9
636
633
; CHECK-BE-NEXT: add x9, x1, x8, lsl #3
637
634
; CHECK-BE-NEXT: add x8, x8, #1
638
635
; CHECK-BE-NEXT: cmp x8, #1000
639
- ; CHECK-BE-NEXT: mov v1.s[3], w11
636
+ ; CHECK-BE-NEXT: mov v1.s[3], w12
640
637
; CHECK-BE-NEXT: uzp1 v0.8h, v0.8h, v1.8h
641
638
; CHECK-BE-NEXT: xtn v0.8b, v0.8h
642
639
; CHECK-BE-NEXT: st1 { v0.8b }, [x9]
@@ -650,35 +647,34 @@ define void @trunc_v8i19_to_v8i8_in_loop(ptr %A, ptr %dst) {
650
647
; CHECK-DISABLE-NEXT: .LBB5_1: // %loop
651
648
; CHECK-DISABLE-NEXT: // =>This Inner Loop Header: Depth=1
652
649
; CHECK-DISABLE-NEXT: ldp x10, x9, [x0]
653
- ; CHECK-DISABLE-NEXT: ldrb w16, [x0, #18]
654
- ; CHECK-DISABLE-NEXT: lsr x11, x9, #40
655
- ; CHECK-DISABLE-NEXT: ubfx x12, x9, #33, #7
656
- ; CHECK-DISABLE-NEXT: lsr x15, x10, #45
657
- ; CHECK-DISABLE-NEXT: lsr x13, x10, #40
658
- ; CHECK-DISABLE-NEXT: ubfx x14, x10, #26, #14
659
- ; CHECK-DISABLE-NEXT: orr w11, w12, w11, lsl #7
660
- ; CHECK-DISABLE-NEXT: ldrh w12, [x0, #16]
661
- ; CHECK-DISABLE-NEXT: fmov s0, w15
662
- ; CHECK-DISABLE-NEXT: orr w13, w14, w13, lsl #14
663
- ; CHECK-DISABLE-NEXT: ubfx x14, x9, #14, #18
650
+ ; CHECK-DISABLE-NEXT: ldrh w16, [x0, #16]
651
+ ; CHECK-DISABLE-NEXT: ldrb w17, [x0, #18]
664
652
; CHECK-DISABLE-NEXT: add x0, x0, #32
665
- ; CHECK-DISABLE-NEXT: fmov s1, w11
666
- ; CHECK-DISABLE-NEXT: orr w11, w16, w12, lsl #8
667
- ; CHECK-DISABLE-NEXT: lsl x12, x9, #24
668
- ; CHECK-DISABLE-NEXT: mov v0.s[1], w13
653
+ ; CHECK-DISABLE-NEXT: lsl x11, x9, #24
654
+ ; CHECK-DISABLE-NEXT: lsr x12, x9, #40
655
+ ; CHECK-DISABLE-NEXT: lsr x13, x10, #45
656
+ ; CHECK-DISABLE-NEXT: lsl x14, x10, #24
657
+ ; CHECK-DISABLE-NEXT: lsr x15, x10, #40
658
+ ; CHECK-DISABLE-NEXT: extr x12, x12, x11, #57
659
+ ; CHECK-DISABLE-NEXT: fmov s0, w13
669
660
; CHECK-DISABLE-NEXT: ubfx x13, x10, #7, #25
661
+ ; CHECK-DISABLE-NEXT: extr x14, x15, x14, #50
662
+ ; CHECK-DISABLE-NEXT: ubfx x15, x9, #14, #18
670
663
; CHECK-DISABLE-NEXT: extr x9, x10, x9, #40
671
- ; CHECK-DISABLE-NEXT: orr w12, w11 , w12
672
- ; CHECK-DISABLE-NEXT: mov v1.s[1], w14
673
- ; CHECK-DISABLE-NEXT: lsr w12, w12, #19
664
+ ; CHECK-DISABLE-NEXT: fmov s1 , w12
665
+ ; CHECK-DISABLE-NEXT: orr w12, w17, w16, lsl #8
666
+ ; CHECK-DISABLE-NEXT: mov v0.s[1], w14
674
667
; CHECK-DISABLE-NEXT: ubfx x9, x9, #12, #20
668
+ ; CHECK-DISABLE-NEXT: orr w11, w12, w11
669
+ ; CHECK-DISABLE-NEXT: mov v1.s[1], w15
670
+ ; CHECK-DISABLE-NEXT: lsr w11, w11, #19
675
671
; CHECK-DISABLE-NEXT: mov v0.s[2], w13
676
- ; CHECK-DISABLE-NEXT: mov v1.s[2], w12
672
+ ; CHECK-DISABLE-NEXT: mov v1.s[2], w11
677
673
; CHECK-DISABLE-NEXT: mov v0.s[3], w9
678
674
; CHECK-DISABLE-NEXT: add x9, x1, x8, lsl #3
679
675
; CHECK-DISABLE-NEXT: add x8, x8, #1
680
676
; CHECK-DISABLE-NEXT: cmp x8, #1000
681
- ; CHECK-DISABLE-NEXT: mov v1.s[3], w11
677
+ ; CHECK-DISABLE-NEXT: mov v1.s[3], w12
682
678
; CHECK-DISABLE-NEXT: uzp1 v0.8h, v0.8h, v1.8h
683
679
; CHECK-DISABLE-NEXT: xtn v0.8b, v0.8h
684
680
; CHECK-DISABLE-NEXT: st1 { v0.8b }, [x9]
0 commit comments