@@ -655,12 +655,12 @@ def : Pat<(udiv i8:$dst, i8:$opd),
655
655
656
656
def : Pat<(srem i8:$dst, i8:$opd),
657
657
(EXTRACT_SUBREG
658
- (ASR32di (ASR32di ( SDIVd32d16 (MOVSXd32d8 $dst), (MOVSXd16d8 $opd)), 8), 8 ),
658
+ (SWAP ( SDIVd32d16 (MOVSXd32d8 $dst), (MOVSXd16d8 $opd))),
659
659
MxSubRegIndex8Lo)>;
660
660
661
661
def : Pat<(urem i8:$dst, i8:$opd),
662
662
(EXTRACT_SUBREG
663
- (LSR32di (LSR32di ( UDIVd32d16 (MOVZXd32d8 $dst), (MOVZXd16d8 $opd)), 8), 8 ),
663
+ (SWAP ( UDIVd32d16 (MOVZXd32d8 $dst), (MOVZXd16d8 $opd))),
664
664
MxSubRegIndex8Lo)>;
665
665
666
666
// RR i16
@@ -676,12 +676,12 @@ def : Pat<(udiv i16:$dst, i16:$opd),
676
676
677
677
def : Pat<(srem i16:$dst, i16:$opd),
678
678
(EXTRACT_SUBREG
679
- (ASR32di (ASR32di ( SDIVd32d16 (MOVSXd32d16 $dst), $opd), 8), 8 ),
679
+ (SWAP ( SDIVd32d16 (MOVSXd32d16 $dst), $opd)),
680
680
MxSubRegIndex16Lo)>;
681
681
682
682
def : Pat<(urem i16:$dst, i16:$opd),
683
683
(EXTRACT_SUBREG
684
- (LSR32di (LSR32di ( UDIVd32d16 (MOVZXd32d16 $dst), $opd), 8), 8 ),
684
+ (SWAP ( UDIVd32d16 (MOVZXd32d16 $dst), $opd)),
685
685
MxSubRegIndex16Lo)>;
686
686
687
687
// RI i8
@@ -697,12 +697,12 @@ def : Pat<(udiv i8:$dst, Mxi8immSExt8:$opd),
697
697
698
698
def : Pat<(srem i8:$dst, Mxi8immSExt8:$opd),
699
699
(EXTRACT_SUBREG
700
- (ASR32di (ASR32di ( SDIVd32i16 (MOVSXd32d8 $dst), (as_i16imm $opd)), 8), 8 ),
700
+ (SWAP ( SDIVd32i16 (MOVSXd32d8 $dst), (as_i16imm $opd))),
701
701
MxSubRegIndex8Lo)>;
702
702
703
703
def : Pat<(urem i8:$dst, Mxi8immSExt8:$opd),
704
704
(EXTRACT_SUBREG
705
- (LSR32di (LSR32di ( UDIVd32i16 (MOVZXd32d8 $dst), (as_i16imm $opd)), 8), 8 ),
705
+ (SWAP ( UDIVd32i16 (MOVZXd32d8 $dst), (as_i16imm $opd))),
706
706
MxSubRegIndex8Lo)>;
707
707
708
708
// RI i16
@@ -718,12 +718,12 @@ def : Pat<(udiv i16:$dst, Mxi16immSExt16:$opd),
718
718
719
719
def : Pat<(srem i16:$dst, Mxi16immSExt16:$opd),
720
720
(EXTRACT_SUBREG
721
- (ASR32di (ASR32di ( SDIVd32i16 (MOVSXd32d16 $dst), imm:$opd), 8), 8 ),
721
+ (SWAP ( SDIVd32i16 (MOVSXd32d16 $dst), imm:$opd)),
722
722
MxSubRegIndex16Lo)>;
723
723
724
724
def : Pat<(urem i16:$dst, Mxi16immSExt16:$opd),
725
725
(EXTRACT_SUBREG
726
- (LSR32di (LSR32di ( UDIVd32i16 (MOVZXd32d16 $dst), imm:$opd), 8), 8 ),
726
+ (SWAP ( UDIVd32i16 (MOVZXd32d16 $dst), imm:$opd)),
727
727
MxSubRegIndex16Lo)>;
728
728
729
729
@@ -740,12 +740,12 @@ def : Pat<(mul i16:$dst, i16:$opd),
740
740
741
741
def : Pat<(mulhs i16:$dst, i16:$opd),
742
742
(EXTRACT_SUBREG
743
- (ASR32di (ASR32di ( SMULd32d16 (MOVXd32d16 $dst), $opd), 8), 8 ),
743
+ (SWAP ( SMULd32d16 (MOVXd32d16 $dst), $opd)),
744
744
MxSubRegIndex16Lo)>;
745
745
746
746
def : Pat<(mulhu i16:$dst, i16:$opd),
747
747
(EXTRACT_SUBREG
748
- (LSR32di (LSR32di ( UMULd32d16 (MOVXd32d16 $dst), $opd), 8), 8 ),
748
+ (SWAP ( UMULd32d16 (MOVXd32d16 $dst), $opd)),
749
749
MxSubRegIndex16Lo)>;
750
750
751
751
def : Pat<(mul i32:$dst, i32:$opd), (SMULd32d32 $dst, $opd)>;
@@ -759,12 +759,12 @@ def : Pat<(mul i16:$dst, Mxi16immSExt16:$opd),
759
759
760
760
def : Pat<(mulhs i16:$dst, Mxi16immSExt16:$opd),
761
761
(EXTRACT_SUBREG
762
- (ASR32di (ASR32di ( SMULd32i16 (MOVXd32d16 $dst), imm:$opd), 8), 8 ),
762
+ (SWAP ( SMULd32i16 (MOVXd32d16 $dst), imm:$opd)),
763
763
MxSubRegIndex16Lo)>;
764
764
765
765
def : Pat<(mulhu i16:$dst, Mxi16immSExt16:$opd),
766
766
(EXTRACT_SUBREG
767
- (LSR32di (LSR32di ( UMULd32i16 (MOVXd32d16 $dst), imm:$opd), 8), 8 ),
767
+ (SWAP ( UMULd32i16 (MOVXd32d16 $dst), imm:$opd)),
768
768
MxSubRegIndex16Lo)>;
769
769
770
770
0 commit comments