Lines Matching refs:SSE41
3 …triple=x86_64-unknown-unknown -mattr=+sse4.1 | FileCheck %s --check-prefix=SSE --check-prefix=SSE41
36 ; SSE41-LABEL: test_div7_2i64:
37 ; SSE41: # BB#0:
38 ; SSE41-NEXT: pextrq $1, %xmm0, %rcx
39 ; SSE41-NEXT: movabsq $2635249153387078803, %rsi # imm = 0x2492492492492493
40 ; SSE41-NEXT: movq %rcx, %rax
41 ; SSE41-NEXT: mulq %rsi
42 ; SSE41-NEXT: subq %rdx, %rcx
43 ; SSE41-NEXT: shrq %rcx
44 ; SSE41-NEXT: addq %rdx, %rcx
45 ; SSE41-NEXT: shrq $2, %rcx
46 ; SSE41-NEXT: movd %rcx, %xmm1
47 ; SSE41-NEXT: movd %xmm0, %rcx
48 ; SSE41-NEXT: movq %rcx, %rax
49 ; SSE41-NEXT: mulq %rsi
50 ; SSE41-NEXT: subq %rdx, %rcx
51 ; SSE41-NEXT: shrq %rcx
52 ; SSE41-NEXT: addq %rdx, %rcx
53 ; SSE41-NEXT: shrq $2, %rcx
54 ; SSE41-NEXT: movd %rcx, %xmm0
55 ; SSE41-NEXT: punpcklqdq {{.*#+}} xmm0 = xmm0[0],xmm1[0]
56 ; SSE41-NEXT: retq
101 ; SSE41-LABEL: test_div7_4i32:
102 ; SSE41: # BB#0:
103 ; SSE41-NEXT: movdqa {{.*#+}} xmm1 = [613566757,613566757,613566757,613566757]
104 ; SSE41-NEXT: pshufd {{.*#+}} xmm2 = xmm1[1,1,3,3]
105 ; SSE41-NEXT: pshufd {{.*#+}} xmm3 = xmm0[1,1,3,3]
106 ; SSE41-NEXT: pmuludq %xmm2, %xmm3
107 ; SSE41-NEXT: pmuludq %xmm0, %xmm1
108 ; SSE41-NEXT: pshufd {{.*#+}} xmm1 = xmm1[1,1,3,3]
109 ; SSE41-NEXT: pblendw {{.*#+}} xmm1 = xmm1[0,1],xmm3[2,3],xmm1[4,5],xmm3[6,7]
110 ; SSE41-NEXT: psubd %xmm1, %xmm0
111 ; SSE41-NEXT: psrld $1, %xmm0
112 ; SSE41-NEXT: paddd %xmm1, %xmm0
113 ; SSE41-NEXT: psrld $2, %xmm0
114 ; SSE41-NEXT: retq
196 ; SSE41-LABEL: test_div7_16i8:
197 ; SSE41: # BB#0:
198 ; SSE41-NEXT: pmovzxbw {{.*#+}} xmm1 = xmm0[0],zero,xmm0[1],zero,xmm0[2],zero,xmm0[3],zero,xmm0[…
199 ; SSE41-NEXT: pmovzxbw {{.*#+}} xmm2 = mem[0],zero,mem[1],zero,mem[2],zero,mem[3],zero,mem[4],ze…
200 ; SSE41-NEXT: pmullw %xmm2, %xmm1
201 ; SSE41-NEXT: psrlw $8, %xmm1
202 ; SSE41-NEXT: pshufd {{.*#+}} xmm3 = xmm0[2,3,0,1]
203 ; SSE41-NEXT: pmovzxbw {{.*#+}} xmm3 = xmm3[0],zero,xmm3[1],zero,xmm3[2],zero,xmm3[3],zero,xmm3[…
204 ; SSE41-NEXT: pmullw %xmm2, %xmm3
205 ; SSE41-NEXT: psrlw $8, %xmm3
206 ; SSE41-NEXT: packuswb %xmm3, %xmm1
207 ; SSE41-NEXT: psubb %xmm1, %xmm0
208 ; SSE41-NEXT: psrlw $1, %xmm0
209 ; SSE41-NEXT: pand {{.*}}(%rip), %xmm0
210 ; SSE41-NEXT: paddb %xmm1, %xmm0
211 ; SSE41-NEXT: psrlw $2, %xmm0
212 ; SSE41-NEXT: pand {{.*}}(%rip), %xmm0
213 ; SSE41-NEXT: retq
291 ; SSE41-LABEL: test_rem7_2i64:
292 ; SSE41: # BB#0:
293 ; SSE41-NEXT: pextrq $1, %xmm0, %rcx
294 ; SSE41-NEXT: movabsq $2635249153387078803, %rsi # imm = 0x2492492492492493
295 ; SSE41-NEXT: movq %rcx, %rax
296 ; SSE41-NEXT: mulq %rsi
297 ; SSE41-NEXT: movq %rcx, %rax
298 ; SSE41-NEXT: subq %rdx, %rax
299 ; SSE41-NEXT: shrq %rax
300 ; SSE41-NEXT: addq %rdx, %rax
301 ; SSE41-NEXT: shrq $2, %rax
302 ; SSE41-NEXT: leaq (,%rax,8), %rdx
303 ; SSE41-NEXT: subq %rax, %rdx
304 ; SSE41-NEXT: subq %rdx, %rcx
305 ; SSE41-NEXT: movd %rcx, %xmm1
306 ; SSE41-NEXT: movd %xmm0, %rcx
307 ; SSE41-NEXT: movq %rcx, %rax
308 ; SSE41-NEXT: mulq %rsi
309 ; SSE41-NEXT: movq %rcx, %rax
310 ; SSE41-NEXT: subq %rdx, %rax
311 ; SSE41-NEXT: shrq %rax
312 ; SSE41-NEXT: addq %rdx, %rax
313 ; SSE41-NEXT: shrq $2, %rax
314 ; SSE41-NEXT: leaq (,%rax,8), %rdx
315 ; SSE41-NEXT: subq %rax, %rdx
316 ; SSE41-NEXT: subq %rdx, %rcx
317 ; SSE41-NEXT: movd %rcx, %xmm0
318 ; SSE41-NEXT: punpcklqdq {{.*#+}} xmm0 = xmm0[0],xmm1[0]
319 ; SSE41-NEXT: retq
381 ; SSE41-LABEL: test_rem7_4i32:
382 ; SSE41: # BB#0:
383 ; SSE41-NEXT: movdqa {{.*#+}} xmm1 = [613566757,613566757,613566757,613566757]
384 ; SSE41-NEXT: pshufd {{.*#+}} xmm2 = xmm1[1,1,3,3]
385 ; SSE41-NEXT: pshufd {{.*#+}} xmm3 = xmm0[1,1,3,3]
386 ; SSE41-NEXT: pmuludq %xmm2, %xmm3
387 ; SSE41-NEXT: pmuludq %xmm0, %xmm1
388 ; SSE41-NEXT: pshufd {{.*#+}} xmm1 = xmm1[1,1,3,3]
389 ; SSE41-NEXT: pblendw {{.*#+}} xmm1 = xmm1[0,1],xmm3[2,3],xmm1[4,5],xmm3[6,7]
390 ; SSE41-NEXT: movdqa %xmm0, %xmm2
391 ; SSE41-NEXT: psubd %xmm1, %xmm2
392 ; SSE41-NEXT: psrld $1, %xmm2
393 ; SSE41-NEXT: paddd %xmm1, %xmm2
394 ; SSE41-NEXT: psrld $2, %xmm2
395 ; SSE41-NEXT: pmulld {{.*}}(%rip), %xmm2
396 ; SSE41-NEXT: psubd %xmm2, %xmm0
397 ; SSE41-NEXT: retq
504 ; SSE41-LABEL: test_rem7_16i8:
505 ; SSE41: # BB#0:
506 ; SSE41-NEXT: pmovzxbw {{.*#+}} xmm1 = xmm0[0],zero,xmm0[1],zero,xmm0[2],zero,xmm0[3],zero,xmm0[…
507 ; SSE41-NEXT: pmovzxbw {{.*#+}} xmm2 = mem[0],zero,mem[1],zero,mem[2],zero,mem[3],zero,mem[4],ze…
508 ; SSE41-NEXT: pmullw %xmm2, %xmm1
509 ; SSE41-NEXT: psrlw $8, %xmm1
510 ; SSE41-NEXT: pshufd {{.*#+}} xmm3 = xmm0[2,3,0,1]
511 ; SSE41-NEXT: pmovzxbw {{.*#+}} xmm3 = xmm3[0],zero,xmm3[1],zero,xmm3[2],zero,xmm3[3],zero,xmm3[…
512 ; SSE41-NEXT: pmullw %xmm2, %xmm3
513 ; SSE41-NEXT: psrlw $8, %xmm3
514 ; SSE41-NEXT: packuswb %xmm3, %xmm1
515 ; SSE41-NEXT: movdqa %xmm0, %xmm2
516 ; SSE41-NEXT: psubb %xmm1, %xmm2
517 ; SSE41-NEXT: psrlw $1, %xmm2
518 ; SSE41-NEXT: pand {{.*}}(%rip), %xmm2
519 ; SSE41-NEXT: paddb %xmm1, %xmm2
520 ; SSE41-NEXT: psrlw $2, %xmm2
521 ; SSE41-NEXT: pand {{.*}}(%rip), %xmm2
522 ; SSE41-NEXT: pmovsxbw %xmm2, %xmm1
523 ; SSE41-NEXT: pmovsxbw {{.*}}(%rip), %xmm3
524 ; SSE41-NEXT: pmullw %xmm3, %xmm1
525 ; SSE41-NEXT: movdqa {{.*#+}} xmm4 = [255,255,255,255,255,255,255,255]
526 ; SSE41-NEXT: pand %xmm4, %xmm1
527 ; SSE41-NEXT: pshufd {{.*#+}} xmm2 = xmm2[2,3,0,1]
528 ; SSE41-NEXT: pmovsxbw %xmm2, %xmm2
529 ; SSE41-NEXT: pmullw %xmm3, %xmm2
530 ; SSE41-NEXT: pand %xmm4, %xmm2
531 ; SSE41-NEXT: packuswb %xmm2, %xmm1
532 ; SSE41-NEXT: psubb %xmm1, %xmm0
533 ; SSE41-NEXT: retq