@@ -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