@@ -625,8 +625,10 @@ void X86DomainReassignment::initConverters() {
625
625
createReplacerDstCOPY (X86::MOVZX64rm16,
626
626
HasEGPR ? X86::KMOVWkm_EVEX : X86::KMOVWkm);
627
627
628
- createReplacerDstCOPY (X86::MOVZX32rr16, X86::KMOVWkk);
629
- createReplacerDstCOPY (X86::MOVZX64rr16, X86::KMOVWkk);
628
+ createReplacerDstCOPY (X86::MOVZX32rr16,
629
+ HasEGPR ? X86::KMOVWkk_EVEX : X86::KMOVWkk);
630
+ createReplacerDstCOPY (X86::MOVZX64rr16,
631
+ HasEGPR ? X86::KMOVWkk_EVEX : X86::KMOVWkk);
630
632
631
633
if (STI->hasDQI ()) {
632
634
createReplacerDstCOPY (X86::MOVZX16rm8,
@@ -636,9 +638,12 @@ void X86DomainReassignment::initConverters() {
636
638
createReplacerDstCOPY (X86::MOVZX64rm8,
637
639
HasEGPR ? X86::KMOVBkm_EVEX : X86::KMOVBkm);
638
640
639
- createReplacerDstCOPY (X86::MOVZX16rr8, X86::KMOVBkk);
640
- createReplacerDstCOPY (X86::MOVZX32rr8, X86::KMOVBkk);
641
- createReplacerDstCOPY (X86::MOVZX64rr8, X86::KMOVBkk);
641
+ createReplacerDstCOPY (X86::MOVZX16rr8,
642
+ HasEGPR ? X86::KMOVBkk_EVEX : X86::KMOVBkk);
643
+ createReplacerDstCOPY (X86::MOVZX32rr8,
644
+ HasEGPR ? X86::KMOVBkk_EVEX : X86::KMOVBkk);
645
+ createReplacerDstCOPY (X86::MOVZX64rr8,
646
+ HasEGPR ? X86::KMOVBkk_EVEX : X86::KMOVBkk);
642
647
}
643
648
644
649
auto createReplacer = [&](unsigned From, unsigned To) {
@@ -647,7 +652,7 @@ void X86DomainReassignment::initConverters() {
647
652
648
653
createReplacer (X86::MOV16rm, HasEGPR ? X86::KMOVWkm_EVEX : X86::KMOVWkm);
649
654
createReplacer (X86::MOV16mr, HasEGPR ? X86::KMOVWmk_EVEX : X86::KMOVWmk);
650
- createReplacer (X86::MOV16rr, X86::KMOVWkk);
655
+ createReplacer (X86::MOV16rr, HasEGPR ? X86::KMOVWkk_EVEX : X86::KMOVWkk);
651
656
createReplacer (X86::SHR16ri, X86::KSHIFTRWri);
652
657
createReplacer (X86::SHL16ri, X86::KSHIFTLWri);
653
658
createReplacer (X86::NOT16r, X86::KNOTWrr);
@@ -662,8 +667,8 @@ void X86DomainReassignment::initConverters() {
662
667
createReplacer (X86::MOV32mr, HasEGPR ? X86::KMOVDmk_EVEX : X86::KMOVDmk);
663
668
createReplacer (X86::MOV64mr, HasEGPR ? X86::KMOVQmk_EVEX : X86::KMOVQmk);
664
669
665
- createReplacer (X86::MOV32rr, X86::KMOVDkk);
666
- createReplacer (X86::MOV64rr, X86::KMOVQkk);
670
+ createReplacer (X86::MOV32rr, HasEGPR ? X86::KMOVDkk_EVEX : X86::KMOVDkk);
671
+ createReplacer (X86::MOV64rr, HasEGPR ? X86::KMOVQkk_EVEX : X86::KMOVQkk);
667
672
668
673
createReplacer (X86::SHR32ri, X86::KSHIFTRDri);
669
674
createReplacer (X86::SHR64ri, X86::KSHIFTRQri);
@@ -703,7 +708,7 @@ void X86DomainReassignment::initConverters() {
703
708
704
709
createReplacer (X86::MOV8rm, HasEGPR ? X86::KMOVBkm_EVEX : X86::KMOVBkm);
705
710
createReplacer (X86::MOV8mr, HasEGPR ? X86::KMOVBmk_EVEX : X86::KMOVBmk);
706
- createReplacer (X86::MOV8rr, X86::KMOVBkk);
711
+ createReplacer (X86::MOV8rr, HasEGPR ? X86::KMOVBkk_EVEX : X86::KMOVBkk);
707
712
708
713
createReplacer (X86::NOT8r, X86::KNOTBrr);
709
714
0 commit comments