• Home
  • Raw
  • Download

Lines Matching refs:AVX512F

4 …x86_64-apple-darwin -mattr=avx512f < %s | FileCheck %s --check-prefix=AVX512 --check-prefix=AVX512F
197 ; AVX512F-LABEL: test5:
198 ; AVX512F: ## BB#0:
199 ; AVX512F-NEXT: ## kill: %YMM0<def> %YMM0<kill> %ZMM0<def>
200 ; AVX512F-NEXT: vpxor %ymm2, %ymm2, %ymm2
201 ; AVX512F-NEXT: vpcmpeqd %zmm2, %zmm0, %k1
202 ; AVX512F-NEXT: vmovupd (%rdi), %zmm1 {%k1}
203 ; AVX512F-NEXT: vmovaps %zmm1, %zmm0
204 ; AVX512F-NEXT: retq
227 ; AVX512F-LABEL: test6:
228 ; AVX512F: ## BB#0:
229 ; AVX512F-NEXT: vpxor %xmm2, %xmm2, %xmm2
230 ; AVX512F-NEXT: vpcmpeqq %xmm2, %xmm0, %xmm0
231 ; AVX512F-NEXT: vmaskmovpd (%rdi), %xmm0, %xmm2
232 ; AVX512F-NEXT: vblendvpd %xmm0, %xmm2, %xmm1, %xmm0
233 ; AVX512F-NEXT: retq
256 ; AVX512F-LABEL: test7:
257 ; AVX512F: ## BB#0:
258 ; AVX512F-NEXT: vpxor %xmm2, %xmm2, %xmm2
259 ; AVX512F-NEXT: vpcmpeqd %xmm2, %xmm0, %xmm0
260 ; AVX512F-NEXT: vmaskmovps (%rdi), %xmm0, %xmm2
261 ; AVX512F-NEXT: vblendvps %xmm0, %xmm2, %xmm1, %xmm0
262 ; AVX512F-NEXT: retq
293 ; AVX512F-LABEL: test8:
294 ; AVX512F: ## BB#0:
295 ; AVX512F-NEXT: vpxor %xmm2, %xmm2, %xmm2
296 ; AVX512F-NEXT: vpcmpeqd %xmm2, %xmm0, %xmm0
297 ; AVX512F-NEXT: vpmaskmovd (%rdi), %xmm0, %xmm2
298 ; AVX512F-NEXT: vblendvps %xmm0, %xmm2, %xmm1, %xmm0
299 ; AVX512F-NEXT: retq
328 ; AVX512F-LABEL: test9:
329 ; AVX512F: ## BB#0:
330 ; AVX512F-NEXT: vpxor %xmm2, %xmm2, %xmm2
331 ; AVX512F-NEXT: vpcmpeqd %xmm2, %xmm0, %xmm0
332 ; AVX512F-NEXT: vpmaskmovd %xmm1, %xmm0, (%rdi)
333 ; AVX512F-NEXT: retq
368 ; AVX512F-LABEL: test10:
369 ; AVX512F: ## BB#0:
370 ; AVX512F-NEXT: vpxor %xmm2, %xmm2, %xmm2
371 ; AVX512F-NEXT: vpcmpeqd %xmm2, %xmm0, %xmm0
372 ; AVX512F-NEXT: vpmovsxdq %xmm0, %ymm0
373 ; AVX512F-NEXT: vmaskmovpd (%rdi), %ymm0, %ymm2
374 ; AVX512F-NEXT: vblendvpd %ymm0, %ymm2, %ymm1, %ymm0
375 ; AVX512F-NEXT: retq
409 ; AVX512F-LABEL: test10b:
410 ; AVX512F: ## BB#0:
411 ; AVX512F-NEXT: vpxor %xmm1, %xmm1, %xmm1
412 ; AVX512F-NEXT: vpcmpeqd %xmm1, %xmm0, %xmm0
413 ; AVX512F-NEXT: vpmovsxdq %xmm0, %ymm0
414 ; AVX512F-NEXT: vmaskmovpd (%rdi), %ymm0, %ymm0
415 ; AVX512F-NEXT: retq
448 ; AVX512F-LABEL: test11a:
449 ; AVX512F: ## BB#0:
450 ; AVX512F-NEXT: ## kill: %YMM1<def> %YMM1<kill> %ZMM1<def>
451 ; AVX512F-NEXT: ## kill: %YMM0<def> %YMM0<kill> %ZMM0<def>
452 ; AVX512F-NEXT: vpxor %ymm2, %ymm2, %ymm2
453 ; AVX512F-NEXT: vpcmpeqd %zmm2, %zmm0, %k0
454 ; AVX512F-NEXT: kshiftlw $8, %k0, %k0
455 ; AVX512F-NEXT: kshiftrw $8, %k0, %k1
456 ; AVX512F-NEXT: vmovups (%rdi), %zmm1 {%k1}
457 ; AVX512F-NEXT: vmovaps %zmm1, %zmm0
458 ; AVX512F-NEXT: retq
495 ; AVX512F-LABEL: test11b:
496 ; AVX512F: ## BB#0:
497 ; AVX512F-NEXT: ## kill: %YMM1<def> %YMM1<kill> %ZMM1<def>
498 ; AVX512F-NEXT: vpmovsxwq %xmm0, %zmm0
499 ; AVX512F-NEXT: vpsllq $63, %zmm0, %zmm0
500 ; AVX512F-NEXT: vptestmq %zmm0, %zmm0, %k0
501 ; AVX512F-NEXT: kshiftlw $8, %k0, %k0
502 ; AVX512F-NEXT: kshiftrw $8, %k0, %k1
503 ; AVX512F-NEXT: vmovdqu32 (%rdi), %zmm1 {%k1}
504 ; AVX512F-NEXT: vmovaps %zmm1, %zmm0
505 ; AVX512F-NEXT: retq
539 ; AVX512F-LABEL: test11c:
540 ; AVX512F: ## BB#0:
541 ; AVX512F-NEXT: vpmovsxwq %xmm0, %zmm0
542 ; AVX512F-NEXT: vpsllq $63, %zmm0, %zmm0
543 ; AVX512F-NEXT: vptestmq %zmm0, %zmm0, %k0
544 ; AVX512F-NEXT: kshiftlw $8, %k0, %k0
545 ; AVX512F-NEXT: kshiftrw $8, %k0, %k1
546 ; AVX512F-NEXT: vmovups (%rdi), %zmm0 {%k1} {z}
547 ; AVX512F-NEXT: ## kill: %YMM0<def> %YMM0<kill> %ZMM0<kill>
548 ; AVX512F-NEXT: retq
581 ; AVX512F-LABEL: test11d:
582 ; AVX512F: ## BB#0:
583 ; AVX512F-NEXT: vpmovsxwq %xmm0, %zmm0
584 ; AVX512F-NEXT: vpsllq $63, %zmm0, %zmm0
585 ; AVX512F-NEXT: vptestmq %zmm0, %zmm0, %k0
586 ; AVX512F-NEXT: kshiftlw $8, %k0, %k0
587 ; AVX512F-NEXT: kshiftrw $8, %k0, %k1
588 ; AVX512F-NEXT: vmovdqu32 (%rdi), %zmm0 {%k1} {z}
589 ; AVX512F-NEXT: ## kill: %YMM0<def> %YMM0<kill> %ZMM0<kill>
590 ; AVX512F-NEXT: retq
622 ; AVX512F-LABEL: test12:
623 ; AVX512F: ## BB#0:
624 ; AVX512F-NEXT: ## kill: %YMM1<def> %YMM1<kill> %ZMM1<def>
625 ; AVX512F-NEXT: ## kill: %YMM0<def> %YMM0<kill> %ZMM0<def>
626 ; AVX512F-NEXT: vpxor %ymm2, %ymm2, %ymm2
627 ; AVX512F-NEXT: vpcmpeqd %zmm2, %zmm0, %k0
628 ; AVX512F-NEXT: kshiftlw $8, %k0, %k0
629 ; AVX512F-NEXT: kshiftrw $8, %k0, %k1
630 ; AVX512F-NEXT: vmovdqu32 %zmm1, (%rdi) {%k1}
631 ; AVX512F-NEXT: retq
703 ; AVX512F-LABEL: test14:
704 ; AVX512F: ## BB#0:
705 ; AVX512F-NEXT: vpxor %xmm2, %xmm2, %xmm2
706 ; AVX512F-NEXT: vpblendd {{.*#+}} xmm0 = xmm0[0],xmm2[1],xmm0[2],xmm2[3]
707 ; AVX512F-NEXT: vpcmpeqq %xmm2, %xmm0, %xmm0
708 ; AVX512F-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[0,2,2,3]
709 ; AVX512F-NEXT: vmovq {{.*#+}} xmm0 = xmm0[0],zero
710 ; AVX512F-NEXT: vmaskmovps %xmm1, %xmm0, (%rdi)
711 ; AVX512F-NEXT: retq
750 ; AVX512F-LABEL: test15:
751 ; AVX512F: ## BB#0:
752 ; AVX512F-NEXT: vpxor %xmm2, %xmm2, %xmm2
753 ; AVX512F-NEXT: vpblendd {{.*#+}} xmm0 = xmm0[0],xmm2[1],xmm0[2],xmm2[3]
754 ; AVX512F-NEXT: vpcmpeqq %xmm2, %xmm0, %xmm0
755 ; AVX512F-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[0,2,2,3]
756 ; AVX512F-NEXT: vmovq {{.*#+}} xmm0 = xmm0[0],zero
757 ; AVX512F-NEXT: vpshufd {{.*#+}} xmm1 = xmm1[0,2,2,3]
758 ; AVX512F-NEXT: vpmaskmovd %xmm1, %xmm0, (%rdi)
759 ; AVX512F-NEXT: retq
796 ; AVX512F-LABEL: test16:
797 ; AVX512F: ## BB#0:
798 ; AVX512F-NEXT: vpxor %xmm2, %xmm2, %xmm2
799 ; AVX512F-NEXT: vpblendd {{.*#+}} xmm0 = xmm0[0],xmm2[1],xmm0[2],xmm2[3]
800 ; AVX512F-NEXT: vpcmpeqq %xmm2, %xmm0, %xmm0
801 ; AVX512F-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[0,2,2,3]
802 ; AVX512F-NEXT: vmovq {{.*#+}} xmm0 = xmm0[0],zero
803 ; AVX512F-NEXT: vmaskmovps (%rdi), %xmm0, %xmm2
804 ; AVX512F-NEXT: vblendvps %xmm0, %xmm2, %xmm1, %xmm0
805 ; AVX512F-NEXT: retq
849 ; AVX512F-LABEL: test17:
850 ; AVX512F: ## BB#0:
851 ; AVX512F-NEXT: vpxor %xmm2, %xmm2, %xmm2
852 ; AVX512F-NEXT: vpblendd {{.*#+}} xmm0 = xmm0[0],xmm2[1],xmm0[2],xmm2[3]
853 ; AVX512F-NEXT: vpcmpeqq %xmm2, %xmm0, %xmm0
854 ; AVX512F-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[0,2,2,3]
855 ; AVX512F-NEXT: vmovq {{.*#+}} xmm0 = xmm0[0],zero
856 ; AVX512F-NEXT: vpmaskmovd (%rdi), %xmm0, %xmm2
857 ; AVX512F-NEXT: vpshufd {{.*#+}} xmm1 = xmm1[0,2,2,3]
858 ; AVX512F-NEXT: vblendvps %xmm0, %xmm2, %xmm1, %xmm0
859 ; AVX512F-NEXT: vpmovsxdq %xmm0, %xmm0
860 ; AVX512F-NEXT: retq
899 ; AVX512F-LABEL: test18:
900 ; AVX512F: ## BB#0:
901 ; AVX512F-NEXT: vpxor %xmm1, %xmm1, %xmm1
902 ; AVX512F-NEXT: vpblendd {{.*#+}} xmm0 = xmm0[0],xmm1[1],xmm0[2],xmm1[3]
903 ; AVX512F-NEXT: vpcmpeqq %xmm1, %xmm0, %xmm0
904 ; AVX512F-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[0,2,2,3]
905 ; AVX512F-NEXT: vmovq {{.*#+}} xmm0 = xmm0[0],zero
906 ; AVX512F-NEXT: vmaskmovps (%rdi), %xmm0, %xmm0
907 ; AVX512F-NEXT: retq
929 ; AVX512F-LABEL: load_all:
930 ; AVX512F: ## BB#0:
931 ; AVX512F-NEXT: vpcmpeqd %xmm0, %xmm0, %xmm0
932 ; AVX512F-NEXT: vmaskmovps (%rdi), %xmm0, %xmm0
933 ; AVX512F-NEXT: retq
955 ; AVX512F-LABEL: mload_constmask_v4f32:
956 ; AVX512F: ## BB#0:
957 ; AVX512F-NEXT: vmovaps {{.*#+}} xmm1 = [4294967295,0,4294967295,4294967295]
958 ; AVX512F-NEXT: vmaskmovps (%rdi), %xmm1, %xmm2
959 ; AVX512F-NEXT: vblendvps %xmm1, %xmm2, %xmm0, %xmm0
960 ; AVX512F-NEXT: retq
989 ; AVX512F-LABEL: mload_constmask_v4i32:
990 ; AVX512F: ## BB#0:
991 ; AVX512F-NEXT: vmovdqa {{.*#+}} xmm1 = [0,4294967295,4294967295,4294967295]
992 ; AVX512F-NEXT: vpmaskmovd (%rdi), %xmm1, %xmm2
993 ; AVX512F-NEXT: vblendvps %xmm1, %xmm2, %xmm0, %xmm0
994 ; AVX512F-NEXT: retq
1016 ; AVX512F-LABEL: mload_constmask_v8f32:
1017 ; AVX512F: ## BB#0:
1018 ; AVX512F-NEXT: ## kill: %YMM0<def> %YMM0<kill> %ZMM0<def>
1019 ; AVX512F-NEXT: movw $7, %ax
1020 ; AVX512F-NEXT: kmovw %eax, %k1
1021 ; AVX512F-NEXT: vmovups (%rdi), %zmm0 {%k1}
1022 ; AVX512F-NEXT: ## kill: %YMM0<def> %YMM0<kill> %ZMM0<kill>
1023 ; AVX512F-NEXT: retq
1043 ; AVX512F-LABEL: mload_constmask_v4f64:
1044 ; AVX512F: ## BB#0:
1045 ; AVX512F-NEXT: vmovapd {{.*#+}} ymm1 = [18446744073709551615,18446744073709551615,1844674407370…
1046 ; AVX512F-NEXT: vmaskmovpd (%rdi), %ymm1, %ymm2
1047 ; AVX512F-NEXT: vblendvpd %ymm1, %ymm2, %ymm0, %ymm0
1048 ; AVX512F-NEXT: retq
1073 ; AVX512F-LABEL: mload_constmask_v8i32:
1074 ; AVX512F: ## BB#0:
1075 ; AVX512F-NEXT: ## kill: %YMM0<def> %YMM0<kill> %ZMM0<def>
1076 ; AVX512F-NEXT: movw $135, %ax
1077 ; AVX512F-NEXT: kmovw %eax, %k1
1078 ; AVX512F-NEXT: vmovdqu32 (%rdi), %zmm0 {%k1}
1079 ; AVX512F-NEXT: ## kill: %YMM0<def> %YMM0<kill> %ZMM0<kill>
1080 ; AVX512F-NEXT: retq
1103 ; AVX512F-LABEL: mload_constmask_v4i64:
1104 ; AVX512F: ## BB#0:
1105 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm1 = [18446744073709551615,0,0,18446744073709551615]
1106 ; AVX512F-NEXT: vpmaskmovq (%rdi), %ymm1, %ymm2
1107 ; AVX512F-NEXT: vblendvpd %ymm1, %ymm2, %ymm0, %ymm0
1108 ; AVX512F-NEXT: retq
1148 ; AVX512F-LABEL: mload_constmask_v4f64_undef_passthrough:
1149 ; AVX512F: ## BB#0:
1150 ; AVX512F-NEXT: vmovapd {{.*#+}} ymm0 = [18446744073709551615,18446744073709551615,1844674407370…
1151 ; AVX512F-NEXT: vmaskmovpd (%rdi), %ymm0, %ymm0
1152 ; AVX512F-NEXT: retq
1177 ; AVX512F-LABEL: mload_constmask_v4i64_undef_passthrough:
1178 ; AVX512F: ## BB#0:
1179 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm0 = [0,18446744073709551615,18446744073709551615,0]
1180 ; AVX512F-NEXT: vpmaskmovq (%rdi), %ymm0, %ymm0
1181 ; AVX512F-NEXT: retq
1206 ; AVX512F-LABEL: test21:
1207 ; AVX512F: ## BB#0:
1208 ; AVX512F-NEXT: vpcmpeqd %xmm0, %xmm0, %xmm0
1209 ; AVX512F-NEXT: vpmaskmovd %xmm1, %xmm0, (%rdi)
1210 ; AVX512F-NEXT: retq
1264 ; AVX512F-LABEL: one_mask_bit_set3:
1265 ; AVX512F: ## BB#0:
1266 ; AVX512F-NEXT: vextractf128 $1, %ymm0, %xmm0
1267 ; AVX512F-NEXT: vmovq %xmm0, 16(%rdi)
1268 ; AVX512F-NEXT: retq
1289 ; AVX512F-LABEL: one_mask_bit_set4:
1290 ; AVX512F: ## BB#0:
1291 ; AVX512F-NEXT: vextractf128 $1, %ymm0, %xmm0
1292 ; AVX512F-NEXT: vmovhpd %xmm0, 24(%rdi)
1293 ; AVX512F-NEXT: retq
1372 ; AVX512F-LABEL: load_one_mask_bit_set3:
1373 ; AVX512F: ## BB#0:
1374 ; AVX512F-NEXT: vextracti128 $1, %ymm0, %xmm1
1375 ; AVX512F-NEXT: vpinsrq $0, 16(%rdi), %xmm1, %xmm1
1376 ; AVX512F-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm0
1377 ; AVX512F-NEXT: retq
1399 ; AVX512F-LABEL: load_one_mask_bit_set4:
1400 ; AVX512F: ## BB#0:
1401 ; AVX512F-NEXT: vextractf128 $1, %ymm0, %xmm1
1402 ; AVX512F-NEXT: vmovhpd {{.*#+}} xmm1 = xmm1[0],mem[0]
1403 ; AVX512F-NEXT: vinsertf128 $1, %xmm1, %ymm0, %ymm0
1404 ; AVX512F-NEXT: retq
1589 ; AVX512F-LABEL: test24:
1590 ; AVX512F: ## BB#0:
1591 ; AVX512F-NEXT: vpmovsxbd %xmm0, %zmm0
1592 ; AVX512F-NEXT: vpslld $31, %zmm0, %zmm0
1593 ; AVX512F-NEXT: vptestmd %zmm0, %zmm0, %k1
1594 ; AVX512F-NEXT: vmovdqu64 (%rdi), %zmm0 {%k1} {z}
1595 ; AVX512F-NEXT: kshiftrw $8, %k1, %k1
1596 ; AVX512F-NEXT: vmovdqu64 64(%rdi), %zmm1 {%k1} {z}
1597 ; AVX512F-NEXT: retq
1680 ; AVX512F-LABEL: test_store_16i64:
1681 ; AVX512F: ## BB#0:
1682 ; AVX512F-NEXT: vpmovsxbd %xmm0, %zmm0
1683 ; AVX512F-NEXT: vpslld $31, %zmm0, %zmm0
1684 ; AVX512F-NEXT: vptestmd %zmm0, %zmm0, %k1
1685 ; AVX512F-NEXT: vmovdqu64 %zmm1, (%rdi) {%k1}
1686 ; AVX512F-NEXT: kshiftrw $8, %k1, %k1
1687 ; AVX512F-NEXT: vmovdqu64 %zmm2, 64(%rdi) {%k1}
1688 ; AVX512F-NEXT: retq
1772 ; AVX512F-LABEL: test_store_16f64:
1773 ; AVX512F: ## BB#0:
1774 ; AVX512F-NEXT: vpmovsxbd %xmm0, %zmm0
1775 ; AVX512F-NEXT: vpslld $31, %zmm0, %zmm0
1776 ; AVX512F-NEXT: vptestmd %zmm0, %zmm0, %k1
1777 ; AVX512F-NEXT: vmovupd %zmm1, (%rdi) {%k1}
1778 ; AVX512F-NEXT: kshiftrw $8, %k1, %k1
1779 ; AVX512F-NEXT: vmovupd %zmm2, 64(%rdi) {%k1}
1780 ; AVX512F-NEXT: retq
1872 ; AVX512F-LABEL: test_load_16i64:
1873 ; AVX512F: ## BB#0:
1874 ; AVX512F-NEXT: vpmovsxbd %xmm0, %zmm0
1875 ; AVX512F-NEXT: vpslld $31, %zmm0, %zmm0
1876 ; AVX512F-NEXT: vptestmd %zmm0, %zmm0, %k1
1877 ; AVX512F-NEXT: vmovdqu64 (%rdi), %zmm1 {%k1}
1878 ; AVX512F-NEXT: kshiftrw $8, %k1, %k1
1879 ; AVX512F-NEXT: vmovdqu64 64(%rdi), %zmm2 {%k1}
1880 ; AVX512F-NEXT: vmovaps %zmm1, %zmm0
1881 ; AVX512F-NEXT: vmovaps %zmm2, %zmm1
1882 ; AVX512F-NEXT: retq
1976 ; AVX512F-LABEL: test_load_16f64:
1977 ; AVX512F: ## BB#0:
1978 ; AVX512F-NEXT: vpmovsxbd %xmm0, %zmm0
1979 ; AVX512F-NEXT: vpslld $31, %zmm0, %zmm0
1980 ; AVX512F-NEXT: vptestmd %zmm0, %zmm0, %k1
1981 ; AVX512F-NEXT: vmovupd (%rdi), %zmm1 {%k1}
1982 ; AVX512F-NEXT: kshiftrw $8, %k1, %k1
1983 ; AVX512F-NEXT: vmovupd 64(%rdi), %zmm2 {%k1}
1984 ; AVX512F-NEXT: vmovaps %zmm1, %zmm0
1985 ; AVX512F-NEXT: vmovaps %zmm2, %zmm1
1986 ; AVX512F-NEXT: retq
2192 ; AVX512F-LABEL: test_load_32f64:
2193 ; AVX512F: ## BB#0:
2194 ; AVX512F-NEXT: vextractf128 $1, %ymm0, %xmm5
2195 ; AVX512F-NEXT: vpmovsxbd %xmm5, %zmm5
2196 ; AVX512F-NEXT: vpslld $31, %zmm5, %zmm5
2197 ; AVX512F-NEXT: vptestmd %zmm5, %zmm5, %k1
2198 ; AVX512F-NEXT: vmovupd 128(%rdi), %zmm3 {%k1}
2199 ; AVX512F-NEXT: vpmovsxbd %xmm0, %zmm0
2200 ; AVX512F-NEXT: vpslld $31, %zmm0, %zmm0
2201 ; AVX512F-NEXT: vptestmd %zmm0, %zmm0, %k2
2202 ; AVX512F-NEXT: vmovupd (%rdi), %zmm1 {%k2}
2203 ; AVX512F-NEXT: kshiftrw $8, %k1, %k1
2204 ; AVX512F-NEXT: vmovupd 192(%rdi), %zmm4 {%k1}
2205 ; AVX512F-NEXT: kshiftrw $8, %k2, %k1
2206 ; AVX512F-NEXT: vmovupd 64(%rdi), %zmm2 {%k1}
2207 ; AVX512F-NEXT: vmovaps %zmm1, %zmm0
2208 ; AVX512F-NEXT: vmovaps %zmm2, %zmm1
2209 ; AVX512F-NEXT: vmovaps %zmm3, %zmm2
2210 ; AVX512F-NEXT: vmovaps %zmm4, %zmm3
2211 ; AVX512F-NEXT: retq
2341 ; AVX512F-LABEL: test_mask_load_16xi8:
2342 ; AVX512F: ## BB#0:
2343 ; AVX512F-NEXT: vpmovsxbd %xmm0, %zmm0
2344 ; AVX512F-NEXT: vpslld $31, %zmm0, %zmm0
2345 ; AVX512F-NEXT: vptestmd %zmm0, %zmm0, %k1
2346 ; AVX512F-NEXT: kshiftlw $15, %k1, %k0
2347 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0
2348 ; AVX512F-NEXT: kmovw %k0, %eax
2349 ; AVX512F-NEXT: ## implicit-def: %XMM0
2350 ; AVX512F-NEXT: testb %al, %al
2351 ; AVX512F-NEXT: je LBB50_2
2352 ; AVX512F-NEXT: ## BB#1: ## %cond.load
2353 ; AVX512F-NEXT: movzbl (%rdi), %eax
2354 ; AVX512F-NEXT: vmovd %eax, %xmm0
2355 ; AVX512F-NEXT: LBB50_2: ## %else
2356 ; AVX512F-NEXT: kshiftlw $14, %k1, %k0
2357 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0
2358 ; AVX512F-NEXT: kmovw %k0, %eax
2359 ; AVX512F-NEXT: testb %al, %al
2360 ; AVX512F-NEXT: je LBB50_4
2361 ; AVX512F-NEXT: ## BB#3: ## %cond.load1
2362 ; AVX512F-NEXT: vpinsrb $1, 1(%rdi), %xmm0, %xmm0
2363 ; AVX512F-NEXT: LBB50_4: ## %else2
2364 ; AVX512F-NEXT: kshiftlw $13, %k1, %k0
2365 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0
2366 ; AVX512F-NEXT: kmovw %k0, %eax
2367 ; AVX512F-NEXT: testb %al, %al
2368 ; AVX512F-NEXT: je LBB50_6
2369 ; AVX512F-NEXT: ## BB#5: ## %cond.load4
2370 ; AVX512F-NEXT: vpinsrb $2, 2(%rdi), %xmm0, %xmm0
2371 ; AVX512F-NEXT: LBB50_6: ## %else5
2372 ; AVX512F-NEXT: kshiftlw $12, %k1, %k0
2373 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0
2374 ; AVX512F-NEXT: kmovw %k0, %eax
2375 ; AVX512F-NEXT: testb %al, %al
2376 ; AVX512F-NEXT: je LBB50_8
2377 ; AVX512F-NEXT: ## BB#7: ## %cond.load7
2378 ; AVX512F-NEXT: vpinsrb $3, 3(%rdi), %xmm0, %xmm0
2379 ; AVX512F-NEXT: LBB50_8: ## %else8
2380 ; AVX512F-NEXT: kshiftlw $11, %k1, %k0
2381 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0
2382 ; AVX512F-NEXT: kmovw %k0, %eax
2383 ; AVX512F-NEXT: testb %al, %al
2384 ; AVX512F-NEXT: je LBB50_10
2385 ; AVX512F-NEXT: ## BB#9: ## %cond.load10
2386 ; AVX512F-NEXT: vpinsrb $4, 4(%rdi), %xmm0, %xmm0
2387 ; AVX512F-NEXT: LBB50_10: ## %else11
2388 ; AVX512F-NEXT: kshiftlw $10, %k1, %k0
2389 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0
2390 ; AVX512F-NEXT: kmovw %k0, %eax
2391 ; AVX512F-NEXT: testb %al, %al
2392 ; AVX512F-NEXT: je LBB50_12
2393 ; AVX512F-NEXT: ## BB#11: ## %cond.load13
2394 ; AVX512F-NEXT: vpinsrb $5, 5(%rdi), %xmm0, %xmm0
2395 ; AVX512F-NEXT: LBB50_12: ## %else14
2396 ; AVX512F-NEXT: kshiftlw $9, %k1, %k0
2397 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0
2398 ; AVX512F-NEXT: kmovw %k0, %eax
2399 ; AVX512F-NEXT: testb %al, %al
2400 ; AVX512F-NEXT: je LBB50_14
2401 ; AVX512F-NEXT: ## BB#13: ## %cond.load16
2402 ; AVX512F-NEXT: vpinsrb $6, 6(%rdi), %xmm0, %xmm0
2403 ; AVX512F-NEXT: LBB50_14: ## %else17
2404 ; AVX512F-NEXT: kshiftlw $8, %k1, %k0
2405 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0
2406 ; AVX512F-NEXT: kmovw %k0, %eax
2407 ; AVX512F-NEXT: testb %al, %al
2408 ; AVX512F-NEXT: je LBB50_16
2409 ; AVX512F-NEXT: ## BB#15: ## %cond.load19
2410 ; AVX512F-NEXT: vpinsrb $7, 7(%rdi), %xmm0, %xmm0
2411 ; AVX512F-NEXT: LBB50_16: ## %else20
2412 ; AVX512F-NEXT: kshiftlw $7, %k1, %k0
2413 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0
2414 ; AVX512F-NEXT: kmovw %k0, %eax
2415 ; AVX512F-NEXT: testb %al, %al
2416 ; AVX512F-NEXT: je LBB50_18
2417 ; AVX512F-NEXT: ## BB#17: ## %cond.load22
2418 ; AVX512F-NEXT: vpinsrb $8, 8(%rdi), %xmm0, %xmm0
2419 ; AVX512F-NEXT: LBB50_18: ## %else23
2420 ; AVX512F-NEXT: kshiftlw $6, %k1, %k0
2421 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0
2422 ; AVX512F-NEXT: kmovw %k0, %eax
2423 ; AVX512F-NEXT: testb %al, %al
2424 ; AVX512F-NEXT: je LBB50_20
2425 ; AVX512F-NEXT: ## BB#19: ## %cond.load25
2426 ; AVX512F-NEXT: vpinsrb $9, 9(%rdi), %xmm0, %xmm0
2427 ; AVX512F-NEXT: LBB50_20: ## %else26
2428 ; AVX512F-NEXT: kshiftlw $5, %k1, %k0
2429 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0
2430 ; AVX512F-NEXT: kmovw %k0, %eax
2431 ; AVX512F-NEXT: testb %al, %al
2432 ; AVX512F-NEXT: je LBB50_22
2433 ; AVX512F-NEXT: ## BB#21: ## %cond.load28
2434 ; AVX512F-NEXT: vpinsrb $10, 10(%rdi), %xmm0, %xmm0
2435 ; AVX512F-NEXT: LBB50_22: ## %else29
2436 ; AVX512F-NEXT: kshiftlw $4, %k1, %k0
2437 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0
2438 ; AVX512F-NEXT: kmovw %k0, %eax
2439 ; AVX512F-NEXT: testb %al, %al
2440 ; AVX512F-NEXT: je LBB50_24
2441 ; AVX512F-NEXT: ## BB#23: ## %cond.load31
2442 ; AVX512F-NEXT: vpinsrb $11, 11(%rdi), %xmm0, %xmm0
2443 ; AVX512F-NEXT: LBB50_24: ## %else32
2444 ; AVX512F-NEXT: kshiftlw $3, %k1, %k0
2445 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0
2446 ; AVX512F-NEXT: kmovw %k0, %eax
2447 ; AVX512F-NEXT: testb %al, %al
2448 ; AVX512F-NEXT: je LBB50_26
2449 ; AVX512F-NEXT: ## BB#25: ## %cond.load34
2450 ; AVX512F-NEXT: vpinsrb $12, 12(%rdi), %xmm0, %xmm0
2451 ; AVX512F-NEXT: LBB50_26: ## %else35
2452 ; AVX512F-NEXT: kshiftlw $2, %k1, %k0
2453 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0
2454 ; AVX512F-NEXT: kmovw %k0, %eax
2455 ; AVX512F-NEXT: testb %al, %al
2456 ; AVX512F-NEXT: je LBB50_28
2457 ; AVX512F-NEXT: ## BB#27: ## %cond.load37
2458 ; AVX512F-NEXT: vpinsrb $13, 13(%rdi), %xmm0, %xmm0
2459 ; AVX512F-NEXT: LBB50_28: ## %else38
2460 ; AVX512F-NEXT: kshiftlw $1, %k1, %k0
2461 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0
2462 ; AVX512F-NEXT: kmovw %k0, %eax
2463 ; AVX512F-NEXT: testb %al, %al
2464 ; AVX512F-NEXT: je LBB50_30
2465 ; AVX512F-NEXT: ## BB#29: ## %cond.load40
2466 ; AVX512F-NEXT: vpinsrb $14, 14(%rdi), %xmm0, %xmm0
2467 ; AVX512F-NEXT: LBB50_30: ## %else41
2468 ; AVX512F-NEXT: kshiftlw $0, %k1, %k0
2469 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0
2470 ; AVX512F-NEXT: kmovw %k0, %eax
2471 ; AVX512F-NEXT: testb %al, %al
2472 ; AVX512F-NEXT: je LBB50_32
2473 ; AVX512F-NEXT: ## BB#31: ## %cond.load43
2474 ; AVX512F-NEXT: vpinsrb $15, 15(%rdi), %xmm0, %xmm0
2475 ; AVX512F-NEXT: LBB50_32: ## %else44
2476 ; AVX512F-NEXT: vpternlogd $255, %zmm1, %zmm1, %zmm1
2477 ; AVX512F-NEXT: vmovdqa32 %zmm1, %zmm1 {%k1} {z}
2478 ; AVX512F-NEXT: vpmovdb %zmm1, %xmm1
2479 ; AVX512F-NEXT: vpblendvb %xmm1, %xmm0, %xmm0, %xmm0
2480 ; AVX512F-NEXT: retq
3001 ; AVX512F-LABEL: test_mask_load_32xi8:
3002 ; AVX512F: ## BB#0:
3003 ; AVX512F-NEXT: vpextrb $0, %xmm0, %eax
3004 ; AVX512F-NEXT: ## implicit-def: %YMM1
3005 ; AVX512F-NEXT: testb $1, %al
3006 ; AVX512F-NEXT: je LBB51_2
3007 ; AVX512F-NEXT: ## BB#1: ## %cond.load
3008 ; AVX512F-NEXT: movzbl (%rdi), %eax
3009 ; AVX512F-NEXT: vmovd %eax, %xmm1
3010 ; AVX512F-NEXT: LBB51_2: ## %else
3011 ; AVX512F-NEXT: vpextrb $1, %xmm0, %eax
3012 ; AVX512F-NEXT: testb $1, %al
3013 ; AVX512F-NEXT: je LBB51_4
3014 ; AVX512F-NEXT: ## BB#3: ## %cond.load1
3015 ; AVX512F-NEXT: vpinsrb $1, 1(%rdi), %xmm1, %xmm2
3016 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
3017 ; AVX512F-NEXT: LBB51_4: ## %else2
3018 ; AVX512F-NEXT: vpextrb $2, %xmm0, %eax
3019 ; AVX512F-NEXT: testb $1, %al
3020 ; AVX512F-NEXT: je LBB51_6
3021 ; AVX512F-NEXT: ## BB#5: ## %cond.load4
3022 ; AVX512F-NEXT: vpinsrb $2, 2(%rdi), %xmm1, %xmm2
3023 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
3024 ; AVX512F-NEXT: LBB51_6: ## %else5
3025 ; AVX512F-NEXT: vpextrb $3, %xmm0, %eax
3026 ; AVX512F-NEXT: testb $1, %al
3027 ; AVX512F-NEXT: je LBB51_8
3028 ; AVX512F-NEXT: ## BB#7: ## %cond.load7
3029 ; AVX512F-NEXT: vpinsrb $3, 3(%rdi), %xmm1, %xmm2
3030 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
3031 ; AVX512F-NEXT: LBB51_8: ## %else8
3032 ; AVX512F-NEXT: vpextrb $4, %xmm0, %eax
3033 ; AVX512F-NEXT: testb $1, %al
3034 ; AVX512F-NEXT: je LBB51_10
3035 ; AVX512F-NEXT: ## BB#9: ## %cond.load10
3036 ; AVX512F-NEXT: vpinsrb $4, 4(%rdi), %xmm1, %xmm2
3037 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
3038 ; AVX512F-NEXT: LBB51_10: ## %else11
3039 ; AVX512F-NEXT: vpextrb $5, %xmm0, %eax
3040 ; AVX512F-NEXT: testb $1, %al
3041 ; AVX512F-NEXT: je LBB51_12
3042 ; AVX512F-NEXT: ## BB#11: ## %cond.load13
3043 ; AVX512F-NEXT: vpinsrb $5, 5(%rdi), %xmm1, %xmm2
3044 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
3045 ; AVX512F-NEXT: LBB51_12: ## %else14
3046 ; AVX512F-NEXT: vpextrb $6, %xmm0, %eax
3047 ; AVX512F-NEXT: testb $1, %al
3048 ; AVX512F-NEXT: je LBB51_14
3049 ; AVX512F-NEXT: ## BB#13: ## %cond.load16
3050 ; AVX512F-NEXT: vpinsrb $6, 6(%rdi), %xmm1, %xmm2
3051 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
3052 ; AVX512F-NEXT: LBB51_14: ## %else17
3053 ; AVX512F-NEXT: vpextrb $7, %xmm0, %eax
3054 ; AVX512F-NEXT: testb $1, %al
3055 ; AVX512F-NEXT: je LBB51_16
3056 ; AVX512F-NEXT: ## BB#15: ## %cond.load19
3057 ; AVX512F-NEXT: vpinsrb $7, 7(%rdi), %xmm1, %xmm2
3058 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
3059 ; AVX512F-NEXT: LBB51_16: ## %else20
3060 ; AVX512F-NEXT: vpextrb $8, %xmm0, %eax
3061 ; AVX512F-NEXT: testb $1, %al
3062 ; AVX512F-NEXT: je LBB51_18
3063 ; AVX512F-NEXT: ## BB#17: ## %cond.load22
3064 ; AVX512F-NEXT: vpinsrb $8, 8(%rdi), %xmm1, %xmm2
3065 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
3066 ; AVX512F-NEXT: LBB51_18: ## %else23
3067 ; AVX512F-NEXT: vpextrb $9, %xmm0, %eax
3068 ; AVX512F-NEXT: testb $1, %al
3069 ; AVX512F-NEXT: je LBB51_20
3070 ; AVX512F-NEXT: ## BB#19: ## %cond.load25
3071 ; AVX512F-NEXT: vpinsrb $9, 9(%rdi), %xmm1, %xmm2
3072 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
3073 ; AVX512F-NEXT: LBB51_20: ## %else26
3074 ; AVX512F-NEXT: vpextrb $10, %xmm0, %eax
3075 ; AVX512F-NEXT: testb $1, %al
3076 ; AVX512F-NEXT: je LBB51_22
3077 ; AVX512F-NEXT: ## BB#21: ## %cond.load28
3078 ; AVX512F-NEXT: vpinsrb $10, 10(%rdi), %xmm1, %xmm2
3079 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
3080 ; AVX512F-NEXT: LBB51_22: ## %else29
3081 ; AVX512F-NEXT: vpextrb $11, %xmm0, %eax
3082 ; AVX512F-NEXT: testb $1, %al
3083 ; AVX512F-NEXT: je LBB51_24
3084 ; AVX512F-NEXT: ## BB#23: ## %cond.load31
3085 ; AVX512F-NEXT: vpinsrb $11, 11(%rdi), %xmm1, %xmm2
3086 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
3087 ; AVX512F-NEXT: LBB51_24: ## %else32
3088 ; AVX512F-NEXT: vpextrb $12, %xmm0, %eax
3089 ; AVX512F-NEXT: testb $1, %al
3090 ; AVX512F-NEXT: je LBB51_26
3091 ; AVX512F-NEXT: ## BB#25: ## %cond.load34
3092 ; AVX512F-NEXT: vpinsrb $12, 12(%rdi), %xmm1, %xmm2
3093 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
3094 ; AVX512F-NEXT: LBB51_26: ## %else35
3095 ; AVX512F-NEXT: vpextrb $13, %xmm0, %eax
3096 ; AVX512F-NEXT: testb $1, %al
3097 ; AVX512F-NEXT: je LBB51_28
3098 ; AVX512F-NEXT: ## BB#27: ## %cond.load37
3099 ; AVX512F-NEXT: vpinsrb $13, 13(%rdi), %xmm1, %xmm2
3100 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
3101 ; AVX512F-NEXT: LBB51_28: ## %else38
3102 ; AVX512F-NEXT: vpextrb $14, %xmm0, %eax
3103 ; AVX512F-NEXT: testb $1, %al
3104 ; AVX512F-NEXT: je LBB51_30
3105 ; AVX512F-NEXT: ## BB#29: ## %cond.load40
3106 ; AVX512F-NEXT: vpinsrb $14, 14(%rdi), %xmm1, %xmm2
3107 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
3108 ; AVX512F-NEXT: LBB51_30: ## %else41
3109 ; AVX512F-NEXT: vpextrb $15, %xmm0, %eax
3110 ; AVX512F-NEXT: testb $1, %al
3111 ; AVX512F-NEXT: je LBB51_32
3112 ; AVX512F-NEXT: ## BB#31: ## %cond.load43
3113 ; AVX512F-NEXT: vpinsrb $15, 15(%rdi), %xmm1, %xmm2
3114 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
3115 ; AVX512F-NEXT: LBB51_32: ## %else44
3116 ; AVX512F-NEXT: vextracti128 $1, %ymm0, %xmm2
3117 ; AVX512F-NEXT: vpextrb $0, %xmm2, %eax
3118 ; AVX512F-NEXT: testb $1, %al
3119 ; AVX512F-NEXT: je LBB51_34
3120 ; AVX512F-NEXT: ## BB#33: ## %cond.load46
3121 ; AVX512F-NEXT: vextracti128 $1, %ymm1, %xmm3
3122 ; AVX512F-NEXT: vpinsrb $0, 16(%rdi), %xmm3, %xmm3
3123 ; AVX512F-NEXT: vinserti128 $1, %xmm3, %ymm1, %ymm1
3124 ; AVX512F-NEXT: LBB51_34: ## %else47
3125 ; AVX512F-NEXT: vpextrb $1, %xmm2, %eax
3126 ; AVX512F-NEXT: testb $1, %al
3127 ; AVX512F-NEXT: je LBB51_36
3128 ; AVX512F-NEXT: ## BB#35: ## %cond.load49
3129 ; AVX512F-NEXT: vextracti128 $1, %ymm1, %xmm3
3130 ; AVX512F-NEXT: vpinsrb $1, 17(%rdi), %xmm3, %xmm3
3131 ; AVX512F-NEXT: vinserti128 $1, %xmm3, %ymm1, %ymm1
3132 ; AVX512F-NEXT: LBB51_36: ## %else50
3133 ; AVX512F-NEXT: vpextrb $2, %xmm2, %eax
3134 ; AVX512F-NEXT: testb $1, %al
3135 ; AVX512F-NEXT: je LBB51_38
3136 ; AVX512F-NEXT: ## BB#37: ## %cond.load52
3137 ; AVX512F-NEXT: vextracti128 $1, %ymm1, %xmm3
3138 ; AVX512F-NEXT: vpinsrb $2, 18(%rdi), %xmm3, %xmm3
3139 ; AVX512F-NEXT: vinserti128 $1, %xmm3, %ymm1, %ymm1
3140 ; AVX512F-NEXT: LBB51_38: ## %else53
3141 ; AVX512F-NEXT: vpextrb $3, %xmm2, %eax
3142 ; AVX512F-NEXT: testb $1, %al
3143 ; AVX512F-NEXT: je LBB51_40
3144 ; AVX512F-NEXT: ## BB#39: ## %cond.load55
3145 ; AVX512F-NEXT: vextracti128 $1, %ymm1, %xmm3
3146 ; AVX512F-NEXT: vpinsrb $3, 19(%rdi), %xmm3, %xmm3
3147 ; AVX512F-NEXT: vinserti128 $1, %xmm3, %ymm1, %ymm1
3148 ; AVX512F-NEXT: LBB51_40: ## %else56
3149 ; AVX512F-NEXT: vpextrb $4, %xmm2, %eax
3150 ; AVX512F-NEXT: testb $1, %al
3151 ; AVX512F-NEXT: je LBB51_42
3152 ; AVX512F-NEXT: ## BB#41: ## %cond.load58
3153 ; AVX512F-NEXT: vextracti128 $1, %ymm1, %xmm3
3154 ; AVX512F-NEXT: vpinsrb $4, 20(%rdi), %xmm3, %xmm3
3155 ; AVX512F-NEXT: vinserti128 $1, %xmm3, %ymm1, %ymm1
3156 ; AVX512F-NEXT: LBB51_42: ## %else59
3157 ; AVX512F-NEXT: vpextrb $5, %xmm2, %eax
3158 ; AVX512F-NEXT: testb $1, %al
3159 ; AVX512F-NEXT: je LBB51_44
3160 ; AVX512F-NEXT: ## BB#43: ## %cond.load61
3161 ; AVX512F-NEXT: vextracti128 $1, %ymm1, %xmm3
3162 ; AVX512F-NEXT: vpinsrb $5, 21(%rdi), %xmm3, %xmm3
3163 ; AVX512F-NEXT: vinserti128 $1, %xmm3, %ymm1, %ymm1
3164 ; AVX512F-NEXT: LBB51_44: ## %else62
3165 ; AVX512F-NEXT: vpextrb $6, %xmm2, %eax
3166 ; AVX512F-NEXT: testb $1, %al
3167 ; AVX512F-NEXT: je LBB51_46
3168 ; AVX512F-NEXT: ## BB#45: ## %cond.load64
3169 ; AVX512F-NEXT: vextracti128 $1, %ymm1, %xmm3
3170 ; AVX512F-NEXT: vpinsrb $6, 22(%rdi), %xmm3, %xmm3
3171 ; AVX512F-NEXT: vinserti128 $1, %xmm3, %ymm1, %ymm1
3172 ; AVX512F-NEXT: LBB51_46: ## %else65
3173 ; AVX512F-NEXT: vpextrb $7, %xmm2, %eax
3174 ; AVX512F-NEXT: testb $1, %al
3175 ; AVX512F-NEXT: je LBB51_48
3176 ; AVX512F-NEXT: ## BB#47: ## %cond.load67
3177 ; AVX512F-NEXT: vextracti128 $1, %ymm1, %xmm3
3178 ; AVX512F-NEXT: vpinsrb $7, 23(%rdi), %xmm3, %xmm3
3179 ; AVX512F-NEXT: vinserti128 $1, %xmm3, %ymm1, %ymm1
3180 ; AVX512F-NEXT: LBB51_48: ## %else68
3181 ; AVX512F-NEXT: vpextrb $8, %xmm2, %eax
3182 ; AVX512F-NEXT: testb $1, %al
3183 ; AVX512F-NEXT: je LBB51_50
3184 ; AVX512F-NEXT: ## BB#49: ## %cond.load70
3185 ; AVX512F-NEXT: vextracti128 $1, %ymm1, %xmm3
3186 ; AVX512F-NEXT: vpinsrb $8, 24(%rdi), %xmm3, %xmm3
3187 ; AVX512F-NEXT: vinserti128 $1, %xmm3, %ymm1, %ymm1
3188 ; AVX512F-NEXT: LBB51_50: ## %else71
3189 ; AVX512F-NEXT: vpextrb $9, %xmm2, %eax
3190 ; AVX512F-NEXT: testb $1, %al
3191 ; AVX512F-NEXT: je LBB51_52
3192 ; AVX512F-NEXT: ## BB#51: ## %cond.load73
3193 ; AVX512F-NEXT: vextracti128 $1, %ymm1, %xmm3
3194 ; AVX512F-NEXT: vpinsrb $9, 25(%rdi), %xmm3, %xmm3
3195 ; AVX512F-NEXT: vinserti128 $1, %xmm3, %ymm1, %ymm1
3196 ; AVX512F-NEXT: LBB51_52: ## %else74
3197 ; AVX512F-NEXT: vpextrb $10, %xmm2, %eax
3198 ; AVX512F-NEXT: testb $1, %al
3199 ; AVX512F-NEXT: je LBB51_54
3200 ; AVX512F-NEXT: ## BB#53: ## %cond.load76
3201 ; AVX512F-NEXT: vextracti128 $1, %ymm1, %xmm3
3202 ; AVX512F-NEXT: vpinsrb $10, 26(%rdi), %xmm3, %xmm3
3203 ; AVX512F-NEXT: vinserti128 $1, %xmm3, %ymm1, %ymm1
3204 ; AVX512F-NEXT: LBB51_54: ## %else77
3205 ; AVX512F-NEXT: vpextrb $11, %xmm2, %eax
3206 ; AVX512F-NEXT: testb $1, %al
3207 ; AVX512F-NEXT: je LBB51_56
3208 ; AVX512F-NEXT: ## BB#55: ## %cond.load79
3209 ; AVX512F-NEXT: vextracti128 $1, %ymm1, %xmm3
3210 ; AVX512F-NEXT: vpinsrb $11, 27(%rdi), %xmm3, %xmm3
3211 ; AVX512F-NEXT: vinserti128 $1, %xmm3, %ymm1, %ymm1
3212 ; AVX512F-NEXT: LBB51_56: ## %else80
3213 ; AVX512F-NEXT: vpextrb $12, %xmm2, %eax
3214 ; AVX512F-NEXT: testb $1, %al
3215 ; AVX512F-NEXT: je LBB51_58
3216 ; AVX512F-NEXT: ## BB#57: ## %cond.load82
3217 ; AVX512F-NEXT: vextracti128 $1, %ymm1, %xmm3
3218 ; AVX512F-NEXT: vpinsrb $12, 28(%rdi), %xmm3, %xmm3
3219 ; AVX512F-NEXT: vinserti128 $1, %xmm3, %ymm1, %ymm1
3220 ; AVX512F-NEXT: LBB51_58: ## %else83
3221 ; AVX512F-NEXT: vpextrb $13, %xmm2, %eax
3222 ; AVX512F-NEXT: testb $1, %al
3223 ; AVX512F-NEXT: je LBB51_60
3224 ; AVX512F-NEXT: ## BB#59: ## %cond.load85
3225 ; AVX512F-NEXT: vextracti128 $1, %ymm1, %xmm3
3226 ; AVX512F-NEXT: vpinsrb $13, 29(%rdi), %xmm3, %xmm3
3227 ; AVX512F-NEXT: vinserti128 $1, %xmm3, %ymm1, %ymm1
3228 ; AVX512F-NEXT: LBB51_60: ## %else86
3229 ; AVX512F-NEXT: vpextrb $14, %xmm2, %eax
3230 ; AVX512F-NEXT: testb $1, %al
3231 ; AVX512F-NEXT: je LBB51_62
3232 ; AVX512F-NEXT: ## BB#61: ## %cond.load88
3233 ; AVX512F-NEXT: vextracti128 $1, %ymm1, %xmm3
3234 ; AVX512F-NEXT: vpinsrb $14, 30(%rdi), %xmm3, %xmm3
3235 ; AVX512F-NEXT: vinserti128 $1, %xmm3, %ymm1, %ymm1
3236 ; AVX512F-NEXT: LBB51_62: ## %else89
3237 ; AVX512F-NEXT: vpextrb $15, %xmm2, %eax
3238 ; AVX512F-NEXT: testb $1, %al
3239 ; AVX512F-NEXT: je LBB51_64
3240 ; AVX512F-NEXT: ## BB#63: ## %cond.load91
3241 ; AVX512F-NEXT: vextracti128 $1, %ymm1, %xmm2
3242 ; AVX512F-NEXT: vpinsrb $15, 31(%rdi), %xmm2, %xmm2
3243 ; AVX512F-NEXT: vinserti128 $1, %xmm2, %ymm1, %ymm1
3244 ; AVX512F-NEXT: LBB51_64: ## %else92
3245 ; AVX512F-NEXT: vpsllw $7, %ymm0, %ymm0
3246 ; AVX512F-NEXT: vpand {{.*}}(%rip), %ymm0, %ymm0
3247 ; AVX512F-NEXT: vpxor %ymm2, %ymm2, %ymm2
3248 ; AVX512F-NEXT: vpcmpgtb %ymm0, %ymm2, %ymm0
3249 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm0
3250 ; AVX512F-NEXT: retq
4575 ; AVX512F-LABEL: test_mask_load_64xi8:
4576 ; AVX512F: ## BB#0:
4577 ; AVX512F-NEXT: pushq %rbp
4578 ; AVX512F-NEXT: Ltmp0:
4579 ; AVX512F-NEXT: .cfi_def_cfa_offset 16
4580 ; AVX512F-NEXT: pushq %r15
4581 ; AVX512F-NEXT: Ltmp1:
4582 ; AVX512F-NEXT: .cfi_def_cfa_offset 24
4583 ; AVX512F-NEXT: pushq %r14
4584 ; AVX512F-NEXT: Ltmp2:
4585 ; AVX512F-NEXT: .cfi_def_cfa_offset 32
4586 ; AVX512F-NEXT: pushq %r13
4587 ; AVX512F-NEXT: Ltmp3:
4588 ; AVX512F-NEXT: .cfi_def_cfa_offset 40
4589 ; AVX512F-NEXT: pushq %r12
4590 ; AVX512F-NEXT: Ltmp4:
4591 ; AVX512F-NEXT: .cfi_def_cfa_offset 48
4592 ; AVX512F-NEXT: pushq %rbx
4593 ; AVX512F-NEXT: Ltmp5:
4594 ; AVX512F-NEXT: .cfi_def_cfa_offset 56
4595 ; AVX512F-NEXT: subq $76, %rsp
4596 ; AVX512F-NEXT: Ltmp6:
4597 ; AVX512F-NEXT: .cfi_def_cfa_offset 132
4598 ; AVX512F-NEXT: Ltmp7:
4599 ; AVX512F-NEXT: .cfi_offset %rbx, -56
4600 ; AVX512F-NEXT: Ltmp8:
4601 ; AVX512F-NEXT: .cfi_offset %r12, -48
4602 ; AVX512F-NEXT: Ltmp9:
4603 ; AVX512F-NEXT: .cfi_offset %r13, -40
4604 ; AVX512F-NEXT: Ltmp10:
4605 ; AVX512F-NEXT: .cfi_offset %r14, -32
4606 ; AVX512F-NEXT: Ltmp11:
4607 ; AVX512F-NEXT: .cfi_offset %r15, -24
4608 ; AVX512F-NEXT: Ltmp12:
4609 ; AVX512F-NEXT: .cfi_offset %rbp, -16
4610 ; AVX512F-NEXT: vpmovsxbd %xmm0, %zmm0
4611 ; AVX512F-NEXT: vpslld $31, %zmm0, %zmm0
4612 ; AVX512F-NEXT: vptestmd %zmm0, %zmm0, %k0
4613 ; AVX512F-NEXT: kshiftlw $15, %k0, %k1
4614 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1
4615 ; AVX512F-NEXT: kmovw %k1, {{[0-9]+}}(%rsp) ## 2-byte Folded Spill
4616 ; AVX512F-NEXT: kmovw %k1, %eax
4617 ; AVX512F-NEXT: testb %al, %al
4618 ; AVX512F-NEXT: je LBB52_2
4619 ; AVX512F-NEXT: ## BB#1: ## %cond.load
4620 ; AVX512F-NEXT: movzbl (%rdi), %eax
4621 ; AVX512F-NEXT: vmovd %eax, %xmm0
4622 ; AVX512F-NEXT: LBB52_2: ## %else
4623 ; AVX512F-NEXT: kshiftlw $14, %k0, %k1
4624 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1
4625 ; AVX512F-NEXT: kmovw %k1, {{[0-9]+}}(%rsp) ## 2-byte Folded Spill
4626 ; AVX512F-NEXT: kmovw %k1, %eax
4627 ; AVX512F-NEXT: testb %al, %al
4628 ; AVX512F-NEXT: je LBB52_4
4629 ; AVX512F-NEXT: ## BB#3: ## %cond.load1
4630 ; AVX512F-NEXT: vpinsrb $1, 1(%rdi), %xmm0, %xmm6
4631 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm0 = ymm6[0,1,2,3],ymm0[4,5,6,7]
4632 ; AVX512F-NEXT: LBB52_4: ## %else2
4633 ; AVX512F-NEXT: kshiftlw $13, %k0, %k1
4634 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1
4635 ; AVX512F-NEXT: kmovw %k1, {{[0-9]+}}(%rsp) ## 2-byte Folded Spill
4636 ; AVX512F-NEXT: kmovw %k1, %eax
4637 ; AVX512F-NEXT: testb %al, %al
4638 ; AVX512F-NEXT: je LBB52_6
4639 ; AVX512F-NEXT: ## BB#5: ## %cond.load4
4640 ; AVX512F-NEXT: vpinsrb $2, 2(%rdi), %xmm0, %xmm6
4641 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm0 = ymm6[0,1,2,3],ymm0[4,5,6,7]
4642 ; AVX512F-NEXT: LBB52_6: ## %else5
4643 ; AVX512F-NEXT: kshiftlw $12, %k0, %k1
4644 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1
4645 ; AVX512F-NEXT: kmovw %k1, {{[0-9]+}}(%rsp) ## 2-byte Folded Spill
4646 ; AVX512F-NEXT: kmovw %k1, %eax
4647 ; AVX512F-NEXT: testb %al, %al
4648 ; AVX512F-NEXT: je LBB52_8
4649 ; AVX512F-NEXT: ## BB#7: ## %cond.load7
4650 ; AVX512F-NEXT: vpinsrb $3, 3(%rdi), %xmm0, %xmm6
4651 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm0 = ymm6[0,1,2,3],ymm0[4,5,6,7]
4652 ; AVX512F-NEXT: LBB52_8: ## %else8
4653 ; AVX512F-NEXT: kshiftlw $11, %k0, %k1
4654 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1
4655 ; AVX512F-NEXT: kmovw %k1, {{[0-9]+}}(%rsp) ## 2-byte Folded Spill
4656 ; AVX512F-NEXT: kmovw %k1, %eax
4657 ; AVX512F-NEXT: testb %al, %al
4658 ; AVX512F-NEXT: je LBB52_10
4659 ; AVX512F-NEXT: ## BB#9: ## %cond.load10
4660 ; AVX512F-NEXT: vpinsrb $4, 4(%rdi), %xmm0, %xmm6
4661 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm0 = ymm6[0,1,2,3],ymm0[4,5,6,7]
4662 ; AVX512F-NEXT: LBB52_10: ## %else11
4663 ; AVX512F-NEXT: kshiftlw $10, %k0, %k1
4664 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1
4665 ; AVX512F-NEXT: kmovw %k1, {{[0-9]+}}(%rsp) ## 2-byte Folded Spill
4666 ; AVX512F-NEXT: kmovw %k1, %eax
4667 ; AVX512F-NEXT: testb %al, %al
4668 ; AVX512F-NEXT: je LBB52_12
4669 ; AVX512F-NEXT: ## BB#11: ## %cond.load13
4670 ; AVX512F-NEXT: vpinsrb $5, 5(%rdi), %xmm0, %xmm6
4671 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm0 = ymm6[0,1,2,3],ymm0[4,5,6,7]
4672 ; AVX512F-NEXT: LBB52_12: ## %else14
4673 ; AVX512F-NEXT: kshiftlw $9, %k0, %k1
4674 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1
4675 ; AVX512F-NEXT: kmovw %k1, {{[0-9]+}}(%rsp) ## 2-byte Folded Spill
4676 ; AVX512F-NEXT: kmovw %k1, %eax
4677 ; AVX512F-NEXT: testb %al, %al
4678 ; AVX512F-NEXT: je LBB52_14
4679 ; AVX512F-NEXT: ## BB#13: ## %cond.load16
4680 ; AVX512F-NEXT: vpinsrb $6, 6(%rdi), %xmm0, %xmm6
4681 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm0 = ymm6[0,1,2,3],ymm0[4,5,6,7]
4682 ; AVX512F-NEXT: LBB52_14: ## %else17
4683 ; AVX512F-NEXT: kshiftlw $8, %k0, %k1
4684 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1
4685 ; AVX512F-NEXT: kmovw %k1, {{[0-9]+}}(%rsp) ## 2-byte Folded Spill
4686 ; AVX512F-NEXT: kmovw %k1, %eax
4687 ; AVX512F-NEXT: testb %al, %al
4688 ; AVX512F-NEXT: je LBB52_16
4689 ; AVX512F-NEXT: ## BB#15: ## %cond.load19
4690 ; AVX512F-NEXT: vpinsrb $7, 7(%rdi), %xmm0, %xmm6
4691 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm0 = ymm6[0,1,2,3],ymm0[4,5,6,7]
4692 ; AVX512F-NEXT: LBB52_16: ## %else20
4693 ; AVX512F-NEXT: kshiftlw $7, %k0, %k1
4694 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1
4695 ; AVX512F-NEXT: kmovw %k1, {{[0-9]+}}(%rsp) ## 2-byte Folded Spill
4696 ; AVX512F-NEXT: kmovw %k1, %eax
4697 ; AVX512F-NEXT: testb %al, %al
4698 ; AVX512F-NEXT: je LBB52_18
4699 ; AVX512F-NEXT: ## BB#17: ## %cond.load22
4700 ; AVX512F-NEXT: vpinsrb $8, 8(%rdi), %xmm0, %xmm6
4701 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm0 = ymm6[0,1,2,3],ymm0[4,5,6,7]
4702 ; AVX512F-NEXT: LBB52_18: ## %else23
4703 ; AVX512F-NEXT: kshiftlw $6, %k0, %k1
4704 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1
4705 ; AVX512F-NEXT: kmovw %k1, (%rsp) ## 2-byte Folded Spill
4706 ; AVX512F-NEXT: kmovw %k1, %eax
4707 ; AVX512F-NEXT: testb %al, %al
4708 ; AVX512F-NEXT: je LBB52_20
4709 ; AVX512F-NEXT: ## BB#19: ## %cond.load25
4710 ; AVX512F-NEXT: vpinsrb $9, 9(%rdi), %xmm0, %xmm6
4711 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm0 = ymm6[0,1,2,3],ymm0[4,5,6,7]
4712 ; AVX512F-NEXT: LBB52_20: ## %else26
4713 ; AVX512F-NEXT: kshiftlw $5, %k0, %k1
4714 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1
4715 ; AVX512F-NEXT: kmovw %k1, -{{[0-9]+}}(%rsp) ## 2-byte Folded Spill
4716 ; AVX512F-NEXT: kmovw %k1, %eax
4717 ; AVX512F-NEXT: testb %al, %al
4718 ; AVX512F-NEXT: je LBB52_22
4719 ; AVX512F-NEXT: ## BB#21: ## %cond.load28
4720 ; AVX512F-NEXT: vpinsrb $10, 10(%rdi), %xmm0, %xmm6
4721 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm0 = ymm6[0,1,2,3],ymm0[4,5,6,7]
4722 ; AVX512F-NEXT: LBB52_22: ## %else29
4723 ; AVX512F-NEXT: kshiftlw $4, %k0, %k1
4724 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1
4725 ; AVX512F-NEXT: kmovw %k1, -{{[0-9]+}}(%rsp) ## 2-byte Folded Spill
4726 ; AVX512F-NEXT: kmovw %k1, %eax
4727 ; AVX512F-NEXT: testb %al, %al
4728 ; AVX512F-NEXT: je LBB52_24
4729 ; AVX512F-NEXT: ## BB#23: ## %cond.load31
4730 ; AVX512F-NEXT: vpinsrb $11, 11(%rdi), %xmm0, %xmm6
4731 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm0 = ymm6[0,1,2,3],ymm0[4,5,6,7]
4732 ; AVX512F-NEXT: LBB52_24: ## %else32
4733 ; AVX512F-NEXT: kshiftlw $3, %k0, %k1
4734 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1
4735 ; AVX512F-NEXT: kmovw %k1, -{{[0-9]+}}(%rsp) ## 2-byte Folded Spill
4736 ; AVX512F-NEXT: kmovw %k1, %eax
4737 ; AVX512F-NEXT: testb %al, %al
4738 ; AVX512F-NEXT: je LBB52_26
4739 ; AVX512F-NEXT: ## BB#25: ## %cond.load34
4740 ; AVX512F-NEXT: vpinsrb $12, 12(%rdi), %xmm0, %xmm6
4741 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm0 = ymm6[0,1,2,3],ymm0[4,5,6,7]
4742 ; AVX512F-NEXT: LBB52_26: ## %else35
4743 ; AVX512F-NEXT: vpmovsxbd %xmm1, %zmm1
4744 ; AVX512F-NEXT: kshiftlw $2, %k0, %k1
4745 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1
4746 ; AVX512F-NEXT: kmovw %k1, -{{[0-9]+}}(%rsp) ## 2-byte Folded Spill
4747 ; AVX512F-NEXT: kmovw %k1, %eax
4748 ; AVX512F-NEXT: testb %al, %al
4749 ; AVX512F-NEXT: je LBB52_28
4750 ; AVX512F-NEXT: ## BB#27: ## %cond.load37
4751 ; AVX512F-NEXT: vpinsrb $13, 13(%rdi), %xmm0, %xmm6
4752 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm0 = ymm6[0,1,2,3],ymm0[4,5,6,7]
4753 ; AVX512F-NEXT: LBB52_28: ## %else38
4754 ; AVX512F-NEXT: vpslld $31, %zmm1, %zmm1
4755 ; AVX512F-NEXT: kshiftlw $1, %k0, %k1
4756 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1
4757 ; AVX512F-NEXT: kmovw %k1, -{{[0-9]+}}(%rsp) ## 2-byte Folded Spill
4758 ; AVX512F-NEXT: kmovw %k1, %eax
4759 ; AVX512F-NEXT: testb %al, %al
4760 ; AVX512F-NEXT: je LBB52_30
4761 ; AVX512F-NEXT: ## BB#29: ## %cond.load40
4762 ; AVX512F-NEXT: vpinsrb $14, 14(%rdi), %xmm0, %xmm6
4763 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm0 = ymm6[0,1,2,3],ymm0[4,5,6,7]
4764 ; AVX512F-NEXT: LBB52_30: ## %else41
4765 ; AVX512F-NEXT: vptestmd %zmm1, %zmm1, %k1
4766 ; AVX512F-NEXT: kshiftlw $0, %k0, %k0
4767 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0
4768 ; AVX512F-NEXT: kmovw %k0, -{{[0-9]+}}(%rsp) ## 2-byte Folded Spill
4769 ; AVX512F-NEXT: kmovw %k0, %eax
4770 ; AVX512F-NEXT: testb %al, %al
4771 ; AVX512F-NEXT: je LBB52_32
4772 ; AVX512F-NEXT: ## BB#31: ## %cond.load43
4773 ; AVX512F-NEXT: vpinsrb $15, 15(%rdi), %xmm0, %xmm1
4774 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
4775 ; AVX512F-NEXT: LBB52_32: ## %else44
4776 ; AVX512F-NEXT: kshiftlw $15, %k1, %k0
4777 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0
4778 ; AVX512F-NEXT: kmovw %k0, -{{[0-9]+}}(%rsp) ## 2-byte Folded Spill
4779 ; AVX512F-NEXT: kmovw %k0, %eax
4780 ; AVX512F-NEXT: testb %al, %al
4781 ; AVX512F-NEXT: je LBB52_34
4782 ; AVX512F-NEXT: ## BB#33: ## %cond.load46
4783 ; AVX512F-NEXT: vextracti128 $1, %ymm0, %xmm1
4784 ; AVX512F-NEXT: vpinsrb $0, 16(%rdi), %xmm1, %xmm1
4785 ; AVX512F-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm0
4786 ; AVX512F-NEXT: LBB52_34: ## %else47
4787 ; AVX512F-NEXT: kshiftlw $14, %k1, %k0
4788 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0
4789 ; AVX512F-NEXT: kmovw %k0, -{{[0-9]+}}(%rsp) ## 2-byte Folded Spill
4790 ; AVX512F-NEXT: kmovw %k0, %eax
4791 ; AVX512F-NEXT: testb %al, %al
4792 ; AVX512F-NEXT: je LBB52_36
4793 ; AVX512F-NEXT: ## BB#35: ## %cond.load49
4794 ; AVX512F-NEXT: vextracti128 $1, %ymm0, %xmm1
4795 ; AVX512F-NEXT: vpinsrb $1, 17(%rdi), %xmm1, %xmm1
4796 ; AVX512F-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm0
4797 ; AVX512F-NEXT: LBB52_36: ## %else50
4798 ; AVX512F-NEXT: kshiftlw $13, %k1, %k0
4799 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0
4800 ; AVX512F-NEXT: kmovw %k0, -{{[0-9]+}}(%rsp) ## 2-byte Folded Spill
4801 ; AVX512F-NEXT: kmovw %k0, %eax
4802 ; AVX512F-NEXT: testb %al, %al
4803 ; AVX512F-NEXT: je LBB52_38
4804 ; AVX512F-NEXT: ## BB#37: ## %cond.load52
4805 ; AVX512F-NEXT: vextracti128 $1, %ymm0, %xmm1
4806 ; AVX512F-NEXT: vpinsrb $2, 18(%rdi), %xmm1, %xmm1
4807 ; AVX512F-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm0
4808 ; AVX512F-NEXT: LBB52_38: ## %else53
4809 ; AVX512F-NEXT: kshiftlw $12, %k1, %k0
4810 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0
4811 ; AVX512F-NEXT: kmovw %k0, -{{[0-9]+}}(%rsp) ## 2-byte Folded Spill
4812 ; AVX512F-NEXT: kmovw %k0, %eax
4813 ; AVX512F-NEXT: testb %al, %al
4814 ; AVX512F-NEXT: je LBB52_40
4815 ; AVX512F-NEXT: ## BB#39: ## %cond.load55
4816 ; AVX512F-NEXT: vextracti128 $1, %ymm0, %xmm1
4817 ; AVX512F-NEXT: vpinsrb $3, 19(%rdi), %xmm1, %xmm1
4818 ; AVX512F-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm0
4819 ; AVX512F-NEXT: LBB52_40: ## %else56
4820 ; AVX512F-NEXT: kshiftlw $11, %k1, %k0
4821 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0
4822 ; AVX512F-NEXT: kmovw %k0, -{{[0-9]+}}(%rsp) ## 2-byte Folded Spill
4823 ; AVX512F-NEXT: kmovw %k0, %eax
4824 ; AVX512F-NEXT: testb %al, %al
4825 ; AVX512F-NEXT: je LBB52_42
4826 ; AVX512F-NEXT: ## BB#41: ## %cond.load58
4827 ; AVX512F-NEXT: vextracti128 $1, %ymm0, %xmm1
4828 ; AVX512F-NEXT: vpinsrb $4, 20(%rdi), %xmm1, %xmm1
4829 ; AVX512F-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm0
4830 ; AVX512F-NEXT: LBB52_42: ## %else59
4831 ; AVX512F-NEXT: kshiftlw $10, %k1, %k0
4832 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0
4833 ; AVX512F-NEXT: kmovw %k0, -{{[0-9]+}}(%rsp) ## 2-byte Folded Spill
4834 ; AVX512F-NEXT: kmovw %k0, %eax
4835 ; AVX512F-NEXT: testb %al, %al
4836 ; AVX512F-NEXT: je LBB52_44
4837 ; AVX512F-NEXT: ## BB#43: ## %cond.load61
4838 ; AVX512F-NEXT: vextracti128 $1, %ymm0, %xmm1
4839 ; AVX512F-NEXT: vpinsrb $5, 21(%rdi), %xmm1, %xmm1
4840 ; AVX512F-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm0
4841 ; AVX512F-NEXT: LBB52_44: ## %else62
4842 ; AVX512F-NEXT: kshiftlw $9, %k1, %k0
4843 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0
4844 ; AVX512F-NEXT: kmovw %k0, -{{[0-9]+}}(%rsp) ## 2-byte Folded Spill
4845 ; AVX512F-NEXT: kmovw %k0, %eax
4846 ; AVX512F-NEXT: testb %al, %al
4847 ; AVX512F-NEXT: je LBB52_46
4848 ; AVX512F-NEXT: ## BB#45: ## %cond.load64
4849 ; AVX512F-NEXT: vextracti128 $1, %ymm0, %xmm1
4850 ; AVX512F-NEXT: vpinsrb $6, 22(%rdi), %xmm1, %xmm1
4851 ; AVX512F-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm0
4852 ; AVX512F-NEXT: LBB52_46: ## %else65
4853 ; AVX512F-NEXT: kshiftlw $8, %k1, %k0
4854 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0
4855 ; AVX512F-NEXT: kmovw %k0, -{{[0-9]+}}(%rsp) ## 2-byte Folded Spill
4856 ; AVX512F-NEXT: kmovw %k0, %eax
4857 ; AVX512F-NEXT: testb %al, %al
4858 ; AVX512F-NEXT: je LBB52_48
4859 ; AVX512F-NEXT: ## BB#47: ## %cond.load67
4860 ; AVX512F-NEXT: vextracti128 $1, %ymm0, %xmm1
4861 ; AVX512F-NEXT: vpinsrb $7, 23(%rdi), %xmm1, %xmm1
4862 ; AVX512F-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm0
4863 ; AVX512F-NEXT: LBB52_48: ## %else68
4864 ; AVX512F-NEXT: kshiftlw $7, %k1, %k0
4865 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0
4866 ; AVX512F-NEXT: kmovw %k0, -{{[0-9]+}}(%rsp) ## 2-byte Folded Spill
4867 ; AVX512F-NEXT: kmovw %k0, %eax
4868 ; AVX512F-NEXT: testb %al, %al
4869 ; AVX512F-NEXT: je LBB52_50
4870 ; AVX512F-NEXT: ## BB#49: ## %cond.load70
4871 ; AVX512F-NEXT: vextracti128 $1, %ymm0, %xmm1
4872 ; AVX512F-NEXT: vpinsrb $8, 24(%rdi), %xmm1, %xmm1
4873 ; AVX512F-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm0
4874 ; AVX512F-NEXT: LBB52_50: ## %else71
4875 ; AVX512F-NEXT: kshiftlw $6, %k1, %k0
4876 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0
4877 ; AVX512F-NEXT: kmovw %k0, -{{[0-9]+}}(%rsp) ## 2-byte Folded Spill
4878 ; AVX512F-NEXT: kmovw %k0, %eax
4879 ; AVX512F-NEXT: testb %al, %al
4880 ; AVX512F-NEXT: je LBB52_52
4881 ; AVX512F-NEXT: ## BB#51: ## %cond.load73
4882 ; AVX512F-NEXT: vextracti128 $1, %ymm0, %xmm1
4883 ; AVX512F-NEXT: vpinsrb $9, 25(%rdi), %xmm1, %xmm1
4884 ; AVX512F-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm0
4885 ; AVX512F-NEXT: LBB52_52: ## %else74
4886 ; AVX512F-NEXT: kshiftlw $5, %k1, %k0
4887 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0
4888 ; AVX512F-NEXT: kmovw %k0, -{{[0-9]+}}(%rsp) ## 2-byte Folded Spill
4889 ; AVX512F-NEXT: kmovw %k0, %eax
4890 ; AVX512F-NEXT: testb %al, %al
4891 ; AVX512F-NEXT: je LBB52_54
4892 ; AVX512F-NEXT: ## BB#53: ## %cond.load76
4893 ; AVX512F-NEXT: vextracti128 $1, %ymm0, %xmm1
4894 ; AVX512F-NEXT: vpinsrb $10, 26(%rdi), %xmm1, %xmm1
4895 ; AVX512F-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm0
4896 ; AVX512F-NEXT: LBB52_54: ## %else77
4897 ; AVX512F-NEXT: kshiftlw $4, %k1, %k0
4898 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0
4899 ; AVX512F-NEXT: kmovw %k0, -{{[0-9]+}}(%rsp) ## 2-byte Folded Spill
4900 ; AVX512F-NEXT: kmovw %k0, %eax
4901 ; AVX512F-NEXT: testb %al, %al
4902 ; AVX512F-NEXT: je LBB52_56
4903 ; AVX512F-NEXT: ## BB#55: ## %cond.load79
4904 ; AVX512F-NEXT: vextracti128 $1, %ymm0, %xmm1
4905 ; AVX512F-NEXT: vpinsrb $11, 27(%rdi), %xmm1, %xmm1
4906 ; AVX512F-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm0
4907 ; AVX512F-NEXT: LBB52_56: ## %else80
4908 ; AVX512F-NEXT: kshiftlw $3, %k1, %k0
4909 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0
4910 ; AVX512F-NEXT: kmovw %k0, -{{[0-9]+}}(%rsp) ## 2-byte Folded Spill
4911 ; AVX512F-NEXT: kmovw %k0, %eax
4912 ; AVX512F-NEXT: testb %al, %al
4913 ; AVX512F-NEXT: je LBB52_58
4914 ; AVX512F-NEXT: ## BB#57: ## %cond.load82
4915 ; AVX512F-NEXT: vextracti128 $1, %ymm0, %xmm1
4916 ; AVX512F-NEXT: vpinsrb $12, 28(%rdi), %xmm1, %xmm1
4917 ; AVX512F-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm0
4918 ; AVX512F-NEXT: LBB52_58: ## %else83
4919 ; AVX512F-NEXT: vpmovsxbd %xmm2, %zmm1
4920 ; AVX512F-NEXT: kshiftlw $2, %k1, %k0
4921 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0
4922 ; AVX512F-NEXT: kmovw %k0, -{{[0-9]+}}(%rsp) ## 2-byte Folded Spill
4923 ; AVX512F-NEXT: kmovw %k0, %eax
4924 ; AVX512F-NEXT: testb %al, %al
4925 ; AVX512F-NEXT: je LBB52_60
4926 ; AVX512F-NEXT: ## BB#59: ## %cond.load85
4927 ; AVX512F-NEXT: vextracti128 $1, %ymm0, %xmm2
4928 ; AVX512F-NEXT: vpinsrb $13, 29(%rdi), %xmm2, %xmm2
4929 ; AVX512F-NEXT: vinserti128 $1, %xmm2, %ymm0, %ymm0
4930 ; AVX512F-NEXT: LBB52_60: ## %else86
4931 ; AVX512F-NEXT: vpslld $31, %zmm1, %zmm1
4932 ; AVX512F-NEXT: kshiftlw $1, %k1, %k0
4933 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0
4934 ; AVX512F-NEXT: kmovw %k0, -{{[0-9]+}}(%rsp) ## 2-byte Folded Spill
4935 ; AVX512F-NEXT: kmovw %k0, %eax
4936 ; AVX512F-NEXT: testb %al, %al
4937 ; AVX512F-NEXT: je LBB52_62
4938 ; AVX512F-NEXT: ## BB#61: ## %cond.load88
4939 ; AVX512F-NEXT: vextracti128 $1, %ymm0, %xmm2
4940 ; AVX512F-NEXT: vpinsrb $14, 30(%rdi), %xmm2, %xmm2
4941 ; AVX512F-NEXT: vinserti128 $1, %xmm2, %ymm0, %ymm0
4942 ; AVX512F-NEXT: LBB52_62: ## %else89
4943 ; AVX512F-NEXT: vptestmd %zmm1, %zmm1, %k0
4944 ; AVX512F-NEXT: kshiftlw $0, %k1, %k1
4945 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1
4946 ; AVX512F-NEXT: kmovw %k1, -{{[0-9]+}}(%rsp) ## 2-byte Folded Spill
4947 ; AVX512F-NEXT: kmovw %k1, %eax
4948 ; AVX512F-NEXT: testb %al, %al
4949 ; AVX512F-NEXT: je LBB52_64
4950 ; AVX512F-NEXT: ## BB#63: ## %cond.load91
4951 ; AVX512F-NEXT: vextracti128 $1, %ymm0, %xmm1
4952 ; AVX512F-NEXT: vpinsrb $15, 31(%rdi), %xmm1, %xmm1
4953 ; AVX512F-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm0
4954 ; AVX512F-NEXT: LBB52_64: ## %else92
4955 ; AVX512F-NEXT: kshiftlw $15, %k0, %k1
4956 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1
4957 ; AVX512F-NEXT: kmovw %k1, {{[0-9]+}}(%rsp) ## 2-byte Folded Spill
4958 ; AVX512F-NEXT: kmovw %k1, %eax
4959 ; AVX512F-NEXT: testb %al, %al
4960 ; AVX512F-NEXT: je LBB52_66
4961 ; AVX512F-NEXT: ## BB#65: ## %cond.load94
4962 ; AVX512F-NEXT: vpinsrb $0, 32(%rdi), %xmm0, %xmm1
4963 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm0[4,5,6,7]
4964 ; AVX512F-NEXT: LBB52_66: ## %else95
4965 ; AVX512F-NEXT: kshiftlw $14, %k0, %k1
4966 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1
4967 ; AVX512F-NEXT: kmovw %k1, -{{[0-9]+}}(%rsp) ## 2-byte Folded Spill
4968 ; AVX512F-NEXT: kmovw %k1, %eax
4969 ; AVX512F-NEXT: testb %al, %al
4970 ; AVX512F-NEXT: je LBB52_68
4971 ; AVX512F-NEXT: ## BB#67: ## %cond.load97
4972 ; AVX512F-NEXT: vpinsrb $1, 33(%rdi), %xmm1, %xmm2
4973 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
4974 ; AVX512F-NEXT: LBB52_68: ## %else98
4975 ; AVX512F-NEXT: kshiftlw $13, %k0, %k1
4976 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1
4977 ; AVX512F-NEXT: kmovw %k1, {{[0-9]+}}(%rsp) ## 2-byte Folded Spill
4978 ; AVX512F-NEXT: kmovw %k1, %eax
4979 ; AVX512F-NEXT: testb %al, %al
4980 ; AVX512F-NEXT: je LBB52_70
4981 ; AVX512F-NEXT: ## BB#69: ## %cond.load100
4982 ; AVX512F-NEXT: vpinsrb $2, 34(%rdi), %xmm1, %xmm2
4983 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
4984 ; AVX512F-NEXT: LBB52_70: ## %else101
4985 ; AVX512F-NEXT: kshiftlw $12, %k0, %k1
4986 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1
4987 ; AVX512F-NEXT: kmovw %k1, {{[0-9]+}}(%rsp) ## 2-byte Folded Spill
4988 ; AVX512F-NEXT: kmovw %k1, %eax
4989 ; AVX512F-NEXT: testb %al, %al
4990 ; AVX512F-NEXT: je LBB52_72
4991 ; AVX512F-NEXT: ## BB#71: ## %cond.load103
4992 ; AVX512F-NEXT: vpinsrb $3, 35(%rdi), %xmm1, %xmm2
4993 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
4994 ; AVX512F-NEXT: LBB52_72: ## %else104
4995 ; AVX512F-NEXT: kshiftlw $11, %k0, %k1
4996 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1
4997 ; AVX512F-NEXT: kmovw %k1, {{[0-9]+}}(%rsp) ## 2-byte Folded Spill
4998 ; AVX512F-NEXT: kmovw %k1, %eax
4999 ; AVX512F-NEXT: testb %al, %al
5000 ; AVX512F-NEXT: je LBB52_74
5001 ; AVX512F-NEXT: ## BB#73: ## %cond.load106
5002 ; AVX512F-NEXT: vpinsrb $4, 36(%rdi), %xmm1, %xmm2
5003 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
5004 ; AVX512F-NEXT: LBB52_74: ## %else107
5005 ; AVX512F-NEXT: kshiftlw $10, %k0, %k1
5006 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1
5007 ; AVX512F-NEXT: kmovw %k1, {{[0-9]+}}(%rsp) ## 2-byte Folded Spill
5008 ; AVX512F-NEXT: kmovw %k1, %eax
5009 ; AVX512F-NEXT: testb %al, %al
5010 ; AVX512F-NEXT: je LBB52_76
5011 ; AVX512F-NEXT: ## BB#75: ## %cond.load109
5012 ; AVX512F-NEXT: vpinsrb $5, 37(%rdi), %xmm1, %xmm2
5013 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
5014 ; AVX512F-NEXT: LBB52_76: ## %else110
5015 ; AVX512F-NEXT: kshiftlw $9, %k0, %k1
5016 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1
5017 ; AVX512F-NEXT: kmovw %k1, {{[0-9]+}}(%rsp) ## 2-byte Folded Spill
5018 ; AVX512F-NEXT: kmovw %k1, %eax
5019 ; AVX512F-NEXT: testb %al, %al
5020 ; AVX512F-NEXT: je LBB52_78
5021 ; AVX512F-NEXT: ## BB#77: ## %cond.load112
5022 ; AVX512F-NEXT: vpinsrb $6, 38(%rdi), %xmm1, %xmm2
5023 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
5024 ; AVX512F-NEXT: LBB52_78: ## %else113
5025 ; AVX512F-NEXT: kshiftlw $8, %k0, %k1
5026 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1
5027 ; AVX512F-NEXT: kmovw %k1, {{[0-9]+}}(%rsp) ## 2-byte Folded Spill
5028 ; AVX512F-NEXT: kmovw %k1, %eax
5029 ; AVX512F-NEXT: testb %al, %al
5030 ; AVX512F-NEXT: je LBB52_80
5031 ; AVX512F-NEXT: ## BB#79: ## %cond.load115
5032 ; AVX512F-NEXT: vpinsrb $7, 39(%rdi), %xmm1, %xmm2
5033 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
5034 ; AVX512F-NEXT: LBB52_80: ## %else116
5035 ; AVX512F-NEXT: kshiftlw $7, %k0, %k1
5036 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1
5037 ; AVX512F-NEXT: kmovw %k1, {{[0-9]+}}(%rsp) ## 2-byte Folded Spill
5038 ; AVX512F-NEXT: kmovw %k1, %eax
5039 ; AVX512F-NEXT: testb %al, %al
5040 ; AVX512F-NEXT: je LBB52_82
5041 ; AVX512F-NEXT: ## BB#81: ## %cond.load118
5042 ; AVX512F-NEXT: vpinsrb $8, 40(%rdi), %xmm1, %xmm2
5043 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
5044 ; AVX512F-NEXT: LBB52_82: ## %else119
5045 ; AVX512F-NEXT: kshiftlw $6, %k0, %k1
5046 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1
5047 ; AVX512F-NEXT: kmovw %k1, {{[0-9]+}}(%rsp) ## 2-byte Folded Spill
5048 ; AVX512F-NEXT: kmovw %k1, %eax
5049 ; AVX512F-NEXT: testb %al, %al
5050 ; AVX512F-NEXT: je LBB52_84
5051 ; AVX512F-NEXT: ## BB#83: ## %cond.load121
5052 ; AVX512F-NEXT: vpinsrb $9, 41(%rdi), %xmm1, %xmm2
5053 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
5054 ; AVX512F-NEXT: LBB52_84: ## %else122
5055 ; AVX512F-NEXT: kshiftlw $5, %k0, %k1
5056 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1
5057 ; AVX512F-NEXT: kmovw %k1, {{[0-9]+}}(%rsp) ## 2-byte Folded Spill
5058 ; AVX512F-NEXT: kmovw %k1, %eax
5059 ; AVX512F-NEXT: testb %al, %al
5060 ; AVX512F-NEXT: je LBB52_86
5061 ; AVX512F-NEXT: ## BB#85: ## %cond.load124
5062 ; AVX512F-NEXT: vpinsrb $10, 42(%rdi), %xmm1, %xmm2
5063 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
5064 ; AVX512F-NEXT: LBB52_86: ## %else125
5065 ; AVX512F-NEXT: kshiftlw $4, %k0, %k1
5066 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1
5067 ; AVX512F-NEXT: kmovw %k1, {{[0-9]+}}(%rsp) ## 2-byte Folded Spill
5068 ; AVX512F-NEXT: kmovw %k1, %eax
5069 ; AVX512F-NEXT: testb %al, %al
5070 ; AVX512F-NEXT: je LBB52_88
5071 ; AVX512F-NEXT: ## BB#87: ## %cond.load127
5072 ; AVX512F-NEXT: vpinsrb $11, 43(%rdi), %xmm1, %xmm2
5073 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
5074 ; AVX512F-NEXT: LBB52_88: ## %else128
5075 ; AVX512F-NEXT: kshiftlw $3, %k0, %k1
5076 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1
5077 ; AVX512F-NEXT: kmovw %k1, {{[0-9]+}}(%rsp) ## 2-byte Folded Spill
5078 ; AVX512F-NEXT: kmovw %k1, %eax
5079 ; AVX512F-NEXT: testb %al, %al
5080 ; AVX512F-NEXT: je LBB52_90
5081 ; AVX512F-NEXT: ## BB#89: ## %cond.load130
5082 ; AVX512F-NEXT: vpinsrb $12, 44(%rdi), %xmm1, %xmm2
5083 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
5084 ; AVX512F-NEXT: LBB52_90: ## %else131
5085 ; AVX512F-NEXT: vpmovsxbd %xmm3, %zmm2
5086 ; AVX512F-NEXT: kshiftlw $2, %k0, %k1
5087 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1
5088 ; AVX512F-NEXT: kmovw %k1, {{[0-9]+}}(%rsp) ## 2-byte Folded Spill
5089 ; AVX512F-NEXT: kmovw %k1, %eax
5090 ; AVX512F-NEXT: testb %al, %al
5091 ; AVX512F-NEXT: je LBB52_92
5092 ; AVX512F-NEXT: ## BB#91: ## %cond.load133
5093 ; AVX512F-NEXT: vpinsrb $13, 45(%rdi), %xmm1, %xmm3
5094 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm1 = ymm3[0,1,2,3],ymm1[4,5,6,7]
5095 ; AVX512F-NEXT: LBB52_92: ## %else134
5096 ; AVX512F-NEXT: vpslld $31, %zmm2, %zmm2
5097 ; AVX512F-NEXT: kshiftlw $1, %k0, %k1
5098 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1
5099 ; AVX512F-NEXT: kmovw %k1, {{[0-9]+}}(%rsp) ## 2-byte Folded Spill
5100 ; AVX512F-NEXT: kmovw %k1, %eax
5101 ; AVX512F-NEXT: testb %al, %al
5102 ; AVX512F-NEXT: je LBB52_94
5103 ; AVX512F-NEXT: ## BB#93: ## %cond.load136
5104 ; AVX512F-NEXT: vpinsrb $14, 46(%rdi), %xmm1, %xmm3
5105 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm1 = ymm3[0,1,2,3],ymm1[4,5,6,7]
5106 ; AVX512F-NEXT: LBB52_94: ## %else137
5107 ; AVX512F-NEXT: vptestmd %zmm2, %zmm2, %k1
5108 ; AVX512F-NEXT: kshiftlw $0, %k0, %k0
5109 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0
5110 ; AVX512F-NEXT: kmovw %k0, {{[0-9]+}}(%rsp) ## 2-byte Folded Spill
5111 ; AVX512F-NEXT: kmovw %k0, %eax
5112 ; AVX512F-NEXT: testb %al, %al
5113 ; AVX512F-NEXT: je LBB52_96
5114 ; AVX512F-NEXT: ## BB#95: ## %cond.load139
5115 ; AVX512F-NEXT: vpinsrb $15, 47(%rdi), %xmm1, %xmm2
5116 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
5117 ; AVX512F-NEXT: LBB52_96: ## %else140
5118 ; AVX512F-NEXT: kshiftlw $15, %k1, %k0
5119 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0
5120 ; AVX512F-NEXT: kmovw %k0, -{{[0-9]+}}(%rsp) ## 2-byte Folded Spill
5121 ; AVX512F-NEXT: kmovw %k0, %eax
5122 ; AVX512F-NEXT: testb %al, %al
5123 ; AVX512F-NEXT: je LBB52_98
5124 ; AVX512F-NEXT: ## BB#97: ## %cond.load142
5125 ; AVX512F-NEXT: vextracti128 $1, %ymm1, %xmm2
5126 ; AVX512F-NEXT: vpinsrb $0, 48(%rdi), %xmm2, %xmm2
5127 ; AVX512F-NEXT: vinserti128 $1, %xmm2, %ymm1, %ymm1
5128 ; AVX512F-NEXT: LBB52_98: ## %else143
5129 ; AVX512F-NEXT: kshiftlw $14, %k1, %k0
5130 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0
5131 ; AVX512F-NEXT: kmovw %k0, -{{[0-9]+}}(%rsp) ## 2-byte Folded Spill
5132 ; AVX512F-NEXT: kmovw %k0, %eax
5133 ; AVX512F-NEXT: testb %al, %al
5134 ; AVX512F-NEXT: je LBB52_100
5135 ; AVX512F-NEXT: ## BB#99: ## %cond.load145
5136 ; AVX512F-NEXT: vextracti128 $1, %ymm1, %xmm2
5137 ; AVX512F-NEXT: vpinsrb $1, 49(%rdi), %xmm2, %xmm2
5138 ; AVX512F-NEXT: vinserti128 $1, %xmm2, %ymm1, %ymm1
5139 ; AVX512F-NEXT: LBB52_100: ## %else146
5140 ; AVX512F-NEXT: kshiftlw $13, %k1, %k0
5141 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0
5142 ; AVX512F-NEXT: kmovw %k0, -{{[0-9]+}}(%rsp) ## 2-byte Folded Spill
5143 ; AVX512F-NEXT: kmovw %k0, %eax
5144 ; AVX512F-NEXT: testb %al, %al
5145 ; AVX512F-NEXT: je LBB52_102
5146 ; AVX512F-NEXT: ## BB#101: ## %cond.load148
5147 ; AVX512F-NEXT: vextracti128 $1, %ymm1, %xmm2
5148 ; AVX512F-NEXT: vpinsrb $2, 50(%rdi), %xmm2, %xmm2
5149 ; AVX512F-NEXT: vinserti128 $1, %xmm2, %ymm1, %ymm1
5150 ; AVX512F-NEXT: LBB52_102: ## %else149
5151 ; AVX512F-NEXT: kshiftlw $12, %k1, %k0
5152 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0
5153 ; AVX512F-NEXT: kmovw %k0, -{{[0-9]+}}(%rsp) ## 2-byte Folded Spill
5154 ; AVX512F-NEXT: kmovw %k0, %eax
5155 ; AVX512F-NEXT: testb %al, %al
5156 ; AVX512F-NEXT: je LBB52_104
5157 ; AVX512F-NEXT: ## BB#103: ## %cond.load151
5158 ; AVX512F-NEXT: vextracti128 $1, %ymm1, %xmm2
5159 ; AVX512F-NEXT: vpinsrb $3, 51(%rdi), %xmm2, %xmm2
5160 ; AVX512F-NEXT: vinserti128 $1, %xmm2, %ymm1, %ymm1
5161 ; AVX512F-NEXT: LBB52_104: ## %else152
5162 ; AVX512F-NEXT: kshiftlw $11, %k1, %k0
5163 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0
5164 ; AVX512F-NEXT: kmovw %k0, -{{[0-9]+}}(%rsp) ## 2-byte Folded Spill
5165 ; AVX512F-NEXT: kmovw %k0, %eax
5166 ; AVX512F-NEXT: testb %al, %al
5167 ; AVX512F-NEXT: je LBB52_106
5168 ; AVX512F-NEXT: ## BB#105: ## %cond.load154
5169 ; AVX512F-NEXT: vextracti128 $1, %ymm1, %xmm2
5170 ; AVX512F-NEXT: vpinsrb $4, 52(%rdi), %xmm2, %xmm2
5171 ; AVX512F-NEXT: vinserti128 $1, %xmm2, %ymm1, %ymm1
5172 ; AVX512F-NEXT: LBB52_106: ## %else155
5173 ; AVX512F-NEXT: kshiftlw $10, %k1, %k0
5174 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0
5175 ; AVX512F-NEXT: kmovw %k0, -{{[0-9]+}}(%rsp) ## 2-byte Folded Spill
5176 ; AVX512F-NEXT: kmovw %k0, %eax
5177 ; AVX512F-NEXT: testb %al, %al
5178 ; AVX512F-NEXT: je LBB52_108
5179 ; AVX512F-NEXT: ## BB#107: ## %cond.load157
5180 ; AVX512F-NEXT: vextracti128 $1, %ymm1, %xmm2
5181 ; AVX512F-NEXT: vpinsrb $5, 53(%rdi), %xmm2, %xmm2
5182 ; AVX512F-NEXT: vinserti128 $1, %xmm2, %ymm1, %ymm1
5183 ; AVX512F-NEXT: LBB52_108: ## %else158
5184 ; AVX512F-NEXT: kshiftlw $9, %k1, %k0
5185 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0
5186 ; AVX512F-NEXT: kmovw %k0, -{{[0-9]+}}(%rsp) ## 2-byte Folded Spill
5187 ; AVX512F-NEXT: kmovw %k0, %eax
5188 ; AVX512F-NEXT: testb %al, %al
5189 ; AVX512F-NEXT: je LBB52_110
5190 ; AVX512F-NEXT: ## BB#109: ## %cond.load160
5191 ; AVX512F-NEXT: vextracti128 $1, %ymm1, %xmm2
5192 ; AVX512F-NEXT: vpinsrb $6, 54(%rdi), %xmm2, %xmm2
5193 ; AVX512F-NEXT: vinserti128 $1, %xmm2, %ymm1, %ymm1
5194 ; AVX512F-NEXT: LBB52_110: ## %else161
5195 ; AVX512F-NEXT: kshiftlw $8, %k1, %k0
5196 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0
5197 ; AVX512F-NEXT: kmovw %k0, -{{[0-9]+}}(%rsp) ## 2-byte Folded Spill
5198 ; AVX512F-NEXT: kmovw %k0, %eax
5199 ; AVX512F-NEXT: testb %al, %al
5200 ; AVX512F-NEXT: je LBB52_112
5201 ; AVX512F-NEXT: ## BB#111: ## %cond.load163
5202 ; AVX512F-NEXT: vextracti128 $1, %ymm1, %xmm2
5203 ; AVX512F-NEXT: vpinsrb $7, 55(%rdi), %xmm2, %xmm2
5204 ; AVX512F-NEXT: vinserti128 $1, %xmm2, %ymm1, %ymm1
5205 ; AVX512F-NEXT: LBB52_112: ## %else164
5206 ; AVX512F-NEXT: kshiftlw $7, %k1, %k0
5207 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0
5208 ; AVX512F-NEXT: kmovw %k0, -{{[0-9]+}}(%rsp) ## 2-byte Folded Spill
5209 ; AVX512F-NEXT: kmovw %k0, %eax
5210 ; AVX512F-NEXT: testb %al, %al
5211 ; AVX512F-NEXT: je LBB52_114
5212 ; AVX512F-NEXT: ## BB#113: ## %cond.load166
5213 ; AVX512F-NEXT: vextracti128 $1, %ymm1, %xmm2
5214 ; AVX512F-NEXT: vpinsrb $8, 56(%rdi), %xmm2, %xmm2
5215 ; AVX512F-NEXT: vinserti128 $1, %xmm2, %ymm1, %ymm1
5216 ; AVX512F-NEXT: LBB52_114: ## %else167
5217 ; AVX512F-NEXT: kshiftlw $6, %k1, %k2
5218 ; AVX512F-NEXT: kshiftrw $15, %k2, %k2
5219 ; AVX512F-NEXT: kmovw %k2, %eax
5220 ; AVX512F-NEXT: testb %al, %al
5221 ; AVX512F-NEXT: je LBB52_116
5222 ; AVX512F-NEXT: ## BB#115: ## %cond.load169
5223 ; AVX512F-NEXT: vextracti128 $1, %ymm1, %xmm2
5224 ; AVX512F-NEXT: vpinsrb $9, 57(%rdi), %xmm2, %xmm2
5225 ; AVX512F-NEXT: vinserti128 $1, %xmm2, %ymm1, %ymm1
5226 ; AVX512F-NEXT: LBB52_116: ## %else170
5227 ; AVX512F-NEXT: kshiftlw $5, %k1, %k3
5228 ; AVX512F-NEXT: kshiftrw $15, %k3, %k3
5229 ; AVX512F-NEXT: kmovw %k3, %eax
5230 ; AVX512F-NEXT: testb %al, %al
5231 ; AVX512F-NEXT: je LBB52_118
5232 ; AVX512F-NEXT: ## BB#117: ## %cond.load172
5233 ; AVX512F-NEXT: vextracti128 $1, %ymm1, %xmm2
5234 ; AVX512F-NEXT: vpinsrb $10, 58(%rdi), %xmm2, %xmm2
5235 ; AVX512F-NEXT: vinserti128 $1, %xmm2, %ymm1, %ymm1
5236 ; AVX512F-NEXT: LBB52_118: ## %else173
5237 ; AVX512F-NEXT: kshiftlw $4, %k1, %k4
5238 ; AVX512F-NEXT: kshiftrw $15, %k4, %k4
5239 ; AVX512F-NEXT: kmovw %k4, %eax
5240 ; AVX512F-NEXT: testb %al, %al
5241 ; AVX512F-NEXT: je LBB52_120
5242 ; AVX512F-NEXT: ## BB#119: ## %cond.load175
5243 ; AVX512F-NEXT: vextracti128 $1, %ymm1, %xmm2
5244 ; AVX512F-NEXT: vpinsrb $11, 59(%rdi), %xmm2, %xmm2
5245 ; AVX512F-NEXT: vinserti128 $1, %xmm2, %ymm1, %ymm1
5246 ; AVX512F-NEXT: LBB52_120: ## %else176
5247 ; AVX512F-NEXT: kshiftlw $3, %k1, %k5
5248 ; AVX512F-NEXT: kshiftrw $15, %k5, %k5
5249 ; AVX512F-NEXT: kmovw %k5, %eax
5250 ; AVX512F-NEXT: testb %al, %al
5251 ; AVX512F-NEXT: je LBB52_122
5252 ; AVX512F-NEXT: ## BB#121: ## %cond.load178
5253 ; AVX512F-NEXT: vextracti128 $1, %ymm1, %xmm2
5254 ; AVX512F-NEXT: vpinsrb $12, 60(%rdi), %xmm2, %xmm2
5255 ; AVX512F-NEXT: vinserti128 $1, %xmm2, %ymm1, %ymm1
5256 ; AVX512F-NEXT: LBB52_122: ## %else179
5257 ; AVX512F-NEXT: kshiftlw $2, %k1, %k6
5258 ; AVX512F-NEXT: kshiftrw $15, %k6, %k6
5259 ; AVX512F-NEXT: kmovw %k6, %eax
5260 ; AVX512F-NEXT: testb %al, %al
5261 ; AVX512F-NEXT: je LBB52_124
5262 ; AVX512F-NEXT: ## BB#123: ## %cond.load181
5263 ; AVX512F-NEXT: vextracti128 $1, %ymm1, %xmm2
5264 ; AVX512F-NEXT: vpinsrb $13, 61(%rdi), %xmm2, %xmm2
5265 ; AVX512F-NEXT: vinserti128 $1, %xmm2, %ymm1, %ymm1
5266 ; AVX512F-NEXT: LBB52_124: ## %else182
5267 ; AVX512F-NEXT: kshiftlw $1, %k1, %k7
5268 ; AVX512F-NEXT: kshiftrw $15, %k7, %k7
5269 ; AVX512F-NEXT: kmovw %k7, %eax
5270 ; AVX512F-NEXT: testb %al, %al
5271 ; AVX512F-NEXT: je LBB52_126
5272 ; AVX512F-NEXT: ## BB#125: ## %cond.load184
5273 ; AVX512F-NEXT: vextracti128 $1, %ymm1, %xmm2
5274 ; AVX512F-NEXT: vpinsrb $14, 62(%rdi), %xmm2, %xmm2
5275 ; AVX512F-NEXT: vinserti128 $1, %xmm2, %ymm1, %ymm1
5276 ; AVX512F-NEXT: LBB52_126: ## %else185
5277 ; AVX512F-NEXT: kshiftlw $0, %k1, %k1
5278 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1
5279 ; AVX512F-NEXT: kmovw %k1, %eax
5280 ; AVX512F-NEXT: testb %al, %al
5281 ; AVX512F-NEXT: je LBB52_128
5282 ; AVX512F-NEXT: ## BB#127: ## %cond.load187
5283 ; AVX512F-NEXT: vextracti128 $1, %ymm1, %xmm2
5284 ; AVX512F-NEXT: vpinsrb $15, 63(%rdi), %xmm2, %xmm2
5285 ; AVX512F-NEXT: vinserti128 $1, %xmm2, %ymm1, %ymm1
5286 ; AVX512F-NEXT: LBB52_128: ## %else188
5287 ; AVX512F-NEXT: kmovw -{{[0-9]+}}(%rsp), %k0 ## 2-byte Folded Reload
5288 ; AVX512F-NEXT: kmovw %k0, %eax
5289 ; AVX512F-NEXT: movl %eax, -{{[0-9]+}}(%rsp) ## 4-byte Spill
5290 ; AVX512F-NEXT: kmovw -{{[0-9]+}}(%rsp), %k0 ## 2-byte Folded Reload
5291 ; AVX512F-NEXT: kmovw %k0, %eax
5292 ; AVX512F-NEXT: movl %eax, -{{[0-9]+}}(%rsp) ## 4-byte Spill
5293 ; AVX512F-NEXT: kmovw -{{[0-9]+}}(%rsp), %k0 ## 2-byte Folded Reload
5294 ; AVX512F-NEXT: kmovw %k0, %eax
5295 ; AVX512F-NEXT: movl %eax, -{{[0-9]+}}(%rsp) ## 4-byte Spill
5296 ; AVX512F-NEXT: kmovw -{{[0-9]+}}(%rsp), %k0 ## 2-byte Folded Reload
5297 ; AVX512F-NEXT: kmovw %k0, %eax
5298 ; AVX512F-NEXT: movl %eax, -{{[0-9]+}}(%rsp) ## 4-byte Spill
5299 ; AVX512F-NEXT: kmovw -{{[0-9]+}}(%rsp), %k0 ## 2-byte Folded Reload
5300 ; AVX512F-NEXT: kmovw %k0, %eax
5301 ; AVX512F-NEXT: movl %eax, -{{[0-9]+}}(%rsp) ## 4-byte Spill
5302 ; AVX512F-NEXT: kmovw -{{[0-9]+}}(%rsp), %k0 ## 2-byte Folded Reload
5303 ; AVX512F-NEXT: kmovw %k0, %eax
5304 ; AVX512F-NEXT: movl %eax, -{{[0-9]+}}(%rsp) ## 4-byte Spill
5305 ; AVX512F-NEXT: kmovw -{{[0-9]+}}(%rsp), %k0 ## 2-byte Folded Reload
5306 ; AVX512F-NEXT: kmovw %k0, %eax
5307 ; AVX512F-NEXT: movl %eax, -{{[0-9]+}}(%rsp) ## 4-byte Spill
5308 ; AVX512F-NEXT: kmovw -{{[0-9]+}}(%rsp), %k0 ## 2-byte Folded Reload
5309 ; AVX512F-NEXT: kmovw %k0, %eax
5310 ; AVX512F-NEXT: movl %eax, -{{[0-9]+}}(%rsp) ## 4-byte Spill
5311 ; AVX512F-NEXT: kmovw -{{[0-9]+}}(%rsp), %k0 ## 2-byte Folded Reload
5312 ; AVX512F-NEXT: kmovw %k0, %eax
5313 ; AVX512F-NEXT: movl %eax, -{{[0-9]+}}(%rsp) ## 4-byte Spill
5314 ; AVX512F-NEXT: kmovw -{{[0-9]+}}(%rsp), %k0 ## 2-byte Folded Reload
5315 ; AVX512F-NEXT: kmovw %k0, %eax
5316 ; AVX512F-NEXT: movl %eax, -{{[0-9]+}}(%rsp) ## 4-byte Spill
5317 ; AVX512F-NEXT: kmovw -{{[0-9]+}}(%rsp), %k0 ## 2-byte Folded Reload
5318 ; AVX512F-NEXT: kmovw %k0, %eax
5319 ; AVX512F-NEXT: movl %eax, -{{[0-9]+}}(%rsp) ## 4-byte Spill
5320 ; AVX512F-NEXT: kmovw -{{[0-9]+}}(%rsp), %k0 ## 2-byte Folded Reload
5321 ; AVX512F-NEXT: kmovw %k0, %eax
5322 ; AVX512F-NEXT: movl %eax, -{{[0-9]+}}(%rsp) ## 4-byte Spill
5323 ; AVX512F-NEXT: kmovw -{{[0-9]+}}(%rsp), %k0 ## 2-byte Folded Reload
5324 ; AVX512F-NEXT: kmovw %k0, %eax
5325 ; AVX512F-NEXT: movl %eax, -{{[0-9]+}}(%rsp) ## 4-byte Spill
5326 ; AVX512F-NEXT: kmovw -{{[0-9]+}}(%rsp), %k0 ## 2-byte Folded Reload
5327 ; AVX512F-NEXT: kmovw %k0, %eax
5328 ; AVX512F-NEXT: movl %eax, -{{[0-9]+}}(%rsp) ## 4-byte Spill
5329 ; AVX512F-NEXT: kmovw -{{[0-9]+}}(%rsp), %k0 ## 2-byte Folded Reload
5330 ; AVX512F-NEXT: kmovw %k0, %eax
5331 ; AVX512F-NEXT: movl %eax, -{{[0-9]+}}(%rsp) ## 4-byte Spill
5332 ; AVX512F-NEXT: kmovw -{{[0-9]+}}(%rsp), %k0 ## 2-byte Folded Reload
5333 ; AVX512F-NEXT: kmovw %k0, %eax
5334 ; AVX512F-NEXT: movl %eax, -{{[0-9]+}}(%rsp) ## 4-byte Spill
5335 ; AVX512F-NEXT: kmovw {{[0-9]+}}(%rsp), %k0 ## 2-byte Folded Reload
5336 ; AVX512F-NEXT: kmovw %k0, %eax
5337 ; AVX512F-NEXT: movl %eax, {{[0-9]+}}(%rsp) ## 4-byte Spill
5338 ; AVX512F-NEXT: kmovw {{[0-9]+}}(%rsp), %k0 ## 2-byte Folded Reload
5339 ; AVX512F-NEXT: kmovw %k0, %eax
5340 ; AVX512F-NEXT: movl %eax, {{[0-9]+}}(%rsp) ## 4-byte Spill
5341 ; AVX512F-NEXT: kmovw {{[0-9]+}}(%rsp), %k0 ## 2-byte Folded Reload
5342 ; AVX512F-NEXT: kmovw %k0, %eax
5343 ; AVX512F-NEXT: movl %eax, {{[0-9]+}}(%rsp) ## 4-byte Spill
5344 ; AVX512F-NEXT: kmovw {{[0-9]+}}(%rsp), %k0 ## 2-byte Folded Reload
5345 ; AVX512F-NEXT: kmovw %k0, %eax
5346 ; AVX512F-NEXT: movl %eax, {{[0-9]+}}(%rsp) ## 4-byte Spill
5347 ; AVX512F-NEXT: kmovw {{[0-9]+}}(%rsp), %k0 ## 2-byte Folded Reload
5348 ; AVX512F-NEXT: kmovw %k0, %eax
5349 ; AVX512F-NEXT: movl %eax, {{[0-9]+}}(%rsp) ## 4-byte Spill
5350 ; AVX512F-NEXT: kmovw {{[0-9]+}}(%rsp), %k0 ## 2-byte Folded Reload
5351 ; AVX512F-NEXT: kmovw %k0, %eax
5352 ; AVX512F-NEXT: movl %eax, {{[0-9]+}}(%rsp) ## 4-byte Spill
5353 ; AVX512F-NEXT: kmovw {{[0-9]+}}(%rsp), %k0 ## 2-byte Folded Reload
5354 ; AVX512F-NEXT: kmovw %k0, %eax
5355 ; AVX512F-NEXT: movl %eax, {{[0-9]+}}(%rsp) ## 4-byte Spill
5356 ; AVX512F-NEXT: kmovw {{[0-9]+}}(%rsp), %k0 ## 2-byte Folded Reload
5357 ; AVX512F-NEXT: kmovw %k0, %eax
5358 ; AVX512F-NEXT: movl %eax, {{[0-9]+}}(%rsp) ## 4-byte Spill
5359 ; AVX512F-NEXT: kmovw {{[0-9]+}}(%rsp), %k0 ## 2-byte Folded Reload
5360 ; AVX512F-NEXT: kmovw %k0, %eax
5361 ; AVX512F-NEXT: movl %eax, {{[0-9]+}}(%rsp) ## 4-byte Spill
5362 ; AVX512F-NEXT: kmovw (%rsp), %k0 ## 2-byte Folded Reload
5363 ; AVX512F-NEXT: kmovw %k0, %eax
5364 ; AVX512F-NEXT: movl %eax, (%rsp) ## 4-byte Spill
5365 ; AVX512F-NEXT: kmovw -{{[0-9]+}}(%rsp), %k0 ## 2-byte Folded Reload
5366 ; AVX512F-NEXT: kmovw %k0, %eax
5367 ; AVX512F-NEXT: movl %eax, -{{[0-9]+}}(%rsp) ## 4-byte Spill
5368 ; AVX512F-NEXT: kmovw -{{[0-9]+}}(%rsp), %k0 ## 2-byte Folded Reload
5369 ; AVX512F-NEXT: kmovw %k0, %eax
5370 ; AVX512F-NEXT: movl %eax, -{{[0-9]+}}(%rsp) ## 4-byte Spill
5371 ; AVX512F-NEXT: kmovw -{{[0-9]+}}(%rsp), %k0 ## 2-byte Folded Reload
5372 ; AVX512F-NEXT: kmovw %k0, %eax
5373 ; AVX512F-NEXT: movl %eax, -{{[0-9]+}}(%rsp) ## 4-byte Spill
5374 ; AVX512F-NEXT: kmovw -{{[0-9]+}}(%rsp), %k0 ## 2-byte Folded Reload
5375 ; AVX512F-NEXT: kmovw %k0, %eax
5376 ; AVX512F-NEXT: movl %eax, -{{[0-9]+}}(%rsp) ## 4-byte Spill
5377 ; AVX512F-NEXT: kmovw -{{[0-9]+}}(%rsp), %k0 ## 2-byte Folded Reload
5378 ; AVX512F-NEXT: kmovw %k0, %eax
5379 ; AVX512F-NEXT: movl %eax, -{{[0-9]+}}(%rsp) ## 4-byte Spill
5380 ; AVX512F-NEXT: kmovw -{{[0-9]+}}(%rsp), %k0 ## 2-byte Folded Reload
5381 ; AVX512F-NEXT: kmovw %k0, %eax
5382 ; AVX512F-NEXT: movl %eax, -{{[0-9]+}}(%rsp) ## 4-byte Spill
5383 ; AVX512F-NEXT: kmovw -{{[0-9]+}}(%rsp), %k0 ## 2-byte Folded Reload
5384 ; AVX512F-NEXT: kmovw %k0, %eax
5385 ; AVX512F-NEXT: movl %eax, -{{[0-9]+}}(%rsp) ## 4-byte Spill
5386 ; AVX512F-NEXT: kmovw -{{[0-9]+}}(%rsp), %k0 ## 2-byte Folded Reload
5387 ; AVX512F-NEXT: kmovw %k0, %eax
5388 ; AVX512F-NEXT: movl %eax, -{{[0-9]+}}(%rsp) ## 4-byte Spill
5389 ; AVX512F-NEXT: kmovw -{{[0-9]+}}(%rsp), %k0 ## 2-byte Folded Reload
5390 ; AVX512F-NEXT: kmovw %k0, %eax
5391 ; AVX512F-NEXT: movl %eax, -{{[0-9]+}}(%rsp) ## 4-byte Spill
5392 ; AVX512F-NEXT: kmovw -{{[0-9]+}}(%rsp), %k0 ## 2-byte Folded Reload
5393 ; AVX512F-NEXT: kmovw %k0, %eax
5394 ; AVX512F-NEXT: movl %eax, -{{[0-9]+}}(%rsp) ## 4-byte Spill
5395 ; AVX512F-NEXT: kmovw -{{[0-9]+}}(%rsp), %k0 ## 2-byte Folded Reload
5396 ; AVX512F-NEXT: kmovw %k0, %eax
5397 ; AVX512F-NEXT: movl %eax, -{{[0-9]+}}(%rsp) ## 4-byte Spill
5398 ; AVX512F-NEXT: kmovw -{{[0-9]+}}(%rsp), %k0 ## 2-byte Folded Reload
5399 ; AVX512F-NEXT: kmovw %k0, %eax
5400 ; AVX512F-NEXT: movl %eax, -{{[0-9]+}}(%rsp) ## 4-byte Spill
5401 ; AVX512F-NEXT: kmovw -{{[0-9]+}}(%rsp), %k0 ## 2-byte Folded Reload
5402 ; AVX512F-NEXT: kmovw %k0, %eax
5403 ; AVX512F-NEXT: movl %eax, -{{[0-9]+}}(%rsp) ## 4-byte Spill
5404 ; AVX512F-NEXT: kmovw -{{[0-9]+}}(%rsp), %k0 ## 2-byte Folded Reload
5405 ; AVX512F-NEXT: kmovw %k0, %eax
5406 ; AVX512F-NEXT: movl %eax, -{{[0-9]+}}(%rsp) ## 4-byte Spill
5407 ; AVX512F-NEXT: kmovw -{{[0-9]+}}(%rsp), %k0 ## 2-byte Folded Reload
5408 ; AVX512F-NEXT: kmovw %k0, %eax
5409 ; AVX512F-NEXT: movl %eax, -{{[0-9]+}}(%rsp) ## 4-byte Spill
5410 ; AVX512F-NEXT: kmovw %k2, %eax
5411 ; AVX512F-NEXT: movl %eax, {{[0-9]+}}(%rsp) ## 4-byte Spill
5412 ; AVX512F-NEXT: kmovw %k3, %r12d
5413 ; AVX512F-NEXT: kmovw %k4, %r15d
5414 ; AVX512F-NEXT: kmovw %k5, %r14d
5415 ; AVX512F-NEXT: kmovw %k6, %ebx
5416 ; AVX512F-NEXT: kmovw %k7, %r11d
5417 ; AVX512F-NEXT: kmovw %k1, %r10d
5418 ; AVX512F-NEXT: kmovw -{{[0-9]+}}(%rsp), %k0 ## 2-byte Folded Reload
5419 ; AVX512F-NEXT: kmovw %k0, %eax
5420 ; AVX512F-NEXT: movl %eax, -{{[0-9]+}}(%rsp) ## 4-byte Spill
5421 ; AVX512F-NEXT: kmovw {{[0-9]+}}(%rsp), %k0 ## 2-byte Folded Reload
5422 ; AVX512F-NEXT: kmovw %k0, %r8d
5423 ; AVX512F-NEXT: kmovw {{[0-9]+}}(%rsp), %k0 ## 2-byte Folded Reload
5424 ; AVX512F-NEXT: kmovw %k0, %r9d
5425 ; AVX512F-NEXT: kmovw {{[0-9]+}}(%rsp), %k0 ## 2-byte Folded Reload
5426 ; AVX512F-NEXT: kmovw %k0, %edi
5427 ; AVX512F-NEXT: kmovw {{[0-9]+}}(%rsp), %k0 ## 2-byte Folded Reload
5428 ; AVX512F-NEXT: kmovw %k0, %esi
5429 ; AVX512F-NEXT: kmovw {{[0-9]+}}(%rsp), %k0 ## 2-byte Folded Reload
5430 ; AVX512F-NEXT: kmovw %k0, %edx
5431 ; AVX512F-NEXT: kmovw {{[0-9]+}}(%rsp), %k0 ## 2-byte Folded Reload
5432 ; AVX512F-NEXT: kmovw %k0, %ecx
5433 ; AVX512F-NEXT: kmovw {{[0-9]+}}(%rsp), %k0 ## 2-byte Folded Reload
5434 ; AVX512F-NEXT: kmovw %k0, %eax
5435 ; AVX512F-NEXT: movl -{{[0-9]+}}(%rsp), %r13d ## 4-byte Reload
5436 ; AVX512F-NEXT: vmovd %r13d, %xmm2
5437 ; AVX512F-NEXT: vpinsrb $1, -{{[0-9]+}}(%rsp), %xmm2, %xmm2 ## 4-byte Folded Reload
5438 ; AVX512F-NEXT: vpinsrb $2, -{{[0-9]+}}(%rsp), %xmm2, %xmm2 ## 4-byte Folded Reload
5439 ; AVX512F-NEXT: vpinsrb $3, -{{[0-9]+}}(%rsp), %xmm2, %xmm2 ## 4-byte Folded Reload
5440 ; AVX512F-NEXT: vpinsrb $4, -{{[0-9]+}}(%rsp), %xmm2, %xmm2 ## 4-byte Folded Reload
5441 ; AVX512F-NEXT: vpinsrb $5, -{{[0-9]+}}(%rsp), %xmm2, %xmm2 ## 4-byte Folded Reload
5442 ; AVX512F-NEXT: vpinsrb $6, -{{[0-9]+}}(%rsp), %xmm2, %xmm2 ## 4-byte Folded Reload
5443 ; AVX512F-NEXT: vpinsrb $7, -{{[0-9]+}}(%rsp), %xmm2, %xmm2 ## 4-byte Folded Reload
5444 ; AVX512F-NEXT: vpinsrb $8, -{{[0-9]+}}(%rsp), %xmm2, %xmm2 ## 4-byte Folded Reload
5445 ; AVX512F-NEXT: vpinsrb $9, -{{[0-9]+}}(%rsp), %xmm2, %xmm2 ## 4-byte Folded Reload
5446 ; AVX512F-NEXT: vpinsrb $10, -{{[0-9]+}}(%rsp), %xmm2, %xmm2 ## 4-byte Folded Reload
5447 ; AVX512F-NEXT: vpinsrb $11, -{{[0-9]+}}(%rsp), %xmm2, %xmm2 ## 4-byte Folded Reload
5448 ; AVX512F-NEXT: vpinsrb $12, -{{[0-9]+}}(%rsp), %xmm2, %xmm2 ## 4-byte Folded Reload
5449 ; AVX512F-NEXT: vpinsrb $13, -{{[0-9]+}}(%rsp), %xmm2, %xmm2 ## 4-byte Folded Reload
5450 ; AVX512F-NEXT: vpinsrb $14, -{{[0-9]+}}(%rsp), %xmm2, %xmm2 ## 4-byte Folded Reload
5451 ; AVX512F-NEXT: vpinsrb $15, -{{[0-9]+}}(%rsp), %xmm2, %xmm2 ## 4-byte Folded Reload
5452 ; AVX512F-NEXT: movl {{[0-9]+}}(%rsp), %ebp ## 4-byte Reload
5453 ; AVX512F-NEXT: vmovd %ebp, %xmm3
5454 ; AVX512F-NEXT: vpinsrb $1, {{[0-9]+}}(%rsp), %xmm3, %xmm3 ## 4-byte Folded Reload
5455 ; AVX512F-NEXT: vpinsrb $2, {{[0-9]+}}(%rsp), %xmm3, %xmm3 ## 4-byte Folded Reload
5456 ; AVX512F-NEXT: vpinsrb $3, {{[0-9]+}}(%rsp), %xmm3, %xmm3 ## 4-byte Folded Reload
5457 ; AVX512F-NEXT: vpinsrb $4, {{[0-9]+}}(%rsp), %xmm3, %xmm3 ## 4-byte Folded Reload
5458 ; AVX512F-NEXT: vpinsrb $5, {{[0-9]+}}(%rsp), %xmm3, %xmm3 ## 4-byte Folded Reload
5459 ; AVX512F-NEXT: vpinsrb $6, {{[0-9]+}}(%rsp), %xmm3, %xmm3 ## 4-byte Folded Reload
5460 ; AVX512F-NEXT: vpinsrb $7, {{[0-9]+}}(%rsp), %xmm3, %xmm3 ## 4-byte Folded Reload
5461 ; AVX512F-NEXT: vpinsrb $8, {{[0-9]+}}(%rsp), %xmm3, %xmm3 ## 4-byte Folded Reload
5462 ; AVX512F-NEXT: vpinsrb $9, (%rsp), %xmm3, %xmm3 ## 4-byte Folded Reload
5463 ; AVX512F-NEXT: vpinsrb $10, -{{[0-9]+}}(%rsp), %xmm3, %xmm3 ## 4-byte Folded Reload
5464 ; AVX512F-NEXT: vpinsrb $11, -{{[0-9]+}}(%rsp), %xmm3, %xmm3 ## 4-byte Folded Reload
5465 ; AVX512F-NEXT: vpinsrb $12, -{{[0-9]+}}(%rsp), %xmm3, %xmm3 ## 4-byte Folded Reload
5466 ; AVX512F-NEXT: vpinsrb $13, -{{[0-9]+}}(%rsp), %xmm3, %xmm3 ## 4-byte Folded Reload
5467 ; AVX512F-NEXT: vpinsrb $14, -{{[0-9]+}}(%rsp), %xmm3, %xmm3 ## 4-byte Folded Reload
5468 ; AVX512F-NEXT: vpinsrb $15, -{{[0-9]+}}(%rsp), %xmm3, %xmm3 ## 4-byte Folded Reload
5469 ; AVX512F-NEXT: movl -{{[0-9]+}}(%rsp), %ebp ## 4-byte Reload
5470 ; AVX512F-NEXT: vmovd %ebp, %xmm6
5471 ; AVX512F-NEXT: vpinsrb $1, -{{[0-9]+}}(%rsp), %xmm6, %xmm6 ## 4-byte Folded Reload
5472 ; AVX512F-NEXT: vpinsrb $2, -{{[0-9]+}}(%rsp), %xmm6, %xmm6 ## 4-byte Folded Reload
5473 ; AVX512F-NEXT: vpinsrb $3, -{{[0-9]+}}(%rsp), %xmm6, %xmm6 ## 4-byte Folded Reload
5474 ; AVX512F-NEXT: vpinsrb $4, -{{[0-9]+}}(%rsp), %xmm6, %xmm6 ## 4-byte Folded Reload
5475 ; AVX512F-NEXT: vpinsrb $5, -{{[0-9]+}}(%rsp), %xmm6, %xmm6 ## 4-byte Folded Reload
5476 ; AVX512F-NEXT: vpinsrb $6, -{{[0-9]+}}(%rsp), %xmm6, %xmm6 ## 4-byte Folded Reload
5477 ; AVX512F-NEXT: vpinsrb $7, -{{[0-9]+}}(%rsp), %xmm6, %xmm6 ## 4-byte Folded Reload
5478 ; AVX512F-NEXT: vpinsrb $8, -{{[0-9]+}}(%rsp), %xmm6, %xmm6 ## 4-byte Folded Reload
5479 ; AVX512F-NEXT: vpinsrb $9, {{[0-9]+}}(%rsp), %xmm6, %xmm6 ## 4-byte Folded Reload
5480 ; AVX512F-NEXT: kmovw {{[0-9]+}}(%rsp), %k0 ## 2-byte Folded Reload
5481 ; AVX512F-NEXT: kmovw %k0, %r13d
5482 ; AVX512F-NEXT: vpinsrb $10, %r12d, %xmm6, %xmm6
5483 ; AVX512F-NEXT: kmovw {{[0-9]+}}(%rsp), %k0 ## 2-byte Folded Reload
5484 ; AVX512F-NEXT: kmovw %k0, %r12d
5485 ; AVX512F-NEXT: vpinsrb $11, %r15d, %xmm6, %xmm6
5486 ; AVX512F-NEXT: kmovw {{[0-9]+}}(%rsp), %k0 ## 2-byte Folded Reload
5487 ; AVX512F-NEXT: kmovw %k0, %r15d
5488 ; AVX512F-NEXT: vpinsrb $12, %r14d, %xmm6, %xmm6
5489 ; AVX512F-NEXT: kmovw {{[0-9]+}}(%rsp), %k0 ## 2-byte Folded Reload
5490 ; AVX512F-NEXT: kmovw %k0, %r14d
5491 ; AVX512F-NEXT: vpinsrb $13, %ebx, %xmm6, %xmm6
5492 ; AVX512F-NEXT: kmovw {{[0-9]+}}(%rsp), %k0 ## 2-byte Folded Reload
5493 ; AVX512F-NEXT: kmovw %k0, %ebx
5494 ; AVX512F-NEXT: vpinsrb $14, %r11d, %xmm6, %xmm6
5495 ; AVX512F-NEXT: kmovw {{[0-9]+}}(%rsp), %k0 ## 2-byte Folded Reload
5496 ; AVX512F-NEXT: kmovw %k0, %r11d
5497 ; AVX512F-NEXT: vpinsrb $15, %r10d, %xmm6, %xmm6
5498 ; AVX512F-NEXT: kmovw {{[0-9]+}}(%rsp), %k0 ## 2-byte Folded Reload
5499 ; AVX512F-NEXT: kmovw %k0, %r10d
5500 ; AVX512F-NEXT: vmovd %r8d, %xmm7
5501 ; AVX512F-NEXT: kmovw {{[0-9]+}}(%rsp), %k0 ## 2-byte Folded Reload
5502 ; AVX512F-NEXT: kmovw %k0, %r8d
5503 ; AVX512F-NEXT: vinserti128 $1, %xmm2, %ymm3, %ymm2
5504 ; AVX512F-NEXT: vpsllw $7, %ymm2, %ymm2
5505 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm3 = [128,128,128,128,128,128,128,128,128,128,128,128,128,128…
5506 ; AVX512F-NEXT: vpand %ymm3, %ymm2, %ymm2
5507 ; AVX512F-NEXT: vpblendvb %ymm2, %ymm0, %ymm4, %ymm0
5508 ; AVX512F-NEXT: vpinsrb $1, -{{[0-9]+}}(%rsp), %xmm7, %xmm2 ## 4-byte Folded Reload
5509 ; AVX512F-NEXT: vpinsrb $2, %r9d, %xmm2, %xmm2
5510 ; AVX512F-NEXT: vpinsrb $3, %edi, %xmm2, %xmm2
5511 ; AVX512F-NEXT: vpinsrb $4, %esi, %xmm2, %xmm2
5512 ; AVX512F-NEXT: vpinsrb $5, %edx, %xmm2, %xmm2
5513 ; AVX512F-NEXT: vpinsrb $6, %ecx, %xmm2, %xmm2
5514 ; AVX512F-NEXT: vpinsrb $7, %eax, %xmm2, %xmm2
5515 ; AVX512F-NEXT: vpinsrb $8, %r13d, %xmm2, %xmm2
5516 ; AVX512F-NEXT: vpinsrb $9, %r12d, %xmm2, %xmm2
5517 ; AVX512F-NEXT: vpinsrb $10, %r15d, %xmm2, %xmm2
5518 ; AVX512F-NEXT: vpinsrb $11, %r14d, %xmm2, %xmm2
5519 ; AVX512F-NEXT: vpinsrb $12, %ebx, %xmm2, %xmm2
5520 ; AVX512F-NEXT: vpinsrb $13, %r11d, %xmm2, %xmm2
5521 ; AVX512F-NEXT: vpinsrb $14, %r10d, %xmm2, %xmm2
5522 ; AVX512F-NEXT: vpinsrb $15, %r8d, %xmm2, %xmm2
5523 ; AVX512F-NEXT: vinserti128 $1, %xmm6, %ymm2, %ymm2
5524 ; AVX512F-NEXT: vpsllw $7, %ymm2, %ymm2
5525 ; AVX512F-NEXT: vpand %ymm3, %ymm2, %ymm2
5526 ; AVX512F-NEXT: vpblendvb %ymm2, %ymm1, %ymm5, %ymm1
5527 ; AVX512F-NEXT: addq $76, %rsp
5528 ; AVX512F-NEXT: popq %rbx
5529 ; AVX512F-NEXT: popq %r12
5530 ; AVX512F-NEXT: popq %r13
5531 ; AVX512F-NEXT: popq %r14
5532 ; AVX512F-NEXT: popq %r15
5533 ; AVX512F-NEXT: popq %rbp
5534 ; AVX512F-NEXT: retq
5609 ; AVX512F-LABEL: test_mask_load_8xi16:
5610 ; AVX512F: ## BB#0:
5611 ; AVX512F-NEXT: vpmovsxwq %xmm0, %zmm0
5612 ; AVX512F-NEXT: vpsllq $63, %zmm0, %zmm0
5613 ; AVX512F-NEXT: vptestmq %zmm0, %zmm0, %k1
5614 ; AVX512F-NEXT: kshiftlw $15, %k1, %k0
5615 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0
5616 ; AVX512F-NEXT: kmovw %k0, %eax
5617 ; AVX512F-NEXT: ## implicit-def: %XMM0
5618 ; AVX512F-NEXT: testb %al, %al
5619 ; AVX512F-NEXT: je LBB53_2
5620 ; AVX512F-NEXT: ## BB#1: ## %cond.load
5621 ; AVX512F-NEXT: movzwl (%rdi), %eax
5622 ; AVX512F-NEXT: vmovd %eax, %xmm0
5623 ; AVX512F-NEXT: LBB53_2: ## %else
5624 ; AVX512F-NEXT: kshiftlw $14, %k1, %k0
5625 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0
5626 ; AVX512F-NEXT: kmovw %k0, %eax
5627 ; AVX512F-NEXT: testb %al, %al
5628 ; AVX512F-NEXT: je LBB53_4
5629 ; AVX512F-NEXT: ## BB#3: ## %cond.load1
5630 ; AVX512F-NEXT: vpinsrw $1, 2(%rdi), %xmm0, %xmm0
5631 ; AVX512F-NEXT: LBB53_4: ## %else2
5632 ; AVX512F-NEXT: kshiftlw $13, %k1, %k0
5633 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0
5634 ; AVX512F-NEXT: kmovw %k0, %eax
5635 ; AVX512F-NEXT: testb %al, %al
5636 ; AVX512F-NEXT: je LBB53_6
5637 ; AVX512F-NEXT: ## BB#5: ## %cond.load4
5638 ; AVX512F-NEXT: vpinsrw $2, 4(%rdi), %xmm0, %xmm0
5639 ; AVX512F-NEXT: LBB53_6: ## %else5
5640 ; AVX512F-NEXT: kshiftlw $12, %k1, %k0
5641 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0
5642 ; AVX512F-NEXT: kmovw %k0, %eax
5643 ; AVX512F-NEXT: testb %al, %al
5644 ; AVX512F-NEXT: je LBB53_8
5645 ; AVX512F-NEXT: ## BB#7: ## %cond.load7
5646 ; AVX512F-NEXT: vpinsrw $3, 6(%rdi), %xmm0, %xmm0
5647 ; AVX512F-NEXT: LBB53_8: ## %else8
5648 ; AVX512F-NEXT: kshiftlw $11, %k1, %k0
5649 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0
5650 ; AVX512F-NEXT: kmovw %k0, %eax
5651 ; AVX512F-NEXT: testb %al, %al
5652 ; AVX512F-NEXT: je LBB53_10
5653 ; AVX512F-NEXT: ## BB#9: ## %cond.load10
5654 ; AVX512F-NEXT: vpinsrw $4, 8(%rdi), %xmm0, %xmm0
5655 ; AVX512F-NEXT: LBB53_10: ## %else11
5656 ; AVX512F-NEXT: kshiftlw $10, %k1, %k0
5657 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0
5658 ; AVX512F-NEXT: kmovw %k0, %eax
5659 ; AVX512F-NEXT: testb %al, %al
5660 ; AVX512F-NEXT: je LBB53_12
5661 ; AVX512F-NEXT: ## BB#11: ## %cond.load13
5662 ; AVX512F-NEXT: vpinsrw $5, 10(%rdi), %xmm0, %xmm0
5663 ; AVX512F-NEXT: LBB53_12: ## %else14
5664 ; AVX512F-NEXT: kshiftlw $9, %k1, %k0
5665 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0
5666 ; AVX512F-NEXT: kmovw %k0, %eax
5667 ; AVX512F-NEXT: testb %al, %al
5668 ; AVX512F-NEXT: je LBB53_14
5669 ; AVX512F-NEXT: ## BB#13: ## %cond.load16
5670 ; AVX512F-NEXT: vpinsrw $6, 12(%rdi), %xmm0, %xmm0
5671 ; AVX512F-NEXT: LBB53_14: ## %else17
5672 ; AVX512F-NEXT: kshiftlw $8, %k1, %k0
5673 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0
5674 ; AVX512F-NEXT: kmovw %k0, %eax
5675 ; AVX512F-NEXT: testb %al, %al
5676 ; AVX512F-NEXT: je LBB53_16
5677 ; AVX512F-NEXT: ## BB#15: ## %cond.load19
5678 ; AVX512F-NEXT: vpinsrw $7, 14(%rdi), %xmm0, %xmm0
5679 ; AVX512F-NEXT: LBB53_16: ## %else20
5680 ; AVX512F-NEXT: vpternlogd $255, %zmm1, %zmm1, %zmm1
5681 ; AVX512F-NEXT: vmovdqa64 %zmm1, %zmm1 {%k1} {z}
5682 ; AVX512F-NEXT: vpmovqw %zmm1, %xmm1
5683 ; AVX512F-NEXT: vpcmpeqd %xmm2, %xmm2, %xmm2
5684 ; AVX512F-NEXT: vpxor %xmm2, %xmm1, %xmm2
5685 ; AVX512F-NEXT: vpand %xmm1, %xmm0, %xmm0
5686 ; AVX512F-NEXT: vpor %xmm2, %xmm0, %xmm0
5687 ; AVX512F-NEXT: retq
5963 ; AVX512F-LABEL: test_mask_load_16xi16:
5964 ; AVX512F: ## BB#0:
5965 ; AVX512F-NEXT: vpmovsxbd %xmm0, %zmm0
5966 ; AVX512F-NEXT: vpslld $31, %zmm0, %zmm0
5967 ; AVX512F-NEXT: vptestmd %zmm0, %zmm0, %k1
5968 ; AVX512F-NEXT: kshiftlw $15, %k1, %k0
5969 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0
5970 ; AVX512F-NEXT: kmovw %k0, %eax
5971 ; AVX512F-NEXT: ## implicit-def: %YMM0
5972 ; AVX512F-NEXT: testb %al, %al
5973 ; AVX512F-NEXT: je LBB54_2
5974 ; AVX512F-NEXT: ## BB#1: ## %cond.load
5975 ; AVX512F-NEXT: movzwl (%rdi), %eax
5976 ; AVX512F-NEXT: vmovd %eax, %xmm0
5977 ; AVX512F-NEXT: LBB54_2: ## %else
5978 ; AVX512F-NEXT: kshiftlw $14, %k1, %k0
5979 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0
5980 ; AVX512F-NEXT: kmovw %k0, %eax
5981 ; AVX512F-NEXT: testb %al, %al
5982 ; AVX512F-NEXT: je LBB54_4
5983 ; AVX512F-NEXT: ## BB#3: ## %cond.load1
5984 ; AVX512F-NEXT: vpinsrw $1, 2(%rdi), %xmm0, %xmm1
5985 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
5986 ; AVX512F-NEXT: LBB54_4: ## %else2
5987 ; AVX512F-NEXT: kshiftlw $13, %k1, %k0
5988 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0
5989 ; AVX512F-NEXT: kmovw %k0, %eax
5990 ; AVX512F-NEXT: testb %al, %al
5991 ; AVX512F-NEXT: je LBB54_6
5992 ; AVX512F-NEXT: ## BB#5: ## %cond.load4
5993 ; AVX512F-NEXT: vpinsrw $2, 4(%rdi), %xmm0, %xmm1
5994 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
5995 ; AVX512F-NEXT: LBB54_6: ## %else5
5996 ; AVX512F-NEXT: kshiftlw $12, %k1, %k0
5997 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0
5998 ; AVX512F-NEXT: kmovw %k0, %eax
5999 ; AVX512F-NEXT: testb %al, %al
6000 ; AVX512F-NEXT: je LBB54_8
6001 ; AVX512F-NEXT: ## BB#7: ## %cond.load7
6002 ; AVX512F-NEXT: vpinsrw $3, 6(%rdi), %xmm0, %xmm1
6003 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
6004 ; AVX512F-NEXT: LBB54_8: ## %else8
6005 ; AVX512F-NEXT: kshiftlw $11, %k1, %k0
6006 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0
6007 ; AVX512F-NEXT: kmovw %k0, %eax
6008 ; AVX512F-NEXT: testb %al, %al
6009 ; AVX512F-NEXT: je LBB54_10
6010 ; AVX512F-NEXT: ## BB#9: ## %cond.load10
6011 ; AVX512F-NEXT: vpinsrw $4, 8(%rdi), %xmm0, %xmm1
6012 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
6013 ; AVX512F-NEXT: LBB54_10: ## %else11
6014 ; AVX512F-NEXT: kshiftlw $10, %k1, %k0
6015 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0
6016 ; AVX512F-NEXT: kmovw %k0, %eax
6017 ; AVX512F-NEXT: testb %al, %al
6018 ; AVX512F-NEXT: je LBB54_12
6019 ; AVX512F-NEXT: ## BB#11: ## %cond.load13
6020 ; AVX512F-NEXT: vpinsrw $5, 10(%rdi), %xmm0, %xmm1
6021 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
6022 ; AVX512F-NEXT: LBB54_12: ## %else14
6023 ; AVX512F-NEXT: kshiftlw $9, %k1, %k0
6024 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0
6025 ; AVX512F-NEXT: kmovw %k0, %eax
6026 ; AVX512F-NEXT: testb %al, %al
6027 ; AVX512F-NEXT: je LBB54_14
6028 ; AVX512F-NEXT: ## BB#13: ## %cond.load16
6029 ; AVX512F-NEXT: vpinsrw $6, 12(%rdi), %xmm0, %xmm1
6030 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
6031 ; AVX512F-NEXT: LBB54_14: ## %else17
6032 ; AVX512F-NEXT: kshiftlw $8, %k1, %k0
6033 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0
6034 ; AVX512F-NEXT: kmovw %k0, %eax
6035 ; AVX512F-NEXT: testb %al, %al
6036 ; AVX512F-NEXT: je LBB54_16
6037 ; AVX512F-NEXT: ## BB#15: ## %cond.load19
6038 ; AVX512F-NEXT: vpinsrw $7, 14(%rdi), %xmm0, %xmm1
6039 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
6040 ; AVX512F-NEXT: LBB54_16: ## %else20
6041 ; AVX512F-NEXT: kshiftlw $7, %k1, %k0
6042 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0
6043 ; AVX512F-NEXT: kmovw %k0, %eax
6044 ; AVX512F-NEXT: testb %al, %al
6045 ; AVX512F-NEXT: je LBB54_18
6046 ; AVX512F-NEXT: ## BB#17: ## %cond.load22
6047 ; AVX512F-NEXT: vextracti128 $1, %ymm0, %xmm1
6048 ; AVX512F-NEXT: vpinsrw $0, 16(%rdi), %xmm1, %xmm1
6049 ; AVX512F-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm0
6050 ; AVX512F-NEXT: LBB54_18: ## %else23
6051 ; AVX512F-NEXT: kshiftlw $6, %k1, %k0
6052 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0
6053 ; AVX512F-NEXT: kmovw %k0, %eax
6054 ; AVX512F-NEXT: testb %al, %al
6055 ; AVX512F-NEXT: je LBB54_20
6056 ; AVX512F-NEXT: ## BB#19: ## %cond.load25
6057 ; AVX512F-NEXT: vextracti128 $1, %ymm0, %xmm1
6058 ; AVX512F-NEXT: vpinsrw $1, 18(%rdi), %xmm1, %xmm1
6059 ; AVX512F-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm0
6060 ; AVX512F-NEXT: LBB54_20: ## %else26
6061 ; AVX512F-NEXT: kshiftlw $5, %k1, %k0
6062 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0
6063 ; AVX512F-NEXT: kmovw %k0, %eax
6064 ; AVX512F-NEXT: testb %al, %al
6065 ; AVX512F-NEXT: je LBB54_22
6066 ; AVX512F-NEXT: ## BB#21: ## %cond.load28
6067 ; AVX512F-NEXT: vextracti128 $1, %ymm0, %xmm1
6068 ; AVX512F-NEXT: vpinsrw $2, 20(%rdi), %xmm1, %xmm1
6069 ; AVX512F-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm0
6070 ; AVX512F-NEXT: LBB54_22: ## %else29
6071 ; AVX512F-NEXT: kshiftlw $4, %k1, %k0
6072 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0
6073 ; AVX512F-NEXT: kmovw %k0, %eax
6074 ; AVX512F-NEXT: testb %al, %al
6075 ; AVX512F-NEXT: je LBB54_24
6076 ; AVX512F-NEXT: ## BB#23: ## %cond.load31
6077 ; AVX512F-NEXT: vextracti128 $1, %ymm0, %xmm1
6078 ; AVX512F-NEXT: vpinsrw $3, 22(%rdi), %xmm1, %xmm1
6079 ; AVX512F-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm0
6080 ; AVX512F-NEXT: LBB54_24: ## %else32
6081 ; AVX512F-NEXT: kshiftlw $3, %k1, %k0
6082 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0
6083 ; AVX512F-NEXT: kmovw %k0, %eax
6084 ; AVX512F-NEXT: testb %al, %al
6085 ; AVX512F-NEXT: je LBB54_26
6086 ; AVX512F-NEXT: ## BB#25: ## %cond.load34
6087 ; AVX512F-NEXT: vextracti128 $1, %ymm0, %xmm1
6088 ; AVX512F-NEXT: vpinsrw $4, 24(%rdi), %xmm1, %xmm1
6089 ; AVX512F-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm0
6090 ; AVX512F-NEXT: LBB54_26: ## %else35
6091 ; AVX512F-NEXT: kshiftlw $2, %k1, %k0
6092 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0
6093 ; AVX512F-NEXT: kmovw %k0, %eax
6094 ; AVX512F-NEXT: testb %al, %al
6095 ; AVX512F-NEXT: je LBB54_28
6096 ; AVX512F-NEXT: ## BB#27: ## %cond.load37
6097 ; AVX512F-NEXT: vextracti128 $1, %ymm0, %xmm1
6098 ; AVX512F-NEXT: vpinsrw $5, 26(%rdi), %xmm1, %xmm1
6099 ; AVX512F-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm0
6100 ; AVX512F-NEXT: LBB54_28: ## %else38
6101 ; AVX512F-NEXT: kshiftlw $1, %k1, %k0
6102 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0
6103 ; AVX512F-NEXT: kmovw %k0, %eax
6104 ; AVX512F-NEXT: testb %al, %al
6105 ; AVX512F-NEXT: je LBB54_30
6106 ; AVX512F-NEXT: ## BB#29: ## %cond.load40
6107 ; AVX512F-NEXT: vextracti128 $1, %ymm0, %xmm1
6108 ; AVX512F-NEXT: vpinsrw $6, 28(%rdi), %xmm1, %xmm1
6109 ; AVX512F-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm0
6110 ; AVX512F-NEXT: LBB54_30: ## %else41
6111 ; AVX512F-NEXT: kshiftlw $0, %k1, %k0
6112 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0
6113 ; AVX512F-NEXT: kmovw %k0, %eax
6114 ; AVX512F-NEXT: testb %al, %al
6115 ; AVX512F-NEXT: je LBB54_32
6116 ; AVX512F-NEXT: ## BB#31: ## %cond.load43
6117 ; AVX512F-NEXT: vextracti128 $1, %ymm0, %xmm1
6118 ; AVX512F-NEXT: vpinsrw $7, 30(%rdi), %xmm1, %xmm1
6119 ; AVX512F-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm0
6120 ; AVX512F-NEXT: LBB54_32: ## %else44
6121 ; AVX512F-NEXT: vpternlogd $255, %zmm1, %zmm1, %zmm1
6122 ; AVX512F-NEXT: vmovdqa32 %zmm1, %zmm1 {%k1} {z}
6123 ; AVX512F-NEXT: vpmovdw %zmm1, %ymm1
6124 ; AVX512F-NEXT: vpand %ymm0, %ymm1, %ymm0
6125 ; AVX512F-NEXT: retq
6657 ; AVX512F-LABEL: test_mask_load_32xi16:
6658 ; AVX512F: ## BB#0:
6659 ; AVX512F-NEXT: vpextrb $0, %xmm0, %eax
6660 ; AVX512F-NEXT: testb $1, %al
6661 ; AVX512F-NEXT: je LBB55_2
6662 ; AVX512F-NEXT: ## BB#1: ## %cond.load
6663 ; AVX512F-NEXT: movzwl (%rdi), %eax
6664 ; AVX512F-NEXT: vmovd %eax, %xmm3
6665 ; AVX512F-NEXT: LBB55_2: ## %else
6666 ; AVX512F-NEXT: vpextrb $1, %xmm0, %eax
6667 ; AVX512F-NEXT: testb $1, %al
6668 ; AVX512F-NEXT: je LBB55_4
6669 ; AVX512F-NEXT: ## BB#3: ## %cond.load1
6670 ; AVX512F-NEXT: vpinsrw $1, 2(%rdi), %xmm3, %xmm4
6671 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm3 = ymm4[0,1,2,3],ymm3[4,5,6,7]
6672 ; AVX512F-NEXT: LBB55_4: ## %else2
6673 ; AVX512F-NEXT: vpextrb $2, %xmm0, %eax
6674 ; AVX512F-NEXT: testb $1, %al
6675 ; AVX512F-NEXT: je LBB55_6
6676 ; AVX512F-NEXT: ## BB#5: ## %cond.load4
6677 ; AVX512F-NEXT: vpinsrw $2, 4(%rdi), %xmm3, %xmm4
6678 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm3 = ymm4[0,1,2,3],ymm3[4,5,6,7]
6679 ; AVX512F-NEXT: LBB55_6: ## %else5
6680 ; AVX512F-NEXT: vpextrb $3, %xmm0, %eax
6681 ; AVX512F-NEXT: testb $1, %al
6682 ; AVX512F-NEXT: je LBB55_8
6683 ; AVX512F-NEXT: ## BB#7: ## %cond.load7
6684 ; AVX512F-NEXT: vpinsrw $3, 6(%rdi), %xmm3, %xmm4
6685 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm3 = ymm4[0,1,2,3],ymm3[4,5,6,7]
6686 ; AVX512F-NEXT: LBB55_8: ## %else8
6687 ; AVX512F-NEXT: vpextrb $4, %xmm0, %eax
6688 ; AVX512F-NEXT: testb $1, %al
6689 ; AVX512F-NEXT: je LBB55_10
6690 ; AVX512F-NEXT: ## BB#9: ## %cond.load10
6691 ; AVX512F-NEXT: vpinsrw $4, 8(%rdi), %xmm3, %xmm4
6692 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm3 = ymm4[0,1,2,3],ymm3[4,5,6,7]
6693 ; AVX512F-NEXT: LBB55_10: ## %else11
6694 ; AVX512F-NEXT: vpextrb $5, %xmm0, %eax
6695 ; AVX512F-NEXT: testb $1, %al
6696 ; AVX512F-NEXT: je LBB55_12
6697 ; AVX512F-NEXT: ## BB#11: ## %cond.load13
6698 ; AVX512F-NEXT: vpinsrw $5, 10(%rdi), %xmm3, %xmm4
6699 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm3 = ymm4[0,1,2,3],ymm3[4,5,6,7]
6700 ; AVX512F-NEXT: LBB55_12: ## %else14
6701 ; AVX512F-NEXT: vpextrb $6, %xmm0, %eax
6702 ; AVX512F-NEXT: testb $1, %al
6703 ; AVX512F-NEXT: je LBB55_14
6704 ; AVX512F-NEXT: ## BB#13: ## %cond.load16
6705 ; AVX512F-NEXT: vpinsrw $6, 12(%rdi), %xmm3, %xmm4
6706 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm3 = ymm4[0,1,2,3],ymm3[4,5,6,7]
6707 ; AVX512F-NEXT: LBB55_14: ## %else17
6708 ; AVX512F-NEXT: vpextrb $7, %xmm0, %eax
6709 ; AVX512F-NEXT: testb $1, %al
6710 ; AVX512F-NEXT: je LBB55_16
6711 ; AVX512F-NEXT: ## BB#15: ## %cond.load19
6712 ; AVX512F-NEXT: vpinsrw $7, 14(%rdi), %xmm3, %xmm4
6713 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm3 = ymm4[0,1,2,3],ymm3[4,5,6,7]
6714 ; AVX512F-NEXT: LBB55_16: ## %else20
6715 ; AVX512F-NEXT: vpextrb $8, %xmm0, %eax
6716 ; AVX512F-NEXT: testb $1, %al
6717 ; AVX512F-NEXT: je LBB55_18
6718 ; AVX512F-NEXT: ## BB#17: ## %cond.load22
6719 ; AVX512F-NEXT: vextracti128 $1, %ymm3, %xmm4
6720 ; AVX512F-NEXT: vpinsrw $0, 16(%rdi), %xmm4, %xmm4
6721 ; AVX512F-NEXT: vinserti128 $1, %xmm4, %ymm3, %ymm3
6722 ; AVX512F-NEXT: LBB55_18: ## %else23
6723 ; AVX512F-NEXT: vpextrb $9, %xmm0, %eax
6724 ; AVX512F-NEXT: testb $1, %al
6725 ; AVX512F-NEXT: je LBB55_20
6726 ; AVX512F-NEXT: ## BB#19: ## %cond.load25
6727 ; AVX512F-NEXT: vextracti128 $1, %ymm3, %xmm4
6728 ; AVX512F-NEXT: vpinsrw $1, 18(%rdi), %xmm4, %xmm4
6729 ; AVX512F-NEXT: vinserti128 $1, %xmm4, %ymm3, %ymm3
6730 ; AVX512F-NEXT: LBB55_20: ## %else26
6731 ; AVX512F-NEXT: vpextrb $10, %xmm0, %eax
6732 ; AVX512F-NEXT: testb $1, %al
6733 ; AVX512F-NEXT: je LBB55_22
6734 ; AVX512F-NEXT: ## BB#21: ## %cond.load28
6735 ; AVX512F-NEXT: vextracti128 $1, %ymm3, %xmm4
6736 ; AVX512F-NEXT: vpinsrw $2, 20(%rdi), %xmm4, %xmm4
6737 ; AVX512F-NEXT: vinserti128 $1, %xmm4, %ymm3, %ymm3
6738 ; AVX512F-NEXT: LBB55_22: ## %else29
6739 ; AVX512F-NEXT: vpextrb $11, %xmm0, %eax
6740 ; AVX512F-NEXT: testb $1, %al
6741 ; AVX512F-NEXT: je LBB55_24
6742 ; AVX512F-NEXT: ## BB#23: ## %cond.load31
6743 ; AVX512F-NEXT: vextracti128 $1, %ymm3, %xmm4
6744 ; AVX512F-NEXT: vpinsrw $3, 22(%rdi), %xmm4, %xmm4
6745 ; AVX512F-NEXT: vinserti128 $1, %xmm4, %ymm3, %ymm3
6746 ; AVX512F-NEXT: LBB55_24: ## %else32
6747 ; AVX512F-NEXT: vpextrb $12, %xmm0, %eax
6748 ; AVX512F-NEXT: testb $1, %al
6749 ; AVX512F-NEXT: je LBB55_26
6750 ; AVX512F-NEXT: ## BB#25: ## %cond.load34
6751 ; AVX512F-NEXT: vextracti128 $1, %ymm3, %xmm4
6752 ; AVX512F-NEXT: vpinsrw $4, 24(%rdi), %xmm4, %xmm4
6753 ; AVX512F-NEXT: vinserti128 $1, %xmm4, %ymm3, %ymm3
6754 ; AVX512F-NEXT: LBB55_26: ## %else35
6755 ; AVX512F-NEXT: vpextrb $13, %xmm0, %eax
6756 ; AVX512F-NEXT: testb $1, %al
6757 ; AVX512F-NEXT: je LBB55_28
6758 ; AVX512F-NEXT: ## BB#27: ## %cond.load37
6759 ; AVX512F-NEXT: vextracti128 $1, %ymm3, %xmm4
6760 ; AVX512F-NEXT: vpinsrw $5, 26(%rdi), %xmm4, %xmm4
6761 ; AVX512F-NEXT: vinserti128 $1, %xmm4, %ymm3, %ymm3
6762 ; AVX512F-NEXT: LBB55_28: ## %else38
6763 ; AVX512F-NEXT: vpextrb $14, %xmm0, %eax
6764 ; AVX512F-NEXT: testb $1, %al
6765 ; AVX512F-NEXT: je LBB55_30
6766 ; AVX512F-NEXT: ## BB#29: ## %cond.load40
6767 ; AVX512F-NEXT: vextracti128 $1, %ymm3, %xmm4
6768 ; AVX512F-NEXT: vpinsrw $6, 28(%rdi), %xmm4, %xmm4
6769 ; AVX512F-NEXT: vinserti128 $1, %xmm4, %ymm3, %ymm3
6770 ; AVX512F-NEXT: LBB55_30: ## %else41
6771 ; AVX512F-NEXT: vpextrb $15, %xmm0, %eax
6772 ; AVX512F-NEXT: testb $1, %al
6773 ; AVX512F-NEXT: je LBB55_32
6774 ; AVX512F-NEXT: ## BB#31: ## %cond.load43
6775 ; AVX512F-NEXT: vextracti128 $1, %ymm3, %xmm4
6776 ; AVX512F-NEXT: vpinsrw $7, 30(%rdi), %xmm4, %xmm4
6777 ; AVX512F-NEXT: vinserti128 $1, %xmm4, %ymm3, %ymm3
6778 ; AVX512F-NEXT: LBB55_32: ## %else44
6779 ; AVX512F-NEXT: vextracti128 $1, %ymm0, %xmm4
6780 ; AVX512F-NEXT: vpextrb $0, %xmm4, %eax
6781 ; AVX512F-NEXT: testb $1, %al
6782 ; AVX512F-NEXT: je LBB55_34
6783 ; AVX512F-NEXT: ## BB#33: ## %cond.load46
6784 ; AVX512F-NEXT: vpinsrw $0, 32(%rdi), %xmm0, %xmm5
6785 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm5 = ymm5[0,1,2,3],ymm0[4,5,6,7]
6786 ; AVX512F-NEXT: LBB55_34: ## %else47
6787 ; AVX512F-NEXT: vpextrb $1, %xmm4, %eax
6788 ; AVX512F-NEXT: testb $1, %al
6789 ; AVX512F-NEXT: je LBB55_36
6790 ; AVX512F-NEXT: ## BB#35: ## %cond.load49
6791 ; AVX512F-NEXT: vpinsrw $1, 34(%rdi), %xmm5, %xmm6
6792 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm5 = ymm6[0,1,2,3],ymm5[4,5,6,7]
6793 ; AVX512F-NEXT: LBB55_36: ## %else50
6794 ; AVX512F-NEXT: vpextrb $2, %xmm4, %eax
6795 ; AVX512F-NEXT: testb $1, %al
6796 ; AVX512F-NEXT: je LBB55_38
6797 ; AVX512F-NEXT: ## BB#37: ## %cond.load52
6798 ; AVX512F-NEXT: vpinsrw $2, 36(%rdi), %xmm5, %xmm6
6799 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm5 = ymm6[0,1,2,3],ymm5[4,5,6,7]
6800 ; AVX512F-NEXT: LBB55_38: ## %else53
6801 ; AVX512F-NEXT: vpextrb $3, %xmm4, %eax
6802 ; AVX512F-NEXT: testb $1, %al
6803 ; AVX512F-NEXT: je LBB55_40
6804 ; AVX512F-NEXT: ## BB#39: ## %cond.load55
6805 ; AVX512F-NEXT: vpinsrw $3, 38(%rdi), %xmm5, %xmm6
6806 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm5 = ymm6[0,1,2,3],ymm5[4,5,6,7]
6807 ; AVX512F-NEXT: LBB55_40: ## %else56
6808 ; AVX512F-NEXT: vpextrb $4, %xmm4, %eax
6809 ; AVX512F-NEXT: testb $1, %al
6810 ; AVX512F-NEXT: je LBB55_42
6811 ; AVX512F-NEXT: ## BB#41: ## %cond.load58
6812 ; AVX512F-NEXT: vpinsrw $4, 40(%rdi), %xmm5, %xmm6
6813 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm5 = ymm6[0,1,2,3],ymm5[4,5,6,7]
6814 ; AVX512F-NEXT: LBB55_42: ## %else59
6815 ; AVX512F-NEXT: vpextrb $5, %xmm4, %eax
6816 ; AVX512F-NEXT: testb $1, %al
6817 ; AVX512F-NEXT: je LBB55_44
6818 ; AVX512F-NEXT: ## BB#43: ## %cond.load61
6819 ; AVX512F-NEXT: vpinsrw $5, 42(%rdi), %xmm5, %xmm6
6820 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm5 = ymm6[0,1,2,3],ymm5[4,5,6,7]
6821 ; AVX512F-NEXT: LBB55_44: ## %else62
6822 ; AVX512F-NEXT: vpextrb $6, %xmm4, %eax
6823 ; AVX512F-NEXT: testb $1, %al
6824 ; AVX512F-NEXT: je LBB55_46
6825 ; AVX512F-NEXT: ## BB#45: ## %cond.load64
6826 ; AVX512F-NEXT: vpinsrw $6, 44(%rdi), %xmm5, %xmm6
6827 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm5 = ymm6[0,1,2,3],ymm5[4,5,6,7]
6828 ; AVX512F-NEXT: LBB55_46: ## %else65
6829 ; AVX512F-NEXT: vpextrb $7, %xmm4, %eax
6830 ; AVX512F-NEXT: testb $1, %al
6831 ; AVX512F-NEXT: je LBB55_48
6832 ; AVX512F-NEXT: ## BB#47: ## %cond.load67
6833 ; AVX512F-NEXT: vpinsrw $7, 46(%rdi), %xmm5, %xmm6
6834 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm5 = ymm6[0,1,2,3],ymm5[4,5,6,7]
6835 ; AVX512F-NEXT: LBB55_48: ## %else68
6836 ; AVX512F-NEXT: vpextrb $8, %xmm4, %eax
6837 ; AVX512F-NEXT: testb $1, %al
6838 ; AVX512F-NEXT: je LBB55_50
6839 ; AVX512F-NEXT: ## BB#49: ## %cond.load70
6840 ; AVX512F-NEXT: vextracti128 $1, %ymm5, %xmm6
6841 ; AVX512F-NEXT: vpinsrw $0, 48(%rdi), %xmm6, %xmm6
6842 ; AVX512F-NEXT: vinserti128 $1, %xmm6, %ymm5, %ymm5
6843 ; AVX512F-NEXT: LBB55_50: ## %else71
6844 ; AVX512F-NEXT: vpextrb $9, %xmm4, %eax
6845 ; AVX512F-NEXT: testb $1, %al
6846 ; AVX512F-NEXT: je LBB55_52
6847 ; AVX512F-NEXT: ## BB#51: ## %cond.load73
6848 ; AVX512F-NEXT: vextracti128 $1, %ymm5, %xmm6
6849 ; AVX512F-NEXT: vpinsrw $1, 50(%rdi), %xmm6, %xmm6
6850 ; AVX512F-NEXT: vinserti128 $1, %xmm6, %ymm5, %ymm5
6851 ; AVX512F-NEXT: LBB55_52: ## %else74
6852 ; AVX512F-NEXT: vpextrb $10, %xmm4, %eax
6853 ; AVX512F-NEXT: testb $1, %al
6854 ; AVX512F-NEXT: je LBB55_54
6855 ; AVX512F-NEXT: ## BB#53: ## %cond.load76
6856 ; AVX512F-NEXT: vextracti128 $1, %ymm5, %xmm6
6857 ; AVX512F-NEXT: vpinsrw $2, 52(%rdi), %xmm6, %xmm6
6858 ; AVX512F-NEXT: vinserti128 $1, %xmm6, %ymm5, %ymm5
6859 ; AVX512F-NEXT: LBB55_54: ## %else77
6860 ; AVX512F-NEXT: vpextrb $11, %xmm4, %eax
6861 ; AVX512F-NEXT: testb $1, %al
6862 ; AVX512F-NEXT: je LBB55_56
6863 ; AVX512F-NEXT: ## BB#55: ## %cond.load79
6864 ; AVX512F-NEXT: vextracti128 $1, %ymm5, %xmm6
6865 ; AVX512F-NEXT: vpinsrw $3, 54(%rdi), %xmm6, %xmm6
6866 ; AVX512F-NEXT: vinserti128 $1, %xmm6, %ymm5, %ymm5
6867 ; AVX512F-NEXT: LBB55_56: ## %else80
6868 ; AVX512F-NEXT: vpextrb $12, %xmm4, %eax
6869 ; AVX512F-NEXT: testb $1, %al
6870 ; AVX512F-NEXT: je LBB55_58
6871 ; AVX512F-NEXT: ## BB#57: ## %cond.load82
6872 ; AVX512F-NEXT: vextracti128 $1, %ymm5, %xmm6
6873 ; AVX512F-NEXT: vpinsrw $4, 56(%rdi), %xmm6, %xmm6
6874 ; AVX512F-NEXT: vinserti128 $1, %xmm6, %ymm5, %ymm5
6875 ; AVX512F-NEXT: LBB55_58: ## %else83
6876 ; AVX512F-NEXT: vpextrb $13, %xmm4, %eax
6877 ; AVX512F-NEXT: testb $1, %al
6878 ; AVX512F-NEXT: je LBB55_60
6879 ; AVX512F-NEXT: ## BB#59: ## %cond.load85
6880 ; AVX512F-NEXT: vextracti128 $1, %ymm5, %xmm6
6881 ; AVX512F-NEXT: vpinsrw $5, 58(%rdi), %xmm6, %xmm6
6882 ; AVX512F-NEXT: vinserti128 $1, %xmm6, %ymm5, %ymm5
6883 ; AVX512F-NEXT: LBB55_60: ## %else86
6884 ; AVX512F-NEXT: vpextrb $14, %xmm4, %eax
6885 ; AVX512F-NEXT: testb $1, %al
6886 ; AVX512F-NEXT: je LBB55_62
6887 ; AVX512F-NEXT: ## BB#61: ## %cond.load88
6888 ; AVX512F-NEXT: vextracti128 $1, %ymm5, %xmm6
6889 ; AVX512F-NEXT: vpinsrw $6, 60(%rdi), %xmm6, %xmm6
6890 ; AVX512F-NEXT: vinserti128 $1, %xmm6, %ymm5, %ymm5
6891 ; AVX512F-NEXT: LBB55_62: ## %else89
6892 ; AVX512F-NEXT: vpextrb $15, %xmm4, %eax
6893 ; AVX512F-NEXT: testb $1, %al
6894 ; AVX512F-NEXT: je LBB55_64
6895 ; AVX512F-NEXT: ## BB#63: ## %cond.load91
6896 ; AVX512F-NEXT: vextracti128 $1, %ymm5, %xmm6
6897 ; AVX512F-NEXT: vpinsrw $7, 62(%rdi), %xmm6, %xmm6
6898 ; AVX512F-NEXT: vinserti128 $1, %xmm6, %ymm5, %ymm5
6899 ; AVX512F-NEXT: LBB55_64: ## %else92
6900 ; AVX512F-NEXT: vpmovzxbw {{.*#+}} ymm0 = xmm0[0],zero,xmm0[1],zero,xmm0[2],zero,xmm0[3],zero,xm…
6901 ; AVX512F-NEXT: vpsllw $15, %ymm0, %ymm0
6902 ; AVX512F-NEXT: vpsraw $15, %ymm0, %ymm0
6903 ; AVX512F-NEXT: vpblendvb %ymm0, %ymm3, %ymm1, %ymm0
6904 ; AVX512F-NEXT: vpmovzxbw {{.*#+}} ymm1 = xmm4[0],zero,xmm4[1],zero,xmm4[2],zero,xmm4[3],zero,xm…
6905 ; AVX512F-NEXT: vpsllw $15, %ymm1, %ymm1
6906 ; AVX512F-NEXT: vpsraw $15, %ymm1, %ymm1
6907 ; AVX512F-NEXT: vpblendvb %ymm1, %ymm5, %ymm2, %ymm1
6908 ; AVX512F-NEXT: retq
7023 ; AVX512F-LABEL: test_mask_store_16xi8:
7024 ; AVX512F: ## BB#0:
7025 ; AVX512F-NEXT: vpmovsxbd %xmm0, %zmm0
7026 ; AVX512F-NEXT: vpslld $31, %zmm0, %zmm0
7027 ; AVX512F-NEXT: vptestmd %zmm0, %zmm0, %k0
7028 ; AVX512F-NEXT: kshiftlw $15, %k0, %k1
7029 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1
7030 ; AVX512F-NEXT: kmovw %k1, %eax
7031 ; AVX512F-NEXT: testb %al, %al
7032 ; AVX512F-NEXT: je LBB56_2
7033 ; AVX512F-NEXT: ## BB#1: ## %cond.store
7034 ; AVX512F-NEXT: vpextrb $0, %xmm1, (%rdi)
7035 ; AVX512F-NEXT: LBB56_2: ## %else
7036 ; AVX512F-NEXT: kshiftlw $14, %k0, %k1
7037 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1
7038 ; AVX512F-NEXT: kmovw %k1, %eax
7039 ; AVX512F-NEXT: testb %al, %al
7040 ; AVX512F-NEXT: je LBB56_4
7041 ; AVX512F-NEXT: ## BB#3: ## %cond.store1
7042 ; AVX512F-NEXT: vpextrb $1, %xmm1, 1(%rdi)
7043 ; AVX512F-NEXT: LBB56_4: ## %else2
7044 ; AVX512F-NEXT: kshiftlw $13, %k0, %k1
7045 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1
7046 ; AVX512F-NEXT: kmovw %k1, %eax
7047 ; AVX512F-NEXT: testb %al, %al
7048 ; AVX512F-NEXT: je LBB56_6
7049 ; AVX512F-NEXT: ## BB#5: ## %cond.store3
7050 ; AVX512F-NEXT: vpextrb $2, %xmm1, 2(%rdi)
7051 ; AVX512F-NEXT: LBB56_6: ## %else4
7052 ; AVX512F-NEXT: kshiftlw $12, %k0, %k1
7053 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1
7054 ; AVX512F-NEXT: kmovw %k1, %eax
7055 ; AVX512F-NEXT: testb %al, %al
7056 ; AVX512F-NEXT: je LBB56_8
7057 ; AVX512F-NEXT: ## BB#7: ## %cond.store5
7058 ; AVX512F-NEXT: vpextrb $3, %xmm1, 3(%rdi)
7059 ; AVX512F-NEXT: LBB56_8: ## %else6
7060 ; AVX512F-NEXT: kshiftlw $11, %k0, %k1
7061 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1
7062 ; AVX512F-NEXT: kmovw %k1, %eax
7063 ; AVX512F-NEXT: testb %al, %al
7064 ; AVX512F-NEXT: je LBB56_10
7065 ; AVX512F-NEXT: ## BB#9: ## %cond.store7
7066 ; AVX512F-NEXT: vpextrb $4, %xmm1, 4(%rdi)
7067 ; AVX512F-NEXT: LBB56_10: ## %else8
7068 ; AVX512F-NEXT: kshiftlw $10, %k0, %k1
7069 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1
7070 ; AVX512F-NEXT: kmovw %k1, %eax
7071 ; AVX512F-NEXT: testb %al, %al
7072 ; AVX512F-NEXT: je LBB56_12
7073 ; AVX512F-NEXT: ## BB#11: ## %cond.store9
7074 ; AVX512F-NEXT: vpextrb $5, %xmm1, 5(%rdi)
7075 ; AVX512F-NEXT: LBB56_12: ## %else10
7076 ; AVX512F-NEXT: kshiftlw $9, %k0, %k1
7077 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1
7078 ; AVX512F-NEXT: kmovw %k1, %eax
7079 ; AVX512F-NEXT: testb %al, %al
7080 ; AVX512F-NEXT: je LBB56_14
7081 ; AVX512F-NEXT: ## BB#13: ## %cond.store11
7082 ; AVX512F-NEXT: vpextrb $6, %xmm1, 6(%rdi)
7083 ; AVX512F-NEXT: LBB56_14: ## %else12
7084 ; AVX512F-NEXT: kshiftlw $8, %k0, %k1
7085 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1
7086 ; AVX512F-NEXT: kmovw %k1, %eax
7087 ; AVX512F-NEXT: testb %al, %al
7088 ; AVX512F-NEXT: je LBB56_16
7089 ; AVX512F-NEXT: ## BB#15: ## %cond.store13
7090 ; AVX512F-NEXT: vpextrb $7, %xmm1, 7(%rdi)
7091 ; AVX512F-NEXT: LBB56_16: ## %else14
7092 ; AVX512F-NEXT: kshiftlw $7, %k0, %k1
7093 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1
7094 ; AVX512F-NEXT: kmovw %k1, %eax
7095 ; AVX512F-NEXT: testb %al, %al
7096 ; AVX512F-NEXT: je LBB56_18
7097 ; AVX512F-NEXT: ## BB#17: ## %cond.store15
7098 ; AVX512F-NEXT: vpextrb $8, %xmm1, 8(%rdi)
7099 ; AVX512F-NEXT: LBB56_18: ## %else16
7100 ; AVX512F-NEXT: kshiftlw $6, %k0, %k1
7101 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1
7102 ; AVX512F-NEXT: kmovw %k1, %eax
7103 ; AVX512F-NEXT: testb %al, %al
7104 ; AVX512F-NEXT: je LBB56_20
7105 ; AVX512F-NEXT: ## BB#19: ## %cond.store17
7106 ; AVX512F-NEXT: vpextrb $9, %xmm1, 9(%rdi)
7107 ; AVX512F-NEXT: LBB56_20: ## %else18
7108 ; AVX512F-NEXT: kshiftlw $5, %k0, %k1
7109 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1
7110 ; AVX512F-NEXT: kmovw %k1, %eax
7111 ; AVX512F-NEXT: testb %al, %al
7112 ; AVX512F-NEXT: je LBB56_22
7113 ; AVX512F-NEXT: ## BB#21: ## %cond.store19
7114 ; AVX512F-NEXT: vpextrb $10, %xmm1, 10(%rdi)
7115 ; AVX512F-NEXT: LBB56_22: ## %else20
7116 ; AVX512F-NEXT: kshiftlw $4, %k0, %k1
7117 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1
7118 ; AVX512F-NEXT: kmovw %k1, %eax
7119 ; AVX512F-NEXT: testb %al, %al
7120 ; AVX512F-NEXT: je LBB56_24
7121 ; AVX512F-NEXT: ## BB#23: ## %cond.store21
7122 ; AVX512F-NEXT: vpextrb $11, %xmm1, 11(%rdi)
7123 ; AVX512F-NEXT: LBB56_24: ## %else22
7124 ; AVX512F-NEXT: kshiftlw $3, %k0, %k1
7125 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1
7126 ; AVX512F-NEXT: kmovw %k1, %eax
7127 ; AVX512F-NEXT: testb %al, %al
7128 ; AVX512F-NEXT: je LBB56_26
7129 ; AVX512F-NEXT: ## BB#25: ## %cond.store23
7130 ; AVX512F-NEXT: vpextrb $12, %xmm1, 12(%rdi)
7131 ; AVX512F-NEXT: LBB56_26: ## %else24
7132 ; AVX512F-NEXT: kshiftlw $2, %k0, %k1
7133 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1
7134 ; AVX512F-NEXT: kmovw %k1, %eax
7135 ; AVX512F-NEXT: testb %al, %al
7136 ; AVX512F-NEXT: je LBB56_28
7137 ; AVX512F-NEXT: ## BB#27: ## %cond.store25
7138 ; AVX512F-NEXT: vpextrb $13, %xmm1, 13(%rdi)
7139 ; AVX512F-NEXT: LBB56_28: ## %else26
7140 ; AVX512F-NEXT: kshiftlw $1, %k0, %k1
7141 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1
7142 ; AVX512F-NEXT: kmovw %k1, %eax
7143 ; AVX512F-NEXT: testb %al, %al
7144 ; AVX512F-NEXT: je LBB56_30
7145 ; AVX512F-NEXT: ## BB#29: ## %cond.store27
7146 ; AVX512F-NEXT: vpextrb $14, %xmm1, 14(%rdi)
7147 ; AVX512F-NEXT: LBB56_30: ## %else28
7148 ; AVX512F-NEXT: kshiftlw $0, %k0, %k0
7149 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0
7150 ; AVX512F-NEXT: kmovw %k0, %eax
7151 ; AVX512F-NEXT: testb %al, %al
7152 ; AVX512F-NEXT: je LBB56_32
7153 ; AVX512F-NEXT: ## BB#31: ## %cond.store29
7154 ; AVX512F-NEXT: vpextrb $15, %xmm1, 15(%rdi)
7155 ; AVX512F-NEXT: LBB56_32: ## %else30
7156 ; AVX512F-NEXT: retq
7598 ; AVX512F-LABEL: test_mask_store_32xi8:
7599 ; AVX512F: ## BB#0:
7600 ; AVX512F-NEXT: vpextrb $0, %xmm0, %eax
7601 ; AVX512F-NEXT: testb $1, %al
7602 ; AVX512F-NEXT: je LBB57_2
7603 ; AVX512F-NEXT: ## BB#1: ## %cond.store
7604 ; AVX512F-NEXT: vpextrb $0, %xmm1, (%rdi)
7605 ; AVX512F-NEXT: LBB57_2: ## %else
7606 ; AVX512F-NEXT: vpextrb $1, %xmm0, %eax
7607 ; AVX512F-NEXT: testb $1, %al
7608 ; AVX512F-NEXT: je LBB57_4
7609 ; AVX512F-NEXT: ## BB#3: ## %cond.store1
7610 ; AVX512F-NEXT: vpextrb $1, %xmm1, 1(%rdi)
7611 ; AVX512F-NEXT: LBB57_4: ## %else2
7612 ; AVX512F-NEXT: vpextrb $2, %xmm0, %eax
7613 ; AVX512F-NEXT: testb $1, %al
7614 ; AVX512F-NEXT: je LBB57_6
7615 ; AVX512F-NEXT: ## BB#5: ## %cond.store3
7616 ; AVX512F-NEXT: vpextrb $2, %xmm1, 2(%rdi)
7617 ; AVX512F-NEXT: LBB57_6: ## %else4
7618 ; AVX512F-NEXT: vpextrb $3, %xmm0, %eax
7619 ; AVX512F-NEXT: testb $1, %al
7620 ; AVX512F-NEXT: je LBB57_8
7621 ; AVX512F-NEXT: ## BB#7: ## %cond.store5
7622 ; AVX512F-NEXT: vpextrb $3, %xmm1, 3(%rdi)
7623 ; AVX512F-NEXT: LBB57_8: ## %else6
7624 ; AVX512F-NEXT: vpextrb $4, %xmm0, %eax
7625 ; AVX512F-NEXT: testb $1, %al
7626 ; AVX512F-NEXT: je LBB57_10
7627 ; AVX512F-NEXT: ## BB#9: ## %cond.store7
7628 ; AVX512F-NEXT: vpextrb $4, %xmm1, 4(%rdi)
7629 ; AVX512F-NEXT: LBB57_10: ## %else8
7630 ; AVX512F-NEXT: vpextrb $5, %xmm0, %eax
7631 ; AVX512F-NEXT: testb $1, %al
7632 ; AVX512F-NEXT: je LBB57_12
7633 ; AVX512F-NEXT: ## BB#11: ## %cond.store9
7634 ; AVX512F-NEXT: vpextrb $5, %xmm1, 5(%rdi)
7635 ; AVX512F-NEXT: LBB57_12: ## %else10
7636 ; AVX512F-NEXT: vpextrb $6, %xmm0, %eax
7637 ; AVX512F-NEXT: testb $1, %al
7638 ; AVX512F-NEXT: je LBB57_14
7639 ; AVX512F-NEXT: ## BB#13: ## %cond.store11
7640 ; AVX512F-NEXT: vpextrb $6, %xmm1, 6(%rdi)
7641 ; AVX512F-NEXT: LBB57_14: ## %else12
7642 ; AVX512F-NEXT: vpextrb $7, %xmm0, %eax
7643 ; AVX512F-NEXT: testb $1, %al
7644 ; AVX512F-NEXT: je LBB57_16
7645 ; AVX512F-NEXT: ## BB#15: ## %cond.store13
7646 ; AVX512F-NEXT: vpextrb $7, %xmm1, 7(%rdi)
7647 ; AVX512F-NEXT: LBB57_16: ## %else14
7648 ; AVX512F-NEXT: vpextrb $8, %xmm0, %eax
7649 ; AVX512F-NEXT: testb $1, %al
7650 ; AVX512F-NEXT: je LBB57_18
7651 ; AVX512F-NEXT: ## BB#17: ## %cond.store15
7652 ; AVX512F-NEXT: vpextrb $8, %xmm1, 8(%rdi)
7653 ; AVX512F-NEXT: LBB57_18: ## %else16
7654 ; AVX512F-NEXT: vpextrb $9, %xmm0, %eax
7655 ; AVX512F-NEXT: testb $1, %al
7656 ; AVX512F-NEXT: je LBB57_20
7657 ; AVX512F-NEXT: ## BB#19: ## %cond.store17
7658 ; AVX512F-NEXT: vpextrb $9, %xmm1, 9(%rdi)
7659 ; AVX512F-NEXT: LBB57_20: ## %else18
7660 ; AVX512F-NEXT: vpextrb $10, %xmm0, %eax
7661 ; AVX512F-NEXT: testb $1, %al
7662 ; AVX512F-NEXT: je LBB57_22
7663 ; AVX512F-NEXT: ## BB#21: ## %cond.store19
7664 ; AVX512F-NEXT: vpextrb $10, %xmm1, 10(%rdi)
7665 ; AVX512F-NEXT: LBB57_22: ## %else20
7666 ; AVX512F-NEXT: vpextrb $11, %xmm0, %eax
7667 ; AVX512F-NEXT: testb $1, %al
7668 ; AVX512F-NEXT: je LBB57_24
7669 ; AVX512F-NEXT: ## BB#23: ## %cond.store21
7670 ; AVX512F-NEXT: vpextrb $11, %xmm1, 11(%rdi)
7671 ; AVX512F-NEXT: LBB57_24: ## %else22
7672 ; AVX512F-NEXT: vpextrb $12, %xmm0, %eax
7673 ; AVX512F-NEXT: testb $1, %al
7674 ; AVX512F-NEXT: je LBB57_26
7675 ; AVX512F-NEXT: ## BB#25: ## %cond.store23
7676 ; AVX512F-NEXT: vpextrb $12, %xmm1, 12(%rdi)
7677 ; AVX512F-NEXT: LBB57_26: ## %else24
7678 ; AVX512F-NEXT: vpextrb $13, %xmm0, %eax
7679 ; AVX512F-NEXT: testb $1, %al
7680 ; AVX512F-NEXT: je LBB57_28
7681 ; AVX512F-NEXT: ## BB#27: ## %cond.store25
7682 ; AVX512F-NEXT: vpextrb $13, %xmm1, 13(%rdi)
7683 ; AVX512F-NEXT: LBB57_28: ## %else26
7684 ; AVX512F-NEXT: vpextrb $14, %xmm0, %eax
7685 ; AVX512F-NEXT: testb $1, %al
7686 ; AVX512F-NEXT: je LBB57_30
7687 ; AVX512F-NEXT: ## BB#29: ## %cond.store27
7688 ; AVX512F-NEXT: vpextrb $14, %xmm1, 14(%rdi)
7689 ; AVX512F-NEXT: LBB57_30: ## %else28
7690 ; AVX512F-NEXT: vpextrb $15, %xmm0, %eax
7691 ; AVX512F-NEXT: testb $1, %al
7692 ; AVX512F-NEXT: je LBB57_32
7693 ; AVX512F-NEXT: ## BB#31: ## %cond.store29
7694 ; AVX512F-NEXT: vpextrb $15, %xmm1, 15(%rdi)
7695 ; AVX512F-NEXT: LBB57_32: ## %else30
7696 ; AVX512F-NEXT: vextracti128 $1, %ymm0, %xmm0
7697 ; AVX512F-NEXT: vpextrb $0, %xmm0, %eax
7698 ; AVX512F-NEXT: testb $1, %al
7699 ; AVX512F-NEXT: je LBB57_34
7700 ; AVX512F-NEXT: ## BB#33: ## %cond.store31
7701 ; AVX512F-NEXT: vextracti128 $1, %ymm1, %xmm2
7702 ; AVX512F-NEXT: vpextrb $0, %xmm2, 16(%rdi)
7703 ; AVX512F-NEXT: LBB57_34: ## %else32
7704 ; AVX512F-NEXT: vpextrb $1, %xmm0, %eax
7705 ; AVX512F-NEXT: testb $1, %al
7706 ; AVX512F-NEXT: je LBB57_36
7707 ; AVX512F-NEXT: ## BB#35: ## %cond.store33
7708 ; AVX512F-NEXT: vextracti128 $1, %ymm1, %xmm2
7709 ; AVX512F-NEXT: vpextrb $1, %xmm2, 17(%rdi)
7710 ; AVX512F-NEXT: LBB57_36: ## %else34
7711 ; AVX512F-NEXT: vpextrb $2, %xmm0, %eax
7712 ; AVX512F-NEXT: testb $1, %al
7713 ; AVX512F-NEXT: je LBB57_38
7714 ; AVX512F-NEXT: ## BB#37: ## %cond.store35
7715 ; AVX512F-NEXT: vextracti128 $1, %ymm1, %xmm2
7716 ; AVX512F-NEXT: vpextrb $2, %xmm2, 18(%rdi)
7717 ; AVX512F-NEXT: LBB57_38: ## %else36
7718 ; AVX512F-NEXT: vpextrb $3, %xmm0, %eax
7719 ; AVX512F-NEXT: testb $1, %al
7720 ; AVX512F-NEXT: je LBB57_40
7721 ; AVX512F-NEXT: ## BB#39: ## %cond.store37
7722 ; AVX512F-NEXT: vextracti128 $1, %ymm1, %xmm2
7723 ; AVX512F-NEXT: vpextrb $3, %xmm2, 19(%rdi)
7724 ; AVX512F-NEXT: LBB57_40: ## %else38
7725 ; AVX512F-NEXT: vpextrb $4, %xmm0, %eax
7726 ; AVX512F-NEXT: testb $1, %al
7727 ; AVX512F-NEXT: je LBB57_42
7728 ; AVX512F-NEXT: ## BB#41: ## %cond.store39
7729 ; AVX512F-NEXT: vextracti128 $1, %ymm1, %xmm2
7730 ; AVX512F-NEXT: vpextrb $4, %xmm2, 20(%rdi)
7731 ; AVX512F-NEXT: LBB57_42: ## %else40
7732 ; AVX512F-NEXT: vpextrb $5, %xmm0, %eax
7733 ; AVX512F-NEXT: testb $1, %al
7734 ; AVX512F-NEXT: je LBB57_44
7735 ; AVX512F-NEXT: ## BB#43: ## %cond.store41
7736 ; AVX512F-NEXT: vextracti128 $1, %ymm1, %xmm2
7737 ; AVX512F-NEXT: vpextrb $5, %xmm2, 21(%rdi)
7738 ; AVX512F-NEXT: LBB57_44: ## %else42
7739 ; AVX512F-NEXT: vpextrb $6, %xmm0, %eax
7740 ; AVX512F-NEXT: testb $1, %al
7741 ; AVX512F-NEXT: je LBB57_46
7742 ; AVX512F-NEXT: ## BB#45: ## %cond.store43
7743 ; AVX512F-NEXT: vextracti128 $1, %ymm1, %xmm2
7744 ; AVX512F-NEXT: vpextrb $6, %xmm2, 22(%rdi)
7745 ; AVX512F-NEXT: LBB57_46: ## %else44
7746 ; AVX512F-NEXT: vpextrb $7, %xmm0, %eax
7747 ; AVX512F-NEXT: testb $1, %al
7748 ; AVX512F-NEXT: je LBB57_48
7749 ; AVX512F-NEXT: ## BB#47: ## %cond.store45
7750 ; AVX512F-NEXT: vextracti128 $1, %ymm1, %xmm2
7751 ; AVX512F-NEXT: vpextrb $7, %xmm2, 23(%rdi)
7752 ; AVX512F-NEXT: LBB57_48: ## %else46
7753 ; AVX512F-NEXT: vpextrb $8, %xmm0, %eax
7754 ; AVX512F-NEXT: testb $1, %al
7755 ; AVX512F-NEXT: je LBB57_50
7756 ; AVX512F-NEXT: ## BB#49: ## %cond.store47
7757 ; AVX512F-NEXT: vextracti128 $1, %ymm1, %xmm2
7758 ; AVX512F-NEXT: vpextrb $8, %xmm2, 24(%rdi)
7759 ; AVX512F-NEXT: LBB57_50: ## %else48
7760 ; AVX512F-NEXT: vpextrb $9, %xmm0, %eax
7761 ; AVX512F-NEXT: testb $1, %al
7762 ; AVX512F-NEXT: je LBB57_52
7763 ; AVX512F-NEXT: ## BB#51: ## %cond.store49
7764 ; AVX512F-NEXT: vextracti128 $1, %ymm1, %xmm2
7765 ; AVX512F-NEXT: vpextrb $9, %xmm2, 25(%rdi)
7766 ; AVX512F-NEXT: LBB57_52: ## %else50
7767 ; AVX512F-NEXT: vpextrb $10, %xmm0, %eax
7768 ; AVX512F-NEXT: testb $1, %al
7769 ; AVX512F-NEXT: je LBB57_54
7770 ; AVX512F-NEXT: ## BB#53: ## %cond.store51
7771 ; AVX512F-NEXT: vextracti128 $1, %ymm1, %xmm2
7772 ; AVX512F-NEXT: vpextrb $10, %xmm2, 26(%rdi)
7773 ; AVX512F-NEXT: LBB57_54: ## %else52
7774 ; AVX512F-NEXT: vpextrb $11, %xmm0, %eax
7775 ; AVX512F-NEXT: testb $1, %al
7776 ; AVX512F-NEXT: je LBB57_56
7777 ; AVX512F-NEXT: ## BB#55: ## %cond.store53
7778 ; AVX512F-NEXT: vextracti128 $1, %ymm1, %xmm2
7779 ; AVX512F-NEXT: vpextrb $11, %xmm2, 27(%rdi)
7780 ; AVX512F-NEXT: LBB57_56: ## %else54
7781 ; AVX512F-NEXT: vpextrb $12, %xmm0, %eax
7782 ; AVX512F-NEXT: testb $1, %al
7783 ; AVX512F-NEXT: je LBB57_58
7784 ; AVX512F-NEXT: ## BB#57: ## %cond.store55
7785 ; AVX512F-NEXT: vextracti128 $1, %ymm1, %xmm2
7786 ; AVX512F-NEXT: vpextrb $12, %xmm2, 28(%rdi)
7787 ; AVX512F-NEXT: LBB57_58: ## %else56
7788 ; AVX512F-NEXT: vpextrb $13, %xmm0, %eax
7789 ; AVX512F-NEXT: testb $1, %al
7790 ; AVX512F-NEXT: je LBB57_60
7791 ; AVX512F-NEXT: ## BB#59: ## %cond.store57
7792 ; AVX512F-NEXT: vextracti128 $1, %ymm1, %xmm2
7793 ; AVX512F-NEXT: vpextrb $13, %xmm2, 29(%rdi)
7794 ; AVX512F-NEXT: LBB57_60: ## %else58
7795 ; AVX512F-NEXT: vpextrb $14, %xmm0, %eax
7796 ; AVX512F-NEXT: testb $1, %al
7797 ; AVX512F-NEXT: je LBB57_62
7798 ; AVX512F-NEXT: ## BB#61: ## %cond.store59
7799 ; AVX512F-NEXT: vextracti128 $1, %ymm1, %xmm2
7800 ; AVX512F-NEXT: vpextrb $14, %xmm2, 30(%rdi)
7801 ; AVX512F-NEXT: LBB57_62: ## %else60
7802 ; AVX512F-NEXT: vpextrb $15, %xmm0, %eax
7803 ; AVX512F-NEXT: testb $1, %al
7804 ; AVX512F-NEXT: je LBB57_64
7805 ; AVX512F-NEXT: ## BB#63: ## %cond.store61
7806 ; AVX512F-NEXT: vextracti128 $1, %ymm1, %xmm0
7807 ; AVX512F-NEXT: vpextrb $15, %xmm0, 31(%rdi)
7808 ; AVX512F-NEXT: LBB57_64: ## %else62
7809 ; AVX512F-NEXT: retq
8655 ; AVX512F-LABEL: test_mask_store_64xi8:
8656 ; AVX512F: ## BB#0:
8657 ; AVX512F-NEXT: vpmovsxbd %xmm0, %zmm0
8658 ; AVX512F-NEXT: vpslld $31, %zmm0, %zmm0
8659 ; AVX512F-NEXT: vptestmd %zmm0, %zmm0, %k0
8660 ; AVX512F-NEXT: kshiftlw $15, %k0, %k1
8661 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1
8662 ; AVX512F-NEXT: kmovw %k1, %eax
8663 ; AVX512F-NEXT: testb %al, %al
8664 ; AVX512F-NEXT: je LBB58_2
8665 ; AVX512F-NEXT: ## BB#1: ## %cond.store
8666 ; AVX512F-NEXT: vpextrb $0, %xmm4, (%rdi)
8667 ; AVX512F-NEXT: LBB58_2: ## %else
8668 ; AVX512F-NEXT: kshiftlw $14, %k0, %k1
8669 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1
8670 ; AVX512F-NEXT: kmovw %k1, %eax
8671 ; AVX512F-NEXT: testb %al, %al
8672 ; AVX512F-NEXT: je LBB58_4
8673 ; AVX512F-NEXT: ## BB#3: ## %cond.store1
8674 ; AVX512F-NEXT: vpextrb $1, %xmm4, 1(%rdi)
8675 ; AVX512F-NEXT: LBB58_4: ## %else2
8676 ; AVX512F-NEXT: kshiftlw $13, %k0, %k1
8677 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1
8678 ; AVX512F-NEXT: kmovw %k1, %eax
8679 ; AVX512F-NEXT: testb %al, %al
8680 ; AVX512F-NEXT: je LBB58_6
8681 ; AVX512F-NEXT: ## BB#5: ## %cond.store3
8682 ; AVX512F-NEXT: vpextrb $2, %xmm4, 2(%rdi)
8683 ; AVX512F-NEXT: LBB58_6: ## %else4
8684 ; AVX512F-NEXT: kshiftlw $12, %k0, %k1
8685 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1
8686 ; AVX512F-NEXT: kmovw %k1, %eax
8687 ; AVX512F-NEXT: testb %al, %al
8688 ; AVX512F-NEXT: je LBB58_8
8689 ; AVX512F-NEXT: ## BB#7: ## %cond.store5
8690 ; AVX512F-NEXT: vpextrb $3, %xmm4, 3(%rdi)
8691 ; AVX512F-NEXT: LBB58_8: ## %else6
8692 ; AVX512F-NEXT: kshiftlw $11, %k0, %k1
8693 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1
8694 ; AVX512F-NEXT: kmovw %k1, %eax
8695 ; AVX512F-NEXT: testb %al, %al
8696 ; AVX512F-NEXT: je LBB58_10
8697 ; AVX512F-NEXT: ## BB#9: ## %cond.store7
8698 ; AVX512F-NEXT: vpextrb $4, %xmm4, 4(%rdi)
8699 ; AVX512F-NEXT: LBB58_10: ## %else8
8700 ; AVX512F-NEXT: kshiftlw $10, %k0, %k1
8701 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1
8702 ; AVX512F-NEXT: kmovw %k1, %eax
8703 ; AVX512F-NEXT: testb %al, %al
8704 ; AVX512F-NEXT: je LBB58_12
8705 ; AVX512F-NEXT: ## BB#11: ## %cond.store9
8706 ; AVX512F-NEXT: vpextrb $5, %xmm4, 5(%rdi)
8707 ; AVX512F-NEXT: LBB58_12: ## %else10
8708 ; AVX512F-NEXT: kshiftlw $9, %k0, %k1
8709 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1
8710 ; AVX512F-NEXT: kmovw %k1, %eax
8711 ; AVX512F-NEXT: testb %al, %al
8712 ; AVX512F-NEXT: je LBB58_14
8713 ; AVX512F-NEXT: ## BB#13: ## %cond.store11
8714 ; AVX512F-NEXT: vpextrb $6, %xmm4, 6(%rdi)
8715 ; AVX512F-NEXT: LBB58_14: ## %else12
8716 ; AVX512F-NEXT: kshiftlw $8, %k0, %k1
8717 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1
8718 ; AVX512F-NEXT: kmovw %k1, %eax
8719 ; AVX512F-NEXT: testb %al, %al
8720 ; AVX512F-NEXT: je LBB58_16
8721 ; AVX512F-NEXT: ## BB#15: ## %cond.store13
8722 ; AVX512F-NEXT: vpextrb $7, %xmm4, 7(%rdi)
8723 ; AVX512F-NEXT: LBB58_16: ## %else14
8724 ; AVX512F-NEXT: kshiftlw $7, %k0, %k1
8725 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1
8726 ; AVX512F-NEXT: kmovw %k1, %eax
8727 ; AVX512F-NEXT: testb %al, %al
8728 ; AVX512F-NEXT: je LBB58_18
8729 ; AVX512F-NEXT: ## BB#17: ## %cond.store15
8730 ; AVX512F-NEXT: vpextrb $8, %xmm4, 8(%rdi)
8731 ; AVX512F-NEXT: LBB58_18: ## %else16
8732 ; AVX512F-NEXT: kshiftlw $6, %k0, %k1
8733 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1
8734 ; AVX512F-NEXT: kmovw %k1, %eax
8735 ; AVX512F-NEXT: testb %al, %al
8736 ; AVX512F-NEXT: je LBB58_20
8737 ; AVX512F-NEXT: ## BB#19: ## %cond.store17
8738 ; AVX512F-NEXT: vpextrb $9, %xmm4, 9(%rdi)
8739 ; AVX512F-NEXT: LBB58_20: ## %else18
8740 ; AVX512F-NEXT: kshiftlw $5, %k0, %k1
8741 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1
8742 ; AVX512F-NEXT: kmovw %k1, %eax
8743 ; AVX512F-NEXT: testb %al, %al
8744 ; AVX512F-NEXT: je LBB58_22
8745 ; AVX512F-NEXT: ## BB#21: ## %cond.store19
8746 ; AVX512F-NEXT: vpextrb $10, %xmm4, 10(%rdi)
8747 ; AVX512F-NEXT: LBB58_22: ## %else20
8748 ; AVX512F-NEXT: kshiftlw $4, %k0, %k1
8749 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1
8750 ; AVX512F-NEXT: kmovw %k1, %eax
8751 ; AVX512F-NEXT: testb %al, %al
8752 ; AVX512F-NEXT: je LBB58_24
8753 ; AVX512F-NEXT: ## BB#23: ## %cond.store21
8754 ; AVX512F-NEXT: vpextrb $11, %xmm4, 11(%rdi)
8755 ; AVX512F-NEXT: LBB58_24: ## %else22
8756 ; AVX512F-NEXT: kshiftlw $3, %k0, %k1
8757 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1
8758 ; AVX512F-NEXT: kmovw %k1, %eax
8759 ; AVX512F-NEXT: testb %al, %al
8760 ; AVX512F-NEXT: je LBB58_26
8761 ; AVX512F-NEXT: ## BB#25: ## %cond.store23
8762 ; AVX512F-NEXT: vpextrb $12, %xmm4, 12(%rdi)
8763 ; AVX512F-NEXT: LBB58_26: ## %else24
8764 ; AVX512F-NEXT: vpmovsxbd %xmm1, %zmm0
8765 ; AVX512F-NEXT: kshiftlw $2, %k0, %k1
8766 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1
8767 ; AVX512F-NEXT: kmovw %k1, %eax
8768 ; AVX512F-NEXT: testb %al, %al
8769 ; AVX512F-NEXT: je LBB58_28
8770 ; AVX512F-NEXT: ## BB#27: ## %cond.store25
8771 ; AVX512F-NEXT: vpextrb $13, %xmm4, 13(%rdi)
8772 ; AVX512F-NEXT: LBB58_28: ## %else26
8773 ; AVX512F-NEXT: vpslld $31, %zmm0, %zmm0
8774 ; AVX512F-NEXT: kshiftlw $1, %k0, %k1
8775 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1
8776 ; AVX512F-NEXT: kmovw %k1, %eax
8777 ; AVX512F-NEXT: testb %al, %al
8778 ; AVX512F-NEXT: je LBB58_30
8779 ; AVX512F-NEXT: ## BB#29: ## %cond.store27
8780 ; AVX512F-NEXT: vpextrb $14, %xmm4, 14(%rdi)
8781 ; AVX512F-NEXT: LBB58_30: ## %else28
8782 ; AVX512F-NEXT: vptestmd %zmm0, %zmm0, %k1
8783 ; AVX512F-NEXT: kshiftlw $0, %k0, %k0
8784 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0
8785 ; AVX512F-NEXT: kmovw %k0, %eax
8786 ; AVX512F-NEXT: testb %al, %al
8787 ; AVX512F-NEXT: je LBB58_32
8788 ; AVX512F-NEXT: ## BB#31: ## %cond.store29
8789 ; AVX512F-NEXT: vpextrb $15, %xmm4, 15(%rdi)
8790 ; AVX512F-NEXT: LBB58_32: ## %else30
8791 ; AVX512F-NEXT: kshiftlw $15, %k1, %k0
8792 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0
8793 ; AVX512F-NEXT: kmovw %k0, %eax
8794 ; AVX512F-NEXT: testb %al, %al
8795 ; AVX512F-NEXT: je LBB58_34
8796 ; AVX512F-NEXT: ## BB#33: ## %cond.store31
8797 ; AVX512F-NEXT: vextracti128 $1, %ymm4, %xmm0
8798 ; AVX512F-NEXT: vpextrb $0, %xmm0, 16(%rdi)
8799 ; AVX512F-NEXT: LBB58_34: ## %else32
8800 ; AVX512F-NEXT: kshiftlw $14, %k1, %k0
8801 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0
8802 ; AVX512F-NEXT: kmovw %k0, %eax
8803 ; AVX512F-NEXT: testb %al, %al
8804 ; AVX512F-NEXT: je LBB58_36
8805 ; AVX512F-NEXT: ## BB#35: ## %cond.store33
8806 ; AVX512F-NEXT: vextracti128 $1, %ymm4, %xmm0
8807 ; AVX512F-NEXT: vpextrb $1, %xmm0, 17(%rdi)
8808 ; AVX512F-NEXT: LBB58_36: ## %else34
8809 ; AVX512F-NEXT: kshiftlw $13, %k1, %k0
8810 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0
8811 ; AVX512F-NEXT: kmovw %k0, %eax
8812 ; AVX512F-NEXT: testb %al, %al
8813 ; AVX512F-NEXT: je LBB58_38
8814 ; AVX512F-NEXT: ## BB#37: ## %cond.store35
8815 ; AVX512F-NEXT: vextracti128 $1, %ymm4, %xmm0
8816 ; AVX512F-NEXT: vpextrb $2, %xmm0, 18(%rdi)
8817 ; AVX512F-NEXT: LBB58_38: ## %else36
8818 ; AVX512F-NEXT: kshiftlw $12, %k1, %k0
8819 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0
8820 ; AVX512F-NEXT: kmovw %k0, %eax
8821 ; AVX512F-NEXT: testb %al, %al
8822 ; AVX512F-NEXT: je LBB58_40
8823 ; AVX512F-NEXT: ## BB#39: ## %cond.store37
8824 ; AVX512F-NEXT: vextracti128 $1, %ymm4, %xmm0
8825 ; AVX512F-NEXT: vpextrb $3, %xmm0, 19(%rdi)
8826 ; AVX512F-NEXT: LBB58_40: ## %else38
8827 ; AVX512F-NEXT: kshiftlw $11, %k1, %k0
8828 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0
8829 ; AVX512F-NEXT: kmovw %k0, %eax
8830 ; AVX512F-NEXT: testb %al, %al
8831 ; AVX512F-NEXT: je LBB58_42
8832 ; AVX512F-NEXT: ## BB#41: ## %cond.store39
8833 ; AVX512F-NEXT: vextracti128 $1, %ymm4, %xmm0
8834 ; AVX512F-NEXT: vpextrb $4, %xmm0, 20(%rdi)
8835 ; AVX512F-NEXT: LBB58_42: ## %else40
8836 ; AVX512F-NEXT: kshiftlw $10, %k1, %k0
8837 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0
8838 ; AVX512F-NEXT: kmovw %k0, %eax
8839 ; AVX512F-NEXT: testb %al, %al
8840 ; AVX512F-NEXT: je LBB58_44
8841 ; AVX512F-NEXT: ## BB#43: ## %cond.store41
8842 ; AVX512F-NEXT: vextracti128 $1, %ymm4, %xmm0
8843 ; AVX512F-NEXT: vpextrb $5, %xmm0, 21(%rdi)
8844 ; AVX512F-NEXT: LBB58_44: ## %else42
8845 ; AVX512F-NEXT: kshiftlw $9, %k1, %k0
8846 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0
8847 ; AVX512F-NEXT: kmovw %k0, %eax
8848 ; AVX512F-NEXT: testb %al, %al
8849 ; AVX512F-NEXT: je LBB58_46
8850 ; AVX512F-NEXT: ## BB#45: ## %cond.store43
8851 ; AVX512F-NEXT: vextracti128 $1, %ymm4, %xmm0
8852 ; AVX512F-NEXT: vpextrb $6, %xmm0, 22(%rdi)
8853 ; AVX512F-NEXT: LBB58_46: ## %else44
8854 ; AVX512F-NEXT: kshiftlw $8, %k1, %k0
8855 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0
8856 ; AVX512F-NEXT: kmovw %k0, %eax
8857 ; AVX512F-NEXT: testb %al, %al
8858 ; AVX512F-NEXT: je LBB58_48
8859 ; AVX512F-NEXT: ## BB#47: ## %cond.store45
8860 ; AVX512F-NEXT: vextracti128 $1, %ymm4, %xmm0
8861 ; AVX512F-NEXT: vpextrb $7, %xmm0, 23(%rdi)
8862 ; AVX512F-NEXT: LBB58_48: ## %else46
8863 ; AVX512F-NEXT: kshiftlw $7, %k1, %k0
8864 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0
8865 ; AVX512F-NEXT: kmovw %k0, %eax
8866 ; AVX512F-NEXT: testb %al, %al
8867 ; AVX512F-NEXT: je LBB58_50
8868 ; AVX512F-NEXT: ## BB#49: ## %cond.store47
8869 ; AVX512F-NEXT: vextracti128 $1, %ymm4, %xmm0
8870 ; AVX512F-NEXT: vpextrb $8, %xmm0, 24(%rdi)
8871 ; AVX512F-NEXT: LBB58_50: ## %else48
8872 ; AVX512F-NEXT: kshiftlw $6, %k1, %k0
8873 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0
8874 ; AVX512F-NEXT: kmovw %k0, %eax
8875 ; AVX512F-NEXT: testb %al, %al
8876 ; AVX512F-NEXT: je LBB58_52
8877 ; AVX512F-NEXT: ## BB#51: ## %cond.store49
8878 ; AVX512F-NEXT: vextracti128 $1, %ymm4, %xmm0
8879 ; AVX512F-NEXT: vpextrb $9, %xmm0, 25(%rdi)
8880 ; AVX512F-NEXT: LBB58_52: ## %else50
8881 ; AVX512F-NEXT: kshiftlw $5, %k1, %k0
8882 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0
8883 ; AVX512F-NEXT: kmovw %k0, %eax
8884 ; AVX512F-NEXT: testb %al, %al
8885 ; AVX512F-NEXT: je LBB58_54
8886 ; AVX512F-NEXT: ## BB#53: ## %cond.store51
8887 ; AVX512F-NEXT: vextracti128 $1, %ymm4, %xmm0
8888 ; AVX512F-NEXT: vpextrb $10, %xmm0, 26(%rdi)
8889 ; AVX512F-NEXT: LBB58_54: ## %else52
8890 ; AVX512F-NEXT: kshiftlw $4, %k1, %k0
8891 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0
8892 ; AVX512F-NEXT: kmovw %k0, %eax
8893 ; AVX512F-NEXT: testb %al, %al
8894 ; AVX512F-NEXT: je LBB58_56
8895 ; AVX512F-NEXT: ## BB#55: ## %cond.store53
8896 ; AVX512F-NEXT: vextracti128 $1, %ymm4, %xmm0
8897 ; AVX512F-NEXT: vpextrb $11, %xmm0, 27(%rdi)
8898 ; AVX512F-NEXT: LBB58_56: ## %else54
8899 ; AVX512F-NEXT: kshiftlw $3, %k1, %k0
8900 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0
8901 ; AVX512F-NEXT: kmovw %k0, %eax
8902 ; AVX512F-NEXT: testb %al, %al
8903 ; AVX512F-NEXT: je LBB58_58
8904 ; AVX512F-NEXT: ## BB#57: ## %cond.store55
8905 ; AVX512F-NEXT: vextracti128 $1, %ymm4, %xmm0
8906 ; AVX512F-NEXT: vpextrb $12, %xmm0, 28(%rdi)
8907 ; AVX512F-NEXT: LBB58_58: ## %else56
8908 ; AVX512F-NEXT: vpmovsxbd %xmm2, %zmm0
8909 ; AVX512F-NEXT: kshiftlw $2, %k1, %k0
8910 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0
8911 ; AVX512F-NEXT: kmovw %k0, %eax
8912 ; AVX512F-NEXT: testb %al, %al
8913 ; AVX512F-NEXT: je LBB58_60
8914 ; AVX512F-NEXT: ## BB#59: ## %cond.store57
8915 ; AVX512F-NEXT: vextracti128 $1, %ymm4, %xmm1
8916 ; AVX512F-NEXT: vpextrb $13, %xmm1, 29(%rdi)
8917 ; AVX512F-NEXT: LBB58_60: ## %else58
8918 ; AVX512F-NEXT: vpslld $31, %zmm0, %zmm0
8919 ; AVX512F-NEXT: kshiftlw $1, %k1, %k0
8920 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0
8921 ; AVX512F-NEXT: kmovw %k0, %eax
8922 ; AVX512F-NEXT: testb %al, %al
8923 ; AVX512F-NEXT: je LBB58_62
8924 ; AVX512F-NEXT: ## BB#61: ## %cond.store59
8925 ; AVX512F-NEXT: vextracti128 $1, %ymm4, %xmm1
8926 ; AVX512F-NEXT: vpextrb $14, %xmm1, 30(%rdi)
8927 ; AVX512F-NEXT: LBB58_62: ## %else60
8928 ; AVX512F-NEXT: vptestmd %zmm0, %zmm0, %k0
8929 ; AVX512F-NEXT: kshiftlw $0, %k1, %k1
8930 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1
8931 ; AVX512F-NEXT: kmovw %k1, %eax
8932 ; AVX512F-NEXT: testb %al, %al
8933 ; AVX512F-NEXT: je LBB58_64
8934 ; AVX512F-NEXT: ## BB#63: ## %cond.store61
8935 ; AVX512F-NEXT: vextracti128 $1, %ymm4, %xmm0
8936 ; AVX512F-NEXT: vpextrb $15, %xmm0, 31(%rdi)
8937 ; AVX512F-NEXT: LBB58_64: ## %else62
8938 ; AVX512F-NEXT: kshiftlw $15, %k0, %k1
8939 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1
8940 ; AVX512F-NEXT: kmovw %k1, %eax
8941 ; AVX512F-NEXT: testb %al, %al
8942 ; AVX512F-NEXT: je LBB58_66
8943 ; AVX512F-NEXT: ## BB#65: ## %cond.store63
8944 ; AVX512F-NEXT: vpextrb $0, %xmm5, 32(%rdi)
8945 ; AVX512F-NEXT: LBB58_66: ## %else64
8946 ; AVX512F-NEXT: kshiftlw $14, %k0, %k1
8947 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1
8948 ; AVX512F-NEXT: kmovw %k1, %eax
8949 ; AVX512F-NEXT: testb %al, %al
8950 ; AVX512F-NEXT: je LBB58_68
8951 ; AVX512F-NEXT: ## BB#67: ## %cond.store65
8952 ; AVX512F-NEXT: vpextrb $1, %xmm5, 33(%rdi)
8953 ; AVX512F-NEXT: LBB58_68: ## %else66
8954 ; AVX512F-NEXT: kshiftlw $13, %k0, %k1
8955 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1
8956 ; AVX512F-NEXT: kmovw %k1, %eax
8957 ; AVX512F-NEXT: testb %al, %al
8958 ; AVX512F-NEXT: je LBB58_70
8959 ; AVX512F-NEXT: ## BB#69: ## %cond.store67
8960 ; AVX512F-NEXT: vpextrb $2, %xmm5, 34(%rdi)
8961 ; AVX512F-NEXT: LBB58_70: ## %else68
8962 ; AVX512F-NEXT: kshiftlw $12, %k0, %k1
8963 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1
8964 ; AVX512F-NEXT: kmovw %k1, %eax
8965 ; AVX512F-NEXT: testb %al, %al
8966 ; AVX512F-NEXT: je LBB58_72
8967 ; AVX512F-NEXT: ## BB#71: ## %cond.store69
8968 ; AVX512F-NEXT: vpextrb $3, %xmm5, 35(%rdi)
8969 ; AVX512F-NEXT: LBB58_72: ## %else70
8970 ; AVX512F-NEXT: kshiftlw $11, %k0, %k1
8971 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1
8972 ; AVX512F-NEXT: kmovw %k1, %eax
8973 ; AVX512F-NEXT: testb %al, %al
8974 ; AVX512F-NEXT: je LBB58_74
8975 ; AVX512F-NEXT: ## BB#73: ## %cond.store71
8976 ; AVX512F-NEXT: vpextrb $4, %xmm5, 36(%rdi)
8977 ; AVX512F-NEXT: LBB58_74: ## %else72
8978 ; AVX512F-NEXT: kshiftlw $10, %k0, %k1
8979 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1
8980 ; AVX512F-NEXT: kmovw %k1, %eax
8981 ; AVX512F-NEXT: testb %al, %al
8982 ; AVX512F-NEXT: je LBB58_76
8983 ; AVX512F-NEXT: ## BB#75: ## %cond.store73
8984 ; AVX512F-NEXT: vpextrb $5, %xmm5, 37(%rdi)
8985 ; AVX512F-NEXT: LBB58_76: ## %else74
8986 ; AVX512F-NEXT: kshiftlw $9, %k0, %k1
8987 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1
8988 ; AVX512F-NEXT: kmovw %k1, %eax
8989 ; AVX512F-NEXT: testb %al, %al
8990 ; AVX512F-NEXT: je LBB58_78
8991 ; AVX512F-NEXT: ## BB#77: ## %cond.store75
8992 ; AVX512F-NEXT: vpextrb $6, %xmm5, 38(%rdi)
8993 ; AVX512F-NEXT: LBB58_78: ## %else76
8994 ; AVX512F-NEXT: kshiftlw $8, %k0, %k1
8995 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1
8996 ; AVX512F-NEXT: kmovw %k1, %eax
8997 ; AVX512F-NEXT: testb %al, %al
8998 ; AVX512F-NEXT: je LBB58_80
8999 ; AVX512F-NEXT: ## BB#79: ## %cond.store77
9000 ; AVX512F-NEXT: vpextrb $7, %xmm5, 39(%rdi)
9001 ; AVX512F-NEXT: LBB58_80: ## %else78
9002 ; AVX512F-NEXT: kshiftlw $7, %k0, %k1
9003 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1
9004 ; AVX512F-NEXT: kmovw %k1, %eax
9005 ; AVX512F-NEXT: testb %al, %al
9006 ; AVX512F-NEXT: je LBB58_82
9007 ; AVX512F-NEXT: ## BB#81: ## %cond.store79
9008 ; AVX512F-NEXT: vpextrb $8, %xmm5, 40(%rdi)
9009 ; AVX512F-NEXT: LBB58_82: ## %else80
9010 ; AVX512F-NEXT: kshiftlw $6, %k0, %k1
9011 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1
9012 ; AVX512F-NEXT: kmovw %k1, %eax
9013 ; AVX512F-NEXT: testb %al, %al
9014 ; AVX512F-NEXT: je LBB58_84
9015 ; AVX512F-NEXT: ## BB#83: ## %cond.store81
9016 ; AVX512F-NEXT: vpextrb $9, %xmm5, 41(%rdi)
9017 ; AVX512F-NEXT: LBB58_84: ## %else82
9018 ; AVX512F-NEXT: kshiftlw $5, %k0, %k1
9019 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1
9020 ; AVX512F-NEXT: kmovw %k1, %eax
9021 ; AVX512F-NEXT: testb %al, %al
9022 ; AVX512F-NEXT: je LBB58_86
9023 ; AVX512F-NEXT: ## BB#85: ## %cond.store83
9024 ; AVX512F-NEXT: vpextrb $10, %xmm5, 42(%rdi)
9025 ; AVX512F-NEXT: LBB58_86: ## %else84
9026 ; AVX512F-NEXT: kshiftlw $4, %k0, %k1
9027 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1
9028 ; AVX512F-NEXT: kmovw %k1, %eax
9029 ; AVX512F-NEXT: testb %al, %al
9030 ; AVX512F-NEXT: je LBB58_88
9031 ; AVX512F-NEXT: ## BB#87: ## %cond.store85
9032 ; AVX512F-NEXT: vpextrb $11, %xmm5, 43(%rdi)
9033 ; AVX512F-NEXT: LBB58_88: ## %else86
9034 ; AVX512F-NEXT: kshiftlw $3, %k0, %k1
9035 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1
9036 ; AVX512F-NEXT: kmovw %k1, %eax
9037 ; AVX512F-NEXT: testb %al, %al
9038 ; AVX512F-NEXT: je LBB58_90
9039 ; AVX512F-NEXT: ## BB#89: ## %cond.store87
9040 ; AVX512F-NEXT: vpextrb $12, %xmm5, 44(%rdi)
9041 ; AVX512F-NEXT: LBB58_90: ## %else88
9042 ; AVX512F-NEXT: vpmovsxbd %xmm3, %zmm0
9043 ; AVX512F-NEXT: kshiftlw $2, %k0, %k1
9044 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1
9045 ; AVX512F-NEXT: kmovw %k1, %eax
9046 ; AVX512F-NEXT: testb %al, %al
9047 ; AVX512F-NEXT: je LBB58_92
9048 ; AVX512F-NEXT: ## BB#91: ## %cond.store89
9049 ; AVX512F-NEXT: vpextrb $13, %xmm5, 45(%rdi)
9050 ; AVX512F-NEXT: LBB58_92: ## %else90
9051 ; AVX512F-NEXT: vpslld $31, %zmm0, %zmm0
9052 ; AVX512F-NEXT: kshiftlw $1, %k0, %k1
9053 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1
9054 ; AVX512F-NEXT: kmovw %k1, %eax
9055 ; AVX512F-NEXT: testb %al, %al
9056 ; AVX512F-NEXT: je LBB58_94
9057 ; AVX512F-NEXT: ## BB#93: ## %cond.store91
9058 ; AVX512F-NEXT: vpextrb $14, %xmm5, 46(%rdi)
9059 ; AVX512F-NEXT: LBB58_94: ## %else92
9060 ; AVX512F-NEXT: vptestmd %zmm0, %zmm0, %k1
9061 ; AVX512F-NEXT: kshiftlw $0, %k0, %k0
9062 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0
9063 ; AVX512F-NEXT: kmovw %k0, %eax
9064 ; AVX512F-NEXT: testb %al, %al
9065 ; AVX512F-NEXT: je LBB58_96
9066 ; AVX512F-NEXT: ## BB#95: ## %cond.store93
9067 ; AVX512F-NEXT: vpextrb $15, %xmm5, 47(%rdi)
9068 ; AVX512F-NEXT: LBB58_96: ## %else94
9069 ; AVX512F-NEXT: kshiftlw $15, %k1, %k0
9070 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0
9071 ; AVX512F-NEXT: kmovw %k0, %eax
9072 ; AVX512F-NEXT: testb %al, %al
9073 ; AVX512F-NEXT: je LBB58_98
9074 ; AVX512F-NEXT: ## BB#97: ## %cond.store95
9075 ; AVX512F-NEXT: vextracti128 $1, %ymm5, %xmm0
9076 ; AVX512F-NEXT: vpextrb $0, %xmm0, 48(%rdi)
9077 ; AVX512F-NEXT: LBB58_98: ## %else96
9078 ; AVX512F-NEXT: kshiftlw $14, %k1, %k0
9079 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0
9080 ; AVX512F-NEXT: kmovw %k0, %eax
9081 ; AVX512F-NEXT: testb %al, %al
9082 ; AVX512F-NEXT: je LBB58_100
9083 ; AVX512F-NEXT: ## BB#99: ## %cond.store97
9084 ; AVX512F-NEXT: vextracti128 $1, %ymm5, %xmm0
9085 ; AVX512F-NEXT: vpextrb $1, %xmm0, 49(%rdi)
9086 ; AVX512F-NEXT: LBB58_100: ## %else98
9087 ; AVX512F-NEXT: kshiftlw $13, %k1, %k0
9088 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0
9089 ; AVX512F-NEXT: kmovw %k0, %eax
9090 ; AVX512F-NEXT: testb %al, %al
9091 ; AVX512F-NEXT: je LBB58_102
9092 ; AVX512F-NEXT: ## BB#101: ## %cond.store99
9093 ; AVX512F-NEXT: vextracti128 $1, %ymm5, %xmm0
9094 ; AVX512F-NEXT: vpextrb $2, %xmm0, 50(%rdi)
9095 ; AVX512F-NEXT: LBB58_102: ## %else100
9096 ; AVX512F-NEXT: kshiftlw $12, %k1, %k0
9097 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0
9098 ; AVX512F-NEXT: kmovw %k0, %eax
9099 ; AVX512F-NEXT: testb %al, %al
9100 ; AVX512F-NEXT: je LBB58_104
9101 ; AVX512F-NEXT: ## BB#103: ## %cond.store101
9102 ; AVX512F-NEXT: vextracti128 $1, %ymm5, %xmm0
9103 ; AVX512F-NEXT: vpextrb $3, %xmm0, 51(%rdi)
9104 ; AVX512F-NEXT: LBB58_104: ## %else102
9105 ; AVX512F-NEXT: kshiftlw $11, %k1, %k0
9106 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0
9107 ; AVX512F-NEXT: kmovw %k0, %eax
9108 ; AVX512F-NEXT: testb %al, %al
9109 ; AVX512F-NEXT: je LBB58_106
9110 ; AVX512F-NEXT: ## BB#105: ## %cond.store103
9111 ; AVX512F-NEXT: vextracti128 $1, %ymm5, %xmm0
9112 ; AVX512F-NEXT: vpextrb $4, %xmm0, 52(%rdi)
9113 ; AVX512F-NEXT: LBB58_106: ## %else104
9114 ; AVX512F-NEXT: kshiftlw $10, %k1, %k0
9115 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0
9116 ; AVX512F-NEXT: kmovw %k0, %eax
9117 ; AVX512F-NEXT: testb %al, %al
9118 ; AVX512F-NEXT: je LBB58_108
9119 ; AVX512F-NEXT: ## BB#107: ## %cond.store105
9120 ; AVX512F-NEXT: vextracti128 $1, %ymm5, %xmm0
9121 ; AVX512F-NEXT: vpextrb $5, %xmm0, 53(%rdi)
9122 ; AVX512F-NEXT: LBB58_108: ## %else106
9123 ; AVX512F-NEXT: kshiftlw $9, %k1, %k0
9124 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0
9125 ; AVX512F-NEXT: kmovw %k0, %eax
9126 ; AVX512F-NEXT: testb %al, %al
9127 ; AVX512F-NEXT: je LBB58_110
9128 ; AVX512F-NEXT: ## BB#109: ## %cond.store107
9129 ; AVX512F-NEXT: vextracti128 $1, %ymm5, %xmm0
9130 ; AVX512F-NEXT: vpextrb $6, %xmm0, 54(%rdi)
9131 ; AVX512F-NEXT: LBB58_110: ## %else108
9132 ; AVX512F-NEXT: kshiftlw $8, %k1, %k0
9133 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0
9134 ; AVX512F-NEXT: kmovw %k0, %eax
9135 ; AVX512F-NEXT: testb %al, %al
9136 ; AVX512F-NEXT: je LBB58_112
9137 ; AVX512F-NEXT: ## BB#111: ## %cond.store109
9138 ; AVX512F-NEXT: vextracti128 $1, %ymm5, %xmm0
9139 ; AVX512F-NEXT: vpextrb $7, %xmm0, 55(%rdi)
9140 ; AVX512F-NEXT: LBB58_112: ## %else110
9141 ; AVX512F-NEXT: kshiftlw $7, %k1, %k0
9142 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0
9143 ; AVX512F-NEXT: kmovw %k0, %eax
9144 ; AVX512F-NEXT: testb %al, %al
9145 ; AVX512F-NEXT: je LBB58_114
9146 ; AVX512F-NEXT: ## BB#113: ## %cond.store111
9147 ; AVX512F-NEXT: vextracti128 $1, %ymm5, %xmm0
9148 ; AVX512F-NEXT: vpextrb $8, %xmm0, 56(%rdi)
9149 ; AVX512F-NEXT: LBB58_114: ## %else112
9150 ; AVX512F-NEXT: kshiftlw $6, %k1, %k0
9151 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0
9152 ; AVX512F-NEXT: kmovw %k0, %eax
9153 ; AVX512F-NEXT: testb %al, %al
9154 ; AVX512F-NEXT: je LBB58_116
9155 ; AVX512F-NEXT: ## BB#115: ## %cond.store113
9156 ; AVX512F-NEXT: vextracti128 $1, %ymm5, %xmm0
9157 ; AVX512F-NEXT: vpextrb $9, %xmm0, 57(%rdi)
9158 ; AVX512F-NEXT: LBB58_116: ## %else114
9159 ; AVX512F-NEXT: kshiftlw $5, %k1, %k0
9160 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0
9161 ; AVX512F-NEXT: kmovw %k0, %eax
9162 ; AVX512F-NEXT: testb %al, %al
9163 ; AVX512F-NEXT: je LBB58_118
9164 ; AVX512F-NEXT: ## BB#117: ## %cond.store115
9165 ; AVX512F-NEXT: vextracti128 $1, %ymm5, %xmm0
9166 ; AVX512F-NEXT: vpextrb $10, %xmm0, 58(%rdi)
9167 ; AVX512F-NEXT: LBB58_118: ## %else116
9168 ; AVX512F-NEXT: kshiftlw $4, %k1, %k0
9169 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0
9170 ; AVX512F-NEXT: kmovw %k0, %eax
9171 ; AVX512F-NEXT: testb %al, %al
9172 ; AVX512F-NEXT: je LBB58_120
9173 ; AVX512F-NEXT: ## BB#119: ## %cond.store117
9174 ; AVX512F-NEXT: vextracti128 $1, %ymm5, %xmm0
9175 ; AVX512F-NEXT: vpextrb $11, %xmm0, 59(%rdi)
9176 ; AVX512F-NEXT: LBB58_120: ## %else118
9177 ; AVX512F-NEXT: kshiftlw $3, %k1, %k0
9178 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0
9179 ; AVX512F-NEXT: kmovw %k0, %eax
9180 ; AVX512F-NEXT: testb %al, %al
9181 ; AVX512F-NEXT: je LBB58_122
9182 ; AVX512F-NEXT: ## BB#121: ## %cond.store119
9183 ; AVX512F-NEXT: vextracti128 $1, %ymm5, %xmm0
9184 ; AVX512F-NEXT: vpextrb $12, %xmm0, 60(%rdi)
9185 ; AVX512F-NEXT: LBB58_122: ## %else120
9186 ; AVX512F-NEXT: kshiftlw $2, %k1, %k0
9187 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0
9188 ; AVX512F-NEXT: kmovw %k0, %eax
9189 ; AVX512F-NEXT: testb %al, %al
9190 ; AVX512F-NEXT: je LBB58_124
9191 ; AVX512F-NEXT: ## BB#123: ## %cond.store121
9192 ; AVX512F-NEXT: vextracti128 $1, %ymm5, %xmm0
9193 ; AVX512F-NEXT: vpextrb $13, %xmm0, 61(%rdi)
9194 ; AVX512F-NEXT: LBB58_124: ## %else122
9195 ; AVX512F-NEXT: kshiftlw $1, %k1, %k0
9196 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0
9197 ; AVX512F-NEXT: kmovw %k0, %eax
9198 ; AVX512F-NEXT: testb %al, %al
9199 ; AVX512F-NEXT: je LBB58_126
9200 ; AVX512F-NEXT: ## BB#125: ## %cond.store123
9201 ; AVX512F-NEXT: vextracti128 $1, %ymm5, %xmm0
9202 ; AVX512F-NEXT: vpextrb $14, %xmm0, 62(%rdi)
9203 ; AVX512F-NEXT: LBB58_126: ## %else124
9204 ; AVX512F-NEXT: kshiftlw $0, %k1, %k0
9205 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0
9206 ; AVX512F-NEXT: kmovw %k0, %eax
9207 ; AVX512F-NEXT: testb %al, %al
9208 ; AVX512F-NEXT: je LBB58_128
9209 ; AVX512F-NEXT: ## BB#127: ## %cond.store125
9210 ; AVX512F-NEXT: vextracti128 $1, %ymm5, %xmm0
9211 ; AVX512F-NEXT: vpextrb $15, %xmm0, 63(%rdi)
9212 ; AVX512F-NEXT: LBB58_128: ## %else126
9213 ; AVX512F-NEXT: retq
9280 ; AVX512F-LABEL: test_mask_store_8xi16:
9281 ; AVX512F: ## BB#0:
9282 ; AVX512F-NEXT: vpmovsxwq %xmm0, %zmm0
9283 ; AVX512F-NEXT: vpsllq $63, %zmm0, %zmm0
9284 ; AVX512F-NEXT: vptestmq %zmm0, %zmm0, %k0
9285 ; AVX512F-NEXT: kshiftlw $15, %k0, %k1
9286 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1
9287 ; AVX512F-NEXT: kmovw %k1, %eax
9288 ; AVX512F-NEXT: testb %al, %al
9289 ; AVX512F-NEXT: je LBB59_2
9290 ; AVX512F-NEXT: ## BB#1: ## %cond.store
9291 ; AVX512F-NEXT: vmovd %xmm1, %eax
9292 ; AVX512F-NEXT: movw %ax, (%rdi)
9293 ; AVX512F-NEXT: LBB59_2: ## %else
9294 ; AVX512F-NEXT: kshiftlw $14, %k0, %k1
9295 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1
9296 ; AVX512F-NEXT: kmovw %k1, %eax
9297 ; AVX512F-NEXT: testb %al, %al
9298 ; AVX512F-NEXT: je LBB59_4
9299 ; AVX512F-NEXT: ## BB#3: ## %cond.store1
9300 ; AVX512F-NEXT: vpextrw $1, %xmm1, 2(%rdi)
9301 ; AVX512F-NEXT: LBB59_4: ## %else2
9302 ; AVX512F-NEXT: kshiftlw $13, %k0, %k1
9303 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1
9304 ; AVX512F-NEXT: kmovw %k1, %eax
9305 ; AVX512F-NEXT: testb %al, %al
9306 ; AVX512F-NEXT: je LBB59_6
9307 ; AVX512F-NEXT: ## BB#5: ## %cond.store3
9308 ; AVX512F-NEXT: vpextrw $2, %xmm1, 4(%rdi)
9309 ; AVX512F-NEXT: LBB59_6: ## %else4
9310 ; AVX512F-NEXT: kshiftlw $12, %k0, %k1
9311 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1
9312 ; AVX512F-NEXT: kmovw %k1, %eax
9313 ; AVX512F-NEXT: testb %al, %al
9314 ; AVX512F-NEXT: je LBB59_8
9315 ; AVX512F-NEXT: ## BB#7: ## %cond.store5
9316 ; AVX512F-NEXT: vpextrw $3, %xmm1, 6(%rdi)
9317 ; AVX512F-NEXT: LBB59_8: ## %else6
9318 ; AVX512F-NEXT: kshiftlw $11, %k0, %k1
9319 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1
9320 ; AVX512F-NEXT: kmovw %k1, %eax
9321 ; AVX512F-NEXT: testb %al, %al
9322 ; AVX512F-NEXT: je LBB59_10
9323 ; AVX512F-NEXT: ## BB#9: ## %cond.store7
9324 ; AVX512F-NEXT: vpextrw $4, %xmm1, 8(%rdi)
9325 ; AVX512F-NEXT: LBB59_10: ## %else8
9326 ; AVX512F-NEXT: kshiftlw $10, %k0, %k1
9327 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1
9328 ; AVX512F-NEXT: kmovw %k1, %eax
9329 ; AVX512F-NEXT: testb %al, %al
9330 ; AVX512F-NEXT: je LBB59_12
9331 ; AVX512F-NEXT: ## BB#11: ## %cond.store9
9332 ; AVX512F-NEXT: vpextrw $5, %xmm1, 10(%rdi)
9333 ; AVX512F-NEXT: LBB59_12: ## %else10
9334 ; AVX512F-NEXT: kshiftlw $9, %k0, %k1
9335 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1
9336 ; AVX512F-NEXT: kmovw %k1, %eax
9337 ; AVX512F-NEXT: testb %al, %al
9338 ; AVX512F-NEXT: je LBB59_14
9339 ; AVX512F-NEXT: ## BB#13: ## %cond.store11
9340 ; AVX512F-NEXT: vpextrw $6, %xmm1, 12(%rdi)
9341 ; AVX512F-NEXT: LBB59_14: ## %else12
9342 ; AVX512F-NEXT: kshiftlw $8, %k0, %k0
9343 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0
9344 ; AVX512F-NEXT: kmovw %k0, %eax
9345 ; AVX512F-NEXT: testb %al, %al
9346 ; AVX512F-NEXT: je LBB59_16
9347 ; AVX512F-NEXT: ## BB#15: ## %cond.store13
9348 ; AVX512F-NEXT: vpextrw $7, %xmm1, 14(%rdi)
9349 ; AVX512F-NEXT: LBB59_16: ## %else14
9350 ; AVX512F-NEXT: retq
9586 ; AVX512F-LABEL: test_mask_store_16xi16:
9587 ; AVX512F: ## BB#0:
9588 ; AVX512F-NEXT: vpmovsxbd %xmm0, %zmm0
9589 ; AVX512F-NEXT: vpslld $31, %zmm0, %zmm0
9590 ; AVX512F-NEXT: vptestmd %zmm0, %zmm0, %k0
9591 ; AVX512F-NEXT: kshiftlw $15, %k0, %k1
9592 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1
9593 ; AVX512F-NEXT: kmovw %k1, %eax
9594 ; AVX512F-NEXT: testb %al, %al
9595 ; AVX512F-NEXT: je LBB60_2
9596 ; AVX512F-NEXT: ## BB#1: ## %cond.store
9597 ; AVX512F-NEXT: vmovd %xmm1, %eax
9598 ; AVX512F-NEXT: movw %ax, (%rdi)
9599 ; AVX512F-NEXT: LBB60_2: ## %else
9600 ; AVX512F-NEXT: kshiftlw $14, %k0, %k1
9601 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1
9602 ; AVX512F-NEXT: kmovw %k1, %eax
9603 ; AVX512F-NEXT: testb %al, %al
9604 ; AVX512F-NEXT: je LBB60_4
9605 ; AVX512F-NEXT: ## BB#3: ## %cond.store1
9606 ; AVX512F-NEXT: vpextrw $1, %xmm1, 2(%rdi)
9607 ; AVX512F-NEXT: LBB60_4: ## %else2
9608 ; AVX512F-NEXT: kshiftlw $13, %k0, %k1
9609 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1
9610 ; AVX512F-NEXT: kmovw %k1, %eax
9611 ; AVX512F-NEXT: testb %al, %al
9612 ; AVX512F-NEXT: je LBB60_6
9613 ; AVX512F-NEXT: ## BB#5: ## %cond.store3
9614 ; AVX512F-NEXT: vpextrw $2, %xmm1, 4(%rdi)
9615 ; AVX512F-NEXT: LBB60_6: ## %else4
9616 ; AVX512F-NEXT: kshiftlw $12, %k0, %k1
9617 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1
9618 ; AVX512F-NEXT: kmovw %k1, %eax
9619 ; AVX512F-NEXT: testb %al, %al
9620 ; AVX512F-NEXT: je LBB60_8
9621 ; AVX512F-NEXT: ## BB#7: ## %cond.store5
9622 ; AVX512F-NEXT: vpextrw $3, %xmm1, 6(%rdi)
9623 ; AVX512F-NEXT: LBB60_8: ## %else6
9624 ; AVX512F-NEXT: kshiftlw $11, %k0, %k1
9625 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1
9626 ; AVX512F-NEXT: kmovw %k1, %eax
9627 ; AVX512F-NEXT: testb %al, %al
9628 ; AVX512F-NEXT: je LBB60_10
9629 ; AVX512F-NEXT: ## BB#9: ## %cond.store7
9630 ; AVX512F-NEXT: vpextrw $4, %xmm1, 8(%rdi)
9631 ; AVX512F-NEXT: LBB60_10: ## %else8
9632 ; AVX512F-NEXT: kshiftlw $10, %k0, %k1
9633 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1
9634 ; AVX512F-NEXT: kmovw %k1, %eax
9635 ; AVX512F-NEXT: testb %al, %al
9636 ; AVX512F-NEXT: je LBB60_12
9637 ; AVX512F-NEXT: ## BB#11: ## %cond.store9
9638 ; AVX512F-NEXT: vpextrw $5, %xmm1, 10(%rdi)
9639 ; AVX512F-NEXT: LBB60_12: ## %else10
9640 ; AVX512F-NEXT: kshiftlw $9, %k0, %k1
9641 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1
9642 ; AVX512F-NEXT: kmovw %k1, %eax
9643 ; AVX512F-NEXT: testb %al, %al
9644 ; AVX512F-NEXT: je LBB60_14
9645 ; AVX512F-NEXT: ## BB#13: ## %cond.store11
9646 ; AVX512F-NEXT: vpextrw $6, %xmm1, 12(%rdi)
9647 ; AVX512F-NEXT: LBB60_14: ## %else12
9648 ; AVX512F-NEXT: kshiftlw $8, %k0, %k1
9649 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1
9650 ; AVX512F-NEXT: kmovw %k1, %eax
9651 ; AVX512F-NEXT: testb %al, %al
9652 ; AVX512F-NEXT: je LBB60_16
9653 ; AVX512F-NEXT: ## BB#15: ## %cond.store13
9654 ; AVX512F-NEXT: vpextrw $7, %xmm1, 14(%rdi)
9655 ; AVX512F-NEXT: LBB60_16: ## %else14
9656 ; AVX512F-NEXT: kshiftlw $7, %k0, %k1
9657 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1
9658 ; AVX512F-NEXT: kmovw %k1, %eax
9659 ; AVX512F-NEXT: testb %al, %al
9660 ; AVX512F-NEXT: je LBB60_18
9661 ; AVX512F-NEXT: ## BB#17: ## %cond.store15
9662 ; AVX512F-NEXT: vextracti128 $1, %ymm1, %xmm0
9663 ; AVX512F-NEXT: vmovd %xmm0, %eax
9664 ; AVX512F-NEXT: movw %ax, 16(%rdi)
9665 ; AVX512F-NEXT: LBB60_18: ## %else16
9666 ; AVX512F-NEXT: kshiftlw $6, %k0, %k1
9667 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1
9668 ; AVX512F-NEXT: kmovw %k1, %eax
9669 ; AVX512F-NEXT: testb %al, %al
9670 ; AVX512F-NEXT: je LBB60_20
9671 ; AVX512F-NEXT: ## BB#19: ## %cond.store17
9672 ; AVX512F-NEXT: vextracti128 $1, %ymm1, %xmm0
9673 ; AVX512F-NEXT: vpextrw $1, %xmm0, 18(%rdi)
9674 ; AVX512F-NEXT: LBB60_20: ## %else18
9675 ; AVX512F-NEXT: kshiftlw $5, %k0, %k1
9676 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1
9677 ; AVX512F-NEXT: kmovw %k1, %eax
9678 ; AVX512F-NEXT: testb %al, %al
9679 ; AVX512F-NEXT: je LBB60_22
9680 ; AVX512F-NEXT: ## BB#21: ## %cond.store19
9681 ; AVX512F-NEXT: vextracti128 $1, %ymm1, %xmm0
9682 ; AVX512F-NEXT: vpextrw $2, %xmm0, 20(%rdi)
9683 ; AVX512F-NEXT: LBB60_22: ## %else20
9684 ; AVX512F-NEXT: kshiftlw $4, %k0, %k1
9685 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1
9686 ; AVX512F-NEXT: kmovw %k1, %eax
9687 ; AVX512F-NEXT: testb %al, %al
9688 ; AVX512F-NEXT: je LBB60_24
9689 ; AVX512F-NEXT: ## BB#23: ## %cond.store21
9690 ; AVX512F-NEXT: vextracti128 $1, %ymm1, %xmm0
9691 ; AVX512F-NEXT: vpextrw $3, %xmm0, 22(%rdi)
9692 ; AVX512F-NEXT: LBB60_24: ## %else22
9693 ; AVX512F-NEXT: kshiftlw $3, %k0, %k1
9694 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1
9695 ; AVX512F-NEXT: kmovw %k1, %eax
9696 ; AVX512F-NEXT: testb %al, %al
9697 ; AVX512F-NEXT: je LBB60_26
9698 ; AVX512F-NEXT: ## BB#25: ## %cond.store23
9699 ; AVX512F-NEXT: vextracti128 $1, %ymm1, %xmm0
9700 ; AVX512F-NEXT: vpextrw $4, %xmm0, 24(%rdi)
9701 ; AVX512F-NEXT: LBB60_26: ## %else24
9702 ; AVX512F-NEXT: kshiftlw $2, %k0, %k1
9703 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1
9704 ; AVX512F-NEXT: kmovw %k1, %eax
9705 ; AVX512F-NEXT: testb %al, %al
9706 ; AVX512F-NEXT: je LBB60_28
9707 ; AVX512F-NEXT: ## BB#27: ## %cond.store25
9708 ; AVX512F-NEXT: vextracti128 $1, %ymm1, %xmm0
9709 ; AVX512F-NEXT: vpextrw $5, %xmm0, 26(%rdi)
9710 ; AVX512F-NEXT: LBB60_28: ## %else26
9711 ; AVX512F-NEXT: kshiftlw $1, %k0, %k1
9712 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1
9713 ; AVX512F-NEXT: kmovw %k1, %eax
9714 ; AVX512F-NEXT: testb %al, %al
9715 ; AVX512F-NEXT: je LBB60_30
9716 ; AVX512F-NEXT: ## BB#29: ## %cond.store27
9717 ; AVX512F-NEXT: vextracti128 $1, %ymm1, %xmm0
9718 ; AVX512F-NEXT: vpextrw $6, %xmm0, 28(%rdi)
9719 ; AVX512F-NEXT: LBB60_30: ## %else28
9720 ; AVX512F-NEXT: kshiftlw $0, %k0, %k0
9721 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0
9722 ; AVX512F-NEXT: kmovw %k0, %eax
9723 ; AVX512F-NEXT: testb %al, %al
9724 ; AVX512F-NEXT: je LBB60_32
9725 ; AVX512F-NEXT: ## BB#31: ## %cond.store29
9726 ; AVX512F-NEXT: vextracti128 $1, %ymm1, %xmm0
9727 ; AVX512F-NEXT: vpextrw $7, %xmm0, 30(%rdi)
9728 ; AVX512F-NEXT: LBB60_32: ## %else30
9729 ; AVX512F-NEXT: retq
10179 ; AVX512F-LABEL: test_mask_store_32xi16:
10180 ; AVX512F: ## BB#0:
10181 ; AVX512F-NEXT: vpextrb $0, %xmm0, %eax
10182 ; AVX512F-NEXT: testb $1, %al
10183 ; AVX512F-NEXT: je LBB61_2
10184 ; AVX512F-NEXT: ## BB#1: ## %cond.store
10185 ; AVX512F-NEXT: vmovd %xmm1, %eax
10186 ; AVX512F-NEXT: movw %ax, (%rdi)
10187 ; AVX512F-NEXT: LBB61_2: ## %else
10188 ; AVX512F-NEXT: vpextrb $1, %xmm0, %eax
10189 ; AVX512F-NEXT: testb $1, %al
10190 ; AVX512F-NEXT: je LBB61_4
10191 ; AVX512F-NEXT: ## BB#3: ## %cond.store1
10192 ; AVX512F-NEXT: vpextrw $1, %xmm1, 2(%rdi)
10193 ; AVX512F-NEXT: LBB61_4: ## %else2
10194 ; AVX512F-NEXT: vpextrb $2, %xmm0, %eax
10195 ; AVX512F-NEXT: testb $1, %al
10196 ; AVX512F-NEXT: je LBB61_6
10197 ; AVX512F-NEXT: ## BB#5: ## %cond.store3
10198 ; AVX512F-NEXT: vpextrw $2, %xmm1, 4(%rdi)
10199 ; AVX512F-NEXT: LBB61_6: ## %else4
10200 ; AVX512F-NEXT: vpextrb $3, %xmm0, %eax
10201 ; AVX512F-NEXT: testb $1, %al
10202 ; AVX512F-NEXT: je LBB61_8
10203 ; AVX512F-NEXT: ## BB#7: ## %cond.store5
10204 ; AVX512F-NEXT: vpextrw $3, %xmm1, 6(%rdi)
10205 ; AVX512F-NEXT: LBB61_8: ## %else6
10206 ; AVX512F-NEXT: vpextrb $4, %xmm0, %eax
10207 ; AVX512F-NEXT: testb $1, %al
10208 ; AVX512F-NEXT: je LBB61_10
10209 ; AVX512F-NEXT: ## BB#9: ## %cond.store7
10210 ; AVX512F-NEXT: vpextrw $4, %xmm1, 8(%rdi)
10211 ; AVX512F-NEXT: LBB61_10: ## %else8
10212 ; AVX512F-NEXT: vpextrb $5, %xmm0, %eax
10213 ; AVX512F-NEXT: testb $1, %al
10214 ; AVX512F-NEXT: je LBB61_12
10215 ; AVX512F-NEXT: ## BB#11: ## %cond.store9
10216 ; AVX512F-NEXT: vpextrw $5, %xmm1, 10(%rdi)
10217 ; AVX512F-NEXT: LBB61_12: ## %else10
10218 ; AVX512F-NEXT: vpextrb $6, %xmm0, %eax
10219 ; AVX512F-NEXT: testb $1, %al
10220 ; AVX512F-NEXT: je LBB61_14
10221 ; AVX512F-NEXT: ## BB#13: ## %cond.store11
10222 ; AVX512F-NEXT: vpextrw $6, %xmm1, 12(%rdi)
10223 ; AVX512F-NEXT: LBB61_14: ## %else12
10224 ; AVX512F-NEXT: vpextrb $7, %xmm0, %eax
10225 ; AVX512F-NEXT: testb $1, %al
10226 ; AVX512F-NEXT: je LBB61_16
10227 ; AVX512F-NEXT: ## BB#15: ## %cond.store13
10228 ; AVX512F-NEXT: vpextrw $7, %xmm1, 14(%rdi)
10229 ; AVX512F-NEXT: LBB61_16: ## %else14
10230 ; AVX512F-NEXT: vpextrb $8, %xmm0, %eax
10231 ; AVX512F-NEXT: testb $1, %al
10232 ; AVX512F-NEXT: je LBB61_18
10233 ; AVX512F-NEXT: ## BB#17: ## %cond.store15
10234 ; AVX512F-NEXT: vextracti128 $1, %ymm1, %xmm3
10235 ; AVX512F-NEXT: vmovd %xmm3, %eax
10236 ; AVX512F-NEXT: movw %ax, 16(%rdi)
10237 ; AVX512F-NEXT: LBB61_18: ## %else16
10238 ; AVX512F-NEXT: vpextrb $9, %xmm0, %eax
10239 ; AVX512F-NEXT: testb $1, %al
10240 ; AVX512F-NEXT: je LBB61_20
10241 ; AVX512F-NEXT: ## BB#19: ## %cond.store17
10242 ; AVX512F-NEXT: vextracti128 $1, %ymm1, %xmm3
10243 ; AVX512F-NEXT: vpextrw $1, %xmm3, 18(%rdi)
10244 ; AVX512F-NEXT: LBB61_20: ## %else18
10245 ; AVX512F-NEXT: vpextrb $10, %xmm0, %eax
10246 ; AVX512F-NEXT: testb $1, %al
10247 ; AVX512F-NEXT: je LBB61_22
10248 ; AVX512F-NEXT: ## BB#21: ## %cond.store19
10249 ; AVX512F-NEXT: vextracti128 $1, %ymm1, %xmm3
10250 ; AVX512F-NEXT: vpextrw $2, %xmm3, 20(%rdi)
10251 ; AVX512F-NEXT: LBB61_22: ## %else20
10252 ; AVX512F-NEXT: vpextrb $11, %xmm0, %eax
10253 ; AVX512F-NEXT: testb $1, %al
10254 ; AVX512F-NEXT: je LBB61_24
10255 ; AVX512F-NEXT: ## BB#23: ## %cond.store21
10256 ; AVX512F-NEXT: vextracti128 $1, %ymm1, %xmm3
10257 ; AVX512F-NEXT: vpextrw $3, %xmm3, 22(%rdi)
10258 ; AVX512F-NEXT: LBB61_24: ## %else22
10259 ; AVX512F-NEXT: vpextrb $12, %xmm0, %eax
10260 ; AVX512F-NEXT: testb $1, %al
10261 ; AVX512F-NEXT: je LBB61_26
10262 ; AVX512F-NEXT: ## BB#25: ## %cond.store23
10263 ; AVX512F-NEXT: vextracti128 $1, %ymm1, %xmm3
10264 ; AVX512F-NEXT: vpextrw $4, %xmm3, 24(%rdi)
10265 ; AVX512F-NEXT: LBB61_26: ## %else24
10266 ; AVX512F-NEXT: vpextrb $13, %xmm0, %eax
10267 ; AVX512F-NEXT: testb $1, %al
10268 ; AVX512F-NEXT: je LBB61_28
10269 ; AVX512F-NEXT: ## BB#27: ## %cond.store25
10270 ; AVX512F-NEXT: vextracti128 $1, %ymm1, %xmm3
10271 ; AVX512F-NEXT: vpextrw $5, %xmm3, 26(%rdi)
10272 ; AVX512F-NEXT: LBB61_28: ## %else26
10273 ; AVX512F-NEXT: vpextrb $14, %xmm0, %eax
10274 ; AVX512F-NEXT: testb $1, %al
10275 ; AVX512F-NEXT: je LBB61_30
10276 ; AVX512F-NEXT: ## BB#29: ## %cond.store27
10277 ; AVX512F-NEXT: vextracti128 $1, %ymm1, %xmm3
10278 ; AVX512F-NEXT: vpextrw $6, %xmm3, 28(%rdi)
10279 ; AVX512F-NEXT: LBB61_30: ## %else28
10280 ; AVX512F-NEXT: vpextrb $15, %xmm0, %eax
10281 ; AVX512F-NEXT: testb $1, %al
10282 ; AVX512F-NEXT: je LBB61_32
10283 ; AVX512F-NEXT: ## BB#31: ## %cond.store29
10284 ; AVX512F-NEXT: vextracti128 $1, %ymm1, %xmm1
10285 ; AVX512F-NEXT: vpextrw $7, %xmm1, 30(%rdi)
10286 ; AVX512F-NEXT: LBB61_32: ## %else30
10287 ; AVX512F-NEXT: vextracti128 $1, %ymm0, %xmm0
10288 ; AVX512F-NEXT: vpextrb $0, %xmm0, %eax
10289 ; AVX512F-NEXT: testb $1, %al
10290 ; AVX512F-NEXT: je LBB61_34
10291 ; AVX512F-NEXT: ## BB#33: ## %cond.store31
10292 ; AVX512F-NEXT: vmovd %xmm2, %eax
10293 ; AVX512F-NEXT: movw %ax, 32(%rdi)
10294 ; AVX512F-NEXT: LBB61_34: ## %else32
10295 ; AVX512F-NEXT: vpextrb $1, %xmm0, %eax
10296 ; AVX512F-NEXT: testb $1, %al
10297 ; AVX512F-NEXT: je LBB61_36
10298 ; AVX512F-NEXT: ## BB#35: ## %cond.store33
10299 ; AVX512F-NEXT: vpextrw $1, %xmm2, 34(%rdi)
10300 ; AVX512F-NEXT: LBB61_36: ## %else34
10301 ; AVX512F-NEXT: vpextrb $2, %xmm0, %eax
10302 ; AVX512F-NEXT: testb $1, %al
10303 ; AVX512F-NEXT: je LBB61_38
10304 ; AVX512F-NEXT: ## BB#37: ## %cond.store35
10305 ; AVX512F-NEXT: vpextrw $2, %xmm2, 36(%rdi)
10306 ; AVX512F-NEXT: LBB61_38: ## %else36
10307 ; AVX512F-NEXT: vpextrb $3, %xmm0, %eax
10308 ; AVX512F-NEXT: testb $1, %al
10309 ; AVX512F-NEXT: je LBB61_40
10310 ; AVX512F-NEXT: ## BB#39: ## %cond.store37
10311 ; AVX512F-NEXT: vpextrw $3, %xmm2, 38(%rdi)
10312 ; AVX512F-NEXT: LBB61_40: ## %else38
10313 ; AVX512F-NEXT: vpextrb $4, %xmm0, %eax
10314 ; AVX512F-NEXT: testb $1, %al
10315 ; AVX512F-NEXT: je LBB61_42
10316 ; AVX512F-NEXT: ## BB#41: ## %cond.store39
10317 ; AVX512F-NEXT: vpextrw $4, %xmm2, 40(%rdi)
10318 ; AVX512F-NEXT: LBB61_42: ## %else40
10319 ; AVX512F-NEXT: vpextrb $5, %xmm0, %eax
10320 ; AVX512F-NEXT: testb $1, %al
10321 ; AVX512F-NEXT: je LBB61_44
10322 ; AVX512F-NEXT: ## BB#43: ## %cond.store41
10323 ; AVX512F-NEXT: vpextrw $5, %xmm2, 42(%rdi)
10324 ; AVX512F-NEXT: LBB61_44: ## %else42
10325 ; AVX512F-NEXT: vpextrb $6, %xmm0, %eax
10326 ; AVX512F-NEXT: testb $1, %al
10327 ; AVX512F-NEXT: je LBB61_46
10328 ; AVX512F-NEXT: ## BB#45: ## %cond.store43
10329 ; AVX512F-NEXT: vpextrw $6, %xmm2, 44(%rdi)
10330 ; AVX512F-NEXT: LBB61_46: ## %else44
10331 ; AVX512F-NEXT: vpextrb $7, %xmm0, %eax
10332 ; AVX512F-NEXT: testb $1, %al
10333 ; AVX512F-NEXT: je LBB61_48
10334 ; AVX512F-NEXT: ## BB#47: ## %cond.store45
10335 ; AVX512F-NEXT: vpextrw $7, %xmm2, 46(%rdi)
10336 ; AVX512F-NEXT: LBB61_48: ## %else46
10337 ; AVX512F-NEXT: vpextrb $8, %xmm0, %eax
10338 ; AVX512F-NEXT: testb $1, %al
10339 ; AVX512F-NEXT: je LBB61_50
10340 ; AVX512F-NEXT: ## BB#49: ## %cond.store47
10341 ; AVX512F-NEXT: vextracti128 $1, %ymm2, %xmm1
10342 ; AVX512F-NEXT: vmovd %xmm1, %eax
10343 ; AVX512F-NEXT: movw %ax, 48(%rdi)
10344 ; AVX512F-NEXT: LBB61_50: ## %else48
10345 ; AVX512F-NEXT: vpextrb $9, %xmm0, %eax
10346 ; AVX512F-NEXT: testb $1, %al
10347 ; AVX512F-NEXT: je LBB61_52
10348 ; AVX512F-NEXT: ## BB#51: ## %cond.store49
10349 ; AVX512F-NEXT: vextracti128 $1, %ymm2, %xmm1
10350 ; AVX512F-NEXT: vpextrw $1, %xmm1, 50(%rdi)
10351 ; AVX512F-NEXT: LBB61_52: ## %else50
10352 ; AVX512F-NEXT: vpextrb $10, %xmm0, %eax
10353 ; AVX512F-NEXT: testb $1, %al
10354 ; AVX512F-NEXT: je LBB61_54
10355 ; AVX512F-NEXT: ## BB#53: ## %cond.store51
10356 ; AVX512F-NEXT: vextracti128 $1, %ymm2, %xmm1
10357 ; AVX512F-NEXT: vpextrw $2, %xmm1, 52(%rdi)
10358 ; AVX512F-NEXT: LBB61_54: ## %else52
10359 ; AVX512F-NEXT: vpextrb $11, %xmm0, %eax
10360 ; AVX512F-NEXT: testb $1, %al
10361 ; AVX512F-NEXT: je LBB61_56
10362 ; AVX512F-NEXT: ## BB#55: ## %cond.store53
10363 ; AVX512F-NEXT: vextracti128 $1, %ymm2, %xmm1
10364 ; AVX512F-NEXT: vpextrw $3, %xmm1, 54(%rdi)
10365 ; AVX512F-NEXT: LBB61_56: ## %else54
10366 ; AVX512F-NEXT: vpextrb $12, %xmm0, %eax
10367 ; AVX512F-NEXT: testb $1, %al
10368 ; AVX512F-NEXT: je LBB61_58
10369 ; AVX512F-NEXT: ## BB#57: ## %cond.store55
10370 ; AVX512F-NEXT: vextracti128 $1, %ymm2, %xmm1
10371 ; AVX512F-NEXT: vpextrw $4, %xmm1, 56(%rdi)
10372 ; AVX512F-NEXT: LBB61_58: ## %else56
10373 ; AVX512F-NEXT: vpextrb $13, %xmm0, %eax
10374 ; AVX512F-NEXT: testb $1, %al
10375 ; AVX512F-NEXT: je LBB61_60
10376 ; AVX512F-NEXT: ## BB#59: ## %cond.store57
10377 ; AVX512F-NEXT: vextracti128 $1, %ymm2, %xmm1
10378 ; AVX512F-NEXT: vpextrw $5, %xmm1, 58(%rdi)
10379 ; AVX512F-NEXT: LBB61_60: ## %else58
10380 ; AVX512F-NEXT: vpextrb $14, %xmm0, %eax
10381 ; AVX512F-NEXT: testb $1, %al
10382 ; AVX512F-NEXT: je LBB61_62
10383 ; AVX512F-NEXT: ## BB#61: ## %cond.store59
10384 ; AVX512F-NEXT: vextracti128 $1, %ymm2, %xmm1
10385 ; AVX512F-NEXT: vpextrw $6, %xmm1, 60(%rdi)
10386 ; AVX512F-NEXT: LBB61_62: ## %else60
10387 ; AVX512F-NEXT: vpextrb $15, %xmm0, %eax
10388 ; AVX512F-NEXT: testb $1, %al
10389 ; AVX512F-NEXT: je LBB61_64
10390 ; AVX512F-NEXT: ## BB#63: ## %cond.store61
10391 ; AVX512F-NEXT: vextracti128 $1, %ymm2, %xmm0
10392 ; AVX512F-NEXT: vpextrw $7, %xmm0, 62(%rdi)
10393 ; AVX512F-NEXT: LBB61_64: ## %else62
10394 ; AVX512F-NEXT: retq