@@ -875,28 +875,12 @@ define i1 @mask_v8i32(<8 x i32> %a0) {
875875; SSE41-NEXT: sete %al 
876876; SSE41-NEXT: retq 
877877; 
878- ; AVX1-LABEL: mask_v8i32: 
879- ; AVX1: # %bb.0: 
880- ; AVX1-NEXT: vptest {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm0 
881- ; AVX1-NEXT: sete %al 
882- ; AVX1-NEXT: vzeroupper 
883- ; AVX1-NEXT: retq 
884- ; 
885- ; AVX2-LABEL: mask_v8i32: 
886- ; AVX2: # %bb.0: 
887- ; AVX2-NEXT: vpbroadcastq {{.*#+}} ymm1 = [9223372039002259456,9223372039002259456,9223372039002259456,9223372039002259456] 
888- ; AVX2-NEXT: vptest %ymm1, %ymm0 
889- ; AVX2-NEXT: sete %al 
890- ; AVX2-NEXT: vzeroupper 
891- ; AVX2-NEXT: retq 
892- ; 
893- ; AVX512-LABEL: mask_v8i32: 
894- ; AVX512: # %bb.0: 
895- ; AVX512-NEXT: vpbroadcastq {{.*#+}} ymm1 = [9223372039002259456,9223372039002259456,9223372039002259456,9223372039002259456] 
896- ; AVX512-NEXT: vptest %ymm1, %ymm0 
897- ; AVX512-NEXT: sete %al 
898- ; AVX512-NEXT: vzeroupper 
899- ; AVX512-NEXT: retq 
878+ ; AVX-LABEL: mask_v8i32: 
879+ ; AVX: # %bb.0: 
880+ ; AVX-NEXT: vtestps %ymm0, %ymm0 
881+ ; AVX-NEXT: sete %al 
882+ ; AVX-NEXT: vzeroupper 
883+ ; AVX-NEXT: retq 
900884 %1  = call  i32  @llvm.vector.reduce.or.v8i32 (<8  x i32 > %a0 )
901885 %2  = and  i32  %1 , 2147483648 
902886 %3  = icmp  eq  i32  %2 , 0 
@@ -965,28 +949,12 @@ define i1 @signtest_v8i32(<8 x i32> %a0) {
965949; SSE41-NEXT: sete %al 
966950; SSE41-NEXT: retq 
967951; 
968- ; AVX1-LABEL: signtest_v8i32: 
969- ; AVX1: # %bb.0: 
970- ; AVX1-NEXT: vptest {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm0 
971- ; AVX1-NEXT: sete %al 
972- ; AVX1-NEXT: vzeroupper 
973- ; AVX1-NEXT: retq 
974- ; 
975- ; AVX2-LABEL: signtest_v8i32: 
976- ; AVX2: # %bb.0: 
977- ; AVX2-NEXT: vpbroadcastq {{.*#+}} ymm1 = [9223372039002259456,9223372039002259456,9223372039002259456,9223372039002259456] 
978- ; AVX2-NEXT: vptest %ymm1, %ymm0 
979- ; AVX2-NEXT: sete %al 
980- ; AVX2-NEXT: vzeroupper 
981- ; AVX2-NEXT: retq 
982- ; 
983- ; AVX512-LABEL: signtest_v8i32: 
984- ; AVX512: # %bb.0: 
985- ; AVX512-NEXT: vpbroadcastq {{.*#+}} ymm1 = [9223372039002259456,9223372039002259456,9223372039002259456,9223372039002259456] 
986- ; AVX512-NEXT: vptest %ymm1, %ymm0 
987- ; AVX512-NEXT: sete %al 
988- ; AVX512-NEXT: vzeroupper 
989- ; AVX512-NEXT: retq 
952+ ; AVX-LABEL: signtest_v8i32: 
953+ ; AVX: # %bb.0: 
954+ ; AVX-NEXT: vtestps %ymm0, %ymm0 
955+ ; AVX-NEXT: sete %al 
956+ ; AVX-NEXT: vzeroupper 
957+ ; AVX-NEXT: retq 
990958 %1  = call  i32  @llvm.vector.reduce.or.v8i32 (<8  x i32 > %a0 )
991959 %2  = icmp  sgt  i32  %1 , -1 
992960 ret  i1  %2 
@@ -1010,28 +978,12 @@ define i1 @signtest_v4i64(<4 x i64> %a0) {
1010978; SSE41-NEXT: sete %al 
1011979; SSE41-NEXT: retq 
1012980; 
1013- ; AVX1-LABEL: signtest_v4i64: 
1014- ; AVX1: # %bb.0: 
1015- ; AVX1-NEXT: vptest {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm0 
1016- ; AVX1-NEXT: sete %al 
1017- ; AVX1-NEXT: vzeroupper 
1018- ; AVX1-NEXT: retq 
1019- ; 
1020- ; AVX2-LABEL: signtest_v4i64: 
1021- ; AVX2: # %bb.0: 
1022- ; AVX2-NEXT: vpbroadcastq {{.*#+}} ymm1 = [9223372036854775808,9223372036854775808,9223372036854775808,9223372036854775808] 
1023- ; AVX2-NEXT: vptest %ymm1, %ymm0 
1024- ; AVX2-NEXT: sete %al 
1025- ; AVX2-NEXT: vzeroupper 
1026- ; AVX2-NEXT: retq 
1027- ; 
1028- ; AVX512-LABEL: signtest_v4i64: 
1029- ; AVX512: # %bb.0: 
1030- ; AVX512-NEXT: vpbroadcastq {{.*#+}} ymm1 = [9223372036854775808,9223372036854775808,9223372036854775808,9223372036854775808] 
1031- ; AVX512-NEXT: vptest %ymm1, %ymm0 
1032- ; AVX512-NEXT: sete %al 
1033- ; AVX512-NEXT: vzeroupper 
1034- ; AVX512-NEXT: retq 
981+ ; AVX-LABEL: signtest_v4i64: 
982+ ; AVX: # %bb.0: 
983+ ; AVX-NEXT: vtestpd %ymm0, %ymm0 
984+ ; AVX-NEXT: sete %al 
985+ ; AVX-NEXT: vzeroupper 
986+ ; AVX-NEXT: retq 
1035987 %1  = call  i64  @llvm.vector.reduce.or.v4i64 (<4  x i64 > %a0 )
1036988 %2  = icmp  sgt  i64  %1 , -1 
1037989 ret  i1  %2 
0 commit comments