• Home
  • Raw
  • Download

Lines Matching refs:SSSE3

3 …< %s -mtriple=x86_64-unknown-unknown -mcpu=x86-64 -mattr=+ssse3 | FileCheck %s --check-prefix=SSSE3
17 ; SSSE3-LABEL: vsel_float:
18 ; SSSE3: # BB#0: # %entry
19 ; SSSE3-NEXT: shufps {{.*#+}} xmm0 = xmm0[0,2],xmm1[1,3]
20 ; SSSE3-NEXT: shufps {{.*#+}} xmm0 = xmm0[0,2,1,3]
21 ; SSSE3-NEXT: retq
44 ; SSSE3-LABEL: vsel_float2:
45 ; SSSE3: # BB#0: # %entry
46 ; SSSE3-NEXT: movss {{.*#+}} xmm1 = xmm0[0],xmm1[1,2,3]
47 ; SSSE3-NEXT: movaps %xmm1, %xmm0
48 ; SSSE3-NEXT: retq
71 ; SSSE3-LABEL: vsel_4xi8:
72 ; SSSE3: # BB#0: # %entry
73 ; SSSE3-NEXT: shufps {{.*#+}} xmm1 = xmm1[2,0],xmm0[3,0]
74 ; SSSE3-NEXT: shufps {{.*#+}} xmm0 = xmm0[0,1],xmm1[0,2]
75 ; SSSE3-NEXT: retq
104 ; SSSE3-LABEL: vsel_4xi16:
105 ; SSSE3: # BB#0: # %entry
106 ; SSSE3-NEXT: shufps {{.*#+}} xmm1 = xmm1[1,0],xmm0[0,0]
107 ; SSSE3-NEXT: shufps {{.*#+}} xmm1 = xmm1[2,0],xmm0[2,3]
108 ; SSSE3-NEXT: movaps %xmm1, %xmm0
109 ; SSSE3-NEXT: retq
138 ; SSSE3-LABEL: vsel_i32:
139 ; SSSE3: # BB#0: # %entry
140 ; SSSE3-NEXT: pshufd {{.*#+}} xmm1 = xmm1[1,3,2,3]
141 ; SSSE3-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,2,2,3]
142 ; SSSE3-NEXT: punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
143 ; SSSE3-NEXT: retq
171 ; SSSE3-LABEL: vsel_double:
172 ; SSSE3: # BB#0: # %entry
173 ; SSSE3-NEXT: movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
174 ; SSSE3-NEXT: movapd %xmm1, %xmm0
175 ; SSSE3-NEXT: retq
198 ; SSSE3-LABEL: vsel_i64:
199 ; SSSE3: # BB#0: # %entry
200 ; SSSE3-NEXT: movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
201 ; SSSE3-NEXT: movapd %xmm1, %xmm0
202 ; SSSE3-NEXT: retq
233 ; SSSE3-LABEL: vsel_8xi16:
234 ; SSSE3: # BB#0: # %entry
235 ; SSSE3-NEXT: movaps {{.*#+}} xmm2 = [0,65535,65535,65535,0,65535,65535,65535]
236 ; SSSE3-NEXT: andps %xmm2, %xmm1
237 ; SSSE3-NEXT: andnps %xmm0, %xmm2
238 ; SSSE3-NEXT: orps %xmm1, %xmm2
239 ; SSSE3-NEXT: movaps %xmm2, %xmm0
240 ; SSSE3-NEXT: retq
266 ; SSSE3-LABEL: vsel_i8:
267 ; SSSE3: # BB#0: # %entry
268 ; SSSE3-NEXT: pshufb {{.*#+}} xmm0 = xmm0[0],zero,zero,zero,xmm0[4],zero,zero,zero,xmm0[8],zero,…
269 ; SSSE3-NEXT: pshufb {{.*#+}} xmm1 = zero,xmm1[1,2,3],zero,xmm1[5,6,7],zero,xmm1[9,10,11],zero,x…
270 ; SSSE3-NEXT: por %xmm1, %xmm0
271 ; SSSE3-NEXT: retq
303 ; SSSE3-LABEL: vsel_float8:
304 ; SSSE3: # BB#0: # %entry
305 ; SSSE3-NEXT: movss {{.*#+}} xmm2 = xmm0[0],xmm2[1,2,3]
306 ; SSSE3-NEXT: movss {{.*#+}} xmm3 = xmm1[0],xmm3[1,2,3]
307 ; SSSE3-NEXT: movaps %xmm2, %xmm0
308 ; SSSE3-NEXT: movaps %xmm3, %xmm1
309 ; SSSE3-NEXT: retq
335 ; SSSE3-LABEL: vsel_i328:
336 ; SSSE3: # BB#0: # %entry
337 ; SSSE3-NEXT: movss {{.*#+}} xmm2 = xmm0[0],xmm2[1,2,3]
338 ; SSSE3-NEXT: movss {{.*#+}} xmm3 = xmm1[0],xmm3[1,2,3]
339 ; SSSE3-NEXT: movaps %xmm2, %xmm0
340 ; SSSE3-NEXT: movaps %xmm3, %xmm1
341 ; SSSE3-NEXT: retq
374 ; SSSE3-LABEL: vsel_double8:
375 ; SSSE3: # BB#0: # %entry
376 ; SSSE3-NEXT: movsd {{.*#+}} xmm4 = xmm0[0],xmm4[1]
377 ; SSSE3-NEXT: movsd {{.*#+}} xmm6 = xmm2[0],xmm6[1]
378 ; SSSE3-NEXT: movapd %xmm4, %xmm0
379 ; SSSE3-NEXT: movaps %xmm5, %xmm1
380 ; SSSE3-NEXT: movapd %xmm6, %xmm2
381 ; SSSE3-NEXT: movaps %xmm7, %xmm3
382 ; SSSE3-NEXT: retq
413 ; SSSE3-LABEL: vsel_i648:
414 ; SSSE3: # BB#0: # %entry
415 ; SSSE3-NEXT: movsd {{.*#+}} xmm4 = xmm0[0],xmm4[1]
416 ; SSSE3-NEXT: movsd {{.*#+}} xmm6 = xmm2[0],xmm6[1]
417 ; SSSE3-NEXT: movapd %xmm4, %xmm0
418 ; SSSE3-NEXT: movaps %xmm5, %xmm1
419 ; SSSE3-NEXT: movapd %xmm6, %xmm2
420 ; SSSE3-NEXT: movaps %xmm7, %xmm3
421 ; SSSE3-NEXT: retq
456 ; SSSE3-LABEL: vsel_double4:
457 ; SSSE3: # BB#0: # %entry
458 ; SSSE3-NEXT: movsd {{.*#+}} xmm2 = xmm0[0],xmm2[1]
459 ; SSSE3-NEXT: movsd {{.*#+}} xmm3 = xmm1[0],xmm3[1]
460 ; SSSE3-NEXT: movapd %xmm2, %xmm0
461 ; SSSE3-NEXT: movapd %xmm3, %xmm1
462 ; SSSE3-NEXT: retq
489 ; SSSE3-LABEL: testa:
490 ; SSSE3: # BB#0: # %entry
491 ; SSSE3-NEXT: movapd %xmm1, %xmm2
492 ; SSSE3-NEXT: cmplepd %xmm0, %xmm2
493 ; SSSE3-NEXT: andpd %xmm2, %xmm0
494 ; SSSE3-NEXT: andnpd %xmm1, %xmm2
495 ; SSSE3-NEXT: orpd %xmm2, %xmm0
496 ; SSSE3-NEXT: retq
528 ; SSSE3-LABEL: testb:
529 ; SSSE3: # BB#0: # %entry
530 ; SSSE3-NEXT: movapd %xmm1, %xmm2
531 ; SSSE3-NEXT: cmpnlepd %xmm0, %xmm2
532 ; SSSE3-NEXT: andpd %xmm2, %xmm0
533 ; SSSE3-NEXT: andnpd %xmm1, %xmm2
534 ; SSSE3-NEXT: orpd %xmm2, %xmm0
535 ; SSSE3-NEXT: retq
567 ; SSSE3-LABEL: constant_blendvpd_avx:
568 ; SSSE3: # BB#0: # %entry
569 ; SSSE3-NEXT: movsd {{.*#+}} xmm3 = xmm1[0],xmm3[1]
570 ; SSSE3-NEXT: movaps %xmm2, %xmm0
571 ; SSSE3-NEXT: movapd %xmm3, %xmm1
572 ; SSSE3-NEXT: retq
600 ; SSSE3-LABEL: constant_blendvps_avx:
601 ; SSSE3: # BB#0: # %entry
602 ; SSSE3-NEXT: shufps {{.*#+}} xmm0 = xmm0[3,0],xmm2[2,0]
603 ; SSSE3-NEXT: shufps {{.*#+}} xmm2 = xmm2[0,1],xmm0[2,0]
604 ; SSSE3-NEXT: shufps {{.*#+}} xmm1 = xmm1[3,0],xmm3[2,0]
605 ; SSSE3-NEXT: shufps {{.*#+}} xmm3 = xmm3[0,1],xmm1[2,0]
606 ; SSSE3-NEXT: movaps %xmm2, %xmm0
607 ; SSSE3-NEXT: movaps %xmm3, %xmm1
608 ; SSSE3-NEXT: retq
640 ; SSSE3-LABEL: constant_pblendvb_avx2:
641 ; SSSE3: # BB#0: # %entry
642 ; SSSE3-NEXT: movdqa {{.*#+}} xmm4 = [128,128,2,128,4,5,6,128,128,128,10,128,12,13,14,128]
643 ; SSSE3-NEXT: pshufb %xmm4, %xmm0
644 ; SSSE3-NEXT: movdqa {{.*#+}} xmm5 = [0,1,128,3,128,128,128,7,8,9,128,11,128,128,128,15]
645 ; SSSE3-NEXT: pshufb %xmm5, %xmm2
646 ; SSSE3-NEXT: por %xmm2, %xmm0
647 ; SSSE3-NEXT: pshufb %xmm4, %xmm1
648 ; SSSE3-NEXT: pshufb %xmm5, %xmm3
649 ; SSSE3-NEXT: por %xmm3, %xmm1
650 ; SSSE3-NEXT: retq
691 ; SSSE3-LABEL: blend_shufflevector_4xfloat:
692 ; SSSE3: # BB#0: # %entry
693 ; SSSE3-NEXT: shufps {{.*#+}} xmm0 = xmm0[0,2],xmm1[1,3]
694 ; SSSE3-NEXT: shufps {{.*#+}} xmm0 = xmm0[0,2,1,3]
695 ; SSSE3-NEXT: retq
721 ; SSSE3-LABEL: blend_shufflevector_8xfloat:
722 ; SSSE3: # BB#0: # %entry
723 ; SSSE3-NEXT: movss {{.*#+}} xmm2 = xmm0[0],xmm2[1,2,3]
724 ; SSSE3-NEXT: shufps {{.*#+}} xmm1 = xmm1[2,0],xmm3[3,0]
725 ; SSSE3-NEXT: shufps {{.*#+}} xmm3 = xmm3[0,1],xmm1[0,2]
726 ; SSSE3-NEXT: movaps %xmm2, %xmm0
727 ; SSSE3-NEXT: movaps %xmm3, %xmm1
728 ; SSSE3-NEXT: retq
752 ; SSSE3-LABEL: blend_shufflevector_4xdouble:
753 ; SSSE3: # BB#0: # %entry
754 ; SSSE3-NEXT: movsd {{.*#+}} xmm2 = xmm0[0],xmm2[1]
755 ; SSSE3-NEXT: movapd %xmm2, %xmm0
756 ; SSSE3-NEXT: retq
779 ; SSSE3-LABEL: blend_shufflevector_4xi64:
780 ; SSSE3: # BB#0: # %entry
781 ; SSSE3-NEXT: movsd {{.*#+}} xmm0 = xmm2[0],xmm0[1]
782 ; SSSE3-NEXT: movaps %xmm3, %xmm1
783 ; SSSE3-NEXT: retq
814 ; SSSE3-LABEL: blend_logic_v4i32:
815 ; SSSE3: # BB#0: # %entry
816 ; SSSE3-NEXT: psrad $31, %xmm0
817 ; SSSE3-NEXT: pand %xmm0, %xmm1
818 ; SSSE3-NEXT: pandn %xmm2, %xmm0
819 ; SSSE3-NEXT: por %xmm1, %xmm0
820 ; SSSE3-NEXT: retq
857 ; SSSE3-LABEL: blend_logic_v8i32:
858 ; SSSE3: # BB#0: # %entry
859 ; SSSE3-NEXT: psrad $31, %xmm0
860 ; SSSE3-NEXT: psrad $31, %xmm1
861 ; SSSE3-NEXT: pand %xmm1, %xmm3
862 ; SSSE3-NEXT: pandn %xmm5, %xmm1
863 ; SSSE3-NEXT: pand %xmm0, %xmm2
864 ; SSSE3-NEXT: pandn %xmm4, %xmm0
865 ; SSSE3-NEXT: por %xmm2, %xmm0
866 ; SSSE3-NEXT: por %xmm3, %xmm1
867 ; SSSE3-NEXT: retq
914 ; SSSE3-LABEL: blend_neg_logic_v4i32:
915 ; SSSE3: # BB#0: # %entry
916 ; SSSE3-NEXT: psrad $31, %xmm1
917 ; SSSE3-NEXT: pxor %xmm1, %xmm0
918 ; SSSE3-NEXT: psubd %xmm1, %xmm0
919 ; SSSE3-NEXT: retq
955 ; SSSE3-LABEL: blend_neg_logic_v8i32:
956 ; SSSE3: # BB#0: # %entry
957 ; SSSE3-NEXT: psrad $31, %xmm3
958 ; SSSE3-NEXT: psrad $31, %xmm2
959 ; SSSE3-NEXT: pxor %xmm2, %xmm0
960 ; SSSE3-NEXT: psubd %xmm2, %xmm0
961 ; SSSE3-NEXT: pxor %xmm3, %xmm1
962 ; SSSE3-NEXT: psubd %xmm3, %xmm1
963 ; SSSE3-NEXT: retq
1018 ; SSSE3-LABEL: blend_neg_logic_v4i32_2:
1019 ; SSSE3: # BB#0: # %entry
1020 ; SSSE3-NEXT: psrld $31, %xmm1
1021 ; SSSE3-NEXT: pslld $31, %xmm1
1022 ; SSSE3-NEXT: psrad $31, %xmm1
1023 ; SSSE3-NEXT: pxor %xmm1, %xmm0
1024 ; SSSE3-NEXT: psubd %xmm0, %xmm1
1025 ; SSSE3-NEXT: movdqa %xmm1, %xmm0
1026 ; SSSE3-NEXT: retq