@@ -800,6 +800,38 @@ define <8 x double> @combine_vpermi2var_8f64_as_vpermpd(<8 x double> %x0, <8 x d
800800 ret <8 x double > %res1
801801}
802802
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+
803835define <8 x i64 > @combine_vpermt2var_8i64_as_vpermq (<8 x i64 > %x0 , <8 x i64 > %x1 ) {
804836; CHECK-LABEL: combine_vpermt2var_8i64_as_vpermq:
805837; CHECK: # %bb.0:
0 commit comments