• Home
  • Raw
  • Download

Lines Matching refs:X32

1 …: llc < %s -mtriple=i686-apple-darwin9 -mattr=sse4.1 -mcpu=penryn | FileCheck %s --check-prefix=X32
7 ; X32-LABEL: pinsrd_1:
8 ; X32: ## BB#0:
9 ; X32-NEXT: pinsrd $1, {{[0-9]+}}(%esp), %xmm0
10 ; X32-NEXT: retl
21 ; X32-LABEL: pinsrb_1:
22 ; X32: ## BB#0:
23 ; X32-NEXT: pinsrb $1, {{[0-9]+}}(%esp), %xmm0
24 ; X32-NEXT: retl
35 ; X32-LABEL: pmovsxbd_1:
36 ; X32: ## BB#0: ## %entry
37 ; X32-NEXT: movl {{[0-9]+}}(%esp), %eax
38 ; X32-NEXT: pmovsxbd (%eax), %xmm0
39 ; X32-NEXT: retl
58 ; X32-LABEL: pmovsxwd_1:
59 ; X32: ## BB#0: ## %entry
60 ; X32-NEXT: movl {{[0-9]+}}(%esp), %eax
61 ; X32-NEXT: pmovsxwd (%eax), %xmm0
62 ; X32-NEXT: retl
78 ; X32-LABEL: pmovzxbq_1:
79 ; X32: ## BB#0: ## %entry
80 ; X32-NEXT: movl L_g16$non_lazy_ptr, %eax
81 ; X32-NEXT: pmovzxbq {{.*#+}} xmm0 = mem[0],zero,zero,zero,zero,zero,zero,zero,mem[1],zero,zero,…
82 ; X32-NEXT: retl
102 ; X32-LABEL: extractps_1:
103 ; X32: ## BB#0:
104 ; X32-NEXT: extractps $3, %xmm0, %eax
105 ; X32-NEXT: retl
116 ; X32-LABEL: extractps_2:
117 ; X32: ## BB#0:
118 ; X32-NEXT: extractps $3, %xmm0, %eax
119 ; X32-NEXT: retl
136 ; X32-LABEL: ext_1:
137 ; X32: ## BB#0:
138 ; X32-NEXT: pushl %eax
139 ; X32-NEXT: shufps {{.*#+}} xmm0 = xmm0[3,1,2,3]
140 ; X32-NEXT: addss LCPI7_0, %xmm0
141 ; X32-NEXT: movss %xmm0, (%esp)
142 ; X32-NEXT: flds (%esp)
143 ; X32-NEXT: popl %eax
144 ; X32-NEXT: retl
156 ; X32-LABEL: ext_2:
157 ; X32: ## BB#0:
158 ; X32-NEXT: pushl %eax
159 ; X32-NEXT: shufps {{.*#+}} xmm0 = xmm0[3,1,2,3]
160 ; X32-NEXT: movss %xmm0, (%esp)
161 ; X32-NEXT: flds (%esp)
162 ; X32-NEXT: popl %eax
163 ; X32-NEXT: retl
173 ; X32-LABEL: ext_3:
174 ; X32: ## BB#0:
175 ; X32-NEXT: pextrd $3, %xmm0, %eax
176 ; X32-NEXT: retl
187 ; X32-LABEL: insertps_1:
188 ; X32: ## BB#0:
189 ; X32-NEXT: insertps {{.*#+}} xmm0 = zero,xmm0[1,2,3]
190 ; X32-NEXT: retl
205 ; X32-LABEL: blendps_not_insertps_1:
206 ; X32: ## BB#0:
207 ; X32-NEXT: movss {{.*#+}} xmm1
208 ; X32-NEXT: blendps {{.*#+}} xmm0 = xmm1[0],xmm0[1,2,3]
209 ; X32-NEXT: retl
221 ; generate an insertps for X32 but not for X64!
223 ; X32-LABEL: insertps_or_blendps:
224 ; X32: ## BB#0:
225 ; X32-NEXT: insertps {{.*#+}} xmm0 = mem[0],xmm0[1,2,3]
226 ; X32-NEXT: retl
239 ; X32-LABEL: blendps_not_insertps_2:
240 ; X32: ## BB#0:
241 ; X32-NEXT: blendps {{.*#+}} xmm0 = xmm1[0],xmm0[1,2,3]
242 ; X32-NEXT: retl
254 ; X32-LABEL: ptestz_1:
255 ; X32: ## BB#0:
256 ; X32-NEXT: ptest %xmm1, %xmm0
257 ; X32-NEXT: sete %al
258 ; X32-NEXT: movzbl %al, %eax
259 ; X32-NEXT: retl
272 ; X32-LABEL: ptestz_2:
273 ; X32: ## BB#0:
274 ; X32-NEXT: ptest %xmm1, %xmm0
275 ; X32-NEXT: sbbl %eax, %eax
276 ; X32-NEXT: andl $1, %eax
277 ; X32-NEXT: retl
290 ; X32-LABEL: ptestz_3:
291 ; X32: ## BB#0:
292 ; X32-NEXT: ptest %xmm1, %xmm0
293 ; X32-NEXT: seta %al
294 ; X32-NEXT: movzbl %al, %eax
295 ; X32-NEXT: retl
315 ; X32-LABEL: buildvector:
316 ; X32: ## BB#0: ## %entry
317 ; X32-NEXT: movshdup {{.*#+}} xmm2 = xmm0[1,1,3,3]
318 ; X32-NEXT: movshdup {{.*#+}} xmm3 = xmm1[1,1,3,3]
319 ; X32-NEXT: addss %xmm1, %xmm0
320 ; X32-NEXT: addss %xmm2, %xmm3
321 ; X32-NEXT: insertps {{.*#+}} xmm0 = xmm0[0],xmm3[0],xmm0[2,3]
322 ; X32-NEXT: retl
345 ; X32-LABEL: insertps_from_shufflevector_1:
346 ; X32: ## BB#0: ## %entry
347 ; X32-NEXT: movl {{[0-9]+}}(%esp), %eax
348 ; X32-NEXT: insertps {{.*#+}} xmm0 = xmm0[0,1,2],mem[0]
349 ; X32-NEXT: retl
362 ; X32-LABEL: insertps_from_shufflevector_2:
363 ; X32: ## BB#0: ## %entry
364 ; X32-NEXT: insertps {{.*#+}} xmm0 = xmm0[0,1],xmm1[1],xmm0[3]
365 ; X32-NEXT: retl
379 ; X32-LABEL: pinsrd_from_shufflevector_i32:
380 ; X32: ## BB#0: ## %entry
381 ; X32-NEXT: movl {{[0-9]+}}(%esp), %eax
382 ; X32-NEXT: pshufd {{.*#+}} xmm1 = mem[0,1,2,0]
383 ; X32-NEXT: pblendw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,5],xmm1[6,7]
384 ; X32-NEXT: retl
398 ; X32-LABEL: insertps_from_shufflevector_i32_2:
399 ; X32: ## BB#0: ## %entry
400 ; X32-NEXT: pshufd {{.*#+}} xmm1 = xmm1[2,3,0,1]
401 ; X32-NEXT: pblendw {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3],xmm0[4,5,6,7]
402 ; X32-NEXT: retl
415 ; X32-LABEL: insertps_from_load_ins_elt_undef:
416 ; X32: ## BB#0:
417 ; X32-NEXT: movl {{[0-9]+}}(%esp), %eax
418 ; X32-NEXT: insertps {{.*#+}} xmm0 = xmm0[0],mem[0],xmm0[2,3]
419 ; X32-NEXT: retl
433 ; X32-LABEL: insertps_from_load_ins_elt_undef_i32:
434 ; X32: ## BB#0:
435 ; X32-NEXT: movl {{[0-9]+}}(%esp), %eax
436 ; X32-NEXT: movd {{.*#+}} xmm1 = mem[0],zero,zero,zero
437 ; X32-NEXT: pshufd {{.*#+}} xmm1 = xmm1[0,1,0,1]
438 ; X32-NEXT: pblendw {{.*#+}} xmm0 = xmm0[0,1,2,3],xmm1[4,5],xmm0[6,7]
439 ; X32-NEXT: retl
455 ; X32-LABEL: shuf_XYZ0:
456 ; X32: ## BB#0:
457 ; X32-NEXT: xorps %xmm1, %xmm1
458 ; X32-NEXT: blendps {{.*#+}} xmm0 = xmm0[0,1,2],xmm1[3]
459 ; X32-NEXT: retl
477 ; X32-LABEL: shuf_XY00:
478 ; X32: ## BB#0:
479 ; X32-NEXT: movq {{.*#+}} xmm0 = xmm0[0],zero
480 ; X32-NEXT: retl
496 ; X32-LABEL: shuf_XYY0:
497 ; X32: ## BB#0:
498 ; X32-NEXT: insertps {{.*#+}} xmm0 = xmm0[0,1,1],zero
499 ; X32-NEXT: retl
515 ; X32-LABEL: shuf_XYW0:
516 ; X32: ## BB#0:
517 ; X32-NEXT: insertps {{.*#+}} xmm0 = xmm0[0,1,3],zero
518 ; X32-NEXT: retl
535 ; X32-LABEL: shuf_W00W:
536 ; X32: ## BB#0:
537 ; X32-NEXT: insertps {{.*#+}} xmm0 = xmm0[3],zero,zero,xmm0[3]
538 ; X32-NEXT: retl
553 ; X32-LABEL: shuf_X00A:
554 ; X32: ## BB#0:
555 ; X32-NEXT: xorps %xmm2, %xmm2
556 ; X32-NEXT: blendps {{.*#+}} xmm0 = xmm0[0],xmm2[1,2,3]
557 ; X32-NEXT: insertps {{.*#+}} xmm0 = xmm0[0,1,2],xmm1[0]
558 ; X32-NEXT: retl
575 ; X32-LABEL: shuf_X00X:
576 ; X32: ## BB#0:
577 ; X32-NEXT: insertps {{.*#+}} xmm0 = xmm0[0],zero,zero,xmm0[0]
578 ; X32-NEXT: retl
593 ; X32-LABEL: shuf_X0YC:
594 ; X32: ## BB#0:
595 ; X32-NEXT: insertps {{.*#+}} xmm0 = xmm0[0],zero,xmm0[1],zero
596 ; X32-NEXT: insertps {{.*#+}} xmm0 = xmm0[0,1,2],xmm1[2]
597 ; X32-NEXT: retl
613 ; X32-LABEL: i32_shuf_XYZ0:
614 ; X32: ## BB#0:
615 ; X32-NEXT: pxor %xmm1, %xmm1
616 ; X32-NEXT: pblendw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,5],xmm1[6,7]
617 ; X32-NEXT: retl
635 ; X32-LABEL: i32_shuf_XY00:
636 ; X32: ## BB#0:
637 ; X32-NEXT: movq {{.*#+}} xmm0 = xmm0[0],zero
638 ; X32-NEXT: retl
654 ; X32-LABEL: i32_shuf_XYY0:
655 ; X32: ## BB#0:
656 ; X32-NEXT: pshufd {{.*#+}} xmm1 = xmm0[0,1,1,3]
657 ; X32-NEXT: pxor %xmm0, %xmm0
658 ; X32-NEXT: pblendw {{.*#+}} xmm0 = xmm1[0,1,2,3,4,5],xmm0[6,7]
659 ; X32-NEXT: retl
677 ; X32-LABEL: i32_shuf_XYW0:
678 ; X32: ## BB#0:
679 ; X32-NEXT: pshufd {{.*#+}} xmm1 = xmm0[0,1,3,3]
680 ; X32-NEXT: pxor %xmm0, %xmm0
681 ; X32-NEXT: pblendw {{.*#+}} xmm0 = xmm1[0,1,2,3,4,5],xmm0[6,7]
682 ; X32-NEXT: retl
701 ; X32-LABEL: i32_shuf_W00W:
702 ; X32: ## BB#0:
703 ; X32-NEXT: pshufd {{.*#+}} xmm1 = xmm0[3,1,2,3]
704 ; X32-NEXT: pxor %xmm0, %xmm0
705 ; X32-NEXT: pblendw {{.*#+}} xmm0 = xmm1[0,1],xmm0[2,3,4,5],xmm1[6,7]
706 ; X32-NEXT: retl
723 ; X32-LABEL: i32_shuf_X00A:
724 ; X32: ## BB#0:
725 ; X32-NEXT: pxor %xmm2, %xmm2
726 ; X32-NEXT: pblendw {{.*#+}} xmm0 = xmm0[0,1],xmm2[2,3,4,5,6,7]
727 ; X32-NEXT: pshufd {{.*#+}} xmm1 = xmm1[0,1,2,0]
728 ; X32-NEXT: pblendw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,5],xmm1[6,7]
729 ; X32-NEXT: retl
747 ; X32-LABEL: i32_shuf_X00X:
748 ; X32: ## BB#0:
749 ; X32-NEXT: pshufd {{.*#+}} xmm1 = xmm0[0,1,2,0]
750 ; X32-NEXT: pxor %xmm0, %xmm0
751 ; X32-NEXT: pblendw {{.*#+}} xmm0 = xmm1[0,1],xmm0[2,3,4,5],xmm1[6,7]
752 ; X32-NEXT: retl
769 ; X32-LABEL: i32_shuf_X0YC:
770 ; X32: ## BB#0:
771 ; X32-NEXT: pmovzxdq {{.*#+}} xmm2 = xmm0[0],zero,xmm0[1],zero
772 ; X32-NEXT: pshufd {{.*#+}} xmm0 = xmm1[0,1,2,2]
773 ; X32-NEXT: pblendw {{.*#+}} xmm0 = xmm2[0,1,2,3,4,5],xmm0[6,7]
774 ; X32-NEXT: retl
792 ; X32-LABEL: test_insertps_no_undef:
793 ; X32: ## BB#0:
794 ; X32-NEXT: xorps %xmm1, %xmm1
795 ; X32-NEXT: blendps {{.*#+}} xmm1 = xmm0[0,1,2],xmm1[3]
796 ; X32-NEXT: maxps %xmm1, %xmm0
797 ; X32-NEXT: retl
818 ; X32-LABEL: blendvb_fallback:
819 ; X32: ## BB#0:
820 ; X32-NEXT: psllw $15, %xmm0
821 ; X32-NEXT: psraw $15, %xmm0
822 ; X32-NEXT: pblendvb %xmm1, %xmm2
823 ; X32-NEXT: movdqa %xmm2, %xmm0
824 ; X32-NEXT: retl
837 ; On X32, account for the argument's move to registers
839 ; X32-LABEL: insertps_from_vector_load:
840 ; X32: ## BB#0:
841 ; X32-NEXT: movl {{[0-9]+}}(%esp), %eax
842 ; X32-NEXT: insertps {{.*#+}} xmm0 = xmm0[0,1,2],mem[0]
843 ; X32-NEXT: retl
857 ; X32-LABEL: insertps_from_vector_load_offset:
858 ; X32: ## BB#0:
859 ; X32-NEXT: movl {{[0-9]+}}(%esp), %eax
860 ; X32-NEXT: insertps {{.*#+}} xmm0 = xmm0[0,1],mem[1],xmm0[3]
861 ; X32-NEXT: retl
874 ; X32-LABEL: insertps_from_vector_load_offset_2:
875 ; X32: ## BB#0:
876 ; X32-NEXT: movl {{[0-9]+}}(%esp), %eax
877 ; X32-NEXT: movl {{[0-9]+}}(%esp), %ecx
878 ; X32-NEXT: shll $4, %ecx
879 ; X32-NEXT: insertps {{.*#+}} xmm0 = mem[3],xmm0[1,2,3]
880 ; X32-NEXT: retl
894 ; X32-LABEL: insertps_from_broadcast_loadf32:
895 ; X32: ## BB#0:
896 ; X32-NEXT: movl {{[0-9]+}}(%esp), %eax
897 ; X32-NEXT: movl {{[0-9]+}}(%esp), %ecx
898 ; X32-NEXT: movss {{.*#+}} xmm1 = mem[0],zero,zero,zero
899 ; X32-NEXT: shufps {{.*#+}} xmm1 = xmm1[0,0,0,0]
900 ; X32-NEXT: insertps {{.*#+}} xmm0 = xmm0[0,1,2],xmm1[0]
901 ; X32-NEXT: retl
920 ; X32-LABEL: insertps_from_broadcast_loadv4f32:
921 ; X32: ## BB#0:
922 ; X32-NEXT: movl {{[0-9]+}}(%esp), %eax
923 ; X32-NEXT: movups (%eax), %xmm1
924 ; X32-NEXT: shufps {{.*#+}} xmm1 = xmm1[0,0,0,0]
925 ; X32-NEXT: insertps {{.*#+}} xmm0 = xmm0[0,1,2],xmm1[0]
926 ; X32-NEXT: retl
946 ; X32-LABEL: insertps_from_broadcast_multiple_use:
947 ; X32: ## BB#0:
948 ; X32-NEXT: movl {{[0-9]+}}(%esp), %eax
949 ; X32-NEXT: movl {{[0-9]+}}(%esp), %ecx
950 ; X32-NEXT: movss {{.*#+}} xmm4 = mem[0],zero,zero,zero
951 ; X32-NEXT: shufps {{.*#+}} xmm4 = xmm4[0,0,0,0]
952 ; X32-NEXT: insertps {{.*#+}} xmm0 = xmm0[0,1,2],xmm4[0]
953 ; X32-NEXT: insertps {{.*#+}} xmm1 = xmm1[0,1,2],xmm4[0]
954 ; X32-NEXT: insertps {{.*#+}} xmm2 = xmm2[0,1,2],xmm4[0]
955 ; X32-NEXT: insertps {{.*#+}} xmm3 = xmm3[0,1,2],xmm4[0]
956 ; X32-NEXT: addps %xmm1, %xmm0
957 ; X32-NEXT: addps %xmm2, %xmm3
958 ; X32-NEXT: addps %xmm3, %xmm0
959 ; X32-NEXT: retl
990 ; X32-LABEL: insertps_with_undefs:
991 ; X32: ## BB#0:
992 ; X32-NEXT: movl {{[0-9]+}}(%esp), %eax
993 ; X32-NEXT: movss {{.*#+}} xmm1 = mem[0],zero,zero,zero
994 ; X32-NEXT: unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm0[0]
995 ; X32-NEXT: movapd %xmm1, %xmm0
996 ; X32-NEXT: retl
1013 ; X32-LABEL: pr20087:
1014 ; X32: ## BB#0:
1015 ; X32-NEXT: movl {{[0-9]+}}(%esp), %eax
1016 ; X32-NEXT: insertps {{.*#+}} xmm0 = xmm0[0],zero,xmm0[2],mem[2]
1017 ; X32-NEXT: retl
1030 ; X32-LABEL: insertps_pr20411:
1031 ; X32: ## BB#0:
1032 ; X32-NEXT: movl {{[0-9]+}}(%esp), %eax
1033 ; X32-NEXT: pshufd {{.*#+}} xmm1 = xmm1[2,3,0,1]
1034 ; X32-NEXT: pblendw {{.*#+}} xmm1 = xmm0[0,1],xmm1[2,3],xmm0[4,5,6,7]
1035 ; X32-NEXT: movdqu %xmm1, (%eax)
1036 ; X32-NEXT: retl
1051 ; X32-LABEL: insertps_4:
1052 ; X32: ## BB#0: ## %entry
1053 ; X32-NEXT: insertps {{.*#+}} xmm0 = xmm0[0],zero,xmm1[2],zero
1054 ; X32-NEXT: retl
1071 ; X32-LABEL: insertps_5:
1072 ; X32: ## BB#0: ## %entry
1073 ; X32-NEXT: insertps {{.*#+}} xmm0 = xmm0[0],xmm1[1],zero,zero
1074 ; X32-NEXT: retl
1091 ; X32-LABEL: insertps_6:
1092 ; X32: ## BB#0: ## %entry
1093 ; X32-NEXT: insertps {{.*#+}} xmm0 = zero,xmm0[1],xmm1[2],zero
1094 ; X32-NEXT: retl
1110 ; X32-LABEL: insertps_7:
1111 ; X32: ## BB#0: ## %entry
1112 ; X32-NEXT: insertps {{.*#+}} xmm0 = xmm0[0],zero,xmm1[1],zero
1113 ; X32-NEXT: retl
1130 ; X32-LABEL: insertps_8:
1131 ; X32: ## BB#0: ## %entry
1132 ; X32-NEXT: insertps {{.*#+}} xmm0 = xmm0[0],xmm1[0],zero,zero
1133 ; X32-NEXT: retl
1150 ; X32-LABEL: insertps_9:
1151 ; X32: ## BB#0: ## %entry
1152 ; X32-NEXT: insertps {{.*#+}} xmm1 = zero,xmm0[0],xmm1[2],zero
1153 ; X32-NEXT: movaps %xmm1, %xmm0
1154 ; X32-NEXT: retl
1171 ; X32-LABEL: insertps_10:
1172 ; X32: ## BB#0:
1173 ; X32-NEXT: insertps {{.*#+}} xmm0 = xmm0[0],zero,xmm0[0],zero
1174 ; X32-NEXT: retl
1188 ; X32-LABEL: build_vector_to_shuffle_1:
1189 ; X32: ## BB#0: ## %entry
1190 ; X32-NEXT: xorps %xmm1, %xmm1
1191 ; X32-NEXT: blendps {{.*#+}} xmm0 = xmm1[0],xmm0[1],xmm1[2],xmm0[3]
1192 ; X32-NEXT: retl
1208 ; X32-LABEL: build_vector_to_shuffle_2:
1209 ; X32: ## BB#0: ## %entry
1210 ; X32-NEXT: xorps %xmm1, %xmm1
1211 ; X32-NEXT: blendps {{.*#+}} xmm0 = xmm1[0],xmm0[1],xmm1[2,3]
1212 ; X32-NEXT: retl