@@ -1157,6 +1157,7 @@ define <4 x i32> @vec(<4 x i32> %x, <4 x i32> %y) nounwind {
1157
1157
; X86-NEXT: cmovel {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 4-byte Folded Reload
1158
1158
; X86-NEXT: movl %ecx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
1159
1159
; X86-NEXT: cmovel {{[-0-9]+}}(%e{{[sb]}}p), %edx # 4-byte Folded Reload
1160
+ ; X86-NEXT: movl %edx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
1160
1161
; X86-NEXT: testl %edx, %edx
1161
1162
; X86-NEXT: movl $0, %eax
1162
1163
; X86-NEXT: cmovsl %edx, %eax
@@ -1168,11 +1169,11 @@ define <4 x i32> @vec(<4 x i32> %x, <4 x i32> %y) nounwind {
1168
1169
; X86-NEXT: movl %eax, %ecx
1169
1170
; X86-NEXT: sarl $31, %ecx
1170
1171
; X86-NEXT: movl %ecx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
1171
- ; X86-NEXT: movl %ecx, %esi
1172
- ; X86-NEXT: andl {{[-0-9]+}}(%e{{[sb]}}p), %esi # 4-byte Folded Reload
1172
+ ; X86-NEXT: movl %ecx, %edx
1173
+ ; X86-NEXT: andl {{[-0-9]+}}(%e{{[sb]}}p), %edx # 4-byte Folded Reload
1173
1174
; X86-NEXT: testl %eax, %eax
1174
- ; X86-NEXT: cmovel %eax, %esi
1175
- ; X86-NEXT: movl %esi , {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
1175
+ ; X86-NEXT: cmovel %eax, %edx
1176
+ ; X86-NEXT: movl %edx , {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
1176
1177
; X86-NEXT: movl $0, %ecx
1177
1178
; X86-NEXT: cmovsl %eax, %ecx
1178
1179
; X86-NEXT: movl %ecx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
@@ -1193,140 +1194,134 @@ define <4 x i32> @vec(<4 x i32> %x, <4 x i32> %y) nounwind {
1193
1194
; X86-NEXT: movl $-1, %eax
1194
1195
; X86-NEXT: cmovsl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Folded Reload
1195
1196
; X86-NEXT: movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
1196
- ; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %esi # 4-byte Reload
1197
- ; X86-NEXT: movl %esi , %ebx
1197
+ ; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 4-byte Reload
1198
+ ; X86-NEXT: movl %ecx , %ebx
1198
1199
; X86-NEXT: sarl $31, %ebx
1199
1200
; X86-NEXT: movl %ebx, %eax
1200
1201
; X86-NEXT: andl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Folded Reload
1201
- ; X86-NEXT: testl %esi, %esi
1202
- ; X86-NEXT: cmovel %esi, %eax
1203
- ; X86-NEXT: movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
1204
- ; X86-NEXT: movl $0, %ecx
1205
- ; X86-NEXT: cmovsl %esi, %ecx
1206
- ; X86-NEXT: movl $-1, %eax
1207
- ; X86-NEXT: cmovsl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Folded Reload
1208
- ; X86-NEXT: movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
1209
- ; X86-NEXT: movl %edx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
1210
- ; X86-NEXT: movl %edx, %eax
1211
- ; X86-NEXT: sarl $31, %eax
1212
- ; X86-NEXT: movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
1213
- ; X86-NEXT: andl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Folded Reload
1214
- ; X86-NEXT: testl %edx, %edx
1215
- ; X86-NEXT: cmovel %edx, %eax
1202
+ ; X86-NEXT: testl %ecx, %ecx
1203
+ ; X86-NEXT: cmovel %ecx, %eax
1216
1204
; X86-NEXT: movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
1217
- ; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Reload
1218
- ; X86-NEXT: andl %eax, %ebx
1219
- ; X86-NEXT: cmpl $1, %eax
1220
- ; X86-NEXT: movl $0, %edx
1221
- ; X86-NEXT: sbbl %edx, %edx
1222
- ; X86-NEXT: notl %edx
1223
- ; X86-NEXT: orl {{[-0-9]+}}(%e{{[sb]}}p), %edx # 4-byte Folded Reload
1224
- ; X86-NEXT: orl {{[-0-9]+}}(%e{{[sb]}}p), %esi # 4-byte Folded Reload
1225
- ; X86-NEXT: cmovnel {{[-0-9]+}}(%e{{[sb]}}p), %edx # 4-byte Folded Reload
1226
- ; X86-NEXT: movl $0, %esi
1227
- ; X86-NEXT: cmovel %esi, %ebx
1228
- ; X86-NEXT: cmpl $-1, %ebx
1229
1205
; X86-NEXT: movl $0, %eax
1230
- ; X86-NEXT: cmovel %edx , %eax
1231
- ; X86-NEXT: testl %ecx, %ecx
1232
- ; X86-NEXT: cmovsl %esi , %edx
1206
+ ; X86-NEXT: cmovsl %ecx , %eax
1207
+ ; X86-NEXT: movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
1208
+ ; X86-NEXT: movl %ecx , %edx
1233
1209
; X86-NEXT: movl $-1, %esi
1234
- ; X86-NEXT: cmovsl %esi, %ebx
1210
+ ; X86-NEXT: cmovsl {{[-0-9]+}}(%e{{[sb]}}p), %esi # 4-byte Folded Reload
1211
+ ; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Reload
1212
+ ; X86-NEXT: movl %eax, %ecx
1213
+ ; X86-NEXT: sarl $31, %ecx
1214
+ ; X86-NEXT: movl %ecx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
1235
1215
; X86-NEXT: andl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 4-byte Folded Reload
1236
- ; X86-NEXT: cmpl $-1, %ecx
1237
- ; X86-NEXT: cmovnel %ebx, %ecx
1238
- ; X86-NEXT: cmovel %eax, %edx
1239
- ; X86-NEXT: shrdl $1, %ecx, %edx
1216
+ ; X86-NEXT: testl %eax, %eax
1217
+ ; X86-NEXT: cmovel %eax, %ecx
1218
+ ; X86-NEXT: movl %ecx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
1240
1219
; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Reload
1241
- ; X86-NEXT: andl %eax, %edi
1242
- ; X86-NEXT: cmpl $1, %eax
1220
+ ; X86-NEXT: andl %eax, %ebx
1221
+ ; X86-NEXT: negl %eax
1243
1222
; X86-NEXT: movl $0, %ecx
1244
1223
; X86-NEXT: sbbl %ecx, %ecx
1245
- ; X86-NEXT: notl %ecx
1246
1224
; X86-NEXT: orl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 4-byte Folded Reload
1225
+ ; X86-NEXT: orl {{[-0-9]+}}(%e{{[sb]}}p), %edx # 4-byte Folded Reload
1226
+ ; X86-NEXT: cmovnel %esi, %ecx
1227
+ ; X86-NEXT: movl $0, %edx
1228
+ ; X86-NEXT: cmovel %edx, %ebx
1229
+ ; X86-NEXT: cmpl $-1, %ebx
1230
+ ; X86-NEXT: movl $0, %esi
1231
+ ; X86-NEXT: cmovel %ecx, %esi
1247
1232
; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Reload
1233
+ ; X86-NEXT: testl %eax, %eax
1234
+ ; X86-NEXT: cmovsl %edx, %ecx
1235
+ ; X86-NEXT: movl $-1, %edx
1236
+ ; X86-NEXT: cmovsl %edx, %ebx
1237
+ ; X86-NEXT: andl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Folded Reload
1238
+ ; X86-NEXT: cmpl $-1, %eax
1239
+ ; X86-NEXT: cmovel %esi, %ecx
1240
+ ; X86-NEXT: cmovnel %ebx, %eax
1241
+ ; X86-NEXT: shldl $31, %ecx, %eax
1242
+ ; X86-NEXT: movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
1243
+ ; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Reload
1244
+ ; X86-NEXT: andl %eax, %edi
1245
+ ; X86-NEXT: negl %eax
1246
+ ; X86-NEXT: movl $0, %eax
1247
+ ; X86-NEXT: sbbl %eax, %eax
1248
1248
; X86-NEXT: orl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Folded Reload
1249
- ; X86-NEXT: cmovnel {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 4-byte Folded Reload
1249
+ ; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 4-byte Reload
1250
+ ; X86-NEXT: orl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 4-byte Folded Reload
1251
+ ; X86-NEXT: cmovnel {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Folded Reload
1250
1252
; X86-NEXT: movl $0, %esi
1251
1253
; X86-NEXT: cmovel %esi, %edi
1252
1254
; X86-NEXT: cmpl $-1, %edi
1255
+ ; X86-NEXT: movl $0, %edx
1256
+ ; X86-NEXT: cmovel %eax, %edx
1257
+ ; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 4-byte Reload
1258
+ ; X86-NEXT: testl %ecx, %ecx
1259
+ ; X86-NEXT: cmovsl %esi, %eax
1260
+ ; X86-NEXT: movl $0, %esi
1261
+ ; X86-NEXT: movl $-1, %ebx
1262
+ ; X86-NEXT: cmovsl %ebx, %edi
1263
+ ; X86-NEXT: andl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 4-byte Folded Reload
1264
+ ; X86-NEXT: cmpl $-1, %ecx
1265
+ ; X86-NEXT: cmovel %edx, %eax
1266
+ ; X86-NEXT: cmovnel %edi, %ecx
1267
+ ; X86-NEXT: shldl $31, %eax, %ecx
1268
+ ; X86-NEXT: movl %ecx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
1269
+ ; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Reload
1270
+ ; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %edx # 4-byte Reload
1271
+ ; X86-NEXT: andl %eax, %edx
1272
+ ; X86-NEXT: negl %eax
1253
1273
; X86-NEXT: movl $0, %eax
1254
- ; X86-NEXT: cmovel %ecx, %eax
1274
+ ; X86-NEXT: sbbl %eax, %eax
1275
+ ; X86-NEXT: orl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Folded Reload
1276
+ ; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 4-byte Reload
1277
+ ; X86-NEXT: orl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 4-byte Folded Reload
1278
+ ; X86-NEXT: cmovnel {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Folded Reload
1279
+ ; X86-NEXT: cmovel %esi, %edx
1280
+ ; X86-NEXT: cmpl $-1, %edx
1281
+ ; X86-NEXT: movl $0, %ecx
1282
+ ; X86-NEXT: cmovel %eax, %ecx
1255
1283
; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %ebx # 4-byte Reload
1256
1284
; X86-NEXT: testl %ebx, %ebx
1257
- ; X86-NEXT: cmovsl %esi, %ecx
1258
- ; X86-NEXT: movl $-1, %esi
1259
- ; X86-NEXT: cmovsl %esi , %edi
1285
+ ; X86-NEXT: cmovsl %esi, %eax
1286
+ ; X86-NEXT: movl $-1, %edi
1287
+ ; X86-NEXT: cmovsl %edi , %edx
1260
1288
; X86-NEXT: andl {{[-0-9]+}}(%e{{[sb]}}p), %ebx # 4-byte Folded Reload
1261
1289
; X86-NEXT: cmpl $-1, %ebx
1262
- ; X86-NEXT: cmovnel %edi , %ebx
1263
- ; X86-NEXT: cmovel %eax , %ecx
1264
- ; X86-NEXT: shrdl $1 , %ebx , %ecx
1290
+ ; X86-NEXT: cmovel %ecx , %eax
1291
+ ; X86-NEXT: cmovnel %edx , %ebx
1292
+ ; X86-NEXT: shldl $31 , %eax , %ebx
1265
1293
; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Reload
1266
1294
; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %edi # 4-byte Reload
1267
1295
; X86-NEXT: andl %eax, %edi
1268
- ; X86-NEXT: cmpl $1, %eax
1269
- ; X86-NEXT: movl $0, %esi
1270
- ; X86-NEXT: sbbl %esi, %esi
1271
- ; X86-NEXT: notl %esi
1272
- ; X86-NEXT: orl {{[-0-9]+}}(%e{{[sb]}}p), %esi # 4-byte Folded Reload
1273
- ; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Reload
1274
- ; X86-NEXT: orl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Folded Reload
1275
- ; X86-NEXT: cmovnel {{[-0-9]+}}(%e{{[sb]}}p), %esi # 4-byte Folded Reload
1276
- ; X86-NEXT: movl %edi, %eax
1277
- ; X86-NEXT: movl $0, %edi
1278
- ; X86-NEXT: cmovel %edi, %eax
1279
- ; X86-NEXT: cmpl $-1, %eax
1280
- ; X86-NEXT: movl %eax, %edi
1296
+ ; X86-NEXT: negl %eax
1281
1297
; X86-NEXT: movl $0, %eax
1282
- ; X86-NEXT: cmovel %esi, %eax
1283
- ; X86-NEXT: movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
1284
- ; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %ebx # 4-byte Reload
1285
- ; X86-NEXT: testl %ebx, %ebx
1286
- ; X86-NEXT: movl $0, %eax
1287
- ; X86-NEXT: cmovsl %eax, %esi
1288
- ; X86-NEXT: movl $-1, %eax
1289
- ; X86-NEXT: cmovsl %eax, %edi
1290
- ; X86-NEXT: andl {{[-0-9]+}}(%e{{[sb]}}p), %ebx # 4-byte Folded Reload
1291
- ; X86-NEXT: cmpl $-1, %ebx
1292
- ; X86-NEXT: cmovnel %edi, %ebx
1293
- ; X86-NEXT: cmovel {{[-0-9]+}}(%e{{[sb]}}p), %esi # 4-byte Folded Reload
1294
- ; X86-NEXT: shrdl $1, %ebx, %esi
1295
- ; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Reload
1296
- ; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %ebx # 4-byte Reload
1297
- ; X86-NEXT: andl %eax, %ebx
1298
- ; X86-NEXT: cmpl $1, %eax
1299
- ; X86-NEXT: movl $0, %edi
1300
- ; X86-NEXT: sbbl %edi, %edi
1301
- ; X86-NEXT: notl %edi
1302
- ; X86-NEXT: orl {{[-0-9]+}}(%e{{[sb]}}p), %edi # 4-byte Folded Reload
1303
- ; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Reload
1298
+ ; X86-NEXT: sbbl %eax, %eax
1304
1299
; X86-NEXT: orl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Folded Reload
1305
- ; X86-NEXT: cmovnel {{[-0-9]+}}(%e{{[sb]}}p), %edi # 4-byte Folded Reload
1306
- ; X86-NEXT: movl %ebx, %eax
1307
- ; X86-NEXT: movl $0, %ebx
1308
- ; X86-NEXT: cmovel %ebx, %eax
1309
- ; X86-NEXT: cmpl $-1, %eax
1310
- ; X86-NEXT: movl $0, %ebx
1311
- ; X86-NEXT: cmovel %edi, %ebx
1312
- ; X86-NEXT: movl %ebx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
1313
- ; X86-NEXT: cmpl $0, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Folded Reload
1314
- ; X86-NEXT: movl $0, %ebx
1315
- ; X86-NEXT: cmovsl %ebx, %edi
1316
- ; X86-NEXT: movl $-1, %ebx
1317
- ; X86-NEXT: cmovsl %ebx, %eax
1318
- ; X86-NEXT: movl %eax, %ebx
1319
- ; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Reload
1320
- ; X86-NEXT: andl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Folded Reload
1321
- ; X86-NEXT: cmpl $-1, %eax
1322
- ; X86-NEXT: cmovnel %ebx, %eax
1323
- ; X86-NEXT: cmovel {{[-0-9]+}}(%e{{[sb]}}p), %edi # 4-byte Folded Reload
1324
- ; X86-NEXT: shrdl $1, %eax, %edi
1300
+ ; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 4-byte Reload
1301
+ ; X86-NEXT: orl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 4-byte Folded Reload
1302
+ ; X86-NEXT: cmovnel {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Folded Reload
1303
+ ; X86-NEXT: cmovel %esi, %edi
1304
+ ; X86-NEXT: cmpl $-1, %edi
1305
+ ; X86-NEXT: movl $0, %ecx
1306
+ ; X86-NEXT: cmovel %eax, %ecx
1307
+ ; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %edx # 4-byte Reload
1308
+ ; X86-NEXT: testl %edx, %edx
1309
+ ; X86-NEXT: cmovsl %esi, %eax
1310
+ ; X86-NEXT: movl $-1, %esi
1311
+ ; X86-NEXT: cmovsl %esi, %edi
1312
+ ; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %esi # 4-byte Reload
1313
+ ; X86-NEXT: andl %edx, %esi
1314
+ ; X86-NEXT: cmpl $-1, %esi
1315
+ ; X86-NEXT: cmovel %ecx, %eax
1316
+ ; X86-NEXT: cmovnel %edi, %esi
1317
+ ; X86-NEXT: shldl $31, %eax, %esi
1325
1318
; X86-NEXT: movl 8(%ebp), %eax
1326
- ; X86-NEXT: movl %edi, 12(%eax)
1327
- ; X86-NEXT: movl %esi, 8(%eax)
1319
+ ; X86-NEXT: movl %esi, 12(%eax)
1320
+ ; X86-NEXT: movl %ebx, 8(%eax)
1321
+ ; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 4-byte Reload
1328
1322
; X86-NEXT: movl %ecx, 4(%eax)
1329
- ; X86-NEXT: movl %edx, (%eax)
1323
+ ; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 4-byte Reload
1324
+ ; X86-NEXT: movl %ecx, (%eax)
1330
1325
; X86-NEXT: leal -12(%ebp), %esp
1331
1326
; X86-NEXT: popl %esi
1332
1327
; X86-NEXT: popl %edi
0 commit comments