Lines Matching refs:SSSE3
3 … < %s -mtriple=x86_64-unknown-unknown -mattr=+ssse3 | FileCheck %s --check-prefixes=CHECK,SSE,SSSE3
55 ; SSSE3-LABEL: usubo_v2i32:
56 ; SSSE3: # %bb.0:
57 ; SSSE3-NEXT: movdqa {{.*#+}} xmm2 = [2147483648,2147483648,2147483648,2147483648]
58 ; SSSE3-NEXT: movdqa %xmm0, %xmm3
59 ; SSSE3-NEXT: pxor %xmm2, %xmm3
60 ; SSSE3-NEXT: psubd %xmm1, %xmm0
61 ; SSSE3-NEXT: pxor %xmm0, %xmm2
62 ; SSSE3-NEXT: pcmpgtd %xmm3, %xmm2
63 ; SSSE3-NEXT: movq %xmm0, (%rdi)
64 ; SSSE3-NEXT: movdqa %xmm2, %xmm0
65 ; SSSE3-NEXT: retq
119 ; SSSE3-LABEL: usubo_v3i32:
120 ; SSSE3: # %bb.0:
121 ; SSSE3-NEXT: movdqa {{.*#+}} xmm2 = [2147483648,2147483648,2147483648,2147483648]
122 ; SSSE3-NEXT: movdqa %xmm0, %xmm3
123 ; SSSE3-NEXT: pxor %xmm2, %xmm3
124 ; SSSE3-NEXT: psubd %xmm1, %xmm0
125 ; SSSE3-NEXT: pxor %xmm0, %xmm2
126 ; SSSE3-NEXT: pcmpgtd %xmm3, %xmm2
127 ; SSSE3-NEXT: movq %xmm0, (%rdi)
128 ; SSSE3-NEXT: pshufd {{.*#+}} xmm0 = xmm0[2,3,2,3]
129 ; SSSE3-NEXT: movd %xmm0, 8(%rdi)
130 ; SSSE3-NEXT: movdqa %xmm2, %xmm0
131 ; SSSE3-NEXT: retq
186 ; SSSE3-LABEL: usubo_v4i32:
187 ; SSSE3: # %bb.0:
188 ; SSSE3-NEXT: movdqa {{.*#+}} xmm2 = [2147483648,2147483648,2147483648,2147483648]
189 ; SSSE3-NEXT: movdqa %xmm0, %xmm3
190 ; SSSE3-NEXT: pxor %xmm2, %xmm3
191 ; SSSE3-NEXT: psubd %xmm1, %xmm0
192 ; SSSE3-NEXT: pxor %xmm0, %xmm2
193 ; SSSE3-NEXT: pcmpgtd %xmm3, %xmm2
194 ; SSSE3-NEXT: movdqa %xmm0, (%rdi)
195 ; SSSE3-NEXT: movdqa %xmm2, %xmm0
196 ; SSSE3-NEXT: retq
277 ; SSSE3-LABEL: usubo_v6i32:
278 ; SSSE3: # %bb.0:
279 ; SSSE3-NEXT: movq %rdi, %rax
280 ; SSSE3-NEXT: movd {{.*#+}} xmm0 = mem[0],zero,zero,zero
281 ; SSSE3-NEXT: movd {{.*#+}} xmm1 = mem[0],zero,zero,zero
282 ; SSSE3-NEXT: punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
283 ; SSSE3-NEXT: movd {{.*#+}} xmm0 = mem[0],zero,zero,zero
284 ; SSSE3-NEXT: movd {{.*#+}} xmm2 = mem[0],zero,zero,zero
285 ; SSSE3-NEXT: punpckldq {{.*#+}} xmm2 = xmm2[0],xmm0[0],xmm2[1],xmm0[1]
286 ; SSSE3-NEXT: punpcklqdq {{.*#+}} xmm2 = xmm2[0],xmm1[0]
287 ; SSSE3-NEXT: movd %r8d, %xmm0
288 ; SSSE3-NEXT: movd %ecx, %xmm1
289 ; SSSE3-NEXT: punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
290 ; SSSE3-NEXT: movd %edx, %xmm3
291 ; SSSE3-NEXT: movd %esi, %xmm0
292 ; SSSE3-NEXT: punpckldq {{.*#+}} xmm0 = xmm0[0],xmm3[0],xmm0[1],xmm3[1]
293 ; SSSE3-NEXT: punpcklqdq {{.*#+}} xmm0 = xmm0[0],xmm1[0]
294 ; SSSE3-NEXT: movd {{.*#+}} xmm1 = mem[0],zero,zero,zero
295 ; SSSE3-NEXT: movd {{.*#+}} xmm3 = mem[0],zero,zero,zero
296 ; SSSE3-NEXT: punpckldq {{.*#+}} xmm3 = xmm3[0],xmm1[0],xmm3[1],xmm1[1]
297 ; SSSE3-NEXT: movd %r9d, %xmm1
298 ; SSSE3-NEXT: movd {{.*#+}} xmm4 = mem[0],zero,zero,zero
299 ; SSSE3-NEXT: punpckldq {{.*#+}} xmm1 = xmm1[0],xmm4[0],xmm1[1],xmm4[1]
300 ; SSSE3-NEXT: movq {{[0-9]+}}(%rsp), %rcx
301 ; SSSE3-NEXT: movdqa %xmm0, %xmm4
302 ; SSSE3-NEXT: psubd %xmm2, %xmm4
303 ; SSSE3-NEXT: movdqa {{.*#+}} xmm2 = [2147483648,2147483648,2147483648,2147483648]
304 ; SSSE3-NEXT: movdqa %xmm4, (%rcx)
305 ; SSSE3-NEXT: pxor %xmm2, %xmm4
306 ; SSSE3-NEXT: pxor %xmm2, %xmm0
307 ; SSSE3-NEXT: pcmpgtd %xmm0, %xmm4
308 ; SSSE3-NEXT: movdqa %xmm1, %xmm0
309 ; SSSE3-NEXT: psubd %xmm3, %xmm0
310 ; SSSE3-NEXT: movq %xmm0, 16(%rcx)
311 ; SSSE3-NEXT: pxor %xmm2, %xmm0
312 ; SSSE3-NEXT: pxor %xmm2, %xmm1
313 ; SSSE3-NEXT: pcmpgtd %xmm1, %xmm0
314 ; SSSE3-NEXT: movq %xmm0, 16(%rdi)
315 ; SSSE3-NEXT: movdqa %xmm4, (%rdi)
316 ; SSSE3-NEXT: retq
418 ; SSSE3-LABEL: usubo_v8i32:
419 ; SSSE3: # %bb.0:
420 ; SSSE3-NEXT: movdqa {{.*#+}} xmm4 = [2147483648,2147483648,2147483648,2147483648]
421 ; SSSE3-NEXT: movdqa %xmm0, %xmm5
422 ; SSSE3-NEXT: pxor %xmm4, %xmm5
423 ; SSSE3-NEXT: psubd %xmm2, %xmm0
424 ; SSSE3-NEXT: movdqa %xmm0, (%rdi)
425 ; SSSE3-NEXT: pxor %xmm4, %xmm0
426 ; SSSE3-NEXT: pcmpgtd %xmm5, %xmm0
427 ; SSSE3-NEXT: movdqa %xmm1, %xmm2
428 ; SSSE3-NEXT: pxor %xmm4, %xmm2
429 ; SSSE3-NEXT: psubd %xmm3, %xmm1
430 ; SSSE3-NEXT: pxor %xmm1, %xmm4
431 ; SSSE3-NEXT: pcmpgtd %xmm2, %xmm4
432 ; SSSE3-NEXT: movdqa %xmm1, 16(%rdi)
433 ; SSSE3-NEXT: movdqa %xmm4, %xmm1
434 ; SSSE3-NEXT: retq
528 ; SSSE3-LABEL: usubo_v16i32:
529 ; SSSE3: # %bb.0:
530 ; SSSE3-NEXT: movdqa {{.*#+}} xmm8 = [2147483648,2147483648,2147483648,2147483648]
531 ; SSSE3-NEXT: movdqa %xmm0, %xmm9
532 ; SSSE3-NEXT: pxor %xmm8, %xmm9
533 ; SSSE3-NEXT: psubd %xmm4, %xmm0
534 ; SSSE3-NEXT: movdqa %xmm0, (%rdi)
535 ; SSSE3-NEXT: pxor %xmm8, %xmm0
536 ; SSSE3-NEXT: pcmpgtd %xmm9, %xmm0
537 ; SSSE3-NEXT: movdqa %xmm1, %xmm4
538 ; SSSE3-NEXT: pxor %xmm8, %xmm4
539 ; SSSE3-NEXT: psubd %xmm5, %xmm1
540 ; SSSE3-NEXT: movdqa %xmm1, 16(%rdi)
541 ; SSSE3-NEXT: pxor %xmm8, %xmm1
542 ; SSSE3-NEXT: pcmpgtd %xmm4, %xmm1
543 ; SSSE3-NEXT: movdqa %xmm2, %xmm4
544 ; SSSE3-NEXT: pxor %xmm8, %xmm4
545 ; SSSE3-NEXT: psubd %xmm6, %xmm2
546 ; SSSE3-NEXT: movdqa %xmm2, 32(%rdi)
547 ; SSSE3-NEXT: pxor %xmm8, %xmm2
548 ; SSSE3-NEXT: pcmpgtd %xmm4, %xmm2
549 ; SSSE3-NEXT: movdqa %xmm3, %xmm4
550 ; SSSE3-NEXT: pxor %xmm8, %xmm4
551 ; SSSE3-NEXT: psubd %xmm7, %xmm3
552 ; SSSE3-NEXT: pxor %xmm3, %xmm8
553 ; SSSE3-NEXT: pcmpgtd %xmm4, %xmm8
554 ; SSSE3-NEXT: movdqa %xmm3, 48(%rdi)
555 ; SSSE3-NEXT: movdqa %xmm8, %xmm3
556 ; SSSE3-NEXT: retq
694 ; SSSE3-LABEL: usubo_v16i8:
695 ; SSSE3: # %bb.0:
696 ; SSSE3-NEXT: movdqa %xmm0, %xmm4
697 ; SSSE3-NEXT: psubb %xmm1, %xmm4
698 ; SSSE3-NEXT: pminub %xmm4, %xmm0
699 ; SSSE3-NEXT: pcmpeqb %xmm4, %xmm0
700 ; SSSE3-NEXT: pcmpeqd %xmm3, %xmm3
701 ; SSSE3-NEXT: pxor %xmm0, %xmm3
702 ; SSSE3-NEXT: punpcklbw {{.*#+}} xmm0 = xmm0[0],xmm3[0],xmm0[1],xmm3[1],xmm0[2],xmm3[2],xmm0[3],…
703 ; SSSE3-NEXT: punpcklwd {{.*#+}} xmm0 = xmm0[0,0,1,1,2,2,3,3]
704 ; SSSE3-NEXT: psrad $24, %xmm0
705 ; SSSE3-NEXT: movdqa %xmm3, %xmm1
706 ; SSSE3-NEXT: punpcklbw {{.*#+}} xmm1 = xmm1[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7]
707 ; SSSE3-NEXT: punpckhwd {{.*#+}} xmm1 = xmm1[4,4,5,5,6,6,7,7]
708 ; SSSE3-NEXT: pslld $31, %xmm1
709 ; SSSE3-NEXT: psrad $31, %xmm1
710 ; SSSE3-NEXT: punpckhbw {{.*#+}} xmm3 = xmm3[8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15]
711 ; SSSE3-NEXT: movdqa %xmm3, %xmm2
712 ; SSSE3-NEXT: punpcklwd {{.*#+}} xmm2 = xmm2[0,0,1,1,2,2,3,3]
713 ; SSSE3-NEXT: pslld $31, %xmm2
714 ; SSSE3-NEXT: psrad $31, %xmm2
715 ; SSSE3-NEXT: punpckhwd {{.*#+}} xmm3 = xmm3[4,4,5,5,6,6,7,7]
716 ; SSSE3-NEXT: pslld $31, %xmm3
717 ; SSSE3-NEXT: psrad $31, %xmm3
718 ; SSSE3-NEXT: movdqa %xmm4, (%rdi)
719 ; SSSE3-NEXT: retq
811 ; SSSE3-LABEL: usubo_v8i16:
812 ; SSSE3: # %bb.0:
813 ; SSSE3-NEXT: movdqa {{.*#+}} xmm2 = [32768,32768,32768,32768,32768,32768,32768,32768]
814 ; SSSE3-NEXT: movdqa %xmm0, %xmm3
815 ; SSSE3-NEXT: pxor %xmm2, %xmm3
816 ; SSSE3-NEXT: psubw %xmm1, %xmm0
817 ; SSSE3-NEXT: pxor %xmm0, %xmm2
818 ; SSSE3-NEXT: pcmpgtw %xmm3, %xmm2
819 ; SSSE3-NEXT: punpcklwd {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1],xmm1[2],xmm2[2],xmm1[3],…
820 ; SSSE3-NEXT: psrad $16, %xmm1
821 ; SSSE3-NEXT: punpckhwd {{.*#+}} xmm2 = xmm2[4,4,5,5,6,6,7,7]
822 ; SSSE3-NEXT: pslld $31, %xmm2
823 ; SSSE3-NEXT: psrad $31, %xmm2
824 ; SSSE3-NEXT: movdqa %xmm0, (%rdi)
825 ; SSSE3-NEXT: movdqa %xmm1, %xmm0
826 ; SSSE3-NEXT: movdqa %xmm2, %xmm1
827 ; SSSE3-NEXT: retq
965 ; SSSE3-LABEL: usubo_v4i24:
966 ; SSSE3: # %bb.0:
967 ; SSSE3-NEXT: movdqa %xmm0, %xmm2
968 ; SSSE3-NEXT: movdqa {{.*#+}} xmm3 = [255,255,255,0,255,255,255,0,255,255,255,0,255,255,255,0]
969 ; SSSE3-NEXT: pand %xmm3, %xmm1
970 ; SSSE3-NEXT: pand %xmm3, %xmm2
971 ; SSSE3-NEXT: psubd %xmm1, %xmm2
972 ; SSSE3-NEXT: pand %xmm2, %xmm3
973 ; SSSE3-NEXT: pcmpeqd %xmm2, %xmm3
974 ; SSSE3-NEXT: pcmpeqd %xmm0, %xmm0
975 ; SSSE3-NEXT: pxor %xmm3, %xmm0
976 ; SSSE3-NEXT: movd %xmm2, %eax
977 ; SSSE3-NEXT: movw %ax, (%rdi)
978 ; SSSE3-NEXT: pshufd {{.*#+}} xmm1 = xmm2[3,3,3,3]
979 ; SSSE3-NEXT: movd %xmm1, %ecx
980 ; SSSE3-NEXT: movw %cx, 9(%rdi)
981 ; SSSE3-NEXT: pshufd {{.*#+}} xmm1 = xmm2[2,3,2,3]
982 ; SSSE3-NEXT: movd %xmm1, %edx
983 ; SSSE3-NEXT: movw %dx, 6(%rdi)
984 ; SSSE3-NEXT: pshufd {{.*#+}} xmm1 = xmm2[1,1,1,1]
985 ; SSSE3-NEXT: movd %xmm1, %esi
986 ; SSSE3-NEXT: movw %si, 3(%rdi)
987 ; SSSE3-NEXT: shrl $16, %eax
988 ; SSSE3-NEXT: movb %al, 2(%rdi)
989 ; SSSE3-NEXT: shrl $16, %ecx
990 ; SSSE3-NEXT: movb %cl, 11(%rdi)
991 ; SSSE3-NEXT: shrl $16, %edx
992 ; SSSE3-NEXT: movb %dl, 8(%rdi)
993 ; SSSE3-NEXT: shrl $16, %esi
994 ; SSSE3-NEXT: movb %sil, 5(%rdi)
995 ; SSSE3-NEXT: retq
1207 ; SSSE3-LABEL: usubo_v2i128:
1208 ; SSSE3: # %bb.0:
1209 ; SSSE3-NEXT: movq {{[0-9]+}}(%rsp), %r10
1210 ; SSSE3-NEXT: xorl %r11d, %r11d
1211 ; SSSE3-NEXT: subq {{[0-9]+}}(%rsp), %rdx
1212 ; SSSE3-NEXT: sbbq {{[0-9]+}}(%rsp), %rcx
1213 ; SSSE3-NEXT: movl $0, %eax
1214 ; SSSE3-NEXT: sbbl %eax, %eax
1215 ; SSSE3-NEXT: subq %r8, %rdi
1216 ; SSSE3-NEXT: sbbq %r9, %rsi
1217 ; SSSE3-NEXT: movd %eax, %xmm1
1218 ; SSSE3-NEXT: sbbl %r11d, %r11d
1219 ; SSSE3-NEXT: movd %r11d, %xmm0
1220 ; SSSE3-NEXT: punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
1221 ; SSSE3-NEXT: movq %rdx, 16(%r10)
1222 ; SSSE3-NEXT: movq %rdi, (%r10)
1223 ; SSSE3-NEXT: movq %rcx, 24(%r10)
1224 ; SSSE3-NEXT: movq %rsi, 8(%r10)
1225 ; SSSE3-NEXT: retq