@@ -929,22 +929,6 @@ define i1 @allzeros_v16i32_sign(<16 x i32> %arg) {
929
929
define i1 @allones_v4i64_sign (<4 x i64 > %arg ) {
930
930
; SSE2-LABEL: allones_v4i64_sign:
931
931
; SSE2: # %bb.0:
932
- ; SSE2-NEXT: movdqa {{.*#+}} xmm2 = [2147483648,2147483648]
933
- ; SSE2-NEXT: pxor %xmm2, %xmm1
934
- ; SSE2-NEXT: movdqa %xmm2, %xmm3
935
- ; SSE2-NEXT: pcmpeqd %xmm1, %xmm3
936
- ; SSE2-NEXT: movdqa %xmm2, %xmm4
937
- ; SSE2-NEXT: pcmpgtd %xmm1, %xmm4
938
- ; SSE2-NEXT: pshufd {{.*#+}} xmm1 = xmm4[0,0,2,2]
939
- ; SSE2-NEXT: pand %xmm3, %xmm1
940
- ; SSE2-NEXT: por %xmm4, %xmm1
941
- ; SSE2-NEXT: pxor %xmm2, %xmm0
942
- ; SSE2-NEXT: movdqa %xmm2, %xmm3
943
- ; SSE2-NEXT: pcmpeqd %xmm0, %xmm3
944
- ; SSE2-NEXT: pcmpgtd %xmm0, %xmm2
945
- ; SSE2-NEXT: pshufd {{.*#+}} xmm0 = xmm2[0,0,2,2]
946
- ; SSE2-NEXT: pand %xmm3, %xmm0
947
- ; SSE2-NEXT: por %xmm2, %xmm0
948
932
; SSE2-NEXT: packssdw %xmm1, %xmm0
949
933
; SSE2-NEXT: movmskps %xmm0, %eax
950
934
; SSE2-NEXT: cmpb $15, %al
@@ -989,22 +973,6 @@ define i1 @allones_v4i64_sign(<4 x i64> %arg) {
989
973
define i1 @allzeros_v4i64_sign (<4 x i64 > %arg ) {
990
974
; SSE2-LABEL: allzeros_v4i64_sign:
991
975
; SSE2: # %bb.0:
992
- ; SSE2-NEXT: movdqa {{.*#+}} xmm2 = [2147483648,2147483648]
993
- ; SSE2-NEXT: pxor %xmm2, %xmm1
994
- ; SSE2-NEXT: movdqa %xmm2, %xmm3
995
- ; SSE2-NEXT: pcmpeqd %xmm1, %xmm3
996
- ; SSE2-NEXT: movdqa %xmm2, %xmm4
997
- ; SSE2-NEXT: pcmpgtd %xmm1, %xmm4
998
- ; SSE2-NEXT: pshufd {{.*#+}} xmm1 = xmm4[0,0,2,2]
999
- ; SSE2-NEXT: pand %xmm3, %xmm1
1000
- ; SSE2-NEXT: por %xmm4, %xmm1
1001
- ; SSE2-NEXT: pxor %xmm2, %xmm0
1002
- ; SSE2-NEXT: movdqa %xmm2, %xmm3
1003
- ; SSE2-NEXT: pcmpeqd %xmm0, %xmm3
1004
- ; SSE2-NEXT: pcmpgtd %xmm0, %xmm2
1005
- ; SSE2-NEXT: pshufd {{.*#+}} xmm0 = xmm2[0,0,2,2]
1006
- ; SSE2-NEXT: pand %xmm3, %xmm0
1007
- ; SSE2-NEXT: por %xmm2, %xmm0
1008
976
; SSE2-NEXT: packssdw %xmm1, %xmm0
1009
977
; SSE2-NEXT: movmskps %xmm0, %eax
1010
978
; SSE2-NEXT: testb %al, %al
@@ -1095,15 +1063,13 @@ define i1 @allones_v8i64_sign(<8 x i64> %arg) {
1095
1063
;
1096
1064
; AVX1-LABEL: allones_v8i64_sign:
1097
1065
; AVX1: # %bb.0:
1098
- ; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm2
1099
- ; AVX1-NEXT: vpxor %xmm3, %xmm3, %xmm3
1100
- ; AVX1-NEXT: vpcmpgtq %xmm2, %xmm3, %xmm2
1101
- ; AVX1-NEXT: vpcmpgtq %xmm1, %xmm3, %xmm1
1102
- ; AVX1-NEXT: vpackssdw %xmm2, %xmm1, %xmm1
1103
1066
; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm2
1067
+ ; AVX1-NEXT: vpxor %xmm3, %xmm3, %xmm3
1104
1068
; AVX1-NEXT: vpcmpgtq %xmm2, %xmm3, %xmm2
1105
1069
; AVX1-NEXT: vpcmpgtq %xmm0, %xmm3, %xmm0
1106
1070
; AVX1-NEXT: vpackssdw %xmm2, %xmm0, %xmm0
1071
+ ; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm2
1072
+ ; AVX1-NEXT: vpackssdw %xmm2, %xmm1, %xmm1
1107
1073
; AVX1-NEXT: vinsertf128 $1, %xmm1, %ymm0, %ymm0
1108
1074
; AVX1-NEXT: vmovmskps %ymm0, %eax
1109
1075
; AVX1-NEXT: cmpb $-1, %al
@@ -1198,15 +1164,13 @@ define i1 @allzeros_v8i64_sign(<8 x i64> %arg) {
1198
1164
;
1199
1165
; AVX1-LABEL: allzeros_v8i64_sign:
1200
1166
; AVX1: # %bb.0:
1201
- ; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm2
1202
- ; AVX1-NEXT: vpxor %xmm3, %xmm3, %xmm3
1203
- ; AVX1-NEXT: vpcmpgtq %xmm2, %xmm3, %xmm2
1204
- ; AVX1-NEXT: vpcmpgtq %xmm1, %xmm3, %xmm1
1205
- ; AVX1-NEXT: vpackssdw %xmm2, %xmm1, %xmm1
1206
1167
; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm2
1168
+ ; AVX1-NEXT: vpxor %xmm3, %xmm3, %xmm3
1207
1169
; AVX1-NEXT: vpcmpgtq %xmm2, %xmm3, %xmm2
1208
1170
; AVX1-NEXT: vpcmpgtq %xmm0, %xmm3, %xmm0
1209
1171
; AVX1-NEXT: vpackssdw %xmm2, %xmm0, %xmm0
1172
+ ; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm2
1173
+ ; AVX1-NEXT: vpackssdw %xmm2, %xmm1, %xmm1
1210
1174
; AVX1-NEXT: vinsertf128 $1, %xmm1, %ymm0, %ymm0
1211
1175
; AVX1-NEXT: vmovmskps %ymm0, %eax
1212
1176
; AVX1-NEXT: testb %al, %al
@@ -2539,19 +2503,17 @@ define i1 @allones_v8i64_and1(<8 x i64> %arg) {
2539
2503
;
2540
2504
; AVX1-LABEL: allones_v8i64_and1:
2541
2505
; AVX1: # %bb.0:
2542
- ; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm2
2543
- ; AVX1-NEXT: vpsllq $63, %xmm2, %xmm2
2544
- ; AVX1-NEXT: vpxor %xmm3, %xmm3, %xmm3
2545
- ; AVX1-NEXT: vpcmpgtq %xmm2, %xmm3, %xmm2
2546
- ; AVX1-NEXT: vpsllq $63, %xmm1, %xmm1
2547
- ; AVX1-NEXT: vpcmpgtq %xmm1, %xmm3, %xmm1
2548
- ; AVX1-NEXT: vpackssdw %xmm2, %xmm1, %xmm1
2549
2506
; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm2
2550
2507
; AVX1-NEXT: vpsllq $63, %xmm2, %xmm2
2508
+ ; AVX1-NEXT: vpxor %xmm3, %xmm3, %xmm3
2551
2509
; AVX1-NEXT: vpcmpgtq %xmm2, %xmm3, %xmm2
2552
2510
; AVX1-NEXT: vpsllq $63, %xmm0, %xmm0
2553
2511
; AVX1-NEXT: vpcmpgtq %xmm0, %xmm3, %xmm0
2554
2512
; AVX1-NEXT: vpackssdw %xmm2, %xmm0, %xmm0
2513
+ ; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm2
2514
+ ; AVX1-NEXT: vpsllq $63, %xmm2, %xmm2
2515
+ ; AVX1-NEXT: vpsllq $63, %xmm1, %xmm1
2516
+ ; AVX1-NEXT: vpackssdw %xmm2, %xmm1, %xmm1
2555
2517
; AVX1-NEXT: vinsertf128 $1, %xmm1, %ymm0, %ymm0
2556
2518
; AVX1-NEXT: vmovmskps %ymm0, %eax
2557
2519
; AVX1-NEXT: cmpb $-1, %al
@@ -2615,19 +2577,17 @@ define i1 @allzeros_v8i64_and1(<8 x i64> %arg) {
2615
2577
;
2616
2578
; AVX1-LABEL: allzeros_v8i64_and1:
2617
2579
; AVX1: # %bb.0:
2618
- ; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm2
2619
- ; AVX1-NEXT: vpsllq $63, %xmm2, %xmm2
2620
- ; AVX1-NEXT: vpxor %xmm3, %xmm3, %xmm3
2621
- ; AVX1-NEXT: vpcmpgtq %xmm2, %xmm3, %xmm2
2622
- ; AVX1-NEXT: vpsllq $63, %xmm1, %xmm1
2623
- ; AVX1-NEXT: vpcmpgtq %xmm1, %xmm3, %xmm1
2624
- ; AVX1-NEXT: vpackssdw %xmm2, %xmm1, %xmm1
2625
2580
; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm2
2626
2581
; AVX1-NEXT: vpsllq $63, %xmm2, %xmm2
2582
+ ; AVX1-NEXT: vpxor %xmm3, %xmm3, %xmm3
2627
2583
; AVX1-NEXT: vpcmpgtq %xmm2, %xmm3, %xmm2
2628
2584
; AVX1-NEXT: vpsllq $63, %xmm0, %xmm0
2629
2585
; AVX1-NEXT: vpcmpgtq %xmm0, %xmm3, %xmm0
2630
2586
; AVX1-NEXT: vpackssdw %xmm2, %xmm0, %xmm0
2587
+ ; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm2
2588
+ ; AVX1-NEXT: vpsllq $63, %xmm2, %xmm2
2589
+ ; AVX1-NEXT: vpsllq $63, %xmm1, %xmm1
2590
+ ; AVX1-NEXT: vpackssdw %xmm2, %xmm1, %xmm1
2631
2591
; AVX1-NEXT: vinsertf128 $1, %xmm1, %ymm0, %ymm0
2632
2592
; AVX1-NEXT: vmovmskps %ymm0, %eax
2633
2593
; AVX1-NEXT: testb %al, %al
@@ -3962,19 +3922,17 @@ define i1 @allones_v8i64_and4(<8 x i64> %arg) {
3962
3922
;
3963
3923
; AVX1-LABEL: allones_v8i64_and4:
3964
3924
; AVX1: # %bb.0:
3965
- ; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm2
3966
- ; AVX1-NEXT: vpsllq $61, %xmm2, %xmm2
3967
- ; AVX1-NEXT: vpxor %xmm3, %xmm3, %xmm3
3968
- ; AVX1-NEXT: vpcmpgtq %xmm2, %xmm3, %xmm2
3969
- ; AVX1-NEXT: vpsllq $61, %xmm1, %xmm1
3970
- ; AVX1-NEXT: vpcmpgtq %xmm1, %xmm3, %xmm1
3971
- ; AVX1-NEXT: vpackssdw %xmm2, %xmm1, %xmm1
3972
3925
; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm2
3973
3926
; AVX1-NEXT: vpsllq $61, %xmm2, %xmm2
3927
+ ; AVX1-NEXT: vpxor %xmm3, %xmm3, %xmm3
3974
3928
; AVX1-NEXT: vpcmpgtq %xmm2, %xmm3, %xmm2
3975
3929
; AVX1-NEXT: vpsllq $61, %xmm0, %xmm0
3976
3930
; AVX1-NEXT: vpcmpgtq %xmm0, %xmm3, %xmm0
3977
3931
; AVX1-NEXT: vpackssdw %xmm2, %xmm0, %xmm0
3932
+ ; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm2
3933
+ ; AVX1-NEXT: vpsllq $61, %xmm2, %xmm2
3934
+ ; AVX1-NEXT: vpsllq $61, %xmm1, %xmm1
3935
+ ; AVX1-NEXT: vpackssdw %xmm2, %xmm1, %xmm1
3978
3936
; AVX1-NEXT: vinsertf128 $1, %xmm1, %ymm0, %ymm0
3979
3937
; AVX1-NEXT: vmovmskps %ymm0, %eax
3980
3938
; AVX1-NEXT: cmpb $-1, %al
@@ -4038,19 +3996,17 @@ define i1 @allzeros_v8i64_and4(<8 x i64> %arg) {
4038
3996
;
4039
3997
; AVX1-LABEL: allzeros_v8i64_and4:
4040
3998
; AVX1: # %bb.0:
4041
- ; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm2
4042
- ; AVX1-NEXT: vpsllq $61, %xmm2, %xmm2
4043
- ; AVX1-NEXT: vpxor %xmm3, %xmm3, %xmm3
4044
- ; AVX1-NEXT: vpcmpgtq %xmm2, %xmm3, %xmm2
4045
- ; AVX1-NEXT: vpsllq $61, %xmm1, %xmm1
4046
- ; AVX1-NEXT: vpcmpgtq %xmm1, %xmm3, %xmm1
4047
- ; AVX1-NEXT: vpackssdw %xmm2, %xmm1, %xmm1
4048
3999
; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm2
4049
4000
; AVX1-NEXT: vpsllq $61, %xmm2, %xmm2
4001
+ ; AVX1-NEXT: vpxor %xmm3, %xmm3, %xmm3
4050
4002
; AVX1-NEXT: vpcmpgtq %xmm2, %xmm3, %xmm2
4051
4003
; AVX1-NEXT: vpsllq $61, %xmm0, %xmm0
4052
4004
; AVX1-NEXT: vpcmpgtq %xmm0, %xmm3, %xmm0
4053
4005
; AVX1-NEXT: vpackssdw %xmm2, %xmm0, %xmm0
4006
+ ; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm2
4007
+ ; AVX1-NEXT: vpsllq $61, %xmm2, %xmm2
4008
+ ; AVX1-NEXT: vpsllq $61, %xmm1, %xmm1
4009
+ ; AVX1-NEXT: vpackssdw %xmm2, %xmm1, %xmm1
4054
4010
; AVX1-NEXT: vinsertf128 $1, %xmm1, %ymm0, %ymm0
4055
4011
; AVX1-NEXT: vmovmskps %ymm0, %eax
4056
4012
; AVX1-NEXT: testb %al, %al
@@ -4170,22 +4126,6 @@ define i32 @movmskps(<4 x float> %x) {
4170
4126
define i32 @movmskpd256 (<4 x double > %x ) {
4171
4127
; SSE2-LABEL: movmskpd256:
4172
4128
; SSE2: # %bb.0:
4173
- ; SSE2-NEXT: movdqa {{.*#+}} xmm2 = [2147483648,2147483648]
4174
- ; SSE2-NEXT: pxor %xmm2, %xmm1
4175
- ; SSE2-NEXT: movdqa %xmm2, %xmm3
4176
- ; SSE2-NEXT: pcmpeqd %xmm1, %xmm3
4177
- ; SSE2-NEXT: movdqa %xmm2, %xmm4
4178
- ; SSE2-NEXT: pcmpgtd %xmm1, %xmm4
4179
- ; SSE2-NEXT: pshufd {{.*#+}} xmm1 = xmm4[0,0,2,2]
4180
- ; SSE2-NEXT: pand %xmm3, %xmm1
4181
- ; SSE2-NEXT: por %xmm4, %xmm1
4182
- ; SSE2-NEXT: pxor %xmm2, %xmm0
4183
- ; SSE2-NEXT: movdqa %xmm2, %xmm3
4184
- ; SSE2-NEXT: pcmpeqd %xmm0, %xmm3
4185
- ; SSE2-NEXT: pcmpgtd %xmm0, %xmm2
4186
- ; SSE2-NEXT: pshufd {{.*#+}} xmm0 = xmm2[0,0,2,2]
4187
- ; SSE2-NEXT: pand %xmm3, %xmm0
4188
- ; SSE2-NEXT: por %xmm2, %xmm0
4189
4129
; SSE2-NEXT: packssdw %xmm1, %xmm0
4190
4130
; SSE2-NEXT: movmskps %xmm0, %eax
4191
4131
; SSE2-NEXT: retq
0 commit comments