Lines Matching refs:SSE2
2 …RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+sse2 | FileCheck %s --check-prefixes=SSE,SSE2
10 ; SSE2-LABEL: test1:
11 ; SSE2: # %bb.0: # %entry
12 ; SSE2-NEXT: movdqa %xmm1, %xmm2
13 ; SSE2-NEXT: pcmpgtb %xmm0, %xmm2
14 ; SSE2-NEXT: pand %xmm2, %xmm0
15 ; SSE2-NEXT: pandn %xmm1, %xmm2
16 ; SSE2-NEXT: por %xmm2, %xmm0
17 ; SSE2-NEXT: retq
35 ; SSE2-LABEL: test2:
36 ; SSE2: # %bb.0: # %entry
37 ; SSE2-NEXT: movdqa %xmm1, %xmm2
38 ; SSE2-NEXT: pcmpgtb %xmm0, %xmm2
39 ; SSE2-NEXT: pand %xmm2, %xmm0
40 ; SSE2-NEXT: pandn %xmm1, %xmm2
41 ; SSE2-NEXT: por %xmm2, %xmm0
42 ; SSE2-NEXT: retq
60 ; SSE2-LABEL: test3:
61 ; SSE2: # %bb.0: # %entry
62 ; SSE2-NEXT: movdqa %xmm0, %xmm2
63 ; SSE2-NEXT: pcmpgtb %xmm1, %xmm2
64 ; SSE2-NEXT: pand %xmm2, %xmm0
65 ; SSE2-NEXT: pandn %xmm1, %xmm2
66 ; SSE2-NEXT: por %xmm2, %xmm0
67 ; SSE2-NEXT: retq
85 ; SSE2-LABEL: test4:
86 ; SSE2: # %bb.0: # %entry
87 ; SSE2-NEXT: movdqa %xmm0, %xmm2
88 ; SSE2-NEXT: pcmpgtb %xmm1, %xmm2
89 ; SSE2-NEXT: pand %xmm2, %xmm0
90 ; SSE2-NEXT: pandn %xmm1, %xmm2
91 ; SSE2-NEXT: por %xmm2, %xmm0
92 ; SSE2-NEXT: retq
238 ; SSE2-LABEL: test13:
239 ; SSE2: # %bb.0: # %entry
240 ; SSE2-NEXT: movdqa %xmm0, %xmm2
241 ; SSE2-NEXT: psubusw %xmm1, %xmm2
242 ; SSE2-NEXT: psubw %xmm2, %xmm0
243 ; SSE2-NEXT: retq
261 ; SSE2-LABEL: test14:
262 ; SSE2: # %bb.0: # %entry
263 ; SSE2-NEXT: movdqa %xmm0, %xmm2
264 ; SSE2-NEXT: psubusw %xmm1, %xmm2
265 ; SSE2-NEXT: psubw %xmm2, %xmm0
266 ; SSE2-NEXT: retq
284 ; SSE2-LABEL: test15:
285 ; SSE2: # %bb.0: # %entry
286 ; SSE2-NEXT: psubusw %xmm0, %xmm1
287 ; SSE2-NEXT: paddw %xmm1, %xmm0
288 ; SSE2-NEXT: retq
306 ; SSE2-LABEL: test16:
307 ; SSE2: # %bb.0: # %entry
308 ; SSE2-NEXT: psubusw %xmm0, %xmm1
309 ; SSE2-NEXT: paddw %xmm1, %xmm0
310 ; SSE2-NEXT: retq
328 ; SSE2-LABEL: test17:
329 ; SSE2: # %bb.0: # %entry
330 ; SSE2-NEXT: movdqa %xmm1, %xmm2
331 ; SSE2-NEXT: pcmpgtd %xmm0, %xmm2
332 ; SSE2-NEXT: pand %xmm2, %xmm0
333 ; SSE2-NEXT: pandn %xmm1, %xmm2
334 ; SSE2-NEXT: por %xmm2, %xmm0
335 ; SSE2-NEXT: retq
353 ; SSE2-LABEL: test18:
354 ; SSE2: # %bb.0: # %entry
355 ; SSE2-NEXT: movdqa %xmm1, %xmm2
356 ; SSE2-NEXT: pcmpgtd %xmm0, %xmm2
357 ; SSE2-NEXT: pand %xmm2, %xmm0
358 ; SSE2-NEXT: pandn %xmm1, %xmm2
359 ; SSE2-NEXT: por %xmm2, %xmm0
360 ; SSE2-NEXT: retq
378 ; SSE2-LABEL: test19:
379 ; SSE2: # %bb.0: # %entry
380 ; SSE2-NEXT: movdqa %xmm0, %xmm2
381 ; SSE2-NEXT: pcmpgtd %xmm1, %xmm2
382 ; SSE2-NEXT: pand %xmm2, %xmm0
383 ; SSE2-NEXT: pandn %xmm1, %xmm2
384 ; SSE2-NEXT: por %xmm2, %xmm0
385 ; SSE2-NEXT: retq
403 ; SSE2-LABEL: test20:
404 ; SSE2: # %bb.0: # %entry
405 ; SSE2-NEXT: movdqa %xmm0, %xmm2
406 ; SSE2-NEXT: pcmpgtd %xmm1, %xmm2
407 ; SSE2-NEXT: pand %xmm2, %xmm0
408 ; SSE2-NEXT: pandn %xmm1, %xmm2
409 ; SSE2-NEXT: por %xmm2, %xmm0
410 ; SSE2-NEXT: retq
428 ; SSE2-LABEL: test21:
429 ; SSE2: # %bb.0: # %entry
430 ; SSE2-NEXT: movdqa {{.*#+}} xmm2 = [2147483648,2147483648,2147483648,2147483648]
431 ; SSE2-NEXT: movdqa %xmm0, %xmm3
432 ; SSE2-NEXT: pxor %xmm2, %xmm3
433 ; SSE2-NEXT: pxor %xmm1, %xmm2
434 ; SSE2-NEXT: pcmpgtd %xmm3, %xmm2
435 ; SSE2-NEXT: pand %xmm2, %xmm0
436 ; SSE2-NEXT: pandn %xmm1, %xmm2
437 ; SSE2-NEXT: por %xmm2, %xmm0
438 ; SSE2-NEXT: retq
456 ; SSE2-LABEL: test22:
457 ; SSE2: # %bb.0: # %entry
458 ; SSE2-NEXT: movdqa {{.*#+}} xmm2 = [2147483648,2147483648,2147483648,2147483648]
459 ; SSE2-NEXT: movdqa %xmm0, %xmm3
460 ; SSE2-NEXT: pxor %xmm2, %xmm3
461 ; SSE2-NEXT: pxor %xmm1, %xmm2
462 ; SSE2-NEXT: pcmpgtd %xmm3, %xmm2
463 ; SSE2-NEXT: pand %xmm2, %xmm0
464 ; SSE2-NEXT: pandn %xmm1, %xmm2
465 ; SSE2-NEXT: por %xmm2, %xmm0
466 ; SSE2-NEXT: retq
484 ; SSE2-LABEL: test23:
485 ; SSE2: # %bb.0: # %entry
486 ; SSE2-NEXT: movdqa {{.*#+}} xmm2 = [2147483648,2147483648,2147483648,2147483648]
487 ; SSE2-NEXT: movdqa %xmm1, %xmm3
488 ; SSE2-NEXT: pxor %xmm2, %xmm3
489 ; SSE2-NEXT: pxor %xmm0, %xmm2
490 ; SSE2-NEXT: pcmpgtd %xmm3, %xmm2
491 ; SSE2-NEXT: pand %xmm2, %xmm0
492 ; SSE2-NEXT: pandn %xmm1, %xmm2
493 ; SSE2-NEXT: por %xmm2, %xmm0
494 ; SSE2-NEXT: retq
512 ; SSE2-LABEL: test24:
513 ; SSE2: # %bb.0: # %entry
514 ; SSE2-NEXT: movdqa {{.*#+}} xmm2 = [2147483648,2147483648,2147483648,2147483648]
515 ; SSE2-NEXT: movdqa %xmm1, %xmm3
516 ; SSE2-NEXT: pxor %xmm2, %xmm3
517 ; SSE2-NEXT: pxor %xmm0, %xmm2
518 ; SSE2-NEXT: pcmpgtd %xmm3, %xmm2
519 ; SSE2-NEXT: pand %xmm2, %xmm0
520 ; SSE2-NEXT: pandn %xmm1, %xmm2
521 ; SSE2-NEXT: por %xmm2, %xmm0
522 ; SSE2-NEXT: retq
540 ; SSE2-LABEL: test25:
541 ; SSE2: # %bb.0: # %entry
542 ; SSE2-NEXT: movdqa %xmm2, %xmm4
543 ; SSE2-NEXT: pcmpgtb %xmm0, %xmm4
544 ; SSE2-NEXT: pand %xmm4, %xmm0
545 ; SSE2-NEXT: pandn %xmm2, %xmm4
546 ; SSE2-NEXT: por %xmm4, %xmm0
547 ; SSE2-NEXT: movdqa %xmm3, %xmm2
548 ; SSE2-NEXT: pcmpgtb %xmm1, %xmm2
549 ; SSE2-NEXT: pand %xmm2, %xmm1
550 ; SSE2-NEXT: pandn %xmm3, %xmm2
551 ; SSE2-NEXT: por %xmm2, %xmm1
552 ; SSE2-NEXT: retq
585 ; SSE2-LABEL: test26:
586 ; SSE2: # %bb.0: # %entry
587 ; SSE2-NEXT: movdqa %xmm2, %xmm4
588 ; SSE2-NEXT: pcmpgtb %xmm0, %xmm4
589 ; SSE2-NEXT: pand %xmm4, %xmm0
590 ; SSE2-NEXT: pandn %xmm2, %xmm4
591 ; SSE2-NEXT: por %xmm4, %xmm0
592 ; SSE2-NEXT: movdqa %xmm3, %xmm2
593 ; SSE2-NEXT: pcmpgtb %xmm1, %xmm2
594 ; SSE2-NEXT: pand %xmm2, %xmm1
595 ; SSE2-NEXT: pandn %xmm3, %xmm2
596 ; SSE2-NEXT: por %xmm2, %xmm1
597 ; SSE2-NEXT: retq
630 ; SSE2-LABEL: test27:
631 ; SSE2: # %bb.0: # %entry
632 ; SSE2-NEXT: movdqa %xmm0, %xmm4
633 ; SSE2-NEXT: pcmpgtb %xmm2, %xmm4
634 ; SSE2-NEXT: pand %xmm4, %xmm0
635 ; SSE2-NEXT: pandn %xmm2, %xmm4
636 ; SSE2-NEXT: por %xmm4, %xmm0
637 ; SSE2-NEXT: movdqa %xmm1, %xmm2
638 ; SSE2-NEXT: pcmpgtb %xmm3, %xmm2
639 ; SSE2-NEXT: pand %xmm2, %xmm1
640 ; SSE2-NEXT: pandn %xmm3, %xmm2
641 ; SSE2-NEXT: por %xmm2, %xmm1
642 ; SSE2-NEXT: retq
675 ; SSE2-LABEL: test28:
676 ; SSE2: # %bb.0: # %entry
677 ; SSE2-NEXT: movdqa %xmm0, %xmm4
678 ; SSE2-NEXT: pcmpgtb %xmm2, %xmm4
679 ; SSE2-NEXT: pand %xmm4, %xmm0
680 ; SSE2-NEXT: pandn %xmm2, %xmm4
681 ; SSE2-NEXT: por %xmm4, %xmm0
682 ; SSE2-NEXT: movdqa %xmm1, %xmm2
683 ; SSE2-NEXT: pcmpgtb %xmm3, %xmm2
684 ; SSE2-NEXT: pand %xmm2, %xmm1
685 ; SSE2-NEXT: pandn %xmm3, %xmm2
686 ; SSE2-NEXT: por %xmm2, %xmm1
687 ; SSE2-NEXT: retq
968 ; SSE2-LABEL: test37:
969 ; SSE2: # %bb.0: # %entry
970 ; SSE2-NEXT: movdqa %xmm0, %xmm4
971 ; SSE2-NEXT: psubusw %xmm2, %xmm4
972 ; SSE2-NEXT: psubw %xmm4, %xmm0
973 ; SSE2-NEXT: movdqa %xmm1, %xmm2
974 ; SSE2-NEXT: psubusw %xmm3, %xmm2
975 ; SSE2-NEXT: psubw %xmm2, %xmm1
976 ; SSE2-NEXT: retq
1009 ; SSE2-LABEL: test38:
1010 ; SSE2: # %bb.0: # %entry
1011 ; SSE2-NEXT: movdqa %xmm0, %xmm4
1012 ; SSE2-NEXT: psubusw %xmm2, %xmm4
1013 ; SSE2-NEXT: psubw %xmm4, %xmm0
1014 ; SSE2-NEXT: movdqa %xmm1, %xmm2
1015 ; SSE2-NEXT: psubusw %xmm3, %xmm2
1016 ; SSE2-NEXT: psubw %xmm2, %xmm1
1017 ; SSE2-NEXT: retq
1050 ; SSE2-LABEL: test39:
1051 ; SSE2: # %bb.0: # %entry
1052 ; SSE2-NEXT: psubusw %xmm0, %xmm2
1053 ; SSE2-NEXT: paddw %xmm2, %xmm0
1054 ; SSE2-NEXT: psubusw %xmm1, %xmm3
1055 ; SSE2-NEXT: paddw %xmm3, %xmm1
1056 ; SSE2-NEXT: retq
1089 ; SSE2-LABEL: test40:
1090 ; SSE2: # %bb.0: # %entry
1091 ; SSE2-NEXT: psubusw %xmm0, %xmm2
1092 ; SSE2-NEXT: paddw %xmm2, %xmm0
1093 ; SSE2-NEXT: psubusw %xmm1, %xmm3
1094 ; SSE2-NEXT: paddw %xmm3, %xmm1
1095 ; SSE2-NEXT: retq
1128 ; SSE2-LABEL: test41:
1129 ; SSE2: # %bb.0: # %entry
1130 ; SSE2-NEXT: movdqa %xmm2, %xmm4
1131 ; SSE2-NEXT: pcmpgtd %xmm0, %xmm4
1132 ; SSE2-NEXT: pand %xmm4, %xmm0
1133 ; SSE2-NEXT: pandn %xmm2, %xmm4
1134 ; SSE2-NEXT: por %xmm4, %xmm0
1135 ; SSE2-NEXT: movdqa %xmm3, %xmm2
1136 ; SSE2-NEXT: pcmpgtd %xmm1, %xmm2
1137 ; SSE2-NEXT: pand %xmm2, %xmm1
1138 ; SSE2-NEXT: pandn %xmm3, %xmm2
1139 ; SSE2-NEXT: por %xmm2, %xmm1
1140 ; SSE2-NEXT: retq
1173 ; SSE2-LABEL: test42:
1174 ; SSE2: # %bb.0: # %entry
1175 ; SSE2-NEXT: movdqa %xmm2, %xmm4
1176 ; SSE2-NEXT: pcmpgtd %xmm0, %xmm4
1177 ; SSE2-NEXT: pand %xmm4, %xmm0
1178 ; SSE2-NEXT: pandn %xmm2, %xmm4
1179 ; SSE2-NEXT: por %xmm4, %xmm0
1180 ; SSE2-NEXT: movdqa %xmm3, %xmm2
1181 ; SSE2-NEXT: pcmpgtd %xmm1, %xmm2
1182 ; SSE2-NEXT: pand %xmm2, %xmm1
1183 ; SSE2-NEXT: pandn %xmm3, %xmm2
1184 ; SSE2-NEXT: por %xmm2, %xmm1
1185 ; SSE2-NEXT: retq
1218 ; SSE2-LABEL: test43:
1219 ; SSE2: # %bb.0: # %entry
1220 ; SSE2-NEXT: movdqa %xmm0, %xmm4
1221 ; SSE2-NEXT: pcmpgtd %xmm2, %xmm4
1222 ; SSE2-NEXT: pand %xmm4, %xmm0
1223 ; SSE2-NEXT: pandn %xmm2, %xmm4
1224 ; SSE2-NEXT: por %xmm4, %xmm0
1225 ; SSE2-NEXT: movdqa %xmm1, %xmm2
1226 ; SSE2-NEXT: pcmpgtd %xmm3, %xmm2
1227 ; SSE2-NEXT: pand %xmm2, %xmm1
1228 ; SSE2-NEXT: pandn %xmm3, %xmm2
1229 ; SSE2-NEXT: por %xmm2, %xmm1
1230 ; SSE2-NEXT: retq
1263 ; SSE2-LABEL: test44:
1264 ; SSE2: # %bb.0: # %entry
1265 ; SSE2-NEXT: movdqa %xmm0, %xmm4
1266 ; SSE2-NEXT: pcmpgtd %xmm2, %xmm4
1267 ; SSE2-NEXT: pand %xmm4, %xmm0
1268 ; SSE2-NEXT: pandn %xmm2, %xmm4
1269 ; SSE2-NEXT: por %xmm4, %xmm0
1270 ; SSE2-NEXT: movdqa %xmm1, %xmm2
1271 ; SSE2-NEXT: pcmpgtd %xmm3, %xmm2
1272 ; SSE2-NEXT: pand %xmm2, %xmm1
1273 ; SSE2-NEXT: pandn %xmm3, %xmm2
1274 ; SSE2-NEXT: por %xmm2, %xmm1
1275 ; SSE2-NEXT: retq
1308 ; SSE2-LABEL: test45:
1309 ; SSE2: # %bb.0: # %entry
1310 ; SSE2-NEXT: movdqa {{.*#+}} xmm4 = [2147483648,2147483648,2147483648,2147483648]
1311 ; SSE2-NEXT: movdqa %xmm0, %xmm5
1312 ; SSE2-NEXT: pxor %xmm4, %xmm5
1313 ; SSE2-NEXT: movdqa %xmm2, %xmm6
1314 ; SSE2-NEXT: pxor %xmm4, %xmm6
1315 ; SSE2-NEXT: pcmpgtd %xmm5, %xmm6
1316 ; SSE2-NEXT: pand %xmm6, %xmm0
1317 ; SSE2-NEXT: pandn %xmm2, %xmm6
1318 ; SSE2-NEXT: por %xmm6, %xmm0
1319 ; SSE2-NEXT: movdqa %xmm1, %xmm2
1320 ; SSE2-NEXT: pxor %xmm4, %xmm2
1321 ; SSE2-NEXT: pxor %xmm3, %xmm4
1322 ; SSE2-NEXT: pcmpgtd %xmm2, %xmm4
1323 ; SSE2-NEXT: pand %xmm4, %xmm1
1324 ; SSE2-NEXT: pandn %xmm3, %xmm4
1325 ; SSE2-NEXT: por %xmm4, %xmm1
1326 ; SSE2-NEXT: retq
1359 ; SSE2-LABEL: test46:
1360 ; SSE2: # %bb.0: # %entry
1361 ; SSE2-NEXT: movdqa {{.*#+}} xmm4 = [2147483648,2147483648,2147483648,2147483648]
1362 ; SSE2-NEXT: movdqa %xmm0, %xmm5
1363 ; SSE2-NEXT: pxor %xmm4, %xmm5
1364 ; SSE2-NEXT: movdqa %xmm2, %xmm6
1365 ; SSE2-NEXT: pxor %xmm4, %xmm6
1366 ; SSE2-NEXT: pcmpgtd %xmm5, %xmm6
1367 ; SSE2-NEXT: pand %xmm6, %xmm0
1368 ; SSE2-NEXT: pandn %xmm2, %xmm6
1369 ; SSE2-NEXT: por %xmm6, %xmm0
1370 ; SSE2-NEXT: movdqa %xmm1, %xmm2
1371 ; SSE2-NEXT: pxor %xmm4, %xmm2
1372 ; SSE2-NEXT: pxor %xmm3, %xmm4
1373 ; SSE2-NEXT: pcmpgtd %xmm2, %xmm4
1374 ; SSE2-NEXT: pand %xmm4, %xmm1
1375 ; SSE2-NEXT: pandn %xmm3, %xmm4
1376 ; SSE2-NEXT: por %xmm4, %xmm1
1377 ; SSE2-NEXT: retq
1410 ; SSE2-LABEL: test47:
1411 ; SSE2: # %bb.0: # %entry
1412 ; SSE2-NEXT: movdqa {{.*#+}} xmm4 = [2147483648,2147483648,2147483648,2147483648]
1413 ; SSE2-NEXT: movdqa %xmm2, %xmm5
1414 ; SSE2-NEXT: pxor %xmm4, %xmm5
1415 ; SSE2-NEXT: movdqa %xmm0, %xmm6
1416 ; SSE2-NEXT: pxor %xmm4, %xmm6
1417 ; SSE2-NEXT: pcmpgtd %xmm5, %xmm6
1418 ; SSE2-NEXT: pand %xmm6, %xmm0
1419 ; SSE2-NEXT: pandn %xmm2, %xmm6
1420 ; SSE2-NEXT: por %xmm6, %xmm0
1421 ; SSE2-NEXT: movdqa %xmm3, %xmm2
1422 ; SSE2-NEXT: pxor %xmm4, %xmm2
1423 ; SSE2-NEXT: pxor %xmm1, %xmm4
1424 ; SSE2-NEXT: pcmpgtd %xmm2, %xmm4
1425 ; SSE2-NEXT: pand %xmm4, %xmm1
1426 ; SSE2-NEXT: pandn %xmm3, %xmm4
1427 ; SSE2-NEXT: por %xmm4, %xmm1
1428 ; SSE2-NEXT: retq
1461 ; SSE2-LABEL: test48:
1462 ; SSE2: # %bb.0: # %entry
1463 ; SSE2-NEXT: movdqa {{.*#+}} xmm4 = [2147483648,2147483648,2147483648,2147483648]
1464 ; SSE2-NEXT: movdqa %xmm2, %xmm5
1465 ; SSE2-NEXT: pxor %xmm4, %xmm5
1466 ; SSE2-NEXT: movdqa %xmm0, %xmm6
1467 ; SSE2-NEXT: pxor %xmm4, %xmm6
1468 ; SSE2-NEXT: pcmpgtd %xmm5, %xmm6
1469 ; SSE2-NEXT: pand %xmm6, %xmm0
1470 ; SSE2-NEXT: pandn %xmm2, %xmm6
1471 ; SSE2-NEXT: por %xmm6, %xmm0
1472 ; SSE2-NEXT: movdqa %xmm3, %xmm2
1473 ; SSE2-NEXT: pxor %xmm4, %xmm2
1474 ; SSE2-NEXT: pxor %xmm1, %xmm4
1475 ; SSE2-NEXT: pcmpgtd %xmm2, %xmm4
1476 ; SSE2-NEXT: pand %xmm4, %xmm1
1477 ; SSE2-NEXT: pandn %xmm3, %xmm4
1478 ; SSE2-NEXT: por %xmm4, %xmm1
1479 ; SSE2-NEXT: retq
1512 ; SSE2-LABEL: test49:
1513 ; SSE2: # %bb.0: # %entry
1514 ; SSE2-NEXT: movdqa %xmm0, %xmm2
1515 ; SSE2-NEXT: pcmpgtb %xmm1, %xmm2
1516 ; SSE2-NEXT: pand %xmm2, %xmm0
1517 ; SSE2-NEXT: pandn %xmm1, %xmm2
1518 ; SSE2-NEXT: por %xmm2, %xmm0
1519 ; SSE2-NEXT: retq
1537 ; SSE2-LABEL: test50:
1538 ; SSE2: # %bb.0: # %entry
1539 ; SSE2-NEXT: movdqa %xmm0, %xmm2
1540 ; SSE2-NEXT: pcmpgtb %xmm1, %xmm2
1541 ; SSE2-NEXT: pand %xmm2, %xmm0
1542 ; SSE2-NEXT: pandn %xmm1, %xmm2
1543 ; SSE2-NEXT: por %xmm2, %xmm0
1544 ; SSE2-NEXT: retq
1562 ; SSE2-LABEL: test51:
1563 ; SSE2: # %bb.0: # %entry
1564 ; SSE2-NEXT: movdqa %xmm1, %xmm2
1565 ; SSE2-NEXT: pcmpgtb %xmm0, %xmm2
1566 ; SSE2-NEXT: pand %xmm2, %xmm0
1567 ; SSE2-NEXT: pandn %xmm1, %xmm2
1568 ; SSE2-NEXT: por %xmm2, %xmm0
1569 ; SSE2-NEXT: retq
1587 ; SSE2-LABEL: test52:
1588 ; SSE2: # %bb.0: # %entry
1589 ; SSE2-NEXT: movdqa %xmm1, %xmm2
1590 ; SSE2-NEXT: pcmpgtb %xmm0, %xmm2
1591 ; SSE2-NEXT: pand %xmm2, %xmm0
1592 ; SSE2-NEXT: pandn %xmm1, %xmm2
1593 ; SSE2-NEXT: por %xmm2, %xmm0
1594 ; SSE2-NEXT: retq
1740 ; SSE2-LABEL: test61:
1741 ; SSE2: # %bb.0: # %entry
1742 ; SSE2-NEXT: psubusw %xmm0, %xmm1
1743 ; SSE2-NEXT: paddw %xmm1, %xmm0
1744 ; SSE2-NEXT: retq
1762 ; SSE2-LABEL: test62:
1763 ; SSE2: # %bb.0: # %entry
1764 ; SSE2-NEXT: psubusw %xmm0, %xmm1
1765 ; SSE2-NEXT: paddw %xmm1, %xmm0
1766 ; SSE2-NEXT: retq
1784 ; SSE2-LABEL: test63:
1785 ; SSE2: # %bb.0: # %entry
1786 ; SSE2-NEXT: movdqa %xmm0, %xmm2
1787 ; SSE2-NEXT: psubusw %xmm1, %xmm2
1788 ; SSE2-NEXT: psubw %xmm2, %xmm0
1789 ; SSE2-NEXT: retq
1807 ; SSE2-LABEL: test64:
1808 ; SSE2: # %bb.0: # %entry
1809 ; SSE2-NEXT: movdqa %xmm0, %xmm2
1810 ; SSE2-NEXT: psubusw %xmm1, %xmm2
1811 ; SSE2-NEXT: psubw %xmm2, %xmm0
1812 ; SSE2-NEXT: retq
1830 ; SSE2-LABEL: test65:
1831 ; SSE2: # %bb.0: # %entry
1832 ; SSE2-NEXT: movdqa %xmm0, %xmm2
1833 ; SSE2-NEXT: pcmpgtd %xmm1, %xmm2
1834 ; SSE2-NEXT: pand %xmm2, %xmm0
1835 ; SSE2-NEXT: pandn %xmm1, %xmm2
1836 ; SSE2-NEXT: por %xmm2, %xmm0
1837 ; SSE2-NEXT: retq
1855 ; SSE2-LABEL: test66:
1856 ; SSE2: # %bb.0: # %entry
1857 ; SSE2-NEXT: movdqa %xmm0, %xmm2
1858 ; SSE2-NEXT: pcmpgtd %xmm1, %xmm2
1859 ; SSE2-NEXT: pand %xmm2, %xmm0
1860 ; SSE2-NEXT: pandn %xmm1, %xmm2
1861 ; SSE2-NEXT: por %xmm2, %xmm0
1862 ; SSE2-NEXT: retq
1880 ; SSE2-LABEL: test67:
1881 ; SSE2: # %bb.0: # %entry
1882 ; SSE2-NEXT: movdqa %xmm1, %xmm2
1883 ; SSE2-NEXT: pcmpgtd %xmm0, %xmm2
1884 ; SSE2-NEXT: pand %xmm2, %xmm0
1885 ; SSE2-NEXT: pandn %xmm1, %xmm2
1886 ; SSE2-NEXT: por %xmm2, %xmm0
1887 ; SSE2-NEXT: retq
1905 ; SSE2-LABEL: test68:
1906 ; SSE2: # %bb.0: # %entry
1907 ; SSE2-NEXT: movdqa %xmm1, %xmm2
1908 ; SSE2-NEXT: pcmpgtd %xmm0, %xmm2
1909 ; SSE2-NEXT: pand %xmm2, %xmm0
1910 ; SSE2-NEXT: pandn %xmm1, %xmm2
1911 ; SSE2-NEXT: por %xmm2, %xmm0
1912 ; SSE2-NEXT: retq
1930 ; SSE2-LABEL: test69:
1931 ; SSE2: # %bb.0: # %entry
1932 ; SSE2-NEXT: movdqa {{.*#+}} xmm2 = [2147483648,2147483648,2147483648,2147483648]
1933 ; SSE2-NEXT: movdqa %xmm1, %xmm3
1934 ; SSE2-NEXT: pxor %xmm2, %xmm3
1935 ; SSE2-NEXT: pxor %xmm0, %xmm2
1936 ; SSE2-NEXT: pcmpgtd %xmm3, %xmm2
1937 ; SSE2-NEXT: pand %xmm2, %xmm0
1938 ; SSE2-NEXT: pandn %xmm1, %xmm2
1939 ; SSE2-NEXT: por %xmm2, %xmm0
1940 ; SSE2-NEXT: retq
1958 ; SSE2-LABEL: test70:
1959 ; SSE2: # %bb.0: # %entry
1960 ; SSE2-NEXT: movdqa {{.*#+}} xmm2 = [2147483648,2147483648,2147483648,2147483648]
1961 ; SSE2-NEXT: movdqa %xmm1, %xmm3
1962 ; SSE2-NEXT: pxor %xmm2, %xmm3
1963 ; SSE2-NEXT: pxor %xmm0, %xmm2
1964 ; SSE2-NEXT: pcmpgtd %xmm3, %xmm2
1965 ; SSE2-NEXT: pand %xmm2, %xmm0
1966 ; SSE2-NEXT: pandn %xmm1, %xmm2
1967 ; SSE2-NEXT: por %xmm2, %xmm0
1968 ; SSE2-NEXT: retq
1986 ; SSE2-LABEL: test71:
1987 ; SSE2: # %bb.0: # %entry
1988 ; SSE2-NEXT: movdqa {{.*#+}} xmm2 = [2147483648,2147483648,2147483648,2147483648]
1989 ; SSE2-NEXT: movdqa %xmm0, %xmm3
1990 ; SSE2-NEXT: pxor %xmm2, %xmm3
1991 ; SSE2-NEXT: pxor %xmm1, %xmm2
1992 ; SSE2-NEXT: pcmpgtd %xmm3, %xmm2
1993 ; SSE2-NEXT: pand %xmm2, %xmm0
1994 ; SSE2-NEXT: pandn %xmm1, %xmm2
1995 ; SSE2-NEXT: por %xmm2, %xmm0
1996 ; SSE2-NEXT: retq
2014 ; SSE2-LABEL: test72:
2015 ; SSE2: # %bb.0: # %entry
2016 ; SSE2-NEXT: movdqa {{.*#+}} xmm2 = [2147483648,2147483648,2147483648,2147483648]
2017 ; SSE2-NEXT: movdqa %xmm0, %xmm3
2018 ; SSE2-NEXT: pxor %xmm2, %xmm3
2019 ; SSE2-NEXT: pxor %xmm1, %xmm2
2020 ; SSE2-NEXT: pcmpgtd %xmm3, %xmm2
2021 ; SSE2-NEXT: pand %xmm2, %xmm0
2022 ; SSE2-NEXT: pandn %xmm1, %xmm2
2023 ; SSE2-NEXT: por %xmm2, %xmm0
2024 ; SSE2-NEXT: retq
2042 ; SSE2-LABEL: test73:
2043 ; SSE2: # %bb.0: # %entry
2044 ; SSE2-NEXT: movdqa %xmm0, %xmm4
2045 ; SSE2-NEXT: pcmpgtb %xmm2, %xmm4
2046 ; SSE2-NEXT: pand %xmm4, %xmm0
2047 ; SSE2-NEXT: pandn %xmm2, %xmm4
2048 ; SSE2-NEXT: por %xmm4, %xmm0
2049 ; SSE2-NEXT: movdqa %xmm1, %xmm2
2050 ; SSE2-NEXT: pcmpgtb %xmm3, %xmm2
2051 ; SSE2-NEXT: pand %xmm2, %xmm1
2052 ; SSE2-NEXT: pandn %xmm3, %xmm2
2053 ; SSE2-NEXT: por %xmm2, %xmm1
2054 ; SSE2-NEXT: retq
2087 ; SSE2-LABEL: test74:
2088 ; SSE2: # %bb.0: # %entry
2089 ; SSE2-NEXT: movdqa %xmm0, %xmm4
2090 ; SSE2-NEXT: pcmpgtb %xmm2, %xmm4
2091 ; SSE2-NEXT: pand %xmm4, %xmm0
2092 ; SSE2-NEXT: pandn %xmm2, %xmm4
2093 ; SSE2-NEXT: por %xmm4, %xmm0
2094 ; SSE2-NEXT: movdqa %xmm1, %xmm2
2095 ; SSE2-NEXT: pcmpgtb %xmm3, %xmm2
2096 ; SSE2-NEXT: pand %xmm2, %xmm1
2097 ; SSE2-NEXT: pandn %xmm3, %xmm2
2098 ; SSE2-NEXT: por %xmm2, %xmm1
2099 ; SSE2-NEXT: retq
2132 ; SSE2-LABEL: test75:
2133 ; SSE2: # %bb.0: # %entry
2134 ; SSE2-NEXT: movdqa %xmm2, %xmm4
2135 ; SSE2-NEXT: pcmpgtb %xmm0, %xmm4
2136 ; SSE2-NEXT: pand %xmm4, %xmm0
2137 ; SSE2-NEXT: pandn %xmm2, %xmm4
2138 ; SSE2-NEXT: por %xmm4, %xmm0
2139 ; SSE2-NEXT: movdqa %xmm3, %xmm2
2140 ; SSE2-NEXT: pcmpgtb %xmm1, %xmm2
2141 ; SSE2-NEXT: pand %xmm2, %xmm1
2142 ; SSE2-NEXT: pandn %xmm3, %xmm2
2143 ; SSE2-NEXT: por %xmm2, %xmm1
2144 ; SSE2-NEXT: retq
2177 ; SSE2-LABEL: test76:
2178 ; SSE2: # %bb.0: # %entry
2179 ; SSE2-NEXT: movdqa %xmm2, %xmm4
2180 ; SSE2-NEXT: pcmpgtb %xmm0, %xmm4
2181 ; SSE2-NEXT: pand %xmm4, %xmm0
2182 ; SSE2-NEXT: pandn %xmm2, %xmm4
2183 ; SSE2-NEXT: por %xmm4, %xmm0
2184 ; SSE2-NEXT: movdqa %xmm3, %xmm2
2185 ; SSE2-NEXT: pcmpgtb %xmm1, %xmm2
2186 ; SSE2-NEXT: pand %xmm2, %xmm1
2187 ; SSE2-NEXT: pandn %xmm3, %xmm2
2188 ; SSE2-NEXT: por %xmm2, %xmm1
2189 ; SSE2-NEXT: retq
2470 ; SSE2-LABEL: test85:
2471 ; SSE2: # %bb.0: # %entry
2472 ; SSE2-NEXT: psubusw %xmm0, %xmm2
2473 ; SSE2-NEXT: paddw %xmm2, %xmm0
2474 ; SSE2-NEXT: psubusw %xmm1, %xmm3
2475 ; SSE2-NEXT: paddw %xmm3, %xmm1
2476 ; SSE2-NEXT: retq
2509 ; SSE2-LABEL: test86:
2510 ; SSE2: # %bb.0: # %entry
2511 ; SSE2-NEXT: psubusw %xmm0, %xmm2
2512 ; SSE2-NEXT: paddw %xmm2, %xmm0
2513 ; SSE2-NEXT: psubusw %xmm1, %xmm3
2514 ; SSE2-NEXT: paddw %xmm3, %xmm1
2515 ; SSE2-NEXT: retq
2548 ; SSE2-LABEL: test87:
2549 ; SSE2: # %bb.0: # %entry
2550 ; SSE2-NEXT: movdqa %xmm0, %xmm4
2551 ; SSE2-NEXT: psubusw %xmm2, %xmm4
2552 ; SSE2-NEXT: psubw %xmm4, %xmm0
2553 ; SSE2-NEXT: movdqa %xmm1, %xmm2
2554 ; SSE2-NEXT: psubusw %xmm3, %xmm2
2555 ; SSE2-NEXT: psubw %xmm2, %xmm1
2556 ; SSE2-NEXT: retq
2589 ; SSE2-LABEL: test88:
2590 ; SSE2: # %bb.0: # %entry
2591 ; SSE2-NEXT: movdqa %xmm0, %xmm4
2592 ; SSE2-NEXT: psubusw %xmm2, %xmm4
2593 ; SSE2-NEXT: psubw %xmm4, %xmm0
2594 ; SSE2-NEXT: movdqa %xmm1, %xmm2
2595 ; SSE2-NEXT: psubusw %xmm3, %xmm2
2596 ; SSE2-NEXT: psubw %xmm2, %xmm1
2597 ; SSE2-NEXT: retq
2630 ; SSE2-LABEL: test89:
2631 ; SSE2: # %bb.0: # %entry
2632 ; SSE2-NEXT: movdqa %xmm0, %xmm4
2633 ; SSE2-NEXT: pcmpgtd %xmm2, %xmm4
2634 ; SSE2-NEXT: pand %xmm4, %xmm0
2635 ; SSE2-NEXT: pandn %xmm2, %xmm4
2636 ; SSE2-NEXT: por %xmm4, %xmm0
2637 ; SSE2-NEXT: movdqa %xmm1, %xmm2
2638 ; SSE2-NEXT: pcmpgtd %xmm3, %xmm2
2639 ; SSE2-NEXT: pand %xmm2, %xmm1
2640 ; SSE2-NEXT: pandn %xmm3, %xmm2
2641 ; SSE2-NEXT: por %xmm2, %xmm1
2642 ; SSE2-NEXT: retq
2675 ; SSE2-LABEL: test90:
2676 ; SSE2: # %bb.0: # %entry
2677 ; SSE2-NEXT: movdqa %xmm0, %xmm4
2678 ; SSE2-NEXT: pcmpgtd %xmm2, %xmm4
2679 ; SSE2-NEXT: pand %xmm4, %xmm0
2680 ; SSE2-NEXT: pandn %xmm2, %xmm4
2681 ; SSE2-NEXT: por %xmm4, %xmm0
2682 ; SSE2-NEXT: movdqa %xmm1, %xmm2
2683 ; SSE2-NEXT: pcmpgtd %xmm3, %xmm2
2684 ; SSE2-NEXT: pand %xmm2, %xmm1
2685 ; SSE2-NEXT: pandn %xmm3, %xmm2
2686 ; SSE2-NEXT: por %xmm2, %xmm1
2687 ; SSE2-NEXT: retq
2720 ; SSE2-LABEL: test91:
2721 ; SSE2: # %bb.0: # %entry
2722 ; SSE2-NEXT: movdqa %xmm2, %xmm4
2723 ; SSE2-NEXT: pcmpgtd %xmm0, %xmm4
2724 ; SSE2-NEXT: pand %xmm4, %xmm0
2725 ; SSE2-NEXT: pandn %xmm2, %xmm4
2726 ; SSE2-NEXT: por %xmm4, %xmm0
2727 ; SSE2-NEXT: movdqa %xmm3, %xmm2
2728 ; SSE2-NEXT: pcmpgtd %xmm1, %xmm2
2729 ; SSE2-NEXT: pand %xmm2, %xmm1
2730 ; SSE2-NEXT: pandn %xmm3, %xmm2
2731 ; SSE2-NEXT: por %xmm2, %xmm1
2732 ; SSE2-NEXT: retq
2765 ; SSE2-LABEL: test92:
2766 ; SSE2: # %bb.0: # %entry
2767 ; SSE2-NEXT: movdqa %xmm2, %xmm4
2768 ; SSE2-NEXT: pcmpgtd %xmm0, %xmm4
2769 ; SSE2-NEXT: pand %xmm4, %xmm0
2770 ; SSE2-NEXT: pandn %xmm2, %xmm4
2771 ; SSE2-NEXT: por %xmm4, %xmm0
2772 ; SSE2-NEXT: movdqa %xmm3, %xmm2
2773 ; SSE2-NEXT: pcmpgtd %xmm1, %xmm2
2774 ; SSE2-NEXT: pand %xmm2, %xmm1
2775 ; SSE2-NEXT: pandn %xmm3, %xmm2
2776 ; SSE2-NEXT: por %xmm2, %xmm1
2777 ; SSE2-NEXT: retq
2810 ; SSE2-LABEL: test93:
2811 ; SSE2: # %bb.0: # %entry
2812 ; SSE2-NEXT: movdqa {{.*#+}} xmm4 = [2147483648,2147483648,2147483648,2147483648]
2813 ; SSE2-NEXT: movdqa %xmm2, %xmm5
2814 ; SSE2-NEXT: pxor %xmm4, %xmm5
2815 ; SSE2-NEXT: movdqa %xmm0, %xmm6
2816 ; SSE2-NEXT: pxor %xmm4, %xmm6
2817 ; SSE2-NEXT: pcmpgtd %xmm5, %xmm6
2818 ; SSE2-NEXT: pand %xmm6, %xmm0
2819 ; SSE2-NEXT: pandn %xmm2, %xmm6
2820 ; SSE2-NEXT: por %xmm6, %xmm0
2821 ; SSE2-NEXT: movdqa %xmm3, %xmm2
2822 ; SSE2-NEXT: pxor %xmm4, %xmm2
2823 ; SSE2-NEXT: pxor %xmm1, %xmm4
2824 ; SSE2-NEXT: pcmpgtd %xmm2, %xmm4
2825 ; SSE2-NEXT: pand %xmm4, %xmm1
2826 ; SSE2-NEXT: pandn %xmm3, %xmm4
2827 ; SSE2-NEXT: por %xmm4, %xmm1
2828 ; SSE2-NEXT: retq
2861 ; SSE2-LABEL: test94:
2862 ; SSE2: # %bb.0: # %entry
2863 ; SSE2-NEXT: movdqa {{.*#+}} xmm4 = [2147483648,2147483648,2147483648,2147483648]
2864 ; SSE2-NEXT: movdqa %xmm2, %xmm5
2865 ; SSE2-NEXT: pxor %xmm4, %xmm5
2866 ; SSE2-NEXT: movdqa %xmm0, %xmm6
2867 ; SSE2-NEXT: pxor %xmm4, %xmm6
2868 ; SSE2-NEXT: pcmpgtd %xmm5, %xmm6
2869 ; SSE2-NEXT: pand %xmm6, %xmm0
2870 ; SSE2-NEXT: pandn %xmm2, %xmm6
2871 ; SSE2-NEXT: por %xmm6, %xmm0
2872 ; SSE2-NEXT: movdqa %xmm3, %xmm2
2873 ; SSE2-NEXT: pxor %xmm4, %xmm2
2874 ; SSE2-NEXT: pxor %xmm1, %xmm4
2875 ; SSE2-NEXT: pcmpgtd %xmm2, %xmm4
2876 ; SSE2-NEXT: pand %xmm4, %xmm1
2877 ; SSE2-NEXT: pandn %xmm3, %xmm4
2878 ; SSE2-NEXT: por %xmm4, %xmm1
2879 ; SSE2-NEXT: retq
2912 ; SSE2-LABEL: test95:
2913 ; SSE2: # %bb.0: # %entry
2914 ; SSE2-NEXT: movdqa {{.*#+}} xmm4 = [2147483648,2147483648,2147483648,2147483648]
2915 ; SSE2-NEXT: movdqa %xmm0, %xmm5
2916 ; SSE2-NEXT: pxor %xmm4, %xmm5
2917 ; SSE2-NEXT: movdqa %xmm2, %xmm6
2918 ; SSE2-NEXT: pxor %xmm4, %xmm6
2919 ; SSE2-NEXT: pcmpgtd %xmm5, %xmm6
2920 ; SSE2-NEXT: pand %xmm6, %xmm0
2921 ; SSE2-NEXT: pandn %xmm2, %xmm6
2922 ; SSE2-NEXT: por %xmm6, %xmm0
2923 ; SSE2-NEXT: movdqa %xmm1, %xmm2
2924 ; SSE2-NEXT: pxor %xmm4, %xmm2
2925 ; SSE2-NEXT: pxor %xmm3, %xmm4
2926 ; SSE2-NEXT: pcmpgtd %xmm2, %xmm4
2927 ; SSE2-NEXT: pand %xmm4, %xmm1
2928 ; SSE2-NEXT: pandn %xmm3, %xmm4
2929 ; SSE2-NEXT: por %xmm4, %xmm1
2930 ; SSE2-NEXT: retq
2963 ; SSE2-LABEL: test96:
2964 ; SSE2: # %bb.0: # %entry
2965 ; SSE2-NEXT: movdqa {{.*#+}} xmm4 = [2147483648,2147483648,2147483648,2147483648]
2966 ; SSE2-NEXT: movdqa %xmm0, %xmm5
2967 ; SSE2-NEXT: pxor %xmm4, %xmm5
2968 ; SSE2-NEXT: movdqa %xmm2, %xmm6
2969 ; SSE2-NEXT: pxor %xmm4, %xmm6
2970 ; SSE2-NEXT: pcmpgtd %xmm5, %xmm6
2971 ; SSE2-NEXT: pand %xmm6, %xmm0
2972 ; SSE2-NEXT: pandn %xmm2, %xmm6
2973 ; SSE2-NEXT: por %xmm6, %xmm0
2974 ; SSE2-NEXT: movdqa %xmm1, %xmm2
2975 ; SSE2-NEXT: pxor %xmm4, %xmm2
2976 ; SSE2-NEXT: pxor %xmm3, %xmm4
2977 ; SSE2-NEXT: pcmpgtd %xmm2, %xmm4
2978 ; SSE2-NEXT: pand %xmm4, %xmm1
2979 ; SSE2-NEXT: pandn %xmm3, %xmm4
2980 ; SSE2-NEXT: por %xmm4, %xmm1
2981 ; SSE2-NEXT: retq
3016 ; SSE2-LABEL: test97:
3017 ; SSE2: # %bb.0: # %entry
3018 ; SSE2-NEXT: movdqa %xmm4, %xmm8
3019 ; SSE2-NEXT: pcmpgtb %xmm0, %xmm8
3020 ; SSE2-NEXT: pand %xmm8, %xmm0
3021 ; SSE2-NEXT: pandn %xmm4, %xmm8
3022 ; SSE2-NEXT: por %xmm8, %xmm0
3023 ; SSE2-NEXT: movdqa %xmm5, %xmm4
3024 ; SSE2-NEXT: pcmpgtb %xmm1, %xmm4
3025 ; SSE2-NEXT: pand %xmm4, %xmm1
3026 ; SSE2-NEXT: pandn %xmm5, %xmm4
3027 ; SSE2-NEXT: por %xmm4, %xmm1
3028 ; SSE2-NEXT: movdqa %xmm6, %xmm4
3029 ; SSE2-NEXT: pcmpgtb %xmm2, %xmm4
3030 ; SSE2-NEXT: pand %xmm4, %xmm2
3031 ; SSE2-NEXT: pandn %xmm6, %xmm4
3032 ; SSE2-NEXT: por %xmm4, %xmm2
3033 ; SSE2-NEXT: movdqa %xmm7, %xmm4
3034 ; SSE2-NEXT: pcmpgtb %xmm3, %xmm4
3035 ; SSE2-NEXT: pand %xmm4, %xmm3
3036 ; SSE2-NEXT: pandn %xmm7, %xmm4
3037 ; SSE2-NEXT: por %xmm4, %xmm3
3038 ; SSE2-NEXT: retq
3088 ; SSE2-LABEL: test98:
3089 ; SSE2: # %bb.0: # %entry
3090 ; SSE2-NEXT: movdqa %xmm4, %xmm8
3091 ; SSE2-NEXT: pcmpgtb %xmm0, %xmm8
3092 ; SSE2-NEXT: pand %xmm8, %xmm0
3093 ; SSE2-NEXT: pandn %xmm4, %xmm8
3094 ; SSE2-NEXT: por %xmm8, %xmm0
3095 ; SSE2-NEXT: movdqa %xmm5, %xmm4
3096 ; SSE2-NEXT: pcmpgtb %xmm1, %xmm4
3097 ; SSE2-NEXT: pand %xmm4, %xmm1
3098 ; SSE2-NEXT: pandn %xmm5, %xmm4
3099 ; SSE2-NEXT: por %xmm4, %xmm1
3100 ; SSE2-NEXT: movdqa %xmm6, %xmm4
3101 ; SSE2-NEXT: pcmpgtb %xmm2, %xmm4
3102 ; SSE2-NEXT: pand %xmm4, %xmm2
3103 ; SSE2-NEXT: pandn %xmm6, %xmm4
3104 ; SSE2-NEXT: por %xmm4, %xmm2
3105 ; SSE2-NEXT: movdqa %xmm7, %xmm4
3106 ; SSE2-NEXT: pcmpgtb %xmm3, %xmm4
3107 ; SSE2-NEXT: pand %xmm4, %xmm3
3108 ; SSE2-NEXT: pandn %xmm7, %xmm4
3109 ; SSE2-NEXT: por %xmm4, %xmm3
3110 ; SSE2-NEXT: retq
3160 ; SSE2-LABEL: test99:
3161 ; SSE2: # %bb.0: # %entry
3162 ; SSE2-NEXT: movdqa %xmm0, %xmm8
3163 ; SSE2-NEXT: pcmpgtb %xmm4, %xmm8
3164 ; SSE2-NEXT: pand %xmm8, %xmm0
3165 ; SSE2-NEXT: pandn %xmm4, %xmm8
3166 ; SSE2-NEXT: por %xmm8, %xmm0
3167 ; SSE2-NEXT: movdqa %xmm1, %xmm4
3168 ; SSE2-NEXT: pcmpgtb %xmm5, %xmm4
3169 ; SSE2-NEXT: pand %xmm4, %xmm1
3170 ; SSE2-NEXT: pandn %xmm5, %xmm4
3171 ; SSE2-NEXT: por %xmm4, %xmm1
3172 ; SSE2-NEXT: movdqa %xmm2, %xmm4
3173 ; SSE2-NEXT: pcmpgtb %xmm6, %xmm4
3174 ; SSE2-NEXT: pand %xmm4, %xmm2
3175 ; SSE2-NEXT: pandn %xmm6, %xmm4
3176 ; SSE2-NEXT: por %xmm4, %xmm2
3177 ; SSE2-NEXT: movdqa %xmm3, %xmm4
3178 ; SSE2-NEXT: pcmpgtb %xmm7, %xmm4
3179 ; SSE2-NEXT: pand %xmm4, %xmm3
3180 ; SSE2-NEXT: pandn %xmm7, %xmm4
3181 ; SSE2-NEXT: por %xmm4, %xmm3
3182 ; SSE2-NEXT: retq
3232 ; SSE2-LABEL: test100:
3233 ; SSE2: # %bb.0: # %entry
3234 ; SSE2-NEXT: movdqa %xmm0, %xmm8
3235 ; SSE2-NEXT: pcmpgtb %xmm4, %xmm8
3236 ; SSE2-NEXT: pand %xmm8, %xmm0
3237 ; SSE2-NEXT: pandn %xmm4, %xmm8
3238 ; SSE2-NEXT: por %xmm8, %xmm0
3239 ; SSE2-NEXT: movdqa %xmm1, %xmm4
3240 ; SSE2-NEXT: pcmpgtb %xmm5, %xmm4
3241 ; SSE2-NEXT: pand %xmm4, %xmm1
3242 ; SSE2-NEXT: pandn %xmm5, %xmm4
3243 ; SSE2-NEXT: por %xmm4, %xmm1
3244 ; SSE2-NEXT: movdqa %xmm2, %xmm4
3245 ; SSE2-NEXT: pcmpgtb %xmm6, %xmm4
3246 ; SSE2-NEXT: pand %xmm4, %xmm2
3247 ; SSE2-NEXT: pandn %xmm6, %xmm4
3248 ; SSE2-NEXT: por %xmm4, %xmm2
3249 ; SSE2-NEXT: movdqa %xmm3, %xmm4
3250 ; SSE2-NEXT: pcmpgtb %xmm7, %xmm4
3251 ; SSE2-NEXT: pand %xmm4, %xmm3
3252 ; SSE2-NEXT: pandn %xmm7, %xmm4
3253 ; SSE2-NEXT: por %xmm4, %xmm3
3254 ; SSE2-NEXT: retq
3688 ; SSE2-LABEL: test109:
3689 ; SSE2: # %bb.0: # %entry
3690 ; SSE2-NEXT: movdqa %xmm0, %xmm8
3691 ; SSE2-NEXT: psubusw %xmm4, %xmm8
3692 ; SSE2-NEXT: psubw %xmm8, %xmm0
3693 ; SSE2-NEXT: movdqa %xmm1, %xmm4
3694 ; SSE2-NEXT: psubusw %xmm5, %xmm4
3695 ; SSE2-NEXT: psubw %xmm4, %xmm1
3696 ; SSE2-NEXT: movdqa %xmm2, %xmm4
3697 ; SSE2-NEXT: psubusw %xmm6, %xmm4
3698 ; SSE2-NEXT: psubw %xmm4, %xmm2
3699 ; SSE2-NEXT: movdqa %xmm3, %xmm4
3700 ; SSE2-NEXT: psubusw %xmm7, %xmm4
3701 ; SSE2-NEXT: psubw %xmm4, %xmm3
3702 ; SSE2-NEXT: retq
3752 ; SSE2-LABEL: test110:
3753 ; SSE2: # %bb.0: # %entry
3754 ; SSE2-NEXT: movdqa %xmm0, %xmm8
3755 ; SSE2-NEXT: psubusw %xmm4, %xmm8
3756 ; SSE2-NEXT: psubw %xmm8, %xmm0
3757 ; SSE2-NEXT: movdqa %xmm1, %xmm4
3758 ; SSE2-NEXT: psubusw %xmm5, %xmm4
3759 ; SSE2-NEXT: psubw %xmm4, %xmm1
3760 ; SSE2-NEXT: movdqa %xmm2, %xmm4
3761 ; SSE2-NEXT: psubusw %xmm6, %xmm4
3762 ; SSE2-NEXT: psubw %xmm4, %xmm2
3763 ; SSE2-NEXT: movdqa %xmm3, %xmm4
3764 ; SSE2-NEXT: psubusw %xmm7, %xmm4
3765 ; SSE2-NEXT: psubw %xmm4, %xmm3
3766 ; SSE2-NEXT: retq
3816 ; SSE2-LABEL: test111:
3817 ; SSE2: # %bb.0: # %entry
3818 ; SSE2-NEXT: psubusw %xmm0, %xmm4
3819 ; SSE2-NEXT: paddw %xmm4, %xmm0
3820 ; SSE2-NEXT: psubusw %xmm1, %xmm5
3821 ; SSE2-NEXT: paddw %xmm5, %xmm1
3822 ; SSE2-NEXT: psubusw %xmm2, %xmm6
3823 ; SSE2-NEXT: paddw %xmm6, %xmm2
3824 ; SSE2-NEXT: psubusw %xmm3, %xmm7
3825 ; SSE2-NEXT: paddw %xmm7, %xmm3
3826 ; SSE2-NEXT: retq
3876 ; SSE2-LABEL: test112:
3877 ; SSE2: # %bb.0: # %entry
3878 ; SSE2-NEXT: psubusw %xmm0, %xmm4
3879 ; SSE2-NEXT: paddw %xmm4, %xmm0
3880 ; SSE2-NEXT: psubusw %xmm1, %xmm5
3881 ; SSE2-NEXT: paddw %xmm5, %xmm1
3882 ; SSE2-NEXT: psubusw %xmm2, %xmm6
3883 ; SSE2-NEXT: paddw %xmm6, %xmm2
3884 ; SSE2-NEXT: psubusw %xmm3, %xmm7
3885 ; SSE2-NEXT: paddw %xmm7, %xmm3
3886 ; SSE2-NEXT: retq
3936 ; SSE2-LABEL: test113:
3937 ; SSE2: # %bb.0: # %entry
3938 ; SSE2-NEXT: movdqa %xmm4, %xmm8
3939 ; SSE2-NEXT: pcmpgtd %xmm0, %xmm8
3940 ; SSE2-NEXT: pand %xmm8, %xmm0
3941 ; SSE2-NEXT: pandn %xmm4, %xmm8
3942 ; SSE2-NEXT: por %xmm8, %xmm0
3943 ; SSE2-NEXT: movdqa %xmm5, %xmm4
3944 ; SSE2-NEXT: pcmpgtd %xmm1, %xmm4
3945 ; SSE2-NEXT: pand %xmm4, %xmm1
3946 ; SSE2-NEXT: pandn %xmm5, %xmm4
3947 ; SSE2-NEXT: por %xmm4, %xmm1
3948 ; SSE2-NEXT: movdqa %xmm6, %xmm4
3949 ; SSE2-NEXT: pcmpgtd %xmm2, %xmm4
3950 ; SSE2-NEXT: pand %xmm4, %xmm2
3951 ; SSE2-NEXT: pandn %xmm6, %xmm4
3952 ; SSE2-NEXT: por %xmm4, %xmm2
3953 ; SSE2-NEXT: movdqa %xmm7, %xmm4
3954 ; SSE2-NEXT: pcmpgtd %xmm3, %xmm4
3955 ; SSE2-NEXT: pand %xmm4, %xmm3
3956 ; SSE2-NEXT: pandn %xmm7, %xmm4
3957 ; SSE2-NEXT: por %xmm4, %xmm3
3958 ; SSE2-NEXT: retq
3999 ; SSE2-LABEL: test114:
4000 ; SSE2: # %bb.0: # %entry
4001 ; SSE2-NEXT: movdqa %xmm4, %xmm8
4002 ; SSE2-NEXT: pcmpgtd %xmm0, %xmm8
4003 ; SSE2-NEXT: pand %xmm8, %xmm0
4004 ; SSE2-NEXT: pandn %xmm4, %xmm8
4005 ; SSE2-NEXT: por %xmm8, %xmm0
4006 ; SSE2-NEXT: movdqa %xmm5, %xmm4
4007 ; SSE2-NEXT: pcmpgtd %xmm1, %xmm4
4008 ; SSE2-NEXT: pand %xmm4, %xmm1
4009 ; SSE2-NEXT: pandn %xmm5, %xmm4
4010 ; SSE2-NEXT: por %xmm4, %xmm1
4011 ; SSE2-NEXT: movdqa %xmm6, %xmm4
4012 ; SSE2-NEXT: pcmpgtd %xmm2, %xmm4
4013 ; SSE2-NEXT: pand %xmm4, %xmm2
4014 ; SSE2-NEXT: pandn %xmm6, %xmm4
4015 ; SSE2-NEXT: por %xmm4, %xmm2
4016 ; SSE2-NEXT: movdqa %xmm7, %xmm4
4017 ; SSE2-NEXT: pcmpgtd %xmm3, %xmm4
4018 ; SSE2-NEXT: pand %xmm4, %xmm3
4019 ; SSE2-NEXT: pandn %xmm7, %xmm4
4020 ; SSE2-NEXT: por %xmm4, %xmm3
4021 ; SSE2-NEXT: retq
4062 ; SSE2-LABEL: test115:
4063 ; SSE2: # %bb.0: # %entry
4064 ; SSE2-NEXT: movdqa %xmm0, %xmm8
4065 ; SSE2-NEXT: pcmpgtd %xmm4, %xmm8
4066 ; SSE2-NEXT: pand %xmm8, %xmm0
4067 ; SSE2-NEXT: pandn %xmm4, %xmm8
4068 ; SSE2-NEXT: por %xmm8, %xmm0
4069 ; SSE2-NEXT: movdqa %xmm1, %xmm4
4070 ; SSE2-NEXT: pcmpgtd %xmm5, %xmm4
4071 ; SSE2-NEXT: pand %xmm4, %xmm1
4072 ; SSE2-NEXT: pandn %xmm5, %xmm4
4073 ; SSE2-NEXT: por %xmm4, %xmm1
4074 ; SSE2-NEXT: movdqa %xmm2, %xmm4
4075 ; SSE2-NEXT: pcmpgtd %xmm6, %xmm4
4076 ; SSE2-NEXT: pand %xmm4, %xmm2
4077 ; SSE2-NEXT: pandn %xmm6, %xmm4
4078 ; SSE2-NEXT: por %xmm4, %xmm2
4079 ; SSE2-NEXT: movdqa %xmm3, %xmm4
4080 ; SSE2-NEXT: pcmpgtd %xmm7, %xmm4
4081 ; SSE2-NEXT: pand %xmm4, %xmm3
4082 ; SSE2-NEXT: pandn %xmm7, %xmm4
4083 ; SSE2-NEXT: por %xmm4, %xmm3
4084 ; SSE2-NEXT: retq
4125 ; SSE2-LABEL: test116:
4126 ; SSE2: # %bb.0: # %entry
4127 ; SSE2-NEXT: movdqa %xmm0, %xmm8
4128 ; SSE2-NEXT: pcmpgtd %xmm4, %xmm8
4129 ; SSE2-NEXT: pand %xmm8, %xmm0
4130 ; SSE2-NEXT: pandn %xmm4, %xmm8
4131 ; SSE2-NEXT: por %xmm8, %xmm0
4132 ; SSE2-NEXT: movdqa %xmm1, %xmm4
4133 ; SSE2-NEXT: pcmpgtd %xmm5, %xmm4
4134 ; SSE2-NEXT: pand %xmm4, %xmm1
4135 ; SSE2-NEXT: pandn %xmm5, %xmm4
4136 ; SSE2-NEXT: por %xmm4, %xmm1
4137 ; SSE2-NEXT: movdqa %xmm2, %xmm4
4138 ; SSE2-NEXT: pcmpgtd %xmm6, %xmm4
4139 ; SSE2-NEXT: pand %xmm4, %xmm2
4140 ; SSE2-NEXT: pandn %xmm6, %xmm4
4141 ; SSE2-NEXT: por %xmm4, %xmm2
4142 ; SSE2-NEXT: movdqa %xmm3, %xmm4
4143 ; SSE2-NEXT: pcmpgtd %xmm7, %xmm4
4144 ; SSE2-NEXT: pand %xmm4, %xmm3
4145 ; SSE2-NEXT: pandn %xmm7, %xmm4
4146 ; SSE2-NEXT: por %xmm4, %xmm3
4147 ; SSE2-NEXT: retq
4188 ; SSE2-LABEL: test117:
4189 ; SSE2: # %bb.0: # %entry
4190 ; SSE2-NEXT: movdqa {{.*#+}} xmm8 = [2147483648,2147483648,2147483648,2147483648]
4191 ; SSE2-NEXT: movdqa %xmm0, %xmm9
4192 ; SSE2-NEXT: pxor %xmm8, %xmm9
4193 ; SSE2-NEXT: movdqa %xmm4, %xmm10
4194 ; SSE2-NEXT: pxor %xmm8, %xmm10
4195 ; SSE2-NEXT: pcmpgtd %xmm9, %xmm10
4196 ; SSE2-NEXT: pand %xmm10, %xmm0
4197 ; SSE2-NEXT: pandn %xmm4, %xmm10
4198 ; SSE2-NEXT: por %xmm10, %xmm0
4199 ; SSE2-NEXT: movdqa %xmm1, %xmm9
4200 ; SSE2-NEXT: pxor %xmm8, %xmm9
4201 ; SSE2-NEXT: movdqa %xmm5, %xmm4
4202 ; SSE2-NEXT: pxor %xmm8, %xmm4
4203 ; SSE2-NEXT: pcmpgtd %xmm9, %xmm4
4204 ; SSE2-NEXT: pand %xmm4, %xmm1
4205 ; SSE2-NEXT: pandn %xmm5, %xmm4
4206 ; SSE2-NEXT: por %xmm4, %xmm1
4207 ; SSE2-NEXT: movdqa %xmm2, %xmm4
4208 ; SSE2-NEXT: pxor %xmm8, %xmm4
4209 ; SSE2-NEXT: movdqa %xmm6, %xmm5
4210 ; SSE2-NEXT: pxor %xmm8, %xmm5
4211 ; SSE2-NEXT: pcmpgtd %xmm4, %xmm5
4212 ; SSE2-NEXT: pand %xmm5, %xmm2
4213 ; SSE2-NEXT: pandn %xmm6, %xmm5
4214 ; SSE2-NEXT: por %xmm5, %xmm2
4215 ; SSE2-NEXT: movdqa %xmm3, %xmm4
4216 ; SSE2-NEXT: pxor %xmm8, %xmm4
4217 ; SSE2-NEXT: pxor %xmm7, %xmm8
4218 ; SSE2-NEXT: pcmpgtd %xmm4, %xmm8
4219 ; SSE2-NEXT: pand %xmm8, %xmm3
4220 ; SSE2-NEXT: pandn %xmm7, %xmm8
4221 ; SSE2-NEXT: por %xmm8, %xmm3
4222 ; SSE2-NEXT: retq
4263 ; SSE2-LABEL: test118:
4264 ; SSE2: # %bb.0: # %entry
4265 ; SSE2-NEXT: movdqa {{.*#+}} xmm8 = [2147483648,2147483648,2147483648,2147483648]
4266 ; SSE2-NEXT: movdqa %xmm0, %xmm9
4267 ; SSE2-NEXT: pxor %xmm8, %xmm9
4268 ; SSE2-NEXT: movdqa %xmm4, %xmm10
4269 ; SSE2-NEXT: pxor %xmm8, %xmm10
4270 ; SSE2-NEXT: pcmpgtd %xmm9, %xmm10
4271 ; SSE2-NEXT: pand %xmm10, %xmm0
4272 ; SSE2-NEXT: pandn %xmm4, %xmm10
4273 ; SSE2-NEXT: por %xmm10, %xmm0
4274 ; SSE2-NEXT: movdqa %xmm1, %xmm9
4275 ; SSE2-NEXT: pxor %xmm8, %xmm9
4276 ; SSE2-NEXT: movdqa %xmm5, %xmm4
4277 ; SSE2-NEXT: pxor %xmm8, %xmm4
4278 ; SSE2-NEXT: pcmpgtd %xmm9, %xmm4
4279 ; SSE2-NEXT: pand %xmm4, %xmm1
4280 ; SSE2-NEXT: pandn %xmm5, %xmm4
4281 ; SSE2-NEXT: por %xmm4, %xmm1
4282 ; SSE2-NEXT: movdqa %xmm2, %xmm4
4283 ; SSE2-NEXT: pxor %xmm8, %xmm4
4284 ; SSE2-NEXT: movdqa %xmm6, %xmm5
4285 ; SSE2-NEXT: pxor %xmm8, %xmm5
4286 ; SSE2-NEXT: pcmpgtd %xmm4, %xmm5
4287 ; SSE2-NEXT: pand %xmm5, %xmm2
4288 ; SSE2-NEXT: pandn %xmm6, %xmm5
4289 ; SSE2-NEXT: por %xmm5, %xmm2
4290 ; SSE2-NEXT: movdqa %xmm3, %xmm4
4291 ; SSE2-NEXT: pxor %xmm8, %xmm4
4292 ; SSE2-NEXT: pxor %xmm7, %xmm8
4293 ; SSE2-NEXT: pcmpgtd %xmm4, %xmm8
4294 ; SSE2-NEXT: pand %xmm8, %xmm3
4295 ; SSE2-NEXT: pandn %xmm7, %xmm8
4296 ; SSE2-NEXT: por %xmm8, %xmm3
4297 ; SSE2-NEXT: retq
4338 ; SSE2-LABEL: test119:
4339 ; SSE2: # %bb.0: # %entry
4340 ; SSE2-NEXT: movdqa {{.*#+}} xmm8 = [2147483648,2147483648,2147483648,2147483648]
4341 ; SSE2-NEXT: movdqa %xmm4, %xmm9
4342 ; SSE2-NEXT: pxor %xmm8, %xmm9
4343 ; SSE2-NEXT: movdqa %xmm0, %xmm10
4344 ; SSE2-NEXT: pxor %xmm8, %xmm10
4345 ; SSE2-NEXT: pcmpgtd %xmm9, %xmm10
4346 ; SSE2-NEXT: pand %xmm10, %xmm0
4347 ; SSE2-NEXT: pandn %xmm4, %xmm10
4348 ; SSE2-NEXT: por %xmm10, %xmm0
4349 ; SSE2-NEXT: movdqa %xmm5, %xmm9
4350 ; SSE2-NEXT: pxor %xmm8, %xmm9
4351 ; SSE2-NEXT: movdqa %xmm1, %xmm4
4352 ; SSE2-NEXT: pxor %xmm8, %xmm4
4353 ; SSE2-NEXT: pcmpgtd %xmm9, %xmm4
4354 ; SSE2-NEXT: pand %xmm4, %xmm1
4355 ; SSE2-NEXT: pandn %xmm5, %xmm4
4356 ; SSE2-NEXT: por %xmm4, %xmm1
4357 ; SSE2-NEXT: movdqa %xmm6, %xmm4
4358 ; SSE2-NEXT: pxor %xmm8, %xmm4
4359 ; SSE2-NEXT: movdqa %xmm2, %xmm5
4360 ; SSE2-NEXT: pxor %xmm8, %xmm5
4361 ; SSE2-NEXT: pcmpgtd %xmm4, %xmm5
4362 ; SSE2-NEXT: pand %xmm5, %xmm2
4363 ; SSE2-NEXT: pandn %xmm6, %xmm5
4364 ; SSE2-NEXT: por %xmm5, %xmm2
4365 ; SSE2-NEXT: movdqa %xmm7, %xmm4
4366 ; SSE2-NEXT: pxor %xmm8, %xmm4
4367 ; SSE2-NEXT: pxor %xmm3, %xmm8
4368 ; SSE2-NEXT: pcmpgtd %xmm4, %xmm8
4369 ; SSE2-NEXT: pand %xmm8, %xmm3
4370 ; SSE2-NEXT: pandn %xmm7, %xmm8
4371 ; SSE2-NEXT: por %xmm8, %xmm3
4372 ; SSE2-NEXT: retq
4413 ; SSE2-LABEL: test120:
4414 ; SSE2: # %bb.0: # %entry
4415 ; SSE2-NEXT: movdqa {{.*#+}} xmm8 = [2147483648,2147483648,2147483648,2147483648]
4416 ; SSE2-NEXT: movdqa %xmm4, %xmm9
4417 ; SSE2-NEXT: pxor %xmm8, %xmm9
4418 ; SSE2-NEXT: movdqa %xmm0, %xmm10
4419 ; SSE2-NEXT: pxor %xmm8, %xmm10
4420 ; SSE2-NEXT: pcmpgtd %xmm9, %xmm10
4421 ; SSE2-NEXT: pand %xmm10, %xmm0
4422 ; SSE2-NEXT: pandn %xmm4, %xmm10
4423 ; SSE2-NEXT: por %xmm10, %xmm0
4424 ; SSE2-NEXT: movdqa %xmm5, %xmm9
4425 ; SSE2-NEXT: pxor %xmm8, %xmm9
4426 ; SSE2-NEXT: movdqa %xmm1, %xmm4
4427 ; SSE2-NEXT: pxor %xmm8, %xmm4
4428 ; SSE2-NEXT: pcmpgtd %xmm9, %xmm4
4429 ; SSE2-NEXT: pand %xmm4, %xmm1
4430 ; SSE2-NEXT: pandn %xmm5, %xmm4
4431 ; SSE2-NEXT: por %xmm4, %xmm1
4432 ; SSE2-NEXT: movdqa %xmm6, %xmm4
4433 ; SSE2-NEXT: pxor %xmm8, %xmm4
4434 ; SSE2-NEXT: movdqa %xmm2, %xmm5
4435 ; SSE2-NEXT: pxor %xmm8, %xmm5
4436 ; SSE2-NEXT: pcmpgtd %xmm4, %xmm5
4437 ; SSE2-NEXT: pand %xmm5, %xmm2
4438 ; SSE2-NEXT: pandn %xmm6, %xmm5
4439 ; SSE2-NEXT: por %xmm5, %xmm2
4440 ; SSE2-NEXT: movdqa %xmm7, %xmm4
4441 ; SSE2-NEXT: pxor %xmm8, %xmm4
4442 ; SSE2-NEXT: pxor %xmm3, %xmm8
4443 ; SSE2-NEXT: pcmpgtd %xmm4, %xmm8
4444 ; SSE2-NEXT: pand %xmm8, %xmm3
4445 ; SSE2-NEXT: pandn %xmm7, %xmm8
4446 ; SSE2-NEXT: por %xmm8, %xmm3
4447 ; SSE2-NEXT: retq
4488 ; SSE2-LABEL: test121:
4489 ; SSE2: # %bb.0: # %entry
4490 ; SSE2-NEXT: movdqa {{.*#+}} xmm8 = [2147483648,2147483648]
4491 ; SSE2-NEXT: movdqa %xmm0, %xmm9
4492 ; SSE2-NEXT: pxor %xmm8, %xmm9
4493 ; SSE2-NEXT: movdqa %xmm4, %xmm10
4494 ; SSE2-NEXT: pxor %xmm8, %xmm10
4495 ; SSE2-NEXT: movdqa %xmm10, %xmm11
4496 ; SSE2-NEXT: pcmpgtd %xmm9, %xmm11
4497 ; SSE2-NEXT: pshufd {{.*#+}} xmm12 = xmm11[0,0,2,2]
4498 ; SSE2-NEXT: pcmpeqd %xmm9, %xmm10
4499 ; SSE2-NEXT: pshufd {{.*#+}} xmm9 = xmm10[1,1,3,3]
4500 ; SSE2-NEXT: pand %xmm12, %xmm9
4501 ; SSE2-NEXT: pshufd {{.*#+}} xmm10 = xmm11[1,1,3,3]
4502 ; SSE2-NEXT: por %xmm9, %xmm10
4503 ; SSE2-NEXT: pand %xmm10, %xmm0
4504 ; SSE2-NEXT: pandn %xmm4, %xmm10
4505 ; SSE2-NEXT: por %xmm10, %xmm0
4506 ; SSE2-NEXT: movdqa %xmm1, %xmm9
4507 ; SSE2-NEXT: pxor %xmm8, %xmm9
4508 ; SSE2-NEXT: movdqa %xmm5, %xmm4
4509 ; SSE2-NEXT: pxor %xmm8, %xmm4
4510 ; SSE2-NEXT: movdqa %xmm4, %xmm10
4511 ; SSE2-NEXT: pcmpgtd %xmm9, %xmm10
4512 ; SSE2-NEXT: pshufd {{.*#+}} xmm11 = xmm10[0,0,2,2]
4513 ; SSE2-NEXT: pcmpeqd %xmm9, %xmm4
4514 ; SSE2-NEXT: pshufd {{.*#+}} xmm9 = xmm4[1,1,3,3]
4515 ; SSE2-NEXT: pand %xmm11, %xmm9
4516 ; SSE2-NEXT: pshufd {{.*#+}} xmm4 = xmm10[1,1,3,3]
4517 ; SSE2-NEXT: por %xmm9, %xmm4
4518 ; SSE2-NEXT: pand %xmm4, %xmm1
4519 ; SSE2-NEXT: pandn %xmm5, %xmm4
4520 ; SSE2-NEXT: por %xmm4, %xmm1
4521 ; SSE2-NEXT: movdqa %xmm2, %xmm4
4522 ; SSE2-NEXT: pxor %xmm8, %xmm4
4523 ; SSE2-NEXT: movdqa %xmm6, %xmm5
4524 ; SSE2-NEXT: pxor %xmm8, %xmm5
4525 ; SSE2-NEXT: movdqa %xmm5, %xmm9
4526 ; SSE2-NEXT: pcmpgtd %xmm4, %xmm9
4527 ; SSE2-NEXT: pshufd {{.*#+}} xmm10 = xmm9[0,0,2,2]
4528 ; SSE2-NEXT: pcmpeqd %xmm4, %xmm5
4529 ; SSE2-NEXT: pshufd {{.*#+}} xmm4 = xmm5[1,1,3,3]
4530 ; SSE2-NEXT: pand %xmm10, %xmm4
4531 ; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm9[1,1,3,3]
4532 ; SSE2-NEXT: por %xmm4, %xmm5
4533 ; SSE2-NEXT: pand %xmm5, %xmm2
4534 ; SSE2-NEXT: pandn %xmm6, %xmm5
4535 ; SSE2-NEXT: por %xmm5, %xmm2
4536 ; SSE2-NEXT: movdqa %xmm3, %xmm4
4537 ; SSE2-NEXT: pxor %xmm8, %xmm4
4538 ; SSE2-NEXT: pxor %xmm7, %xmm8
4539 ; SSE2-NEXT: movdqa %xmm8, %xmm5
4540 ; SSE2-NEXT: pcmpgtd %xmm4, %xmm5
4541 ; SSE2-NEXT: pshufd {{.*#+}} xmm6 = xmm5[0,0,2,2]
4542 ; SSE2-NEXT: pcmpeqd %xmm4, %xmm8
4543 ; SSE2-NEXT: pshufd {{.*#+}} xmm4 = xmm8[1,1,3,3]
4544 ; SSE2-NEXT: pand %xmm6, %xmm4
4545 ; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm5[1,1,3,3]
4546 ; SSE2-NEXT: por %xmm4, %xmm5
4547 ; SSE2-NEXT: pand %xmm5, %xmm3
4548 ; SSE2-NEXT: pandn %xmm7, %xmm5
4549 ; SSE2-NEXT: por %xmm5, %xmm3
4550 ; SSE2-NEXT: retq
4609 ; SSE2-LABEL: test122:
4610 ; SSE2: # %bb.0: # %entry
4611 ; SSE2-NEXT: movdqa {{.*#+}} xmm8 = [2147483648,2147483648]
4612 ; SSE2-NEXT: movdqa %xmm0, %xmm9
4613 ; SSE2-NEXT: pxor %xmm8, %xmm9
4614 ; SSE2-NEXT: movdqa %xmm4, %xmm10
4615 ; SSE2-NEXT: pxor %xmm8, %xmm10
4616 ; SSE2-NEXT: movdqa %xmm10, %xmm11
4617 ; SSE2-NEXT: pcmpgtd %xmm9, %xmm11
4618 ; SSE2-NEXT: pshufd {{.*#+}} xmm12 = xmm11[0,0,2,2]
4619 ; SSE2-NEXT: pcmpeqd %xmm9, %xmm10
4620 ; SSE2-NEXT: pshufd {{.*#+}} xmm9 = xmm10[1,1,3,3]
4621 ; SSE2-NEXT: pand %xmm12, %xmm9
4622 ; SSE2-NEXT: pshufd {{.*#+}} xmm10 = xmm11[1,1,3,3]
4623 ; SSE2-NEXT: por %xmm9, %xmm10
4624 ; SSE2-NEXT: pand %xmm10, %xmm0
4625 ; SSE2-NEXT: pandn %xmm4, %xmm10
4626 ; SSE2-NEXT: por %xmm10, %xmm0
4627 ; SSE2-NEXT: movdqa %xmm1, %xmm9
4628 ; SSE2-NEXT: pxor %xmm8, %xmm9
4629 ; SSE2-NEXT: movdqa %xmm5, %xmm4
4630 ; SSE2-NEXT: pxor %xmm8, %xmm4
4631 ; SSE2-NEXT: movdqa %xmm4, %xmm10
4632 ; SSE2-NEXT: pcmpgtd %xmm9, %xmm10
4633 ; SSE2-NEXT: pshufd {{.*#+}} xmm11 = xmm10[0,0,2,2]
4634 ; SSE2-NEXT: pcmpeqd %xmm9, %xmm4
4635 ; SSE2-NEXT: pshufd {{.*#+}} xmm9 = xmm4[1,1,3,3]
4636 ; SSE2-NEXT: pand %xmm11, %xmm9
4637 ; SSE2-NEXT: pshufd {{.*#+}} xmm4 = xmm10[1,1,3,3]
4638 ; SSE2-NEXT: por %xmm9, %xmm4
4639 ; SSE2-NEXT: pand %xmm4, %xmm1
4640 ; SSE2-NEXT: pandn %xmm5, %xmm4
4641 ; SSE2-NEXT: por %xmm4, %xmm1
4642 ; SSE2-NEXT: movdqa %xmm2, %xmm4
4643 ; SSE2-NEXT: pxor %xmm8, %xmm4
4644 ; SSE2-NEXT: movdqa %xmm6, %xmm5
4645 ; SSE2-NEXT: pxor %xmm8, %xmm5
4646 ; SSE2-NEXT: movdqa %xmm5, %xmm9
4647 ; SSE2-NEXT: pcmpgtd %xmm4, %xmm9
4648 ; SSE2-NEXT: pshufd {{.*#+}} xmm10 = xmm9[0,0,2,2]
4649 ; SSE2-NEXT: pcmpeqd %xmm4, %xmm5
4650 ; SSE2-NEXT: pshufd {{.*#+}} xmm4 = xmm5[1,1,3,3]
4651 ; SSE2-NEXT: pand %xmm10, %xmm4
4652 ; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm9[1,1,3,3]
4653 ; SSE2-NEXT: por %xmm4, %xmm5
4654 ; SSE2-NEXT: pand %xmm5, %xmm2
4655 ; SSE2-NEXT: pandn %xmm6, %xmm5
4656 ; SSE2-NEXT: por %xmm5, %xmm2
4657 ; SSE2-NEXT: movdqa %xmm3, %xmm4
4658 ; SSE2-NEXT: pxor %xmm8, %xmm4
4659 ; SSE2-NEXT: pxor %xmm7, %xmm8
4660 ; SSE2-NEXT: movdqa %xmm8, %xmm5
4661 ; SSE2-NEXT: pcmpgtd %xmm4, %xmm5
4662 ; SSE2-NEXT: pshufd {{.*#+}} xmm6 = xmm5[0,0,2,2]
4663 ; SSE2-NEXT: pcmpeqd %xmm4, %xmm8
4664 ; SSE2-NEXT: pshufd {{.*#+}} xmm4 = xmm8[1,1,3,3]
4665 ; SSE2-NEXT: pand %xmm6, %xmm4
4666 ; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm5[1,1,3,3]
4667 ; SSE2-NEXT: por %xmm4, %xmm5
4668 ; SSE2-NEXT: pand %xmm5, %xmm3
4669 ; SSE2-NEXT: pandn %xmm7, %xmm5
4670 ; SSE2-NEXT: por %xmm5, %xmm3
4671 ; SSE2-NEXT: retq
4730 ; SSE2-LABEL: test123:
4731 ; SSE2: # %bb.0: # %entry
4732 ; SSE2-NEXT: movdqa {{.*#+}} xmm8 = [2147483648,2147483648]
4733 ; SSE2-NEXT: movdqa %xmm4, %xmm9
4734 ; SSE2-NEXT: pxor %xmm8, %xmm9
4735 ; SSE2-NEXT: movdqa %xmm0, %xmm10
4736 ; SSE2-NEXT: pxor %xmm8, %xmm10
4737 ; SSE2-NEXT: movdqa %xmm10, %xmm11
4738 ; SSE2-NEXT: pcmpgtd %xmm9, %xmm11
4739 ; SSE2-NEXT: pshufd {{.*#+}} xmm12 = xmm11[0,0,2,2]
4740 ; SSE2-NEXT: pcmpeqd %xmm9, %xmm10
4741 ; SSE2-NEXT: pshufd {{.*#+}} xmm9 = xmm10[1,1,3,3]
4742 ; SSE2-NEXT: pand %xmm12, %xmm9
4743 ; SSE2-NEXT: pshufd {{.*#+}} xmm10 = xmm11[1,1,3,3]
4744 ; SSE2-NEXT: por %xmm9, %xmm10
4745 ; SSE2-NEXT: pand %xmm10, %xmm0
4746 ; SSE2-NEXT: pandn %xmm4, %xmm10
4747 ; SSE2-NEXT: por %xmm10, %xmm0
4748 ; SSE2-NEXT: movdqa %xmm5, %xmm9
4749 ; SSE2-NEXT: pxor %xmm8, %xmm9
4750 ; SSE2-NEXT: movdqa %xmm1, %xmm4
4751 ; SSE2-NEXT: pxor %xmm8, %xmm4
4752 ; SSE2-NEXT: movdqa %xmm4, %xmm10
4753 ; SSE2-NEXT: pcmpgtd %xmm9, %xmm10
4754 ; SSE2-NEXT: pshufd {{.*#+}} xmm11 = xmm10[0,0,2,2]
4755 ; SSE2-NEXT: pcmpeqd %xmm9, %xmm4
4756 ; SSE2-NEXT: pshufd {{.*#+}} xmm9 = xmm4[1,1,3,3]
4757 ; SSE2-NEXT: pand %xmm11, %xmm9
4758 ; SSE2-NEXT: pshufd {{.*#+}} xmm4 = xmm10[1,1,3,3]
4759 ; SSE2-NEXT: por %xmm9, %xmm4
4760 ; SSE2-NEXT: pand %xmm4, %xmm1
4761 ; SSE2-NEXT: pandn %xmm5, %xmm4
4762 ; SSE2-NEXT: por %xmm4, %xmm1
4763 ; SSE2-NEXT: movdqa %xmm6, %xmm4
4764 ; SSE2-NEXT: pxor %xmm8, %xmm4
4765 ; SSE2-NEXT: movdqa %xmm2, %xmm5
4766 ; SSE2-NEXT: pxor %xmm8, %xmm5
4767 ; SSE2-NEXT: movdqa %xmm5, %xmm9
4768 ; SSE2-NEXT: pcmpgtd %xmm4, %xmm9
4769 ; SSE2-NEXT: pshufd {{.*#+}} xmm10 = xmm9[0,0,2,2]
4770 ; SSE2-NEXT: pcmpeqd %xmm4, %xmm5
4771 ; SSE2-NEXT: pshufd {{.*#+}} xmm4 = xmm5[1,1,3,3]
4772 ; SSE2-NEXT: pand %xmm10, %xmm4
4773 ; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm9[1,1,3,3]
4774 ; SSE2-NEXT: por %xmm4, %xmm5
4775 ; SSE2-NEXT: pand %xmm5, %xmm2
4776 ; SSE2-NEXT: pandn %xmm6, %xmm5
4777 ; SSE2-NEXT: por %xmm5, %xmm2
4778 ; SSE2-NEXT: movdqa %xmm7, %xmm4
4779 ; SSE2-NEXT: pxor %xmm8, %xmm4
4780 ; SSE2-NEXT: pxor %xmm3, %xmm8
4781 ; SSE2-NEXT: movdqa %xmm8, %xmm5
4782 ; SSE2-NEXT: pcmpgtd %xmm4, %xmm5
4783 ; SSE2-NEXT: pshufd {{.*#+}} xmm6 = xmm5[0,0,2,2]
4784 ; SSE2-NEXT: pcmpeqd %xmm4, %xmm8
4785 ; SSE2-NEXT: pshufd {{.*#+}} xmm4 = xmm8[1,1,3,3]
4786 ; SSE2-NEXT: pand %xmm6, %xmm4
4787 ; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm5[1,1,3,3]
4788 ; SSE2-NEXT: por %xmm4, %xmm5
4789 ; SSE2-NEXT: pand %xmm5, %xmm3
4790 ; SSE2-NEXT: pandn %xmm7, %xmm5
4791 ; SSE2-NEXT: por %xmm5, %xmm3
4792 ; SSE2-NEXT: retq
4850 ; SSE2-LABEL: test124:
4851 ; SSE2: # %bb.0: # %entry
4852 ; SSE2-NEXT: movdqa {{.*#+}} xmm8 = [2147483648,2147483648]
4853 ; SSE2-NEXT: movdqa %xmm4, %xmm9
4854 ; SSE2-NEXT: pxor %xmm8, %xmm9
4855 ; SSE2-NEXT: movdqa %xmm0, %xmm10
4856 ; SSE2-NEXT: pxor %xmm8, %xmm10
4857 ; SSE2-NEXT: movdqa %xmm10, %xmm11
4858 ; SSE2-NEXT: pcmpgtd %xmm9, %xmm11
4859 ; SSE2-NEXT: pshufd {{.*#+}} xmm12 = xmm11[0,0,2,2]
4860 ; SSE2-NEXT: pcmpeqd %xmm9, %xmm10
4861 ; SSE2-NEXT: pshufd {{.*#+}} xmm9 = xmm10[1,1,3,3]
4862 ; SSE2-NEXT: pand %xmm12, %xmm9
4863 ; SSE2-NEXT: pshufd {{.*#+}} xmm10 = xmm11[1,1,3,3]
4864 ; SSE2-NEXT: por %xmm9, %xmm10
4865 ; SSE2-NEXT: pand %xmm10, %xmm0
4866 ; SSE2-NEXT: pandn %xmm4, %xmm10
4867 ; SSE2-NEXT: por %xmm10, %xmm0
4868 ; SSE2-NEXT: movdqa %xmm5, %xmm9
4869 ; SSE2-NEXT: pxor %xmm8, %xmm9
4870 ; SSE2-NEXT: movdqa %xmm1, %xmm4
4871 ; SSE2-NEXT: pxor %xmm8, %xmm4
4872 ; SSE2-NEXT: movdqa %xmm4, %xmm10
4873 ; SSE2-NEXT: pcmpgtd %xmm9, %xmm10
4874 ; SSE2-NEXT: pshufd {{.*#+}} xmm11 = xmm10[0,0,2,2]
4875 ; SSE2-NEXT: pcmpeqd %xmm9, %xmm4
4876 ; SSE2-NEXT: pshufd {{.*#+}} xmm9 = xmm4[1,1,3,3]
4877 ; SSE2-NEXT: pand %xmm11, %xmm9
4878 ; SSE2-NEXT: pshufd {{.*#+}} xmm4 = xmm10[1,1,3,3]
4879 ; SSE2-NEXT: por %xmm9, %xmm4
4880 ; SSE2-NEXT: pand %xmm4, %xmm1
4881 ; SSE2-NEXT: pandn %xmm5, %xmm4
4882 ; SSE2-NEXT: por %xmm4, %xmm1
4883 ; SSE2-NEXT: movdqa %xmm6, %xmm4
4884 ; SSE2-NEXT: pxor %xmm8, %xmm4
4885 ; SSE2-NEXT: movdqa %xmm2, %xmm5
4886 ; SSE2-NEXT: pxor %xmm8, %xmm5
4887 ; SSE2-NEXT: movdqa %xmm5, %xmm9
4888 ; SSE2-NEXT: pcmpgtd %xmm4, %xmm9
4889 ; SSE2-NEXT: pshufd {{.*#+}} xmm10 = xmm9[0,0,2,2]
4890 ; SSE2-NEXT: pcmpeqd %xmm4, %xmm5
4891 ; SSE2-NEXT: pshufd {{.*#+}} xmm4 = xmm5[1,1,3,3]
4892 ; SSE2-NEXT: pand %xmm10, %xmm4
4893 ; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm9[1,1,3,3]
4894 ; SSE2-NEXT: por %xmm4, %xmm5
4895 ; SSE2-NEXT: pand %xmm5, %xmm2
4896 ; SSE2-NEXT: pandn %xmm6, %xmm5
4897 ; SSE2-NEXT: por %xmm5, %xmm2
4898 ; SSE2-NEXT: movdqa %xmm7, %xmm4
4899 ; SSE2-NEXT: pxor %xmm8, %xmm4
4900 ; SSE2-NEXT: pxor %xmm3, %xmm8
4901 ; SSE2-NEXT: movdqa %xmm8, %xmm5
4902 ; SSE2-NEXT: pcmpgtd %xmm4, %xmm5
4903 ; SSE2-NEXT: pshufd {{.*#+}} xmm6 = xmm5[0,0,2,2]
4904 ; SSE2-NEXT: pcmpeqd %xmm4, %xmm8
4905 ; SSE2-NEXT: pshufd {{.*#+}} xmm4 = xmm8[1,1,3,3]
4906 ; SSE2-NEXT: pand %xmm6, %xmm4
4907 ; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm5[1,1,3,3]
4908 ; SSE2-NEXT: por %xmm4, %xmm5
4909 ; SSE2-NEXT: pand %xmm5, %xmm3
4910 ; SSE2-NEXT: pandn %xmm7, %xmm5
4911 ; SSE2-NEXT: por %xmm5, %xmm3
4912 ; SSE2-NEXT: retq
4970 ; SSE2-LABEL: test125:
4971 ; SSE2: # %bb.0: # %entry
4972 ; SSE2-NEXT: movdqa {{.*#+}} xmm8 = [9223372039002259456,9223372039002259456]
4973 ; SSE2-NEXT: movdqa %xmm0, %xmm9
4974 ; SSE2-NEXT: pxor %xmm8, %xmm9
4975 ; SSE2-NEXT: movdqa %xmm4, %xmm10
4976 ; SSE2-NEXT: pxor %xmm8, %xmm10
4977 ; SSE2-NEXT: movdqa %xmm10, %xmm11
4978 ; SSE2-NEXT: pcmpgtd %xmm9, %xmm11
4979 ; SSE2-NEXT: pshufd {{.*#+}} xmm12 = xmm11[0,0,2,2]
4980 ; SSE2-NEXT: pcmpeqd %xmm9, %xmm10
4981 ; SSE2-NEXT: pshufd {{.*#+}} xmm9 = xmm10[1,1,3,3]
4982 ; SSE2-NEXT: pand %xmm12, %xmm9
4983 ; SSE2-NEXT: pshufd {{.*#+}} xmm10 = xmm11[1,1,3,3]
4984 ; SSE2-NEXT: por %xmm9, %xmm10
4985 ; SSE2-NEXT: pand %xmm10, %xmm0
4986 ; SSE2-NEXT: pandn %xmm4, %xmm10
4987 ; SSE2-NEXT: por %xmm10, %xmm0
4988 ; SSE2-NEXT: movdqa %xmm1, %xmm9
4989 ; SSE2-NEXT: pxor %xmm8, %xmm9
4990 ; SSE2-NEXT: movdqa %xmm5, %xmm4
4991 ; SSE2-NEXT: pxor %xmm8, %xmm4
4992 ; SSE2-NEXT: movdqa %xmm4, %xmm10
4993 ; SSE2-NEXT: pcmpgtd %xmm9, %xmm10
4994 ; SSE2-NEXT: pshufd {{.*#+}} xmm11 = xmm10[0,0,2,2]
4995 ; SSE2-NEXT: pcmpeqd %xmm9, %xmm4
4996 ; SSE2-NEXT: pshufd {{.*#+}} xmm9 = xmm4[1,1,3,3]
4997 ; SSE2-NEXT: pand %xmm11, %xmm9
4998 ; SSE2-NEXT: pshufd {{.*#+}} xmm4 = xmm10[1,1,3,3]
4999 ; SSE2-NEXT: por %xmm9, %xmm4
5000 ; SSE2-NEXT: pand %xmm4, %xmm1
5001 ; SSE2-NEXT: pandn %xmm5, %xmm4
5002 ; SSE2-NEXT: por %xmm4, %xmm1
5003 ; SSE2-NEXT: movdqa %xmm2, %xmm4
5004 ; SSE2-NEXT: pxor %xmm8, %xmm4
5005 ; SSE2-NEXT: movdqa %xmm6, %xmm5
5006 ; SSE2-NEXT: pxor %xmm8, %xmm5
5007 ; SSE2-NEXT: movdqa %xmm5, %xmm9
5008 ; SSE2-NEXT: pcmpgtd %xmm4, %xmm9
5009 ; SSE2-NEXT: pshufd {{.*#+}} xmm10 = xmm9[0,0,2,2]
5010 ; SSE2-NEXT: pcmpeqd %xmm4, %xmm5
5011 ; SSE2-NEXT: pshufd {{.*#+}} xmm4 = xmm5[1,1,3,3]
5012 ; SSE2-NEXT: pand %xmm10, %xmm4
5013 ; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm9[1,1,3,3]
5014 ; SSE2-NEXT: por %xmm4, %xmm5
5015 ; SSE2-NEXT: pand %xmm5, %xmm2
5016 ; SSE2-NEXT: pandn %xmm6, %xmm5
5017 ; SSE2-NEXT: por %xmm5, %xmm2
5018 ; SSE2-NEXT: movdqa %xmm3, %xmm4
5019 ; SSE2-NEXT: pxor %xmm8, %xmm4
5020 ; SSE2-NEXT: pxor %xmm7, %xmm8
5021 ; SSE2-NEXT: movdqa %xmm8, %xmm5
5022 ; SSE2-NEXT: pcmpgtd %xmm4, %xmm5
5023 ; SSE2-NEXT: pshufd {{.*#+}} xmm6 = xmm5[0,0,2,2]
5024 ; SSE2-NEXT: pcmpeqd %xmm4, %xmm8
5025 ; SSE2-NEXT: pshufd {{.*#+}} xmm4 = xmm8[1,1,3,3]
5026 ; SSE2-NEXT: pand %xmm6, %xmm4
5027 ; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm5[1,1,3,3]
5028 ; SSE2-NEXT: por %xmm4, %xmm5
5029 ; SSE2-NEXT: pand %xmm5, %xmm3
5030 ; SSE2-NEXT: pandn %xmm7, %xmm5
5031 ; SSE2-NEXT: por %xmm5, %xmm3
5032 ; SSE2-NEXT: retq
5120 ; SSE2-LABEL: test126:
5121 ; SSE2: # %bb.0: # %entry
5122 ; SSE2-NEXT: movdqa {{.*#+}} xmm8 = [9223372039002259456,9223372039002259456]
5123 ; SSE2-NEXT: movdqa %xmm0, %xmm9
5124 ; SSE2-NEXT: pxor %xmm8, %xmm9
5125 ; SSE2-NEXT: movdqa %xmm4, %xmm10
5126 ; SSE2-NEXT: pxor %xmm8, %xmm10
5127 ; SSE2-NEXT: movdqa %xmm10, %xmm11
5128 ; SSE2-NEXT: pcmpgtd %xmm9, %xmm11
5129 ; SSE2-NEXT: pshufd {{.*#+}} xmm12 = xmm11[0,0,2,2]
5130 ; SSE2-NEXT: pcmpeqd %xmm9, %xmm10
5131 ; SSE2-NEXT: pshufd {{.*#+}} xmm9 = xmm10[1,1,3,3]
5132 ; SSE2-NEXT: pand %xmm12, %xmm9
5133 ; SSE2-NEXT: pshufd {{.*#+}} xmm10 = xmm11[1,1,3,3]
5134 ; SSE2-NEXT: por %xmm9, %xmm10
5135 ; SSE2-NEXT: pand %xmm10, %xmm0
5136 ; SSE2-NEXT: pandn %xmm4, %xmm10
5137 ; SSE2-NEXT: por %xmm10, %xmm0
5138 ; SSE2-NEXT: movdqa %xmm1, %xmm9
5139 ; SSE2-NEXT: pxor %xmm8, %xmm9
5140 ; SSE2-NEXT: movdqa %xmm5, %xmm4
5141 ; SSE2-NEXT: pxor %xmm8, %xmm4
5142 ; SSE2-NEXT: movdqa %xmm4, %xmm10
5143 ; SSE2-NEXT: pcmpgtd %xmm9, %xmm10
5144 ; SSE2-NEXT: pshufd {{.*#+}} xmm11 = xmm10[0,0,2,2]
5145 ; SSE2-NEXT: pcmpeqd %xmm9, %xmm4
5146 ; SSE2-NEXT: pshufd {{.*#+}} xmm9 = xmm4[1,1,3,3]
5147 ; SSE2-NEXT: pand %xmm11, %xmm9
5148 ; SSE2-NEXT: pshufd {{.*#+}} xmm4 = xmm10[1,1,3,3]
5149 ; SSE2-NEXT: por %xmm9, %xmm4
5150 ; SSE2-NEXT: pand %xmm4, %xmm1
5151 ; SSE2-NEXT: pandn %xmm5, %xmm4
5152 ; SSE2-NEXT: por %xmm4, %xmm1
5153 ; SSE2-NEXT: movdqa %xmm2, %xmm4
5154 ; SSE2-NEXT: pxor %xmm8, %xmm4
5155 ; SSE2-NEXT: movdqa %xmm6, %xmm5
5156 ; SSE2-NEXT: pxor %xmm8, %xmm5
5157 ; SSE2-NEXT: movdqa %xmm5, %xmm9
5158 ; SSE2-NEXT: pcmpgtd %xmm4, %xmm9
5159 ; SSE2-NEXT: pshufd {{.*#+}} xmm10 = xmm9[0,0,2,2]
5160 ; SSE2-NEXT: pcmpeqd %xmm4, %xmm5
5161 ; SSE2-NEXT: pshufd {{.*#+}} xmm4 = xmm5[1,1,3,3]
5162 ; SSE2-NEXT: pand %xmm10, %xmm4
5163 ; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm9[1,1,3,3]
5164 ; SSE2-NEXT: por %xmm4, %xmm5
5165 ; SSE2-NEXT: pand %xmm5, %xmm2
5166 ; SSE2-NEXT: pandn %xmm6, %xmm5
5167 ; SSE2-NEXT: por %xmm5, %xmm2
5168 ; SSE2-NEXT: movdqa %xmm3, %xmm4
5169 ; SSE2-NEXT: pxor %xmm8, %xmm4
5170 ; SSE2-NEXT: pxor %xmm7, %xmm8
5171 ; SSE2-NEXT: movdqa %xmm8, %xmm5
5172 ; SSE2-NEXT: pcmpgtd %xmm4, %xmm5
5173 ; SSE2-NEXT: pshufd {{.*#+}} xmm6 = xmm5[0,0,2,2]
5174 ; SSE2-NEXT: pcmpeqd %xmm4, %xmm8
5175 ; SSE2-NEXT: pshufd {{.*#+}} xmm4 = xmm8[1,1,3,3]
5176 ; SSE2-NEXT: pand %xmm6, %xmm4
5177 ; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm5[1,1,3,3]
5178 ; SSE2-NEXT: por %xmm4, %xmm5
5179 ; SSE2-NEXT: pand %xmm5, %xmm3
5180 ; SSE2-NEXT: pandn %xmm7, %xmm5
5181 ; SSE2-NEXT: por %xmm5, %xmm3
5182 ; SSE2-NEXT: retq
5270 ; SSE2-LABEL: test127:
5271 ; SSE2: # %bb.0: # %entry
5272 ; SSE2-NEXT: movdqa {{.*#+}} xmm8 = [9223372039002259456,9223372039002259456]
5273 ; SSE2-NEXT: movdqa %xmm4, %xmm9
5274 ; SSE2-NEXT: pxor %xmm8, %xmm9
5275 ; SSE2-NEXT: movdqa %xmm0, %xmm10
5276 ; SSE2-NEXT: pxor %xmm8, %xmm10
5277 ; SSE2-NEXT: movdqa %xmm10, %xmm11
5278 ; SSE2-NEXT: pcmpgtd %xmm9, %xmm11
5279 ; SSE2-NEXT: pshufd {{.*#+}} xmm12 = xmm11[0,0,2,2]
5280 ; SSE2-NEXT: pcmpeqd %xmm9, %xmm10
5281 ; SSE2-NEXT: pshufd {{.*#+}} xmm9 = xmm10[1,1,3,3]
5282 ; SSE2-NEXT: pand %xmm12, %xmm9
5283 ; SSE2-NEXT: pshufd {{.*#+}} xmm10 = xmm11[1,1,3,3]
5284 ; SSE2-NEXT: por %xmm9, %xmm10
5285 ; SSE2-NEXT: pand %xmm10, %xmm0
5286 ; SSE2-NEXT: pandn %xmm4, %xmm10
5287 ; SSE2-NEXT: por %xmm10, %xmm0
5288 ; SSE2-NEXT: movdqa %xmm5, %xmm9
5289 ; SSE2-NEXT: pxor %xmm8, %xmm9
5290 ; SSE2-NEXT: movdqa %xmm1, %xmm4
5291 ; SSE2-NEXT: pxor %xmm8, %xmm4
5292 ; SSE2-NEXT: movdqa %xmm4, %xmm10
5293 ; SSE2-NEXT: pcmpgtd %xmm9, %xmm10
5294 ; SSE2-NEXT: pshufd {{.*#+}} xmm11 = xmm10[0,0,2,2]
5295 ; SSE2-NEXT: pcmpeqd %xmm9, %xmm4
5296 ; SSE2-NEXT: pshufd {{.*#+}} xmm9 = xmm4[1,1,3,3]
5297 ; SSE2-NEXT: pand %xmm11, %xmm9
5298 ; SSE2-NEXT: pshufd {{.*#+}} xmm4 = xmm10[1,1,3,3]
5299 ; SSE2-NEXT: por %xmm9, %xmm4
5300 ; SSE2-NEXT: pand %xmm4, %xmm1
5301 ; SSE2-NEXT: pandn %xmm5, %xmm4
5302 ; SSE2-NEXT: por %xmm4, %xmm1
5303 ; SSE2-NEXT: movdqa %xmm6, %xmm4
5304 ; SSE2-NEXT: pxor %xmm8, %xmm4
5305 ; SSE2-NEXT: movdqa %xmm2, %xmm5
5306 ; SSE2-NEXT: pxor %xmm8, %xmm5
5307 ; SSE2-NEXT: movdqa %xmm5, %xmm9
5308 ; SSE2-NEXT: pcmpgtd %xmm4, %xmm9
5309 ; SSE2-NEXT: pshufd {{.*#+}} xmm10 = xmm9[0,0,2,2]
5310 ; SSE2-NEXT: pcmpeqd %xmm4, %xmm5
5311 ; SSE2-NEXT: pshufd {{.*#+}} xmm4 = xmm5[1,1,3,3]
5312 ; SSE2-NEXT: pand %xmm10, %xmm4
5313 ; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm9[1,1,3,3]
5314 ; SSE2-NEXT: por %xmm4, %xmm5
5315 ; SSE2-NEXT: pand %xmm5, %xmm2
5316 ; SSE2-NEXT: pandn %xmm6, %xmm5
5317 ; SSE2-NEXT: por %xmm5, %xmm2
5318 ; SSE2-NEXT: movdqa %xmm7, %xmm4
5319 ; SSE2-NEXT: pxor %xmm8, %xmm4
5320 ; SSE2-NEXT: pxor %xmm3, %xmm8
5321 ; SSE2-NEXT: movdqa %xmm8, %xmm5
5322 ; SSE2-NEXT: pcmpgtd %xmm4, %xmm5
5323 ; SSE2-NEXT: pshufd {{.*#+}} xmm6 = xmm5[0,0,2,2]
5324 ; SSE2-NEXT: pcmpeqd %xmm4, %xmm8
5325 ; SSE2-NEXT: pshufd {{.*#+}} xmm4 = xmm8[1,1,3,3]
5326 ; SSE2-NEXT: pand %xmm6, %xmm4
5327 ; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm5[1,1,3,3]
5328 ; SSE2-NEXT: por %xmm4, %xmm5
5329 ; SSE2-NEXT: pand %xmm5, %xmm3
5330 ; SSE2-NEXT: pandn %xmm7, %xmm5
5331 ; SSE2-NEXT: por %xmm5, %xmm3
5332 ; SSE2-NEXT: retq
5419 ; SSE2-LABEL: test128:
5420 ; SSE2: # %bb.0: # %entry
5421 ; SSE2-NEXT: movdqa {{.*#+}} xmm8 = [9223372039002259456,9223372039002259456]
5422 ; SSE2-NEXT: movdqa %xmm4, %xmm9
5423 ; SSE2-NEXT: pxor %xmm8, %xmm9
5424 ; SSE2-NEXT: movdqa %xmm0, %xmm10
5425 ; SSE2-NEXT: pxor %xmm8, %xmm10
5426 ; SSE2-NEXT: movdqa %xmm10, %xmm11
5427 ; SSE2-NEXT: pcmpgtd %xmm9, %xmm11
5428 ; SSE2-NEXT: pshufd {{.*#+}} xmm12 = xmm11[0,0,2,2]
5429 ; SSE2-NEXT: pcmpeqd %xmm9, %xmm10
5430 ; SSE2-NEXT: pshufd {{.*#+}} xmm9 = xmm10[1,1,3,3]
5431 ; SSE2-NEXT: pand %xmm12, %xmm9
5432 ; SSE2-NEXT: pshufd {{.*#+}} xmm10 = xmm11[1,1,3,3]
5433 ; SSE2-NEXT: por %xmm9, %xmm10
5434 ; SSE2-NEXT: pand %xmm10, %xmm0
5435 ; SSE2-NEXT: pandn %xmm4, %xmm10
5436 ; SSE2-NEXT: por %xmm10, %xmm0
5437 ; SSE2-NEXT: movdqa %xmm5, %xmm9
5438 ; SSE2-NEXT: pxor %xmm8, %xmm9
5439 ; SSE2-NEXT: movdqa %xmm1, %xmm4
5440 ; SSE2-NEXT: pxor %xmm8, %xmm4
5441 ; SSE2-NEXT: movdqa %xmm4, %xmm10
5442 ; SSE2-NEXT: pcmpgtd %xmm9, %xmm10
5443 ; SSE2-NEXT: pshufd {{.*#+}} xmm11 = xmm10[0,0,2,2]
5444 ; SSE2-NEXT: pcmpeqd %xmm9, %xmm4
5445 ; SSE2-NEXT: pshufd {{.*#+}} xmm9 = xmm4[1,1,3,3]
5446 ; SSE2-NEXT: pand %xmm11, %xmm9
5447 ; SSE2-NEXT: pshufd {{.*#+}} xmm4 = xmm10[1,1,3,3]
5448 ; SSE2-NEXT: por %xmm9, %xmm4
5449 ; SSE2-NEXT: pand %xmm4, %xmm1
5450 ; SSE2-NEXT: pandn %xmm5, %xmm4
5451 ; SSE2-NEXT: por %xmm4, %xmm1
5452 ; SSE2-NEXT: movdqa %xmm6, %xmm4
5453 ; SSE2-NEXT: pxor %xmm8, %xmm4
5454 ; SSE2-NEXT: movdqa %xmm2, %xmm5
5455 ; SSE2-NEXT: pxor %xmm8, %xmm5
5456 ; SSE2-NEXT: movdqa %xmm5, %xmm9
5457 ; SSE2-NEXT: pcmpgtd %xmm4, %xmm9
5458 ; SSE2-NEXT: pshufd {{.*#+}} xmm10 = xmm9[0,0,2,2]
5459 ; SSE2-NEXT: pcmpeqd %xmm4, %xmm5
5460 ; SSE2-NEXT: pshufd {{.*#+}} xmm4 = xmm5[1,1,3,3]
5461 ; SSE2-NEXT: pand %xmm10, %xmm4
5462 ; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm9[1,1,3,3]
5463 ; SSE2-NEXT: por %xmm4, %xmm5
5464 ; SSE2-NEXT: pand %xmm5, %xmm2
5465 ; SSE2-NEXT: pandn %xmm6, %xmm5
5466 ; SSE2-NEXT: por %xmm5, %xmm2
5467 ; SSE2-NEXT: movdqa %xmm7, %xmm4
5468 ; SSE2-NEXT: pxor %xmm8, %xmm4
5469 ; SSE2-NEXT: pxor %xmm3, %xmm8
5470 ; SSE2-NEXT: movdqa %xmm8, %xmm5
5471 ; SSE2-NEXT: pcmpgtd %xmm4, %xmm5
5472 ; SSE2-NEXT: pshufd {{.*#+}} xmm6 = xmm5[0,0,2,2]
5473 ; SSE2-NEXT: pcmpeqd %xmm4, %xmm8
5474 ; SSE2-NEXT: pshufd {{.*#+}} xmm4 = xmm8[1,1,3,3]
5475 ; SSE2-NEXT: pand %xmm6, %xmm4
5476 ; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm5[1,1,3,3]
5477 ; SSE2-NEXT: por %xmm4, %xmm5
5478 ; SSE2-NEXT: pand %xmm5, %xmm3
5479 ; SSE2-NEXT: pandn %xmm7, %xmm5
5480 ; SSE2-NEXT: por %xmm5, %xmm3
5481 ; SSE2-NEXT: retq
5568 ; SSE2-LABEL: test129:
5569 ; SSE2: # %bb.0: # %entry
5570 ; SSE2-NEXT: movdqa %xmm0, %xmm8
5571 ; SSE2-NEXT: pcmpgtb %xmm4, %xmm8
5572 ; SSE2-NEXT: pand %xmm8, %xmm0
5573 ; SSE2-NEXT: pandn %xmm4, %xmm8
5574 ; SSE2-NEXT: por %xmm8, %xmm0
5575 ; SSE2-NEXT: movdqa %xmm1, %xmm4
5576 ; SSE2-NEXT: pcmpgtb %xmm5, %xmm4
5577 ; SSE2-NEXT: pand %xmm4, %xmm1
5578 ; SSE2-NEXT: pandn %xmm5, %xmm4
5579 ; SSE2-NEXT: por %xmm4, %xmm1
5580 ; SSE2-NEXT: movdqa %xmm2, %xmm4
5581 ; SSE2-NEXT: pcmpgtb %xmm6, %xmm4
5582 ; SSE2-NEXT: pand %xmm4, %xmm2
5583 ; SSE2-NEXT: pandn %xmm6, %xmm4
5584 ; SSE2-NEXT: por %xmm4, %xmm2
5585 ; SSE2-NEXT: movdqa %xmm3, %xmm4
5586 ; SSE2-NEXT: pcmpgtb %xmm7, %xmm4
5587 ; SSE2-NEXT: pand %xmm4, %xmm3
5588 ; SSE2-NEXT: pandn %xmm7, %xmm4
5589 ; SSE2-NEXT: por %xmm4, %xmm3
5590 ; SSE2-NEXT: retq
5640 ; SSE2-LABEL: test130:
5641 ; SSE2: # %bb.0: # %entry
5642 ; SSE2-NEXT: movdqa %xmm0, %xmm8
5643 ; SSE2-NEXT: pcmpgtb %xmm4, %xmm8
5644 ; SSE2-NEXT: pand %xmm8, %xmm0
5645 ; SSE2-NEXT: pandn %xmm4, %xmm8
5646 ; SSE2-NEXT: por %xmm8, %xmm0
5647 ; SSE2-NEXT: movdqa %xmm1, %xmm4
5648 ; SSE2-NEXT: pcmpgtb %xmm5, %xmm4
5649 ; SSE2-NEXT: pand %xmm4, %xmm1
5650 ; SSE2-NEXT: pandn %xmm5, %xmm4
5651 ; SSE2-NEXT: por %xmm4, %xmm1
5652 ; SSE2-NEXT: movdqa %xmm2, %xmm4
5653 ; SSE2-NEXT: pcmpgtb %xmm6, %xmm4
5654 ; SSE2-NEXT: pand %xmm4, %xmm2
5655 ; SSE2-NEXT: pandn %xmm6, %xmm4
5656 ; SSE2-NEXT: por %xmm4, %xmm2
5657 ; SSE2-NEXT: movdqa %xmm3, %xmm4
5658 ; SSE2-NEXT: pcmpgtb %xmm7, %xmm4
5659 ; SSE2-NEXT: pand %xmm4, %xmm3
5660 ; SSE2-NEXT: pandn %xmm7, %xmm4
5661 ; SSE2-NEXT: por %xmm4, %xmm3
5662 ; SSE2-NEXT: retq
5712 ; SSE2-LABEL: test131:
5713 ; SSE2: # %bb.0: # %entry
5714 ; SSE2-NEXT: movdqa %xmm4, %xmm8
5715 ; SSE2-NEXT: pcmpgtb %xmm0, %xmm8
5716 ; SSE2-NEXT: pand %xmm8, %xmm0
5717 ; SSE2-NEXT: pandn %xmm4, %xmm8
5718 ; SSE2-NEXT: por %xmm8, %xmm0
5719 ; SSE2-NEXT: movdqa %xmm5, %xmm4
5720 ; SSE2-NEXT: pcmpgtb %xmm1, %xmm4
5721 ; SSE2-NEXT: pand %xmm4, %xmm1
5722 ; SSE2-NEXT: pandn %xmm5, %xmm4
5723 ; SSE2-NEXT: por %xmm4, %xmm1
5724 ; SSE2-NEXT: movdqa %xmm6, %xmm4
5725 ; SSE2-NEXT: pcmpgtb %xmm2, %xmm4
5726 ; SSE2-NEXT: pand %xmm4, %xmm2
5727 ; SSE2-NEXT: pandn %xmm6, %xmm4
5728 ; SSE2-NEXT: por %xmm4, %xmm2
5729 ; SSE2-NEXT: movdqa %xmm7, %xmm4
5730 ; SSE2-NEXT: pcmpgtb %xmm3, %xmm4
5731 ; SSE2-NEXT: pand %xmm4, %xmm3
5732 ; SSE2-NEXT: pandn %xmm7, %xmm4
5733 ; SSE2-NEXT: por %xmm4, %xmm3
5734 ; SSE2-NEXT: retq
5784 ; SSE2-LABEL: test132:
5785 ; SSE2: # %bb.0: # %entry
5786 ; SSE2-NEXT: movdqa %xmm4, %xmm8
5787 ; SSE2-NEXT: pcmpgtb %xmm0, %xmm8
5788 ; SSE2-NEXT: pand %xmm8, %xmm0
5789 ; SSE2-NEXT: pandn %xmm4, %xmm8
5790 ; SSE2-NEXT: por %xmm8, %xmm0
5791 ; SSE2-NEXT: movdqa %xmm5, %xmm4
5792 ; SSE2-NEXT: pcmpgtb %xmm1, %xmm4
5793 ; SSE2-NEXT: pand %xmm4, %xmm1
5794 ; SSE2-NEXT: pandn %xmm5, %xmm4
5795 ; SSE2-NEXT: por %xmm4, %xmm1
5796 ; SSE2-NEXT: movdqa %xmm6, %xmm4
5797 ; SSE2-NEXT: pcmpgtb %xmm2, %xmm4
5798 ; SSE2-NEXT: pand %xmm4, %xmm2
5799 ; SSE2-NEXT: pandn %xmm6, %xmm4
5800 ; SSE2-NEXT: por %xmm4, %xmm2
5801 ; SSE2-NEXT: movdqa %xmm7, %xmm4
5802 ; SSE2-NEXT: pcmpgtb %xmm3, %xmm4
5803 ; SSE2-NEXT: pand %xmm4, %xmm3
5804 ; SSE2-NEXT: pandn %xmm7, %xmm4
5805 ; SSE2-NEXT: por %xmm4, %xmm3
5806 ; SSE2-NEXT: retq
6240 ; SSE2-LABEL: test141:
6241 ; SSE2: # %bb.0: # %entry
6242 ; SSE2-NEXT: psubusw %xmm0, %xmm4
6243 ; SSE2-NEXT: paddw %xmm4, %xmm0
6244 ; SSE2-NEXT: psubusw %xmm1, %xmm5
6245 ; SSE2-NEXT: paddw %xmm5, %xmm1
6246 ; SSE2-NEXT: psubusw %xmm2, %xmm6
6247 ; SSE2-NEXT: paddw %xmm6, %xmm2
6248 ; SSE2-NEXT: psubusw %xmm3, %xmm7
6249 ; SSE2-NEXT: paddw %xmm7, %xmm3
6250 ; SSE2-NEXT: retq
6300 ; SSE2-LABEL: test142:
6301 ; SSE2: # %bb.0: # %entry
6302 ; SSE2-NEXT: psubusw %xmm0, %xmm4
6303 ; SSE2-NEXT: paddw %xmm4, %xmm0
6304 ; SSE2-NEXT: psubusw %xmm1, %xmm5
6305 ; SSE2-NEXT: paddw %xmm5, %xmm1
6306 ; SSE2-NEXT: psubusw %xmm2, %xmm6
6307 ; SSE2-NEXT: paddw %xmm6, %xmm2
6308 ; SSE2-NEXT: psubusw %xmm3, %xmm7
6309 ; SSE2-NEXT: paddw %xmm7, %xmm3
6310 ; SSE2-NEXT: retq
6360 ; SSE2-LABEL: test143:
6361 ; SSE2: # %bb.0: # %entry
6362 ; SSE2-NEXT: movdqa %xmm0, %xmm8
6363 ; SSE2-NEXT: psubusw %xmm4, %xmm8
6364 ; SSE2-NEXT: psubw %xmm8, %xmm0
6365 ; SSE2-NEXT: movdqa %xmm1, %xmm4
6366 ; SSE2-NEXT: psubusw %xmm5, %xmm4
6367 ; SSE2-NEXT: psubw %xmm4, %xmm1
6368 ; SSE2-NEXT: movdqa %xmm2, %xmm4
6369 ; SSE2-NEXT: psubusw %xmm6, %xmm4
6370 ; SSE2-NEXT: psubw %xmm4, %xmm2
6371 ; SSE2-NEXT: movdqa %xmm3, %xmm4
6372 ; SSE2-NEXT: psubusw %xmm7, %xmm4
6373 ; SSE2-NEXT: psubw %xmm4, %xmm3
6374 ; SSE2-NEXT: retq
6424 ; SSE2-LABEL: test144:
6425 ; SSE2: # %bb.0: # %entry
6426 ; SSE2-NEXT: movdqa %xmm0, %xmm8
6427 ; SSE2-NEXT: psubusw %xmm4, %xmm8
6428 ; SSE2-NEXT: psubw %xmm8, %xmm0
6429 ; SSE2-NEXT: movdqa %xmm1, %xmm4
6430 ; SSE2-NEXT: psubusw %xmm5, %xmm4
6431 ; SSE2-NEXT: psubw %xmm4, %xmm1
6432 ; SSE2-NEXT: movdqa %xmm2, %xmm4
6433 ; SSE2-NEXT: psubusw %xmm6, %xmm4
6434 ; SSE2-NEXT: psubw %xmm4, %xmm2
6435 ; SSE2-NEXT: movdqa %xmm3, %xmm4
6436 ; SSE2-NEXT: psubusw %xmm7, %xmm4
6437 ; SSE2-NEXT: psubw %xmm4, %xmm3
6438 ; SSE2-NEXT: retq
6488 ; SSE2-LABEL: test145:
6489 ; SSE2: # %bb.0: # %entry
6490 ; SSE2-NEXT: movdqa %xmm0, %xmm8
6491 ; SSE2-NEXT: pcmpgtd %xmm4, %xmm8
6492 ; SSE2-NEXT: pand %xmm8, %xmm0
6493 ; SSE2-NEXT: pandn %xmm4, %xmm8
6494 ; SSE2-NEXT: por %xmm8, %xmm0
6495 ; SSE2-NEXT: movdqa %xmm1, %xmm4
6496 ; SSE2-NEXT: pcmpgtd %xmm5, %xmm4
6497 ; SSE2-NEXT: pand %xmm4, %xmm1
6498 ; SSE2-NEXT: pandn %xmm5, %xmm4
6499 ; SSE2-NEXT: por %xmm4, %xmm1
6500 ; SSE2-NEXT: movdqa %xmm2, %xmm4
6501 ; SSE2-NEXT: pcmpgtd %xmm6, %xmm4
6502 ; SSE2-NEXT: pand %xmm4, %xmm2
6503 ; SSE2-NEXT: pandn %xmm6, %xmm4
6504 ; SSE2-NEXT: por %xmm4, %xmm2
6505 ; SSE2-NEXT: movdqa %xmm3, %xmm4
6506 ; SSE2-NEXT: pcmpgtd %xmm7, %xmm4
6507 ; SSE2-NEXT: pand %xmm4, %xmm3
6508 ; SSE2-NEXT: pandn %xmm7, %xmm4
6509 ; SSE2-NEXT: por %xmm4, %xmm3
6510 ; SSE2-NEXT: retq
6551 ; SSE2-LABEL: test146:
6552 ; SSE2: # %bb.0: # %entry
6553 ; SSE2-NEXT: movdqa %xmm0, %xmm8
6554 ; SSE2-NEXT: pcmpgtd %xmm4, %xmm8
6555 ; SSE2-NEXT: pand %xmm8, %xmm0
6556 ; SSE2-NEXT: pandn %xmm4, %xmm8
6557 ; SSE2-NEXT: por %xmm8, %xmm0
6558 ; SSE2-NEXT: movdqa %xmm1, %xmm4
6559 ; SSE2-NEXT: pcmpgtd %xmm5, %xmm4
6560 ; SSE2-NEXT: pand %xmm4, %xmm1
6561 ; SSE2-NEXT: pandn %xmm5, %xmm4
6562 ; SSE2-NEXT: por %xmm4, %xmm1
6563 ; SSE2-NEXT: movdqa %xmm2, %xmm4
6564 ; SSE2-NEXT: pcmpgtd %xmm6, %xmm4
6565 ; SSE2-NEXT: pand %xmm4, %xmm2
6566 ; SSE2-NEXT: pandn %xmm6, %xmm4
6567 ; SSE2-NEXT: por %xmm4, %xmm2
6568 ; SSE2-NEXT: movdqa %xmm3, %xmm4
6569 ; SSE2-NEXT: pcmpgtd %xmm7, %xmm4
6570 ; SSE2-NEXT: pand %xmm4, %xmm3
6571 ; SSE2-NEXT: pandn %xmm7, %xmm4
6572 ; SSE2-NEXT: por %xmm4, %xmm3
6573 ; SSE2-NEXT: retq
6614 ; SSE2-LABEL: test147:
6615 ; SSE2: # %bb.0: # %entry
6616 ; SSE2-NEXT: movdqa %xmm4, %xmm8
6617 ; SSE2-NEXT: pcmpgtd %xmm0, %xmm8
6618 ; SSE2-NEXT: pand %xmm8, %xmm0
6619 ; SSE2-NEXT: pandn %xmm4, %xmm8
6620 ; SSE2-NEXT: por %xmm8, %xmm0
6621 ; SSE2-NEXT: movdqa %xmm5, %xmm4
6622 ; SSE2-NEXT: pcmpgtd %xmm1, %xmm4
6623 ; SSE2-NEXT: pand %xmm4, %xmm1
6624 ; SSE2-NEXT: pandn %xmm5, %xmm4
6625 ; SSE2-NEXT: por %xmm4, %xmm1
6626 ; SSE2-NEXT: movdqa %xmm6, %xmm4
6627 ; SSE2-NEXT: pcmpgtd %xmm2, %xmm4
6628 ; SSE2-NEXT: pand %xmm4, %xmm2
6629 ; SSE2-NEXT: pandn %xmm6, %xmm4
6630 ; SSE2-NEXT: por %xmm4, %xmm2
6631 ; SSE2-NEXT: movdqa %xmm7, %xmm4
6632 ; SSE2-NEXT: pcmpgtd %xmm3, %xmm4
6633 ; SSE2-NEXT: pand %xmm4, %xmm3
6634 ; SSE2-NEXT: pandn %xmm7, %xmm4
6635 ; SSE2-NEXT: por %xmm4, %xmm3
6636 ; SSE2-NEXT: retq
6677 ; SSE2-LABEL: test148:
6678 ; SSE2: # %bb.0: # %entry
6679 ; SSE2-NEXT: movdqa %xmm4, %xmm8
6680 ; SSE2-NEXT: pcmpgtd %xmm0, %xmm8
6681 ; SSE2-NEXT: pand %xmm8, %xmm0
6682 ; SSE2-NEXT: pandn %xmm4, %xmm8
6683 ; SSE2-NEXT: por %xmm8, %xmm0
6684 ; SSE2-NEXT: movdqa %xmm5, %xmm4
6685 ; SSE2-NEXT: pcmpgtd %xmm1, %xmm4
6686 ; SSE2-NEXT: pand %xmm4, %xmm1
6687 ; SSE2-NEXT: pandn %xmm5, %xmm4
6688 ; SSE2-NEXT: por %xmm4, %xmm1
6689 ; SSE2-NEXT: movdqa %xmm6, %xmm4
6690 ; SSE2-NEXT: pcmpgtd %xmm2, %xmm4
6691 ; SSE2-NEXT: pand %xmm4, %xmm2
6692 ; SSE2-NEXT: pandn %xmm6, %xmm4
6693 ; SSE2-NEXT: por %xmm4, %xmm2
6694 ; SSE2-NEXT: movdqa %xmm7, %xmm4
6695 ; SSE2-NEXT: pcmpgtd %xmm3, %xmm4
6696 ; SSE2-NEXT: pand %xmm4, %xmm3
6697 ; SSE2-NEXT: pandn %xmm7, %xmm4
6698 ; SSE2-NEXT: por %xmm4, %xmm3
6699 ; SSE2-NEXT: retq
6740 ; SSE2-LABEL: test149:
6741 ; SSE2: # %bb.0: # %entry
6742 ; SSE2-NEXT: movdqa {{.*#+}} xmm8 = [2147483648,2147483648,2147483648,2147483648]
6743 ; SSE2-NEXT: movdqa %xmm4, %xmm9
6744 ; SSE2-NEXT: pxor %xmm8, %xmm9
6745 ; SSE2-NEXT: movdqa %xmm0, %xmm10
6746 ; SSE2-NEXT: pxor %xmm8, %xmm10
6747 ; SSE2-NEXT: pcmpgtd %xmm9, %xmm10
6748 ; SSE2-NEXT: pand %xmm10, %xmm0
6749 ; SSE2-NEXT: pandn %xmm4, %xmm10
6750 ; SSE2-NEXT: por %xmm10, %xmm0
6751 ; SSE2-NEXT: movdqa %xmm5, %xmm9
6752 ; SSE2-NEXT: pxor %xmm8, %xmm9
6753 ; SSE2-NEXT: movdqa %xmm1, %xmm4
6754 ; SSE2-NEXT: pxor %xmm8, %xmm4
6755 ; SSE2-NEXT: pcmpgtd %xmm9, %xmm4
6756 ; SSE2-NEXT: pand %xmm4, %xmm1
6757 ; SSE2-NEXT: pandn %xmm5, %xmm4
6758 ; SSE2-NEXT: por %xmm4, %xmm1
6759 ; SSE2-NEXT: movdqa %xmm6, %xmm4
6760 ; SSE2-NEXT: pxor %xmm8, %xmm4
6761 ; SSE2-NEXT: movdqa %xmm2, %xmm5
6762 ; SSE2-NEXT: pxor %xmm8, %xmm5
6763 ; SSE2-NEXT: pcmpgtd %xmm4, %xmm5
6764 ; SSE2-NEXT: pand %xmm5, %xmm2
6765 ; SSE2-NEXT: pandn %xmm6, %xmm5
6766 ; SSE2-NEXT: por %xmm5, %xmm2
6767 ; SSE2-NEXT: movdqa %xmm7, %xmm4
6768 ; SSE2-NEXT: pxor %xmm8, %xmm4
6769 ; SSE2-NEXT: pxor %xmm3, %xmm8
6770 ; SSE2-NEXT: pcmpgtd %xmm4, %xmm8
6771 ; SSE2-NEXT: pand %xmm8, %xmm3
6772 ; SSE2-NEXT: pandn %xmm7, %xmm8
6773 ; SSE2-NEXT: por %xmm8, %xmm3
6774 ; SSE2-NEXT: retq
6815 ; SSE2-LABEL: test150:
6816 ; SSE2: # %bb.0: # %entry
6817 ; SSE2-NEXT: movdqa {{.*#+}} xmm8 = [2147483648,2147483648,2147483648,2147483648]
6818 ; SSE2-NEXT: movdqa %xmm4, %xmm9
6819 ; SSE2-NEXT: pxor %xmm8, %xmm9
6820 ; SSE2-NEXT: movdqa %xmm0, %xmm10
6821 ; SSE2-NEXT: pxor %xmm8, %xmm10
6822 ; SSE2-NEXT: pcmpgtd %xmm9, %xmm10
6823 ; SSE2-NEXT: pand %xmm10, %xmm0
6824 ; SSE2-NEXT: pandn %xmm4, %xmm10
6825 ; SSE2-NEXT: por %xmm10, %xmm0
6826 ; SSE2-NEXT: movdqa %xmm5, %xmm9
6827 ; SSE2-NEXT: pxor %xmm8, %xmm9
6828 ; SSE2-NEXT: movdqa %xmm1, %xmm4
6829 ; SSE2-NEXT: pxor %xmm8, %xmm4
6830 ; SSE2-NEXT: pcmpgtd %xmm9, %xmm4
6831 ; SSE2-NEXT: pand %xmm4, %xmm1
6832 ; SSE2-NEXT: pandn %xmm5, %xmm4
6833 ; SSE2-NEXT: por %xmm4, %xmm1
6834 ; SSE2-NEXT: movdqa %xmm6, %xmm4
6835 ; SSE2-NEXT: pxor %xmm8, %xmm4
6836 ; SSE2-NEXT: movdqa %xmm2, %xmm5
6837 ; SSE2-NEXT: pxor %xmm8, %xmm5
6838 ; SSE2-NEXT: pcmpgtd %xmm4, %xmm5
6839 ; SSE2-NEXT: pand %xmm5, %xmm2
6840 ; SSE2-NEXT: pandn %xmm6, %xmm5
6841 ; SSE2-NEXT: por %xmm5, %xmm2
6842 ; SSE2-NEXT: movdqa %xmm7, %xmm4
6843 ; SSE2-NEXT: pxor %xmm8, %xmm4
6844 ; SSE2-NEXT: pxor %xmm3, %xmm8
6845 ; SSE2-NEXT: pcmpgtd %xmm4, %xmm8
6846 ; SSE2-NEXT: pand %xmm8, %xmm3
6847 ; SSE2-NEXT: pandn %xmm7, %xmm8
6848 ; SSE2-NEXT: por %xmm8, %xmm3
6849 ; SSE2-NEXT: retq
6890 ; SSE2-LABEL: test151:
6891 ; SSE2: # %bb.0: # %entry
6892 ; SSE2-NEXT: movdqa {{.*#+}} xmm8 = [2147483648,2147483648,2147483648,2147483648]
6893 ; SSE2-NEXT: movdqa %xmm0, %xmm9
6894 ; SSE2-NEXT: pxor %xmm8, %xmm9
6895 ; SSE2-NEXT: movdqa %xmm4, %xmm10
6896 ; SSE2-NEXT: pxor %xmm8, %xmm10
6897 ; SSE2-NEXT: pcmpgtd %xmm9, %xmm10
6898 ; SSE2-NEXT: pand %xmm10, %xmm0
6899 ; SSE2-NEXT: pandn %xmm4, %xmm10
6900 ; SSE2-NEXT: por %xmm10, %xmm0
6901 ; SSE2-NEXT: movdqa %xmm1, %xmm9
6902 ; SSE2-NEXT: pxor %xmm8, %xmm9
6903 ; SSE2-NEXT: movdqa %xmm5, %xmm4
6904 ; SSE2-NEXT: pxor %xmm8, %xmm4
6905 ; SSE2-NEXT: pcmpgtd %xmm9, %xmm4
6906 ; SSE2-NEXT: pand %xmm4, %xmm1
6907 ; SSE2-NEXT: pandn %xmm5, %xmm4
6908 ; SSE2-NEXT: por %xmm4, %xmm1
6909 ; SSE2-NEXT: movdqa %xmm2, %xmm4
6910 ; SSE2-NEXT: pxor %xmm8, %xmm4
6911 ; SSE2-NEXT: movdqa %xmm6, %xmm5
6912 ; SSE2-NEXT: pxor %xmm8, %xmm5
6913 ; SSE2-NEXT: pcmpgtd %xmm4, %xmm5
6914 ; SSE2-NEXT: pand %xmm5, %xmm2
6915 ; SSE2-NEXT: pandn %xmm6, %xmm5
6916 ; SSE2-NEXT: por %xmm5, %xmm2
6917 ; SSE2-NEXT: movdqa %xmm3, %xmm4
6918 ; SSE2-NEXT: pxor %xmm8, %xmm4
6919 ; SSE2-NEXT: pxor %xmm7, %xmm8
6920 ; SSE2-NEXT: pcmpgtd %xmm4, %xmm8
6921 ; SSE2-NEXT: pand %xmm8, %xmm3
6922 ; SSE2-NEXT: pandn %xmm7, %xmm8
6923 ; SSE2-NEXT: por %xmm8, %xmm3
6924 ; SSE2-NEXT: retq
6965 ; SSE2-LABEL: test152:
6966 ; SSE2: # %bb.0: # %entry
6967 ; SSE2-NEXT: movdqa {{.*#+}} xmm8 = [2147483648,2147483648,2147483648,2147483648]
6968 ; SSE2-NEXT: movdqa %xmm0, %xmm9
6969 ; SSE2-NEXT: pxor %xmm8, %xmm9
6970 ; SSE2-NEXT: movdqa %xmm4, %xmm10
6971 ; SSE2-NEXT: pxor %xmm8, %xmm10
6972 ; SSE2-NEXT: pcmpgtd %xmm9, %xmm10
6973 ; SSE2-NEXT: pand %xmm10, %xmm0
6974 ; SSE2-NEXT: pandn %xmm4, %xmm10
6975 ; SSE2-NEXT: por %xmm10, %xmm0
6976 ; SSE2-NEXT: movdqa %xmm1, %xmm9
6977 ; SSE2-NEXT: pxor %xmm8, %xmm9
6978 ; SSE2-NEXT: movdqa %xmm5, %xmm4
6979 ; SSE2-NEXT: pxor %xmm8, %xmm4
6980 ; SSE2-NEXT: pcmpgtd %xmm9, %xmm4
6981 ; SSE2-NEXT: pand %xmm4, %xmm1
6982 ; SSE2-NEXT: pandn %xmm5, %xmm4
6983 ; SSE2-NEXT: por %xmm4, %xmm1
6984 ; SSE2-NEXT: movdqa %xmm2, %xmm4
6985 ; SSE2-NEXT: pxor %xmm8, %xmm4
6986 ; SSE2-NEXT: movdqa %xmm6, %xmm5
6987 ; SSE2-NEXT: pxor %xmm8, %xmm5
6988 ; SSE2-NEXT: pcmpgtd %xmm4, %xmm5
6989 ; SSE2-NEXT: pand %xmm5, %xmm2
6990 ; SSE2-NEXT: pandn %xmm6, %xmm5
6991 ; SSE2-NEXT: por %xmm5, %xmm2
6992 ; SSE2-NEXT: movdqa %xmm3, %xmm4
6993 ; SSE2-NEXT: pxor %xmm8, %xmm4
6994 ; SSE2-NEXT: pxor %xmm7, %xmm8
6995 ; SSE2-NEXT: pcmpgtd %xmm4, %xmm8
6996 ; SSE2-NEXT: pand %xmm8, %xmm3
6997 ; SSE2-NEXT: pandn %xmm7, %xmm8
6998 ; SSE2-NEXT: por %xmm8, %xmm3
6999 ; SSE2-NEXT: retq
7042 ; SSE2-LABEL: test153:
7043 ; SSE2: # %bb.0: # %entry
7044 ; SSE2-NEXT: movdqa {{.*#+}} xmm8 = [2147483648,2147483648]
7045 ; SSE2-NEXT: movdqa %xmm4, %xmm9
7046 ; SSE2-NEXT: pxor %xmm8, %xmm9
7047 ; SSE2-NEXT: movdqa %xmm0, %xmm10
7048 ; SSE2-NEXT: pxor %xmm8, %xmm10
7049 ; SSE2-NEXT: movdqa %xmm10, %xmm11
7050 ; SSE2-NEXT: pcmpgtd %xmm9, %xmm11
7051 ; SSE2-NEXT: pshufd {{.*#+}} xmm12 = xmm11[0,0,2,2]
7052 ; SSE2-NEXT: pcmpeqd %xmm9, %xmm10
7053 ; SSE2-NEXT: pshufd {{.*#+}} xmm9 = xmm10[1,1,3,3]
7054 ; SSE2-NEXT: pand %xmm12, %xmm9
7055 ; SSE2-NEXT: pshufd {{.*#+}} xmm10 = xmm11[1,1,3,3]
7056 ; SSE2-NEXT: por %xmm9, %xmm10
7057 ; SSE2-NEXT: pand %xmm10, %xmm0
7058 ; SSE2-NEXT: pandn %xmm4, %xmm10
7059 ; SSE2-NEXT: por %xmm10, %xmm0
7060 ; SSE2-NEXT: movdqa %xmm5, %xmm9
7061 ; SSE2-NEXT: pxor %xmm8, %xmm9
7062 ; SSE2-NEXT: movdqa %xmm1, %xmm4
7063 ; SSE2-NEXT: pxor %xmm8, %xmm4
7064 ; SSE2-NEXT: movdqa %xmm4, %xmm10
7065 ; SSE2-NEXT: pcmpgtd %xmm9, %xmm10
7066 ; SSE2-NEXT: pshufd {{.*#+}} xmm11 = xmm10[0,0,2,2]
7067 ; SSE2-NEXT: pcmpeqd %xmm9, %xmm4
7068 ; SSE2-NEXT: pshufd {{.*#+}} xmm9 = xmm4[1,1,3,3]
7069 ; SSE2-NEXT: pand %xmm11, %xmm9
7070 ; SSE2-NEXT: pshufd {{.*#+}} xmm4 = xmm10[1,1,3,3]
7071 ; SSE2-NEXT: por %xmm9, %xmm4
7072 ; SSE2-NEXT: pand %xmm4, %xmm1
7073 ; SSE2-NEXT: pandn %xmm5, %xmm4
7074 ; SSE2-NEXT: por %xmm4, %xmm1
7075 ; SSE2-NEXT: movdqa %xmm6, %xmm4
7076 ; SSE2-NEXT: pxor %xmm8, %xmm4
7077 ; SSE2-NEXT: movdqa %xmm2, %xmm5
7078 ; SSE2-NEXT: pxor %xmm8, %xmm5
7079 ; SSE2-NEXT: movdqa %xmm5, %xmm9
7080 ; SSE2-NEXT: pcmpgtd %xmm4, %xmm9
7081 ; SSE2-NEXT: pshufd {{.*#+}} xmm10 = xmm9[0,0,2,2]
7082 ; SSE2-NEXT: pcmpeqd %xmm4, %xmm5
7083 ; SSE2-NEXT: pshufd {{.*#+}} xmm4 = xmm5[1,1,3,3]
7084 ; SSE2-NEXT: pand %xmm10, %xmm4
7085 ; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm9[1,1,3,3]
7086 ; SSE2-NEXT: por %xmm4, %xmm5
7087 ; SSE2-NEXT: pand %xmm5, %xmm2
7088 ; SSE2-NEXT: pandn %xmm6, %xmm5
7089 ; SSE2-NEXT: por %xmm5, %xmm2
7090 ; SSE2-NEXT: movdqa %xmm7, %xmm4
7091 ; SSE2-NEXT: pxor %xmm8, %xmm4
7092 ; SSE2-NEXT: pxor %xmm3, %xmm8
7093 ; SSE2-NEXT: movdqa %xmm8, %xmm5
7094 ; SSE2-NEXT: pcmpgtd %xmm4, %xmm5
7095 ; SSE2-NEXT: pshufd {{.*#+}} xmm6 = xmm5[0,0,2,2]
7096 ; SSE2-NEXT: pcmpeqd %xmm4, %xmm8
7097 ; SSE2-NEXT: pshufd {{.*#+}} xmm4 = xmm8[1,1,3,3]
7098 ; SSE2-NEXT: pand %xmm6, %xmm4
7099 ; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm5[1,1,3,3]
7100 ; SSE2-NEXT: por %xmm4, %xmm5
7101 ; SSE2-NEXT: pand %xmm5, %xmm3
7102 ; SSE2-NEXT: pandn %xmm7, %xmm5
7103 ; SSE2-NEXT: por %xmm5, %xmm3
7104 ; SSE2-NEXT: retq
7162 ; SSE2-LABEL: test154:
7163 ; SSE2: # %bb.0: # %entry
7164 ; SSE2-NEXT: movdqa {{.*#+}} xmm8 = [2147483648,2147483648]
7165 ; SSE2-NEXT: movdqa %xmm4, %xmm9
7166 ; SSE2-NEXT: pxor %xmm8, %xmm9
7167 ; SSE2-NEXT: movdqa %xmm0, %xmm10
7168 ; SSE2-NEXT: pxor %xmm8, %xmm10
7169 ; SSE2-NEXT: movdqa %xmm10, %xmm11
7170 ; SSE2-NEXT: pcmpgtd %xmm9, %xmm11
7171 ; SSE2-NEXT: pshufd {{.*#+}} xmm12 = xmm11[0,0,2,2]
7172 ; SSE2-NEXT: pcmpeqd %xmm9, %xmm10
7173 ; SSE2-NEXT: pshufd {{.*#+}} xmm9 = xmm10[1,1,3,3]
7174 ; SSE2-NEXT: pand %xmm12, %xmm9
7175 ; SSE2-NEXT: pshufd {{.*#+}} xmm10 = xmm11[1,1,3,3]
7176 ; SSE2-NEXT: por %xmm9, %xmm10
7177 ; SSE2-NEXT: pand %xmm10, %xmm0
7178 ; SSE2-NEXT: pandn %xmm4, %xmm10
7179 ; SSE2-NEXT: por %xmm10, %xmm0
7180 ; SSE2-NEXT: movdqa %xmm5, %xmm9
7181 ; SSE2-NEXT: pxor %xmm8, %xmm9
7182 ; SSE2-NEXT: movdqa %xmm1, %xmm4
7183 ; SSE2-NEXT: pxor %xmm8, %xmm4
7184 ; SSE2-NEXT: movdqa %xmm4, %xmm10
7185 ; SSE2-NEXT: pcmpgtd %xmm9, %xmm10
7186 ; SSE2-NEXT: pshufd {{.*#+}} xmm11 = xmm10[0,0,2,2]
7187 ; SSE2-NEXT: pcmpeqd %xmm9, %xmm4
7188 ; SSE2-NEXT: pshufd {{.*#+}} xmm9 = xmm4[1,1,3,3]
7189 ; SSE2-NEXT: pand %xmm11, %xmm9
7190 ; SSE2-NEXT: pshufd {{.*#+}} xmm4 = xmm10[1,1,3,3]
7191 ; SSE2-NEXT: por %xmm9, %xmm4
7192 ; SSE2-NEXT: pand %xmm4, %xmm1
7193 ; SSE2-NEXT: pandn %xmm5, %xmm4
7194 ; SSE2-NEXT: por %xmm4, %xmm1
7195 ; SSE2-NEXT: movdqa %xmm6, %xmm4
7196 ; SSE2-NEXT: pxor %xmm8, %xmm4
7197 ; SSE2-NEXT: movdqa %xmm2, %xmm5
7198 ; SSE2-NEXT: pxor %xmm8, %xmm5
7199 ; SSE2-NEXT: movdqa %xmm5, %xmm9
7200 ; SSE2-NEXT: pcmpgtd %xmm4, %xmm9
7201 ; SSE2-NEXT: pshufd {{.*#+}} xmm10 = xmm9[0,0,2,2]
7202 ; SSE2-NEXT: pcmpeqd %xmm4, %xmm5
7203 ; SSE2-NEXT: pshufd {{.*#+}} xmm4 = xmm5[1,1,3,3]
7204 ; SSE2-NEXT: pand %xmm10, %xmm4
7205 ; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm9[1,1,3,3]
7206 ; SSE2-NEXT: por %xmm4, %xmm5
7207 ; SSE2-NEXT: pand %xmm5, %xmm2
7208 ; SSE2-NEXT: pandn %xmm6, %xmm5
7209 ; SSE2-NEXT: por %xmm5, %xmm2
7210 ; SSE2-NEXT: movdqa %xmm7, %xmm4
7211 ; SSE2-NEXT: pxor %xmm8, %xmm4
7212 ; SSE2-NEXT: pxor %xmm3, %xmm8
7213 ; SSE2-NEXT: movdqa %xmm8, %xmm5
7214 ; SSE2-NEXT: pcmpgtd %xmm4, %xmm5
7215 ; SSE2-NEXT: pshufd {{.*#+}} xmm6 = xmm5[0,0,2,2]
7216 ; SSE2-NEXT: pcmpeqd %xmm4, %xmm8
7217 ; SSE2-NEXT: pshufd {{.*#+}} xmm4 = xmm8[1,1,3,3]
7218 ; SSE2-NEXT: pand %xmm6, %xmm4
7219 ; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm5[1,1,3,3]
7220 ; SSE2-NEXT: por %xmm4, %xmm5
7221 ; SSE2-NEXT: pand %xmm5, %xmm3
7222 ; SSE2-NEXT: pandn %xmm7, %xmm5
7223 ; SSE2-NEXT: por %xmm5, %xmm3
7224 ; SSE2-NEXT: retq
7282 ; SSE2-LABEL: test155:
7283 ; SSE2: # %bb.0: # %entry
7284 ; SSE2-NEXT: movdqa {{.*#+}} xmm8 = [2147483648,2147483648]
7285 ; SSE2-NEXT: movdqa %xmm0, %xmm9
7286 ; SSE2-NEXT: pxor %xmm8, %xmm9
7287 ; SSE2-NEXT: movdqa %xmm4, %xmm10
7288 ; SSE2-NEXT: pxor %xmm8, %xmm10
7289 ; SSE2-NEXT: movdqa %xmm10, %xmm11
7290 ; SSE2-NEXT: pcmpgtd %xmm9, %xmm11
7291 ; SSE2-NEXT: pshufd {{.*#+}} xmm12 = xmm11[0,0,2,2]
7292 ; SSE2-NEXT: pcmpeqd %xmm9, %xmm10
7293 ; SSE2-NEXT: pshufd {{.*#+}} xmm9 = xmm10[1,1,3,3]
7294 ; SSE2-NEXT: pand %xmm12, %xmm9
7295 ; SSE2-NEXT: pshufd {{.*#+}} xmm10 = xmm11[1,1,3,3]
7296 ; SSE2-NEXT: por %xmm9, %xmm10
7297 ; SSE2-NEXT: pand %xmm10, %xmm0
7298 ; SSE2-NEXT: pandn %xmm4, %xmm10
7299 ; SSE2-NEXT: por %xmm10, %xmm0
7300 ; SSE2-NEXT: movdqa %xmm1, %xmm9
7301 ; SSE2-NEXT: pxor %xmm8, %xmm9
7302 ; SSE2-NEXT: movdqa %xmm5, %xmm4
7303 ; SSE2-NEXT: pxor %xmm8, %xmm4
7304 ; SSE2-NEXT: movdqa %xmm4, %xmm10
7305 ; SSE2-NEXT: pcmpgtd %xmm9, %xmm10
7306 ; SSE2-NEXT: pshufd {{.*#+}} xmm11 = xmm10[0,0,2,2]
7307 ; SSE2-NEXT: pcmpeqd %xmm9, %xmm4
7308 ; SSE2-NEXT: pshufd {{.*#+}} xmm9 = xmm4[1,1,3,3]
7309 ; SSE2-NEXT: pand %xmm11, %xmm9
7310 ; SSE2-NEXT: pshufd {{.*#+}} xmm4 = xmm10[1,1,3,3]
7311 ; SSE2-NEXT: por %xmm9, %xmm4
7312 ; SSE2-NEXT: pand %xmm4, %xmm1
7313 ; SSE2-NEXT: pandn %xmm5, %xmm4
7314 ; SSE2-NEXT: por %xmm4, %xmm1
7315 ; SSE2-NEXT: movdqa %xmm2, %xmm4
7316 ; SSE2-NEXT: pxor %xmm8, %xmm4
7317 ; SSE2-NEXT: movdqa %xmm6, %xmm5
7318 ; SSE2-NEXT: pxor %xmm8, %xmm5
7319 ; SSE2-NEXT: movdqa %xmm5, %xmm9
7320 ; SSE2-NEXT: pcmpgtd %xmm4, %xmm9
7321 ; SSE2-NEXT: pshufd {{.*#+}} xmm10 = xmm9[0,0,2,2]
7322 ; SSE2-NEXT: pcmpeqd %xmm4, %xmm5
7323 ; SSE2-NEXT: pshufd {{.*#+}} xmm4 = xmm5[1,1,3,3]
7324 ; SSE2-NEXT: pand %xmm10, %xmm4
7325 ; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm9[1,1,3,3]
7326 ; SSE2-NEXT: por %xmm4, %xmm5
7327 ; SSE2-NEXT: pand %xmm5, %xmm2
7328 ; SSE2-NEXT: pandn %xmm6, %xmm5
7329 ; SSE2-NEXT: por %xmm5, %xmm2
7330 ; SSE2-NEXT: movdqa %xmm3, %xmm4
7331 ; SSE2-NEXT: pxor %xmm8, %xmm4
7332 ; SSE2-NEXT: pxor %xmm7, %xmm8
7333 ; SSE2-NEXT: movdqa %xmm8, %xmm5
7334 ; SSE2-NEXT: pcmpgtd %xmm4, %xmm5
7335 ; SSE2-NEXT: pshufd {{.*#+}} xmm6 = xmm5[0,0,2,2]
7336 ; SSE2-NEXT: pcmpeqd %xmm4, %xmm8
7337 ; SSE2-NEXT: pshufd {{.*#+}} xmm4 = xmm8[1,1,3,3]
7338 ; SSE2-NEXT: pand %xmm6, %xmm4
7339 ; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm5[1,1,3,3]
7340 ; SSE2-NEXT: por %xmm4, %xmm5
7341 ; SSE2-NEXT: pand %xmm5, %xmm3
7342 ; SSE2-NEXT: pandn %xmm7, %xmm5
7343 ; SSE2-NEXT: por %xmm5, %xmm3
7344 ; SSE2-NEXT: retq
7403 ; SSE2-LABEL: test156:
7404 ; SSE2: # %bb.0: # %entry
7405 ; SSE2-NEXT: movdqa {{.*#+}} xmm8 = [9223372039002259456,9223372039002259456]
7406 ; SSE2-NEXT: movdqa %xmm4, %xmm9
7407 ; SSE2-NEXT: pxor %xmm8, %xmm9
7408 ; SSE2-NEXT: movdqa %xmm0, %xmm10
7409 ; SSE2-NEXT: pxor %xmm8, %xmm10
7410 ; SSE2-NEXT: movdqa %xmm10, %xmm11
7411 ; SSE2-NEXT: pcmpgtd %xmm9, %xmm11
7412 ; SSE2-NEXT: pshufd {{.*#+}} xmm12 = xmm11[0,0,2,2]
7413 ; SSE2-NEXT: pcmpeqd %xmm9, %xmm10
7414 ; SSE2-NEXT: pshufd {{.*#+}} xmm9 = xmm10[1,1,3,3]
7415 ; SSE2-NEXT: pand %xmm12, %xmm9
7416 ; SSE2-NEXT: pshufd {{.*#+}} xmm10 = xmm11[1,1,3,3]
7417 ; SSE2-NEXT: por %xmm9, %xmm10
7418 ; SSE2-NEXT: pand %xmm10, %xmm0
7419 ; SSE2-NEXT: pandn %xmm4, %xmm10
7420 ; SSE2-NEXT: por %xmm10, %xmm0
7421 ; SSE2-NEXT: movdqa %xmm5, %xmm9
7422 ; SSE2-NEXT: pxor %xmm8, %xmm9
7423 ; SSE2-NEXT: movdqa %xmm1, %xmm4
7424 ; SSE2-NEXT: pxor %xmm8, %xmm4
7425 ; SSE2-NEXT: movdqa %xmm4, %xmm10
7426 ; SSE2-NEXT: pcmpgtd %xmm9, %xmm10
7427 ; SSE2-NEXT: pshufd {{.*#+}} xmm11 = xmm10[0,0,2,2]
7428 ; SSE2-NEXT: pcmpeqd %xmm9, %xmm4
7429 ; SSE2-NEXT: pshufd {{.*#+}} xmm9 = xmm4[1,1,3,3]
7430 ; SSE2-NEXT: pand %xmm11, %xmm9
7431 ; SSE2-NEXT: pshufd {{.*#+}} xmm4 = xmm10[1,1,3,3]
7432 ; SSE2-NEXT: por %xmm9, %xmm4
7433 ; SSE2-NEXT: pand %xmm4, %xmm1
7434 ; SSE2-NEXT: pandn %xmm5, %xmm4
7435 ; SSE2-NEXT: por %xmm4, %xmm1
7436 ; SSE2-NEXT: movdqa %xmm6, %xmm4
7437 ; SSE2-NEXT: pxor %xmm8, %xmm4
7438 ; SSE2-NEXT: movdqa %xmm2, %xmm5
7439 ; SSE2-NEXT: pxor %xmm8, %xmm5
7440 ; SSE2-NEXT: movdqa %xmm5, %xmm9
7441 ; SSE2-NEXT: pcmpgtd %xmm4, %xmm9
7442 ; SSE2-NEXT: pshufd {{.*#+}} xmm10 = xmm9[0,0,2,2]
7443 ; SSE2-NEXT: pcmpeqd %xmm4, %xmm5
7444 ; SSE2-NEXT: pshufd {{.*#+}} xmm4 = xmm5[1,1,3,3]
7445 ; SSE2-NEXT: pand %xmm10, %xmm4
7446 ; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm9[1,1,3,3]
7447 ; SSE2-NEXT: por %xmm4, %xmm5
7448 ; SSE2-NEXT: pand %xmm5, %xmm2
7449 ; SSE2-NEXT: pandn %xmm6, %xmm5
7450 ; SSE2-NEXT: por %xmm5, %xmm2
7451 ; SSE2-NEXT: movdqa %xmm7, %xmm4
7452 ; SSE2-NEXT: pxor %xmm8, %xmm4
7453 ; SSE2-NEXT: pxor %xmm3, %xmm8
7454 ; SSE2-NEXT: movdqa %xmm8, %xmm5
7455 ; SSE2-NEXT: pcmpgtd %xmm4, %xmm5
7456 ; SSE2-NEXT: pshufd {{.*#+}} xmm6 = xmm5[0,0,2,2]
7457 ; SSE2-NEXT: pcmpeqd %xmm4, %xmm8
7458 ; SSE2-NEXT: pshufd {{.*#+}} xmm4 = xmm8[1,1,3,3]
7459 ; SSE2-NEXT: pand %xmm6, %xmm4
7460 ; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm5[1,1,3,3]
7461 ; SSE2-NEXT: por %xmm4, %xmm5
7462 ; SSE2-NEXT: pand %xmm5, %xmm3
7463 ; SSE2-NEXT: pandn %xmm7, %xmm5
7464 ; SSE2-NEXT: por %xmm5, %xmm3
7465 ; SSE2-NEXT: retq
7552 ; SSE2-LABEL: test159:
7553 ; SSE2: # %bb.0: # %entry
7554 ; SSE2-NEXT: movdqa {{.*#+}} xmm8 = [9223372039002259456,9223372039002259456]
7555 ; SSE2-NEXT: movdqa %xmm0, %xmm9
7556 ; SSE2-NEXT: pxor %xmm8, %xmm9
7557 ; SSE2-NEXT: movdqa %xmm4, %xmm10
7558 ; SSE2-NEXT: pxor %xmm8, %xmm10
7559 ; SSE2-NEXT: movdqa %xmm10, %xmm11
7560 ; SSE2-NEXT: pcmpgtd %xmm9, %xmm11
7561 ; SSE2-NEXT: pshufd {{.*#+}} xmm12 = xmm11[0,0,2,2]
7562 ; SSE2-NEXT: pcmpeqd %xmm9, %xmm10
7563 ; SSE2-NEXT: pshufd {{.*#+}} xmm9 = xmm10[1,1,3,3]
7564 ; SSE2-NEXT: pand %xmm12, %xmm9
7565 ; SSE2-NEXT: pshufd {{.*#+}} xmm10 = xmm11[1,1,3,3]
7566 ; SSE2-NEXT: por %xmm9, %xmm10
7567 ; SSE2-NEXT: pand %xmm10, %xmm0
7568 ; SSE2-NEXT: pandn %xmm4, %xmm10
7569 ; SSE2-NEXT: por %xmm10, %xmm0
7570 ; SSE2-NEXT: movdqa %xmm1, %xmm9
7571 ; SSE2-NEXT: pxor %xmm8, %xmm9
7572 ; SSE2-NEXT: movdqa %xmm5, %xmm4
7573 ; SSE2-NEXT: pxor %xmm8, %xmm4
7574 ; SSE2-NEXT: movdqa %xmm4, %xmm10
7575 ; SSE2-NEXT: pcmpgtd %xmm9, %xmm10
7576 ; SSE2-NEXT: pshufd {{.*#+}} xmm11 = xmm10[0,0,2,2]
7577 ; SSE2-NEXT: pcmpeqd %xmm9, %xmm4
7578 ; SSE2-NEXT: pshufd {{.*#+}} xmm9 = xmm4[1,1,3,3]
7579 ; SSE2-NEXT: pand %xmm11, %xmm9
7580 ; SSE2-NEXT: pshufd {{.*#+}} xmm4 = xmm10[1,1,3,3]
7581 ; SSE2-NEXT: por %xmm9, %xmm4
7582 ; SSE2-NEXT: pand %xmm4, %xmm1
7583 ; SSE2-NEXT: pandn %xmm5, %xmm4
7584 ; SSE2-NEXT: por %xmm4, %xmm1
7585 ; SSE2-NEXT: movdqa %xmm2, %xmm4
7586 ; SSE2-NEXT: pxor %xmm8, %xmm4
7587 ; SSE2-NEXT: movdqa %xmm6, %xmm5
7588 ; SSE2-NEXT: pxor %xmm8, %xmm5
7589 ; SSE2-NEXT: movdqa %xmm5, %xmm9
7590 ; SSE2-NEXT: pcmpgtd %xmm4, %xmm9
7591 ; SSE2-NEXT: pshufd {{.*#+}} xmm10 = xmm9[0,0,2,2]
7592 ; SSE2-NEXT: pcmpeqd %xmm4, %xmm5
7593 ; SSE2-NEXT: pshufd {{.*#+}} xmm4 = xmm5[1,1,3,3]
7594 ; SSE2-NEXT: pand %xmm10, %xmm4
7595 ; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm9[1,1,3,3]
7596 ; SSE2-NEXT: por %xmm4, %xmm5
7597 ; SSE2-NEXT: pand %xmm5, %xmm2
7598 ; SSE2-NEXT: pandn %xmm6, %xmm5
7599 ; SSE2-NEXT: por %xmm5, %xmm2
7600 ; SSE2-NEXT: movdqa %xmm3, %xmm4
7601 ; SSE2-NEXT: pxor %xmm8, %xmm4
7602 ; SSE2-NEXT: pxor %xmm7, %xmm8
7603 ; SSE2-NEXT: movdqa %xmm8, %xmm5
7604 ; SSE2-NEXT: pcmpgtd %xmm4, %xmm5
7605 ; SSE2-NEXT: pshufd {{.*#+}} xmm6 = xmm5[0,0,2,2]
7606 ; SSE2-NEXT: pcmpeqd %xmm4, %xmm8
7607 ; SSE2-NEXT: pshufd {{.*#+}} xmm4 = xmm8[1,1,3,3]
7608 ; SSE2-NEXT: pand %xmm6, %xmm4
7609 ; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm5[1,1,3,3]
7610 ; SSE2-NEXT: por %xmm4, %xmm5
7611 ; SSE2-NEXT: pand %xmm5, %xmm3
7612 ; SSE2-NEXT: pandn %xmm7, %xmm5
7613 ; SSE2-NEXT: por %xmm5, %xmm3
7614 ; SSE2-NEXT: retq
7702 ; SSE2-LABEL: test160:
7703 ; SSE2: # %bb.0: # %entry
7704 ; SSE2-NEXT: movdqa {{.*#+}} xmm8 = [9223372039002259456,9223372039002259456]
7705 ; SSE2-NEXT: movdqa %xmm0, %xmm9
7706 ; SSE2-NEXT: pxor %xmm8, %xmm9
7707 ; SSE2-NEXT: movdqa %xmm4, %xmm10
7708 ; SSE2-NEXT: pxor %xmm8, %xmm10
7709 ; SSE2-NEXT: movdqa %xmm10, %xmm11
7710 ; SSE2-NEXT: pcmpgtd %xmm9, %xmm11
7711 ; SSE2-NEXT: pshufd {{.*#+}} xmm12 = xmm11[0,0,2,2]
7712 ; SSE2-NEXT: pcmpeqd %xmm9, %xmm10
7713 ; SSE2-NEXT: pshufd {{.*#+}} xmm9 = xmm10[1,1,3,3]
7714 ; SSE2-NEXT: pand %xmm12, %xmm9
7715 ; SSE2-NEXT: pshufd {{.*#+}} xmm10 = xmm11[1,1,3,3]
7716 ; SSE2-NEXT: por %xmm9, %xmm10
7717 ; SSE2-NEXT: pand %xmm10, %xmm0
7718 ; SSE2-NEXT: pandn %xmm4, %xmm10
7719 ; SSE2-NEXT: por %xmm10, %xmm0
7720 ; SSE2-NEXT: movdqa %xmm1, %xmm9
7721 ; SSE2-NEXT: pxor %xmm8, %xmm9
7722 ; SSE2-NEXT: movdqa %xmm5, %xmm4
7723 ; SSE2-NEXT: pxor %xmm8, %xmm4
7724 ; SSE2-NEXT: movdqa %xmm4, %xmm10
7725 ; SSE2-NEXT: pcmpgtd %xmm9, %xmm10
7726 ; SSE2-NEXT: pshufd {{.*#+}} xmm11 = xmm10[0,0,2,2]
7727 ; SSE2-NEXT: pcmpeqd %xmm9, %xmm4
7728 ; SSE2-NEXT: pshufd {{.*#+}} xmm9 = xmm4[1,1,3,3]
7729 ; SSE2-NEXT: pand %xmm11, %xmm9
7730 ; SSE2-NEXT: pshufd {{.*#+}} xmm4 = xmm10[1,1,3,3]
7731 ; SSE2-NEXT: por %xmm9, %xmm4
7732 ; SSE2-NEXT: pand %xmm4, %xmm1
7733 ; SSE2-NEXT: pandn %xmm5, %xmm4
7734 ; SSE2-NEXT: por %xmm4, %xmm1
7735 ; SSE2-NEXT: movdqa %xmm2, %xmm4
7736 ; SSE2-NEXT: pxor %xmm8, %xmm4
7737 ; SSE2-NEXT: movdqa %xmm6, %xmm5
7738 ; SSE2-NEXT: pxor %xmm8, %xmm5
7739 ; SSE2-NEXT: movdqa %xmm5, %xmm9
7740 ; SSE2-NEXT: pcmpgtd %xmm4, %xmm9
7741 ; SSE2-NEXT: pshufd {{.*#+}} xmm10 = xmm9[0,0,2,2]
7742 ; SSE2-NEXT: pcmpeqd %xmm4, %xmm5
7743 ; SSE2-NEXT: pshufd {{.*#+}} xmm4 = xmm5[1,1,3,3]
7744 ; SSE2-NEXT: pand %xmm10, %xmm4
7745 ; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm9[1,1,3,3]
7746 ; SSE2-NEXT: por %xmm4, %xmm5
7747 ; SSE2-NEXT: pand %xmm5, %xmm2
7748 ; SSE2-NEXT: pandn %xmm6, %xmm5
7749 ; SSE2-NEXT: por %xmm5, %xmm2
7750 ; SSE2-NEXT: movdqa %xmm3, %xmm4
7751 ; SSE2-NEXT: pxor %xmm8, %xmm4
7752 ; SSE2-NEXT: pxor %xmm7, %xmm8
7753 ; SSE2-NEXT: movdqa %xmm8, %xmm5
7754 ; SSE2-NEXT: pcmpgtd %xmm4, %xmm5
7755 ; SSE2-NEXT: pshufd {{.*#+}} xmm6 = xmm5[0,0,2,2]
7756 ; SSE2-NEXT: pcmpeqd %xmm4, %xmm8
7757 ; SSE2-NEXT: pshufd {{.*#+}} xmm4 = xmm8[1,1,3,3]
7758 ; SSE2-NEXT: pand %xmm6, %xmm4
7759 ; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm5[1,1,3,3]
7760 ; SSE2-NEXT: por %xmm4, %xmm5
7761 ; SSE2-NEXT: pand %xmm5, %xmm3
7762 ; SSE2-NEXT: pandn %xmm7, %xmm5
7763 ; SSE2-NEXT: por %xmm5, %xmm3
7764 ; SSE2-NEXT: retq
7852 ; SSE2-LABEL: test161:
7853 ; SSE2: # %bb.0: # %entry
7854 ; SSE2-NEXT: movdqa {{.*#+}} xmm4 = [2147483648,2147483648]
7855 ; SSE2-NEXT: movdqa %xmm0, %xmm5
7856 ; SSE2-NEXT: pxor %xmm4, %xmm5
7857 ; SSE2-NEXT: movdqa %xmm2, %xmm6
7858 ; SSE2-NEXT: pxor %xmm4, %xmm6
7859 ; SSE2-NEXT: movdqa %xmm6, %xmm7
7860 ; SSE2-NEXT: pcmpgtd %xmm5, %xmm7
7861 ; SSE2-NEXT: pshufd {{.*#+}} xmm8 = xmm7[0,0,2,2]
7862 ; SSE2-NEXT: pcmpeqd %xmm5, %xmm6
7863 ; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm6[1,1,3,3]
7864 ; SSE2-NEXT: pand %xmm8, %xmm5
7865 ; SSE2-NEXT: pshufd {{.*#+}} xmm6 = xmm7[1,1,3,3]
7866 ; SSE2-NEXT: por %xmm5, %xmm6
7867 ; SSE2-NEXT: pand %xmm6, %xmm0
7868 ; SSE2-NEXT: pandn %xmm2, %xmm6
7869 ; SSE2-NEXT: por %xmm6, %xmm0
7870 ; SSE2-NEXT: movdqa %xmm1, %xmm2
7871 ; SSE2-NEXT: pxor %xmm4, %xmm2
7872 ; SSE2-NEXT: pxor %xmm3, %xmm4
7873 ; SSE2-NEXT: movdqa %xmm4, %xmm5
7874 ; SSE2-NEXT: pcmpgtd %xmm2, %xmm5
7875 ; SSE2-NEXT: pshufd {{.*#+}} xmm6 = xmm5[0,0,2,2]
7876 ; SSE2-NEXT: pcmpeqd %xmm2, %xmm4
7877 ; SSE2-NEXT: pshufd {{.*#+}} xmm2 = xmm4[1,1,3,3]
7878 ; SSE2-NEXT: pand %xmm6, %xmm2
7879 ; SSE2-NEXT: pshufd {{.*#+}} xmm4 = xmm5[1,1,3,3]
7880 ; SSE2-NEXT: por %xmm2, %xmm4
7881 ; SSE2-NEXT: pand %xmm4, %xmm1
7882 ; SSE2-NEXT: pandn %xmm3, %xmm4
7883 ; SSE2-NEXT: por %xmm4, %xmm1
7884 ; SSE2-NEXT: retq
7934 ; SSE2-LABEL: test162:
7935 ; SSE2: # %bb.0: # %entry
7936 ; SSE2-NEXT: movdqa {{.*#+}} xmm4 = [2147483648,2147483648]
7937 ; SSE2-NEXT: movdqa %xmm0, %xmm5
7938 ; SSE2-NEXT: pxor %xmm4, %xmm5
7939 ; SSE2-NEXT: movdqa %xmm2, %xmm6
7940 ; SSE2-NEXT: pxor %xmm4, %xmm6
7941 ; SSE2-NEXT: movdqa %xmm6, %xmm7
7942 ; SSE2-NEXT: pcmpgtd %xmm5, %xmm7
7943 ; SSE2-NEXT: pshufd {{.*#+}} xmm8 = xmm7[0,0,2,2]
7944 ; SSE2-NEXT: pcmpeqd %xmm5, %xmm6
7945 ; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm6[1,1,3,3]
7946 ; SSE2-NEXT: pand %xmm8, %xmm5
7947 ; SSE2-NEXT: pshufd {{.*#+}} xmm6 = xmm7[1,1,3,3]
7948 ; SSE2-NEXT: por %xmm5, %xmm6
7949 ; SSE2-NEXT: pand %xmm6, %xmm0
7950 ; SSE2-NEXT: pandn %xmm2, %xmm6
7951 ; SSE2-NEXT: por %xmm6, %xmm0
7952 ; SSE2-NEXT: movdqa %xmm1, %xmm2
7953 ; SSE2-NEXT: pxor %xmm4, %xmm2
7954 ; SSE2-NEXT: pxor %xmm3, %xmm4
7955 ; SSE2-NEXT: movdqa %xmm4, %xmm5
7956 ; SSE2-NEXT: pcmpgtd %xmm2, %xmm5
7957 ; SSE2-NEXT: pshufd {{.*#+}} xmm6 = xmm5[0,0,2,2]
7958 ; SSE2-NEXT: pcmpeqd %xmm2, %xmm4
7959 ; SSE2-NEXT: pshufd {{.*#+}} xmm2 = xmm4[1,1,3,3]
7960 ; SSE2-NEXT: pand %xmm6, %xmm2
7961 ; SSE2-NEXT: pshufd {{.*#+}} xmm4 = xmm5[1,1,3,3]
7962 ; SSE2-NEXT: por %xmm2, %xmm4
7963 ; SSE2-NEXT: pand %xmm4, %xmm1
7964 ; SSE2-NEXT: pandn %xmm3, %xmm4
7965 ; SSE2-NEXT: por %xmm4, %xmm1
7966 ; SSE2-NEXT: retq
8016 ; SSE2-LABEL: test163:
8017 ; SSE2: # %bb.0: # %entry
8018 ; SSE2-NEXT: movdqa {{.*#+}} xmm4 = [2147483648,2147483648]
8019 ; SSE2-NEXT: movdqa %xmm2, %xmm5
8020 ; SSE2-NEXT: pxor %xmm4, %xmm5
8021 ; SSE2-NEXT: movdqa %xmm0, %xmm6
8022 ; SSE2-NEXT: pxor %xmm4, %xmm6
8023 ; SSE2-NEXT: movdqa %xmm6, %xmm7
8024 ; SSE2-NEXT: pcmpgtd %xmm5, %xmm7
8025 ; SSE2-NEXT: pshufd {{.*#+}} xmm8 = xmm7[0,0,2,2]
8026 ; SSE2-NEXT: pcmpeqd %xmm5, %xmm6
8027 ; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm6[1,1,3,3]
8028 ; SSE2-NEXT: pand %xmm8, %xmm5
8029 ; SSE2-NEXT: pshufd {{.*#+}} xmm6 = xmm7[1,1,3,3]
8030 ; SSE2-NEXT: por %xmm5, %xmm6
8031 ; SSE2-NEXT: pand %xmm6, %xmm0
8032 ; SSE2-NEXT: pandn %xmm2, %xmm6
8033 ; SSE2-NEXT: por %xmm6, %xmm0
8034 ; SSE2-NEXT: movdqa %xmm3, %xmm2
8035 ; SSE2-NEXT: pxor %xmm4, %xmm2
8036 ; SSE2-NEXT: pxor %xmm1, %xmm4
8037 ; SSE2-NEXT: movdqa %xmm4, %xmm5
8038 ; SSE2-NEXT: pcmpgtd %xmm2, %xmm5
8039 ; SSE2-NEXT: pshufd {{.*#+}} xmm6 = xmm5[0,0,2,2]
8040 ; SSE2-NEXT: pcmpeqd %xmm2, %xmm4
8041 ; SSE2-NEXT: pshufd {{.*#+}} xmm2 = xmm4[1,1,3,3]
8042 ; SSE2-NEXT: pand %xmm6, %xmm2
8043 ; SSE2-NEXT: pshufd {{.*#+}} xmm4 = xmm5[1,1,3,3]
8044 ; SSE2-NEXT: por %xmm2, %xmm4
8045 ; SSE2-NEXT: pand %xmm4, %xmm1
8046 ; SSE2-NEXT: pandn %xmm3, %xmm4
8047 ; SSE2-NEXT: por %xmm4, %xmm1
8048 ; SSE2-NEXT: retq
8097 ; SSE2-LABEL: test164:
8098 ; SSE2: # %bb.0: # %entry
8099 ; SSE2-NEXT: movdqa {{.*#+}} xmm4 = [2147483648,2147483648]
8100 ; SSE2-NEXT: movdqa %xmm2, %xmm5
8101 ; SSE2-NEXT: pxor %xmm4, %xmm5
8102 ; SSE2-NEXT: movdqa %xmm0, %xmm6
8103 ; SSE2-NEXT: pxor %xmm4, %xmm6
8104 ; SSE2-NEXT: movdqa %xmm6, %xmm7
8105 ; SSE2-NEXT: pcmpgtd %xmm5, %xmm7
8106 ; SSE2-NEXT: pshufd {{.*#+}} xmm8 = xmm7[0,0,2,2]
8107 ; SSE2-NEXT: pcmpeqd %xmm5, %xmm6
8108 ; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm6[1,1,3,3]
8109 ; SSE2-NEXT: pand %xmm8, %xmm5
8110 ; SSE2-NEXT: pshufd {{.*#+}} xmm6 = xmm7[1,1,3,3]
8111 ; SSE2-NEXT: por %xmm5, %xmm6
8112 ; SSE2-NEXT: pand %xmm6, %xmm0
8113 ; SSE2-NEXT: pandn %xmm2, %xmm6
8114 ; SSE2-NEXT: por %xmm6, %xmm0
8115 ; SSE2-NEXT: movdqa %xmm3, %xmm2
8116 ; SSE2-NEXT: pxor %xmm4, %xmm2
8117 ; SSE2-NEXT: pxor %xmm1, %xmm4
8118 ; SSE2-NEXT: movdqa %xmm4, %xmm5
8119 ; SSE2-NEXT: pcmpgtd %xmm2, %xmm5
8120 ; SSE2-NEXT: pshufd {{.*#+}} xmm6 = xmm5[0,0,2,2]
8121 ; SSE2-NEXT: pcmpeqd %xmm2, %xmm4
8122 ; SSE2-NEXT: pshufd {{.*#+}} xmm2 = xmm4[1,1,3,3]
8123 ; SSE2-NEXT: pand %xmm6, %xmm2
8124 ; SSE2-NEXT: pshufd {{.*#+}} xmm4 = xmm5[1,1,3,3]
8125 ; SSE2-NEXT: por %xmm2, %xmm4
8126 ; SSE2-NEXT: pand %xmm4, %xmm1
8127 ; SSE2-NEXT: pandn %xmm3, %xmm4
8128 ; SSE2-NEXT: por %xmm4, %xmm1
8129 ; SSE2-NEXT: retq
8178 ; SSE2-LABEL: test165:
8179 ; SSE2: # %bb.0: # %entry
8180 ; SSE2-NEXT: movdqa {{.*#+}} xmm4 = [9223372039002259456,9223372039002259456]
8181 ; SSE2-NEXT: movdqa %xmm0, %xmm5
8182 ; SSE2-NEXT: pxor %xmm4, %xmm5
8183 ; SSE2-NEXT: movdqa %xmm2, %xmm6
8184 ; SSE2-NEXT: pxor %xmm4, %xmm6
8185 ; SSE2-NEXT: movdqa %xmm6, %xmm7
8186 ; SSE2-NEXT: pcmpgtd %xmm5, %xmm7
8187 ; SSE2-NEXT: pshufd {{.*#+}} xmm8 = xmm7[0,0,2,2]
8188 ; SSE2-NEXT: pcmpeqd %xmm5, %xmm6
8189 ; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm6[1,1,3,3]
8190 ; SSE2-NEXT: pand %xmm8, %xmm5
8191 ; SSE2-NEXT: pshufd {{.*#+}} xmm6 = xmm7[1,1,3,3]
8192 ; SSE2-NEXT: por %xmm5, %xmm6
8193 ; SSE2-NEXT: pand %xmm6, %xmm0
8194 ; SSE2-NEXT: pandn %xmm2, %xmm6
8195 ; SSE2-NEXT: por %xmm6, %xmm0
8196 ; SSE2-NEXT: movdqa %xmm1, %xmm2
8197 ; SSE2-NEXT: pxor %xmm4, %xmm2
8198 ; SSE2-NEXT: pxor %xmm3, %xmm4
8199 ; SSE2-NEXT: movdqa %xmm4, %xmm5
8200 ; SSE2-NEXT: pcmpgtd %xmm2, %xmm5
8201 ; SSE2-NEXT: pshufd {{.*#+}} xmm6 = xmm5[0,0,2,2]
8202 ; SSE2-NEXT: pcmpeqd %xmm2, %xmm4
8203 ; SSE2-NEXT: pshufd {{.*#+}} xmm2 = xmm4[1,1,3,3]
8204 ; SSE2-NEXT: pand %xmm6, %xmm2
8205 ; SSE2-NEXT: pshufd {{.*#+}} xmm4 = xmm5[1,1,3,3]
8206 ; SSE2-NEXT: por %xmm2, %xmm4
8207 ; SSE2-NEXT: pand %xmm4, %xmm1
8208 ; SSE2-NEXT: pandn %xmm3, %xmm4
8209 ; SSE2-NEXT: por %xmm4, %xmm1
8210 ; SSE2-NEXT: retq
8275 ; SSE2-LABEL: test166:
8276 ; SSE2: # %bb.0: # %entry
8277 ; SSE2-NEXT: movdqa {{.*#+}} xmm4 = [9223372039002259456,9223372039002259456]
8278 ; SSE2-NEXT: movdqa %xmm0, %xmm5
8279 ; SSE2-NEXT: pxor %xmm4, %xmm5
8280 ; SSE2-NEXT: movdqa %xmm2, %xmm6
8281 ; SSE2-NEXT: pxor %xmm4, %xmm6
8282 ; SSE2-NEXT: movdqa %xmm6, %xmm7
8283 ; SSE2-NEXT: pcmpgtd %xmm5, %xmm7
8284 ; SSE2-NEXT: pshufd {{.*#+}} xmm8 = xmm7[0,0,2,2]
8285 ; SSE2-NEXT: pcmpeqd %xmm5, %xmm6
8286 ; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm6[1,1,3,3]
8287 ; SSE2-NEXT: pand %xmm8, %xmm5
8288 ; SSE2-NEXT: pshufd {{.*#+}} xmm6 = xmm7[1,1,3,3]
8289 ; SSE2-NEXT: por %xmm5, %xmm6
8290 ; SSE2-NEXT: pand %xmm6, %xmm0
8291 ; SSE2-NEXT: pandn %xmm2, %xmm6
8292 ; SSE2-NEXT: por %xmm6, %xmm0
8293 ; SSE2-NEXT: movdqa %xmm1, %xmm2
8294 ; SSE2-NEXT: pxor %xmm4, %xmm2
8295 ; SSE2-NEXT: pxor %xmm3, %xmm4
8296 ; SSE2-NEXT: movdqa %xmm4, %xmm5
8297 ; SSE2-NEXT: pcmpgtd %xmm2, %xmm5
8298 ; SSE2-NEXT: pshufd {{.*#+}} xmm6 = xmm5[0,0,2,2]
8299 ; SSE2-NEXT: pcmpeqd %xmm2, %xmm4
8300 ; SSE2-NEXT: pshufd {{.*#+}} xmm2 = xmm4[1,1,3,3]
8301 ; SSE2-NEXT: pand %xmm6, %xmm2
8302 ; SSE2-NEXT: pshufd {{.*#+}} xmm4 = xmm5[1,1,3,3]
8303 ; SSE2-NEXT: por %xmm2, %xmm4
8304 ; SSE2-NEXT: pand %xmm4, %xmm1
8305 ; SSE2-NEXT: pandn %xmm3, %xmm4
8306 ; SSE2-NEXT: por %xmm4, %xmm1
8307 ; SSE2-NEXT: retq
8372 ; SSE2-LABEL: test167:
8373 ; SSE2: # %bb.0: # %entry
8374 ; SSE2-NEXT: movdqa {{.*#+}} xmm4 = [9223372039002259456,9223372039002259456]
8375 ; SSE2-NEXT: movdqa %xmm2, %xmm5
8376 ; SSE2-NEXT: pxor %xmm4, %xmm5
8377 ; SSE2-NEXT: movdqa %xmm0, %xmm6
8378 ; SSE2-NEXT: pxor %xmm4, %xmm6
8379 ; SSE2-NEXT: movdqa %xmm6, %xmm7
8380 ; SSE2-NEXT: pcmpgtd %xmm5, %xmm7
8381 ; SSE2-NEXT: pshufd {{.*#+}} xmm8 = xmm7[0,0,2,2]
8382 ; SSE2-NEXT: pcmpeqd %xmm5, %xmm6
8383 ; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm6[1,1,3,3]
8384 ; SSE2-NEXT: pand %xmm8, %xmm5
8385 ; SSE2-NEXT: pshufd {{.*#+}} xmm6 = xmm7[1,1,3,3]
8386 ; SSE2-NEXT: por %xmm5, %xmm6
8387 ; SSE2-NEXT: pand %xmm6, %xmm0
8388 ; SSE2-NEXT: pandn %xmm2, %xmm6
8389 ; SSE2-NEXT: por %xmm6, %xmm0
8390 ; SSE2-NEXT: movdqa %xmm3, %xmm2
8391 ; SSE2-NEXT: pxor %xmm4, %xmm2
8392 ; SSE2-NEXT: pxor %xmm1, %xmm4
8393 ; SSE2-NEXT: movdqa %xmm4, %xmm5
8394 ; SSE2-NEXT: pcmpgtd %xmm2, %xmm5
8395 ; SSE2-NEXT: pshufd {{.*#+}} xmm6 = xmm5[0,0,2,2]
8396 ; SSE2-NEXT: pcmpeqd %xmm2, %xmm4
8397 ; SSE2-NEXT: pshufd {{.*#+}} xmm2 = xmm4[1,1,3,3]
8398 ; SSE2-NEXT: pand %xmm6, %xmm2
8399 ; SSE2-NEXT: pshufd {{.*#+}} xmm4 = xmm5[1,1,3,3]
8400 ; SSE2-NEXT: por %xmm2, %xmm4
8401 ; SSE2-NEXT: pand %xmm4, %xmm1
8402 ; SSE2-NEXT: pandn %xmm3, %xmm4
8403 ; SSE2-NEXT: por %xmm4, %xmm1
8404 ; SSE2-NEXT: retq
8468 ; SSE2-LABEL: test168:
8469 ; SSE2: # %bb.0: # %entry
8470 ; SSE2-NEXT: movdqa {{.*#+}} xmm4 = [9223372039002259456,9223372039002259456]
8471 ; SSE2-NEXT: movdqa %xmm2, %xmm5
8472 ; SSE2-NEXT: pxor %xmm4, %xmm5
8473 ; SSE2-NEXT: movdqa %xmm0, %xmm6
8474 ; SSE2-NEXT: pxor %xmm4, %xmm6
8475 ; SSE2-NEXT: movdqa %xmm6, %xmm7
8476 ; SSE2-NEXT: pcmpgtd %xmm5, %xmm7
8477 ; SSE2-NEXT: pshufd {{.*#+}} xmm8 = xmm7[0,0,2,2]
8478 ; SSE2-NEXT: pcmpeqd %xmm5, %xmm6
8479 ; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm6[1,1,3,3]
8480 ; SSE2-NEXT: pand %xmm8, %xmm5
8481 ; SSE2-NEXT: pshufd {{.*#+}} xmm6 = xmm7[1,1,3,3]
8482 ; SSE2-NEXT: por %xmm5, %xmm6
8483 ; SSE2-NEXT: pand %xmm6, %xmm0
8484 ; SSE2-NEXT: pandn %xmm2, %xmm6
8485 ; SSE2-NEXT: por %xmm6, %xmm0
8486 ; SSE2-NEXT: movdqa %xmm3, %xmm2
8487 ; SSE2-NEXT: pxor %xmm4, %xmm2
8488 ; SSE2-NEXT: pxor %xmm1, %xmm4
8489 ; SSE2-NEXT: movdqa %xmm4, %xmm5
8490 ; SSE2-NEXT: pcmpgtd %xmm2, %xmm5
8491 ; SSE2-NEXT: pshufd {{.*#+}} xmm6 = xmm5[0,0,2,2]
8492 ; SSE2-NEXT: pcmpeqd %xmm2, %xmm4
8493 ; SSE2-NEXT: pshufd {{.*#+}} xmm2 = xmm4[1,1,3,3]
8494 ; SSE2-NEXT: pand %xmm6, %xmm2
8495 ; SSE2-NEXT: pshufd {{.*#+}} xmm4 = xmm5[1,1,3,3]
8496 ; SSE2-NEXT: por %xmm2, %xmm4
8497 ; SSE2-NEXT: pand %xmm4, %xmm1
8498 ; SSE2-NEXT: pandn %xmm3, %xmm4
8499 ; SSE2-NEXT: por %xmm4, %xmm1
8500 ; SSE2-NEXT: retq
8564 ; SSE2-LABEL: test169:
8565 ; SSE2: # %bb.0: # %entry
8566 ; SSE2-NEXT: movdqa {{.*#+}} xmm4 = [2147483648,2147483648]
8567 ; SSE2-NEXT: movdqa %xmm2, %xmm5
8568 ; SSE2-NEXT: pxor %xmm4, %xmm5
8569 ; SSE2-NEXT: movdqa %xmm0, %xmm6
8570 ; SSE2-NEXT: pxor %xmm4, %xmm6
8571 ; SSE2-NEXT: movdqa %xmm6, %xmm7
8572 ; SSE2-NEXT: pcmpgtd %xmm5, %xmm7
8573 ; SSE2-NEXT: pshufd {{.*#+}} xmm8 = xmm7[0,0,2,2]
8574 ; SSE2-NEXT: pcmpeqd %xmm5, %xmm6
8575 ; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm6[1,1,3,3]
8576 ; SSE2-NEXT: pand %xmm8, %xmm5
8577 ; SSE2-NEXT: pshufd {{.*#+}} xmm6 = xmm7[1,1,3,3]
8578 ; SSE2-NEXT: por %xmm5, %xmm6
8579 ; SSE2-NEXT: pand %xmm6, %xmm0
8580 ; SSE2-NEXT: pandn %xmm2, %xmm6
8581 ; SSE2-NEXT: por %xmm6, %xmm0
8582 ; SSE2-NEXT: movdqa %xmm3, %xmm2
8583 ; SSE2-NEXT: pxor %xmm4, %xmm2
8584 ; SSE2-NEXT: pxor %xmm1, %xmm4
8585 ; SSE2-NEXT: movdqa %xmm4, %xmm5
8586 ; SSE2-NEXT: pcmpgtd %xmm2, %xmm5
8587 ; SSE2-NEXT: pshufd {{.*#+}} xmm6 = xmm5[0,0,2,2]
8588 ; SSE2-NEXT: pcmpeqd %xmm2, %xmm4
8589 ; SSE2-NEXT: pshufd {{.*#+}} xmm2 = xmm4[1,1,3,3]
8590 ; SSE2-NEXT: pand %xmm6, %xmm2
8591 ; SSE2-NEXT: pshufd {{.*#+}} xmm4 = xmm5[1,1,3,3]
8592 ; SSE2-NEXT: por %xmm2, %xmm4
8593 ; SSE2-NEXT: pand %xmm4, %xmm1
8594 ; SSE2-NEXT: pandn %xmm3, %xmm4
8595 ; SSE2-NEXT: por %xmm4, %xmm1
8596 ; SSE2-NEXT: retq
8645 ; SSE2-LABEL: test170:
8646 ; SSE2: # %bb.0: # %entry
8647 ; SSE2-NEXT: movdqa {{.*#+}} xmm4 = [2147483648,2147483648]
8648 ; SSE2-NEXT: movdqa %xmm2, %xmm5
8649 ; SSE2-NEXT: pxor %xmm4, %xmm5
8650 ; SSE2-NEXT: movdqa %xmm0, %xmm6
8651 ; SSE2-NEXT: pxor %xmm4, %xmm6
8652 ; SSE2-NEXT: movdqa %xmm6, %xmm7
8653 ; SSE2-NEXT: pcmpgtd %xmm5, %xmm7
8654 ; SSE2-NEXT: pshufd {{.*#+}} xmm8 = xmm7[0,0,2,2]
8655 ; SSE2-NEXT: pcmpeqd %xmm5, %xmm6
8656 ; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm6[1,1,3,3]
8657 ; SSE2-NEXT: pand %xmm8, %xmm5
8658 ; SSE2-NEXT: pshufd {{.*#+}} xmm6 = xmm7[1,1,3,3]
8659 ; SSE2-NEXT: por %xmm5, %xmm6
8660 ; SSE2-NEXT: pand %xmm6, %xmm0
8661 ; SSE2-NEXT: pandn %xmm2, %xmm6
8662 ; SSE2-NEXT: por %xmm6, %xmm0
8663 ; SSE2-NEXT: movdqa %xmm3, %xmm2
8664 ; SSE2-NEXT: pxor %xmm4, %xmm2
8665 ; SSE2-NEXT: pxor %xmm1, %xmm4
8666 ; SSE2-NEXT: movdqa %xmm4, %xmm5
8667 ; SSE2-NEXT: pcmpgtd %xmm2, %xmm5
8668 ; SSE2-NEXT: pshufd {{.*#+}} xmm6 = xmm5[0,0,2,2]
8669 ; SSE2-NEXT: pcmpeqd %xmm2, %xmm4
8670 ; SSE2-NEXT: pshufd {{.*#+}} xmm2 = xmm4[1,1,3,3]
8671 ; SSE2-NEXT: pand %xmm6, %xmm2
8672 ; SSE2-NEXT: pshufd {{.*#+}} xmm4 = xmm5[1,1,3,3]
8673 ; SSE2-NEXT: por %xmm2, %xmm4
8674 ; SSE2-NEXT: pand %xmm4, %xmm1
8675 ; SSE2-NEXT: pandn %xmm3, %xmm4
8676 ; SSE2-NEXT: por %xmm4, %xmm1
8677 ; SSE2-NEXT: retq
8726 ; SSE2-LABEL: test171:
8727 ; SSE2: # %bb.0: # %entry
8728 ; SSE2-NEXT: movdqa {{.*#+}} xmm4 = [2147483648,2147483648]
8729 ; SSE2-NEXT: movdqa %xmm0, %xmm5
8730 ; SSE2-NEXT: pxor %xmm4, %xmm5
8731 ; SSE2-NEXT: movdqa %xmm2, %xmm6
8732 ; SSE2-NEXT: pxor %xmm4, %xmm6
8733 ; SSE2-NEXT: movdqa %xmm6, %xmm7
8734 ; SSE2-NEXT: pcmpgtd %xmm5, %xmm7
8735 ; SSE2-NEXT: pshufd {{.*#+}} xmm8 = xmm7[0,0,2,2]
8736 ; SSE2-NEXT: pcmpeqd %xmm5, %xmm6
8737 ; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm6[1,1,3,3]
8738 ; SSE2-NEXT: pand %xmm8, %xmm5
8739 ; SSE2-NEXT: pshufd {{.*#+}} xmm6 = xmm7[1,1,3,3]
8740 ; SSE2-NEXT: por %xmm5, %xmm6
8741 ; SSE2-NEXT: pand %xmm6, %xmm0
8742 ; SSE2-NEXT: pandn %xmm2, %xmm6
8743 ; SSE2-NEXT: por %xmm6, %xmm0
8744 ; SSE2-NEXT: movdqa %xmm1, %xmm2
8745 ; SSE2-NEXT: pxor %xmm4, %xmm2
8746 ; SSE2-NEXT: pxor %xmm3, %xmm4
8747 ; SSE2-NEXT: movdqa %xmm4, %xmm5
8748 ; SSE2-NEXT: pcmpgtd %xmm2, %xmm5
8749 ; SSE2-NEXT: pshufd {{.*#+}} xmm6 = xmm5[0,0,2,2]
8750 ; SSE2-NEXT: pcmpeqd %xmm2, %xmm4
8751 ; SSE2-NEXT: pshufd {{.*#+}} xmm2 = xmm4[1,1,3,3]
8752 ; SSE2-NEXT: pand %xmm6, %xmm2
8753 ; SSE2-NEXT: pshufd {{.*#+}} xmm4 = xmm5[1,1,3,3]
8754 ; SSE2-NEXT: por %xmm2, %xmm4
8755 ; SSE2-NEXT: pand %xmm4, %xmm1
8756 ; SSE2-NEXT: pandn %xmm3, %xmm4
8757 ; SSE2-NEXT: por %xmm4, %xmm1
8758 ; SSE2-NEXT: retq
8808 ; SSE2-LABEL: test172:
8809 ; SSE2: # %bb.0: # %entry
8810 ; SSE2-NEXT: movdqa {{.*#+}} xmm4 = [2147483648,2147483648]
8811 ; SSE2-NEXT: movdqa %xmm0, %xmm5
8812 ; SSE2-NEXT: pxor %xmm4, %xmm5
8813 ; SSE2-NEXT: movdqa %xmm2, %xmm6
8814 ; SSE2-NEXT: pxor %xmm4, %xmm6
8815 ; SSE2-NEXT: movdqa %xmm6, %xmm7
8816 ; SSE2-NEXT: pcmpgtd %xmm5, %xmm7
8817 ; SSE2-NEXT: pshufd {{.*#+}} xmm8 = xmm7[0,0,2,2]
8818 ; SSE2-NEXT: pcmpeqd %xmm5, %xmm6
8819 ; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm6[1,1,3,3]
8820 ; SSE2-NEXT: pand %xmm8, %xmm5
8821 ; SSE2-NEXT: pshufd {{.*#+}} xmm6 = xmm7[1,1,3,3]
8822 ; SSE2-NEXT: por %xmm5, %xmm6
8823 ; SSE2-NEXT: pand %xmm6, %xmm0
8824 ; SSE2-NEXT: pandn %xmm2, %xmm6
8825 ; SSE2-NEXT: por %xmm6, %xmm0
8826 ; SSE2-NEXT: movdqa %xmm1, %xmm2
8827 ; SSE2-NEXT: pxor %xmm4, %xmm2
8828 ; SSE2-NEXT: pxor %xmm3, %xmm4
8829 ; SSE2-NEXT: movdqa %xmm4, %xmm5
8830 ; SSE2-NEXT: pcmpgtd %xmm2, %xmm5
8831 ; SSE2-NEXT: pshufd {{.*#+}} xmm6 = xmm5[0,0,2,2]
8832 ; SSE2-NEXT: pcmpeqd %xmm2, %xmm4
8833 ; SSE2-NEXT: pshufd {{.*#+}} xmm2 = xmm4[1,1,3,3]
8834 ; SSE2-NEXT: pand %xmm6, %xmm2
8835 ; SSE2-NEXT: pshufd {{.*#+}} xmm4 = xmm5[1,1,3,3]
8836 ; SSE2-NEXT: por %xmm2, %xmm4
8837 ; SSE2-NEXT: pand %xmm4, %xmm1
8838 ; SSE2-NEXT: pandn %xmm3, %xmm4
8839 ; SSE2-NEXT: por %xmm4, %xmm1
8840 ; SSE2-NEXT: retq
8890 ; SSE2-LABEL: test173:
8891 ; SSE2: # %bb.0: # %entry
8892 ; SSE2-NEXT: movdqa {{.*#+}} xmm4 = [9223372039002259456,9223372039002259456]
8893 ; SSE2-NEXT: movdqa %xmm2, %xmm5
8894 ; SSE2-NEXT: pxor %xmm4, %xmm5
8895 ; SSE2-NEXT: movdqa %xmm0, %xmm6
8896 ; SSE2-NEXT: pxor %xmm4, %xmm6
8897 ; SSE2-NEXT: movdqa %xmm6, %xmm7
8898 ; SSE2-NEXT: pcmpgtd %xmm5, %xmm7
8899 ; SSE2-NEXT: pshufd {{.*#+}} xmm8 = xmm7[0,0,2,2]
8900 ; SSE2-NEXT: pcmpeqd %xmm5, %xmm6
8901 ; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm6[1,1,3,3]
8902 ; SSE2-NEXT: pand %xmm8, %xmm5
8903 ; SSE2-NEXT: pshufd {{.*#+}} xmm6 = xmm7[1,1,3,3]
8904 ; SSE2-NEXT: por %xmm5, %xmm6
8905 ; SSE2-NEXT: pand %xmm6, %xmm0
8906 ; SSE2-NEXT: pandn %xmm2, %xmm6
8907 ; SSE2-NEXT: por %xmm6, %xmm0
8908 ; SSE2-NEXT: movdqa %xmm3, %xmm2
8909 ; SSE2-NEXT: pxor %xmm4, %xmm2
8910 ; SSE2-NEXT: pxor %xmm1, %xmm4
8911 ; SSE2-NEXT: movdqa %xmm4, %xmm5
8912 ; SSE2-NEXT: pcmpgtd %xmm2, %xmm5
8913 ; SSE2-NEXT: pshufd {{.*#+}} xmm6 = xmm5[0,0,2,2]
8914 ; SSE2-NEXT: pcmpeqd %xmm2, %xmm4
8915 ; SSE2-NEXT: pshufd {{.*#+}} xmm2 = xmm4[1,1,3,3]
8916 ; SSE2-NEXT: pand %xmm6, %xmm2
8917 ; SSE2-NEXT: pshufd {{.*#+}} xmm4 = xmm5[1,1,3,3]
8918 ; SSE2-NEXT: por %xmm2, %xmm4
8919 ; SSE2-NEXT: pand %xmm4, %xmm1
8920 ; SSE2-NEXT: pandn %xmm3, %xmm4
8921 ; SSE2-NEXT: por %xmm4, %xmm1
8922 ; SSE2-NEXT: retq
8986 ; SSE2-LABEL: test174:
8987 ; SSE2: # %bb.0: # %entry
8988 ; SSE2-NEXT: movdqa {{.*#+}} xmm4 = [9223372039002259456,9223372039002259456]
8989 ; SSE2-NEXT: movdqa %xmm2, %xmm5
8990 ; SSE2-NEXT: pxor %xmm4, %xmm5
8991 ; SSE2-NEXT: movdqa %xmm0, %xmm6
8992 ; SSE2-NEXT: pxor %xmm4, %xmm6
8993 ; SSE2-NEXT: movdqa %xmm6, %xmm7
8994 ; SSE2-NEXT: pcmpgtd %xmm5, %xmm7
8995 ; SSE2-NEXT: pshufd {{.*#+}} xmm8 = xmm7[0,0,2,2]
8996 ; SSE2-NEXT: pcmpeqd %xmm5, %xmm6
8997 ; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm6[1,1,3,3]
8998 ; SSE2-NEXT: pand %xmm8, %xmm5
8999 ; SSE2-NEXT: pshufd {{.*#+}} xmm6 = xmm7[1,1,3,3]
9000 ; SSE2-NEXT: por %xmm5, %xmm6
9001 ; SSE2-NEXT: pand %xmm6, %xmm0
9002 ; SSE2-NEXT: pandn %xmm2, %xmm6
9003 ; SSE2-NEXT: por %xmm6, %xmm0
9004 ; SSE2-NEXT: movdqa %xmm3, %xmm2
9005 ; SSE2-NEXT: pxor %xmm4, %xmm2
9006 ; SSE2-NEXT: pxor %xmm1, %xmm4
9007 ; SSE2-NEXT: movdqa %xmm4, %xmm5
9008 ; SSE2-NEXT: pcmpgtd %xmm2, %xmm5
9009 ; SSE2-NEXT: pshufd {{.*#+}} xmm6 = xmm5[0,0,2,2]
9010 ; SSE2-NEXT: pcmpeqd %xmm2, %xmm4
9011 ; SSE2-NEXT: pshufd {{.*#+}} xmm2 = xmm4[1,1,3,3]
9012 ; SSE2-NEXT: pand %xmm6, %xmm2
9013 ; SSE2-NEXT: pshufd {{.*#+}} xmm4 = xmm5[1,1,3,3]
9014 ; SSE2-NEXT: por %xmm2, %xmm4
9015 ; SSE2-NEXT: pand %xmm4, %xmm1
9016 ; SSE2-NEXT: pandn %xmm3, %xmm4
9017 ; SSE2-NEXT: por %xmm4, %xmm1
9018 ; SSE2-NEXT: retq
9082 ; SSE2-LABEL: test175:
9083 ; SSE2: # %bb.0: # %entry
9084 ; SSE2-NEXT: movdqa {{.*#+}} xmm4 = [9223372039002259456,9223372039002259456]
9085 ; SSE2-NEXT: movdqa %xmm0, %xmm5
9086 ; SSE2-NEXT: pxor %xmm4, %xmm5
9087 ; SSE2-NEXT: movdqa %xmm2, %xmm6
9088 ; SSE2-NEXT: pxor %xmm4, %xmm6
9089 ; SSE2-NEXT: movdqa %xmm6, %xmm7
9090 ; SSE2-NEXT: pcmpgtd %xmm5, %xmm7
9091 ; SSE2-NEXT: pshufd {{.*#+}} xmm8 = xmm7[0,0,2,2]
9092 ; SSE2-NEXT: pcmpeqd %xmm5, %xmm6
9093 ; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm6[1,1,3,3]
9094 ; SSE2-NEXT: pand %xmm8, %xmm5
9095 ; SSE2-NEXT: pshufd {{.*#+}} xmm6 = xmm7[1,1,3,3]
9096 ; SSE2-NEXT: por %xmm5, %xmm6
9097 ; SSE2-NEXT: pand %xmm6, %xmm0
9098 ; SSE2-NEXT: pandn %xmm2, %xmm6
9099 ; SSE2-NEXT: por %xmm6, %xmm0
9100 ; SSE2-NEXT: movdqa %xmm1, %xmm2
9101 ; SSE2-NEXT: pxor %xmm4, %xmm2
9102 ; SSE2-NEXT: pxor %xmm3, %xmm4
9103 ; SSE2-NEXT: movdqa %xmm4, %xmm5
9104 ; SSE2-NEXT: pcmpgtd %xmm2, %xmm5
9105 ; SSE2-NEXT: pshufd {{.*#+}} xmm6 = xmm5[0,0,2,2]
9106 ; SSE2-NEXT: pcmpeqd %xmm2, %xmm4
9107 ; SSE2-NEXT: pshufd {{.*#+}} xmm2 = xmm4[1,1,3,3]
9108 ; SSE2-NEXT: pand %xmm6, %xmm2
9109 ; SSE2-NEXT: pshufd {{.*#+}} xmm4 = xmm5[1,1,3,3]
9110 ; SSE2-NEXT: por %xmm2, %xmm4
9111 ; SSE2-NEXT: pand %xmm4, %xmm1
9112 ; SSE2-NEXT: pandn %xmm3, %xmm4
9113 ; SSE2-NEXT: por %xmm4, %xmm1
9114 ; SSE2-NEXT: retq
9179 ; SSE2-LABEL: test176:
9180 ; SSE2: # %bb.0: # %entry
9181 ; SSE2-NEXT: movdqa {{.*#+}} xmm4 = [9223372039002259456,9223372039002259456]
9182 ; SSE2-NEXT: movdqa %xmm0, %xmm5
9183 ; SSE2-NEXT: pxor %xmm4, %xmm5
9184 ; SSE2-NEXT: movdqa %xmm2, %xmm6
9185 ; SSE2-NEXT: pxor %xmm4, %xmm6
9186 ; SSE2-NEXT: movdqa %xmm6, %xmm7
9187 ; SSE2-NEXT: pcmpgtd %xmm5, %xmm7
9188 ; SSE2-NEXT: pshufd {{.*#+}} xmm8 = xmm7[0,0,2,2]
9189 ; SSE2-NEXT: pcmpeqd %xmm5, %xmm6
9190 ; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm6[1,1,3,3]
9191 ; SSE2-NEXT: pand %xmm8, %xmm5
9192 ; SSE2-NEXT: pshufd {{.*#+}} xmm6 = xmm7[1,1,3,3]
9193 ; SSE2-NEXT: por %xmm5, %xmm6
9194 ; SSE2-NEXT: pand %xmm6, %xmm0
9195 ; SSE2-NEXT: pandn %xmm2, %xmm6
9196 ; SSE2-NEXT: por %xmm6, %xmm0
9197 ; SSE2-NEXT: movdqa %xmm1, %xmm2
9198 ; SSE2-NEXT: pxor %xmm4, %xmm2
9199 ; SSE2-NEXT: pxor %xmm3, %xmm4
9200 ; SSE2-NEXT: movdqa %xmm4, %xmm5
9201 ; SSE2-NEXT: pcmpgtd %xmm2, %xmm5
9202 ; SSE2-NEXT: pshufd {{.*#+}} xmm6 = xmm5[0,0,2,2]
9203 ; SSE2-NEXT: pcmpeqd %xmm2, %xmm4
9204 ; SSE2-NEXT: pshufd {{.*#+}} xmm2 = xmm4[1,1,3,3]
9205 ; SSE2-NEXT: pand %xmm6, %xmm2
9206 ; SSE2-NEXT: pshufd {{.*#+}} xmm4 = xmm5[1,1,3,3]
9207 ; SSE2-NEXT: por %xmm2, %xmm4
9208 ; SSE2-NEXT: pand %xmm4, %xmm1
9209 ; SSE2-NEXT: pandn %xmm3, %xmm4
9210 ; SSE2-NEXT: por %xmm4, %xmm1
9211 ; SSE2-NEXT: retq
9276 ; SSE2-LABEL: test177:
9277 ; SSE2: # %bb.0: # %entry
9278 ; SSE2-NEXT: movdqa {{.*#+}} xmm2 = [2147483648,2147483648]
9279 ; SSE2-NEXT: movdqa %xmm0, %xmm3
9280 ; SSE2-NEXT: pxor %xmm2, %xmm3
9281 ; SSE2-NEXT: pxor %xmm1, %xmm2
9282 ; SSE2-NEXT: movdqa %xmm2, %xmm4
9283 ; SSE2-NEXT: pcmpgtd %xmm3, %xmm4
9284 ; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm4[0,0,2,2]
9285 ; SSE2-NEXT: pcmpeqd %xmm3, %xmm2
9286 ; SSE2-NEXT: pshufd {{.*#+}} xmm2 = xmm2[1,1,3,3]
9287 ; SSE2-NEXT: pand %xmm5, %xmm2
9288 ; SSE2-NEXT: pshufd {{.*#+}} xmm3 = xmm4[1,1,3,3]
9289 ; SSE2-NEXT: por %xmm2, %xmm3
9290 ; SSE2-NEXT: pand %xmm3, %xmm0
9291 ; SSE2-NEXT: pandn %xmm1, %xmm3
9292 ; SSE2-NEXT: por %xmm3, %xmm0
9293 ; SSE2-NEXT: retq
9335 ; SSE2-LABEL: test178:
9336 ; SSE2: # %bb.0: # %entry
9337 ; SSE2-NEXT: movdqa {{.*#+}} xmm2 = [2147483648,2147483648]
9338 ; SSE2-NEXT: movdqa %xmm0, %xmm3
9339 ; SSE2-NEXT: pxor %xmm2, %xmm3
9340 ; SSE2-NEXT: pxor %xmm1, %xmm2
9341 ; SSE2-NEXT: movdqa %xmm2, %xmm4
9342 ; SSE2-NEXT: pcmpgtd %xmm3, %xmm4
9343 ; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm4[0,0,2,2]
9344 ; SSE2-NEXT: pcmpeqd %xmm3, %xmm2
9345 ; SSE2-NEXT: pshufd {{.*#+}} xmm2 = xmm2[1,1,3,3]
9346 ; SSE2-NEXT: pand %xmm5, %xmm2
9347 ; SSE2-NEXT: pshufd {{.*#+}} xmm3 = xmm4[1,1,3,3]
9348 ; SSE2-NEXT: por %xmm2, %xmm3
9349 ; SSE2-NEXT: pand %xmm3, %xmm0
9350 ; SSE2-NEXT: pandn %xmm1, %xmm3
9351 ; SSE2-NEXT: por %xmm3, %xmm0
9352 ; SSE2-NEXT: retq
9394 ; SSE2-LABEL: test179:
9395 ; SSE2: # %bb.0: # %entry
9396 ; SSE2-NEXT: movdqa {{.*#+}} xmm2 = [2147483648,2147483648]
9397 ; SSE2-NEXT: movdqa %xmm1, %xmm3
9398 ; SSE2-NEXT: pxor %xmm2, %xmm3
9399 ; SSE2-NEXT: pxor %xmm0, %xmm2
9400 ; SSE2-NEXT: movdqa %xmm2, %xmm4
9401 ; SSE2-NEXT: pcmpgtd %xmm3, %xmm4
9402 ; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm4[0,0,2,2]
9403 ; SSE2-NEXT: pcmpeqd %xmm3, %xmm2
9404 ; SSE2-NEXT: pshufd {{.*#+}} xmm2 = xmm2[1,1,3,3]
9405 ; SSE2-NEXT: pand %xmm5, %xmm2
9406 ; SSE2-NEXT: pshufd {{.*#+}} xmm3 = xmm4[1,1,3,3]
9407 ; SSE2-NEXT: por %xmm2, %xmm3
9408 ; SSE2-NEXT: pand %xmm3, %xmm0
9409 ; SSE2-NEXT: pandn %xmm1, %xmm3
9410 ; SSE2-NEXT: por %xmm3, %xmm0
9411 ; SSE2-NEXT: retq
9452 ; SSE2-LABEL: test180:
9453 ; SSE2: # %bb.0: # %entry
9454 ; SSE2-NEXT: movdqa {{.*#+}} xmm2 = [2147483648,2147483648]
9455 ; SSE2-NEXT: movdqa %xmm1, %xmm3
9456 ; SSE2-NEXT: pxor %xmm2, %xmm3
9457 ; SSE2-NEXT: pxor %xmm0, %xmm2
9458 ; SSE2-NEXT: movdqa %xmm2, %xmm4
9459 ; SSE2-NEXT: pcmpgtd %xmm3, %xmm4
9460 ; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm4[0,0,2,2]
9461 ; SSE2-NEXT: pcmpeqd %xmm3, %xmm2
9462 ; SSE2-NEXT: pshufd {{.*#+}} xmm2 = xmm2[1,1,3,3]
9463 ; SSE2-NEXT: pand %xmm5, %xmm2
9464 ; SSE2-NEXT: pshufd {{.*#+}} xmm3 = xmm4[1,1,3,3]
9465 ; SSE2-NEXT: por %xmm2, %xmm3
9466 ; SSE2-NEXT: pand %xmm3, %xmm0
9467 ; SSE2-NEXT: pandn %xmm1, %xmm3
9468 ; SSE2-NEXT: por %xmm3, %xmm0
9469 ; SSE2-NEXT: retq
9510 ; SSE2-LABEL: test181:
9511 ; SSE2: # %bb.0: # %entry
9512 ; SSE2-NEXT: movdqa {{.*#+}} xmm2 = [9223372039002259456,9223372039002259456]
9513 ; SSE2-NEXT: movdqa %xmm0, %xmm3
9514 ; SSE2-NEXT: pxor %xmm2, %xmm3
9515 ; SSE2-NEXT: pxor %xmm1, %xmm2
9516 ; SSE2-NEXT: movdqa %xmm2, %xmm4
9517 ; SSE2-NEXT: pcmpgtd %xmm3, %xmm4
9518 ; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm4[0,0,2,2]
9519 ; SSE2-NEXT: pcmpeqd %xmm3, %xmm2
9520 ; SSE2-NEXT: pshufd {{.*#+}} xmm2 = xmm2[1,1,3,3]
9521 ; SSE2-NEXT: pand %xmm5, %xmm2
9522 ; SSE2-NEXT: pshufd {{.*#+}} xmm3 = xmm4[1,1,3,3]
9523 ; SSE2-NEXT: por %xmm2, %xmm3
9524 ; SSE2-NEXT: pand %xmm3, %xmm0
9525 ; SSE2-NEXT: pandn %xmm1, %xmm3
9526 ; SSE2-NEXT: por %xmm3, %xmm0
9527 ; SSE2-NEXT: retq
9578 ; SSE2-LABEL: test182:
9579 ; SSE2: # %bb.0: # %entry
9580 ; SSE2-NEXT: movdqa {{.*#+}} xmm2 = [9223372039002259456,9223372039002259456]
9581 ; SSE2-NEXT: movdqa %xmm0, %xmm3
9582 ; SSE2-NEXT: pxor %xmm2, %xmm3
9583 ; SSE2-NEXT: pxor %xmm1, %xmm2
9584 ; SSE2-NEXT: movdqa %xmm2, %xmm4
9585 ; SSE2-NEXT: pcmpgtd %xmm3, %xmm4
9586 ; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm4[0,0,2,2]
9587 ; SSE2-NEXT: pcmpeqd %xmm3, %xmm2
9588 ; SSE2-NEXT: pshufd {{.*#+}} xmm2 = xmm2[1,1,3,3]
9589 ; SSE2-NEXT: pand %xmm5, %xmm2
9590 ; SSE2-NEXT: pshufd {{.*#+}} xmm3 = xmm4[1,1,3,3]
9591 ; SSE2-NEXT: por %xmm2, %xmm3
9592 ; SSE2-NEXT: pand %xmm3, %xmm0
9593 ; SSE2-NEXT: pandn %xmm1, %xmm3
9594 ; SSE2-NEXT: por %xmm3, %xmm0
9595 ; SSE2-NEXT: retq
9646 ; SSE2-LABEL: test183:
9647 ; SSE2: # %bb.0: # %entry
9648 ; SSE2-NEXT: movdqa {{.*#+}} xmm2 = [9223372039002259456,9223372039002259456]
9649 ; SSE2-NEXT: movdqa %xmm1, %xmm3
9650 ; SSE2-NEXT: pxor %xmm2, %xmm3
9651 ; SSE2-NEXT: pxor %xmm0, %xmm2
9652 ; SSE2-NEXT: movdqa %xmm2, %xmm4
9653 ; SSE2-NEXT: pcmpgtd %xmm3, %xmm4
9654 ; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm4[0,0,2,2]
9655 ; SSE2-NEXT: pcmpeqd %xmm3, %xmm2
9656 ; SSE2-NEXT: pshufd {{.*#+}} xmm2 = xmm2[1,1,3,3]
9657 ; SSE2-NEXT: pand %xmm5, %xmm2
9658 ; SSE2-NEXT: pshufd {{.*#+}} xmm3 = xmm4[1,1,3,3]
9659 ; SSE2-NEXT: por %xmm2, %xmm3
9660 ; SSE2-NEXT: pand %xmm3, %xmm0
9661 ; SSE2-NEXT: pandn %xmm1, %xmm3
9662 ; SSE2-NEXT: por %xmm3, %xmm0
9663 ; SSE2-NEXT: retq
9714 ; SSE2-LABEL: test184:
9715 ; SSE2: # %bb.0: # %entry
9716 ; SSE2-NEXT: movdqa {{.*#+}} xmm2 = [9223372039002259456,9223372039002259456]
9717 ; SSE2-NEXT: movdqa %xmm1, %xmm3
9718 ; SSE2-NEXT: pxor %xmm2, %xmm3
9719 ; SSE2-NEXT: pxor %xmm0, %xmm2
9720 ; SSE2-NEXT: movdqa %xmm2, %xmm4
9721 ; SSE2-NEXT: pcmpgtd %xmm3, %xmm4
9722 ; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm4[0,0,2,2]
9723 ; SSE2-NEXT: pcmpeqd %xmm3, %xmm2
9724 ; SSE2-NEXT: pshufd {{.*#+}} xmm2 = xmm2[1,1,3,3]
9725 ; SSE2-NEXT: pand %xmm5, %xmm2
9726 ; SSE2-NEXT: pshufd {{.*#+}} xmm3 = xmm4[1,1,3,3]
9727 ; SSE2-NEXT: por %xmm2, %xmm3
9728 ; SSE2-NEXT: pand %xmm3, %xmm0
9729 ; SSE2-NEXT: pandn %xmm1, %xmm3
9730 ; SSE2-NEXT: por %xmm3, %xmm0
9731 ; SSE2-NEXT: retq
9782 ; SSE2-LABEL: test185:
9783 ; SSE2: # %bb.0: # %entry
9784 ; SSE2-NEXT: movdqa {{.*#+}} xmm2 = [2147483648,2147483648]
9785 ; SSE2-NEXT: movdqa %xmm1, %xmm3
9786 ; SSE2-NEXT: pxor %xmm2, %xmm3
9787 ; SSE2-NEXT: pxor %xmm0, %xmm2
9788 ; SSE2-NEXT: movdqa %xmm2, %xmm4
9789 ; SSE2-NEXT: pcmpgtd %xmm3, %xmm4
9790 ; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm4[0,0,2,2]
9791 ; SSE2-NEXT: pcmpeqd %xmm3, %xmm2
9792 ; SSE2-NEXT: pshufd {{.*#+}} xmm2 = xmm2[1,1,3,3]
9793 ; SSE2-NEXT: pand %xmm5, %xmm2
9794 ; SSE2-NEXT: pshufd {{.*#+}} xmm3 = xmm4[1,1,3,3]
9795 ; SSE2-NEXT: por %xmm2, %xmm3
9796 ; SSE2-NEXT: pand %xmm3, %xmm0
9797 ; SSE2-NEXT: pandn %xmm1, %xmm3
9798 ; SSE2-NEXT: por %xmm3, %xmm0
9799 ; SSE2-NEXT: retq
9840 ; SSE2-LABEL: test186:
9841 ; SSE2: # %bb.0: # %entry
9842 ; SSE2-NEXT: movdqa {{.*#+}} xmm2 = [2147483648,2147483648]
9843 ; SSE2-NEXT: movdqa %xmm1, %xmm3
9844 ; SSE2-NEXT: pxor %xmm2, %xmm3
9845 ; SSE2-NEXT: pxor %xmm0, %xmm2
9846 ; SSE2-NEXT: movdqa %xmm2, %xmm4
9847 ; SSE2-NEXT: pcmpgtd %xmm3, %xmm4
9848 ; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm4[0,0,2,2]
9849 ; SSE2-NEXT: pcmpeqd %xmm3, %xmm2
9850 ; SSE2-NEXT: pshufd {{.*#+}} xmm2 = xmm2[1,1,3,3]
9851 ; SSE2-NEXT: pand %xmm5, %xmm2
9852 ; SSE2-NEXT: pshufd {{.*#+}} xmm3 = xmm4[1,1,3,3]
9853 ; SSE2-NEXT: por %xmm2, %xmm3
9854 ; SSE2-NEXT: pand %xmm3, %xmm0
9855 ; SSE2-NEXT: pandn %xmm1, %xmm3
9856 ; SSE2-NEXT: por %xmm3, %xmm0
9857 ; SSE2-NEXT: retq
9898 ; SSE2-LABEL: test187:
9899 ; SSE2: # %bb.0: # %entry
9900 ; SSE2-NEXT: movdqa {{.*#+}} xmm2 = [2147483648,2147483648]
9901 ; SSE2-NEXT: movdqa %xmm0, %xmm3
9902 ; SSE2-NEXT: pxor %xmm2, %xmm3
9903 ; SSE2-NEXT: pxor %xmm1, %xmm2
9904 ; SSE2-NEXT: movdqa %xmm2, %xmm4
9905 ; SSE2-NEXT: pcmpgtd %xmm3, %xmm4
9906 ; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm4[0,0,2,2]
9907 ; SSE2-NEXT: pcmpeqd %xmm3, %xmm2
9908 ; SSE2-NEXT: pshufd {{.*#+}} xmm2 = xmm2[1,1,3,3]
9909 ; SSE2-NEXT: pand %xmm5, %xmm2
9910 ; SSE2-NEXT: pshufd {{.*#+}} xmm3 = xmm4[1,1,3,3]
9911 ; SSE2-NEXT: por %xmm2, %xmm3
9912 ; SSE2-NEXT: pand %xmm3, %xmm0
9913 ; SSE2-NEXT: pandn %xmm1, %xmm3
9914 ; SSE2-NEXT: por %xmm3, %xmm0
9915 ; SSE2-NEXT: retq
9957 ; SSE2-LABEL: test188:
9958 ; SSE2: # %bb.0: # %entry
9959 ; SSE2-NEXT: movdqa {{.*#+}} xmm2 = [2147483648,2147483648]
9960 ; SSE2-NEXT: movdqa %xmm0, %xmm3
9961 ; SSE2-NEXT: pxor %xmm2, %xmm3
9962 ; SSE2-NEXT: pxor %xmm1, %xmm2
9963 ; SSE2-NEXT: movdqa %xmm2, %xmm4
9964 ; SSE2-NEXT: pcmpgtd %xmm3, %xmm4
9965 ; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm4[0,0,2,2]
9966 ; SSE2-NEXT: pcmpeqd %xmm3, %xmm2
9967 ; SSE2-NEXT: pshufd {{.*#+}} xmm2 = xmm2[1,1,3,3]
9968 ; SSE2-NEXT: pand %xmm5, %xmm2
9969 ; SSE2-NEXT: pshufd {{.*#+}} xmm3 = xmm4[1,1,3,3]
9970 ; SSE2-NEXT: por %xmm2, %xmm3
9971 ; SSE2-NEXT: pand %xmm3, %xmm0
9972 ; SSE2-NEXT: pandn %xmm1, %xmm3
9973 ; SSE2-NEXT: por %xmm3, %xmm0
9974 ; SSE2-NEXT: retq
10016 ; SSE2-LABEL: test189:
10017 ; SSE2: # %bb.0: # %entry
10018 ; SSE2-NEXT: movdqa {{.*#+}} xmm2 = [9223372039002259456,9223372039002259456]
10019 ; SSE2-NEXT: movdqa %xmm1, %xmm3
10020 ; SSE2-NEXT: pxor %xmm2, %xmm3
10021 ; SSE2-NEXT: pxor %xmm0, %xmm2
10022 ; SSE2-NEXT: movdqa %xmm2, %xmm4
10023 ; SSE2-NEXT: pcmpgtd %xmm3, %xmm4
10024 ; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm4[0,0,2,2]
10025 ; SSE2-NEXT: pcmpeqd %xmm3, %xmm2
10026 ; SSE2-NEXT: pshufd {{.*#+}} xmm2 = xmm2[1,1,3,3]
10027 ; SSE2-NEXT: pand %xmm5, %xmm2
10028 ; SSE2-NEXT: pshufd {{.*#+}} xmm3 = xmm4[1,1,3,3]
10029 ; SSE2-NEXT: por %xmm2, %xmm3
10030 ; SSE2-NEXT: pand %xmm3, %xmm0
10031 ; SSE2-NEXT: pandn %xmm1, %xmm3
10032 ; SSE2-NEXT: por %xmm3, %xmm0
10033 ; SSE2-NEXT: retq
10084 ; SSE2-LABEL: test190:
10085 ; SSE2: # %bb.0: # %entry
10086 ; SSE2-NEXT: movdqa {{.*#+}} xmm2 = [9223372039002259456,9223372039002259456]
10087 ; SSE2-NEXT: movdqa %xmm1, %xmm3
10088 ; SSE2-NEXT: pxor %xmm2, %xmm3
10089 ; SSE2-NEXT: pxor %xmm0, %xmm2
10090 ; SSE2-NEXT: movdqa %xmm2, %xmm4
10091 ; SSE2-NEXT: pcmpgtd %xmm3, %xmm4
10092 ; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm4[0,0,2,2]
10093 ; SSE2-NEXT: pcmpeqd %xmm3, %xmm2
10094 ; SSE2-NEXT: pshufd {{.*#+}} xmm2 = xmm2[1,1,3,3]
10095 ; SSE2-NEXT: pand %xmm5, %xmm2
10096 ; SSE2-NEXT: pshufd {{.*#+}} xmm3 = xmm4[1,1,3,3]
10097 ; SSE2-NEXT: por %xmm2, %xmm3
10098 ; SSE2-NEXT: pand %xmm3, %xmm0
10099 ; SSE2-NEXT: pandn %xmm1, %xmm3
10100 ; SSE2-NEXT: por %xmm3, %xmm0
10101 ; SSE2-NEXT: retq
10152 ; SSE2-LABEL: test191:
10153 ; SSE2: # %bb.0: # %entry
10154 ; SSE2-NEXT: movdqa {{.*#+}} xmm2 = [9223372039002259456,9223372039002259456]
10155 ; SSE2-NEXT: movdqa %xmm0, %xmm3
10156 ; SSE2-NEXT: pxor %xmm2, %xmm3
10157 ; SSE2-NEXT: pxor %xmm1, %xmm2
10158 ; SSE2-NEXT: movdqa %xmm2, %xmm4
10159 ; SSE2-NEXT: pcmpgtd %xmm3, %xmm4
10160 ; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm4[0,0,2,2]
10161 ; SSE2-NEXT: pcmpeqd %xmm3, %xmm2
10162 ; SSE2-NEXT: pshufd {{.*#+}} xmm2 = xmm2[1,1,3,3]
10163 ; SSE2-NEXT: pand %xmm5, %xmm2
10164 ; SSE2-NEXT: pshufd {{.*#+}} xmm3 = xmm4[1,1,3,3]
10165 ; SSE2-NEXT: por %xmm2, %xmm3
10166 ; SSE2-NEXT: pand %xmm3, %xmm0
10167 ; SSE2-NEXT: pandn %xmm1, %xmm3
10168 ; SSE2-NEXT: por %xmm3, %xmm0
10169 ; SSE2-NEXT: retq
10220 ; SSE2-LABEL: test192:
10221 ; SSE2: # %bb.0: # %entry
10222 ; SSE2-NEXT: movdqa {{.*#+}} xmm2 = [9223372039002259456,9223372039002259456]
10223 ; SSE2-NEXT: movdqa %xmm0, %xmm3
10224 ; SSE2-NEXT: pxor %xmm2, %xmm3
10225 ; SSE2-NEXT: pxor %xmm1, %xmm2
10226 ; SSE2-NEXT: movdqa %xmm2, %xmm4
10227 ; SSE2-NEXT: pcmpgtd %xmm3, %xmm4
10228 ; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm4[0,0,2,2]
10229 ; SSE2-NEXT: pcmpeqd %xmm3, %xmm2
10230 ; SSE2-NEXT: pshufd {{.*#+}} xmm2 = xmm2[1,1,3,3]
10231 ; SSE2-NEXT: pand %xmm5, %xmm2
10232 ; SSE2-NEXT: pshufd {{.*#+}} xmm3 = xmm4[1,1,3,3]
10233 ; SSE2-NEXT: por %xmm2, %xmm3
10234 ; SSE2-NEXT: pand %xmm3, %xmm0
10235 ; SSE2-NEXT: pandn %xmm1, %xmm3
10236 ; SSE2-NEXT: por %xmm3, %xmm0
10237 ; SSE2-NEXT: retq
10289 ; SSE2-LABEL: concat_smin_smax:
10290 ; SSE2: # %bb.0:
10291 ; SSE2-NEXT: movdqa %xmm0, %xmm8
10292 ; SSE2-NEXT: movdqa {{.*#+}} xmm11 = [2147483648,2147483648]
10293 ; SSE2-NEXT: movdqa %xmm0, %xmm6
10294 ; SSE2-NEXT: pxor %xmm11, %xmm6
10295 ; SSE2-NEXT: movdqa %xmm2, %xmm9
10296 ; SSE2-NEXT: pxor %xmm11, %xmm9
10297 ; SSE2-NEXT: movdqa %xmm9, %xmm0
10298 ; SSE2-NEXT: pcmpgtd %xmm6, %xmm0
10299 ; SSE2-NEXT: pshufd {{.*#+}} xmm4 = xmm0[0,0,2,2]
10300 ; SSE2-NEXT: movdqa %xmm9, %xmm5
10301 ; SSE2-NEXT: pcmpeqd %xmm6, %xmm5
10302 ; SSE2-NEXT: pshufd {{.*#+}} xmm10 = xmm5[1,1,3,3]
10303 ; SSE2-NEXT: pand %xmm10, %xmm4
10304 ; SSE2-NEXT: pshufd {{.*#+}} xmm0 = xmm0[1,1,3,3]
10305 ; SSE2-NEXT: por %xmm4, %xmm0
10306 ; SSE2-NEXT: movdqa %xmm8, %xmm4
10307 ; SSE2-NEXT: pand %xmm0, %xmm4
10308 ; SSE2-NEXT: pandn %xmm2, %xmm0
10309 ; SSE2-NEXT: por %xmm4, %xmm0
10310 ; SSE2-NEXT: movdqa %xmm1, %xmm4
10311 ; SSE2-NEXT: pxor %xmm11, %xmm4
10312 ; SSE2-NEXT: pxor %xmm3, %xmm11
10313 ; SSE2-NEXT: movdqa %xmm11, %xmm5
10314 ; SSE2-NEXT: pcmpgtd %xmm4, %xmm5
10315 ; SSE2-NEXT: pshufd {{.*#+}} xmm12 = xmm5[0,0,2,2]
10316 ; SSE2-NEXT: movdqa %xmm11, %xmm7
10317 ; SSE2-NEXT: pcmpeqd %xmm4, %xmm7
10318 ; SSE2-NEXT: pshufd {{.*#+}} xmm13 = xmm7[1,1,3,3]
10319 ; SSE2-NEXT: pand %xmm13, %xmm12
10320 ; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm5[1,1,3,3]
10321 ; SSE2-NEXT: por %xmm12, %xmm5
10322 ; SSE2-NEXT: movdqa %xmm1, %xmm7
10323 ; SSE2-NEXT: pand %xmm5, %xmm7
10324 ; SSE2-NEXT: pandn %xmm3, %xmm5
10325 ; SSE2-NEXT: por %xmm7, %xmm5
10326 ; SSE2-NEXT: pcmpgtd %xmm9, %xmm6
10327 ; SSE2-NEXT: pshufd {{.*#+}} xmm7 = xmm6[0,0,2,2]
10328 ; SSE2-NEXT: pand %xmm10, %xmm7
10329 ; SSE2-NEXT: pshufd {{.*#+}} xmm6 = xmm6[1,1,3,3]
10330 ; SSE2-NEXT: por %xmm7, %xmm6
10331 ; SSE2-NEXT: pand %xmm6, %xmm8
10332 ; SSE2-NEXT: pandn %xmm2, %xmm6
10333 ; SSE2-NEXT: por %xmm8, %xmm6
10334 ; SSE2-NEXT: pcmpgtd %xmm11, %xmm4
10335 ; SSE2-NEXT: pshufd {{.*#+}} xmm2 = xmm4[0,0,2,2]
10336 ; SSE2-NEXT: pand %xmm13, %xmm2
10337 ; SSE2-NEXT: pshufd {{.*#+}} xmm4 = xmm4[1,1,3,3]
10338 ; SSE2-NEXT: por %xmm2, %xmm4
10339 ; SSE2-NEXT: pand %xmm4, %xmm1
10340 ; SSE2-NEXT: pandn %xmm3, %xmm4
10341 ; SSE2-NEXT: por %xmm1, %xmm4
10342 ; SSE2-NEXT: movdqa %xmm5, %xmm1
10343 ; SSE2-NEXT: movdqa %xmm6, %xmm2
10344 ; SSE2-NEXT: movdqa %xmm4, %xmm3
10345 ; SSE2-NEXT: retq