• Home
  • Raw
  • Download

Lines Matching refs:AVX512BW

2 …4-apple-darwin -mcpu=knl -mattr=+avx512bw | FileCheck %s --check-prefix=ALL --check-prefix=AVX512BW
6 ; AVX512BW-LABEL: test_cmp_b_512:
7 ; AVX512BW: ## BB#0:
8 ; AVX512BW-NEXT: vpcmpeqb %zmm1, %zmm0, %k0
9 ; AVX512BW-NEXT: kmovq %k0, %rax
10 ; AVX512BW-NEXT: vpcmpltb %zmm1, %zmm0, %k0
11 ; AVX512BW-NEXT: kmovq %k0, %rcx
12 ; AVX512BW-NEXT: addq %rax, %rcx
13 ; AVX512BW-NEXT: vpcmpleb %zmm1, %zmm0, %k0
14 ; AVX512BW-NEXT: kmovq %k0, %rax
15 ; AVX512BW-NEXT: addq %rcx, %rax
16 ; AVX512BW-NEXT: vpcmpunordb %zmm1, %zmm0, %k0
17 ; AVX512BW-NEXT: kmovq %k0, %rcx
18 ; AVX512BW-NEXT: addq %rax, %rcx
19 ; AVX512BW-NEXT: vpcmpneqb %zmm1, %zmm0, %k0
20 ; AVX512BW-NEXT: kmovq %k0, %rax
21 ; AVX512BW-NEXT: addq %rcx, %rax
22 ; AVX512BW-NEXT: vpcmpnltb %zmm1, %zmm0, %k0
23 ; AVX512BW-NEXT: kmovq %k0, %rcx
24 ; AVX512BW-NEXT: addq %rax, %rcx
25 ; AVX512BW-NEXT: vpcmpnleb %zmm1, %zmm0, %k0
26 ; AVX512BW-NEXT: kmovq %k0, %rdx
27 ; AVX512BW-NEXT: addq %rcx, %rdx
28 ; AVX512BW-NEXT: vpcmpordb %zmm1, %zmm0, %k0
29 ; AVX512BW-NEXT: kmovq %k0, %rax
30 ; AVX512BW-NEXT: addq %rdx, %rax
31 ; AVX512BW-NEXT: retq
91 ; AVX512BW-LABEL: test_mask_cmp_b_512:
92 ; AVX512BW: ## BB#0:
93 ; AVX512BW-NEXT: kmovq %rdi, %k1
94 ; AVX512BW-NEXT: vpcmpeqb %zmm1, %zmm0, %k0 {%k1}
95 ; AVX512BW-NEXT: kmovq %k0, %rax
96 ; AVX512BW-NEXT: vpcmpltb %zmm1, %zmm0, %k0 {%k1}
97 ; AVX512BW-NEXT: kmovq %k0, %rcx
98 ; AVX512BW-NEXT: addq %rax, %rcx
99 ; AVX512BW-NEXT: vpcmpleb %zmm1, %zmm0, %k0 {%k1}
100 ; AVX512BW-NEXT: kmovq %k0, %rax
101 ; AVX512BW-NEXT: addq %rcx, %rax
102 ; AVX512BW-NEXT: vpcmpunordb %zmm1, %zmm0, %k0 {%k1}
103 ; AVX512BW-NEXT: kmovq %k0, %rcx
104 ; AVX512BW-NEXT: addq %rax, %rcx
105 ; AVX512BW-NEXT: vpcmpneqb %zmm1, %zmm0, %k0 {%k1}
106 ; AVX512BW-NEXT: kmovq %k0, %rax
107 ; AVX512BW-NEXT: addq %rcx, %rax
108 ; AVX512BW-NEXT: vpcmpnltb %zmm1, %zmm0, %k0 {%k1}
109 ; AVX512BW-NEXT: kmovq %k0, %rcx
110 ; AVX512BW-NEXT: addq %rax, %rcx
111 ; AVX512BW-NEXT: vpcmpnleb %zmm1, %zmm0, %k0 {%k1}
112 ; AVX512BW-NEXT: kmovq %k0, %rdx
113 ; AVX512BW-NEXT: addq %rcx, %rdx
114 ; AVX512BW-NEXT: vpcmpordb %zmm1, %zmm0, %k0 {%k1}
115 ; AVX512BW-NEXT: kmovq %k0, %rax
116 ; AVX512BW-NEXT: addq %rdx, %rax
117 ; AVX512BW-NEXT: retq
182 ; AVX512BW-LABEL: test_ucmp_b_512:
183 ; AVX512BW: ## BB#0:
184 ; AVX512BW-NEXT: vpcmpequb %zmm1, %zmm0, %k0
185 ; AVX512BW-NEXT: kmovq %k0, %rax
186 ; AVX512BW-NEXT: vpcmpltub %zmm1, %zmm0, %k0
187 ; AVX512BW-NEXT: kmovq %k0, %rcx
188 ; AVX512BW-NEXT: addq %rax, %rcx
189 ; AVX512BW-NEXT: vpcmpleub %zmm1, %zmm0, %k0
190 ; AVX512BW-NEXT: kmovq %k0, %rax
191 ; AVX512BW-NEXT: addq %rcx, %rax
192 ; AVX512BW-NEXT: vpcmpunordub %zmm1, %zmm0, %k0
193 ; AVX512BW-NEXT: kmovq %k0, %rcx
194 ; AVX512BW-NEXT: addq %rax, %rcx
195 ; AVX512BW-NEXT: vpcmpnequb %zmm1, %zmm0, %k0
196 ; AVX512BW-NEXT: kmovq %k0, %rax
197 ; AVX512BW-NEXT: addq %rcx, %rax
198 ; AVX512BW-NEXT: vpcmpnltub %zmm1, %zmm0, %k0
199 ; AVX512BW-NEXT: kmovq %k0, %rcx
200 ; AVX512BW-NEXT: addq %rax, %rcx
201 ; AVX512BW-NEXT: vpcmpnleub %zmm1, %zmm0, %k0
202 ; AVX512BW-NEXT: kmovq %k0, %rdx
203 ; AVX512BW-NEXT: addq %rcx, %rdx
204 ; AVX512BW-NEXT: vpcmpordub %zmm1, %zmm0, %k0
205 ; AVX512BW-NEXT: kmovq %k0, %rax
206 ; AVX512BW-NEXT: addq %rdx, %rax
207 ; AVX512BW-NEXT: retq
267 ; AVX512BW-LABEL: test_mask_x86_avx512_ucmp_b_512:
268 ; AVX512BW: ## BB#0:
269 ; AVX512BW-NEXT: kmovq %rdi, %k1
270 ; AVX512BW-NEXT: vpcmpequb %zmm1, %zmm0, %k0 {%k1}
271 ; AVX512BW-NEXT: kmovq %k0, %rax
272 ; AVX512BW-NEXT: vpcmpltub %zmm1, %zmm0, %k0 {%k1}
273 ; AVX512BW-NEXT: kmovq %k0, %rcx
274 ; AVX512BW-NEXT: addq %rax, %rcx
275 ; AVX512BW-NEXT: vpcmpleub %zmm1, %zmm0, %k0 {%k1}
276 ; AVX512BW-NEXT: kmovq %k0, %rax
277 ; AVX512BW-NEXT: addq %rcx, %rax
278 ; AVX512BW-NEXT: vpcmpunordub %zmm1, %zmm0, %k0 {%k1}
279 ; AVX512BW-NEXT: kmovq %k0, %rcx
280 ; AVX512BW-NEXT: addq %rax, %rcx
281 ; AVX512BW-NEXT: vpcmpnequb %zmm1, %zmm0, %k0 {%k1}
282 ; AVX512BW-NEXT: kmovq %k0, %rax
283 ; AVX512BW-NEXT: addq %rcx, %rax
284 ; AVX512BW-NEXT: vpcmpnltub %zmm1, %zmm0, %k0 {%k1}
285 ; AVX512BW-NEXT: kmovq %k0, %rcx
286 ; AVX512BW-NEXT: addq %rax, %rcx
287 ; AVX512BW-NEXT: vpcmpnleub %zmm1, %zmm0, %k0 {%k1}
288 ; AVX512BW-NEXT: kmovq %k0, %rdx
289 ; AVX512BW-NEXT: addq %rcx, %rdx
290 ; AVX512BW-NEXT: vpcmpordub %zmm1, %zmm0, %k0 {%k1}
291 ; AVX512BW-NEXT: kmovq %k0, %rax
292 ; AVX512BW-NEXT: addq %rdx, %rax
293 ; AVX512BW-NEXT: retq
358 ; AVX512BW-LABEL: test_cmp_w_512:
359 ; AVX512BW: ## BB#0:
360 ; AVX512BW-NEXT: vpcmpeqw %zmm1, %zmm0, %k0
361 ; AVX512BW-NEXT: kmovd %k0, %eax
362 ; AVX512BW-NEXT: vpcmpltw %zmm1, %zmm0, %k0
363 ; AVX512BW-NEXT: kmovd %k0, %ecx
364 ; AVX512BW-NEXT: addl %eax, %ecx
365 ; AVX512BW-NEXT: vpcmplew %zmm1, %zmm0, %k0
366 ; AVX512BW-NEXT: kmovd %k0, %eax
367 ; AVX512BW-NEXT: addl %ecx, %eax
368 ; AVX512BW-NEXT: vpcmpunordw %zmm1, %zmm0, %k0
369 ; AVX512BW-NEXT: kmovd %k0, %ecx
370 ; AVX512BW-NEXT: addl %eax, %ecx
371 ; AVX512BW-NEXT: vpcmpneqw %zmm1, %zmm0, %k0
372 ; AVX512BW-NEXT: kmovd %k0, %eax
373 ; AVX512BW-NEXT: addl %ecx, %eax
374 ; AVX512BW-NEXT: vpcmpnltw %zmm1, %zmm0, %k0
375 ; AVX512BW-NEXT: kmovd %k0, %ecx
376 ; AVX512BW-NEXT: addl %eax, %ecx
377 ; AVX512BW-NEXT: vpcmpnlew %zmm1, %zmm0, %k0
378 ; AVX512BW-NEXT: kmovd %k0, %edx
379 ; AVX512BW-NEXT: addl %ecx, %edx
380 ; AVX512BW-NEXT: vpcmpordw %zmm1, %zmm0, %k0
381 ; AVX512BW-NEXT: kmovd %k0, %eax
382 ; AVX512BW-NEXT: addl %edx, %eax
383 ; AVX512BW-NEXT: retq
430 ; AVX512BW-LABEL: test_mask_cmp_w_512:
431 ; AVX512BW: ## BB#0:
432 ; AVX512BW-NEXT: kmovd %edi, %k1
433 ; AVX512BW-NEXT: vpcmpeqw %zmm1, %zmm0, %k0 {%k1}
434 ; AVX512BW-NEXT: kmovd %k0, %eax
435 ; AVX512BW-NEXT: vpcmpltw %zmm1, %zmm0, %k0 {%k1}
436 ; AVX512BW-NEXT: kmovd %k0, %ecx
437 ; AVX512BW-NEXT: addl %eax, %ecx
438 ; AVX512BW-NEXT: vpcmplew %zmm1, %zmm0, %k0 {%k1}
439 ; AVX512BW-NEXT: kmovd %k0, %eax
440 ; AVX512BW-NEXT: addl %ecx, %eax
441 ; AVX512BW-NEXT: vpcmpunordw %zmm1, %zmm0, %k0 {%k1}
442 ; AVX512BW-NEXT: kmovd %k0, %ecx
443 ; AVX512BW-NEXT: addl %eax, %ecx
444 ; AVX512BW-NEXT: vpcmpneqw %zmm1, %zmm0, %k0 {%k1}
445 ; AVX512BW-NEXT: kmovd %k0, %eax
446 ; AVX512BW-NEXT: addl %ecx, %eax
447 ; AVX512BW-NEXT: vpcmpnltw %zmm1, %zmm0, %k0 {%k1}
448 ; AVX512BW-NEXT: kmovd %k0, %ecx
449 ; AVX512BW-NEXT: addl %eax, %ecx
450 ; AVX512BW-NEXT: vpcmpnlew %zmm1, %zmm0, %k0 {%k1}
451 ; AVX512BW-NEXT: kmovd %k0, %edx
452 ; AVX512BW-NEXT: addl %ecx, %edx
453 ; AVX512BW-NEXT: vpcmpordw %zmm1, %zmm0, %k0 {%k1}
454 ; AVX512BW-NEXT: kmovd %k0, %eax
455 ; AVX512BW-NEXT: addl %edx, %eax
456 ; AVX512BW-NEXT: retq
506 ; AVX512BW-LABEL: test_ucmp_w_512:
507 ; AVX512BW: ## BB#0:
508 ; AVX512BW-NEXT: vpcmpequw %zmm1, %zmm0, %k0
509 ; AVX512BW-NEXT: kmovd %k0, %eax
510 ; AVX512BW-NEXT: vpcmpltuw %zmm1, %zmm0, %k0
511 ; AVX512BW-NEXT: kmovd %k0, %ecx
512 ; AVX512BW-NEXT: addl %eax, %ecx
513 ; AVX512BW-NEXT: vpcmpleuw %zmm1, %zmm0, %k0
514 ; AVX512BW-NEXT: kmovd %k0, %eax
515 ; AVX512BW-NEXT: addl %ecx, %eax
516 ; AVX512BW-NEXT: vpcmpunorduw %zmm1, %zmm0, %k0
517 ; AVX512BW-NEXT: kmovd %k0, %ecx
518 ; AVX512BW-NEXT: addl %eax, %ecx
519 ; AVX512BW-NEXT: vpcmpnequw %zmm1, %zmm0, %k0
520 ; AVX512BW-NEXT: kmovd %k0, %eax
521 ; AVX512BW-NEXT: addl %ecx, %eax
522 ; AVX512BW-NEXT: vpcmpnltuw %zmm1, %zmm0, %k0
523 ; AVX512BW-NEXT: kmovd %k0, %ecx
524 ; AVX512BW-NEXT: addl %eax, %ecx
525 ; AVX512BW-NEXT: vpcmpnleuw %zmm1, %zmm0, %k0
526 ; AVX512BW-NEXT: kmovd %k0, %edx
527 ; AVX512BW-NEXT: addl %ecx, %edx
528 ; AVX512BW-NEXT: vpcmporduw %zmm1, %zmm0, %k0
529 ; AVX512BW-NEXT: kmovd %k0, %eax
530 ; AVX512BW-NEXT: addl %edx, %eax
531 ; AVX512BW-NEXT: retq
578 ; AVX512BW-LABEL: test_mask_ucmp_w_512:
579 ; AVX512BW: ## BB#0:
580 ; AVX512BW-NEXT: kmovd %edi, %k1
581 ; AVX512BW-NEXT: vpcmpequw %zmm1, %zmm0, %k0 {%k1}
582 ; AVX512BW-NEXT: kmovd %k0, %eax
583 ; AVX512BW-NEXT: vpcmpltuw %zmm1, %zmm0, %k0 {%k1}
584 ; AVX512BW-NEXT: kmovd %k0, %ecx
585 ; AVX512BW-NEXT: addl %eax, %ecx
586 ; AVX512BW-NEXT: vpcmpleuw %zmm1, %zmm0, %k0 {%k1}
587 ; AVX512BW-NEXT: kmovd %k0, %eax
588 ; AVX512BW-NEXT: addl %ecx, %eax
589 ; AVX512BW-NEXT: vpcmpunorduw %zmm1, %zmm0, %k0 {%k1}
590 ; AVX512BW-NEXT: kmovd %k0, %ecx
591 ; AVX512BW-NEXT: addl %eax, %ecx
592 ; AVX512BW-NEXT: vpcmpnequw %zmm1, %zmm0, %k0 {%k1}
593 ; AVX512BW-NEXT: kmovd %k0, %eax
594 ; AVX512BW-NEXT: addl %ecx, %eax
595 ; AVX512BW-NEXT: vpcmpnltuw %zmm1, %zmm0, %k0 {%k1}
596 ; AVX512BW-NEXT: kmovd %k0, %ecx
597 ; AVX512BW-NEXT: addl %eax, %ecx
598 ; AVX512BW-NEXT: vpcmpnleuw %zmm1, %zmm0, %k0 {%k1}
599 ; AVX512BW-NEXT: kmovd %k0, %edx
600 ; AVX512BW-NEXT: addl %ecx, %edx
601 ; AVX512BW-NEXT: vpcmporduw %zmm1, %zmm0, %k0 {%k1}
602 ; AVX512BW-NEXT: kmovd %k0, %eax
603 ; AVX512BW-NEXT: addl %edx, %eax
604 ; AVX512BW-NEXT: retq
654 ; AVX512BW-LABEL: test_mask_packs_epi32_rr_512:
655 ; AVX512BW: ## BB#0:
656 ; AVX512BW-NEXT: vpackssdw %zmm1, %zmm0, %zmm0
657 ; AVX512BW-NEXT: retq
668 ; AVX512BW-LABEL: test_mask_packs_epi32_rrk_512:
669 ; AVX512BW: ## BB#0:
670 ; AVX512BW-NEXT: kmovd %edi, %k1
671 ; AVX512BW-NEXT: vpackssdw %zmm1, %zmm0, %zmm2 {%k1}
672 ; AVX512BW-NEXT: vmovaps %zmm2, %zmm0
673 ; AVX512BW-NEXT: retq
686 ; AVX512BW-LABEL: test_mask_packs_epi32_rrkz_512:
687 ; AVX512BW: ## BB#0:
688 ; AVX512BW-NEXT: kmovd %edi, %k1
689 ; AVX512BW-NEXT: vpackssdw %zmm1, %zmm0, %zmm0 {%k1} {z}
690 ; AVX512BW-NEXT: retq
702 ; AVX512BW-LABEL: test_mask_packs_epi32_rm_512:
703 ; AVX512BW: ## BB#0:
704 ; AVX512BW-NEXT: vpackssdw (%rdi), %zmm0, %zmm0
705 ; AVX512BW-NEXT: retq
718 ; AVX512BW-LABEL: test_mask_packs_epi32_rmk_512:
719 ; AVX512BW: ## BB#0:
720 ; AVX512BW-NEXT: kmovd %esi, %k1
721 ; AVX512BW-NEXT: vpackssdw (%rdi), %zmm0, %zmm1 {%k1}
722 ; AVX512BW-NEXT: vmovaps %zmm1, %zmm0
723 ; AVX512BW-NEXT: retq
738 ; AVX512BW-LABEL: test_mask_packs_epi32_rmkz_512:
739 ; AVX512BW: ## BB#0:
740 ; AVX512BW-NEXT: kmovd %esi, %k1
741 ; AVX512BW-NEXT: vpackssdw (%rdi), %zmm0, %zmm0 {%k1} {z}
742 ; AVX512BW-NEXT: retq
756 ; AVX512BW-LABEL: test_mask_packs_epi32_rmb_512:
757 ; AVX512BW: ## BB#0:
758 ; AVX512BW-NEXT: vpackssdw (%rdi){1to16}, %zmm0, %zmm0
759 ; AVX512BW-NEXT: retq
774 ; AVX512BW-LABEL: test_mask_packs_epi32_rmbk_512:
775 ; AVX512BW: ## BB#0:
776 ; AVX512BW-NEXT: kmovd %esi, %k1
777 ; AVX512BW-NEXT: vpackssdw (%rdi){1to16}, %zmm0, %zmm1 {%k1}
778 ; AVX512BW-NEXT: vmovaps %zmm1, %zmm0
779 ; AVX512BW-NEXT: retq
796 ; AVX512BW-LABEL: test_mask_packs_epi32_rmbkz_512:
797 ; AVX512BW: ## BB#0:
798 ; AVX512BW-NEXT: kmovd %esi, %k1
799 ; AVX512BW-NEXT: vpackssdw (%rdi){1to16}, %zmm0, %zmm0 {%k1} {z}
800 ; AVX512BW-NEXT: retq
818 ; AVX512BW-LABEL: test_mask_packs_epi16_rr_512:
819 ; AVX512BW: ## BB#0:
820 ; AVX512BW-NEXT: vpacksswb %zmm1, %zmm0, %zmm0
821 ; AVX512BW-NEXT: retq
832 ; AVX512BW-LABEL: test_mask_packs_epi16_rrk_512:
833 ; AVX512BW: ## BB#0:
834 ; AVX512BW-NEXT: kmovq %rdi, %k1
835 ; AVX512BW-NEXT: vpacksswb %zmm1, %zmm0, %zmm2 {%k1}
836 ; AVX512BW-NEXT: vmovaps %zmm2, %zmm0
837 ; AVX512BW-NEXT: retq
852 ; AVX512BW-LABEL: test_mask_packs_epi16_rrkz_512:
853 ; AVX512BW: ## BB#0:
854 ; AVX512BW-NEXT: kmovq %rdi, %k1
855 ; AVX512BW-NEXT: vpacksswb %zmm1, %zmm0, %zmm0 {%k1} {z}
856 ; AVX512BW-NEXT: retq
870 ; AVX512BW-LABEL: test_mask_packs_epi16_rm_512:
871 ; AVX512BW: ## BB#0:
872 ; AVX512BW-NEXT: vpacksswb (%rdi), %zmm0, %zmm0
873 ; AVX512BW-NEXT: retq
886 ; AVX512BW-LABEL: test_mask_packs_epi16_rmk_512:
887 ; AVX512BW: ## BB#0:
888 ; AVX512BW-NEXT: kmovq %rsi, %k1
889 ; AVX512BW-NEXT: vpacksswb (%rdi), %zmm0, %zmm1 {%k1}
890 ; AVX512BW-NEXT: vmovaps %zmm1, %zmm0
891 ; AVX512BW-NEXT: retq
908 ; AVX512BW-LABEL: test_mask_packs_epi16_rmkz_512:
909 ; AVX512BW: ## BB#0:
910 ; AVX512BW-NEXT: kmovq %rsi, %k1
911 ; AVX512BW-NEXT: vpacksswb (%rdi), %zmm0, %zmm0 {%k1} {z}
912 ; AVX512BW-NEXT: retq
931 ; AVX512BW-LABEL: test_mask_packus_epi32_rr_512:
932 ; AVX512BW: ## BB#0:
933 ; AVX512BW-NEXT: vpackusdw %zmm1, %zmm0, %zmm0
934 ; AVX512BW-NEXT: retq
945 ; AVX512BW-LABEL: test_mask_packus_epi32_rrk_512:
946 ; AVX512BW: ## BB#0:
947 ; AVX512BW-NEXT: kmovd %edi, %k1
948 ; AVX512BW-NEXT: vpackusdw %zmm1, %zmm0, %zmm2 {%k1}
949 ; AVX512BW-NEXT: vmovaps %zmm2, %zmm0
950 ; AVX512BW-NEXT: retq
963 ; AVX512BW-LABEL: test_mask_packus_epi32_rrkz_512:
964 ; AVX512BW: ## BB#0:
965 ; AVX512BW-NEXT: kmovd %edi, %k1
966 ; AVX512BW-NEXT: vpackusdw %zmm1, %zmm0, %zmm0 {%k1} {z}
967 ; AVX512BW-NEXT: retq
979 ; AVX512BW-LABEL: test_mask_packus_epi32_rm_512:
980 ; AVX512BW: ## BB#0:
981 ; AVX512BW-NEXT: vpackusdw (%rdi), %zmm0, %zmm0
982 ; AVX512BW-NEXT: retq
995 ; AVX512BW-LABEL: test_mask_packus_epi32_rmk_512:
996 ; AVX512BW: ## BB#0:
997 ; AVX512BW-NEXT: kmovd %esi, %k1
998 ; AVX512BW-NEXT: vpackusdw (%rdi), %zmm0, %zmm1 {%k1}
999 ; AVX512BW-NEXT: vmovaps %zmm1, %zmm0
1000 ; AVX512BW-NEXT: retq
1015 ; AVX512BW-LABEL: test_mask_packus_epi32_rmkz_512:
1016 ; AVX512BW: ## BB#0:
1017 ; AVX512BW-NEXT: kmovd %esi, %k1
1018 ; AVX512BW-NEXT: vpackusdw (%rdi), %zmm0, %zmm0 {%k1} {z}
1019 ; AVX512BW-NEXT: retq
1033 ; AVX512BW-LABEL: test_mask_packus_epi32_rmb_512:
1034 ; AVX512BW: ## BB#0:
1035 ; AVX512BW-NEXT: vpackusdw (%rdi){1to16}, %zmm0, %zmm0
1036 ; AVX512BW-NEXT: retq
1051 ; AVX512BW-LABEL: test_mask_packus_epi32_rmbk_512:
1052 ; AVX512BW: ## BB#0:
1053 ; AVX512BW-NEXT: kmovd %esi, %k1
1054 ; AVX512BW-NEXT: vpackusdw (%rdi){1to16}, %zmm0, %zmm1 {%k1}
1055 ; AVX512BW-NEXT: vmovaps %zmm1, %zmm0
1056 ; AVX512BW-NEXT: retq
1073 ; AVX512BW-LABEL: test_mask_packus_epi32_rmbkz_512:
1074 ; AVX512BW: ## BB#0:
1075 ; AVX512BW-NEXT: kmovd %esi, %k1
1076 ; AVX512BW-NEXT: vpackusdw (%rdi){1to16}, %zmm0, %zmm0 {%k1} {z}
1077 ; AVX512BW-NEXT: retq
1095 ; AVX512BW-LABEL: test_mask_packus_epi16_rr_512:
1096 ; AVX512BW: ## BB#0:
1097 ; AVX512BW-NEXT: vpackuswb %zmm1, %zmm0, %zmm0
1098 ; AVX512BW-NEXT: retq
1109 ; AVX512BW-LABEL: test_mask_packus_epi16_rrk_512:
1110 ; AVX512BW: ## BB#0:
1111 ; AVX512BW-NEXT: kmovq %rdi, %k1
1112 ; AVX512BW-NEXT: vpackuswb %zmm1, %zmm0, %zmm2 {%k1}
1113 ; AVX512BW-NEXT: vmovaps %zmm2, %zmm0
1114 ; AVX512BW-NEXT: retq
1129 ; AVX512BW-LABEL: test_mask_packus_epi16_rrkz_512:
1130 ; AVX512BW: ## BB#0:
1131 ; AVX512BW-NEXT: kmovq %rdi, %k1
1132 ; AVX512BW-NEXT: vpackuswb %zmm1, %zmm0, %zmm0 {%k1} {z}
1133 ; AVX512BW-NEXT: retq
1147 ; AVX512BW-LABEL: test_mask_packus_epi16_rm_512:
1148 ; AVX512BW: ## BB#0:
1149 ; AVX512BW-NEXT: vpackuswb (%rdi), %zmm0, %zmm0
1150 ; AVX512BW-NEXT: retq
1163 ; AVX512BW-LABEL: test_mask_packus_epi16_rmk_512:
1164 ; AVX512BW: ## BB#0:
1165 ; AVX512BW-NEXT: kmovq %rsi, %k1
1166 ; AVX512BW-NEXT: vpackuswb (%rdi), %zmm0, %zmm1 {%k1}
1167 ; AVX512BW-NEXT: vmovaps %zmm1, %zmm0
1168 ; AVX512BW-NEXT: retq
1185 ; AVX512BW-LABEL: test_mask_packus_epi16_rmkz_512:
1186 ; AVX512BW: ## BB#0:
1187 ; AVX512BW-NEXT: kmovq %rsi, %k1
1188 ; AVX512BW-NEXT: vpackuswb (%rdi), %zmm0, %zmm0 {%k1} {z}
1189 ; AVX512BW-NEXT: retq
1207 ; AVX512BW-LABEL: test_mask_adds_epi16_rr_512:
1208 ; AVX512BW: ## BB#0:
1209 ; AVX512BW-NEXT: vpaddsw %zmm1, %zmm0, %zmm0
1210 ; AVX512BW-NEXT: retq
1221 ; AVX512BW-LABEL: test_mask_adds_epi16_rrk_512:
1222 ; AVX512BW: ## BB#0:
1223 ; AVX512BW-NEXT: kmovd %edi, %k1
1224 ; AVX512BW-NEXT: vpaddsw %zmm1, %zmm0, %zmm2 {%k1}
1225 ; AVX512BW-NEXT: vmovaps %zmm2, %zmm0
1226 ; AVX512BW-NEXT: retq
1239 ; AVX512BW-LABEL: test_mask_adds_epi16_rrkz_512:
1240 ; AVX512BW: ## BB#0:
1241 ; AVX512BW-NEXT: kmovd %edi, %k1
1242 ; AVX512BW-NEXT: vpaddsw %zmm1, %zmm0, %zmm0 {%k1} {z}
1243 ; AVX512BW-NEXT: retq
1255 ; AVX512BW-LABEL: test_mask_adds_epi16_rm_512:
1256 ; AVX512BW: ## BB#0:
1257 ; AVX512BW-NEXT: vpaddsw (%rdi), %zmm0, %zmm0
1258 ; AVX512BW-NEXT: retq
1271 ; AVX512BW-LABEL: test_mask_adds_epi16_rmk_512:
1272 ; AVX512BW: ## BB#0:
1273 ; AVX512BW-NEXT: kmovd %esi, %k1
1274 ; AVX512BW-NEXT: vpaddsw (%rdi), %zmm0, %zmm1 {%k1}
1275 ; AVX512BW-NEXT: vmovaps %zmm1, %zmm0
1276 ; AVX512BW-NEXT: retq
1291 ; AVX512BW-LABEL: test_mask_adds_epi16_rmkz_512:
1292 ; AVX512BW: ## BB#0:
1293 ; AVX512BW-NEXT: kmovd %esi, %k1
1294 ; AVX512BW-NEXT: vpaddsw (%rdi), %zmm0, %zmm0 {%k1} {z}
1295 ; AVX512BW-NEXT: retq
1311 ; AVX512BW-LABEL: test_mask_subs_epi16_rr_512:
1312 ; AVX512BW: ## BB#0:
1313 ; AVX512BW-NEXT: vpsubsw %zmm1, %zmm0, %zmm0
1314 ; AVX512BW-NEXT: retq
1325 ; AVX512BW-LABEL: test_mask_subs_epi16_rrk_512:
1326 ; AVX512BW: ## BB#0:
1327 ; AVX512BW-NEXT: kmovd %edi, %k1
1328 ; AVX512BW-NEXT: vpsubsw %zmm1, %zmm0, %zmm2 {%k1}
1329 ; AVX512BW-NEXT: vmovaps %zmm2, %zmm0
1330 ; AVX512BW-NEXT: retq
1343 ; AVX512BW-LABEL: test_mask_subs_epi16_rrkz_512:
1344 ; AVX512BW: ## BB#0:
1345 ; AVX512BW-NEXT: kmovd %edi, %k1
1346 ; AVX512BW-NEXT: vpsubsw %zmm1, %zmm0, %zmm0 {%k1} {z}
1347 ; AVX512BW-NEXT: retq
1359 ; AVX512BW-LABEL: test_mask_subs_epi16_rm_512:
1360 ; AVX512BW: ## BB#0:
1361 ; AVX512BW-NEXT: vpsubsw (%rdi), %zmm0, %zmm0
1362 ; AVX512BW-NEXT: retq
1375 ; AVX512BW-LABEL: test_mask_subs_epi16_rmk_512:
1376 ; AVX512BW: ## BB#0:
1377 ; AVX512BW-NEXT: kmovd %esi, %k1
1378 ; AVX512BW-NEXT: vpsubsw (%rdi), %zmm0, %zmm1 {%k1}
1379 ; AVX512BW-NEXT: vmovaps %zmm1, %zmm0
1380 ; AVX512BW-NEXT: retq
1395 ; AVX512BW-LABEL: test_mask_subs_epi16_rmkz_512:
1396 ; AVX512BW: ## BB#0:
1397 ; AVX512BW-NEXT: kmovd %esi, %k1
1398 ; AVX512BW-NEXT: vpsubsw (%rdi), %zmm0, %zmm0 {%k1} {z}
1399 ; AVX512BW-NEXT: retq
1415 ; AVX512BW-LABEL: test_mask_adds_epu16_rr_512:
1416 ; AVX512BW: ## BB#0:
1417 ; AVX512BW-NEXT: vpaddusw %zmm1, %zmm0, %zmm0
1418 ; AVX512BW-NEXT: retq
1429 ; AVX512BW-LABEL: test_mask_adds_epu16_rrk_512:
1430 ; AVX512BW: ## BB#0:
1431 ; AVX512BW-NEXT: kmovd %edi, %k1
1432 ; AVX512BW-NEXT: vpaddusw %zmm1, %zmm0, %zmm2 {%k1}
1433 ; AVX512BW-NEXT: vmovaps %zmm2, %zmm0
1434 ; AVX512BW-NEXT: retq
1447 ; AVX512BW-LABEL: test_mask_adds_epu16_rrkz_512:
1448 ; AVX512BW: ## BB#0:
1449 ; AVX512BW-NEXT: kmovd %edi, %k1
1450 ; AVX512BW-NEXT: vpaddusw %zmm1, %zmm0, %zmm0 {%k1} {z}
1451 ; AVX512BW-NEXT: retq
1463 ; AVX512BW-LABEL: test_mask_adds_epu16_rm_512:
1464 ; AVX512BW: ## BB#0:
1465 ; AVX512BW-NEXT: vpaddusw (%rdi), %zmm0, %zmm0
1466 ; AVX512BW-NEXT: retq
1479 ; AVX512BW-LABEL: test_mask_adds_epu16_rmk_512:
1480 ; AVX512BW: ## BB#0:
1481 ; AVX512BW-NEXT: kmovd %esi, %k1
1482 ; AVX512BW-NEXT: vpaddusw (%rdi), %zmm0, %zmm1 {%k1}
1483 ; AVX512BW-NEXT: vmovaps %zmm1, %zmm0
1484 ; AVX512BW-NEXT: retq
1499 ; AVX512BW-LABEL: test_mask_adds_epu16_rmkz_512:
1500 ; AVX512BW: ## BB#0:
1501 ; AVX512BW-NEXT: kmovd %esi, %k1
1502 ; AVX512BW-NEXT: vpaddusw (%rdi), %zmm0, %zmm0 {%k1} {z}
1503 ; AVX512BW-NEXT: retq
1519 ; AVX512BW-LABEL: test_mask_subs_epu16_rr_512:
1520 ; AVX512BW: ## BB#0:
1521 ; AVX512BW-NEXT: vpsubusw %zmm1, %zmm0, %zmm0
1522 ; AVX512BW-NEXT: retq
1533 ; AVX512BW-LABEL: test_mask_subs_epu16_rrk_512:
1534 ; AVX512BW: ## BB#0:
1535 ; AVX512BW-NEXT: kmovd %edi, %k1
1536 ; AVX512BW-NEXT: vpsubusw %zmm1, %zmm0, %zmm2 {%k1}
1537 ; AVX512BW-NEXT: vmovaps %zmm2, %zmm0
1538 ; AVX512BW-NEXT: retq
1551 ; AVX512BW-LABEL: test_mask_subs_epu16_rrkz_512:
1552 ; AVX512BW: ## BB#0:
1553 ; AVX512BW-NEXT: kmovd %edi, %k1
1554 ; AVX512BW-NEXT: vpsubusw %zmm1, %zmm0, %zmm0 {%k1} {z}
1555 ; AVX512BW-NEXT: retq
1567 ; AVX512BW-LABEL: test_mask_subs_epu16_rm_512:
1568 ; AVX512BW: ## BB#0:
1569 ; AVX512BW-NEXT: vpsubusw (%rdi), %zmm0, %zmm0
1570 ; AVX512BW-NEXT: retq
1583 ; AVX512BW-LABEL: test_mask_subs_epu16_rmk_512:
1584 ; AVX512BW: ## BB#0:
1585 ; AVX512BW-NEXT: kmovd %esi, %k1
1586 ; AVX512BW-NEXT: vpsubusw (%rdi), %zmm0, %zmm1 {%k1}
1587 ; AVX512BW-NEXT: vmovaps %zmm1, %zmm0
1588 ; AVX512BW-NEXT: retq
1603 ; AVX512BW-LABEL: test_mask_subs_epu16_rmkz_512:
1604 ; AVX512BW: ## BB#0:
1605 ; AVX512BW-NEXT: kmovd %esi, %k1
1606 ; AVX512BW-NEXT: vpsubusw (%rdi), %zmm0, %zmm0 {%k1} {z}
1607 ; AVX512BW-NEXT: retq
1625 ; AVX512BW-LABEL: test_int_x86_avx512_mask_pmaxs_b_512:
1626 ; AVX512BW: ## BB#0:
1627 ; AVX512BW-NEXT: kmovq %rdi, %k1
1628 ; AVX512BW-NEXT: vpmaxsb %zmm1, %zmm0, %zmm2 {%k1}
1629 ; AVX512BW-NEXT: vpmaxsb %zmm1, %zmm0, %zmm0
1630 ; AVX512BW-NEXT: vpaddb %zmm0, %zmm2, %zmm0
1631 ; AVX512BW-NEXT: retq
1651 ; AVX512BW-LABEL: test_int_x86_avx512_mask_pmaxs_w_512:
1652 ; AVX512BW: ## BB#0:
1653 ; AVX512BW-NEXT: kmovd %edi, %k1
1654 ; AVX512BW-NEXT: vpmaxsw %zmm1, %zmm0, %zmm2 {%k1}
1655 ; AVX512BW-NEXT: vpmaxsw %zmm1, %zmm0, %zmm0
1656 ; AVX512BW-NEXT: vpaddw %zmm0, %zmm2, %zmm0
1657 ; AVX512BW-NEXT: retq
1675 ; AVX512BW-LABEL: test_int_x86_avx512_mask_pmaxu_b_512:
1676 ; AVX512BW: ## BB#0:
1677 ; AVX512BW-NEXT: kmovq %rdi, %k1
1678 ; AVX512BW-NEXT: vpmaxub %zmm1, %zmm0, %zmm2 {%k1}
1679 ; AVX512BW-NEXT: vpmaxub %zmm1, %zmm0, %zmm0
1680 ; AVX512BW-NEXT: vpaddb %zmm0, %zmm2, %zmm0
1681 ; AVX512BW-NEXT: retq
1701 ; AVX512BW-LABEL: test_int_x86_avx512_mask_pmaxu_w_512:
1702 ; AVX512BW: ## BB#0:
1703 ; AVX512BW-NEXT: kmovd %edi, %k1
1704 ; AVX512BW-NEXT: vpmaxuw %zmm1, %zmm0, %zmm2 {%k1}
1705 ; AVX512BW-NEXT: vpmaxuw %zmm1, %zmm0, %zmm0
1706 ; AVX512BW-NEXT: vpaddw %zmm0, %zmm2, %zmm0
1707 ; AVX512BW-NEXT: retq
1725 ; AVX512BW-LABEL: test_int_x86_avx512_mask_pmins_b_512:
1726 ; AVX512BW: ## BB#0:
1727 ; AVX512BW-NEXT: kmovq %rdi, %k1
1728 ; AVX512BW-NEXT: vpminsb %zmm1, %zmm0, %zmm2 {%k1}
1729 ; AVX512BW-NEXT: vpminsb %zmm1, %zmm0, %zmm0
1730 ; AVX512BW-NEXT: vpaddb %zmm0, %zmm2, %zmm0
1731 ; AVX512BW-NEXT: retq
1751 ; AVX512BW-LABEL: test_int_x86_avx512_mask_pmins_w_512:
1752 ; AVX512BW: ## BB#0:
1753 ; AVX512BW-NEXT: kmovd %edi, %k1
1754 ; AVX512BW-NEXT: vpminsw %zmm1, %zmm0, %zmm2 {%k1}
1755 ; AVX512BW-NEXT: vpminsw %zmm1, %zmm0, %zmm0
1756 ; AVX512BW-NEXT: vpaddw %zmm0, %zmm2, %zmm0
1757 ; AVX512BW-NEXT: retq
1775 ; AVX512BW-LABEL: test_int_x86_avx512_mask_pminu_b_512:
1776 ; AVX512BW: ## BB#0:
1777 ; AVX512BW-NEXT: kmovq %rdi, %k1
1778 ; AVX512BW-NEXT: vpminub %zmm1, %zmm0, %zmm2 {%k1}
1779 ; AVX512BW-NEXT: vpminub %zmm1, %zmm0, %zmm0
1780 ; AVX512BW-NEXT: vpaddb %zmm0, %zmm2, %zmm0
1781 ; AVX512BW-NEXT: retq
1801 ; AVX512BW-LABEL: test_int_x86_avx512_mask_pminu_w_512:
1802 ; AVX512BW: ## BB#0:
1803 ; AVX512BW-NEXT: kmovd %edi, %k1
1804 ; AVX512BW-NEXT: vpminuw %zmm1, %zmm0, %zmm2 {%k1}
1805 ; AVX512BW-NEXT: vpminuw %zmm1, %zmm0, %zmm0
1806 ; AVX512BW-NEXT: vpaddw %zmm0, %zmm2, %zmm0
1807 ; AVX512BW-NEXT: retq
1825 ; AVX512BW-LABEL: test_int_x86_avx512_mask_vpermt2var_hi_512:
1826 ; AVX512BW: ## BB#0:
1827 ; AVX512BW-NEXT: kmovd %edi, %k1
1828 ; AVX512BW-NEXT: vmovaps %zmm1, %zmm3
1829 ; AVX512BW-NEXT: vpermt2w %zmm2, %zmm0, %zmm3 {%k1}
1830 ; AVX512BW-NEXT: vpermt2w %zmm2, %zmm0, %zmm1
1831 ; AVX512BW-NEXT: vpaddw %zmm1, %zmm3, %zmm0
1832 ; AVX512BW-NEXT: retq
1851 ; AVX512BW-LABEL: test_int_x86_avx512_maskz_vpermt2var_hi_512:
1852 ; AVX512BW: ## BB#0:
1853 ; AVX512BW-NEXT: kmovd %edi, %k1
1854 ; AVX512BW-NEXT: vmovaps %zmm1, %zmm3
1855 ; AVX512BW-NEXT: vpermt2w %zmm2, %zmm0, %zmm3 {%k1} {z}
1856 ; AVX512BW-NEXT: vpermt2w %zmm2, %zmm0, %zmm1
1857 ; AVX512BW-NEXT: vpaddw %zmm1, %zmm3, %zmm0
1858 ; AVX512BW-NEXT: retq
1877 ; AVX512BW-LABEL: test_int_x86_avx512_mask_vpermi2var_hi_512:
1878 ; AVX512BW: ## BB#0:
1879 ; AVX512BW-NEXT: kmovd %edi, %k1
1880 ; AVX512BW-NEXT: vmovaps %zmm1, %zmm3
1881 ; AVX512BW-NEXT: vpermi2w %zmm2, %zmm0, %zmm3 {%k1}
1882 ; AVX512BW-NEXT: vpermi2w %zmm2, %zmm0, %zmm1
1883 ; AVX512BW-NEXT: vpaddw %zmm1, %zmm3, %zmm0
1884 ; AVX512BW-NEXT: retq
1903 ; AVX512BW-LABEL: test_int_x86_avx512_mask_pavg_b_512:
1904 ; AVX512BW: ## BB#0:
1905 ; AVX512BW-NEXT: kmovq %rdi, %k1
1906 ; AVX512BW-NEXT: vpavgb %zmm1, %zmm0, %zmm2 {%k1}
1907 ; AVX512BW-NEXT: vpavgb %zmm1, %zmm0, %zmm0
1908 ; AVX512BW-NEXT: vpaddb %zmm0, %zmm2, %zmm0
1909 ; AVX512BW-NEXT: retq
1929 ; AVX512BW-LABEL: test_int_x86_avx512_mask_pavg_w_512:
1930 ; AVX512BW: ## BB#0:
1931 ; AVX512BW-NEXT: kmovd %edi, %k1
1932 ; AVX512BW-NEXT: vpavgw %zmm1, %zmm0, %zmm2 {%k1}
1933 ; AVX512BW-NEXT: vpavgw %zmm1, %zmm0, %zmm0
1934 ; AVX512BW-NEXT: vpaddw %zmm0, %zmm2, %zmm0
1935 ; AVX512BW-NEXT: retq
1953 ; AVX512BW-LABEL: test_int_x86_avx512_mask_pshuf_b_512:
1954 ; AVX512BW: ## BB#0:
1955 ; AVX512BW-NEXT: kmovq %rdi, %k1
1956 ; AVX512BW-NEXT: vpshufb %zmm1, %zmm0, %zmm2 {%k1}
1957 ; AVX512BW-NEXT: vpshufb %zmm1, %zmm0, %zmm0
1958 ; AVX512BW-NEXT: vpaddb %zmm0, %zmm2, %zmm0
1959 ; AVX512BW-NEXT: retq
1979 ; AVX512BW-LABEL: test_int_x86_avx512_mask_pabs_w_512:
1980 ; AVX512BW: ## BB#0:
1981 ; AVX512BW-NEXT: kmovd %edi, %k1
1982 ; AVX512BW-NEXT: vpabsw %zmm0, %zmm1 {%k1}
1983 ; AVX512BW-NEXT: vpabsw %zmm0, %zmm0
1984 ; AVX512BW-NEXT: vpaddw %zmm0, %zmm1, %zmm0
1985 ; AVX512BW-NEXT: retq
2003 ; AVX512BW-LABEL: test_int_x86_avx512_mask_pabs_b_512:
2004 ; AVX512BW: ## BB#0:
2005 ; AVX512BW-NEXT: kmovq %rdi, %k1
2006 ; AVX512BW-NEXT: vpabsb %zmm0, %zmm1 {%k1}
2007 ; AVX512BW-NEXT: vpabsb %zmm0, %zmm0
2008 ; AVX512BW-NEXT: vpaddb %zmm0, %zmm1, %zmm0
2009 ; AVX512BW-NEXT: retq
2029 ; AVX512BW-LABEL: test_int_x86_avx512_mask_pmulhu_w_512:
2030 ; AVX512BW: ## BB#0:
2031 ; AVX512BW-NEXT: kmovd %edi, %k1
2032 ; AVX512BW-NEXT: vpmulhuw %zmm1, %zmm0, %zmm2 {%k1}
2033 ; AVX512BW-NEXT: vpmulhuw %zmm1, %zmm0, %zmm0
2034 ; AVX512BW-NEXT: vpaddw %zmm0, %zmm2, %zmm0
2035 ; AVX512BW-NEXT: retq
2053 ; AVX512BW-LABEL: test_int_x86_avx512_mask_pmulh_w_512:
2054 ; AVX512BW: ## BB#0:
2055 ; AVX512BW-NEXT: kmovd %edi, %k1
2056 ; AVX512BW-NEXT: vpmulhw %zmm1, %zmm0, %zmm2 {%k1}
2057 ; AVX512BW-NEXT: vpmulhw %zmm1, %zmm0, %zmm0
2058 ; AVX512BW-NEXT: vpaddw %zmm0, %zmm2, %zmm0
2059 ; AVX512BW-NEXT: retq
2077 ; AVX512BW-LABEL: test_int_x86_avx512_mask_pmulhr_sw_512:
2078 ; AVX512BW: ## BB#0:
2079 ; AVX512BW-NEXT: kmovd %edi, %k1
2080 ; AVX512BW-NEXT: vpmulhrsw %zmm1, %zmm0, %zmm2 {%k1}
2081 ; AVX512BW-NEXT: vpmulhrsw %zmm1, %zmm0, %zmm0
2082 ; AVX512BW-NEXT: vpaddw %zmm0, %zmm2, %zmm0
2083 ; AVX512BW-NEXT: retq
2101 ; AVX512BW-LABEL: test_int_x86_avx512_mask_pmov_wb_512:
2102 ; AVX512BW: ## BB#0:
2103 ; AVX512BW-NEXT: kmovd %edi, %k1
2104 ; AVX512BW-NEXT: vpmovwb %zmm0, %ymm1 {%k1}
2105 ; AVX512BW-NEXT: vpmovwb %zmm0, %ymm2 {%k1} {z}
2106 ; AVX512BW-NEXT: vpmovwb %zmm0, %ymm0
2107 ; AVX512BW-NEXT: vpaddb %ymm1, %ymm0, %ymm0
2108 ; AVX512BW-NEXT: vpaddb %ymm2, %ymm0, %ymm0
2109 ; AVX512BW-NEXT: retq
2131 ; AVX512BW-LABEL: test_int_x86_avx512_mask_pmov_wb_mem_512:
2132 ; AVX512BW: ## BB#0:
2133 ; AVX512BW-NEXT: kmovd %esi, %k1
2134 ; AVX512BW-NEXT: vpmovwb %zmm0, (%rdi)
2135 ; AVX512BW-NEXT: vpmovwb %zmm0, (%rdi) {%k1}
2136 ; AVX512BW-NEXT: retq
2153 ; AVX512BW-LABEL: test_int_x86_avx512_mask_pmovs_wb_512:
2154 ; AVX512BW: ## BB#0:
2155 ; AVX512BW-NEXT: kmovd %edi, %k1
2156 ; AVX512BW-NEXT: vpmovswb %zmm0, %ymm1 {%k1}
2157 ; AVX512BW-NEXT: vpmovswb %zmm0, %ymm2 {%k1} {z}
2158 ; AVX512BW-NEXT: vpmovswb %zmm0, %ymm0
2159 ; AVX512BW-NEXT: vpaddb %ymm1, %ymm0, %ymm0
2160 ; AVX512BW-NEXT: vpaddb %ymm2, %ymm0, %ymm0
2161 ; AVX512BW-NEXT: retq
2183 ; AVX512BW-LABEL: test_int_x86_avx512_mask_pmovs_wb_mem_512:
2184 ; AVX512BW: ## BB#0:
2185 ; AVX512BW-NEXT: vpmovswb %zmm0, (%rdi)
2186 ; AVX512BW-NEXT: kmovd %esi, %k1
2187 ; AVX512BW-NEXT: vpmovswb %zmm0, (%rdi) {%k1}
2188 ; AVX512BW-NEXT: retq
2206 ; AVX512BW-LABEL: test_int_x86_avx512_mask_pmovus_wb_512:
2207 ; AVX512BW: ## BB#0:
2208 ; AVX512BW-NEXT: kmovd %edi, %k1
2209 ; AVX512BW-NEXT: vpmovuswb %zmm0, %ymm1 {%k1}
2210 ; AVX512BW-NEXT: vpmovuswb %zmm0, %ymm2 {%k1} {z}
2211 ; AVX512BW-NEXT: vpmovuswb %zmm0, %ymm0
2212 ; AVX512BW-NEXT: vpaddb %ymm1, %ymm0, %ymm0
2213 ; AVX512BW-NEXT: vpaddb %ymm2, %ymm0, %ymm0
2214 ; AVX512BW-NEXT: retq
2236 ; AVX512BW-LABEL: test_int_x86_avx512_mask_pmovus_wb_mem_512:
2237 ; AVX512BW: ## BB#0:
2238 ; AVX512BW-NEXT: vpmovuswb %zmm0, (%rdi)
2239 ; AVX512BW-NEXT: kmovd %esi, %k1
2240 ; AVX512BW-NEXT: vpmovuswb %zmm0, (%rdi) {%k1}
2241 ; AVX512BW-NEXT: retq
2259 ; AVX512BW-LABEL: test_int_x86_avx512_mask_pmaddubs_w_512:
2260 ; AVX512BW: ## BB#0:
2261 ; AVX512BW-NEXT: kmovd %edi, %k1
2262 ; AVX512BW-NEXT: vpmaddubsw %zmm1, %zmm0, %zmm2 {%k1}
2263 ; AVX512BW-NEXT: vpmaddubsw %zmm1, %zmm0, %zmm0
2264 ; AVX512BW-NEXT: vpaddw %zmm0, %zmm2, %zmm0
2265 ; AVX512BW-NEXT: retq
2283 ; AVX512BW-LABEL: test_int_x86_avx512_mask_pmaddw_d_512:
2284 ; AVX512BW: ## BB#0:
2285 ; AVX512BW-NEXT: kmovw %edi, %k1
2286 ; AVX512BW-NEXT: vpmaddwd %zmm1, %zmm0, %zmm2 {%k1}
2287 ; AVX512BW-NEXT: vpmaddwd %zmm1, %zmm0, %zmm0
2288 ; AVX512BW-NEXT: vpaddd %zmm0, %zmm2, %zmm0
2289 ; AVX512BW-NEXT: retq
2307 ; AVX512BW-LABEL: test_int_x86_avx512_mask_dbpsadbw_512:
2308 ; AVX512BW: ## BB#0:
2309 ; AVX512BW-NEXT: kmovd %edi, %k1
2310 ; AVX512BW-NEXT: vdbpsadbw $2, %zmm1, %zmm0, %zmm2 {%k1}
2311 ; AVX512BW-NEXT: vdbpsadbw $2, %zmm1, %zmm0, %zmm3 {%k1} {z}
2312 ; AVX512BW-NEXT: vdbpsadbw $2, %zmm1, %zmm0, %zmm0
2313 ; AVX512BW-NEXT: vpaddw %zmm3, %zmm2, %zmm1
2314 ; AVX512BW-NEXT: vpaddw %zmm0, %zmm1, %zmm0
2315 ; AVX512BW-NEXT: retq
2337 ; AVX512BW-LABEL: test_int_x86_avx512_mask_psadb_w_512:
2338 ; AVX512BW: ## BB#0:
2339 ; AVX512BW-NEXT: vpsadbw %zmm1, %zmm0, %zmm1
2340 ; AVX512BW-NEXT: vpsadbw %zmm2, %zmm0, %zmm0
2341 ; AVX512BW-NEXT: vpaddq %zmm0, %zmm1, %zmm0
2342 ; AVX512BW-NEXT: retq
2359 ; AVX512BW-LABEL: test_int_x86_avx512_kunpck_wd:
2360 ; AVX512BW: ## BB#0:
2361 ; AVX512BW-NEXT: kmovd %edi, %k0
2362 ; AVX512BW-NEXT: kmovd %esi, %k1
2363 ; AVX512BW-NEXT: kunpckwd %k1, %k0, %k0
2364 ; AVX512BW-NEXT: kmovd %k0, %eax
2365 ; AVX512BW-NEXT: retq
2381 ; AVX512BW-LABEL: test_int_x86_avx512_kunpck_qd:
2382 ; AVX512BW: ## BB#0:
2383 ; AVX512BW-NEXT: kmovq %rdi, %k0
2384 ; AVX512BW-NEXT: kmovq %rsi, %k1
2385 ; AVX512BW-NEXT: kunpckdq %k1, %k0, %k0
2386 ; AVX512BW-NEXT: kmovq %k0, %rax
2387 ; AVX512BW-NEXT: retq
2409 ; AVX512BW-LABEL: test_int_x86_avx512_cvtb2mask_512:
2410 ; AVX512BW: ## BB#0:
2411 ; AVX512BW-NEXT: vpmovb2m %zmm0, %k0
2412 ; AVX512BW-NEXT: kmovq %k0, %rax
2413 ; AVX512BW-NEXT: retq
2433 ; AVX512BW-LABEL: test_int_x86_avx512_cvtw2mask_512:
2434 ; AVX512BW: ## BB#0:
2435 ; AVX512BW-NEXT: vpmovw2m %zmm0, %k0
2436 ; AVX512BW-NEXT: kmovd %k0, %eax
2437 ; AVX512BW-NEXT: retq
2451 ; AVX512BW-LABEL: test_int_x86_avx512_cvtmask2b_512:
2452 ; AVX512BW: ## BB#0:
2453 ; AVX512BW-NEXT: kmovq %rdi, %k0
2454 ; AVX512BW-NEXT: vpmovm2b %k0, %zmm0
2455 ; AVX512BW-NEXT: retq
2471 ; AVX512BW-LABEL: test_int_x86_avx512_cvtmask2w_512:
2472 ; AVX512BW: ## BB#0:
2473 ; AVX512BW-NEXT: kmovd %edi, %k0
2474 ; AVX512BW-NEXT: vpmovm2w %k0, %zmm0
2475 ; AVX512BW-NEXT: retq
2489 ; AVX512BW-LABEL: test_int_x86_avx512_mask_psrl_w_512:
2490 ; AVX512BW: ## BB#0:
2491 ; AVX512BW-NEXT: kmovd %edi, %k1
2492 ; AVX512BW-NEXT: vpsrlw %xmm1, %zmm0, %zmm2 {%k1}
2493 ; AVX512BW-NEXT: vpsrlw %xmm1, %zmm0, %zmm3 {%k1} {z}
2494 ; AVX512BW-NEXT: vpsrlw %xmm1, %zmm0, %zmm0
2495 ; AVX512BW-NEXT: vpaddw %zmm0, %zmm2, %zmm0
2496 ; AVX512BW-NEXT: vpaddw %zmm3, %zmm0, %zmm0
2497 ; AVX512BW-NEXT: retq
2519 ; AVX512BW-LABEL: test_int_x86_avx512_mask_psrl_wi_512:
2520 ; AVX512BW: ## BB#0:
2521 ; AVX512BW-NEXT: kmovd %esi, %k1
2522 ; AVX512BW-NEXT: vpsrlw $3, %zmm0, %zmm1 {%k1}
2523 ; AVX512BW-NEXT: vpsrlw $3, %zmm0, %zmm2 {%k1} {z}
2524 ; AVX512BW-NEXT: vpsrlw $3, %zmm0, %zmm0
2525 ; AVX512BW-NEXT: vpaddw %zmm0, %zmm1, %zmm0
2526 ; AVX512BW-NEXT: vpaddw %zmm2, %zmm0, %zmm0
2527 ; AVX512BW-NEXT: retq
2549 ; AVX512BW-LABEL: test_int_x86_avx512_mask_psrlv32hi:
2550 ; AVX512BW: ## BB#0:
2551 ; AVX512BW-NEXT: kmovd %edi, %k1
2552 ; AVX512BW-NEXT: vpsrlvw %zmm1, %zmm0, %zmm2 {%k1}
2553 ; AVX512BW-NEXT: vpsrlvw %zmm1, %zmm0, %zmm3 {%k1} {z}
2554 ; AVX512BW-NEXT: vpsrlvw %zmm1, %zmm0, %zmm0
2555 ; AVX512BW-NEXT: vpaddw %zmm3, %zmm2, %zmm1
2556 ; AVX512BW-NEXT: vpaddw %zmm0, %zmm1, %zmm0
2557 ; AVX512BW-NEXT: retq
2579 ; AVX512BW-LABEL: test_int_x86_avx512_mask_psra_w_512:
2580 ; AVX512BW: ## BB#0:
2581 ; AVX512BW-NEXT: kmovd %edi, %k1
2582 ; AVX512BW-NEXT: vpsraw %xmm1, %zmm0, %zmm2 {%k1}
2583 ; AVX512BW-NEXT: vpsraw %xmm1, %zmm0, %zmm3 {%k1} {z}
2584 ; AVX512BW-NEXT: vpsraw %xmm1, %zmm0, %zmm0
2585 ; AVX512BW-NEXT: vpaddw %zmm3, %zmm2, %zmm1
2586 ; AVX512BW-NEXT: vpaddw %zmm0, %zmm1, %zmm0
2587 ; AVX512BW-NEXT: retq
2609 ; AVX512BW-LABEL: test_int_x86_avx512_mask_psra_wi_512:
2610 ; AVX512BW: ## BB#0:
2611 ; AVX512BW-NEXT: kmovd %esi, %k1
2612 ; AVX512BW-NEXT: vpsraw $3, %zmm0, %zmm1 {%k1}
2613 ; AVX512BW-NEXT: vpsraw $3, %zmm0, %zmm2 {%k1} {z}
2614 ; AVX512BW-NEXT: vpsraw $3, %zmm0, %zmm0
2615 ; AVX512BW-NEXT: vpaddw %zmm2, %zmm1, %zmm1
2616 ; AVX512BW-NEXT: vpaddw %zmm0, %zmm1, %zmm0
2617 ; AVX512BW-NEXT: retq
2639 ; AVX512BW-LABEL: test_int_x86_avx512_mask_psrav32_hi:
2640 ; AVX512BW: ## BB#0:
2641 ; AVX512BW-NEXT: kmovd %edi, %k1
2642 ; AVX512BW-NEXT: vpsravw %zmm1, %zmm0, %zmm2 {%k1}
2643 ; AVX512BW-NEXT: vpsravw %zmm1, %zmm0, %zmm3 {%k1} {z}
2644 ; AVX512BW-NEXT: vpsravw %zmm1, %zmm0, %zmm0
2645 ; AVX512BW-NEXT: vpaddw %zmm3, %zmm2, %zmm1
2646 ; AVX512BW-NEXT: vpaddw %zmm0, %zmm1, %zmm0
2647 ; AVX512BW-NEXT: retq
2667 ; AVX512BW-LABEL: test_int_x86_avx512_mask_psrav32_hi_const:
2668 ; AVX512BW: ## BB#0:
2669 ; AVX512BW-NEXT: vmovdqu16 {{.*#+}} zmm0 = [2,9,65524,23,65510,37,65496,51,2,9,65524,23,65510,37…
2670 ; AVX512BW-NEXT: vpsravw {{.*}}(%rip), %zmm0, %zmm0
2671 ; AVX512BW-NEXT: retq
2687 ; AVX512BW-LABEL: test_int_x86_avx512_mask_psll_w_512:
2688 ; AVX512BW: ## BB#0:
2689 ; AVX512BW-NEXT: kmovd %edi, %k1
2690 ; AVX512BW-NEXT: vpsllw %xmm1, %zmm0, %zmm2 {%k1}
2691 ; AVX512BW-NEXT: vpsllw %xmm1, %zmm0, %zmm3 {%k1} {z}
2692 ; AVX512BW-NEXT: vpsllw %xmm1, %zmm0, %zmm0
2693 ; AVX512BW-NEXT: vpaddw %zmm3, %zmm2, %zmm1
2694 ; AVX512BW-NEXT: vpaddw %zmm0, %zmm1, %zmm0
2695 ; AVX512BW-NEXT: retq
2717 ; AVX512BW-LABEL: test_int_x86_avx512_mask_psll_wi_512:
2718 ; AVX512BW: ## BB#0:
2719 ; AVX512BW-NEXT: kmovd %esi, %k1
2720 ; AVX512BW-NEXT: vpsllw $3, %zmm0, %zmm1 {%k1}
2721 ; AVX512BW-NEXT: vpsllw $3, %zmm0, %zmm2 {%k1} {z}
2722 ; AVX512BW-NEXT: vpsllw $3, %zmm0, %zmm0
2723 ; AVX512BW-NEXT: vpaddw %zmm2, %zmm1, %zmm1
2724 ; AVX512BW-NEXT: vpaddw %zmm0, %zmm1, %zmm0
2725 ; AVX512BW-NEXT: retq
2747 ; AVX512BW-LABEL: test_int_x86_avx512_mask_psllv32hi:
2748 ; AVX512BW: ## BB#0:
2749 ; AVX512BW-NEXT: kmovd %edi, %k1
2750 ; AVX512BW-NEXT: vpsllvw %zmm1, %zmm0, %zmm2 {%k1}
2751 ; AVX512BW-NEXT: vpsllvw %zmm1, %zmm0, %zmm3 {%k1} {z}
2752 ; AVX512BW-NEXT: vpsllvw %zmm1, %zmm0, %zmm0
2753 ; AVX512BW-NEXT: vpaddw %zmm3, %zmm2, %zmm1
2754 ; AVX512BW-NEXT: vpaddw %zmm0, %zmm1, %zmm0
2755 ; AVX512BW-NEXT: retq
2777 ; AVX512BW-LABEL: test_int_x86_avx512_mask_pmovzxb_w_512:
2778 ; AVX512BW: ## BB#0:
2779 ; AVX512BW-NEXT: kmovd %edi, %k1
2780 ; AVX512BW-NEXT: vpmovzxbw {{.*#+}} zmm1 {%k1} = ymm0[0],zero,ymm0[1],zero,ymm0[2],zero,ymm0[3],…
2781 ; AVX512BW-NEXT: vpmovzxbw {{.*#+}} zmm2 {%k1} {z} = ymm0[0],zero,ymm0[1],zero,ymm0[2],zero,ymm0…
2782 ; AVX512BW-NEXT: vpmovzxbw {{.*#+}} zmm0 = ymm0[0],zero,ymm0[1],zero,ymm0[2],zero,ymm0[3],zero,y…
2783 ; AVX512BW-NEXT: vpaddw %zmm2, %zmm1, %zmm1
2784 ; AVX512BW-NEXT: vpaddw %zmm0, %zmm1, %zmm0
2785 ; AVX512BW-NEXT: retq
2807 ; AVX512BW-LABEL: test_int_x86_avx512_mask_pmovsxb_w_512:
2808 ; AVX512BW: ## BB#0:
2809 ; AVX512BW-NEXT: kmovd %edi, %k1
2810 ; AVX512BW-NEXT: vpmovsxbw %ymm0, %zmm1 {%k1}
2811 ; AVX512BW-NEXT: vpmovsxbw %ymm0, %zmm2 {%k1} {z}
2812 ; AVX512BW-NEXT: vpmovsxbw %ymm0, %zmm0
2813 ; AVX512BW-NEXT: vpaddw %zmm2, %zmm1, %zmm1
2814 ; AVX512BW-NEXT: vpaddw %zmm0, %zmm1, %zmm0
2815 ; AVX512BW-NEXT: retq
2837 ; AVX512BW-LABEL: test_int_x86_avx512_mask_permvar_hi_512:
2838 ; AVX512BW: ## BB#0:
2839 ; AVX512BW-NEXT: kmovd %edi, %k1
2840 ; AVX512BW-NEXT: vpermw %zmm0, %zmm1, %zmm2 {%k1}
2841 ; AVX512BW-NEXT: vpermw %zmm0, %zmm1, %zmm3 {%k1} {z}
2842 ; AVX512BW-NEXT: vpermw %zmm0, %zmm1, %zmm0
2843 ; AVX512BW-NEXT: vpaddw %zmm3, %zmm2, %zmm1
2844 ; AVX512BW-NEXT: vpaddw %zmm0, %zmm1, %zmm0
2845 ; AVX512BW-NEXT: retq
2867 ; AVX512BW-LABEL: test_int_x86_avx512_ptestm_b_512:
2868 ; AVX512BW: ## BB#0:
2869 ; AVX512BW-NEXT: kmovq %rdi, %k1
2870 ; AVX512BW-NEXT: vptestmb %zmm1, %zmm0, %k0 {%k1}
2871 ; AVX512BW-NEXT: kmovq %k0, %rcx
2872 ; AVX512BW-NEXT: vptestmb %zmm1, %zmm0, %k0
2873 ; AVX512BW-NEXT: kmovq %k0, %rax
2874 ; AVX512BW-NEXT: addq %rcx, %rax
2875 ; AVX512BW-NEXT: retq
2904 ; AVX512BW-LABEL: test_int_x86_avx512_ptestm_w_512:
2905 ; AVX512BW: ## BB#0:
2906 ; AVX512BW-NEXT: kmovd %edi, %k1
2907 ; AVX512BW-NEXT: vptestmw %zmm1, %zmm0, %k0 {%k1}
2908 ; AVX512BW-NEXT: kmovd %k0, %ecx
2909 ; AVX512BW-NEXT: vptestmw %zmm1, %zmm0, %k0
2910 ; AVX512BW-NEXT: kmovd %k0, %eax
2911 ; AVX512BW-NEXT: addl %ecx, %eax
2912 ; AVX512BW-NEXT: retq
2932 ; AVX512BW-LABEL: test_int_x86_avx512_ptestnm_b_512:
2933 ; AVX512BW: ## BB#0:
2934 ; AVX512BW-NEXT: kmovq %rdi, %k1
2935 ; AVX512BW-NEXT: vptestnmb %zmm1, %zmm0, %k0 {%k1}
2936 ; AVX512BW-NEXT: kmovq %k0, %rcx
2937 ; AVX512BW-NEXT: vptestnmb %zmm1, %zmm0, %k0
2938 ; AVX512BW-NEXT: kmovq %k0, %rax
2939 ; AVX512BW-NEXT: addq %rcx, %rax
2940 ; AVX512BW-NEXT: retq
2969 ; AVX512BW-LABEL: test_int_x86_avx512_ptestnm_w_512:
2970 ; AVX512BW: ## BB#0:
2971 ; AVX512BW-NEXT: kmovd %edi, %k1
2972 ; AVX512BW-NEXT: vptestnmw %zmm1, %zmm0, %k0 {%k1}
2973 ; AVX512BW-NEXT: kmovd %k0, %ecx
2974 ; AVX512BW-NEXT: vptestnmw %zmm1, %zmm0, %k0
2975 ; AVX512BW-NEXT: kmovd %k0, %eax
2976 ; AVX512BW-NEXT: addl %ecx, %eax
2977 ; AVX512BW-NEXT: retq
2997 ; AVX512BW-LABEL: test_int_x86_avx512_mask_pbroadcast_b_gpr_512:
2998 ; AVX512BW: ## BB#0:
2999 ; AVX512BW-NEXT: kmovq %rsi, %k1
3000 ; AVX512BW-NEXT: vpbroadcastb %dil, %zmm0 {%k1}
3001 ; AVX512BW-NEXT: vpbroadcastb %dil, %zmm1 {%k1} {z}
3002 ; AVX512BW-NEXT: vpbroadcastb %dil, %zmm2
3003 ; AVX512BW-NEXT: vpaddb %zmm0, %zmm2, %zmm0
3004 ; AVX512BW-NEXT: vpaddb %zmm0, %zmm1, %zmm0
3005 ; AVX512BW-NEXT: retq
3030 ; AVX512BW-LABEL: test_int_x86_avx512_mask_pbroadcast_w_gpr_512:
3031 ; AVX512BW: ## BB#0:
3032 ; AVX512BW-NEXT: kmovd %esi, %k1
3033 ; AVX512BW-NEXT: vpbroadcastw %di, %zmm0 {%k1}
3034 ; AVX512BW-NEXT: vpbroadcastw %di, %zmm1 {%k1} {z}
3035 ; AVX512BW-NEXT: vpbroadcastw %di, %zmm2
3036 ; AVX512BW-NEXT: vpaddw %zmm0, %zmm2, %zmm0
3037 ; AVX512BW-NEXT: vpaddw %zmm0, %zmm1, %zmm0
3038 ; AVX512BW-NEXT: retq