Lines Matching refs:AVX2

4 ; RUN: llc < %s -mtriple=i686-apple-darwin -mattr=+avx2 | FileCheck %s --check-prefix=X32-AVX2
5 ; RUN: llc < %s -mtriple=x86_64-apple-darwin -mattr=+avx2 | FileCheck %s --check-prefix=X64-AVX2
37 ; X32-AVX2-LABEL: and_masks:
38 ; X32-AVX2: ## %bb.0:
39 ; X32-AVX2-NEXT: movl {{[0-9]+}}(%esp), %eax
40 ; X32-AVX2-NEXT: movl {{[0-9]+}}(%esp), %ecx
41 ; X32-AVX2-NEXT: movl {{[0-9]+}}(%esp), %edx
42 ; X32-AVX2-NEXT: vmovups (%edx), %ymm0
43 ; X32-AVX2-NEXT: vmovups (%ecx), %ymm1
44 ; X32-AVX2-NEXT: vcmpltps %ymm0, %ymm1, %ymm1
45 ; X32-AVX2-NEXT: vmovups (%eax), %ymm2
46 ; X32-AVX2-NEXT: vcmpltps %ymm0, %ymm2, %ymm0
47 ; X32-AVX2-NEXT: vandps %ymm1, %ymm0, %ymm0
48 ; X32-AVX2-NEXT: vpsrld $31, %ymm0, %ymm0
49 ; X32-AVX2-NEXT: vmovdqa %ymm0, (%eax)
50 ; X32-AVX2-NEXT: vzeroupper
51 ; X32-AVX2-NEXT: retl
53 ; X64-AVX2-LABEL: and_masks:
54 ; X64-AVX2: ## %bb.0:
55 ; X64-AVX2-NEXT: vmovups (%rdi), %ymm0
56 ; X64-AVX2-NEXT: vmovups (%rsi), %ymm1
57 ; X64-AVX2-NEXT: vcmpltps %ymm0, %ymm1, %ymm1
58 ; X64-AVX2-NEXT: vmovups (%rdx), %ymm2
59 ; X64-AVX2-NEXT: vcmpltps %ymm0, %ymm2, %ymm0
60 ; X64-AVX2-NEXT: vandps %ymm1, %ymm0, %ymm0
61 ; X64-AVX2-NEXT: vpsrld $31, %ymm0, %ymm0
62 ; X64-AVX2-NEXT: vmovdqa %ymm0, (%rax)
63 ; X64-AVX2-NEXT: vzeroupper
64 ; X64-AVX2-NEXT: retq
97 ; X32-AVX2-LABEL: neg_masks:
98 ; X32-AVX2: ## %bb.0:
99 ; X32-AVX2-NEXT: movl {{[0-9]+}}(%esp), %eax
100 ; X32-AVX2-NEXT: movl {{[0-9]+}}(%esp), %ecx
101 ; X32-AVX2-NEXT: vmovups (%ecx), %ymm0
102 ; X32-AVX2-NEXT: vcmpnltps (%eax), %ymm0, %ymm0
103 ; X32-AVX2-NEXT: vbroadcastss {{.*#+}} ymm1 = [1,1,1,1,1,1,1,1]
104 ; X32-AVX2-NEXT: vandps %ymm1, %ymm0, %ymm0
105 ; X32-AVX2-NEXT: vmovaps %ymm0, (%eax)
106 ; X32-AVX2-NEXT: vzeroupper
107 ; X32-AVX2-NEXT: retl
109 ; X64-AVX2-LABEL: neg_masks:
110 ; X64-AVX2: ## %bb.0:
111 ; X64-AVX2-NEXT: vmovups (%rsi), %ymm0
112 ; X64-AVX2-NEXT: vcmpnltps (%rdi), %ymm0, %ymm0
113 ; X64-AVX2-NEXT: vbroadcastss {{.*#+}} ymm1 = [1,1,1,1,1,1,1,1]
114 ; X64-AVX2-NEXT: vandps %ymm1, %ymm0, %ymm0
115 ; X64-AVX2-NEXT: vmovaps %ymm0, (%rax)
116 ; X64-AVX2-NEXT: vzeroupper
117 ; X64-AVX2-NEXT: retq
148 ; X32-AVX2-LABEL: and_mask_constant:
149 ; X32-AVX2: ## %bb.0:
150 ; X32-AVX2-NEXT: vpxor %xmm1, %xmm1, %xmm1
151 ; X32-AVX2-NEXT: vpcmpeqd %ymm1, %ymm0, %ymm0
152 ; X32-AVX2-NEXT: vpand LCPI2_0, %ymm0, %ymm0
153 ; X32-AVX2-NEXT: retl
155 ; X64-AVX2-LABEL: and_mask_constant:
156 ; X64-AVX2: ## %bb.0:
157 ; X64-AVX2-NEXT: vpxor %xmm1, %xmm1, %xmm1
158 ; X64-AVX2-NEXT: vpcmpeqd %ymm1, %ymm0, %ymm0
159 ; X64-AVX2-NEXT: vpand {{.*}}(%rip), %ymm0, %ymm0
160 ; X64-AVX2-NEXT: retq
184 ; X32-AVX2-LABEL: two_ands:
185 ; X32-AVX2: ## %bb.0: ## %entry
186 ; X32-AVX2-NEXT: vbroadcastss {{.*#+}} ymm1 = [-5.0E-1,-5.0E-1,-5.0E-1,-5.0E-1,-5.0E-1,-5.0E-1,-…
187 ; X32-AVX2-NEXT: vcmpleps %ymm0, %ymm1, %ymm1
188 ; X32-AVX2-NEXT: vbroadcastss {{.*#+}} ymm2 = [1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,…
189 ; X32-AVX2-NEXT: vcmpltps %ymm2, %ymm0, %ymm0
190 ; X32-AVX2-NEXT: vandps %ymm0, %ymm1, %ymm0
191 ; X32-AVX2-NEXT: retl
193 ; X64-AVX2-LABEL: two_ands:
194 ; X64-AVX2: ## %bb.0: ## %entry
195 ; X64-AVX2-NEXT: vbroadcastss {{.*#+}} ymm1 = [-5.0E-1,-5.0E-1,-5.0E-1,-5.0E-1,-5.0E-1,-5.0E-1,-…
196 ; X64-AVX2-NEXT: vcmpleps %ymm0, %ymm1, %ymm1
197 ; X64-AVX2-NEXT: vbroadcastss {{.*#+}} ymm2 = [1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,…
198 ; X64-AVX2-NEXT: vcmpltps %ymm2, %ymm0, %ymm0
199 ; X64-AVX2-NEXT: vandps %ymm0, %ymm1, %ymm0
200 ; X64-AVX2-NEXT: retq
232 ; X32-AVX2-LABEL: three_ands:
233 ; X32-AVX2: ## %bb.0: ## %entry
234 ; X32-AVX2-NEXT: vbroadcastss {{.*#+}} ymm1 = [-5.0E-1,-5.0E-1,-5.0E-1,-5.0E-1,-5.0E-1,-5.0E-1,-…
235 ; X32-AVX2-NEXT: vcmpleps %ymm0, %ymm1, %ymm1
236 ; X32-AVX2-NEXT: vbroadcastss {{.*#+}} ymm2 = [1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,…
237 ; X32-AVX2-NEXT: vcmpltps %ymm2, %ymm0, %ymm2
238 ; X32-AVX2-NEXT: vxorps %xmm3, %xmm3, %xmm3
239 ; X32-AVX2-NEXT: vcmpneqps %ymm3, %ymm0, %ymm0
240 ; X32-AVX2-NEXT: vandps %ymm0, %ymm2, %ymm0
241 ; X32-AVX2-NEXT: vandps %ymm0, %ymm1, %ymm0
242 ; X32-AVX2-NEXT: retl
244 ; X64-AVX2-LABEL: three_ands:
245 ; X64-AVX2: ## %bb.0: ## %entry
246 ; X64-AVX2-NEXT: vbroadcastss {{.*#+}} ymm1 = [-5.0E-1,-5.0E-1,-5.0E-1,-5.0E-1,-5.0E-1,-5.0E-1,-…
247 ; X64-AVX2-NEXT: vcmpleps %ymm0, %ymm1, %ymm1
248 ; X64-AVX2-NEXT: vbroadcastss {{.*#+}} ymm2 = [1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,…
249 ; X64-AVX2-NEXT: vcmpltps %ymm2, %ymm0, %ymm2
250 ; X64-AVX2-NEXT: vxorps %xmm3, %xmm3, %xmm3
251 ; X64-AVX2-NEXT: vcmpneqps %ymm3, %ymm0, %ymm0
252 ; X64-AVX2-NEXT: vandps %ymm0, %ymm2, %ymm0
253 ; X64-AVX2-NEXT: vandps %ymm0, %ymm1, %ymm0
254 ; X64-AVX2-NEXT: retq
292 ; X32-AVX2-LABEL: four_ands:
293 ; X32-AVX2: ## %bb.0: ## %entry
294 ; X32-AVX2-NEXT: vbroadcastss {{.*#+}} ymm1 = [-5.0E-1,-5.0E-1,-5.0E-1,-5.0E-1,-5.0E-1,-5.0E-1,-…
295 ; X32-AVX2-NEXT: vcmpleps %ymm0, %ymm1, %ymm1
296 ; X32-AVX2-NEXT: vbroadcastss {{.*#+}} ymm2 = [1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,…
297 ; X32-AVX2-NEXT: vcmpltps %ymm2, %ymm0, %ymm2
298 ; X32-AVX2-NEXT: vxorps %xmm3, %xmm3, %xmm3
299 ; X32-AVX2-NEXT: vcmpneqps %ymm3, %ymm0, %ymm3
300 ; X32-AVX2-NEXT: vandps %ymm3, %ymm2, %ymm2
301 ; X32-AVX2-NEXT: vbroadcastss {{.*#+}} ymm3 = [1.00000001E-1,1.00000001E-1,1.00000001E-1,1.00000…
302 ; X32-AVX2-NEXT: vcmpneqps %ymm3, %ymm0, %ymm0
303 ; X32-AVX2-NEXT: vandps %ymm0, %ymm2, %ymm0
304 ; X32-AVX2-NEXT: vandps %ymm0, %ymm1, %ymm0
305 ; X32-AVX2-NEXT: retl
307 ; X64-AVX2-LABEL: four_ands:
308 ; X64-AVX2: ## %bb.0: ## %entry
309 ; X64-AVX2-NEXT: vbroadcastss {{.*#+}} ymm1 = [-5.0E-1,-5.0E-1,-5.0E-1,-5.0E-1,-5.0E-1,-5.0E-1,-…
310 ; X64-AVX2-NEXT: vcmpleps %ymm0, %ymm1, %ymm1
311 ; X64-AVX2-NEXT: vbroadcastss {{.*#+}} ymm2 = [1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,…
312 ; X64-AVX2-NEXT: vcmpltps %ymm2, %ymm0, %ymm2
313 ; X64-AVX2-NEXT: vxorps %xmm3, %xmm3, %xmm3
314 ; X64-AVX2-NEXT: vcmpneqps %ymm3, %ymm0, %ymm3
315 ; X64-AVX2-NEXT: vandps %ymm3, %ymm2, %ymm2
316 ; X64-AVX2-NEXT: vbroadcastss {{.*#+}} ymm3 = [1.00000001E-1,1.00000001E-1,1.00000001E-1,1.00000…
317 ; X64-AVX2-NEXT: vcmpneqps %ymm3, %ymm0, %ymm0
318 ; X64-AVX2-NEXT: vandps %ymm0, %ymm2, %ymm0
319 ; X64-AVX2-NEXT: vandps %ymm0, %ymm1, %ymm0
320 ; X64-AVX2-NEXT: retq
364 ; X32-AVX2-LABEL: five_ands:
365 ; X32-AVX2: ## %bb.0: ## %entry
366 ; X32-AVX2-NEXT: vbroadcastss {{.*#+}} ymm1 = [-5.0E-1,-5.0E-1,-5.0E-1,-5.0E-1,-5.0E-1,-5.0E-1,-…
367 ; X32-AVX2-NEXT: vcmpleps %ymm0, %ymm1, %ymm1
368 ; X32-AVX2-NEXT: vbroadcastss {{.*#+}} ymm2 = [1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,…
369 ; X32-AVX2-NEXT: vcmpltps %ymm2, %ymm0, %ymm2
370 ; X32-AVX2-NEXT: vxorps %xmm3, %xmm3, %xmm3
371 ; X32-AVX2-NEXT: vcmpneqps %ymm3, %ymm0, %ymm3
372 ; X32-AVX2-NEXT: vandps %ymm3, %ymm2, %ymm2
373 ; X32-AVX2-NEXT: vbroadcastss {{.*#+}} ymm3 = [1.00000001E-1,1.00000001E-1,1.00000001E-1,1.00000…
374 ; X32-AVX2-NEXT: vcmpneqps %ymm3, %ymm0, %ymm3
375 ; X32-AVX2-NEXT: vandps %ymm3, %ymm2, %ymm2
376 ; X32-AVX2-NEXT: vbroadcastss {{.*#+}} ymm3 = [2.00000003E-1,2.00000003E-1,2.00000003E-1,2.00000…
377 ; X32-AVX2-NEXT: vcmpneqps %ymm3, %ymm0, %ymm0
378 ; X32-AVX2-NEXT: vandps %ymm0, %ymm2, %ymm0
379 ; X32-AVX2-NEXT: vandps %ymm0, %ymm1, %ymm0
380 ; X32-AVX2-NEXT: retl
382 ; X64-AVX2-LABEL: five_ands:
383 ; X64-AVX2: ## %bb.0: ## %entry
384 ; X64-AVX2-NEXT: vbroadcastss {{.*#+}} ymm1 = [-5.0E-1,-5.0E-1,-5.0E-1,-5.0E-1,-5.0E-1,-5.0E-1,-…
385 ; X64-AVX2-NEXT: vcmpleps %ymm0, %ymm1, %ymm1
386 ; X64-AVX2-NEXT: vbroadcastss {{.*#+}} ymm2 = [1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,…
387 ; X64-AVX2-NEXT: vcmpltps %ymm2, %ymm0, %ymm2
388 ; X64-AVX2-NEXT: vxorps %xmm3, %xmm3, %xmm3
389 ; X64-AVX2-NEXT: vcmpneqps %ymm3, %ymm0, %ymm3
390 ; X64-AVX2-NEXT: vandps %ymm3, %ymm2, %ymm2
391 ; X64-AVX2-NEXT: vbroadcastss {{.*#+}} ymm3 = [1.00000001E-1,1.00000001E-1,1.00000001E-1,1.00000…
392 ; X64-AVX2-NEXT: vcmpneqps %ymm3, %ymm0, %ymm3
393 ; X64-AVX2-NEXT: vandps %ymm3, %ymm2, %ymm2
394 ; X64-AVX2-NEXT: vbroadcastss {{.*#+}} ymm3 = [2.00000003E-1,2.00000003E-1,2.00000003E-1,2.00000…
395 ; X64-AVX2-NEXT: vcmpneqps %ymm3, %ymm0, %ymm0
396 ; X64-AVX2-NEXT: vandps %ymm0, %ymm2, %ymm0
397 ; X64-AVX2-NEXT: vandps %ymm0, %ymm1, %ymm0
398 ; X64-AVX2-NEXT: retq
430 ; X32-AVX2-LABEL: two_or:
431 ; X32-AVX2: ## %bb.0: ## %entry
432 ; X32-AVX2-NEXT: vbroadcastss {{.*#+}} ymm1 = [-5.0E-1,-5.0E-1,-5.0E-1,-5.0E-1,-5.0E-1,-5.0E-1,-…
433 ; X32-AVX2-NEXT: vcmpleps %ymm0, %ymm1, %ymm1
434 ; X32-AVX2-NEXT: vbroadcastss {{.*#+}} ymm2 = [1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,…
435 ; X32-AVX2-NEXT: vcmpltps %ymm2, %ymm0, %ymm0
436 ; X32-AVX2-NEXT: vorps %ymm0, %ymm1, %ymm0
437 ; X32-AVX2-NEXT: retl
439 ; X64-AVX2-LABEL: two_or:
440 ; X64-AVX2: ## %bb.0: ## %entry
441 ; X64-AVX2-NEXT: vbroadcastss {{.*#+}} ymm1 = [-5.0E-1,-5.0E-1,-5.0E-1,-5.0E-1,-5.0E-1,-5.0E-1,-…
442 ; X64-AVX2-NEXT: vcmpleps %ymm0, %ymm1, %ymm1
443 ; X64-AVX2-NEXT: vbroadcastss {{.*#+}} ymm2 = [1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,…
444 ; X64-AVX2-NEXT: vcmpltps %ymm2, %ymm0, %ymm0
445 ; X64-AVX2-NEXT: vorps %ymm0, %ymm1, %ymm0
446 ; X64-AVX2-NEXT: retq
478 ; X32-AVX2-LABEL: three_or:
479 ; X32-AVX2: ## %bb.0: ## %entry
480 ; X32-AVX2-NEXT: vbroadcastss {{.*#+}} ymm1 = [-5.0E-1,-5.0E-1,-5.0E-1,-5.0E-1,-5.0E-1,-5.0E-1,-…
481 ; X32-AVX2-NEXT: vcmpleps %ymm0, %ymm1, %ymm1
482 ; X32-AVX2-NEXT: vbroadcastss {{.*#+}} ymm2 = [1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,…
483 ; X32-AVX2-NEXT: vcmpltps %ymm2, %ymm0, %ymm2
484 ; X32-AVX2-NEXT: vxorps %xmm3, %xmm3, %xmm3
485 ; X32-AVX2-NEXT: vcmpneqps %ymm3, %ymm0, %ymm0
486 ; X32-AVX2-NEXT: vorps %ymm0, %ymm2, %ymm0
487 ; X32-AVX2-NEXT: vorps %ymm0, %ymm1, %ymm0
488 ; X32-AVX2-NEXT: retl
490 ; X64-AVX2-LABEL: three_or:
491 ; X64-AVX2: ## %bb.0: ## %entry
492 ; X64-AVX2-NEXT: vbroadcastss {{.*#+}} ymm1 = [-5.0E-1,-5.0E-1,-5.0E-1,-5.0E-1,-5.0E-1,-5.0E-1,-…
493 ; X64-AVX2-NEXT: vcmpleps %ymm0, %ymm1, %ymm1
494 ; X64-AVX2-NEXT: vbroadcastss {{.*#+}} ymm2 = [1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,…
495 ; X64-AVX2-NEXT: vcmpltps %ymm2, %ymm0, %ymm2
496 ; X64-AVX2-NEXT: vxorps %xmm3, %xmm3, %xmm3
497 ; X64-AVX2-NEXT: vcmpneqps %ymm3, %ymm0, %ymm0
498 ; X64-AVX2-NEXT: vorps %ymm0, %ymm2, %ymm0
499 ; X64-AVX2-NEXT: vorps %ymm0, %ymm1, %ymm0
500 ; X64-AVX2-NEXT: retq
538 ; X32-AVX2-LABEL: four_or:
539 ; X32-AVX2: ## %bb.0: ## %entry
540 ; X32-AVX2-NEXT: vbroadcastss {{.*#+}} ymm1 = [-5.0E-1,-5.0E-1,-5.0E-1,-5.0E-1,-5.0E-1,-5.0E-1,-…
541 ; X32-AVX2-NEXT: vcmpleps %ymm0, %ymm1, %ymm1
542 ; X32-AVX2-NEXT: vbroadcastss {{.*#+}} ymm2 = [1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,…
543 ; X32-AVX2-NEXT: vcmpltps %ymm2, %ymm0, %ymm2
544 ; X32-AVX2-NEXT: vxorps %xmm3, %xmm3, %xmm3
545 ; X32-AVX2-NEXT: vcmpneqps %ymm3, %ymm0, %ymm3
546 ; X32-AVX2-NEXT: vorps %ymm3, %ymm2, %ymm2
547 ; X32-AVX2-NEXT: vbroadcastss {{.*#+}} ymm3 = [1.00000001E-1,1.00000001E-1,1.00000001E-1,1.00000…
548 ; X32-AVX2-NEXT: vcmpneqps %ymm3, %ymm0, %ymm0
549 ; X32-AVX2-NEXT: vorps %ymm0, %ymm2, %ymm0
550 ; X32-AVX2-NEXT: vorps %ymm0, %ymm1, %ymm0
551 ; X32-AVX2-NEXT: retl
553 ; X64-AVX2-LABEL: four_or:
554 ; X64-AVX2: ## %bb.0: ## %entry
555 ; X64-AVX2-NEXT: vbroadcastss {{.*#+}} ymm1 = [-5.0E-1,-5.0E-1,-5.0E-1,-5.0E-1,-5.0E-1,-5.0E-1,-…
556 ; X64-AVX2-NEXT: vcmpleps %ymm0, %ymm1, %ymm1
557 ; X64-AVX2-NEXT: vbroadcastss {{.*#+}} ymm2 = [1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,…
558 ; X64-AVX2-NEXT: vcmpltps %ymm2, %ymm0, %ymm2
559 ; X64-AVX2-NEXT: vxorps %xmm3, %xmm3, %xmm3
560 ; X64-AVX2-NEXT: vcmpneqps %ymm3, %ymm0, %ymm3
561 ; X64-AVX2-NEXT: vorps %ymm3, %ymm2, %ymm2
562 ; X64-AVX2-NEXT: vbroadcastss {{.*#+}} ymm3 = [1.00000001E-1,1.00000001E-1,1.00000001E-1,1.00000…
563 ; X64-AVX2-NEXT: vcmpneqps %ymm3, %ymm0, %ymm0
564 ; X64-AVX2-NEXT: vorps %ymm0, %ymm2, %ymm0
565 ; X64-AVX2-NEXT: vorps %ymm0, %ymm1, %ymm0
566 ; X64-AVX2-NEXT: retq
610 ; X32-AVX2-LABEL: five_or:
611 ; X32-AVX2: ## %bb.0: ## %entry
612 ; X32-AVX2-NEXT: vbroadcastss {{.*#+}} ymm1 = [-5.0E-1,-5.0E-1,-5.0E-1,-5.0E-1,-5.0E-1,-5.0E-1,-…
613 ; X32-AVX2-NEXT: vcmpleps %ymm0, %ymm1, %ymm1
614 ; X32-AVX2-NEXT: vbroadcastss {{.*#+}} ymm2 = [1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,…
615 ; X32-AVX2-NEXT: vcmpltps %ymm2, %ymm0, %ymm2
616 ; X32-AVX2-NEXT: vxorps %xmm3, %xmm3, %xmm3
617 ; X32-AVX2-NEXT: vcmpneqps %ymm3, %ymm0, %ymm3
618 ; X32-AVX2-NEXT: vorps %ymm3, %ymm2, %ymm2
619 ; X32-AVX2-NEXT: vbroadcastss {{.*#+}} ymm3 = [1.00000001E-1,1.00000001E-1,1.00000001E-1,1.00000…
620 ; X32-AVX2-NEXT: vcmpneqps %ymm3, %ymm0, %ymm3
621 ; X32-AVX2-NEXT: vorps %ymm3, %ymm2, %ymm2
622 ; X32-AVX2-NEXT: vbroadcastss {{.*#+}} ymm3 = [2.00000003E-1,2.00000003E-1,2.00000003E-1,2.00000…
623 ; X32-AVX2-NEXT: vcmpneqps %ymm3, %ymm0, %ymm0
624 ; X32-AVX2-NEXT: vorps %ymm0, %ymm2, %ymm0
625 ; X32-AVX2-NEXT: vorps %ymm0, %ymm1, %ymm0
626 ; X32-AVX2-NEXT: retl
628 ; X64-AVX2-LABEL: five_or:
629 ; X64-AVX2: ## %bb.0: ## %entry
630 ; X64-AVX2-NEXT: vbroadcastss {{.*#+}} ymm1 = [-5.0E-1,-5.0E-1,-5.0E-1,-5.0E-1,-5.0E-1,-5.0E-1,-…
631 ; X64-AVX2-NEXT: vcmpleps %ymm0, %ymm1, %ymm1
632 ; X64-AVX2-NEXT: vbroadcastss {{.*#+}} ymm2 = [1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,…
633 ; X64-AVX2-NEXT: vcmpltps %ymm2, %ymm0, %ymm2
634 ; X64-AVX2-NEXT: vxorps %xmm3, %xmm3, %xmm3
635 ; X64-AVX2-NEXT: vcmpneqps %ymm3, %ymm0, %ymm3
636 ; X64-AVX2-NEXT: vorps %ymm3, %ymm2, %ymm2
637 ; X64-AVX2-NEXT: vbroadcastss {{.*#+}} ymm3 = [1.00000001E-1,1.00000001E-1,1.00000001E-1,1.00000…
638 ; X64-AVX2-NEXT: vcmpneqps %ymm3, %ymm0, %ymm3
639 ; X64-AVX2-NEXT: vorps %ymm3, %ymm2, %ymm2
640 ; X64-AVX2-NEXT: vbroadcastss {{.*#+}} ymm3 = [2.00000003E-1,2.00000003E-1,2.00000003E-1,2.00000…
641 ; X64-AVX2-NEXT: vcmpneqps %ymm3, %ymm0, %ymm0
642 ; X64-AVX2-NEXT: vorps %ymm0, %ymm2, %ymm0
643 ; X64-AVX2-NEXT: vorps %ymm0, %ymm1, %ymm0
644 ; X64-AVX2-NEXT: retq
682 ; X32-AVX2-LABEL: three_or_and:
683 ; X32-AVX2: ## %bb.0: ## %entry
684 ; X32-AVX2-NEXT: vbroadcastss {{.*#+}} ymm1 = [-5.0E-1,-5.0E-1,-5.0E-1,-5.0E-1,-5.0E-1,-5.0E-1,-…
685 ; X32-AVX2-NEXT: vcmpleps %ymm0, %ymm1, %ymm1
686 ; X32-AVX2-NEXT: vbroadcastss {{.*#+}} ymm2 = [1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,…
687 ; X32-AVX2-NEXT: vcmpltps %ymm2, %ymm0, %ymm2
688 ; X32-AVX2-NEXT: vxorps %xmm3, %xmm3, %xmm3
689 ; X32-AVX2-NEXT: vcmpneqps %ymm3, %ymm0, %ymm0
690 ; X32-AVX2-NEXT: vandps %ymm0, %ymm2, %ymm0
691 ; X32-AVX2-NEXT: vorps %ymm1, %ymm0, %ymm0
692 ; X32-AVX2-NEXT: retl
694 ; X64-AVX2-LABEL: three_or_and:
695 ; X64-AVX2: ## %bb.0: ## %entry
696 ; X64-AVX2-NEXT: vbroadcastss {{.*#+}} ymm1 = [-5.0E-1,-5.0E-1,-5.0E-1,-5.0E-1,-5.0E-1,-5.0E-1,-…
697 ; X64-AVX2-NEXT: vcmpleps %ymm0, %ymm1, %ymm1
698 ; X64-AVX2-NEXT: vbroadcastss {{.*#+}} ymm2 = [1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,…
699 ; X64-AVX2-NEXT: vcmpltps %ymm2, %ymm0, %ymm2
700 ; X64-AVX2-NEXT: vxorps %xmm3, %xmm3, %xmm3
701 ; X64-AVX2-NEXT: vcmpneqps %ymm3, %ymm0, %ymm0
702 ; X64-AVX2-NEXT: vandps %ymm0, %ymm2, %ymm0
703 ; X64-AVX2-NEXT: vorps %ymm1, %ymm0, %ymm0
704 ; X64-AVX2-NEXT: retq
742 ; X32-AVX2-LABEL: four_or_and:
743 ; X32-AVX2: ## %bb.0: ## %entry
744 ; X32-AVX2-NEXT: vbroadcastss {{.*#+}} ymm1 = [-5.0E-1,-5.0E-1,-5.0E-1,-5.0E-1,-5.0E-1,-5.0E-1,-…
745 ; X32-AVX2-NEXT: vcmpleps %ymm0, %ymm1, %ymm1
746 ; X32-AVX2-NEXT: vbroadcastss {{.*#+}} ymm2 = [1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,…
747 ; X32-AVX2-NEXT: vcmpltps %ymm2, %ymm0, %ymm2
748 ; X32-AVX2-NEXT: vandps %ymm2, %ymm1, %ymm1
749 ; X32-AVX2-NEXT: vxorps %xmm2, %xmm2, %xmm2
750 ; X32-AVX2-NEXT: vcmpneqps %ymm2, %ymm0, %ymm2
751 ; X32-AVX2-NEXT: vbroadcastss {{.*#+}} ymm3 = [1.00000001E-1,1.00000001E-1,1.00000001E-1,1.00000…
752 ; X32-AVX2-NEXT: vcmpneqps %ymm3, %ymm0, %ymm0
753 ; X32-AVX2-NEXT: vandps %ymm0, %ymm2, %ymm0
754 ; X32-AVX2-NEXT: vorps %ymm0, %ymm1, %ymm0
755 ; X32-AVX2-NEXT: retl
757 ; X64-AVX2-LABEL: four_or_and:
758 ; X64-AVX2: ## %bb.0: ## %entry
759 ; X64-AVX2-NEXT: vbroadcastss {{.*#+}} ymm1 = [-5.0E-1,-5.0E-1,-5.0E-1,-5.0E-1,-5.0E-1,-5.0E-1,-…
760 ; X64-AVX2-NEXT: vcmpleps %ymm0, %ymm1, %ymm1
761 ; X64-AVX2-NEXT: vbroadcastss {{.*#+}} ymm2 = [1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,…
762 ; X64-AVX2-NEXT: vcmpltps %ymm2, %ymm0, %ymm2
763 ; X64-AVX2-NEXT: vandps %ymm2, %ymm1, %ymm1
764 ; X64-AVX2-NEXT: vxorps %xmm2, %xmm2, %xmm2
765 ; X64-AVX2-NEXT: vcmpneqps %ymm2, %ymm0, %ymm2
766 ; X64-AVX2-NEXT: vbroadcastss {{.*#+}} ymm3 = [1.00000001E-1,1.00000001E-1,1.00000001E-1,1.00000…
767 ; X64-AVX2-NEXT: vcmpneqps %ymm3, %ymm0, %ymm0
768 ; X64-AVX2-NEXT: vandps %ymm0, %ymm2, %ymm0
769 ; X64-AVX2-NEXT: vorps %ymm0, %ymm1, %ymm0
770 ; X64-AVX2-NEXT: retq
814 ; X32-AVX2-LABEL: five_or_and:
815 ; X32-AVX2: ## %bb.0: ## %entry
816 ; X32-AVX2-NEXT: vbroadcastss {{.*#+}} ymm1 = [-5.0E-1,-5.0E-1,-5.0E-1,-5.0E-1,-5.0E-1,-5.0E-1,-…
817 ; X32-AVX2-NEXT: vcmpleps %ymm0, %ymm1, %ymm1
818 ; X32-AVX2-NEXT: vbroadcastss {{.*#+}} ymm2 = [1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,…
819 ; X32-AVX2-NEXT: vcmpltps %ymm2, %ymm0, %ymm2
820 ; X32-AVX2-NEXT: vxorps %xmm3, %xmm3, %xmm3
821 ; X32-AVX2-NEXT: vcmpneqps %ymm3, %ymm0, %ymm3
822 ; X32-AVX2-NEXT: vandps %ymm3, %ymm2, %ymm2
823 ; X32-AVX2-NEXT: vbroadcastss {{.*#+}} ymm3 = [1.00000001E-1,1.00000001E-1,1.00000001E-1,1.00000…
824 ; X32-AVX2-NEXT: vcmpneqps %ymm3, %ymm0, %ymm3
825 ; X32-AVX2-NEXT: vbroadcastss {{.*#+}} ymm4 = [2.00000003E-1,2.00000003E-1,2.00000003E-1,2.00000…
826 ; X32-AVX2-NEXT: vcmpneqps %ymm4, %ymm0, %ymm0
827 ; X32-AVX2-NEXT: vandps %ymm0, %ymm3, %ymm0
828 ; X32-AVX2-NEXT: vorps %ymm0, %ymm1, %ymm0
829 ; X32-AVX2-NEXT: vorps %ymm0, %ymm2, %ymm0
830 ; X32-AVX2-NEXT: retl
832 ; X64-AVX2-LABEL: five_or_and:
833 ; X64-AVX2: ## %bb.0: ## %entry
834 ; X64-AVX2-NEXT: vbroadcastss {{.*#+}} ymm1 = [-5.0E-1,-5.0E-1,-5.0E-1,-5.0E-1,-5.0E-1,-5.0E-1,-…
835 ; X64-AVX2-NEXT: vcmpleps %ymm0, %ymm1, %ymm1
836 ; X64-AVX2-NEXT: vbroadcastss {{.*#+}} ymm2 = [1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,…
837 ; X64-AVX2-NEXT: vcmpltps %ymm2, %ymm0, %ymm2
838 ; X64-AVX2-NEXT: vxorps %xmm3, %xmm3, %xmm3
839 ; X64-AVX2-NEXT: vcmpneqps %ymm3, %ymm0, %ymm3
840 ; X64-AVX2-NEXT: vandps %ymm3, %ymm2, %ymm2
841 ; X64-AVX2-NEXT: vbroadcastss {{.*#+}} ymm3 = [1.00000001E-1,1.00000001E-1,1.00000001E-1,1.00000…
842 ; X64-AVX2-NEXT: vcmpneqps %ymm3, %ymm0, %ymm3
843 ; X64-AVX2-NEXT: vbroadcastss {{.*#+}} ymm4 = [2.00000003E-1,2.00000003E-1,2.00000003E-1,2.00000…
844 ; X64-AVX2-NEXT: vcmpneqps %ymm4, %ymm0, %ymm0
845 ; X64-AVX2-NEXT: vandps %ymm0, %ymm3, %ymm0
846 ; X64-AVX2-NEXT: vorps %ymm0, %ymm1, %ymm0
847 ; X64-AVX2-NEXT: vorps %ymm0, %ymm2, %ymm0
848 ; X64-AVX2-NEXT: retq
890 ; X32-AVX2-LABEL: four_or_and_xor:
891 ; X32-AVX2: ## %bb.0: ## %entry
892 ; X32-AVX2-NEXT: vbroadcastss {{.*#+}} ymm1 = [-5.0E-1,-5.0E-1,-5.0E-1,-5.0E-1,-5.0E-1,-5.0E-1,-…
893 ; X32-AVX2-NEXT: vcmpleps %ymm0, %ymm1, %ymm1
894 ; X32-AVX2-NEXT: vbroadcastss {{.*#+}} ymm2 = [1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,…
895 ; X32-AVX2-NEXT: vcmpltps %ymm2, %ymm0, %ymm2
896 ; X32-AVX2-NEXT: vxorps %ymm2, %ymm1, %ymm1
897 ; X32-AVX2-NEXT: vxorps %xmm2, %xmm2, %xmm2
898 ; X32-AVX2-NEXT: vcmpneqps %ymm2, %ymm0, %ymm2
899 ; X32-AVX2-NEXT: vbroadcastss {{.*#+}} ymm3 = [1.00000001E-1,1.00000001E-1,1.00000001E-1,1.00000…
900 ; X32-AVX2-NEXT: vcmpneqps %ymm3, %ymm0, %ymm0
901 ; X32-AVX2-NEXT: vandps %ymm0, %ymm2, %ymm0
902 ; X32-AVX2-NEXT: vorps %ymm0, %ymm1, %ymm0
903 ; X32-AVX2-NEXT: retl
905 ; X64-AVX2-LABEL: four_or_and_xor:
906 ; X64-AVX2: ## %bb.0: ## %entry
907 ; X64-AVX2-NEXT: vbroadcastss {{.*#+}} ymm1 = [-5.0E-1,-5.0E-1,-5.0E-1,-5.0E-1,-5.0E-1,-5.0E-1,-…
908 ; X64-AVX2-NEXT: vcmpleps %ymm0, %ymm1, %ymm1
909 ; X64-AVX2-NEXT: vbroadcastss {{.*#+}} ymm2 = [1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,…
910 ; X64-AVX2-NEXT: vcmpltps %ymm2, %ymm0, %ymm2
911 ; X64-AVX2-NEXT: vxorps %ymm2, %ymm1, %ymm1
912 ; X64-AVX2-NEXT: vxorps %xmm2, %xmm2, %xmm2
913 ; X64-AVX2-NEXT: vcmpneqps %ymm2, %ymm0, %ymm2
914 ; X64-AVX2-NEXT: vbroadcastss {{.*#+}} ymm3 = [1.00000001E-1,1.00000001E-1,1.00000001E-1,1.00000…
915 ; X64-AVX2-NEXT: vcmpneqps %ymm3, %ymm0, %ymm0
916 ; X64-AVX2-NEXT: vandps %ymm0, %ymm2, %ymm0
917 ; X64-AVX2-NEXT: vorps %ymm0, %ymm1, %ymm0
918 ; X64-AVX2-NEXT: retq
962 ; X32-AVX2-LABEL: five_or_and_xor:
963 ; X32-AVX2: ## %bb.0: ## %entry
964 ; X32-AVX2-NEXT: vbroadcastss {{.*#+}} ymm1 = [-5.0E-1,-5.0E-1,-5.0E-1,-5.0E-1,-5.0E-1,-5.0E-1,-…
965 ; X32-AVX2-NEXT: vcmpleps %ymm0, %ymm1, %ymm1
966 ; X32-AVX2-NEXT: vbroadcastss {{.*#+}} ymm2 = [1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,…
967 ; X32-AVX2-NEXT: vcmpltps %ymm2, %ymm0, %ymm2
968 ; X32-AVX2-NEXT: vxorps %xmm3, %xmm3, %xmm3
969 ; X32-AVX2-NEXT: vcmpneqps %ymm3, %ymm0, %ymm3
970 ; X32-AVX2-NEXT: vbroadcastss {{.*#+}} ymm4 = [1.00000001E-1,1.00000001E-1,1.00000001E-1,1.00000…
971 ; X32-AVX2-NEXT: vcmpneqps %ymm4, %ymm0, %ymm4
972 ; X32-AVX2-NEXT: vbroadcastss {{.*#+}} ymm5 = [2.00000003E-1,2.00000003E-1,2.00000003E-1,2.00000…
973 ; X32-AVX2-NEXT: vcmpneqps %ymm5, %ymm0, %ymm0
974 ; X32-AVX2-NEXT: vandps %ymm0, %ymm4, %ymm0
975 ; X32-AVX2-NEXT: vxorps %ymm0, %ymm3, %ymm0
976 ; X32-AVX2-NEXT: vxorps %ymm0, %ymm2, %ymm0
977 ; X32-AVX2-NEXT: vorps %ymm1, %ymm0, %ymm0
978 ; X32-AVX2-NEXT: retl
980 ; X64-AVX2-LABEL: five_or_and_xor:
981 ; X64-AVX2: ## %bb.0: ## %entry
982 ; X64-AVX2-NEXT: vbroadcastss {{.*#+}} ymm1 = [-5.0E-1,-5.0E-1,-5.0E-1,-5.0E-1,-5.0E-1,-5.0E-1,-…
983 ; X64-AVX2-NEXT: vcmpleps %ymm0, %ymm1, %ymm1
984 ; X64-AVX2-NEXT: vbroadcastss {{.*#+}} ymm2 = [1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,…
985 ; X64-AVX2-NEXT: vcmpltps %ymm2, %ymm0, %ymm2
986 ; X64-AVX2-NEXT: vxorps %xmm3, %xmm3, %xmm3
987 ; X64-AVX2-NEXT: vcmpneqps %ymm3, %ymm0, %ymm3
988 ; X64-AVX2-NEXT: vbroadcastss {{.*#+}} ymm4 = [1.00000001E-1,1.00000001E-1,1.00000001E-1,1.00000…
989 ; X64-AVX2-NEXT: vcmpneqps %ymm4, %ymm0, %ymm4
990 ; X64-AVX2-NEXT: vbroadcastss {{.*#+}} ymm5 = [2.00000003E-1,2.00000003E-1,2.00000003E-1,2.00000…
991 ; X64-AVX2-NEXT: vcmpneqps %ymm5, %ymm0, %ymm0
992 ; X64-AVX2-NEXT: vandps %ymm0, %ymm4, %ymm0
993 ; X64-AVX2-NEXT: vxorps %ymm0, %ymm3, %ymm0
994 ; X64-AVX2-NEXT: vxorps %ymm0, %ymm2, %ymm0
995 ; X64-AVX2-NEXT: vorps %ymm1, %ymm0, %ymm0
996 ; X64-AVX2-NEXT: retq
1045 ; X32-AVX2-LABEL: six_or_and_xor:
1046 ; X32-AVX2: ## %bb.0: ## %entry
1047 ; X32-AVX2-NEXT: vbroadcastss {{.*#+}} ymm1 = [-5.0E-1,-5.0E-1,-5.0E-1,-5.0E-1,-5.0E-1,-5.0E-1,-…
1048 ; X32-AVX2-NEXT: vcmpleps %ymm0, %ymm1, %ymm1
1049 ; X32-AVX2-NEXT: vbroadcastss {{.*#+}} ymm2 = [1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,…
1050 ; X32-AVX2-NEXT: vcmpltps %ymm2, %ymm0, %ymm2
1051 ; X32-AVX2-NEXT: vxorps %xmm3, %xmm3, %xmm3
1052 ; X32-AVX2-NEXT: vcmpneqps %ymm3, %ymm0, %ymm3
1053 ; X32-AVX2-NEXT: vbroadcastss {{.*#+}} ymm4 = [1.00000001E-1,1.00000001E-1,1.00000001E-1,1.00000…
1054 ; X32-AVX2-NEXT: vcmpneqps %ymm4, %ymm0, %ymm4
1055 ; X32-AVX2-NEXT: vandps %ymm4, %ymm3, %ymm3
1056 ; X32-AVX2-NEXT: vandps %ymm3, %ymm2, %ymm2
1057 ; X32-AVX2-NEXT: vxorps %ymm2, %ymm1, %ymm1
1058 ; X32-AVX2-NEXT: vbroadcastss {{.*#+}} ymm2 = [2.00000003E-1,2.00000003E-1,2.00000003E-1,2.00000…
1059 ; X32-AVX2-NEXT: vcmpneqps %ymm2, %ymm0, %ymm2
1060 ; X32-AVX2-NEXT: vxorps %ymm1, %ymm2, %ymm1
1061 ; X32-AVX2-NEXT: vbroadcastss {{.*#+}} ymm2 = [4.00000006E-1,4.00000006E-1,4.00000006E-1,4.00000…
1062 ; X32-AVX2-NEXT: vcmpneqps %ymm2, %ymm0, %ymm0
1063 ; X32-AVX2-NEXT: vorps %ymm0, %ymm1, %ymm0
1064 ; X32-AVX2-NEXT: retl
1066 ; X64-AVX2-LABEL: six_or_and_xor:
1067 ; X64-AVX2: ## %bb.0: ## %entry
1068 ; X64-AVX2-NEXT: vbroadcastss {{.*#+}} ymm1 = [-5.0E-1,-5.0E-1,-5.0E-1,-5.0E-1,-5.0E-1,-5.0E-1,-…
1069 ; X64-AVX2-NEXT: vcmpleps %ymm0, %ymm1, %ymm1
1070 ; X64-AVX2-NEXT: vbroadcastss {{.*#+}} ymm2 = [1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,…
1071 ; X64-AVX2-NEXT: vcmpltps %ymm2, %ymm0, %ymm2
1072 ; X64-AVX2-NEXT: vxorps %xmm3, %xmm3, %xmm3
1073 ; X64-AVX2-NEXT: vcmpneqps %ymm3, %ymm0, %ymm3
1074 ; X64-AVX2-NEXT: vbroadcastss {{.*#+}} ymm4 = [1.00000001E-1,1.00000001E-1,1.00000001E-1,1.00000…
1075 ; X64-AVX2-NEXT: vcmpneqps %ymm4, %ymm0, %ymm4
1076 ; X64-AVX2-NEXT: vandps %ymm4, %ymm3, %ymm3
1077 ; X64-AVX2-NEXT: vandps %ymm3, %ymm2, %ymm2
1078 ; X64-AVX2-NEXT: vxorps %ymm2, %ymm1, %ymm1
1079 ; X64-AVX2-NEXT: vbroadcastss {{.*#+}} ymm2 = [2.00000003E-1,2.00000003E-1,2.00000003E-1,2.00000…
1080 ; X64-AVX2-NEXT: vcmpneqps %ymm2, %ymm0, %ymm2
1081 ; X64-AVX2-NEXT: vxorps %ymm1, %ymm2, %ymm1
1082 ; X64-AVX2-NEXT: vbroadcastss {{.*#+}} ymm2 = [4.00000006E-1,4.00000006E-1,4.00000006E-1,4.00000…
1083 ; X64-AVX2-NEXT: vcmpneqps %ymm2, %ymm0, %ymm0
1084 ; X64-AVX2-NEXT: vorps %ymm0, %ymm1, %ymm0
1085 ; X64-AVX2-NEXT: retq