@@ -1015,48 +1015,11 @@ define i1 @allzeros_v4i64_sign(<4 x i64> %arg) {
1015
1015
define i1 @allones_v8i64_sign (<8 x i64 > %arg ) {
1016
1016
; SSE2-LABEL: allones_v8i64_sign:
1017
1017
; SSE2: # %bb.0:
1018
- ; SSE2-NEXT: movdqa {{.*#+}} xmm4 = [2147483648,2147483648]
1019
- ; SSE2-NEXT: pxor %xmm4, %xmm3
1020
- ; SSE2-NEXT: movdqa %xmm4, %xmm5
1021
- ; SSE2-NEXT: pcmpgtd %xmm3, %xmm5
1022
- ; SSE2-NEXT: pshufd {{.*#+}} xmm6 = xmm5[0,0,2,2]
1023
- ; SSE2-NEXT: pcmpeqd %xmm4, %xmm3
1024
- ; SSE2-NEXT: pshufd {{.*#+}} xmm3 = xmm3[1,1,3,3]
1025
- ; SSE2-NEXT: pand %xmm6, %xmm3
1026
- ; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm5[1,1,3,3]
1027
- ; SSE2-NEXT: por %xmm3, %xmm5
1028
- ; SSE2-NEXT: pxor %xmm4, %xmm2
1029
- ; SSE2-NEXT: movdqa %xmm4, %xmm3
1030
- ; SSE2-NEXT: pcmpgtd %xmm2, %xmm3
1031
- ; SSE2-NEXT: pshufd {{.*#+}} xmm6 = xmm3[0,0,2,2]
1032
- ; SSE2-NEXT: pcmpeqd %xmm4, %xmm2
1033
- ; SSE2-NEXT: pshufd {{.*#+}} xmm7 = xmm2[1,1,3,3]
1034
- ; SSE2-NEXT: pand %xmm6, %xmm7
1035
- ; SSE2-NEXT: pshufd {{.*#+}} xmm2 = xmm3[1,1,3,3]
1036
- ; SSE2-NEXT: por %xmm7, %xmm2
1037
- ; SSE2-NEXT: packssdw %xmm5, %xmm2
1038
- ; SSE2-NEXT: pxor %xmm4, %xmm1
1039
- ; SSE2-NEXT: movdqa %xmm4, %xmm3
1040
- ; SSE2-NEXT: pcmpgtd %xmm1, %xmm3
1041
- ; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm3[0,0,2,2]
1042
- ; SSE2-NEXT: pcmpeqd %xmm4, %xmm1
1043
- ; SSE2-NEXT: pshufd {{.*#+}} xmm1 = xmm1[1,1,3,3]
1044
- ; SSE2-NEXT: pand %xmm5, %xmm1
1045
- ; SSE2-NEXT: pshufd {{.*#+}} xmm3 = xmm3[1,1,3,3]
1046
- ; SSE2-NEXT: por %xmm1, %xmm3
1047
- ; SSE2-NEXT: pxor %xmm4, %xmm0
1048
- ; SSE2-NEXT: movdqa %xmm4, %xmm1
1049
- ; SSE2-NEXT: pcmpgtd %xmm0, %xmm1
1050
- ; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm1[0,0,2,2]
1051
- ; SSE2-NEXT: pcmpeqd %xmm4, %xmm0
1052
- ; SSE2-NEXT: pshufd {{.*#+}} xmm0 = xmm0[1,1,3,3]
1053
- ; SSE2-NEXT: pand %xmm5, %xmm0
1054
- ; SSE2-NEXT: pshufd {{.*#+}} xmm1 = xmm1[1,1,3,3]
1055
- ; SSE2-NEXT: por %xmm0, %xmm1
1056
- ; SSE2-NEXT: packssdw %xmm3, %xmm1
1057
- ; SSE2-NEXT: packssdw %xmm2, %xmm1
1058
- ; SSE2-NEXT: packsswb %xmm0, %xmm1
1059
- ; SSE2-NEXT: pmovmskb %xmm1, %eax
1018
+ ; SSE2-NEXT: packssdw %xmm3, %xmm2
1019
+ ; SSE2-NEXT: packssdw %xmm1, %xmm0
1020
+ ; SSE2-NEXT: packssdw %xmm2, %xmm0
1021
+ ; SSE2-NEXT: packsswb %xmm0, %xmm0
1022
+ ; SSE2-NEXT: pmovmskb %xmm0, %eax
1060
1023
; SSE2-NEXT: cmpb $-1, %al
1061
1024
; SSE2-NEXT: sete %al
1062
1025
; SSE2-NEXT: retq
@@ -1113,48 +1076,11 @@ define i1 @allones_v8i64_sign(<8 x i64> %arg) {
1113
1076
define i1 @allzeros_v8i64_sign (<8 x i64 > %arg ) {
1114
1077
; SSE2-LABEL: allzeros_v8i64_sign:
1115
1078
; SSE2: # %bb.0:
1116
- ; SSE2-NEXT: movdqa {{.*#+}} xmm4 = [2147483648,2147483648]
1117
- ; SSE2-NEXT: pxor %xmm4, %xmm3
1118
- ; SSE2-NEXT: movdqa %xmm4, %xmm5
1119
- ; SSE2-NEXT: pcmpgtd %xmm3, %xmm5
1120
- ; SSE2-NEXT: pshufd {{.*#+}} xmm6 = xmm5[0,0,2,2]
1121
- ; SSE2-NEXT: pcmpeqd %xmm4, %xmm3
1122
- ; SSE2-NEXT: pshufd {{.*#+}} xmm3 = xmm3[1,1,3,3]
1123
- ; SSE2-NEXT: pand %xmm6, %xmm3
1124
- ; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm5[1,1,3,3]
1125
- ; SSE2-NEXT: por %xmm3, %xmm5
1126
- ; SSE2-NEXT: pxor %xmm4, %xmm2
1127
- ; SSE2-NEXT: movdqa %xmm4, %xmm3
1128
- ; SSE2-NEXT: pcmpgtd %xmm2, %xmm3
1129
- ; SSE2-NEXT: pshufd {{.*#+}} xmm6 = xmm3[0,0,2,2]
1130
- ; SSE2-NEXT: pcmpeqd %xmm4, %xmm2
1131
- ; SSE2-NEXT: pshufd {{.*#+}} xmm7 = xmm2[1,1,3,3]
1132
- ; SSE2-NEXT: pand %xmm6, %xmm7
1133
- ; SSE2-NEXT: pshufd {{.*#+}} xmm2 = xmm3[1,1,3,3]
1134
- ; SSE2-NEXT: por %xmm7, %xmm2
1135
- ; SSE2-NEXT: packssdw %xmm5, %xmm2
1136
- ; SSE2-NEXT: pxor %xmm4, %xmm1
1137
- ; SSE2-NEXT: movdqa %xmm4, %xmm3
1138
- ; SSE2-NEXT: pcmpgtd %xmm1, %xmm3
1139
- ; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm3[0,0,2,2]
1140
- ; SSE2-NEXT: pcmpeqd %xmm4, %xmm1
1141
- ; SSE2-NEXT: pshufd {{.*#+}} xmm1 = xmm1[1,1,3,3]
1142
- ; SSE2-NEXT: pand %xmm5, %xmm1
1143
- ; SSE2-NEXT: pshufd {{.*#+}} xmm3 = xmm3[1,1,3,3]
1144
- ; SSE2-NEXT: por %xmm1, %xmm3
1145
- ; SSE2-NEXT: pxor %xmm4, %xmm0
1146
- ; SSE2-NEXT: movdqa %xmm4, %xmm1
1147
- ; SSE2-NEXT: pcmpgtd %xmm0, %xmm1
1148
- ; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm1[0,0,2,2]
1149
- ; SSE2-NEXT: pcmpeqd %xmm4, %xmm0
1150
- ; SSE2-NEXT: pshufd {{.*#+}} xmm0 = xmm0[1,1,3,3]
1151
- ; SSE2-NEXT: pand %xmm5, %xmm0
1152
- ; SSE2-NEXT: pshufd {{.*#+}} xmm1 = xmm1[1,1,3,3]
1153
- ; SSE2-NEXT: por %xmm0, %xmm1
1154
- ; SSE2-NEXT: packssdw %xmm3, %xmm1
1155
- ; SSE2-NEXT: packssdw %xmm2, %xmm1
1156
- ; SSE2-NEXT: packsswb %xmm0, %xmm1
1157
- ; SSE2-NEXT: pmovmskb %xmm1, %eax
1079
+ ; SSE2-NEXT: packssdw %xmm3, %xmm2
1080
+ ; SSE2-NEXT: packssdw %xmm1, %xmm0
1081
+ ; SSE2-NEXT: packssdw %xmm2, %xmm0
1082
+ ; SSE2-NEXT: packsswb %xmm0, %xmm0
1083
+ ; SSE2-NEXT: pmovmskb %xmm0, %eax
1158
1084
; SSE2-NEXT: testb %al, %al
1159
1085
; SSE2-NEXT: sete %al
1160
1086
; SSE2-NEXT: retq
0 commit comments