llvm.org GIT mirror llvm / 3f006c6
[X86][AVX512] Added support for VMOVQ shuffle comments git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@255442 91177308-0d34-0410-b5e6-96231b3b80d8 Simon Pilgrim 4 years ago
2 changed file(s) with 26 addition(s) and 54 deletion(s). Raw diff Collapse all Expand all
671671 break;
672672
673673 case X86::MOVPQI2QIrr:
674 case X86::MOVZPQILo2PQIrr:
675 case X86::VMOVPQI2QIrr:
676 case X86::VMOVZPQILo2PQIrr:
677 Src1Name = getRegName(MI->getOperand(1).getReg());
678 // FALL THROUGH.
679 case X86::MOVQI2PQIrm:
674 case X86::MOVZPQILo2PQIrr:
675 case X86::VMOVPQI2QIrr:
676 case X86::VMOVZPQILo2PQIrr:
677 case X86::VMOVZPQILo2PQIZrr:
678 Src1Name = getRegName(MI->getOperand(1).getReg());
679 // FALL THROUGH.
680 case X86::MOVQI2PQIrm:
680681 case X86::MOVZQI2PQIrm:
681682 case X86::MOVZPQILo2PQIrm:
682 case X86::VMOVQI2PQIrm:
683 case X86::VMOVZQI2PQIrm:
684 case X86::VMOVZPQILo2PQIrm:
685 DecodeZeroMoveLowMask(MVT::v2i64, ShuffleMask);
686 DestName = getRegName(MI->getOperand(0).getReg());
687 break;
683 case X86::VMOVQI2PQIrm:
684 case X86::VMOVZQI2PQIrm:
685 case X86::VMOVZPQILo2PQIrm:
686 case X86::VMOVZPQILo2PQIZrm:
687 DecodeZeroMoveLowMask(MVT::v2i64, ShuffleMask);
688 DestName = getRegName(MI->getOperand(0).getReg());
689 break;
688690
689691 case X86::MOVDI2PDIrm:
690692 case X86::VMOVDI2PDIrm:
686686 ; SSE-NEXT: movq {{.*#+}} xmm0 = xmm0[0],zero
687687 ; SSE-NEXT: retq
688688 ;
689 ; AVX1-LABEL: shuffle_v2i64_0z:
690 ; AVX1: # BB#0:
691 ; AVX1-NEXT: vmovq {{.*#+}} xmm0 = xmm0[0],zero
692 ; AVX1-NEXT: retq
693 ;
694 ; AVX2-LABEL: shuffle_v2i64_0z:
695 ; AVX2: # BB#0:
696 ; AVX2-NEXT: vmovq {{.*#+}} xmm0 = xmm0[0],zero
697 ; AVX2-NEXT: retq
698 ;
699 ; AVX512VL-LABEL: shuffle_v2i64_0z:
700 ; AVX512VL: # BB#0:
701 ; AVX512VL-NEXT: vmovq %xmm0, %xmm0
702 ; AVX512VL-NEXT: retq
689 ; AVX-LABEL: shuffle_v2i64_0z:
690 ; AVX: # BB#0:
691 ; AVX-NEXT: vmovq {{.*#+}} xmm0 = xmm0[0],zero
692 ; AVX-NEXT: retq
703693 %shuffle = shufflevector <2 x i64> %a, <2 x i64> zeroinitializer, <2 x i32>
704694 ret <2 x i64> %shuffle
705695 }
784774 ; SSE-NEXT: movq {{.*#+}} xmm0 = xmm0[0],zero
785775 ; SSE-NEXT: retq
786776 ;
787 ; AVX1-LABEL: shuffle_v2f64_0z:
788 ; AVX1: # BB#0:
789 ; AVX1-NEXT: vmovq {{.*#+}} xmm0 = xmm0[0],zero
790 ; AVX1-NEXT: retq
791 ;
792 ; AVX2-LABEL: shuffle_v2f64_0z:
793 ; AVX2: # BB#0:
794 ; AVX2-NEXT: vmovq {{.*#+}} xmm0 = xmm0[0],zero
795 ; AVX2-NEXT: retq
796 ;
797 ; AVX512VL-LABEL: shuffle_v2f64_0z:
798 ; AVX512VL: # BB#0:
799 ; AVX512VL-NEXT: vmovq %xmm0, %xmm0
800 ; AVX512VL-NEXT: retq
777 ; AVX-LABEL: shuffle_v2f64_0z:
778 ; AVX: # BB#0:
779 ; AVX-NEXT: vmovq {{.*#+}} xmm0 = xmm0[0],zero
780 ; AVX-NEXT: retq
801781 %shuffle = shufflevector <2 x double> %a, <2 x double> zeroinitializer, <2 x i32>
802782 ret <2 x double> %shuffle
803783 }
10311011 ; SSE-NEXT: movq {{.*#+}} xmm0 = xmm0[0],zero
10321012 ; SSE-NEXT: retq
10331013 ;
1034 ; AVX1-LABEL: insert_reg_and_zero_v2f64:
1035 ; AVX1: # BB#0:
1036 ; AVX1-NEXT: vmovq {{.*#+}} xmm0 = xmm0[0],zero
1037 ; AVX1-NEXT: retq
1038 ;
1039 ; AVX2-LABEL: insert_reg_and_zero_v2f64:
1040 ; AVX2: # BB#0:
1041 ; AVX2-NEXT: vmovq {{.*#+}} xmm0 = xmm0[0],zero
1042 ; AVX2-NEXT: retq
1043 ;
1044 ; AVX512VL-LABEL: insert_reg_and_zero_v2f64:
1045 ; AVX512VL: # BB#0:
1046 ; AVX512VL-NEXT: vmovq %xmm0, %xmm0
1047 ; AVX512VL-NEXT: retq
1014 ; AVX-LABEL: insert_reg_and_zero_v2f64:
1015 ; AVX: # BB#0:
1016 ; AVX-NEXT: vmovq {{.*#+}} xmm0 = xmm0[0],zero
1017 ; AVX-NEXT: retq
10481018 %v = insertelement <2 x double> undef, double %a, i32 0
10491019 %shuffle = shufflevector <2 x double> %v, <2 x double> zeroinitializer, <2 x i32>
10501020 ret <2 x double> %shuffle