Lines Matching refs:X64
3 …l -mtriple=x86_64-unknown-unknown -mattr=+sse2 | FileCheck %s --check-prefix=ALL --check-prefix=X64
13 ; X64-LABEL: test_mm_add_epi8:
14 ; X64: # BB#0:
15 ; X64-NEXT: paddb %xmm1, %xmm0
16 ; X64-NEXT: retq
30 ; X64-LABEL: test_mm_add_epi16:
31 ; X64: # BB#0:
32 ; X64-NEXT: paddw %xmm1, %xmm0
33 ; X64-NEXT: retq
47 ; X64-LABEL: test_mm_add_epi32:
48 ; X64: # BB#0:
49 ; X64-NEXT: paddd %xmm1, %xmm0
50 ; X64-NEXT: retq
64 ; X64-LABEL: test_mm_add_epi64:
65 ; X64: # BB#0:
66 ; X64-NEXT: paddq %xmm1, %xmm0
67 ; X64-NEXT: retq
78 ; X64-LABEL: test_mm_add_pd:
79 ; X64: # BB#0:
80 ; X64-NEXT: addpd %xmm1, %xmm0
81 ; X64-NEXT: retq
92 ; X64-LABEL: test_mm_add_sd:
93 ; X64: # BB#0:
94 ; X64-NEXT: addsd %xmm1, %xmm0
95 ; X64-NEXT: retq
109 ; X64-LABEL: test_mm_adds_epi8:
110 ; X64: # BB#0:
111 ; X64-NEXT: paddsb %xmm1, %xmm0
112 ; X64-NEXT: retq
127 ; X64-LABEL: test_mm_adds_epi16:
128 ; X64: # BB#0:
129 ; X64-NEXT: paddsw %xmm1, %xmm0
130 ; X64-NEXT: retq
145 ; X64-LABEL: test_mm_adds_epu8:
146 ; X64: # BB#0:
147 ; X64-NEXT: paddusb %xmm1, %xmm0
148 ; X64-NEXT: retq
163 ; X64-LABEL: test_mm_adds_epu16:
164 ; X64: # BB#0:
165 ; X64-NEXT: paddusw %xmm1, %xmm0
166 ; X64-NEXT: retq
181 ; X64-LABEL: test_mm_and_pd:
182 ; X64: # BB#0:
183 ; X64-NEXT: andps %xmm1, %xmm0
184 ; X64-NEXT: retq
198 ; X64-LABEL: test_mm_and_si128:
199 ; X64: # BB#0:
200 ; X64-NEXT: andps %xmm1, %xmm0
201 ; X64-NEXT: retq
212 ; X64-LABEL: test_mm_andnot_pd:
213 ; X64: # BB#0:
214 ; X64-NEXT: andnps %xmm1, %xmm0
215 ; X64-NEXT: retq
232 ; X64-LABEL: test_mm_andnot_si128:
233 ; X64: # BB#0:
234 ; X64-NEXT: pcmpeqd %xmm2, %xmm2
235 ; X64-NEXT: pxor %xmm2, %xmm0
236 ; X64-NEXT: pand %xmm1, %xmm0
237 ; X64-NEXT: retq
249 ; X64-LABEL: test_mm_avg_epu8:
250 ; X64: # BB#0:
251 ; X64-NEXT: pavgb %xmm1, %xmm0
252 ; X64-NEXT: retq
267 ; X64-LABEL: test_mm_avg_epu16:
268 ; X64: # BB#0:
269 ; X64-NEXT: pavgw %xmm1, %xmm0
270 ; X64-NEXT: retq
285 ; X64-LABEL: test_mm_bslli_si128:
286 ; X64: # BB#0:
287 ; X64-NEXT: pslldq {{.*#+}} xmm0 = zero,zero,zero,zero,zero,xmm0[0,1,2,3,4,5,6,7,8,9,10]
288 ; X64-NEXT: retq
301 ; X64-LABEL: test_mm_bsrli_si128:
302 ; X64: # BB#0:
303 ; X64-NEXT: psrldq {{.*#+}} xmm0 = xmm0[5,6,7,8,9,10,11,12,13,14,15],zero,zero,zero,zero,zero
304 ; X64-NEXT: retq
316 ; X64-LABEL: test_mm_castpd_ps:
317 ; X64: # BB#0:
318 ; X64-NEXT: retq
328 ; X64-LABEL: test_mm_castpd_si128:
329 ; X64: # BB#0:
330 ; X64-NEXT: retq
340 ; X64-LABEL: test_mm_castps_pd:
341 ; X64: # BB#0:
342 ; X64-NEXT: retq
352 ; X64-LABEL: test_mm_castps_si128:
353 ; X64: # BB#0:
354 ; X64-NEXT: retq
364 ; X64-LABEL: test_mm_castsi128_pd:
365 ; X64: # BB#0:
366 ; X64-NEXT: retq
376 ; X64-LABEL: test_mm_castsi128_ps:
377 ; X64: # BB#0:
378 ; X64-NEXT: retq
390 ; X64-LABEL: test_mm_clflush:
391 ; X64: # BB#0:
392 ; X64-NEXT: clflush (%rdi)
393 ; X64-NEXT: retq
405 ; X64-LABEL: test_mm_cmpeq_epi8:
406 ; X64: # BB#0:
407 ; X64-NEXT: pcmpeqb %xmm1, %xmm0
408 ; X64-NEXT: retq
423 ; X64-LABEL: test_mm_cmpeq_epi16:
424 ; X64: # BB#0:
425 ; X64-NEXT: pcmpeqw %xmm1, %xmm0
426 ; X64-NEXT: retq
441 ; X64-LABEL: test_mm_cmpeq_epi32:
442 ; X64: # BB#0:
443 ; X64-NEXT: pcmpeqd %xmm1, %xmm0
444 ; X64-NEXT: retq
459 ; X64-LABEL: test_mm_cmpeq_pd:
460 ; X64: # BB#0:
461 ; X64-NEXT: cmpeqpd %xmm1, %xmm0
462 ; X64-NEXT: retq
475 ; X64-LABEL: test_mm_cmpeq_sd:
476 ; X64: # BB#0:
477 ; X64-NEXT: cmpeqsd %xmm1, %xmm0
478 ; X64-NEXT: retq
491 ; X64-LABEL: test_mm_cmpge_pd:
492 ; X64: # BB#0:
493 ; X64-NEXT: cmplepd %xmm0, %xmm1
494 ; X64-NEXT: movapd %xmm1, %xmm0
495 ; X64-NEXT: retq
509 ; X64-LABEL: test_mm_cmpge_sd:
510 ; X64: # BB#0:
511 ; X64-NEXT: cmplesd %xmm0, %xmm1
512 ; X64-NEXT: movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
513 ; X64-NEXT: retq
528 ; X64-LABEL: test_mm_cmpgt_epi8:
529 ; X64: # BB#0:
530 ; X64-NEXT: pcmpgtb %xmm1, %xmm0
531 ; X64-NEXT: retq
546 ; X64-LABEL: test_mm_cmpgt_epi16:
547 ; X64: # BB#0:
548 ; X64-NEXT: pcmpgtw %xmm1, %xmm0
549 ; X64-NEXT: retq
564 ; X64-LABEL: test_mm_cmpgt_epi32:
565 ; X64: # BB#0:
566 ; X64-NEXT: pcmpgtd %xmm1, %xmm0
567 ; X64-NEXT: retq
583 ; X64-LABEL: test_mm_cmpgt_pd:
584 ; X64: # BB#0:
585 ; X64-NEXT: cmpltpd %xmm0, %xmm1
586 ; X64-NEXT: movapd %xmm1, %xmm0
587 ; X64-NEXT: retq
601 ; X64-LABEL: test_mm_cmpgt_sd:
602 ; X64: # BB#0:
603 ; X64-NEXT: cmpltsd %xmm0, %xmm1
604 ; X64-NEXT: movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
605 ; X64-NEXT: retq
620 ; X64-LABEL: test_mm_cmple_pd:
621 ; X64: # BB#0:
622 ; X64-NEXT: cmplepd %xmm1, %xmm0
623 ; X64-NEXT: retq
636 ; X64-LABEL: test_mm_cmple_sd:
637 ; X64: # BB#0:
638 ; X64-NEXT: cmplesd %xmm1, %xmm0
639 ; X64-NEXT: retq
651 ; X64-LABEL: test_mm_cmplt_epi8:
652 ; X64: # BB#0:
653 ; X64-NEXT: pcmpgtb %xmm0, %xmm1
654 ; X64-NEXT: movdqa %xmm1, %xmm0
655 ; X64-NEXT: retq
671 ; X64-LABEL: test_mm_cmplt_epi16:
672 ; X64: # BB#0:
673 ; X64-NEXT: pcmpgtw %xmm0, %xmm1
674 ; X64-NEXT: movdqa %xmm1, %xmm0
675 ; X64-NEXT: retq
691 ; X64-LABEL: test_mm_cmplt_epi32:
692 ; X64: # BB#0:
693 ; X64-NEXT: pcmpgtd %xmm0, %xmm1
694 ; X64-NEXT: movdqa %xmm1, %xmm0
695 ; X64-NEXT: retq
710 ; X64-LABEL: test_mm_cmplt_pd:
711 ; X64: # BB#0:
712 ; X64-NEXT: cmpltpd %xmm1, %xmm0
713 ; X64-NEXT: retq
726 ; X64-LABEL: test_mm_cmplt_sd:
727 ; X64: # BB#0:
728 ; X64-NEXT: cmpltsd %xmm1, %xmm0
729 ; X64-NEXT: retq
740 ; X64-LABEL: test_mm_cmpneq_pd:
741 ; X64: # BB#0:
742 ; X64-NEXT: cmpneqpd %xmm1, %xmm0
743 ; X64-NEXT: retq
756 ; X64-LABEL: test_mm_cmpneq_sd:
757 ; X64: # BB#0:
758 ; X64-NEXT: cmpneqsd %xmm1, %xmm0
759 ; X64-NEXT: retq
771 ; X64-LABEL: test_mm_cmpnge_pd:
772 ; X64: # BB#0:
773 ; X64-NEXT: cmpnlepd %xmm0, %xmm1
774 ; X64-NEXT: movapd %xmm1, %xmm0
775 ; X64-NEXT: retq
789 ; X64-LABEL: test_mm_cmpnge_sd:
790 ; X64: # BB#0:
791 ; X64-NEXT: cmpnlesd %xmm0, %xmm1
792 ; X64-NEXT: movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
793 ; X64-NEXT: retq
809 ; X64-LABEL: test_mm_cmpngt_pd:
810 ; X64: # BB#0:
811 ; X64-NEXT: cmpnltpd %xmm0, %xmm1
812 ; X64-NEXT: movapd %xmm1, %xmm0
813 ; X64-NEXT: retq
827 ; X64-LABEL: test_mm_cmpngt_sd:
828 ; X64: # BB#0:
829 ; X64-NEXT: cmpnltsd %xmm0, %xmm1
830 ; X64-NEXT: movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
831 ; X64-NEXT: retq
846 ; X64-LABEL: test_mm_cmpnle_pd:
847 ; X64: # BB#0:
848 ; X64-NEXT: cmpnlepd %xmm1, %xmm0
849 ; X64-NEXT: retq
862 ; X64-LABEL: test_mm_cmpnle_sd:
863 ; X64: # BB#0:
864 ; X64-NEXT: cmpnlesd %xmm1, %xmm0
865 ; X64-NEXT: retq
876 ; X64-LABEL: test_mm_cmpnlt_pd:
877 ; X64: # BB#0:
878 ; X64-NEXT: cmpnltpd %xmm1, %xmm0
879 ; X64-NEXT: retq
892 ; X64-LABEL: test_mm_cmpnlt_sd:
893 ; X64: # BB#0:
894 ; X64-NEXT: cmpnltsd %xmm1, %xmm0
895 ; X64-NEXT: retq
906 ; X64-LABEL: test_mm_cmpord_pd:
907 ; X64: # BB#0:
908 ; X64-NEXT: cmpordpd %xmm1, %xmm0
909 ; X64-NEXT: retq
922 ; X64-LABEL: test_mm_cmpord_sd:
923 ; X64: # BB#0:
924 ; X64-NEXT: cmpordsd %xmm1, %xmm0
925 ; X64-NEXT: retq
936 ; X64-LABEL: test_mm_cmpunord_pd:
937 ; X64: # BB#0:
938 ; X64-NEXT: cmpunordpd %xmm1, %xmm0
939 ; X64-NEXT: retq
952 ; X64-LABEL: test_mm_cmpunord_sd:
953 ; X64: # BB#0:
954 ; X64-NEXT: cmpunordsd %xmm1, %xmm0
955 ; X64-NEXT: retq
970 ; X64-LABEL: test_mm_comieq_sd:
971 ; X64: # BB#0:
972 ; X64-NEXT: comisd %xmm1, %xmm0
973 ; X64-NEXT: setnp %al
974 ; X64-NEXT: sete %cl
975 ; X64-NEXT: andb %al, %cl
976 ; X64-NEXT: movzbl %cl, %eax
977 ; X64-NEXT: retq
991 ; X64-LABEL: test_mm_comige_sd:
992 ; X64: # BB#0:
993 ; X64-NEXT: xorl %eax, %eax
994 ; X64-NEXT: comisd %xmm1, %xmm0
995 ; X64-NEXT: setae %al
996 ; X64-NEXT: retq
1010 ; X64-LABEL: test_mm_comigt_sd:
1011 ; X64: # BB#0:
1012 ; X64-NEXT: xorl %eax, %eax
1013 ; X64-NEXT: comisd %xmm1, %xmm0
1014 ; X64-NEXT: seta %al
1015 ; X64-NEXT: retq
1029 ; X64-LABEL: test_mm_comile_sd:
1030 ; X64: # BB#0:
1031 ; X64-NEXT: xorl %eax, %eax
1032 ; X64-NEXT: comisd %xmm0, %xmm1
1033 ; X64-NEXT: setae %al
1034 ; X64-NEXT: retq
1048 ; X64-LABEL: test_mm_comilt_sd:
1049 ; X64: # BB#0:
1050 ; X64-NEXT: xorl %eax, %eax
1051 ; X64-NEXT: comisd %xmm0, %xmm1
1052 ; X64-NEXT: seta %al
1053 ; X64-NEXT: retq
1069 ; X64-LABEL: test_mm_comineq_sd:
1070 ; X64: # BB#0:
1071 ; X64-NEXT: comisd %xmm1, %xmm0
1072 ; X64-NEXT: setp %al
1073 ; X64-NEXT: setne %cl
1074 ; X64-NEXT: orb %al, %cl
1075 ; X64-NEXT: movzbl %cl, %eax
1076 ; X64-NEXT: retq
1088 ; X64-LABEL: test_mm_cvtepi32_pd:
1089 ; X64: # BB#0:
1090 ; X64-NEXT: cvtdq2pd %xmm0, %xmm0
1091 ; X64-NEXT: retq
1104 ; X64-LABEL: test_mm_cvtepi32_ps:
1105 ; X64: # BB#0:
1106 ; X64-NEXT: cvtdq2ps %xmm0, %xmm0
1107 ; X64-NEXT: retq
1120 ; X64-LABEL: test_mm_cvtpd_epi32:
1121 ; X64: # BB#0:
1122 ; X64-NEXT: cvtpd2dq %xmm0, %xmm0
1123 ; X64-NEXT: retq
1136 ; X64-LABEL: test_mm_cvtpd_ps:
1137 ; X64: # BB#0:
1138 ; X64-NEXT: cvtpd2ps %xmm0, %xmm0
1139 ; X64-NEXT: retq
1151 ; X64-LABEL: test_mm_cvtps_epi32:
1152 ; X64: # BB#0:
1153 ; X64-NEXT: cvtps2dq %xmm0, %xmm0
1154 ; X64-NEXT: retq
1167 ; X64-LABEL: test_mm_cvtps_pd:
1168 ; X64: # BB#0:
1169 ; X64-NEXT: cvtps2pd %xmm0, %xmm0
1170 ; X64-NEXT: retq
1189 ; X64-LABEL: test_mm_cvtsd_f64:
1190 ; X64: # BB#0:
1191 ; X64-NEXT: retq
1202 ; X64-LABEL: test_mm_cvtsd_si32:
1203 ; X64: # BB#0:
1204 ; X64-NEXT: cvtsd2si %xmm0, %eax
1205 ; X64-NEXT: retq
1217 ; X64-LABEL: test_mm_cvtsi128_si32:
1218 ; X64: # BB#0:
1219 ; X64-NEXT: movd %xmm0, %eax
1220 ; X64-NEXT: retq
1234 ; X64-LABEL: test_mm_cvtsi32_sd:
1235 ; X64: # BB#0:
1236 ; X64-NEXT: cvtsi2sdl %edi, %xmm1
1237 ; X64-NEXT: movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
1238 ; X64-NEXT: retq
1250 ; X64-LABEL: test_mm_cvtsi32_si128:
1251 ; X64: # BB#0:
1252 ; X64-NEXT: movd %edi, %xmm0
1253 ; X64-NEXT: retq
1269 ; X64-LABEL: test_mm_cvtss_sd:
1270 ; X64: # BB#0:
1271 ; X64-NEXT: cvtss2sd %xmm1, %xmm1
1272 ; X64-NEXT: movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
1273 ; X64-NEXT: retq
1286 ; X64-LABEL: test_mm_cvttpd_epi32:
1287 ; X64: # BB#0:
1288 ; X64-NEXT: cvttpd2dq %xmm0, %xmm0
1289 ; X64-NEXT: retq
1302 ; X64-LABEL: test_mm_cvttps_epi32:
1303 ; X64: # BB#0:
1304 ; X64-NEXT: cvttps2dq %xmm0, %xmm0
1305 ; X64-NEXT: retq
1317 ; X64-LABEL: test_mm_cvttsd_si32:
1318 ; X64: # BB#0:
1319 ; X64-NEXT: cvttsd2si %xmm0, %eax
1320 ; X64-NEXT: retq
1332 ; X64-LABEL: test_mm_div_pd:
1333 ; X64: # BB#0:
1334 ; X64-NEXT: divpd %xmm1, %xmm0
1335 ; X64-NEXT: retq
1346 ; X64-LABEL: test_mm_div_sd:
1347 ; X64: # BB#0:
1348 ; X64-NEXT: divsd %xmm1, %xmm0
1349 ; X64-NEXT: retq
1364 ; X64-LABEL: test_mm_extract_epi16:
1365 ; X64: # BB#0:
1366 ; X64-NEXT: pextrw $1, %xmm0, %eax
1367 ; X64-NEXT: movzwl %ax, %eax
1368 ; X64-NEXT: retq
1382 ; X64-LABEL: test_mm_insert_epi16:
1383 ; X64: # BB#0:
1384 ; X64-NEXT: pinsrw $1, %edi, %xmm0
1385 ; X64-NEXT: retq
1398 ; X64-LABEL: test_mm_lfence:
1399 ; X64: # BB#0:
1400 ; X64-NEXT: lfence
1401 ; X64-NEXT: retq
1414 ; X64-LABEL: test_mm_load_pd:
1415 ; X64: # BB#0:
1416 ; X64-NEXT: movaps (%rdi), %xmm0
1417 ; X64-NEXT: retq
1430 ; X64-LABEL: test_mm_load_sd:
1431 ; X64: # BB#0:
1432 ; X64-NEXT: movsd {{.*#+}} xmm0 = mem[0],zero
1433 ; X64-NEXT: retq
1447 ; X64-LABEL: test_mm_load_si128:
1448 ; X64: # BB#0:
1449 ; X64-NEXT: movaps (%rdi), %xmm0
1450 ; X64-NEXT: retq
1463 ; X64-LABEL: test_mm_load1_pd:
1464 ; X64: # BB#0:
1465 ; X64-NEXT: movsd {{.*#+}} xmm0 = mem[0],zero
1466 ; X64-NEXT: movlhps {{.*#+}} xmm0 = xmm0[0,0]
1467 ; X64-NEXT: retq
1481 ; X64-LABEL: test_mm_loadh_pd:
1482 ; X64: # BB#0:
1483 ; X64-NEXT: movhpd {{.*#+}} xmm0 = xmm0[0],mem[0]
1484 ; X64-NEXT: retq
1497 ; X64-LABEL: test_mm_loadl_epi64:
1498 ; X64: # BB#0:
1499 ; X64-NEXT: movq {{.*#+}} xmm0 = mem[0],zero
1500 ; X64-NEXT: retq
1515 ; X64-LABEL: test_mm_loadl_pd:
1516 ; X64: # BB#0:
1517 ; X64-NEXT: movlpd {{.*#+}} xmm0 = mem[0],xmm0[1]
1518 ; X64-NEXT: retq
1532 ; X64-LABEL: test_mm_loadr_pd:
1533 ; X64: # BB#0:
1534 ; X64-NEXT: movapd (%rdi), %xmm0
1535 ; X64-NEXT: shufpd {{.*#+}} xmm0 = xmm0[1,0]
1536 ; X64-NEXT: retq
1550 ; X64-LABEL: test_mm_loadu_pd:
1551 ; X64: # BB#0:
1552 ; X64-NEXT: movups (%rdi), %xmm0
1553 ; X64-NEXT: retq
1566 ; X64-LABEL: test_mm_loadu_si128:
1567 ; X64: # BB#0:
1568 ; X64-NEXT: movups (%rdi), %xmm0
1569 ; X64-NEXT: retq
1580 ; X64-LABEL: test_mm_madd_epi16:
1581 ; X64: # BB#0:
1582 ; X64-NEXT: pmaddwd %xmm1, %xmm0
1583 ; X64-NEXT: retq
1601 ; X64-LABEL: test_mm_maskmoveu_si128:
1602 ; X64: # BB#0:
1603 ; X64-NEXT: maskmovdqu %xmm1, %xmm0
1604 ; X64-NEXT: retq
1618 ; X64-LABEL: test_mm_max_epi16:
1619 ; X64: # BB#0:
1620 ; X64-NEXT: pmaxsw %xmm1, %xmm0
1621 ; X64-NEXT: retq
1636 ; X64-LABEL: test_mm_max_epu8:
1637 ; X64: # BB#0:
1638 ; X64-NEXT: pmaxub %xmm1, %xmm0
1639 ; X64-NEXT: retq
1654 ; X64-LABEL: test_mm_max_pd:
1655 ; X64: # BB#0:
1656 ; X64-NEXT: maxpd %xmm1, %xmm0
1657 ; X64-NEXT: retq
1669 ; X64-LABEL: test_mm_max_sd:
1670 ; X64: # BB#0:
1671 ; X64-NEXT: maxsd %xmm1, %xmm0
1672 ; X64-NEXT: retq
1684 ; X64-LABEL: test_mm_mfence:
1685 ; X64: # BB#0:
1686 ; X64-NEXT: mfence
1687 ; X64-NEXT: retq
1699 ; X64-LABEL: test_mm_min_epi16:
1700 ; X64: # BB#0:
1701 ; X64-NEXT: pminsw %xmm1, %xmm0
1702 ; X64-NEXT: retq
1717 ; X64-LABEL: test_mm_min_epu8:
1718 ; X64: # BB#0:
1719 ; X64-NEXT: pminub %xmm1, %xmm0
1720 ; X64-NEXT: retq
1735 ; X64-LABEL: test_mm_min_pd:
1736 ; X64: # BB#0:
1737 ; X64-NEXT: minpd %xmm1, %xmm0
1738 ; X64-NEXT: retq
1750 ; X64-LABEL: test_mm_min_sd:
1751 ; X64: # BB#0:
1752 ; X64-NEXT: minsd %xmm1, %xmm0
1753 ; X64-NEXT: retq
1765 ; X64-LABEL: test_mm_move_epi64:
1766 ; X64: # BB#0:
1767 ; X64-NEXT: movq {{.*#+}} xmm0 = xmm0[0],zero
1768 ; X64-NEXT: retq
1779 ; X64-LABEL: test_mm_move_sd:
1780 ; X64: # BB#0:
1781 ; X64-NEXT: movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
1782 ; X64-NEXT: retq
1796 ; X64-LABEL: test_mm_movemask_epi8:
1797 ; X64: # BB#0:
1798 ; X64-NEXT: pmovmskb %xmm0, %eax
1799 ; X64-NEXT: retq
1812 ; X64-LABEL: test_mm_movemask_pd:
1813 ; X64: # BB#0:
1814 ; X64-NEXT: movmskpd %xmm0, %eax
1815 ; X64-NEXT: retq
1827 ; X64-LABEL: test_mm_mul_epu32:
1828 ; X64: # BB#0:
1829 ; X64-NEXT: pmuludq %xmm1, %xmm0
1830 ; X64-NEXT: retq
1844 ; X64-LABEL: test_mm_mul_pd:
1845 ; X64: # BB#0:
1846 ; X64-NEXT: mulpd %xmm1, %xmm0
1847 ; X64-NEXT: retq
1858 ; X64-LABEL: test_mm_mul_sd:
1859 ; X64: # BB#0:
1860 ; X64-NEXT: mulsd %xmm1, %xmm0
1861 ; X64-NEXT: retq
1875 ; X64-LABEL: test_mm_mulhi_epi16:
1876 ; X64: # BB#0:
1877 ; X64-NEXT: pmulhw %xmm1, %xmm0
1878 ; X64-NEXT: retq
1893 ; X64-LABEL: test_mm_mulhi_epu16:
1894 ; X64: # BB#0:
1895 ; X64-NEXT: pmulhuw %xmm1, %xmm0
1896 ; X64-NEXT: retq
1911 ; X64-LABEL: test_mm_mullo_epi16:
1912 ; X64: # BB#0:
1913 ; X64-NEXT: pmullw %xmm1, %xmm0
1914 ; X64-NEXT: retq
1928 ; X64-LABEL: test_mm_or_pd:
1929 ; X64: # BB#0:
1930 ; X64-NEXT: orps %xmm1, %xmm0
1931 ; X64-NEXT: retq
1945 ; X64-LABEL: test_mm_or_si128:
1946 ; X64: # BB#0:
1947 ; X64-NEXT: orps %xmm1, %xmm0
1948 ; X64-NEXT: retq
1959 ; X64-LABEL: test_mm_packs_epi16:
1960 ; X64: # BB#0:
1961 ; X64-NEXT: packsswb %xmm1, %xmm0
1962 ; X64-NEXT: retq
1977 ; X64-LABEL: test_mm_packs_epi32:
1978 ; X64: # BB#0:
1979 ; X64-NEXT: packssdw %xmm1, %xmm0
1980 ; X64-NEXT: retq
1995 ; X64-LABEL: test_mm_packus_epi16:
1996 ; X64: # BB#0:
1997 ; X64-NEXT: packuswb %xmm1, %xmm0
1998 ; X64-NEXT: retq
2013 ; X64-LABEL: test_mm_pause:
2014 ; X64: # BB#0:
2015 ; X64-NEXT: pause
2016 ; X64-NEXT: retq
2028 ; X64-LABEL: test_mm_sad_epu8:
2029 ; X64: # BB#0:
2030 ; X64-NEXT: psadbw %xmm1, %xmm0
2031 ; X64-NEXT: retq
2091 ; X64-LABEL: test_mm_set_epi8:
2092 ; X64: # BB#0:
2093 ; X64-NEXT: movzbl %dil, %eax
2094 ; X64-NEXT: movd %eax, %xmm0
2095 ; X64-NEXT: movzbl {{[0-9]+}}(%rsp), %eax
2096 ; X64-NEXT: movd %eax, %xmm1
2097 ; X64-NEXT: punpcklbw {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1],xmm1[2],xmm0[2],xmm1[3],xm…
2098 ; X64-NEXT: movzbl %r8b, %eax
2099 ; X64-NEXT: movd %eax, %xmm0
2100 ; X64-NEXT: movzbl {{[0-9]+}}(%rsp), %eax
2101 ; X64-NEXT: movd %eax, %xmm2
2102 ; X64-NEXT: punpcklbw {{.*#+}} xmm2 = xmm2[0],xmm0[0],xmm2[1],xmm0[1],xmm2[2],xmm0[2],xmm2[3],xm…
2103 ; X64-NEXT: punpcklbw {{.*#+}} xmm2 = xmm2[0],xmm1[0],xmm2[1],xmm1[1],xmm2[2],xmm1[2],xmm2[3],xm…
2104 ; X64-NEXT: movzbl %dl, %eax
2105 ; X64-NEXT: movd %eax, %xmm0
2106 ; X64-NEXT: movzbl {{[0-9]+}}(%rsp), %eax
2107 ; X64-NEXT: movd %eax, %xmm3
2108 ; X64-NEXT: punpcklbw {{.*#+}} xmm3 = xmm3[0],xmm0[0],xmm3[1],xmm0[1],xmm3[2],xmm0[2],xmm3[3],xm…
2109 ; X64-NEXT: movzbl {{[0-9]+}}(%rsp), %eax
2110 ; X64-NEXT: movd %eax, %xmm0
2111 ; X64-NEXT: movzbl {{[0-9]+}}(%rsp), %eax
2112 ; X64-NEXT: movd %eax, %xmm1
2113 ; X64-NEXT: punpcklbw {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1],xmm1[2],xmm0[2],xmm1[3],xm…
2114 ; X64-NEXT: punpcklbw {{.*#+}} xmm1 = xmm1[0],xmm3[0],xmm1[1],xmm3[1],xmm1[2],xmm3[2],xmm1[3],xm…
2115 ; X64-NEXT: punpcklbw {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1],xmm1[2],xmm2[2],xmm1[3],xm…
2116 ; X64-NEXT: movzbl %sil, %eax
2117 ; X64-NEXT: movd %eax, %xmm0
2118 ; X64-NEXT: movzbl {{[0-9]+}}(%rsp), %eax
2119 ; X64-NEXT: movd %eax, %xmm2
2120 ; X64-NEXT: punpcklbw {{.*#+}} xmm2 = xmm2[0],xmm0[0],xmm2[1],xmm0[1],xmm2[2],xmm0[2],xmm2[3],xm…
2121 ; X64-NEXT: movzbl %r9b, %eax
2122 ; X64-NEXT: movd %eax, %xmm0
2123 ; X64-NEXT: movzbl {{[0-9]+}}(%rsp), %eax
2124 ; X64-NEXT: movd %eax, %xmm3
2125 ; X64-NEXT: punpcklbw {{.*#+}} xmm3 = xmm3[0],xmm0[0],xmm3[1],xmm0[1],xmm3[2],xmm0[2],xmm3[3],xm…
2126 ; X64-NEXT: punpcklbw {{.*#+}} xmm3 = xmm3[0],xmm2[0],xmm3[1],xmm2[1],xmm3[2],xmm2[2],xmm3[3],xm…
2127 ; X64-NEXT: movzbl %cl, %eax
2128 ; X64-NEXT: movd %eax, %xmm0
2129 ; X64-NEXT: movzbl {{[0-9]+}}(%rsp), %eax
2130 ; X64-NEXT: movd %eax, %xmm2
2131 ; X64-NEXT: punpcklbw {{.*#+}} xmm2 = xmm2[0],xmm0[0],xmm2[1],xmm0[1],xmm2[2],xmm0[2],xmm2[3],xm…
2132 ; X64-NEXT: movzbl {{[0-9]+}}(%rsp), %eax
2133 ; X64-NEXT: movd %eax, %xmm4
2134 ; X64-NEXT: movzbl {{[0-9]+}}(%rsp), %eax
2135 ; X64-NEXT: movd %eax, %xmm0
2136 ; X64-NEXT: punpcklbw {{.*#+}} xmm0 = xmm0[0],xmm4[0],xmm0[1],xmm4[1],xmm0[2],xmm4[2],xmm0[3],xm…
2137 ; X64-NEXT: punpcklbw {{.*#+}} xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1],xmm0[2],xmm2[2],xmm0[3],xm…
2138 ; X64-NEXT: punpcklbw {{.*#+}} xmm0 = xmm0[0],xmm3[0],xmm0[1],xmm3[1],xmm0[2],xmm3[2],xmm0[3],xm…
2139 ; X64-NEXT: punpcklbw {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xm…
2140 ; X64-NEXT: retq
2189 ; X64-LABEL: test_mm_set_epi16:
2190 ; X64: # BB#0:
2191 ; X64-NEXT: movw {{[0-9]+}}(%rsp), %r10w
2192 ; X64-NEXT: movw {{[0-9]+}}(%rsp), %ax
2193 ; X64-NEXT: movd %edi, %xmm0
2194 ; X64-NEXT: movd %r8d, %xmm1
2195 ; X64-NEXT: punpcklwd {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1],xmm1[2],xmm0[2],xmm1[3],xm…
2196 ; X64-NEXT: movd %edx, %xmm0
2197 ; X64-NEXT: movd %eax, %xmm2
2198 ; X64-NEXT: punpcklwd {{.*#+}} xmm2 = xmm2[0],xmm0[0],xmm2[1],xmm0[1],xmm2[2],xmm0[2],xmm2[3],xm…
2199 ; X64-NEXT: punpcklwd {{.*#+}} xmm2 = xmm2[0],xmm1[0],xmm2[1],xmm1[1],xmm2[2],xmm1[2],xmm2[3],xm…
2200 ; X64-NEXT: movd %esi, %xmm0
2201 ; X64-NEXT: movd %r9d, %xmm1
2202 ; X64-NEXT: punpcklwd {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1],xmm1[2],xmm0[2],xmm1[3],xm…
2203 ; X64-NEXT: movd %ecx, %xmm3
2204 ; X64-NEXT: movd %r10d, %xmm0
2205 ; X64-NEXT: punpcklwd {{.*#+}} xmm0 = xmm0[0],xmm3[0],xmm0[1],xmm3[1],xmm0[2],xmm3[2],xmm0[3],xm…
2206 ; X64-NEXT: punpcklwd {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xm…
2207 ; X64-NEXT: punpcklwd {{.*#+}} xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1],xmm0[2],xmm2[2],xmm0[3],xm…
2208 ; X64-NEXT: retq
2233 ; X64-LABEL: test_mm_set_epi32:
2234 ; X64: # BB#0:
2235 ; X64-NEXT: movd %edi, %xmm0
2236 ; X64-NEXT: movd %edx, %xmm1
2237 ; X64-NEXT: punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
2238 ; X64-NEXT: movd %esi, %xmm2
2239 ; X64-NEXT: movd %ecx, %xmm0
2240 ; X64-NEXT: punpckldq {{.*#+}} xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1]
2241 ; X64-NEXT: punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
2242 ; X64-NEXT: retq
2265 ; X64-LABEL: test_mm_set_epi64x:
2266 ; X64: # BB#0:
2267 ; X64-NEXT: movd %rdi, %xmm1
2268 ; X64-NEXT: movd %rsi, %xmm0
2269 ; X64-NEXT: punpcklqdq {{.*#+}} xmm0 = xmm0[0],xmm1[0]
2270 ; X64-NEXT: retq
2284 ; X64-LABEL: test_mm_set_pd:
2285 ; X64: # BB#0:
2286 ; X64-NEXT: unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm0[0]
2287 ; X64-NEXT: movapd %xmm1, %xmm0
2288 ; X64-NEXT: retq
2301 ; X64-LABEL: test_mm_set_sd:
2302 ; X64: # BB#0:
2303 ; X64-NEXT: movq {{.*#+}} xmm0 = xmm0[0],zero
2304 ; X64-NEXT: retq
2320 ; X64-LABEL: test_mm_set1_epi8:
2321 ; X64: # BB#0:
2322 ; X64-NEXT: movzbl %dil, %eax
2323 ; X64-NEXT: movd %eax, %xmm0
2324 ; X64-NEXT: punpcklbw {{.*#+}} xmm0 = xmm0[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7]
2325 ; X64-NEXT: pshuflw {{.*#+}} xmm0 = xmm0[0,0,0,0,4,5,6,7]
2326 ; X64-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,0,1,1]
2327 ; X64-NEXT: retq
2357 ; X64-LABEL: test_mm_set1_epi16:
2358 ; X64: # BB#0:
2359 ; X64-NEXT: movd %edi, %xmm0
2360 ; X64-NEXT: pshuflw {{.*#+}} xmm0 = xmm0[0,0,0,0,4,5,6,7]
2361 ; X64-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,0,1,1]
2362 ; X64-NEXT: retq
2382 ; X64-LABEL: test_mm_set1_epi32:
2383 ; X64: # BB#0:
2384 ; X64-NEXT: movd %edi, %xmm0
2385 ; X64-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,0,0,0]
2386 ; X64-NEXT: retq
2407 ; X64-LABEL: test_mm_set1_epi64x:
2408 ; X64: # BB#0:
2409 ; X64-NEXT: movd %rdi, %xmm0
2410 ; X64-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,1,0,1]
2411 ; X64-NEXT: retq
2424 ; X64-LABEL: test_mm_set1_pd:
2425 ; X64: # BB#0:
2426 ; X64-NEXT: movlhps {{.*#+}} xmm0 = xmm0[0,0]
2427 ; X64-NEXT: retq
2485 ; X64-LABEL: test_mm_setr_epi8:
2486 ; X64: # BB#0:
2487 ; X64-NEXT: movzbl {{[0-9]+}}(%rsp), %eax
2488 ; X64-NEXT: movd %eax, %xmm0
2489 ; X64-NEXT: movzbl {{[0-9]+}}(%rsp), %eax
2490 ; X64-NEXT: movd %eax, %xmm1
2491 ; X64-NEXT: punpcklbw {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1],xmm1[2],xmm0[2],xmm1[3],xm…
2492 ; X64-NEXT: movzbl {{[0-9]+}}(%rsp), %eax
2493 ; X64-NEXT: movd %eax, %xmm0
2494 ; X64-NEXT: movzbl %cl, %eax
2495 ; X64-NEXT: movd %eax, %xmm2
2496 ; X64-NEXT: punpcklbw {{.*#+}} xmm2 = xmm2[0],xmm0[0],xmm2[1],xmm0[1],xmm2[2],xmm0[2],xmm2[3],xm…
2497 ; X64-NEXT: punpcklbw {{.*#+}} xmm2 = xmm2[0],xmm1[0],xmm2[1],xmm1[1],xmm2[2],xmm1[2],xmm2[3],xm…
2498 ; X64-NEXT: movzbl {{[0-9]+}}(%rsp), %eax
2499 ; X64-NEXT: movd %eax, %xmm0
2500 ; X64-NEXT: movzbl %r9b, %eax
2501 ; X64-NEXT: movd %eax, %xmm3
2502 ; X64-NEXT: punpcklbw {{.*#+}} xmm3 = xmm3[0],xmm0[0],xmm3[1],xmm0[1],xmm3[2],xmm0[2],xmm3[3],xm…
2503 ; X64-NEXT: movzbl {{[0-9]+}}(%rsp), %eax
2504 ; X64-NEXT: movd %eax, %xmm0
2505 ; X64-NEXT: movzbl %sil, %eax
2506 ; X64-NEXT: movd %eax, %xmm1
2507 ; X64-NEXT: punpcklbw {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1],xmm1[2],xmm0[2],xmm1[3],xm…
2508 ; X64-NEXT: punpcklbw {{.*#+}} xmm1 = xmm1[0],xmm3[0],xmm1[1],xmm3[1],xmm1[2],xmm3[2],xmm1[3],xm…
2509 ; X64-NEXT: punpcklbw {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1],xmm1[2],xmm2[2],xmm1[3],xm…
2510 ; X64-NEXT: movzbl {{[0-9]+}}(%rsp), %eax
2511 ; X64-NEXT: movd %eax, %xmm0
2512 ; X64-NEXT: movzbl {{[0-9]+}}(%rsp), %eax
2513 ; X64-NEXT: movd %eax, %xmm2
2514 ; X64-NEXT: punpcklbw {{.*#+}} xmm2 = xmm2[0],xmm0[0],xmm2[1],xmm0[1],xmm2[2],xmm0[2],xmm2[3],xm…
2515 ; X64-NEXT: movzbl {{[0-9]+}}(%rsp), %eax
2516 ; X64-NEXT: movd %eax, %xmm0
2517 ; X64-NEXT: movzbl %dl, %eax
2518 ; X64-NEXT: movd %eax, %xmm3
2519 ; X64-NEXT: punpcklbw {{.*#+}} xmm3 = xmm3[0],xmm0[0],xmm3[1],xmm0[1],xmm3[2],xmm0[2],xmm3[3],xm…
2520 ; X64-NEXT: punpcklbw {{.*#+}} xmm3 = xmm3[0],xmm2[0],xmm3[1],xmm2[1],xmm3[2],xmm2[2],xmm3[3],xm…
2521 ; X64-NEXT: movzbl {{[0-9]+}}(%rsp), %eax
2522 ; X64-NEXT: movd %eax, %xmm0
2523 ; X64-NEXT: movzbl %r8b, %eax
2524 ; X64-NEXT: movd %eax, %xmm2
2525 ; X64-NEXT: punpcklbw {{.*#+}} xmm2 = xmm2[0],xmm0[0],xmm2[1],xmm0[1],xmm2[2],xmm0[2],xmm2[3],xm…
2526 ; X64-NEXT: movzbl {{[0-9]+}}(%rsp), %eax
2527 ; X64-NEXT: movd %eax, %xmm4
2528 ; X64-NEXT: movzbl %dil, %eax
2529 ; X64-NEXT: movd %eax, %xmm0
2530 ; X64-NEXT: punpcklbw {{.*#+}} xmm0 = xmm0[0],xmm4[0],xmm0[1],xmm4[1],xmm0[2],xmm4[2],xmm0[3],xm…
2531 ; X64-NEXT: punpcklbw {{.*#+}} xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1],xmm0[2],xmm2[2],xmm0[3],xm…
2532 ; X64-NEXT: punpcklbw {{.*#+}} xmm0 = xmm0[0],xmm3[0],xmm0[1],xmm3[1],xmm0[2],xmm3[2],xmm0[3],xm…
2533 ; X64-NEXT: punpcklbw {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xm…
2534 ; X64-NEXT: retq
2583 ; X64-LABEL: test_mm_setr_epi16:
2584 ; X64: # BB#0:
2585 ; X64-NEXT: movw {{[0-9]+}}(%rsp), %ax
2586 ; X64-NEXT: movw {{[0-9]+}}(%rsp), %r10w
2587 ; X64-NEXT: movd %eax, %xmm0
2588 ; X64-NEXT: movd %ecx, %xmm1
2589 ; X64-NEXT: punpcklwd {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1],xmm1[2],xmm0[2],xmm1[3],xm…
2590 ; X64-NEXT: movd %r9d, %xmm0
2591 ; X64-NEXT: movd %esi, %xmm2
2592 ; X64-NEXT: punpcklwd {{.*#+}} xmm2 = xmm2[0],xmm0[0],xmm2[1],xmm0[1],xmm2[2],xmm0[2],xmm2[3],xm…
2593 ; X64-NEXT: punpcklwd {{.*#+}} xmm2 = xmm2[0],xmm1[0],xmm2[1],xmm1[1],xmm2[2],xmm1[2],xmm2[3],xm…
2594 ; X64-NEXT: movd %r10d, %xmm0
2595 ; X64-NEXT: movd %edx, %xmm1
2596 ; X64-NEXT: punpcklwd {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1],xmm1[2],xmm0[2],xmm1[3],xm…
2597 ; X64-NEXT: movd %r8d, %xmm3
2598 ; X64-NEXT: movd %edi, %xmm0
2599 ; X64-NEXT: punpcklwd {{.*#+}} xmm0 = xmm0[0],xmm3[0],xmm0[1],xmm3[1],xmm0[2],xmm3[2],xmm0[3],xm…
2600 ; X64-NEXT: punpcklwd {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xm…
2601 ; X64-NEXT: punpcklwd {{.*#+}} xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1],xmm0[2],xmm2[2],xmm0[3],xm…
2602 ; X64-NEXT: retq
2627 ; X64-LABEL: test_mm_setr_epi32:
2628 ; X64: # BB#0:
2629 ; X64-NEXT: movd %ecx, %xmm0
2630 ; X64-NEXT: movd %esi, %xmm1
2631 ; X64-NEXT: punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
2632 ; X64-NEXT: movd %edx, %xmm2
2633 ; X64-NEXT: movd %edi, %xmm0
2634 ; X64-NEXT: punpckldq {{.*#+}} xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1]
2635 ; X64-NEXT: punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
2636 ; X64-NEXT: retq
2659 ; X64-LABEL: test_mm_setr_epi64x:
2660 ; X64: # BB#0:
2661 ; X64-NEXT: movd %rsi, %xmm1
2662 ; X64-NEXT: movd %rdi, %xmm0
2663 ; X64-NEXT: punpcklqdq {{.*#+}} xmm0 = xmm0[0],xmm1[0]
2664 ; X64-NEXT: retq
2678 ; X64-LABEL: test_mm_setr_pd:
2679 ; X64: # BB#0:
2680 ; X64-NEXT: unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm1[0]
2681 ; X64-NEXT: retq
2693 ; X64-LABEL: test_mm_setzero_pd:
2694 ; X64: # BB#0:
2695 ; X64-NEXT: xorps %xmm0, %xmm0
2696 ; X64-NEXT: retq
2706 ; X64-LABEL: test_mm_setzero_si128:
2707 ; X64: # BB#0:
2708 ; X64-NEXT: xorps %xmm0, %xmm0
2709 ; X64-NEXT: retq
2719 ; X64-LABEL: test_mm_shuffle_epi32:
2720 ; X64: # BB#0:
2721 ; X64-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,0,0,0]
2722 ; X64-NEXT: retq
2735 ; X64-LABEL: test_mm_shuffle_pd:
2736 ; X64: # BB#0:
2737 ; X64-NEXT: shufpd {{.*#+}} xmm0 = xmm0[1],xmm1[0]
2738 ; X64-NEXT: retq
2749 ; X64-LABEL: test_mm_shufflehi_epi16:
2750 ; X64: # BB#0:
2751 ; X64-NEXT: pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,4,4,4]
2752 ; X64-NEXT: retq
2765 ; X64-LABEL: test_mm_shufflelo_epi16:
2766 ; X64: # BB#0:
2767 ; X64-NEXT: pshuflw {{.*#+}} xmm0 = xmm0[0,0,0,0,4,5,6,7]
2768 ; X64-NEXT: retq
2781 ; X64-LABEL: test_mm_sll_epi16:
2782 ; X64: # BB#0:
2783 ; X64-NEXT: psllw %xmm1, %xmm0
2784 ; X64-NEXT: retq
2799 ; X64-LABEL: test_mm_sll_epi32:
2800 ; X64: # BB#0:
2801 ; X64-NEXT: pslld %xmm1, %xmm0
2802 ; X64-NEXT: retq
2817 ; X64-LABEL: test_mm_sll_epi64:
2818 ; X64: # BB#0:
2819 ; X64-NEXT: psllq %xmm1, %xmm0
2820 ; X64-NEXT: retq
2832 ; X64-LABEL: test_mm_slli_epi16:
2833 ; X64: # BB#0:
2834 ; X64-NEXT: psllw $1, %xmm0
2835 ; X64-NEXT: retq
2849 ; X64-LABEL: test_mm_slli_epi32:
2850 ; X64: # BB#0:
2851 ; X64-NEXT: pslld $1, %xmm0
2852 ; X64-NEXT: retq
2866 ; X64-LABEL: test_mm_slli_epi64:
2867 ; X64: # BB#0:
2868 ; X64-NEXT: psllq $1, %xmm0
2869 ; X64-NEXT: retq
2881 ; X64-LABEL: test_mm_slli_si128:
2882 ; X64: # BB#0:
2883 ; X64-NEXT: pslldq {{.*#+}} xmm0 = zero,zero,zero,zero,zero,xmm0[0,1,2,3,4,5,6,7,8,9,10]
2884 ; X64-NEXT: retq
2897 ; X64-LABEL: test_mm_sqrt_pd:
2898 ; X64: # BB#0:
2899 ; X64-NEXT: sqrtpd %xmm0, %xmm0
2900 ; X64-NEXT: retq
2913 ; X64-LABEL: test_mm_sqrt_sd:
2914 ; X64: # BB#0:
2915 ; X64-NEXT: sqrtsd %xmm0, %xmm1
2916 ; X64-NEXT: movaps %xmm1, %xmm0
2917 ; X64-NEXT: retq
2933 ; X64-LABEL: test_mm_sra_epi16:
2934 ; X64: # BB#0:
2935 ; X64-NEXT: psraw %xmm1, %xmm0
2936 ; X64-NEXT: retq
2951 ; X64-LABEL: test_mm_sra_epi32:
2952 ; X64: # BB#0:
2953 ; X64-NEXT: psrad %xmm1, %xmm0
2954 ; X64-NEXT: retq
2969 ; X64-LABEL: test_mm_srai_epi16:
2970 ; X64: # BB#0:
2971 ; X64-NEXT: psraw $1, %xmm0
2972 ; X64-NEXT: retq
2986 ; X64-LABEL: test_mm_srai_epi32:
2987 ; X64: # BB#0:
2988 ; X64-NEXT: psrad $1, %xmm0
2989 ; X64-NEXT: retq
3003 ; X64-LABEL: test_mm_srl_epi16:
3004 ; X64: # BB#0:
3005 ; X64-NEXT: psrlw %xmm1, %xmm0
3006 ; X64-NEXT: retq
3021 ; X64-LABEL: test_mm_srl_epi32:
3022 ; X64: # BB#0:
3023 ; X64-NEXT: psrld %xmm1, %xmm0
3024 ; X64-NEXT: retq
3039 ; X64-LABEL: test_mm_srl_epi64:
3040 ; X64: # BB#0:
3041 ; X64-NEXT: psrlq %xmm1, %xmm0
3042 ; X64-NEXT: retq
3054 ; X64-LABEL: test_mm_srli_epi16:
3055 ; X64: # BB#0:
3056 ; X64-NEXT: psrlw $1, %xmm0
3057 ; X64-NEXT: retq
3071 ; X64-LABEL: test_mm_srli_epi32:
3072 ; X64: # BB#0:
3073 ; X64-NEXT: psrld $1, %xmm0
3074 ; X64-NEXT: retq
3088 ; X64-LABEL: test_mm_srli_epi64:
3089 ; X64: # BB#0:
3090 ; X64-NEXT: psrlq $1, %xmm0
3091 ; X64-NEXT: retq
3103 ; X64-LABEL: test_mm_srli_si128:
3104 ; X64: # BB#0:
3105 ; X64-NEXT: psrldq {{.*#+}} xmm0 = xmm0[5,6,7,8,9,10,11,12,13,14,15],zero,zero,zero,zero,zero
3106 ; X64-NEXT: retq
3120 ; X64-LABEL: test_mm_store_pd:
3121 ; X64: # BB#0:
3122 ; X64-NEXT: movaps %xmm0, (%rdi)
3123 ; X64-NEXT: retq
3137 ; X64-LABEL: test_mm_store_pd1:
3138 ; X64: # BB#0:
3139 ; X64-NEXT: movlhps {{.*#+}} xmm0 = xmm0[0,0]
3140 ; X64-NEXT: movaps %xmm0, (%rdi)
3141 ; X64-NEXT: retq
3155 ; X64-LABEL: test_mm_store_sd:
3156 ; X64: # BB#0:
3157 ; X64-NEXT: movsd %xmm0, (%rdi)
3158 ; X64-NEXT: retq
3171 ; X64-LABEL: test_mm_store_si128:
3172 ; X64: # BB#0:
3173 ; X64-NEXT: movaps %xmm0, (%rdi)
3174 ; X64-NEXT: retq
3187 ; X64-LABEL: test_mm_store1_pd:
3188 ; X64: # BB#0:
3189 ; X64-NEXT: movlhps {{.*#+}} xmm0 = xmm0[0,0]
3190 ; X64-NEXT: movaps %xmm0, (%rdi)
3191 ; X64-NEXT: retq
3206 ; X64-LABEL: test_mm_storeh_sd:
3207 ; X64: # BB#0:
3208 ; X64-NEXT: shufpd {{.*#+}} xmm0 = xmm0[1,0]
3209 ; X64-NEXT: movsd %xmm0, (%rdi)
3210 ; X64-NEXT: retq
3223 ; X64-LABEL: test_mm_storel_epi64:
3224 ; X64: # BB#0:
3225 ; X64-NEXT: movd %xmm0, %rax
3226 ; X64-NEXT: movq %rax, (%rdi)
3227 ; X64-NEXT: retq
3241 ; X64-LABEL: test_mm_storel_sd:
3242 ; X64: # BB#0:
3243 ; X64-NEXT: movsd %xmm0, (%rdi)
3244 ; X64-NEXT: retq
3258 ; X64-LABEL: test_mm_storer_pd:
3259 ; X64: # BB#0:
3260 ; X64-NEXT: shufpd {{.*#+}} xmm0 = xmm0[1,0]
3261 ; X64-NEXT: movapd %xmm0, (%rdi)
3262 ; X64-NEXT: retq
3276 ; X64-LABEL: test_mm_storeu_pd:
3277 ; X64: # BB#0:
3278 ; X64-NEXT: movups %xmm0, (%rdi)
3279 ; X64-NEXT: retq
3292 ; X64-LABEL: test_mm_storeu_si128:
3293 ; X64: # BB#0:
3294 ; X64-NEXT: movups %xmm0, (%rdi)
3295 ; X64-NEXT: retq
3307 ; X64-LABEL: test_mm_stream_pd:
3308 ; X64: # BB#0:
3309 ; X64-NEXT: movntps %xmm0, (%rdi)
3310 ; X64-NEXT: retq
3324 ; X64-LABEL: test_mm_stream_si32:
3325 ; X64: # BB#0:
3326 ; X64-NEXT: movntil %esi, (%rdi)
3327 ; X64-NEXT: retq
3339 ; X64-LABEL: test_mm_stream_si128:
3340 ; X64: # BB#0:
3341 ; X64-NEXT: movntps %xmm0, (%rdi)
3342 ; X64-NEXT: retq
3353 ; X64-LABEL: test_mm_sub_epi8:
3354 ; X64: # BB#0:
3355 ; X64-NEXT: psubb %xmm1, %xmm0
3356 ; X64-NEXT: retq
3370 ; X64-LABEL: test_mm_sub_epi16:
3371 ; X64: # BB#0:
3372 ; X64-NEXT: psubw %xmm1, %xmm0
3373 ; X64-NEXT: retq
3387 ; X64-LABEL: test_mm_sub_epi32:
3388 ; X64: # BB#0:
3389 ; X64-NEXT: psubd %xmm1, %xmm0
3390 ; X64-NEXT: retq
3404 ; X64-LABEL: test_mm_sub_epi64:
3405 ; X64: # BB#0:
3406 ; X64-NEXT: psubq %xmm1, %xmm0
3407 ; X64-NEXT: retq
3418 ; X64-LABEL: test_mm_sub_pd:
3419 ; X64: # BB#0:
3420 ; X64-NEXT: subpd %xmm1, %xmm0
3421 ; X64-NEXT: retq
3432 ; X64-LABEL: test_mm_sub_sd:
3433 ; X64: # BB#0:
3434 ; X64-NEXT: subsd %xmm1, %xmm0
3435 ; X64-NEXT: retq
3449 ; X64-LABEL: test_mm_subs_epi8:
3450 ; X64: # BB#0:
3451 ; X64-NEXT: psubsb %xmm1, %xmm0
3452 ; X64-NEXT: retq
3467 ; X64-LABEL: test_mm_subs_epi16:
3468 ; X64: # BB#0:
3469 ; X64-NEXT: psubsw %xmm1, %xmm0
3470 ; X64-NEXT: retq
3485 ; X64-LABEL: test_mm_subs_epu8:
3486 ; X64: # BB#0:
3487 ; X64-NEXT: psubusb %xmm1, %xmm0
3488 ; X64-NEXT: retq
3503 ; X64-LABEL: test_mm_subs_epu16:
3504 ; X64: # BB#0:
3505 ; X64-NEXT: psubusw %xmm1, %xmm0
3506 ; X64-NEXT: retq
3525 ; X64-LABEL: test_mm_ucomieq_sd:
3526 ; X64: # BB#0:
3527 ; X64-NEXT: ucomisd %xmm1, %xmm0
3528 ; X64-NEXT: setnp %al
3529 ; X64-NEXT: sete %cl
3530 ; X64-NEXT: andb %al, %cl
3531 ; X64-NEXT: movzbl %cl, %eax
3532 ; X64-NEXT: retq
3546 ; X64-LABEL: test_mm_ucomige_sd:
3547 ; X64: # BB#0:
3548 ; X64-NEXT: xorl %eax, %eax
3549 ; X64-NEXT: ucomisd %xmm1, %xmm0
3550 ; X64-NEXT: setae %al
3551 ; X64-NEXT: retq
3565 ; X64-LABEL: test_mm_ucomigt_sd:
3566 ; X64: # BB#0:
3567 ; X64-NEXT: xorl %eax, %eax
3568 ; X64-NEXT: ucomisd %xmm1, %xmm0
3569 ; X64-NEXT: seta %al
3570 ; X64-NEXT: retq
3584 ; X64-LABEL: test_mm_ucomile_sd:
3585 ; X64: # BB#0:
3586 ; X64-NEXT: xorl %eax, %eax
3587 ; X64-NEXT: ucomisd %xmm0, %xmm1
3588 ; X64-NEXT: setae %al
3589 ; X64-NEXT: retq
3603 ; X64-LABEL: test_mm_ucomilt_sd:
3604 ; X64: # BB#0:
3605 ; X64-NEXT: xorl %eax, %eax
3606 ; X64-NEXT: ucomisd %xmm0, %xmm1
3607 ; X64-NEXT: seta %al
3608 ; X64-NEXT: retq
3624 ; X64-LABEL: test_mm_ucomineq_sd:
3625 ; X64: # BB#0:
3626 ; X64-NEXT: ucomisd %xmm1, %xmm0
3627 ; X64-NEXT: setp %al
3628 ; X64-NEXT: setne %cl
3629 ; X64-NEXT: orb %al, %cl
3630 ; X64-NEXT: movzbl %cl, %eax
3631 ; X64-NEXT: retq
3642 ; X64-LABEL: test_mm_undefined_pd:
3643 ; X64: # BB#0:
3644 ; X64-NEXT: retq
3653 ; X64-LABEL: test_mm_undefined_si128:
3654 ; X64: # BB#0:
3655 ; X64-NEXT: retq
3665 ; X64-LABEL: test_mm_unpackhi_epi8:
3666 ; X64: # BB#0:
3667 ; X64-NEXT: punpckhbw {{.*#+}} xmm0 = xmm0[8],xmm1[8],xmm0[9],xmm1[9],xmm0[10],xmm1[10],xmm0[11]…
3668 ; X64-NEXT: retq
3682 ; X64-LABEL: test_mm_unpackhi_epi16:
3683 ; X64: # BB#0:
3684 ; X64-NEXT: punpckhwd {{.*#+}} xmm0 = xmm0[4],xmm1[4],xmm0[5],xmm1[5],xmm0[6],xmm1[6],xmm0[7],xm…
3685 ; X64-NEXT: retq
3699 ; X64-LABEL: test_mm_unpackhi_epi32:
3700 ; X64: # BB#0:
3701 ; X64-NEXT: punpckhdq {{.*#+}} xmm0 = xmm0[2],xmm1[2],xmm0[3],xmm1[3]
3702 ; X64-NEXT: retq
3716 ; X64-LABEL: test_mm_unpackhi_epi64:
3717 ; X64: # BB#0:
3718 ; X64-NEXT: punpckhqdq {{.*#+}} xmm0 = xmm0[1],xmm1[1]
3719 ; X64-NEXT: retq
3730 ; X64-LABEL: test_mm_unpackhi_pd:
3731 ; X64: # BB#0:
3732 ; X64-NEXT: unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm1[1]
3733 ; X64-NEXT: retq
3744 ; X64-LABEL: test_mm_unpacklo_epi8:
3745 ; X64: # BB#0:
3746 ; X64-NEXT: punpcklbw {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xm…
3747 ; X64-NEXT: retq
3761 ; X64-LABEL: test_mm_unpacklo_epi16:
3762 ; X64: # BB#0:
3763 ; X64-NEXT: punpcklwd {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xm…
3764 ; X64-NEXT: retq
3778 ; X64-LABEL: test_mm_unpacklo_epi32:
3779 ; X64: # BB#0:
3780 ; X64-NEXT: punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
3781 ; X64-NEXT: retq
3795 ; X64-LABEL: test_mm_unpacklo_epi64:
3796 ; X64: # BB#0:
3797 ; X64-NEXT: punpcklqdq {{.*#+}} xmm0 = xmm0[0],xmm1[0]
3798 ; X64-NEXT: retq
3809 ; X64-LABEL: test_mm_unpacklo_pd:
3810 ; X64: # BB#0:
3811 ; X64-NEXT: unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm1[0]
3812 ; X64-NEXT: retq
3823 ; X64-LABEL: test_mm_xor_pd:
3824 ; X64: # BB#0:
3825 ; X64-NEXT: xorps %xmm1, %xmm0
3826 ; X64-NEXT: retq
3840 ; X64-LABEL: test_mm_xor_si128:
3841 ; X64: # BB#0:
3842 ; X64-NEXT: xorps %xmm1, %xmm0
3843 ; X64-NEXT: retq