• Home
  • Raw
  • Download

Lines Matching refs:SSE42

3 ; RUN: llc < %s -mtriple=i686-apple-darwin -mattr=+sse4.2   | FileCheck %s --check-prefix=X86-SSE42
7 ; RUN: llc < %s -mtriple=x86_64-apple-darwin -mattr=+sse4.2 | FileCheck %s --check-prefix=X64-SSE42
40 ; X86-SSE42-LABEL: test_reduce_v2i64:
41 ; X86-SSE42: ## %bb.0:
42 ; X86-SSE42-NEXT: movdqa %xmm0, %xmm1
43 ; X86-SSE42-NEXT: pshufd {{.*#+}} xmm2 = xmm0[2,3,2,3]
44 ; X86-SSE42-NEXT: movdqa {{.*#+}} xmm3 = [0,2147483648,0,2147483648]
45 ; X86-SSE42-NEXT: pxor %xmm3, %xmm0
46 ; X86-SSE42-NEXT: pxor %xmm2, %xmm3
47 ; X86-SSE42-NEXT: pcmpgtq %xmm3, %xmm0
48 ; X86-SSE42-NEXT: blendvpd %xmm0, %xmm1, %xmm2
49 ; X86-SSE42-NEXT: movd %xmm2, %eax
50 ; X86-SSE42-NEXT: pextrd $1, %xmm2, %edx
51 ; X86-SSE42-NEXT: retl
99 ; X64-SSE42-LABEL: test_reduce_v2i64:
100 ; X64-SSE42: ## %bb.0:
101 ; X64-SSE42-NEXT: movdqa %xmm0, %xmm1
102 ; X64-SSE42-NEXT: pshufd {{.*#+}} xmm2 = xmm0[2,3,2,3]
103 ; X64-SSE42-NEXT: movdqa {{.*#+}} xmm3 = [9223372036854775808,9223372036854775808]
104 ; X64-SSE42-NEXT: pxor %xmm3, %xmm0
105 ; X64-SSE42-NEXT: pxor %xmm2, %xmm3
106 ; X64-SSE42-NEXT: pcmpgtq %xmm3, %xmm0
107 ; X64-SSE42-NEXT: blendvpd %xmm0, %xmm1, %xmm2
108 ; X64-SSE42-NEXT: movq %xmm2, %rax
109 ; X64-SSE42-NEXT: retq
170 ; X86-SSE42-LABEL: test_reduce_v4i32:
171 ; X86-SSE42: ## %bb.0:
172 ; X86-SSE42-NEXT: pshufd {{.*#+}} xmm1 = xmm0[2,3,2,3]
173 ; X86-SSE42-NEXT: pmaxud %xmm0, %xmm1
174 ; X86-SSE42-NEXT: pshufd {{.*#+}} xmm0 = xmm1[1,1,1,1]
175 ; X86-SSE42-NEXT: pmaxud %xmm1, %xmm0
176 ; X86-SSE42-NEXT: movd %xmm0, %eax
177 ; X86-SSE42-NEXT: retl
211 ; X64-SSE42-LABEL: test_reduce_v4i32:
212 ; X64-SSE42: ## %bb.0:
213 ; X64-SSE42-NEXT: pshufd {{.*#+}} xmm1 = xmm0[2,3,2,3]
214 ; X64-SSE42-NEXT: pmaxud %xmm0, %xmm1
215 ; X64-SSE42-NEXT: pshufd {{.*#+}} xmm0 = xmm1[1,1,1,1]
216 ; X64-SSE42-NEXT: pmaxud %xmm1, %xmm0
217 ; X64-SSE42-NEXT: movd %xmm0, %eax
218 ; X64-SSE42-NEXT: retq
255 ; X86-SSE42-LABEL: test_reduce_v8i16:
256 ; X86-SSE42: ## %bb.0:
257 ; X86-SSE42-NEXT: pcmpeqd %xmm1, %xmm1
258 ; X86-SSE42-NEXT: pxor %xmm0, %xmm1
259 ; X86-SSE42-NEXT: phminposuw %xmm1, %xmm0
260 ; X86-SSE42-NEXT: movd %xmm0, %eax
261 ; X86-SSE42-NEXT: notl %eax
262 ; X86-SSE42-NEXT: ## kill: def $ax killed $ax killed $eax
263 ; X86-SSE42-NEXT: retl
291 ; X64-SSE42-LABEL: test_reduce_v8i16:
292 ; X64-SSE42: ## %bb.0:
293 ; X64-SSE42-NEXT: pcmpeqd %xmm1, %xmm1
294 ; X64-SSE42-NEXT: pxor %xmm0, %xmm1
295 ; X64-SSE42-NEXT: phminposuw %xmm1, %xmm0
296 ; X64-SSE42-NEXT: movd %xmm0, %eax
297 ; X64-SSE42-NEXT: notl %eax
298 ; X64-SSE42-NEXT: ## kill: def $ax killed $ax killed $eax
299 ; X64-SSE42-NEXT: retq
359 ; X86-SSE42-LABEL: test_reduce_v16i8:
360 ; X86-SSE42: ## %bb.0:
361 ; X86-SSE42-NEXT: pcmpeqd %xmm1, %xmm1
362 ; X86-SSE42-NEXT: pxor %xmm0, %xmm1
363 ; X86-SSE42-NEXT: movdqa %xmm1, %xmm0
364 ; X86-SSE42-NEXT: psrlw $8, %xmm0
365 ; X86-SSE42-NEXT: pminub %xmm1, %xmm0
366 ; X86-SSE42-NEXT: phminposuw %xmm0, %xmm0
367 ; X86-SSE42-NEXT: movd %xmm0, %eax
368 ; X86-SSE42-NEXT: notb %al
369 ; X86-SSE42-NEXT: ## kill: def $al killed $al killed $eax
370 ; X86-SSE42-NEXT: retl
400 ; X64-SSE42-LABEL: test_reduce_v16i8:
401 ; X64-SSE42: ## %bb.0:
402 ; X64-SSE42-NEXT: pcmpeqd %xmm1, %xmm1
403 ; X64-SSE42-NEXT: pxor %xmm0, %xmm1
404 ; X64-SSE42-NEXT: movdqa %xmm1, %xmm0
405 ; X64-SSE42-NEXT: psrlw $8, %xmm0
406 ; X64-SSE42-NEXT: pminub %xmm1, %xmm0
407 ; X64-SSE42-NEXT: phminposuw %xmm0, %xmm0
408 ; X64-SSE42-NEXT: movd %xmm0, %eax
409 ; X64-SSE42-NEXT: notb %al
410 ; X64-SSE42-NEXT: ## kill: def $al killed $al killed $eax
411 ; X64-SSE42-NEXT: retq
506 ; X86-SSE42-LABEL: test_reduce_v4i64:
507 ; X86-SSE42: ## %bb.0:
508 ; X86-SSE42-NEXT: movdqa %xmm0, %xmm2
509 ; X86-SSE42-NEXT: movdqa {{.*#+}} xmm3 = [0,2147483648,0,2147483648]
510 ; X86-SSE42-NEXT: movdqa %xmm1, %xmm4
511 ; X86-SSE42-NEXT: pxor %xmm3, %xmm4
512 ; X86-SSE42-NEXT: pxor %xmm3, %xmm0
513 ; X86-SSE42-NEXT: pcmpgtq %xmm4, %xmm0
514 ; X86-SSE42-NEXT: blendvpd %xmm0, %xmm2, %xmm1
515 ; X86-SSE42-NEXT: pshufd {{.*#+}} xmm2 = xmm1[2,3,2,3]
516 ; X86-SSE42-NEXT: movdqa %xmm1, %xmm0
517 ; X86-SSE42-NEXT: pxor %xmm3, %xmm0
518 ; X86-SSE42-NEXT: pxor %xmm2, %xmm3
519 ; X86-SSE42-NEXT: pcmpgtq %xmm3, %xmm0
520 ; X86-SSE42-NEXT: blendvpd %xmm0, %xmm1, %xmm2
521 ; X86-SSE42-NEXT: movd %xmm2, %eax
522 ; X86-SSE42-NEXT: pextrd $1, %xmm2, %edx
523 ; X86-SSE42-NEXT: retl
598 ; X64-SSE42-LABEL: test_reduce_v4i64:
599 ; X64-SSE42: ## %bb.0:
600 ; X64-SSE42-NEXT: movdqa %xmm0, %xmm2
601 ; X64-SSE42-NEXT: movdqa {{.*#+}} xmm3 = [9223372036854775808,9223372036854775808]
602 ; X64-SSE42-NEXT: movdqa %xmm1, %xmm4
603 ; X64-SSE42-NEXT: pxor %xmm3, %xmm4
604 ; X64-SSE42-NEXT: pxor %xmm3, %xmm0
605 ; X64-SSE42-NEXT: pcmpgtq %xmm4, %xmm0
606 ; X64-SSE42-NEXT: blendvpd %xmm0, %xmm2, %xmm1
607 ; X64-SSE42-NEXT: pshufd {{.*#+}} xmm2 = xmm1[2,3,2,3]
608 ; X64-SSE42-NEXT: movdqa %xmm1, %xmm0
609 ; X64-SSE42-NEXT: pxor %xmm3, %xmm0
610 ; X64-SSE42-NEXT: pxor %xmm2, %xmm3
611 ; X64-SSE42-NEXT: pcmpgtq %xmm3, %xmm0
612 ; X64-SSE42-NEXT: blendvpd %xmm0, %xmm1, %xmm2
613 ; X64-SSE42-NEXT: movq %xmm2, %rax
614 ; X64-SSE42-NEXT: retq
701 ; X86-SSE42-LABEL: test_reduce_v8i32:
702 ; X86-SSE42: ## %bb.0:
703 ; X86-SSE42-NEXT: pmaxud %xmm1, %xmm0
704 ; X86-SSE42-NEXT: pshufd {{.*#+}} xmm1 = xmm0[2,3,2,3]
705 ; X86-SSE42-NEXT: pmaxud %xmm0, %xmm1
706 ; X86-SSE42-NEXT: pshufd {{.*#+}} xmm0 = xmm1[1,1,1,1]
707 ; X86-SSE42-NEXT: pmaxud %xmm1, %xmm0
708 ; X86-SSE42-NEXT: movd %xmm0, %eax
709 ; X86-SSE42-NEXT: retl
766 ; X64-SSE42-LABEL: test_reduce_v8i32:
767 ; X64-SSE42: ## %bb.0:
768 ; X64-SSE42-NEXT: pmaxud %xmm1, %xmm0
769 ; X64-SSE42-NEXT: pshufd {{.*#+}} xmm1 = xmm0[2,3,2,3]
770 ; X64-SSE42-NEXT: pmaxud %xmm0, %xmm1
771 ; X64-SSE42-NEXT: pshufd {{.*#+}} xmm0 = xmm1[1,1,1,1]
772 ; X64-SSE42-NEXT: pmaxud %xmm1, %xmm0
773 ; X64-SSE42-NEXT: movd %xmm0, %eax
774 ; X64-SSE42-NEXT: retq
843 ; X86-SSE42-LABEL: test_reduce_v16i16:
844 ; X86-SSE42: ## %bb.0:
845 ; X86-SSE42-NEXT: pmaxuw %xmm1, %xmm0
846 ; X86-SSE42-NEXT: pcmpeqd %xmm1, %xmm1
847 ; X86-SSE42-NEXT: pxor %xmm0, %xmm1
848 ; X86-SSE42-NEXT: phminposuw %xmm1, %xmm0
849 ; X86-SSE42-NEXT: movd %xmm0, %eax
850 ; X86-SSE42-NEXT: notl %eax
851 ; X86-SSE42-NEXT: ## kill: def $ax killed $ax killed $eax
852 ; X86-SSE42-NEXT: retl
898 ; X64-SSE42-LABEL: test_reduce_v16i16:
899 ; X64-SSE42: ## %bb.0:
900 ; X64-SSE42-NEXT: pmaxuw %xmm1, %xmm0
901 ; X64-SSE42-NEXT: pcmpeqd %xmm1, %xmm1
902 ; X64-SSE42-NEXT: pxor %xmm0, %xmm1
903 ; X64-SSE42-NEXT: phminposuw %xmm1, %xmm0
904 ; X64-SSE42-NEXT: movd %xmm0, %eax
905 ; X64-SSE42-NEXT: notl %eax
906 ; X64-SSE42-NEXT: ## kill: def $ax killed $ax killed $eax
907 ; X64-SSE42-NEXT: retq
980 ; X86-SSE42-LABEL: test_reduce_v32i8:
981 ; X86-SSE42: ## %bb.0:
982 ; X86-SSE42-NEXT: pmaxub %xmm1, %xmm0
983 ; X86-SSE42-NEXT: pcmpeqd %xmm1, %xmm1
984 ; X86-SSE42-NEXT: pxor %xmm0, %xmm1
985 ; X86-SSE42-NEXT: movdqa %xmm1, %xmm0
986 ; X86-SSE42-NEXT: psrlw $8, %xmm0
987 ; X86-SSE42-NEXT: pminub %xmm1, %xmm0
988 ; X86-SSE42-NEXT: phminposuw %xmm0, %xmm0
989 ; X86-SSE42-NEXT: movd %xmm0, %eax
990 ; X86-SSE42-NEXT: notb %al
991 ; X86-SSE42-NEXT: ## kill: def $al killed $al killed $eax
992 ; X86-SSE42-NEXT: retl
1041 ; X64-SSE42-LABEL: test_reduce_v32i8:
1042 ; X64-SSE42: ## %bb.0:
1043 ; X64-SSE42-NEXT: pmaxub %xmm1, %xmm0
1044 ; X64-SSE42-NEXT: pcmpeqd %xmm1, %xmm1
1045 ; X64-SSE42-NEXT: pxor %xmm0, %xmm1
1046 ; X64-SSE42-NEXT: movdqa %xmm1, %xmm0
1047 ; X64-SSE42-NEXT: psrlw $8, %xmm0
1048 ; X64-SSE42-NEXT: pminub %xmm1, %xmm0
1049 ; X64-SSE42-NEXT: phminposuw %xmm0, %xmm0
1050 ; X64-SSE42-NEXT: movd %xmm0, %eax
1051 ; X64-SSE42-NEXT: notb %al
1052 ; X64-SSE42-NEXT: ## kill: def $al killed $al killed $eax
1053 ; X64-SSE42-NEXT: retq
1190 ; X86-SSE42-LABEL: test_reduce_v8i64:
1191 ; X86-SSE42: ## %bb.0:
1192 ; X86-SSE42-NEXT: movdqa %xmm0, %xmm4
1193 ; X86-SSE42-NEXT: movdqa {{.*#+}} xmm5 = [0,2147483648,0,2147483648]
1194 ; X86-SSE42-NEXT: movdqa %xmm2, %xmm6
1195 ; X86-SSE42-NEXT: pxor %xmm5, %xmm6
1196 ; X86-SSE42-NEXT: pxor %xmm5, %xmm0
1197 ; X86-SSE42-NEXT: pcmpgtq %xmm6, %xmm0
1198 ; X86-SSE42-NEXT: blendvpd %xmm0, %xmm4, %xmm2
1199 ; X86-SSE42-NEXT: movdqa %xmm3, %xmm4
1200 ; X86-SSE42-NEXT: pxor %xmm5, %xmm4
1201 ; X86-SSE42-NEXT: movdqa %xmm1, %xmm0
1202 ; X86-SSE42-NEXT: pxor %xmm5, %xmm0
1203 ; X86-SSE42-NEXT: pcmpgtq %xmm4, %xmm0
1204 ; X86-SSE42-NEXT: blendvpd %xmm0, %xmm1, %xmm3
1205 ; X86-SSE42-NEXT: movapd %xmm3, %xmm1
1206 ; X86-SSE42-NEXT: xorpd %xmm5, %xmm1
1207 ; X86-SSE42-NEXT: movapd %xmm2, %xmm0
1208 ; X86-SSE42-NEXT: xorpd %xmm5, %xmm0
1209 ; X86-SSE42-NEXT: pcmpgtq %xmm1, %xmm0
1210 ; X86-SSE42-NEXT: blendvpd %xmm0, %xmm2, %xmm3
1211 ; X86-SSE42-NEXT: pshufd {{.*#+}} xmm1 = xmm3[2,3,2,3]
1212 ; X86-SSE42-NEXT: movdqa %xmm3, %xmm0
1213 ; X86-SSE42-NEXT: pxor %xmm5, %xmm0
1214 ; X86-SSE42-NEXT: pxor %xmm1, %xmm5
1215 ; X86-SSE42-NEXT: pcmpgtq %xmm5, %xmm0
1216 ; X86-SSE42-NEXT: blendvpd %xmm0, %xmm3, %xmm1
1217 ; X86-SSE42-NEXT: movd %xmm1, %eax
1218 ; X86-SSE42-NEXT: pextrd $1, %xmm1, %edx
1219 ; X86-SSE42-NEXT: retl
1337 ; X64-SSE42-LABEL: test_reduce_v8i64:
1338 ; X64-SSE42: ## %bb.0:
1339 ; X64-SSE42-NEXT: movdqa %xmm0, %xmm4
1340 ; X64-SSE42-NEXT: movdqa {{.*#+}} xmm5 = [9223372036854775808,9223372036854775808]
1341 ; X64-SSE42-NEXT: movdqa %xmm2, %xmm6
1342 ; X64-SSE42-NEXT: pxor %xmm5, %xmm6
1343 ; X64-SSE42-NEXT: pxor %xmm5, %xmm0
1344 ; X64-SSE42-NEXT: pcmpgtq %xmm6, %xmm0
1345 ; X64-SSE42-NEXT: blendvpd %xmm0, %xmm4, %xmm2
1346 ; X64-SSE42-NEXT: movdqa %xmm3, %xmm4
1347 ; X64-SSE42-NEXT: pxor %xmm5, %xmm4
1348 ; X64-SSE42-NEXT: movdqa %xmm1, %xmm0
1349 ; X64-SSE42-NEXT: pxor %xmm5, %xmm0
1350 ; X64-SSE42-NEXT: pcmpgtq %xmm4, %xmm0
1351 ; X64-SSE42-NEXT: blendvpd %xmm0, %xmm1, %xmm3
1352 ; X64-SSE42-NEXT: movapd %xmm3, %xmm1
1353 ; X64-SSE42-NEXT: xorpd %xmm5, %xmm1
1354 ; X64-SSE42-NEXT: movapd %xmm2, %xmm0
1355 ; X64-SSE42-NEXT: xorpd %xmm5, %xmm0
1356 ; X64-SSE42-NEXT: pcmpgtq %xmm1, %xmm0
1357 ; X64-SSE42-NEXT: blendvpd %xmm0, %xmm2, %xmm3
1358 ; X64-SSE42-NEXT: pshufd {{.*#+}} xmm1 = xmm3[2,3,2,3]
1359 ; X64-SSE42-NEXT: movdqa %xmm3, %xmm0
1360 ; X64-SSE42-NEXT: pxor %xmm5, %xmm0
1361 ; X64-SSE42-NEXT: pxor %xmm1, %xmm5
1362 ; X64-SSE42-NEXT: pcmpgtq %xmm5, %xmm0
1363 ; X64-SSE42-NEXT: blendvpd %xmm0, %xmm3, %xmm1
1364 ; X64-SSE42-NEXT: movq %xmm1, %rax
1365 ; X64-SSE42-NEXT: retq
1486 ; X86-SSE42-LABEL: test_reduce_v16i32:
1487 ; X86-SSE42: ## %bb.0:
1488 ; X86-SSE42-NEXT: pmaxud %xmm3, %xmm1
1489 ; X86-SSE42-NEXT: pmaxud %xmm2, %xmm1
1490 ; X86-SSE42-NEXT: pmaxud %xmm0, %xmm1
1491 ; X86-SSE42-NEXT: pshufd {{.*#+}} xmm0 = xmm1[2,3,2,3]
1492 ; X86-SSE42-NEXT: pmaxud %xmm1, %xmm0
1493 ; X86-SSE42-NEXT: pshufd {{.*#+}} xmm1 = xmm0[1,1,1,1]
1494 ; X86-SSE42-NEXT: pmaxud %xmm0, %xmm1
1495 ; X86-SSE42-NEXT: movd %xmm1, %eax
1496 ; X86-SSE42-NEXT: retl
1573 ; X64-SSE42-LABEL: test_reduce_v16i32:
1574 ; X64-SSE42: ## %bb.0:
1575 ; X64-SSE42-NEXT: pmaxud %xmm3, %xmm1
1576 ; X64-SSE42-NEXT: pmaxud %xmm2, %xmm1
1577 ; X64-SSE42-NEXT: pmaxud %xmm0, %xmm1
1578 ; X64-SSE42-NEXT: pshufd {{.*#+}} xmm0 = xmm1[2,3,2,3]
1579 ; X64-SSE42-NEXT: pmaxud %xmm1, %xmm0
1580 ; X64-SSE42-NEXT: pshufd {{.*#+}} xmm1 = xmm0[1,1,1,1]
1581 ; X64-SSE42-NEXT: pmaxud %xmm0, %xmm1
1582 ; X64-SSE42-NEXT: movd %xmm1, %eax
1583 ; X64-SSE42-NEXT: retq
1665 ; X86-SSE42-LABEL: test_reduce_v32i16:
1666 ; X86-SSE42: ## %bb.0:
1667 ; X86-SSE42-NEXT: pmaxuw %xmm3, %xmm1
1668 ; X86-SSE42-NEXT: pmaxuw %xmm2, %xmm1
1669 ; X86-SSE42-NEXT: pmaxuw %xmm0, %xmm1
1670 ; X86-SSE42-NEXT: pcmpeqd %xmm0, %xmm0
1671 ; X86-SSE42-NEXT: pxor %xmm1, %xmm0
1672 ; X86-SSE42-NEXT: phminposuw %xmm0, %xmm0
1673 ; X86-SSE42-NEXT: movd %xmm0, %eax
1674 ; X86-SSE42-NEXT: notl %eax
1675 ; X86-SSE42-NEXT: ## kill: def $ax killed $ax killed $eax
1676 ; X86-SSE42-NEXT: retl
1730 ; X64-SSE42-LABEL: test_reduce_v32i16:
1731 ; X64-SSE42: ## %bb.0:
1732 ; X64-SSE42-NEXT: pmaxuw %xmm3, %xmm1
1733 ; X64-SSE42-NEXT: pmaxuw %xmm2, %xmm1
1734 ; X64-SSE42-NEXT: pmaxuw %xmm0, %xmm1
1735 ; X64-SSE42-NEXT: pcmpeqd %xmm0, %xmm0
1736 ; X64-SSE42-NEXT: pxor %xmm1, %xmm0
1737 ; X64-SSE42-NEXT: phminposuw %xmm0, %xmm0
1738 ; X64-SSE42-NEXT: movd %xmm0, %eax
1739 ; X64-SSE42-NEXT: notl %eax
1740 ; X64-SSE42-NEXT: ## kill: def $ax killed $ax killed $eax
1741 ; X64-SSE42-NEXT: retq
1825 ; X86-SSE42-LABEL: test_reduce_v64i8:
1826 ; X86-SSE42: ## %bb.0:
1827 ; X86-SSE42-NEXT: pmaxub %xmm3, %xmm1
1828 ; X86-SSE42-NEXT: pmaxub %xmm2, %xmm1
1829 ; X86-SSE42-NEXT: pmaxub %xmm0, %xmm1
1830 ; X86-SSE42-NEXT: pcmpeqd %xmm0, %xmm0
1831 ; X86-SSE42-NEXT: pxor %xmm1, %xmm0
1832 ; X86-SSE42-NEXT: movdqa %xmm0, %xmm1
1833 ; X86-SSE42-NEXT: psrlw $8, %xmm1
1834 ; X86-SSE42-NEXT: pminub %xmm0, %xmm1
1835 ; X86-SSE42-NEXT: phminposuw %xmm1, %xmm0
1836 ; X86-SSE42-NEXT: movd %xmm0, %eax
1837 ; X86-SSE42-NEXT: notb %al
1838 ; X86-SSE42-NEXT: ## kill: def $al killed $al killed $eax
1839 ; X86-SSE42-NEXT: retl
1894 ; X64-SSE42-LABEL: test_reduce_v64i8:
1895 ; X64-SSE42: ## %bb.0:
1896 ; X64-SSE42-NEXT: pmaxub %xmm3, %xmm1
1897 ; X64-SSE42-NEXT: pmaxub %xmm2, %xmm1
1898 ; X64-SSE42-NEXT: pmaxub %xmm0, %xmm1
1899 ; X64-SSE42-NEXT: pcmpeqd %xmm0, %xmm0
1900 ; X64-SSE42-NEXT: pxor %xmm1, %xmm0
1901 ; X64-SSE42-NEXT: movdqa %xmm0, %xmm1
1902 ; X64-SSE42-NEXT: psrlw $8, %xmm1
1903 ; X64-SSE42-NEXT: pminub %xmm0, %xmm1
1904 ; X64-SSE42-NEXT: phminposuw %xmm1, %xmm0
1905 ; X64-SSE42-NEXT: movd %xmm0, %eax
1906 ; X64-SSE42-NEXT: notb %al
1907 ; X64-SSE42-NEXT: ## kill: def $al killed $al killed $eax
1908 ; X64-SSE42-NEXT: retq
2002 ; X86-SSE42-LABEL: test_reduce_v16i16_v8i16:
2003 ; X86-SSE42: ## %bb.0:
2004 ; X86-SSE42-NEXT: pcmpeqd %xmm1, %xmm1
2005 ; X86-SSE42-NEXT: pxor %xmm0, %xmm1
2006 ; X86-SSE42-NEXT: phminposuw %xmm1, %xmm0
2007 ; X86-SSE42-NEXT: movd %xmm0, %eax
2008 ; X86-SSE42-NEXT: notl %eax
2009 ; X86-SSE42-NEXT: ## kill: def $ax killed $ax killed $eax
2010 ; X86-SSE42-NEXT: retl
2039 ; X64-SSE42-LABEL: test_reduce_v16i16_v8i16:
2040 ; X64-SSE42: ## %bb.0:
2041 ; X64-SSE42-NEXT: pcmpeqd %xmm1, %xmm1
2042 ; X64-SSE42-NEXT: pxor %xmm0, %xmm1
2043 ; X64-SSE42-NEXT: phminposuw %xmm1, %xmm0
2044 ; X64-SSE42-NEXT: movd %xmm0, %eax
2045 ; X64-SSE42-NEXT: notl %eax
2046 ; X64-SSE42-NEXT: ## kill: def $ax killed $ax killed $eax
2047 ; X64-SSE42-NEXT: retq
2110 ; X86-SSE42-LABEL: test_reduce_v32i16_v8i16:
2111 ; X86-SSE42: ## %bb.0:
2112 ; X86-SSE42-NEXT: pcmpeqd %xmm1, %xmm1
2113 ; X86-SSE42-NEXT: pxor %xmm0, %xmm1
2114 ; X86-SSE42-NEXT: phminposuw %xmm1, %xmm0
2115 ; X86-SSE42-NEXT: movd %xmm0, %eax
2116 ; X86-SSE42-NEXT: notl %eax
2117 ; X86-SSE42-NEXT: ## kill: def $ax killed $ax killed $eax
2118 ; X86-SSE42-NEXT: retl
2147 ; X64-SSE42-LABEL: test_reduce_v32i16_v8i16:
2148 ; X64-SSE42: ## %bb.0:
2149 ; X64-SSE42-NEXT: pcmpeqd %xmm1, %xmm1
2150 ; X64-SSE42-NEXT: pxor %xmm0, %xmm1
2151 ; X64-SSE42-NEXT: phminposuw %xmm1, %xmm0
2152 ; X64-SSE42-NEXT: movd %xmm0, %eax
2153 ; X64-SSE42-NEXT: notl %eax
2154 ; X64-SSE42-NEXT: ## kill: def $ax killed $ax killed $eax
2155 ; X64-SSE42-NEXT: retq
2218 ; X86-SSE42-LABEL: test_reduce_v32i8_v16i8:
2219 ; X86-SSE42: ## %bb.0:
2220 ; X86-SSE42-NEXT: pcmpeqd %xmm1, %xmm1
2221 ; X86-SSE42-NEXT: pxor %xmm0, %xmm1
2222 ; X86-SSE42-NEXT: movdqa %xmm1, %xmm0
2223 ; X86-SSE42-NEXT: psrlw $8, %xmm0
2224 ; X86-SSE42-NEXT: pminub %xmm1, %xmm0
2225 ; X86-SSE42-NEXT: phminposuw %xmm0, %xmm0
2226 ; X86-SSE42-NEXT: movd %xmm0, %eax
2227 ; X86-SSE42-NEXT: notb %al
2228 ; X86-SSE42-NEXT: ## kill: def $al killed $al killed $eax
2229 ; X86-SSE42-NEXT: retl
2260 ; X64-SSE42-LABEL: test_reduce_v32i8_v16i8:
2261 ; X64-SSE42: ## %bb.0:
2262 ; X64-SSE42-NEXT: pcmpeqd %xmm1, %xmm1
2263 ; X64-SSE42-NEXT: pxor %xmm0, %xmm1
2264 ; X64-SSE42-NEXT: movdqa %xmm1, %xmm0
2265 ; X64-SSE42-NEXT: psrlw $8, %xmm0
2266 ; X64-SSE42-NEXT: pminub %xmm1, %xmm0
2267 ; X64-SSE42-NEXT: phminposuw %xmm0, %xmm0
2268 ; X64-SSE42-NEXT: movd %xmm0, %eax
2269 ; X64-SSE42-NEXT: notb %al
2270 ; X64-SSE42-NEXT: ## kill: def $al killed $al killed $eax
2271 ; X64-SSE42-NEXT: retq
2343 ; X86-SSE42-LABEL: test_reduce_v64i8_v16i8:
2344 ; X86-SSE42: ## %bb.0:
2345 ; X86-SSE42-NEXT: pcmpeqd %xmm1, %xmm1
2346 ; X86-SSE42-NEXT: pxor %xmm0, %xmm1
2347 ; X86-SSE42-NEXT: movdqa %xmm1, %xmm0
2348 ; X86-SSE42-NEXT: psrlw $8, %xmm0
2349 ; X86-SSE42-NEXT: pminub %xmm1, %xmm0
2350 ; X86-SSE42-NEXT: phminposuw %xmm0, %xmm0
2351 ; X86-SSE42-NEXT: movd %xmm0, %eax
2352 ; X86-SSE42-NEXT: notb %al
2353 ; X86-SSE42-NEXT: ## kill: def $al killed $al killed $eax
2354 ; X86-SSE42-NEXT: retl
2385 ; X64-SSE42-LABEL: test_reduce_v64i8_v16i8:
2386 ; X64-SSE42: ## %bb.0:
2387 ; X64-SSE42-NEXT: pcmpeqd %xmm1, %xmm1
2388 ; X64-SSE42-NEXT: pxor %xmm0, %xmm1
2389 ; X64-SSE42-NEXT: movdqa %xmm1, %xmm0
2390 ; X64-SSE42-NEXT: psrlw $8, %xmm0
2391 ; X64-SSE42-NEXT: pminub %xmm1, %xmm0
2392 ; X64-SSE42-NEXT: phminposuw %xmm0, %xmm0
2393 ; X64-SSE42-NEXT: movd %xmm0, %eax
2394 ; X64-SSE42-NEXT: notb %al
2395 ; X64-SSE42-NEXT: ## kill: def $al killed $al killed $eax
2396 ; X64-SSE42-NEXT: retq