@@ -800,6 +800,38 @@ define <8 x double> @combine_vpermi2var_8f64_as_vpermpd(<8 x double> %x0, <8 x d
800
800
ret <8 x double > %res1
801
801
}
802
802
803
+ define <8 x i64 > @combine_vpermt2var_8i64_as_valignq (<8 x i64 > %x0 , <8 x i64 > %x1 ) {
804
+ ; CHECK-LABEL: combine_vpermt2var_8i64_as_valignq:
805
+ ; CHECK: # %bb.0:
806
+ ; CHECK-NEXT: valignq {{.*#+}} zmm0 = zmm1[7],zmm0[0,1,2,3,4,5,6]
807
+ ; CHECK-NEXT: ret{{[l|q]}}
808
+ %res0 = call <8 x i64 > @llvm.x86.avx512.maskz.vpermt2var.q.512 (<8 x i64 > <i64 15 , i64 0 , i64 1 , i64 2 , i64 3 , i64 4 , i64 5 , i64 6 >, <8 x i64 > %x0 , <8 x i64 > %x1 , i8 -1 )
809
+ ret <8 x i64 > %res0
810
+ }
811
+
812
+ define <8 x i64 > @combine_vpermt2var_8i64_as_valignq_zero (<8 x i64 > %x0 ) {
813
+ ; CHECK-LABEL: combine_vpermt2var_8i64_as_valignq_zero:
814
+ ; CHECK: # %bb.0:
815
+ ; CHECK-NEXT: vpmovsxbq {{.*#+}} zmm2 = [15,0,1,2,3,4,5,6]
816
+ ; CHECK-NEXT: vpxor %xmm1, %xmm1, %xmm1
817
+ ; CHECK-NEXT: vpermt2q %zmm0, %zmm2, %zmm1
818
+ ; CHECK-NEXT: vmovdqa64 %zmm1, %zmm0
819
+ ; CHECK-NEXT: ret{{[l|q]}}
820
+ %res0 = call <8 x i64 > @llvm.x86.avx512.maskz.vpermt2var.q.512 (<8 x i64 > <i64 15 , i64 0 , i64 1 , i64 2 , i64 3 , i64 4 , i64 5 , i64 6 >, <8 x i64 > zeroinitializer , <8 x i64 > %x0 , i8 -1 )
821
+ ret <8 x i64 > %res0
822
+ }
823
+
824
+ define <8 x i64 > @combine_vpermt2var_8i64_as_zero_valignq (<8 x i64 > %x0 ) {
825
+ ; CHECK-LABEL: combine_vpermt2var_8i64_as_zero_valignq:
826
+ ; CHECK: # %bb.0:
827
+ ; CHECK-NEXT: vpxor %xmm1, %xmm1, %xmm1
828
+ ; CHECK-NEXT: vpmovsxbq {{.*#+}} zmm2 = [15,0,1,2,3,4,5,6]
829
+ ; CHECK-NEXT: vpermt2q %zmm1, %zmm2, %zmm0
830
+ ; CHECK-NEXT: ret{{[l|q]}}
831
+ %res0 = call <8 x i64 > @llvm.x86.avx512.maskz.vpermt2var.q.512 (<8 x i64 > <i64 15 , i64 0 , i64 1 , i64 2 , i64 3 , i64 4 , i64 5 , i64 6 >, <8 x i64 > %x0 , <8 x i64 > zeroinitializer , i8 -1 )
832
+ ret <8 x i64 > %res0
833
+ }
834
+
803
835
define <8 x i64 > @combine_vpermt2var_8i64_as_vpermq (<8 x i64 > %x0 , <8 x i64 > %x1 ) {
804
836
; CHECK-LABEL: combine_vpermt2var_8i64_as_vpermq:
805
837
; CHECK: # %bb.0:
0 commit comments