Lines Matching refs:X32
2 …isel -mtriple=i386-unknown-unknown -mattr=+sse | FileCheck %s --check-prefix=ALL --check-prefix=X32
8 ; X32-LABEL: test_mm_add_ps:
9 ; X32: # BB#0:
10 ; X32-NEXT: addps %xmm1, %xmm0
11 ; X32-NEXT: retl
22 ; X32-LABEL: test_mm_add_ss:
23 ; X32: # BB#0:
24 ; X32-NEXT: addss %xmm1, %xmm0
25 ; X32-NEXT: retl
39 ; X32-LABEL: test_mm_and_ps:
40 ; X32: # BB#0:
41 ; X32-NEXT: pushl %ebp
42 ; X32-NEXT: movl %esp, %ebp
43 ; X32-NEXT: pushl %esi
44 ; X32-NEXT: andl $-16, %esp
45 ; X32-NEXT: subl $64, %esp
46 ; X32-NEXT: movaps %xmm0, {{[0-9]+}}(%esp)
47 ; X32-NEXT: movl {{[0-9]+}}(%esp), %eax
48 ; X32-NEXT: movl {{[0-9]+}}(%esp), %ecx
49 ; X32-NEXT: movl {{[0-9]+}}(%esp), %edx
50 ; X32-NEXT: movl {{[0-9]+}}(%esp), %esi
51 ; X32-NEXT: movaps %xmm1, {{[0-9]+}}(%esp)
52 ; X32-NEXT: andl {{[0-9]+}}(%esp), %esi
53 ; X32-NEXT: movl %esi, (%esp)
54 ; X32-NEXT: andl {{[0-9]+}}(%esp), %edx
55 ; X32-NEXT: movl %edx, {{[0-9]+}}(%esp)
56 ; X32-NEXT: andl {{[0-9]+}}(%esp), %eax
57 ; X32-NEXT: movl %eax, {{[0-9]+}}(%esp)
58 ; X32-NEXT: andl {{[0-9]+}}(%esp), %ecx
59 ; X32-NEXT: movl %ecx, {{[0-9]+}}(%esp)
60 ; X32-NEXT: movss {{.*#+}} xmm0 = mem[0],zero,zero,zero
61 ; X32-NEXT: movss {{.*#+}} xmm1 = mem[0],zero,zero,zero
62 ; X32-NEXT: unpcklps {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
63 ; X32-NEXT: movss {{.*#+}} xmm2 = mem[0],zero,zero,zero
64 ; X32-NEXT: movss {{.*#+}} xmm0 = mem[0],zero,zero,zero
65 ; X32-NEXT: unpcklps {{.*#+}} xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1]
66 ; X32-NEXT: unpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
67 ; X32-NEXT: leal -4(%ebp), %esp
68 ; X32-NEXT: popl %esi
69 ; X32-NEXT: popl %ebp
70 ; X32-NEXT: retl
110 ; X32-LABEL: test_mm_andnot_ps:
111 ; X32: # BB#0:
112 ; X32-NEXT: pushl %ebp
113 ; X32-NEXT: movl %esp, %ebp
114 ; X32-NEXT: pushl %esi
115 ; X32-NEXT: andl $-16, %esp
116 ; X32-NEXT: subl $64, %esp
117 ; X32-NEXT: movaps %xmm0, {{[0-9]+}}(%esp)
118 ; X32-NEXT: movl {{[0-9]+}}(%esp), %eax
119 ; X32-NEXT: movl {{[0-9]+}}(%esp), %ecx
120 ; X32-NEXT: movl {{[0-9]+}}(%esp), %edx
121 ; X32-NEXT: movl {{[0-9]+}}(%esp), %esi
122 ; X32-NEXT: movaps %xmm1, {{[0-9]+}}(%esp)
123 ; X32-NEXT: notl %edx
124 ; X32-NEXT: notl %ecx
125 ; X32-NEXT: notl %esi
126 ; X32-NEXT: notl %eax
127 ; X32-NEXT: andl {{[0-9]+}}(%esp), %eax
128 ; X32-NEXT: movl %eax, (%esp)
129 ; X32-NEXT: andl {{[0-9]+}}(%esp), %esi
130 ; X32-NEXT: movl %esi, {{[0-9]+}}(%esp)
131 ; X32-NEXT: andl {{[0-9]+}}(%esp), %ecx
132 ; X32-NEXT: movl %ecx, {{[0-9]+}}(%esp)
133 ; X32-NEXT: andl {{[0-9]+}}(%esp), %edx
134 ; X32-NEXT: movl %edx, {{[0-9]+}}(%esp)
135 ; X32-NEXT: movss {{.*#+}} xmm0 = mem[0],zero,zero,zero
136 ; X32-NEXT: movss {{.*#+}} xmm1 = mem[0],zero,zero,zero
137 ; X32-NEXT: unpcklps {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
138 ; X32-NEXT: movss {{.*#+}} xmm2 = mem[0],zero,zero,zero
139 ; X32-NEXT: movss {{.*#+}} xmm0 = mem[0],zero,zero,zero
140 ; X32-NEXT: unpcklps {{.*#+}} xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1]
141 ; X32-NEXT: unpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
142 ; X32-NEXT: leal -4(%ebp), %esp
143 ; X32-NEXT: popl %esi
144 ; X32-NEXT: popl %ebp
145 ; X32-NEXT: retl
190 ; X32-LABEL: test_mm_cmpeq_ps:
191 ; X32: # BB#0:
192 ; X32-NEXT: cmpeqps %xmm1, %xmm0
193 ; X32-NEXT: retl
206 ; X32-LABEL: test_mm_cmpeq_ss:
207 ; X32: # BB#0:
208 ; X32-NEXT: cmpeqss %xmm1, %xmm0
209 ; X32-NEXT: retl
221 ; X32-LABEL: test_mm_cmpge_ps:
222 ; X32: # BB#0:
223 ; X32-NEXT: cmpleps %xmm0, %xmm1
224 ; X32-NEXT: movaps %xmm1, %xmm0
225 ; X32-NEXT: retl
239 ; X32-LABEL: test_mm_cmpge_ss:
240 ; X32: # BB#0:
241 ; X32-NEXT: cmpless %xmm0, %xmm1
242 ; X32-NEXT: movss {{.*#+}} xmm0 = xmm1[0],xmm0[1,2,3]
243 ; X32-NEXT: retl
256 ; X32-LABEL: test_mm_cmpgt_ps:
257 ; X32: # BB#0:
258 ; X32-NEXT: cmpltps %xmm0, %xmm1
259 ; X32-NEXT: movaps %xmm1, %xmm0
260 ; X32-NEXT: retl
274 ; X32-LABEL: test_mm_cmpgt_ss:
275 ; X32: # BB#0:
276 ; X32-NEXT: cmpltss %xmm0, %xmm1
277 ; X32-NEXT: movss {{.*#+}} xmm0 = xmm1[0],xmm0[1,2,3]
278 ; X32-NEXT: retl
291 ; X32-LABEL: test_mm_cmple_ps:
292 ; X32: # BB#0:
293 ; X32-NEXT: cmpleps %xmm1, %xmm0
294 ; X32-NEXT: retl
307 ; X32-LABEL: test_mm_cmple_ss:
308 ; X32: # BB#0:
309 ; X32-NEXT: cmpless %xmm1, %xmm0
310 ; X32-NEXT: retl
321 ; X32-LABEL: test_mm_cmplt_ps:
322 ; X32: # BB#0:
323 ; X32-NEXT: cmpltps %xmm1, %xmm0
324 ; X32-NEXT: retl
337 ; X32-LABEL: test_mm_cmplt_ss:
338 ; X32: # BB#0:
339 ; X32-NEXT: cmpltss %xmm1, %xmm0
340 ; X32-NEXT: retl
351 ; X32-LABEL: test_mm_cmpneq_ps:
352 ; X32: # BB#0:
353 ; X32-NEXT: cmpneqps %xmm1, %xmm0
354 ; X32-NEXT: retl
367 ; X32-LABEL: test_mm_cmpneq_ss:
368 ; X32: # BB#0:
369 ; X32-NEXT: cmpneqss %xmm1, %xmm0
370 ; X32-NEXT: retl
381 ; X32-LABEL: test_mm_cmpnge_ps:
382 ; X32: # BB#0:
383 ; X32-NEXT: cmpnleps %xmm0, %xmm1
384 ; X32-NEXT: movaps %xmm1, %xmm0
385 ; X32-NEXT: retl
399 ; X32-LABEL: test_mm_cmpnge_ss:
400 ; X32: # BB#0:
401 ; X32-NEXT: cmpnless %xmm0, %xmm1
402 ; X32-NEXT: movss {{.*#+}} xmm0 = xmm1[0],xmm0[1,2,3]
403 ; X32-NEXT: retl
416 ; X32-LABEL: test_mm_cmpngt_ps:
417 ; X32: # BB#0:
418 ; X32-NEXT: cmpnltps %xmm0, %xmm1
419 ; X32-NEXT: movaps %xmm1, %xmm0
420 ; X32-NEXT: retl
434 ; X32-LABEL: test_mm_cmpngt_ss:
435 ; X32: # BB#0:
436 ; X32-NEXT: cmpnltss %xmm0, %xmm1
437 ; X32-NEXT: movss {{.*#+}} xmm0 = xmm1[0],xmm0[1,2,3]
438 ; X32-NEXT: retl
451 ; X32-LABEL: test_mm_cmpnle_ps:
452 ; X32: # BB#0:
453 ; X32-NEXT: cmpnleps %xmm1, %xmm0
454 ; X32-NEXT: retl
467 ; X32-LABEL: test_mm_cmpnle_ss:
468 ; X32: # BB#0:
469 ; X32-NEXT: cmpnless %xmm1, %xmm0
470 ; X32-NEXT: retl
481 ; X32-LABEL: test_mm_cmpnlt_ps:
482 ; X32: # BB#0:
483 ; X32-NEXT: cmpnltps %xmm1, %xmm0
484 ; X32-NEXT: retl
497 ; X32-LABEL: test_mm_cmpnlt_ss:
498 ; X32: # BB#0:
499 ; X32-NEXT: cmpnltss %xmm1, %xmm0
500 ; X32-NEXT: retl
511 ; X32-LABEL: test_mm_cmpord_ps:
512 ; X32: # BB#0:
513 ; X32-NEXT: cmpordps %xmm1, %xmm0
514 ; X32-NEXT: retl
527 ; X32-LABEL: test_mm_cmpord_ss:
528 ; X32: # BB#0:
529 ; X32-NEXT: cmpordss %xmm1, %xmm0
530 ; X32-NEXT: retl
541 ; X32-LABEL: test_mm_cmpunord_ps:
542 ; X32: # BB#0:
543 ; X32-NEXT: cmpunordps %xmm1, %xmm0
544 ; X32-NEXT: retl
557 ; X32-LABEL: test_mm_cmpunord_ss:
558 ; X32: # BB#0:
559 ; X32-NEXT: cmpunordss %xmm1, %xmm0
560 ; X32-NEXT: retl
571 ; X32-LABEL: test_mm_comieq_ss:
572 ; X32: # BB#0:
573 ; X32-NEXT: comiss %xmm1, %xmm0
574 ; X32-NEXT: setnp %al
575 ; X32-NEXT: sete %cl
576 ; X32-NEXT: andb %al, %cl
577 ; X32-NEXT: movzbl %cl, %eax
578 ; X32-NEXT: retl
594 ; X32-LABEL: test_mm_comige_ss:
595 ; X32: # BB#0:
596 ; X32-NEXT: xorl %eax, %eax
597 ; X32-NEXT: comiss %xmm1, %xmm0
598 ; X32-NEXT: setae %al
599 ; X32-NEXT: retl
613 ; X32-LABEL: test_mm_comigt_ss:
614 ; X32: # BB#0:
615 ; X32-NEXT: xorl %eax, %eax
616 ; X32-NEXT: comiss %xmm1, %xmm0
617 ; X32-NEXT: seta %al
618 ; X32-NEXT: retl
632 ; X32-LABEL: test_mm_comile_ss:
633 ; X32: # BB#0:
634 ; X32-NEXT: xorl %eax, %eax
635 ; X32-NEXT: comiss %xmm0, %xmm1
636 ; X32-NEXT: setae %al
637 ; X32-NEXT: retl
651 ; X32-LABEL: test_mm_comilt_ss:
652 ; X32: # BB#0:
653 ; X32-NEXT: xorl %eax, %eax
654 ; X32-NEXT: comiss %xmm0, %xmm1
655 ; X32-NEXT: seta %al
656 ; X32-NEXT: retl
670 ; X32-LABEL: test_mm_comineq_ss:
671 ; X32: # BB#0:
672 ; X32-NEXT: comiss %xmm1, %xmm0
673 ; X32-NEXT: setp %al
674 ; X32-NEXT: setne %cl
675 ; X32-NEXT: orb %al, %cl
676 ; X32-NEXT: movzbl %cl, %eax
677 ; X32-NEXT: retl
693 ; X32-LABEL: test_mm_cvt_ss2si:
694 ; X32: # BB#0:
695 ; X32-NEXT: cvtss2si %xmm0, %eax
696 ; X32-NEXT: retl
708 ; X32-LABEL: test_mm_cvtsi32_ss:
709 ; X32: # BB#0:
710 ; X32-NEXT: movl {{[0-9]+}}(%esp), %eax
711 ; X32-NEXT: cvtsi2ssl %eax, %xmm1
712 ; X32-NEXT: movss {{.*#+}} xmm0 = xmm1[0],xmm0[1,2,3]
713 ; X32-NEXT: retl
726 ; X32-LABEL: test_mm_cvtss_f32:
727 ; X32: # BB#0:
728 ; X32-NEXT: pushl %eax
729 ; X32-NEXT: movss %xmm0, (%esp)
730 ; X32-NEXT: flds (%esp)
731 ; X32-NEXT: popl %eax
732 ; X32-NEXT: retl
742 ; X32-LABEL: test_mm_cvtss_si32:
743 ; X32: # BB#0:
744 ; X32-NEXT: cvtss2si %xmm0, %eax
745 ; X32-NEXT: retl
756 ; X32-LABEL: test_mm_cvttss_si:
757 ; X32: # BB#0:
758 ; X32-NEXT: cvttss2si %xmm0, %eax
759 ; X32-NEXT: retl
771 ; X32-LABEL: test_mm_cvttss_si32:
772 ; X32: # BB#0:
773 ; X32-NEXT: cvttss2si %xmm0, %eax
774 ; X32-NEXT: retl
786 ; X32-LABEL: test_mm_div_ps:
787 ; X32: # BB#0:
788 ; X32-NEXT: divps %xmm1, %xmm0
789 ; X32-NEXT: retl
800 ; X32-LABEL: test_mm_div_ss:
801 ; X32: # BB#0:
802 ; X32-NEXT: divss %xmm1, %xmm0
803 ; X32-NEXT: retl
817 ; X32-LABEL: test_MM_GET_EXCEPTION_MASK:
818 ; X32: # BB#0:
819 ; X32-NEXT: pushl %eax
820 ; X32-NEXT: leal (%esp), %eax
821 ; X32-NEXT: stmxcsr (%eax)
822 ; X32-NEXT: movl (%esp), %eax
823 ; X32-NEXT: andl $8064, %eax # imm = 0x1F80
824 ; X32-NEXT: popl %ecx
825 ; X32-NEXT: retl
844 ; X32-LABEL: test_MM_GET_EXCEPTION_STATE:
845 ; X32: # BB#0:
846 ; X32-NEXT: pushl %eax
847 ; X32-NEXT: leal (%esp), %eax
848 ; X32-NEXT: stmxcsr (%eax)
849 ; X32-NEXT: movl (%esp), %eax
850 ; X32-NEXT: andl $63, %eax
851 ; X32-NEXT: popl %ecx
852 ; X32-NEXT: retl
870 ; X32-LABEL: test_MM_GET_FLUSH_ZERO_MODE:
871 ; X32: # BB#0:
872 ; X32-NEXT: pushl %eax
873 ; X32-NEXT: leal (%esp), %eax
874 ; X32-NEXT: stmxcsr (%eax)
875 ; X32-NEXT: movl (%esp), %eax
876 ; X32-NEXT: andl $32768, %eax # imm = 0x8000
877 ; X32-NEXT: popl %ecx
878 ; X32-NEXT: retl
896 ; X32-LABEL: test_MM_GET_ROUNDING_MODE:
897 ; X32: # BB#0:
898 ; X32-NEXT: pushl %eax
899 ; X32-NEXT: leal (%esp), %eax
900 ; X32-NEXT: stmxcsr (%eax)
901 ; X32-NEXT: movl (%esp), %eax
902 ; X32-NEXT: andl $24576, %eax # imm = 0x6000
903 ; X32-NEXT: popl %ecx
904 ; X32-NEXT: retl
922 ; X32-LABEL: test_mm_getcsr:
923 ; X32: # BB#0:
924 ; X32-NEXT: pushl %eax
925 ; X32-NEXT: leal (%esp), %eax
926 ; X32-NEXT: stmxcsr (%eax)
927 ; X32-NEXT: movl (%esp), %eax
928 ; X32-NEXT: popl %ecx
929 ; X32-NEXT: retl
945 ; X32-LABEL: test_mm_load_ps:
946 ; X32: # BB#0:
947 ; X32-NEXT: movl {{[0-9]+}}(%esp), %eax
948 ; X32-NEXT: movaps (%eax), %xmm0
949 ; X32-NEXT: retl
961 ; X32-LABEL: test_mm_load_ps1:
962 ; X32: # BB#0:
963 ; X32-NEXT: movl {{[0-9]+}}(%esp), %eax
964 ; X32-NEXT: movss {{.*#+}} xmm0 = mem[0],zero,zero,zero
965 ; X32-NEXT: shufps {{.*#+}} xmm0 = xmm0[0,0,0,0]
966 ; X32-NEXT: retl
982 ; X32-LABEL: test_mm_load_ss:
983 ; X32: # BB#0:
984 ; X32-NEXT: movl {{[0-9]+}}(%esp), %eax
985 ; X32-NEXT: movss {{.*#+}} xmm0 = mem[0],zero,zero,zero
986 ; X32-NEXT: retl
1001 ; X32-LABEL: test_mm_load1_ps:
1002 ; X32: # BB#0:
1003 ; X32-NEXT: movl {{[0-9]+}}(%esp), %eax
1004 ; X32-NEXT: movss {{.*#+}} xmm0 = mem[0],zero,zero,zero
1005 ; X32-NEXT: shufps {{.*#+}} xmm0 = xmm0[0,0,0,0]
1006 ; X32-NEXT: retl
1022 ; X32-LABEL: test_mm_loadh_pi:
1023 ; X32: # BB#0:
1024 ; X32-NEXT: movl {{[0-9]+}}(%esp), %eax
1025 ; X32-NEXT: movss {{.*#+}} xmm1 = mem[0],zero,zero,zero
1026 ; X32-NEXT: movss {{.*#+}} xmm2 = mem[0],zero,zero,zero
1027 ; X32-NEXT: unpcklps {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
1028 ; X32-NEXT: movlhps {{.*#+}} xmm0 = xmm0[0],xmm1[0]
1029 ; X32-NEXT: retl
1052 ; X32-LABEL: test_mm_loadl_pi:
1053 ; X32: # BB#0:
1054 ; X32-NEXT: movl {{[0-9]+}}(%esp), %eax
1055 ; X32-NEXT: movss {{.*#+}} xmm1 = mem[0],zero,zero,zero
1056 ; X32-NEXT: movss {{.*#+}} xmm2 = mem[0],zero,zero,zero
1057 ; X32-NEXT: unpcklps {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
1058 ; X32-NEXT: shufps {{.*#+}} xmm1 = xmm1[0,1],xmm0[2,3]
1059 ; X32-NEXT: movaps %xmm1, %xmm0
1060 ; X32-NEXT: retl
1084 ; X32-LABEL: test_mm_loadr_ps:
1085 ; X32: # BB#0:
1086 ; X32-NEXT: movl {{[0-9]+}}(%esp), %eax
1087 ; X32-NEXT: movaps (%eax), %xmm0
1088 ; X32-NEXT: shufps {{.*#+}} xmm0 = xmm0[3,2,1,0]
1089 ; X32-NEXT: retl
1103 ; X32-LABEL: test_mm_loadu_ps:
1104 ; X32: # BB#0:
1105 ; X32-NEXT: movl {{[0-9]+}}(%esp), %eax
1106 ; X32-NEXT: movups (%eax), %xmm0
1107 ; X32-NEXT: retl
1119 ; X32-LABEL: test_mm_max_ps:
1120 ; X32: # BB#0:
1121 ; X32-NEXT: maxps %xmm1, %xmm0
1122 ; X32-NEXT: retl
1134 ; X32-LABEL: test_mm_max_ss:
1135 ; X32: # BB#0:
1136 ; X32-NEXT: maxss %xmm1, %xmm0
1137 ; X32-NEXT: retl
1149 ; X32-LABEL: test_mm_min_ps:
1150 ; X32: # BB#0:
1151 ; X32-NEXT: minps %xmm1, %xmm0
1152 ; X32-NEXT: retl
1164 ; X32-LABEL: test_mm_min_ss:
1165 ; X32: # BB#0:
1166 ; X32-NEXT: minss %xmm1, %xmm0
1167 ; X32-NEXT: retl
1179 ; X32-LABEL: test_mm_move_ss:
1180 ; X32: # BB#0:
1181 ; X32-NEXT: movss {{.*#+}} xmm0 = xmm1[0],xmm0[1,2,3]
1182 ; X32-NEXT: retl
1193 ; X32-LABEL: test_mm_movehl_ps:
1194 ; X32: # BB#0:
1195 ; X32-NEXT: movhlps {{.*#+}} xmm0 = xmm1[1],xmm0[1]
1196 ; X32-NEXT: retl
1207 ; X32-LABEL: test_mm_movelh_ps:
1208 ; X32: # BB#0:
1209 ; X32-NEXT: movlhps {{.*#+}} xmm0 = xmm0[0],xmm1[0]
1210 ; X32-NEXT: retl
1221 ; X32-LABEL: test_mm_movemask_ps:
1222 ; X32: # BB#0:
1223 ; X32-NEXT: movmskps %xmm0, %eax
1224 ; X32-NEXT: retl
1236 ; X32-LABEL: test_mm_mul_ps:
1237 ; X32: # BB#0:
1238 ; X32-NEXT: mulps %xmm1, %xmm0
1239 ; X32-NEXT: retl
1250 ; X32-LABEL: test_mm_mul_ss:
1251 ; X32: # BB#0:
1252 ; X32-NEXT: mulss %xmm1, %xmm0
1253 ; X32-NEXT: retl
1267 ; X32-LABEL: test_mm_or_ps:
1268 ; X32: # BB#0:
1269 ; X32-NEXT: pushl %ebp
1270 ; X32-NEXT: movl %esp, %ebp
1271 ; X32-NEXT: pushl %esi
1272 ; X32-NEXT: andl $-16, %esp
1273 ; X32-NEXT: subl $64, %esp
1274 ; X32-NEXT: movaps %xmm0, {{[0-9]+}}(%esp)
1275 ; X32-NEXT: movl {{[0-9]+}}(%esp), %eax
1276 ; X32-NEXT: movl {{[0-9]+}}(%esp), %ecx
1277 ; X32-NEXT: movl {{[0-9]+}}(%esp), %edx
1278 ; X32-NEXT: movl {{[0-9]+}}(%esp), %esi
1279 ; X32-NEXT: movaps %xmm1, {{[0-9]+}}(%esp)
1280 ; X32-NEXT: orl {{[0-9]+}}(%esp), %esi
1281 ; X32-NEXT: movl %esi, (%esp)
1282 ; X32-NEXT: orl {{[0-9]+}}(%esp), %edx
1283 ; X32-NEXT: movl %edx, {{[0-9]+}}(%esp)
1284 ; X32-NEXT: orl {{[0-9]+}}(%esp), %eax
1285 ; X32-NEXT: movl %eax, {{[0-9]+}}(%esp)
1286 ; X32-NEXT: orl {{[0-9]+}}(%esp), %ecx
1287 ; X32-NEXT: movl %ecx, {{[0-9]+}}(%esp)
1288 ; X32-NEXT: movss {{.*#+}} xmm0 = mem[0],zero,zero,zero
1289 ; X32-NEXT: movss {{.*#+}} xmm1 = mem[0],zero,zero,zero
1290 ; X32-NEXT: unpcklps {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
1291 ; X32-NEXT: movss {{.*#+}} xmm2 = mem[0],zero,zero,zero
1292 ; X32-NEXT: movss {{.*#+}} xmm0 = mem[0],zero,zero,zero
1293 ; X32-NEXT: unpcklps {{.*#+}} xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1]
1294 ; X32-NEXT: unpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
1295 ; X32-NEXT: leal -4(%ebp), %esp
1296 ; X32-NEXT: popl %esi
1297 ; X32-NEXT: popl %ebp
1298 ; X32-NEXT: retl
1338 ; X32-LABEL: test_mm_prefetch:
1339 ; X32: # BB#0:
1340 ; X32-NEXT: movl {{[0-9]+}}(%esp), %eax
1341 ; X32-NEXT: prefetchnta (%eax)
1342 ; X32-NEXT: retl
1354 ; X32-LABEL: test_mm_rcp_ps:
1355 ; X32: # BB#0:
1356 ; X32-NEXT: rcpps %xmm0, %xmm0
1357 ; X32-NEXT: retl
1369 ; X32-LABEL: test_mm_rcp_ss:
1370 ; X32: # BB#0:
1371 ; X32-NEXT: rcpss %xmm0, %xmm0
1372 ; X32-NEXT: retl
1392 ; X32-LABEL: test_mm_rsqrt_ps:
1393 ; X32: # BB#0:
1394 ; X32-NEXT: rsqrtps %xmm0, %xmm0
1395 ; X32-NEXT: retl
1407 ; X32-LABEL: test_mm_rsqrt_ss:
1408 ; X32: # BB#0:
1409 ; X32-NEXT: rsqrtss %xmm0, %xmm0
1410 ; X32-NEXT: retl
1430 ; X32-LABEL: test_MM_SET_EXCEPTION_MASK:
1431 ; X32: # BB#0:
1432 ; X32-NEXT: pushl %eax
1433 ; X32-NEXT: movl {{[0-9]+}}(%esp), %eax
1434 ; X32-NEXT: leal (%esp), %ecx
1435 ; X32-NEXT: stmxcsr (%ecx)
1436 ; X32-NEXT: movl (%esp), %edx
1437 ; X32-NEXT: andl $-8065, %edx # imm = 0xE07F
1438 ; X32-NEXT: orl %eax, %edx
1439 ; X32-NEXT: movl %edx, (%esp)
1440 ; X32-NEXT: ldmxcsr (%ecx)
1441 ; X32-NEXT: popl %eax
1442 ; X32-NEXT: retl
1467 ; X32-LABEL: test_MM_SET_EXCEPTION_STATE:
1468 ; X32: # BB#0:
1469 ; X32-NEXT: pushl %eax
1470 ; X32-NEXT: movl {{[0-9]+}}(%esp), %eax
1471 ; X32-NEXT: leal (%esp), %ecx
1472 ; X32-NEXT: stmxcsr (%ecx)
1473 ; X32-NEXT: movl (%esp), %edx
1474 ; X32-NEXT: andl $-64, %edx
1475 ; X32-NEXT: orl %eax, %edx
1476 ; X32-NEXT: movl %edx, (%esp)
1477 ; X32-NEXT: ldmxcsr (%ecx)
1478 ; X32-NEXT: popl %eax
1479 ; X32-NEXT: retl
1503 ; X32-LABEL: test_MM_SET_FLUSH_ZERO_MODE:
1504 ; X32: # BB#0:
1505 ; X32-NEXT: pushl %eax
1506 ; X32-NEXT: movl {{[0-9]+}}(%esp), %eax
1507 ; X32-NEXT: leal (%esp), %ecx
1508 ; X32-NEXT: stmxcsr (%ecx)
1509 ; X32-NEXT: movl (%esp), %edx
1510 ; X32-NEXT: andl $-32769, %edx # imm = 0xFFFF7FFF
1511 ; X32-NEXT: orl %eax, %edx
1512 ; X32-NEXT: movl %edx, (%esp)
1513 ; X32-NEXT: ldmxcsr (%ecx)
1514 ; X32-NEXT: popl %eax
1515 ; X32-NEXT: retl
1539 ; X32-LABEL: test_mm_set_ps:
1540 ; X32: # BB#0:
1541 ; X32-NEXT: movss {{.*#+}} xmm0 = mem[0],zero,zero,zero
1542 ; X32-NEXT: movss {{.*#+}} xmm1 = mem[0],zero,zero,zero
1543 ; X32-NEXT: movss {{.*#+}} xmm2 = mem[0],zero,zero,zero
1544 ; X32-NEXT: movss {{.*#+}} xmm3 = mem[0],zero,zero,zero
1545 ; X32-NEXT: unpcklps {{.*#+}} xmm1 = xmm1[0],xmm3[0],xmm1[1],xmm3[1]
1546 ; X32-NEXT: unpcklps {{.*#+}} xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1]
1547 ; X32-NEXT: unpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
1548 ; X32-NEXT: retl
1565 ; X32-LABEL: test_mm_set_ps1:
1566 ; X32: # BB#0:
1567 ; X32-NEXT: movss {{.*#+}} xmm0 = mem[0],zero,zero,zero
1568 ; X32-NEXT: shufps {{.*#+}} xmm0 = xmm0[0,0,0,0]
1569 ; X32-NEXT: retl
1583 ; X32-LABEL: test_MM_SET_ROUNDING_MODE:
1584 ; X32: # BB#0:
1585 ; X32-NEXT: pushl %eax
1586 ; X32-NEXT: movl {{[0-9]+}}(%esp), %eax
1587 ; X32-NEXT: leal (%esp), %ecx
1588 ; X32-NEXT: stmxcsr (%ecx)
1589 ; X32-NEXT: movl (%esp), %edx
1590 ; X32-NEXT: andl $-24577, %edx # imm = 0x9FFF
1591 ; X32-NEXT: orl %eax, %edx
1592 ; X32-NEXT: movl %edx, (%esp)
1593 ; X32-NEXT: ldmxcsr (%ecx)
1594 ; X32-NEXT: popl %eax
1595 ; X32-NEXT: retl
1619 ; X32-LABEL: test_mm_set_ss:
1620 ; X32: # BB#0:
1621 ; X32-NEXT: movss {{.*#+}} xmm1 = mem[0],zero,zero,zero
1622 ; X32-NEXT: xorps %xmm0, %xmm0
1623 ; X32-NEXT: movss {{.*#+}} xmm0 = xmm1[0],xmm0[1,2,3]
1624 ; X32-NEXT: retl
1640 ; X32-LABEL: test_mm_set1_ps:
1641 ; X32: # BB#0:
1642 ; X32-NEXT: movss {{.*#+}} xmm0 = mem[0],zero,zero,zero
1643 ; X32-NEXT: shufps {{.*#+}} xmm0 = xmm0[0,0,0,0]
1644 ; X32-NEXT: retl
1658 ; X32-LABEL: test_mm_setcsr:
1659 ; X32: # BB#0:
1660 ; X32-NEXT: pushl %eax
1661 ; X32-NEXT: movl {{[0-9]+}}(%esp), %eax
1662 ; X32-NEXT: leal (%esp), %ecx
1663 ; X32-NEXT: movl %eax, (%esp)
1664 ; X32-NEXT: ldmxcsr (%ecx)
1665 ; X32-NEXT: popl %eax
1666 ; X32-NEXT: retl
1682 ; X32-LABEL: test_mm_setr_ps:
1683 ; X32: # BB#0:
1684 ; X32-NEXT: movss {{.*#+}} xmm1 = mem[0],zero,zero,zero
1685 ; X32-NEXT: movss {{.*#+}} xmm2 = mem[0],zero,zero,zero
1686 ; X32-NEXT: movss {{.*#+}} xmm3 = mem[0],zero,zero,zero
1687 ; X32-NEXT: movss {{.*#+}} xmm0 = mem[0],zero,zero,zero
1688 ; X32-NEXT: unpcklps {{.*#+}} xmm3 = xmm3[0],xmm1[0],xmm3[1],xmm1[1]
1689 ; X32-NEXT: unpcklps {{.*#+}} xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1]
1690 ; X32-NEXT: unpcklps {{.*#+}} xmm0 = xmm0[0],xmm3[0],xmm0[1],xmm3[1]
1691 ; X32-NEXT: retl
1707 ; X32-LABEL: test_mm_setzero_ps:
1708 ; X32: # BB#0:
1709 ; X32-NEXT: xorps %xmm0, %xmm0
1710 ; X32-NEXT: retl
1720 ; X32-LABEL: test_mm_sfence:
1721 ; X32: # BB#0:
1722 ; X32-NEXT: sfence
1723 ; X32-NEXT: retl
1735 ; X32-LABEL: test_mm_shuffle_ps:
1736 ; X32: # BB#0:
1737 ; X32-NEXT: shufps {{.*#+}} xmm0 = xmm0[0,0],xmm1[0,0]
1738 ; X32-NEXT: retl
1749 ; X32-LABEL: test_mm_sqrt_ps:
1750 ; X32: # BB#0:
1751 ; X32-NEXT: sqrtps %xmm0, %xmm0
1752 ; X32-NEXT: retl
1764 ; X32-LABEL: test_mm_sqrt_ss:
1765 ; X32: # BB#0:
1766 ; X32-NEXT: sqrtss %xmm0, %xmm0
1767 ; X32-NEXT: retl
1787 ; X32-LABEL: test_mm_store_ps:
1788 ; X32: # BB#0:
1789 ; X32-NEXT: movl {{[0-9]+}}(%esp), %eax
1790 ; X32-NEXT: movaps %xmm0, (%eax)
1791 ; X32-NEXT: retl
1803 ; X32-LABEL: test_mm_store_ps1:
1804 ; X32: # BB#0:
1805 ; X32-NEXT: movl {{[0-9]+}}(%esp), %eax
1806 ; X32-NEXT: shufps {{.*#+}} xmm0 = xmm0[0,0,0,0]
1807 ; X32-NEXT: movaps %xmm0, (%eax)
1808 ; X32-NEXT: retl
1822 ; X32-LABEL: test_mm_store_ss:
1823 ; X32: # BB#0:
1824 ; X32-NEXT: movl {{[0-9]+}}(%esp), %eax
1825 ; X32-NEXT: movss %xmm0, (%eax)
1826 ; X32-NEXT: retl
1838 ; X32-LABEL: test_mm_store1_ps:
1839 ; X32: # BB#0:
1840 ; X32-NEXT: movl {{[0-9]+}}(%esp), %eax
1841 ; X32-NEXT: shufps {{.*#+}} xmm0 = xmm0[0,0,0,0]
1842 ; X32-NEXT: movaps %xmm0, (%eax)
1843 ; X32-NEXT: retl
1857 ; X32-LABEL: test_mm_storeh_ps:
1858 ; X32: # BB#0:
1859 ; X32-NEXT: pushl %ebp
1860 ; X32-NEXT: movl %esp, %ebp
1861 ; X32-NEXT: andl $-16, %esp
1862 ; X32-NEXT: subl $32, %esp
1863 ; X32-NEXT: movl 8(%ebp), %eax
1864 ; X32-NEXT: movaps %xmm0, (%esp)
1865 ; X32-NEXT: movl {{[0-9]+}}(%esp), %ecx
1866 ; X32-NEXT: movl {{[0-9]+}}(%esp), %edx
1867 ; X32-NEXT: movl %edx, 4(%eax)
1868 ; X32-NEXT: movl %ecx, (%eax)
1869 ; X32-NEXT: movl %ebp, %esp
1870 ; X32-NEXT: popl %ebp
1871 ; X32-NEXT: retl
1887 ; X32-LABEL: test_mm_storel_ps:
1888 ; X32: # BB#0:
1889 ; X32-NEXT: pushl %ebp
1890 ; X32-NEXT: movl %esp, %ebp
1891 ; X32-NEXT: andl $-16, %esp
1892 ; X32-NEXT: subl $32, %esp
1893 ; X32-NEXT: movl 8(%ebp), %eax
1894 ; X32-NEXT: movaps %xmm0, (%esp)
1895 ; X32-NEXT: movl (%esp), %ecx
1896 ; X32-NEXT: movl {{[0-9]+}}(%esp), %edx
1897 ; X32-NEXT: movl %edx, 4(%eax)
1898 ; X32-NEXT: movl %ecx, (%eax)
1899 ; X32-NEXT: movl %ebp, %esp
1900 ; X32-NEXT: popl %ebp
1901 ; X32-NEXT: retl
1917 ; X32-LABEL: test_mm_storer_ps:
1918 ; X32: # BB#0:
1919 ; X32-NEXT: movl {{[0-9]+}}(%esp), %eax
1920 ; X32-NEXT: shufps {{.*#+}} xmm0 = xmm0[3,2,1,0]
1921 ; X32-NEXT: movaps %xmm0, (%eax)
1922 ; X32-NEXT: retl
1936 ; X32-LABEL: test_mm_storeu_ps:
1937 ; X32: # BB#0:
1938 ; X32-NEXT: movl {{[0-9]+}}(%esp), %eax
1939 ; X32-NEXT: movups %xmm0, (%eax)
1940 ; X32-NEXT: retl
1952 ; X32-LABEL: test_mm_stream_ps:
1953 ; X32: # BB#0:
1954 ; X32-NEXT: movl {{[0-9]+}}(%esp), %eax
1955 ; X32-NEXT: movntps %xmm0, (%eax)
1956 ; X32-NEXT: retl
1968 ; X32-LABEL: test_mm_sub_ps:
1969 ; X32: # BB#0:
1970 ; X32-NEXT: subps %xmm1, %xmm0
1971 ; X32-NEXT: retl
1982 ; X32-LABEL: test_mm_sub_ss:
1983 ; X32: # BB#0:
1984 ; X32-NEXT: subss %xmm1, %xmm0
1985 ; X32-NEXT: retl
1999 ; X32-LABEL: test_MM_TRANSPOSE4_PS:
2000 ; X32: # BB#0:
2001 ; X32-NEXT: pushl %esi
2002 ; X32-NEXT: movl {{[0-9]+}}(%esp), %eax
2003 ; X32-NEXT: movl {{[0-9]+}}(%esp), %ecx
2004 ; X32-NEXT: movl {{[0-9]+}}(%esp), %edx
2005 ; X32-NEXT: movl {{[0-9]+}}(%esp), %esi
2006 ; X32-NEXT: movaps (%esi), %xmm0
2007 ; X32-NEXT: movaps (%edx), %xmm1
2008 ; X32-NEXT: movaps (%ecx), %xmm2
2009 ; X32-NEXT: movaps (%eax), %xmm3
2010 ; X32-NEXT: movaps %xmm0, %xmm4
2011 ; X32-NEXT: unpcklps {{.*#+}} xmm4 = xmm4[0],xmm1[0],xmm4[1],xmm1[1]
2012 ; X32-NEXT: movaps %xmm2, %xmm5
2013 ; X32-NEXT: unpcklps {{.*#+}} xmm5 = xmm5[0],xmm3[0],xmm5[1],xmm3[1]
2014 ; X32-NEXT: unpckhps {{.*#+}} xmm0 = xmm0[2],xmm1[2],xmm0[3],xmm1[3]
2015 ; X32-NEXT: unpckhps {{.*#+}} xmm2 = xmm2[2],xmm3[2],xmm2[3],xmm3[3]
2016 ; X32-NEXT: movaps %xmm4, %xmm1
2017 ; X32-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm5[0]
2018 ; X32-NEXT: movhlps {{.*#+}} xmm5 = xmm4[1],xmm5[1]
2019 ; X32-NEXT: movaps %xmm0, %xmm3
2020 ; X32-NEXT: movlhps {{.*#+}} xmm3 = xmm3[0],xmm2[0]
2021 ; X32-NEXT: movhlps {{.*#+}} xmm2 = xmm0[1],xmm2[1]
2022 ; X32-NEXT: movaps %xmm1, (%esi)
2023 ; X32-NEXT: movaps %xmm5, (%edx)
2024 ; X32-NEXT: movaps %xmm3, (%ecx)
2025 ; X32-NEXT: movaps %xmm2, (%eax)
2026 ; X32-NEXT: popl %esi
2027 ; X32-NEXT: retl
2072 ; X32-LABEL: test_mm_ucomieq_ss:
2073 ; X32: # BB#0:
2074 ; X32-NEXT: ucomiss %xmm1, %xmm0
2075 ; X32-NEXT: setnp %al
2076 ; X32-NEXT: sete %cl
2077 ; X32-NEXT: andb %al, %cl
2078 ; X32-NEXT: movzbl %cl, %eax
2079 ; X32-NEXT: retl
2095 ; X32-LABEL: test_mm_ucomige_ss:
2096 ; X32: # BB#0:
2097 ; X32-NEXT: xorl %eax, %eax
2098 ; X32-NEXT: ucomiss %xmm1, %xmm0
2099 ; X32-NEXT: setae %al
2100 ; X32-NEXT: retl
2114 ; X32-LABEL: test_mm_ucomigt_ss:
2115 ; X32: # BB#0:
2116 ; X32-NEXT: xorl %eax, %eax
2117 ; X32-NEXT: ucomiss %xmm1, %xmm0
2118 ; X32-NEXT: seta %al
2119 ; X32-NEXT: retl
2133 ; X32-LABEL: test_mm_ucomile_ss:
2134 ; X32: # BB#0:
2135 ; X32-NEXT: xorl %eax, %eax
2136 ; X32-NEXT: ucomiss %xmm0, %xmm1
2137 ; X32-NEXT: setae %al
2138 ; X32-NEXT: retl
2152 ; X32-LABEL: test_mm_ucomilt_ss:
2153 ; X32: # BB#0:
2154 ; X32-NEXT: xorl %eax, %eax
2155 ; X32-NEXT: ucomiss %xmm0, %xmm1
2156 ; X32-NEXT: seta %al
2157 ; X32-NEXT: retl
2171 ; X32-LABEL: test_mm_ucomineq_ss:
2172 ; X32: # BB#0:
2173 ; X32-NEXT: ucomiss %xmm1, %xmm0
2174 ; X32-NEXT: setp %al
2175 ; X32-NEXT: setne %cl
2176 ; X32-NEXT: orb %al, %cl
2177 ; X32-NEXT: movzbl %cl, %eax
2178 ; X32-NEXT: retl
2194 ; X32-LABEL: test_mm_undefined_ps:
2195 ; X32: # BB#0:
2196 ; X32-NEXT: retl
2205 ; X32-LABEL: test_mm_unpackhi_ps:
2206 ; X32: # BB#0:
2207 ; X32-NEXT: unpckhps {{.*#+}} xmm0 = xmm0[2],xmm1[2],xmm0[3],xmm1[3]
2208 ; X32-NEXT: retl
2219 ; X32-LABEL: test_mm_unpacklo_ps:
2220 ; X32: # BB#0:
2221 ; X32-NEXT: unpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
2222 ; X32-NEXT: retl
2233 ; X32-LABEL: test_mm_xor_ps:
2234 ; X32: # BB#0:
2235 ; X32-NEXT: pushl %ebp
2236 ; X32-NEXT: movl %esp, %ebp
2237 ; X32-NEXT: pushl %esi
2238 ; X32-NEXT: andl $-16, %esp
2239 ; X32-NEXT: subl $64, %esp
2240 ; X32-NEXT: movaps %xmm0, {{[0-9]+}}(%esp)
2241 ; X32-NEXT: movl {{[0-9]+}}(%esp), %eax
2242 ; X32-NEXT: movl {{[0-9]+}}(%esp), %ecx
2243 ; X32-NEXT: movl {{[0-9]+}}(%esp), %edx
2244 ; X32-NEXT: movl {{[0-9]+}}(%esp), %esi
2245 ; X32-NEXT: movaps %xmm1, {{[0-9]+}}(%esp)
2246 ; X32-NEXT: xorl {{[0-9]+}}(%esp), %esi
2247 ; X32-NEXT: movl %esi, (%esp)
2248 ; X32-NEXT: xorl {{[0-9]+}}(%esp), %edx
2249 ; X32-NEXT: movl %edx, {{[0-9]+}}(%esp)
2250 ; X32-NEXT: xorl {{[0-9]+}}(%esp), %eax
2251 ; X32-NEXT: movl %eax, {{[0-9]+}}(%esp)
2252 ; X32-NEXT: xorl {{[0-9]+}}(%esp), %ecx
2253 ; X32-NEXT: movl %ecx, {{[0-9]+}}(%esp)
2254 ; X32-NEXT: movss {{.*#+}} xmm0 = mem[0],zero,zero,zero
2255 ; X32-NEXT: movss {{.*#+}} xmm1 = mem[0],zero,zero,zero
2256 ; X32-NEXT: unpcklps {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
2257 ; X32-NEXT: movss {{.*#+}} xmm2 = mem[0],zero,zero,zero
2258 ; X32-NEXT: movss {{.*#+}} xmm0 = mem[0],zero,zero,zero
2259 ; X32-NEXT: unpcklps {{.*#+}} xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1]
2260 ; X32-NEXT: unpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
2261 ; X32-NEXT: leal -4(%ebp), %esp
2262 ; X32-NEXT: popl %esi
2263 ; X32-NEXT: popl %ebp
2264 ; X32-NEXT: retl