brintos

brintos / llvm-project-archived public Read only

0
0
Text · 690.8 KiB · 466fa6b Raw
13746 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl | FileCheck %s --check-prefixes=AVX512,AVX512F-ONLY,AVX512F-SLOW,FALLBACK03; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl,+fast-variable-crosslane-shuffle,+fast-variable-perlane-shuffle | FileCheck %s --check-prefixes=AVX512,AVX512F-ONLY,AVX512F-FAST,FALLBACK14; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl,+avx512dq | FileCheck %s --check-prefixes=AVX512,AVX512DQ,AVX512DQ-SLOW,FALLBACK25; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl,+avx512dq,+fast-variable-crosslane-shuffle,+fast-variable-perlane-shuffle | FileCheck %s --check-prefixes=AVX512,AVX512DQ,AVX512DQ-FAST,FALLBACK36; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl,+avx512bw | FileCheck %s --check-prefixes=AVX512,AVX512BW,AVX512BW-ONLY,AVX512BW-SLOW,FALLBACK47; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl,+avx512bw,+fast-variable-crosslane-shuffle,+fast-variable-perlane-shuffle | FileCheck %s --check-prefixes=AVX512,AVX512BW,AVX512BW-ONLY,AVX512BW-FAST,FALLBACK58; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl,+avx512vbmi | FileCheck %s --check-prefixes=AVX512,AVX512BW,AVX512VBMI-ONLY,AVX512VBMI-SLOW,FALLBACK69; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl,+avx512vbmi,+fast-variable-crosslane-shuffle,+fast-variable-perlane-shuffle | FileCheck %s --check-prefixes=AVX512,AVX512BW,AVX512VBMI-ONLY,AVX512VBMI-FAST,FALLBACK710 11define void @mask_replication_factor2_vf2(ptr %in.maskvec, ptr %in.vec, ptr %out.vec) nounwind {12; AVX512F-ONLY-LABEL: mask_replication_factor2_vf2:13; AVX512F-ONLY:       # %bb.0:14; AVX512F-ONLY-NEXT:    kmovw (%rdi), %k115; AVX512F-ONLY-NEXT:    vpcmpeqd %xmm0, %xmm0, %xmm016; AVX512F-ONLY-NEXT:    vmovdqa32 %xmm0, %xmm0 {%k1} {z}17; AVX512F-ONLY-NEXT:    vpmovsxdq %xmm0, %xmm018; AVX512F-ONLY-NEXT:    vptestmd %xmm0, %xmm0, %k119; AVX512F-ONLY-NEXT:    vmovdqa32 (%rsi), %xmm0 {%k1} {z}20; AVX512F-ONLY-NEXT:    vmovdqa %xmm0, (%rdx)21; AVX512F-ONLY-NEXT:    retq22;23; AVX512DQ-LABEL: mask_replication_factor2_vf2:24; AVX512DQ:       # %bb.0:25; AVX512DQ-NEXT:    kmovw (%rdi), %k026; AVX512DQ-NEXT:    vpmovm2d %k0, %xmm027; AVX512DQ-NEXT:    vpmovsxdq %xmm0, %xmm028; AVX512DQ-NEXT:    vpmovd2m %xmm0, %k129; AVX512DQ-NEXT:    vmovdqa32 (%rsi), %xmm0 {%k1} {z}30; AVX512DQ-NEXT:    vmovdqa %xmm0, (%rdx)31; AVX512DQ-NEXT:    retq32;33; AVX512BW-LABEL: mask_replication_factor2_vf2:34; AVX512BW:       # %bb.0:35; AVX512BW-NEXT:    kmovq (%rdi), %k136; AVX512BW-NEXT:    vpcmpeqd %xmm0, %xmm0, %xmm037; AVX512BW-NEXT:    vmovdqa32 %xmm0, %xmm0 {%k1} {z}38; AVX512BW-NEXT:    vpmovsxdq %xmm0, %xmm039; AVX512BW-NEXT:    vptestmd %xmm0, %xmm0, %k140; AVX512BW-NEXT:    vmovdqa32 (%rsi), %xmm0 {%k1} {z}41; AVX512BW-NEXT:    vmovdqa %xmm0, (%rdx)42; AVX512BW-NEXT:    retq43  %src.mask.padded = load <64 x i1>, ptr %in.maskvec, align 6444  %src.mask = shufflevector <64 x i1> %src.mask.padded, <64 x i1> poison, <2 x i32> <i32 0, i32 1>45  %tgt.mask = shufflevector <2 x i1> %src.mask, <2 x i1> poison, <4 x i32> <i32 0, i32 0, i32 1, i32 1>46  %data = call <4 x i32> @llvm.masked.load.v4i32.p0(ptr %in.vec, i32 64, <4 x i1> %tgt.mask, <4 x i32> poison)47  %data.padded = shufflevector <4 x i32> %data, <4 x i32> poison, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>48  store <4 x i32> %data, ptr %out.vec, align 6449  ret void50}51 52define void @mask_replication_factor2_vf4(ptr %in.maskvec, ptr %in.vec, ptr %out.vec) nounwind {53; AVX512F-ONLY-LABEL: mask_replication_factor2_vf4:54; AVX512F-ONLY:       # %bb.0:55; AVX512F-ONLY-NEXT:    kmovw (%rdi), %k156; AVX512F-ONLY-NEXT:    vpcmpeqd %ymm0, %ymm0, %ymm057; AVX512F-ONLY-NEXT:    vmovdqa32 %ymm0, %ymm0 {%k1} {z}58; AVX512F-ONLY-NEXT:    vpmovsxdq %xmm0, %ymm059; AVX512F-ONLY-NEXT:    vptestmd %ymm0, %ymm0, %k160; AVX512F-ONLY-NEXT:    vmovdqa32 (%rsi), %ymm0 {%k1} {z}61; AVX512F-ONLY-NEXT:    vmovdqa %ymm0, (%rdx)62; AVX512F-ONLY-NEXT:    vzeroupper63; AVX512F-ONLY-NEXT:    retq64;65; AVX512DQ-LABEL: mask_replication_factor2_vf4:66; AVX512DQ:       # %bb.0:67; AVX512DQ-NEXT:    kmovb (%rdi), %k068; AVX512DQ-NEXT:    vpmovm2d %k0, %ymm069; AVX512DQ-NEXT:    vpmovsxdq %xmm0, %ymm070; AVX512DQ-NEXT:    vpmovd2m %ymm0, %k171; AVX512DQ-NEXT:    vmovdqa32 (%rsi), %ymm0 {%k1} {z}72; AVX512DQ-NEXT:    vmovdqa %ymm0, (%rdx)73; AVX512DQ-NEXT:    vzeroupper74; AVX512DQ-NEXT:    retq75;76; AVX512BW-LABEL: mask_replication_factor2_vf4:77; AVX512BW:       # %bb.0:78; AVX512BW-NEXT:    kmovw (%rdi), %k179; AVX512BW-NEXT:    vpcmpeqd %ymm0, %ymm0, %ymm080; AVX512BW-NEXT:    vmovdqa32 %ymm0, %ymm0 {%k1} {z}81; AVX512BW-NEXT:    vpmovsxdq %xmm0, %ymm082; AVX512BW-NEXT:    vptestmd %ymm0, %ymm0, %k183; AVX512BW-NEXT:    vmovdqa32 (%rsi), %ymm0 {%k1} {z}84; AVX512BW-NEXT:    vmovdqa %ymm0, (%rdx)85; AVX512BW-NEXT:    vzeroupper86; AVX512BW-NEXT:    retq87  %src.mask.padded = load <64 x i1>, ptr %in.maskvec, align 6488  %src.mask = shufflevector <64 x i1> %src.mask.padded, <64 x i1> poison, <4 x i32> <i32 0, i32 1, i32 2, i32 3>89  %tgt.mask = shufflevector <4 x i1> %src.mask, <4 x i1> poison, <8 x i32> <i32 0, i32 0, i32 1, i32 1, i32 2, i32 2, i32 3, i32 3>90  %data = call <8 x i32> @llvm.masked.load.v8i32.p0(ptr %in.vec, i32 64, <8 x i1> %tgt.mask, <8 x i32> poison)91  %data.padded = shufflevector <8 x i32> %data, <8 x i32> poison, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>92  store <8 x i32> %data, ptr %out.vec, align 6493  ret void94}95 96define void @mask_replication_factor2_vf8(ptr %in.maskvec, ptr %in.vec, ptr %out.vec) nounwind {97; AVX512F-ONLY-LABEL: mask_replication_factor2_vf8:98; AVX512F-ONLY:       # %bb.0:99; AVX512F-ONLY-NEXT:    kmovw (%rdi), %k1100; AVX512F-ONLY-NEXT:    vpternlogd {{.*#+}} zmm0 {%k1} {z} = -1101; AVX512F-ONLY-NEXT:    vpmovsxdq %ymm0, %zmm0102; AVX512F-ONLY-NEXT:    vptestmd %zmm0, %zmm0, %k1103; AVX512F-ONLY-NEXT:    vmovdqa32 (%rsi), %zmm0 {%k1} {z}104; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm0, (%rdx)105; AVX512F-ONLY-NEXT:    vzeroupper106; AVX512F-ONLY-NEXT:    retq107;108; AVX512DQ-LABEL: mask_replication_factor2_vf8:109; AVX512DQ:       # %bb.0:110; AVX512DQ-NEXT:    kmovb (%rdi), %k0111; AVX512DQ-NEXT:    vpmovm2d %k0, %zmm0112; AVX512DQ-NEXT:    vpmovsxdq %ymm0, %zmm0113; AVX512DQ-NEXT:    vpmovd2m %zmm0, %k1114; AVX512DQ-NEXT:    vmovdqa32 (%rsi), %zmm0 {%k1} {z}115; AVX512DQ-NEXT:    vmovdqa64 %zmm0, (%rdx)116; AVX512DQ-NEXT:    vzeroupper117; AVX512DQ-NEXT:    retq118;119; AVX512BW-LABEL: mask_replication_factor2_vf8:120; AVX512BW:       # %bb.0:121; AVX512BW-NEXT:    kmovw (%rdi), %k1122; AVX512BW-NEXT:    vpternlogd {{.*#+}} zmm0 {%k1} {z} = -1123; AVX512BW-NEXT:    vpmovsxdq %ymm0, %zmm0124; AVX512BW-NEXT:    vptestmd %zmm0, %zmm0, %k1125; AVX512BW-NEXT:    vmovdqa32 (%rsi), %zmm0 {%k1} {z}126; AVX512BW-NEXT:    vmovdqa64 %zmm0, (%rdx)127; AVX512BW-NEXT:    vzeroupper128; AVX512BW-NEXT:    retq129  %src.mask.padded = load <64 x i1>, ptr %in.maskvec, align 64130  %src.mask = shufflevector <64 x i1> %src.mask.padded, <64 x i1> poison, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>131  %tgt.mask = shufflevector <8 x i1> %src.mask, <8 x i1> poison, <16 x i32> <i32 0, i32 0, i32 1, i32 1, i32 2, i32 2, i32 3, i32 3, i32 4, i32 4, i32 5, i32 5, i32 6, i32 6, i32 7, i32 7>132  %data = call <16 x i32> @llvm.masked.load.v16i32.p0(ptr %in.vec, i32 64, <16 x i1> %tgt.mask, <16 x i32> poison)133  store <16 x i32> %data, ptr %out.vec, align 64134  ret void135}136 137define void @mask_replication_factor2_vf16(ptr %in.maskvec, ptr %in.vec, ptr %out.vec) nounwind {138; AVX512F-ONLY-LABEL: mask_replication_factor2_vf16:139; AVX512F-ONLY:       # %bb.0:140; AVX512F-ONLY-NEXT:    kmovw (%rdi), %k1141; AVX512F-ONLY-NEXT:    vpternlogd {{.*#+}} zmm0 {%k1} {z} = -1142; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15]143; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm1, %zmm1144; AVX512F-ONLY-NEXT:    vptestmd %zmm1, %zmm1, %k1145; AVX512F-ONLY-NEXT:    vpmovsxdq %ymm0, %zmm0146; AVX512F-ONLY-NEXT:    vptestmd %zmm0, %zmm0, %k2147; AVX512F-ONLY-NEXT:    vmovdqa32 (%rsi), %zmm0 {%k2} {z}148; AVX512F-ONLY-NEXT:    vmovdqa32 64(%rsi), %zmm1 {%k1} {z}149; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm1, 64(%rdx)150; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm0, (%rdx)151; AVX512F-ONLY-NEXT:    vzeroupper152; AVX512F-ONLY-NEXT:    retq153;154; AVX512DQ-LABEL: mask_replication_factor2_vf16:155; AVX512DQ:       # %bb.0:156; AVX512DQ-NEXT:    kmovw (%rdi), %k0157; AVX512DQ-NEXT:    vpmovm2d %k0, %zmm0158; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15]159; AVX512DQ-NEXT:    vpermd %zmm0, %zmm1, %zmm1160; AVX512DQ-NEXT:    vpmovd2m %zmm1, %k1161; AVX512DQ-NEXT:    vpmovsxdq %ymm0, %zmm0162; AVX512DQ-NEXT:    vpmovd2m %zmm0, %k2163; AVX512DQ-NEXT:    vmovdqa32 (%rsi), %zmm0 {%k2} {z}164; AVX512DQ-NEXT:    vmovdqa32 64(%rsi), %zmm1 {%k1} {z}165; AVX512DQ-NEXT:    vmovdqa64 %zmm1, 64(%rdx)166; AVX512DQ-NEXT:    vmovdqa64 %zmm0, (%rdx)167; AVX512DQ-NEXT:    vzeroupper168; AVX512DQ-NEXT:    retq169;170; AVX512BW-LABEL: mask_replication_factor2_vf16:171; AVX512BW:       # %bb.0:172; AVX512BW-NEXT:    kmovw (%rdi), %k0173; AVX512BW-NEXT:    vpmovm2w %k0, %zmm0174; AVX512BW-NEXT:    vpmovsxwd %ymm0, %zmm0175; AVX512BW-NEXT:    vpmovw2m %zmm0, %k1176; AVX512BW-NEXT:    vmovdqa32 (%rsi), %zmm0 {%k1} {z}177; AVX512BW-NEXT:    kshiftrd $16, %k1, %k1178; AVX512BW-NEXT:    vmovdqa32 64(%rsi), %zmm1 {%k1} {z}179; AVX512BW-NEXT:    vmovdqa64 %zmm1, 64(%rdx)180; AVX512BW-NEXT:    vmovdqa64 %zmm0, (%rdx)181; AVX512BW-NEXT:    vzeroupper182; AVX512BW-NEXT:    retq183  %src.mask.padded = load <64 x i1>, ptr %in.maskvec, align 64184  %src.mask = shufflevector <64 x i1> %src.mask.padded, <64 x i1> poison, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15>185  %tgt.mask = shufflevector <16 x i1> %src.mask, <16 x i1> poison, <32 x i32> <i32 0, i32 0, i32 1, i32 1, i32 2, i32 2, i32 3, i32 3, i32 4, i32 4, i32 5, i32 5, i32 6, i32 6, i32 7, i32 7, i32 8, i32 8, i32 9, i32 9, i32 10, i32 10, i32 11, i32 11, i32 12, i32 12, i32 13, i32 13, i32 14, i32 14, i32 15, i32 15>186  %data = call <32 x i32> @llvm.masked.load.v32i32.p0(ptr %in.vec, i32 64, <32 x i1> %tgt.mask, <32 x i32> poison)187  store <32 x i32> %data, ptr %out.vec, align 64188  ret void189}190 191define void @mask_replication_factor2_vf32(ptr %in.maskvec, ptr %in.vec, ptr %out.vec) nounwind {192; AVX512F-ONLY-LABEL: mask_replication_factor2_vf32:193; AVX512F-ONLY:       # %bb.0:194; AVX512F-ONLY-NEXT:    kmovw (%rdi), %k1195; AVX512F-ONLY-NEXT:    kmovw 2(%rdi), %k2196; AVX512F-ONLY-NEXT:    vpternlogd {{.*#+}} zmm0 {%k2} {z} = -1197; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15]198; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm1, %zmm2199; AVX512F-ONLY-NEXT:    vptestmd %zmm2, %zmm2, %k2200; AVX512F-ONLY-NEXT:    vpternlogd {{.*#+}} zmm2 {%k1} {z} = -1201; AVX512F-ONLY-NEXT:    vpermd %zmm2, %zmm1, %zmm1202; AVX512F-ONLY-NEXT:    vptestmd %zmm1, %zmm1, %k1203; AVX512F-ONLY-NEXT:    vpmovsxdq %ymm0, %zmm0204; AVX512F-ONLY-NEXT:    vptestmd %zmm0, %zmm0, %k3205; AVX512F-ONLY-NEXT:    vpmovsxdq %ymm2, %zmm0206; AVX512F-ONLY-NEXT:    vptestmd %zmm0, %zmm0, %k4207; AVX512F-ONLY-NEXT:    vmovdqa32 64(%rsi), %zmm0 {%k1} {z}208; AVX512F-ONLY-NEXT:    vmovdqa32 (%rsi), %zmm1 {%k4} {z}209; AVX512F-ONLY-NEXT:    vmovdqa32 192(%rsi), %zmm2 {%k2} {z}210; AVX512F-ONLY-NEXT:    vmovdqa32 128(%rsi), %zmm3 {%k3} {z}211; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm3, 128(%rdx)212; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm2, 192(%rdx)213; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm1, (%rdx)214; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm0, 64(%rdx)215; AVX512F-ONLY-NEXT:    vzeroupper216; AVX512F-ONLY-NEXT:    retq217;218; AVX512DQ-LABEL: mask_replication_factor2_vf32:219; AVX512DQ:       # %bb.0:220; AVX512DQ-NEXT:    kmovw (%rdi), %k0221; AVX512DQ-NEXT:    kmovw 2(%rdi), %k1222; AVX512DQ-NEXT:    vpmovm2d %k1, %zmm0223; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15]224; AVX512DQ-NEXT:    vpermd %zmm0, %zmm1, %zmm2225; AVX512DQ-NEXT:    vpmovd2m %zmm2, %k1226; AVX512DQ-NEXT:    vpmovm2d %k0, %zmm2227; AVX512DQ-NEXT:    vpermd %zmm2, %zmm1, %zmm1228; AVX512DQ-NEXT:    vpmovd2m %zmm1, %k2229; AVX512DQ-NEXT:    vpmovsxdq %ymm0, %zmm0230; AVX512DQ-NEXT:    vpmovd2m %zmm0, %k3231; AVX512DQ-NEXT:    vpmovsxdq %ymm2, %zmm0232; AVX512DQ-NEXT:    vpmovd2m %zmm0, %k4233; AVX512DQ-NEXT:    vmovdqa32 64(%rsi), %zmm0 {%k2} {z}234; AVX512DQ-NEXT:    vmovdqa32 (%rsi), %zmm1 {%k4} {z}235; AVX512DQ-NEXT:    vmovdqa32 192(%rsi), %zmm2 {%k1} {z}236; AVX512DQ-NEXT:    vmovdqa32 128(%rsi), %zmm3 {%k3} {z}237; AVX512DQ-NEXT:    vmovdqa64 %zmm3, 128(%rdx)238; AVX512DQ-NEXT:    vmovdqa64 %zmm2, 192(%rdx)239; AVX512DQ-NEXT:    vmovdqa64 %zmm1, (%rdx)240; AVX512DQ-NEXT:    vmovdqa64 %zmm0, 64(%rdx)241; AVX512DQ-NEXT:    vzeroupper242; AVX512DQ-NEXT:    retq243;244; AVX512BW-LABEL: mask_replication_factor2_vf32:245; AVX512BW:       # %bb.0:246; AVX512BW-NEXT:    kmovq (%rdi), %k0247; AVX512BW-NEXT:    vpmovm2b %k0, %zmm0248; AVX512BW-NEXT:    vpmovsxbw %ymm0, %zmm0249; AVX512BW-NEXT:    vpmovb2m %zmm0, %k1250; AVX512BW-NEXT:    kshiftrq $16, %k1, %k2251; AVX512BW-NEXT:    vmovdqa32 64(%rsi), %zmm0 {%k2} {z}252; AVX512BW-NEXT:    vmovdqa32 (%rsi), %zmm1 {%k1} {z}253; AVX512BW-NEXT:    kshiftrq $48, %k1, %k2254; AVX512BW-NEXT:    vmovdqa32 192(%rsi), %zmm2 {%k2} {z}255; AVX512BW-NEXT:    kshiftrq $32, %k1, %k1256; AVX512BW-NEXT:    vmovdqa32 128(%rsi), %zmm3 {%k1} {z}257; AVX512BW-NEXT:    vmovdqa64 %zmm3, 128(%rdx)258; AVX512BW-NEXT:    vmovdqa64 %zmm2, 192(%rdx)259; AVX512BW-NEXT:    vmovdqa64 %zmm1, (%rdx)260; AVX512BW-NEXT:    vmovdqa64 %zmm0, 64(%rdx)261; AVX512BW-NEXT:    vzeroupper262; AVX512BW-NEXT:    retq263  %src.mask.padded = load <64 x i1>, ptr %in.maskvec, align 64264  %src.mask = shufflevector <64 x i1> %src.mask.padded, <64 x i1> poison, <32 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31>265  %tgt.mask = shufflevector <32 x i1> %src.mask, <32 x i1> poison, <64 x i32> <i32 0, i32 0, i32 1, i32 1, i32 2, i32 2, i32 3, i32 3, i32 4, i32 4, i32 5, i32 5, i32 6, i32 6, i32 7, i32 7, i32 8, i32 8, i32 9, i32 9, i32 10, i32 10, i32 11, i32 11, i32 12, i32 12, i32 13, i32 13, i32 14, i32 14, i32 15, i32 15, i32 16, i32 16, i32 17, i32 17, i32 18, i32 18, i32 19, i32 19, i32 20, i32 20, i32 21, i32 21, i32 22, i32 22, i32 23, i32 23, i32 24, i32 24, i32 25, i32 25, i32 26, i32 26, i32 27, i32 27, i32 28, i32 28, i32 29, i32 29, i32 30, i32 30, i32 31, i32 31>266  %data = call <64 x i32> @llvm.masked.load.v64i32.p0(ptr %in.vec, i32 64, <64 x i1> %tgt.mask, <64 x i32> poison)267  store <64 x i32> %data, ptr %out.vec, align 64268  ret void269}270 271define void @mask_replication_factor2_vf64(ptr %in.maskvec, ptr %in.vec, ptr %out.vec) nounwind {272; AVX512F-ONLY-LABEL: mask_replication_factor2_vf64:273; AVX512F-ONLY:       # %bb.0:274; AVX512F-ONLY-NEXT:    kmovw (%rdi), %k4275; AVX512F-ONLY-NEXT:    kmovw 2(%rdi), %k3276; AVX512F-ONLY-NEXT:    kmovw 4(%rdi), %k2277; AVX512F-ONLY-NEXT:    kmovw 6(%rdi), %k1278; AVX512F-ONLY-NEXT:    vpternlogd {{.*#+}} zmm0 {%k1} {z} = -1279; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15]280; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm1, %zmm2281; AVX512F-ONLY-NEXT:    vptestmd %zmm2, %zmm2, %k1282; AVX512F-ONLY-NEXT:    kmovw %k1, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill283; AVX512F-ONLY-NEXT:    vpternlogd {{.*#+}} zmm2 {%k2} {z} = -1284; AVX512F-ONLY-NEXT:    vpermd %zmm2, %zmm1, %zmm3285; AVX512F-ONLY-NEXT:    vptestmd %zmm3, %zmm3, %k2286; AVX512F-ONLY-NEXT:    vpternlogd {{.*#+}} zmm3 {%k3} {z} = -1287; AVX512F-ONLY-NEXT:    vpermd %zmm3, %zmm1, %zmm4288; AVX512F-ONLY-NEXT:    vptestmd %zmm4, %zmm4, %k3289; AVX512F-ONLY-NEXT:    vpternlogd {{.*#+}} zmm4 {%k4} {z} = -1290; AVX512F-ONLY-NEXT:    vpermd %zmm4, %zmm1, %zmm1291; AVX512F-ONLY-NEXT:    vptestmd %zmm1, %zmm1, %k5292; AVX512F-ONLY-NEXT:    vpmovsxdq %ymm0, %zmm0293; AVX512F-ONLY-NEXT:    vptestmd %zmm0, %zmm0, %k4294; AVX512F-ONLY-NEXT:    vpmovsxdq %ymm2, %zmm0295; AVX512F-ONLY-NEXT:    vptestmd %zmm0, %zmm0, %k6296; AVX512F-ONLY-NEXT:    vpmovsxdq %ymm3, %zmm0297; AVX512F-ONLY-NEXT:    vptestmd %zmm0, %zmm0, %k7298; AVX512F-ONLY-NEXT:    vpmovsxdq %ymm4, %zmm0299; AVX512F-ONLY-NEXT:    vptestmd %zmm0, %zmm0, %k1300; AVX512F-ONLY-NEXT:    vmovdqa32 64(%rsi), %zmm0 {%k5} {z}301; AVX512F-ONLY-NEXT:    vmovdqa32 (%rsi), %zmm1 {%k1} {z}302; AVX512F-ONLY-NEXT:    vmovdqa32 192(%rsi), %zmm2 {%k3} {z}303; AVX512F-ONLY-NEXT:    vmovdqa32 128(%rsi), %zmm3 {%k7} {z}304; AVX512F-ONLY-NEXT:    vmovdqa32 320(%rsi), %zmm4 {%k2} {z}305; AVX512F-ONLY-NEXT:    vmovdqa32 256(%rsi), %zmm5 {%k6} {z}306; AVX512F-ONLY-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload307; AVX512F-ONLY-NEXT:    vmovdqa32 448(%rsi), %zmm6 {%k1} {z}308; AVX512F-ONLY-NEXT:    vmovdqa32 384(%rsi), %zmm7 {%k4} {z}309; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm7, 384(%rdx)310; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm6, 448(%rdx)311; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm5, 256(%rdx)312; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm4, 320(%rdx)313; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm3, 128(%rdx)314; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm2, 192(%rdx)315; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm1, (%rdx)316; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm0, 64(%rdx)317; AVX512F-ONLY-NEXT:    vzeroupper318; AVX512F-ONLY-NEXT:    retq319;320; AVX512DQ-LABEL: mask_replication_factor2_vf64:321; AVX512DQ:       # %bb.0:322; AVX512DQ-NEXT:    kmovw (%rdi), %k0323; AVX512DQ-NEXT:    kmovw 2(%rdi), %k3324; AVX512DQ-NEXT:    kmovw 4(%rdi), %k2325; AVX512DQ-NEXT:    kmovw 6(%rdi), %k1326; AVX512DQ-NEXT:    vpmovm2d %k1, %zmm0327; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15]328; AVX512DQ-NEXT:    vpermd %zmm0, %zmm1, %zmm2329; AVX512DQ-NEXT:    vpmovd2m %zmm2, %k1330; AVX512DQ-NEXT:    kmovw %k1, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill331; AVX512DQ-NEXT:    vpmovm2d %k2, %zmm2332; AVX512DQ-NEXT:    vpermd %zmm2, %zmm1, %zmm3333; AVX512DQ-NEXT:    vpmovd2m %zmm3, %k2334; AVX512DQ-NEXT:    vpmovm2d %k3, %zmm3335; AVX512DQ-NEXT:    vpermd %zmm3, %zmm1, %zmm4336; AVX512DQ-NEXT:    vpmovd2m %zmm4, %k3337; AVX512DQ-NEXT:    vpmovm2d %k0, %zmm4338; AVX512DQ-NEXT:    vpermd %zmm4, %zmm1, %zmm1339; AVX512DQ-NEXT:    vpmovd2m %zmm1, %k5340; AVX512DQ-NEXT:    vpmovsxdq %ymm0, %zmm0341; AVX512DQ-NEXT:    vpmovd2m %zmm0, %k4342; AVX512DQ-NEXT:    vpmovsxdq %ymm2, %zmm0343; AVX512DQ-NEXT:    vpmovd2m %zmm0, %k6344; AVX512DQ-NEXT:    vpmovsxdq %ymm3, %zmm0345; AVX512DQ-NEXT:    vpmovd2m %zmm0, %k7346; AVX512DQ-NEXT:    vpmovsxdq %ymm4, %zmm0347; AVX512DQ-NEXT:    vpmovd2m %zmm0, %k1348; AVX512DQ-NEXT:    vmovdqa32 64(%rsi), %zmm0 {%k5} {z}349; AVX512DQ-NEXT:    vmovdqa32 (%rsi), %zmm1 {%k1} {z}350; AVX512DQ-NEXT:    vmovdqa32 192(%rsi), %zmm2 {%k3} {z}351; AVX512DQ-NEXT:    vmovdqa32 128(%rsi), %zmm3 {%k7} {z}352; AVX512DQ-NEXT:    vmovdqa32 320(%rsi), %zmm4 {%k2} {z}353; AVX512DQ-NEXT:    vmovdqa32 256(%rsi), %zmm5 {%k6} {z}354; AVX512DQ-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload355; AVX512DQ-NEXT:    vmovdqa32 448(%rsi), %zmm6 {%k1} {z}356; AVX512DQ-NEXT:    vmovdqa32 384(%rsi), %zmm7 {%k4} {z}357; AVX512DQ-NEXT:    vmovdqa64 %zmm7, 384(%rdx)358; AVX512DQ-NEXT:    vmovdqa64 %zmm6, 448(%rdx)359; AVX512DQ-NEXT:    vmovdqa64 %zmm5, 256(%rdx)360; AVX512DQ-NEXT:    vmovdqa64 %zmm4, 320(%rdx)361; AVX512DQ-NEXT:    vmovdqa64 %zmm3, 128(%rdx)362; AVX512DQ-NEXT:    vmovdqa64 %zmm2, 192(%rdx)363; AVX512DQ-NEXT:    vmovdqa64 %zmm1, (%rdx)364; AVX512DQ-NEXT:    vmovdqa64 %zmm0, 64(%rdx)365; AVX512DQ-NEXT:    vzeroupper366; AVX512DQ-NEXT:    retq367;368; AVX512BW-ONLY-LABEL: mask_replication_factor2_vf64:369; AVX512BW-ONLY:       # %bb.0:370; AVX512BW-ONLY-NEXT:    kmovq (%rdi), %k0371; AVX512BW-ONLY-NEXT:    vpmovm2b %k0, %zmm0372; AVX512BW-ONLY-NEXT:    vshufi64x2 {{.*#+}} zmm1 = zmm0[4,5,4,5,6,7,6,7]373; AVX512BW-ONLY-NEXT:    vpshufb {{.*#+}} zmm1 = zmm1[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,24,24,25,25,26,26,27,27,28,28,29,29,30,30,31,31,32,32,33,33,34,34,35,35,36,36,37,37,38,38,39,39,56,56,57,57,58,58,59,59,60,60,61,61,62,62,63,63]374; AVX512BW-ONLY-NEXT:    vpmovb2m %zmm1, %k1375; AVX512BW-ONLY-NEXT:    vpmovsxbw %ymm0, %zmm0376; AVX512BW-ONLY-NEXT:    vpmovb2m %zmm0, %k2377; AVX512BW-ONLY-NEXT:    kshiftrq $16, %k2, %k3378; AVX512BW-ONLY-NEXT:    vmovdqa32 64(%rsi), %zmm0 {%k3} {z}379; AVX512BW-ONLY-NEXT:    vmovdqa32 (%rsi), %zmm1 {%k2} {z}380; AVX512BW-ONLY-NEXT:    kshiftrq $48, %k2, %k3381; AVX512BW-ONLY-NEXT:    vmovdqa32 192(%rsi), %zmm2 {%k3} {z}382; AVX512BW-ONLY-NEXT:    kshiftrq $32, %k2, %k2383; AVX512BW-ONLY-NEXT:    vmovdqa32 128(%rsi), %zmm3 {%k2} {z}384; AVX512BW-ONLY-NEXT:    kshiftrq $16, %k1, %k2385; AVX512BW-ONLY-NEXT:    vmovdqa32 320(%rsi), %zmm4 {%k2} {z}386; AVX512BW-ONLY-NEXT:    vmovdqa32 256(%rsi), %zmm5 {%k1} {z}387; AVX512BW-ONLY-NEXT:    kshiftrq $48, %k1, %k2388; AVX512BW-ONLY-NEXT:    vmovdqa32 448(%rsi), %zmm6 {%k2} {z}389; AVX512BW-ONLY-NEXT:    kshiftrq $32, %k1, %k1390; AVX512BW-ONLY-NEXT:    vmovdqa32 384(%rsi), %zmm7 {%k1} {z}391; AVX512BW-ONLY-NEXT:    vmovdqa64 %zmm7, 384(%rdx)392; AVX512BW-ONLY-NEXT:    vmovdqa64 %zmm6, 448(%rdx)393; AVX512BW-ONLY-NEXT:    vmovdqa64 %zmm5, 256(%rdx)394; AVX512BW-ONLY-NEXT:    vmovdqa64 %zmm4, 320(%rdx)395; AVX512BW-ONLY-NEXT:    vmovdqa64 %zmm3, 128(%rdx)396; AVX512BW-ONLY-NEXT:    vmovdqa64 %zmm2, 192(%rdx)397; AVX512BW-ONLY-NEXT:    vmovdqa64 %zmm1, (%rdx)398; AVX512BW-ONLY-NEXT:    vmovdqa64 %zmm0, 64(%rdx)399; AVX512BW-ONLY-NEXT:    vzeroupper400; AVX512BW-ONLY-NEXT:    retq401;402; AVX512VBMI-ONLY-LABEL: mask_replication_factor2_vf64:403; AVX512VBMI-ONLY:       # %bb.0:404; AVX512VBMI-ONLY-NEXT:    kmovq (%rdi), %k0405; AVX512VBMI-ONLY-NEXT:    vpmovm2b %k0, %zmm0406; AVX512VBMI-ONLY-NEXT:    vmovdqa64 {{.*#+}} zmm1 = [32,32,33,33,34,34,35,35,36,36,37,37,38,38,39,39,40,40,41,41,42,42,43,43,44,44,45,45,46,46,47,47,48,48,49,49,50,50,51,51,52,52,53,53,54,54,55,55,56,56,57,57,58,58,59,59,60,60,61,61,62,62,63,63]407; AVX512VBMI-ONLY-NEXT:    vpermb %zmm0, %zmm1, %zmm1408; AVX512VBMI-ONLY-NEXT:    vpmovb2m %zmm1, %k1409; AVX512VBMI-ONLY-NEXT:    vpmovsxbw %ymm0, %zmm0410; AVX512VBMI-ONLY-NEXT:    vpmovb2m %zmm0, %k2411; AVX512VBMI-ONLY-NEXT:    kshiftrq $16, %k2, %k3412; AVX512VBMI-ONLY-NEXT:    vmovdqa32 64(%rsi), %zmm0 {%k3} {z}413; AVX512VBMI-ONLY-NEXT:    vmovdqa32 (%rsi), %zmm1 {%k2} {z}414; AVX512VBMI-ONLY-NEXT:    kshiftrq $48, %k2, %k3415; AVX512VBMI-ONLY-NEXT:    vmovdqa32 192(%rsi), %zmm2 {%k3} {z}416; AVX512VBMI-ONLY-NEXT:    kshiftrq $32, %k2, %k2417; AVX512VBMI-ONLY-NEXT:    vmovdqa32 128(%rsi), %zmm3 {%k2} {z}418; AVX512VBMI-ONLY-NEXT:    kshiftrq $16, %k1, %k2419; AVX512VBMI-ONLY-NEXT:    vmovdqa32 320(%rsi), %zmm4 {%k2} {z}420; AVX512VBMI-ONLY-NEXT:    vmovdqa32 256(%rsi), %zmm5 {%k1} {z}421; AVX512VBMI-ONLY-NEXT:    kshiftrq $48, %k1, %k2422; AVX512VBMI-ONLY-NEXT:    vmovdqa32 448(%rsi), %zmm6 {%k2} {z}423; AVX512VBMI-ONLY-NEXT:    kshiftrq $32, %k1, %k1424; AVX512VBMI-ONLY-NEXT:    vmovdqa32 384(%rsi), %zmm7 {%k1} {z}425; AVX512VBMI-ONLY-NEXT:    vmovdqa64 %zmm7, 384(%rdx)426; AVX512VBMI-ONLY-NEXT:    vmovdqa64 %zmm6, 448(%rdx)427; AVX512VBMI-ONLY-NEXT:    vmovdqa64 %zmm5, 256(%rdx)428; AVX512VBMI-ONLY-NEXT:    vmovdqa64 %zmm4, 320(%rdx)429; AVX512VBMI-ONLY-NEXT:    vmovdqa64 %zmm3, 128(%rdx)430; AVX512VBMI-ONLY-NEXT:    vmovdqa64 %zmm2, 192(%rdx)431; AVX512VBMI-ONLY-NEXT:    vmovdqa64 %zmm1, (%rdx)432; AVX512VBMI-ONLY-NEXT:    vmovdqa64 %zmm0, 64(%rdx)433; AVX512VBMI-ONLY-NEXT:    vzeroupper434; AVX512VBMI-ONLY-NEXT:    retq435  %src.mask = load <64 x i1>, ptr %in.maskvec, align 64436  %tgt.mask = shufflevector <64 x i1> %src.mask, <64 x i1> poison, <128 x i32> <i32 0, i32 0, i32 1, i32 1, i32 2, i32 2, i32 3, i32 3, i32 4, i32 4, i32 5, i32 5, i32 6, i32 6, i32 7, i32 7, i32 8, i32 8, i32 9, i32 9, i32 10, i32 10, i32 11, i32 11, i32 12, i32 12, i32 13, i32 13, i32 14, i32 14, i32 15, i32 15, i32 16, i32 16, i32 17, i32 17, i32 18, i32 18, i32 19, i32 19, i32 20, i32 20, i32 21, i32 21, i32 22, i32 22, i32 23, i32 23, i32 24, i32 24, i32 25, i32 25, i32 26, i32 26, i32 27, i32 27, i32 28, i32 28, i32 29, i32 29, i32 30, i32 30, i32 31, i32 31, i32 32, i32 32, i32 33, i32 33, i32 34, i32 34, i32 35, i32 35, i32 36, i32 36, i32 37, i32 37, i32 38, i32 38, i32 39, i32 39, i32 40, i32 40, i32 41, i32 41, i32 42, i32 42, i32 43, i32 43, i32 44, i32 44, i32 45, i32 45, i32 46, i32 46, i32 47, i32 47, i32 48, i32 48, i32 49, i32 49, i32 50, i32 50, i32 51, i32 51, i32 52, i32 52, i32 53, i32 53, i32 54, i32 54, i32 55, i32 55, i32 56, i32 56, i32 57, i32 57, i32 58, i32 58, i32 59, i32 59, i32 60, i32 60, i32 61, i32 61, i32 62, i32 62, i32 63, i32 63>437  %data = call <128 x i32> @llvm.masked.load.v128i32.p0(ptr %in.vec, i32 64, <128 x i1> %tgt.mask, <128 x i32> poison)438  store <128 x i32> %data, ptr %out.vec, align 64439  ret void440}441 442define void @mask_replication_factor3_vf2(ptr %in.maskvec, ptr %in.vec, ptr %out.vec) nounwind {443; AVX512F-ONLY-LABEL: mask_replication_factor3_vf2:444; AVX512F-ONLY:       # %bb.0:445; AVX512F-ONLY-NEXT:    kmovw (%rdi), %k1446; AVX512F-ONLY-NEXT:    vpcmpeqd %ymm0, %ymm0, %ymm0447; AVX512F-ONLY-NEXT:    vmovdqa32 %ymm0, %ymm0 {%k1} {z}448; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} ymm1 = [0,0,0,1,1,1,0,0]449; AVX512F-ONLY-NEXT:    vpermd %ymm0, %ymm1, %ymm0450; AVX512F-ONLY-NEXT:    vpslld $31, %ymm0, %ymm0451; AVX512F-ONLY-NEXT:    movb $63, %al452; AVX512F-ONLY-NEXT:    kmovw %eax, %k1453; AVX512F-ONLY-NEXT:    vptestmd %ymm0, %ymm0, %k1 {%k1}454; AVX512F-ONLY-NEXT:    vmovdqa32 (%rsi), %ymm0 {%k1} {z}455; AVX512F-ONLY-NEXT:    vextracti128 $1, %ymm0, %xmm1456; AVX512F-ONLY-NEXT:    vmovq %xmm1, 16(%rdx)457; AVX512F-ONLY-NEXT:    vmovdqa %xmm0, (%rdx)458; AVX512F-ONLY-NEXT:    vzeroupper459; AVX512F-ONLY-NEXT:    retq460;461; AVX512DQ-LABEL: mask_replication_factor3_vf2:462; AVX512DQ:       # %bb.0:463; AVX512DQ-NEXT:    kmovb (%rdi), %k0464; AVX512DQ-NEXT:    vpmovm2d %k0, %ymm0465; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} ymm1 = [0,0,0,1,1,1,0,0]466; AVX512DQ-NEXT:    vpermd %ymm0, %ymm1, %ymm0467; AVX512DQ-NEXT:    vpxor %xmm1, %xmm1, %xmm1468; AVX512DQ-NEXT:    movb $63, %al469; AVX512DQ-NEXT:    kmovw %eax, %k1470; AVX512DQ-NEXT:    vpcmpgtd %ymm0, %ymm1, %k1 {%k1}471; AVX512DQ-NEXT:    vmovdqa32 (%rsi), %ymm0 {%k1} {z}472; AVX512DQ-NEXT:    vextracti128 $1, %ymm0, %xmm1473; AVX512DQ-NEXT:    vmovq %xmm1, 16(%rdx)474; AVX512DQ-NEXT:    vmovdqa %xmm0, (%rdx)475; AVX512DQ-NEXT:    vzeroupper476; AVX512DQ-NEXT:    retq477;478; AVX512BW-LABEL: mask_replication_factor3_vf2:479; AVX512BW:       # %bb.0:480; AVX512BW-NEXT:    kmovw (%rdi), %k1481; AVX512BW-NEXT:    vpcmpeqd %ymm0, %ymm0, %ymm0482; AVX512BW-NEXT:    vmovdqa32 %ymm0, %ymm0 {%k1} {z}483; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} ymm1 = [0,0,0,1,1,1,0,0]484; AVX512BW-NEXT:    vpermd %ymm0, %ymm1, %ymm0485; AVX512BW-NEXT:    vpslld $31, %ymm0, %ymm0486; AVX512BW-NEXT:    movb $63, %al487; AVX512BW-NEXT:    kmovd %eax, %k1488; AVX512BW-NEXT:    vptestmd %ymm0, %ymm0, %k1 {%k1}489; AVX512BW-NEXT:    vmovdqa32 (%rsi), %ymm0 {%k1} {z}490; AVX512BW-NEXT:    vextracti128 $1, %ymm0, %xmm1491; AVX512BW-NEXT:    vmovq %xmm1, 16(%rdx)492; AVX512BW-NEXT:    vmovdqa %xmm0, (%rdx)493; AVX512BW-NEXT:    vzeroupper494; AVX512BW-NEXT:    retq495  %src.mask.padded = load <64 x i1>, ptr %in.maskvec, align 64496  %src.mask = shufflevector <64 x i1> %src.mask.padded, <64 x i1> poison, <2 x i32> <i32 0, i32 1>497  %tgt.mask = shufflevector <2 x i1> %src.mask, <2 x i1> poison, <6 x i32> <i32 0, i32 0, i32 0, i32 1, i32 1, i32 1>498  %data = call <6 x i32> @llvm.masked.load.v6i32.p0(ptr %in.vec, i32 64, <6 x i1> %tgt.mask, <6 x i32> poison)499  %data.padded = shufflevector <6 x i32> %data, <6 x i32> poison, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>500  store <6 x i32> %data, ptr %out.vec, align 64501  ret void502}503 504define void @mask_replication_factor3_vf4(ptr %in.maskvec, ptr %in.vec, ptr %out.vec) nounwind {505; AVX512F-ONLY-LABEL: mask_replication_factor3_vf4:506; AVX512F-ONLY:       # %bb.0:507; AVX512F-ONLY-NEXT:    kmovw (%rdi), %k1508; AVX512F-ONLY-NEXT:    vpternlogd {{.*#+}} zmm0 {%k1} {z} = -1509; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,1,1,1,2,2,2,3,3,3,0,0,0,0]510; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm1, %zmm0511; AVX512F-ONLY-NEXT:    vpslld $31, %zmm0, %zmm0512; AVX512F-ONLY-NEXT:    movw $4095, %ax # imm = 0xFFF513; AVX512F-ONLY-NEXT:    kmovw %eax, %k1514; AVX512F-ONLY-NEXT:    vptestmd %zmm0, %zmm0, %k1 {%k1}515; AVX512F-ONLY-NEXT:    vmovdqa32 (%rsi), %zmm0 {%k1} {z}516; AVX512F-ONLY-NEXT:    vextracti32x4 $2, %zmm0, 32(%rdx)517; AVX512F-ONLY-NEXT:    vmovdqa %ymm0, (%rdx)518; AVX512F-ONLY-NEXT:    vzeroupper519; AVX512F-ONLY-NEXT:    retq520;521; AVX512DQ-LABEL: mask_replication_factor3_vf4:522; AVX512DQ:       # %bb.0:523; AVX512DQ-NEXT:    kmovw (%rdi), %k0524; AVX512DQ-NEXT:    vpmovm2d %k0, %zmm0525; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,1,1,1,2,2,2,3,3,3,0,0,0,0]526; AVX512DQ-NEXT:    vpermd %zmm0, %zmm1, %zmm0527; AVX512DQ-NEXT:    vpxor %xmm1, %xmm1, %xmm1528; AVX512DQ-NEXT:    movw $4095, %ax # imm = 0xFFF529; AVX512DQ-NEXT:    kmovw %eax, %k1530; AVX512DQ-NEXT:    vpcmpgtd %zmm0, %zmm1, %k1 {%k1}531; AVX512DQ-NEXT:    vmovdqa32 (%rsi), %zmm0 {%k1} {z}532; AVX512DQ-NEXT:    vextracti32x4 $2, %zmm0, 32(%rdx)533; AVX512DQ-NEXT:    vmovdqa %ymm0, (%rdx)534; AVX512DQ-NEXT:    vzeroupper535; AVX512DQ-NEXT:    retq536;537; AVX512BW-LABEL: mask_replication_factor3_vf4:538; AVX512BW:       # %bb.0:539; AVX512BW-NEXT:    kmovw (%rdi), %k1540; AVX512BW-NEXT:    vpternlogd {{.*#+}} zmm0 {%k1} {z} = -1541; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,1,1,1,2,2,2,3,3,3,0,0,0,0]542; AVX512BW-NEXT:    vpermd %zmm0, %zmm1, %zmm0543; AVX512BW-NEXT:    vpslld $31, %zmm0, %zmm0544; AVX512BW-NEXT:    movw $4095, %ax # imm = 0xFFF545; AVX512BW-NEXT:    kmovd %eax, %k1546; AVX512BW-NEXT:    vptestmd %zmm0, %zmm0, %k1 {%k1}547; AVX512BW-NEXT:    vmovdqa32 (%rsi), %zmm0 {%k1} {z}548; AVX512BW-NEXT:    vextracti32x4 $2, %zmm0, 32(%rdx)549; AVX512BW-NEXT:    vmovdqa %ymm0, (%rdx)550; AVX512BW-NEXT:    vzeroupper551; AVX512BW-NEXT:    retq552  %src.mask.padded = load <64 x i1>, ptr %in.maskvec, align 64553  %src.mask = shufflevector <64 x i1> %src.mask.padded, <64 x i1> poison, <4 x i32> <i32 0, i32 1, i32 2, i32 3>554  %tgt.mask = shufflevector <4 x i1> %src.mask, <4 x i1> poison, <12 x i32> <i32 0, i32 0, i32 0, i32 1, i32 1, i32 1, i32 2, i32 2, i32 2, i32 3, i32 3, i32 3>555  %data = call <12 x i32> @llvm.masked.load.v12i32.p0(ptr %in.vec, i32 64, <12 x i1> %tgt.mask, <12 x i32> poison)556  %data.padded = shufflevector <12 x i32> %data, <12 x i32> poison, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 undef, i32 undef, i32 undef, i32 undef>557  store <12 x i32> %data, ptr %out.vec, align 64558  ret void559}560 561define void @mask_replication_factor3_vf8(ptr %in.maskvec, ptr %in.vec, ptr %out.vec) nounwind {562; AVX512F-ONLY-LABEL: mask_replication_factor3_vf8:563; AVX512F-ONLY:       # %bb.0:564; AVX512F-ONLY-NEXT:    kmovw (%rdi), %k1565; AVX512F-ONLY-NEXT:    vpternlogd {{.*#+}} zmm0 {%k1} {z} = -1566; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,1,1,1,2,2,2,3,3,3,4,4,4,5]567; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm1, %zmm1568; AVX512F-ONLY-NEXT:    vptestmd %zmm1, %zmm1, %k2569; AVX512F-ONLY-NEXT:    vpternlogd {{.*#+}} zmm1 {%k2} {z} = -1570; AVX512F-ONLY-NEXT:    movw $1, %ax571; AVX512F-ONLY-NEXT:    kmovw %eax, %k2572; AVX512F-ONLY-NEXT:    vmovdqa32 %zmm0, %zmm1 {%k2}573; AVX512F-ONLY-NEXT:    vptestmd %zmm1, %zmm1, %k2574; AVX512F-ONLY-NEXT:    vpcmpeqd %ymm0, %ymm0, %ymm0575; AVX512F-ONLY-NEXT:    vmovdqa32 %ymm0, %ymm0 {%k1} {z}576; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} ymm1 = [5,5,6,6,6,7,7,7]577; AVX512F-ONLY-NEXT:    vpermd %ymm0, %ymm1, %ymm0578; AVX512F-ONLY-NEXT:    vptestmd %ymm0, %ymm0, %k1579; AVX512F-ONLY-NEXT:    vmovdqa32 (%rsi), %zmm0 {%k2} {z}580; AVX512F-ONLY-NEXT:    vmovdqa32 64(%rsi), %zmm1 {%k1} {z}581; AVX512F-ONLY-NEXT:    vmovdqa %ymm1, 64(%rdx)582; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm0, (%rdx)583; AVX512F-ONLY-NEXT:    vzeroupper584; AVX512F-ONLY-NEXT:    retq585;586; AVX512DQ-LABEL: mask_replication_factor3_vf8:587; AVX512DQ:       # %bb.0:588; AVX512DQ-NEXT:    kmovb (%rdi), %k0589; AVX512DQ-NEXT:    vpmovm2d %k0, %zmm0590; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,1,1,1,2,2,2,3,3,3,4,4,4,5]591; AVX512DQ-NEXT:    vpermd %zmm0, %zmm1, %zmm1592; AVX512DQ-NEXT:    vpmovd2m %zmm1, %k1593; AVX512DQ-NEXT:    vpmovm2d %k1, %zmm1594; AVX512DQ-NEXT:    movw $1, %ax595; AVX512DQ-NEXT:    kmovw %eax, %k1596; AVX512DQ-NEXT:    vmovdqa32 %zmm0, %zmm1 {%k1}597; AVX512DQ-NEXT:    vpmovd2m %zmm1, %k1598; AVX512DQ-NEXT:    vpmovm2d %k0, %ymm0599; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} ymm1 = [5,5,6,6,6,7,7,7]600; AVX512DQ-NEXT:    vpermd %ymm0, %ymm1, %ymm0601; AVX512DQ-NEXT:    vpmovd2m %ymm0, %k2602; AVX512DQ-NEXT:    vmovdqa32 (%rsi), %zmm0 {%k1} {z}603; AVX512DQ-NEXT:    vmovdqa32 64(%rsi), %zmm1 {%k2} {z}604; AVX512DQ-NEXT:    vmovdqa %ymm1, 64(%rdx)605; AVX512DQ-NEXT:    vmovdqa64 %zmm0, (%rdx)606; AVX512DQ-NEXT:    vzeroupper607; AVX512DQ-NEXT:    retq608;609; AVX512BW-LABEL: mask_replication_factor3_vf8:610; AVX512BW:       # %bb.0:611; AVX512BW-NEXT:    kmovw (%rdi), %k0612; AVX512BW-NEXT:    vpmovm2w %k0, %zmm0613; AVX512BW-NEXT:    vpmovsxbw {{.*#+}} zmm1 = [0,0,0,1,1,1,2,2,2,3,3,3,4,4,4,5,5,5,6,6,6,7,7,7,0,0,0,0,0,0,0,0]614; AVX512BW-NEXT:    vpermw %zmm0, %zmm1, %zmm0615; AVX512BW-NEXT:    vpxor %xmm1, %xmm1, %xmm1616; AVX512BW-NEXT:    movl $16777215, %eax # imm = 0xFFFFFF617; AVX512BW-NEXT:    kmovd %eax, %k1618; AVX512BW-NEXT:    vpcmpgtw %zmm0, %zmm1, %k1 {%k1}619; AVX512BW-NEXT:    kshiftrd $16, %k1, %k2620; AVX512BW-NEXT:    vmovdqa32 64(%rsi), %zmm0 {%k2} {z}621; AVX512BW-NEXT:    vmovdqa32 (%rsi), %zmm1 {%k1} {z}622; AVX512BW-NEXT:    vmovdqa64 %zmm1, (%rdx)623; AVX512BW-NEXT:    vmovdqa %ymm0, 64(%rdx)624; AVX512BW-NEXT:    vzeroupper625; AVX512BW-NEXT:    retq626  %src.mask.padded = load <64 x i1>, ptr %in.maskvec, align 64627  %src.mask = shufflevector <64 x i1> %src.mask.padded, <64 x i1> poison, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>628  %tgt.mask = shufflevector <8 x i1> %src.mask, <8 x i1> poison, <24 x i32> <i32 0, i32 0, i32 0, i32 1, i32 1, i32 1, i32 2, i32 2, i32 2, i32 3, i32 3, i32 3, i32 4, i32 4, i32 4, i32 5, i32 5, i32 5, i32 6, i32 6, i32 6, i32 7, i32 7, i32 7>629  %data = call <24 x i32> @llvm.masked.load.v24i32.p0(ptr %in.vec, i32 64, <24 x i1> %tgt.mask, <24 x i32> poison)630  %data.padded = shufflevector <24 x i32> %data, <24 x i32> poison, <32 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>631  store <24 x i32> %data, ptr %out.vec, align 64632  ret void633}634 635define void @mask_replication_factor3_vf16(ptr %in.maskvec, ptr %in.vec, ptr %out.vec) nounwind {636; AVX512F-ONLY-LABEL: mask_replication_factor3_vf16:637; AVX512F-ONLY:       # %bb.0:638; AVX512F-ONLY-NEXT:    kmovw (%rdi), %k1639; AVX512F-ONLY-NEXT:    vpternlogd {{.*#+}} zmm0 {%k1} {z} = -1640; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,1,1,1,2,2,2,3,3,3,4,4,4,5]641; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm1, %zmm1642; AVX512F-ONLY-NEXT:    vptestmd %zmm1, %zmm1, %k1643; AVX512F-ONLY-NEXT:    vpternlogd {{.*#+}} zmm1 {%k1} {z} = -1644; AVX512F-ONLY-NEXT:    movw $1, %ax645; AVX512F-ONLY-NEXT:    kmovw %eax, %k1646; AVX512F-ONLY-NEXT:    vmovdqa32 %zmm0, %zmm1 {%k1}647; AVX512F-ONLY-NEXT:    vptestmd %zmm1, %zmm1, %k1648; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [5,5,6,6,6,7,7,7,8,8,8,9,9,9,10,10]649; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm1, %zmm1650; AVX512F-ONLY-NEXT:    vptestmd %zmm1, %zmm1, %k2651; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [10,11,11,11,12,12,12,13,13,13,14,14,14,15,15,15]652; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm1, %zmm0653; AVX512F-ONLY-NEXT:    vptestmd %zmm0, %zmm0, %k3654; AVX512F-ONLY-NEXT:    vmovdqa32 (%rsi), %zmm0 {%k1} {z}655; AVX512F-ONLY-NEXT:    vmovdqa32 128(%rsi), %zmm1 {%k3} {z}656; AVX512F-ONLY-NEXT:    vmovdqa32 64(%rsi), %zmm2 {%k2} {z}657; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm2, 64(%rdx)658; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm1, 128(%rdx)659; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm0, (%rdx)660; AVX512F-ONLY-NEXT:    vzeroupper661; AVX512F-ONLY-NEXT:    retq662;663; AVX512DQ-LABEL: mask_replication_factor3_vf16:664; AVX512DQ:       # %bb.0:665; AVX512DQ-NEXT:    kmovw (%rdi), %k0666; AVX512DQ-NEXT:    vpmovm2d %k0, %zmm0667; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,1,1,1,2,2,2,3,3,3,4,4,4,5]668; AVX512DQ-NEXT:    vpermd %zmm0, %zmm1, %zmm1669; AVX512DQ-NEXT:    vpmovd2m %zmm1, %k0670; AVX512DQ-NEXT:    vpmovm2d %k0, %zmm1671; AVX512DQ-NEXT:    movw $1, %ax672; AVX512DQ-NEXT:    kmovw %eax, %k1673; AVX512DQ-NEXT:    vmovdqa32 %zmm0, %zmm1 {%k1}674; AVX512DQ-NEXT:    vpmovd2m %zmm1, %k1675; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [5,5,6,6,6,7,7,7,8,8,8,9,9,9,10,10]676; AVX512DQ-NEXT:    vpermd %zmm0, %zmm1, %zmm1677; AVX512DQ-NEXT:    vpmovd2m %zmm1, %k2678; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [10,11,11,11,12,12,12,13,13,13,14,14,14,15,15,15]679; AVX512DQ-NEXT:    vpermd %zmm0, %zmm1, %zmm0680; AVX512DQ-NEXT:    vpmovd2m %zmm0, %k3681; AVX512DQ-NEXT:    vmovdqa32 (%rsi), %zmm0 {%k1} {z}682; AVX512DQ-NEXT:    vmovdqa32 128(%rsi), %zmm1 {%k3} {z}683; AVX512DQ-NEXT:    vmovdqa32 64(%rsi), %zmm2 {%k2} {z}684; AVX512DQ-NEXT:    vmovdqa64 %zmm2, 64(%rdx)685; AVX512DQ-NEXT:    vmovdqa64 %zmm1, 128(%rdx)686; AVX512DQ-NEXT:    vmovdqa64 %zmm0, (%rdx)687; AVX512DQ-NEXT:    vzeroupper688; AVX512DQ-NEXT:    retq689;690; AVX512BW-LABEL: mask_replication_factor3_vf16:691; AVX512BW:       # %bb.0:692; AVX512BW-NEXT:    kmovw (%rdi), %k1693; AVX512BW-NEXT:    vpternlogd {{.*#+}} zmm0 {%k1} {z} = -1694; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,1,1,1,2,2,2,3,3,3,4,4,4,5]695; AVX512BW-NEXT:    vpermd %zmm0, %zmm1, %zmm1696; AVX512BW-NEXT:    vptestmd %zmm1, %zmm1, %k1697; AVX512BW-NEXT:    vmovdqa32 (%rsi), %zmm1 {%k1} {z}698; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm2 = [10,11,11,11,12,12,12,13,13,13,14,14,14,15,15,15]699; AVX512BW-NEXT:    vpermd %zmm0, %zmm2, %zmm2700; AVX512BW-NEXT:    vptestmd %zmm2, %zmm2, %k1701; AVX512BW-NEXT:    vmovdqa32 128(%rsi), %zmm2 {%k1} {z}702; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm3 = [5,5,6,6,6,7,7,7,8,8,8,9,9,9,10,10]703; AVX512BW-NEXT:    vpermd %zmm0, %zmm3, %zmm0704; AVX512BW-NEXT:    vptestmd %zmm0, %zmm0, %k1705; AVX512BW-NEXT:    vmovdqa32 64(%rsi), %zmm0 {%k1} {z}706; AVX512BW-NEXT:    vmovdqa64 %zmm0, 64(%rdx)707; AVX512BW-NEXT:    vmovdqa64 %zmm2, 128(%rdx)708; AVX512BW-NEXT:    vmovdqa64 %zmm1, (%rdx)709; AVX512BW-NEXT:    vzeroupper710; AVX512BW-NEXT:    retq711  %src.mask.padded = load <64 x i1>, ptr %in.maskvec, align 64712  %src.mask = shufflevector <64 x i1> %src.mask.padded, <64 x i1> poison, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15>713  %tgt.mask = shufflevector <16 x i1> %src.mask, <16 x i1> poison, <48 x i32> <i32 0, i32 0, i32 0, i32 1, i32 1, i32 1, i32 2, i32 2, i32 2, i32 3, i32 3, i32 3, i32 4, i32 4, i32 4, i32 5, i32 5, i32 5, i32 6, i32 6, i32 6, i32 7, i32 7, i32 7, i32 8, i32 8, i32 8, i32 9, i32 9, i32 9, i32 10, i32 10, i32 10, i32 11, i32 11, i32 11, i32 12, i32 12, i32 12, i32 13, i32 13, i32 13, i32 14, i32 14, i32 14, i32 15, i32 15, i32 15>714  %data = call <48 x i32> @llvm.masked.load.v48i32.p0(ptr %in.vec, i32 64, <48 x i1> %tgt.mask, <48 x i32> poison)715  store <48 x i32> %data, ptr %out.vec, align 64716  ret void717}718 719define void @mask_replication_factor3_vf32(ptr %in.maskvec, ptr %in.vec, ptr %out.vec) nounwind {720; AVX512F-ONLY-LABEL: mask_replication_factor3_vf32:721; AVX512F-ONLY:       # %bb.0:722; AVX512F-ONLY-NEXT:    kmovw (%rdi), %k2723; AVX512F-ONLY-NEXT:    kmovw 2(%rdi), %k1724; AVX512F-ONLY-NEXT:    vpternlogd {{.*#+}} zmm0 {%k2} {z} = -1725; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,1,1,1,2,2,2,3,3,3,4,4,4,5]726; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm1, %zmm2727; AVX512F-ONLY-NEXT:    vptestmd %zmm2, %zmm2, %k2728; AVX512F-ONLY-NEXT:    vpternlogd {{.*#+}} zmm2 {%k2} {z} = -1729; AVX512F-ONLY-NEXT:    movw $1, %ax730; AVX512F-ONLY-NEXT:    kmovw %eax, %k2731; AVX512F-ONLY-NEXT:    vmovdqa32 %zmm0, %zmm2 {%k2}732; AVX512F-ONLY-NEXT:    vptestmd %zmm2, %zmm2, %k3733; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm2 = [5,5,6,6,6,7,7,7,8,8,8,9,9,9,10,10]734; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm2, %zmm3735; AVX512F-ONLY-NEXT:    vptestmd %zmm3, %zmm3, %k2736; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm3 = [10,11,11,11,12,12,12,13,13,13,14,14,14,15,15,15]737; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm3, %zmm0738; AVX512F-ONLY-NEXT:    vptestmd %zmm0, %zmm0, %k4739; AVX512F-ONLY-NEXT:    vpternlogd {{.*#+}} zmm0 {%k1} {z} = -1740; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm1, %zmm1741; AVX512F-ONLY-NEXT:    vptestmd %zmm1, %zmm1, %k1742; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm2, %zmm1743; AVX512F-ONLY-NEXT:    vptestmd %zmm1, %zmm1, %k5744; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm3, %zmm0745; AVX512F-ONLY-NEXT:    vptestmd %zmm0, %zmm0, %k6746; AVX512F-ONLY-NEXT:    vmovdqa32 (%rsi), %zmm0 {%k3} {z}747; AVX512F-ONLY-NEXT:    vmovdqa32 320(%rsi), %zmm1 {%k6} {z}748; AVX512F-ONLY-NEXT:    vmovdqa32 256(%rsi), %zmm2 {%k5} {z}749; AVX512F-ONLY-NEXT:    vmovdqa32 192(%rsi), %zmm3 {%k1} {z}750; AVX512F-ONLY-NEXT:    vmovdqa32 128(%rsi), %zmm4 {%k4} {z}751; AVX512F-ONLY-NEXT:    vmovdqa32 64(%rsi), %zmm5 {%k2} {z}752; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm5, 64(%rdx)753; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm4, 128(%rdx)754; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm3, 192(%rdx)755; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm2, 256(%rdx)756; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm1, 320(%rdx)757; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm0, (%rdx)758; AVX512F-ONLY-NEXT:    vzeroupper759; AVX512F-ONLY-NEXT:    retq760;761; AVX512DQ-LABEL: mask_replication_factor3_vf32:762; AVX512DQ:       # %bb.0:763; AVX512DQ-NEXT:    kmovw (%rdi), %k1764; AVX512DQ-NEXT:    kmovw 2(%rdi), %k0765; AVX512DQ-NEXT:    vpmovm2d %k1, %zmm0766; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,1,1,1,2,2,2,3,3,3,4,4,4,5]767; AVX512DQ-NEXT:    vpermd %zmm0, %zmm1, %zmm2768; AVX512DQ-NEXT:    vpmovd2m %zmm2, %k1769; AVX512DQ-NEXT:    vpmovm2d %k1, %zmm2770; AVX512DQ-NEXT:    movw $1, %ax771; AVX512DQ-NEXT:    kmovw %eax, %k1772; AVX512DQ-NEXT:    vmovdqa32 %zmm0, %zmm2 {%k1}773; AVX512DQ-NEXT:    vpmovd2m %zmm2, %k2774; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm2 = [5,5,6,6,6,7,7,7,8,8,8,9,9,9,10,10]775; AVX512DQ-NEXT:    vpermd %zmm0, %zmm2, %zmm3776; AVX512DQ-NEXT:    vpmovd2m %zmm3, %k1777; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm3 = [10,11,11,11,12,12,12,13,13,13,14,14,14,15,15,15]778; AVX512DQ-NEXT:    vpermd %zmm0, %zmm3, %zmm0779; AVX512DQ-NEXT:    vpmovd2m %zmm0, %k3780; AVX512DQ-NEXT:    vpmovm2d %k0, %zmm0781; AVX512DQ-NEXT:    vpermd %zmm0, %zmm1, %zmm1782; AVX512DQ-NEXT:    vpmovd2m %zmm1, %k4783; AVX512DQ-NEXT:    vpermd %zmm0, %zmm2, %zmm1784; AVX512DQ-NEXT:    vpmovd2m %zmm1, %k5785; AVX512DQ-NEXT:    vpermd %zmm0, %zmm3, %zmm0786; AVX512DQ-NEXT:    vpmovd2m %zmm0, %k6787; AVX512DQ-NEXT:    vmovdqa32 (%rsi), %zmm0 {%k2} {z}788; AVX512DQ-NEXT:    vmovdqa32 320(%rsi), %zmm1 {%k6} {z}789; AVX512DQ-NEXT:    vmovdqa32 256(%rsi), %zmm2 {%k5} {z}790; AVX512DQ-NEXT:    vmovdqa32 192(%rsi), %zmm3 {%k4} {z}791; AVX512DQ-NEXT:    vmovdqa32 128(%rsi), %zmm4 {%k3} {z}792; AVX512DQ-NEXT:    vmovdqa32 64(%rsi), %zmm5 {%k1} {z}793; AVX512DQ-NEXT:    vmovdqa64 %zmm5, 64(%rdx)794; AVX512DQ-NEXT:    vmovdqa64 %zmm4, 128(%rdx)795; AVX512DQ-NEXT:    vmovdqa64 %zmm3, 192(%rdx)796; AVX512DQ-NEXT:    vmovdqa64 %zmm2, 256(%rdx)797; AVX512DQ-NEXT:    vmovdqa64 %zmm1, 320(%rdx)798; AVX512DQ-NEXT:    vmovdqa64 %zmm0, (%rdx)799; AVX512DQ-NEXT:    vzeroupper800; AVX512DQ-NEXT:    retq801;802; AVX512BW-LABEL: mask_replication_factor3_vf32:803; AVX512BW:       # %bb.0:804; AVX512BW-NEXT:    kmovd (%rdi), %k0805; AVX512BW-NEXT:    kshiftrd $1, %k0, %k1806; AVX512BW-NEXT:    movw $-3, %ax807; AVX512BW-NEXT:    kmovd %eax, %k4808; AVX512BW-NEXT:    kmovw (%rdi), %k2809; AVX512BW-NEXT:    kandw %k4, %k2, %k3810; AVX512BW-NEXT:    kmovq %k4, %k7811; AVX512BW-NEXT:    kshiftlw $15, %k2, %k2812; AVX512BW-NEXT:    kshiftrw $14, %k2, %k4813; AVX512BW-NEXT:    korw %k4, %k3, %k3814; AVX512BW-NEXT:    movw $-5, %ax815; AVX512BW-NEXT:    kmovd %eax, %k4816; AVX512BW-NEXT:    kmovw %k4, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill817; AVX512BW-NEXT:    kandw %k4, %k3, %k3818; AVX512BW-NEXT:    kshiftrw $13, %k2, %k2819; AVX512BW-NEXT:    korw %k2, %k3, %k2820; AVX512BW-NEXT:    movw $-9, %ax821; AVX512BW-NEXT:    kmovd %eax, %k3822; AVX512BW-NEXT:    kmovw %k3, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill823; AVX512BW-NEXT:    kandw %k3, %k2, %k2824; AVX512BW-NEXT:    kshiftlw $15, %k1, %k1825; AVX512BW-NEXT:    kshiftrw $12, %k1, %k3826; AVX512BW-NEXT:    korw %k3, %k2, %k2827; AVX512BW-NEXT:    movw $-17, %ax828; AVX512BW-NEXT:    kmovd %eax, %k5829; AVX512BW-NEXT:    kandw %k5, %k2, %k2830; AVX512BW-NEXT:    kmovw %k5, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill831; AVX512BW-NEXT:    kshiftrw $11, %k1, %k3832; AVX512BW-NEXT:    korw %k3, %k2, %k2833; AVX512BW-NEXT:    movw $-33, %ax834; AVX512BW-NEXT:    kmovd %eax, %k3835; AVX512BW-NEXT:    kmovw %k3, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill836; AVX512BW-NEXT:    kandw %k3, %k2, %k2837; AVX512BW-NEXT:    kshiftrw $10, %k1, %k1838; AVX512BW-NEXT:    korw %k1, %k2, %k1839; AVX512BW-NEXT:    movw $-65, %ax840; AVX512BW-NEXT:    kmovd %eax, %k2841; AVX512BW-NEXT:    kmovw %k2, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill842; AVX512BW-NEXT:    kandw %k2, %k1, %k1843; AVX512BW-NEXT:    kshiftrd $2, %k0, %k2844; AVX512BW-NEXT:    kshiftlw $15, %k2, %k2845; AVX512BW-NEXT:    kshiftrw $9, %k2, %k3846; AVX512BW-NEXT:    korw %k3, %k1, %k1847; AVX512BW-NEXT:    movw $-129, %ax848; AVX512BW-NEXT:    kmovd %eax, %k3849; AVX512BW-NEXT:    kmovw %k3, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill850; AVX512BW-NEXT:    kandw %k3, %k1, %k1851; AVX512BW-NEXT:    kshiftrw $8, %k2, %k3852; AVX512BW-NEXT:    korw %k3, %k1, %k1853; AVX512BW-NEXT:    movw $-257, %ax # imm = 0xFEFF854; AVX512BW-NEXT:    kmovd %eax, %k3855; AVX512BW-NEXT:    kmovw %k3, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill856; AVX512BW-NEXT:    kandw %k3, %k1, %k1857; AVX512BW-NEXT:    kshiftrw $7, %k2, %k2858; AVX512BW-NEXT:    korw %k2, %k1, %k1859; AVX512BW-NEXT:    movw $-513, %ax # imm = 0xFDFF860; AVX512BW-NEXT:    kmovd %eax, %k2861; AVX512BW-NEXT:    kmovw %k2, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill862; AVX512BW-NEXT:    kandw %k2, %k1, %k1863; AVX512BW-NEXT:    kshiftrd $3, %k0, %k2864; AVX512BW-NEXT:    kshiftlw $15, %k2, %k2865; AVX512BW-NEXT:    kshiftrw $6, %k2, %k3866; AVX512BW-NEXT:    korw %k3, %k1, %k1867; AVX512BW-NEXT:    movw $-1025, %ax # imm = 0xFBFF868; AVX512BW-NEXT:    kmovd %eax, %k3869; AVX512BW-NEXT:    kmovw %k3, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill870; AVX512BW-NEXT:    kandw %k3, %k1, %k1871; AVX512BW-NEXT:    kshiftrw $5, %k2, %k3872; AVX512BW-NEXT:    korw %k3, %k1, %k1873; AVX512BW-NEXT:    movw $-2049, %ax # imm = 0xF7FF874; AVX512BW-NEXT:    kmovd %eax, %k3875; AVX512BW-NEXT:    kmovw %k3, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill876; AVX512BW-NEXT:    kandw %k3, %k1, %k1877; AVX512BW-NEXT:    kshiftrw $4, %k2, %k2878; AVX512BW-NEXT:    korw %k2, %k1, %k1879; AVX512BW-NEXT:    movw $-4097, %ax # imm = 0xEFFF880; AVX512BW-NEXT:    kmovd %eax, %k2881; AVX512BW-NEXT:    kmovw %k2, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill882; AVX512BW-NEXT:    kandw %k2, %k1, %k1883; AVX512BW-NEXT:    kshiftrd $4, %k0, %k4884; AVX512BW-NEXT:    kshiftlw $15, %k4, %k2885; AVX512BW-NEXT:    kshiftrw $3, %k2, %k3886; AVX512BW-NEXT:    korw %k3, %k1, %k1887; AVX512BW-NEXT:    movw $-8193, %ax # imm = 0xDFFF888; AVX512BW-NEXT:    kmovd %eax, %k6889; AVX512BW-NEXT:    kandw %k6, %k1, %k1890; AVX512BW-NEXT:    kmovw %k6, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill891; AVX512BW-NEXT:    kshiftrw $2, %k2, %k2892; AVX512BW-NEXT:    korw %k2, %k1, %k1893; AVX512BW-NEXT:    movw $-16385, %ax # imm = 0xBFFF894; AVX512BW-NEXT:    kmovd %eax, %k2895; AVX512BW-NEXT:    kmovw %k2, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill896; AVX512BW-NEXT:    kandw %k2, %k1, %k1897; AVX512BW-NEXT:    kshiftlw $14, %k4, %k4898; AVX512BW-NEXT:    korw %k4, %k1, %k1899; AVX512BW-NEXT:    kshiftlw $1, %k1, %k1900; AVX512BW-NEXT:    kshiftrw $1, %k1, %k1901; AVX512BW-NEXT:    kshiftrd $5, %k0, %k2902; AVX512BW-NEXT:    kmovd %k2, {{[-0-9]+}}(%r{{[sb]}}p) # 4-byte Spill903; AVX512BW-NEXT:    kshiftlw $15, %k2, %k2904; AVX512BW-NEXT:    kmovw %k2, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill905; AVX512BW-NEXT:    korw %k2, %k1, %k1906; AVX512BW-NEXT:    vmovdqa32 (%rsi), %zmm0 {%k1} {z}907; AVX512BW-NEXT:    kshiftrd $27, %k0, %k1908; AVX512BW-NEXT:    kshiftlw $15, %k1, %k4909; AVX512BW-NEXT:    kshiftrd $26, %k0, %k1910; AVX512BW-NEXT:    kmovd %k1, {{[-0-9]+}}(%r{{[sb]}}p) # 4-byte Spill911; AVX512BW-NEXT:    kmovq %k7, %k2912; AVX512BW-NEXT:    kmovw %k7, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill913; AVX512BW-NEXT:    kandw %k7, %k1, %k1914; AVX512BW-NEXT:    kshiftrw $14, %k4, %k7915; AVX512BW-NEXT:    korw %k7, %k1, %k1916; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload917; AVX512BW-NEXT:    kandw %k3, %k1, %k1918; AVX512BW-NEXT:    kshiftrw $13, %k4, %k7919; AVX512BW-NEXT:    korw %k7, %k1, %k1920; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload921; AVX512BW-NEXT:    kandw %k3, %k1, %k1922; AVX512BW-NEXT:    kshiftrw $12, %k4, %k4923; AVX512BW-NEXT:    korw %k4, %k1, %k1924; AVX512BW-NEXT:    kandw %k5, %k1, %k1925; AVX512BW-NEXT:    kshiftrd $28, %k0, %k4926; AVX512BW-NEXT:    kshiftlw $15, %k4, %k4927; AVX512BW-NEXT:    kshiftrw $11, %k4, %k7928; AVX512BW-NEXT:    korw %k7, %k1, %k1929; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload930; AVX512BW-NEXT:    kandw %k3, %k1, %k1931; AVX512BW-NEXT:    kshiftrw $10, %k4, %k7932; AVX512BW-NEXT:    korw %k7, %k1, %k1933; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload934; AVX512BW-NEXT:    kandw %k5, %k1, %k1935; AVX512BW-NEXT:    kshiftrw $9, %k4, %k4936; AVX512BW-NEXT:    korw %k4, %k1, %k1937; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload938; AVX512BW-NEXT:    kandw %k3, %k1, %k1939; AVX512BW-NEXT:    kshiftrd $29, %k0, %k4940; AVX512BW-NEXT:    kshiftlw $15, %k4, %k4941; AVX512BW-NEXT:    kshiftrw $8, %k4, %k7942; AVX512BW-NEXT:    korw %k7, %k1, %k1943; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload944; AVX512BW-NEXT:    kandw %k3, %k1, %k1945; AVX512BW-NEXT:    kshiftrw $7, %k4, %k7946; AVX512BW-NEXT:    korw %k7, %k1, %k1947; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload948; AVX512BW-NEXT:    kandw %k3, %k1, %k1949; AVX512BW-NEXT:    kshiftrw $6, %k4, %k4950; AVX512BW-NEXT:    korw %k4, %k1, %k1951; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload952; AVX512BW-NEXT:    kandw %k3, %k1, %k1953; AVX512BW-NEXT:    kshiftrd $30, %k0, %k4954; AVX512BW-NEXT:    kshiftlw $15, %k4, %k4955; AVX512BW-NEXT:    kshiftrw $5, %k4, %k7956; AVX512BW-NEXT:    korw %k7, %k1, %k1957; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload958; AVX512BW-NEXT:    kandw %k3, %k1, %k1959; AVX512BW-NEXT:    kshiftrw $4, %k4, %k7960; AVX512BW-NEXT:    korw %k7, %k1, %k1961; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload962; AVX512BW-NEXT:    kandw %k3, %k1, %k1963; AVX512BW-NEXT:    kshiftrw $3, %k4, %k4964; AVX512BW-NEXT:    korw %k4, %k1, %k1965; AVX512BW-NEXT:    kandw %k6, %k1, %k1966; AVX512BW-NEXT:    kshiftrd $31, %k0, %k4967; AVX512BW-NEXT:    kshiftlw $15, %k4, %k7968; AVX512BW-NEXT:    kshiftrw $2, %k7, %k6969; AVX512BW-NEXT:    korw %k6, %k1, %k1970; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload971; AVX512BW-NEXT:    kandw %k3, %k1, %k1972; AVX512BW-NEXT:    kshiftlw $14, %k4, %k4973; AVX512BW-NEXT:    korw %k4, %k1, %k1974; AVX512BW-NEXT:    kshiftlw $1, %k1, %k1975; AVX512BW-NEXT:    kshiftrw $1, %k1, %k1976; AVX512BW-NEXT:    korw %k7, %k1, %k1977; AVX512BW-NEXT:    vmovdqa32 320(%rsi), %zmm1 {%k1} {z}978; AVX512BW-NEXT:    kshiftrd $21, %k0, %k1979; AVX512BW-NEXT:    kandw %k2, %k1, %k6980; AVX512BW-NEXT:    kshiftlw $15, %k1, %k1981; AVX512BW-NEXT:    kmovw %k1, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill982; AVX512BW-NEXT:    kshiftrw $14, %k1, %k1983; AVX512BW-NEXT:    korw %k1, %k6, %k1984; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload985; AVX512BW-NEXT:    kandw %k2, %k1, %k1986; AVX512BW-NEXT:    kshiftrd $22, %k0, %k6987; AVX512BW-NEXT:    kshiftlw $15, %k6, %k6988; AVX512BW-NEXT:    kshiftrw $13, %k6, %k7989; AVX512BW-NEXT:    korw %k7, %k1, %k1990; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload991; AVX512BW-NEXT:    kandw %k3, %k1, %k1992; AVX512BW-NEXT:    kshiftrw $12, %k6, %k7993; AVX512BW-NEXT:    korw %k7, %k1, %k1994; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload995; AVX512BW-NEXT:    kandw %k2, %k1, %k1996; AVX512BW-NEXT:    kshiftrw $11, %k6, %k6997; AVX512BW-NEXT:    korw %k6, %k1, %k1998; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload999; AVX512BW-NEXT:    kandw %k4, %k1, %k11000; AVX512BW-NEXT:    kshiftrd $23, %k0, %k61001; AVX512BW-NEXT:    kshiftlw $15, %k6, %k61002; AVX512BW-NEXT:    kshiftrw $10, %k6, %k71003; AVX512BW-NEXT:    korw %k7, %k1, %k11004; AVX512BW-NEXT:    kandw %k5, %k1, %k11005; AVX512BW-NEXT:    kshiftrw $9, %k6, %k71006; AVX512BW-NEXT:    korw %k7, %k1, %k11007; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload1008; AVX512BW-NEXT:    kandw %k5, %k1, %k11009; AVX512BW-NEXT:    kshiftrw $8, %k6, %k61010; AVX512BW-NEXT:    korw %k6, %k1, %k11011; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload1012; AVX512BW-NEXT:    kandw %k2, %k1, %k11013; AVX512BW-NEXT:    kshiftrd $24, %k0, %k61014; AVX512BW-NEXT:    kshiftlw $15, %k6, %k61015; AVX512BW-NEXT:    kshiftrw $7, %k6, %k71016; AVX512BW-NEXT:    korw %k7, %k1, %k11017; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload1018; AVX512BW-NEXT:    kandw %k2, %k1, %k11019; AVX512BW-NEXT:    kshiftrw $6, %k6, %k71020; AVX512BW-NEXT:    korw %k7, %k1, %k11021; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload1022; AVX512BW-NEXT:    kandw %k2, %k1, %k11023; AVX512BW-NEXT:    kshiftrw $5, %k6, %k61024; AVX512BW-NEXT:    korw %k6, %k1, %k11025; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload1026; AVX512BW-NEXT:    kandw %k2, %k1, %k11027; AVX512BW-NEXT:    kshiftrd $25, %k0, %k61028; AVX512BW-NEXT:    kshiftlw $15, %k6, %k61029; AVX512BW-NEXT:    kshiftrw $4, %k6, %k71030; AVX512BW-NEXT:    korw %k7, %k1, %k11031; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload1032; AVX512BW-NEXT:    kandw %k2, %k1, %k11033; AVX512BW-NEXT:    kshiftrw $3, %k6, %k71034; AVX512BW-NEXT:    korw %k7, %k1, %k11035; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload1036; AVX512BW-NEXT:    kandw %k2, %k1, %k11037; AVX512BW-NEXT:    kshiftrw $2, %k6, %k61038; AVX512BW-NEXT:    korw %k6, %k1, %k11039; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload1040; AVX512BW-NEXT:    kandw %k2, %k1, %k11041; AVX512BW-NEXT:    kmovd {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 4-byte Reload1042; AVX512BW-NEXT:    kshiftlw $14, %k2, %k61043; AVX512BW-NEXT:    korw %k6, %k1, %k11044; AVX512BW-NEXT:    kshiftlw $1, %k1, %k11045; AVX512BW-NEXT:    kshiftrw $1, %k1, %k11046; AVX512BW-NEXT:    kshiftlw $15, %k2, %k21047; AVX512BW-NEXT:    korw %k2, %k1, %k11048; AVX512BW-NEXT:    vmovdqa32 256(%rsi), %zmm2 {%k1} {z}1049; AVX512BW-NEXT:    kshiftrd $16, %k0, %k11050; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload1051; AVX512BW-NEXT:    kandw %k2, %k1, %k21052; AVX512BW-NEXT:    kshiftlw $15, %k1, %k11053; AVX512BW-NEXT:    kshiftrw $14, %k1, %k61054; AVX512BW-NEXT:    korw %k6, %k2, %k21055; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload1056; AVX512BW-NEXT:    kandw %k6, %k2, %k21057; AVX512BW-NEXT:    kshiftrw $13, %k1, %k11058; AVX512BW-NEXT:    korw %k1, %k2, %k11059; AVX512BW-NEXT:    kandw %k3, %k1, %k11060; AVX512BW-NEXT:    kshiftrd $17, %k0, %k21061; AVX512BW-NEXT:    kshiftlw $15, %k2, %k21062; AVX512BW-NEXT:    kshiftrw $12, %k2, %k61063; AVX512BW-NEXT:    korw %k6, %k1, %k11064; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload1065; AVX512BW-NEXT:    kandw %k3, %k1, %k11066; AVX512BW-NEXT:    kshiftrw $11, %k2, %k61067; AVX512BW-NEXT:    korw %k6, %k1, %k11068; AVX512BW-NEXT:    kandw %k4, %k1, %k11069; AVX512BW-NEXT:    kshiftrw $10, %k2, %k21070; AVX512BW-NEXT:    korw %k2, %k1, %k11071; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload1072; AVX512BW-NEXT:    kandw %k2, %k1, %k11073; AVX512BW-NEXT:    kshiftrd $18, %k0, %k21074; AVX512BW-NEXT:    kshiftlw $15, %k2, %k21075; AVX512BW-NEXT:    kshiftrw $9, %k2, %k61076; AVX512BW-NEXT:    korw %k6, %k1, %k11077; AVX512BW-NEXT:    kandw %k5, %k1, %k11078; AVX512BW-NEXT:    kshiftrw $8, %k2, %k61079; AVX512BW-NEXT:    korw %k6, %k1, %k11080; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload1081; AVX512BW-NEXT:    kandw %k5, %k1, %k11082; AVX512BW-NEXT:    kshiftrw $7, %k2, %k21083; AVX512BW-NEXT:    korw %k2, %k1, %k11084; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload1085; AVX512BW-NEXT:    kandw %k2, %k1, %k11086; AVX512BW-NEXT:    kshiftrd $19, %k0, %k21087; AVX512BW-NEXT:    kshiftlw $15, %k2, %k21088; AVX512BW-NEXT:    kshiftrw $6, %k2, %k61089; AVX512BW-NEXT:    korw %k6, %k1, %k11090; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload1091; AVX512BW-NEXT:    kandw %k4, %k1, %k11092; AVX512BW-NEXT:    kshiftrw $5, %k2, %k61093; AVX512BW-NEXT:    korw %k6, %k1, %k11094; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload1095; AVX512BW-NEXT:    kandw %k4, %k1, %k11096; AVX512BW-NEXT:    kshiftrw $4, %k2, %k21097; AVX512BW-NEXT:    korw %k2, %k1, %k11098; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload1099; AVX512BW-NEXT:    kandw %k2, %k1, %k11100; AVX512BW-NEXT:    kshiftrd $20, %k0, %k21101; AVX512BW-NEXT:    kshiftlw $15, %k2, %k61102; AVX512BW-NEXT:    kshiftrw $3, %k6, %k71103; AVX512BW-NEXT:    korw %k7, %k1, %k11104; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k7 # 2-byte Reload1105; AVX512BW-NEXT:    kandw %k7, %k1, %k11106; AVX512BW-NEXT:    kshiftrw $2, %k6, %k61107; AVX512BW-NEXT:    korw %k6, %k1, %k11108; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload1109; AVX512BW-NEXT:    kandw %k4, %k1, %k11110; AVX512BW-NEXT:    kshiftlw $14, %k2, %k21111; AVX512BW-NEXT:    korw %k2, %k1, %k11112; AVX512BW-NEXT:    kshiftlw $1, %k1, %k11113; AVX512BW-NEXT:    kshiftrw $1, %k1, %k11114; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload1115; AVX512BW-NEXT:    korw %k2, %k1, %k11116; AVX512BW-NEXT:    vmovdqa32 192(%rsi), %zmm3 {%k1} {z}1117; AVX512BW-NEXT:    kshiftrd $11, %k0, %k11118; AVX512BW-NEXT:    kshiftlw $15, %k1, %k21119; AVX512BW-NEXT:    kshiftrd $10, %k0, %k41120; AVX512BW-NEXT:    kmovd %k4, {{[-0-9]+}}(%r{{[sb]}}p) # 4-byte Spill1121; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload1122; AVX512BW-NEXT:    kandw %k1, %k4, %k41123; AVX512BW-NEXT:    kshiftrw $14, %k2, %k61124; AVX512BW-NEXT:    korw %k6, %k4, %k41125; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload1126; AVX512BW-NEXT:    kandw %k1, %k4, %k41127; AVX512BW-NEXT:    kshiftrw $13, %k2, %k61128; AVX512BW-NEXT:    korw %k6, %k4, %k41129; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload1130; AVX512BW-NEXT:    kandw %k1, %k4, %k41131; AVX512BW-NEXT:    kshiftrw $12, %k2, %k21132; AVX512BW-NEXT:    korw %k2, %k4, %k21133; AVX512BW-NEXT:    kandw %k3, %k2, %k21134; AVX512BW-NEXT:    kshiftrd $12, %k0, %k41135; AVX512BW-NEXT:    kshiftlw $15, %k4, %k41136; AVX512BW-NEXT:    kshiftrw $11, %k4, %k61137; AVX512BW-NEXT:    korw %k6, %k2, %k21138; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload1139; AVX512BW-NEXT:    kandw %k1, %k2, %k21140; AVX512BW-NEXT:    kshiftrw $10, %k4, %k61141; AVX512BW-NEXT:    korw %k6, %k2, %k21142; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload1143; AVX512BW-NEXT:    kandw %k1, %k2, %k21144; AVX512BW-NEXT:    kshiftrw $9, %k4, %k41145; AVX512BW-NEXT:    korw %k4, %k2, %k21146; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload1147; AVX512BW-NEXT:    kandw %k1, %k2, %k21148; AVX512BW-NEXT:    kshiftrd $13, %k0, %k41149; AVX512BW-NEXT:    kshiftlw $15, %k4, %k41150; AVX512BW-NEXT:    kshiftrw $8, %k4, %k61151; AVX512BW-NEXT:    korw %k6, %k2, %k21152; AVX512BW-NEXT:    kandw %k5, %k2, %k21153; AVX512BW-NEXT:    kshiftrw $7, %k4, %k61154; AVX512BW-NEXT:    korw %k6, %k2, %k21155; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload1156; AVX512BW-NEXT:    kandw %k3, %k2, %k21157; AVX512BW-NEXT:    kshiftrw $6, %k4, %k41158; AVX512BW-NEXT:    korw %k4, %k2, %k21159; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload1160; AVX512BW-NEXT:    kandw %k1, %k2, %k21161; AVX512BW-NEXT:    kshiftrd $14, %k0, %k41162; AVX512BW-NEXT:    kshiftlw $15, %k4, %k41163; AVX512BW-NEXT:    kshiftrw $5, %k4, %k61164; AVX512BW-NEXT:    korw %k6, %k2, %k21165; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload1166; AVX512BW-NEXT:    kandw %k1, %k2, %k21167; AVX512BW-NEXT:    kshiftrw $4, %k4, %k61168; AVX512BW-NEXT:    korw %k6, %k2, %k21169; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload1170; AVX512BW-NEXT:    kandw %k5, %k2, %k21171; AVX512BW-NEXT:    kshiftrw $3, %k4, %k41172; AVX512BW-NEXT:    korw %k4, %k2, %k21173; AVX512BW-NEXT:    kandw %k7, %k2, %k21174; AVX512BW-NEXT:    kshiftrd $15, %k0, %k41175; AVX512BW-NEXT:    kshiftlw $15, %k4, %k61176; AVX512BW-NEXT:    kshiftrw $2, %k6, %k71177; AVX512BW-NEXT:    korw %k7, %k2, %k21178; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k7 # 2-byte Reload1179; AVX512BW-NEXT:    kandw %k7, %k2, %k21180; AVX512BW-NEXT:    kshiftlw $14, %k4, %k41181; AVX512BW-NEXT:    korw %k4, %k2, %k21182; AVX512BW-NEXT:    kshiftlw $1, %k2, %k21183; AVX512BW-NEXT:    kshiftrw $1, %k2, %k21184; AVX512BW-NEXT:    korw %k6, %k2, %k21185; AVX512BW-NEXT:    vmovdqa32 128(%rsi), %zmm4 {%k2} {z}1186; AVX512BW-NEXT:    kmovd {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 4-byte Reload1187; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload1188; AVX512BW-NEXT:    kandw %k4, %k2, %k21189; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload1190; AVX512BW-NEXT:    kshiftrw $14, %k4, %k41191; AVX512BW-NEXT:    korw %k4, %k2, %k21192; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload1193; AVX512BW-NEXT:    kandw %k4, %k2, %k21194; AVX512BW-NEXT:    kshiftrd $6, %k0, %k41195; AVX512BW-NEXT:    kshiftlw $15, %k4, %k41196; AVX512BW-NEXT:    kshiftrw $13, %k4, %k61197; AVX512BW-NEXT:    korw %k6, %k2, %k21198; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload1199; AVX512BW-NEXT:    kandw %k6, %k2, %k21200; AVX512BW-NEXT:    kshiftrw $12, %k4, %k61201; AVX512BW-NEXT:    korw %k6, %k2, %k21202; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload1203; AVX512BW-NEXT:    kandw %k6, %k2, %k21204; AVX512BW-NEXT:    kshiftrw $11, %k4, %k41205; AVX512BW-NEXT:    korw %k4, %k2, %k21206; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload1207; AVX512BW-NEXT:    kandw %k4, %k2, %k21208; AVX512BW-NEXT:    kshiftrd $7, %k0, %k41209; AVX512BW-NEXT:    kshiftlw $15, %k4, %k41210; AVX512BW-NEXT:    kshiftrw $10, %k4, %k61211; AVX512BW-NEXT:    korw %k6, %k2, %k21212; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload1213; AVX512BW-NEXT:    kandw %k6, %k2, %k21214; AVX512BW-NEXT:    kshiftrw $9, %k4, %k61215; AVX512BW-NEXT:    korw %k6, %k2, %k21216; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload1217; AVX512BW-NEXT:    kandw %k6, %k2, %k21218; AVX512BW-NEXT:    kshiftrw $8, %k4, %k41219; AVX512BW-NEXT:    korw %k4, %k2, %k21220; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload1221; AVX512BW-NEXT:    kandw %k4, %k2, %k21222; AVX512BW-NEXT:    kshiftrd $8, %k0, %k41223; AVX512BW-NEXT:    kshiftlw $15, %k4, %k41224; AVX512BW-NEXT:    kshiftrw $7, %k4, %k61225; AVX512BW-NEXT:    korw %k6, %k2, %k21226; AVX512BW-NEXT:    kandw %k3, %k2, %k21227; AVX512BW-NEXT:    kshiftrw $6, %k4, %k61228; AVX512BW-NEXT:    korw %k6, %k2, %k21229; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload1230; AVX512BW-NEXT:    kandw %k3, %k2, %k21231; AVX512BW-NEXT:    kshiftrw $5, %k4, %k41232; AVX512BW-NEXT:    korw %k4, %k2, %k21233; AVX512BW-NEXT:    kshiftrd $9, %k0, %k01234; AVX512BW-NEXT:    kandw %k1, %k2, %k21235; AVX512BW-NEXT:    kshiftlw $15, %k0, %k01236; AVX512BW-NEXT:    kshiftrw $4, %k0, %k41237; AVX512BW-NEXT:    korw %k4, %k2, %k21238; AVX512BW-NEXT:    kandw %k5, %k2, %k21239; AVX512BW-NEXT:    kshiftrw $3, %k0, %k41240; AVX512BW-NEXT:    korw %k4, %k2, %k21241; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload1242; AVX512BW-NEXT:    kandw %k1, %k2, %k21243; AVX512BW-NEXT:    kshiftrw $2, %k0, %k01244; AVX512BW-NEXT:    korw %k0, %k2, %k01245; AVX512BW-NEXT:    kandw %k7, %k0, %k01246; AVX512BW-NEXT:    kmovd {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 4-byte Reload1247; AVX512BW-NEXT:    kshiftlw $14, %k1, %k21248; AVX512BW-NEXT:    korw %k2, %k0, %k01249; AVX512BW-NEXT:    kshiftlw $1, %k0, %k01250; AVX512BW-NEXT:    kshiftrw $1, %k0, %k01251; AVX512BW-NEXT:    kshiftlw $15, %k1, %k11252; AVX512BW-NEXT:    korw %k1, %k0, %k11253; AVX512BW-NEXT:    vmovdqa32 64(%rsi), %zmm5 {%k1} {z}1254; AVX512BW-NEXT:    vmovdqa64 %zmm5, 64(%rdx)1255; AVX512BW-NEXT:    vmovdqa64 %zmm4, 128(%rdx)1256; AVX512BW-NEXT:    vmovdqa64 %zmm3, 192(%rdx)1257; AVX512BW-NEXT:    vmovdqa64 %zmm2, 256(%rdx)1258; AVX512BW-NEXT:    vmovdqa64 %zmm1, 320(%rdx)1259; AVX512BW-NEXT:    vmovdqa64 %zmm0, (%rdx)1260; AVX512BW-NEXT:    vzeroupper1261; AVX512BW-NEXT:    retq1262  %src.mask.padded = load <64 x i1>, ptr %in.maskvec, align 641263  %src.mask = shufflevector <64 x i1> %src.mask.padded, <64 x i1> poison, <32 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31>1264  %tgt.mask = shufflevector <32 x i1> %src.mask, <32 x i1> poison, <96 x i32> <i32 0, i32 0, i32 0, i32 1, i32 1, i32 1, i32 2, i32 2, i32 2, i32 3, i32 3, i32 3, i32 4, i32 4, i32 4, i32 5, i32 5, i32 5, i32 6, i32 6, i32 6, i32 7, i32 7, i32 7, i32 8, i32 8, i32 8, i32 9, i32 9, i32 9, i32 10, i32 10, i32 10, i32 11, i32 11, i32 11, i32 12, i32 12, i32 12, i32 13, i32 13, i32 13, i32 14, i32 14, i32 14, i32 15, i32 15, i32 15, i32 16, i32 16, i32 16, i32 17, i32 17, i32 17, i32 18, i32 18, i32 18, i32 19, i32 19, i32 19, i32 20, i32 20, i32 20, i32 21, i32 21, i32 21, i32 22, i32 22, i32 22, i32 23, i32 23, i32 23, i32 24, i32 24, i32 24, i32 25, i32 25, i32 25, i32 26, i32 26, i32 26, i32 27, i32 27, i32 27, i32 28, i32 28, i32 28, i32 29, i32 29, i32 29, i32 30, i32 30, i32 30, i32 31, i32 31, i32 31>1265  %data = call <96 x i32> @llvm.masked.load.v96i32.p0(ptr %in.vec, i32 64, <96 x i1> %tgt.mask, <96 x i32> poison)1266  store <96 x i32> %data, ptr %out.vec, align 641267  ret void1268}1269 1270define void @mask_replication_factor3_vf64(ptr %in.maskvec, ptr %in.vec, ptr %out.vec) nounwind {1271; AVX512F-ONLY-LABEL: mask_replication_factor3_vf64:1272; AVX512F-ONLY:       # %bb.0:1273; AVX512F-ONLY-NEXT:    kmovw (%rdi), %k11274; AVX512F-ONLY-NEXT:    vpternlogd {{.*#+}} zmm0 {%k1} {z} = -11275; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,1,1,1,2,2,2,3,3,3,4,4,4,5]1276; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm1, %zmm21277; AVX512F-ONLY-NEXT:    vptestmd %zmm2, %zmm2, %k11278; AVX512F-ONLY-NEXT:    vpternlogd {{.*#+}} zmm2 {%k1} {z} = -11279; AVX512F-ONLY-NEXT:    movw $1, %ax1280; AVX512F-ONLY-NEXT:    kmovw %eax, %k11281; AVX512F-ONLY-NEXT:    vmovdqa32 %zmm0, %zmm2 {%k1}1282; AVX512F-ONLY-NEXT:    kmovw 2(%rdi), %k11283; AVX512F-ONLY-NEXT:    vpternlogd {{.*#+}} zmm3 {%k1} {z} = -11284; AVX512F-ONLY-NEXT:    kmovw 4(%rdi), %k11285; AVX512F-ONLY-NEXT:    vpternlogd {{.*#+}} zmm4 {%k1} {z} = -11286; AVX512F-ONLY-NEXT:    kmovw 6(%rdi), %k11287; AVX512F-ONLY-NEXT:    vpternlogd {{.*#+}} zmm5 {%k1} {z} = -11288; AVX512F-ONLY-NEXT:    vptestmd %zmm2, %zmm2, %k11289; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm2 = [5,5,6,6,6,7,7,7,8,8,8,9,9,9,10,10]1290; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm2, %zmm61291; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm7 = [10,11,11,11,12,12,12,13,13,13,14,14,14,15,15,15]1292; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm7, %zmm01293; AVX512F-ONLY-NEXT:    vpermd %zmm3, %zmm1, %zmm81294; AVX512F-ONLY-NEXT:    vpermd %zmm3, %zmm2, %zmm91295; AVX512F-ONLY-NEXT:    vpermd %zmm3, %zmm7, %zmm31296; AVX512F-ONLY-NEXT:    vpermd %zmm4, %zmm1, %zmm101297; AVX512F-ONLY-NEXT:    vpermd %zmm4, %zmm2, %zmm111298; AVX512F-ONLY-NEXT:    vpermd %zmm4, %zmm7, %zmm41299; AVX512F-ONLY-NEXT:    vpermd %zmm5, %zmm1, %zmm11300; AVX512F-ONLY-NEXT:    vpermd %zmm5, %zmm2, %zmm21301; AVX512F-ONLY-NEXT:    vpermd %zmm5, %zmm7, %zmm51302; AVX512F-ONLY-NEXT:    vmovdqa32 (%rsi), %zmm7 {%k1} {z}1303; AVX512F-ONLY-NEXT:    vptestmd %zmm5, %zmm5, %k11304; AVX512F-ONLY-NEXT:    vmovdqa32 704(%rsi), %zmm5 {%k1} {z}1305; AVX512F-ONLY-NEXT:    vptestmd %zmm2, %zmm2, %k11306; AVX512F-ONLY-NEXT:    vmovdqa32 640(%rsi), %zmm2 {%k1} {z}1307; AVX512F-ONLY-NEXT:    vptestmd %zmm1, %zmm1, %k11308; AVX512F-ONLY-NEXT:    vmovdqa32 576(%rsi), %zmm1 {%k1} {z}1309; AVX512F-ONLY-NEXT:    vptestmd %zmm4, %zmm4, %k11310; AVX512F-ONLY-NEXT:    vmovdqa32 512(%rsi), %zmm4 {%k1} {z}1311; AVX512F-ONLY-NEXT:    vptestmd %zmm11, %zmm11, %k11312; AVX512F-ONLY-NEXT:    vmovdqa32 448(%rsi), %zmm11 {%k1} {z}1313; AVX512F-ONLY-NEXT:    vptestmd %zmm10, %zmm10, %k11314; AVX512F-ONLY-NEXT:    vmovdqa32 384(%rsi), %zmm10 {%k1} {z}1315; AVX512F-ONLY-NEXT:    vptestmd %zmm3, %zmm3, %k11316; AVX512F-ONLY-NEXT:    vmovdqa32 320(%rsi), %zmm3 {%k1} {z}1317; AVX512F-ONLY-NEXT:    vptestmd %zmm9, %zmm9, %k11318; AVX512F-ONLY-NEXT:    vmovdqa32 256(%rsi), %zmm9 {%k1} {z}1319; AVX512F-ONLY-NEXT:    vptestmd %zmm8, %zmm8, %k11320; AVX512F-ONLY-NEXT:    vmovdqa32 192(%rsi), %zmm8 {%k1} {z}1321; AVX512F-ONLY-NEXT:    vptestmd %zmm0, %zmm0, %k11322; AVX512F-ONLY-NEXT:    vmovdqa32 128(%rsi), %zmm0 {%k1} {z}1323; AVX512F-ONLY-NEXT:    vptestmd %zmm6, %zmm6, %k11324; AVX512F-ONLY-NEXT:    vmovdqa32 64(%rsi), %zmm6 {%k1} {z}1325; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm6, 64(%rdx)1326; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm0, 128(%rdx)1327; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm8, 192(%rdx)1328; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm9, 256(%rdx)1329; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm3, 320(%rdx)1330; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm10, 384(%rdx)1331; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm11, 448(%rdx)1332; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm4, 512(%rdx)1333; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm1, 576(%rdx)1334; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm2, 640(%rdx)1335; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm5, 704(%rdx)1336; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm7, (%rdx)1337; AVX512F-ONLY-NEXT:    vzeroupper1338; AVX512F-ONLY-NEXT:    retq1339;1340; AVX512DQ-LABEL: mask_replication_factor3_vf64:1341; AVX512DQ:       # %bb.0:1342; AVX512DQ-NEXT:    kmovw (%rdi), %k01343; AVX512DQ-NEXT:    vpmovm2d %k0, %zmm01344; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,1,1,1,2,2,2,3,3,3,4,4,4,5]1345; AVX512DQ-NEXT:    vpermd %zmm0, %zmm1, %zmm21346; AVX512DQ-NEXT:    vpmovd2m %zmm2, %k01347; AVX512DQ-NEXT:    vpmovm2d %k0, %zmm21348; AVX512DQ-NEXT:    movw $1, %ax1349; AVX512DQ-NEXT:    kmovw %eax, %k11350; AVX512DQ-NEXT:    vmovdqa32 %zmm0, %zmm2 {%k1}1351; AVX512DQ-NEXT:    kmovw 2(%rdi), %k01352; AVX512DQ-NEXT:    vpmovm2d %k0, %zmm31353; AVX512DQ-NEXT:    kmovw 4(%rdi), %k01354; AVX512DQ-NEXT:    vpmovm2d %k0, %zmm41355; AVX512DQ-NEXT:    kmovw 6(%rdi), %k01356; AVX512DQ-NEXT:    vpmovm2d %k0, %zmm51357; AVX512DQ-NEXT:    vpmovd2m %zmm2, %k11358; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm2 = [5,5,6,6,6,7,7,7,8,8,8,9,9,9,10,10]1359; AVX512DQ-NEXT:    vpermd %zmm0, %zmm2, %zmm61360; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm7 = [10,11,11,11,12,12,12,13,13,13,14,14,14,15,15,15]1361; AVX512DQ-NEXT:    vpermd %zmm0, %zmm7, %zmm01362; AVX512DQ-NEXT:    vpermd %zmm3, %zmm1, %zmm81363; AVX512DQ-NEXT:    vpermd %zmm3, %zmm2, %zmm91364; AVX512DQ-NEXT:    vpermd %zmm3, %zmm7, %zmm31365; AVX512DQ-NEXT:    vpermd %zmm4, %zmm1, %zmm101366; AVX512DQ-NEXT:    vpermd %zmm4, %zmm2, %zmm111367; AVX512DQ-NEXT:    vpermd %zmm4, %zmm7, %zmm41368; AVX512DQ-NEXT:    vpermd %zmm5, %zmm1, %zmm11369; AVX512DQ-NEXT:    vpermd %zmm5, %zmm2, %zmm21370; AVX512DQ-NEXT:    vpermd %zmm5, %zmm7, %zmm51371; AVX512DQ-NEXT:    vmovdqa32 (%rsi), %zmm7 {%k1} {z}1372; AVX512DQ-NEXT:    vpmovd2m %zmm5, %k11373; AVX512DQ-NEXT:    vmovdqa32 704(%rsi), %zmm5 {%k1} {z}1374; AVX512DQ-NEXT:    vpmovd2m %zmm2, %k11375; AVX512DQ-NEXT:    vmovdqa32 640(%rsi), %zmm2 {%k1} {z}1376; AVX512DQ-NEXT:    vpmovd2m %zmm1, %k11377; AVX512DQ-NEXT:    vmovdqa32 576(%rsi), %zmm1 {%k1} {z}1378; AVX512DQ-NEXT:    vpmovd2m %zmm4, %k11379; AVX512DQ-NEXT:    vmovdqa32 512(%rsi), %zmm4 {%k1} {z}1380; AVX512DQ-NEXT:    vpmovd2m %zmm11, %k11381; AVX512DQ-NEXT:    vmovdqa32 448(%rsi), %zmm11 {%k1} {z}1382; AVX512DQ-NEXT:    vpmovd2m %zmm10, %k11383; AVX512DQ-NEXT:    vmovdqa32 384(%rsi), %zmm10 {%k1} {z}1384; AVX512DQ-NEXT:    vpmovd2m %zmm3, %k11385; AVX512DQ-NEXT:    vmovdqa32 320(%rsi), %zmm3 {%k1} {z}1386; AVX512DQ-NEXT:    vpmovd2m %zmm9, %k11387; AVX512DQ-NEXT:    vmovdqa32 256(%rsi), %zmm9 {%k1} {z}1388; AVX512DQ-NEXT:    vpmovd2m %zmm8, %k11389; AVX512DQ-NEXT:    vmovdqa32 192(%rsi), %zmm8 {%k1} {z}1390; AVX512DQ-NEXT:    vpmovd2m %zmm0, %k11391; AVX512DQ-NEXT:    vmovdqa32 128(%rsi), %zmm0 {%k1} {z}1392; AVX512DQ-NEXT:    vpmovd2m %zmm6, %k11393; AVX512DQ-NEXT:    vmovdqa32 64(%rsi), %zmm6 {%k1} {z}1394; AVX512DQ-NEXT:    vmovdqa64 %zmm6, 64(%rdx)1395; AVX512DQ-NEXT:    vmovdqa64 %zmm0, 128(%rdx)1396; AVX512DQ-NEXT:    vmovdqa64 %zmm8, 192(%rdx)1397; AVX512DQ-NEXT:    vmovdqa64 %zmm9, 256(%rdx)1398; AVX512DQ-NEXT:    vmovdqa64 %zmm3, 320(%rdx)1399; AVX512DQ-NEXT:    vmovdqa64 %zmm10, 384(%rdx)1400; AVX512DQ-NEXT:    vmovdqa64 %zmm11, 448(%rdx)1401; AVX512DQ-NEXT:    vmovdqa64 %zmm4, 512(%rdx)1402; AVX512DQ-NEXT:    vmovdqa64 %zmm1, 576(%rdx)1403; AVX512DQ-NEXT:    vmovdqa64 %zmm2, 640(%rdx)1404; AVX512DQ-NEXT:    vmovdqa64 %zmm5, 704(%rdx)1405; AVX512DQ-NEXT:    vmovdqa64 %zmm7, (%rdx)1406; AVX512DQ-NEXT:    vzeroupper1407; AVX512DQ-NEXT:    retq1408;1409; AVX512BW-LABEL: mask_replication_factor3_vf64:1410; AVX512BW:       # %bb.0:1411; AVX512BW-NEXT:    kmovq (%rdi), %k01412; AVX512BW-NEXT:    kshiftrq $1, %k0, %k11413; AVX512BW-NEXT:    movw $-3, %ax1414; AVX512BW-NEXT:    kmovd %eax, %k41415; AVX512BW-NEXT:    kmovw (%rdi), %k21416; AVX512BW-NEXT:    kandw %k4, %k2, %k31417; AVX512BW-NEXT:    kmovq %k4, %k71418; AVX512BW-NEXT:    kshiftlw $15, %k2, %k21419; AVX512BW-NEXT:    kshiftrw $14, %k2, %k41420; AVX512BW-NEXT:    korw %k4, %k3, %k31421; AVX512BW-NEXT:    movw $-5, %ax1422; AVX512BW-NEXT:    kmovd %eax, %k41423; AVX512BW-NEXT:    kmovw %k4, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill1424; AVX512BW-NEXT:    kandw %k4, %k3, %k31425; AVX512BW-NEXT:    kshiftrw $13, %k2, %k21426; AVX512BW-NEXT:    korw %k2, %k3, %k21427; AVX512BW-NEXT:    movw $-9, %ax1428; AVX512BW-NEXT:    kmovd %eax, %k31429; AVX512BW-NEXT:    kmovw %k3, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill1430; AVX512BW-NEXT:    kandw %k3, %k2, %k21431; AVX512BW-NEXT:    kshiftlw $15, %k1, %k11432; AVX512BW-NEXT:    kshiftrw $12, %k1, %k31433; AVX512BW-NEXT:    korw %k3, %k2, %k21434; AVX512BW-NEXT:    movw $-17, %ax1435; AVX512BW-NEXT:    kmovd %eax, %k31436; AVX512BW-NEXT:    kmovw %k3, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill1437; AVX512BW-NEXT:    kandw %k3, %k2, %k21438; AVX512BW-NEXT:    kshiftrw $11, %k1, %k31439; AVX512BW-NEXT:    korw %k3, %k2, %k21440; AVX512BW-NEXT:    movw $-33, %ax1441; AVX512BW-NEXT:    kmovd %eax, %k31442; AVX512BW-NEXT:    kmovw %k3, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill1443; AVX512BW-NEXT:    kandw %k3, %k2, %k21444; AVX512BW-NEXT:    kshiftrw $10, %k1, %k11445; AVX512BW-NEXT:    korw %k1, %k2, %k11446; AVX512BW-NEXT:    movw $-65, %ax1447; AVX512BW-NEXT:    kmovd %eax, %k21448; AVX512BW-NEXT:    kmovw %k2, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill1449; AVX512BW-NEXT:    kandw %k2, %k1, %k11450; AVX512BW-NEXT:    kshiftrq $2, %k0, %k21451; AVX512BW-NEXT:    kshiftlw $15, %k2, %k21452; AVX512BW-NEXT:    kshiftrw $9, %k2, %k31453; AVX512BW-NEXT:    korw %k3, %k1, %k11454; AVX512BW-NEXT:    movw $-129, %ax1455; AVX512BW-NEXT:    kmovd %eax, %k31456; AVX512BW-NEXT:    kandw %k3, %k1, %k11457; AVX512BW-NEXT:    kmovq %k3, %k51458; AVX512BW-NEXT:    kmovw %k3, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill1459; AVX512BW-NEXT:    kshiftrw $8, %k2, %k31460; AVX512BW-NEXT:    korw %k3, %k1, %k11461; AVX512BW-NEXT:    movw $-257, %ax # imm = 0xFEFF1462; AVX512BW-NEXT:    kmovd %eax, %k31463; AVX512BW-NEXT:    kmovw %k3, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill1464; AVX512BW-NEXT:    kandw %k3, %k1, %k11465; AVX512BW-NEXT:    kshiftrw $7, %k2, %k21466; AVX512BW-NEXT:    korw %k2, %k1, %k11467; AVX512BW-NEXT:    movw $-513, %ax # imm = 0xFDFF1468; AVX512BW-NEXT:    kmovd %eax, %k21469; AVX512BW-NEXT:    kmovw %k2, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill1470; AVX512BW-NEXT:    kandw %k2, %k1, %k11471; AVX512BW-NEXT:    kshiftrq $3, %k0, %k21472; AVX512BW-NEXT:    kshiftlw $15, %k2, %k21473; AVX512BW-NEXT:    kshiftrw $6, %k2, %k31474; AVX512BW-NEXT:    korw %k3, %k1, %k11475; AVX512BW-NEXT:    movw $-1025, %ax # imm = 0xFBFF1476; AVX512BW-NEXT:    kmovd %eax, %k31477; AVX512BW-NEXT:    kmovw %k3, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill1478; AVX512BW-NEXT:    kandw %k3, %k1, %k11479; AVX512BW-NEXT:    kshiftrw $5, %k2, %k31480; AVX512BW-NEXT:    korw %k3, %k1, %k11481; AVX512BW-NEXT:    movw $-2049, %ax # imm = 0xF7FF1482; AVX512BW-NEXT:    kmovd %eax, %k31483; AVX512BW-NEXT:    kmovw %k3, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill1484; AVX512BW-NEXT:    kandw %k3, %k1, %k11485; AVX512BW-NEXT:    kshiftrw $4, %k2, %k21486; AVX512BW-NEXT:    korw %k2, %k1, %k11487; AVX512BW-NEXT:    movw $-4097, %ax # imm = 0xEFFF1488; AVX512BW-NEXT:    kmovd %eax, %k21489; AVX512BW-NEXT:    kmovw %k2, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill1490; AVX512BW-NEXT:    kandw %k2, %k1, %k11491; AVX512BW-NEXT:    kshiftrq $4, %k0, %k21492; AVX512BW-NEXT:    kshiftlw $15, %k2, %k31493; AVX512BW-NEXT:    kshiftrw $3, %k3, %k41494; AVX512BW-NEXT:    korw %k4, %k1, %k11495; AVX512BW-NEXT:    movw $-8193, %ax # imm = 0xDFFF1496; AVX512BW-NEXT:    kmovd %eax, %k61497; AVX512BW-NEXT:    kandw %k6, %k1, %k11498; AVX512BW-NEXT:    kmovw %k6, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill1499; AVX512BW-NEXT:    kshiftrw $2, %k3, %k31500; AVX512BW-NEXT:    korw %k3, %k1, %k11501; AVX512BW-NEXT:    movw $-16385, %ax # imm = 0xBFFF1502; AVX512BW-NEXT:    kmovd %eax, %k31503; AVX512BW-NEXT:    kmovw %k3, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill1504; AVX512BW-NEXT:    kandw %k3, %k1, %k11505; AVX512BW-NEXT:    kshiftlw $14, %k2, %k21506; AVX512BW-NEXT:    korw %k2, %k1, %k11507; AVX512BW-NEXT:    kshiftlw $1, %k1, %k11508; AVX512BW-NEXT:    kshiftrw $1, %k1, %k11509; AVX512BW-NEXT:    kshiftrq $5, %k0, %k21510; AVX512BW-NEXT:    kmovq %k2, {{[-0-9]+}}(%r{{[sb]}}p) # 8-byte Spill1511; AVX512BW-NEXT:    kshiftlw $15, %k2, %k21512; AVX512BW-NEXT:    kmovw %k2, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill1513; AVX512BW-NEXT:    korw %k2, %k1, %k11514; AVX512BW-NEXT:    vmovdqa32 (%rsi), %zmm0 {%k1} {z}1515; AVX512BW-NEXT:    kshiftrq $59, %k0, %k11516; AVX512BW-NEXT:    kshiftlw $15, %k1, %k21517; AVX512BW-NEXT:    kshiftrq $58, %k0, %k11518; AVX512BW-NEXT:    kmovq %k1, {{[-0-9]+}}(%r{{[sb]}}p) # 8-byte Spill1519; AVX512BW-NEXT:    kmovq %k7, %k31520; AVX512BW-NEXT:    kmovw %k7, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill1521; AVX512BW-NEXT:    kandw %k7, %k1, %k11522; AVX512BW-NEXT:    kshiftrw $14, %k2, %k71523; AVX512BW-NEXT:    korw %k7, %k1, %k11524; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload1525; AVX512BW-NEXT:    kandw %k4, %k1, %k11526; AVX512BW-NEXT:    kshiftrw $13, %k2, %k71527; AVX512BW-NEXT:    korw %k7, %k1, %k11528; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload1529; AVX512BW-NEXT:    kandw %k4, %k1, %k11530; AVX512BW-NEXT:    kshiftrw $12, %k2, %k21531; AVX512BW-NEXT:    korw %k2, %k1, %k11532; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload1533; AVX512BW-NEXT:    kandw %k4, %k1, %k11534; AVX512BW-NEXT:    kshiftrq $60, %k0, %k21535; AVX512BW-NEXT:    kshiftlw $15, %k2, %k21536; AVX512BW-NEXT:    kshiftrw $11, %k2, %k71537; AVX512BW-NEXT:    korw %k7, %k1, %k11538; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k7 # 2-byte Reload1539; AVX512BW-NEXT:    kandw %k7, %k1, %k11540; AVX512BW-NEXT:    kshiftrw $10, %k2, %k71541; AVX512BW-NEXT:    korw %k7, %k1, %k11542; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k7 # 2-byte Reload1543; AVX512BW-NEXT:    kandw %k7, %k1, %k11544; AVX512BW-NEXT:    kshiftrw $9, %k2, %k21545; AVX512BW-NEXT:    korw %k2, %k1, %k11546; AVX512BW-NEXT:    kandw %k5, %k1, %k11547; AVX512BW-NEXT:    kshiftrq $61, %k0, %k21548; AVX512BW-NEXT:    kshiftlw $15, %k2, %k21549; AVX512BW-NEXT:    kshiftrw $8, %k2, %k71550; AVX512BW-NEXT:    korw %k7, %k1, %k11551; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload1552; AVX512BW-NEXT:    kandw %k5, %k1, %k11553; AVX512BW-NEXT:    kshiftrw $7, %k2, %k71554; AVX512BW-NEXT:    korw %k7, %k1, %k11555; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k7 # 2-byte Reload1556; AVX512BW-NEXT:    kandw %k7, %k1, %k11557; AVX512BW-NEXT:    kshiftrw $6, %k2, %k21558; AVX512BW-NEXT:    korw %k2, %k1, %k11559; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload1560; AVX512BW-NEXT:    kandw %k2, %k1, %k11561; AVX512BW-NEXT:    kshiftrq $62, %k0, %k21562; AVX512BW-NEXT:    kshiftlw $15, %k2, %k21563; AVX512BW-NEXT:    kshiftrw $5, %k2, %k71564; AVX512BW-NEXT:    korw %k7, %k1, %k11565; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k7 # 2-byte Reload1566; AVX512BW-NEXT:    kandw %k7, %k1, %k11567; AVX512BW-NEXT:    kshiftrw $4, %k2, %k71568; AVX512BW-NEXT:    korw %k7, %k1, %k11569; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k7 # 2-byte Reload1570; AVX512BW-NEXT:    kandw %k7, %k1, %k11571; AVX512BW-NEXT:    kshiftrw $3, %k2, %k21572; AVX512BW-NEXT:    korw %k2, %k1, %k11573; AVX512BW-NEXT:    kandw %k6, %k1, %k11574; AVX512BW-NEXT:    kshiftrq $63, %k0, %k21575; AVX512BW-NEXT:    kshiftlw $15, %k2, %k71576; AVX512BW-NEXT:    kshiftrw $2, %k7, %k61577; AVX512BW-NEXT:    korw %k6, %k1, %k11578; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload1579; AVX512BW-NEXT:    kandw %k6, %k1, %k11580; AVX512BW-NEXT:    kshiftlw $14, %k2, %k21581; AVX512BW-NEXT:    korw %k2, %k1, %k11582; AVX512BW-NEXT:    kshiftlw $1, %k1, %k11583; AVX512BW-NEXT:    kshiftrw $1, %k1, %k11584; AVX512BW-NEXT:    korw %k7, %k1, %k11585; AVX512BW-NEXT:    vmovdqa32 704(%rsi), %zmm1 {%k1} {z}1586; AVX512BW-NEXT:    kshiftrq $53, %k0, %k11587; AVX512BW-NEXT:    kandw %k3, %k1, %k61588; AVX512BW-NEXT:    kshiftlw $15, %k1, %k11589; AVX512BW-NEXT:    kmovw %k1, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill1590; AVX512BW-NEXT:    kshiftrw $14, %k1, %k11591; AVX512BW-NEXT:    korw %k1, %k6, %k11592; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload1593; AVX512BW-NEXT:    kandw %k2, %k1, %k11594; AVX512BW-NEXT:    kshiftrq $54, %k0, %k61595; AVX512BW-NEXT:    kshiftlw $15, %k6, %k61596; AVX512BW-NEXT:    kshiftrw $13, %k6, %k71597; AVX512BW-NEXT:    korw %k7, %k1, %k11598; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload1599; AVX512BW-NEXT:    kandw %k2, %k1, %k11600; AVX512BW-NEXT:    kshiftrw $12, %k6, %k71601; AVX512BW-NEXT:    korw %k7, %k1, %k11602; AVX512BW-NEXT:    kandw %k4, %k1, %k11603; AVX512BW-NEXT:    kshiftrw $11, %k6, %k61604; AVX512BW-NEXT:    korw %k6, %k1, %k11605; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload1606; AVX512BW-NEXT:    kandw %k2, %k1, %k11607; AVX512BW-NEXT:    kshiftrq $55, %k0, %k61608; AVX512BW-NEXT:    kshiftlw $15, %k6, %k61609; AVX512BW-NEXT:    kshiftrw $10, %k6, %k71610; AVX512BW-NEXT:    korw %k7, %k1, %k11611; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload1612; AVX512BW-NEXT:    kandw %k2, %k1, %k11613; AVX512BW-NEXT:    kshiftrw $9, %k6, %k71614; AVX512BW-NEXT:    korw %k7, %k1, %k11615; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload1616; AVX512BW-NEXT:    kandw %k2, %k1, %k11617; AVX512BW-NEXT:    kshiftrw $8, %k6, %k61618; AVX512BW-NEXT:    korw %k6, %k1, %k11619; AVX512BW-NEXT:    kandw %k5, %k1, %k11620; AVX512BW-NEXT:    kshiftrq $56, %k0, %k61621; AVX512BW-NEXT:    kshiftlw $15, %k6, %k61622; AVX512BW-NEXT:    kshiftrw $7, %k6, %k71623; AVX512BW-NEXT:    korw %k7, %k1, %k11624; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload1625; AVX512BW-NEXT:    kandw %k5, %k1, %k11626; AVX512BW-NEXT:    kshiftrw $6, %k6, %k71627; AVX512BW-NEXT:    korw %k7, %k1, %k11628; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload1629; AVX512BW-NEXT:    kandw %k3, %k1, %k11630; AVX512BW-NEXT:    kshiftrw $5, %k6, %k61631; AVX512BW-NEXT:    korw %k6, %k1, %k11632; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload1633; AVX512BW-NEXT:    kandw %k3, %k1, %k11634; AVX512BW-NEXT:    kshiftrq $57, %k0, %k61635; AVX512BW-NEXT:    kshiftlw $15, %k6, %k61636; AVX512BW-NEXT:    kshiftrw $4, %k6, %k71637; AVX512BW-NEXT:    korw %k7, %k1, %k11638; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload1639; AVX512BW-NEXT:    kandw %k3, %k1, %k11640; AVX512BW-NEXT:    kshiftrw $3, %k6, %k71641; AVX512BW-NEXT:    korw %k7, %k1, %k11642; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload1643; AVX512BW-NEXT:    kandw %k3, %k1, %k11644; AVX512BW-NEXT:    kshiftrw $2, %k6, %k61645; AVX512BW-NEXT:    korw %k6, %k1, %k11646; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload1647; AVX512BW-NEXT:    kandw %k4, %k1, %k11648; AVX512BW-NEXT:    kmovq {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 8-byte Reload1649; AVX512BW-NEXT:    kshiftlw $14, %k3, %k61650; AVX512BW-NEXT:    korw %k6, %k1, %k11651; AVX512BW-NEXT:    kshiftlw $1, %k1, %k11652; AVX512BW-NEXT:    kshiftrw $1, %k1, %k11653; AVX512BW-NEXT:    kshiftlw $15, %k3, %k31654; AVX512BW-NEXT:    korw %k3, %k1, %k11655; AVX512BW-NEXT:    vmovdqa32 640(%rsi), %zmm2 {%k1} {z}1656; AVX512BW-NEXT:    kshiftrq $48, %k0, %k11657; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload1658; AVX512BW-NEXT:    kandw %k3, %k1, %k31659; AVX512BW-NEXT:    kshiftlw $15, %k1, %k11660; AVX512BW-NEXT:    kshiftrw $14, %k1, %k61661; AVX512BW-NEXT:    korw %k6, %k3, %k31662; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload1663; AVX512BW-NEXT:    kandw %k6, %k3, %k31664; AVX512BW-NEXT:    kshiftrw $13, %k1, %k11665; AVX512BW-NEXT:    korw %k1, %k3, %k11666; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload1667; AVX512BW-NEXT:    kandw %k3, %k1, %k11668; AVX512BW-NEXT:    kshiftrq $49, %k0, %k31669; AVX512BW-NEXT:    kshiftlw $15, %k3, %k31670; AVX512BW-NEXT:    kshiftrw $12, %k3, %k61671; AVX512BW-NEXT:    korw %k6, %k1, %k11672; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload1673; AVX512BW-NEXT:    kandw %k6, %k1, %k11674; AVX512BW-NEXT:    kshiftrw $11, %k3, %k61675; AVX512BW-NEXT:    korw %k6, %k1, %k11676; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload1677; AVX512BW-NEXT:    kandw %k6, %k1, %k11678; AVX512BW-NEXT:    kshiftrw $10, %k3, %k31679; AVX512BW-NEXT:    korw %k3, %k1, %k11680; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload1681; AVX512BW-NEXT:    kandw %k3, %k1, %k11682; AVX512BW-NEXT:    kshiftrq $50, %k0, %k31683; AVX512BW-NEXT:    kshiftlw $15, %k3, %k31684; AVX512BW-NEXT:    kshiftrw $9, %k3, %k61685; AVX512BW-NEXT:    korw %k6, %k1, %k11686; AVX512BW-NEXT:    kandw %k2, %k1, %k11687; AVX512BW-NEXT:    kshiftrw $8, %k3, %k61688; AVX512BW-NEXT:    korw %k6, %k1, %k11689; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload1690; AVX512BW-NEXT:    kandw %k2, %k1, %k11691; AVX512BW-NEXT:    kshiftrw $7, %k3, %k31692; AVX512BW-NEXT:    korw %k3, %k1, %k11693; AVX512BW-NEXT:    kandw %k5, %k1, %k11694; AVX512BW-NEXT:    kshiftrq $51, %k0, %k31695; AVX512BW-NEXT:    kshiftlw $15, %k3, %k31696; AVX512BW-NEXT:    kshiftrw $6, %k3, %k61697; AVX512BW-NEXT:    korw %k6, %k1, %k11698; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload1699; AVX512BW-NEXT:    kandw %k5, %k1, %k11700; AVX512BW-NEXT:    kshiftrw $5, %k3, %k61701; AVX512BW-NEXT:    korw %k6, %k1, %k11702; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload1703; AVX512BW-NEXT:    kandw %k2, %k1, %k11704; AVX512BW-NEXT:    kshiftrw $4, %k3, %k31705; AVX512BW-NEXT:    korw %k3, %k1, %k11706; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload1707; AVX512BW-NEXT:    kandw %k2, %k1, %k11708; AVX512BW-NEXT:    kshiftrq $52, %k0, %k31709; AVX512BW-NEXT:    kshiftlw $15, %k3, %k61710; AVX512BW-NEXT:    kshiftrw $3, %k6, %k71711; AVX512BW-NEXT:    korw %k7, %k1, %k11712; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k7 # 2-byte Reload1713; AVX512BW-NEXT:    kandw %k7, %k1, %k11714; AVX512BW-NEXT:    kshiftrw $2, %k6, %k61715; AVX512BW-NEXT:    korw %k6, %k1, %k11716; AVX512BW-NEXT:    kandw %k4, %k1, %k11717; AVX512BW-NEXT:    kshiftlw $14, %k3, %k31718; AVX512BW-NEXT:    korw %k3, %k1, %k11719; AVX512BW-NEXT:    kshiftlw $1, %k1, %k11720; AVX512BW-NEXT:    kshiftrw $1, %k1, %k11721; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload1722; AVX512BW-NEXT:    korw %k2, %k1, %k11723; AVX512BW-NEXT:    vmovdqa32 576(%rsi), %zmm3 {%k1} {z}1724; AVX512BW-NEXT:    kshiftrq $43, %k0, %k11725; AVX512BW-NEXT:    kshiftlw $15, %k1, %k21726; AVX512BW-NEXT:    kshiftrq $42, %k0, %k11727; AVX512BW-NEXT:    kmovq %k1, {{[-0-9]+}}(%r{{[sb]}}p) # 8-byte Spill1728; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload1729; AVX512BW-NEXT:    kandw %k4, %k1, %k31730; AVX512BW-NEXT:    kshiftrw $14, %k2, %k61731; AVX512BW-NEXT:    korw %k6, %k3, %k31732; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload1733; AVX512BW-NEXT:    kandw %k1, %k3, %k31734; AVX512BW-NEXT:    kshiftrw $13, %k2, %k61735; AVX512BW-NEXT:    korw %k6, %k3, %k31736; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload1737; AVX512BW-NEXT:    kandw %k1, %k3, %k31738; AVX512BW-NEXT:    kshiftrw $12, %k2, %k21739; AVX512BW-NEXT:    korw %k2, %k3, %k21740; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload1741; AVX512BW-NEXT:    kandw %k1, %k2, %k21742; AVX512BW-NEXT:    kshiftrq $44, %k0, %k31743; AVX512BW-NEXT:    kshiftlw $15, %k3, %k31744; AVX512BW-NEXT:    kshiftrw $11, %k3, %k61745; AVX512BW-NEXT:    korw %k6, %k2, %k21746; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload1747; AVX512BW-NEXT:    kandw %k1, %k2, %k21748; AVX512BW-NEXT:    kshiftrw $10, %k3, %k61749; AVX512BW-NEXT:    korw %k6, %k2, %k21750; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload1751; AVX512BW-NEXT:    kandw %k6, %k2, %k21752; AVX512BW-NEXT:    kshiftrw $9, %k3, %k31753; AVX512BW-NEXT:    korw %k3, %k2, %k21754; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload1755; AVX512BW-NEXT:    kandw %k3, %k2, %k21756; AVX512BW-NEXT:    kshiftrq $45, %k0, %k31757; AVX512BW-NEXT:    kshiftlw $15, %k3, %k31758; AVX512BW-NEXT:    kshiftrw $8, %k3, %k61759; AVX512BW-NEXT:    korw %k6, %k2, %k21760; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload1761; AVX512BW-NEXT:    kandw %k6, %k2, %k21762; AVX512BW-NEXT:    kshiftrw $7, %k3, %k61763; AVX512BW-NEXT:    korw %k6, %k2, %k21764; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload1765; AVX512BW-NEXT:    kandw %k6, %k2, %k21766; AVX512BW-NEXT:    kshiftrw $6, %k3, %k31767; AVX512BW-NEXT:    korw %k3, %k2, %k21768; AVX512BW-NEXT:    kandw %k5, %k2, %k21769; AVX512BW-NEXT:    kshiftrq $46, %k0, %k31770; AVX512BW-NEXT:    kshiftlw $15, %k3, %k31771; AVX512BW-NEXT:    kshiftrw $5, %k3, %k61772; AVX512BW-NEXT:    korw %k6, %k2, %k21773; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload1774; AVX512BW-NEXT:    kandw %k5, %k2, %k21775; AVX512BW-NEXT:    kshiftrw $4, %k3, %k61776; AVX512BW-NEXT:    korw %k6, %k2, %k21777; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload1778; AVX512BW-NEXT:    kandw %k6, %k2, %k21779; AVX512BW-NEXT:    kshiftrw $3, %k3, %k31780; AVX512BW-NEXT:    korw %k3, %k2, %k21781; AVX512BW-NEXT:    kandw %k7, %k2, %k21782; AVX512BW-NEXT:    kshiftrq $47, %k0, %k31783; AVX512BW-NEXT:    kshiftlw $15, %k3, %k61784; AVX512BW-NEXT:    kshiftrw $2, %k6, %k71785; AVX512BW-NEXT:    korw %k7, %k2, %k21786; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k7 # 2-byte Reload1787; AVX512BW-NEXT:    kandw %k7, %k2, %k21788; AVX512BW-NEXT:    kshiftlw $14, %k3, %k31789; AVX512BW-NEXT:    korw %k3, %k2, %k21790; AVX512BW-NEXT:    kshiftlw $1, %k2, %k21791; AVX512BW-NEXT:    kshiftrw $1, %k2, %k21792; AVX512BW-NEXT:    korw %k6, %k2, %k21793; AVX512BW-NEXT:    vmovdqa32 512(%rsi), %zmm4 {%k2} {z}1794; AVX512BW-NEXT:    kshiftrq $37, %k0, %k21795; AVX512BW-NEXT:    kandw %k4, %k2, %k31796; AVX512BW-NEXT:    kshiftlw $15, %k2, %k21797; AVX512BW-NEXT:    kmovw %k2, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill1798; AVX512BW-NEXT:    kshiftrw $14, %k2, %k61799; AVX512BW-NEXT:    korw %k6, %k3, %k31800; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload1801; AVX512BW-NEXT:    kandw %k2, %k3, %k31802; AVX512BW-NEXT:    kshiftrq $38, %k0, %k61803; AVX512BW-NEXT:    kshiftlw $15, %k6, %k61804; AVX512BW-NEXT:    kshiftrw $13, %k6, %k71805; AVX512BW-NEXT:    korw %k7, %k3, %k31806; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload1807; AVX512BW-NEXT:    kandw %k4, %k3, %k31808; AVX512BW-NEXT:    kshiftrw $12, %k6, %k71809; AVX512BW-NEXT:    korw %k7, %k3, %k31810; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload1811; AVX512BW-NEXT:    kandw %k2, %k3, %k31812; AVX512BW-NEXT:    kshiftrw $11, %k6, %k61813; AVX512BW-NEXT:    korw %k6, %k3, %k31814; AVX512BW-NEXT:    kandw %k1, %k3, %k31815; AVX512BW-NEXT:    kshiftrq $39, %k0, %k61816; AVX512BW-NEXT:    kshiftlw $15, %k6, %k61817; AVX512BW-NEXT:    kshiftrw $10, %k6, %k71818; AVX512BW-NEXT:    korw %k7, %k3, %k31819; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload1820; AVX512BW-NEXT:    kandw %k2, %k3, %k31821; AVX512BW-NEXT:    kshiftrw $9, %k6, %k71822; AVX512BW-NEXT:    korw %k7, %k3, %k31823; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload1824; AVX512BW-NEXT:    kandw %k1, %k3, %k31825; AVX512BW-NEXT:    kshiftrw $8, %k6, %k61826; AVX512BW-NEXT:    korw %k6, %k3, %k31827; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload1828; AVX512BW-NEXT:    kandw %k1, %k3, %k31829; AVX512BW-NEXT:    kshiftrq $40, %k0, %k61830; AVX512BW-NEXT:    kshiftlw $15, %k6, %k61831; AVX512BW-NEXT:    kshiftrw $7, %k6, %k71832; AVX512BW-NEXT:    korw %k7, %k3, %k31833; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload1834; AVX512BW-NEXT:    kandw %k1, %k3, %k31835; AVX512BW-NEXT:    kshiftrw $6, %k6, %k71836; AVX512BW-NEXT:    korw %k7, %k3, %k31837; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload1838; AVX512BW-NEXT:    kandw %k1, %k3, %k31839; AVX512BW-NEXT:    kshiftrw $5, %k6, %k61840; AVX512BW-NEXT:    korw %k6, %k3, %k31841; AVX512BW-NEXT:    kandw %k5, %k3, %k31842; AVX512BW-NEXT:    kshiftrq $41, %k0, %k61843; AVX512BW-NEXT:    kshiftlw $15, %k6, %k61844; AVX512BW-NEXT:    kshiftrw $4, %k6, %k71845; AVX512BW-NEXT:    korw %k7, %k3, %k31846; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload1847; AVX512BW-NEXT:    kandw %k5, %k3, %k31848; AVX512BW-NEXT:    kshiftrw $3, %k6, %k71849; AVX512BW-NEXT:    korw %k7, %k3, %k31850; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload1851; AVX512BW-NEXT:    kandw %k1, %k3, %k31852; AVX512BW-NEXT:    kshiftrw $2, %k6, %k61853; AVX512BW-NEXT:    korw %k6, %k3, %k31854; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload1855; AVX512BW-NEXT:    kandw %k1, %k3, %k31856; AVX512BW-NEXT:    kmovq {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 8-byte Reload1857; AVX512BW-NEXT:    kshiftlw $14, %k1, %k61858; AVX512BW-NEXT:    korw %k6, %k3, %k31859; AVX512BW-NEXT:    kshiftlw $1, %k3, %k31860; AVX512BW-NEXT:    kshiftrw $1, %k3, %k31861; AVX512BW-NEXT:    kshiftlw $15, %k1, %k11862; AVX512BW-NEXT:    korw %k1, %k3, %k11863; AVX512BW-NEXT:    vmovdqa32 448(%rsi), %zmm5 {%k1} {z}1864; AVX512BW-NEXT:    kshiftrq $32, %k0, %k11865; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload1866; AVX512BW-NEXT:    kandw %k3, %k1, %k31867; AVX512BW-NEXT:    kshiftlw $15, %k1, %k11868; AVX512BW-NEXT:    kshiftrw $14, %k1, %k61869; AVX512BW-NEXT:    korw %k6, %k3, %k31870; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload1871; AVX512BW-NEXT:    kandw %k6, %k3, %k31872; AVX512BW-NEXT:    kshiftrw $13, %k1, %k11873; AVX512BW-NEXT:    korw %k1, %k3, %k11874; AVX512BW-NEXT:    kandw %k4, %k1, %k11875; AVX512BW-NEXT:    kshiftrq $33, %k0, %k31876; AVX512BW-NEXT:    kshiftlw $15, %k3, %k31877; AVX512BW-NEXT:    kshiftrw $12, %k3, %k61878; AVX512BW-NEXT:    korw %k6, %k1, %k11879; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload1880; AVX512BW-NEXT:    kandw %k4, %k1, %k11881; AVX512BW-NEXT:    kshiftrw $11, %k3, %k61882; AVX512BW-NEXT:    korw %k6, %k1, %k11883; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload1884; AVX512BW-NEXT:    kandw %k6, %k1, %k11885; AVX512BW-NEXT:    kshiftrw $10, %k3, %k31886; AVX512BW-NEXT:    korw %k3, %k1, %k11887; AVX512BW-NEXT:    kandw %k2, %k1, %k11888; AVX512BW-NEXT:    kshiftrq $34, %k0, %k31889; AVX512BW-NEXT:    kshiftlw $15, %k3, %k31890; AVX512BW-NEXT:    kshiftrw $9, %k3, %k61891; AVX512BW-NEXT:    korw %k6, %k1, %k11892; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload1893; AVX512BW-NEXT:    kandw %k2, %k1, %k11894; AVX512BW-NEXT:    kshiftrw $8, %k3, %k61895; AVX512BW-NEXT:    korw %k6, %k1, %k11896; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload1897; AVX512BW-NEXT:    kandw %k2, %k1, %k11898; AVX512BW-NEXT:    kshiftrw $7, %k3, %k31899; AVX512BW-NEXT:    korw %k3, %k1, %k11900; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload1901; AVX512BW-NEXT:    kandw %k2, %k1, %k11902; AVX512BW-NEXT:    kshiftrq $35, %k0, %k31903; AVX512BW-NEXT:    kshiftlw $15, %k3, %k31904; AVX512BW-NEXT:    kshiftrw $6, %k3, %k61905; AVX512BW-NEXT:    korw %k6, %k1, %k11906; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload1907; AVX512BW-NEXT:    kandw %k2, %k1, %k11908; AVX512BW-NEXT:    kshiftrw $5, %k3, %k61909; AVX512BW-NEXT:    korw %k6, %k1, %k11910; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload1911; AVX512BW-NEXT:    kandw %k2, %k1, %k11912; AVX512BW-NEXT:    kshiftrw $4, %k3, %k31913; AVX512BW-NEXT:    korw %k3, %k1, %k11914; AVX512BW-NEXT:    kandw %k5, %k1, %k11915; AVX512BW-NEXT:    kshiftrq $36, %k0, %k31916; AVX512BW-NEXT:    kshiftlw $15, %k3, %k61917; AVX512BW-NEXT:    kshiftrw $3, %k6, %k71918; AVX512BW-NEXT:    korw %k7, %k1, %k11919; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k7 # 2-byte Reload1920; AVX512BW-NEXT:    kandw %k7, %k1, %k11921; AVX512BW-NEXT:    kshiftrw $2, %k6, %k61922; AVX512BW-NEXT:    korw %k6, %k1, %k11923; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload1924; AVX512BW-NEXT:    kandw %k5, %k1, %k11925; AVX512BW-NEXT:    kshiftlw $14, %k3, %k31926; AVX512BW-NEXT:    korw %k3, %k1, %k11927; AVX512BW-NEXT:    kshiftlw $1, %k1, %k11928; AVX512BW-NEXT:    kshiftrw $1, %k1, %k11929; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload1930; AVX512BW-NEXT:    korw %k2, %k1, %k11931; AVX512BW-NEXT:    vmovdqa32 384(%rsi), %zmm6 {%k1} {z}1932; AVX512BW-NEXT:    kshiftrq $27, %k0, %k11933; AVX512BW-NEXT:    kshiftlw $15, %k1, %k21934; AVX512BW-NEXT:    kshiftrq $26, %k0, %k31935; AVX512BW-NEXT:    kmovq %k3, {{[-0-9]+}}(%r{{[sb]}}p) # 8-byte Spill1936; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload1937; AVX512BW-NEXT:    kandw %k1, %k3, %k31938; AVX512BW-NEXT:    kshiftrw $14, %k2, %k61939; AVX512BW-NEXT:    korw %k6, %k3, %k31940; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload1941; AVX512BW-NEXT:    kandw %k1, %k3, %k31942; AVX512BW-NEXT:    kshiftrw $13, %k2, %k61943; AVX512BW-NEXT:    korw %k6, %k3, %k31944; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload1945; AVX512BW-NEXT:    kandw %k1, %k3, %k31946; AVX512BW-NEXT:    kshiftrw $12, %k2, %k21947; AVX512BW-NEXT:    korw %k2, %k3, %k21948; AVX512BW-NEXT:    kandw %k4, %k2, %k21949; AVX512BW-NEXT:    kshiftrq $28, %k0, %k31950; AVX512BW-NEXT:    kshiftlw $15, %k3, %k31951; AVX512BW-NEXT:    kshiftrw $11, %k3, %k61952; AVX512BW-NEXT:    korw %k6, %k2, %k21953; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload1954; AVX512BW-NEXT:    kandw %k4, %k2, %k21955; AVX512BW-NEXT:    kshiftrw $10, %k3, %k61956; AVX512BW-NEXT:    korw %k6, %k2, %k21957; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload1958; AVX512BW-NEXT:    kandw %k1, %k2, %k21959; AVX512BW-NEXT:    kshiftrw $9, %k3, %k31960; AVX512BW-NEXT:    korw %k3, %k2, %k21961; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload1962; AVX512BW-NEXT:    kandw %k1, %k2, %k21963; AVX512BW-NEXT:    kshiftrq $29, %k0, %k31964; AVX512BW-NEXT:    kshiftlw $15, %k3, %k31965; AVX512BW-NEXT:    kshiftrw $8, %k3, %k61966; AVX512BW-NEXT:    korw %k6, %k2, %k21967; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload1968; AVX512BW-NEXT:    kandw %k1, %k2, %k21969; AVX512BW-NEXT:    kshiftrw $7, %k3, %k61970; AVX512BW-NEXT:    korw %k6, %k2, %k21971; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload1972; AVX512BW-NEXT:    kandw %k1, %k2, %k21973; AVX512BW-NEXT:    kshiftrw $6, %k3, %k31974; AVX512BW-NEXT:    korw %k3, %k2, %k21975; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload1976; AVX512BW-NEXT:    kandw %k1, %k2, %k21977; AVX512BW-NEXT:    kshiftrq $30, %k0, %k31978; AVX512BW-NEXT:    kshiftlw $15, %k3, %k31979; AVX512BW-NEXT:    kshiftrw $5, %k3, %k61980; AVX512BW-NEXT:    korw %k6, %k2, %k21981; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload1982; AVX512BW-NEXT:    kandw %k6, %k2, %k21983; AVX512BW-NEXT:    kshiftrw $4, %k3, %k61984; AVX512BW-NEXT:    korw %k6, %k2, %k21985; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload1986; AVX512BW-NEXT:    kandw %k6, %k2, %k21987; AVX512BW-NEXT:    kshiftrw $3, %k3, %k31988; AVX512BW-NEXT:    korw %k3, %k2, %k21989; AVX512BW-NEXT:    kandw %k7, %k2, %k21990; AVX512BW-NEXT:    kshiftrq $31, %k0, %k31991; AVX512BW-NEXT:    kshiftlw $15, %k3, %k61992; AVX512BW-NEXT:    kshiftrw $2, %k6, %k71993; AVX512BW-NEXT:    korw %k7, %k2, %k21994; AVX512BW-NEXT:    kandw %k5, %k2, %k21995; AVX512BW-NEXT:    kshiftlw $14, %k3, %k31996; AVX512BW-NEXT:    korw %k3, %k2, %k21997; AVX512BW-NEXT:    kshiftlw $1, %k2, %k21998; AVX512BW-NEXT:    kshiftrw $1, %k2, %k21999; AVX512BW-NEXT:    korw %k6, %k2, %k22000; AVX512BW-NEXT:    vmovdqa32 320(%rsi), %zmm7 {%k2} {z}2001; AVX512BW-NEXT:    kshiftrq $21, %k0, %k22002; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload2003; AVX512BW-NEXT:    kandw %k5, %k2, %k32004; AVX512BW-NEXT:    kshiftlw $15, %k2, %k22005; AVX512BW-NEXT:    kmovw %k2, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill2006; AVX512BW-NEXT:    kshiftrw $14, %k2, %k62007; AVX512BW-NEXT:    korw %k6, %k3, %k32008; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload2009; AVX512BW-NEXT:    kandw %k2, %k3, %k32010; AVX512BW-NEXT:    kshiftrq $22, %k0, %k62011; AVX512BW-NEXT:    kshiftlw $15, %k6, %k62012; AVX512BW-NEXT:    kshiftrw $13, %k6, %k72013; AVX512BW-NEXT:    korw %k7, %k3, %k32014; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload2015; AVX512BW-NEXT:    kandw %k2, %k3, %k32016; AVX512BW-NEXT:    kshiftrw $12, %k6, %k72017; AVX512BW-NEXT:    korw %k7, %k3, %k32018; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload2019; AVX512BW-NEXT:    kandw %k2, %k3, %k32020; AVX512BW-NEXT:    kshiftrw $11, %k6, %k62021; AVX512BW-NEXT:    korw %k6, %k3, %k32022; AVX512BW-NEXT:    kandw %k4, %k3, %k32023; AVX512BW-NEXT:    kshiftrq $23, %k0, %k62024; AVX512BW-NEXT:    kshiftlw $15, %k6, %k62025; AVX512BW-NEXT:    kshiftrw $10, %k6, %k72026; AVX512BW-NEXT:    korw %k7, %k3, %k32027; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload2028; AVX512BW-NEXT:    kandw %k4, %k3, %k32029; AVX512BW-NEXT:    kshiftrw $9, %k6, %k72030; AVX512BW-NEXT:    korw %k7, %k3, %k32031; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload2032; AVX512BW-NEXT:    kandw %k2, %k3, %k32033; AVX512BW-NEXT:    kshiftrw $8, %k6, %k62034; AVX512BW-NEXT:    korw %k6, %k3, %k32035; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload2036; AVX512BW-NEXT:    kandw %k2, %k3, %k32037; AVX512BW-NEXT:    kshiftrq $24, %k0, %k62038; AVX512BW-NEXT:    kshiftlw $15, %k6, %k62039; AVX512BW-NEXT:    kshiftrw $7, %k6, %k72040; AVX512BW-NEXT:    korw %k7, %k3, %k32041; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k7 # 2-byte Reload2042; AVX512BW-NEXT:    kandw %k7, %k3, %k32043; AVX512BW-NEXT:    kshiftrw $6, %k6, %k72044; AVX512BW-NEXT:    korw %k7, %k3, %k32045; AVX512BW-NEXT:    kandw %k1, %k3, %k32046; AVX512BW-NEXT:    kshiftrw $5, %k6, %k62047; AVX512BW-NEXT:    korw %k6, %k3, %k32048; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload2049; AVX512BW-NEXT:    kandw %k1, %k3, %k32050; AVX512BW-NEXT:    kshiftrq $25, %k0, %k62051; AVX512BW-NEXT:    kshiftlw $15, %k6, %k62052; AVX512BW-NEXT:    kshiftrw $4, %k6, %k72053; AVX512BW-NEXT:    korw %k7, %k3, %k32054; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload2055; AVX512BW-NEXT:    kandw %k1, %k3, %k32056; AVX512BW-NEXT:    kshiftrw $3, %k6, %k72057; AVX512BW-NEXT:    korw %k7, %k3, %k32058; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload2059; AVX512BW-NEXT:    kandw %k1, %k3, %k32060; AVX512BW-NEXT:    kshiftrw $2, %k6, %k62061; AVX512BW-NEXT:    korw %k6, %k3, %k32062; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload2063; AVX512BW-NEXT:    kandw %k1, %k3, %k32064; AVX512BW-NEXT:    kmovq {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 8-byte Reload2065; AVX512BW-NEXT:    kshiftlw $14, %k1, %k62066; AVX512BW-NEXT:    korw %k6, %k3, %k32067; AVX512BW-NEXT:    kshiftlw $1, %k3, %k32068; AVX512BW-NEXT:    kshiftrw $1, %k3, %k32069; AVX512BW-NEXT:    kshiftlw $15, %k1, %k12070; AVX512BW-NEXT:    korw %k1, %k3, %k12071; AVX512BW-NEXT:    vmovdqa32 256(%rsi), %zmm8 {%k1} {z}2072; AVX512BW-NEXT:    kshiftrq $16, %k0, %k12073; AVX512BW-NEXT:    kandw %k5, %k1, %k32074; AVX512BW-NEXT:    kshiftlw $15, %k1, %k12075; AVX512BW-NEXT:    kshiftrw $14, %k1, %k62076; AVX512BW-NEXT:    korw %k6, %k3, %k32077; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload2078; AVX512BW-NEXT:    kandw %k5, %k3, %k32079; AVX512BW-NEXT:    kshiftrw $13, %k1, %k12080; AVX512BW-NEXT:    korw %k1, %k3, %k12081; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload2082; AVX512BW-NEXT:    kandw %k3, %k1, %k12083; AVX512BW-NEXT:    kshiftrq $17, %k0, %k32084; AVX512BW-NEXT:    kshiftlw $15, %k3, %k32085; AVX512BW-NEXT:    kshiftrw $12, %k3, %k62086; AVX512BW-NEXT:    korw %k6, %k1, %k12087; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload2088; AVX512BW-NEXT:    kandw %k5, %k1, %k12089; AVX512BW-NEXT:    kshiftrw $11, %k3, %k62090; AVX512BW-NEXT:    korw %k6, %k1, %k12091; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload2092; AVX512BW-NEXT:    kandw %k5, %k1, %k12093; AVX512BW-NEXT:    kshiftrw $10, %k3, %k32094; AVX512BW-NEXT:    korw %k3, %k1, %k12095; AVX512BW-NEXT:    kandw %k4, %k1, %k12096; AVX512BW-NEXT:    kshiftrq $18, %k0, %k32097; AVX512BW-NEXT:    kshiftlw $15, %k3, %k32098; AVX512BW-NEXT:    kshiftrw $9, %k3, %k62099; AVX512BW-NEXT:    korw %k6, %k1, %k12100; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload2101; AVX512BW-NEXT:    kandw %k4, %k1, %k12102; AVX512BW-NEXT:    kshiftrw $8, %k3, %k62103; AVX512BW-NEXT:    korw %k6, %k1, %k12104; AVX512BW-NEXT:    kandw %k2, %k1, %k12105; AVX512BW-NEXT:    kshiftrw $7, %k3, %k32106; AVX512BW-NEXT:    korw %k3, %k1, %k12107; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload2108; AVX512BW-NEXT:    kandw %k5, %k1, %k12109; AVX512BW-NEXT:    kshiftrq $19, %k0, %k32110; AVX512BW-NEXT:    kshiftlw $15, %k3, %k32111; AVX512BW-NEXT:    kshiftrw $6, %k3, %k62112; AVX512BW-NEXT:    korw %k6, %k1, %k12113; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload2114; AVX512BW-NEXT:    kandw %k2, %k1, %k12115; AVX512BW-NEXT:    kshiftrw $5, %k3, %k62116; AVX512BW-NEXT:    korw %k6, %k1, %k12117; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload2118; AVX512BW-NEXT:    kandw %k2, %k1, %k12119; AVX512BW-NEXT:    kshiftrw $4, %k3, %k32120; AVX512BW-NEXT:    korw %k3, %k1, %k12121; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload2122; AVX512BW-NEXT:    kandw %k2, %k1, %k12123; AVX512BW-NEXT:    kshiftrq $20, %k0, %k32124; AVX512BW-NEXT:    kshiftlw $15, %k3, %k62125; AVX512BW-NEXT:    kshiftrw $3, %k6, %k72126; AVX512BW-NEXT:    korw %k7, %k1, %k12127; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k7 # 2-byte Reload2128; AVX512BW-NEXT:    kandw %k7, %k1, %k12129; AVX512BW-NEXT:    kshiftrw $2, %k6, %k62130; AVX512BW-NEXT:    korw %k6, %k1, %k12131; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload2132; AVX512BW-NEXT:    kandw %k2, %k1, %k12133; AVX512BW-NEXT:    kshiftlw $14, %k3, %k32134; AVX512BW-NEXT:    korw %k3, %k1, %k12135; AVX512BW-NEXT:    kshiftlw $1, %k1, %k12136; AVX512BW-NEXT:    kshiftrw $1, %k1, %k12137; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload2138; AVX512BW-NEXT:    korw %k2, %k1, %k12139; AVX512BW-NEXT:    vmovdqa32 192(%rsi), %zmm9 {%k1} {z}2140; AVX512BW-NEXT:    kshiftrq $11, %k0, %k12141; AVX512BW-NEXT:    kshiftlw $15, %k1, %k22142; AVX512BW-NEXT:    kshiftrq $10, %k0, %k32143; AVX512BW-NEXT:    kmovq %k3, {{[-0-9]+}}(%r{{[sb]}}p) # 8-byte Spill2144; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload2145; AVX512BW-NEXT:    kandw %k1, %k3, %k32146; AVX512BW-NEXT:    kshiftrw $14, %k2, %k62147; AVX512BW-NEXT:    korw %k6, %k3, %k32148; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload2149; AVX512BW-NEXT:    kandw %k1, %k3, %k32150; AVX512BW-NEXT:    kshiftrw $13, %k2, %k62151; AVX512BW-NEXT:    korw %k6, %k3, %k32152; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload2153; AVX512BW-NEXT:    kandw %k1, %k3, %k32154; AVX512BW-NEXT:    kshiftrw $12, %k2, %k22155; AVX512BW-NEXT:    korw %k2, %k3, %k22156; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload2157; AVX512BW-NEXT:    kandw %k1, %k2, %k22158; AVX512BW-NEXT:    kshiftrq $12, %k0, %k32159; AVX512BW-NEXT:    kshiftlw $15, %k3, %k32160; AVX512BW-NEXT:    kshiftrw $11, %k3, %k62161; AVX512BW-NEXT:    korw %k6, %k2, %k22162; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload2163; AVX512BW-NEXT:    kandw %k1, %k2, %k22164; AVX512BW-NEXT:    kshiftrw $10, %k3, %k62165; AVX512BW-NEXT:    korw %k6, %k2, %k22166; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload2167; AVX512BW-NEXT:    kandw %k1, %k2, %k22168; AVX512BW-NEXT:    kshiftrw $9, %k3, %k32169; AVX512BW-NEXT:    korw %k3, %k2, %k22170; AVX512BW-NEXT:    kandw %k4, %k2, %k22171; AVX512BW-NEXT:    kshiftrq $13, %k0, %k32172; AVX512BW-NEXT:    kshiftlw $15, %k3, %k32173; AVX512BW-NEXT:    kshiftrw $8, %k3, %k62174; AVX512BW-NEXT:    korw %k6, %k2, %k22175; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload2176; AVX512BW-NEXT:    kandw %k1, %k2, %k22177; AVX512BW-NEXT:    kshiftrw $7, %k3, %k62178; AVX512BW-NEXT:    korw %k6, %k2, %k22179; AVX512BW-NEXT:    kandw %k5, %k2, %k22180; AVX512BW-NEXT:    kshiftrw $6, %k3, %k32181; AVX512BW-NEXT:    korw %k3, %k2, %k22182; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload2183; AVX512BW-NEXT:    kandw %k5, %k2, %k22184; AVX512BW-NEXT:    kshiftrq $14, %k0, %k32185; AVX512BW-NEXT:    kshiftlw $15, %k3, %k32186; AVX512BW-NEXT:    kshiftrw $5, %k3, %k62187; AVX512BW-NEXT:    korw %k6, %k2, %k22188; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload2189; AVX512BW-NEXT:    kandw %k1, %k2, %k22190; AVX512BW-NEXT:    kshiftrw $4, %k3, %k62191; AVX512BW-NEXT:    korw %k6, %k2, %k22192; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload2193; AVX512BW-NEXT:    kandw %k4, %k2, %k22194; AVX512BW-NEXT:    kshiftrw $3, %k3, %k32195; AVX512BW-NEXT:    korw %k3, %k2, %k22196; AVX512BW-NEXT:    kandw %k7, %k2, %k22197; AVX512BW-NEXT:    kshiftrq $15, %k0, %k32198; AVX512BW-NEXT:    kshiftlw $15, %k3, %k62199; AVX512BW-NEXT:    kshiftrw $2, %k6, %k72200; AVX512BW-NEXT:    korw %k7, %k2, %k22201; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k7 # 2-byte Reload2202; AVX512BW-NEXT:    kandw %k7, %k2, %k22203; AVX512BW-NEXT:    kshiftlw $14, %k3, %k32204; AVX512BW-NEXT:    korw %k3, %k2, %k22205; AVX512BW-NEXT:    kshiftlw $1, %k2, %k22206; AVX512BW-NEXT:    kshiftrw $1, %k2, %k22207; AVX512BW-NEXT:    korw %k6, %k2, %k22208; AVX512BW-NEXT:    vmovdqa32 128(%rsi), %zmm10 {%k2} {z}2209; AVX512BW-NEXT:    kmovq {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 8-byte Reload2210; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload2211; AVX512BW-NEXT:    kandw %k3, %k2, %k22212; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload2213; AVX512BW-NEXT:    kshiftrw $14, %k3, %k32214; AVX512BW-NEXT:    korw %k3, %k2, %k22215; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload2216; AVX512BW-NEXT:    kandw %k3, %k2, %k22217; AVX512BW-NEXT:    kshiftrq $6, %k0, %k32218; AVX512BW-NEXT:    kshiftlw $15, %k3, %k32219; AVX512BW-NEXT:    kshiftrw $13, %k3, %k62220; AVX512BW-NEXT:    korw %k6, %k2, %k22221; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload2222; AVX512BW-NEXT:    kandw %k6, %k2, %k22223; AVX512BW-NEXT:    kshiftrw $12, %k3, %k62224; AVX512BW-NEXT:    korw %k6, %k2, %k22225; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload2226; AVX512BW-NEXT:    kandw %k6, %k2, %k22227; AVX512BW-NEXT:    kshiftrw $11, %k3, %k32228; AVX512BW-NEXT:    korw %k3, %k2, %k22229; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload2230; AVX512BW-NEXT:    kandw %k3, %k2, %k22231; AVX512BW-NEXT:    kshiftrq $7, %k0, %k32232; AVX512BW-NEXT:    kshiftlw $15, %k3, %k32233; AVX512BW-NEXT:    kshiftrw $10, %k3, %k62234; AVX512BW-NEXT:    korw %k6, %k2, %k22235; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload2236; AVX512BW-NEXT:    kandw %k6, %k2, %k22237; AVX512BW-NEXT:    kshiftrw $9, %k3, %k62238; AVX512BW-NEXT:    korw %k6, %k2, %k22239; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload2240; AVX512BW-NEXT:    kandw %k6, %k2, %k22241; AVX512BW-NEXT:    kshiftrw $8, %k3, %k32242; AVX512BW-NEXT:    korw %k3, %k2, %k22243; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload2244; AVX512BW-NEXT:    kandw %k3, %k2, %k22245; AVX512BW-NEXT:    kshiftrq $8, %k0, %k32246; AVX512BW-NEXT:    kshiftlw $15, %k3, %k32247; AVX512BW-NEXT:    kshiftrw $7, %k3, %k62248; AVX512BW-NEXT:    korw %k6, %k2, %k22249; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload2250; AVX512BW-NEXT:    kandw %k6, %k2, %k22251; AVX512BW-NEXT:    kshiftrw $6, %k3, %k62252; AVX512BW-NEXT:    korw %k6, %k2, %k22253; AVX512BW-NEXT:    kandw %k5, %k2, %k22254; AVX512BW-NEXT:    kshiftrw $5, %k3, %k32255; AVX512BW-NEXT:    korw %k3, %k2, %k22256; AVX512BW-NEXT:    kshiftrq $9, %k0, %k02257; AVX512BW-NEXT:    kandw %k1, %k2, %k22258; AVX512BW-NEXT:    kshiftlw $15, %k0, %k02259; AVX512BW-NEXT:    kshiftrw $4, %k0, %k32260; AVX512BW-NEXT:    korw %k3, %k2, %k22261; AVX512BW-NEXT:    kandw %k4, %k2, %k22262; AVX512BW-NEXT:    kshiftrw $3, %k0, %k32263; AVX512BW-NEXT:    korw %k3, %k2, %k22264; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload2265; AVX512BW-NEXT:    kandw %k1, %k2, %k22266; AVX512BW-NEXT:    kshiftrw $2, %k0, %k02267; AVX512BW-NEXT:    korw %k0, %k2, %k02268; AVX512BW-NEXT:    kandw %k7, %k0, %k02269; AVX512BW-NEXT:    kmovq {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 8-byte Reload2270; AVX512BW-NEXT:    kshiftlw $14, %k1, %k22271; AVX512BW-NEXT:    korw %k2, %k0, %k02272; AVX512BW-NEXT:    kshiftlw $1, %k0, %k02273; AVX512BW-NEXT:    kshiftrw $1, %k0, %k02274; AVX512BW-NEXT:    kshiftlw $15, %k1, %k12275; AVX512BW-NEXT:    korw %k1, %k0, %k12276; AVX512BW-NEXT:    vmovdqa32 64(%rsi), %zmm11 {%k1} {z}2277; AVX512BW-NEXT:    vmovdqa64 %zmm11, 64(%rdx)2278; AVX512BW-NEXT:    vmovdqa64 %zmm10, 128(%rdx)2279; AVX512BW-NEXT:    vmovdqa64 %zmm9, 192(%rdx)2280; AVX512BW-NEXT:    vmovdqa64 %zmm8, 256(%rdx)2281; AVX512BW-NEXT:    vmovdqa64 %zmm7, 320(%rdx)2282; AVX512BW-NEXT:    vmovdqa64 %zmm6, 384(%rdx)2283; AVX512BW-NEXT:    vmovdqa64 %zmm5, 448(%rdx)2284; AVX512BW-NEXT:    vmovdqa64 %zmm4, 512(%rdx)2285; AVX512BW-NEXT:    vmovdqa64 %zmm3, 576(%rdx)2286; AVX512BW-NEXT:    vmovdqa64 %zmm2, 640(%rdx)2287; AVX512BW-NEXT:    vmovdqa64 %zmm1, 704(%rdx)2288; AVX512BW-NEXT:    vmovdqa64 %zmm0, (%rdx)2289; AVX512BW-NEXT:    vzeroupper2290; AVX512BW-NEXT:    retq2291  %src.mask = load <64 x i1>, ptr %in.maskvec, align 642292  %tgt.mask = shufflevector <64 x i1> %src.mask, <64 x i1> poison, <192 x i32> <i32 0, i32 0, i32 0, i32 1, i32 1, i32 1, i32 2, i32 2, i32 2, i32 3, i32 3, i32 3, i32 4, i32 4, i32 4, i32 5, i32 5, i32 5, i32 6, i32 6, i32 6, i32 7, i32 7, i32 7, i32 8, i32 8, i32 8, i32 9, i32 9, i32 9, i32 10, i32 10, i32 10, i32 11, i32 11, i32 11, i32 12, i32 12, i32 12, i32 13, i32 13, i32 13, i32 14, i32 14, i32 14, i32 15, i32 15, i32 15, i32 16, i32 16, i32 16, i32 17, i32 17, i32 17, i32 18, i32 18, i32 18, i32 19, i32 19, i32 19, i32 20, i32 20, i32 20, i32 21, i32 21, i32 21, i32 22, i32 22, i32 22, i32 23, i32 23, i32 23, i32 24, i32 24, i32 24, i32 25, i32 25, i32 25, i32 26, i32 26, i32 26, i32 27, i32 27, i32 27, i32 28, i32 28, i32 28, i32 29, i32 29, i32 29, i32 30, i32 30, i32 30, i32 31, i32 31, i32 31, i32 32, i32 32, i32 32, i32 33, i32 33, i32 33, i32 34, i32 34, i32 34, i32 35, i32 35, i32 35, i32 36, i32 36, i32 36, i32 37, i32 37, i32 37, i32 38, i32 38, i32 38, i32 39, i32 39, i32 39, i32 40, i32 40, i32 40, i32 41, i32 41, i32 41, i32 42, i32 42, i32 42, i32 43, i32 43, i32 43, i32 44, i32 44, i32 44, i32 45, i32 45, i32 45, i32 46, i32 46, i32 46, i32 47, i32 47, i32 47, i32 48, i32 48, i32 48, i32 49, i32 49, i32 49, i32 50, i32 50, i32 50, i32 51, i32 51, i32 51, i32 52, i32 52, i32 52, i32 53, i32 53, i32 53, i32 54, i32 54, i32 54, i32 55, i32 55, i32 55, i32 56, i32 56, i32 56, i32 57, i32 57, i32 57, i32 58, i32 58, i32 58, i32 59, i32 59, i32 59, i32 60, i32 60, i32 60, i32 61, i32 61, i32 61, i32 62, i32 62, i32 62, i32 63, i32 63, i32 63>2293  %data = call <192 x i32> @llvm.masked.load.v192i32.p0(ptr %in.vec, i32 64, <192 x i1> %tgt.mask, <192 x i32> poison)2294  store <192 x i32> %data, ptr %out.vec, align 642295  ret void2296}2297 2298define void @mask_replication_factor4_vf2(ptr %in.maskvec, ptr %in.vec, ptr %out.vec) nounwind {2299; AVX512F-SLOW-LABEL: mask_replication_factor4_vf2:2300; AVX512F-SLOW:       # %bb.0:2301; AVX512F-SLOW-NEXT:    kmovw (%rdi), %k12302; AVX512F-SLOW-NEXT:    vpcmpeqd %ymm0, %ymm0, %ymm02303; AVX512F-SLOW-NEXT:    vmovdqa32 %ymm0, %ymm0 {%k1} {z}2304; AVX512F-SLOW-NEXT:    vpmovsxdq %xmm0, %xmm02305; AVX512F-SLOW-NEXT:    vpermq {{.*#+}} ymm0 = ymm0[0,0,1,1]2306; AVX512F-SLOW-NEXT:    vptestmd %ymm0, %ymm0, %k12307; AVX512F-SLOW-NEXT:    vmovdqa32 (%rsi), %ymm0 {%k1} {z}2308; AVX512F-SLOW-NEXT:    vmovdqa %ymm0, (%rdx)2309; AVX512F-SLOW-NEXT:    vzeroupper2310; AVX512F-SLOW-NEXT:    retq2311;2312; AVX512F-FAST-LABEL: mask_replication_factor4_vf2:2313; AVX512F-FAST:       # %bb.0:2314; AVX512F-FAST-NEXT:    kmovw (%rdi), %k12315; AVX512F-FAST-NEXT:    vpcmpeqd %ymm0, %ymm0, %ymm02316; AVX512F-FAST-NEXT:    vmovdqa32 %ymm0, %ymm0 {%k1} {z}2317; AVX512F-FAST-NEXT:    vpmovsxbd {{.*#+}} ymm1 = [0,0,0,0,1,1,1,1]2318; AVX512F-FAST-NEXT:    vpermd %ymm0, %ymm1, %ymm02319; AVX512F-FAST-NEXT:    vptestmd %ymm0, %ymm0, %k12320; AVX512F-FAST-NEXT:    vmovdqa32 (%rsi), %ymm0 {%k1} {z}2321; AVX512F-FAST-NEXT:    vmovdqa %ymm0, (%rdx)2322; AVX512F-FAST-NEXT:    vzeroupper2323; AVX512F-FAST-NEXT:    retq2324;2325; AVX512DQ-SLOW-LABEL: mask_replication_factor4_vf2:2326; AVX512DQ-SLOW:       # %bb.0:2327; AVX512DQ-SLOW-NEXT:    kmovb (%rdi), %k02328; AVX512DQ-SLOW-NEXT:    vpmovm2d %k0, %ymm02329; AVX512DQ-SLOW-NEXT:    vpmovsxdq %xmm0, %xmm02330; AVX512DQ-SLOW-NEXT:    vpermq {{.*#+}} ymm0 = ymm0[0,0,1,1]2331; AVX512DQ-SLOW-NEXT:    vpmovd2m %ymm0, %k12332; AVX512DQ-SLOW-NEXT:    vmovdqa32 (%rsi), %ymm0 {%k1} {z}2333; AVX512DQ-SLOW-NEXT:    vmovdqa %ymm0, (%rdx)2334; AVX512DQ-SLOW-NEXT:    vzeroupper2335; AVX512DQ-SLOW-NEXT:    retq2336;2337; AVX512DQ-FAST-LABEL: mask_replication_factor4_vf2:2338; AVX512DQ-FAST:       # %bb.0:2339; AVX512DQ-FAST-NEXT:    kmovb (%rdi), %k02340; AVX512DQ-FAST-NEXT:    vpmovm2d %k0, %ymm02341; AVX512DQ-FAST-NEXT:    vpmovsxbd {{.*#+}} ymm1 = [0,0,0,0,1,1,1,1]2342; AVX512DQ-FAST-NEXT:    vpermd %ymm0, %ymm1, %ymm02343; AVX512DQ-FAST-NEXT:    vpmovd2m %ymm0, %k12344; AVX512DQ-FAST-NEXT:    vmovdqa32 (%rsi), %ymm0 {%k1} {z}2345; AVX512DQ-FAST-NEXT:    vmovdqa %ymm0, (%rdx)2346; AVX512DQ-FAST-NEXT:    vzeroupper2347; AVX512DQ-FAST-NEXT:    retq2348;2349; AVX512BW-SLOW-LABEL: mask_replication_factor4_vf2:2350; AVX512BW-SLOW:       # %bb.0:2351; AVX512BW-SLOW-NEXT:    kmovw (%rdi), %k12352; AVX512BW-SLOW-NEXT:    vpcmpeqd %ymm0, %ymm0, %ymm02353; AVX512BW-SLOW-NEXT:    vmovdqa32 %ymm0, %ymm0 {%k1} {z}2354; AVX512BW-SLOW-NEXT:    vpmovsxdq %xmm0, %xmm02355; AVX512BW-SLOW-NEXT:    vpermq {{.*#+}} ymm0 = ymm0[0,0,1,1]2356; AVX512BW-SLOW-NEXT:    vptestmd %ymm0, %ymm0, %k12357; AVX512BW-SLOW-NEXT:    vmovdqa32 (%rsi), %ymm0 {%k1} {z}2358; AVX512BW-SLOW-NEXT:    vmovdqa %ymm0, (%rdx)2359; AVX512BW-SLOW-NEXT:    vzeroupper2360; AVX512BW-SLOW-NEXT:    retq2361;2362; AVX512BW-FAST-LABEL: mask_replication_factor4_vf2:2363; AVX512BW-FAST:       # %bb.0:2364; AVX512BW-FAST-NEXT:    kmovw (%rdi), %k12365; AVX512BW-FAST-NEXT:    vpcmpeqd %ymm0, %ymm0, %ymm02366; AVX512BW-FAST-NEXT:    vmovdqa32 %ymm0, %ymm0 {%k1} {z}2367; AVX512BW-FAST-NEXT:    vpmovsxbd {{.*#+}} ymm1 = [0,0,0,0,1,1,1,1]2368; AVX512BW-FAST-NEXT:    vpermd %ymm0, %ymm1, %ymm02369; AVX512BW-FAST-NEXT:    vptestmd %ymm0, %ymm0, %k12370; AVX512BW-FAST-NEXT:    vmovdqa32 (%rsi), %ymm0 {%k1} {z}2371; AVX512BW-FAST-NEXT:    vmovdqa %ymm0, (%rdx)2372; AVX512BW-FAST-NEXT:    vzeroupper2373; AVX512BW-FAST-NEXT:    retq2374;2375; AVX512VBMI-SLOW-LABEL: mask_replication_factor4_vf2:2376; AVX512VBMI-SLOW:       # %bb.0:2377; AVX512VBMI-SLOW-NEXT:    kmovw (%rdi), %k12378; AVX512VBMI-SLOW-NEXT:    vpcmpeqd %ymm0, %ymm0, %ymm02379; AVX512VBMI-SLOW-NEXT:    vmovdqa32 %ymm0, %ymm0 {%k1} {z}2380; AVX512VBMI-SLOW-NEXT:    vpmovsxdq %xmm0, %xmm02381; AVX512VBMI-SLOW-NEXT:    vpermq {{.*#+}} ymm0 = ymm0[0,0,1,1]2382; AVX512VBMI-SLOW-NEXT:    vptestmd %ymm0, %ymm0, %k12383; AVX512VBMI-SLOW-NEXT:    vmovdqa32 (%rsi), %ymm0 {%k1} {z}2384; AVX512VBMI-SLOW-NEXT:    vmovdqa %ymm0, (%rdx)2385; AVX512VBMI-SLOW-NEXT:    vzeroupper2386; AVX512VBMI-SLOW-NEXT:    retq2387;2388; AVX512VBMI-FAST-LABEL: mask_replication_factor4_vf2:2389; AVX512VBMI-FAST:       # %bb.0:2390; AVX512VBMI-FAST-NEXT:    kmovw (%rdi), %k12391; AVX512VBMI-FAST-NEXT:    vpcmpeqd %ymm0, %ymm0, %ymm02392; AVX512VBMI-FAST-NEXT:    vmovdqa32 %ymm0, %ymm0 {%k1} {z}2393; AVX512VBMI-FAST-NEXT:    vpmovsxbd {{.*#+}} ymm1 = [0,0,0,0,1,1,1,1]2394; AVX512VBMI-FAST-NEXT:    vpermd %ymm0, %ymm1, %ymm02395; AVX512VBMI-FAST-NEXT:    vptestmd %ymm0, %ymm0, %k12396; AVX512VBMI-FAST-NEXT:    vmovdqa32 (%rsi), %ymm0 {%k1} {z}2397; AVX512VBMI-FAST-NEXT:    vmovdqa %ymm0, (%rdx)2398; AVX512VBMI-FAST-NEXT:    vzeroupper2399; AVX512VBMI-FAST-NEXT:    retq2400  %src.mask.padded = load <64 x i1>, ptr %in.maskvec, align 642401  %src.mask = shufflevector <64 x i1> %src.mask.padded, <64 x i1> poison, <2 x i32> <i32 0, i32 1>2402  %tgt.mask = shufflevector <2 x i1> %src.mask, <2 x i1> poison, <8 x i32> <i32 0, i32 0, i32 0, i32 0, i32 1, i32 1, i32 1, i32 1>2403  %data = call <8 x i32> @llvm.masked.load.v8i32.p0(ptr %in.vec, i32 64, <8 x i1> %tgt.mask, <8 x i32> poison)2404  %data.padded = shufflevector <8 x i32> %data, <8 x i32> poison, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>2405  store <8 x i32> %data, ptr %out.vec, align 642406  ret void2407}2408 2409define void @mask_replication_factor4_vf4(ptr %in.maskvec, ptr %in.vec, ptr %out.vec) nounwind {2410; AVX512F-ONLY-LABEL: mask_replication_factor4_vf4:2411; AVX512F-ONLY:       # %bb.0:2412; AVX512F-ONLY-NEXT:    kmovw (%rdi), %k12413; AVX512F-ONLY-NEXT:    vpternlogd {{.*#+}} zmm0 {%k1} {z} = -12414; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3]2415; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm1, %zmm02416; AVX512F-ONLY-NEXT:    vptestmd %zmm0, %zmm0, %k12417; AVX512F-ONLY-NEXT:    vmovdqa32 (%rsi), %zmm0 {%k1} {z}2418; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm0, (%rdx)2419; AVX512F-ONLY-NEXT:    vzeroupper2420; AVX512F-ONLY-NEXT:    retq2421;2422; AVX512DQ-LABEL: mask_replication_factor4_vf4:2423; AVX512DQ:       # %bb.0:2424; AVX512DQ-NEXT:    kmovw (%rdi), %k02425; AVX512DQ-NEXT:    vpmovm2d %k0, %zmm02426; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3]2427; AVX512DQ-NEXT:    vpermd %zmm0, %zmm1, %zmm02428; AVX512DQ-NEXT:    vpmovd2m %zmm0, %k12429; AVX512DQ-NEXT:    vmovdqa32 (%rsi), %zmm0 {%k1} {z}2430; AVX512DQ-NEXT:    vmovdqa64 %zmm0, (%rdx)2431; AVX512DQ-NEXT:    vzeroupper2432; AVX512DQ-NEXT:    retq2433;2434; AVX512BW-LABEL: mask_replication_factor4_vf4:2435; AVX512BW:       # %bb.0:2436; AVX512BW-NEXT:    kmovw (%rdi), %k12437; AVX512BW-NEXT:    vpternlogd {{.*#+}} zmm0 {%k1} {z} = -12438; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3]2439; AVX512BW-NEXT:    vpermd %zmm0, %zmm1, %zmm02440; AVX512BW-NEXT:    vptestmd %zmm0, %zmm0, %k12441; AVX512BW-NEXT:    vmovdqa32 (%rsi), %zmm0 {%k1} {z}2442; AVX512BW-NEXT:    vmovdqa64 %zmm0, (%rdx)2443; AVX512BW-NEXT:    vzeroupper2444; AVX512BW-NEXT:    retq2445  %src.mask.padded = load <64 x i1>, ptr %in.maskvec, align 642446  %src.mask = shufflevector <64 x i1> %src.mask.padded, <64 x i1> poison, <4 x i32> <i32 0, i32 1, i32 2, i32 3>2447  %tgt.mask = shufflevector <4 x i1> %src.mask, <4 x i1> poison, <16 x i32> <i32 0, i32 0, i32 0, i32 0, i32 1, i32 1, i32 1, i32 1, i32 2, i32 2, i32 2, i32 2, i32 3, i32 3, i32 3, i32 3>2448  %data = call <16 x i32> @llvm.masked.load.v16i32.p0(ptr %in.vec, i32 64, <16 x i1> %tgt.mask, <16 x i32> poison)2449  store <16 x i32> %data, ptr %out.vec, align 642450  ret void2451}2452 2453define void @mask_replication_factor4_vf8(ptr %in.maskvec, ptr %in.vec, ptr %out.vec) nounwind {2454; AVX512F-ONLY-LABEL: mask_replication_factor4_vf8:2455; AVX512F-ONLY:       # %bb.0:2456; AVX512F-ONLY-NEXT:    kmovw (%rdi), %k12457; AVX512F-ONLY-NEXT:    vpternlogd {{.*#+}} zmm0 {%k1} {z} = -12458; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [4,4,4,4,5,5,5,5,6,6,6,6,7,7,7,7]2459; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm1, %zmm12460; AVX512F-ONLY-NEXT:    vptestmd %zmm1, %zmm1, %k12461; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3]2462; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm1, %zmm02463; AVX512F-ONLY-NEXT:    vptestmd %zmm0, %zmm0, %k22464; AVX512F-ONLY-NEXT:    vmovdqa32 (%rsi), %zmm0 {%k2} {z}2465; AVX512F-ONLY-NEXT:    vmovdqa32 64(%rsi), %zmm1 {%k1} {z}2466; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm1, 64(%rdx)2467; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm0, (%rdx)2468; AVX512F-ONLY-NEXT:    vzeroupper2469; AVX512F-ONLY-NEXT:    retq2470;2471; AVX512DQ-LABEL: mask_replication_factor4_vf8:2472; AVX512DQ:       # %bb.0:2473; AVX512DQ-NEXT:    kmovb (%rdi), %k02474; AVX512DQ-NEXT:    vpmovm2d %k0, %zmm02475; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [4,4,4,4,5,5,5,5,6,6,6,6,7,7,7,7]2476; AVX512DQ-NEXT:    vpermd %zmm0, %zmm1, %zmm12477; AVX512DQ-NEXT:    vpmovd2m %zmm1, %k12478; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3]2479; AVX512DQ-NEXT:    vpermd %zmm0, %zmm1, %zmm02480; AVX512DQ-NEXT:    vpmovd2m %zmm0, %k22481; AVX512DQ-NEXT:    vmovdqa32 (%rsi), %zmm0 {%k2} {z}2482; AVX512DQ-NEXT:    vmovdqa32 64(%rsi), %zmm1 {%k1} {z}2483; AVX512DQ-NEXT:    vmovdqa64 %zmm1, 64(%rdx)2484; AVX512DQ-NEXT:    vmovdqa64 %zmm0, (%rdx)2485; AVX512DQ-NEXT:    vzeroupper2486; AVX512DQ-NEXT:    retq2487;2488; AVX512BW-LABEL: mask_replication_factor4_vf8:2489; AVX512BW:       # %bb.0:2490; AVX512BW-NEXT:    kmovw (%rdi), %k02491; AVX512BW-NEXT:    vpmovm2w %k0, %zmm02492; AVX512BW-NEXT:    vpmovsxwq %xmm0, %zmm02493; AVX512BW-NEXT:    vpmovw2m %zmm0, %k12494; AVX512BW-NEXT:    vmovdqa32 (%rsi), %zmm0 {%k1} {z}2495; AVX512BW-NEXT:    kshiftrd $16, %k1, %k12496; AVX512BW-NEXT:    vmovdqa32 64(%rsi), %zmm1 {%k1} {z}2497; AVX512BW-NEXT:    vmovdqa64 %zmm1, 64(%rdx)2498; AVX512BW-NEXT:    vmovdqa64 %zmm0, (%rdx)2499; AVX512BW-NEXT:    vzeroupper2500; AVX512BW-NEXT:    retq2501  %src.mask.padded = load <64 x i1>, ptr %in.maskvec, align 642502  %src.mask = shufflevector <64 x i1> %src.mask.padded, <64 x i1> poison, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>2503  %tgt.mask = shufflevector <8 x i1> %src.mask, <8 x i1> poison, <32 x i32> <i32 0, i32 0, i32 0, i32 0, i32 1, i32 1, i32 1, i32 1, i32 2, i32 2, i32 2, i32 2, i32 3, i32 3, i32 3, i32 3, i32 4, i32 4, i32 4, i32 4, i32 5, i32 5, i32 5, i32 5, i32 6, i32 6, i32 6, i32 6, i32 7, i32 7, i32 7, i32 7>2504  %data = call <32 x i32> @llvm.masked.load.v32i32.p0(ptr %in.vec, i32 64, <32 x i1> %tgt.mask, <32 x i32> poison)2505  store <32 x i32> %data, ptr %out.vec, align 642506  ret void2507}2508 2509define void @mask_replication_factor4_vf16(ptr %in.maskvec, ptr %in.vec, ptr %out.vec) nounwind {2510; AVX512F-ONLY-LABEL: mask_replication_factor4_vf16:2511; AVX512F-ONLY:       # %bb.0:2512; AVX512F-ONLY-NEXT:    kmovw (%rdi), %k12513; AVX512F-ONLY-NEXT:    vpternlogd {{.*#+}} zmm0 {%k1} {z} = -12514; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [8,8,8,8,9,9,9,9,10,10,10,10,11,11,11,11]2515; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm1, %zmm12516; AVX512F-ONLY-NEXT:    vptestmd %zmm1, %zmm1, %k12517; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [12,12,12,12,13,13,13,13,14,14,14,14,15,15,15,15]2518; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm1, %zmm12519; AVX512F-ONLY-NEXT:    vptestmd %zmm1, %zmm1, %k22520; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3]2521; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm1, %zmm12522; AVX512F-ONLY-NEXT:    vptestmd %zmm1, %zmm1, %k32523; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [4,4,4,4,5,5,5,5,6,6,6,6,7,7,7,7]2524; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm1, %zmm02525; AVX512F-ONLY-NEXT:    vptestmd %zmm0, %zmm0, %k42526; AVX512F-ONLY-NEXT:    vmovdqa32 64(%rsi), %zmm0 {%k4} {z}2527; AVX512F-ONLY-NEXT:    vmovdqa32 (%rsi), %zmm1 {%k3} {z}2528; AVX512F-ONLY-NEXT:    vmovdqa32 192(%rsi), %zmm2 {%k2} {z}2529; AVX512F-ONLY-NEXT:    vmovdqa32 128(%rsi), %zmm3 {%k1} {z}2530; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm3, 128(%rdx)2531; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm2, 192(%rdx)2532; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm1, (%rdx)2533; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm0, 64(%rdx)2534; AVX512F-ONLY-NEXT:    vzeroupper2535; AVX512F-ONLY-NEXT:    retq2536;2537; AVX512DQ-LABEL: mask_replication_factor4_vf16:2538; AVX512DQ:       # %bb.0:2539; AVX512DQ-NEXT:    kmovw (%rdi), %k02540; AVX512DQ-NEXT:    vpmovm2d %k0, %zmm02541; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [8,8,8,8,9,9,9,9,10,10,10,10,11,11,11,11]2542; AVX512DQ-NEXT:    vpermd %zmm0, %zmm1, %zmm12543; AVX512DQ-NEXT:    vpmovd2m %zmm1, %k12544; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [12,12,12,12,13,13,13,13,14,14,14,14,15,15,15,15]2545; AVX512DQ-NEXT:    vpermd %zmm0, %zmm1, %zmm12546; AVX512DQ-NEXT:    vpmovd2m %zmm1, %k22547; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3]2548; AVX512DQ-NEXT:    vpermd %zmm0, %zmm1, %zmm12549; AVX512DQ-NEXT:    vpmovd2m %zmm1, %k32550; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [4,4,4,4,5,5,5,5,6,6,6,6,7,7,7,7]2551; AVX512DQ-NEXT:    vpermd %zmm0, %zmm1, %zmm02552; AVX512DQ-NEXT:    vpmovd2m %zmm0, %k42553; AVX512DQ-NEXT:    vmovdqa32 64(%rsi), %zmm0 {%k4} {z}2554; AVX512DQ-NEXT:    vmovdqa32 (%rsi), %zmm1 {%k3} {z}2555; AVX512DQ-NEXT:    vmovdqa32 192(%rsi), %zmm2 {%k2} {z}2556; AVX512DQ-NEXT:    vmovdqa32 128(%rsi), %zmm3 {%k1} {z}2557; AVX512DQ-NEXT:    vmovdqa64 %zmm3, 128(%rdx)2558; AVX512DQ-NEXT:    vmovdqa64 %zmm2, 192(%rdx)2559; AVX512DQ-NEXT:    vmovdqa64 %zmm1, (%rdx)2560; AVX512DQ-NEXT:    vmovdqa64 %zmm0, 64(%rdx)2561; AVX512DQ-NEXT:    vzeroupper2562; AVX512DQ-NEXT:    retq2563;2564; AVX512BW-LABEL: mask_replication_factor4_vf16:2565; AVX512BW:       # %bb.0:2566; AVX512BW-NEXT:    kmovq (%rdi), %k02567; AVX512BW-NEXT:    vpmovm2b %k0, %zmm02568; AVX512BW-NEXT:    vpmovsxbd %xmm0, %zmm02569; AVX512BW-NEXT:    vpmovb2m %zmm0, %k12570; AVX512BW-NEXT:    kshiftrq $16, %k1, %k22571; AVX512BW-NEXT:    vmovdqa32 64(%rsi), %zmm0 {%k2} {z}2572; AVX512BW-NEXT:    vmovdqa32 (%rsi), %zmm1 {%k1} {z}2573; AVX512BW-NEXT:    kshiftrq $48, %k1, %k22574; AVX512BW-NEXT:    vmovdqa32 192(%rsi), %zmm2 {%k2} {z}2575; AVX512BW-NEXT:    kshiftrq $32, %k1, %k12576; AVX512BW-NEXT:    vmovdqa32 128(%rsi), %zmm3 {%k1} {z}2577; AVX512BW-NEXT:    vmovdqa64 %zmm3, 128(%rdx)2578; AVX512BW-NEXT:    vmovdqa64 %zmm2, 192(%rdx)2579; AVX512BW-NEXT:    vmovdqa64 %zmm1, (%rdx)2580; AVX512BW-NEXT:    vmovdqa64 %zmm0, 64(%rdx)2581; AVX512BW-NEXT:    vzeroupper2582; AVX512BW-NEXT:    retq2583  %src.mask.padded = load <64 x i1>, ptr %in.maskvec, align 642584  %src.mask = shufflevector <64 x i1> %src.mask.padded, <64 x i1> poison, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15>2585  %tgt.mask = shufflevector <16 x i1> %src.mask, <16 x i1> poison, <64 x i32> <i32 0, i32 0, i32 0, i32 0, i32 1, i32 1, i32 1, i32 1, i32 2, i32 2, i32 2, i32 2, i32 3, i32 3, i32 3, i32 3, i32 4, i32 4, i32 4, i32 4, i32 5, i32 5, i32 5, i32 5, i32 6, i32 6, i32 6, i32 6, i32 7, i32 7, i32 7, i32 7, i32 8, i32 8, i32 8, i32 8, i32 9, i32 9, i32 9, i32 9, i32 10, i32 10, i32 10, i32 10, i32 11, i32 11, i32 11, i32 11, i32 12, i32 12, i32 12, i32 12, i32 13, i32 13, i32 13, i32 13, i32 14, i32 14, i32 14, i32 14, i32 15, i32 15, i32 15, i32 15>2586  %data = call <64 x i32> @llvm.masked.load.v64i32.p0(ptr %in.vec, i32 64, <64 x i1> %tgt.mask, <64 x i32> poison)2587  store <64 x i32> %data, ptr %out.vec, align 642588  ret void2589}2590 2591define void @mask_replication_factor4_vf32(ptr %in.maskvec, ptr %in.vec, ptr %out.vec) nounwind {2592; AVX512F-ONLY-LABEL: mask_replication_factor4_vf32:2593; AVX512F-ONLY:       # %bb.0:2594; AVX512F-ONLY-NEXT:    kmovw (%rdi), %k42595; AVX512F-ONLY-NEXT:    kmovw 2(%rdi), %k12596; AVX512F-ONLY-NEXT:    vpternlogd {{.*#+}} zmm0 {%k1} {z} = -12597; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [8,8,8,8,9,9,9,9,10,10,10,10,11,11,11,11]2598; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm1, %zmm22599; AVX512F-ONLY-NEXT:    vptestmd %zmm2, %zmm2, %k12600; AVX512F-ONLY-NEXT:    kmovw %k1, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill2601; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm2 = [12,12,12,12,13,13,13,13,14,14,14,14,15,15,15,15]2602; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm2, %zmm32603; AVX512F-ONLY-NEXT:    vptestmd %zmm3, %zmm3, %k22604; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm3 = [0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3]2605; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm3, %zmm42606; AVX512F-ONLY-NEXT:    vptestmd %zmm4, %zmm4, %k32607; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm4 = [4,4,4,4,5,5,5,5,6,6,6,6,7,7,7,7]2608; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm4, %zmm02609; AVX512F-ONLY-NEXT:    vptestmd %zmm0, %zmm0, %k52610; AVX512F-ONLY-NEXT:    vpternlogd {{.*#+}} zmm0 {%k4} {z} = -12611; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm1, %zmm12612; AVX512F-ONLY-NEXT:    vptestmd %zmm1, %zmm1, %k42613; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm2, %zmm12614; AVX512F-ONLY-NEXT:    vptestmd %zmm1, %zmm1, %k62615; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm3, %zmm12616; AVX512F-ONLY-NEXT:    vptestmd %zmm1, %zmm1, %k72617; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm4, %zmm02618; AVX512F-ONLY-NEXT:    vptestmd %zmm0, %zmm0, %k12619; AVX512F-ONLY-NEXT:    vmovdqa32 64(%rsi), %zmm0 {%k1} {z}2620; AVX512F-ONLY-NEXT:    vmovdqa32 (%rsi), %zmm1 {%k7} {z}2621; AVX512F-ONLY-NEXT:    vmovdqa32 192(%rsi), %zmm2 {%k6} {z}2622; AVX512F-ONLY-NEXT:    vmovdqa32 128(%rsi), %zmm3 {%k4} {z}2623; AVX512F-ONLY-NEXT:    vmovdqa32 320(%rsi), %zmm4 {%k5} {z}2624; AVX512F-ONLY-NEXT:    vmovdqa32 256(%rsi), %zmm5 {%k3} {z}2625; AVX512F-ONLY-NEXT:    vmovdqa32 448(%rsi), %zmm6 {%k2} {z}2626; AVX512F-ONLY-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload2627; AVX512F-ONLY-NEXT:    vmovdqa32 384(%rsi), %zmm7 {%k1} {z}2628; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm7, 384(%rdx)2629; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm6, 448(%rdx)2630; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm5, 256(%rdx)2631; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm4, 320(%rdx)2632; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm3, 128(%rdx)2633; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm2, 192(%rdx)2634; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm1, (%rdx)2635; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm0, 64(%rdx)2636; AVX512F-ONLY-NEXT:    vzeroupper2637; AVX512F-ONLY-NEXT:    retq2638;2639; AVX512DQ-LABEL: mask_replication_factor4_vf32:2640; AVX512DQ:       # %bb.0:2641; AVX512DQ-NEXT:    kmovw (%rdi), %k02642; AVX512DQ-NEXT:    kmovw 2(%rdi), %k12643; AVX512DQ-NEXT:    vpmovm2d %k1, %zmm02644; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [8,8,8,8,9,9,9,9,10,10,10,10,11,11,11,11]2645; AVX512DQ-NEXT:    vpermd %zmm0, %zmm1, %zmm22646; AVX512DQ-NEXT:    vpmovd2m %zmm2, %k12647; AVX512DQ-NEXT:    kmovw %k1, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill2648; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm2 = [12,12,12,12,13,13,13,13,14,14,14,14,15,15,15,15]2649; AVX512DQ-NEXT:    vpermd %zmm0, %zmm2, %zmm32650; AVX512DQ-NEXT:    vpmovd2m %zmm3, %k22651; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm3 = [0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3]2652; AVX512DQ-NEXT:    vpermd %zmm0, %zmm3, %zmm42653; AVX512DQ-NEXT:    vpmovd2m %zmm4, %k32654; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm4 = [4,4,4,4,5,5,5,5,6,6,6,6,7,7,7,7]2655; AVX512DQ-NEXT:    vpermd %zmm0, %zmm4, %zmm02656; AVX512DQ-NEXT:    vpmovd2m %zmm0, %k42657; AVX512DQ-NEXT:    vpmovm2d %k0, %zmm02658; AVX512DQ-NEXT:    vpermd %zmm0, %zmm1, %zmm12659; AVX512DQ-NEXT:    vpmovd2m %zmm1, %k52660; AVX512DQ-NEXT:    vpermd %zmm0, %zmm2, %zmm12661; AVX512DQ-NEXT:    vpmovd2m %zmm1, %k62662; AVX512DQ-NEXT:    vpermd %zmm0, %zmm3, %zmm12663; AVX512DQ-NEXT:    vpmovd2m %zmm1, %k72664; AVX512DQ-NEXT:    vpermd %zmm0, %zmm4, %zmm02665; AVX512DQ-NEXT:    vpmovd2m %zmm0, %k12666; AVX512DQ-NEXT:    vmovdqa32 64(%rsi), %zmm0 {%k1} {z}2667; AVX512DQ-NEXT:    vmovdqa32 (%rsi), %zmm1 {%k7} {z}2668; AVX512DQ-NEXT:    vmovdqa32 192(%rsi), %zmm2 {%k6} {z}2669; AVX512DQ-NEXT:    vmovdqa32 128(%rsi), %zmm3 {%k5} {z}2670; AVX512DQ-NEXT:    vmovdqa32 320(%rsi), %zmm4 {%k4} {z}2671; AVX512DQ-NEXT:    vmovdqa32 256(%rsi), %zmm5 {%k3} {z}2672; AVX512DQ-NEXT:    vmovdqa32 448(%rsi), %zmm6 {%k2} {z}2673; AVX512DQ-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload2674; AVX512DQ-NEXT:    vmovdqa32 384(%rsi), %zmm7 {%k1} {z}2675; AVX512DQ-NEXT:    vmovdqa64 %zmm7, 384(%rdx)2676; AVX512DQ-NEXT:    vmovdqa64 %zmm6, 448(%rdx)2677; AVX512DQ-NEXT:    vmovdqa64 %zmm5, 256(%rdx)2678; AVX512DQ-NEXT:    vmovdqa64 %zmm4, 320(%rdx)2679; AVX512DQ-NEXT:    vmovdqa64 %zmm3, 128(%rdx)2680; AVX512DQ-NEXT:    vmovdqa64 %zmm2, 192(%rdx)2681; AVX512DQ-NEXT:    vmovdqa64 %zmm1, (%rdx)2682; AVX512DQ-NEXT:    vmovdqa64 %zmm0, 64(%rdx)2683; AVX512DQ-NEXT:    vzeroupper2684; AVX512DQ-NEXT:    retq2685;2686; AVX512BW-ONLY-LABEL: mask_replication_factor4_vf32:2687; AVX512BW-ONLY:       # %bb.0:2688; AVX512BW-ONLY-NEXT:    kmovd (%rdi), %k02689; AVX512BW-ONLY-NEXT:    vpmovm2b %k0, %zmm02690; AVX512BW-ONLY-NEXT:    vshufi64x2 {{.*#+}} zmm1 = zmm0[2,3,2,3,2,3,2,3]2691; AVX512BW-ONLY-NEXT:    vpshufb {{.*#+}} zmm1 = zmm1[0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,20,20,20,20,21,21,21,21,22,22,22,22,23,23,23,23,40,40,40,40,41,41,41,41,42,42,42,42,43,43,43,43,60,60,60,60,61,61,61,61,62,62,62,62,63,63,63,63]2692; AVX512BW-ONLY-NEXT:    vpmovb2m %zmm1, %k12693; AVX512BW-ONLY-NEXT:    vpmovsxbd %xmm0, %zmm02694; AVX512BW-ONLY-NEXT:    vpmovb2m %zmm0, %k22695; AVX512BW-ONLY-NEXT:    kshiftrq $16, %k2, %k32696; AVX512BW-ONLY-NEXT:    vmovdqa32 64(%rsi), %zmm0 {%k3} {z}2697; AVX512BW-ONLY-NEXT:    vmovdqa32 (%rsi), %zmm1 {%k2} {z}2698; AVX512BW-ONLY-NEXT:    kshiftrq $48, %k2, %k32699; AVX512BW-ONLY-NEXT:    vmovdqa32 192(%rsi), %zmm2 {%k3} {z}2700; AVX512BW-ONLY-NEXT:    kshiftrq $32, %k2, %k22701; AVX512BW-ONLY-NEXT:    vmovdqa32 128(%rsi), %zmm3 {%k2} {z}2702; AVX512BW-ONLY-NEXT:    kshiftrq $16, %k1, %k22703; AVX512BW-ONLY-NEXT:    vmovdqa32 320(%rsi), %zmm4 {%k2} {z}2704; AVX512BW-ONLY-NEXT:    vmovdqa32 256(%rsi), %zmm5 {%k1} {z}2705; AVX512BW-ONLY-NEXT:    kshiftrq $48, %k1, %k22706; AVX512BW-ONLY-NEXT:    vmovdqa32 448(%rsi), %zmm6 {%k2} {z}2707; AVX512BW-ONLY-NEXT:    kshiftrq $32, %k1, %k12708; AVX512BW-ONLY-NEXT:    vmovdqa32 384(%rsi), %zmm7 {%k1} {z}2709; AVX512BW-ONLY-NEXT:    vmovdqa64 %zmm7, 384(%rdx)2710; AVX512BW-ONLY-NEXT:    vmovdqa64 %zmm6, 448(%rdx)2711; AVX512BW-ONLY-NEXT:    vmovdqa64 %zmm5, 256(%rdx)2712; AVX512BW-ONLY-NEXT:    vmovdqa64 %zmm4, 320(%rdx)2713; AVX512BW-ONLY-NEXT:    vmovdqa64 %zmm3, 128(%rdx)2714; AVX512BW-ONLY-NEXT:    vmovdqa64 %zmm2, 192(%rdx)2715; AVX512BW-ONLY-NEXT:    vmovdqa64 %zmm1, (%rdx)2716; AVX512BW-ONLY-NEXT:    vmovdqa64 %zmm0, 64(%rdx)2717; AVX512BW-ONLY-NEXT:    vzeroupper2718; AVX512BW-ONLY-NEXT:    retq2719;2720; AVX512VBMI-ONLY-LABEL: mask_replication_factor4_vf32:2721; AVX512VBMI-ONLY:       # %bb.0:2722; AVX512VBMI-ONLY-NEXT:    kmovd (%rdi), %k02723; AVX512VBMI-ONLY-NEXT:    vpmovm2b %k0, %zmm02724; AVX512VBMI-ONLY-NEXT:    vmovdqa64 {{.*#+}} zmm1 = [16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,22,22,22,22,23,23,23,23,24,24,24,24,25,25,25,25,26,26,26,26,27,27,27,27,28,28,28,28,29,29,29,29,30,30,30,30,31,31,31,31]2725; AVX512VBMI-ONLY-NEXT:    vpermb %zmm0, %zmm1, %zmm12726; AVX512VBMI-ONLY-NEXT:    vpmovb2m %zmm1, %k12727; AVX512VBMI-ONLY-NEXT:    vpmovsxbd %xmm0, %zmm02728; AVX512VBMI-ONLY-NEXT:    vpmovb2m %zmm0, %k22729; AVX512VBMI-ONLY-NEXT:    kshiftrq $16, %k2, %k32730; AVX512VBMI-ONLY-NEXT:    vmovdqa32 64(%rsi), %zmm0 {%k3} {z}2731; AVX512VBMI-ONLY-NEXT:    vmovdqa32 (%rsi), %zmm1 {%k2} {z}2732; AVX512VBMI-ONLY-NEXT:    kshiftrq $48, %k2, %k32733; AVX512VBMI-ONLY-NEXT:    vmovdqa32 192(%rsi), %zmm2 {%k3} {z}2734; AVX512VBMI-ONLY-NEXT:    kshiftrq $32, %k2, %k22735; AVX512VBMI-ONLY-NEXT:    vmovdqa32 128(%rsi), %zmm3 {%k2} {z}2736; AVX512VBMI-ONLY-NEXT:    kshiftrq $16, %k1, %k22737; AVX512VBMI-ONLY-NEXT:    vmovdqa32 320(%rsi), %zmm4 {%k2} {z}2738; AVX512VBMI-ONLY-NEXT:    vmovdqa32 256(%rsi), %zmm5 {%k1} {z}2739; AVX512VBMI-ONLY-NEXT:    kshiftrq $48, %k1, %k22740; AVX512VBMI-ONLY-NEXT:    vmovdqa32 448(%rsi), %zmm6 {%k2} {z}2741; AVX512VBMI-ONLY-NEXT:    kshiftrq $32, %k1, %k12742; AVX512VBMI-ONLY-NEXT:    vmovdqa32 384(%rsi), %zmm7 {%k1} {z}2743; AVX512VBMI-ONLY-NEXT:    vmovdqa64 %zmm7, 384(%rdx)2744; AVX512VBMI-ONLY-NEXT:    vmovdqa64 %zmm6, 448(%rdx)2745; AVX512VBMI-ONLY-NEXT:    vmovdqa64 %zmm5, 256(%rdx)2746; AVX512VBMI-ONLY-NEXT:    vmovdqa64 %zmm4, 320(%rdx)2747; AVX512VBMI-ONLY-NEXT:    vmovdqa64 %zmm3, 128(%rdx)2748; AVX512VBMI-ONLY-NEXT:    vmovdqa64 %zmm2, 192(%rdx)2749; AVX512VBMI-ONLY-NEXT:    vmovdqa64 %zmm1, (%rdx)2750; AVX512VBMI-ONLY-NEXT:    vmovdqa64 %zmm0, 64(%rdx)2751; AVX512VBMI-ONLY-NEXT:    vzeroupper2752; AVX512VBMI-ONLY-NEXT:    retq2753  %src.mask.padded = load <64 x i1>, ptr %in.maskvec, align 642754  %src.mask = shufflevector <64 x i1> %src.mask.padded, <64 x i1> poison, <32 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31>2755  %tgt.mask = shufflevector <32 x i1> %src.mask, <32 x i1> poison, <128 x i32> <i32 0, i32 0, i32 0, i32 0, i32 1, i32 1, i32 1, i32 1, i32 2, i32 2, i32 2, i32 2, i32 3, i32 3, i32 3, i32 3, i32 4, i32 4, i32 4, i32 4, i32 5, i32 5, i32 5, i32 5, i32 6, i32 6, i32 6, i32 6, i32 7, i32 7, i32 7, i32 7, i32 8, i32 8, i32 8, i32 8, i32 9, i32 9, i32 9, i32 9, i32 10, i32 10, i32 10, i32 10, i32 11, i32 11, i32 11, i32 11, i32 12, i32 12, i32 12, i32 12, i32 13, i32 13, i32 13, i32 13, i32 14, i32 14, i32 14, i32 14, i32 15, i32 15, i32 15, i32 15, i32 16, i32 16, i32 16, i32 16, i32 17, i32 17, i32 17, i32 17, i32 18, i32 18, i32 18, i32 18, i32 19, i32 19, i32 19, i32 19, i32 20, i32 20, i32 20, i32 20, i32 21, i32 21, i32 21, i32 21, i32 22, i32 22, i32 22, i32 22, i32 23, i32 23, i32 23, i32 23, i32 24, i32 24, i32 24, i32 24, i32 25, i32 25, i32 25, i32 25, i32 26, i32 26, i32 26, i32 26, i32 27, i32 27, i32 27, i32 27, i32 28, i32 28, i32 28, i32 28, i32 29, i32 29, i32 29, i32 29, i32 30, i32 30, i32 30, i32 30, i32 31, i32 31, i32 31, i32 31>2756  %data = call <128 x i32> @llvm.masked.load.v128i32.p0(ptr %in.vec, i32 64, <128 x i1> %tgt.mask, <128 x i32> poison)2757  store <128 x i32> %data, ptr %out.vec, align 642758  ret void2759}2760 2761define void @mask_replication_factor4_vf64(ptr %in.maskvec, ptr %in.vec, ptr %out.vec) nounwind {2762; AVX512F-ONLY-LABEL: mask_replication_factor4_vf64:2763; AVX512F-ONLY:       # %bb.0:2764; AVX512F-ONLY-NEXT:    kmovw 6(%rdi), %k12765; AVX512F-ONLY-NEXT:    vpternlogd {{.*#+}} zmm0 {%k1} {z} = -12766; AVX512F-ONLY-NEXT:    kmovw 4(%rdi), %k12767; AVX512F-ONLY-NEXT:    vpternlogd {{.*#+}} zmm1 {%k1} {z} = -12768; AVX512F-ONLY-NEXT:    kmovw 2(%rdi), %k12769; AVX512F-ONLY-NEXT:    vpternlogd {{.*#+}} zmm2 {%k1} {z} = -12770; AVX512F-ONLY-NEXT:    kmovw (%rdi), %k12771; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm3 = [12,12,12,12,13,13,13,13,14,14,14,14,15,15,15,15]2772; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm3, %zmm42773; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm5 = [8,8,8,8,9,9,9,9,10,10,10,10,11,11,11,11]2774; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm5, %zmm62775; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm7 = [4,4,4,4,5,5,5,5,6,6,6,6,7,7,7,7]2776; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm7, %zmm82777; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm9 = [0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3]2778; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm9, %zmm02779; AVX512F-ONLY-NEXT:    vpermd %zmm1, %zmm3, %zmm102780; AVX512F-ONLY-NEXT:    vpermd %zmm1, %zmm5, %zmm112781; AVX512F-ONLY-NEXT:    vpermd %zmm1, %zmm7, %zmm122782; AVX512F-ONLY-NEXT:    vpermd %zmm1, %zmm9, %zmm12783; AVX512F-ONLY-NEXT:    vpermd %zmm2, %zmm3, %zmm132784; AVX512F-ONLY-NEXT:    vpermd %zmm2, %zmm5, %zmm142785; AVX512F-ONLY-NEXT:    vpermd %zmm2, %zmm7, %zmm152786; AVX512F-ONLY-NEXT:    vpermd %zmm2, %zmm9, %zmm22787; AVX512F-ONLY-NEXT:    vpternlogd {{.*#+}} zmm16 {%k1} {z} = -12788; AVX512F-ONLY-NEXT:    vpermd %zmm16, %zmm3, %zmm32789; AVX512F-ONLY-NEXT:    vpermd %zmm16, %zmm5, %zmm52790; AVX512F-ONLY-NEXT:    vpermd %zmm16, %zmm7, %zmm72791; AVX512F-ONLY-NEXT:    vpermd %zmm16, %zmm9, %zmm92792; AVX512F-ONLY-NEXT:    vptestmd %zmm9, %zmm9, %k12793; AVX512F-ONLY-NEXT:    vmovdqa32 (%rsi), %zmm9 {%k1} {z}2794; AVX512F-ONLY-NEXT:    vptestmd %zmm7, %zmm7, %k12795; AVX512F-ONLY-NEXT:    vmovdqa32 64(%rsi), %zmm7 {%k1} {z}2796; AVX512F-ONLY-NEXT:    vptestmd %zmm5, %zmm5, %k12797; AVX512F-ONLY-NEXT:    vmovdqa32 128(%rsi), %zmm5 {%k1} {z}2798; AVX512F-ONLY-NEXT:    vptestmd %zmm3, %zmm3, %k12799; AVX512F-ONLY-NEXT:    vmovdqa32 192(%rsi), %zmm3 {%k1} {z}2800; AVX512F-ONLY-NEXT:    vptestmd %zmm2, %zmm2, %k12801; AVX512F-ONLY-NEXT:    vmovdqa32 256(%rsi), %zmm2 {%k1} {z}2802; AVX512F-ONLY-NEXT:    vptestmd %zmm15, %zmm15, %k12803; AVX512F-ONLY-NEXT:    vmovdqa32 320(%rsi), %zmm15 {%k1} {z}2804; AVX512F-ONLY-NEXT:    vptestmd %zmm14, %zmm14, %k12805; AVX512F-ONLY-NEXT:    vmovdqa32 384(%rsi), %zmm14 {%k1} {z}2806; AVX512F-ONLY-NEXT:    vptestmd %zmm13, %zmm13, %k12807; AVX512F-ONLY-NEXT:    vmovdqa32 448(%rsi), %zmm13 {%k1} {z}2808; AVX512F-ONLY-NEXT:    vptestmd %zmm1, %zmm1, %k12809; AVX512F-ONLY-NEXT:    vmovdqa32 512(%rsi), %zmm1 {%k1} {z}2810; AVX512F-ONLY-NEXT:    vptestmd %zmm12, %zmm12, %k12811; AVX512F-ONLY-NEXT:    vmovdqa32 576(%rsi), %zmm12 {%k1} {z}2812; AVX512F-ONLY-NEXT:    vptestmd %zmm11, %zmm11, %k12813; AVX512F-ONLY-NEXT:    vmovdqa32 640(%rsi), %zmm11 {%k1} {z}2814; AVX512F-ONLY-NEXT:    vptestmd %zmm10, %zmm10, %k12815; AVX512F-ONLY-NEXT:    vmovdqa32 704(%rsi), %zmm10 {%k1} {z}2816; AVX512F-ONLY-NEXT:    vptestmd %zmm0, %zmm0, %k12817; AVX512F-ONLY-NEXT:    vmovdqa32 768(%rsi), %zmm0 {%k1} {z}2818; AVX512F-ONLY-NEXT:    vptestmd %zmm8, %zmm8, %k12819; AVX512F-ONLY-NEXT:    vmovdqa32 832(%rsi), %zmm8 {%k1} {z}2820; AVX512F-ONLY-NEXT:    vptestmd %zmm6, %zmm6, %k12821; AVX512F-ONLY-NEXT:    vmovdqa32 896(%rsi), %zmm6 {%k1} {z}2822; AVX512F-ONLY-NEXT:    vptestmd %zmm4, %zmm4, %k12823; AVX512F-ONLY-NEXT:    vmovdqa32 960(%rsi), %zmm4 {%k1} {z}2824; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm4, 960(%rdx)2825; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm6, 896(%rdx)2826; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm8, 832(%rdx)2827; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm0, 768(%rdx)2828; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm10, 704(%rdx)2829; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm11, 640(%rdx)2830; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm12, 576(%rdx)2831; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm1, 512(%rdx)2832; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm13, 448(%rdx)2833; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm14, 384(%rdx)2834; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm15, 320(%rdx)2835; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm2, 256(%rdx)2836; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm3, 192(%rdx)2837; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm5, 128(%rdx)2838; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm7, 64(%rdx)2839; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm9, (%rdx)2840; AVX512F-ONLY-NEXT:    vzeroupper2841; AVX512F-ONLY-NEXT:    retq2842;2843; AVX512DQ-LABEL: mask_replication_factor4_vf64:2844; AVX512DQ:       # %bb.0:2845; AVX512DQ-NEXT:    kmovw 6(%rdi), %k02846; AVX512DQ-NEXT:    vpmovm2d %k0, %zmm02847; AVX512DQ-NEXT:    kmovw 4(%rdi), %k02848; AVX512DQ-NEXT:    vpmovm2d %k0, %zmm12849; AVX512DQ-NEXT:    kmovw 2(%rdi), %k02850; AVX512DQ-NEXT:    vpmovm2d %k0, %zmm22851; AVX512DQ-NEXT:    kmovw (%rdi), %k02852; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm3 = [12,12,12,12,13,13,13,13,14,14,14,14,15,15,15,15]2853; AVX512DQ-NEXT:    vpermd %zmm0, %zmm3, %zmm42854; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm5 = [8,8,8,8,9,9,9,9,10,10,10,10,11,11,11,11]2855; AVX512DQ-NEXT:    vpermd %zmm0, %zmm5, %zmm62856; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm7 = [4,4,4,4,5,5,5,5,6,6,6,6,7,7,7,7]2857; AVX512DQ-NEXT:    vpermd %zmm0, %zmm7, %zmm82858; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm9 = [0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3]2859; AVX512DQ-NEXT:    vpermd %zmm0, %zmm9, %zmm02860; AVX512DQ-NEXT:    vpermd %zmm1, %zmm3, %zmm102861; AVX512DQ-NEXT:    vpermd %zmm1, %zmm5, %zmm112862; AVX512DQ-NEXT:    vpermd %zmm1, %zmm7, %zmm122863; AVX512DQ-NEXT:    vpermd %zmm1, %zmm9, %zmm12864; AVX512DQ-NEXT:    vpermd %zmm2, %zmm3, %zmm132865; AVX512DQ-NEXT:    vpermd %zmm2, %zmm5, %zmm142866; AVX512DQ-NEXT:    vpermd %zmm2, %zmm7, %zmm152867; AVX512DQ-NEXT:    vpermd %zmm2, %zmm9, %zmm22868; AVX512DQ-NEXT:    vpmovm2d %k0, %zmm162869; AVX512DQ-NEXT:    vpermd %zmm16, %zmm3, %zmm32870; AVX512DQ-NEXT:    vpermd %zmm16, %zmm5, %zmm52871; AVX512DQ-NEXT:    vpermd %zmm16, %zmm7, %zmm72872; AVX512DQ-NEXT:    vpermd %zmm16, %zmm9, %zmm92873; AVX512DQ-NEXT:    vpmovd2m %zmm9, %k12874; AVX512DQ-NEXT:    vmovdqa32 (%rsi), %zmm9 {%k1} {z}2875; AVX512DQ-NEXT:    vpmovd2m %zmm7, %k12876; AVX512DQ-NEXT:    vmovdqa32 64(%rsi), %zmm7 {%k1} {z}2877; AVX512DQ-NEXT:    vpmovd2m %zmm5, %k12878; AVX512DQ-NEXT:    vmovdqa32 128(%rsi), %zmm5 {%k1} {z}2879; AVX512DQ-NEXT:    vpmovd2m %zmm3, %k12880; AVX512DQ-NEXT:    vmovdqa32 192(%rsi), %zmm3 {%k1} {z}2881; AVX512DQ-NEXT:    vpmovd2m %zmm2, %k12882; AVX512DQ-NEXT:    vmovdqa32 256(%rsi), %zmm2 {%k1} {z}2883; AVX512DQ-NEXT:    vpmovd2m %zmm15, %k12884; AVX512DQ-NEXT:    vmovdqa32 320(%rsi), %zmm15 {%k1} {z}2885; AVX512DQ-NEXT:    vpmovd2m %zmm14, %k12886; AVX512DQ-NEXT:    vmovdqa32 384(%rsi), %zmm14 {%k1} {z}2887; AVX512DQ-NEXT:    vpmovd2m %zmm13, %k12888; AVX512DQ-NEXT:    vmovdqa32 448(%rsi), %zmm13 {%k1} {z}2889; AVX512DQ-NEXT:    vpmovd2m %zmm1, %k12890; AVX512DQ-NEXT:    vmovdqa32 512(%rsi), %zmm1 {%k1} {z}2891; AVX512DQ-NEXT:    vpmovd2m %zmm12, %k12892; AVX512DQ-NEXT:    vmovdqa32 576(%rsi), %zmm12 {%k1} {z}2893; AVX512DQ-NEXT:    vpmovd2m %zmm11, %k12894; AVX512DQ-NEXT:    vmovdqa32 640(%rsi), %zmm11 {%k1} {z}2895; AVX512DQ-NEXT:    vpmovd2m %zmm10, %k12896; AVX512DQ-NEXT:    vmovdqa32 704(%rsi), %zmm10 {%k1} {z}2897; AVX512DQ-NEXT:    vpmovd2m %zmm0, %k12898; AVX512DQ-NEXT:    vmovdqa32 768(%rsi), %zmm0 {%k1} {z}2899; AVX512DQ-NEXT:    vpmovd2m %zmm8, %k12900; AVX512DQ-NEXT:    vmovdqa32 832(%rsi), %zmm8 {%k1} {z}2901; AVX512DQ-NEXT:    vpmovd2m %zmm6, %k12902; AVX512DQ-NEXT:    vmovdqa32 896(%rsi), %zmm6 {%k1} {z}2903; AVX512DQ-NEXT:    vpmovd2m %zmm4, %k12904; AVX512DQ-NEXT:    vmovdqa32 960(%rsi), %zmm4 {%k1} {z}2905; AVX512DQ-NEXT:    vmovdqa64 %zmm4, 960(%rdx)2906; AVX512DQ-NEXT:    vmovdqa64 %zmm6, 896(%rdx)2907; AVX512DQ-NEXT:    vmovdqa64 %zmm8, 832(%rdx)2908; AVX512DQ-NEXT:    vmovdqa64 %zmm0, 768(%rdx)2909; AVX512DQ-NEXT:    vmovdqa64 %zmm10, 704(%rdx)2910; AVX512DQ-NEXT:    vmovdqa64 %zmm11, 640(%rdx)2911; AVX512DQ-NEXT:    vmovdqa64 %zmm12, 576(%rdx)2912; AVX512DQ-NEXT:    vmovdqa64 %zmm1, 512(%rdx)2913; AVX512DQ-NEXT:    vmovdqa64 %zmm13, 448(%rdx)2914; AVX512DQ-NEXT:    vmovdqa64 %zmm14, 384(%rdx)2915; AVX512DQ-NEXT:    vmovdqa64 %zmm15, 320(%rdx)2916; AVX512DQ-NEXT:    vmovdqa64 %zmm2, 256(%rdx)2917; AVX512DQ-NEXT:    vmovdqa64 %zmm3, 192(%rdx)2918; AVX512DQ-NEXT:    vmovdqa64 %zmm5, 128(%rdx)2919; AVX512DQ-NEXT:    vmovdqa64 %zmm7, 64(%rdx)2920; AVX512DQ-NEXT:    vmovdqa64 %zmm9, (%rdx)2921; AVX512DQ-NEXT:    vzeroupper2922; AVX512DQ-NEXT:    retq2923;2924; AVX512BW-ONLY-LABEL: mask_replication_factor4_vf64:2925; AVX512BW-ONLY:       # %bb.0:2926; AVX512BW-ONLY-NEXT:    kmovq (%rdi), %k02927; AVX512BW-ONLY-NEXT:    vpmovm2b %k0, %zmm02928; AVX512BW-ONLY-NEXT:    vshufi64x2 {{.*#+}} zmm1 = zmm0[6,7,6,7,6,7,6,7]2929; AVX512BW-ONLY-NEXT:    vmovdqa64 {{.*#+}} zmm2 = [0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,6,6,6,6,7,7,7,7,8,8,8,8,9,9,9,9,10,10,10,10,11,11,11,11,12,12,12,12,13,13,13,13,14,14,14,14,15,15,15,15]2930; AVX512BW-ONLY-NEXT:    vpshufb %zmm2, %zmm1, %zmm12931; AVX512BW-ONLY-NEXT:    vpmovb2m %zmm1, %k12932; AVX512BW-ONLY-NEXT:    vshufi64x2 {{.*#+}} zmm1 = zmm0[4,5,4,5,4,5,4,5]2933; AVX512BW-ONLY-NEXT:    vpshufb %zmm2, %zmm1, %zmm12934; AVX512BW-ONLY-NEXT:    vpmovb2m %zmm1, %k22935; AVX512BW-ONLY-NEXT:    vshufi64x2 {{.*#+}} zmm1 = zmm0[2,3,2,3,2,3,2,3]2936; AVX512BW-ONLY-NEXT:    vpshufb %zmm2, %zmm1, %zmm12937; AVX512BW-ONLY-NEXT:    vpmovb2m %zmm1, %k32938; AVX512BW-ONLY-NEXT:    vpmovsxbd %xmm0, %zmm02939; AVX512BW-ONLY-NEXT:    vpmovb2m %zmm0, %k42940; AVX512BW-ONLY-NEXT:    kshiftrq $16, %k4, %k52941; AVX512BW-ONLY-NEXT:    vmovdqa32 64(%rsi), %zmm0 {%k5} {z}2942; AVX512BW-ONLY-NEXT:    vmovdqa32 (%rsi), %zmm1 {%k4} {z}2943; AVX512BW-ONLY-NEXT:    kshiftrq $48, %k4, %k52944; AVX512BW-ONLY-NEXT:    vmovdqa32 192(%rsi), %zmm2 {%k5} {z}2945; AVX512BW-ONLY-NEXT:    kshiftrq $32, %k4, %k42946; AVX512BW-ONLY-NEXT:    vmovdqa32 128(%rsi), %zmm3 {%k4} {z}2947; AVX512BW-ONLY-NEXT:    kshiftrq $16, %k3, %k42948; AVX512BW-ONLY-NEXT:    vmovdqa32 320(%rsi), %zmm4 {%k4} {z}2949; AVX512BW-ONLY-NEXT:    vmovdqa32 256(%rsi), %zmm5 {%k3} {z}2950; AVX512BW-ONLY-NEXT:    kshiftrq $48, %k3, %k42951; AVX512BW-ONLY-NEXT:    vmovdqa32 448(%rsi), %zmm6 {%k4} {z}2952; AVX512BW-ONLY-NEXT:    kshiftrq $32, %k3, %k32953; AVX512BW-ONLY-NEXT:    vmovdqa32 384(%rsi), %zmm7 {%k3} {z}2954; AVX512BW-ONLY-NEXT:    kshiftrq $16, %k2, %k32955; AVX512BW-ONLY-NEXT:    vmovdqa32 576(%rsi), %zmm8 {%k3} {z}2956; AVX512BW-ONLY-NEXT:    vmovdqa32 512(%rsi), %zmm9 {%k2} {z}2957; AVX512BW-ONLY-NEXT:    kshiftrq $48, %k2, %k32958; AVX512BW-ONLY-NEXT:    vmovdqa32 704(%rsi), %zmm10 {%k3} {z}2959; AVX512BW-ONLY-NEXT:    kshiftrq $32, %k2, %k22960; AVX512BW-ONLY-NEXT:    vmovdqa32 640(%rsi), %zmm11 {%k2} {z}2961; AVX512BW-ONLY-NEXT:    kshiftrq $16, %k1, %k22962; AVX512BW-ONLY-NEXT:    vmovdqa32 832(%rsi), %zmm12 {%k2} {z}2963; AVX512BW-ONLY-NEXT:    vmovdqa32 768(%rsi), %zmm13 {%k1} {z}2964; AVX512BW-ONLY-NEXT:    kshiftrq $48, %k1, %k22965; AVX512BW-ONLY-NEXT:    vmovdqa32 960(%rsi), %zmm14 {%k2} {z}2966; AVX512BW-ONLY-NEXT:    kshiftrq $32, %k1, %k12967; AVX512BW-ONLY-NEXT:    vmovdqa32 896(%rsi), %zmm15 {%k1} {z}2968; AVX512BW-ONLY-NEXT:    vmovdqa64 %zmm15, 896(%rdx)2969; AVX512BW-ONLY-NEXT:    vmovdqa64 %zmm14, 960(%rdx)2970; AVX512BW-ONLY-NEXT:    vmovdqa64 %zmm13, 768(%rdx)2971; AVX512BW-ONLY-NEXT:    vmovdqa64 %zmm12, 832(%rdx)2972; AVX512BW-ONLY-NEXT:    vmovdqa64 %zmm11, 640(%rdx)2973; AVX512BW-ONLY-NEXT:    vmovdqa64 %zmm10, 704(%rdx)2974; AVX512BW-ONLY-NEXT:    vmovdqa64 %zmm9, 512(%rdx)2975; AVX512BW-ONLY-NEXT:    vmovdqa64 %zmm8, 576(%rdx)2976; AVX512BW-ONLY-NEXT:    vmovdqa64 %zmm7, 384(%rdx)2977; AVX512BW-ONLY-NEXT:    vmovdqa64 %zmm6, 448(%rdx)2978; AVX512BW-ONLY-NEXT:    vmovdqa64 %zmm5, 256(%rdx)2979; AVX512BW-ONLY-NEXT:    vmovdqa64 %zmm4, 320(%rdx)2980; AVX512BW-ONLY-NEXT:    vmovdqa64 %zmm3, 128(%rdx)2981; AVX512BW-ONLY-NEXT:    vmovdqa64 %zmm2, 192(%rdx)2982; AVX512BW-ONLY-NEXT:    vmovdqa64 %zmm1, (%rdx)2983; AVX512BW-ONLY-NEXT:    vmovdqa64 %zmm0, 64(%rdx)2984; AVX512BW-ONLY-NEXT:    vzeroupper2985; AVX512BW-ONLY-NEXT:    retq2986;2987; AVX512VBMI-ONLY-LABEL: mask_replication_factor4_vf64:2988; AVX512VBMI-ONLY:       # %bb.0:2989; AVX512VBMI-ONLY-NEXT:    kmovq (%rdi), %k02990; AVX512VBMI-ONLY-NEXT:    vpmovm2b %k0, %zmm02991; AVX512VBMI-ONLY-NEXT:    vmovdqa64 {{.*#+}} zmm1 = [48,48,48,48,49,49,49,49,50,50,50,50,51,51,51,51,52,52,52,52,53,53,53,53,54,54,54,54,55,55,55,55,56,56,56,56,57,57,57,57,58,58,58,58,59,59,59,59,60,60,60,60,61,61,61,61,62,62,62,62,63,63,63,63]2992; AVX512VBMI-ONLY-NEXT:    vpermb %zmm0, %zmm1, %zmm12993; AVX512VBMI-ONLY-NEXT:    vpmovb2m %zmm1, %k12994; AVX512VBMI-ONLY-NEXT:    vmovdqa64 {{.*#+}} zmm1 = [32,32,32,32,33,33,33,33,34,34,34,34,35,35,35,35,36,36,36,36,37,37,37,37,38,38,38,38,39,39,39,39,40,40,40,40,41,41,41,41,42,42,42,42,43,43,43,43,44,44,44,44,45,45,45,45,46,46,46,46,47,47,47,47]2995; AVX512VBMI-ONLY-NEXT:    vpermb %zmm0, %zmm1, %zmm12996; AVX512VBMI-ONLY-NEXT:    vpmovb2m %zmm1, %k22997; AVX512VBMI-ONLY-NEXT:    vmovdqa64 {{.*#+}} zmm1 = [16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,22,22,22,22,23,23,23,23,24,24,24,24,25,25,25,25,26,26,26,26,27,27,27,27,28,28,28,28,29,29,29,29,30,30,30,30,31,31,31,31]2998; AVX512VBMI-ONLY-NEXT:    vpermb %zmm0, %zmm1, %zmm12999; AVX512VBMI-ONLY-NEXT:    vpmovb2m %zmm1, %k33000; AVX512VBMI-ONLY-NEXT:    vpmovsxbd %xmm0, %zmm03001; AVX512VBMI-ONLY-NEXT:    vpmovb2m %zmm0, %k43002; AVX512VBMI-ONLY-NEXT:    kshiftrq $16, %k4, %k53003; AVX512VBMI-ONLY-NEXT:    vmovdqa32 64(%rsi), %zmm0 {%k5} {z}3004; AVX512VBMI-ONLY-NEXT:    vmovdqa32 (%rsi), %zmm1 {%k4} {z}3005; AVX512VBMI-ONLY-NEXT:    kshiftrq $48, %k4, %k53006; AVX512VBMI-ONLY-NEXT:    vmovdqa32 192(%rsi), %zmm2 {%k5} {z}3007; AVX512VBMI-ONLY-NEXT:    kshiftrq $32, %k4, %k43008; AVX512VBMI-ONLY-NEXT:    vmovdqa32 128(%rsi), %zmm3 {%k4} {z}3009; AVX512VBMI-ONLY-NEXT:    kshiftrq $16, %k3, %k43010; AVX512VBMI-ONLY-NEXT:    vmovdqa32 320(%rsi), %zmm4 {%k4} {z}3011; AVX512VBMI-ONLY-NEXT:    vmovdqa32 256(%rsi), %zmm5 {%k3} {z}3012; AVX512VBMI-ONLY-NEXT:    kshiftrq $48, %k3, %k43013; AVX512VBMI-ONLY-NEXT:    vmovdqa32 448(%rsi), %zmm6 {%k4} {z}3014; AVX512VBMI-ONLY-NEXT:    kshiftrq $32, %k3, %k33015; AVX512VBMI-ONLY-NEXT:    vmovdqa32 384(%rsi), %zmm7 {%k3} {z}3016; AVX512VBMI-ONLY-NEXT:    kshiftrq $16, %k2, %k33017; AVX512VBMI-ONLY-NEXT:    vmovdqa32 576(%rsi), %zmm8 {%k3} {z}3018; AVX512VBMI-ONLY-NEXT:    vmovdqa32 512(%rsi), %zmm9 {%k2} {z}3019; AVX512VBMI-ONLY-NEXT:    kshiftrq $48, %k2, %k33020; AVX512VBMI-ONLY-NEXT:    vmovdqa32 704(%rsi), %zmm10 {%k3} {z}3021; AVX512VBMI-ONLY-NEXT:    kshiftrq $32, %k2, %k23022; AVX512VBMI-ONLY-NEXT:    vmovdqa32 640(%rsi), %zmm11 {%k2} {z}3023; AVX512VBMI-ONLY-NEXT:    kshiftrq $16, %k1, %k23024; AVX512VBMI-ONLY-NEXT:    vmovdqa32 832(%rsi), %zmm12 {%k2} {z}3025; AVX512VBMI-ONLY-NEXT:    vmovdqa32 768(%rsi), %zmm13 {%k1} {z}3026; AVX512VBMI-ONLY-NEXT:    kshiftrq $48, %k1, %k23027; AVX512VBMI-ONLY-NEXT:    vmovdqa32 960(%rsi), %zmm14 {%k2} {z}3028; AVX512VBMI-ONLY-NEXT:    kshiftrq $32, %k1, %k13029; AVX512VBMI-ONLY-NEXT:    vmovdqa32 896(%rsi), %zmm15 {%k1} {z}3030; AVX512VBMI-ONLY-NEXT:    vmovdqa64 %zmm15, 896(%rdx)3031; AVX512VBMI-ONLY-NEXT:    vmovdqa64 %zmm14, 960(%rdx)3032; AVX512VBMI-ONLY-NEXT:    vmovdqa64 %zmm13, 768(%rdx)3033; AVX512VBMI-ONLY-NEXT:    vmovdqa64 %zmm12, 832(%rdx)3034; AVX512VBMI-ONLY-NEXT:    vmovdqa64 %zmm11, 640(%rdx)3035; AVX512VBMI-ONLY-NEXT:    vmovdqa64 %zmm10, 704(%rdx)3036; AVX512VBMI-ONLY-NEXT:    vmovdqa64 %zmm9, 512(%rdx)3037; AVX512VBMI-ONLY-NEXT:    vmovdqa64 %zmm8, 576(%rdx)3038; AVX512VBMI-ONLY-NEXT:    vmovdqa64 %zmm7, 384(%rdx)3039; AVX512VBMI-ONLY-NEXT:    vmovdqa64 %zmm6, 448(%rdx)3040; AVX512VBMI-ONLY-NEXT:    vmovdqa64 %zmm5, 256(%rdx)3041; AVX512VBMI-ONLY-NEXT:    vmovdqa64 %zmm4, 320(%rdx)3042; AVX512VBMI-ONLY-NEXT:    vmovdqa64 %zmm3, 128(%rdx)3043; AVX512VBMI-ONLY-NEXT:    vmovdqa64 %zmm2, 192(%rdx)3044; AVX512VBMI-ONLY-NEXT:    vmovdqa64 %zmm1, (%rdx)3045; AVX512VBMI-ONLY-NEXT:    vmovdqa64 %zmm0, 64(%rdx)3046; AVX512VBMI-ONLY-NEXT:    vzeroupper3047; AVX512VBMI-ONLY-NEXT:    retq3048  %src.mask = load <64 x i1>, ptr %in.maskvec, align 643049  %tgt.mask = shufflevector <64 x i1> %src.mask, <64 x i1> poison, <256 x i32> <i32 0, i32 0, i32 0, i32 0, i32 1, i32 1, i32 1, i32 1, i32 2, i32 2, i32 2, i32 2, i32 3, i32 3, i32 3, i32 3, i32 4, i32 4, i32 4, i32 4, i32 5, i32 5, i32 5, i32 5, i32 6, i32 6, i32 6, i32 6, i32 7, i32 7, i32 7, i32 7, i32 8, i32 8, i32 8, i32 8, i32 9, i32 9, i32 9, i32 9, i32 10, i32 10, i32 10, i32 10, i32 11, i32 11, i32 11, i32 11, i32 12, i32 12, i32 12, i32 12, i32 13, i32 13, i32 13, i32 13, i32 14, i32 14, i32 14, i32 14, i32 15, i32 15, i32 15, i32 15, i32 16, i32 16, i32 16, i32 16, i32 17, i32 17, i32 17, i32 17, i32 18, i32 18, i32 18, i32 18, i32 19, i32 19, i32 19, i32 19, i32 20, i32 20, i32 20, i32 20, i32 21, i32 21, i32 21, i32 21, i32 22, i32 22, i32 22, i32 22, i32 23, i32 23, i32 23, i32 23, i32 24, i32 24, i32 24, i32 24, i32 25, i32 25, i32 25, i32 25, i32 26, i32 26, i32 26, i32 26, i32 27, i32 27, i32 27, i32 27, i32 28, i32 28, i32 28, i32 28, i32 29, i32 29, i32 29, i32 29, i32 30, i32 30, i32 30, i32 30, i32 31, i32 31, i32 31, i32 31, i32 32, i32 32, i32 32, i32 32, i32 33, i32 33, i32 33, i32 33, i32 34, i32 34, i32 34, i32 34, i32 35, i32 35, i32 35, i32 35, i32 36, i32 36, i32 36, i32 36, i32 37, i32 37, i32 37, i32 37, i32 38, i32 38, i32 38, i32 38, i32 39, i32 39, i32 39, i32 39, i32 40, i32 40, i32 40, i32 40, i32 41, i32 41, i32 41, i32 41, i32 42, i32 42, i32 42, i32 42, i32 43, i32 43, i32 43, i32 43, i32 44, i32 44, i32 44, i32 44, i32 45, i32 45, i32 45, i32 45, i32 46, i32 46, i32 46, i32 46, i32 47, i32 47, i32 47, i32 47, i32 48, i32 48, i32 48, i32 48, i32 49, i32 49, i32 49, i32 49, i32 50, i32 50, i32 50, i32 50, i32 51, i32 51, i32 51, i32 51, i32 52, i32 52, i32 52, i32 52, i32 53, i32 53, i32 53, i32 53, i32 54, i32 54, i32 54, i32 54, i32 55, i32 55, i32 55, i32 55, i32 56, i32 56, i32 56, i32 56, i32 57, i32 57, i32 57, i32 57, i32 58, i32 58, i32 58, i32 58, i32 59, i32 59, i32 59, i32 59, i32 60, i32 60, i32 60, i32 60, i32 61, i32 61, i32 61, i32 61, i32 62, i32 62, i32 62, i32 62, i32 63, i32 63, i32 63, i32 63>3050  %data = call <256 x i32> @llvm.masked.load.v256i32.p0(ptr %in.vec, i32 64, <256 x i1> %tgt.mask, <256 x i32> poison)3051  store <256 x i32> %data, ptr %out.vec, align 643052  ret void3053}3054 3055define void @mask_replication_factor5_vf2(ptr %in.maskvec, ptr %in.vec, ptr %out.vec) nounwind {3056; AVX512F-ONLY-LABEL: mask_replication_factor5_vf2:3057; AVX512F-ONLY:       # %bb.0:3058; AVX512F-ONLY-NEXT:    kmovw (%rdi), %k13059; AVX512F-ONLY-NEXT:    vpternlogd {{.*#+}} zmm0 {%k1} {z} = -13060; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0]3061; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm1, %zmm03062; AVX512F-ONLY-NEXT:    vpslld $31, %zmm0, %zmm03063; AVX512F-ONLY-NEXT:    movw $1023, %ax # imm = 0x3FF3064; AVX512F-ONLY-NEXT:    kmovw %eax, %k13065; AVX512F-ONLY-NEXT:    vptestmd %zmm0, %zmm0, %k1 {%k1}3066; AVX512F-ONLY-NEXT:    vmovdqa32 (%rsi), %zmm0 {%k1} {z}3067; AVX512F-ONLY-NEXT:    vextracti32x4 $2, %zmm0, %xmm13068; AVX512F-ONLY-NEXT:    vmovq %xmm1, 32(%rdx)3069; AVX512F-ONLY-NEXT:    vmovdqa %ymm0, (%rdx)3070; AVX512F-ONLY-NEXT:    vzeroupper3071; AVX512F-ONLY-NEXT:    retq3072;3073; AVX512DQ-LABEL: mask_replication_factor5_vf2:3074; AVX512DQ:       # %bb.0:3075; AVX512DQ-NEXT:    kmovw (%rdi), %k03076; AVX512DQ-NEXT:    vpmovm2d %k0, %zmm03077; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0]3078; AVX512DQ-NEXT:    vpermd %zmm0, %zmm1, %zmm03079; AVX512DQ-NEXT:    vpxor %xmm1, %xmm1, %xmm13080; AVX512DQ-NEXT:    movw $1023, %ax # imm = 0x3FF3081; AVX512DQ-NEXT:    kmovw %eax, %k13082; AVX512DQ-NEXT:    vpcmpgtd %zmm0, %zmm1, %k1 {%k1}3083; AVX512DQ-NEXT:    vmovdqa32 (%rsi), %zmm0 {%k1} {z}3084; AVX512DQ-NEXT:    vextracti32x4 $2, %zmm0, %xmm13085; AVX512DQ-NEXT:    vmovq %xmm1, 32(%rdx)3086; AVX512DQ-NEXT:    vmovdqa %ymm0, (%rdx)3087; AVX512DQ-NEXT:    vzeroupper3088; AVX512DQ-NEXT:    retq3089;3090; AVX512BW-LABEL: mask_replication_factor5_vf2:3091; AVX512BW:       # %bb.0:3092; AVX512BW-NEXT:    kmovw (%rdi), %k13093; AVX512BW-NEXT:    vpternlogd {{.*#+}} zmm0 {%k1} {z} = -13094; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0]3095; AVX512BW-NEXT:    vpermd %zmm0, %zmm1, %zmm03096; AVX512BW-NEXT:    vpslld $31, %zmm0, %zmm03097; AVX512BW-NEXT:    movw $1023, %ax # imm = 0x3FF3098; AVX512BW-NEXT:    kmovd %eax, %k13099; AVX512BW-NEXT:    vptestmd %zmm0, %zmm0, %k1 {%k1}3100; AVX512BW-NEXT:    vmovdqa32 (%rsi), %zmm0 {%k1} {z}3101; AVX512BW-NEXT:    vextracti32x4 $2, %zmm0, %xmm13102; AVX512BW-NEXT:    vmovq %xmm1, 32(%rdx)3103; AVX512BW-NEXT:    vmovdqa %ymm0, (%rdx)3104; AVX512BW-NEXT:    vzeroupper3105; AVX512BW-NEXT:    retq3106  %src.mask.padded = load <64 x i1>, ptr %in.maskvec, align 643107  %src.mask = shufflevector <64 x i1> %src.mask.padded, <64 x i1> poison, <2 x i32> <i32 0, i32 1>3108  %tgt.mask = shufflevector <2 x i1> %src.mask, <2 x i1> poison, <10 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 1, i32 1, i32 1, i32 1, i32 1>3109  %data = call <10 x i32> @llvm.masked.load.v10i32.p0(ptr %in.vec, i32 64, <10 x i1> %tgt.mask, <10 x i32> poison)3110  %data.padded = shufflevector <10 x i32> %data, <10 x i32> poison, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>3111  store <10 x i32> %data, ptr %out.vec, align 643112  ret void3113}3114 3115define void @mask_replication_factor5_vf4(ptr %in.maskvec, ptr %in.vec, ptr %out.vec) nounwind {3116; AVX512F-ONLY-LABEL: mask_replication_factor5_vf4:3117; AVX512F-ONLY:       # %bb.0:3118; AVX512F-ONLY-NEXT:    kmovw (%rdi), %k13119; AVX512F-ONLY-NEXT:    vpternlogd {{.*#+}} zmm0 {%k1} {z} = -13120; AVX512F-ONLY-NEXT:    vpshufd {{.*#+}} xmm1 = xmm0[3,3,3,3]3121; AVX512F-ONLY-NEXT:    vpslld $31, %zmm1, %zmm13122; AVX512F-ONLY-NEXT:    movw $15, %ax3123; AVX512F-ONLY-NEXT:    kmovw %eax, %k13124; AVX512F-ONLY-NEXT:    vptestmd %zmm1, %zmm1, %k1 {%k1}3125; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3]3126; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm1, %zmm03127; AVX512F-ONLY-NEXT:    vptestmd %zmm0, %zmm0, %k23128; AVX512F-ONLY-NEXT:    vmovdqa32 64(%rsi), %zmm0 {%k1} {z}3129; AVX512F-ONLY-NEXT:    vmovdqa32 (%rsi), %zmm1 {%k2} {z}3130; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm1, (%rdx)3131; AVX512F-ONLY-NEXT:    vmovdqa %xmm0, 64(%rdx)3132; AVX512F-ONLY-NEXT:    vzeroupper3133; AVX512F-ONLY-NEXT:    retq3134;3135; AVX512DQ-LABEL: mask_replication_factor5_vf4:3136; AVX512DQ:       # %bb.0:3137; AVX512DQ-NEXT:    kmovw (%rdi), %k03138; AVX512DQ-NEXT:    vpmovm2d %k0, %zmm03139; AVX512DQ-NEXT:    vpshufd {{.*#+}} xmm1 = xmm0[3,3,3,3]3140; AVX512DQ-NEXT:    vpxor %xmm2, %xmm2, %xmm23141; AVX512DQ-NEXT:    movw $15, %ax3142; AVX512DQ-NEXT:    kmovw %eax, %k13143; AVX512DQ-NEXT:    vpcmpgtd %zmm1, %zmm2, %k1 {%k1}3144; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3]3145; AVX512DQ-NEXT:    vpermd %zmm0, %zmm1, %zmm03146; AVX512DQ-NEXT:    vpmovd2m %zmm0, %k23147; AVX512DQ-NEXT:    vmovdqa32 64(%rsi), %zmm0 {%k1} {z}3148; AVX512DQ-NEXT:    vmovdqa32 (%rsi), %zmm1 {%k2} {z}3149; AVX512DQ-NEXT:    vmovdqa64 %zmm1, (%rdx)3150; AVX512DQ-NEXT:    vmovdqa %xmm0, 64(%rdx)3151; AVX512DQ-NEXT:    vzeroupper3152; AVX512DQ-NEXT:    retq3153;3154; AVX512BW-LABEL: mask_replication_factor5_vf4:3155; AVX512BW:       # %bb.0:3156; AVX512BW-NEXT:    kmovd (%rdi), %k03157; AVX512BW-NEXT:    vpmovm2w %k0, %zmm03158; AVX512BW-NEXT:    vpmovsxbw {{.*#+}} zmm1 = [0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0]3159; AVX512BW-NEXT:    vpermw %zmm0, %zmm1, %zmm03160; AVX512BW-NEXT:    vpxor %xmm1, %xmm1, %xmm13161; AVX512BW-NEXT:    movl $1048575, %eax # imm = 0xFFFFF3162; AVX512BW-NEXT:    kmovd %eax, %k13163; AVX512BW-NEXT:    vpcmpgtw %zmm0, %zmm1, %k1 {%k1}3164; AVX512BW-NEXT:    kshiftrd $16, %k1, %k23165; AVX512BW-NEXT:    vmovdqa32 64(%rsi), %zmm0 {%k2} {z}3166; AVX512BW-NEXT:    vmovdqa32 (%rsi), %zmm1 {%k1} {z}3167; AVX512BW-NEXT:    vmovdqa64 %zmm1, (%rdx)3168; AVX512BW-NEXT:    vmovdqa %xmm0, 64(%rdx)3169; AVX512BW-NEXT:    vzeroupper3170; AVX512BW-NEXT:    retq3171  %src.mask.padded = load <64 x i1>, ptr %in.maskvec, align 643172  %src.mask = shufflevector <64 x i1> %src.mask.padded, <64 x i1> poison, <4 x i32> <i32 0, i32 1, i32 2, i32 3>3173  %tgt.mask = shufflevector <4 x i1> %src.mask, <4 x i1> poison, <20 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 1, i32 1, i32 1, i32 1, i32 1, i32 2, i32 2, i32 2, i32 2, i32 2, i32 3, i32 3, i32 3, i32 3, i32 3>3174  %data = call <20 x i32> @llvm.masked.load.v20i32.p0(ptr %in.vec, i32 64, <20 x i1> %tgt.mask, <20 x i32> poison)3175  %data.padded = shufflevector <20 x i32> %data, <20 x i32> poison, <32 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>3176  store <20 x i32> %data, ptr %out.vec, align 643177  ret void3178}3179 3180define void @mask_replication_factor5_vf8(ptr %in.maskvec, ptr %in.vec, ptr %out.vec) nounwind {3181; AVX512F-ONLY-LABEL: mask_replication_factor5_vf8:3182; AVX512F-ONLY:       # %bb.0:3183; AVX512F-ONLY-NEXT:    kmovw (%rdi), %k13184; AVX512F-ONLY-NEXT:    vpternlogd {{.*#+}} zmm0 {%k1} {z} = -13185; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3]3186; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm1, %zmm13187; AVX512F-ONLY-NEXT:    vptestmd %zmm1, %zmm1, %k23188; AVX512F-ONLY-NEXT:    vpternlogd {{.*#+}} zmm1 {%k2} {z} = -13189; AVX512F-ONLY-NEXT:    movw $1, %ax3190; AVX512F-ONLY-NEXT:    kmovw %eax, %k23191; AVX512F-ONLY-NEXT:    vmovdqa32 %zmm0, %zmm1 {%k2}3192; AVX512F-ONLY-NEXT:    vptestmd %zmm1, %zmm1, %k23193; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [3,3,3,3,4,4,4,4,4,5,5,5,5,5,6,6]3194; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm1, %zmm03195; AVX512F-ONLY-NEXT:    vptestmd %zmm0, %zmm0, %k33196; AVX512F-ONLY-NEXT:    vpcmpeqd %ymm0, %ymm0, %ymm03197; AVX512F-ONLY-NEXT:    vmovdqa32 %ymm0, %ymm0 {%k1} {z}3198; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} ymm1 = [6,6,6,7,7,7,7,7]3199; AVX512F-ONLY-NEXT:    vpermd %ymm0, %ymm1, %ymm03200; AVX512F-ONLY-NEXT:    vptestmd %ymm0, %ymm0, %k13201; AVX512F-ONLY-NEXT:    vmovdqa32 (%rsi), %zmm0 {%k2} {z}3202; AVX512F-ONLY-NEXT:    vmovdqa32 128(%rsi), %zmm1 {%k1} {z}3203; AVX512F-ONLY-NEXT:    vmovdqa32 64(%rsi), %zmm2 {%k3} {z}3204; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm2, 64(%rdx)3205; AVX512F-ONLY-NEXT:    vmovdqa %ymm1, 128(%rdx)3206; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm0, (%rdx)3207; AVX512F-ONLY-NEXT:    vzeroupper3208; AVX512F-ONLY-NEXT:    retq3209;3210; AVX512DQ-LABEL: mask_replication_factor5_vf8:3211; AVX512DQ:       # %bb.0:3212; AVX512DQ-NEXT:    kmovb (%rdi), %k03213; AVX512DQ-NEXT:    vpmovm2d %k0, %zmm03214; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3]3215; AVX512DQ-NEXT:    vpermd %zmm0, %zmm1, %zmm13216; AVX512DQ-NEXT:    vpmovd2m %zmm1, %k13217; AVX512DQ-NEXT:    vpmovm2d %k1, %zmm13218; AVX512DQ-NEXT:    movw $1, %ax3219; AVX512DQ-NEXT:    kmovw %eax, %k13220; AVX512DQ-NEXT:    vmovdqa32 %zmm0, %zmm1 {%k1}3221; AVX512DQ-NEXT:    vpmovd2m %zmm1, %k13222; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [3,3,3,3,4,4,4,4,4,5,5,5,5,5,6,6]3223; AVX512DQ-NEXT:    vpermd %zmm0, %zmm1, %zmm03224; AVX512DQ-NEXT:    vpmovd2m %zmm0, %k23225; AVX512DQ-NEXT:    vpmovm2d %k0, %ymm03226; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} ymm1 = [6,6,6,7,7,7,7,7]3227; AVX512DQ-NEXT:    vpermd %ymm0, %ymm1, %ymm03228; AVX512DQ-NEXT:    vpmovd2m %ymm0, %k33229; AVX512DQ-NEXT:    vmovdqa32 (%rsi), %zmm0 {%k1} {z}3230; AVX512DQ-NEXT:    vmovdqa32 128(%rsi), %zmm1 {%k3} {z}3231; AVX512DQ-NEXT:    vmovdqa32 64(%rsi), %zmm2 {%k2} {z}3232; AVX512DQ-NEXT:    vmovdqa64 %zmm2, 64(%rdx)3233; AVX512DQ-NEXT:    vmovdqa %ymm1, 128(%rdx)3234; AVX512DQ-NEXT:    vmovdqa64 %zmm0, (%rdx)3235; AVX512DQ-NEXT:    vzeroupper3236; AVX512DQ-NEXT:    retq3237;3238; AVX512BW-ONLY-LABEL: mask_replication_factor5_vf8:3239; AVX512BW-ONLY:       # %bb.0:3240; AVX512BW-ONLY-NEXT:    kmovw (%rdi), %k03241; AVX512BW-ONLY-NEXT:    vpmovm2b %k0, %zmm03242; AVX512BW-ONLY-NEXT:    vpbroadcastq %xmm0, %zmm03243; AVX512BW-ONLY-NEXT:    vpshufb {{.*#+}} zmm0 = zmm0[0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3,19,19,19,19,20,20,20,20,20,21,21,21,21,21,22,22,38,38,38,39,39,39,39,39,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u]3244; AVX512BW-ONLY-NEXT:    vpxor %xmm1, %xmm1, %xmm13245; AVX512BW-ONLY-NEXT:    movabsq $1099511627775, %rax # imm = 0xFFFFFFFFFF3246; AVX512BW-ONLY-NEXT:    kmovq %rax, %k13247; AVX512BW-ONLY-NEXT:    vpcmpgtb %zmm0, %zmm1, %k1 {%k1}3248; AVX512BW-ONLY-NEXT:    kshiftrq $32, %k1, %k23249; AVX512BW-ONLY-NEXT:    vmovdqa32 128(%rsi), %zmm0 {%k2} {z}3250; AVX512BW-ONLY-NEXT:    vmovdqa32 (%rsi), %zmm1 {%k1} {z}3251; AVX512BW-ONLY-NEXT:    kshiftrq $16, %k1, %k13252; AVX512BW-ONLY-NEXT:    vmovdqa32 64(%rsi), %zmm2 {%k1} {z}3253; AVX512BW-ONLY-NEXT:    vmovdqa64 %zmm2, 64(%rdx)3254; AVX512BW-ONLY-NEXT:    vmovdqa64 %zmm1, (%rdx)3255; AVX512BW-ONLY-NEXT:    vmovdqa %ymm0, 128(%rdx)3256; AVX512BW-ONLY-NEXT:    vzeroupper3257; AVX512BW-ONLY-NEXT:    retq3258;3259; AVX512VBMI-ONLY-LABEL: mask_replication_factor5_vf8:3260; AVX512VBMI-ONLY:       # %bb.0:3261; AVX512VBMI-ONLY-NEXT:    kmovw (%rdi), %k03262; AVX512VBMI-ONLY-NEXT:    vpmovm2b %k0, %zmm03263; AVX512VBMI-ONLY-NEXT:    vmovdqa64 {{.*#+}} zmm1 = [0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3,3,3,3,3,4,4,4,4,4,5,5,5,5,5,6,6,6,6,6,7,7,7,7,7,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u]3264; AVX512VBMI-ONLY-NEXT:    vpermb %zmm0, %zmm1, %zmm03265; AVX512VBMI-ONLY-NEXT:    vpxor %xmm1, %xmm1, %xmm13266; AVX512VBMI-ONLY-NEXT:    movabsq $1099511627775, %rax # imm = 0xFFFFFFFFFF3267; AVX512VBMI-ONLY-NEXT:    kmovq %rax, %k13268; AVX512VBMI-ONLY-NEXT:    vpcmpgtb %zmm0, %zmm1, %k1 {%k1}3269; AVX512VBMI-ONLY-NEXT:    kshiftrq $32, %k1, %k23270; AVX512VBMI-ONLY-NEXT:    vmovdqa32 128(%rsi), %zmm0 {%k2} {z}3271; AVX512VBMI-ONLY-NEXT:    vmovdqa32 (%rsi), %zmm1 {%k1} {z}3272; AVX512VBMI-ONLY-NEXT:    kshiftrq $16, %k1, %k13273; AVX512VBMI-ONLY-NEXT:    vmovdqa32 64(%rsi), %zmm2 {%k1} {z}3274; AVX512VBMI-ONLY-NEXT:    vmovdqa64 %zmm2, 64(%rdx)3275; AVX512VBMI-ONLY-NEXT:    vmovdqa64 %zmm1, (%rdx)3276; AVX512VBMI-ONLY-NEXT:    vmovdqa %ymm0, 128(%rdx)3277; AVX512VBMI-ONLY-NEXT:    vzeroupper3278; AVX512VBMI-ONLY-NEXT:    retq3279  %src.mask.padded = load <64 x i1>, ptr %in.maskvec, align 643280  %src.mask = shufflevector <64 x i1> %src.mask.padded, <64 x i1> poison, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>3281  %tgt.mask = shufflevector <8 x i1> %src.mask, <8 x i1> poison, <40 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 1, i32 1, i32 1, i32 1, i32 1, i32 2, i32 2, i32 2, i32 2, i32 2, i32 3, i32 3, i32 3, i32 3, i32 3, i32 4, i32 4, i32 4, i32 4, i32 4, i32 5, i32 5, i32 5, i32 5, i32 5, i32 6, i32 6, i32 6, i32 6, i32 6, i32 7, i32 7, i32 7, i32 7, i32 7>3282  %data = call <40 x i32> @llvm.masked.load.v40i32.p0(ptr %in.vec, i32 64, <40 x i1> %tgt.mask, <40 x i32> poison)3283  %data.padded = shufflevector <40 x i32> %data, <40 x i32> poison, <48 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>3284  store <40 x i32> %data, ptr %out.vec, align 643285  ret void3286}3287 3288define void @mask_replication_factor5_vf16(ptr %in.maskvec, ptr %in.vec, ptr %out.vec) nounwind {3289; AVX512F-ONLY-LABEL: mask_replication_factor5_vf16:3290; AVX512F-ONLY:       # %bb.0:3291; AVX512F-ONLY-NEXT:    kmovw (%rdi), %k13292; AVX512F-ONLY-NEXT:    vpternlogd {{.*#+}} zmm0 {%k1} {z} = -13293; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3]3294; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm1, %zmm13295; AVX512F-ONLY-NEXT:    vptestmd %zmm1, %zmm1, %k13296; AVX512F-ONLY-NEXT:    vpternlogd {{.*#+}} zmm1 {%k1} {z} = -13297; AVX512F-ONLY-NEXT:    movw $1, %ax3298; AVX512F-ONLY-NEXT:    kmovw %eax, %k13299; AVX512F-ONLY-NEXT:    vmovdqa32 %zmm0, %zmm1 {%k1}3300; AVX512F-ONLY-NEXT:    vptestmd %zmm1, %zmm1, %k13301; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [3,3,3,3,4,4,4,4,4,5,5,5,5,5,6,6]3302; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm1, %zmm13303; AVX512F-ONLY-NEXT:    vptestmd %zmm1, %zmm1, %k23304; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [6,6,6,7,7,7,7,7,8,8,8,8,8,9,9,9]3305; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm1, %zmm13306; AVX512F-ONLY-NEXT:    vptestmd %zmm1, %zmm1, %k33307; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [9,9,10,10,10,10,10,11,11,11,11,11,12,12,12,12]3308; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm1, %zmm13309; AVX512F-ONLY-NEXT:    vptestmd %zmm1, %zmm1, %k43310; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [12,13,13,13,13,13,14,14,14,14,14,15,15,15,15,15]3311; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm1, %zmm03312; AVX512F-ONLY-NEXT:    vptestmd %zmm0, %zmm0, %k53313; AVX512F-ONLY-NEXT:    vmovdqa32 (%rsi), %zmm0 {%k1} {z}3314; AVX512F-ONLY-NEXT:    vmovdqa32 256(%rsi), %zmm1 {%k5} {z}3315; AVX512F-ONLY-NEXT:    vmovdqa32 192(%rsi), %zmm2 {%k4} {z}3316; AVX512F-ONLY-NEXT:    vmovdqa32 128(%rsi), %zmm3 {%k3} {z}3317; AVX512F-ONLY-NEXT:    vmovdqa32 64(%rsi), %zmm4 {%k2} {z}3318; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm4, 64(%rdx)3319; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm3, 128(%rdx)3320; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm2, 192(%rdx)3321; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm1, 256(%rdx)3322; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm0, (%rdx)3323; AVX512F-ONLY-NEXT:    vzeroupper3324; AVX512F-ONLY-NEXT:    retq3325;3326; AVX512DQ-LABEL: mask_replication_factor5_vf16:3327; AVX512DQ:       # %bb.0:3328; AVX512DQ-NEXT:    kmovw (%rdi), %k03329; AVX512DQ-NEXT:    vpmovm2d %k0, %zmm03330; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3]3331; AVX512DQ-NEXT:    vpermd %zmm0, %zmm1, %zmm13332; AVX512DQ-NEXT:    vpmovd2m %zmm1, %k03333; AVX512DQ-NEXT:    vpmovm2d %k0, %zmm13334; AVX512DQ-NEXT:    movw $1, %ax3335; AVX512DQ-NEXT:    kmovw %eax, %k13336; AVX512DQ-NEXT:    vmovdqa32 %zmm0, %zmm1 {%k1}3337; AVX512DQ-NEXT:    vpmovd2m %zmm1, %k13338; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [3,3,3,3,4,4,4,4,4,5,5,5,5,5,6,6]3339; AVX512DQ-NEXT:    vpermd %zmm0, %zmm1, %zmm13340; AVX512DQ-NEXT:    vpmovd2m %zmm1, %k23341; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [6,6,6,7,7,7,7,7,8,8,8,8,8,9,9,9]3342; AVX512DQ-NEXT:    vpermd %zmm0, %zmm1, %zmm13343; AVX512DQ-NEXT:    vpmovd2m %zmm1, %k33344; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [9,9,10,10,10,10,10,11,11,11,11,11,12,12,12,12]3345; AVX512DQ-NEXT:    vpermd %zmm0, %zmm1, %zmm13346; AVX512DQ-NEXT:    vpmovd2m %zmm1, %k43347; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [12,13,13,13,13,13,14,14,14,14,14,15,15,15,15,15]3348; AVX512DQ-NEXT:    vpermd %zmm0, %zmm1, %zmm03349; AVX512DQ-NEXT:    vpmovd2m %zmm0, %k53350; AVX512DQ-NEXT:    vmovdqa32 (%rsi), %zmm0 {%k1} {z}3351; AVX512DQ-NEXT:    vmovdqa32 256(%rsi), %zmm1 {%k5} {z}3352; AVX512DQ-NEXT:    vmovdqa32 192(%rsi), %zmm2 {%k4} {z}3353; AVX512DQ-NEXT:    vmovdqa32 128(%rsi), %zmm3 {%k3} {z}3354; AVX512DQ-NEXT:    vmovdqa32 64(%rsi), %zmm4 {%k2} {z}3355; AVX512DQ-NEXT:    vmovdqa64 %zmm4, 64(%rdx)3356; AVX512DQ-NEXT:    vmovdqa64 %zmm3, 128(%rdx)3357; AVX512DQ-NEXT:    vmovdqa64 %zmm2, 192(%rdx)3358; AVX512DQ-NEXT:    vmovdqa64 %zmm1, 256(%rdx)3359; AVX512DQ-NEXT:    vmovdqa64 %zmm0, (%rdx)3360; AVX512DQ-NEXT:    vzeroupper3361; AVX512DQ-NEXT:    retq3362;3363; AVX512BW-LABEL: mask_replication_factor5_vf16:3364; AVX512BW:       # %bb.0:3365; AVX512BW-NEXT:    kmovw (%rdi), %k13366; AVX512BW-NEXT:    vpternlogd {{.*#+}} zmm0 {%k1} {z} = -13367; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3]3368; AVX512BW-NEXT:    vpermd %zmm0, %zmm1, %zmm13369; AVX512BW-NEXT:    vptestmd %zmm1, %zmm1, %k13370; AVX512BW-NEXT:    vmovdqa32 (%rsi), %zmm1 {%k1} {z}3371; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm2 = [12,13,13,13,13,13,14,14,14,14,14,15,15,15,15,15]3372; AVX512BW-NEXT:    vpermd %zmm0, %zmm2, %zmm23373; AVX512BW-NEXT:    vptestmd %zmm2, %zmm2, %k13374; AVX512BW-NEXT:    vmovdqa32 256(%rsi), %zmm2 {%k1} {z}3375; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm3 = [9,9,10,10,10,10,10,11,11,11,11,11,12,12,12,12]3376; AVX512BW-NEXT:    vpermd %zmm0, %zmm3, %zmm33377; AVX512BW-NEXT:    vptestmd %zmm3, %zmm3, %k13378; AVX512BW-NEXT:    vmovdqa32 192(%rsi), %zmm3 {%k1} {z}3379; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm4 = [6,6,6,7,7,7,7,7,8,8,8,8,8,9,9,9]3380; AVX512BW-NEXT:    vpermd %zmm0, %zmm4, %zmm43381; AVX512BW-NEXT:    vptestmd %zmm4, %zmm4, %k13382; AVX512BW-NEXT:    vmovdqa32 128(%rsi), %zmm4 {%k1} {z}3383; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm5 = [3,3,3,3,4,4,4,4,4,5,5,5,5,5,6,6]3384; AVX512BW-NEXT:    vpermd %zmm0, %zmm5, %zmm03385; AVX512BW-NEXT:    vptestmd %zmm0, %zmm0, %k13386; AVX512BW-NEXT:    vmovdqa32 64(%rsi), %zmm0 {%k1} {z}3387; AVX512BW-NEXT:    vmovdqa64 %zmm0, 64(%rdx)3388; AVX512BW-NEXT:    vmovdqa64 %zmm4, 128(%rdx)3389; AVX512BW-NEXT:    vmovdqa64 %zmm3, 192(%rdx)3390; AVX512BW-NEXT:    vmovdqa64 %zmm2, 256(%rdx)3391; AVX512BW-NEXT:    vmovdqa64 %zmm1, (%rdx)3392; AVX512BW-NEXT:    vzeroupper3393; AVX512BW-NEXT:    retq3394  %src.mask.padded = load <64 x i1>, ptr %in.maskvec, align 643395  %src.mask = shufflevector <64 x i1> %src.mask.padded, <64 x i1> poison, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15>3396  %tgt.mask = shufflevector <16 x i1> %src.mask, <16 x i1> poison, <80 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 1, i32 1, i32 1, i32 1, i32 1, i32 2, i32 2, i32 2, i32 2, i32 2, i32 3, i32 3, i32 3, i32 3, i32 3, i32 4, i32 4, i32 4, i32 4, i32 4, i32 5, i32 5, i32 5, i32 5, i32 5, i32 6, i32 6, i32 6, i32 6, i32 6, i32 7, i32 7, i32 7, i32 7, i32 7, i32 8, i32 8, i32 8, i32 8, i32 8, i32 9, i32 9, i32 9, i32 9, i32 9, i32 10, i32 10, i32 10, i32 10, i32 10, i32 11, i32 11, i32 11, i32 11, i32 11, i32 12, i32 12, i32 12, i32 12, i32 12, i32 13, i32 13, i32 13, i32 13, i32 13, i32 14, i32 14, i32 14, i32 14, i32 14, i32 15, i32 15, i32 15, i32 15, i32 15>3397  %data = call <80 x i32> @llvm.masked.load.v80i32.p0(ptr %in.vec, i32 64, <80 x i1> %tgt.mask, <80 x i32> poison)3398  store <80 x i32> %data, ptr %out.vec, align 643399  ret void3400}3401 3402define void @mask_replication_factor5_vf32(ptr %in.maskvec, ptr %in.vec, ptr %out.vec) nounwind {3403; AVX512F-ONLY-LABEL: mask_replication_factor5_vf32:3404; AVX512F-ONLY:       # %bb.0:3405; AVX512F-ONLY-NEXT:    kmovw (%rdi), %k13406; AVX512F-ONLY-NEXT:    vpternlogd {{.*#+}} zmm0 {%k1} {z} = -13407; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3]3408; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm1, %zmm23409; AVX512F-ONLY-NEXT:    vptestmd %zmm2, %zmm2, %k13410; AVX512F-ONLY-NEXT:    vpternlogd {{.*#+}} zmm2 {%k1} {z} = -13411; AVX512F-ONLY-NEXT:    movw $1, %ax3412; AVX512F-ONLY-NEXT:    kmovw %eax, %k13413; AVX512F-ONLY-NEXT:    vmovdqa32 %zmm0, %zmm2 {%k1}3414; AVX512F-ONLY-NEXT:    kmovw 2(%rdi), %k13415; AVX512F-ONLY-NEXT:    vpternlogd {{.*#+}} zmm3 {%k1} {z} = -13416; AVX512F-ONLY-NEXT:    vptestmd %zmm2, %zmm2, %k13417; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm2 = [3,3,3,3,4,4,4,4,4,5,5,5,5,5,6,6]3418; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm2, %zmm43419; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm5 = [6,6,6,7,7,7,7,7,8,8,8,8,8,9,9,9]3420; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm5, %zmm63421; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm7 = [9,9,10,10,10,10,10,11,11,11,11,11,12,12,12,12]3422; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm7, %zmm83423; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm9 = [12,13,13,13,13,13,14,14,14,14,14,15,15,15,15,15]3424; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm9, %zmm03425; AVX512F-ONLY-NEXT:    vpermd %zmm3, %zmm1, %zmm13426; AVX512F-ONLY-NEXT:    vpermd %zmm3, %zmm2, %zmm23427; AVX512F-ONLY-NEXT:    vpermd %zmm3, %zmm5, %zmm53428; AVX512F-ONLY-NEXT:    vpermd %zmm3, %zmm7, %zmm73429; AVX512F-ONLY-NEXT:    vpermd %zmm3, %zmm9, %zmm33430; AVX512F-ONLY-NEXT:    vmovdqa32 (%rsi), %zmm9 {%k1} {z}3431; AVX512F-ONLY-NEXT:    vptestmd %zmm3, %zmm3, %k13432; AVX512F-ONLY-NEXT:    vmovdqa32 576(%rsi), %zmm3 {%k1} {z}3433; AVX512F-ONLY-NEXT:    vptestmd %zmm7, %zmm7, %k13434; AVX512F-ONLY-NEXT:    vmovdqa32 512(%rsi), %zmm7 {%k1} {z}3435; AVX512F-ONLY-NEXT:    vptestmd %zmm5, %zmm5, %k13436; AVX512F-ONLY-NEXT:    vmovdqa32 448(%rsi), %zmm5 {%k1} {z}3437; AVX512F-ONLY-NEXT:    vptestmd %zmm2, %zmm2, %k13438; AVX512F-ONLY-NEXT:    vmovdqa32 384(%rsi), %zmm2 {%k1} {z}3439; AVX512F-ONLY-NEXT:    vptestmd %zmm1, %zmm1, %k13440; AVX512F-ONLY-NEXT:    vmovdqa32 320(%rsi), %zmm1 {%k1} {z}3441; AVX512F-ONLY-NEXT:    vptestmd %zmm0, %zmm0, %k13442; AVX512F-ONLY-NEXT:    vmovdqa32 256(%rsi), %zmm0 {%k1} {z}3443; AVX512F-ONLY-NEXT:    vptestmd %zmm8, %zmm8, %k13444; AVX512F-ONLY-NEXT:    vmovdqa32 192(%rsi), %zmm8 {%k1} {z}3445; AVX512F-ONLY-NEXT:    vptestmd %zmm6, %zmm6, %k13446; AVX512F-ONLY-NEXT:    vmovdqa32 128(%rsi), %zmm6 {%k1} {z}3447; AVX512F-ONLY-NEXT:    vptestmd %zmm4, %zmm4, %k13448; AVX512F-ONLY-NEXT:    vmovdqa32 64(%rsi), %zmm4 {%k1} {z}3449; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm4, 64(%rdx)3450; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm6, 128(%rdx)3451; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm8, 192(%rdx)3452; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm0, 256(%rdx)3453; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm1, 320(%rdx)3454; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm2, 384(%rdx)3455; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm5, 448(%rdx)3456; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm7, 512(%rdx)3457; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm3, 576(%rdx)3458; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm9, (%rdx)3459; AVX512F-ONLY-NEXT:    vzeroupper3460; AVX512F-ONLY-NEXT:    retq3461;3462; AVX512DQ-LABEL: mask_replication_factor5_vf32:3463; AVX512DQ:       # %bb.0:3464; AVX512DQ-NEXT:    kmovw (%rdi), %k03465; AVX512DQ-NEXT:    vpmovm2d %k0, %zmm03466; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3]3467; AVX512DQ-NEXT:    vpermd %zmm0, %zmm1, %zmm23468; AVX512DQ-NEXT:    vpmovd2m %zmm2, %k03469; AVX512DQ-NEXT:    vpmovm2d %k0, %zmm23470; AVX512DQ-NEXT:    movw $1, %ax3471; AVX512DQ-NEXT:    kmovw %eax, %k13472; AVX512DQ-NEXT:    vmovdqa32 %zmm0, %zmm2 {%k1}3473; AVX512DQ-NEXT:    kmovw 2(%rdi), %k03474; AVX512DQ-NEXT:    vpmovm2d %k0, %zmm33475; AVX512DQ-NEXT:    vpmovd2m %zmm2, %k13476; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm2 = [3,3,3,3,4,4,4,4,4,5,5,5,5,5,6,6]3477; AVX512DQ-NEXT:    vpermd %zmm0, %zmm2, %zmm43478; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm5 = [6,6,6,7,7,7,7,7,8,8,8,8,8,9,9,9]3479; AVX512DQ-NEXT:    vpermd %zmm0, %zmm5, %zmm63480; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm7 = [9,9,10,10,10,10,10,11,11,11,11,11,12,12,12,12]3481; AVX512DQ-NEXT:    vpermd %zmm0, %zmm7, %zmm83482; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm9 = [12,13,13,13,13,13,14,14,14,14,14,15,15,15,15,15]3483; AVX512DQ-NEXT:    vpermd %zmm0, %zmm9, %zmm03484; AVX512DQ-NEXT:    vpermd %zmm3, %zmm1, %zmm13485; AVX512DQ-NEXT:    vpermd %zmm3, %zmm2, %zmm23486; AVX512DQ-NEXT:    vpermd %zmm3, %zmm5, %zmm53487; AVX512DQ-NEXT:    vpermd %zmm3, %zmm7, %zmm73488; AVX512DQ-NEXT:    vpermd %zmm3, %zmm9, %zmm33489; AVX512DQ-NEXT:    vmovdqa32 (%rsi), %zmm9 {%k1} {z}3490; AVX512DQ-NEXT:    vpmovd2m %zmm3, %k13491; AVX512DQ-NEXT:    vmovdqa32 576(%rsi), %zmm3 {%k1} {z}3492; AVX512DQ-NEXT:    vpmovd2m %zmm7, %k13493; AVX512DQ-NEXT:    vmovdqa32 512(%rsi), %zmm7 {%k1} {z}3494; AVX512DQ-NEXT:    vpmovd2m %zmm5, %k13495; AVX512DQ-NEXT:    vmovdqa32 448(%rsi), %zmm5 {%k1} {z}3496; AVX512DQ-NEXT:    vpmovd2m %zmm2, %k13497; AVX512DQ-NEXT:    vmovdqa32 384(%rsi), %zmm2 {%k1} {z}3498; AVX512DQ-NEXT:    vpmovd2m %zmm1, %k13499; AVX512DQ-NEXT:    vmovdqa32 320(%rsi), %zmm1 {%k1} {z}3500; AVX512DQ-NEXT:    vpmovd2m %zmm0, %k13501; AVX512DQ-NEXT:    vmovdqa32 256(%rsi), %zmm0 {%k1} {z}3502; AVX512DQ-NEXT:    vpmovd2m %zmm8, %k13503; AVX512DQ-NEXT:    vmovdqa32 192(%rsi), %zmm8 {%k1} {z}3504; AVX512DQ-NEXT:    vpmovd2m %zmm6, %k13505; AVX512DQ-NEXT:    vmovdqa32 128(%rsi), %zmm6 {%k1} {z}3506; AVX512DQ-NEXT:    vpmovd2m %zmm4, %k13507; AVX512DQ-NEXT:    vmovdqa32 64(%rsi), %zmm4 {%k1} {z}3508; AVX512DQ-NEXT:    vmovdqa64 %zmm4, 64(%rdx)3509; AVX512DQ-NEXT:    vmovdqa64 %zmm6, 128(%rdx)3510; AVX512DQ-NEXT:    vmovdqa64 %zmm8, 192(%rdx)3511; AVX512DQ-NEXT:    vmovdqa64 %zmm0, 256(%rdx)3512; AVX512DQ-NEXT:    vmovdqa64 %zmm1, 320(%rdx)3513; AVX512DQ-NEXT:    vmovdqa64 %zmm2, 384(%rdx)3514; AVX512DQ-NEXT:    vmovdqa64 %zmm5, 448(%rdx)3515; AVX512DQ-NEXT:    vmovdqa64 %zmm7, 512(%rdx)3516; AVX512DQ-NEXT:    vmovdqa64 %zmm3, 576(%rdx)3517; AVX512DQ-NEXT:    vmovdqa64 %zmm9, (%rdx)3518; AVX512DQ-NEXT:    vzeroupper3519; AVX512DQ-NEXT:    retq3520;3521; AVX512BW-LABEL: mask_replication_factor5_vf32:3522; AVX512BW:       # %bb.0:3523; AVX512BW-NEXT:    kmovd (%rdi), %k53524; AVX512BW-NEXT:    kshiftrd $1, %k5, %k13525; AVX512BW-NEXT:    movw $-3, %ax3526; AVX512BW-NEXT:    kmovd %eax, %k63527; AVX512BW-NEXT:    kmovw (%rdi), %k23528; AVX512BW-NEXT:    kandw %k6, %k2, %k33529; AVX512BW-NEXT:    kshiftlw $15, %k2, %k23530; AVX512BW-NEXT:    kshiftrw $14, %k2, %k43531; AVX512BW-NEXT:    korw %k4, %k3, %k33532; AVX512BW-NEXT:    movw $-5, %ax3533; AVX512BW-NEXT:    kmovd %eax, %k43534; AVX512BW-NEXT:    kmovw %k4, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill3535; AVX512BW-NEXT:    kandw %k4, %k3, %k33536; AVX512BW-NEXT:    kshiftrw $13, %k2, %k43537; AVX512BW-NEXT:    korw %k4, %k3, %k33538; AVX512BW-NEXT:    movw $-9, %ax3539; AVX512BW-NEXT:    kmovd %eax, %k43540; AVX512BW-NEXT:    kmovw %k4, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill3541; AVX512BW-NEXT:    kandw %k4, %k3, %k33542; AVX512BW-NEXT:    kshiftrw $12, %k2, %k43543; AVX512BW-NEXT:    korw %k4, %k3, %k33544; AVX512BW-NEXT:    movw $-17, %ax3545; AVX512BW-NEXT:    kmovd %eax, %k43546; AVX512BW-NEXT:    kmovw %k4, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill3547; AVX512BW-NEXT:    kandw %k4, %k3, %k33548; AVX512BW-NEXT:    kshiftrw $11, %k2, %k23549; AVX512BW-NEXT:    korw %k2, %k3, %k23550; AVX512BW-NEXT:    movw $-33, %ax3551; AVX512BW-NEXT:    kmovd %eax, %k33552; AVX512BW-NEXT:    kmovw %k3, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill3553; AVX512BW-NEXT:    kandw %k3, %k2, %k23554; AVX512BW-NEXT:    kshiftlw $15, %k1, %k13555; AVX512BW-NEXT:    kshiftrw $10, %k1, %k33556; AVX512BW-NEXT:    korw %k3, %k2, %k23557; AVX512BW-NEXT:    movw $-65, %ax3558; AVX512BW-NEXT:    kmovd %eax, %k33559; AVX512BW-NEXT:    kmovw %k3, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill3560; AVX512BW-NEXT:    kandw %k3, %k2, %k23561; AVX512BW-NEXT:    kshiftrw $9, %k1, %k33562; AVX512BW-NEXT:    korw %k3, %k2, %k23563; AVX512BW-NEXT:    movw $-129, %ax3564; AVX512BW-NEXT:    kmovd %eax, %k33565; AVX512BW-NEXT:    kmovw %k3, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill3566; AVX512BW-NEXT:    kandw %k3, %k2, %k23567; AVX512BW-NEXT:    kshiftrw $8, %k1, %k33568; AVX512BW-NEXT:    korw %k3, %k2, %k23569; AVX512BW-NEXT:    movw $-257, %ax # imm = 0xFEFF3570; AVX512BW-NEXT:    kmovd %eax, %k33571; AVX512BW-NEXT:    kmovw %k3, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill3572; AVX512BW-NEXT:    kandw %k3, %k2, %k23573; AVX512BW-NEXT:    kshiftrw $7, %k1, %k33574; AVX512BW-NEXT:    korw %k3, %k2, %k23575; AVX512BW-NEXT:    movw $-513, %ax # imm = 0xFDFF3576; AVX512BW-NEXT:    kmovd %eax, %k73577; AVX512BW-NEXT:    kandw %k7, %k2, %k23578; AVX512BW-NEXT:    kmovw %k7, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill3579; AVX512BW-NEXT:    kshiftrw $6, %k1, %k13580; AVX512BW-NEXT:    korw %k1, %k2, %k13581; AVX512BW-NEXT:    movw $-1025, %ax # imm = 0xFBFF3582; AVX512BW-NEXT:    kmovd %eax, %k23583; AVX512BW-NEXT:    kmovw %k2, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill3584; AVX512BW-NEXT:    kandw %k2, %k1, %k33585; AVX512BW-NEXT:    kshiftrd $2, %k5, %k13586; AVX512BW-NEXT:    kshiftlw $15, %k1, %k23587; AVX512BW-NEXT:    kshiftrw $5, %k2, %k43588; AVX512BW-NEXT:    korw %k4, %k3, %k33589; AVX512BW-NEXT:    movw $-2049, %ax # imm = 0xF7FF3590; AVX512BW-NEXT:    kmovd %eax, %k43591; AVX512BW-NEXT:    kmovw %k4, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill3592; AVX512BW-NEXT:    kandw %k4, %k3, %k33593; AVX512BW-NEXT:    kshiftrw $4, %k2, %k43594; AVX512BW-NEXT:    korw %k4, %k3, %k33595; AVX512BW-NEXT:    movw $-4097, %ax # imm = 0xEFFF3596; AVX512BW-NEXT:    kmovd %eax, %k43597; AVX512BW-NEXT:    kmovw %k4, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill3598; AVX512BW-NEXT:    kandw %k4, %k3, %k33599; AVX512BW-NEXT:    kshiftrw $3, %k2, %k43600; AVX512BW-NEXT:    korw %k4, %k3, %k33601; AVX512BW-NEXT:    movw $-8193, %ax # imm = 0xDFFF3602; AVX512BW-NEXT:    kmovd %eax, %k43603; AVX512BW-NEXT:    kmovw %k4, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill3604; AVX512BW-NEXT:    kandw %k4, %k3, %k33605; AVX512BW-NEXT:    kshiftrw $2, %k2, %k23606; AVX512BW-NEXT:    korw %k2, %k3, %k23607; AVX512BW-NEXT:    movw $-16385, %ax # imm = 0xBFFF3608; AVX512BW-NEXT:    kmovd %eax, %k33609; AVX512BW-NEXT:    kmovw %k3, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill3610; AVX512BW-NEXT:    kandw %k3, %k2, %k23611; AVX512BW-NEXT:    kshiftlw $14, %k1, %k13612; AVX512BW-NEXT:    korw %k1, %k2, %k13613; AVX512BW-NEXT:    kshiftlw $1, %k1, %k13614; AVX512BW-NEXT:    kshiftrw $1, %k1, %k13615; AVX512BW-NEXT:    kshiftrd $3, %k5, %k23616; AVX512BW-NEXT:    kmovd %k2, {{[-0-9]+}}(%r{{[sb]}}p) # 4-byte Spill3617; AVX512BW-NEXT:    kshiftlw $15, %k2, %k23618; AVX512BW-NEXT:    kmovw %k2, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill3619; AVX512BW-NEXT:    korw %k2, %k1, %k13620; AVX512BW-NEXT:    vmovdqa32 (%rsi), %zmm0 {%k1} {z}3621; AVX512BW-NEXT:    kshiftrd $29, %k5, %k13622; AVX512BW-NEXT:    kshiftlw $15, %k1, %k23623; AVX512BW-NEXT:    kshiftrd $28, %k5, %k13624; AVX512BW-NEXT:    kmovd %k1, {{[-0-9]+}}(%r{{[sb]}}p) # 4-byte Spill3625; AVX512BW-NEXT:    kandw %k6, %k1, %k33626; AVX512BW-NEXT:    kmovw %k6, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill3627; AVX512BW-NEXT:    kshiftrw $14, %k2, %k43628; AVX512BW-NEXT:    korw %k4, %k3, %k33629; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k0 # 2-byte Reload3630; AVX512BW-NEXT:    kandw %k0, %k3, %k33631; AVX512BW-NEXT:    kshiftrw $13, %k2, %k43632; AVX512BW-NEXT:    korw %k4, %k3, %k33633; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload3634; AVX512BW-NEXT:    kandw %k1, %k3, %k33635; AVX512BW-NEXT:    kshiftrw $12, %k2, %k43636; AVX512BW-NEXT:    korw %k4, %k3, %k33637; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload3638; AVX512BW-NEXT:    kandw %k1, %k3, %k33639; AVX512BW-NEXT:    kshiftrw $11, %k2, %k43640; AVX512BW-NEXT:    korw %k4, %k3, %k33641; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload3642; AVX512BW-NEXT:    kandw %k1, %k3, %k33643; AVX512BW-NEXT:    kshiftrw $10, %k2, %k23644; AVX512BW-NEXT:    korw %k2, %k3, %k23645; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload3646; AVX512BW-NEXT:    kandw %k1, %k2, %k23647; AVX512BW-NEXT:    kshiftrd $30, %k5, %k33648; AVX512BW-NEXT:    kshiftlw $15, %k3, %k33649; AVX512BW-NEXT:    kshiftrw $9, %k3, %k43650; AVX512BW-NEXT:    korw %k4, %k2, %k23651; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload3652; AVX512BW-NEXT:    kandw %k1, %k2, %k23653; AVX512BW-NEXT:    kshiftrw $8, %k3, %k43654; AVX512BW-NEXT:    korw %k4, %k2, %k23655; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload3656; AVX512BW-NEXT:    kandw %k1, %k2, %k23657; AVX512BW-NEXT:    kshiftrw $7, %k3, %k43658; AVX512BW-NEXT:    korw %k4, %k2, %k23659; AVX512BW-NEXT:    kandw %k7, %k2, %k23660; AVX512BW-NEXT:    kshiftrw $6, %k3, %k43661; AVX512BW-NEXT:    korw %k4, %k2, %k23662; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload3663; AVX512BW-NEXT:    kandw %k1, %k2, %k23664; AVX512BW-NEXT:    kshiftrw $5, %k3, %k33665; AVX512BW-NEXT:    korw %k3, %k2, %k23666; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload3667; AVX512BW-NEXT:    kandw %k1, %k2, %k23668; AVX512BW-NEXT:    kshiftrd $31, %k5, %k33669; AVX512BW-NEXT:    kshiftlw $15, %k3, %k43670; AVX512BW-NEXT:    kshiftrw $4, %k4, %k73671; AVX512BW-NEXT:    korw %k7, %k2, %k23672; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k7 # 2-byte Reload3673; AVX512BW-NEXT:    kandw %k7, %k2, %k23674; AVX512BW-NEXT:    kshiftrw $3, %k4, %k73675; AVX512BW-NEXT:    korw %k7, %k2, %k23676; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k7 # 2-byte Reload3677; AVX512BW-NEXT:    kandw %k7, %k2, %k23678; AVX512BW-NEXT:    kshiftrw $2, %k4, %k73679; AVX512BW-NEXT:    korw %k7, %k2, %k23680; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k7 # 2-byte Reload3681; AVX512BW-NEXT:    kandw %k7, %k2, %k23682; AVX512BW-NEXT:    kshiftlw $14, %k3, %k33683; AVX512BW-NEXT:    korw %k3, %k2, %k23684; AVX512BW-NEXT:    kshiftlw $1, %k2, %k23685; AVX512BW-NEXT:    kshiftrw $1, %k2, %k23686; AVX512BW-NEXT:    korw %k4, %k2, %k23687; AVX512BW-NEXT:    vmovdqa32 576(%rsi), %zmm1 {%k2} {z}3688; AVX512BW-NEXT:    kshiftrd $25, %k5, %k23689; AVX512BW-NEXT:    kmovd %k2, {{[-0-9]+}}(%r{{[sb]}}p) # 4-byte Spill3690; AVX512BW-NEXT:    kandw %k6, %k2, %k33691; AVX512BW-NEXT:    kshiftlw $15, %k2, %k23692; AVX512BW-NEXT:    kmovw %k2, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill3693; AVX512BW-NEXT:    kshiftrw $14, %k2, %k73694; AVX512BW-NEXT:    korw %k7, %k3, %k33695; AVX512BW-NEXT:    kandw %k0, %k3, %k33696; AVX512BW-NEXT:    kshiftrd $26, %k5, %k73697; AVX512BW-NEXT:    kshiftlw $15, %k7, %k73698; AVX512BW-NEXT:    kshiftrw $13, %k7, %k63699; AVX512BW-NEXT:    korw %k6, %k3, %k33700; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k0 # 2-byte Reload3701; AVX512BW-NEXT:    kandw %k0, %k3, %k33702; AVX512BW-NEXT:    kshiftrw $12, %k7, %k63703; AVX512BW-NEXT:    korw %k6, %k3, %k33704; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload3705; AVX512BW-NEXT:    kandw %k2, %k3, %k33706; AVX512BW-NEXT:    kshiftrw $11, %k7, %k63707; AVX512BW-NEXT:    korw %k6, %k3, %k33708; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload3709; AVX512BW-NEXT:    kandw %k2, %k3, %k33710; AVX512BW-NEXT:    kshiftrw $10, %k7, %k63711; AVX512BW-NEXT:    korw %k6, %k3, %k33712; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k0 # 2-byte Reload3713; AVX512BW-NEXT:    kandw %k0, %k3, %k33714; AVX512BW-NEXT:    kshiftrw $9, %k7, %k63715; AVX512BW-NEXT:    korw %k6, %k3, %k33716; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload3717; AVX512BW-NEXT:    kandw %k2, %k3, %k33718; AVX512BW-NEXT:    kshiftrd $27, %k5, %k63719; AVX512BW-NEXT:    kshiftlw $15, %k6, %k63720; AVX512BW-NEXT:    kshiftrw $8, %k6, %k73721; AVX512BW-NEXT:    korw %k7, %k3, %k33722; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload3723; AVX512BW-NEXT:    kandw %k2, %k3, %k33724; AVX512BW-NEXT:    kshiftrw $7, %k6, %k73725; AVX512BW-NEXT:    korw %k7, %k3, %k33726; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload3727; AVX512BW-NEXT:    kandw %k4, %k3, %k33728; AVX512BW-NEXT:    kshiftrw $6, %k6, %k73729; AVX512BW-NEXT:    korw %k7, %k3, %k33730; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload3731; AVX512BW-NEXT:    kandw %k4, %k3, %k33732; AVX512BW-NEXT:    kshiftrw $5, %k6, %k73733; AVX512BW-NEXT:    korw %k7, %k3, %k33734; AVX512BW-NEXT:    kandw %k1, %k3, %k33735; AVX512BW-NEXT:    kshiftrw $4, %k6, %k63736; AVX512BW-NEXT:    korw %k6, %k3, %k33737; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload3738; AVX512BW-NEXT:    kandw %k1, %k3, %k33739; AVX512BW-NEXT:    kmovd {{[-0-9]+}}(%r{{[sb]}}p), %k0 # 4-byte Reload3740; AVX512BW-NEXT:    kshiftlw $15, %k0, %k63741; AVX512BW-NEXT:    kshiftrw $3, %k6, %k73742; AVX512BW-NEXT:    korw %k7, %k3, %k33743; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload3744; AVX512BW-NEXT:    kandw %k1, %k3, %k33745; AVX512BW-NEXT:    kshiftrw $2, %k6, %k73746; AVX512BW-NEXT:    korw %k7, %k3, %k33747; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload3748; AVX512BW-NEXT:    kandw %k4, %k3, %k33749; AVX512BW-NEXT:    kshiftlw $14, %k0, %k13750; AVX512BW-NEXT:    korw %k1, %k3, %k13751; AVX512BW-NEXT:    kshiftlw $1, %k1, %k13752; AVX512BW-NEXT:    kshiftrw $1, %k1, %k13753; AVX512BW-NEXT:    korw %k6, %k1, %k13754; AVX512BW-NEXT:    vmovdqa32 512(%rsi), %zmm2 {%k1} {z}3755; AVX512BW-NEXT:    kshiftrd $22, %k5, %k03756; AVX512BW-NEXT:    kmovd %k0, {{[-0-9]+}}(%r{{[sb]}}p) # 4-byte Spill3757; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload3758; AVX512BW-NEXT:    kandw %k1, %k0, %k63759; AVX512BW-NEXT:    kshiftlw $15, %k0, %k03760; AVX512BW-NEXT:    kmovw %k0, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill3761; AVX512BW-NEXT:    kshiftrw $14, %k0, %k73762; AVX512BW-NEXT:    korw %k7, %k6, %k63763; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload3764; AVX512BW-NEXT:    kandw %k1, %k6, %k63765; AVX512BW-NEXT:    kshiftrw $13, %k0, %k73766; AVX512BW-NEXT:    korw %k7, %k6, %k63767; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k0 # 2-byte Reload3768; AVX512BW-NEXT:    kandw %k0, %k6, %k63769; AVX512BW-NEXT:    kshiftrd $23, %k5, %k73770; AVX512BW-NEXT:    kmovq %k5, %k03771; AVX512BW-NEXT:    kshiftlw $15, %k7, %k73772; AVX512BW-NEXT:    kshiftrw $12, %k7, %k53773; AVX512BW-NEXT:    korw %k5, %k6, %k53774; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload3775; AVX512BW-NEXT:    kandw %k1, %k5, %k53776; AVX512BW-NEXT:    kshiftrw $11, %k7, %k63777; AVX512BW-NEXT:    korw %k6, %k5, %k53778; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload3779; AVX512BW-NEXT:    kandw %k1, %k5, %k53780; AVX512BW-NEXT:    kshiftrw $10, %k7, %k63781; AVX512BW-NEXT:    korw %k6, %k5, %k53782; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload3783; AVX512BW-NEXT:    kandw %k1, %k5, %k53784; AVX512BW-NEXT:    kshiftrw $9, %k7, %k63785; AVX512BW-NEXT:    korw %k6, %k5, %k53786; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload3787; AVX512BW-NEXT:    kandw %k1, %k5, %k53788; AVX512BW-NEXT:    kshiftrw $8, %k7, %k63789; AVX512BW-NEXT:    korw %k6, %k5, %k53790; AVX512BW-NEXT:    kandw %k2, %k5, %k53791; AVX512BW-NEXT:    kshiftrd $24, %k0, %k63792; AVX512BW-NEXT:    kshiftlw $15, %k6, %k63793; AVX512BW-NEXT:    kshiftrw $7, %k6, %k73794; AVX512BW-NEXT:    korw %k7, %k5, %k53795; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload3796; AVX512BW-NEXT:    kandw %k1, %k5, %k53797; AVX512BW-NEXT:    kshiftrw $6, %k6, %k73798; AVX512BW-NEXT:    korw %k7, %k5, %k53799; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload3800; AVX512BW-NEXT:    kandw %k3, %k5, %k53801; AVX512BW-NEXT:    kshiftrw $5, %k6, %k73802; AVX512BW-NEXT:    korw %k7, %k5, %k53803; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload3804; AVX512BW-NEXT:    kandw %k2, %k5, %k53805; AVX512BW-NEXT:    kshiftrw $4, %k6, %k73806; AVX512BW-NEXT:    korw %k7, %k5, %k53807; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload3808; AVX512BW-NEXT:    kandw %k2, %k5, %k53809; AVX512BW-NEXT:    kshiftrw $3, %k6, %k63810; AVX512BW-NEXT:    korw %k6, %k5, %k53811; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload3812; AVX512BW-NEXT:    kandw %k2, %k5, %k53813; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k7 # 2-byte Reload3814; AVX512BW-NEXT:    kshiftrw $2, %k7, %k63815; AVX512BW-NEXT:    korw %k6, %k5, %k53816; AVX512BW-NEXT:    kandw %k4, %k5, %k53817; AVX512BW-NEXT:    kmovd {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 4-byte Reload3818; AVX512BW-NEXT:    kshiftlw $14, %k2, %k23819; AVX512BW-NEXT:    korw %k2, %k5, %k23820; AVX512BW-NEXT:    kshiftlw $1, %k2, %k23821; AVX512BW-NEXT:    kshiftrw $1, %k2, %k23822; AVX512BW-NEXT:    korw %k7, %k2, %k23823; AVX512BW-NEXT:    vmovdqa32 448(%rsi), %zmm3 {%k2} {z}3824; AVX512BW-NEXT:    kshiftrd $19, %k0, %k23825; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k7 # 2-byte Reload3826; AVX512BW-NEXT:    kandw %k7, %k2, %k43827; AVX512BW-NEXT:    kshiftlw $15, %k2, %k63828; AVX512BW-NEXT:    kmovw %k6, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill3829; AVX512BW-NEXT:    kshiftrw $14, %k6, %k53830; AVX512BW-NEXT:    korw %k5, %k4, %k43831; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload3832; AVX512BW-NEXT:    kandw %k2, %k4, %k43833; AVX512BW-NEXT:    kshiftrw $13, %k6, %k53834; AVX512BW-NEXT:    korw %k5, %k4, %k43835; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload3836; AVX512BW-NEXT:    kandw %k2, %k4, %k43837; AVX512BW-NEXT:    kshiftrw $12, %k6, %k53838; AVX512BW-NEXT:    korw %k5, %k4, %k43839; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload3840; AVX512BW-NEXT:    kandw %k2, %k4, %k43841; AVX512BW-NEXT:    kshiftrd $20, %k0, %k53842; AVX512BW-NEXT:    kshiftlw $15, %k5, %k53843; AVX512BW-NEXT:    kshiftrw $11, %k5, %k63844; AVX512BW-NEXT:    korw %k6, %k4, %k43845; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload3846; AVX512BW-NEXT:    kandw %k2, %k4, %k43847; AVX512BW-NEXT:    kshiftrw $10, %k5, %k63848; AVX512BW-NEXT:    korw %k6, %k4, %k43849; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload3850; AVX512BW-NEXT:    kandw %k6, %k4, %k43851; AVX512BW-NEXT:    kshiftrw $9, %k5, %k63852; AVX512BW-NEXT:    korw %k6, %k4, %k43853; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload3854; AVX512BW-NEXT:    kandw %k6, %k4, %k43855; AVX512BW-NEXT:    kshiftrw $8, %k5, %k63856; AVX512BW-NEXT:    korw %k6, %k4, %k43857; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload3858; AVX512BW-NEXT:    kandw %k6, %k4, %k43859; AVX512BW-NEXT:    kshiftrw $7, %k5, %k53860; AVX512BW-NEXT:    korw %k5, %k4, %k43861; AVX512BW-NEXT:    kandw %k1, %k4, %k43862; AVX512BW-NEXT:    kshiftrd $21, %k0, %k53863; AVX512BW-NEXT:    kshiftlw $15, %k5, %k53864; AVX512BW-NEXT:    kshiftrw $6, %k5, %k63865; AVX512BW-NEXT:    korw %k6, %k4, %k43866; AVX512BW-NEXT:    kandw %k3, %k4, %k43867; AVX512BW-NEXT:    kshiftrw $5, %k5, %k63868; AVX512BW-NEXT:    korw %k6, %k4, %k43869; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload3870; AVX512BW-NEXT:    kandw %k1, %k4, %k43871; AVX512BW-NEXT:    kshiftrw $4, %k5, %k63872; AVX512BW-NEXT:    korw %k6, %k4, %k43873; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload3874; AVX512BW-NEXT:    kandw %k1, %k4, %k43875; AVX512BW-NEXT:    kshiftrw $3, %k5, %k63876; AVX512BW-NEXT:    korw %k6, %k4, %k43877; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload3878; AVX512BW-NEXT:    kandw %k1, %k4, %k43879; AVX512BW-NEXT:    kshiftrw $2, %k5, %k53880; AVX512BW-NEXT:    korw %k5, %k4, %k43881; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload3882; AVX512BW-NEXT:    kandw %k1, %k4, %k43883; AVX512BW-NEXT:    kmovd {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 4-byte Reload3884; AVX512BW-NEXT:    kshiftlw $14, %k1, %k13885; AVX512BW-NEXT:    korw %k1, %k4, %k13886; AVX512BW-NEXT:    kshiftlw $1, %k1, %k13887; AVX512BW-NEXT:    kshiftrw $1, %k1, %k13888; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload3889; AVX512BW-NEXT:    korw %k3, %k1, %k13890; AVX512BW-NEXT:    vmovdqa32 384(%rsi), %zmm4 {%k1} {z}3891; AVX512BW-NEXT:    kshiftrd $16, %k0, %k13892; AVX512BW-NEXT:    kandw %k7, %k1, %k33893; AVX512BW-NEXT:    kshiftlw $15, %k1, %k13894; AVX512BW-NEXT:    kshiftrw $14, %k1, %k43895; AVX512BW-NEXT:    korw %k4, %k3, %k33896; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload3897; AVX512BW-NEXT:    kandw %k6, %k3, %k33898; AVX512BW-NEXT:    kshiftrw $13, %k1, %k43899; AVX512BW-NEXT:    korw %k4, %k3, %k33900; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k7 # 2-byte Reload3901; AVX512BW-NEXT:    kandw %k7, %k3, %k33902; AVX512BW-NEXT:    kshiftrw $12, %k1, %k43903; AVX512BW-NEXT:    korw %k4, %k3, %k33904; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload3905; AVX512BW-NEXT:    kandw %k4, %k3, %k33906; AVX512BW-NEXT:    kshiftrw $11, %k1, %k13907; AVX512BW-NEXT:    korw %k1, %k3, %k13908; AVX512BW-NEXT:    kandw %k2, %k1, %k13909; AVX512BW-NEXT:    kshiftrd $17, %k0, %k33910; AVX512BW-NEXT:    kshiftlw $15, %k3, %k33911; AVX512BW-NEXT:    kshiftrw $10, %k3, %k43912; AVX512BW-NEXT:    korw %k4, %k1, %k13913; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload3914; AVX512BW-NEXT:    kandw %k2, %k1, %k13915; AVX512BW-NEXT:    kshiftrw $9, %k3, %k43916; AVX512BW-NEXT:    korw %k4, %k1, %k13917; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload3918; AVX512BW-NEXT:    kandw %k2, %k1, %k13919; AVX512BW-NEXT:    kshiftrw $8, %k3, %k43920; AVX512BW-NEXT:    korw %k4, %k1, %k13921; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload3922; AVX512BW-NEXT:    kandw %k2, %k1, %k13923; AVX512BW-NEXT:    kshiftrw $7, %k3, %k43924; AVX512BW-NEXT:    korw %k4, %k1, %k13925; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload3926; AVX512BW-NEXT:    kandw %k2, %k1, %k13927; AVX512BW-NEXT:    kshiftrw $6, %k3, %k33928; AVX512BW-NEXT:    korw %k3, %k1, %k13929; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload3930; AVX512BW-NEXT:    kandw %k2, %k1, %k13931; AVX512BW-NEXT:    kshiftrd $18, %k0, %k33932; AVX512BW-NEXT:    kshiftlw $15, %k3, %k43933; AVX512BW-NEXT:    kshiftrw $5, %k4, %k53934; AVX512BW-NEXT:    korw %k5, %k1, %k13935; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload3936; AVX512BW-NEXT:    kandw %k2, %k1, %k13937; AVX512BW-NEXT:    kshiftrw $4, %k4, %k53938; AVX512BW-NEXT:    korw %k5, %k1, %k13939; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload3940; AVX512BW-NEXT:    kandw %k2, %k1, %k13941; AVX512BW-NEXT:    kshiftrw $3, %k4, %k53942; AVX512BW-NEXT:    korw %k5, %k1, %k13943; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload3944; AVX512BW-NEXT:    kandw %k2, %k1, %k13945; AVX512BW-NEXT:    kshiftrw $2, %k4, %k43946; AVX512BW-NEXT:    korw %k4, %k1, %k13947; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload3948; AVX512BW-NEXT:    kandw %k2, %k1, %k13949; AVX512BW-NEXT:    kshiftlw $14, %k3, %k33950; AVX512BW-NEXT:    korw %k3, %k1, %k13951; AVX512BW-NEXT:    kshiftlw $1, %k1, %k13952; AVX512BW-NEXT:    kshiftrw $1, %k1, %k13953; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload3954; AVX512BW-NEXT:    korw %k2, %k1, %k13955; AVX512BW-NEXT:    vmovdqa32 320(%rsi), %zmm5 {%k1} {z}3956; AVX512BW-NEXT:    kshiftrd $13, %k0, %k13957; AVX512BW-NEXT:    kshiftlw $15, %k1, %k13958; AVX512BW-NEXT:    kshiftrd $12, %k0, %k33959; AVX512BW-NEXT:    kmovd %k3, {{[-0-9]+}}(%r{{[sb]}}p) # 4-byte Spill3960; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload3961; AVX512BW-NEXT:    kandw %k2, %k3, %k23962; AVX512BW-NEXT:    kshiftrw $14, %k1, %k43963; AVX512BW-NEXT:    korw %k4, %k2, %k23964; AVX512BW-NEXT:    kandw %k6, %k2, %k23965; AVX512BW-NEXT:    kshiftrw $13, %k1, %k43966; AVX512BW-NEXT:    korw %k4, %k2, %k23967; AVX512BW-NEXT:    kandw %k7, %k2, %k23968; AVX512BW-NEXT:    kshiftrw $12, %k1, %k43969; AVX512BW-NEXT:    korw %k4, %k2, %k23970; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k7 # 2-byte Reload3971; AVX512BW-NEXT:    kandw %k7, %k2, %k23972; AVX512BW-NEXT:    kshiftrw $11, %k1, %k43973; AVX512BW-NEXT:    korw %k4, %k2, %k23974; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload3975; AVX512BW-NEXT:    kandw %k3, %k2, %k23976; AVX512BW-NEXT:    kshiftrw $10, %k1, %k13977; AVX512BW-NEXT:    korw %k1, %k2, %k13978; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload3979; AVX512BW-NEXT:    kandw %k2, %k1, %k13980; AVX512BW-NEXT:    kshiftrd $14, %k0, %k23981; AVX512BW-NEXT:    kshiftlw $15, %k2, %k23982; AVX512BW-NEXT:    kshiftrw $9, %k2, %k43983; AVX512BW-NEXT:    korw %k4, %k1, %k13984; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload3985; AVX512BW-NEXT:    kandw %k3, %k1, %k13986; AVX512BW-NEXT:    kshiftrw $8, %k2, %k43987; AVX512BW-NEXT:    korw %k4, %k1, %k13988; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload3989; AVX512BW-NEXT:    kandw %k3, %k1, %k13990; AVX512BW-NEXT:    kshiftrw $7, %k2, %k43991; AVX512BW-NEXT:    korw %k4, %k1, %k13992; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload3993; AVX512BW-NEXT:    kandw %k3, %k1, %k13994; AVX512BW-NEXT:    kshiftrw $6, %k2, %k43995; AVX512BW-NEXT:    korw %k4, %k1, %k13996; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload3997; AVX512BW-NEXT:    kandw %k3, %k1, %k13998; AVX512BW-NEXT:    kshiftrw $5, %k2, %k23999; AVX512BW-NEXT:    korw %k2, %k1, %k14000; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload4001; AVX512BW-NEXT:    kandw %k2, %k1, %k14002; AVX512BW-NEXT:    kshiftrd $15, %k0, %k24003; AVX512BW-NEXT:    kshiftlw $15, %k2, %k44004; AVX512BW-NEXT:    kshiftrw $4, %k4, %k54005; AVX512BW-NEXT:    korw %k5, %k1, %k14006; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload4007; AVX512BW-NEXT:    kandw %k3, %k1, %k14008; AVX512BW-NEXT:    kshiftrw $3, %k4, %k54009; AVX512BW-NEXT:    korw %k5, %k1, %k14010; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload4011; AVX512BW-NEXT:    kandw %k5, %k1, %k14012; AVX512BW-NEXT:    kshiftrw $2, %k4, %k54013; AVX512BW-NEXT:    korw %k5, %k1, %k14014; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload4015; AVX512BW-NEXT:    kandw %k5, %k1, %k14016; AVX512BW-NEXT:    kshiftlw $14, %k2, %k24017; AVX512BW-NEXT:    korw %k2, %k1, %k14018; AVX512BW-NEXT:    kshiftlw $1, %k1, %k14019; AVX512BW-NEXT:    kshiftrw $1, %k1, %k14020; AVX512BW-NEXT:    korw %k4, %k1, %k14021; AVX512BW-NEXT:    vmovdqa32 256(%rsi), %zmm6 {%k1} {z}4022; AVX512BW-NEXT:    kshiftrd $9, %k0, %k24023; AVX512BW-NEXT:    kmovd %k2, {{[-0-9]+}}(%r{{[sb]}}p) # 4-byte Spill4024; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload4025; AVX512BW-NEXT:    kandw %k1, %k2, %k44026; AVX512BW-NEXT:    kshiftlw $15, %k2, %k14027; AVX512BW-NEXT:    kmovw %k1, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill4028; AVX512BW-NEXT:    kshiftrw $14, %k1, %k54029; AVX512BW-NEXT:    korw %k5, %k4, %k44030; AVX512BW-NEXT:    kandw %k6, %k4, %k44031; AVX512BW-NEXT:    kshiftrd $10, %k0, %k54032; AVX512BW-NEXT:    kshiftlw $15, %k5, %k54033; AVX512BW-NEXT:    kshiftrw $13, %k5, %k64034; AVX512BW-NEXT:    korw %k6, %k4, %k44035; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload4036; AVX512BW-NEXT:    kandw %k1, %k4, %k44037; AVX512BW-NEXT:    kshiftrw $12, %k5, %k64038; AVX512BW-NEXT:    korw %k6, %k4, %k44039; AVX512BW-NEXT:    kandw %k7, %k4, %k44040; AVX512BW-NEXT:    kshiftrw $11, %k5, %k64041; AVX512BW-NEXT:    korw %k6, %k4, %k44042; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload4043; AVX512BW-NEXT:    kandw %k1, %k4, %k44044; AVX512BW-NEXT:    kshiftrw $10, %k5, %k64045; AVX512BW-NEXT:    korw %k6, %k4, %k44046; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload4047; AVX512BW-NEXT:    kandw %k1, %k4, %k44048; AVX512BW-NEXT:    kshiftrw $9, %k5, %k54049; AVX512BW-NEXT:    korw %k5, %k4, %k44050; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload4051; AVX512BW-NEXT:    kandw %k1, %k4, %k44052; AVX512BW-NEXT:    kshiftrd $11, %k0, %k54053; AVX512BW-NEXT:    kshiftlw $15, %k5, %k54054; AVX512BW-NEXT:    kshiftrw $8, %k5, %k64055; AVX512BW-NEXT:    korw %k6, %k4, %k44056; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload4057; AVX512BW-NEXT:    kandw %k1, %k4, %k44058; AVX512BW-NEXT:    kshiftrw $7, %k5, %k64059; AVX512BW-NEXT:    korw %k6, %k4, %k44060; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload4061; AVX512BW-NEXT:    kandw %k1, %k4, %k44062; AVX512BW-NEXT:    kshiftrw $6, %k5, %k64063; AVX512BW-NEXT:    korw %k6, %k4, %k44064; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload4065; AVX512BW-NEXT:    kandw %k1, %k4, %k44066; AVX512BW-NEXT:    kshiftrw $5, %k5, %k64067; AVX512BW-NEXT:    korw %k6, %k4, %k44068; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload4069; AVX512BW-NEXT:    kandw %k2, %k4, %k44070; AVX512BW-NEXT:    kshiftrw $4, %k5, %k54071; AVX512BW-NEXT:    korw %k5, %k4, %k44072; AVX512BW-NEXT:    kandw %k3, %k4, %k44073; AVX512BW-NEXT:    kmovd {{[-0-9]+}}(%r{{[sb]}}p), %k7 # 4-byte Reload4074; AVX512BW-NEXT:    kshiftlw $15, %k7, %k54075; AVX512BW-NEXT:    kshiftrw $3, %k5, %k64076; AVX512BW-NEXT:    korw %k6, %k4, %k44077; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload4078; AVX512BW-NEXT:    kandw %k1, %k4, %k44079; AVX512BW-NEXT:    kshiftrw $2, %k5, %k64080; AVX512BW-NEXT:    korw %k6, %k4, %k44081; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload4082; AVX512BW-NEXT:    kandw %k3, %k4, %k44083; AVX512BW-NEXT:    kshiftlw $14, %k7, %k34084; AVX512BW-NEXT:    korw %k3, %k4, %k34085; AVX512BW-NEXT:    kshiftlw $1, %k3, %k34086; AVX512BW-NEXT:    kshiftrw $1, %k3, %k34087; AVX512BW-NEXT:    korw %k5, %k3, %k34088; AVX512BW-NEXT:    vmovdqa32 192(%rsi), %zmm7 {%k3} {z}4089; AVX512BW-NEXT:    kshiftrd $6, %k0, %k44090; AVX512BW-NEXT:    kmovd %k4, {{[-0-9]+}}(%r{{[sb]}}p) # 4-byte Spill4091; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload4092; AVX512BW-NEXT:    kandw %k3, %k4, %k54093; AVX512BW-NEXT:    kshiftlw $15, %k4, %k44094; AVX512BW-NEXT:    kmovw %k4, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill4095; AVX512BW-NEXT:    kshiftrw $14, %k4, %k64096; AVX512BW-NEXT:    korw %k6, %k5, %k54097; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload4098; AVX512BW-NEXT:    kandw %k3, %k5, %k54099; AVX512BW-NEXT:    kshiftrw $13, %k4, %k64100; AVX512BW-NEXT:    korw %k6, %k5, %k54101; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload4102; AVX512BW-NEXT:    kandw %k3, %k5, %k54103; AVX512BW-NEXT:    kshiftrd $7, %k0, %k64104; AVX512BW-NEXT:    kshiftlw $15, %k6, %k64105; AVX512BW-NEXT:    kshiftrw $12, %k6, %k74106; AVX512BW-NEXT:    korw %k7, %k5, %k54107; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload4108; AVX512BW-NEXT:    kandw %k3, %k5, %k54109; AVX512BW-NEXT:    kshiftrw $11, %k6, %k74110; AVX512BW-NEXT:    korw %k7, %k5, %k54111; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload4112; AVX512BW-NEXT:    kandw %k3, %k5, %k54113; AVX512BW-NEXT:    kshiftrw $10, %k6, %k74114; AVX512BW-NEXT:    korw %k7, %k5, %k54115; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload4116; AVX512BW-NEXT:    kandw %k4, %k5, %k54117; AVX512BW-NEXT:    kshiftrw $9, %k6, %k74118; AVX512BW-NEXT:    korw %k7, %k5, %k54119; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload4120; AVX512BW-NEXT:    kandw %k3, %k5, %k54121; AVX512BW-NEXT:    kshiftrw $8, %k6, %k64122; AVX512BW-NEXT:    korw %k6, %k5, %k54123; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload4124; AVX512BW-NEXT:    kandw %k6, %k5, %k54125; AVX512BW-NEXT:    kshiftrd $8, %k0, %k64126; AVX512BW-NEXT:    kshiftlw $15, %k6, %k64127; AVX512BW-NEXT:    kshiftrw $7, %k6, %k74128; AVX512BW-NEXT:    korw %k7, %k5, %k54129; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k7 # 2-byte Reload4130; AVX512BW-NEXT:    kandw %k7, %k5, %k54131; AVX512BW-NEXT:    kshiftrw $6, %k6, %k74132; AVX512BW-NEXT:    korw %k7, %k5, %k54133; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k7 # 2-byte Reload4134; AVX512BW-NEXT:    kandw %k7, %k5, %k54135; AVX512BW-NEXT:    kshiftrw $5, %k6, %k74136; AVX512BW-NEXT:    korw %k7, %k5, %k54137; AVX512BW-NEXT:    kandw %k2, %k5, %k54138; AVX512BW-NEXT:    kshiftrw $4, %k6, %k74139; AVX512BW-NEXT:    korw %k7, %k5, %k54140; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k7 # 2-byte Reload4141; AVX512BW-NEXT:    kandw %k7, %k5, %k54142; AVX512BW-NEXT:    kshiftrw $3, %k6, %k64143; AVX512BW-NEXT:    korw %k6, %k5, %k54144; AVX512BW-NEXT:    kandw %k1, %k5, %k54145; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload4146; AVX512BW-NEXT:    kshiftrw $2, %k1, %k64147; AVX512BW-NEXT:    korw %k6, %k5, %k54148; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload4149; AVX512BW-NEXT:    kandw %k6, %k5, %k54150; AVX512BW-NEXT:    kmovd {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 4-byte Reload4151; AVX512BW-NEXT:    kshiftlw $14, %k2, %k24152; AVX512BW-NEXT:    korw %k2, %k5, %k24153; AVX512BW-NEXT:    kshiftlw $1, %k2, %k24154; AVX512BW-NEXT:    kshiftrw $1, %k2, %k24155; AVX512BW-NEXT:    korw %k1, %k2, %k14156; AVX512BW-NEXT:    vmovdqa32 128(%rsi), %zmm8 {%k1} {z}4157; AVX512BW-NEXT:    kmovd {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 4-byte Reload4158; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload4159; AVX512BW-NEXT:    kandw %k2, %k1, %k14160; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload4161; AVX512BW-NEXT:    kshiftrw $14, %k5, %k24162; AVX512BW-NEXT:    korw %k2, %k1, %k14163; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload4164; AVX512BW-NEXT:    kandw %k2, %k1, %k14165; AVX512BW-NEXT:    kshiftrw $13, %k5, %k24166; AVX512BW-NEXT:    korw %k2, %k1, %k14167; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload4168; AVX512BW-NEXT:    kandw %k2, %k1, %k14169; AVX512BW-NEXT:    kshiftrw $12, %k5, %k24170; AVX512BW-NEXT:    korw %k2, %k1, %k14171; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload4172; AVX512BW-NEXT:    kandw %k2, %k1, %k14173; AVX512BW-NEXT:    kshiftrd $4, %k0, %k24174; AVX512BW-NEXT:    kshiftlw $15, %k2, %k24175; AVX512BW-NEXT:    kshiftrw $11, %k2, %k54176; AVX512BW-NEXT:    korw %k5, %k1, %k14177; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload4178; AVX512BW-NEXT:    kandw %k5, %k1, %k14179; AVX512BW-NEXT:    kshiftrw $10, %k2, %k54180; AVX512BW-NEXT:    korw %k5, %k1, %k14181; AVX512BW-NEXT:    kandw %k4, %k1, %k14182; AVX512BW-NEXT:    kshiftrw $9, %k2, %k54183; AVX512BW-NEXT:    korw %k5, %k1, %k14184; AVX512BW-NEXT:    kandw %k3, %k1, %k14185; AVX512BW-NEXT:    kshiftrw $8, %k2, %k54186; AVX512BW-NEXT:    korw %k5, %k1, %k14187; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload4188; AVX512BW-NEXT:    kandw %k3, %k1, %k14189; AVX512BW-NEXT:    kshiftrw $7, %k2, %k24190; AVX512BW-NEXT:    korw %k2, %k1, %k14191; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload4192; AVX512BW-NEXT:    kandw %k2, %k1, %k14193; AVX512BW-NEXT:    kshiftrd $5, %k0, %k04194; AVX512BW-NEXT:    kshiftlw $15, %k0, %k04195; AVX512BW-NEXT:    kshiftrw $6, %k0, %k24196; AVX512BW-NEXT:    korw %k2, %k1, %k14197; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload4198; AVX512BW-NEXT:    kandw %k2, %k1, %k14199; AVX512BW-NEXT:    kshiftrw $5, %k0, %k24200; AVX512BW-NEXT:    korw %k2, %k1, %k14201; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload4202; AVX512BW-NEXT:    kandw %k2, %k1, %k14203; AVX512BW-NEXT:    kshiftrw $4, %k0, %k24204; AVX512BW-NEXT:    korw %k2, %k1, %k14205; AVX512BW-NEXT:    kandw %k7, %k1, %k14206; AVX512BW-NEXT:    kshiftrw $3, %k0, %k24207; AVX512BW-NEXT:    korw %k2, %k1, %k14208; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload4209; AVX512BW-NEXT:    kandw %k2, %k1, %k14210; AVX512BW-NEXT:    kshiftrw $2, %k0, %k04211; AVX512BW-NEXT:    korw %k0, %k1, %k04212; AVX512BW-NEXT:    kandw %k6, %k0, %k04213; AVX512BW-NEXT:    kmovd {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 4-byte Reload4214; AVX512BW-NEXT:    kshiftlw $14, %k1, %k14215; AVX512BW-NEXT:    korw %k1, %k0, %k04216; AVX512BW-NEXT:    kshiftlw $1, %k0, %k04217; AVX512BW-NEXT:    kshiftrw $1, %k0, %k04218; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload4219; AVX512BW-NEXT:    korw %k1, %k0, %k14220; AVX512BW-NEXT:    vmovdqa32 64(%rsi), %zmm9 {%k1} {z}4221; AVX512BW-NEXT:    vmovdqa64 %zmm9, 64(%rdx)4222; AVX512BW-NEXT:    vmovdqa64 %zmm8, 128(%rdx)4223; AVX512BW-NEXT:    vmovdqa64 %zmm7, 192(%rdx)4224; AVX512BW-NEXT:    vmovdqa64 %zmm6, 256(%rdx)4225; AVX512BW-NEXT:    vmovdqa64 %zmm5, 320(%rdx)4226; AVX512BW-NEXT:    vmovdqa64 %zmm4, 384(%rdx)4227; AVX512BW-NEXT:    vmovdqa64 %zmm3, 448(%rdx)4228; AVX512BW-NEXT:    vmovdqa64 %zmm2, 512(%rdx)4229; AVX512BW-NEXT:    vmovdqa64 %zmm1, 576(%rdx)4230; AVX512BW-NEXT:    vmovdqa64 %zmm0, (%rdx)4231; AVX512BW-NEXT:    vzeroupper4232; AVX512BW-NEXT:    retq4233  %src.mask.padded = load <64 x i1>, ptr %in.maskvec, align 644234  %src.mask = shufflevector <64 x i1> %src.mask.padded, <64 x i1> poison, <32 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31>4235  %tgt.mask = shufflevector <32 x i1> %src.mask, <32 x i1> poison, <160 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 1, i32 1, i32 1, i32 1, i32 1, i32 2, i32 2, i32 2, i32 2, i32 2, i32 3, i32 3, i32 3, i32 3, i32 3, i32 4, i32 4, i32 4, i32 4, i32 4, i32 5, i32 5, i32 5, i32 5, i32 5, i32 6, i32 6, i32 6, i32 6, i32 6, i32 7, i32 7, i32 7, i32 7, i32 7, i32 8, i32 8, i32 8, i32 8, i32 8, i32 9, i32 9, i32 9, i32 9, i32 9, i32 10, i32 10, i32 10, i32 10, i32 10, i32 11, i32 11, i32 11, i32 11, i32 11, i32 12, i32 12, i32 12, i32 12, i32 12, i32 13, i32 13, i32 13, i32 13, i32 13, i32 14, i32 14, i32 14, i32 14, i32 14, i32 15, i32 15, i32 15, i32 15, i32 15, i32 16, i32 16, i32 16, i32 16, i32 16, i32 17, i32 17, i32 17, i32 17, i32 17, i32 18, i32 18, i32 18, i32 18, i32 18, i32 19, i32 19, i32 19, i32 19, i32 19, i32 20, i32 20, i32 20, i32 20, i32 20, i32 21, i32 21, i32 21, i32 21, i32 21, i32 22, i32 22, i32 22, i32 22, i32 22, i32 23, i32 23, i32 23, i32 23, i32 23, i32 24, i32 24, i32 24, i32 24, i32 24, i32 25, i32 25, i32 25, i32 25, i32 25, i32 26, i32 26, i32 26, i32 26, i32 26, i32 27, i32 27, i32 27, i32 27, i32 27, i32 28, i32 28, i32 28, i32 28, i32 28, i32 29, i32 29, i32 29, i32 29, i32 29, i32 30, i32 30, i32 30, i32 30, i32 30, i32 31, i32 31, i32 31, i32 31, i32 31>4236  %data = call <160 x i32> @llvm.masked.load.v160i32.p0(ptr %in.vec, i32 64, <160 x i1> %tgt.mask, <160 x i32> poison)4237  store <160 x i32> %data, ptr %out.vec, align 644238  ret void4239}4240 4241define void @mask_replication_factor5_vf64(ptr %in.maskvec, ptr %in.vec, ptr %out.vec) nounwind {4242; AVX512F-ONLY-LABEL: mask_replication_factor5_vf64:4243; AVX512F-ONLY:       # %bb.0:4244; AVX512F-ONLY-NEXT:    kmovw (%rdi), %k14245; AVX512F-ONLY-NEXT:    vpternlogd {{.*#+}} zmm0 {%k1} {z} = -14246; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm3 = [0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3]4247; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm3, %zmm14248; AVX512F-ONLY-NEXT:    vptestmd %zmm1, %zmm1, %k14249; AVX512F-ONLY-NEXT:    vpternlogd {{.*#+}} zmm1 {%k1} {z} = -14250; AVX512F-ONLY-NEXT:    movw $1, %ax4251; AVX512F-ONLY-NEXT:    kmovw %eax, %k14252; AVX512F-ONLY-NEXT:    vmovdqa32 %zmm0, %zmm1 {%k1}4253; AVX512F-ONLY-NEXT:    kmovw 6(%rdi), %k14254; AVX512F-ONLY-NEXT:    vpternlogd {{.*#+}} zmm4 {%k1} {z} = -14255; AVX512F-ONLY-NEXT:    kmovw 4(%rdi), %k14256; AVX512F-ONLY-NEXT:    vpternlogd {{.*#+}} zmm5 {%k1} {z} = -14257; AVX512F-ONLY-NEXT:    kmovw 2(%rdi), %k14258; AVX512F-ONLY-NEXT:    vpternlogd {{.*#+}} zmm6 {%k1} {z} = -14259; AVX512F-ONLY-NEXT:    vptestmd %zmm1, %zmm1, %k14260; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm7 = [12,13,13,13,13,13,14,14,14,14,14,15,15,15,15,15]4261; AVX512F-ONLY-NEXT:    vpermd %zmm4, %zmm7, %zmm14262; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm8 = [9,9,10,10,10,10,10,11,11,11,11,11,12,12,12,12]4263; AVX512F-ONLY-NEXT:    vpermd %zmm4, %zmm8, %zmm24264; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm9 = [6,6,6,7,7,7,7,7,8,8,8,8,8,9,9,9]4265; AVX512F-ONLY-NEXT:    vpermd %zmm4, %zmm9, %zmm104266; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm11 = [3,3,3,3,4,4,4,4,4,5,5,5,5,5,6,6]4267; AVX512F-ONLY-NEXT:    vpermd %zmm4, %zmm11, %zmm124268; AVX512F-ONLY-NEXT:    vpermd %zmm4, %zmm3, %zmm44269; AVX512F-ONLY-NEXT:    vpermd %zmm5, %zmm7, %zmm134270; AVX512F-ONLY-NEXT:    vpermd %zmm5, %zmm8, %zmm144271; AVX512F-ONLY-NEXT:    vpermd %zmm5, %zmm9, %zmm154272; AVX512F-ONLY-NEXT:    vpermd %zmm5, %zmm11, %zmm164273; AVX512F-ONLY-NEXT:    vpermd %zmm5, %zmm3, %zmm54274; AVX512F-ONLY-NEXT:    vpermd %zmm6, %zmm7, %zmm174275; AVX512F-ONLY-NEXT:    vpermd %zmm6, %zmm8, %zmm184276; AVX512F-ONLY-NEXT:    vpermd %zmm6, %zmm9, %zmm194277; AVX512F-ONLY-NEXT:    vpermd %zmm6, %zmm3, %zmm34278; AVX512F-ONLY-NEXT:    vpermd %zmm6, %zmm11, %zmm64279; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm7, %zmm74280; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm8, %zmm84281; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm9, %zmm94282; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm11, %zmm04283; AVX512F-ONLY-NEXT:    vmovdqa32 (%rsi), %zmm11 {%k1} {z}4284; AVX512F-ONLY-NEXT:    vptestmd %zmm0, %zmm0, %k14285; AVX512F-ONLY-NEXT:    vmovdqa32 64(%rsi), %zmm0 {%k1} {z}4286; AVX512F-ONLY-NEXT:    vptestmd %zmm9, %zmm9, %k14287; AVX512F-ONLY-NEXT:    vmovdqa32 128(%rsi), %zmm9 {%k1} {z}4288; AVX512F-ONLY-NEXT:    vptestmd %zmm8, %zmm8, %k14289; AVX512F-ONLY-NEXT:    vmovdqa32 192(%rsi), %zmm8 {%k1} {z}4290; AVX512F-ONLY-NEXT:    vptestmd %zmm7, %zmm7, %k14291; AVX512F-ONLY-NEXT:    vmovdqa32 256(%rsi), %zmm7 {%k1} {z}4292; AVX512F-ONLY-NEXT:    vptestmd %zmm3, %zmm3, %k14293; AVX512F-ONLY-NEXT:    vmovdqa32 320(%rsi), %zmm3 {%k1} {z}4294; AVX512F-ONLY-NEXT:    vptestmd %zmm6, %zmm6, %k14295; AVX512F-ONLY-NEXT:    vmovdqa32 384(%rsi), %zmm6 {%k1} {z}4296; AVX512F-ONLY-NEXT:    vptestmd %zmm19, %zmm19, %k14297; AVX512F-ONLY-NEXT:    vmovdqa32 448(%rsi), %zmm19 {%k1} {z}4298; AVX512F-ONLY-NEXT:    vptestmd %zmm18, %zmm18, %k14299; AVX512F-ONLY-NEXT:    vmovdqa32 512(%rsi), %zmm18 {%k1} {z}4300; AVX512F-ONLY-NEXT:    vptestmd %zmm17, %zmm17, %k14301; AVX512F-ONLY-NEXT:    vmovdqa32 576(%rsi), %zmm17 {%k1} {z}4302; AVX512F-ONLY-NEXT:    vptestmd %zmm5, %zmm5, %k14303; AVX512F-ONLY-NEXT:    vmovdqa32 640(%rsi), %zmm5 {%k1} {z}4304; AVX512F-ONLY-NEXT:    vptestmd %zmm16, %zmm16, %k14305; AVX512F-ONLY-NEXT:    vmovdqa32 704(%rsi), %zmm16 {%k1} {z}4306; AVX512F-ONLY-NEXT:    vptestmd %zmm15, %zmm15, %k14307; AVX512F-ONLY-NEXT:    vmovdqa32 768(%rsi), %zmm15 {%k1} {z}4308; AVX512F-ONLY-NEXT:    vptestmd %zmm14, %zmm14, %k14309; AVX512F-ONLY-NEXT:    vmovdqa32 832(%rsi), %zmm14 {%k1} {z}4310; AVX512F-ONLY-NEXT:    vptestmd %zmm13, %zmm13, %k14311; AVX512F-ONLY-NEXT:    vmovdqa32 896(%rsi), %zmm13 {%k1} {z}4312; AVX512F-ONLY-NEXT:    vptestmd %zmm4, %zmm4, %k14313; AVX512F-ONLY-NEXT:    vmovdqa32 960(%rsi), %zmm4 {%k1} {z}4314; AVX512F-ONLY-NEXT:    vptestmd %zmm12, %zmm12, %k14315; AVX512F-ONLY-NEXT:    vmovdqa32 1024(%rsi), %zmm12 {%k1} {z}4316; AVX512F-ONLY-NEXT:    vptestmd %zmm10, %zmm10, %k14317; AVX512F-ONLY-NEXT:    vmovdqa32 1088(%rsi), %zmm10 {%k1} {z}4318; AVX512F-ONLY-NEXT:    vptestmd %zmm2, %zmm2, %k14319; AVX512F-ONLY-NEXT:    vmovdqa32 1152(%rsi), %zmm2 {%k1} {z}4320; AVX512F-ONLY-NEXT:    vptestmd %zmm1, %zmm1, %k14321; AVX512F-ONLY-NEXT:    vmovdqa32 1216(%rsi), %zmm1 {%k1} {z}4322; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm1, 1216(%rdx)4323; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm2, 1152(%rdx)4324; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm10, 1088(%rdx)4325; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm12, 1024(%rdx)4326; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm4, 960(%rdx)4327; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm13, 896(%rdx)4328; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm14, 832(%rdx)4329; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm15, 768(%rdx)4330; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm16, 704(%rdx)4331; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm5, 640(%rdx)4332; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm17, 576(%rdx)4333; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm18, 512(%rdx)4334; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm19, 448(%rdx)4335; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm6, 384(%rdx)4336; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm3, 320(%rdx)4337; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm7, 256(%rdx)4338; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm8, 192(%rdx)4339; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm9, 128(%rdx)4340; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm0, 64(%rdx)4341; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm11, (%rdx)4342; AVX512F-ONLY-NEXT:    vzeroupper4343; AVX512F-ONLY-NEXT:    retq4344;4345; AVX512DQ-LABEL: mask_replication_factor5_vf64:4346; AVX512DQ:       # %bb.0:4347; AVX512DQ-NEXT:    kmovw (%rdi), %k04348; AVX512DQ-NEXT:    vpmovm2d %k0, %zmm04349; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm3 = [0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3]4350; AVX512DQ-NEXT:    vpermd %zmm0, %zmm3, %zmm14351; AVX512DQ-NEXT:    vpmovd2m %zmm1, %k04352; AVX512DQ-NEXT:    vpmovm2d %k0, %zmm14353; AVX512DQ-NEXT:    movw $1, %ax4354; AVX512DQ-NEXT:    kmovw %eax, %k14355; AVX512DQ-NEXT:    vmovdqa32 %zmm0, %zmm1 {%k1}4356; AVX512DQ-NEXT:    kmovw 6(%rdi), %k04357; AVX512DQ-NEXT:    vpmovm2d %k0, %zmm44358; AVX512DQ-NEXT:    kmovw 4(%rdi), %k04359; AVX512DQ-NEXT:    vpmovm2d %k0, %zmm54360; AVX512DQ-NEXT:    kmovw 2(%rdi), %k04361; AVX512DQ-NEXT:    vpmovm2d %k0, %zmm64362; AVX512DQ-NEXT:    vpmovd2m %zmm1, %k14363; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm7 = [12,13,13,13,13,13,14,14,14,14,14,15,15,15,15,15]4364; AVX512DQ-NEXT:    vpermd %zmm4, %zmm7, %zmm14365; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm8 = [9,9,10,10,10,10,10,11,11,11,11,11,12,12,12,12]4366; AVX512DQ-NEXT:    vpermd %zmm4, %zmm8, %zmm24367; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm9 = [6,6,6,7,7,7,7,7,8,8,8,8,8,9,9,9]4368; AVX512DQ-NEXT:    vpermd %zmm4, %zmm9, %zmm104369; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm11 = [3,3,3,3,4,4,4,4,4,5,5,5,5,5,6,6]4370; AVX512DQ-NEXT:    vpermd %zmm4, %zmm11, %zmm124371; AVX512DQ-NEXT:    vpermd %zmm4, %zmm3, %zmm44372; AVX512DQ-NEXT:    vpermd %zmm5, %zmm7, %zmm134373; AVX512DQ-NEXT:    vpermd %zmm5, %zmm8, %zmm144374; AVX512DQ-NEXT:    vpermd %zmm5, %zmm9, %zmm154375; AVX512DQ-NEXT:    vpermd %zmm5, %zmm11, %zmm164376; AVX512DQ-NEXT:    vpermd %zmm5, %zmm3, %zmm54377; AVX512DQ-NEXT:    vpermd %zmm6, %zmm7, %zmm174378; AVX512DQ-NEXT:    vpermd %zmm6, %zmm8, %zmm184379; AVX512DQ-NEXT:    vpermd %zmm6, %zmm9, %zmm194380; AVX512DQ-NEXT:    vpermd %zmm6, %zmm3, %zmm34381; AVX512DQ-NEXT:    vpermd %zmm6, %zmm11, %zmm64382; AVX512DQ-NEXT:    vpermd %zmm0, %zmm7, %zmm74383; AVX512DQ-NEXT:    vpermd %zmm0, %zmm8, %zmm84384; AVX512DQ-NEXT:    vpermd %zmm0, %zmm9, %zmm94385; AVX512DQ-NEXT:    vpermd %zmm0, %zmm11, %zmm04386; AVX512DQ-NEXT:    vmovdqa32 (%rsi), %zmm11 {%k1} {z}4387; AVX512DQ-NEXT:    vpmovd2m %zmm0, %k14388; AVX512DQ-NEXT:    vmovdqa32 64(%rsi), %zmm0 {%k1} {z}4389; AVX512DQ-NEXT:    vpmovd2m %zmm9, %k14390; AVX512DQ-NEXT:    vmovdqa32 128(%rsi), %zmm9 {%k1} {z}4391; AVX512DQ-NEXT:    vpmovd2m %zmm8, %k14392; AVX512DQ-NEXT:    vmovdqa32 192(%rsi), %zmm8 {%k1} {z}4393; AVX512DQ-NEXT:    vpmovd2m %zmm7, %k14394; AVX512DQ-NEXT:    vmovdqa32 256(%rsi), %zmm7 {%k1} {z}4395; AVX512DQ-NEXT:    vpmovd2m %zmm3, %k14396; AVX512DQ-NEXT:    vmovdqa32 320(%rsi), %zmm3 {%k1} {z}4397; AVX512DQ-NEXT:    vpmovd2m %zmm6, %k14398; AVX512DQ-NEXT:    vmovdqa32 384(%rsi), %zmm6 {%k1} {z}4399; AVX512DQ-NEXT:    vpmovd2m %zmm19, %k14400; AVX512DQ-NEXT:    vmovdqa32 448(%rsi), %zmm19 {%k1} {z}4401; AVX512DQ-NEXT:    vpmovd2m %zmm18, %k14402; AVX512DQ-NEXT:    vmovdqa32 512(%rsi), %zmm18 {%k1} {z}4403; AVX512DQ-NEXT:    vpmovd2m %zmm17, %k14404; AVX512DQ-NEXT:    vmovdqa32 576(%rsi), %zmm17 {%k1} {z}4405; AVX512DQ-NEXT:    vpmovd2m %zmm5, %k14406; AVX512DQ-NEXT:    vmovdqa32 640(%rsi), %zmm5 {%k1} {z}4407; AVX512DQ-NEXT:    vpmovd2m %zmm16, %k14408; AVX512DQ-NEXT:    vmovdqa32 704(%rsi), %zmm16 {%k1} {z}4409; AVX512DQ-NEXT:    vpmovd2m %zmm15, %k14410; AVX512DQ-NEXT:    vmovdqa32 768(%rsi), %zmm15 {%k1} {z}4411; AVX512DQ-NEXT:    vpmovd2m %zmm14, %k14412; AVX512DQ-NEXT:    vmovdqa32 832(%rsi), %zmm14 {%k1} {z}4413; AVX512DQ-NEXT:    vpmovd2m %zmm13, %k14414; AVX512DQ-NEXT:    vmovdqa32 896(%rsi), %zmm13 {%k1} {z}4415; AVX512DQ-NEXT:    vpmovd2m %zmm4, %k14416; AVX512DQ-NEXT:    vmovdqa32 960(%rsi), %zmm4 {%k1} {z}4417; AVX512DQ-NEXT:    vpmovd2m %zmm12, %k14418; AVX512DQ-NEXT:    vmovdqa32 1024(%rsi), %zmm12 {%k1} {z}4419; AVX512DQ-NEXT:    vpmovd2m %zmm10, %k14420; AVX512DQ-NEXT:    vmovdqa32 1088(%rsi), %zmm10 {%k1} {z}4421; AVX512DQ-NEXT:    vpmovd2m %zmm2, %k14422; AVX512DQ-NEXT:    vmovdqa32 1152(%rsi), %zmm2 {%k1} {z}4423; AVX512DQ-NEXT:    vpmovd2m %zmm1, %k14424; AVX512DQ-NEXT:    vmovdqa32 1216(%rsi), %zmm1 {%k1} {z}4425; AVX512DQ-NEXT:    vmovdqa64 %zmm1, 1216(%rdx)4426; AVX512DQ-NEXT:    vmovdqa64 %zmm2, 1152(%rdx)4427; AVX512DQ-NEXT:    vmovdqa64 %zmm10, 1088(%rdx)4428; AVX512DQ-NEXT:    vmovdqa64 %zmm12, 1024(%rdx)4429; AVX512DQ-NEXT:    vmovdqa64 %zmm4, 960(%rdx)4430; AVX512DQ-NEXT:    vmovdqa64 %zmm13, 896(%rdx)4431; AVX512DQ-NEXT:    vmovdqa64 %zmm14, 832(%rdx)4432; AVX512DQ-NEXT:    vmovdqa64 %zmm15, 768(%rdx)4433; AVX512DQ-NEXT:    vmovdqa64 %zmm16, 704(%rdx)4434; AVX512DQ-NEXT:    vmovdqa64 %zmm5, 640(%rdx)4435; AVX512DQ-NEXT:    vmovdqa64 %zmm17, 576(%rdx)4436; AVX512DQ-NEXT:    vmovdqa64 %zmm18, 512(%rdx)4437; AVX512DQ-NEXT:    vmovdqa64 %zmm19, 448(%rdx)4438; AVX512DQ-NEXT:    vmovdqa64 %zmm6, 384(%rdx)4439; AVX512DQ-NEXT:    vmovdqa64 %zmm3, 320(%rdx)4440; AVX512DQ-NEXT:    vmovdqa64 %zmm7, 256(%rdx)4441; AVX512DQ-NEXT:    vmovdqa64 %zmm8, 192(%rdx)4442; AVX512DQ-NEXT:    vmovdqa64 %zmm9, 128(%rdx)4443; AVX512DQ-NEXT:    vmovdqa64 %zmm0, 64(%rdx)4444; AVX512DQ-NEXT:    vmovdqa64 %zmm11, (%rdx)4445; AVX512DQ-NEXT:    vzeroupper4446; AVX512DQ-NEXT:    retq4447;4448; AVX512BW-LABEL: mask_replication_factor5_vf64:4449; AVX512BW:       # %bb.0:4450; AVX512BW-NEXT:    kmovq (%rdi), %k54451; AVX512BW-NEXT:    kshiftrq $1, %k5, %k04452; AVX512BW-NEXT:    movw $-3, %ax4453; AVX512BW-NEXT:    kmovd %eax, %k14454; AVX512BW-NEXT:    kmovw %k1, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill4455; AVX512BW-NEXT:    kmovw (%rdi), %k24456; AVX512BW-NEXT:    kandw %k1, %k2, %k34457; AVX512BW-NEXT:    kshiftlw $15, %k2, %k24458; AVX512BW-NEXT:    kshiftrw $14, %k2, %k44459; AVX512BW-NEXT:    korw %k4, %k3, %k34460; AVX512BW-NEXT:    movw $-5, %ax4461; AVX512BW-NEXT:    kmovd %eax, %k14462; AVX512BW-NEXT:    kmovw %k1, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill4463; AVX512BW-NEXT:    kandw %k1, %k3, %k34464; AVX512BW-NEXT:    kshiftrw $13, %k2, %k44465; AVX512BW-NEXT:    korw %k4, %k3, %k34466; AVX512BW-NEXT:    movw $-9, %ax4467; AVX512BW-NEXT:    kmovd %eax, %k14468; AVX512BW-NEXT:    kmovw %k1, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill4469; AVX512BW-NEXT:    kandw %k1, %k3, %k34470; AVX512BW-NEXT:    kshiftrw $12, %k2, %k44471; AVX512BW-NEXT:    korw %k4, %k3, %k34472; AVX512BW-NEXT:    movw $-17, %ax4473; AVX512BW-NEXT:    kmovd %eax, %k14474; AVX512BW-NEXT:    kmovw %k1, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill4475; AVX512BW-NEXT:    kandw %k1, %k3, %k34476; AVX512BW-NEXT:    kshiftrw $11, %k2, %k24477; AVX512BW-NEXT:    korw %k2, %k3, %k24478; AVX512BW-NEXT:    movw $-33, %ax4479; AVX512BW-NEXT:    kmovd %eax, %k14480; AVX512BW-NEXT:    kmovw %k1, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill4481; AVX512BW-NEXT:    kandw %k1, %k2, %k24482; AVX512BW-NEXT:    kshiftlw $15, %k0, %k04483; AVX512BW-NEXT:    kshiftrw $10, %k0, %k34484; AVX512BW-NEXT:    korw %k3, %k2, %k24485; AVX512BW-NEXT:    movw $-65, %ax4486; AVX512BW-NEXT:    kmovd %eax, %k14487; AVX512BW-NEXT:    kmovw %k1, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill4488; AVX512BW-NEXT:    kandw %k1, %k2, %k24489; AVX512BW-NEXT:    kshiftrw $9, %k0, %k34490; AVX512BW-NEXT:    korw %k3, %k2, %k24491; AVX512BW-NEXT:    movw $-129, %ax4492; AVX512BW-NEXT:    kmovd %eax, %k14493; AVX512BW-NEXT:    kmovw %k1, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill4494; AVX512BW-NEXT:    kandw %k1, %k2, %k24495; AVX512BW-NEXT:    kshiftrw $8, %k0, %k34496; AVX512BW-NEXT:    korw %k3, %k2, %k24497; AVX512BW-NEXT:    movw $-257, %ax # imm = 0xFEFF4498; AVX512BW-NEXT:    kmovd %eax, %k14499; AVX512BW-NEXT:    kmovw %k1, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill4500; AVX512BW-NEXT:    kandw %k1, %k2, %k24501; AVX512BW-NEXT:    kshiftrw $7, %k0, %k34502; AVX512BW-NEXT:    korw %k3, %k2, %k24503; AVX512BW-NEXT:    movw $-513, %ax # imm = 0xFDFF4504; AVX512BW-NEXT:    kmovd %eax, %k14505; AVX512BW-NEXT:    kmovw %k1, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill4506; AVX512BW-NEXT:    kandw %k1, %k2, %k24507; AVX512BW-NEXT:    kshiftrw $6, %k0, %k04508; AVX512BW-NEXT:    korw %k0, %k2, %k04509; AVX512BW-NEXT:    movw $-1025, %ax # imm = 0xFBFF4510; AVX512BW-NEXT:    kmovd %eax, %k14511; AVX512BW-NEXT:    kmovw %k1, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill4512; AVX512BW-NEXT:    kandw %k1, %k0, %k34513; AVX512BW-NEXT:    kshiftrq $2, %k5, %k04514; AVX512BW-NEXT:    kshiftlw $15, %k0, %k24515; AVX512BW-NEXT:    kshiftrw $5, %k2, %k44516; AVX512BW-NEXT:    korw %k4, %k3, %k34517; AVX512BW-NEXT:    movw $-2049, %ax # imm = 0xF7FF4518; AVX512BW-NEXT:    kmovd %eax, %k14519; AVX512BW-NEXT:    kmovw %k1, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill4520; AVX512BW-NEXT:    kandw %k1, %k3, %k34521; AVX512BW-NEXT:    kshiftrw $4, %k2, %k44522; AVX512BW-NEXT:    korw %k4, %k3, %k34523; AVX512BW-NEXT:    movw $-4097, %ax # imm = 0xEFFF4524; AVX512BW-NEXT:    kmovd %eax, %k14525; AVX512BW-NEXT:    kmovw %k1, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill4526; AVX512BW-NEXT:    kandw %k1, %k3, %k34527; AVX512BW-NEXT:    kshiftrw $3, %k2, %k74528; AVX512BW-NEXT:    korw %k7, %k3, %k74529; AVX512BW-NEXT:    movw $-8193, %ax # imm = 0xDFFF4530; AVX512BW-NEXT:    kmovd %eax, %k14531; AVX512BW-NEXT:    kmovw %k1, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill4532; AVX512BW-NEXT:    kandw %k1, %k7, %k74533; AVX512BW-NEXT:    kshiftrw $2, %k2, %k24534; AVX512BW-NEXT:    korw %k2, %k7, %k74535; AVX512BW-NEXT:    movw $-16385, %ax # imm = 0xBFFF4536; AVX512BW-NEXT:    kmovd %eax, %k64537; AVX512BW-NEXT:    kandw %k6, %k7, %k74538; AVX512BW-NEXT:    kmovw %k6, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill4539; AVX512BW-NEXT:    kshiftlw $14, %k0, %k04540; AVX512BW-NEXT:    korw %k0, %k7, %k04541; AVX512BW-NEXT:    kshiftlw $1, %k0, %k04542; AVX512BW-NEXT:    kshiftrw $1, %k0, %k14543; AVX512BW-NEXT:    kshiftrq $3, %k5, %k74544; AVX512BW-NEXT:    kshiftlw $15, %k7, %k04545; AVX512BW-NEXT:    korw %k0, %k1, %k14546; AVX512BW-NEXT:    vmovdqa32 (%rsi), %zmm0 {%k1} {z}4547; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload4548; AVX512BW-NEXT:    kandw %k2, %k7, %k14549; AVX512BW-NEXT:    kshiftrw $14, %k0, %k74550; AVX512BW-NEXT:    korw %k7, %k1, %k14551; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload4552; AVX512BW-NEXT:    kandw %k3, %k1, %k14553; AVX512BW-NEXT:    kshiftrw $13, %k0, %k74554; AVX512BW-NEXT:    korw %k7, %k1, %k14555; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload4556; AVX512BW-NEXT:    kandw %k3, %k1, %k14557; AVX512BW-NEXT:    kshiftrw $12, %k0, %k04558; AVX512BW-NEXT:    korw %k0, %k1, %k04559; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload4560; AVX512BW-NEXT:    kandw %k1, %k0, %k04561; AVX512BW-NEXT:    kshiftrq $4, %k5, %k14562; AVX512BW-NEXT:    kshiftlw $15, %k1, %k14563; AVX512BW-NEXT:    kshiftrw $11, %k1, %k74564; AVX512BW-NEXT:    korw %k7, %k0, %k04565; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload4566; AVX512BW-NEXT:    kandw %k3, %k0, %k04567; AVX512BW-NEXT:    kshiftrw $10, %k1, %k74568; AVX512BW-NEXT:    korw %k7, %k0, %k04569; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload4570; AVX512BW-NEXT:    kandw %k4, %k0, %k04571; AVX512BW-NEXT:    kshiftrw $9, %k1, %k74572; AVX512BW-NEXT:    korw %k7, %k0, %k04573; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload4574; AVX512BW-NEXT:    kandw %k4, %k0, %k04575; AVX512BW-NEXT:    kshiftrw $8, %k1, %k74576; AVX512BW-NEXT:    korw %k7, %k0, %k04577; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload4578; AVX512BW-NEXT:    kandw %k4, %k0, %k04579; AVX512BW-NEXT:    kshiftrw $7, %k1, %k14580; AVX512BW-NEXT:    korw %k1, %k0, %k04581; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload4582; AVX512BW-NEXT:    kandw %k1, %k0, %k04583; AVX512BW-NEXT:    kshiftrq $5, %k5, %k14584; AVX512BW-NEXT:    kshiftlw $15, %k1, %k14585; AVX512BW-NEXT:    kshiftrw $6, %k1, %k74586; AVX512BW-NEXT:    korw %k7, %k0, %k04587; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload4588; AVX512BW-NEXT:    kandw %k4, %k0, %k04589; AVX512BW-NEXT:    kshiftrw $5, %k1, %k74590; AVX512BW-NEXT:    korw %k7, %k0, %k04591; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload4592; AVX512BW-NEXT:    kandw %k4, %k0, %k04593; AVX512BW-NEXT:    kshiftrw $4, %k1, %k74594; AVX512BW-NEXT:    korw %k7, %k0, %k04595; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k7 # 2-byte Reload4596; AVX512BW-NEXT:    kandw %k7, %k0, %k04597; AVX512BW-NEXT:    kshiftrw $3, %k1, %k74598; AVX512BW-NEXT:    korw %k7, %k0, %k04599; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k7 # 2-byte Reload4600; AVX512BW-NEXT:    kandw %k7, %k0, %k04601; AVX512BW-NEXT:    kshiftrw $2, %k1, %k14602; AVX512BW-NEXT:    korw %k1, %k0, %k04603; AVX512BW-NEXT:    kandw %k6, %k0, %k04604; AVX512BW-NEXT:    kshiftrq $6, %k5, %k14605; AVX512BW-NEXT:    kshiftlw $14, %k1, %k74606; AVX512BW-NEXT:    korw %k7, %k0, %k04607; AVX512BW-NEXT:    kshiftlw $1, %k0, %k04608; AVX512BW-NEXT:    kshiftrw $1, %k0, %k04609; AVX512BW-NEXT:    kshiftlw $15, %k1, %k74610; AVX512BW-NEXT:    korw %k7, %k0, %k64611; AVX512BW-NEXT:    vmovdqa32 64(%rsi), %zmm1 {%k6} {z}4612; AVX512BW-NEXT:    kandw %k2, %k1, %k04613; AVX512BW-NEXT:    kshiftrw $14, %k7, %k14614; AVX512BW-NEXT:    korw %k1, %k0, %k04615; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload4616; AVX512BW-NEXT:    kandw %k2, %k0, %k04617; AVX512BW-NEXT:    kshiftrw $13, %k7, %k14618; AVX512BW-NEXT:    korw %k1, %k0, %k04619; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload4620; AVX512BW-NEXT:    kandw %k1, %k0, %k04621; AVX512BW-NEXT:    kshiftrq $7, %k5, %k14622; AVX512BW-NEXT:    kshiftlw $15, %k1, %k14623; AVX512BW-NEXT:    kshiftrw $12, %k1, %k64624; AVX512BW-NEXT:    korw %k6, %k0, %k04625; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload4626; AVX512BW-NEXT:    kandw %k6, %k0, %k04627; AVX512BW-NEXT:    kshiftrw $11, %k1, %k64628; AVX512BW-NEXT:    korw %k6, %k0, %k04629; AVX512BW-NEXT:    kandw %k3, %k0, %k04630; AVX512BW-NEXT:    kshiftrw $10, %k1, %k64631; AVX512BW-NEXT:    korw %k6, %k0, %k04632; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload4633; AVX512BW-NEXT:    kandw %k3, %k0, %k04634; AVX512BW-NEXT:    kshiftrw $9, %k1, %k64635; AVX512BW-NEXT:    korw %k6, %k0, %k04636; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload4637; AVX512BW-NEXT:    kandw %k6, %k0, %k04638; AVX512BW-NEXT:    kshiftrw $8, %k1, %k14639; AVX512BW-NEXT:    korw %k1, %k0, %k04640; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload4641; AVX512BW-NEXT:    kandw %k1, %k0, %k04642; AVX512BW-NEXT:    kshiftrq $8, %k5, %k14643; AVX512BW-NEXT:    kshiftlw $15, %k1, %k14644; AVX512BW-NEXT:    kshiftrw $7, %k1, %k64645; AVX512BW-NEXT:    korw %k6, %k0, %k04646; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload4647; AVX512BW-NEXT:    kandw %k6, %k0, %k04648; AVX512BW-NEXT:    kshiftrw $6, %k1, %k64649; AVX512BW-NEXT:    korw %k6, %k0, %k04650; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload4651; AVX512BW-NEXT:    kandw %k6, %k0, %k04652; AVX512BW-NEXT:    kshiftrw $5, %k1, %k64653; AVX512BW-NEXT:    korw %k6, %k0, %k04654; AVX512BW-NEXT:    kandw %k4, %k0, %k04655; AVX512BW-NEXT:    kshiftrw $4, %k1, %k64656; AVX512BW-NEXT:    korw %k6, %k0, %k04657; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload4658; AVX512BW-NEXT:    kandw %k4, %k0, %k04659; AVX512BW-NEXT:    kshiftrw $3, %k1, %k14660; AVX512BW-NEXT:    korw %k1, %k0, %k04661; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload4662; AVX512BW-NEXT:    kandw %k1, %k0, %k04663; AVX512BW-NEXT:    kshiftrq $9, %k5, %k14664; AVX512BW-NEXT:    kshiftlw $15, %k1, %k64665; AVX512BW-NEXT:    kshiftrw $2, %k6, %k74666; AVX512BW-NEXT:    korw %k7, %k0, %k04667; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k7 # 2-byte Reload4668; AVX512BW-NEXT:    kandw %k7, %k0, %k04669; AVX512BW-NEXT:    kshiftlw $14, %k1, %k74670; AVX512BW-NEXT:    korw %k7, %k0, %k04671; AVX512BW-NEXT:    kshiftlw $1, %k0, %k04672; AVX512BW-NEXT:    kshiftrw $1, %k0, %k04673; AVX512BW-NEXT:    korw %k6, %k0, %k74674; AVX512BW-NEXT:    vmovdqa32 128(%rsi), %zmm2 {%k7} {z}4675; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k0 # 2-byte Reload4676; AVX512BW-NEXT:    kandw %k0, %k1, %k04677; AVX512BW-NEXT:    kshiftrw $14, %k6, %k14678; AVX512BW-NEXT:    korw %k1, %k0, %k04679; AVX512BW-NEXT:    kandw %k2, %k0, %k04680; AVX512BW-NEXT:    kshiftrq $10, %k5, %k14681; AVX512BW-NEXT:    kshiftlw $15, %k1, %k14682; AVX512BW-NEXT:    kshiftrw $13, %k1, %k64683; AVX512BW-NEXT:    korw %k6, %k0, %k04684; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload4685; AVX512BW-NEXT:    kandw %k2, %k0, %k04686; AVX512BW-NEXT:    kshiftrw $12, %k1, %k64687; AVX512BW-NEXT:    korw %k6, %k0, %k04688; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload4689; AVX512BW-NEXT:    kandw %k6, %k0, %k04690; AVX512BW-NEXT:    kshiftrw $11, %k1, %k64691; AVX512BW-NEXT:    korw %k6, %k0, %k04692; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload4693; AVX512BW-NEXT:    kandw %k6, %k0, %k04694; AVX512BW-NEXT:    kshiftrw $10, %k1, %k64695; AVX512BW-NEXT:    korw %k6, %k0, %k04696; AVX512BW-NEXT:    kandw %k3, %k0, %k04697; AVX512BW-NEXT:    kshiftrw $9, %k1, %k14698; AVX512BW-NEXT:    korw %k1, %k0, %k04699; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload4700; AVX512BW-NEXT:    kandw %k1, %k0, %k04701; AVX512BW-NEXT:    kshiftrq $11, %k5, %k14702; AVX512BW-NEXT:    kshiftlw $15, %k1, %k14703; AVX512BW-NEXT:    kshiftrw $8, %k1, %k64704; AVX512BW-NEXT:    korw %k6, %k0, %k04705; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload4706; AVX512BW-NEXT:    kandw %k3, %k0, %k04707; AVX512BW-NEXT:    kshiftrw $7, %k1, %k64708; AVX512BW-NEXT:    korw %k6, %k0, %k04709; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload4710; AVX512BW-NEXT:    kandw %k6, %k0, %k04711; AVX512BW-NEXT:    kshiftrw $6, %k1, %k64712; AVX512BW-NEXT:    korw %k6, %k0, %k04713; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload4714; AVX512BW-NEXT:    kandw %k6, %k0, %k04715; AVX512BW-NEXT:    kshiftrw $5, %k1, %k64716; AVX512BW-NEXT:    korw %k6, %k0, %k04717; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload4718; AVX512BW-NEXT:    kandw %k6, %k0, %k04719; AVX512BW-NEXT:    kshiftrw $4, %k1, %k14720; AVX512BW-NEXT:    korw %k1, %k0, %k04721; AVX512BW-NEXT:    kandw %k4, %k0, %k04722; AVX512BW-NEXT:    kshiftrq $12, %k5, %k14723; AVX512BW-NEXT:    kshiftlw $15, %k1, %k64724; AVX512BW-NEXT:    kshiftrw $3, %k6, %k74725; AVX512BW-NEXT:    korw %k7, %k0, %k04726; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload4727; AVX512BW-NEXT:    kandw %k4, %k0, %k04728; AVX512BW-NEXT:    kshiftrw $2, %k6, %k74729; AVX512BW-NEXT:    korw %k7, %k0, %k04730; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k7 # 2-byte Reload4731; AVX512BW-NEXT:    kandw %k7, %k0, %k04732; AVX512BW-NEXT:    kshiftlw $14, %k1, %k74733; AVX512BW-NEXT:    korw %k7, %k0, %k04734; AVX512BW-NEXT:    kshiftlw $1, %k0, %k04735; AVX512BW-NEXT:    kshiftrw $1, %k0, %k04736; AVX512BW-NEXT:    korw %k6, %k0, %k64737; AVX512BW-NEXT:    vmovdqa32 192(%rsi), %zmm3 {%k6} {z}4738; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k0 # 2-byte Reload4739; AVX512BW-NEXT:    kandw %k0, %k1, %k04740; AVX512BW-NEXT:    kshiftrq $13, %k5, %k14741; AVX512BW-NEXT:    kshiftlw $15, %k1, %k14742; AVX512BW-NEXT:    kshiftrw $14, %k1, %k64743; AVX512BW-NEXT:    korw %k6, %k0, %k04744; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload4745; AVX512BW-NEXT:    kandw %k6, %k0, %k04746; AVX512BW-NEXT:    kshiftrw $13, %k1, %k64747; AVX512BW-NEXT:    korw %k6, %k0, %k04748; AVX512BW-NEXT:    kandw %k2, %k0, %k04749; AVX512BW-NEXT:    kshiftrw $12, %k1, %k64750; AVX512BW-NEXT:    korw %k6, %k0, %k04751; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload4752; AVX512BW-NEXT:    kandw %k2, %k0, %k04753; AVX512BW-NEXT:    kshiftrw $11, %k1, %k64754; AVX512BW-NEXT:    korw %k6, %k0, %k04755; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload4756; AVX512BW-NEXT:    kandw %k6, %k0, %k04757; AVX512BW-NEXT:    kshiftrw $10, %k1, %k14758; AVX512BW-NEXT:    korw %k1, %k0, %k04759; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload4760; AVX512BW-NEXT:    kandw %k1, %k0, %k04761; AVX512BW-NEXT:    kshiftrq $14, %k5, %k14762; AVX512BW-NEXT:    kshiftlw $15, %k1, %k14763; AVX512BW-NEXT:    kshiftrw $9, %k1, %k64764; AVX512BW-NEXT:    korw %k6, %k0, %k04765; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload4766; AVX512BW-NEXT:    kandw %k6, %k0, %k04767; AVX512BW-NEXT:    kshiftrw $8, %k1, %k64768; AVX512BW-NEXT:    korw %k6, %k0, %k04769; AVX512BW-NEXT:    kandw %k3, %k0, %k04770; AVX512BW-NEXT:    kshiftrw $7, %k1, %k64771; AVX512BW-NEXT:    korw %k6, %k0, %k04772; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload4773; AVX512BW-NEXT:    kandw %k3, %k0, %k04774; AVX512BW-NEXT:    kshiftrw $6, %k1, %k64775; AVX512BW-NEXT:    korw %k6, %k0, %k04776; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload4777; AVX512BW-NEXT:    kandw %k6, %k0, %k04778; AVX512BW-NEXT:    kshiftrw $5, %k1, %k14779; AVX512BW-NEXT:    korw %k1, %k0, %k04780; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload4781; AVX512BW-NEXT:    kandw %k1, %k0, %k04782; AVX512BW-NEXT:    kshiftrq $15, %k5, %k14783; AVX512BW-NEXT:    kshiftlw $15, %k1, %k64784; AVX512BW-NEXT:    kshiftrw $4, %k6, %k74785; AVX512BW-NEXT:    korw %k7, %k0, %k04786; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k7 # 2-byte Reload4787; AVX512BW-NEXT:    kandw %k7, %k0, %k04788; AVX512BW-NEXT:    kshiftrw $3, %k6, %k74789; AVX512BW-NEXT:    korw %k7, %k0, %k04790; AVX512BW-NEXT:    kandw %k4, %k0, %k04791; AVX512BW-NEXT:    kshiftrw $2, %k6, %k74792; AVX512BW-NEXT:    korw %k7, %k0, %k04793; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload4794; AVX512BW-NEXT:    kandw %k4, %k0, %k04795; AVX512BW-NEXT:    kshiftlw $14, %k1, %k14796; AVX512BW-NEXT:    korw %k1, %k0, %k04797; AVX512BW-NEXT:    kshiftlw $1, %k0, %k04798; AVX512BW-NEXT:    kshiftrw $1, %k0, %k04799; AVX512BW-NEXT:    korw %k6, %k0, %k14800; AVX512BW-NEXT:    vmovdqa32 256(%rsi), %zmm4 {%k1} {z}4801; AVX512BW-NEXT:    kshiftrq $16, %k5, %k04802; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload4803; AVX512BW-NEXT:    kandw %k1, %k0, %k14804; AVX512BW-NEXT:    kshiftlw $15, %k0, %k04805; AVX512BW-NEXT:    kshiftrw $14, %k0, %k64806; AVX512BW-NEXT:    korw %k6, %k1, %k14807; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload4808; AVX512BW-NEXT:    kandw %k6, %k1, %k14809; AVX512BW-NEXT:    kshiftrw $13, %k0, %k64810; AVX512BW-NEXT:    korw %k6, %k1, %k14811; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload4812; AVX512BW-NEXT:    kandw %k6, %k1, %k14813; AVX512BW-NEXT:    kshiftrw $12, %k0, %k64814; AVX512BW-NEXT:    korw %k6, %k1, %k14815; AVX512BW-NEXT:    kandw %k2, %k1, %k14816; AVX512BW-NEXT:    kshiftrw $11, %k0, %k04817; AVX512BW-NEXT:    korw %k0, %k1, %k04818; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload4819; AVX512BW-NEXT:    kandw %k1, %k0, %k04820; AVX512BW-NEXT:    kshiftrq $17, %k5, %k14821; AVX512BW-NEXT:    kshiftlw $15, %k1, %k14822; AVX512BW-NEXT:    kshiftrw $10, %k1, %k64823; AVX512BW-NEXT:    korw %k6, %k0, %k04824; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload4825; AVX512BW-NEXT:    kandw %k2, %k0, %k04826; AVX512BW-NEXT:    kshiftrw $9, %k1, %k64827; AVX512BW-NEXT:    korw %k6, %k0, %k04828; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload4829; AVX512BW-NEXT:    kandw %k2, %k0, %k04830; AVX512BW-NEXT:    kshiftrw $8, %k1, %k64831; AVX512BW-NEXT:    korw %k6, %k0, %k04832; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload4833; AVX512BW-NEXT:    kandw %k6, %k0, %k04834; AVX512BW-NEXT:    kshiftrw $7, %k1, %k64835; AVX512BW-NEXT:    korw %k6, %k0, %k04836; AVX512BW-NEXT:    kandw %k3, %k0, %k04837; AVX512BW-NEXT:    kshiftrw $6, %k1, %k14838; AVX512BW-NEXT:    korw %k1, %k0, %k04839; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload4840; AVX512BW-NEXT:    kandw %k3, %k0, %k04841; AVX512BW-NEXT:    kshiftrq $18, %k5, %k14842; AVX512BW-NEXT:    kshiftlw $15, %k1, %k64843; AVX512BW-NEXT:    kshiftrw $5, %k6, %k74844; AVX512BW-NEXT:    korw %k7, %k0, %k04845; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k7 # 2-byte Reload4846; AVX512BW-NEXT:    kandw %k7, %k0, %k04847; AVX512BW-NEXT:    kshiftrw $4, %k6, %k74848; AVX512BW-NEXT:    korw %k7, %k0, %k04849; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k7 # 2-byte Reload4850; AVX512BW-NEXT:    kandw %k7, %k0, %k04851; AVX512BW-NEXT:    kshiftrw $3, %k6, %k74852; AVX512BW-NEXT:    korw %k7, %k0, %k04853; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k7 # 2-byte Reload4854; AVX512BW-NEXT:    kandw %k7, %k0, %k04855; AVX512BW-NEXT:    kshiftrw $2, %k6, %k64856; AVX512BW-NEXT:    korw %k6, %k0, %k04857; AVX512BW-NEXT:    kandw %k4, %k0, %k04858; AVX512BW-NEXT:    kshiftlw $14, %k1, %k14859; AVX512BW-NEXT:    korw %k1, %k0, %k04860; AVX512BW-NEXT:    kshiftlw $1, %k0, %k04861; AVX512BW-NEXT:    kshiftrw $1, %k0, %k04862; AVX512BW-NEXT:    kshiftrq $19, %k5, %k14863; AVX512BW-NEXT:    kshiftlw $15, %k1, %k64864; AVX512BW-NEXT:    korw %k6, %k0, %k74865; AVX512BW-NEXT:    vmovdqa32 320(%rsi), %zmm5 {%k7} {z}4866; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k0 # 2-byte Reload4867; AVX512BW-NEXT:    kandw %k0, %k1, %k04868; AVX512BW-NEXT:    kshiftrw $14, %k6, %k14869; AVX512BW-NEXT:    korw %k1, %k0, %k04870; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload4871; AVX512BW-NEXT:    kandw %k1, %k0, %k04872; AVX512BW-NEXT:    kshiftrw $13, %k6, %k14873; AVX512BW-NEXT:    korw %k1, %k0, %k04874; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload4875; AVX512BW-NEXT:    kandw %k1, %k0, %k04876; AVX512BW-NEXT:    kshiftrw $12, %k6, %k14877; AVX512BW-NEXT:    korw %k1, %k0, %k04878; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload4879; AVX512BW-NEXT:    kandw %k1, %k0, %k04880; AVX512BW-NEXT:    kshiftrq $20, %k5, %k14881; AVX512BW-NEXT:    kshiftlw $15, %k1, %k14882; AVX512BW-NEXT:    kshiftrw $11, %k1, %k64883; AVX512BW-NEXT:    korw %k6, %k0, %k04884; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload4885; AVX512BW-NEXT:    kandw %k4, %k0, %k04886; AVX512BW-NEXT:    kshiftrw $10, %k1, %k64887; AVX512BW-NEXT:    korw %k6, %k0, %k04888; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload4889; AVX512BW-NEXT:    kandw %k4, %k0, %k04890; AVX512BW-NEXT:    kshiftrw $9, %k1, %k64891; AVX512BW-NEXT:    korw %k6, %k0, %k04892; AVX512BW-NEXT:    kandw %k2, %k0, %k04893; AVX512BW-NEXT:    kshiftrw $8, %k1, %k64894; AVX512BW-NEXT:    korw %k6, %k0, %k04895; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload4896; AVX512BW-NEXT:    kandw %k2, %k0, %k04897; AVX512BW-NEXT:    kshiftrw $7, %k1, %k14898; AVX512BW-NEXT:    korw %k1, %k0, %k04899; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload4900; AVX512BW-NEXT:    kandw %k1, %k0, %k04901; AVX512BW-NEXT:    kshiftrq $21, %k5, %k14902; AVX512BW-NEXT:    kshiftlw $15, %k1, %k14903; AVX512BW-NEXT:    kshiftrw $6, %k1, %k64904; AVX512BW-NEXT:    korw %k6, %k0, %k04905; AVX512BW-NEXT:    kandw %k3, %k0, %k04906; AVX512BW-NEXT:    kshiftrw $5, %k1, %k64907; AVX512BW-NEXT:    korw %k6, %k0, %k04908; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload4909; AVX512BW-NEXT:    kandw %k4, %k0, %k04910; AVX512BW-NEXT:    kshiftrw $4, %k1, %k64911; AVX512BW-NEXT:    korw %k6, %k0, %k04912; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload4913; AVX512BW-NEXT:    kandw %k2, %k0, %k04914; AVX512BW-NEXT:    kshiftrw $3, %k1, %k64915; AVX512BW-NEXT:    korw %k6, %k0, %k04916; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload4917; AVX512BW-NEXT:    kandw %k3, %k0, %k04918; AVX512BW-NEXT:    kshiftrw $2, %k1, %k14919; AVX512BW-NEXT:    korw %k1, %k0, %k04920; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload4921; AVX512BW-NEXT:    kandw %k1, %k0, %k04922; AVX512BW-NEXT:    kshiftrq $22, %k5, %k14923; AVX512BW-NEXT:    kshiftlw $14, %k1, %k64924; AVX512BW-NEXT:    korw %k6, %k0, %k04925; AVX512BW-NEXT:    kshiftlw $1, %k0, %k04926; AVX512BW-NEXT:    kshiftrw $1, %k0, %k04927; AVX512BW-NEXT:    kshiftlw $15, %k1, %k64928; AVX512BW-NEXT:    korw %k6, %k0, %k74929; AVX512BW-NEXT:    vmovdqa32 384(%rsi), %zmm6 {%k7} {z}4930; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k0 # 2-byte Reload4931; AVX512BW-NEXT:    kandw %k0, %k1, %k04932; AVX512BW-NEXT:    kshiftrw $14, %k6, %k14933; AVX512BW-NEXT:    korw %k1, %k0, %k04934; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload4935; AVX512BW-NEXT:    kandw %k3, %k0, %k04936; AVX512BW-NEXT:    kshiftrw $13, %k6, %k14937; AVX512BW-NEXT:    korw %k1, %k0, %k04938; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload4939; AVX512BW-NEXT:    kandw %k1, %k0, %k04940; AVX512BW-NEXT:    kshiftrq $23, %k5, %k14941; AVX512BW-NEXT:    kshiftlw $15, %k1, %k14942; AVX512BW-NEXT:    kshiftrw $12, %k1, %k64943; AVX512BW-NEXT:    korw %k6, %k0, %k04944; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload4945; AVX512BW-NEXT:    kandw %k6, %k0, %k04946; AVX512BW-NEXT:    kshiftrw $11, %k1, %k64947; AVX512BW-NEXT:    korw %k6, %k0, %k04948; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload4949; AVX512BW-NEXT:    kandw %k6, %k0, %k04950; AVX512BW-NEXT:    kshiftrw $10, %k1, %k64951; AVX512BW-NEXT:    korw %k6, %k0, %k04952; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload4953; AVX512BW-NEXT:    kandw %k6, %k0, %k04954; AVX512BW-NEXT:    kshiftrw $9, %k1, %k64955; AVX512BW-NEXT:    korw %k6, %k0, %k04956; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload4957; AVX512BW-NEXT:    kandw %k6, %k0, %k04958; AVX512BW-NEXT:    kshiftrw $8, %k1, %k14959; AVX512BW-NEXT:    korw %k1, %k0, %k04960; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload4961; AVX512BW-NEXT:    kandw %k1, %k0, %k04962; AVX512BW-NEXT:    kshiftrq $24, %k5, %k14963; AVX512BW-NEXT:    kshiftlw $15, %k1, %k14964; AVX512BW-NEXT:    kshiftrw $7, %k1, %k64965; AVX512BW-NEXT:    korw %k6, %k0, %k04966; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload4967; AVX512BW-NEXT:    kandw %k6, %k0, %k04968; AVX512BW-NEXT:    kshiftrw $6, %k1, %k64969; AVX512BW-NEXT:    korw %k6, %k0, %k04970; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload4971; AVX512BW-NEXT:    kandw %k6, %k0, %k04972; AVX512BW-NEXT:    kshiftrw $5, %k1, %k64973; AVX512BW-NEXT:    korw %k6, %k0, %k04974; AVX512BW-NEXT:    kandw %k4, %k0, %k04975; AVX512BW-NEXT:    kshiftrw $4, %k1, %k64976; AVX512BW-NEXT:    korw %k6, %k0, %k04977; AVX512BW-NEXT:    kandw %k2, %k0, %k04978; AVX512BW-NEXT:    kshiftrw $3, %k1, %k14979; AVX512BW-NEXT:    korw %k1, %k0, %k04980; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload4981; AVX512BW-NEXT:    kandw %k1, %k0, %k04982; AVX512BW-NEXT:    kshiftrq $25, %k5, %k14983; AVX512BW-NEXT:    kshiftlw $15, %k1, %k64984; AVX512BW-NEXT:    kshiftrw $2, %k6, %k74985; AVX512BW-NEXT:    korw %k7, %k0, %k04986; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload4987; AVX512BW-NEXT:    kandw %k2, %k0, %k04988; AVX512BW-NEXT:    kshiftlw $14, %k1, %k74989; AVX512BW-NEXT:    korw %k7, %k0, %k04990; AVX512BW-NEXT:    kshiftlw $1, %k0, %k04991; AVX512BW-NEXT:    kshiftrw $1, %k0, %k04992; AVX512BW-NEXT:    korw %k6, %k0, %k74993; AVX512BW-NEXT:    vmovdqa32 448(%rsi), %zmm7 {%k7} {z}4994; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload4995; AVX512BW-NEXT:    kandw %k2, %k1, %k04996; AVX512BW-NEXT:    kshiftrw $14, %k6, %k14997; AVX512BW-NEXT:    korw %k1, %k0, %k04998; AVX512BW-NEXT:    kandw %k3, %k0, %k04999; AVX512BW-NEXT:    kshiftrq $26, %k5, %k15000; AVX512BW-NEXT:    kshiftlw $15, %k1, %k15001; AVX512BW-NEXT:    kshiftrw $13, %k1, %k65002; AVX512BW-NEXT:    korw %k6, %k0, %k05003; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload5004; AVX512BW-NEXT:    kandw %k3, %k0, %k05005; AVX512BW-NEXT:    kshiftrw $12, %k1, %k65006; AVX512BW-NEXT:    korw %k6, %k0, %k05007; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload5008; AVX512BW-NEXT:    kandw %k3, %k0, %k05009; AVX512BW-NEXT:    kshiftrw $11, %k1, %k65010; AVX512BW-NEXT:    korw %k6, %k0, %k05011; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload5012; AVX512BW-NEXT:    kandw %k3, %k0, %k05013; AVX512BW-NEXT:    kshiftrw $10, %k1, %k65014; AVX512BW-NEXT:    korw %k6, %k0, %k05015; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload5016; AVX512BW-NEXT:    kandw %k4, %k0, %k05017; AVX512BW-NEXT:    kshiftrw $9, %k1, %k15018; AVX512BW-NEXT:    korw %k1, %k0, %k05019; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload5020; AVX512BW-NEXT:    kandw %k1, %k0, %k05021; AVX512BW-NEXT:    kshiftrq $27, %k5, %k15022; AVX512BW-NEXT:    kshiftlw $15, %k1, %k15023; AVX512BW-NEXT:    kshiftrw $8, %k1, %k65024; AVX512BW-NEXT:    korw %k6, %k0, %k05025; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload5026; AVX512BW-NEXT:    kandw %k6, %k0, %k05027; AVX512BW-NEXT:    kshiftrw $7, %k1, %k65028; AVX512BW-NEXT:    korw %k6, %k0, %k05029; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload5030; AVX512BW-NEXT:    kandw %k6, %k0, %k05031; AVX512BW-NEXT:    kshiftrw $6, %k1, %k65032; AVX512BW-NEXT:    korw %k6, %k0, %k05033; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload5034; AVX512BW-NEXT:    kandw %k6, %k0, %k05035; AVX512BW-NEXT:    kshiftrw $5, %k1, %k65036; AVX512BW-NEXT:    korw %k6, %k0, %k05037; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload5038; AVX512BW-NEXT:    kandw %k6, %k0, %k05039; AVX512BW-NEXT:    kshiftrw $4, %k1, %k15040; AVX512BW-NEXT:    korw %k1, %k0, %k05041; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload5042; AVX512BW-NEXT:    kandw %k1, %k0, %k05043; AVX512BW-NEXT:    kshiftrq $28, %k5, %k15044; AVX512BW-NEXT:    kshiftlw $15, %k1, %k65045; AVX512BW-NEXT:    kshiftrw $3, %k6, %k75046; AVX512BW-NEXT:    korw %k7, %k0, %k05047; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k7 # 2-byte Reload5048; AVX512BW-NEXT:    kandw %k7, %k0, %k05049; AVX512BW-NEXT:    kshiftrw $2, %k6, %k75050; AVX512BW-NEXT:    korw %k7, %k0, %k05051; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k7 # 2-byte Reload5052; AVX512BW-NEXT:    kandw %k7, %k0, %k05053; AVX512BW-NEXT:    kshiftlw $14, %k1, %k75054; AVX512BW-NEXT:    korw %k7, %k0, %k05055; AVX512BW-NEXT:    kshiftlw $1, %k0, %k05056; AVX512BW-NEXT:    kshiftrw $1, %k0, %k05057; AVX512BW-NEXT:    korw %k6, %k0, %k65058; AVX512BW-NEXT:    vmovdqa32 512(%rsi), %zmm8 {%k6} {z}5059; AVX512BW-NEXT:    kandw %k2, %k1, %k05060; AVX512BW-NEXT:    kshiftrq $29, %k5, %k15061; AVX512BW-NEXT:    kshiftlw $15, %k1, %k15062; AVX512BW-NEXT:    kshiftrw $14, %k1, %k65063; AVX512BW-NEXT:    korw %k6, %k0, %k05064; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload5065; AVX512BW-NEXT:    kandw %k2, %k0, %k05066; AVX512BW-NEXT:    kshiftrw $13, %k1, %k65067; AVX512BW-NEXT:    korw %k6, %k0, %k05068; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload5069; AVX512BW-NEXT:    kandw %k6, %k0, %k05070; AVX512BW-NEXT:    kshiftrw $12, %k1, %k65071; AVX512BW-NEXT:    korw %k6, %k0, %k05072; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload5073; AVX512BW-NEXT:    kandw %k6, %k0, %k05074; AVX512BW-NEXT:    kshiftrw $11, %k1, %k65075; AVX512BW-NEXT:    korw %k6, %k0, %k05076; AVX512BW-NEXT:    kandw %k3, %k0, %k05077; AVX512BW-NEXT:    kshiftrw $10, %k1, %k15078; AVX512BW-NEXT:    korw %k1, %k0, %k05079; AVX512BW-NEXT:    kandw %k4, %k0, %k05080; AVX512BW-NEXT:    kshiftrq $30, %k5, %k15081; AVX512BW-NEXT:    kshiftlw $15, %k1, %k15082; AVX512BW-NEXT:    kshiftrw $9, %k1, %k65083; AVX512BW-NEXT:    korw %k6, %k0, %k05084; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload5085; AVX512BW-NEXT:    kandw %k3, %k0, %k05086; AVX512BW-NEXT:    kshiftrw $8, %k1, %k65087; AVX512BW-NEXT:    korw %k6, %k0, %k05088; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload5089; AVX512BW-NEXT:    kandw %k3, %k0, %k05090; AVX512BW-NEXT:    kshiftrw $7, %k1, %k65091; AVX512BW-NEXT:    korw %k6, %k0, %k05092; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload5093; AVX512BW-NEXT:    kandw %k4, %k0, %k05094; AVX512BW-NEXT:    kshiftrw $6, %k1, %k65095; AVX512BW-NEXT:    korw %k6, %k0, %k05096; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload5097; AVX512BW-NEXT:    kandw %k4, %k0, %k05098; AVX512BW-NEXT:    kshiftrw $5, %k1, %k15099; AVX512BW-NEXT:    korw %k1, %k0, %k05100; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload5101; AVX512BW-NEXT:    kandw %k1, %k0, %k05102; AVX512BW-NEXT:    kshiftrq $31, %k5, %k15103; AVX512BW-NEXT:    kshiftlw $15, %k1, %k65104; AVX512BW-NEXT:    kshiftrw $4, %k6, %k75105; AVX512BW-NEXT:    korw %k7, %k0, %k05106; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload5107; AVX512BW-NEXT:    kandw %k4, %k0, %k05108; AVX512BW-NEXT:    kshiftrw $3, %k6, %k75109; AVX512BW-NEXT:    korw %k7, %k0, %k05110; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload5111; AVX512BW-NEXT:    kandw %k4, %k0, %k05112; AVX512BW-NEXT:    kshiftrw $2, %k6, %k75113; AVX512BW-NEXT:    korw %k7, %k0, %k05114; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload5115; AVX512BW-NEXT:    kandw %k4, %k0, %k05116; AVX512BW-NEXT:    kshiftlw $14, %k1, %k15117; AVX512BW-NEXT:    korw %k1, %k0, %k05118; AVX512BW-NEXT:    kshiftlw $1, %k0, %k05119; AVX512BW-NEXT:    kshiftrw $1, %k0, %k05120; AVX512BW-NEXT:    korw %k6, %k0, %k15121; AVX512BW-NEXT:    vmovdqa32 576(%rsi), %zmm9 {%k1} {z}5122; AVX512BW-NEXT:    kshiftrq $32, %k5, %k05123; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload5124; AVX512BW-NEXT:    kandw %k1, %k0, %k15125; AVX512BW-NEXT:    kshiftlw $15, %k0, %k05126; AVX512BW-NEXT:    kshiftrw $14, %k0, %k65127; AVX512BW-NEXT:    korw %k6, %k1, %k15128; AVX512BW-NEXT:    kandw %k2, %k1, %k15129; AVX512BW-NEXT:    kshiftrw $13, %k0, %k65130; AVX512BW-NEXT:    korw %k6, %k1, %k15131; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload5132; AVX512BW-NEXT:    kandw %k2, %k1, %k15133; AVX512BW-NEXT:    kshiftrw $12, %k0, %k65134; AVX512BW-NEXT:    korw %k6, %k1, %k15135; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload5136; AVX512BW-NEXT:    kandw %k4, %k1, %k15137; AVX512BW-NEXT:    kshiftrw $11, %k0, %k05138; AVX512BW-NEXT:    korw %k0, %k1, %k05139; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload5140; AVX512BW-NEXT:    kandw %k1, %k0, %k05141; AVX512BW-NEXT:    kshiftrq $33, %k5, %k15142; AVX512BW-NEXT:    kshiftlw $15, %k1, %k15143; AVX512BW-NEXT:    kshiftrw $10, %k1, %k65144; AVX512BW-NEXT:    korw %k6, %k0, %k05145; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload5146; AVX512BW-NEXT:    kandw %k6, %k0, %k05147; AVX512BW-NEXT:    kshiftrw $9, %k1, %k65148; AVX512BW-NEXT:    korw %k6, %k0, %k05149; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload5150; AVX512BW-NEXT:    kandw %k6, %k0, %k05151; AVX512BW-NEXT:    kshiftrw $8, %k1, %k65152; AVX512BW-NEXT:    korw %k6, %k0, %k05153; AVX512BW-NEXT:    kandw %k3, %k0, %k05154; AVX512BW-NEXT:    kshiftrw $7, %k1, %k65155; AVX512BW-NEXT:    korw %k6, %k0, %k05156; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload5157; AVX512BW-NEXT:    kandw %k3, %k0, %k05158; AVX512BW-NEXT:    kshiftrw $6, %k1, %k15159; AVX512BW-NEXT:    korw %k1, %k0, %k05160; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload5161; AVX512BW-NEXT:    kandw %k1, %k0, %k05162; AVX512BW-NEXT:    kshiftrq $34, %k5, %k15163; AVX512BW-NEXT:    kshiftlw $15, %k1, %k65164; AVX512BW-NEXT:    kshiftrw $5, %k6, %k75165; AVX512BW-NEXT:    korw %k7, %k0, %k05166; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload5167; AVX512BW-NEXT:    kandw %k3, %k0, %k05168; AVX512BW-NEXT:    kshiftrw $4, %k6, %k75169; AVX512BW-NEXT:    korw %k7, %k0, %k05170; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload5171; AVX512BW-NEXT:    kandw %k3, %k0, %k05172; AVX512BW-NEXT:    kshiftrw $3, %k6, %k75173; AVX512BW-NEXT:    korw %k7, %k0, %k05174; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload5175; AVX512BW-NEXT:    kandw %k3, %k0, %k05176; AVX512BW-NEXT:    kshiftrw $2, %k6, %k65177; AVX512BW-NEXT:    korw %k6, %k0, %k05178; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload5179; AVX512BW-NEXT:    kandw %k6, %k0, %k05180; AVX512BW-NEXT:    kshiftlw $14, %k1, %k15181; AVX512BW-NEXT:    korw %k1, %k0, %k05182; AVX512BW-NEXT:    kshiftlw $1, %k0, %k05183; AVX512BW-NEXT:    kshiftrw $1, %k0, %k05184; AVX512BW-NEXT:    kshiftrq $35, %k5, %k15185; AVX512BW-NEXT:    kshiftlw $15, %k1, %k65186; AVX512BW-NEXT:    korw %k6, %k0, %k75187; AVX512BW-NEXT:    vmovdqa32 640(%rsi), %zmm10 {%k7} {z}5188; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k0 # 2-byte Reload5189; AVX512BW-NEXT:    kandw %k0, %k1, %k05190; AVX512BW-NEXT:    kshiftrw $14, %k6, %k15191; AVX512BW-NEXT:    korw %k1, %k0, %k05192; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload5193; AVX512BW-NEXT:    kandw %k1, %k0, %k05194; AVX512BW-NEXT:    kshiftrw $13, %k6, %k15195; AVX512BW-NEXT:    korw %k1, %k0, %k05196; AVX512BW-NEXT:    kandw %k2, %k0, %k05197; AVX512BW-NEXT:    kshiftrw $12, %k6, %k15198; AVX512BW-NEXT:    korw %k1, %k0, %k05199; AVX512BW-NEXT:    kandw %k4, %k0, %k05200; AVX512BW-NEXT:    kshiftrq $36, %k5, %k15201; AVX512BW-NEXT:    kshiftlw $15, %k1, %k15202; AVX512BW-NEXT:    kshiftrw $11, %k1, %k65203; AVX512BW-NEXT:    korw %k6, %k0, %k05204; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload5205; AVX512BW-NEXT:    kandw %k2, %k0, %k05206; AVX512BW-NEXT:    kshiftrw $10, %k1, %k65207; AVX512BW-NEXT:    korw %k6, %k0, %k05208; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload5209; AVX512BW-NEXT:    kandw %k4, %k0, %k05210; AVX512BW-NEXT:    kshiftrw $9, %k1, %k65211; AVX512BW-NEXT:    korw %k6, %k0, %k05212; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload5213; AVX512BW-NEXT:    kandw %k6, %k0, %k05214; AVX512BW-NEXT:    kshiftrw $8, %k1, %k65215; AVX512BW-NEXT:    korw %k6, %k0, %k05216; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload5217; AVX512BW-NEXT:    kandw %k6, %k0, %k05218; AVX512BW-NEXT:    kshiftrw $7, %k1, %k15219; AVX512BW-NEXT:    korw %k1, %k0, %k05220; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload5221; AVX512BW-NEXT:    kandw %k1, %k0, %k05222; AVX512BW-NEXT:    kshiftrq $37, %k5, %k15223; AVX512BW-NEXT:    kshiftlw $15, %k1, %k15224; AVX512BW-NEXT:    kshiftrw $6, %k1, %k65225; AVX512BW-NEXT:    korw %k6, %k0, %k05226; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload5227; AVX512BW-NEXT:    kandw %k6, %k0, %k05228; AVX512BW-NEXT:    kshiftrw $5, %k1, %k65229; AVX512BW-NEXT:    korw %k6, %k0, %k05230; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload5231; AVX512BW-NEXT:    kandw %k6, %k0, %k05232; AVX512BW-NEXT:    kshiftrw $4, %k1, %k65233; AVX512BW-NEXT:    korw %k6, %k0, %k05234; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload5235; AVX512BW-NEXT:    kandw %k6, %k0, %k05236; AVX512BW-NEXT:    kshiftrw $3, %k1, %k65237; AVX512BW-NEXT:    korw %k6, %k0, %k05238; AVX512BW-NEXT:    kandw %k3, %k0, %k05239; AVX512BW-NEXT:    kshiftrw $2, %k1, %k15240; AVX512BW-NEXT:    korw %k1, %k0, %k05241; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload5242; AVX512BW-NEXT:    kandw %k1, %k0, %k05243; AVX512BW-NEXT:    kshiftrq $38, %k5, %k15244; AVX512BW-NEXT:    kshiftlw $14, %k1, %k65245; AVX512BW-NEXT:    korw %k6, %k0, %k05246; AVX512BW-NEXT:    kshiftlw $1, %k0, %k05247; AVX512BW-NEXT:    kshiftrw $1, %k0, %k05248; AVX512BW-NEXT:    kshiftlw $15, %k1, %k65249; AVX512BW-NEXT:    korw %k6, %k0, %k75250; AVX512BW-NEXT:    vmovdqa32 704(%rsi), %zmm11 {%k7} {z}5251; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload5252; AVX512BW-NEXT:    kandw %k3, %k1, %k05253; AVX512BW-NEXT:    kshiftrw $14, %k6, %k15254; AVX512BW-NEXT:    korw %k1, %k0, %k05255; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload5256; AVX512BW-NEXT:    kandw %k1, %k0, %k05257; AVX512BW-NEXT:    kshiftrw $13, %k6, %k15258; AVX512BW-NEXT:    korw %k1, %k0, %k05259; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload5260; AVX512BW-NEXT:    kandw %k1, %k0, %k05261; AVX512BW-NEXT:    kshiftrq $39, %k5, %k15262; AVX512BW-NEXT:    kshiftlw $15, %k1, %k15263; AVX512BW-NEXT:    kshiftrw $12, %k1, %k65264; AVX512BW-NEXT:    korw %k6, %k0, %k05265; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload5266; AVX512BW-NEXT:    kandw %k6, %k0, %k05267; AVX512BW-NEXT:    kshiftrw $11, %k1, %k65268; AVX512BW-NEXT:    korw %k6, %k0, %k05269; AVX512BW-NEXT:    kandw %k2, %k0, %k05270; AVX512BW-NEXT:    kshiftrw $10, %k1, %k65271; AVX512BW-NEXT:    korw %k6, %k0, %k05272; AVX512BW-NEXT:    kandw %k4, %k0, %k05273; AVX512BW-NEXT:    kshiftrw $9, %k1, %k65274; AVX512BW-NEXT:    korw %k6, %k0, %k05275; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload5276; AVX512BW-NEXT:    kandw %k4, %k0, %k05277; AVX512BW-NEXT:    kshiftrw $8, %k1, %k15278; AVX512BW-NEXT:    korw %k1, %k0, %k05279; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload5280; AVX512BW-NEXT:    kandw %k1, %k0, %k05281; AVX512BW-NEXT:    kshiftrq $40, %k5, %k15282; AVX512BW-NEXT:    kshiftlw $15, %k1, %k15283; AVX512BW-NEXT:    kshiftrw $7, %k1, %k65284; AVX512BW-NEXT:    korw %k6, %k0, %k05285; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload5286; AVX512BW-NEXT:    kandw %k2, %k0, %k05287; AVX512BW-NEXT:    kshiftrw $6, %k1, %k65288; AVX512BW-NEXT:    korw %k6, %k0, %k05289; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload5290; AVX512BW-NEXT:    kandw %k6, %k0, %k05291; AVX512BW-NEXT:    kshiftrw $5, %k1, %k65292; AVX512BW-NEXT:    korw %k6, %k0, %k05293; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload5294; AVX512BW-NEXT:    kandw %k6, %k0, %k05295; AVX512BW-NEXT:    kshiftrw $4, %k1, %k65296; AVX512BW-NEXT:    korw %k6, %k0, %k05297; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload5298; AVX512BW-NEXT:    kandw %k6, %k0, %k05299; AVX512BW-NEXT:    kshiftrw $3, %k1, %k15300; AVX512BW-NEXT:    korw %k1, %k0, %k05301; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload5302; AVX512BW-NEXT:    kandw %k1, %k0, %k05303; AVX512BW-NEXT:    kshiftrq $41, %k5, %k15304; AVX512BW-NEXT:    kshiftlw $15, %k1, %k65305; AVX512BW-NEXT:    kshiftrw $2, %k6, %k75306; AVX512BW-NEXT:    korw %k7, %k0, %k05307; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k7 # 2-byte Reload5308; AVX512BW-NEXT:    kandw %k7, %k0, %k05309; AVX512BW-NEXT:    kshiftlw $14, %k1, %k75310; AVX512BW-NEXT:    korw %k7, %k0, %k05311; AVX512BW-NEXT:    kshiftlw $1, %k0, %k05312; AVX512BW-NEXT:    kshiftrw $1, %k0, %k05313; AVX512BW-NEXT:    korw %k6, %k0, %k75314; AVX512BW-NEXT:    vmovdqa32 768(%rsi), %zmm12 {%k7} {z}5315; AVX512BW-NEXT:    kandw %k3, %k1, %k05316; AVX512BW-NEXT:    kshiftrw $14, %k6, %k15317; AVX512BW-NEXT:    korw %k1, %k0, %k05318; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload5319; AVX512BW-NEXT:    kandw %k1, %k0, %k05320; AVX512BW-NEXT:    kshiftrq $42, %k5, %k15321; AVX512BW-NEXT:    kshiftlw $15, %k1, %k15322; AVX512BW-NEXT:    kshiftrw $13, %k1, %k65323; AVX512BW-NEXT:    korw %k6, %k0, %k05324; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload5325; AVX512BW-NEXT:    kandw %k3, %k0, %k05326; AVX512BW-NEXT:    kshiftrw $12, %k1, %k65327; AVX512BW-NEXT:    korw %k6, %k0, %k05328; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload5329; AVX512BW-NEXT:    kandw %k3, %k0, %k05330; AVX512BW-NEXT:    kshiftrw $11, %k1, %k65331; AVX512BW-NEXT:    korw %k6, %k0, %k05332; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload5333; AVX512BW-NEXT:    kandw %k3, %k0, %k05334; AVX512BW-NEXT:    kshiftrw $10, %k1, %k65335; AVX512BW-NEXT:    korw %k6, %k0, %k05336; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload5337; AVX512BW-NEXT:    kandw %k3, %k0, %k05338; AVX512BW-NEXT:    kshiftrw $9, %k1, %k15339; AVX512BW-NEXT:    korw %k1, %k0, %k05340; AVX512BW-NEXT:    kandw %k4, %k0, %k05341; AVX512BW-NEXT:    kshiftrq $43, %k5, %k15342; AVX512BW-NEXT:    kshiftlw $15, %k1, %k15343; AVX512BW-NEXT:    kshiftrw $8, %k1, %k65344; AVX512BW-NEXT:    korw %k6, %k0, %k05345; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload5346; AVX512BW-NEXT:    kandw %k4, %k0, %k05347; AVX512BW-NEXT:    kshiftrw $7, %k1, %k65348; AVX512BW-NEXT:    korw %k6, %k0, %k05349; AVX512BW-NEXT:    kandw %k2, %k0, %k05350; AVX512BW-NEXT:    kshiftrw $6, %k1, %k65351; AVX512BW-NEXT:    korw %k6, %k0, %k05352; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload5353; AVX512BW-NEXT:    kandw %k3, %k0, %k05354; AVX512BW-NEXT:    kshiftrw $5, %k1, %k65355; AVX512BW-NEXT:    korw %k6, %k0, %k05356; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload5357; AVX512BW-NEXT:    kandw %k2, %k0, %k05358; AVX512BW-NEXT:    kshiftrw $4, %k1, %k15359; AVX512BW-NEXT:    korw %k1, %k0, %k05360; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload5361; AVX512BW-NEXT:    kandw %k1, %k0, %k05362; AVX512BW-NEXT:    kshiftrq $44, %k5, %k15363; AVX512BW-NEXT:    kshiftlw $15, %k1, %k65364; AVX512BW-NEXT:    kshiftrw $3, %k6, %k75365; AVX512BW-NEXT:    korw %k7, %k0, %k05366; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload5367; AVX512BW-NEXT:    kandw %k2, %k0, %k05368; AVX512BW-NEXT:    kshiftrw $2, %k6, %k75369; AVX512BW-NEXT:    korw %k7, %k0, %k05370; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload5371; AVX512BW-NEXT:    kandw %k2, %k0, %k05372; AVX512BW-NEXT:    kshiftlw $14, %k1, %k75373; AVX512BW-NEXT:    korw %k7, %k0, %k05374; AVX512BW-NEXT:    kshiftlw $1, %k0, %k05375; AVX512BW-NEXT:    kshiftrw $1, %k0, %k05376; AVX512BW-NEXT:    korw %k6, %k0, %k65377; AVX512BW-NEXT:    vmovdqa32 832(%rsi), %zmm13 {%k6} {z}5378; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k0 # 2-byte Reload5379; AVX512BW-NEXT:    kandw %k0, %k1, %k05380; AVX512BW-NEXT:    kshiftrq $45, %k5, %k15381; AVX512BW-NEXT:    kshiftlw $15, %k1, %k15382; AVX512BW-NEXT:    kshiftrw $14, %k1, %k65383; AVX512BW-NEXT:    korw %k6, %k0, %k05384; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload5385; AVX512BW-NEXT:    kandw %k6, %k0, %k05386; AVX512BW-NEXT:    kshiftrw $13, %k1, %k65387; AVX512BW-NEXT:    korw %k6, %k0, %k05388; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload5389; AVX512BW-NEXT:    kandw %k6, %k0, %k05390; AVX512BW-NEXT:    kshiftrw $12, %k1, %k65391; AVX512BW-NEXT:    korw %k6, %k0, %k05392; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload5393; AVX512BW-NEXT:    kandw %k6, %k0, %k05394; AVX512BW-NEXT:    kshiftrw $11, %k1, %k65395; AVX512BW-NEXT:    korw %k6, %k0, %k05396; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload5397; AVX512BW-NEXT:    kandw %k6, %k0, %k05398; AVX512BW-NEXT:    kshiftrw $10, %k1, %k15399; AVX512BW-NEXT:    korw %k1, %k0, %k05400; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload5401; AVX512BW-NEXT:    kandw %k1, %k0, %k05402; AVX512BW-NEXT:    kshiftrq $46, %k5, %k15403; AVX512BW-NEXT:    kshiftlw $15, %k1, %k15404; AVX512BW-NEXT:    kshiftrw $9, %k1, %k65405; AVX512BW-NEXT:    korw %k6, %k0, %k05406; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload5407; AVX512BW-NEXT:    kandw %k6, %k0, %k05408; AVX512BW-NEXT:    kshiftrw $8, %k1, %k65409; AVX512BW-NEXT:    korw %k6, %k0, %k05410; AVX512BW-NEXT:    kandw %k4, %k0, %k05411; AVX512BW-NEXT:    kshiftrw $7, %k1, %k65412; AVX512BW-NEXT:    korw %k6, %k0, %k05413; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload5414; AVX512BW-NEXT:    kandw %k4, %k0, %k05415; AVX512BW-NEXT:    kshiftrw $6, %k1, %k65416; AVX512BW-NEXT:    korw %k6, %k0, %k05417; AVX512BW-NEXT:    kandw %k3, %k0, %k05418; AVX512BW-NEXT:    kshiftrw $5, %k1, %k15419; AVX512BW-NEXT:    korw %k1, %k0, %k05420; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload5421; AVX512BW-NEXT:    kandw %k4, %k0, %k05422; AVX512BW-NEXT:    kshiftrq $47, %k5, %k15423; AVX512BW-NEXT:    kshiftlw $15, %k1, %k65424; AVX512BW-NEXT:    kshiftrw $4, %k6, %k75425; AVX512BW-NEXT:    korw %k7, %k0, %k05426; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload5427; AVX512BW-NEXT:    kandw %k3, %k0, %k05428; AVX512BW-NEXT:    kshiftrw $3, %k6, %k75429; AVX512BW-NEXT:    korw %k7, %k0, %k05430; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k7 # 2-byte Reload5431; AVX512BW-NEXT:    kandw %k7, %k0, %k05432; AVX512BW-NEXT:    kshiftrw $2, %k6, %k75433; AVX512BW-NEXT:    korw %k7, %k0, %k05434; AVX512BW-NEXT:    kandw %k2, %k0, %k05435; AVX512BW-NEXT:    kshiftlw $14, %k1, %k15436; AVX512BW-NEXT:    korw %k1, %k0, %k05437; AVX512BW-NEXT:    kshiftlw $1, %k0, %k05438; AVX512BW-NEXT:    kshiftrw $1, %k0, %k05439; AVX512BW-NEXT:    korw %k6, %k0, %k15440; AVX512BW-NEXT:    vmovdqa32 896(%rsi), %zmm14 {%k1} {z}5441; AVX512BW-NEXT:    kshiftrq $48, %k5, %k05442; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload5443; AVX512BW-NEXT:    kandw %k1, %k0, %k15444; AVX512BW-NEXT:    kshiftlw $15, %k0, %k05445; AVX512BW-NEXT:    kshiftrw $14, %k0, %k65446; AVX512BW-NEXT:    korw %k6, %k1, %k15447; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload5448; AVX512BW-NEXT:    kandw %k2, %k1, %k15449; AVX512BW-NEXT:    kshiftrw $13, %k0, %k65450; AVX512BW-NEXT:    korw %k6, %k1, %k15451; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload5452; AVX512BW-NEXT:    kandw %k6, %k1, %k15453; AVX512BW-NEXT:    kshiftrw $12, %k0, %k65454; AVX512BW-NEXT:    korw %k6, %k1, %k15455; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload5456; AVX512BW-NEXT:    kandw %k6, %k1, %k15457; AVX512BW-NEXT:    kshiftrw $11, %k0, %k05458; AVX512BW-NEXT:    korw %k0, %k1, %k05459; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload5460; AVX512BW-NEXT:    kandw %k1, %k0, %k05461; AVX512BW-NEXT:    kshiftrq $49, %k5, %k15462; AVX512BW-NEXT:    kshiftlw $15, %k1, %k15463; AVX512BW-NEXT:    kshiftrw $10, %k1, %k65464; AVX512BW-NEXT:    korw %k6, %k0, %k05465; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload5466; AVX512BW-NEXT:    kandw %k6, %k0, %k05467; AVX512BW-NEXT:    kshiftrw $9, %k1, %k65468; AVX512BW-NEXT:    korw %k6, %k0, %k05469; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload5470; AVX512BW-NEXT:    kandw %k6, %k0, %k05471; AVX512BW-NEXT:    kshiftrw $8, %k1, %k65472; AVX512BW-NEXT:    korw %k6, %k0, %k05473; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload5474; AVX512BW-NEXT:    kandw %k6, %k0, %k05475; AVX512BW-NEXT:    kshiftrw $7, %k1, %k65476; AVX512BW-NEXT:    korw %k6, %k0, %k05477; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload5478; AVX512BW-NEXT:    kandw %k6, %k0, %k05479; AVX512BW-NEXT:    kshiftrw $6, %k1, %k15480; AVX512BW-NEXT:    korw %k1, %k0, %k05481; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload5482; AVX512BW-NEXT:    kandw %k1, %k0, %k05483; AVX512BW-NEXT:    kshiftrq $50, %k5, %k15484; AVX512BW-NEXT:    kshiftlw $15, %k1, %k65485; AVX512BW-NEXT:    kshiftrw $5, %k6, %k75486; AVX512BW-NEXT:    korw %k7, %k0, %k05487; AVX512BW-NEXT:    kandw %k4, %k0, %k05488; AVX512BW-NEXT:    kshiftrw $4, %k6, %k75489; AVX512BW-NEXT:    korw %k7, %k0, %k05490; AVX512BW-NEXT:    kandw %k3, %k0, %k05491; AVX512BW-NEXT:    kshiftrw $3, %k6, %k75492; AVX512BW-NEXT:    korw %k7, %k0, %k05493; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload5494; AVX512BW-NEXT:    kandw %k3, %k0, %k05495; AVX512BW-NEXT:    kshiftrw $2, %k6, %k65496; AVX512BW-NEXT:    korw %k6, %k0, %k05497; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload5498; AVX512BW-NEXT:    kandw %k3, %k0, %k05499; AVX512BW-NEXT:    kshiftlw $14, %k1, %k15500; AVX512BW-NEXT:    korw %k1, %k0, %k05501; AVX512BW-NEXT:    kshiftlw $1, %k0, %k05502; AVX512BW-NEXT:    kshiftrw $1, %k0, %k05503; AVX512BW-NEXT:    kshiftrq $51, %k5, %k15504; AVX512BW-NEXT:    kshiftlw $15, %k1, %k65505; AVX512BW-NEXT:    korw %k6, %k0, %k75506; AVX512BW-NEXT:    vmovdqa32 960(%rsi), %zmm15 {%k7} {z}5507; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k0 # 2-byte Reload5508; AVX512BW-NEXT:    kandw %k0, %k1, %k05509; AVX512BW-NEXT:    kshiftrw $14, %k6, %k15510; AVX512BW-NEXT:    korw %k1, %k0, %k05511; AVX512BW-NEXT:    kandw %k2, %k0, %k05512; AVX512BW-NEXT:    kshiftrw $13, %k6, %k15513; AVX512BW-NEXT:    korw %k1, %k0, %k05514; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload5515; AVX512BW-NEXT:    kandw %k4, %k0, %k05516; AVX512BW-NEXT:    kshiftrw $12, %k6, %k15517; AVX512BW-NEXT:    korw %k1, %k0, %k05518; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload5519; AVX512BW-NEXT:    kandw %k1, %k0, %k05520; AVX512BW-NEXT:    kshiftrq $52, %k5, %k15521; AVX512BW-NEXT:    kshiftlw $15, %k1, %k15522; AVX512BW-NEXT:    kshiftrw $11, %k1, %k65523; AVX512BW-NEXT:    korw %k6, %k0, %k05524; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload5525; AVX512BW-NEXT:    kandw %k2, %k0, %k05526; AVX512BW-NEXT:    kshiftrw $10, %k1, %k65527; AVX512BW-NEXT:    korw %k6, %k0, %k05528; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload5529; AVX512BW-NEXT:    kandw %k2, %k0, %k05530; AVX512BW-NEXT:    kshiftrw $9, %k1, %k65531; AVX512BW-NEXT:    korw %k6, %k0, %k05532; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload5533; AVX512BW-NEXT:    kandw %k2, %k0, %k05534; AVX512BW-NEXT:    kshiftrw $8, %k1, %k65535; AVX512BW-NEXT:    korw %k6, %k0, %k05536; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload5537; AVX512BW-NEXT:    kandw %k2, %k0, %k05538; AVX512BW-NEXT:    kshiftrw $7, %k1, %k15539; AVX512BW-NEXT:    korw %k1, %k0, %k05540; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload5541; AVX512BW-NEXT:    kandw %k1, %k0, %k05542; AVX512BW-NEXT:    kshiftrq $53, %k5, %k15543; AVX512BW-NEXT:    kshiftlw $15, %k1, %k15544; AVX512BW-NEXT:    kshiftrw $6, %k1, %k65545; AVX512BW-NEXT:    korw %k6, %k0, %k05546; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload5547; AVX512BW-NEXT:    kandw %k2, %k0, %k05548; AVX512BW-NEXT:    kshiftrw $5, %k1, %k65549; AVX512BW-NEXT:    korw %k6, %k0, %k05550; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload5551; AVX512BW-NEXT:    kandw %k3, %k0, %k05552; AVX512BW-NEXT:    kshiftrw $4, %k1, %k65553; AVX512BW-NEXT:    korw %k6, %k0, %k05554; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload5555; AVX512BW-NEXT:    kandw %k2, %k0, %k05556; AVX512BW-NEXT:    kshiftrw $3, %k1, %k65557; AVX512BW-NEXT:    korw %k6, %k0, %k05558; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload5559; AVX512BW-NEXT:    kandw %k2, %k0, %k05560; AVX512BW-NEXT:    kshiftrw $2, %k1, %k15561; AVX512BW-NEXT:    korw %k1, %k0, %k05562; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload5563; AVX512BW-NEXT:    kandw %k1, %k0, %k05564; AVX512BW-NEXT:    kshiftrq $54, %k5, %k15565; AVX512BW-NEXT:    kshiftlw $14, %k1, %k65566; AVX512BW-NEXT:    korw %k6, %k0, %k05567; AVX512BW-NEXT:    kshiftlw $1, %k0, %k05568; AVX512BW-NEXT:    kshiftrw $1, %k0, %k05569; AVX512BW-NEXT:    kshiftlw $15, %k1, %k65570; AVX512BW-NEXT:    korw %k6, %k0, %k75571; AVX512BW-NEXT:    vmovdqa32 1024(%rsi), %zmm16 {%k7} {z}5572; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k0 # 2-byte Reload5573; AVX512BW-NEXT:    kandw %k0, %k1, %k05574; AVX512BW-NEXT:    kshiftrw $14, %k6, %k15575; AVX512BW-NEXT:    korw %k1, %k0, %k05576; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload5577; AVX512BW-NEXT:    kandw %k1, %k0, %k05578; AVX512BW-NEXT:    kshiftrw $13, %k6, %k15579; AVX512BW-NEXT:    korw %k1, %k0, %k05580; AVX512BW-NEXT:    kandw %k4, %k0, %k05581; AVX512BW-NEXT:    kshiftrq $55, %k5, %k15582; AVX512BW-NEXT:    kshiftlw $15, %k1, %k15583; AVX512BW-NEXT:    kshiftrw $12, %k1, %k65584; AVX512BW-NEXT:    korw %k6, %k0, %k05585; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload5586; AVX512BW-NEXT:    kandw %k4, %k0, %k05587; AVX512BW-NEXT:    kshiftrw $11, %k1, %k65588; AVX512BW-NEXT:    korw %k6, %k0, %k05589; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload5590; AVX512BW-NEXT:    kandw %k6, %k0, %k05591; AVX512BW-NEXT:    kshiftrw $10, %k1, %k65592; AVX512BW-NEXT:    korw %k6, %k0, %k05593; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload5594; AVX512BW-NEXT:    kandw %k6, %k0, %k05595; AVX512BW-NEXT:    kshiftrw $9, %k1, %k65596; AVX512BW-NEXT:    korw %k6, %k0, %k05597; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload5598; AVX512BW-NEXT:    kandw %k6, %k0, %k05599; AVX512BW-NEXT:    kshiftrw $8, %k1, %k15600; AVX512BW-NEXT:    korw %k1, %k0, %k05601; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload5602; AVX512BW-NEXT:    kandw %k1, %k0, %k05603; AVX512BW-NEXT:    kshiftrq $56, %k5, %k15604; AVX512BW-NEXT:    kshiftlw $15, %k1, %k15605; AVX512BW-NEXT:    kshiftrw $7, %k1, %k65606; AVX512BW-NEXT:    korw %k6, %k0, %k05607; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload5608; AVX512BW-NEXT:    kandw %k6, %k0, %k05609; AVX512BW-NEXT:    kshiftrw $6, %k1, %k65610; AVX512BW-NEXT:    korw %k6, %k0, %k05611; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload5612; AVX512BW-NEXT:    kandw %k6, %k0, %k05613; AVX512BW-NEXT:    kshiftrw $5, %k1, %k65614; AVX512BW-NEXT:    korw %k6, %k0, %k05615; AVX512BW-NEXT:    kandw %k3, %k0, %k05616; AVX512BW-NEXT:    kshiftrw $4, %k1, %k65617; AVX512BW-NEXT:    korw %k6, %k0, %k05618; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload5619; AVX512BW-NEXT:    kandw %k3, %k0, %k05620; AVX512BW-NEXT:    kshiftrw $3, %k1, %k15621; AVX512BW-NEXT:    korw %k1, %k0, %k05622; AVX512BW-NEXT:    kandw %k2, %k0, %k05623; AVX512BW-NEXT:    kshiftrq $57, %k5, %k15624; AVX512BW-NEXT:    kshiftlw $15, %k1, %k65625; AVX512BW-NEXT:    kshiftrw $2, %k6, %k75626; AVX512BW-NEXT:    korw %k7, %k0, %k05627; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload5628; AVX512BW-NEXT:    kandw %k2, %k0, %k05629; AVX512BW-NEXT:    kshiftlw $14, %k1, %k75630; AVX512BW-NEXT:    korw %k7, %k0, %k05631; AVX512BW-NEXT:    kshiftlw $1, %k0, %k05632; AVX512BW-NEXT:    kshiftrw $1, %k0, %k05633; AVX512BW-NEXT:    korw %k6, %k0, %k75634; AVX512BW-NEXT:    vmovdqa32 1088(%rsi), %zmm17 {%k7} {z}5635; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k0 # 2-byte Reload5636; AVX512BW-NEXT:    kandw %k0, %k1, %k05637; AVX512BW-NEXT:    kshiftrw $14, %k6, %k15638; AVX512BW-NEXT:    korw %k1, %k0, %k05639; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload5640; AVX512BW-NEXT:    kandw %k1, %k0, %k05641; AVX512BW-NEXT:    kshiftrq $58, %k5, %k15642; AVX512BW-NEXT:    kshiftlw $15, %k1, %k15643; AVX512BW-NEXT:    kshiftrw $13, %k1, %k65644; AVX512BW-NEXT:    korw %k6, %k0, %k05645; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload5646; AVX512BW-NEXT:    kandw %k6, %k0, %k05647; AVX512BW-NEXT:    kshiftrw $12, %k1, %k65648; AVX512BW-NEXT:    korw %k6, %k0, %k05649; AVX512BW-NEXT:    kandw %k4, %k0, %k05650; AVX512BW-NEXT:    kshiftrw $11, %k1, %k65651; AVX512BW-NEXT:    korw %k6, %k0, %k05652; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload5653; AVX512BW-NEXT:    kandw %k4, %k0, %k05654; AVX512BW-NEXT:    kshiftrw $10, %k1, %k65655; AVX512BW-NEXT:    korw %k6, %k0, %k05656; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload5657; AVX512BW-NEXT:    kandw %k6, %k0, %k05658; AVX512BW-NEXT:    kshiftrw $9, %k1, %k15659; AVX512BW-NEXT:    korw %k1, %k0, %k05660; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload5661; AVX512BW-NEXT:    kandw %k1, %k0, %k05662; AVX512BW-NEXT:    kshiftrq $59, %k5, %k15663; AVX512BW-NEXT:    kshiftlw $15, %k1, %k15664; AVX512BW-NEXT:    kshiftrw $8, %k1, %k65665; AVX512BW-NEXT:    korw %k6, %k0, %k05666; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload5667; AVX512BW-NEXT:    kandw %k6, %k0, %k05668; AVX512BW-NEXT:    kshiftrw $7, %k1, %k65669; AVX512BW-NEXT:    korw %k6, %k0, %k05670; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload5671; AVX512BW-NEXT:    kandw %k6, %k0, %k05672; AVX512BW-NEXT:    kshiftrw $6, %k1, %k65673; AVX512BW-NEXT:    korw %k6, %k0, %k05674; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload5675; AVX512BW-NEXT:    kandw %k6, %k0, %k05676; AVX512BW-NEXT:    kshiftrw $5, %k1, %k65677; AVX512BW-NEXT:    korw %k6, %k0, %k05678; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload5679; AVX512BW-NEXT:    kandw %k6, %k0, %k05680; AVX512BW-NEXT:    kshiftrw $4, %k1, %k15681; AVX512BW-NEXT:    korw %k1, %k0, %k05682; AVX512BW-NEXT:    kandw %k3, %k0, %k05683; AVX512BW-NEXT:    kshiftrq $60, %k5, %k15684; AVX512BW-NEXT:    kshiftlw $15, %k1, %k65685; AVX512BW-NEXT:    kshiftrw $3, %k6, %k75686; AVX512BW-NEXT:    korw %k7, %k0, %k05687; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload5688; AVX512BW-NEXT:    kandw %k3, %k0, %k05689; AVX512BW-NEXT:    kshiftrw $2, %k6, %k75690; AVX512BW-NEXT:    korw %k7, %k0, %k05691; AVX512BW-NEXT:    kandw %k2, %k0, %k05692; AVX512BW-NEXT:    kshiftlw $14, %k1, %k75693; AVX512BW-NEXT:    korw %k7, %k0, %k05694; AVX512BW-NEXT:    kshiftlw $1, %k0, %k05695; AVX512BW-NEXT:    kshiftrw $1, %k0, %k05696; AVX512BW-NEXT:    korw %k6, %k0, %k65697; AVX512BW-NEXT:    vmovdqa32 1152(%rsi), %zmm18 {%k6} {z}5698; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k0 # 2-byte Reload5699; AVX512BW-NEXT:    kandw %k0, %k1, %k05700; AVX512BW-NEXT:    kshiftrq $61, %k5, %k15701; AVX512BW-NEXT:    kshiftlw $15, %k1, %k15702; AVX512BW-NEXT:    kshiftrw $14, %k1, %k65703; AVX512BW-NEXT:    korw %k6, %k0, %k05704; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload5705; AVX512BW-NEXT:    kandw %k2, %k0, %k05706; AVX512BW-NEXT:    kshiftrw $13, %k1, %k65707; AVX512BW-NEXT:    korw %k6, %k0, %k05708; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload5709; AVX512BW-NEXT:    kandw %k2, %k0, %k05710; AVX512BW-NEXT:    kshiftrw $12, %k1, %k65711; AVX512BW-NEXT:    korw %k6, %k0, %k05712; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload5713; AVX512BW-NEXT:    kandw %k2, %k0, %k05714; AVX512BW-NEXT:    kshiftrw $11, %k1, %k65715; AVX512BW-NEXT:    korw %k6, %k0, %k05716; AVX512BW-NEXT:    kandw %k4, %k0, %k05717; AVX512BW-NEXT:    kshiftrw $10, %k1, %k15718; AVX512BW-NEXT:    korw %k1, %k0, %k05719; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload5720; AVX512BW-NEXT:    kandw %k1, %k0, %k05721; AVX512BW-NEXT:    kshiftrq $62, %k5, %k15722; AVX512BW-NEXT:    kshiftlw $15, %k1, %k15723; AVX512BW-NEXT:    kshiftrw $9, %k1, %k65724; AVX512BW-NEXT:    korw %k6, %k0, %k05725; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload5726; AVX512BW-NEXT:    kandw %k2, %k0, %k05727; AVX512BW-NEXT:    kshiftrw $8, %k1, %k65728; AVX512BW-NEXT:    korw %k6, %k0, %k05729; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload5730; AVX512BW-NEXT:    kandw %k2, %k0, %k05731; AVX512BW-NEXT:    kshiftrw $7, %k1, %k65732; AVX512BW-NEXT:    korw %k6, %k0, %k05733; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload5734; AVX512BW-NEXT:    kandw %k2, %k0, %k05735; AVX512BW-NEXT:    kshiftrw $6, %k1, %k65736; AVX512BW-NEXT:    korw %k6, %k0, %k05737; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload5738; AVX512BW-NEXT:    kandw %k2, %k0, %k05739; AVX512BW-NEXT:    kshiftrq $63, %k5, %k55740; AVX512BW-NEXT:    kshiftrw $5, %k1, %k15741; AVX512BW-NEXT:    korw %k1, %k0, %k05742; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload5743; AVX512BW-NEXT:    kandw %k1, %k0, %k05744; AVX512BW-NEXT:    kshiftlw $15, %k5, %k15745; AVX512BW-NEXT:    kshiftrw $4, %k1, %k65746; AVX512BW-NEXT:    korw %k6, %k0, %k05747; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload5748; AVX512BW-NEXT:    kandw %k2, %k0, %k05749; AVX512BW-NEXT:    kshiftrw $3, %k1, %k45750; AVX512BW-NEXT:    korw %k4, %k0, %k05751; AVX512BW-NEXT:    kandw %k3, %k0, %k05752; AVX512BW-NEXT:    kshiftrw $2, %k1, %k35753; AVX512BW-NEXT:    korw %k3, %k0, %k05754; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload5755; AVX512BW-NEXT:    kandw %k2, %k0, %k05756; AVX512BW-NEXT:    kshiftlw $14, %k5, %k25757; AVX512BW-NEXT:    korw %k2, %k0, %k05758; AVX512BW-NEXT:    kshiftlw $1, %k0, %k05759; AVX512BW-NEXT:    kshiftrw $1, %k0, %k05760; AVX512BW-NEXT:    korw %k1, %k0, %k15761; AVX512BW-NEXT:    vmovdqa32 1216(%rsi), %zmm19 {%k1} {z}5762; AVX512BW-NEXT:    vmovdqa64 %zmm19, 1216(%rdx)5763; AVX512BW-NEXT:    vmovdqa64 %zmm18, 1152(%rdx)5764; AVX512BW-NEXT:    vmovdqa64 %zmm17, 1088(%rdx)5765; AVX512BW-NEXT:    vmovdqa64 %zmm16, 1024(%rdx)5766; AVX512BW-NEXT:    vmovdqa64 %zmm15, 960(%rdx)5767; AVX512BW-NEXT:    vmovdqa64 %zmm14, 896(%rdx)5768; AVX512BW-NEXT:    vmovdqa64 %zmm13, 832(%rdx)5769; AVX512BW-NEXT:    vmovdqa64 %zmm12, 768(%rdx)5770; AVX512BW-NEXT:    vmovdqa64 %zmm11, 704(%rdx)5771; AVX512BW-NEXT:    vmovdqa64 %zmm10, 640(%rdx)5772; AVX512BW-NEXT:    vmovdqa64 %zmm9, 576(%rdx)5773; AVX512BW-NEXT:    vmovdqa64 %zmm8, 512(%rdx)5774; AVX512BW-NEXT:    vmovdqa64 %zmm7, 448(%rdx)5775; AVX512BW-NEXT:    vmovdqa64 %zmm6, 384(%rdx)5776; AVX512BW-NEXT:    vmovdqa64 %zmm5, 320(%rdx)5777; AVX512BW-NEXT:    vmovdqa64 %zmm4, 256(%rdx)5778; AVX512BW-NEXT:    vmovdqa64 %zmm3, 192(%rdx)5779; AVX512BW-NEXT:    vmovdqa64 %zmm2, 128(%rdx)5780; AVX512BW-NEXT:    vmovdqa64 %zmm1, 64(%rdx)5781; AVX512BW-NEXT:    vmovdqa64 %zmm0, (%rdx)5782; AVX512BW-NEXT:    vzeroupper5783; AVX512BW-NEXT:    retq5784  %src.mask = load <64 x i1>, ptr %in.maskvec, align 645785  %tgt.mask = shufflevector <64 x i1> %src.mask, <64 x i1> poison, <320 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 1, i32 1, i32 1, i32 1, i32 1, i32 2, i32 2, i32 2, i32 2, i32 2, i32 3, i32 3, i32 3, i32 3, i32 3, i32 4, i32 4, i32 4, i32 4, i32 4, i32 5, i32 5, i32 5, i32 5, i32 5, i32 6, i32 6, i32 6, i32 6, i32 6, i32 7, i32 7, i32 7, i32 7, i32 7, i32 8, i32 8, i32 8, i32 8, i32 8, i32 9, i32 9, i32 9, i32 9, i32 9, i32 10, i32 10, i32 10, i32 10, i32 10, i32 11, i32 11, i32 11, i32 11, i32 11, i32 12, i32 12, i32 12, i32 12, i32 12, i32 13, i32 13, i32 13, i32 13, i32 13, i32 14, i32 14, i32 14, i32 14, i32 14, i32 15, i32 15, i32 15, i32 15, i32 15, i32 16, i32 16, i32 16, i32 16, i32 16, i32 17, i32 17, i32 17, i32 17, i32 17, i32 18, i32 18, i32 18, i32 18, i32 18, i32 19, i32 19, i32 19, i32 19, i32 19, i32 20, i32 20, i32 20, i32 20, i32 20, i32 21, i32 21, i32 21, i32 21, i32 21, i32 22, i32 22, i32 22, i32 22, i32 22, i32 23, i32 23, i32 23, i32 23, i32 23, i32 24, i32 24, i32 24, i32 24, i32 24, i32 25, i32 25, i32 25, i32 25, i32 25, i32 26, i32 26, i32 26, i32 26, i32 26, i32 27, i32 27, i32 27, i32 27, i32 27, i32 28, i32 28, i32 28, i32 28, i32 28, i32 29, i32 29, i32 29, i32 29, i32 29, i32 30, i32 30, i32 30, i32 30, i32 30, i32 31, i32 31, i32 31, i32 31, i32 31, i32 32, i32 32, i32 32, i32 32, i32 32, i32 33, i32 33, i32 33, i32 33, i32 33, i32 34, i32 34, i32 34, i32 34, i32 34, i32 35, i32 35, i32 35, i32 35, i32 35, i32 36, i32 36, i32 36, i32 36, i32 36, i32 37, i32 37, i32 37, i32 37, i32 37, i32 38, i32 38, i32 38, i32 38, i32 38, i32 39, i32 39, i32 39, i32 39, i32 39, i32 40, i32 40, i32 40, i32 40, i32 40, i32 41, i32 41, i32 41, i32 41, i32 41, i32 42, i32 42, i32 42, i32 42, i32 42, i32 43, i32 43, i32 43, i32 43, i32 43, i32 44, i32 44, i32 44, i32 44, i32 44, i32 45, i32 45, i32 45, i32 45, i32 45, i32 46, i32 46, i32 46, i32 46, i32 46, i32 47, i32 47, i32 47, i32 47, i32 47, i32 48, i32 48, i32 48, i32 48, i32 48, i32 49, i32 49, i32 49, i32 49, i32 49, i32 50, i32 50, i32 50, i32 50, i32 50, i32 51, i32 51, i32 51, i32 51, i32 51, i32 52, i32 52, i32 52, i32 52, i32 52, i32 53, i32 53, i32 53, i32 53, i32 53, i32 54, i32 54, i32 54, i32 54, i32 54, i32 55, i32 55, i32 55, i32 55, i32 55, i32 56, i32 56, i32 56, i32 56, i32 56, i32 57, i32 57, i32 57, i32 57, i32 57, i32 58, i32 58, i32 58, i32 58, i32 58, i32 59, i32 59, i32 59, i32 59, i32 59, i32 60, i32 60, i32 60, i32 60, i32 60, i32 61, i32 61, i32 61, i32 61, i32 61, i32 62, i32 62, i32 62, i32 62, i32 62, i32 63, i32 63, i32 63, i32 63, i32 63>5786  %data = call <320 x i32> @llvm.masked.load.v320i32.p0(ptr %in.vec, i32 64, <320 x i1> %tgt.mask, <320 x i32> poison)5787  store <320 x i32> %data, ptr %out.vec, align 645788  ret void5789}5790 5791define void @mask_replication_factor6_vf2(ptr %in.maskvec, ptr %in.vec, ptr %out.vec) nounwind {5792; AVX512F-ONLY-LABEL: mask_replication_factor6_vf2:5793; AVX512F-ONLY:       # %bb.0:5794; AVX512F-ONLY-NEXT:    kmovw (%rdi), %k15795; AVX512F-ONLY-NEXT:    vpternlogd {{.*#+}} zmm0 {%k1} {z} = -15796; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0]5797; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm1, %zmm05798; AVX512F-ONLY-NEXT:    vpslld $31, %zmm0, %zmm05799; AVX512F-ONLY-NEXT:    movw $4095, %ax # imm = 0xFFF5800; AVX512F-ONLY-NEXT:    kmovw %eax, %k15801; AVX512F-ONLY-NEXT:    vptestmd %zmm0, %zmm0, %k1 {%k1}5802; AVX512F-ONLY-NEXT:    vmovdqa32 (%rsi), %zmm0 {%k1} {z}5803; AVX512F-ONLY-NEXT:    vextracti32x4 $2, %zmm0, 32(%rdx)5804; AVX512F-ONLY-NEXT:    vmovdqa %ymm0, (%rdx)5805; AVX512F-ONLY-NEXT:    vzeroupper5806; AVX512F-ONLY-NEXT:    retq5807;5808; AVX512DQ-LABEL: mask_replication_factor6_vf2:5809; AVX512DQ:       # %bb.0:5810; AVX512DQ-NEXT:    kmovw (%rdi), %k05811; AVX512DQ-NEXT:    vpmovm2d %k0, %zmm05812; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0]5813; AVX512DQ-NEXT:    vpermd %zmm0, %zmm1, %zmm05814; AVX512DQ-NEXT:    vpxor %xmm1, %xmm1, %xmm15815; AVX512DQ-NEXT:    movw $4095, %ax # imm = 0xFFF5816; AVX512DQ-NEXT:    kmovw %eax, %k15817; AVX512DQ-NEXT:    vpcmpgtd %zmm0, %zmm1, %k1 {%k1}5818; AVX512DQ-NEXT:    vmovdqa32 (%rsi), %zmm0 {%k1} {z}5819; AVX512DQ-NEXT:    vextracti32x4 $2, %zmm0, 32(%rdx)5820; AVX512DQ-NEXT:    vmovdqa %ymm0, (%rdx)5821; AVX512DQ-NEXT:    vzeroupper5822; AVX512DQ-NEXT:    retq5823;5824; AVX512BW-LABEL: mask_replication_factor6_vf2:5825; AVX512BW:       # %bb.0:5826; AVX512BW-NEXT:    kmovw (%rdi), %k15827; AVX512BW-NEXT:    vpternlogd {{.*#+}} zmm0 {%k1} {z} = -15828; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0]5829; AVX512BW-NEXT:    vpermd %zmm0, %zmm1, %zmm05830; AVX512BW-NEXT:    vpslld $31, %zmm0, %zmm05831; AVX512BW-NEXT:    movw $4095, %ax # imm = 0xFFF5832; AVX512BW-NEXT:    kmovd %eax, %k15833; AVX512BW-NEXT:    vptestmd %zmm0, %zmm0, %k1 {%k1}5834; AVX512BW-NEXT:    vmovdqa32 (%rsi), %zmm0 {%k1} {z}5835; AVX512BW-NEXT:    vextracti32x4 $2, %zmm0, 32(%rdx)5836; AVX512BW-NEXT:    vmovdqa %ymm0, (%rdx)5837; AVX512BW-NEXT:    vzeroupper5838; AVX512BW-NEXT:    retq5839  %src.mask.padded = load <64 x i1>, ptr %in.maskvec, align 645840  %src.mask = shufflevector <64 x i1> %src.mask.padded, <64 x i1> poison, <2 x i32> <i32 0, i32 1>5841  %tgt.mask = shufflevector <2 x i1> %src.mask, <2 x i1> poison, <12 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1>5842  %data = call <12 x i32> @llvm.masked.load.v12i32.p0(ptr %in.vec, i32 64, <12 x i1> %tgt.mask, <12 x i32> poison)5843  %data.padded = shufflevector <12 x i32> %data, <12 x i32> poison, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 undef, i32 undef, i32 undef, i32 undef>5844  store <12 x i32> %data, ptr %out.vec, align 645845  ret void5846}5847 5848define void @mask_replication_factor6_vf4(ptr %in.maskvec, ptr %in.vec, ptr %out.vec) nounwind {5849; AVX512F-SLOW-LABEL: mask_replication_factor6_vf4:5850; AVX512F-SLOW:       # %bb.0:5851; AVX512F-SLOW-NEXT:    kmovw (%rdi), %k15852; AVX512F-SLOW-NEXT:    vpternlogd {{.*#+}} zmm0 {%k1} {z} = -15853; AVX512F-SLOW-NEXT:    vpshufd {{.*#+}} xmm1 = xmm0[2,2,3,3]5854; AVX512F-SLOW-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[0,1,1,1]5855; AVX512F-SLOW-NEXT:    vpslld $31, %zmm1, %zmm15856; AVX512F-SLOW-NEXT:    movw $255, %ax5857; AVX512F-SLOW-NEXT:    kmovw %eax, %k15858; AVX512F-SLOW-NEXT:    vptestmd %zmm1, %zmm1, %k1 {%k1}5859; AVX512F-SLOW-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,0,0,1,1,1,1,1,1,2,2,2,2]5860; AVX512F-SLOW-NEXT:    vpermd %zmm0, %zmm1, %zmm05861; AVX512F-SLOW-NEXT:    vptestmd %zmm0, %zmm0, %k25862; AVX512F-SLOW-NEXT:    vmovdqa32 64(%rsi), %zmm0 {%k1} {z}5863; AVX512F-SLOW-NEXT:    vmovdqa32 (%rsi), %zmm1 {%k2} {z}5864; AVX512F-SLOW-NEXT:    vmovdqa64 %zmm1, (%rdx)5865; AVX512F-SLOW-NEXT:    vmovdqa %ymm0, 64(%rdx)5866; AVX512F-SLOW-NEXT:    vzeroupper5867; AVX512F-SLOW-NEXT:    retq5868;5869; AVX512F-FAST-LABEL: mask_replication_factor6_vf4:5870; AVX512F-FAST:       # %bb.0:5871; AVX512F-FAST-NEXT:    kmovw (%rdi), %k15872; AVX512F-FAST-NEXT:    vpternlogd {{.*#+}} zmm0 {%k1} {z} = -15873; AVX512F-FAST-NEXT:    vpmovsxbd {{.*#+}} ymm1 = [2,2,3,3,3,3,3,3]5874; AVX512F-FAST-NEXT:    vpermd %ymm0, %ymm1, %ymm15875; AVX512F-FAST-NEXT:    vpslld $31, %zmm1, %zmm15876; AVX512F-FAST-NEXT:    movw $255, %ax5877; AVX512F-FAST-NEXT:    kmovw %eax, %k15878; AVX512F-FAST-NEXT:    vptestmd %zmm1, %zmm1, %k1 {%k1}5879; AVX512F-FAST-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,0,0,1,1,1,1,1,1,2,2,2,2]5880; AVX512F-FAST-NEXT:    vpermd %zmm0, %zmm1, %zmm05881; AVX512F-FAST-NEXT:    vptestmd %zmm0, %zmm0, %k25882; AVX512F-FAST-NEXT:    vmovdqa32 64(%rsi), %zmm0 {%k1} {z}5883; AVX512F-FAST-NEXT:    vmovdqa32 (%rsi), %zmm1 {%k2} {z}5884; AVX512F-FAST-NEXT:    vmovdqa64 %zmm1, (%rdx)5885; AVX512F-FAST-NEXT:    vmovdqa %ymm0, 64(%rdx)5886; AVX512F-FAST-NEXT:    vzeroupper5887; AVX512F-FAST-NEXT:    retq5888;5889; AVX512DQ-SLOW-LABEL: mask_replication_factor6_vf4:5890; AVX512DQ-SLOW:       # %bb.0:5891; AVX512DQ-SLOW-NEXT:    kmovw (%rdi), %k05892; AVX512DQ-SLOW-NEXT:    vpmovm2d %k0, %zmm05893; AVX512DQ-SLOW-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,0,0,1,1,1,1,1,1,2,2,2,2]5894; AVX512DQ-SLOW-NEXT:    vpermd %zmm0, %zmm1, %zmm15895; AVX512DQ-SLOW-NEXT:    vpmovd2m %zmm1, %k15896; AVX512DQ-SLOW-NEXT:    vpshufd {{.*#+}} xmm0 = xmm0[2,2,3,3]5897; AVX512DQ-SLOW-NEXT:    vpermq {{.*#+}} ymm0 = ymm0[0,1,1,1]5898; AVX512DQ-SLOW-NEXT:    vpxor %xmm1, %xmm1, %xmm15899; AVX512DQ-SLOW-NEXT:    kxnorb %k0, %k0, %k25900; AVX512DQ-SLOW-NEXT:    vpcmpgtd %zmm0, %zmm1, %k2 {%k2}5901; AVX512DQ-SLOW-NEXT:    vmovdqa32 64(%rsi), %zmm0 {%k2} {z}5902; AVX512DQ-SLOW-NEXT:    vmovdqa32 (%rsi), %zmm1 {%k1} {z}5903; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm1, (%rdx)5904; AVX512DQ-SLOW-NEXT:    vmovdqa %ymm0, 64(%rdx)5905; AVX512DQ-SLOW-NEXT:    vzeroupper5906; AVX512DQ-SLOW-NEXT:    retq5907;5908; AVX512DQ-FAST-LABEL: mask_replication_factor6_vf4:5909; AVX512DQ-FAST:       # %bb.0:5910; AVX512DQ-FAST-NEXT:    kmovw (%rdi), %k05911; AVX512DQ-FAST-NEXT:    vpmovm2d %k0, %zmm05912; AVX512DQ-FAST-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,0,0,1,1,1,1,1,1,2,2,2,2]5913; AVX512DQ-FAST-NEXT:    vpermd %zmm0, %zmm1, %zmm15914; AVX512DQ-FAST-NEXT:    vpmovd2m %zmm1, %k15915; AVX512DQ-FAST-NEXT:    vpmovsxbd {{.*#+}} ymm1 = [2,2,3,3,3,3,3,3]5916; AVX512DQ-FAST-NEXT:    vpermd %ymm0, %ymm1, %ymm05917; AVX512DQ-FAST-NEXT:    vpxor %xmm1, %xmm1, %xmm15918; AVX512DQ-FAST-NEXT:    kxnorb %k0, %k0, %k25919; AVX512DQ-FAST-NEXT:    vpcmpgtd %zmm0, %zmm1, %k2 {%k2}5920; AVX512DQ-FAST-NEXT:    vmovdqa32 64(%rsi), %zmm0 {%k2} {z}5921; AVX512DQ-FAST-NEXT:    vmovdqa32 (%rsi), %zmm1 {%k1} {z}5922; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm1, (%rdx)5923; AVX512DQ-FAST-NEXT:    vmovdqa %ymm0, 64(%rdx)5924; AVX512DQ-FAST-NEXT:    vzeroupper5925; AVX512DQ-FAST-NEXT:    retq5926;5927; AVX512BW-LABEL: mask_replication_factor6_vf4:5928; AVX512BW:       # %bb.0:5929; AVX512BW-NEXT:    kmovd (%rdi), %k05930; AVX512BW-NEXT:    vpmovm2w %k0, %zmm05931; AVX512BW-NEXT:    vpmovsxbw {{.*#+}} zmm1 = [0,0,0,0,0,0,1,1,1,1,1,1,2,2,2,2,2,2,3,3,3,3,3,3,0,0,0,0,0,0,0,0]5932; AVX512BW-NEXT:    vpermw %zmm0, %zmm1, %zmm05933; AVX512BW-NEXT:    vpxor %xmm1, %xmm1, %xmm15934; AVX512BW-NEXT:    movl $16777215, %eax # imm = 0xFFFFFF5935; AVX512BW-NEXT:    kmovd %eax, %k15936; AVX512BW-NEXT:    vpcmpgtw %zmm0, %zmm1, %k1 {%k1}5937; AVX512BW-NEXT:    kshiftrd $16, %k1, %k25938; AVX512BW-NEXT:    vmovdqa32 64(%rsi), %zmm0 {%k2} {z}5939; AVX512BW-NEXT:    vmovdqa32 (%rsi), %zmm1 {%k1} {z}5940; AVX512BW-NEXT:    vmovdqa64 %zmm1, (%rdx)5941; AVX512BW-NEXT:    vmovdqa %ymm0, 64(%rdx)5942; AVX512BW-NEXT:    vzeroupper5943; AVX512BW-NEXT:    retq5944  %src.mask.padded = load <64 x i1>, ptr %in.maskvec, align 645945  %src.mask = shufflevector <64 x i1> %src.mask.padded, <64 x i1> poison, <4 x i32> <i32 0, i32 1, i32 2, i32 3>5946  %tgt.mask = shufflevector <4 x i1> %src.mask, <4 x i1> poison, <24 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3>5947  %data = call <24 x i32> @llvm.masked.load.v24i32.p0(ptr %in.vec, i32 64, <24 x i1> %tgt.mask, <24 x i32> poison)5948  %data.padded = shufflevector <24 x i32> %data, <24 x i32> poison, <32 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>5949  store <24 x i32> %data, ptr %out.vec, align 645950  ret void5951}5952 5953define void @mask_replication_factor6_vf8(ptr %in.maskvec, ptr %in.vec, ptr %out.vec) nounwind {5954; AVX512F-ONLY-LABEL: mask_replication_factor6_vf8:5955; AVX512F-ONLY:       # %bb.0:5956; AVX512F-ONLY-NEXT:    kmovw (%rdi), %k15957; AVX512F-ONLY-NEXT:    vpternlogd {{.*#+}} zmm0 {%k1} {z} = -15958; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,0,0,1,1,1,1,1,1,2,2,2,2]5959; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm1, %zmm15960; AVX512F-ONLY-NEXT:    vptestmd %zmm1, %zmm1, %k15961; AVX512F-ONLY-NEXT:    vpternlogd {{.*#+}} zmm1 {%k1} {z} = -15962; AVX512F-ONLY-NEXT:    movw $1, %ax5963; AVX512F-ONLY-NEXT:    kmovw %eax, %k15964; AVX512F-ONLY-NEXT:    vmovdqa32 %zmm0, %zmm1 {%k1}5965; AVX512F-ONLY-NEXT:    vptestmd %zmm1, %zmm1, %k15966; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [2,2,3,3,3,3,3,3,4,4,4,4,4,4,5,5]5967; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm1, %zmm15968; AVX512F-ONLY-NEXT:    vptestmd %zmm1, %zmm1, %k25969; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [5,5,5,5,6,6,6,6,6,6,7,7,7,7,7,7]5970; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm1, %zmm05971; AVX512F-ONLY-NEXT:    vptestmd %zmm0, %zmm0, %k35972; AVX512F-ONLY-NEXT:    vmovdqa32 (%rsi), %zmm0 {%k1} {z}5973; AVX512F-ONLY-NEXT:    vmovdqa32 128(%rsi), %zmm1 {%k3} {z}5974; AVX512F-ONLY-NEXT:    vmovdqa32 64(%rsi), %zmm2 {%k2} {z}5975; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm2, 64(%rdx)5976; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm1, 128(%rdx)5977; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm0, (%rdx)5978; AVX512F-ONLY-NEXT:    vzeroupper5979; AVX512F-ONLY-NEXT:    retq5980;5981; AVX512DQ-LABEL: mask_replication_factor6_vf8:5982; AVX512DQ:       # %bb.0:5983; AVX512DQ-NEXT:    kmovb (%rdi), %k05984; AVX512DQ-NEXT:    vpmovm2d %k0, %zmm05985; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,0,0,1,1,1,1,1,1,2,2,2,2]5986; AVX512DQ-NEXT:    vpermd %zmm0, %zmm1, %zmm15987; AVX512DQ-NEXT:    vpmovd2m %zmm1, %k05988; AVX512DQ-NEXT:    vpmovm2d %k0, %zmm15989; AVX512DQ-NEXT:    movw $1, %ax5990; AVX512DQ-NEXT:    kmovw %eax, %k15991; AVX512DQ-NEXT:    vmovdqa32 %zmm0, %zmm1 {%k1}5992; AVX512DQ-NEXT:    vpmovd2m %zmm1, %k15993; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [2,2,3,3,3,3,3,3,4,4,4,4,4,4,5,5]5994; AVX512DQ-NEXT:    vpermd %zmm0, %zmm1, %zmm15995; AVX512DQ-NEXT:    vpmovd2m %zmm1, %k25996; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [5,5,5,5,6,6,6,6,6,6,7,7,7,7,7,7]5997; AVX512DQ-NEXT:    vpermd %zmm0, %zmm1, %zmm05998; AVX512DQ-NEXT:    vpmovd2m %zmm0, %k35999; AVX512DQ-NEXT:    vmovdqa32 (%rsi), %zmm0 {%k1} {z}6000; AVX512DQ-NEXT:    vmovdqa32 128(%rsi), %zmm1 {%k3} {z}6001; AVX512DQ-NEXT:    vmovdqa32 64(%rsi), %zmm2 {%k2} {z}6002; AVX512DQ-NEXT:    vmovdqa64 %zmm2, 64(%rdx)6003; AVX512DQ-NEXT:    vmovdqa64 %zmm1, 128(%rdx)6004; AVX512DQ-NEXT:    vmovdqa64 %zmm0, (%rdx)6005; AVX512DQ-NEXT:    vzeroupper6006; AVX512DQ-NEXT:    retq6007;6008; AVX512BW-LABEL: mask_replication_factor6_vf8:6009; AVX512BW:       # %bb.0:6010; AVX512BW-NEXT:    kmovw (%rdi), %k16011; AVX512BW-NEXT:    vpternlogd {{.*#+}} zmm0 {%k1} {z} = -16012; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,0,0,1,1,1,1,1,1,2,2,2,2]6013; AVX512BW-NEXT:    vpermd %zmm0, %zmm1, %zmm16014; AVX512BW-NEXT:    vptestmd %zmm1, %zmm1, %k16015; AVX512BW-NEXT:    vmovdqa32 (%rsi), %zmm1 {%k1} {z}6016; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm2 = [5,5,5,5,6,6,6,6,6,6,7,7,7,7,7,7]6017; AVX512BW-NEXT:    vpermd %zmm0, %zmm2, %zmm26018; AVX512BW-NEXT:    vptestmd %zmm2, %zmm2, %k16019; AVX512BW-NEXT:    vmovdqa32 128(%rsi), %zmm2 {%k1} {z}6020; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm3 = [2,2,3,3,3,3,3,3,4,4,4,4,4,4,5,5]6021; AVX512BW-NEXT:    vpermd %zmm0, %zmm3, %zmm06022; AVX512BW-NEXT:    vptestmd %zmm0, %zmm0, %k16023; AVX512BW-NEXT:    vmovdqa32 64(%rsi), %zmm0 {%k1} {z}6024; AVX512BW-NEXT:    vmovdqa64 %zmm0, 64(%rdx)6025; AVX512BW-NEXT:    vmovdqa64 %zmm2, 128(%rdx)6026; AVX512BW-NEXT:    vmovdqa64 %zmm1, (%rdx)6027; AVX512BW-NEXT:    vzeroupper6028; AVX512BW-NEXT:    retq6029  %src.mask.padded = load <64 x i1>, ptr %in.maskvec, align 646030  %src.mask = shufflevector <64 x i1> %src.mask.padded, <64 x i1> poison, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>6031  %tgt.mask = shufflevector <8 x i1> %src.mask, <8 x i1> poison, <48 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 4, i32 4, i32 4, i32 4, i32 4, i32 4, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 6, i32 6, i32 6, i32 6, i32 6, i32 6, i32 7, i32 7, i32 7, i32 7, i32 7, i32 7>6032  %data = call <48 x i32> @llvm.masked.load.v48i32.p0(ptr %in.vec, i32 64, <48 x i1> %tgt.mask, <48 x i32> poison)6033  store <48 x i32> %data, ptr %out.vec, align 646034  ret void6035}6036 6037define void @mask_replication_factor6_vf16(ptr %in.maskvec, ptr %in.vec, ptr %out.vec) nounwind {6038; AVX512F-ONLY-LABEL: mask_replication_factor6_vf16:6039; AVX512F-ONLY:       # %bb.0:6040; AVX512F-ONLY-NEXT:    kmovw (%rdi), %k16041; AVX512F-ONLY-NEXT:    vpternlogd {{.*#+}} zmm0 {%k1} {z} = -16042; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,0,0,1,1,1,1,1,1,2,2,2,2]6043; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm1, %zmm16044; AVX512F-ONLY-NEXT:    vptestmd %zmm1, %zmm1, %k16045; AVX512F-ONLY-NEXT:    vpternlogd {{.*#+}} zmm1 {%k1} {z} = -16046; AVX512F-ONLY-NEXT:    movw $1, %ax6047; AVX512F-ONLY-NEXT:    kmovw %eax, %k16048; AVX512F-ONLY-NEXT:    vmovdqa32 %zmm0, %zmm1 {%k1}6049; AVX512F-ONLY-NEXT:    vptestmd %zmm1, %zmm1, %k26050; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [2,2,3,3,3,3,3,3,4,4,4,4,4,4,5,5]6051; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm1, %zmm16052; AVX512F-ONLY-NEXT:    vptestmd %zmm1, %zmm1, %k16053; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [5,5,5,5,6,6,6,6,6,6,7,7,7,7,7,7]6054; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm1, %zmm16055; AVX512F-ONLY-NEXT:    vptestmd %zmm1, %zmm1, %k36056; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [8,8,8,8,8,8,9,9,9,9,9,9,10,10,10,10]6057; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm1, %zmm16058; AVX512F-ONLY-NEXT:    vptestmd %zmm1, %zmm1, %k46059; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [10,10,11,11,11,11,11,11,12,12,12,12,12,12,13,13]6060; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm1, %zmm16061; AVX512F-ONLY-NEXT:    vptestmd %zmm1, %zmm1, %k56062; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [13,13,13,13,14,14,14,14,14,14,15,15,15,15,15,15]6063; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm1, %zmm06064; AVX512F-ONLY-NEXT:    vptestmd %zmm0, %zmm0, %k66065; AVX512F-ONLY-NEXT:    vmovdqa32 (%rsi), %zmm0 {%k2} {z}6066; AVX512F-ONLY-NEXT:    vmovdqa32 320(%rsi), %zmm1 {%k6} {z}6067; AVX512F-ONLY-NEXT:    vmovdqa32 256(%rsi), %zmm2 {%k5} {z}6068; AVX512F-ONLY-NEXT:    vmovdqa32 192(%rsi), %zmm3 {%k4} {z}6069; AVX512F-ONLY-NEXT:    vmovdqa32 128(%rsi), %zmm4 {%k3} {z}6070; AVX512F-ONLY-NEXT:    vmovdqa32 64(%rsi), %zmm5 {%k1} {z}6071; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm5, 64(%rdx)6072; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm4, 128(%rdx)6073; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm3, 192(%rdx)6074; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm2, 256(%rdx)6075; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm1, 320(%rdx)6076; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm0, (%rdx)6077; AVX512F-ONLY-NEXT:    vzeroupper6078; AVX512F-ONLY-NEXT:    retq6079;6080; AVX512DQ-LABEL: mask_replication_factor6_vf16:6081; AVX512DQ:       # %bb.0:6082; AVX512DQ-NEXT:    kmovw (%rdi), %k06083; AVX512DQ-NEXT:    vpmovm2d %k0, %zmm06084; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,0,0,1,1,1,1,1,1,2,2,2,2]6085; AVX512DQ-NEXT:    vpermd %zmm0, %zmm1, %zmm16086; AVX512DQ-NEXT:    vpmovd2m %zmm1, %k06087; AVX512DQ-NEXT:    vpmovm2d %k0, %zmm16088; AVX512DQ-NEXT:    movw $1, %ax6089; AVX512DQ-NEXT:    kmovw %eax, %k16090; AVX512DQ-NEXT:    vmovdqa32 %zmm0, %zmm1 {%k1}6091; AVX512DQ-NEXT:    vpmovd2m %zmm1, %k26092; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [2,2,3,3,3,3,3,3,4,4,4,4,4,4,5,5]6093; AVX512DQ-NEXT:    vpermd %zmm0, %zmm1, %zmm16094; AVX512DQ-NEXT:    vpmovd2m %zmm1, %k16095; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [5,5,5,5,6,6,6,6,6,6,7,7,7,7,7,7]6096; AVX512DQ-NEXT:    vpermd %zmm0, %zmm1, %zmm16097; AVX512DQ-NEXT:    vpmovd2m %zmm1, %k36098; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [8,8,8,8,8,8,9,9,9,9,9,9,10,10,10,10]6099; AVX512DQ-NEXT:    vpermd %zmm0, %zmm1, %zmm16100; AVX512DQ-NEXT:    vpmovd2m %zmm1, %k46101; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [10,10,11,11,11,11,11,11,12,12,12,12,12,12,13,13]6102; AVX512DQ-NEXT:    vpermd %zmm0, %zmm1, %zmm16103; AVX512DQ-NEXT:    vpmovd2m %zmm1, %k56104; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [13,13,13,13,14,14,14,14,14,14,15,15,15,15,15,15]6105; AVX512DQ-NEXT:    vpermd %zmm0, %zmm1, %zmm06106; AVX512DQ-NEXT:    vpmovd2m %zmm0, %k66107; AVX512DQ-NEXT:    vmovdqa32 (%rsi), %zmm0 {%k2} {z}6108; AVX512DQ-NEXT:    vmovdqa32 320(%rsi), %zmm1 {%k6} {z}6109; AVX512DQ-NEXT:    vmovdqa32 256(%rsi), %zmm2 {%k5} {z}6110; AVX512DQ-NEXT:    vmovdqa32 192(%rsi), %zmm3 {%k4} {z}6111; AVX512DQ-NEXT:    vmovdqa32 128(%rsi), %zmm4 {%k3} {z}6112; AVX512DQ-NEXT:    vmovdqa32 64(%rsi), %zmm5 {%k1} {z}6113; AVX512DQ-NEXT:    vmovdqa64 %zmm5, 64(%rdx)6114; AVX512DQ-NEXT:    vmovdqa64 %zmm4, 128(%rdx)6115; AVX512DQ-NEXT:    vmovdqa64 %zmm3, 192(%rdx)6116; AVX512DQ-NEXT:    vmovdqa64 %zmm2, 256(%rdx)6117; AVX512DQ-NEXT:    vmovdqa64 %zmm1, 320(%rdx)6118; AVX512DQ-NEXT:    vmovdqa64 %zmm0, (%rdx)6119; AVX512DQ-NEXT:    vzeroupper6120; AVX512DQ-NEXT:    retq6121;6122; AVX512BW-LABEL: mask_replication_factor6_vf16:6123; AVX512BW:       # %bb.0:6124; AVX512BW-NEXT:    kmovw (%rdi), %k16125; AVX512BW-NEXT:    vpternlogd {{.*#+}} zmm0 {%k1} {z} = -16126; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,0,0,1,1,1,1,1,1,2,2,2,2]6127; AVX512BW-NEXT:    vpermd %zmm0, %zmm1, %zmm16128; AVX512BW-NEXT:    vptestmd %zmm1, %zmm1, %k16129; AVX512BW-NEXT:    vmovdqa32 (%rsi), %zmm1 {%k1} {z}6130; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm2 = [13,13,13,13,14,14,14,14,14,14,15,15,15,15,15,15]6131; AVX512BW-NEXT:    vpermd %zmm0, %zmm2, %zmm26132; AVX512BW-NEXT:    vptestmd %zmm2, %zmm2, %k16133; AVX512BW-NEXT:    vmovdqa32 320(%rsi), %zmm2 {%k1} {z}6134; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm3 = [10,10,11,11,11,11,11,11,12,12,12,12,12,12,13,13]6135; AVX512BW-NEXT:    vpermd %zmm0, %zmm3, %zmm36136; AVX512BW-NEXT:    vptestmd %zmm3, %zmm3, %k16137; AVX512BW-NEXT:    vmovdqa32 256(%rsi), %zmm3 {%k1} {z}6138; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm4 = [8,8,8,8,8,8,9,9,9,9,9,9,10,10,10,10]6139; AVX512BW-NEXT:    vpermd %zmm0, %zmm4, %zmm46140; AVX512BW-NEXT:    vptestmd %zmm4, %zmm4, %k16141; AVX512BW-NEXT:    vmovdqa32 192(%rsi), %zmm4 {%k1} {z}6142; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm5 = [5,5,5,5,6,6,6,6,6,6,7,7,7,7,7,7]6143; AVX512BW-NEXT:    vpermd %zmm0, %zmm5, %zmm56144; AVX512BW-NEXT:    vptestmd %zmm5, %zmm5, %k16145; AVX512BW-NEXT:    vmovdqa32 128(%rsi), %zmm5 {%k1} {z}6146; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm6 = [2,2,3,3,3,3,3,3,4,4,4,4,4,4,5,5]6147; AVX512BW-NEXT:    vpermd %zmm0, %zmm6, %zmm06148; AVX512BW-NEXT:    vptestmd %zmm0, %zmm0, %k16149; AVX512BW-NEXT:    vmovdqa32 64(%rsi), %zmm0 {%k1} {z}6150; AVX512BW-NEXT:    vmovdqa64 %zmm0, 64(%rdx)6151; AVX512BW-NEXT:    vmovdqa64 %zmm5, 128(%rdx)6152; AVX512BW-NEXT:    vmovdqa64 %zmm4, 192(%rdx)6153; AVX512BW-NEXT:    vmovdqa64 %zmm3, 256(%rdx)6154; AVX512BW-NEXT:    vmovdqa64 %zmm2, 320(%rdx)6155; AVX512BW-NEXT:    vmovdqa64 %zmm1, (%rdx)6156; AVX512BW-NEXT:    vzeroupper6157; AVX512BW-NEXT:    retq6158  %src.mask.padded = load <64 x i1>, ptr %in.maskvec, align 646159  %src.mask = shufflevector <64 x i1> %src.mask.padded, <64 x i1> poison, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15>6160  %tgt.mask = shufflevector <16 x i1> %src.mask, <16 x i1> poison, <96 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 4, i32 4, i32 4, i32 4, i32 4, i32 4, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 6, i32 6, i32 6, i32 6, i32 6, i32 6, i32 7, i32 7, i32 7, i32 7, i32 7, i32 7, i32 8, i32 8, i32 8, i32 8, i32 8, i32 8, i32 9, i32 9, i32 9, i32 9, i32 9, i32 9, i32 10, i32 10, i32 10, i32 10, i32 10, i32 10, i32 11, i32 11, i32 11, i32 11, i32 11, i32 11, i32 12, i32 12, i32 12, i32 12, i32 12, i32 12, i32 13, i32 13, i32 13, i32 13, i32 13, i32 13, i32 14, i32 14, i32 14, i32 14, i32 14, i32 14, i32 15, i32 15, i32 15, i32 15, i32 15, i32 15>6161  %data = call <96 x i32> @llvm.masked.load.v96i32.p0(ptr %in.vec, i32 64, <96 x i1> %tgt.mask, <96 x i32> poison)6162  store <96 x i32> %data, ptr %out.vec, align 646163  ret void6164}6165 6166define void @mask_replication_factor6_vf32(ptr %in.maskvec, ptr %in.vec, ptr %out.vec) nounwind {6167; AVX512F-ONLY-LABEL: mask_replication_factor6_vf32:6168; AVX512F-ONLY:       # %bb.0:6169; AVX512F-ONLY-NEXT:    kmovw (%rdi), %k16170; AVX512F-ONLY-NEXT:    vpternlogd {{.*#+}} zmm0 {%k1} {z} = -16171; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,0,0,1,1,1,1,1,1,2,2,2,2]6172; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm1, %zmm26173; AVX512F-ONLY-NEXT:    vptestmd %zmm2, %zmm2, %k16174; AVX512F-ONLY-NEXT:    vpternlogd {{.*#+}} zmm2 {%k1} {z} = -16175; AVX512F-ONLY-NEXT:    movw $1, %ax6176; AVX512F-ONLY-NEXT:    kmovw %eax, %k16177; AVX512F-ONLY-NEXT:    vmovdqa32 %zmm0, %zmm2 {%k1}6178; AVX512F-ONLY-NEXT:    kmovw 2(%rdi), %k16179; AVX512F-ONLY-NEXT:    vpternlogd {{.*#+}} zmm3 {%k1} {z} = -16180; AVX512F-ONLY-NEXT:    vptestmd %zmm2, %zmm2, %k16181; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm2 = [2,2,3,3,3,3,3,3,4,4,4,4,4,4,5,5]6182; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm2, %zmm46183; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm5 = [5,5,5,5,6,6,6,6,6,6,7,7,7,7,7,7]6184; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm5, %zmm66185; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm7 = [8,8,8,8,8,8,9,9,9,9,9,9,10,10,10,10]6186; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm7, %zmm86187; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm9 = [10,10,11,11,11,11,11,11,12,12,12,12,12,12,13,13]6188; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm9, %zmm106189; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm11 = [13,13,13,13,14,14,14,14,14,14,15,15,15,15,15,15]6190; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm11, %zmm06191; AVX512F-ONLY-NEXT:    vpermd %zmm3, %zmm1, %zmm16192; AVX512F-ONLY-NEXT:    vpermd %zmm3, %zmm2, %zmm26193; AVX512F-ONLY-NEXT:    vpermd %zmm3, %zmm5, %zmm56194; AVX512F-ONLY-NEXT:    vpermd %zmm3, %zmm7, %zmm76195; AVX512F-ONLY-NEXT:    vpermd %zmm3, %zmm9, %zmm96196; AVX512F-ONLY-NEXT:    vpermd %zmm3, %zmm11, %zmm36197; AVX512F-ONLY-NEXT:    vmovdqa32 (%rsi), %zmm11 {%k1} {z}6198; AVX512F-ONLY-NEXT:    vptestmd %zmm3, %zmm3, %k16199; AVX512F-ONLY-NEXT:    vmovdqa32 704(%rsi), %zmm3 {%k1} {z}6200; AVX512F-ONLY-NEXT:    vptestmd %zmm9, %zmm9, %k16201; AVX512F-ONLY-NEXT:    vmovdqa32 640(%rsi), %zmm9 {%k1} {z}6202; AVX512F-ONLY-NEXT:    vptestmd %zmm7, %zmm7, %k16203; AVX512F-ONLY-NEXT:    vmovdqa32 576(%rsi), %zmm7 {%k1} {z}6204; AVX512F-ONLY-NEXT:    vptestmd %zmm5, %zmm5, %k16205; AVX512F-ONLY-NEXT:    vmovdqa32 512(%rsi), %zmm5 {%k1} {z}6206; AVX512F-ONLY-NEXT:    vptestmd %zmm2, %zmm2, %k16207; AVX512F-ONLY-NEXT:    vmovdqa32 448(%rsi), %zmm2 {%k1} {z}6208; AVX512F-ONLY-NEXT:    vptestmd %zmm1, %zmm1, %k16209; AVX512F-ONLY-NEXT:    vmovdqa32 384(%rsi), %zmm1 {%k1} {z}6210; AVX512F-ONLY-NEXT:    vptestmd %zmm0, %zmm0, %k16211; AVX512F-ONLY-NEXT:    vmovdqa32 320(%rsi), %zmm0 {%k1} {z}6212; AVX512F-ONLY-NEXT:    vptestmd %zmm10, %zmm10, %k16213; AVX512F-ONLY-NEXT:    vmovdqa32 256(%rsi), %zmm10 {%k1} {z}6214; AVX512F-ONLY-NEXT:    vptestmd %zmm8, %zmm8, %k16215; AVX512F-ONLY-NEXT:    vmovdqa32 192(%rsi), %zmm8 {%k1} {z}6216; AVX512F-ONLY-NEXT:    vptestmd %zmm6, %zmm6, %k16217; AVX512F-ONLY-NEXT:    vmovdqa32 128(%rsi), %zmm6 {%k1} {z}6218; AVX512F-ONLY-NEXT:    vptestmd %zmm4, %zmm4, %k16219; AVX512F-ONLY-NEXT:    vmovdqa32 64(%rsi), %zmm4 {%k1} {z}6220; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm4, 64(%rdx)6221; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm6, 128(%rdx)6222; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm8, 192(%rdx)6223; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm10, 256(%rdx)6224; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm0, 320(%rdx)6225; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm1, 384(%rdx)6226; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm2, 448(%rdx)6227; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm5, 512(%rdx)6228; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm7, 576(%rdx)6229; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm9, 640(%rdx)6230; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm3, 704(%rdx)6231; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm11, (%rdx)6232; AVX512F-ONLY-NEXT:    vzeroupper6233; AVX512F-ONLY-NEXT:    retq6234;6235; AVX512DQ-LABEL: mask_replication_factor6_vf32:6236; AVX512DQ:       # %bb.0:6237; AVX512DQ-NEXT:    kmovw (%rdi), %k06238; AVX512DQ-NEXT:    vpmovm2d %k0, %zmm06239; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,0,0,1,1,1,1,1,1,2,2,2,2]6240; AVX512DQ-NEXT:    vpermd %zmm0, %zmm1, %zmm26241; AVX512DQ-NEXT:    vpmovd2m %zmm2, %k06242; AVX512DQ-NEXT:    vpmovm2d %k0, %zmm26243; AVX512DQ-NEXT:    movw $1, %ax6244; AVX512DQ-NEXT:    kmovw %eax, %k16245; AVX512DQ-NEXT:    vmovdqa32 %zmm0, %zmm2 {%k1}6246; AVX512DQ-NEXT:    kmovw 2(%rdi), %k06247; AVX512DQ-NEXT:    vpmovm2d %k0, %zmm36248; AVX512DQ-NEXT:    vpmovd2m %zmm2, %k16249; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm2 = [2,2,3,3,3,3,3,3,4,4,4,4,4,4,5,5]6250; AVX512DQ-NEXT:    vpermd %zmm0, %zmm2, %zmm46251; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm5 = [5,5,5,5,6,6,6,6,6,6,7,7,7,7,7,7]6252; AVX512DQ-NEXT:    vpermd %zmm0, %zmm5, %zmm66253; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm7 = [8,8,8,8,8,8,9,9,9,9,9,9,10,10,10,10]6254; AVX512DQ-NEXT:    vpermd %zmm0, %zmm7, %zmm86255; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm9 = [10,10,11,11,11,11,11,11,12,12,12,12,12,12,13,13]6256; AVX512DQ-NEXT:    vpermd %zmm0, %zmm9, %zmm106257; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm11 = [13,13,13,13,14,14,14,14,14,14,15,15,15,15,15,15]6258; AVX512DQ-NEXT:    vpermd %zmm0, %zmm11, %zmm06259; AVX512DQ-NEXT:    vpermd %zmm3, %zmm1, %zmm16260; AVX512DQ-NEXT:    vpermd %zmm3, %zmm2, %zmm26261; AVX512DQ-NEXT:    vpermd %zmm3, %zmm5, %zmm56262; AVX512DQ-NEXT:    vpermd %zmm3, %zmm7, %zmm76263; AVX512DQ-NEXT:    vpermd %zmm3, %zmm9, %zmm96264; AVX512DQ-NEXT:    vpermd %zmm3, %zmm11, %zmm36265; AVX512DQ-NEXT:    vmovdqa32 (%rsi), %zmm11 {%k1} {z}6266; AVX512DQ-NEXT:    vpmovd2m %zmm3, %k16267; AVX512DQ-NEXT:    vmovdqa32 704(%rsi), %zmm3 {%k1} {z}6268; AVX512DQ-NEXT:    vpmovd2m %zmm9, %k16269; AVX512DQ-NEXT:    vmovdqa32 640(%rsi), %zmm9 {%k1} {z}6270; AVX512DQ-NEXT:    vpmovd2m %zmm7, %k16271; AVX512DQ-NEXT:    vmovdqa32 576(%rsi), %zmm7 {%k1} {z}6272; AVX512DQ-NEXT:    vpmovd2m %zmm5, %k16273; AVX512DQ-NEXT:    vmovdqa32 512(%rsi), %zmm5 {%k1} {z}6274; AVX512DQ-NEXT:    vpmovd2m %zmm2, %k16275; AVX512DQ-NEXT:    vmovdqa32 448(%rsi), %zmm2 {%k1} {z}6276; AVX512DQ-NEXT:    vpmovd2m %zmm1, %k16277; AVX512DQ-NEXT:    vmovdqa32 384(%rsi), %zmm1 {%k1} {z}6278; AVX512DQ-NEXT:    vpmovd2m %zmm0, %k16279; AVX512DQ-NEXT:    vmovdqa32 320(%rsi), %zmm0 {%k1} {z}6280; AVX512DQ-NEXT:    vpmovd2m %zmm10, %k16281; AVX512DQ-NEXT:    vmovdqa32 256(%rsi), %zmm10 {%k1} {z}6282; AVX512DQ-NEXT:    vpmovd2m %zmm8, %k16283; AVX512DQ-NEXT:    vmovdqa32 192(%rsi), %zmm8 {%k1} {z}6284; AVX512DQ-NEXT:    vpmovd2m %zmm6, %k16285; AVX512DQ-NEXT:    vmovdqa32 128(%rsi), %zmm6 {%k1} {z}6286; AVX512DQ-NEXT:    vpmovd2m %zmm4, %k16287; AVX512DQ-NEXT:    vmovdqa32 64(%rsi), %zmm4 {%k1} {z}6288; AVX512DQ-NEXT:    vmovdqa64 %zmm4, 64(%rdx)6289; AVX512DQ-NEXT:    vmovdqa64 %zmm6, 128(%rdx)6290; AVX512DQ-NEXT:    vmovdqa64 %zmm8, 192(%rdx)6291; AVX512DQ-NEXT:    vmovdqa64 %zmm10, 256(%rdx)6292; AVX512DQ-NEXT:    vmovdqa64 %zmm0, 320(%rdx)6293; AVX512DQ-NEXT:    vmovdqa64 %zmm1, 384(%rdx)6294; AVX512DQ-NEXT:    vmovdqa64 %zmm2, 448(%rdx)6295; AVX512DQ-NEXT:    vmovdqa64 %zmm5, 512(%rdx)6296; AVX512DQ-NEXT:    vmovdqa64 %zmm7, 576(%rdx)6297; AVX512DQ-NEXT:    vmovdqa64 %zmm9, 640(%rdx)6298; AVX512DQ-NEXT:    vmovdqa64 %zmm3, 704(%rdx)6299; AVX512DQ-NEXT:    vmovdqa64 %zmm11, (%rdx)6300; AVX512DQ-NEXT:    vzeroupper6301; AVX512DQ-NEXT:    retq6302;6303; AVX512BW-LABEL: mask_replication_factor6_vf32:6304; AVX512BW:       # %bb.0:6305; AVX512BW-NEXT:    kmovd (%rdi), %k56306; AVX512BW-NEXT:    movw $-3, %ax6307; AVX512BW-NEXT:    kmovd %eax, %k06308; AVX512BW-NEXT:    kmovw %k0, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill6309; AVX512BW-NEXT:    kmovw (%rdi), %k16310; AVX512BW-NEXT:    kandw %k0, %k1, %k26311; AVX512BW-NEXT:    kshiftlw $15, %k1, %k16312; AVX512BW-NEXT:    kshiftrw $14, %k1, %k36313; AVX512BW-NEXT:    korw %k3, %k2, %k26314; AVX512BW-NEXT:    movw $-5, %ax6315; AVX512BW-NEXT:    kmovd %eax, %k06316; AVX512BW-NEXT:    kmovw %k0, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill6317; AVX512BW-NEXT:    kandw %k0, %k2, %k26318; AVX512BW-NEXT:    kshiftrw $13, %k1, %k36319; AVX512BW-NEXT:    korw %k3, %k2, %k26320; AVX512BW-NEXT:    movw $-9, %ax6321; AVX512BW-NEXT:    kmovd %eax, %k06322; AVX512BW-NEXT:    kmovw %k0, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill6323; AVX512BW-NEXT:    kandw %k0, %k2, %k26324; AVX512BW-NEXT:    kshiftrw $12, %k1, %k36325; AVX512BW-NEXT:    korw %k3, %k2, %k26326; AVX512BW-NEXT:    movw $-17, %ax6327; AVX512BW-NEXT:    kmovd %eax, %k76328; AVX512BW-NEXT:    kandw %k7, %k2, %k26329; AVX512BW-NEXT:    kmovw %k7, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill6330; AVX512BW-NEXT:    kshiftrw $11, %k1, %k36331; AVX512BW-NEXT:    korw %k3, %k2, %k26332; AVX512BW-NEXT:    movw $-33, %ax6333; AVX512BW-NEXT:    kmovd %eax, %k06334; AVX512BW-NEXT:    kmovw %k0, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill6335; AVX512BW-NEXT:    kandw %k0, %k2, %k26336; AVX512BW-NEXT:    kshiftrw $10, %k1, %k16337; AVX512BW-NEXT:    korw %k1, %k2, %k16338; AVX512BW-NEXT:    movw $-65, %ax6339; AVX512BW-NEXT:    kmovd %eax, %k06340; AVX512BW-NEXT:    kmovw %k0, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill6341; AVX512BW-NEXT:    kandw %k0, %k1, %k26342; AVX512BW-NEXT:    kshiftrd $1, %k5, %k16343; AVX512BW-NEXT:    kshiftlw $15, %k1, %k16344; AVX512BW-NEXT:    kshiftrw $9, %k1, %k36345; AVX512BW-NEXT:    korw %k3, %k2, %k26346; AVX512BW-NEXT:    movw $-129, %ax6347; AVX512BW-NEXT:    kmovd %eax, %k06348; AVX512BW-NEXT:    kmovw %k0, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill6349; AVX512BW-NEXT:    kandw %k0, %k2, %k26350; AVX512BW-NEXT:    kshiftrw $8, %k1, %k36351; AVX512BW-NEXT:    korw %k3, %k2, %k26352; AVX512BW-NEXT:    movw $-257, %ax # imm = 0xFEFF6353; AVX512BW-NEXT:    kmovd %eax, %k06354; AVX512BW-NEXT:    kmovw %k0, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill6355; AVX512BW-NEXT:    kandw %k0, %k2, %k26356; AVX512BW-NEXT:    kshiftrw $7, %k1, %k36357; AVX512BW-NEXT:    korw %k3, %k2, %k26358; AVX512BW-NEXT:    movw $-513, %ax # imm = 0xFDFF6359; AVX512BW-NEXT:    kmovd %eax, %k06360; AVX512BW-NEXT:    kmovw %k0, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill6361; AVX512BW-NEXT:    kandw %k0, %k2, %k26362; AVX512BW-NEXT:    kshiftrw $6, %k1, %k36363; AVX512BW-NEXT:    korw %k3, %k2, %k26364; AVX512BW-NEXT:    movw $-1025, %ax # imm = 0xFBFF6365; AVX512BW-NEXT:    kmovd %eax, %k66366; AVX512BW-NEXT:    kandw %k6, %k2, %k26367; AVX512BW-NEXT:    kmovw %k6, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill6368; AVX512BW-NEXT:    kshiftrw $5, %k1, %k36369; AVX512BW-NEXT:    korw %k3, %k2, %k26370; AVX512BW-NEXT:    movw $-2049, %ax # imm = 0xF7FF6371; AVX512BW-NEXT:    kmovd %eax, %k06372; AVX512BW-NEXT:    kmovw %k0, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill6373; AVX512BW-NEXT:    kandw %k0, %k2, %k26374; AVX512BW-NEXT:    kshiftrw $4, %k1, %k16375; AVX512BW-NEXT:    korw %k1, %k2, %k16376; AVX512BW-NEXT:    movw $-4097, %ax # imm = 0xEFFF6377; AVX512BW-NEXT:    kmovd %eax, %k06378; AVX512BW-NEXT:    kmovw %k0, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill6379; AVX512BW-NEXT:    kandw %k0, %k1, %k16380; AVX512BW-NEXT:    kshiftrd $2, %k5, %k46381; AVX512BW-NEXT:    kshiftlw $15, %k4, %k36382; AVX512BW-NEXT:    kmovd %k4, {{[-0-9]+}}(%r{{[sb]}}p) # 4-byte Spill6383; AVX512BW-NEXT:    kshiftrw $3, %k3, %k26384; AVX512BW-NEXT:    korw %k2, %k1, %k16385; AVX512BW-NEXT:    movw $-8193, %ax # imm = 0xDFFF6386; AVX512BW-NEXT:    kmovd %eax, %k26387; AVX512BW-NEXT:    kmovw %k2, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill6388; AVX512BW-NEXT:    kandw %k2, %k1, %k16389; AVX512BW-NEXT:    kshiftrw $2, %k3, %k26390; AVX512BW-NEXT:    kmovw %k3, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill6391; AVX512BW-NEXT:    korw %k2, %k1, %k16392; AVX512BW-NEXT:    movw $-16385, %ax # imm = 0xBFFF6393; AVX512BW-NEXT:    kmovd %eax, %k26394; AVX512BW-NEXT:    kmovw %k2, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill6395; AVX512BW-NEXT:    kandw %k2, %k1, %k16396; AVX512BW-NEXT:    kshiftlw $14, %k4, %k26397; AVX512BW-NEXT:    korw %k2, %k1, %k16398; AVX512BW-NEXT:    kshiftlw $1, %k1, %k16399; AVX512BW-NEXT:    kshiftrw $1, %k1, %k16400; AVX512BW-NEXT:    korw %k3, %k1, %k16401; AVX512BW-NEXT:    vmovdqa32 (%rsi), %zmm0 {%k1} {z}6402; AVX512BW-NEXT:    kshiftrd $29, %k5, %k06403; AVX512BW-NEXT:    kmovd %k0, {{[-0-9]+}}(%r{{[sb]}}p) # 4-byte Spill6404; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload6405; AVX512BW-NEXT:    kandw %k1, %k0, %k16406; AVX512BW-NEXT:    kshiftlw $15, %k0, %k06407; AVX512BW-NEXT:    kshiftrw $14, %k0, %k46408; AVX512BW-NEXT:    korw %k4, %k1, %k16409; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload6410; AVX512BW-NEXT:    kandw %k2, %k1, %k16411; AVX512BW-NEXT:    kshiftrw $13, %k0, %k46412; AVX512BW-NEXT:    kmovw %k0, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill6413; AVX512BW-NEXT:    korw %k4, %k1, %k16414; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload6415; AVX512BW-NEXT:    kandw %k3, %k1, %k16416; AVX512BW-NEXT:    kshiftrw $12, %k0, %k46417; AVX512BW-NEXT:    korw %k4, %k1, %k16418; AVX512BW-NEXT:    kandw %k7, %k1, %k16419; AVX512BW-NEXT:    kshiftrd $30, %k5, %k46420; AVX512BW-NEXT:    kshiftlw $15, %k4, %k46421; AVX512BW-NEXT:    kshiftrw $11, %k4, %k76422; AVX512BW-NEXT:    korw %k7, %k1, %k16423; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload6424; AVX512BW-NEXT:    kandw %k3, %k1, %k16425; AVX512BW-NEXT:    kshiftrw $10, %k4, %k76426; AVX512BW-NEXT:    korw %k7, %k1, %k16427; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k0 # 2-byte Reload6428; AVX512BW-NEXT:    kandw %k0, %k1, %k16429; AVX512BW-NEXT:    kshiftrw $9, %k4, %k76430; AVX512BW-NEXT:    korw %k7, %k1, %k16431; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k0 # 2-byte Reload6432; AVX512BW-NEXT:    kandw %k0, %k1, %k16433; AVX512BW-NEXT:    kshiftrw $8, %k4, %k76434; AVX512BW-NEXT:    korw %k7, %k1, %k16435; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload6436; AVX512BW-NEXT:    kandw %k3, %k1, %k16437; AVX512BW-NEXT:    kshiftrw $7, %k4, %k76438; AVX512BW-NEXT:    korw %k7, %k1, %k16439; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload6440; AVX512BW-NEXT:    kandw %k3, %k1, %k16441; AVX512BW-NEXT:    kshiftrw $6, %k4, %k46442; AVX512BW-NEXT:    korw %k4, %k1, %k16443; AVX512BW-NEXT:    kandw %k6, %k1, %k46444; AVX512BW-NEXT:    kshiftrd $31, %k5, %k76445; AVX512BW-NEXT:    kshiftlw $15, %k7, %k16446; AVX512BW-NEXT:    kshiftrw $5, %k1, %k66447; AVX512BW-NEXT:    korw %k6, %k4, %k46448; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k0 # 2-byte Reload6449; AVX512BW-NEXT:    kandw %k0, %k4, %k46450; AVX512BW-NEXT:    kshiftrw $4, %k1, %k66451; AVX512BW-NEXT:    korw %k6, %k4, %k46452; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k0 # 2-byte Reload6453; AVX512BW-NEXT:    kandw %k0, %k4, %k46454; AVX512BW-NEXT:    kshiftrw $3, %k1, %k66455; AVX512BW-NEXT:    korw %k6, %k4, %k46456; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload6457; AVX512BW-NEXT:    kandw %k6, %k4, %k46458; AVX512BW-NEXT:    kshiftrw $2, %k1, %k66459; AVX512BW-NEXT:    korw %k6, %k4, %k46460; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload6461; AVX512BW-NEXT:    kandw %k6, %k4, %k46462; AVX512BW-NEXT:    kshiftlw $14, %k7, %k66463; AVX512BW-NEXT:    korw %k6, %k4, %k46464; AVX512BW-NEXT:    kshiftlw $1, %k4, %k46465; AVX512BW-NEXT:    kshiftrw $1, %k4, %k46466; AVX512BW-NEXT:    korw %k1, %k4, %k16467; AVX512BW-NEXT:    vmovdqa32 704(%rsi), %zmm1 {%k1} {z}6468; AVX512BW-NEXT:    kshiftrd $26, %k5, %k46469; AVX512BW-NEXT:    kmovd %k4, {{[-0-9]+}}(%r{{[sb]}}p) # 4-byte Spill6470; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload6471; AVX512BW-NEXT:    kandw %k1, %k4, %k66472; AVX512BW-NEXT:    kshiftlw $15, %k4, %k16473; AVX512BW-NEXT:    kmovw %k1, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill6474; AVX512BW-NEXT:    kshiftrw $14, %k1, %k76475; AVX512BW-NEXT:    korw %k7, %k6, %k66476; AVX512BW-NEXT:    kandw %k2, %k6, %k66477; AVX512BW-NEXT:    kshiftrd $27, %k5, %k76478; AVX512BW-NEXT:    kmovq %k5, %k26479; AVX512BW-NEXT:    kmovd %k5, {{[-0-9]+}}(%r{{[sb]}}p) # 4-byte Spill6480; AVX512BW-NEXT:    kshiftlw $15, %k7, %k76481; AVX512BW-NEXT:    kshiftrw $13, %k7, %k56482; AVX512BW-NEXT:    korw %k5, %k6, %k56483; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload6484; AVX512BW-NEXT:    kandw %k4, %k5, %k56485; AVX512BW-NEXT:    kshiftrw $12, %k7, %k66486; AVX512BW-NEXT:    korw %k6, %k5, %k56487; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload6488; AVX512BW-NEXT:    kandw %k1, %k5, %k56489; AVX512BW-NEXT:    kshiftrw $11, %k7, %k66490; AVX512BW-NEXT:    korw %k6, %k5, %k56491; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload6492; AVX512BW-NEXT:    kandw %k1, %k5, %k56493; AVX512BW-NEXT:    kshiftrw $10, %k7, %k66494; AVX512BW-NEXT:    korw %k6, %k5, %k56495; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload6496; AVX512BW-NEXT:    kandw %k1, %k5, %k56497; AVX512BW-NEXT:    kshiftrw $9, %k7, %k66498; AVX512BW-NEXT:    korw %k6, %k5, %k56499; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload6500; AVX512BW-NEXT:    kandw %k1, %k5, %k56501; AVX512BW-NEXT:    kshiftrw $8, %k7, %k66502; AVX512BW-NEXT:    korw %k6, %k5, %k56503; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload6504; AVX512BW-NEXT:    kandw %k1, %k5, %k56505; AVX512BW-NEXT:    kshiftrd $28, %k2, %k66506; AVX512BW-NEXT:    kshiftlw $15, %k6, %k66507; AVX512BW-NEXT:    kshiftrw $7, %k6, %k76508; AVX512BW-NEXT:    korw %k7, %k5, %k56509; AVX512BW-NEXT:    kandw %k3, %k5, %k56510; AVX512BW-NEXT:    kshiftrw $6, %k6, %k76511; AVX512BW-NEXT:    korw %k7, %k5, %k56512; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload6513; AVX512BW-NEXT:    kandw %k1, %k5, %k56514; AVX512BW-NEXT:    kshiftrw $5, %k6, %k76515; AVX512BW-NEXT:    korw %k7, %k5, %k56516; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload6517; AVX512BW-NEXT:    kandw %k1, %k5, %k56518; AVX512BW-NEXT:    kshiftrw $4, %k6, %k76519; AVX512BW-NEXT:    korw %k7, %k5, %k56520; AVX512BW-NEXT:    kandw %k0, %k5, %k56521; AVX512BW-NEXT:    kshiftrw $3, %k6, %k76522; AVX512BW-NEXT:    korw %k7, %k5, %k56523; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload6524; AVX512BW-NEXT:    kandw %k1, %k5, %k56525; AVX512BW-NEXT:    kshiftrw $2, %k6, %k66526; AVX512BW-NEXT:    korw %k6, %k5, %k56527; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k7 # 2-byte Reload6528; AVX512BW-NEXT:    kandw %k7, %k5, %k56529; AVX512BW-NEXT:    kmovd {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 4-byte Reload6530; AVX512BW-NEXT:    kshiftlw $14, %k2, %k36531; AVX512BW-NEXT:    korw %k3, %k5, %k36532; AVX512BW-NEXT:    kshiftlw $1, %k3, %k36533; AVX512BW-NEXT:    kshiftrw $1, %k3, %k36534; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload6535; AVX512BW-NEXT:    korw %k2, %k3, %k26536; AVX512BW-NEXT:    vmovdqa32 640(%rsi), %zmm2 {%k2} {z}6537; AVX512BW-NEXT:    kmovd {{[-0-9]+}}(%r{{[sb]}}p), %k0 # 4-byte Reload6538; AVX512BW-NEXT:    kshiftrd $24, %k0, %k26539; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload6540; AVX512BW-NEXT:    kandw %k3, %k2, %k36541; AVX512BW-NEXT:    kshiftlw $15, %k2, %k26542; AVX512BW-NEXT:    kshiftrw $14, %k2, %k56543; AVX512BW-NEXT:    korw %k5, %k3, %k36544; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload6545; AVX512BW-NEXT:    kandw %k5, %k3, %k36546; AVX512BW-NEXT:    kshiftrw $13, %k2, %k56547; AVX512BW-NEXT:    korw %k5, %k3, %k36548; AVX512BW-NEXT:    kandw %k4, %k3, %k36549; AVX512BW-NEXT:    kshiftrw $12, %k2, %k56550; AVX512BW-NEXT:    korw %k5, %k3, %k36551; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload6552; AVX512BW-NEXT:    kandw %k6, %k3, %k36553; AVX512BW-NEXT:    kshiftrw $11, %k2, %k56554; AVX512BW-NEXT:    korw %k5, %k3, %k36555; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload6556; AVX512BW-NEXT:    kandw %k4, %k3, %k36557; AVX512BW-NEXT:    kshiftrw $10, %k2, %k26558; AVX512BW-NEXT:    korw %k2, %k3, %k26559; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload6560; AVX512BW-NEXT:    kandw %k3, %k2, %k26561; AVX512BW-NEXT:    kshiftrd $25, %k0, %k36562; AVX512BW-NEXT:    kshiftlw $15, %k3, %k36563; AVX512BW-NEXT:    kshiftrw $9, %k3, %k56564; AVX512BW-NEXT:    korw %k5, %k2, %k26565; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload6566; AVX512BW-NEXT:    kandw %k4, %k2, %k26567; AVX512BW-NEXT:    kshiftrw $8, %k3, %k56568; AVX512BW-NEXT:    korw %k5, %k2, %k26569; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload6570; AVX512BW-NEXT:    kandw %k4, %k2, %k26571; AVX512BW-NEXT:    kshiftrw $7, %k3, %k56572; AVX512BW-NEXT:    korw %k5, %k2, %k26573; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload6574; AVX512BW-NEXT:    kandw %k4, %k2, %k26575; AVX512BW-NEXT:    kshiftrw $6, %k3, %k56576; AVX512BW-NEXT:    korw %k5, %k2, %k26577; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload6578; AVX512BW-NEXT:    kandw %k4, %k2, %k26579; AVX512BW-NEXT:    kshiftrw $5, %k3, %k56580; AVX512BW-NEXT:    korw %k5, %k2, %k26581; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload6582; AVX512BW-NEXT:    kandw %k4, %k2, %k26583; AVX512BW-NEXT:    kshiftrw $4, %k3, %k36584; AVX512BW-NEXT:    korw %k3, %k2, %k26585; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload6586; AVX512BW-NEXT:    kandw %k3, %k2, %k26587; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload6588; AVX512BW-NEXT:    kshiftrw $3, %k4, %k36589; AVX512BW-NEXT:    korw %k3, %k2, %k26590; AVX512BW-NEXT:    kandw %k1, %k2, %k26591; AVX512BW-NEXT:    kshiftrw $2, %k4, %k36592; AVX512BW-NEXT:    korw %k3, %k2, %k26593; AVX512BW-NEXT:    kandw %k7, %k2, %k26594; AVX512BW-NEXT:    kmovd {{[-0-9]+}}(%r{{[sb]}}p), %k0 # 4-byte Reload6595; AVX512BW-NEXT:    kshiftlw $14, %k0, %k36596; AVX512BW-NEXT:    korw %k3, %k2, %k26597; AVX512BW-NEXT:    kshiftlw $1, %k2, %k26598; AVX512BW-NEXT:    kshiftrw $1, %k2, %k26599; AVX512BW-NEXT:    korw %k4, %k2, %k16600; AVX512BW-NEXT:    vmovdqa32 576(%rsi), %zmm3 {%k1} {z}6601; AVX512BW-NEXT:    kmovd {{[-0-9]+}}(%r{{[sb]}}p), %k7 # 4-byte Reload6602; AVX512BW-NEXT:    kshiftrd $21, %k7, %k26603; AVX512BW-NEXT:    kmovd %k2, {{[-0-9]+}}(%r{{[sb]}}p) # 4-byte Spill6604; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k0 # 2-byte Reload6605; AVX512BW-NEXT:    kandw %k0, %k2, %k36606; AVX512BW-NEXT:    kshiftlw $15, %k2, %k26607; AVX512BW-NEXT:    kmovw %k2, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill6608; AVX512BW-NEXT:    kshiftrw $14, %k2, %k46609; AVX512BW-NEXT:    korw %k4, %k3, %k36610; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k0 # 2-byte Reload6611; AVX512BW-NEXT:    kandw %k0, %k3, %k36612; AVX512BW-NEXT:    kshiftrw $13, %k2, %k46613; AVX512BW-NEXT:    korw %k4, %k3, %k36614; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k0 # 2-byte Reload6615; AVX512BW-NEXT:    kandw %k0, %k3, %k36616; AVX512BW-NEXT:    kshiftrw $12, %k2, %k46617; AVX512BW-NEXT:    korw %k4, %k3, %k36618; AVX512BW-NEXT:    kandw %k6, %k3, %k36619; AVX512BW-NEXT:    kshiftrd $22, %k7, %k46620; AVX512BW-NEXT:    kshiftlw $15, %k4, %k46621; AVX512BW-NEXT:    kshiftrw $11, %k4, %k56622; AVX512BW-NEXT:    korw %k5, %k3, %k36623; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k0 # 2-byte Reload6624; AVX512BW-NEXT:    kandw %k0, %k3, %k36625; AVX512BW-NEXT:    kshiftrw $10, %k4, %k56626; AVX512BW-NEXT:    korw %k5, %k3, %k36627; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k0 # 2-byte Reload6628; AVX512BW-NEXT:    kandw %k0, %k3, %k36629; AVX512BW-NEXT:    kshiftrw $9, %k4, %k56630; AVX512BW-NEXT:    korw %k5, %k3, %k36631; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload6632; AVX512BW-NEXT:    kandw %k1, %k3, %k36633; AVX512BW-NEXT:    kshiftrw $8, %k4, %k56634; AVX512BW-NEXT:    korw %k5, %k3, %k36635; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload6636; AVX512BW-NEXT:    kandw %k2, %k3, %k36637; AVX512BW-NEXT:    kshiftrw $7, %k4, %k56638; AVX512BW-NEXT:    korw %k5, %k3, %k36639; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload6640; AVX512BW-NEXT:    kandw %k5, %k3, %k36641; AVX512BW-NEXT:    kshiftrw $6, %k4, %k46642; AVX512BW-NEXT:    korw %k4, %k3, %k36643; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload6644; AVX512BW-NEXT:    kandw %k4, %k3, %k46645; AVX512BW-NEXT:    kshiftrd $23, %k7, %k56646; AVX512BW-NEXT:    kshiftlw $15, %k5, %k36647; AVX512BW-NEXT:    kshiftrw $5, %k3, %k66648; AVX512BW-NEXT:    korw %k6, %k4, %k46649; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload6650; AVX512BW-NEXT:    kandw %k6, %k4, %k46651; AVX512BW-NEXT:    kshiftrw $4, %k3, %k66652; AVX512BW-NEXT:    korw %k6, %k4, %k46653; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload6654; AVX512BW-NEXT:    kandw %k6, %k4, %k46655; AVX512BW-NEXT:    kshiftrw $3, %k3, %k66656; AVX512BW-NEXT:    korw %k6, %k4, %k46657; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload6658; AVX512BW-NEXT:    kandw %k6, %k4, %k46659; AVX512BW-NEXT:    kshiftrw $2, %k3, %k66660; AVX512BW-NEXT:    korw %k6, %k4, %k46661; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload6662; AVX512BW-NEXT:    kandw %k6, %k4, %k46663; AVX512BW-NEXT:    kshiftlw $14, %k5, %k56664; AVX512BW-NEXT:    korw %k5, %k4, %k46665; AVX512BW-NEXT:    kshiftlw $1, %k4, %k46666; AVX512BW-NEXT:    kshiftrw $1, %k4, %k46667; AVX512BW-NEXT:    korw %k3, %k4, %k36668; AVX512BW-NEXT:    vmovdqa32 512(%rsi), %zmm4 {%k3} {z}6669; AVX512BW-NEXT:    kmovq %k7, %k46670; AVX512BW-NEXT:    kshiftrd $18, %k7, %k66671; AVX512BW-NEXT:    kmovd %k6, {{[-0-9]+}}(%r{{[sb]}}p) # 4-byte Spill6672; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload6673; AVX512BW-NEXT:    kandw %k3, %k6, %k56674; AVX512BW-NEXT:    kshiftlw $15, %k6, %k36675; AVX512BW-NEXT:    kmovw %k3, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill6676; AVX512BW-NEXT:    kshiftrw $14, %k3, %k66677; AVX512BW-NEXT:    korw %k6, %k5, %k56678; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload6679; AVX512BW-NEXT:    kandw %k3, %k5, %k56680; AVX512BW-NEXT:    kshiftrd $19, %k7, %k66681; AVX512BW-NEXT:    kshiftlw $15, %k6, %k66682; AVX512BW-NEXT:    kshiftrw $13, %k6, %k76683; AVX512BW-NEXT:    korw %k7, %k5, %k56684; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload6685; AVX512BW-NEXT:    kandw %k3, %k5, %k56686; AVX512BW-NEXT:    kshiftrw $12, %k6, %k76687; AVX512BW-NEXT:    korw %k7, %k5, %k56688; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload6689; AVX512BW-NEXT:    kandw %k3, %k5, %k56690; AVX512BW-NEXT:    kshiftrw $11, %k6, %k76691; AVX512BW-NEXT:    korw %k7, %k5, %k56692; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload6693; AVX512BW-NEXT:    kandw %k3, %k5, %k56694; AVX512BW-NEXT:    kshiftrw $10, %k6, %k76695; AVX512BW-NEXT:    korw %k7, %k5, %k56696; AVX512BW-NEXT:    kandw %k0, %k5, %k56697; AVX512BW-NEXT:    kshiftrw $9, %k6, %k76698; AVX512BW-NEXT:    korw %k7, %k5, %k56699; AVX512BW-NEXT:    kandw %k1, %k5, %k56700; AVX512BW-NEXT:    kshiftrw $8, %k6, %k66701; AVX512BW-NEXT:    korw %k6, %k5, %k56702; AVX512BW-NEXT:    kandw %k2, %k5, %k56703; AVX512BW-NEXT:    kshiftrd $20, %k4, %k66704; AVX512BW-NEXT:    kshiftlw $15, %k6, %k66705; AVX512BW-NEXT:    kshiftrw $7, %k6, %k76706; AVX512BW-NEXT:    korw %k7, %k5, %k56707; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k0 # 2-byte Reload6708; AVX512BW-NEXT:    kandw %k0, %k5, %k56709; AVX512BW-NEXT:    kshiftrw $6, %k6, %k76710; AVX512BW-NEXT:    korw %k7, %k5, %k56711; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k0 # 2-byte Reload6712; AVX512BW-NEXT:    kandw %k0, %k5, %k56713; AVX512BW-NEXT:    kshiftrw $5, %k6, %k76714; AVX512BW-NEXT:    korw %k7, %k5, %k56715; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload6716; AVX512BW-NEXT:    kandw %k3, %k5, %k56717; AVX512BW-NEXT:    kshiftrw $4, %k6, %k76718; AVX512BW-NEXT:    korw %k7, %k5, %k56719; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload6720; AVX512BW-NEXT:    kandw %k1, %k5, %k56721; AVX512BW-NEXT:    kshiftrw $3, %k6, %k76722; AVX512BW-NEXT:    korw %k7, %k5, %k56723; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload6724; AVX512BW-NEXT:    kandw %k1, %k5, %k56725; AVX512BW-NEXT:    kshiftrw $2, %k6, %k66726; AVX512BW-NEXT:    korw %k6, %k5, %k56727; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload6728; AVX512BW-NEXT:    kandw %k1, %k5, %k56729; AVX512BW-NEXT:    kmovd {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 4-byte Reload6730; AVX512BW-NEXT:    kshiftlw $14, %k1, %k26731; AVX512BW-NEXT:    korw %k2, %k5, %k26732; AVX512BW-NEXT:    kshiftlw $1, %k2, %k26733; AVX512BW-NEXT:    kshiftrw $1, %k2, %k26734; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k0 # 2-byte Reload6735; AVX512BW-NEXT:    korw %k0, %k2, %k16736; AVX512BW-NEXT:    vmovdqa32 448(%rsi), %zmm5 {%k1} {z}6737; AVX512BW-NEXT:    kmovq %k4, %k06738; AVX512BW-NEXT:    kshiftrd $16, %k4, %k16739; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload6740; AVX512BW-NEXT:    kandw %k2, %k1, %k26741; AVX512BW-NEXT:    kshiftlw $15, %k1, %k16742; AVX512BW-NEXT:    kshiftrw $14, %k1, %k56743; AVX512BW-NEXT:    korw %k5, %k2, %k26744; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload6745; AVX512BW-NEXT:    kandw %k6, %k2, %k26746; AVX512BW-NEXT:    kshiftrw $13, %k1, %k56747; AVX512BW-NEXT:    korw %k5, %k2, %k26748; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k7 # 2-byte Reload6749; AVX512BW-NEXT:    kandw %k7, %k2, %k26750; AVX512BW-NEXT:    kshiftrw $12, %k1, %k56751; AVX512BW-NEXT:    korw %k5, %k2, %k26752; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload6753; AVX512BW-NEXT:    kandw %k5, %k2, %k26754; AVX512BW-NEXT:    kshiftrw $11, %k1, %k56755; AVX512BW-NEXT:    korw %k5, %k2, %k26756; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload6757; AVX512BW-NEXT:    kandw %k4, %k2, %k26758; AVX512BW-NEXT:    kshiftrw $10, %k1, %k16759; AVX512BW-NEXT:    korw %k1, %k2, %k16760; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload6761; AVX512BW-NEXT:    kandw %k4, %k1, %k16762; AVX512BW-NEXT:    kshiftrd $17, %k0, %k26763; AVX512BW-NEXT:    kshiftlw $15, %k2, %k26764; AVX512BW-NEXT:    kshiftrw $9, %k2, %k56765; AVX512BW-NEXT:    korw %k5, %k1, %k16766; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload6767; AVX512BW-NEXT:    kandw %k5, %k1, %k16768; AVX512BW-NEXT:    kshiftrw $8, %k2, %k56769; AVX512BW-NEXT:    korw %k5, %k1, %k16770; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload6771; AVX512BW-NEXT:    kandw %k5, %k1, %k16772; AVX512BW-NEXT:    kshiftrw $7, %k2, %k56773; AVX512BW-NEXT:    korw %k5, %k1, %k16774; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload6775; AVX512BW-NEXT:    kandw %k5, %k1, %k16776; AVX512BW-NEXT:    kshiftrw $6, %k2, %k56777; AVX512BW-NEXT:    korw %k5, %k1, %k16778; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k0 # 2-byte Reload6779; AVX512BW-NEXT:    kandw %k0, %k1, %k16780; AVX512BW-NEXT:    kshiftrw $5, %k2, %k56781; AVX512BW-NEXT:    korw %k5, %k1, %k16782; AVX512BW-NEXT:    kandw %k3, %k1, %k16783; AVX512BW-NEXT:    kshiftrw $4, %k2, %k26784; AVX512BW-NEXT:    korw %k2, %k1, %k16785; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k0 # 2-byte Reload6786; AVX512BW-NEXT:    kandw %k0, %k1, %k16787; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload6788; AVX512BW-NEXT:    kshiftrw $3, %k3, %k26789; AVX512BW-NEXT:    korw %k2, %k1, %k16790; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k0 # 2-byte Reload6791; AVX512BW-NEXT:    kandw %k0, %k1, %k16792; AVX512BW-NEXT:    kshiftrw $2, %k3, %k26793; AVX512BW-NEXT:    korw %k2, %k1, %k16794; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k0 # 2-byte Reload6795; AVX512BW-NEXT:    kandw %k0, %k1, %k16796; AVX512BW-NEXT:    kmovd {{[-0-9]+}}(%r{{[sb]}}p), %k0 # 4-byte Reload6797; AVX512BW-NEXT:    kshiftlw $14, %k0, %k26798; AVX512BW-NEXT:    korw %k2, %k1, %k16799; AVX512BW-NEXT:    kshiftlw $1, %k1, %k16800; AVX512BW-NEXT:    kshiftrw $1, %k1, %k16801; AVX512BW-NEXT:    korw %k3, %k1, %k16802; AVX512BW-NEXT:    vmovdqa32 384(%rsi), %zmm6 {%k1} {z}6803; AVX512BW-NEXT:    kmovd {{[-0-9]+}}(%r{{[sb]}}p), %k0 # 4-byte Reload6804; AVX512BW-NEXT:    kshiftrd $13, %k0, %k36805; AVX512BW-NEXT:    kmovd %k3, {{[-0-9]+}}(%r{{[sb]}}p) # 4-byte Spill6806; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload6807; AVX512BW-NEXT:    kandw %k1, %k3, %k26808; AVX512BW-NEXT:    kshiftlw $15, %k3, %k56809; AVX512BW-NEXT:    kmovw %k5, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill6810; AVX512BW-NEXT:    kshiftrw $14, %k5, %k36811; AVX512BW-NEXT:    korw %k3, %k2, %k26812; AVX512BW-NEXT:    kandw %k6, %k2, %k26813; AVX512BW-NEXT:    kshiftrw $13, %k5, %k36814; AVX512BW-NEXT:    korw %k3, %k2, %k26815; AVX512BW-NEXT:    kandw %k7, %k2, %k26816; AVX512BW-NEXT:    kshiftrw $12, %k5, %k36817; AVX512BW-NEXT:    korw %k3, %k2, %k26818; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload6819; AVX512BW-NEXT:    kandw %k3, %k2, %k26820; AVX512BW-NEXT:    kshiftrd $14, %k0, %k36821; AVX512BW-NEXT:    kmovq %k0, %k76822; AVX512BW-NEXT:    kshiftlw $15, %k3, %k36823; AVX512BW-NEXT:    kshiftrw $11, %k3, %k56824; AVX512BW-NEXT:    korw %k5, %k2, %k26825; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k0 # 2-byte Reload6826; AVX512BW-NEXT:    kandw %k0, %k2, %k26827; AVX512BW-NEXT:    kshiftrw $10, %k3, %k56828; AVX512BW-NEXT:    korw %k5, %k2, %k26829; AVX512BW-NEXT:    kandw %k4, %k2, %k26830; AVX512BW-NEXT:    kshiftrw $9, %k3, %k56831; AVX512BW-NEXT:    korw %k5, %k2, %k26832; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k0 # 2-byte Reload6833; AVX512BW-NEXT:    kandw %k0, %k2, %k26834; AVX512BW-NEXT:    kshiftrw $8, %k3, %k56835; AVX512BW-NEXT:    korw %k5, %k2, %k26836; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload6837; AVX512BW-NEXT:    kandw %k4, %k2, %k26838; AVX512BW-NEXT:    kshiftrw $7, %k3, %k56839; AVX512BW-NEXT:    korw %k5, %k2, %k26840; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k0 # 2-byte Reload6841; AVX512BW-NEXT:    kandw %k0, %k2, %k26842; AVX512BW-NEXT:    kshiftrw $6, %k3, %k36843; AVX512BW-NEXT:    korw %k3, %k2, %k26844; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k0 # 2-byte Reload6845; AVX512BW-NEXT:    kandw %k0, %k2, %k36846; AVX512BW-NEXT:    kshiftrd $15, %k7, %k56847; AVX512BW-NEXT:    kshiftlw $15, %k5, %k26848; AVX512BW-NEXT:    kshiftrw $5, %k2, %k66849; AVX512BW-NEXT:    korw %k6, %k3, %k36850; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k0 # 2-byte Reload6851; AVX512BW-NEXT:    kandw %k0, %k3, %k36852; AVX512BW-NEXT:    kshiftrw $4, %k2, %k66853; AVX512BW-NEXT:    korw %k6, %k3, %k36854; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k0 # 2-byte Reload6855; AVX512BW-NEXT:    kandw %k0, %k3, %k36856; AVX512BW-NEXT:    kshiftrw $3, %k2, %k66857; AVX512BW-NEXT:    korw %k6, %k3, %k36858; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k0 # 2-byte Reload6859; AVX512BW-NEXT:    kandw %k0, %k3, %k36860; AVX512BW-NEXT:    kshiftrw $2, %k2, %k66861; AVX512BW-NEXT:    korw %k6, %k3, %k36862; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k0 # 2-byte Reload6863; AVX512BW-NEXT:    kandw %k0, %k3, %k36864; AVX512BW-NEXT:    kshiftlw $14, %k5, %k56865; AVX512BW-NEXT:    korw %k5, %k3, %k36866; AVX512BW-NEXT:    kshiftlw $1, %k3, %k36867; AVX512BW-NEXT:    kshiftrw $1, %k3, %k36868; AVX512BW-NEXT:    korw %k2, %k3, %k26869; AVX512BW-NEXT:    vmovdqa32 320(%rsi), %zmm7 {%k2} {z}6870; AVX512BW-NEXT:    kmovq %k7, %k26871; AVX512BW-NEXT:    kshiftrd $10, %k7, %k06872; AVX512BW-NEXT:    kmovd %k0, {{[-0-9]+}}(%r{{[sb]}}p) # 4-byte Spill6873; AVX512BW-NEXT:    kandw %k1, %k0, %k56874; AVX512BW-NEXT:    kshiftlw $15, %k0, %k06875; AVX512BW-NEXT:    kmovw %k0, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill6876; AVX512BW-NEXT:    kshiftrw $14, %k0, %k66877; AVX512BW-NEXT:    korw %k6, %k5, %k56878; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k0 # 2-byte Reload6879; AVX512BW-NEXT:    kandw %k0, %k5, %k56880; AVX512BW-NEXT:    kshiftrd $11, %k7, %k66881; AVX512BW-NEXT:    kshiftlw $15, %k6, %k66882; AVX512BW-NEXT:    kshiftrw $13, %k6, %k76883; AVX512BW-NEXT:    korw %k7, %k5, %k56884; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k0 # 2-byte Reload6885; AVX512BW-NEXT:    kandw %k0, %k5, %k56886; AVX512BW-NEXT:    kshiftrw $12, %k6, %k76887; AVX512BW-NEXT:    korw %k7, %k5, %k56888; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k0 # 2-byte Reload6889; AVX512BW-NEXT:    kandw %k0, %k5, %k56890; AVX512BW-NEXT:    kshiftrw $11, %k6, %k76891; AVX512BW-NEXT:    korw %k7, %k5, %k56892; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload6893; AVX512BW-NEXT:    kandw %k1, %k5, %k56894; AVX512BW-NEXT:    kshiftrw $10, %k6, %k76895; AVX512BW-NEXT:    korw %k7, %k5, %k56896; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload6897; AVX512BW-NEXT:    kandw %k1, %k5, %k56898; AVX512BW-NEXT:    kshiftrw $9, %k6, %k76899; AVX512BW-NEXT:    korw %k7, %k5, %k56900; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload6901; AVX512BW-NEXT:    kandw %k1, %k5, %k56902; AVX512BW-NEXT:    kshiftrw $8, %k6, %k66903; AVX512BW-NEXT:    korw %k6, %k5, %k56904; AVX512BW-NEXT:    kandw %k4, %k5, %k56905; AVX512BW-NEXT:    kshiftrd $12, %k2, %k66906; AVX512BW-NEXT:    kshiftlw $15, %k6, %k66907; AVX512BW-NEXT:    kshiftrw $7, %k6, %k76908; AVX512BW-NEXT:    korw %k7, %k5, %k56909; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload6910; AVX512BW-NEXT:    kandw %k1, %k5, %k56911; AVX512BW-NEXT:    kshiftrw $6, %k6, %k76912; AVX512BW-NEXT:    korw %k7, %k5, %k56913; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload6914; AVX512BW-NEXT:    kandw %k1, %k5, %k56915; AVX512BW-NEXT:    kshiftrw $5, %k6, %k76916; AVX512BW-NEXT:    korw %k7, %k5, %k56917; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload6918; AVX512BW-NEXT:    kandw %k1, %k5, %k56919; AVX512BW-NEXT:    kshiftrw $4, %k6, %k76920; AVX512BW-NEXT:    korw %k7, %k5, %k56921; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload6922; AVX512BW-NEXT:    kandw %k1, %k5, %k56923; AVX512BW-NEXT:    kshiftrw $3, %k6, %k76924; AVX512BW-NEXT:    korw %k7, %k5, %k56925; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k7 # 2-byte Reload6926; AVX512BW-NEXT:    kandw %k7, %k5, %k56927; AVX512BW-NEXT:    kshiftrw $2, %k6, %k66928; AVX512BW-NEXT:    korw %k6, %k5, %k56929; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload6930; AVX512BW-NEXT:    kandw %k3, %k5, %k56931; AVX512BW-NEXT:    kmovd {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 4-byte Reload6932; AVX512BW-NEXT:    kshiftlw $14, %k1, %k46933; AVX512BW-NEXT:    korw %k4, %k5, %k46934; AVX512BW-NEXT:    kshiftlw $1, %k4, %k46935; AVX512BW-NEXT:    kshiftrw $1, %k4, %k46936; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload6937; AVX512BW-NEXT:    korw %k1, %k4, %k16938; AVX512BW-NEXT:    vmovdqa32 256(%rsi), %zmm8 {%k1} {z}6939; AVX512BW-NEXT:    kshiftrd $8, %k2, %k16940; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload6941; AVX512BW-NEXT:    kandw %k6, %k1, %k46942; AVX512BW-NEXT:    kshiftlw $15, %k1, %k16943; AVX512BW-NEXT:    kshiftrw $14, %k1, %k56944; AVX512BW-NEXT:    korw %k5, %k4, %k46945; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload6946; AVX512BW-NEXT:    kandw %k5, %k4, %k46947; AVX512BW-NEXT:    kshiftrw $13, %k1, %k56948; AVX512BW-NEXT:    korw %k5, %k4, %k46949; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload6950; AVX512BW-NEXT:    kandw %k5, %k4, %k46951; AVX512BW-NEXT:    kshiftrw $12, %k1, %k56952; AVX512BW-NEXT:    korw %k5, %k4, %k46953; AVX512BW-NEXT:    kandw %k0, %k4, %k46954; AVX512BW-NEXT:    kshiftrw $11, %k1, %k56955; AVX512BW-NEXT:    korw %k5, %k4, %k46956; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k0 # 2-byte Reload6957; AVX512BW-NEXT:    kandw %k0, %k4, %k46958; AVX512BW-NEXT:    kshiftrw $10, %k1, %k16959; AVX512BW-NEXT:    korw %k1, %k4, %k16960; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k0 # 2-byte Reload6961; AVX512BW-NEXT:    kandw %k0, %k1, %k16962; AVX512BW-NEXT:    kshiftrd $9, %k2, %k46963; AVX512BW-NEXT:    kshiftlw $15, %k4, %k46964; AVX512BW-NEXT:    kshiftrw $9, %k4, %k56965; AVX512BW-NEXT:    korw %k5, %k1, %k16966; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k0 # 2-byte Reload6967; AVX512BW-NEXT:    kandw %k0, %k1, %k16968; AVX512BW-NEXT:    kshiftrw $8, %k4, %k56969; AVX512BW-NEXT:    korw %k5, %k1, %k16970; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k0 # 2-byte Reload6971; AVX512BW-NEXT:    kandw %k0, %k1, %k16972; AVX512BW-NEXT:    kshiftrw $7, %k4, %k56973; AVX512BW-NEXT:    korw %k5, %k1, %k16974; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload6975; AVX512BW-NEXT:    kandw %k5, %k1, %k16976; AVX512BW-NEXT:    kshiftrw $6, %k4, %k56977; AVX512BW-NEXT:    korw %k5, %k1, %k16978; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload6979; AVX512BW-NEXT:    kandw %k5, %k1, %k16980; AVX512BW-NEXT:    kshiftrw $5, %k4, %k56981; AVX512BW-NEXT:    korw %k5, %k1, %k16982; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload6983; AVX512BW-NEXT:    kandw %k5, %k1, %k16984; AVX512BW-NEXT:    kshiftrw $4, %k4, %k46985; AVX512BW-NEXT:    korw %k4, %k1, %k16986; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload6987; AVX512BW-NEXT:    kandw %k2, %k1, %k16988; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload6989; AVX512BW-NEXT:    kshiftrw $3, %k5, %k46990; AVX512BW-NEXT:    korw %k4, %k1, %k16991; AVX512BW-NEXT:    kandw %k7, %k1, %k16992; AVX512BW-NEXT:    kshiftrw $2, %k5, %k46993; AVX512BW-NEXT:    korw %k4, %k1, %k16994; AVX512BW-NEXT:    kandw %k3, %k1, %k16995; AVX512BW-NEXT:    kmovd {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 4-byte Reload6996; AVX512BW-NEXT:    kshiftlw $14, %k2, %k26997; AVX512BW-NEXT:    korw %k2, %k1, %k16998; AVX512BW-NEXT:    kshiftlw $1, %k1, %k16999; AVX512BW-NEXT:    kshiftrw $1, %k1, %k17000; AVX512BW-NEXT:    korw %k5, %k1, %k17001; AVX512BW-NEXT:    vmovdqa32 192(%rsi), %zmm9 {%k1} {z}7002; AVX512BW-NEXT:    kmovd {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 4-byte Reload7003; AVX512BW-NEXT:    kshiftrd $5, %k1, %k27004; AVX512BW-NEXT:    kmovd %k2, {{[-0-9]+}}(%r{{[sb]}}p) # 4-byte Spill7005; AVX512BW-NEXT:    kandw %k6, %k2, %k37006; AVX512BW-NEXT:    kshiftlw $15, %k2, %k77007; AVX512BW-NEXT:    kshiftrw $14, %k7, %k47008; AVX512BW-NEXT:    korw %k4, %k3, %k37009; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload7010; AVX512BW-NEXT:    kandw %k2, %k3, %k37011; AVX512BW-NEXT:    kshiftrw $13, %k7, %k47012; AVX512BW-NEXT:    korw %k4, %k3, %k37013; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload7014; AVX512BW-NEXT:    kandw %k2, %k3, %k37015; AVX512BW-NEXT:    kshiftrw $12, %k7, %k47016; AVX512BW-NEXT:    korw %k4, %k3, %k37017; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload7018; AVX512BW-NEXT:    kandw %k2, %k3, %k37019; AVX512BW-NEXT:    kshiftrd $6, %k1, %k47020; AVX512BW-NEXT:    kshiftlw $15, %k4, %k47021; AVX512BW-NEXT:    kshiftrw $11, %k4, %k57022; AVX512BW-NEXT:    korw %k5, %k3, %k37023; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload7024; AVX512BW-NEXT:    kandw %k2, %k3, %k37025; AVX512BW-NEXT:    kshiftrw $10, %k4, %k57026; AVX512BW-NEXT:    korw %k5, %k3, %k37027; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload7028; AVX512BW-NEXT:    kandw %k2, %k3, %k37029; AVX512BW-NEXT:    kshiftrw $9, %k4, %k57030; AVX512BW-NEXT:    korw %k5, %k3, %k37031; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload7032; AVX512BW-NEXT:    kandw %k2, %k3, %k37033; AVX512BW-NEXT:    kshiftrw $8, %k4, %k57034; AVX512BW-NEXT:    korw %k5, %k3, %k37035; AVX512BW-NEXT:    kandw %k0, %k3, %k37036; AVX512BW-NEXT:    kshiftrw $7, %k4, %k57037; AVX512BW-NEXT:    korw %k5, %k3, %k37038; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload7039; AVX512BW-NEXT:    kandw %k5, %k3, %k37040; AVX512BW-NEXT:    kshiftrw $6, %k4, %k47041; AVX512BW-NEXT:    korw %k4, %k3, %k37042; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload7043; AVX512BW-NEXT:    kandw %k4, %k3, %k47044; AVX512BW-NEXT:    kshiftrd $7, %k1, %k57045; AVX512BW-NEXT:    kshiftlw $15, %k5, %k37046; AVX512BW-NEXT:    kshiftrw $5, %k3, %k67047; AVX512BW-NEXT:    korw %k6, %k4, %k47048; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload7049; AVX512BW-NEXT:    kandw %k6, %k4, %k47050; AVX512BW-NEXT:    kshiftrw $4, %k3, %k67051; AVX512BW-NEXT:    korw %k6, %k4, %k47052; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload7053; AVX512BW-NEXT:    kandw %k6, %k4, %k47054; AVX512BW-NEXT:    kshiftrw $3, %k3, %k67055; AVX512BW-NEXT:    korw %k6, %k4, %k47056; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload7057; AVX512BW-NEXT:    kandw %k6, %k4, %k47058; AVX512BW-NEXT:    kshiftrw $2, %k3, %k67059; AVX512BW-NEXT:    korw %k6, %k4, %k47060; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload7061; AVX512BW-NEXT:    kandw %k6, %k4, %k47062; AVX512BW-NEXT:    kshiftlw $14, %k5, %k57063; AVX512BW-NEXT:    korw %k5, %k4, %k47064; AVX512BW-NEXT:    kshiftlw $1, %k4, %k47065; AVX512BW-NEXT:    kshiftrw $1, %k4, %k47066; AVX512BW-NEXT:    korw %k3, %k4, %k37067; AVX512BW-NEXT:    vmovdqa32 128(%rsi), %zmm10 {%k3} {z}7068; AVX512BW-NEXT:    kmovd {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 4-byte Reload7069; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload7070; AVX512BW-NEXT:    kandw %k4, %k3, %k37071; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload7072; AVX512BW-NEXT:    kshiftrw $14, %k4, %k47073; AVX512BW-NEXT:    korw %k4, %k3, %k37074; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload7075; AVX512BW-NEXT:    kandw %k4, %k3, %k37076; AVX512BW-NEXT:    kshiftrd $3, %k1, %k47077; AVX512BW-NEXT:    kshiftlw $15, %k4, %k47078; AVX512BW-NEXT:    kshiftrw $13, %k4, %k57079; AVX512BW-NEXT:    korw %k5, %k3, %k37080; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload7081; AVX512BW-NEXT:    kandw %k5, %k3, %k37082; AVX512BW-NEXT:    kshiftrw $12, %k4, %k57083; AVX512BW-NEXT:    korw %k5, %k3, %k37084; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload7085; AVX512BW-NEXT:    kandw %k5, %k3, %k37086; AVX512BW-NEXT:    kshiftrw $11, %k4, %k57087; AVX512BW-NEXT:    korw %k5, %k3, %k37088; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload7089; AVX512BW-NEXT:    kandw %k5, %k3, %k37090; AVX512BW-NEXT:    kshiftrw $10, %k4, %k57091; AVX512BW-NEXT:    korw %k5, %k3, %k37092; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload7093; AVX512BW-NEXT:    kandw %k5, %k3, %k37094; AVX512BW-NEXT:    kshiftrw $9, %k4, %k57095; AVX512BW-NEXT:    korw %k5, %k3, %k37096; AVX512BW-NEXT:    kandw %k2, %k3, %k37097; AVX512BW-NEXT:    kshiftrw $8, %k4, %k47098; AVX512BW-NEXT:    korw %k4, %k3, %k37099; AVX512BW-NEXT:    kandw %k0, %k3, %k37100; AVX512BW-NEXT:    kshiftrd $4, %k1, %k07101; AVX512BW-NEXT:    kshiftlw $15, %k0, %k07102; AVX512BW-NEXT:    kshiftrw $7, %k0, %k47103; AVX512BW-NEXT:    korw %k4, %k3, %k37104; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload7105; AVX512BW-NEXT:    kandw %k1, %k3, %k37106; AVX512BW-NEXT:    kshiftrw $6, %k0, %k47107; AVX512BW-NEXT:    korw %k4, %k3, %k37108; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload7109; AVX512BW-NEXT:    kandw %k1, %k3, %k37110; AVX512BW-NEXT:    kshiftrw $5, %k0, %k47111; AVX512BW-NEXT:    korw %k4, %k3, %k37112; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload7113; AVX512BW-NEXT:    kandw %k1, %k3, %k37114; AVX512BW-NEXT:    kshiftrw $4, %k0, %k47115; AVX512BW-NEXT:    korw %k4, %k3, %k37116; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload7117; AVX512BW-NEXT:    kandw %k1, %k3, %k37118; AVX512BW-NEXT:    kshiftrw $3, %k0, %k47119; AVX512BW-NEXT:    korw %k4, %k3, %k37120; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload7121; AVX512BW-NEXT:    kandw %k1, %k3, %k37122; AVX512BW-NEXT:    kshiftrw $2, %k0, %k07123; AVX512BW-NEXT:    korw %k0, %k3, %k07124; AVX512BW-NEXT:    kandw %k6, %k0, %k07125; AVX512BW-NEXT:    kmovd {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 4-byte Reload7126; AVX512BW-NEXT:    kshiftlw $14, %k1, %k27127; AVX512BW-NEXT:    korw %k2, %k0, %k07128; AVX512BW-NEXT:    kshiftlw $1, %k0, %k07129; AVX512BW-NEXT:    kshiftrw $1, %k0, %k07130; AVX512BW-NEXT:    korw %k7, %k0, %k17131; AVX512BW-NEXT:    vmovdqa32 64(%rsi), %zmm11 {%k1} {z}7132; AVX512BW-NEXT:    vmovdqa64 %zmm11, 64(%rdx)7133; AVX512BW-NEXT:    vmovdqa64 %zmm10, 128(%rdx)7134; AVX512BW-NEXT:    vmovdqa64 %zmm9, 192(%rdx)7135; AVX512BW-NEXT:    vmovdqa64 %zmm8, 256(%rdx)7136; AVX512BW-NEXT:    vmovdqa64 %zmm7, 320(%rdx)7137; AVX512BW-NEXT:    vmovdqa64 %zmm6, 384(%rdx)7138; AVX512BW-NEXT:    vmovdqa64 %zmm5, 448(%rdx)7139; AVX512BW-NEXT:    vmovdqa64 %zmm4, 512(%rdx)7140; AVX512BW-NEXT:    vmovdqa64 %zmm3, 576(%rdx)7141; AVX512BW-NEXT:    vmovdqa64 %zmm2, 640(%rdx)7142; AVX512BW-NEXT:    vmovdqa64 %zmm1, 704(%rdx)7143; AVX512BW-NEXT:    vmovdqa64 %zmm0, (%rdx)7144; AVX512BW-NEXT:    vzeroupper7145; AVX512BW-NEXT:    retq7146  %src.mask.padded = load <64 x i1>, ptr %in.maskvec, align 647147  %src.mask = shufflevector <64 x i1> %src.mask.padded, <64 x i1> poison, <32 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31>7148  %tgt.mask = shufflevector <32 x i1> %src.mask, <32 x i1> poison, <192 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 4, i32 4, i32 4, i32 4, i32 4, i32 4, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 6, i32 6, i32 6, i32 6, i32 6, i32 6, i32 7, i32 7, i32 7, i32 7, i32 7, i32 7, i32 8, i32 8, i32 8, i32 8, i32 8, i32 8, i32 9, i32 9, i32 9, i32 9, i32 9, i32 9, i32 10, i32 10, i32 10, i32 10, i32 10, i32 10, i32 11, i32 11, i32 11, i32 11, i32 11, i32 11, i32 12, i32 12, i32 12, i32 12, i32 12, i32 12, i32 13, i32 13, i32 13, i32 13, i32 13, i32 13, i32 14, i32 14, i32 14, i32 14, i32 14, i32 14, i32 15, i32 15, i32 15, i32 15, i32 15, i32 15, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 17, i32 17, i32 17, i32 17, i32 17, i32 17, i32 18, i32 18, i32 18, i32 18, i32 18, i32 18, i32 19, i32 19, i32 19, i32 19, i32 19, i32 19, i32 20, i32 20, i32 20, i32 20, i32 20, i32 20, i32 21, i32 21, i32 21, i32 21, i32 21, i32 21, i32 22, i32 22, i32 22, i32 22, i32 22, i32 22, i32 23, i32 23, i32 23, i32 23, i32 23, i32 23, i32 24, i32 24, i32 24, i32 24, i32 24, i32 24, i32 25, i32 25, i32 25, i32 25, i32 25, i32 25, i32 26, i32 26, i32 26, i32 26, i32 26, i32 26, i32 27, i32 27, i32 27, i32 27, i32 27, i32 27, i32 28, i32 28, i32 28, i32 28, i32 28, i32 28, i32 29, i32 29, i32 29, i32 29, i32 29, i32 29, i32 30, i32 30, i32 30, i32 30, i32 30, i32 30, i32 31, i32 31, i32 31, i32 31, i32 31, i32 31>7149  %data = call <192 x i32> @llvm.masked.load.v192i32.p0(ptr %in.vec, i32 64, <192 x i1> %tgt.mask, <192 x i32> poison)7150  store <192 x i32> %data, ptr %out.vec, align 647151  ret void7152}7153 7154define void @mask_replication_factor6_vf64(ptr %in.maskvec, ptr %in.vec, ptr %out.vec) nounwind {7155; AVX512F-ONLY-LABEL: mask_replication_factor6_vf64:7156; AVX512F-ONLY:       # %bb.0:7157; AVX512F-ONLY-NEXT:    kmovw (%rdi), %k17158; AVX512F-ONLY-NEXT:    vpternlogd {{.*#+}} zmm0 {%k1} {z} = -17159; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm4 = [0,0,0,0,0,0,1,1,1,1,1,1,2,2,2,2]7160; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm4, %zmm17161; AVX512F-ONLY-NEXT:    vptestmd %zmm1, %zmm1, %k17162; AVX512F-ONLY-NEXT:    vpternlogd {{.*#+}} zmm1 {%k1} {z} = -17163; AVX512F-ONLY-NEXT:    movw $1, %ax7164; AVX512F-ONLY-NEXT:    kmovw %eax, %k17165; AVX512F-ONLY-NEXT:    vmovdqa32 %zmm0, %zmm1 {%k1}7166; AVX512F-ONLY-NEXT:    kmovw 6(%rdi), %k17167; AVX512F-ONLY-NEXT:    vpternlogd {{.*#+}} zmm7 {%k1} {z} = -17168; AVX512F-ONLY-NEXT:    kmovw 4(%rdi), %k17169; AVX512F-ONLY-NEXT:    vpternlogd {{.*#+}} zmm8 {%k1} {z} = -17170; AVX512F-ONLY-NEXT:    kmovw 2(%rdi), %k17171; AVX512F-ONLY-NEXT:    vpternlogd {{.*#+}} zmm9 {%k1} {z} = -17172; AVX512F-ONLY-NEXT:    vptestmd %zmm1, %zmm1, %k17173; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm10 = [13,13,13,13,14,14,14,14,14,14,15,15,15,15,15,15]7174; AVX512F-ONLY-NEXT:    vpermd %zmm7, %zmm10, %zmm17175; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm11 = [10,10,11,11,11,11,11,11,12,12,12,12,12,12,13,13]7176; AVX512F-ONLY-NEXT:    vpermd %zmm7, %zmm11, %zmm27177; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [8,8,8,8,8,8,9,9,9,9,9,9,10,10,10,10]7178; AVX512F-ONLY-NEXT:    vpermd %zmm7, %zmm12, %zmm37179; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm13 = [5,5,5,5,6,6,6,6,6,6,7,7,7,7,7,7]7180; AVX512F-ONLY-NEXT:    vpermd %zmm7, %zmm13, %zmm57181; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm14 = [2,2,3,3,3,3,3,3,4,4,4,4,4,4,5,5]7182; AVX512F-ONLY-NEXT:    vpermd %zmm7, %zmm14, %zmm67183; AVX512F-ONLY-NEXT:    vpermd %zmm7, %zmm4, %zmm77184; AVX512F-ONLY-NEXT:    vpermd %zmm8, %zmm10, %zmm157185; AVX512F-ONLY-NEXT:    vpermd %zmm8, %zmm11, %zmm167186; AVX512F-ONLY-NEXT:    vpermd %zmm8, %zmm12, %zmm177187; AVX512F-ONLY-NEXT:    vpermd %zmm8, %zmm13, %zmm187188; AVX512F-ONLY-NEXT:    vpermd %zmm8, %zmm14, %zmm197189; AVX512F-ONLY-NEXT:    vpermd %zmm8, %zmm4, %zmm87190; AVX512F-ONLY-NEXT:    vpermd %zmm9, %zmm10, %zmm207191; AVX512F-ONLY-NEXT:    vpermd %zmm9, %zmm11, %zmm217192; AVX512F-ONLY-NEXT:    vpermd %zmm9, %zmm12, %zmm227193; AVX512F-ONLY-NEXT:    vpermd %zmm9, %zmm13, %zmm237194; AVX512F-ONLY-NEXT:    vpermd %zmm9, %zmm4, %zmm247195; AVX512F-ONLY-NEXT:    vpermd %zmm9, %zmm14, %zmm97196; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm10, %zmm107197; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm11, %zmm117198; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm12, %zmm127199; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm13, %zmm137200; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm14, %zmm47201; AVX512F-ONLY-NEXT:    vmovdqa32 (%rsi), %zmm0 {%k1} {z}7202; AVX512F-ONLY-NEXT:    vptestmd %zmm4, %zmm4, %k17203; AVX512F-ONLY-NEXT:    vmovdqa32 64(%rsi), %zmm4 {%k1} {z}7204; AVX512F-ONLY-NEXT:    vptestmd %zmm13, %zmm13, %k17205; AVX512F-ONLY-NEXT:    vmovdqa32 128(%rsi), %zmm13 {%k1} {z}7206; AVX512F-ONLY-NEXT:    vptestmd %zmm12, %zmm12, %k17207; AVX512F-ONLY-NEXT:    vmovdqa32 192(%rsi), %zmm12 {%k1} {z}7208; AVX512F-ONLY-NEXT:    vptestmd %zmm11, %zmm11, %k17209; AVX512F-ONLY-NEXT:    vmovdqa32 256(%rsi), %zmm11 {%k1} {z}7210; AVX512F-ONLY-NEXT:    vptestmd %zmm10, %zmm10, %k17211; AVX512F-ONLY-NEXT:    vmovdqa32 320(%rsi), %zmm10 {%k1} {z}7212; AVX512F-ONLY-NEXT:    vptestmd %zmm24, %zmm24, %k17213; AVX512F-ONLY-NEXT:    vmovdqa32 384(%rsi), %zmm14 {%k1} {z}7214; AVX512F-ONLY-NEXT:    vptestmd %zmm9, %zmm9, %k17215; AVX512F-ONLY-NEXT:    vmovdqa32 448(%rsi), %zmm9 {%k1} {z}7216; AVX512F-ONLY-NEXT:    vptestmd %zmm23, %zmm23, %k17217; AVX512F-ONLY-NEXT:    vmovdqa32 512(%rsi), %zmm23 {%k1} {z}7218; AVX512F-ONLY-NEXT:    vptestmd %zmm22, %zmm22, %k17219; AVX512F-ONLY-NEXT:    vmovdqa32 576(%rsi), %zmm22 {%k1} {z}7220; AVX512F-ONLY-NEXT:    vptestmd %zmm21, %zmm21, %k17221; AVX512F-ONLY-NEXT:    vmovdqa32 640(%rsi), %zmm21 {%k1} {z}7222; AVX512F-ONLY-NEXT:    vptestmd %zmm20, %zmm20, %k17223; AVX512F-ONLY-NEXT:    vmovdqa32 704(%rsi), %zmm20 {%k1} {z}7224; AVX512F-ONLY-NEXT:    vptestmd %zmm8, %zmm8, %k17225; AVX512F-ONLY-NEXT:    vmovdqa32 768(%rsi), %zmm8 {%k1} {z}7226; AVX512F-ONLY-NEXT:    vptestmd %zmm19, %zmm19, %k17227; AVX512F-ONLY-NEXT:    vmovdqa32 832(%rsi), %zmm19 {%k1} {z}7228; AVX512F-ONLY-NEXT:    vptestmd %zmm18, %zmm18, %k17229; AVX512F-ONLY-NEXT:    vmovdqa32 896(%rsi), %zmm18 {%k1} {z}7230; AVX512F-ONLY-NEXT:    vptestmd %zmm17, %zmm17, %k17231; AVX512F-ONLY-NEXT:    vmovdqa32 960(%rsi), %zmm17 {%k1} {z}7232; AVX512F-ONLY-NEXT:    vptestmd %zmm16, %zmm16, %k17233; AVX512F-ONLY-NEXT:    vmovdqa32 1024(%rsi), %zmm16 {%k1} {z}7234; AVX512F-ONLY-NEXT:    vptestmd %zmm15, %zmm15, %k17235; AVX512F-ONLY-NEXT:    vmovdqa32 1088(%rsi), %zmm15 {%k1} {z}7236; AVX512F-ONLY-NEXT:    vptestmd %zmm7, %zmm7, %k17237; AVX512F-ONLY-NEXT:    vmovdqa32 1152(%rsi), %zmm7 {%k1} {z}7238; AVX512F-ONLY-NEXT:    vptestmd %zmm6, %zmm6, %k17239; AVX512F-ONLY-NEXT:    vmovdqa32 1216(%rsi), %zmm6 {%k1} {z}7240; AVX512F-ONLY-NEXT:    vptestmd %zmm5, %zmm5, %k17241; AVX512F-ONLY-NEXT:    vmovdqa32 1280(%rsi), %zmm5 {%k1} {z}7242; AVX512F-ONLY-NEXT:    vptestmd %zmm3, %zmm3, %k17243; AVX512F-ONLY-NEXT:    vmovdqa32 1344(%rsi), %zmm3 {%k1} {z}7244; AVX512F-ONLY-NEXT:    vptestmd %zmm2, %zmm2, %k17245; AVX512F-ONLY-NEXT:    vmovdqa32 1408(%rsi), %zmm2 {%k1} {z}7246; AVX512F-ONLY-NEXT:    vptestmd %zmm1, %zmm1, %k17247; AVX512F-ONLY-NEXT:    vmovdqa32 1472(%rsi), %zmm1 {%k1} {z}7248; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm1, 1472(%rdx)7249; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm2, 1408(%rdx)7250; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm3, 1344(%rdx)7251; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm5, 1280(%rdx)7252; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm6, 1216(%rdx)7253; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm7, 1152(%rdx)7254; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm15, 1088(%rdx)7255; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm16, 1024(%rdx)7256; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm17, 960(%rdx)7257; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm18, 896(%rdx)7258; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm19, 832(%rdx)7259; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm8, 768(%rdx)7260; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm20, 704(%rdx)7261; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm21, 640(%rdx)7262; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm22, 576(%rdx)7263; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm23, 512(%rdx)7264; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm9, 448(%rdx)7265; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm14, 384(%rdx)7266; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm10, 320(%rdx)7267; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm11, 256(%rdx)7268; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm12, 192(%rdx)7269; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm13, 128(%rdx)7270; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm4, 64(%rdx)7271; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm0, (%rdx)7272; AVX512F-ONLY-NEXT:    vzeroupper7273; AVX512F-ONLY-NEXT:    retq7274;7275; AVX512DQ-LABEL: mask_replication_factor6_vf64:7276; AVX512DQ:       # %bb.0:7277; AVX512DQ-NEXT:    kmovw (%rdi), %k07278; AVX512DQ-NEXT:    vpmovm2d %k0, %zmm07279; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm4 = [0,0,0,0,0,0,1,1,1,1,1,1,2,2,2,2]7280; AVX512DQ-NEXT:    vpermd %zmm0, %zmm4, %zmm17281; AVX512DQ-NEXT:    vpmovd2m %zmm1, %k07282; AVX512DQ-NEXT:    vpmovm2d %k0, %zmm17283; AVX512DQ-NEXT:    movw $1, %ax7284; AVX512DQ-NEXT:    kmovw %eax, %k17285; AVX512DQ-NEXT:    vmovdqa32 %zmm0, %zmm1 {%k1}7286; AVX512DQ-NEXT:    kmovw 6(%rdi), %k07287; AVX512DQ-NEXT:    vpmovm2d %k0, %zmm77288; AVX512DQ-NEXT:    kmovw 4(%rdi), %k07289; AVX512DQ-NEXT:    vpmovm2d %k0, %zmm87290; AVX512DQ-NEXT:    kmovw 2(%rdi), %k07291; AVX512DQ-NEXT:    vpmovm2d %k0, %zmm97292; AVX512DQ-NEXT:    vpmovd2m %zmm1, %k17293; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm10 = [13,13,13,13,14,14,14,14,14,14,15,15,15,15,15,15]7294; AVX512DQ-NEXT:    vpermd %zmm7, %zmm10, %zmm17295; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm11 = [10,10,11,11,11,11,11,11,12,12,12,12,12,12,13,13]7296; AVX512DQ-NEXT:    vpermd %zmm7, %zmm11, %zmm27297; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [8,8,8,8,8,8,9,9,9,9,9,9,10,10,10,10]7298; AVX512DQ-NEXT:    vpermd %zmm7, %zmm12, %zmm37299; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm13 = [5,5,5,5,6,6,6,6,6,6,7,7,7,7,7,7]7300; AVX512DQ-NEXT:    vpermd %zmm7, %zmm13, %zmm57301; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm14 = [2,2,3,3,3,3,3,3,4,4,4,4,4,4,5,5]7302; AVX512DQ-NEXT:    vpermd %zmm7, %zmm14, %zmm67303; AVX512DQ-NEXT:    vpermd %zmm7, %zmm4, %zmm77304; AVX512DQ-NEXT:    vpermd %zmm8, %zmm10, %zmm157305; AVX512DQ-NEXT:    vpermd %zmm8, %zmm11, %zmm167306; AVX512DQ-NEXT:    vpermd %zmm8, %zmm12, %zmm177307; AVX512DQ-NEXT:    vpermd %zmm8, %zmm13, %zmm187308; AVX512DQ-NEXT:    vpermd %zmm8, %zmm14, %zmm197309; AVX512DQ-NEXT:    vpermd %zmm8, %zmm4, %zmm87310; AVX512DQ-NEXT:    vpermd %zmm9, %zmm10, %zmm207311; AVX512DQ-NEXT:    vpermd %zmm9, %zmm11, %zmm217312; AVX512DQ-NEXT:    vpermd %zmm9, %zmm12, %zmm227313; AVX512DQ-NEXT:    vpermd %zmm9, %zmm13, %zmm237314; AVX512DQ-NEXT:    vpermd %zmm9, %zmm4, %zmm247315; AVX512DQ-NEXT:    vpermd %zmm9, %zmm14, %zmm97316; AVX512DQ-NEXT:    vpermd %zmm0, %zmm10, %zmm107317; AVX512DQ-NEXT:    vpermd %zmm0, %zmm11, %zmm117318; AVX512DQ-NEXT:    vpermd %zmm0, %zmm12, %zmm127319; AVX512DQ-NEXT:    vpermd %zmm0, %zmm13, %zmm137320; AVX512DQ-NEXT:    vpermd %zmm0, %zmm14, %zmm47321; AVX512DQ-NEXT:    vmovdqa32 (%rsi), %zmm0 {%k1} {z}7322; AVX512DQ-NEXT:    vpmovd2m %zmm4, %k17323; AVX512DQ-NEXT:    vmovdqa32 64(%rsi), %zmm4 {%k1} {z}7324; AVX512DQ-NEXT:    vpmovd2m %zmm13, %k17325; AVX512DQ-NEXT:    vmovdqa32 128(%rsi), %zmm13 {%k1} {z}7326; AVX512DQ-NEXT:    vpmovd2m %zmm12, %k17327; AVX512DQ-NEXT:    vmovdqa32 192(%rsi), %zmm12 {%k1} {z}7328; AVX512DQ-NEXT:    vpmovd2m %zmm11, %k17329; AVX512DQ-NEXT:    vmovdqa32 256(%rsi), %zmm11 {%k1} {z}7330; AVX512DQ-NEXT:    vpmovd2m %zmm10, %k17331; AVX512DQ-NEXT:    vmovdqa32 320(%rsi), %zmm10 {%k1} {z}7332; AVX512DQ-NEXT:    vpmovd2m %zmm24, %k17333; AVX512DQ-NEXT:    vmovdqa32 384(%rsi), %zmm14 {%k1} {z}7334; AVX512DQ-NEXT:    vpmovd2m %zmm9, %k17335; AVX512DQ-NEXT:    vmovdqa32 448(%rsi), %zmm9 {%k1} {z}7336; AVX512DQ-NEXT:    vpmovd2m %zmm23, %k17337; AVX512DQ-NEXT:    vmovdqa32 512(%rsi), %zmm23 {%k1} {z}7338; AVX512DQ-NEXT:    vpmovd2m %zmm22, %k17339; AVX512DQ-NEXT:    vmovdqa32 576(%rsi), %zmm22 {%k1} {z}7340; AVX512DQ-NEXT:    vpmovd2m %zmm21, %k17341; AVX512DQ-NEXT:    vmovdqa32 640(%rsi), %zmm21 {%k1} {z}7342; AVX512DQ-NEXT:    vpmovd2m %zmm20, %k17343; AVX512DQ-NEXT:    vmovdqa32 704(%rsi), %zmm20 {%k1} {z}7344; AVX512DQ-NEXT:    vpmovd2m %zmm8, %k17345; AVX512DQ-NEXT:    vmovdqa32 768(%rsi), %zmm8 {%k1} {z}7346; AVX512DQ-NEXT:    vpmovd2m %zmm19, %k17347; AVX512DQ-NEXT:    vmovdqa32 832(%rsi), %zmm19 {%k1} {z}7348; AVX512DQ-NEXT:    vpmovd2m %zmm18, %k17349; AVX512DQ-NEXT:    vmovdqa32 896(%rsi), %zmm18 {%k1} {z}7350; AVX512DQ-NEXT:    vpmovd2m %zmm17, %k17351; AVX512DQ-NEXT:    vmovdqa32 960(%rsi), %zmm17 {%k1} {z}7352; AVX512DQ-NEXT:    vpmovd2m %zmm16, %k17353; AVX512DQ-NEXT:    vmovdqa32 1024(%rsi), %zmm16 {%k1} {z}7354; AVX512DQ-NEXT:    vpmovd2m %zmm15, %k17355; AVX512DQ-NEXT:    vmovdqa32 1088(%rsi), %zmm15 {%k1} {z}7356; AVX512DQ-NEXT:    vpmovd2m %zmm7, %k17357; AVX512DQ-NEXT:    vmovdqa32 1152(%rsi), %zmm7 {%k1} {z}7358; AVX512DQ-NEXT:    vpmovd2m %zmm6, %k17359; AVX512DQ-NEXT:    vmovdqa32 1216(%rsi), %zmm6 {%k1} {z}7360; AVX512DQ-NEXT:    vpmovd2m %zmm5, %k17361; AVX512DQ-NEXT:    vmovdqa32 1280(%rsi), %zmm5 {%k1} {z}7362; AVX512DQ-NEXT:    vpmovd2m %zmm3, %k17363; AVX512DQ-NEXT:    vmovdqa32 1344(%rsi), %zmm3 {%k1} {z}7364; AVX512DQ-NEXT:    vpmovd2m %zmm2, %k17365; AVX512DQ-NEXT:    vmovdqa32 1408(%rsi), %zmm2 {%k1} {z}7366; AVX512DQ-NEXT:    vpmovd2m %zmm1, %k17367; AVX512DQ-NEXT:    vmovdqa32 1472(%rsi), %zmm1 {%k1} {z}7368; AVX512DQ-NEXT:    vmovdqa64 %zmm1, 1472(%rdx)7369; AVX512DQ-NEXT:    vmovdqa64 %zmm2, 1408(%rdx)7370; AVX512DQ-NEXT:    vmovdqa64 %zmm3, 1344(%rdx)7371; AVX512DQ-NEXT:    vmovdqa64 %zmm5, 1280(%rdx)7372; AVX512DQ-NEXT:    vmovdqa64 %zmm6, 1216(%rdx)7373; AVX512DQ-NEXT:    vmovdqa64 %zmm7, 1152(%rdx)7374; AVX512DQ-NEXT:    vmovdqa64 %zmm15, 1088(%rdx)7375; AVX512DQ-NEXT:    vmovdqa64 %zmm16, 1024(%rdx)7376; AVX512DQ-NEXT:    vmovdqa64 %zmm17, 960(%rdx)7377; AVX512DQ-NEXT:    vmovdqa64 %zmm18, 896(%rdx)7378; AVX512DQ-NEXT:    vmovdqa64 %zmm19, 832(%rdx)7379; AVX512DQ-NEXT:    vmovdqa64 %zmm8, 768(%rdx)7380; AVX512DQ-NEXT:    vmovdqa64 %zmm20, 704(%rdx)7381; AVX512DQ-NEXT:    vmovdqa64 %zmm21, 640(%rdx)7382; AVX512DQ-NEXT:    vmovdqa64 %zmm22, 576(%rdx)7383; AVX512DQ-NEXT:    vmovdqa64 %zmm23, 512(%rdx)7384; AVX512DQ-NEXT:    vmovdqa64 %zmm9, 448(%rdx)7385; AVX512DQ-NEXT:    vmovdqa64 %zmm14, 384(%rdx)7386; AVX512DQ-NEXT:    vmovdqa64 %zmm10, 320(%rdx)7387; AVX512DQ-NEXT:    vmovdqa64 %zmm11, 256(%rdx)7388; AVX512DQ-NEXT:    vmovdqa64 %zmm12, 192(%rdx)7389; AVX512DQ-NEXT:    vmovdqa64 %zmm13, 128(%rdx)7390; AVX512DQ-NEXT:    vmovdqa64 %zmm4, 64(%rdx)7391; AVX512DQ-NEXT:    vmovdqa64 %zmm0, (%rdx)7392; AVX512DQ-NEXT:    vzeroupper7393; AVX512DQ-NEXT:    retq7394;7395; AVX512BW-LABEL: mask_replication_factor6_vf64:7396; AVX512BW:       # %bb.0:7397; AVX512BW-NEXT:    kmovq (%rdi), %k57398; AVX512BW-NEXT:    movw $-3, %ax7399; AVX512BW-NEXT:    kmovd %eax, %k17400; AVX512BW-NEXT:    kmovw %k1, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill7401; AVX512BW-NEXT:    kmovw (%rdi), %k07402; AVX512BW-NEXT:    kandw %k1, %k0, %k37403; AVX512BW-NEXT:    kshiftlw $15, %k0, %k17404; AVX512BW-NEXT:    kshiftrw $14, %k1, %k07405; AVX512BW-NEXT:    korw %k0, %k3, %k07406; AVX512BW-NEXT:    movw $-5, %ax7407; AVX512BW-NEXT:    kmovd %eax, %k27408; AVX512BW-NEXT:    kmovw %k2, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill7409; AVX512BW-NEXT:    kandw %k2, %k0, %k07410; AVX512BW-NEXT:    kshiftrw $13, %k1, %k37411; AVX512BW-NEXT:    korw %k3, %k0, %k07412; AVX512BW-NEXT:    movw $-9, %ax7413; AVX512BW-NEXT:    kmovd %eax, %k27414; AVX512BW-NEXT:    kmovw %k2, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill7415; AVX512BW-NEXT:    kandw %k2, %k0, %k07416; AVX512BW-NEXT:    kshiftrw $12, %k1, %k37417; AVX512BW-NEXT:    korw %k3, %k0, %k07418; AVX512BW-NEXT:    movw $-17, %ax7419; AVX512BW-NEXT:    kmovd %eax, %k27420; AVX512BW-NEXT:    kmovw %k2, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill7421; AVX512BW-NEXT:    kandw %k2, %k0, %k07422; AVX512BW-NEXT:    kshiftrw $11, %k1, %k37423; AVX512BW-NEXT:    korw %k3, %k0, %k07424; AVX512BW-NEXT:    movw $-33, %ax7425; AVX512BW-NEXT:    kmovd %eax, %k27426; AVX512BW-NEXT:    kmovw %k2, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill7427; AVX512BW-NEXT:    kandw %k2, %k0, %k07428; AVX512BW-NEXT:    kshiftrw $10, %k1, %k17429; AVX512BW-NEXT:    korw %k1, %k0, %k07430; AVX512BW-NEXT:    movw $-65, %ax7431; AVX512BW-NEXT:    kmovd %eax, %k17432; AVX512BW-NEXT:    kmovw %k1, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill7433; AVX512BW-NEXT:    kandw %k1, %k0, %k07434; AVX512BW-NEXT:    kshiftrq $1, %k5, %k17435; AVX512BW-NEXT:    kshiftlw $15, %k1, %k17436; AVX512BW-NEXT:    kshiftrw $9, %k1, %k37437; AVX512BW-NEXT:    korw %k3, %k0, %k07438; AVX512BW-NEXT:    movw $-129, %ax7439; AVX512BW-NEXT:    kmovd %eax, %k27440; AVX512BW-NEXT:    kmovw %k2, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill7441; AVX512BW-NEXT:    kandw %k2, %k0, %k07442; AVX512BW-NEXT:    kshiftrw $8, %k1, %k37443; AVX512BW-NEXT:    korw %k3, %k0, %k07444; AVX512BW-NEXT:    movw $-257, %ax # imm = 0xFEFF7445; AVX512BW-NEXT:    kmovd %eax, %k27446; AVX512BW-NEXT:    kmovw %k2, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill7447; AVX512BW-NEXT:    kandw %k2, %k0, %k07448; AVX512BW-NEXT:    kshiftrw $7, %k1, %k37449; AVX512BW-NEXT:    korw %k3, %k0, %k07450; AVX512BW-NEXT:    movw $-513, %ax # imm = 0xFDFF7451; AVX512BW-NEXT:    kmovd %eax, %k27452; AVX512BW-NEXT:    kmovw %k2, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill7453; AVX512BW-NEXT:    kandw %k2, %k0, %k07454; AVX512BW-NEXT:    kshiftrw $6, %k1, %k37455; AVX512BW-NEXT:    korw %k3, %k0, %k07456; AVX512BW-NEXT:    movw $-1025, %ax # imm = 0xFBFF7457; AVX512BW-NEXT:    kmovd %eax, %k27458; AVX512BW-NEXT:    kmovw %k2, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill7459; AVX512BW-NEXT:    kandw %k2, %k0, %k07460; AVX512BW-NEXT:    kshiftrw $5, %k1, %k37461; AVX512BW-NEXT:    korw %k3, %k0, %k07462; AVX512BW-NEXT:    movw $-2049, %ax # imm = 0xF7FF7463; AVX512BW-NEXT:    kmovd %eax, %k27464; AVX512BW-NEXT:    kmovw %k2, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill7465; AVX512BW-NEXT:    kandw %k2, %k0, %k07466; AVX512BW-NEXT:    kshiftrw $4, %k1, %k17467; AVX512BW-NEXT:    korw %k1, %k0, %k07468; AVX512BW-NEXT:    movw $-4097, %ax # imm = 0xEFFF7469; AVX512BW-NEXT:    kmovd %eax, %k17470; AVX512BW-NEXT:    kmovw %k1, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill7471; AVX512BW-NEXT:    kandw %k1, %k0, %k37472; AVX512BW-NEXT:    kshiftrq $2, %k5, %k17473; AVX512BW-NEXT:    kshiftlw $15, %k1, %k07474; AVX512BW-NEXT:    kshiftrw $3, %k0, %k47475; AVX512BW-NEXT:    korw %k4, %k3, %k37476; AVX512BW-NEXT:    movw $-8193, %ax # imm = 0xDFFF7477; AVX512BW-NEXT:    kmovd %eax, %k27478; AVX512BW-NEXT:    kmovw %k2, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill7479; AVX512BW-NEXT:    kandw %k2, %k3, %k37480; AVX512BW-NEXT:    kshiftrw $2, %k0, %k77481; AVX512BW-NEXT:    korw %k7, %k3, %k77482; AVX512BW-NEXT:    movw $-16385, %ax # imm = 0xBFFF7483; AVX512BW-NEXT:    kmovd %eax, %k27484; AVX512BW-NEXT:    kmovw %k2, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill7485; AVX512BW-NEXT:    kandw %k2, %k7, %k77486; AVX512BW-NEXT:    kshiftlw $14, %k1, %k67487; AVX512BW-NEXT:    korw %k6, %k7, %k67488; AVX512BW-NEXT:    kshiftlw $1, %k6, %k67489; AVX512BW-NEXT:    kshiftrw $1, %k6, %k67490; AVX512BW-NEXT:    korw %k0, %k6, %k67491; AVX512BW-NEXT:    vmovdqa32 (%rsi), %zmm0 {%k6} {z}7492; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload7493; AVX512BW-NEXT:    kandw %k4, %k1, %k17494; AVX512BW-NEXT:    kshiftrw $14, %k0, %k07495; AVX512BW-NEXT:    korw %k0, %k1, %k07496; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload7497; AVX512BW-NEXT:    kandw %k1, %k0, %k07498; AVX512BW-NEXT:    kmovq %k5, %k37499; AVX512BW-NEXT:    kshiftrq $3, %k5, %k17500; AVX512BW-NEXT:    kshiftlw $15, %k1, %k17501; AVX512BW-NEXT:    kshiftrw $13, %k1, %k67502; AVX512BW-NEXT:    korw %k6, %k0, %k07503; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload7504; AVX512BW-NEXT:    kandw %k2, %k0, %k07505; AVX512BW-NEXT:    kshiftrw $12, %k1, %k67506; AVX512BW-NEXT:    korw %k6, %k0, %k07507; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload7508; AVX512BW-NEXT:    kandw %k6, %k0, %k07509; AVX512BW-NEXT:    kshiftrw $11, %k1, %k67510; AVX512BW-NEXT:    korw %k6, %k0, %k07511; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload7512; AVX512BW-NEXT:    kandw %k5, %k0, %k07513; AVX512BW-NEXT:    kshiftrw $10, %k1, %k67514; AVX512BW-NEXT:    korw %k6, %k0, %k07515; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload7516; AVX512BW-NEXT:    kandw %k6, %k0, %k07517; AVX512BW-NEXT:    kshiftrw $9, %k1, %k67518; AVX512BW-NEXT:    korw %k6, %k0, %k07519; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload7520; AVX512BW-NEXT:    kandw %k6, %k0, %k07521; AVX512BW-NEXT:    kshiftrw $8, %k1, %k17522; AVX512BW-NEXT:    korw %k1, %k0, %k07523; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload7524; AVX512BW-NEXT:    kandw %k1, %k0, %k07525; AVX512BW-NEXT:    kshiftrq $4, %k3, %k17526; AVX512BW-NEXT:    kmovq %k3, %k77527; AVX512BW-NEXT:    kmovq %k3, {{[-0-9]+}}(%r{{[sb]}}p) # 8-byte Spill7528; AVX512BW-NEXT:    kshiftlw $15, %k1, %k17529; AVX512BW-NEXT:    kshiftrw $7, %k1, %k67530; AVX512BW-NEXT:    korw %k6, %k0, %k07531; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload7532; AVX512BW-NEXT:    kandw %k3, %k0, %k07533; AVX512BW-NEXT:    kshiftrw $6, %k1, %k67534; AVX512BW-NEXT:    korw %k6, %k0, %k07535; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload7536; AVX512BW-NEXT:    kandw %k6, %k0, %k07537; AVX512BW-NEXT:    kshiftrw $5, %k1, %k67538; AVX512BW-NEXT:    korw %k6, %k0, %k07539; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload7540; AVX512BW-NEXT:    kandw %k5, %k0, %k07541; AVX512BW-NEXT:    kshiftrw $4, %k1, %k67542; AVX512BW-NEXT:    korw %k6, %k0, %k07543; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload7544; AVX512BW-NEXT:    kandw %k5, %k0, %k07545; AVX512BW-NEXT:    kshiftrw $3, %k1, %k67546; AVX512BW-NEXT:    korw %k6, %k0, %k07547; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload7548; AVX512BW-NEXT:    kandw %k5, %k0, %k07549; AVX512BW-NEXT:    kshiftrw $2, %k1, %k17550; AVX512BW-NEXT:    korw %k1, %k0, %k07551; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload7552; AVX512BW-NEXT:    kandw %k5, %k0, %k07553; AVX512BW-NEXT:    kshiftrq $5, %k7, %k17554; AVX512BW-NEXT:    kshiftlw $14, %k1, %k67555; AVX512BW-NEXT:    korw %k6, %k0, %k07556; AVX512BW-NEXT:    kshiftlw $1, %k0, %k07557; AVX512BW-NEXT:    kshiftrw $1, %k0, %k07558; AVX512BW-NEXT:    kshiftlw $15, %k1, %k67559; AVX512BW-NEXT:    korw %k6, %k0, %k77560; AVX512BW-NEXT:    vmovdqa32 64(%rsi), %zmm1 {%k7} {z}7561; AVX512BW-NEXT:    kandw %k4, %k1, %k07562; AVX512BW-NEXT:    kshiftrw $14, %k6, %k17563; AVX512BW-NEXT:    korw %k1, %k0, %k07564; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload7565; AVX512BW-NEXT:    kandw %k4, %k0, %k07566; AVX512BW-NEXT:    kshiftrw $13, %k6, %k17567; AVX512BW-NEXT:    korw %k1, %k0, %k07568; AVX512BW-NEXT:    kandw %k2, %k0, %k07569; AVX512BW-NEXT:    kshiftrw $12, %k6, %k17570; AVX512BW-NEXT:    korw %k1, %k0, %k07571; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload7572; AVX512BW-NEXT:    kandw %k1, %k0, %k07573; AVX512BW-NEXT:    kmovq {{[-0-9]+}}(%r{{[sb]}}p), %k7 # 8-byte Reload7574; AVX512BW-NEXT:    kshiftrq $6, %k7, %k17575; AVX512BW-NEXT:    kshiftlw $15, %k1, %k17576; AVX512BW-NEXT:    kshiftrw $11, %k1, %k67577; AVX512BW-NEXT:    korw %k6, %k0, %k07578; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload7579; AVX512BW-NEXT:    kandw %k2, %k0, %k07580; AVX512BW-NEXT:    kshiftrw $10, %k1, %k67581; AVX512BW-NEXT:    korw %k6, %k0, %k07582; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload7583; AVX512BW-NEXT:    kandw %k6, %k0, %k07584; AVX512BW-NEXT:    kshiftrw $9, %k1, %k67585; AVX512BW-NEXT:    korw %k6, %k0, %k07586; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload7587; AVX512BW-NEXT:    kandw %k6, %k0, %k07588; AVX512BW-NEXT:    kshiftrw $8, %k1, %k67589; AVX512BW-NEXT:    korw %k6, %k0, %k07590; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload7591; AVX512BW-NEXT:    kandw %k6, %k0, %k07592; AVX512BW-NEXT:    kshiftrw $7, %k1, %k67593; AVX512BW-NEXT:    korw %k6, %k0, %k07594; AVX512BW-NEXT:    kandw %k3, %k0, %k07595; AVX512BW-NEXT:    kshiftrw $6, %k1, %k17596; AVX512BW-NEXT:    korw %k1, %k0, %k07597; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload7598; AVX512BW-NEXT:    kandw %k1, %k0, %k17599; AVX512BW-NEXT:    kshiftrq $7, %k7, %k67600; AVX512BW-NEXT:    kshiftlw $15, %k6, %k07601; AVX512BW-NEXT:    kshiftrw $5, %k0, %k77602; AVX512BW-NEXT:    korw %k7, %k1, %k17603; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload7604; AVX512BW-NEXT:    kandw %k3, %k1, %k17605; AVX512BW-NEXT:    kshiftrw $4, %k0, %k77606; AVX512BW-NEXT:    korw %k7, %k1, %k17607; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload7608; AVX512BW-NEXT:    kandw %k3, %k1, %k17609; AVX512BW-NEXT:    kshiftrw $3, %k0, %k77610; AVX512BW-NEXT:    korw %k7, %k1, %k17611; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload7612; AVX512BW-NEXT:    kandw %k3, %k1, %k17613; AVX512BW-NEXT:    kshiftrw $2, %k0, %k77614; AVX512BW-NEXT:    korw %k7, %k1, %k17615; AVX512BW-NEXT:    kandw %k5, %k1, %k17616; AVX512BW-NEXT:    kshiftlw $14, %k6, %k67617; AVX512BW-NEXT:    korw %k6, %k1, %k17618; AVX512BW-NEXT:    kshiftlw $1, %k1, %k17619; AVX512BW-NEXT:    kshiftrw $1, %k1, %k17620; AVX512BW-NEXT:    korw %k0, %k1, %k17621; AVX512BW-NEXT:    vmovdqa32 128(%rsi), %zmm2 {%k1} {z}7622; AVX512BW-NEXT:    kmovq {{[-0-9]+}}(%r{{[sb]}}p), %k7 # 8-byte Reload7623; AVX512BW-NEXT:    kshiftrq $8, %k7, %k07624; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload7625; AVX512BW-NEXT:    kandw %k1, %k0, %k17626; AVX512BW-NEXT:    kshiftlw $15, %k0, %k07627; AVX512BW-NEXT:    kshiftrw $14, %k0, %k67628; AVX512BW-NEXT:    korw %k6, %k1, %k17629; AVX512BW-NEXT:    kandw %k4, %k1, %k17630; AVX512BW-NEXT:    kshiftrw $13, %k0, %k67631; AVX512BW-NEXT:    korw %k6, %k1, %k17632; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload7633; AVX512BW-NEXT:    kandw %k3, %k1, %k17634; AVX512BW-NEXT:    kshiftrw $12, %k0, %k67635; AVX512BW-NEXT:    korw %k6, %k1, %k17636; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload7637; AVX512BW-NEXT:    kandw %k3, %k1, %k17638; AVX512BW-NEXT:    kshiftrw $11, %k0, %k67639; AVX512BW-NEXT:    korw %k6, %k1, %k17640; AVX512BW-NEXT:    kandw %k2, %k1, %k17641; AVX512BW-NEXT:    kshiftrw $10, %k0, %k07642; AVX512BW-NEXT:    korw %k0, %k1, %k07643; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload7644; AVX512BW-NEXT:    kandw %k5, %k0, %k07645; AVX512BW-NEXT:    kshiftrq $9, %k7, %k17646; AVX512BW-NEXT:    kshiftlw $15, %k1, %k17647; AVX512BW-NEXT:    kshiftrw $9, %k1, %k67648; AVX512BW-NEXT:    korw %k6, %k0, %k07649; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload7650; AVX512BW-NEXT:    kandw %k2, %k0, %k07651; AVX512BW-NEXT:    kshiftrw $8, %k1, %k67652; AVX512BW-NEXT:    korw %k6, %k0, %k07653; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload7654; AVX512BW-NEXT:    kandw %k2, %k0, %k07655; AVX512BW-NEXT:    kshiftrw $7, %k1, %k67656; AVX512BW-NEXT:    korw %k6, %k0, %k07657; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload7658; AVX512BW-NEXT:    kandw %k2, %k0, %k07659; AVX512BW-NEXT:    kshiftrw $6, %k1, %k67660; AVX512BW-NEXT:    korw %k6, %k0, %k07661; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload7662; AVX512BW-NEXT:    kandw %k4, %k0, %k07663; AVX512BW-NEXT:    kshiftrw $5, %k1, %k67664; AVX512BW-NEXT:    korw %k6, %k0, %k07665; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload7666; AVX512BW-NEXT:    kandw %k2, %k0, %k07667; AVX512BW-NEXT:    kshiftrw $4, %k1, %k17668; AVX512BW-NEXT:    korw %k1, %k0, %k07669; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload7670; AVX512BW-NEXT:    kandw %k1, %k0, %k07671; AVX512BW-NEXT:    kshiftrq $10, %k7, %k17672; AVX512BW-NEXT:    kshiftlw $15, %k1, %k67673; AVX512BW-NEXT:    kshiftrw $3, %k6, %k77674; AVX512BW-NEXT:    korw %k7, %k0, %k07675; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload7676; AVX512BW-NEXT:    kandw %k2, %k0, %k07677; AVX512BW-NEXT:    kshiftrw $2, %k6, %k77678; AVX512BW-NEXT:    korw %k7, %k0, %k07679; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k7 # 2-byte Reload7680; AVX512BW-NEXT:    kandw %k7, %k0, %k07681; AVX512BW-NEXT:    kshiftlw $14, %k1, %k77682; AVX512BW-NEXT:    korw %k7, %k0, %k07683; AVX512BW-NEXT:    kshiftlw $1, %k0, %k07684; AVX512BW-NEXT:    kshiftrw $1, %k0, %k07685; AVX512BW-NEXT:    korw %k6, %k0, %k77686; AVX512BW-NEXT:    vmovdqa32 192(%rsi), %zmm3 {%k7} {z}7687; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k0 # 2-byte Reload7688; AVX512BW-NEXT:    kandw %k0, %k1, %k07689; AVX512BW-NEXT:    kshiftrw $14, %k6, %k17690; AVX512BW-NEXT:    korw %k1, %k0, %k07691; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload7692; AVX512BW-NEXT:    kandw %k1, %k0, %k07693; AVX512BW-NEXT:    kmovq {{[-0-9]+}}(%r{{[sb]}}p), %k7 # 8-byte Reload7694; AVX512BW-NEXT:    kshiftrq $11, %k7, %k17695; AVX512BW-NEXT:    kshiftlw $15, %k1, %k17696; AVX512BW-NEXT:    kshiftrw $13, %k1, %k67697; AVX512BW-NEXT:    korw %k6, %k0, %k07698; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload7699; AVX512BW-NEXT:    kandw %k6, %k0, %k07700; AVX512BW-NEXT:    kshiftrw $12, %k1, %k67701; AVX512BW-NEXT:    korw %k6, %k0, %k07702; AVX512BW-NEXT:    kandw %k3, %k0, %k07703; AVX512BW-NEXT:    kshiftrw $11, %k1, %k67704; AVX512BW-NEXT:    korw %k6, %k0, %k07705; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload7706; AVX512BW-NEXT:    kandw %k3, %k0, %k07707; AVX512BW-NEXT:    kshiftrw $10, %k1, %k67708; AVX512BW-NEXT:    korw %k6, %k0, %k07709; AVX512BW-NEXT:    kandw %k5, %k0, %k07710; AVX512BW-NEXT:    kshiftrw $9, %k1, %k67711; AVX512BW-NEXT:    korw %k6, %k0, %k07712; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload7713; AVX512BW-NEXT:    kandw %k5, %k0, %k07714; AVX512BW-NEXT:    kshiftrw $8, %k1, %k17715; AVX512BW-NEXT:    korw %k1, %k0, %k07716; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload7717; AVX512BW-NEXT:    kandw %k3, %k0, %k07718; AVX512BW-NEXT:    kshiftrq $12, %k7, %k17719; AVX512BW-NEXT:    kshiftlw $15, %k1, %k17720; AVX512BW-NEXT:    kshiftrw $7, %k1, %k67721; AVX512BW-NEXT:    korw %k6, %k0, %k07722; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload7723; AVX512BW-NEXT:    kandw %k6, %k0, %k07724; AVX512BW-NEXT:    kshiftrw $6, %k1, %k67725; AVX512BW-NEXT:    korw %k6, %k0, %k07726; AVX512BW-NEXT:    kandw %k4, %k0, %k07727; AVX512BW-NEXT:    kshiftrw $5, %k1, %k67728; AVX512BW-NEXT:    korw %k6, %k0, %k07729; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload7730; AVX512BW-NEXT:    kandw %k4, %k0, %k07731; AVX512BW-NEXT:    kshiftrw $4, %k1, %k67732; AVX512BW-NEXT:    korw %k6, %k0, %k07733; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload7734; AVX512BW-NEXT:    kandw %k4, %k0, %k07735; AVX512BW-NEXT:    kshiftrw $3, %k1, %k67736; AVX512BW-NEXT:    korw %k6, %k0, %k07737; AVX512BW-NEXT:    kandw %k2, %k0, %k07738; AVX512BW-NEXT:    kshiftrw $2, %k1, %k17739; AVX512BW-NEXT:    korw %k1, %k0, %k07740; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload7741; AVX512BW-NEXT:    kandw %k1, %k0, %k07742; AVX512BW-NEXT:    kshiftrq $13, %k7, %k17743; AVX512BW-NEXT:    kmovq %k7, %k27744; AVX512BW-NEXT:    kshiftlw $14, %k1, %k67745; AVX512BW-NEXT:    korw %k6, %k0, %k07746; AVX512BW-NEXT:    kshiftlw $1, %k0, %k07747; AVX512BW-NEXT:    kshiftrw $1, %k0, %k07748; AVX512BW-NEXT:    kshiftlw $15, %k1, %k67749; AVX512BW-NEXT:    korw %k6, %k0, %k77750; AVX512BW-NEXT:    vmovdqa32 256(%rsi), %zmm4 {%k7} {z}7751; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k0 # 2-byte Reload7752; AVX512BW-NEXT:    kandw %k0, %k1, %k07753; AVX512BW-NEXT:    kshiftrw $14, %k6, %k17754; AVX512BW-NEXT:    korw %k1, %k0, %k07755; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload7756; AVX512BW-NEXT:    kandw %k1, %k0, %k07757; AVX512BW-NEXT:    kshiftrw $13, %k6, %k17758; AVX512BW-NEXT:    korw %k1, %k0, %k07759; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload7760; AVX512BW-NEXT:    kandw %k1, %k0, %k07761; AVX512BW-NEXT:    kshiftrw $12, %k6, %k17762; AVX512BW-NEXT:    korw %k1, %k0, %k07763; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload7764; AVX512BW-NEXT:    kandw %k1, %k0, %k07765; AVX512BW-NEXT:    kmovq %k2, %k77766; AVX512BW-NEXT:    kshiftrq $14, %k2, %k17767; AVX512BW-NEXT:    kshiftlw $15, %k1, %k17768; AVX512BW-NEXT:    kshiftrw $11, %k1, %k67769; AVX512BW-NEXT:    korw %k6, %k0, %k07770; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload7771; AVX512BW-NEXT:    kandw %k2, %k0, %k07772; AVX512BW-NEXT:    kshiftrw $10, %k1, %k67773; AVX512BW-NEXT:    korw %k6, %k0, %k07774; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload7775; AVX512BW-NEXT:    kandw %k2, %k0, %k07776; AVX512BW-NEXT:    kshiftrw $9, %k1, %k67777; AVX512BW-NEXT:    korw %k6, %k0, %k07778; AVX512BW-NEXT:    kandw %k5, %k0, %k07779; AVX512BW-NEXT:    kshiftrw $8, %k1, %k67780; AVX512BW-NEXT:    korw %k6, %k0, %k07781; AVX512BW-NEXT:    kandw %k3, %k0, %k07782; AVX512BW-NEXT:    kshiftrw $7, %k1, %k67783; AVX512BW-NEXT:    korw %k6, %k0, %k07784; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload7785; AVX512BW-NEXT:    kandw %k2, %k0, %k07786; AVX512BW-NEXT:    kshiftrw $6, %k1, %k17787; AVX512BW-NEXT:    korw %k1, %k0, %k07788; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload7789; AVX512BW-NEXT:    kandw %k2, %k0, %k17790; AVX512BW-NEXT:    kshiftrq $15, %k7, %k67791; AVX512BW-NEXT:    kshiftlw $15, %k6, %k07792; AVX512BW-NEXT:    kshiftrw $5, %k0, %k77793; AVX512BW-NEXT:    korw %k7, %k1, %k17794; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload7795; AVX512BW-NEXT:    kandw %k3, %k1, %k17796; AVX512BW-NEXT:    kshiftrw $4, %k0, %k77797; AVX512BW-NEXT:    korw %k7, %k1, %k17798; AVX512BW-NEXT:    kandw %k4, %k1, %k17799; AVX512BW-NEXT:    kshiftrw $3, %k0, %k77800; AVX512BW-NEXT:    korw %k7, %k1, %k17801; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload7802; AVX512BW-NEXT:    kandw %k5, %k1, %k17803; AVX512BW-NEXT:    kshiftrw $2, %k0, %k77804; AVX512BW-NEXT:    korw %k7, %k1, %k17805; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload7806; AVX512BW-NEXT:    kandw %k5, %k1, %k17807; AVX512BW-NEXT:    kshiftlw $14, %k6, %k67808; AVX512BW-NEXT:    korw %k6, %k1, %k17809; AVX512BW-NEXT:    kshiftlw $1, %k1, %k17810; AVX512BW-NEXT:    kshiftrw $1, %k1, %k17811; AVX512BW-NEXT:    korw %k0, %k1, %k17812; AVX512BW-NEXT:    vmovdqa32 320(%rsi), %zmm5 {%k1} {z}7813; AVX512BW-NEXT:    kmovq {{[-0-9]+}}(%r{{[sb]}}p), %k7 # 8-byte Reload7814; AVX512BW-NEXT:    kshiftrq $16, %k7, %k07815; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload7816; AVX512BW-NEXT:    kandw %k1, %k0, %k17817; AVX512BW-NEXT:    kshiftlw $15, %k0, %k07818; AVX512BW-NEXT:    kshiftrw $14, %k0, %k67819; AVX512BW-NEXT:    korw %k6, %k1, %k17820; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload7821; AVX512BW-NEXT:    kandw %k6, %k1, %k17822; AVX512BW-NEXT:    kshiftrw $13, %k0, %k67823; AVX512BW-NEXT:    korw %k6, %k1, %k17824; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload7825; AVX512BW-NEXT:    kandw %k6, %k1, %k17826; AVX512BW-NEXT:    kshiftrw $12, %k0, %k67827; AVX512BW-NEXT:    korw %k6, %k1, %k17828; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload7829; AVX512BW-NEXT:    kandw %k6, %k1, %k17830; AVX512BW-NEXT:    kshiftrw $11, %k0, %k67831; AVX512BW-NEXT:    korw %k6, %k1, %k17832; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload7833; AVX512BW-NEXT:    kandw %k6, %k1, %k17834; AVX512BW-NEXT:    kshiftrw $10, %k0, %k07835; AVX512BW-NEXT:    korw %k0, %k1, %k07836; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload7837; AVX512BW-NEXT:    kandw %k1, %k0, %k07838; AVX512BW-NEXT:    kshiftrq $17, %k7, %k17839; AVX512BW-NEXT:    kshiftlw $15, %k1, %k17840; AVX512BW-NEXT:    kshiftrw $9, %k1, %k67841; AVX512BW-NEXT:    korw %k6, %k0, %k07842; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload7843; AVX512BW-NEXT:    kandw %k5, %k0, %k07844; AVX512BW-NEXT:    kshiftrw $8, %k1, %k67845; AVX512BW-NEXT:    korw %k6, %k0, %k07846; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload7847; AVX512BW-NEXT:    kandw %k5, %k0, %k07848; AVX512BW-NEXT:    kshiftrw $7, %k1, %k67849; AVX512BW-NEXT:    korw %k6, %k0, %k07850; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload7851; AVX512BW-NEXT:    kandw %k6, %k0, %k07852; AVX512BW-NEXT:    kshiftrw $6, %k1, %k67853; AVX512BW-NEXT:    korw %k6, %k0, %k07854; AVX512BW-NEXT:    kandw %k2, %k0, %k07855; AVX512BW-NEXT:    kshiftrw $5, %k1, %k67856; AVX512BW-NEXT:    korw %k6, %k0, %k07857; AVX512BW-NEXT:    kandw %k3, %k0, %k07858; AVX512BW-NEXT:    kshiftrw $4, %k1, %k17859; AVX512BW-NEXT:    korw %k1, %k0, %k07860; AVX512BW-NEXT:    kandw %k4, %k0, %k07861; AVX512BW-NEXT:    kmovq %k7, %k47862; AVX512BW-NEXT:    kshiftrq $18, %k7, %k17863; AVX512BW-NEXT:    kshiftlw $15, %k1, %k67864; AVX512BW-NEXT:    kshiftrw $3, %k6, %k77865; AVX512BW-NEXT:    korw %k7, %k0, %k07866; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload7867; AVX512BW-NEXT:    kandw %k3, %k0, %k07868; AVX512BW-NEXT:    kshiftrw $2, %k6, %k77869; AVX512BW-NEXT:    korw %k7, %k0, %k07870; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload7871; AVX512BW-NEXT:    kandw %k2, %k0, %k07872; AVX512BW-NEXT:    kshiftlw $14, %k1, %k77873; AVX512BW-NEXT:    korw %k7, %k0, %k07874; AVX512BW-NEXT:    kshiftlw $1, %k0, %k07875; AVX512BW-NEXT:    kshiftrw $1, %k0, %k07876; AVX512BW-NEXT:    korw %k6, %k0, %k77877; AVX512BW-NEXT:    vmovdqa32 384(%rsi), %zmm6 {%k7} {z}7878; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k0 # 2-byte Reload7879; AVX512BW-NEXT:    kandw %k0, %k1, %k07880; AVX512BW-NEXT:    kshiftrw $14, %k6, %k17881; AVX512BW-NEXT:    korw %k1, %k0, %k07882; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload7883; AVX512BW-NEXT:    kandw %k1, %k0, %k07884; AVX512BW-NEXT:    kshiftrq $19, %k4, %k17885; AVX512BW-NEXT:    kmovq %k4, %k77886; AVX512BW-NEXT:    kshiftlw $15, %k1, %k17887; AVX512BW-NEXT:    kshiftrw $13, %k1, %k67888; AVX512BW-NEXT:    korw %k6, %k0, %k07889; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload7890; AVX512BW-NEXT:    kandw %k4, %k0, %k07891; AVX512BW-NEXT:    kshiftrw $12, %k1, %k67892; AVX512BW-NEXT:    korw %k6, %k0, %k07893; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload7894; AVX512BW-NEXT:    kandw %k5, %k0, %k07895; AVX512BW-NEXT:    kshiftrw $11, %k1, %k67896; AVX512BW-NEXT:    korw %k6, %k0, %k07897; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload7898; AVX512BW-NEXT:    kandw %k6, %k0, %k07899; AVX512BW-NEXT:    kshiftrw $10, %k1, %k67900; AVX512BW-NEXT:    korw %k6, %k0, %k07901; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload7902; AVX512BW-NEXT:    kandw %k6, %k0, %k07903; AVX512BW-NEXT:    kshiftrw $9, %k1, %k67904; AVX512BW-NEXT:    korw %k6, %k0, %k07905; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload7906; AVX512BW-NEXT:    kandw %k6, %k0, %k07907; AVX512BW-NEXT:    kshiftrw $8, %k1, %k17908; AVX512BW-NEXT:    korw %k1, %k0, %k07909; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload7910; AVX512BW-NEXT:    kandw %k1, %k0, %k07911; AVX512BW-NEXT:    kshiftrq $20, %k7, %k17912; AVX512BW-NEXT:    kshiftlw $15, %k1, %k17913; AVX512BW-NEXT:    kshiftrw $7, %k1, %k67914; AVX512BW-NEXT:    korw %k6, %k0, %k07915; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload7916; AVX512BW-NEXT:    kandw %k6, %k0, %k07917; AVX512BW-NEXT:    kshiftrw $6, %k1, %k67918; AVX512BW-NEXT:    korw %k6, %k0, %k07919; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload7920; AVX512BW-NEXT:    kandw %k6, %k0, %k07921; AVX512BW-NEXT:    kshiftrw $5, %k1, %k67922; AVX512BW-NEXT:    korw %k6, %k0, %k07923; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload7924; AVX512BW-NEXT:    kandw %k6, %k0, %k07925; AVX512BW-NEXT:    kshiftrw $4, %k1, %k67926; AVX512BW-NEXT:    korw %k6, %k0, %k07927; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload7928; AVX512BW-NEXT:    kandw %k6, %k0, %k07929; AVX512BW-NEXT:    kshiftrw $3, %k1, %k67930; AVX512BW-NEXT:    korw %k6, %k0, %k07931; AVX512BW-NEXT:    kandw %k3, %k0, %k07932; AVX512BW-NEXT:    kshiftrw $2, %k1, %k17933; AVX512BW-NEXT:    korw %k1, %k0, %k07934; AVX512BW-NEXT:    kandw %k2, %k0, %k07935; AVX512BW-NEXT:    kshiftrq $21, %k7, %k17936; AVX512BW-NEXT:    kmovq %k7, %k37937; AVX512BW-NEXT:    kshiftlw $14, %k1, %k67938; AVX512BW-NEXT:    korw %k6, %k0, %k07939; AVX512BW-NEXT:    kshiftlw $1, %k0, %k07940; AVX512BW-NEXT:    kshiftrw $1, %k0, %k07941; AVX512BW-NEXT:    kshiftlw $15, %k1, %k67942; AVX512BW-NEXT:    korw %k6, %k0, %k77943; AVX512BW-NEXT:    vmovdqa32 448(%rsi), %zmm7 {%k7} {z}7944; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload7945; AVX512BW-NEXT:    kandw %k2, %k1, %k07946; AVX512BW-NEXT:    kshiftrw $14, %k6, %k17947; AVX512BW-NEXT:    korw %k1, %k0, %k07948; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload7949; AVX512BW-NEXT:    kandw %k1, %k0, %k07950; AVX512BW-NEXT:    kshiftrw $13, %k6, %k17951; AVX512BW-NEXT:    korw %k1, %k0, %k07952; AVX512BW-NEXT:    kandw %k4, %k0, %k07953; AVX512BW-NEXT:    kshiftrw $12, %k6, %k17954; AVX512BW-NEXT:    korw %k1, %k0, %k07955; AVX512BW-NEXT:    kandw %k5, %k0, %k07956; AVX512BW-NEXT:    kmovq %k3, %k57957; AVX512BW-NEXT:    kshiftrq $22, %k3, %k17958; AVX512BW-NEXT:    kshiftlw $15, %k1, %k17959; AVX512BW-NEXT:    kshiftrw $11, %k1, %k67960; AVX512BW-NEXT:    korw %k6, %k0, %k07961; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload7962; AVX512BW-NEXT:    kandw %k3, %k0, %k07963; AVX512BW-NEXT:    kshiftrw $10, %k1, %k67964; AVX512BW-NEXT:    korw %k6, %k0, %k07965; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload7966; AVX512BW-NEXT:    kandw %k4, %k0, %k07967; AVX512BW-NEXT:    kshiftrw $9, %k1, %k67968; AVX512BW-NEXT:    korw %k6, %k0, %k07969; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload7970; AVX512BW-NEXT:    kandw %k4, %k0, %k07971; AVX512BW-NEXT:    kshiftrw $8, %k1, %k67972; AVX512BW-NEXT:    korw %k6, %k0, %k07973; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload7974; AVX512BW-NEXT:    kandw %k4, %k0, %k07975; AVX512BW-NEXT:    kshiftrw $7, %k1, %k67976; AVX512BW-NEXT:    korw %k6, %k0, %k07977; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload7978; AVX512BW-NEXT:    kandw %k4, %k0, %k07979; AVX512BW-NEXT:    kshiftrw $6, %k1, %k17980; AVX512BW-NEXT:    korw %k1, %k0, %k07981; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload7982; AVX512BW-NEXT:    kandw %k1, %k0, %k17983; AVX512BW-NEXT:    kshiftrq $23, %k5, %k67984; AVX512BW-NEXT:    kshiftlw $15, %k6, %k07985; AVX512BW-NEXT:    kshiftrw $5, %k0, %k77986; AVX512BW-NEXT:    korw %k7, %k1, %k17987; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload7988; AVX512BW-NEXT:    kandw %k5, %k1, %k17989; AVX512BW-NEXT:    kshiftrw $4, %k0, %k77990; AVX512BW-NEXT:    korw %k7, %k1, %k17991; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload7992; AVX512BW-NEXT:    kandw %k5, %k1, %k17993; AVX512BW-NEXT:    kshiftrw $3, %k0, %k77994; AVX512BW-NEXT:    korw %k7, %k1, %k17995; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload7996; AVX512BW-NEXT:    kandw %k5, %k1, %k17997; AVX512BW-NEXT:    kshiftrw $2, %k0, %k77998; AVX512BW-NEXT:    korw %k7, %k1, %k17999; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload8000; AVX512BW-NEXT:    kandw %k5, %k1, %k18001; AVX512BW-NEXT:    kshiftlw $14, %k6, %k68002; AVX512BW-NEXT:    korw %k6, %k1, %k18003; AVX512BW-NEXT:    kshiftlw $1, %k1, %k18004; AVX512BW-NEXT:    kshiftrw $1, %k1, %k18005; AVX512BW-NEXT:    korw %k0, %k1, %k18006; AVX512BW-NEXT:    vmovdqa32 512(%rsi), %zmm8 {%k1} {z}8007; AVX512BW-NEXT:    kmovq {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 8-byte Reload8008; AVX512BW-NEXT:    kshiftrq $24, %k5, %k08009; AVX512BW-NEXT:    kandw %k2, %k0, %k18010; AVX512BW-NEXT:    kshiftlw $15, %k0, %k08011; AVX512BW-NEXT:    kshiftrw $14, %k0, %k68012; AVX512BW-NEXT:    korw %k6, %k1, %k18013; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload8014; AVX512BW-NEXT:    kandw %k2, %k1, %k18015; AVX512BW-NEXT:    kshiftrw $13, %k0, %k68016; AVX512BW-NEXT:    korw %k6, %k1, %k18017; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload8018; AVX512BW-NEXT:    kandw %k6, %k1, %k18019; AVX512BW-NEXT:    kshiftrw $12, %k0, %k68020; AVX512BW-NEXT:    korw %k6, %k1, %k18021; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload8022; AVX512BW-NEXT:    kandw %k6, %k1, %k18023; AVX512BW-NEXT:    kshiftrw $11, %k0, %k68024; AVX512BW-NEXT:    korw %k6, %k1, %k18025; AVX512BW-NEXT:    kandw %k3, %k1, %k18026; AVX512BW-NEXT:    kshiftrw $10, %k0, %k08027; AVX512BW-NEXT:    korw %k0, %k1, %k08028; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload8029; AVX512BW-NEXT:    kandw %k1, %k0, %k08030; AVX512BW-NEXT:    kshiftrq $25, %k5, %k18031; AVX512BW-NEXT:    kshiftlw $15, %k1, %k18032; AVX512BW-NEXT:    kshiftrw $9, %k1, %k68033; AVX512BW-NEXT:    korw %k6, %k0, %k08034; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload8035; AVX512BW-NEXT:    kandw %k3, %k0, %k08036; AVX512BW-NEXT:    kshiftrw $8, %k1, %k68037; AVX512BW-NEXT:    korw %k6, %k0, %k08038; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload8039; AVX512BW-NEXT:    kandw %k3, %k0, %k08040; AVX512BW-NEXT:    kshiftrw $7, %k1, %k68041; AVX512BW-NEXT:    korw %k6, %k0, %k08042; AVX512BW-NEXT:    kandw %k4, %k0, %k08043; AVX512BW-NEXT:    kshiftrw $6, %k1, %k68044; AVX512BW-NEXT:    korw %k6, %k0, %k08045; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload8046; AVX512BW-NEXT:    kandw %k3, %k0, %k08047; AVX512BW-NEXT:    kshiftrw $5, %k1, %k68048; AVX512BW-NEXT:    korw %k6, %k0, %k08049; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload8050; AVX512BW-NEXT:    kandw %k3, %k0, %k08051; AVX512BW-NEXT:    kshiftrw $4, %k1, %k18052; AVX512BW-NEXT:    korw %k1, %k0, %k08053; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload8054; AVX512BW-NEXT:    kandw %k1, %k0, %k08055; AVX512BW-NEXT:    kshiftrq $26, %k5, %k18056; AVX512BW-NEXT:    kshiftlw $15, %k1, %k68057; AVX512BW-NEXT:    kshiftrw $3, %k6, %k78058; AVX512BW-NEXT:    korw %k7, %k0, %k08059; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload8060; AVX512BW-NEXT:    kandw %k3, %k0, %k08061; AVX512BW-NEXT:    kshiftrw $2, %k6, %k78062; AVX512BW-NEXT:    korw %k7, %k0, %k08063; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload8064; AVX512BW-NEXT:    kandw %k3, %k0, %k08065; AVX512BW-NEXT:    kshiftlw $14, %k1, %k78066; AVX512BW-NEXT:    korw %k7, %k0, %k08067; AVX512BW-NEXT:    kshiftlw $1, %k0, %k08068; AVX512BW-NEXT:    kshiftrw $1, %k0, %k08069; AVX512BW-NEXT:    korw %k6, %k0, %k78070; AVX512BW-NEXT:    vmovdqa32 576(%rsi), %zmm9 {%k7} {z}8071; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k0 # 2-byte Reload8072; AVX512BW-NEXT:    kandw %k0, %k1, %k08073; AVX512BW-NEXT:    kshiftrw $14, %k6, %k18074; AVX512BW-NEXT:    korw %k1, %k0, %k08075; AVX512BW-NEXT:    kandw %k2, %k0, %k08076; AVX512BW-NEXT:    kmovq %k5, %k78077; AVX512BW-NEXT:    kshiftrq $27, %k5, %k18078; AVX512BW-NEXT:    kshiftlw $15, %k1, %k18079; AVX512BW-NEXT:    kshiftrw $13, %k1, %k68080; AVX512BW-NEXT:    korw %k6, %k0, %k08081; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload8082; AVX512BW-NEXT:    kandw %k2, %k0, %k08083; AVX512BW-NEXT:    kshiftrw $12, %k1, %k68084; AVX512BW-NEXT:    korw %k6, %k0, %k08085; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload8086; AVX512BW-NEXT:    kandw %k3, %k0, %k08087; AVX512BW-NEXT:    kshiftrw $11, %k1, %k68088; AVX512BW-NEXT:    korw %k6, %k0, %k08089; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload8090; AVX512BW-NEXT:    kandw %k2, %k0, %k08091; AVX512BW-NEXT:    kshiftrw $10, %k1, %k68092; AVX512BW-NEXT:    korw %k6, %k0, %k08093; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload8094; AVX512BW-NEXT:    kandw %k5, %k0, %k08095; AVX512BW-NEXT:    kshiftrw $9, %k1, %k68096; AVX512BW-NEXT:    korw %k6, %k0, %k08097; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload8098; AVX512BW-NEXT:    kandw %k4, %k0, %k08099; AVX512BW-NEXT:    kshiftrw $8, %k1, %k18100; AVX512BW-NEXT:    korw %k1, %k0, %k08101; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload8102; AVX512BW-NEXT:    kandw %k1, %k0, %k08103; AVX512BW-NEXT:    kshiftrq $28, %k7, %k18104; AVX512BW-NEXT:    kshiftlw $15, %k1, %k18105; AVX512BW-NEXT:    kshiftrw $7, %k1, %k68106; AVX512BW-NEXT:    korw %k6, %k0, %k08107; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload8108; AVX512BW-NEXT:    kandw %k2, %k0, %k08109; AVX512BW-NEXT:    kshiftrw $6, %k1, %k68110; AVX512BW-NEXT:    korw %k6, %k0, %k08111; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload8112; AVX512BW-NEXT:    kandw %k2, %k0, %k08113; AVX512BW-NEXT:    kshiftrw $5, %k1, %k68114; AVX512BW-NEXT:    korw %k6, %k0, %k08115; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload8116; AVX512BW-NEXT:    kandw %k6, %k0, %k08117; AVX512BW-NEXT:    kshiftrw $4, %k1, %k68118; AVX512BW-NEXT:    korw %k6, %k0, %k08119; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload8120; AVX512BW-NEXT:    kandw %k6, %k0, %k08121; AVX512BW-NEXT:    kshiftrw $3, %k1, %k68122; AVX512BW-NEXT:    korw %k6, %k0, %k08123; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload8124; AVX512BW-NEXT:    kandw %k6, %k0, %k08125; AVX512BW-NEXT:    kshiftrw $2, %k1, %k18126; AVX512BW-NEXT:    korw %k1, %k0, %k08127; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload8128; AVX512BW-NEXT:    kandw %k1, %k0, %k08129; AVX512BW-NEXT:    kshiftrq $29, %k7, %k18130; AVX512BW-NEXT:    kshiftlw $14, %k1, %k68131; AVX512BW-NEXT:    korw %k6, %k0, %k08132; AVX512BW-NEXT:    kshiftlw $1, %k0, %k08133; AVX512BW-NEXT:    kshiftrw $1, %k0, %k08134; AVX512BW-NEXT:    kshiftlw $15, %k1, %k68135; AVX512BW-NEXT:    korw %k6, %k0, %k78136; AVX512BW-NEXT:    vmovdqa32 640(%rsi), %zmm10 {%k7} {z}8137; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k0 # 2-byte Reload8138; AVX512BW-NEXT:    kandw %k0, %k1, %k08139; AVX512BW-NEXT:    kshiftrw $14, %k6, %k18140; AVX512BW-NEXT:    korw %k1, %k0, %k08141; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload8142; AVX512BW-NEXT:    kandw %k1, %k0, %k08143; AVX512BW-NEXT:    kshiftrw $13, %k6, %k18144; AVX512BW-NEXT:    korw %k1, %k0, %k08145; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload8146; AVX512BW-NEXT:    kandw %k1, %k0, %k08147; AVX512BW-NEXT:    kshiftrw $12, %k6, %k18148; AVX512BW-NEXT:    korw %k1, %k0, %k08149; AVX512BW-NEXT:    kandw %k3, %k0, %k08150; AVX512BW-NEXT:    kmovq {{[-0-9]+}}(%r{{[sb]}}p), %k7 # 8-byte Reload8151; AVX512BW-NEXT:    kshiftrq $30, %k7, %k18152; AVX512BW-NEXT:    kshiftlw $15, %k1, %k18153; AVX512BW-NEXT:    kshiftrw $11, %k1, %k68154; AVX512BW-NEXT:    korw %k6, %k0, %k08155; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload8156; AVX512BW-NEXT:    kandw %k3, %k0, %k08157; AVX512BW-NEXT:    kshiftrw $10, %k1, %k68158; AVX512BW-NEXT:    korw %k6, %k0, %k08159; AVX512BW-NEXT:    kandw %k5, %k0, %k08160; AVX512BW-NEXT:    kshiftrw $9, %k1, %k68161; AVX512BW-NEXT:    korw %k6, %k0, %k08162; AVX512BW-NEXT:    kandw %k4, %k0, %k08163; AVX512BW-NEXT:    kshiftrw $8, %k1, %k68164; AVX512BW-NEXT:    korw %k6, %k0, %k08165; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload8166; AVX512BW-NEXT:    kandw %k5, %k0, %k08167; AVX512BW-NEXT:    kshiftrw $7, %k1, %k68168; AVX512BW-NEXT:    korw %k6, %k0, %k08169; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload8170; AVX512BW-NEXT:    kandw %k3, %k0, %k08171; AVX512BW-NEXT:    kshiftrw $6, %k1, %k18172; AVX512BW-NEXT:    korw %k1, %k0, %k08173; AVX512BW-NEXT:    kandw %k2, %k0, %k18174; AVX512BW-NEXT:    kshiftrq $31, %k7, %k68175; AVX512BW-NEXT:    kshiftlw $15, %k6, %k08176; AVX512BW-NEXT:    kshiftrw $5, %k0, %k78177; AVX512BW-NEXT:    korw %k7, %k1, %k18178; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload8179; AVX512BW-NEXT:    kandw %k3, %k1, %k18180; AVX512BW-NEXT:    kshiftrw $4, %k0, %k78181; AVX512BW-NEXT:    korw %k7, %k1, %k18182; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload8183; AVX512BW-NEXT:    kandw %k4, %k1, %k18184; AVX512BW-NEXT:    kshiftrw $3, %k0, %k78185; AVX512BW-NEXT:    korw %k7, %k1, %k18186; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload8187; AVX512BW-NEXT:    kandw %k2, %k1, %k18188; AVX512BW-NEXT:    kshiftrw $2, %k0, %k78189; AVX512BW-NEXT:    korw %k7, %k1, %k18190; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload8191; AVX512BW-NEXT:    kandw %k2, %k1, %k18192; AVX512BW-NEXT:    kshiftlw $14, %k6, %k68193; AVX512BW-NEXT:    korw %k6, %k1, %k18194; AVX512BW-NEXT:    kshiftlw $1, %k1, %k18195; AVX512BW-NEXT:    kshiftrw $1, %k1, %k18196; AVX512BW-NEXT:    korw %k0, %k1, %k18197; AVX512BW-NEXT:    vmovdqa32 704(%rsi), %zmm11 {%k1} {z}8198; AVX512BW-NEXT:    kmovq {{[-0-9]+}}(%r{{[sb]}}p), %k7 # 8-byte Reload8199; AVX512BW-NEXT:    kshiftrq $32, %k7, %k08200; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload8201; AVX512BW-NEXT:    kandw %k1, %k0, %k18202; AVX512BW-NEXT:    kshiftlw $15, %k0, %k08203; AVX512BW-NEXT:    kshiftrw $14, %k0, %k68204; AVX512BW-NEXT:    korw %k6, %k1, %k18205; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload8206; AVX512BW-NEXT:    kandw %k6, %k1, %k18207; AVX512BW-NEXT:    kshiftrw $13, %k0, %k68208; AVX512BW-NEXT:    korw %k6, %k1, %k18209; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload8210; AVX512BW-NEXT:    kandw %k6, %k1, %k18211; AVX512BW-NEXT:    kshiftrw $12, %k0, %k68212; AVX512BW-NEXT:    korw %k6, %k1, %k18213; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload8214; AVX512BW-NEXT:    kandw %k6, %k1, %k18215; AVX512BW-NEXT:    kshiftrw $11, %k0, %k68216; AVX512BW-NEXT:    korw %k6, %k1, %k18217; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload8218; AVX512BW-NEXT:    kandw %k6, %k1, %k18219; AVX512BW-NEXT:    kshiftrw $10, %k0, %k08220; AVX512BW-NEXT:    korw %k0, %k1, %k08221; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload8222; AVX512BW-NEXT:    kandw %k1, %k0, %k08223; AVX512BW-NEXT:    kshiftrq $33, %k7, %k18224; AVX512BW-NEXT:    kshiftlw $15, %k1, %k18225; AVX512BW-NEXT:    kshiftrw $9, %k1, %k68226; AVX512BW-NEXT:    korw %k6, %k0, %k08227; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload8228; AVX512BW-NEXT:    kandw %k2, %k0, %k08229; AVX512BW-NEXT:    kshiftrw $8, %k1, %k68230; AVX512BW-NEXT:    korw %k6, %k0, %k08231; AVX512BW-NEXT:    kandw %k5, %k0, %k08232; AVX512BW-NEXT:    kshiftrw $7, %k1, %k68233; AVX512BW-NEXT:    korw %k6, %k0, %k08234; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload8235; AVX512BW-NEXT:    kandw %k2, %k0, %k08236; AVX512BW-NEXT:    kshiftrw $6, %k1, %k68237; AVX512BW-NEXT:    korw %k6, %k0, %k08238; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload8239; AVX512BW-NEXT:    kandw %k5, %k0, %k08240; AVX512BW-NEXT:    kshiftrw $5, %k1, %k68241; AVX512BW-NEXT:    korw %k6, %k0, %k08242; AVX512BW-NEXT:    kandw %k3, %k0, %k08243; AVX512BW-NEXT:    kshiftrw $4, %k1, %k18244; AVX512BW-NEXT:    korw %k1, %k0, %k08245; AVX512BW-NEXT:    kandw %k4, %k0, %k08246; AVX512BW-NEXT:    kmovq %k7, %k58247; AVX512BW-NEXT:    kshiftrq $34, %k7, %k18248; AVX512BW-NEXT:    kshiftlw $15, %k1, %k68249; AVX512BW-NEXT:    kshiftrw $3, %k6, %k78250; AVX512BW-NEXT:    korw %k7, %k0, %k08251; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload8252; AVX512BW-NEXT:    kandw %k3, %k0, %k08253; AVX512BW-NEXT:    kshiftrw $2, %k6, %k78254; AVX512BW-NEXT:    korw %k7, %k0, %k08255; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload8256; AVX512BW-NEXT:    kandw %k4, %k0, %k08257; AVX512BW-NEXT:    kshiftlw $14, %k1, %k78258; AVX512BW-NEXT:    korw %k7, %k0, %k08259; AVX512BW-NEXT:    kshiftlw $1, %k0, %k08260; AVX512BW-NEXT:    kshiftrw $1, %k0, %k08261; AVX512BW-NEXT:    korw %k6, %k0, %k78262; AVX512BW-NEXT:    vmovdqa32 768(%rsi), %zmm12 {%k7} {z}8263; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k0 # 2-byte Reload8264; AVX512BW-NEXT:    kandw %k0, %k1, %k08265; AVX512BW-NEXT:    kshiftrw $14, %k6, %k18266; AVX512BW-NEXT:    korw %k1, %k0, %k08267; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload8268; AVX512BW-NEXT:    kandw %k1, %k0, %k08269; AVX512BW-NEXT:    kshiftrq $35, %k5, %k18270; AVX512BW-NEXT:    kmovq %k5, %k78271; AVX512BW-NEXT:    kshiftlw $15, %k1, %k18272; AVX512BW-NEXT:    kshiftrw $13, %k1, %k68273; AVX512BW-NEXT:    korw %k6, %k0, %k08274; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload8275; AVX512BW-NEXT:    kandw %k5, %k0, %k08276; AVX512BW-NEXT:    kshiftrw $12, %k1, %k68277; AVX512BW-NEXT:    korw %k6, %k0, %k08278; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload8279; AVX512BW-NEXT:    kandw %k5, %k0, %k08280; AVX512BW-NEXT:    kshiftrw $11, %k1, %k68281; AVX512BW-NEXT:    korw %k6, %k0, %k08282; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload8283; AVX512BW-NEXT:    kandw %k5, %k0, %k08284; AVX512BW-NEXT:    kshiftrw $10, %k1, %k68285; AVX512BW-NEXT:    korw %k6, %k0, %k08286; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload8287; AVX512BW-NEXT:    kandw %k5, %k0, %k08288; AVX512BW-NEXT:    kshiftrw $9, %k1, %k68289; AVX512BW-NEXT:    korw %k6, %k0, %k08290; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload8291; AVX512BW-NEXT:    kandw %k5, %k0, %k08292; AVX512BW-NEXT:    kshiftrw $8, %k1, %k18293; AVX512BW-NEXT:    korw %k1, %k0, %k08294; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload8295; AVX512BW-NEXT:    kandw %k1, %k0, %k08296; AVX512BW-NEXT:    kshiftrq $36, %k7, %k18297; AVX512BW-NEXT:    kshiftlw $15, %k1, %k18298; AVX512BW-NEXT:    kshiftrw $7, %k1, %k68299; AVX512BW-NEXT:    korw %k6, %k0, %k08300; AVX512BW-NEXT:    kandw %k2, %k0, %k08301; AVX512BW-NEXT:    kshiftrw $6, %k1, %k68302; AVX512BW-NEXT:    korw %k6, %k0, %k08303; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload8304; AVX512BW-NEXT:    kandw %k2, %k0, %k08305; AVX512BW-NEXT:    kshiftrw $5, %k1, %k68306; AVX512BW-NEXT:    korw %k6, %k0, %k08307; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload8308; AVX512BW-NEXT:    kandw %k6, %k0, %k08309; AVX512BW-NEXT:    kshiftrw $4, %k1, %k68310; AVX512BW-NEXT:    korw %k6, %k0, %k08311; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload8312; AVX512BW-NEXT:    kandw %k6, %k0, %k08313; AVX512BW-NEXT:    kshiftrw $3, %k1, %k68314; AVX512BW-NEXT:    korw %k6, %k0, %k08315; AVX512BW-NEXT:    kandw %k3, %k0, %k08316; AVX512BW-NEXT:    kshiftrw $2, %k1, %k18317; AVX512BW-NEXT:    korw %k1, %k0, %k08318; AVX512BW-NEXT:    kandw %k4, %k0, %k08319; AVX512BW-NEXT:    kshiftrq $37, %k7, %k18320; AVX512BW-NEXT:    kmovq %k7, %k38321; AVX512BW-NEXT:    kshiftlw $14, %k1, %k68322; AVX512BW-NEXT:    korw %k6, %k0, %k08323; AVX512BW-NEXT:    kshiftlw $1, %k0, %k08324; AVX512BW-NEXT:    kshiftrw $1, %k0, %k08325; AVX512BW-NEXT:    kshiftlw $15, %k1, %k68326; AVX512BW-NEXT:    korw %k6, %k0, %k78327; AVX512BW-NEXT:    vmovdqa32 832(%rsi), %zmm13 {%k7} {z}8328; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k0 # 2-byte Reload8329; AVX512BW-NEXT:    kandw %k0, %k1, %k08330; AVX512BW-NEXT:    kshiftrw $14, %k6, %k18331; AVX512BW-NEXT:    korw %k1, %k0, %k08332; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload8333; AVX512BW-NEXT:    kandw %k1, %k0, %k08334; AVX512BW-NEXT:    kshiftrw $13, %k6, %k18335; AVX512BW-NEXT:    korw %k1, %k0, %k08336; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload8337; AVX512BW-NEXT:    kandw %k4, %k0, %k08338; AVX512BW-NEXT:    kshiftrw $12, %k6, %k18339; AVX512BW-NEXT:    korw %k1, %k0, %k08340; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload8341; AVX512BW-NEXT:    kandw %k1, %k0, %k08342; AVX512BW-NEXT:    kmovq %k3, %k78343; AVX512BW-NEXT:    kshiftrq $38, %k3, %k18344; AVX512BW-NEXT:    kshiftlw $15, %k1, %k18345; AVX512BW-NEXT:    kshiftrw $11, %k1, %k68346; AVX512BW-NEXT:    korw %k6, %k0, %k08347; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload8348; AVX512BW-NEXT:    kandw %k3, %k0, %k08349; AVX512BW-NEXT:    kshiftrw $10, %k1, %k68350; AVX512BW-NEXT:    korw %k6, %k0, %k08351; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload8352; AVX512BW-NEXT:    kandw %k6, %k0, %k08353; AVX512BW-NEXT:    kshiftrw $9, %k1, %k68354; AVX512BW-NEXT:    korw %k6, %k0, %k08355; AVX512BW-NEXT:    kandw %k5, %k0, %k08356; AVX512BW-NEXT:    kshiftrw $8, %k1, %k68357; AVX512BW-NEXT:    korw %k6, %k0, %k08358; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload8359; AVX512BW-NEXT:    kandw %k5, %k0, %k08360; AVX512BW-NEXT:    kshiftrw $7, %k1, %k68361; AVX512BW-NEXT:    korw %k6, %k0, %k08362; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload8363; AVX512BW-NEXT:    kandw %k5, %k0, %k08364; AVX512BW-NEXT:    kshiftrw $6, %k1, %k18365; AVX512BW-NEXT:    korw %k1, %k0, %k08366; AVX512BW-NEXT:    kandw %k2, %k0, %k18367; AVX512BW-NEXT:    kshiftrq $39, %k7, %k68368; AVX512BW-NEXT:    kmovq %k7, %k58369; AVX512BW-NEXT:    kshiftlw $15, %k6, %k08370; AVX512BW-NEXT:    kshiftrw $5, %k0, %k78371; AVX512BW-NEXT:    korw %k7, %k1, %k18372; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload8373; AVX512BW-NEXT:    kandw %k2, %k1, %k18374; AVX512BW-NEXT:    kshiftrw $4, %k0, %k78375; AVX512BW-NEXT:    korw %k7, %k1, %k18376; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload8377; AVX512BW-NEXT:    kandw %k2, %k1, %k18378; AVX512BW-NEXT:    kshiftrw $3, %k0, %k78379; AVX512BW-NEXT:    korw %k7, %k1, %k18380; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload8381; AVX512BW-NEXT:    kandw %k2, %k1, %k18382; AVX512BW-NEXT:    kshiftrw $2, %k0, %k78383; AVX512BW-NEXT:    korw %k7, %k1, %k18384; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload8385; AVX512BW-NEXT:    kandw %k2, %k1, %k18386; AVX512BW-NEXT:    kshiftlw $14, %k6, %k68387; AVX512BW-NEXT:    korw %k6, %k1, %k18388; AVX512BW-NEXT:    kshiftlw $1, %k1, %k18389; AVX512BW-NEXT:    kshiftrw $1, %k1, %k18390; AVX512BW-NEXT:    korw %k0, %k1, %k18391; AVX512BW-NEXT:    vmovdqa32 896(%rsi), %zmm14 {%k1} {z}8392; AVX512BW-NEXT:    kshiftrq $40, %k5, %k08393; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload8394; AVX512BW-NEXT:    kandw %k1, %k0, %k18395; AVX512BW-NEXT:    kshiftlw $15, %k0, %k08396; AVX512BW-NEXT:    kshiftrw $14, %k0, %k68397; AVX512BW-NEXT:    korw %k6, %k1, %k18398; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload8399; AVX512BW-NEXT:    kandw %k2, %k1, %k18400; AVX512BW-NEXT:    kshiftrw $13, %k0, %k68401; AVX512BW-NEXT:    korw %k6, %k1, %k18402; AVX512BW-NEXT:    kandw %k4, %k1, %k18403; AVX512BW-NEXT:    kshiftrw $12, %k0, %k68404; AVX512BW-NEXT:    korw %k6, %k1, %k18405; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload8406; AVX512BW-NEXT:    kandw %k6, %k1, %k18407; AVX512BW-NEXT:    kshiftrw $11, %k0, %k68408; AVX512BW-NEXT:    korw %k6, %k1, %k18409; AVX512BW-NEXT:    kandw %k3, %k1, %k18410; AVX512BW-NEXT:    kshiftrw $10, %k0, %k08411; AVX512BW-NEXT:    korw %k0, %k1, %k08412; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload8413; AVX512BW-NEXT:    kandw %k1, %k0, %k08414; AVX512BW-NEXT:    kshiftrq $41, %k5, %k18415; AVX512BW-NEXT:    kmovq %k5, %k48416; AVX512BW-NEXT:    kshiftlw $15, %k1, %k18417; AVX512BW-NEXT:    kshiftrw $9, %k1, %k68418; AVX512BW-NEXT:    korw %k6, %k0, %k08419; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload8420; AVX512BW-NEXT:    kandw %k3, %k0, %k08421; AVX512BW-NEXT:    kshiftrw $8, %k1, %k68422; AVX512BW-NEXT:    korw %k6, %k0, %k08423; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload8424; AVX512BW-NEXT:    kandw %k3, %k0, %k08425; AVX512BW-NEXT:    kshiftrw $7, %k1, %k68426; AVX512BW-NEXT:    korw %k6, %k0, %k08427; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload8428; AVX512BW-NEXT:    kandw %k5, %k0, %k08429; AVX512BW-NEXT:    kshiftrw $6, %k1, %k68430; AVX512BW-NEXT:    korw %k6, %k0, %k08431; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload8432; AVX512BW-NEXT:    kandw %k5, %k0, %k08433; AVX512BW-NEXT:    kshiftrw $5, %k1, %k68434; AVX512BW-NEXT:    korw %k6, %k0, %k08435; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload8436; AVX512BW-NEXT:    kandw %k5, %k0, %k08437; AVX512BW-NEXT:    kshiftrw $4, %k1, %k18438; AVX512BW-NEXT:    korw %k1, %k0, %k08439; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload8440; AVX512BW-NEXT:    kandw %k1, %k0, %k08441; AVX512BW-NEXT:    kshiftrq $42, %k4, %k18442; AVX512BW-NEXT:    kshiftlw $15, %k1, %k68443; AVX512BW-NEXT:    kshiftrw $3, %k6, %k78444; AVX512BW-NEXT:    korw %k7, %k0, %k08445; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload8446; AVX512BW-NEXT:    kandw %k5, %k0, %k08447; AVX512BW-NEXT:    kshiftrw $2, %k6, %k78448; AVX512BW-NEXT:    korw %k7, %k0, %k08449; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload8450; AVX512BW-NEXT:    kandw %k5, %k0, %k08451; AVX512BW-NEXT:    kshiftlw $14, %k1, %k78452; AVX512BW-NEXT:    korw %k7, %k0, %k08453; AVX512BW-NEXT:    kshiftlw $1, %k0, %k08454; AVX512BW-NEXT:    kshiftrw $1, %k0, %k08455; AVX512BW-NEXT:    korw %k6, %k0, %k78456; AVX512BW-NEXT:    vmovdqa32 960(%rsi), %zmm15 {%k7} {z}8457; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload8458; AVX512BW-NEXT:    kandw %k5, %k1, %k08459; AVX512BW-NEXT:    kshiftrw $14, %k6, %k18460; AVX512BW-NEXT:    korw %k1, %k0, %k08461; AVX512BW-NEXT:    kandw %k2, %k0, %k08462; AVX512BW-NEXT:    kmovq %k4, %k78463; AVX512BW-NEXT:    kshiftrq $43, %k4, %k18464; AVX512BW-NEXT:    kshiftlw $15, %k1, %k18465; AVX512BW-NEXT:    kshiftrw $13, %k1, %k68466; AVX512BW-NEXT:    korw %k6, %k0, %k08467; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload8468; AVX512BW-NEXT:    kandw %k2, %k0, %k08469; AVX512BW-NEXT:    kshiftrw $12, %k1, %k68470; AVX512BW-NEXT:    korw %k6, %k0, %k08471; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload8472; AVX512BW-NEXT:    kandw %k4, %k0, %k08473; AVX512BW-NEXT:    kshiftrw $11, %k1, %k68474; AVX512BW-NEXT:    korw %k6, %k0, %k08475; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload8476; AVX512BW-NEXT:    kandw %k2, %k0, %k08477; AVX512BW-NEXT:    kshiftrw $10, %k1, %k68478; AVX512BW-NEXT:    korw %k6, %k0, %k08479; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload8480; AVX512BW-NEXT:    kandw %k6, %k0, %k08481; AVX512BW-NEXT:    kshiftrw $9, %k1, %k68482; AVX512BW-NEXT:    korw %k6, %k0, %k08483; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload8484; AVX512BW-NEXT:    kandw %k6, %k0, %k08485; AVX512BW-NEXT:    kshiftrw $8, %k1, %k18486; AVX512BW-NEXT:    korw %k1, %k0, %k08487; AVX512BW-NEXT:    kandw %k3, %k0, %k08488; AVX512BW-NEXT:    kshiftrq $44, %k7, %k18489; AVX512BW-NEXT:    kshiftlw $15, %k1, %k18490; AVX512BW-NEXT:    kshiftrw $7, %k1, %k68491; AVX512BW-NEXT:    korw %k6, %k0, %k08492; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload8493; AVX512BW-NEXT:    kandw %k3, %k0, %k08494; AVX512BW-NEXT:    kshiftrw $6, %k1, %k68495; AVX512BW-NEXT:    korw %k6, %k0, %k08496; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload8497; AVX512BW-NEXT:    kandw %k6, %k0, %k08498; AVX512BW-NEXT:    kshiftrw $5, %k1, %k68499; AVX512BW-NEXT:    korw %k6, %k0, %k08500; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload8501; AVX512BW-NEXT:    kandw %k6, %k0, %k08502; AVX512BW-NEXT:    kshiftrw $4, %k1, %k68503; AVX512BW-NEXT:    korw %k6, %k0, %k08504; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload8505; AVX512BW-NEXT:    kandw %k6, %k0, %k08506; AVX512BW-NEXT:    kshiftrw $3, %k1, %k68507; AVX512BW-NEXT:    korw %k6, %k0, %k08508; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload8509; AVX512BW-NEXT:    kandw %k6, %k0, %k08510; AVX512BW-NEXT:    kshiftrw $2, %k1, %k18511; AVX512BW-NEXT:    korw %k1, %k0, %k08512; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload8513; AVX512BW-NEXT:    kandw %k1, %k0, %k08514; AVX512BW-NEXT:    kshiftrq $45, %k7, %k18515; AVX512BW-NEXT:    kshiftlw $14, %k1, %k68516; AVX512BW-NEXT:    korw %k6, %k0, %k08517; AVX512BW-NEXT:    kshiftlw $1, %k0, %k08518; AVX512BW-NEXT:    kshiftrw $1, %k0, %k08519; AVX512BW-NEXT:    kshiftlw $15, %k1, %k68520; AVX512BW-NEXT:    korw %k6, %k0, %k78521; AVX512BW-NEXT:    vmovdqa32 1024(%rsi), %zmm16 {%k7} {z}8522; AVX512BW-NEXT:    kandw %k5, %k1, %k08523; AVX512BW-NEXT:    kshiftrw $14, %k6, %k18524; AVX512BW-NEXT:    korw %k1, %k0, %k08525; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload8526; AVX512BW-NEXT:    kandw %k1, %k0, %k08527; AVX512BW-NEXT:    kshiftrw $13, %k6, %k18528; AVX512BW-NEXT:    korw %k1, %k0, %k08529; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload8530; AVX512BW-NEXT:    kandw %k1, %k0, %k08531; AVX512BW-NEXT:    kshiftrw $12, %k6, %k18532; AVX512BW-NEXT:    korw %k1, %k0, %k08533; AVX512BW-NEXT:    kandw %k4, %k0, %k08534; AVX512BW-NEXT:    kmovq {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 8-byte Reload8535; AVX512BW-NEXT:    kshiftrq $46, %k5, %k18536; AVX512BW-NEXT:    kshiftlw $15, %k1, %k18537; AVX512BW-NEXT:    kshiftrw $11, %k1, %k68538; AVX512BW-NEXT:    korw %k6, %k0, %k08539; AVX512BW-NEXT:    kandw %k2, %k0, %k08540; AVX512BW-NEXT:    kshiftrw $10, %k1, %k68541; AVX512BW-NEXT:    korw %k6, %k0, %k08542; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload8543; AVX512BW-NEXT:    kandw %k2, %k0, %k08544; AVX512BW-NEXT:    kshiftrw $9, %k1, %k68545; AVX512BW-NEXT:    korw %k6, %k0, %k08546; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload8547; AVX512BW-NEXT:    kandw %k4, %k0, %k08548; AVX512BW-NEXT:    kshiftrw $8, %k1, %k68549; AVX512BW-NEXT:    korw %k6, %k0, %k08550; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload8551; AVX512BW-NEXT:    kandw %k4, %k0, %k08552; AVX512BW-NEXT:    kshiftrw $7, %k1, %k68553; AVX512BW-NEXT:    korw %k6, %k0, %k08554; AVX512BW-NEXT:    kandw %k3, %k0, %k08555; AVX512BW-NEXT:    kshiftrw $6, %k1, %k18556; AVX512BW-NEXT:    korw %k1, %k0, %k08557; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload8558; AVX512BW-NEXT:    kandw %k1, %k0, %k18559; AVX512BW-NEXT:    kshiftrq $47, %k5, %k68560; AVX512BW-NEXT:    kshiftlw $15, %k6, %k08561; AVX512BW-NEXT:    kshiftrw $5, %k0, %k78562; AVX512BW-NEXT:    korw %k7, %k1, %k18563; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload8564; AVX512BW-NEXT:    kandw %k4, %k1, %k18565; AVX512BW-NEXT:    kshiftrw $4, %k0, %k78566; AVX512BW-NEXT:    korw %k7, %k1, %k18567; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload8568; AVX512BW-NEXT:    kandw %k3, %k1, %k18569; AVX512BW-NEXT:    kshiftrw $3, %k0, %k78570; AVX512BW-NEXT:    korw %k7, %k1, %k18571; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload8572; AVX512BW-NEXT:    kandw %k5, %k1, %k18573; AVX512BW-NEXT:    kshiftrw $2, %k0, %k78574; AVX512BW-NEXT:    korw %k7, %k1, %k18575; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload8576; AVX512BW-NEXT:    kandw %k5, %k1, %k18577; AVX512BW-NEXT:    kshiftlw $14, %k6, %k68578; AVX512BW-NEXT:    korw %k6, %k1, %k18579; AVX512BW-NEXT:    kshiftlw $1, %k1, %k18580; AVX512BW-NEXT:    kshiftrw $1, %k1, %k18581; AVX512BW-NEXT:    korw %k0, %k1, %k18582; AVX512BW-NEXT:    vmovdqa32 1088(%rsi), %zmm17 {%k1} {z}8583; AVX512BW-NEXT:    kmovq {{[-0-9]+}}(%r{{[sb]}}p), %k7 # 8-byte Reload8584; AVX512BW-NEXT:    kshiftrq $48, %k7, %k08585; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload8586; AVX512BW-NEXT:    kandw %k1, %k0, %k18587; AVX512BW-NEXT:    kshiftlw $15, %k0, %k08588; AVX512BW-NEXT:    kshiftrw $14, %k0, %k68589; AVX512BW-NEXT:    korw %k6, %k1, %k18590; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload8591; AVX512BW-NEXT:    kandw %k6, %k1, %k18592; AVX512BW-NEXT:    kshiftrw $13, %k0, %k68593; AVX512BW-NEXT:    korw %k6, %k1, %k18594; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload8595; AVX512BW-NEXT:    kandw %k6, %k1, %k18596; AVX512BW-NEXT:    kshiftrw $12, %k0, %k68597; AVX512BW-NEXT:    korw %k6, %k1, %k18598; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload8599; AVX512BW-NEXT:    kandw %k6, %k1, %k18600; AVX512BW-NEXT:    kshiftrw $11, %k0, %k68601; AVX512BW-NEXT:    korw %k6, %k1, %k18602; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload8603; AVX512BW-NEXT:    kandw %k6, %k1, %k18604; AVX512BW-NEXT:    kshiftrw $10, %k0, %k08605; AVX512BW-NEXT:    korw %k0, %k1, %k08606; AVX512BW-NEXT:    kandw %k2, %k0, %k08607; AVX512BW-NEXT:    kshiftrq $49, %k7, %k18608; AVX512BW-NEXT:    kshiftlw $15, %k1, %k18609; AVX512BW-NEXT:    kshiftrw $9, %k1, %k68610; AVX512BW-NEXT:    korw %k6, %k0, %k08611; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload8612; AVX512BW-NEXT:    kandw %k2, %k0, %k08613; AVX512BW-NEXT:    kshiftrw $8, %k1, %k68614; AVX512BW-NEXT:    korw %k6, %k0, %k08615; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload8616; AVX512BW-NEXT:    kandw %k5, %k0, %k08617; AVX512BW-NEXT:    kshiftrw $7, %k1, %k68618; AVX512BW-NEXT:    korw %k6, %k0, %k08619; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload8620; AVX512BW-NEXT:    kandw %k5, %k0, %k08621; AVX512BW-NEXT:    kshiftrw $6, %k1, %k68622; AVX512BW-NEXT:    korw %k6, %k0, %k08623; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload8624; AVX512BW-NEXT:    kandw %k6, %k0, %k08625; AVX512BW-NEXT:    kshiftrw $5, %k1, %k68626; AVX512BW-NEXT:    korw %k6, %k0, %k08627; AVX512BW-NEXT:    kandw %k4, %k0, %k08628; AVX512BW-NEXT:    kshiftrw $4, %k1, %k18629; AVX512BW-NEXT:    korw %k1, %k0, %k08630; AVX512BW-NEXT:    kandw %k3, %k0, %k08631; AVX512BW-NEXT:    kmovq %k7, %k58632; AVX512BW-NEXT:    kshiftrq $50, %k7, %k18633; AVX512BW-NEXT:    kshiftlw $15, %k1, %k68634; AVX512BW-NEXT:    kshiftrw $3, %k6, %k78635; AVX512BW-NEXT:    korw %k7, %k0, %k08636; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload8637; AVX512BW-NEXT:    kandw %k4, %k0, %k08638; AVX512BW-NEXT:    kshiftrw $2, %k6, %k78639; AVX512BW-NEXT:    korw %k7, %k0, %k08640; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload8641; AVX512BW-NEXT:    kandw %k3, %k0, %k08642; AVX512BW-NEXT:    kshiftlw $14, %k1, %k78643; AVX512BW-NEXT:    korw %k7, %k0, %k08644; AVX512BW-NEXT:    kshiftlw $1, %k0, %k08645; AVX512BW-NEXT:    kshiftrw $1, %k0, %k08646; AVX512BW-NEXT:    korw %k6, %k0, %k78647; AVX512BW-NEXT:    vmovdqa32 1152(%rsi), %zmm18 {%k7} {z}8648; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k0 # 2-byte Reload8649; AVX512BW-NEXT:    kandw %k0, %k1, %k08650; AVX512BW-NEXT:    kshiftrw $14, %k6, %k18651; AVX512BW-NEXT:    korw %k1, %k0, %k08652; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload8653; AVX512BW-NEXT:    kandw %k1, %k0, %k08654; AVX512BW-NEXT:    kshiftrq $51, %k5, %k18655; AVX512BW-NEXT:    kmovq %k5, %k78656; AVX512BW-NEXT:    kshiftlw $15, %k1, %k18657; AVX512BW-NEXT:    kshiftrw $13, %k1, %k68658; AVX512BW-NEXT:    korw %k6, %k0, %k08659; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload8660; AVX512BW-NEXT:    kandw %k5, %k0, %k08661; AVX512BW-NEXT:    kshiftrw $12, %k1, %k68662; AVX512BW-NEXT:    korw %k6, %k0, %k08663; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload8664; AVX512BW-NEXT:    kandw %k3, %k0, %k08665; AVX512BW-NEXT:    kshiftrw $11, %k1, %k68666; AVX512BW-NEXT:    korw %k6, %k0, %k08667; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload8668; AVX512BW-NEXT:    kandw %k3, %k0, %k08669; AVX512BW-NEXT:    kshiftrw $10, %k1, %k68670; AVX512BW-NEXT:    korw %k6, %k0, %k08671; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload8672; AVX512BW-NEXT:    kandw %k3, %k0, %k08673; AVX512BW-NEXT:    kshiftrw $9, %k1, %k68674; AVX512BW-NEXT:    korw %k6, %k0, %k08675; AVX512BW-NEXT:    kandw %k2, %k0, %k08676; AVX512BW-NEXT:    kshiftrw $8, %k1, %k18677; AVX512BW-NEXT:    korw %k1, %k0, %k08678; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload8679; AVX512BW-NEXT:    kandw %k3, %k0, %k08680; AVX512BW-NEXT:    kshiftrq $52, %k7, %k18681; AVX512BW-NEXT:    kshiftlw $15, %k1, %k18682; AVX512BW-NEXT:    kshiftrw $7, %k1, %k68683; AVX512BW-NEXT:    korw %k6, %k0, %k08684; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload8685; AVX512BW-NEXT:    kandw %k2, %k0, %k08686; AVX512BW-NEXT:    kshiftrw $6, %k1, %k68687; AVX512BW-NEXT:    korw %k6, %k0, %k08688; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload8689; AVX512BW-NEXT:    kandw %k2, %k0, %k08690; AVX512BW-NEXT:    kshiftrw $5, %k1, %k68691; AVX512BW-NEXT:    korw %k6, %k0, %k08692; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload8693; AVX512BW-NEXT:    kandw %k2, %k0, %k08694; AVX512BW-NEXT:    kshiftrw $4, %k1, %k68695; AVX512BW-NEXT:    korw %k6, %k0, %k08696; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload8697; AVX512BW-NEXT:    kandw %k2, %k0, %k08698; AVX512BW-NEXT:    kshiftrw $3, %k1, %k68699; AVX512BW-NEXT:    korw %k6, %k0, %k08700; AVX512BW-NEXT:    kandw %k4, %k0, %k08701; AVX512BW-NEXT:    kshiftrw $2, %k1, %k18702; AVX512BW-NEXT:    korw %k1, %k0, %k08703; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload8704; AVX512BW-NEXT:    kandw %k2, %k0, %k08705; AVX512BW-NEXT:    kshiftrq $53, %k7, %k18706; AVX512BW-NEXT:    kshiftlw $14, %k1, %k68707; AVX512BW-NEXT:    korw %k6, %k0, %k08708; AVX512BW-NEXT:    kshiftlw $1, %k0, %k08709; AVX512BW-NEXT:    kshiftrw $1, %k0, %k08710; AVX512BW-NEXT:    kshiftlw $15, %k1, %k68711; AVX512BW-NEXT:    korw %k6, %k0, %k78712; AVX512BW-NEXT:    vmovdqa32 1216(%rsi), %zmm19 {%k7} {z}8713; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k0 # 2-byte Reload8714; AVX512BW-NEXT:    kandw %k0, %k1, %k08715; AVX512BW-NEXT:    kshiftrw $14, %k6, %k18716; AVX512BW-NEXT:    korw %k1, %k0, %k08717; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload8718; AVX512BW-NEXT:    kandw %k1, %k0, %k08719; AVX512BW-NEXT:    kshiftrw $13, %k6, %k18720; AVX512BW-NEXT:    korw %k1, %k0, %k08721; AVX512BW-NEXT:    kandw %k5, %k0, %k08722; AVX512BW-NEXT:    kshiftrw $12, %k6, %k18723; AVX512BW-NEXT:    korw %k1, %k0, %k08724; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload8725; AVX512BW-NEXT:    kandw %k4, %k0, %k08726; AVX512BW-NEXT:    kmovq {{[-0-9]+}}(%r{{[sb]}}p), %k7 # 8-byte Reload8727; AVX512BW-NEXT:    kshiftrq $54, %k7, %k18728; AVX512BW-NEXT:    kshiftlw $15, %k1, %k18729; AVX512BW-NEXT:    kshiftrw $11, %k1, %k68730; AVX512BW-NEXT:    korw %k6, %k0, %k08731; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload8732; AVX512BW-NEXT:    kandw %k6, %k0, %k08733; AVX512BW-NEXT:    kshiftrw $10, %k1, %k68734; AVX512BW-NEXT:    korw %k6, %k0, %k08735; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload8736; AVX512BW-NEXT:    kandw %k5, %k0, %k08737; AVX512BW-NEXT:    kshiftrw $9, %k1, %k68738; AVX512BW-NEXT:    korw %k6, %k0, %k08739; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload8740; AVX512BW-NEXT:    kandw %k5, %k0, %k08741; AVX512BW-NEXT:    kshiftrw $8, %k1, %k68742; AVX512BW-NEXT:    korw %k6, %k0, %k08743; AVX512BW-NEXT:    kandw %k3, %k0, %k08744; AVX512BW-NEXT:    kshiftrw $7, %k1, %k68745; AVX512BW-NEXT:    korw %k6, %k0, %k08746; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload8747; AVX512BW-NEXT:    kandw %k3, %k0, %k08748; AVX512BW-NEXT:    kshiftrw $6, %k1, %k18749; AVX512BW-NEXT:    korw %k1, %k0, %k08750; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload8751; AVX512BW-NEXT:    kandw %k3, %k0, %k18752; AVX512BW-NEXT:    kshiftrq $55, %k7, %k68753; AVX512BW-NEXT:    kshiftlw $15, %k6, %k08754; AVX512BW-NEXT:    kshiftrw $5, %k0, %k78755; AVX512BW-NEXT:    korw %k7, %k1, %k18756; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload8757; AVX512BW-NEXT:    kandw %k5, %k1, %k18758; AVX512BW-NEXT:    kshiftrw $4, %k0, %k78759; AVX512BW-NEXT:    korw %k7, %k1, %k18760; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload8761; AVX512BW-NEXT:    kandw %k5, %k1, %k18762; AVX512BW-NEXT:    kshiftrw $3, %k0, %k78763; AVX512BW-NEXT:    korw %k7, %k1, %k18764; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload8765; AVX512BW-NEXT:    kandw %k5, %k1, %k18766; AVX512BW-NEXT:    kshiftrw $2, %k0, %k78767; AVX512BW-NEXT:    korw %k7, %k1, %k18768; AVX512BW-NEXT:    kandw %k2, %k1, %k18769; AVX512BW-NEXT:    kshiftlw $14, %k6, %k68770; AVX512BW-NEXT:    korw %k6, %k1, %k18771; AVX512BW-NEXT:    kshiftlw $1, %k1, %k18772; AVX512BW-NEXT:    kshiftrw $1, %k1, %k18773; AVX512BW-NEXT:    korw %k0, %k1, %k18774; AVX512BW-NEXT:    vmovdqa32 1280(%rsi), %zmm20 {%k1} {z}8775; AVX512BW-NEXT:    kmovq {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 8-byte Reload8776; AVX512BW-NEXT:    kshiftrq $56, %k5, %k08777; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload8778; AVX512BW-NEXT:    kandw %k2, %k0, %k18779; AVX512BW-NEXT:    kshiftlw $15, %k0, %k08780; AVX512BW-NEXT:    kshiftrw $14, %k0, %k68781; AVX512BW-NEXT:    korw %k6, %k1, %k18782; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload8783; AVX512BW-NEXT:    kandw %k6, %k1, %k18784; AVX512BW-NEXT:    kshiftrw $13, %k0, %k68785; AVX512BW-NEXT:    korw %k6, %k1, %k18786; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload8787; AVX512BW-NEXT:    kandw %k6, %k1, %k18788; AVX512BW-NEXT:    kshiftrw $12, %k0, %k68789; AVX512BW-NEXT:    korw %k6, %k1, %k18790; AVX512BW-NEXT:    kandw %k4, %k1, %k18791; AVX512BW-NEXT:    kshiftrw $11, %k0, %k68792; AVX512BW-NEXT:    korw %k6, %k1, %k18793; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload8794; AVX512BW-NEXT:    kandw %k4, %k1, %k18795; AVX512BW-NEXT:    kshiftrw $10, %k0, %k08796; AVX512BW-NEXT:    korw %k0, %k1, %k08797; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload8798; AVX512BW-NEXT:    kandw %k1, %k0, %k08799; AVX512BW-NEXT:    kshiftrq $57, %k5, %k18800; AVX512BW-NEXT:    kshiftlw $15, %k1, %k18801; AVX512BW-NEXT:    kshiftrw $9, %k1, %k68802; AVX512BW-NEXT:    korw %k6, %k0, %k08803; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload8804; AVX512BW-NEXT:    kandw %k4, %k0, %k08805; AVX512BW-NEXT:    kshiftrw $8, %k1, %k68806; AVX512BW-NEXT:    korw %k6, %k0, %k08807; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload8808; AVX512BW-NEXT:    kandw %k4, %k0, %k08809; AVX512BW-NEXT:    kshiftrw $7, %k1, %k68810; AVX512BW-NEXT:    korw %k6, %k0, %k08811; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload8812; AVX512BW-NEXT:    kandw %k4, %k0, %k08813; AVX512BW-NEXT:    kshiftrw $6, %k1, %k68814; AVX512BW-NEXT:    korw %k6, %k0, %k08815; AVX512BW-NEXT:    kandw %k3, %k0, %k08816; AVX512BW-NEXT:    kshiftrw $5, %k1, %k68817; AVX512BW-NEXT:    korw %k6, %k0, %k08818; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload8819; AVX512BW-NEXT:    kandw %k3, %k0, %k08820; AVX512BW-NEXT:    kshiftrw $4, %k1, %k18821; AVX512BW-NEXT:    korw %k1, %k0, %k08822; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload8823; AVX512BW-NEXT:    kandw %k3, %k0, %k08824; AVX512BW-NEXT:    kshiftrq $58, %k5, %k18825; AVX512BW-NEXT:    kshiftlw $15, %k1, %k68826; AVX512BW-NEXT:    kshiftrw $3, %k6, %k78827; AVX512BW-NEXT:    korw %k7, %k0, %k08828; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k7 # 2-byte Reload8829; AVX512BW-NEXT:    kandw %k7, %k0, %k08830; AVX512BW-NEXT:    kshiftrw $2, %k6, %k78831; AVX512BW-NEXT:    korw %k7, %k0, %k08832; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k7 # 2-byte Reload8833; AVX512BW-NEXT:    kandw %k7, %k0, %k08834; AVX512BW-NEXT:    kshiftlw $14, %k1, %k78835; AVX512BW-NEXT:    korw %k7, %k0, %k08836; AVX512BW-NEXT:    kshiftlw $1, %k0, %k08837; AVX512BW-NEXT:    kshiftrw $1, %k0, %k08838; AVX512BW-NEXT:    korw %k6, %k0, %k78839; AVX512BW-NEXT:    vmovdqa32 1344(%rsi), %zmm21 {%k7} {z}8840; AVX512BW-NEXT:    kandw %k2, %k1, %k08841; AVX512BW-NEXT:    kshiftrw $14, %k6, %k18842; AVX512BW-NEXT:    korw %k1, %k0, %k08843; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload8844; AVX512BW-NEXT:    kandw %k1, %k0, %k08845; AVX512BW-NEXT:    kshiftrq $59, %k5, %k18846; AVX512BW-NEXT:    kshiftlw $15, %k1, %k18847; AVX512BW-NEXT:    kshiftrw $13, %k1, %k68848; AVX512BW-NEXT:    korw %k6, %k0, %k08849; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload8850; AVX512BW-NEXT:    kandw %k2, %k0, %k08851; AVX512BW-NEXT:    kshiftrw $12, %k1, %k68852; AVX512BW-NEXT:    korw %k6, %k0, %k08853; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload8854; AVX512BW-NEXT:    kandw %k6, %k0, %k08855; AVX512BW-NEXT:    kshiftrw $11, %k1, %k68856; AVX512BW-NEXT:    korw %k6, %k0, %k08857; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload8858; AVX512BW-NEXT:    kandw %k6, %k0, %k08859; AVX512BW-NEXT:    kshiftrw $10, %k1, %k68860; AVX512BW-NEXT:    korw %k6, %k0, %k08861; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload8862; AVX512BW-NEXT:    kandw %k6, %k0, %k08863; AVX512BW-NEXT:    kshiftrw $9, %k1, %k68864; AVX512BW-NEXT:    korw %k6, %k0, %k08865; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload8866; AVX512BW-NEXT:    kandw %k6, %k0, %k08867; AVX512BW-NEXT:    kshiftrw $8, %k1, %k18868; AVX512BW-NEXT:    korw %k1, %k0, %k08869; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload8870; AVX512BW-NEXT:    kandw %k1, %k0, %k08871; AVX512BW-NEXT:    kshiftrq $60, %k5, %k18872; AVX512BW-NEXT:    kshiftlw $15, %k1, %k18873; AVX512BW-NEXT:    kshiftrw $7, %k1, %k68874; AVX512BW-NEXT:    korw %k6, %k0, %k08875; AVX512BW-NEXT:    kandw %k4, %k0, %k08876; AVX512BW-NEXT:    kshiftrw $6, %k1, %k68877; AVX512BW-NEXT:    korw %k6, %k0, %k08878; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload8879; AVX512BW-NEXT:    kandw %k4, %k0, %k08880; AVX512BW-NEXT:    kshiftrw $5, %k1, %k68881; AVX512BW-NEXT:    korw %k6, %k0, %k08882; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload8883; AVX512BW-NEXT:    kandw %k4, %k0, %k08884; AVX512BW-NEXT:    kshiftrw $4, %k1, %k68885; AVX512BW-NEXT:    korw %k6, %k0, %k08886; AVX512BW-NEXT:    kandw %k3, %k0, %k08887; AVX512BW-NEXT:    kshiftrw $3, %k1, %k68888; AVX512BW-NEXT:    korw %k6, %k0, %k08889; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload8890; AVX512BW-NEXT:    kandw %k3, %k0, %k08891; AVX512BW-NEXT:    kshiftrw $2, %k1, %k18892; AVX512BW-NEXT:    korw %k1, %k0, %k08893; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload8894; AVX512BW-NEXT:    kandw %k1, %k0, %k08895; AVX512BW-NEXT:    kshiftrq $61, %k5, %k18896; AVX512BW-NEXT:    kshiftlw $14, %k1, %k68897; AVX512BW-NEXT:    korw %k6, %k0, %k08898; AVX512BW-NEXT:    kshiftlw $1, %k0, %k08899; AVX512BW-NEXT:    kshiftrw $1, %k0, %k08900; AVX512BW-NEXT:    kshiftlw $15, %k1, %k68901; AVX512BW-NEXT:    korw %k6, %k0, %k78902; AVX512BW-NEXT:    vmovdqa32 1408(%rsi), %zmm22 {%k7} {z}8903; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k0 # 2-byte Reload8904; AVX512BW-NEXT:    kandw %k0, %k1, %k08905; AVX512BW-NEXT:    kshiftrw $14, %k6, %k18906; AVX512BW-NEXT:    korw %k1, %k0, %k08907; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload8908; AVX512BW-NEXT:    kandw %k1, %k0, %k08909; AVX512BW-NEXT:    kshiftrw $13, %k6, %k18910; AVX512BW-NEXT:    korw %k1, %k0, %k08911; AVX512BW-NEXT:    kandw %k2, %k0, %k08912; AVX512BW-NEXT:    kshiftrw $12, %k6, %k18913; AVX512BW-NEXT:    korw %k1, %k0, %k08914; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload8915; AVX512BW-NEXT:    kandw %k1, %k0, %k08916; AVX512BW-NEXT:    kshiftrq $62, %k5, %k18917; AVX512BW-NEXT:    kshiftlw $15, %k1, %k18918; AVX512BW-NEXT:    kshiftrw $11, %k1, %k68919; AVX512BW-NEXT:    korw %k6, %k0, %k08920; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload8921; AVX512BW-NEXT:    kandw %k2, %k0, %k08922; AVX512BW-NEXT:    kshiftrw $10, %k1, %k68923; AVX512BW-NEXT:    korw %k6, %k0, %k08924; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload8925; AVX512BW-NEXT:    kandw %k2, %k0, %k08926; AVX512BW-NEXT:    kshiftrw $9, %k1, %k68927; AVX512BW-NEXT:    korw %k6, %k0, %k08928; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload8929; AVX512BW-NEXT:    kandw %k2, %k0, %k08930; AVX512BW-NEXT:    kshiftrw $8, %k1, %k68931; AVX512BW-NEXT:    korw %k6, %k0, %k08932; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload8933; AVX512BW-NEXT:    kandw %k2, %k0, %k08934; AVX512BW-NEXT:    kshiftrw $7, %k1, %k68935; AVX512BW-NEXT:    korw %k6, %k0, %k08936; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload8937; AVX512BW-NEXT:    kandw %k2, %k0, %k68938; AVX512BW-NEXT:    kshiftrq $63, %k5, %k08939; AVX512BW-NEXT:    kshiftrw $6, %k1, %k18940; AVX512BW-NEXT:    korw %k1, %k6, %k18941; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload8942; AVX512BW-NEXT:    kandw %k2, %k1, %k28943; AVX512BW-NEXT:    kshiftlw $15, %k0, %k18944; AVX512BW-NEXT:    kshiftrw $5, %k1, %k68945; AVX512BW-NEXT:    korw %k6, %k2, %k28946; AVX512BW-NEXT:    kandw %k4, %k2, %k28947; AVX512BW-NEXT:    kshiftrw $4, %k1, %k68948; AVX512BW-NEXT:    korw %k6, %k2, %k28949; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload8950; AVX512BW-NEXT:    kandw %k4, %k2, %k28951; AVX512BW-NEXT:    kshiftrw $3, %k1, %k58952; AVX512BW-NEXT:    korw %k5, %k2, %k28953; AVX512BW-NEXT:    kandw %k3, %k2, %k28954; AVX512BW-NEXT:    kshiftrw $2, %k1, %k48955; AVX512BW-NEXT:    korw %k4, %k2, %k28956; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload8957; AVX512BW-NEXT:    kandw %k3, %k2, %k28958; AVX512BW-NEXT:    kshiftlw $14, %k0, %k08959; AVX512BW-NEXT:    korw %k0, %k2, %k08960; AVX512BW-NEXT:    kshiftlw $1, %k0, %k08961; AVX512BW-NEXT:    kshiftrw $1, %k0, %k08962; AVX512BW-NEXT:    korw %k1, %k0, %k18963; AVX512BW-NEXT:    vmovdqa32 1472(%rsi), %zmm23 {%k1} {z}8964; AVX512BW-NEXT:    vmovdqa64 %zmm23, 1472(%rdx)8965; AVX512BW-NEXT:    vmovdqa64 %zmm22, 1408(%rdx)8966; AVX512BW-NEXT:    vmovdqa64 %zmm21, 1344(%rdx)8967; AVX512BW-NEXT:    vmovdqa64 %zmm20, 1280(%rdx)8968; AVX512BW-NEXT:    vmovdqa64 %zmm19, 1216(%rdx)8969; AVX512BW-NEXT:    vmovdqa64 %zmm18, 1152(%rdx)8970; AVX512BW-NEXT:    vmovdqa64 %zmm17, 1088(%rdx)8971; AVX512BW-NEXT:    vmovdqa64 %zmm16, 1024(%rdx)8972; AVX512BW-NEXT:    vmovdqa64 %zmm15, 960(%rdx)8973; AVX512BW-NEXT:    vmovdqa64 %zmm14, 896(%rdx)8974; AVX512BW-NEXT:    vmovdqa64 %zmm13, 832(%rdx)8975; AVX512BW-NEXT:    vmovdqa64 %zmm12, 768(%rdx)8976; AVX512BW-NEXT:    vmovdqa64 %zmm11, 704(%rdx)8977; AVX512BW-NEXT:    vmovdqa64 %zmm10, 640(%rdx)8978; AVX512BW-NEXT:    vmovdqa64 %zmm9, 576(%rdx)8979; AVX512BW-NEXT:    vmovdqa64 %zmm8, 512(%rdx)8980; AVX512BW-NEXT:    vmovdqa64 %zmm7, 448(%rdx)8981; AVX512BW-NEXT:    vmovdqa64 %zmm6, 384(%rdx)8982; AVX512BW-NEXT:    vmovdqa64 %zmm5, 320(%rdx)8983; AVX512BW-NEXT:    vmovdqa64 %zmm4, 256(%rdx)8984; AVX512BW-NEXT:    vmovdqa64 %zmm3, 192(%rdx)8985; AVX512BW-NEXT:    vmovdqa64 %zmm2, 128(%rdx)8986; AVX512BW-NEXT:    vmovdqa64 %zmm1, 64(%rdx)8987; AVX512BW-NEXT:    vmovdqa64 %zmm0, (%rdx)8988; AVX512BW-NEXT:    vzeroupper8989; AVX512BW-NEXT:    retq8990  %src.mask = load <64 x i1>, ptr %in.maskvec, align 648991  %tgt.mask = shufflevector <64 x i1> %src.mask, <64 x i1> poison, <384 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 4, i32 4, i32 4, i32 4, i32 4, i32 4, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 6, i32 6, i32 6, i32 6, i32 6, i32 6, i32 7, i32 7, i32 7, i32 7, i32 7, i32 7, i32 8, i32 8, i32 8, i32 8, i32 8, i32 8, i32 9, i32 9, i32 9, i32 9, i32 9, i32 9, i32 10, i32 10, i32 10, i32 10, i32 10, i32 10, i32 11, i32 11, i32 11, i32 11, i32 11, i32 11, i32 12, i32 12, i32 12, i32 12, i32 12, i32 12, i32 13, i32 13, i32 13, i32 13, i32 13, i32 13, i32 14, i32 14, i32 14, i32 14, i32 14, i32 14, i32 15, i32 15, i32 15, i32 15, i32 15, i32 15, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 17, i32 17, i32 17, i32 17, i32 17, i32 17, i32 18, i32 18, i32 18, i32 18, i32 18, i32 18, i32 19, i32 19, i32 19, i32 19, i32 19, i32 19, i32 20, i32 20, i32 20, i32 20, i32 20, i32 20, i32 21, i32 21, i32 21, i32 21, i32 21, i32 21, i32 22, i32 22, i32 22, i32 22, i32 22, i32 22, i32 23, i32 23, i32 23, i32 23, i32 23, i32 23, i32 24, i32 24, i32 24, i32 24, i32 24, i32 24, i32 25, i32 25, i32 25, i32 25, i32 25, i32 25, i32 26, i32 26, i32 26, i32 26, i32 26, i32 26, i32 27, i32 27, i32 27, i32 27, i32 27, i32 27, i32 28, i32 28, i32 28, i32 28, i32 28, i32 28, i32 29, i32 29, i32 29, i32 29, i32 29, i32 29, i32 30, i32 30, i32 30, i32 30, i32 30, i32 30, i32 31, i32 31, i32 31, i32 31, i32 31, i32 31, i32 32, i32 32, i32 32, i32 32, i32 32, i32 32, i32 33, i32 33, i32 33, i32 33, i32 33, i32 33, i32 34, i32 34, i32 34, i32 34, i32 34, i32 34, i32 35, i32 35, i32 35, i32 35, i32 35, i32 35, i32 36, i32 36, i32 36, i32 36, i32 36, i32 36, i32 37, i32 37, i32 37, i32 37, i32 37, i32 37, i32 38, i32 38, i32 38, i32 38, i32 38, i32 38, i32 39, i32 39, i32 39, i32 39, i32 39, i32 39, i32 40, i32 40, i32 40, i32 40, i32 40, i32 40, i32 41, i32 41, i32 41, i32 41, i32 41, i32 41, i32 42, i32 42, i32 42, i32 42, i32 42, i32 42, i32 43, i32 43, i32 43, i32 43, i32 43, i32 43, i32 44, i32 44, i32 44, i32 44, i32 44, i32 44, i32 45, i32 45, i32 45, i32 45, i32 45, i32 45, i32 46, i32 46, i32 46, i32 46, i32 46, i32 46, i32 47, i32 47, i32 47, i32 47, i32 47, i32 47, i32 48, i32 48, i32 48, i32 48, i32 48, i32 48, i32 49, i32 49, i32 49, i32 49, i32 49, i32 49, i32 50, i32 50, i32 50, i32 50, i32 50, i32 50, i32 51, i32 51, i32 51, i32 51, i32 51, i32 51, i32 52, i32 52, i32 52, i32 52, i32 52, i32 52, i32 53, i32 53, i32 53, i32 53, i32 53, i32 53, i32 54, i32 54, i32 54, i32 54, i32 54, i32 54, i32 55, i32 55, i32 55, i32 55, i32 55, i32 55, i32 56, i32 56, i32 56, i32 56, i32 56, i32 56, i32 57, i32 57, i32 57, i32 57, i32 57, i32 57, i32 58, i32 58, i32 58, i32 58, i32 58, i32 58, i32 59, i32 59, i32 59, i32 59, i32 59, i32 59, i32 60, i32 60, i32 60, i32 60, i32 60, i32 60, i32 61, i32 61, i32 61, i32 61, i32 61, i32 61, i32 62, i32 62, i32 62, i32 62, i32 62, i32 62, i32 63, i32 63, i32 63, i32 63, i32 63, i32 63>8992  %data = call <384 x i32> @llvm.masked.load.v384i32.p0(ptr %in.vec, i32 64, <384 x i1> %tgt.mask, <384 x i32> poison)8993  store <384 x i32> %data, ptr %out.vec, align 648994  ret void8995}8996 8997define void @mask_replication_factor7_vf2(ptr %in.maskvec, ptr %in.vec, ptr %out.vec) nounwind {8998; AVX512F-ONLY-LABEL: mask_replication_factor7_vf2:8999; AVX512F-ONLY:       # %bb.0:9000; AVX512F-ONLY-NEXT:    kmovw (%rdi), %k19001; AVX512F-ONLY-NEXT:    vpternlogd {{.*#+}} zmm0 {%k1} {z} = -19002; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0]9003; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm1, %zmm09004; AVX512F-ONLY-NEXT:    vpslld $31, %zmm0, %zmm09005; AVX512F-ONLY-NEXT:    movw $16383, %ax # imm = 0x3FFF9006; AVX512F-ONLY-NEXT:    kmovw %eax, %k19007; AVX512F-ONLY-NEXT:    vptestmd %zmm0, %zmm0, %k1 {%k1}9008; AVX512F-ONLY-NEXT:    vmovdqa32 (%rsi), %zmm0 {%k1} {z}9009; AVX512F-ONLY-NEXT:    vextracti32x4 $2, %zmm0, 32(%rdx)9010; AVX512F-ONLY-NEXT:    vextracti32x4 $3, %zmm0, %xmm19011; AVX512F-ONLY-NEXT:    vmovq %xmm1, 48(%rdx)9012; AVX512F-ONLY-NEXT:    vmovdqa %ymm0, (%rdx)9013; AVX512F-ONLY-NEXT:    vzeroupper9014; AVX512F-ONLY-NEXT:    retq9015;9016; AVX512DQ-LABEL: mask_replication_factor7_vf2:9017; AVX512DQ:       # %bb.0:9018; AVX512DQ-NEXT:    kmovw (%rdi), %k09019; AVX512DQ-NEXT:    vpmovm2d %k0, %zmm09020; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0]9021; AVX512DQ-NEXT:    vpermd %zmm0, %zmm1, %zmm09022; AVX512DQ-NEXT:    vpxor %xmm1, %xmm1, %xmm19023; AVX512DQ-NEXT:    movw $16383, %ax # imm = 0x3FFF9024; AVX512DQ-NEXT:    kmovw %eax, %k19025; AVX512DQ-NEXT:    vpcmpgtd %zmm0, %zmm1, %k1 {%k1}9026; AVX512DQ-NEXT:    vmovdqa32 (%rsi), %zmm0 {%k1} {z}9027; AVX512DQ-NEXT:    vextracti32x4 $2, %zmm0, 32(%rdx)9028; AVX512DQ-NEXT:    vextracti32x4 $3, %zmm0, %xmm19029; AVX512DQ-NEXT:    vmovq %xmm1, 48(%rdx)9030; AVX512DQ-NEXT:    vmovdqa %ymm0, (%rdx)9031; AVX512DQ-NEXT:    vzeroupper9032; AVX512DQ-NEXT:    retq9033;9034; AVX512BW-LABEL: mask_replication_factor7_vf2:9035; AVX512BW:       # %bb.0:9036; AVX512BW-NEXT:    kmovw (%rdi), %k19037; AVX512BW-NEXT:    vpternlogd {{.*#+}} zmm0 {%k1} {z} = -19038; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0]9039; AVX512BW-NEXT:    vpermd %zmm0, %zmm1, %zmm09040; AVX512BW-NEXT:    vpslld $31, %zmm0, %zmm09041; AVX512BW-NEXT:    movw $16383, %ax # imm = 0x3FFF9042; AVX512BW-NEXT:    kmovd %eax, %k19043; AVX512BW-NEXT:    vptestmd %zmm0, %zmm0, %k1 {%k1}9044; AVX512BW-NEXT:    vmovdqa32 (%rsi), %zmm0 {%k1} {z}9045; AVX512BW-NEXT:    vextracti32x4 $2, %zmm0, 32(%rdx)9046; AVX512BW-NEXT:    vmovdqa %ymm0, (%rdx)9047; AVX512BW-NEXT:    vextracti32x4 $3, %zmm0, %xmm09048; AVX512BW-NEXT:    vmovq %xmm0, 48(%rdx)9049; AVX512BW-NEXT:    vzeroupper9050; AVX512BW-NEXT:    retq9051  %src.mask.padded = load <64 x i1>, ptr %in.maskvec, align 649052  %src.mask = shufflevector <64 x i1> %src.mask.padded, <64 x i1> poison, <2 x i32> <i32 0, i32 1>9053  %tgt.mask = shufflevector <2 x i1> %src.mask, <2 x i1> poison, <14 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1>9054  %data = call <14 x i32> @llvm.masked.load.v14i32.p0(ptr %in.vec, i32 64, <14 x i1> %tgt.mask, <14 x i32> poison)9055  %data.padded = shufflevector <14 x i32> %data, <14 x i32> poison, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 undef, i32 undef>9056  store <14 x i32> %data, ptr %out.vec, align 649057  ret void9058}9059 9060define void @mask_replication_factor7_vf4(ptr %in.maskvec, ptr %in.vec, ptr %out.vec) nounwind {9061; AVX512F-ONLY-LABEL: mask_replication_factor7_vf4:9062; AVX512F-ONLY:       # %bb.0:9063; AVX512F-ONLY-NEXT:    kmovw (%rdi), %k19064; AVX512F-ONLY-NEXT:    vpternlogd {{.*#+}} zmm0 {%k1} {z} = -19065; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [2,2,2,2,2,3,3,3,3,3,3,3,0,0,0,0]9066; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm1, %zmm19067; AVX512F-ONLY-NEXT:    vpslld $31, %zmm1, %zmm19068; AVX512F-ONLY-NEXT:    movw $4095, %ax # imm = 0xFFF9069; AVX512F-ONLY-NEXT:    kmovw %eax, %k19070; AVX512F-ONLY-NEXT:    vptestmd %zmm1, %zmm1, %k1 {%k1}9071; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,0,0,0,1,1,1,1,1,1,1,2,2]9072; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm1, %zmm09073; AVX512F-ONLY-NEXT:    vptestmd %zmm0, %zmm0, %k29074; AVX512F-ONLY-NEXT:    vmovdqa32 64(%rsi), %zmm0 {%k1} {z}9075; AVX512F-ONLY-NEXT:    vmovdqa32 (%rsi), %zmm1 {%k2} {z}9076; AVX512F-ONLY-NEXT:    vextracti32x4 $2, %zmm0, 96(%rdx)9077; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm1, (%rdx)9078; AVX512F-ONLY-NEXT:    vmovdqa %ymm0, 64(%rdx)9079; AVX512F-ONLY-NEXT:    vzeroupper9080; AVX512F-ONLY-NEXT:    retq9081;9082; AVX512DQ-LABEL: mask_replication_factor7_vf4:9083; AVX512DQ:       # %bb.0:9084; AVX512DQ-NEXT:    kmovw (%rdi), %k09085; AVX512DQ-NEXT:    vpmovm2d %k0, %zmm09086; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [2,2,2,2,2,3,3,3,3,3,3,3,0,0,0,0]9087; AVX512DQ-NEXT:    vpermd %zmm0, %zmm1, %zmm19088; AVX512DQ-NEXT:    vpxor %xmm2, %xmm2, %xmm29089; AVX512DQ-NEXT:    movw $4095, %ax # imm = 0xFFF9090; AVX512DQ-NEXT:    kmovw %eax, %k19091; AVX512DQ-NEXT:    vpcmpgtd %zmm1, %zmm2, %k1 {%k1}9092; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,0,0,0,1,1,1,1,1,1,1,2,2]9093; AVX512DQ-NEXT:    vpermd %zmm0, %zmm1, %zmm09094; AVX512DQ-NEXT:    vpmovd2m %zmm0, %k29095; AVX512DQ-NEXT:    vmovdqa32 64(%rsi), %zmm0 {%k1} {z}9096; AVX512DQ-NEXT:    vmovdqa32 (%rsi), %zmm1 {%k2} {z}9097; AVX512DQ-NEXT:    vextracti32x4 $2, %zmm0, 96(%rdx)9098; AVX512DQ-NEXT:    vmovdqa64 %zmm1, (%rdx)9099; AVX512DQ-NEXT:    vmovdqa %ymm0, 64(%rdx)9100; AVX512DQ-NEXT:    vzeroupper9101; AVX512DQ-NEXT:    retq9102;9103; AVX512BW-LABEL: mask_replication_factor7_vf4:9104; AVX512BW:       # %bb.0:9105; AVX512BW-NEXT:    kmovd (%rdi), %k09106; AVX512BW-NEXT:    vpmovm2w %k0, %zmm09107; AVX512BW-NEXT:    vpmovsxbw {{.*#+}} zmm1 = [0,0,0,0,0,0,0,1,1,1,1,1,1,1,2,2,2,2,2,2,2,3,3,3,3,3,3,3,0,0,0,0]9108; AVX512BW-NEXT:    vpermw %zmm0, %zmm1, %zmm09109; AVX512BW-NEXT:    vpxor %xmm1, %xmm1, %xmm19110; AVX512BW-NEXT:    movl $268435455, %eax # imm = 0xFFFFFFF9111; AVX512BW-NEXT:    kmovd %eax, %k19112; AVX512BW-NEXT:    vpcmpgtw %zmm0, %zmm1, %k1 {%k1}9113; AVX512BW-NEXT:    vmovdqa32 (%rsi), %zmm0 {%k1} {z}9114; AVX512BW-NEXT:    kshiftrd $16, %k1, %k19115; AVX512BW-NEXT:    vmovdqa32 64(%rsi), %zmm1 {%k1} {z}9116; AVX512BW-NEXT:    vextracti32x4 $2, %zmm1, 96(%rdx)9117; AVX512BW-NEXT:    vmovdqa64 %zmm0, (%rdx)9118; AVX512BW-NEXT:    vmovdqa %ymm1, 64(%rdx)9119; AVX512BW-NEXT:    vzeroupper9120; AVX512BW-NEXT:    retq9121  %src.mask.padded = load <64 x i1>, ptr %in.maskvec, align 649122  %src.mask = shufflevector <64 x i1> %src.mask.padded, <64 x i1> poison, <4 x i32> <i32 0, i32 1, i32 2, i32 3>9123  %tgt.mask = shufflevector <4 x i1> %src.mask, <4 x i1> poison, <28 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3>9124  %data = call <28 x i32> @llvm.masked.load.v28i32.p0(ptr %in.vec, i32 64, <28 x i1> %tgt.mask, <28 x i32> poison)9125  %data.padded = shufflevector <28 x i32> %data, <28 x i32> poison, <32 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 undef, i32 undef, i32 undef, i32 undef>9126  store <28 x i32> %data, ptr %out.vec, align 649127  ret void9128}9129 9130define void @mask_replication_factor7_vf8(ptr %in.maskvec, ptr %in.vec, ptr %out.vec) nounwind {9131; AVX512F-SLOW-LABEL: mask_replication_factor7_vf8:9132; AVX512F-SLOW:       # %bb.0:9133; AVX512F-SLOW-NEXT:    kmovw (%rdi), %k19134; AVX512F-SLOW-NEXT:    vpternlogd {{.*#+}} zmm0 {%k1} {z} = -19135; AVX512F-SLOW-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,0,0,0,1,1,1,1,1,1,1,2,2]9136; AVX512F-SLOW-NEXT:    vpermd %zmm0, %zmm1, %zmm19137; AVX512F-SLOW-NEXT:    vptestmd %zmm1, %zmm1, %k29138; AVX512F-SLOW-NEXT:    vpternlogd {{.*#+}} zmm1 {%k2} {z} = -19139; AVX512F-SLOW-NEXT:    movw $1, %ax9140; AVX512F-SLOW-NEXT:    kmovw %eax, %k29141; AVX512F-SLOW-NEXT:    vmovdqa32 %zmm0, %zmm1 {%k2}9142; AVX512F-SLOW-NEXT:    vptestmd %zmm1, %zmm1, %k29143; AVX512F-SLOW-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [2,2,2,2,2,3,3,3,3,3,3,3,4,4,4,4]9144; AVX512F-SLOW-NEXT:    vpermd %zmm0, %zmm1, %zmm19145; AVX512F-SLOW-NEXT:    vptestmd %zmm1, %zmm1, %k39146; AVX512F-SLOW-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [4,4,4,5,5,5,5,5,5,5,6,6,6,6,6,6]9147; AVX512F-SLOW-NEXT:    vpermd %zmm0, %zmm1, %zmm09148; AVX512F-SLOW-NEXT:    vptestmd %zmm0, %zmm0, %k49149; AVX512F-SLOW-NEXT:    vpcmpeqd %ymm0, %ymm0, %ymm09150; AVX512F-SLOW-NEXT:    vmovdqa32 %ymm0, %ymm0 {%k1} {z}9151; AVX512F-SLOW-NEXT:    vpshufd {{.*#+}} ymm0 = ymm0[2,3,3,3,6,7,7,7]9152; AVX512F-SLOW-NEXT:    vpermq {{.*#+}} ymm0 = ymm0[2,3,3,3]9153; AVX512F-SLOW-NEXT:    vptestmd %ymm0, %ymm0, %k19154; AVX512F-SLOW-NEXT:    vmovdqa32 (%rsi), %zmm0 {%k2} {z}9155; AVX512F-SLOW-NEXT:    vmovdqa32 192(%rsi), %zmm1 {%k1} {z}9156; AVX512F-SLOW-NEXT:    vmovdqa32 128(%rsi), %zmm2 {%k4} {z}9157; AVX512F-SLOW-NEXT:    vmovdqa32 64(%rsi), %zmm3 {%k3} {z}9158; AVX512F-SLOW-NEXT:    vmovdqa64 %zmm3, 64(%rdx)9159; AVX512F-SLOW-NEXT:    vmovdqa64 %zmm2, 128(%rdx)9160; AVX512F-SLOW-NEXT:    vmovdqa64 %zmm0, (%rdx)9161; AVX512F-SLOW-NEXT:    vmovdqa %ymm1, 192(%rdx)9162; AVX512F-SLOW-NEXT:    vzeroupper9163; AVX512F-SLOW-NEXT:    retq9164;9165; AVX512F-FAST-LABEL: mask_replication_factor7_vf8:9166; AVX512F-FAST:       # %bb.0:9167; AVX512F-FAST-NEXT:    kmovw (%rdi), %k19168; AVX512F-FAST-NEXT:    vpternlogd {{.*#+}} zmm0 {%k1} {z} = -19169; AVX512F-FAST-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,0,0,0,1,1,1,1,1,1,1,2,2]9170; AVX512F-FAST-NEXT:    vpermd %zmm0, %zmm1, %zmm19171; AVX512F-FAST-NEXT:    vptestmd %zmm1, %zmm1, %k29172; AVX512F-FAST-NEXT:    vpternlogd {{.*#+}} zmm1 {%k2} {z} = -19173; AVX512F-FAST-NEXT:    movw $1, %ax9174; AVX512F-FAST-NEXT:    kmovw %eax, %k29175; AVX512F-FAST-NEXT:    vmovdqa32 %zmm0, %zmm1 {%k2}9176; AVX512F-FAST-NEXT:    vptestmd %zmm1, %zmm1, %k29177; AVX512F-FAST-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [2,2,2,2,2,3,3,3,3,3,3,3,4,4,4,4]9178; AVX512F-FAST-NEXT:    vpermd %zmm0, %zmm1, %zmm19179; AVX512F-FAST-NEXT:    vptestmd %zmm1, %zmm1, %k39180; AVX512F-FAST-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [4,4,4,5,5,5,5,5,5,5,6,6,6,6,6,6]9181; AVX512F-FAST-NEXT:    vpermd %zmm0, %zmm1, %zmm09182; AVX512F-FAST-NEXT:    vptestmd %zmm0, %zmm0, %k49183; AVX512F-FAST-NEXT:    vpcmpeqd %ymm0, %ymm0, %ymm09184; AVX512F-FAST-NEXT:    vmovdqa32 %ymm0, %ymm0 {%k1} {z}9185; AVX512F-FAST-NEXT:    vpmovsxbd {{.*#+}} ymm1 = [6,7,7,7,7,7,7,7]9186; AVX512F-FAST-NEXT:    vpermd %ymm0, %ymm1, %ymm09187; AVX512F-FAST-NEXT:    vptestmd %ymm0, %ymm0, %k19188; AVX512F-FAST-NEXT:    vmovdqa32 (%rsi), %zmm0 {%k2} {z}9189; AVX512F-FAST-NEXT:    vmovdqa32 192(%rsi), %zmm1 {%k1} {z}9190; AVX512F-FAST-NEXT:    vmovdqa32 128(%rsi), %zmm2 {%k4} {z}9191; AVX512F-FAST-NEXT:    vmovdqa32 64(%rsi), %zmm3 {%k3} {z}9192; AVX512F-FAST-NEXT:    vmovdqa64 %zmm3, 64(%rdx)9193; AVX512F-FAST-NEXT:    vmovdqa64 %zmm2, 128(%rdx)9194; AVX512F-FAST-NEXT:    vmovdqa %ymm1, 192(%rdx)9195; AVX512F-FAST-NEXT:    vmovdqa64 %zmm0, (%rdx)9196; AVX512F-FAST-NEXT:    vzeroupper9197; AVX512F-FAST-NEXT:    retq9198;9199; AVX512DQ-SLOW-LABEL: mask_replication_factor7_vf8:9200; AVX512DQ-SLOW:       # %bb.0:9201; AVX512DQ-SLOW-NEXT:    kmovb (%rdi), %k09202; AVX512DQ-SLOW-NEXT:    vpmovm2d %k0, %zmm09203; AVX512DQ-SLOW-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,0,0,0,1,1,1,1,1,1,1,2,2]9204; AVX512DQ-SLOW-NEXT:    vpermd %zmm0, %zmm1, %zmm19205; AVX512DQ-SLOW-NEXT:    vpmovd2m %zmm1, %k19206; AVX512DQ-SLOW-NEXT:    vpmovm2d %k1, %zmm19207; AVX512DQ-SLOW-NEXT:    movw $1, %ax9208; AVX512DQ-SLOW-NEXT:    kmovw %eax, %k19209; AVX512DQ-SLOW-NEXT:    vmovdqa32 %zmm0, %zmm1 {%k1}9210; AVX512DQ-SLOW-NEXT:    vpmovd2m %zmm1, %k19211; AVX512DQ-SLOW-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [2,2,2,2,2,3,3,3,3,3,3,3,4,4,4,4]9212; AVX512DQ-SLOW-NEXT:    vpermd %zmm0, %zmm1, %zmm19213; AVX512DQ-SLOW-NEXT:    vpmovd2m %zmm1, %k29214; AVX512DQ-SLOW-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [4,4,4,5,5,5,5,5,5,5,6,6,6,6,6,6]9215; AVX512DQ-SLOW-NEXT:    vpermd %zmm0, %zmm1, %zmm09216; AVX512DQ-SLOW-NEXT:    vpmovd2m %zmm0, %k39217; AVX512DQ-SLOW-NEXT:    vpmovm2d %k0, %ymm09218; AVX512DQ-SLOW-NEXT:    vpshufd {{.*#+}} ymm0 = ymm0[2,3,3,3,6,7,7,7]9219; AVX512DQ-SLOW-NEXT:    vpermq {{.*#+}} ymm0 = ymm0[2,3,3,3]9220; AVX512DQ-SLOW-NEXT:    vpmovd2m %ymm0, %k49221; AVX512DQ-SLOW-NEXT:    vmovdqa32 (%rsi), %zmm0 {%k1} {z}9222; AVX512DQ-SLOW-NEXT:    vmovdqa32 192(%rsi), %zmm1 {%k4} {z}9223; AVX512DQ-SLOW-NEXT:    vmovdqa32 128(%rsi), %zmm2 {%k3} {z}9224; AVX512DQ-SLOW-NEXT:    vmovdqa32 64(%rsi), %zmm3 {%k2} {z}9225; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm3, 64(%rdx)9226; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm2, 128(%rdx)9227; AVX512DQ-SLOW-NEXT:    vmovdqa %ymm1, 192(%rdx)9228; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm0, (%rdx)9229; AVX512DQ-SLOW-NEXT:    vzeroupper9230; AVX512DQ-SLOW-NEXT:    retq9231;9232; AVX512DQ-FAST-LABEL: mask_replication_factor7_vf8:9233; AVX512DQ-FAST:       # %bb.0:9234; AVX512DQ-FAST-NEXT:    kmovb (%rdi), %k09235; AVX512DQ-FAST-NEXT:    vpmovm2d %k0, %zmm09236; AVX512DQ-FAST-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,0,0,0,1,1,1,1,1,1,1,2,2]9237; AVX512DQ-FAST-NEXT:    vpermd %zmm0, %zmm1, %zmm19238; AVX512DQ-FAST-NEXT:    vpmovd2m %zmm1, %k19239; AVX512DQ-FAST-NEXT:    vpmovm2d %k1, %zmm19240; AVX512DQ-FAST-NEXT:    movw $1, %ax9241; AVX512DQ-FAST-NEXT:    kmovw %eax, %k19242; AVX512DQ-FAST-NEXT:    vmovdqa32 %zmm0, %zmm1 {%k1}9243; AVX512DQ-FAST-NEXT:    vpmovd2m %zmm1, %k19244; AVX512DQ-FAST-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [2,2,2,2,2,3,3,3,3,3,3,3,4,4,4,4]9245; AVX512DQ-FAST-NEXT:    vpermd %zmm0, %zmm1, %zmm19246; AVX512DQ-FAST-NEXT:    vpmovd2m %zmm1, %k29247; AVX512DQ-FAST-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [4,4,4,5,5,5,5,5,5,5,6,6,6,6,6,6]9248; AVX512DQ-FAST-NEXT:    vpermd %zmm0, %zmm1, %zmm09249; AVX512DQ-FAST-NEXT:    vpmovd2m %zmm0, %k39250; AVX512DQ-FAST-NEXT:    vpmovm2d %k0, %ymm09251; AVX512DQ-FAST-NEXT:    vpmovsxbd {{.*#+}} ymm1 = [6,7,7,7,7,7,7,7]9252; AVX512DQ-FAST-NEXT:    vpermd %ymm0, %ymm1, %ymm09253; AVX512DQ-FAST-NEXT:    vpmovd2m %ymm0, %k49254; AVX512DQ-FAST-NEXT:    vmovdqa32 (%rsi), %zmm0 {%k1} {z}9255; AVX512DQ-FAST-NEXT:    vmovdqa32 192(%rsi), %zmm1 {%k4} {z}9256; AVX512DQ-FAST-NEXT:    vmovdqa32 128(%rsi), %zmm2 {%k3} {z}9257; AVX512DQ-FAST-NEXT:    vmovdqa32 64(%rsi), %zmm3 {%k2} {z}9258; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm3, 64(%rdx)9259; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm2, 128(%rdx)9260; AVX512DQ-FAST-NEXT:    vmovdqa %ymm1, 192(%rdx)9261; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm0, (%rdx)9262; AVX512DQ-FAST-NEXT:    vzeroupper9263; AVX512DQ-FAST-NEXT:    retq9264;9265; AVX512BW-ONLY-LABEL: mask_replication_factor7_vf8:9266; AVX512BW-ONLY:       # %bb.0:9267; AVX512BW-ONLY-NEXT:    kmovw (%rdi), %k09268; AVX512BW-ONLY-NEXT:    vpmovm2b %k0, %zmm09269; AVX512BW-ONLY-NEXT:    vpbroadcastq %xmm0, %zmm09270; AVX512BW-ONLY-NEXT:    vpshufb {{.*#+}} zmm0 = zmm0[0,0,0,0,0,0,0,1,1,1,1,1,1,1,2,2,18,18,18,18,18,19,19,19,19,19,19,19,20,20,20,20,36,36,36,37,37,37,37,37,37,37,38,38,38,38,38,38,54,55,55,55,55,55,55,55,u,u,u,u,u,u,u,u]9271; AVX512BW-ONLY-NEXT:    vpxor %xmm1, %xmm1, %xmm19272; AVX512BW-ONLY-NEXT:    movabsq $72057594037927935, %rax # imm = 0xFFFFFFFFFFFFFF9273; AVX512BW-ONLY-NEXT:    kmovq %rax, %k19274; AVX512BW-ONLY-NEXT:    vpcmpgtb %zmm0, %zmm1, %k1 {%k1}9275; AVX512BW-ONLY-NEXT:    kshiftrq $48, %k1, %k29276; AVX512BW-ONLY-NEXT:    vmovdqa32 192(%rsi), %zmm0 {%k2} {z}9277; AVX512BW-ONLY-NEXT:    vmovdqa32 (%rsi), %zmm1 {%k1} {z}9278; AVX512BW-ONLY-NEXT:    kshiftrq $32, %k1, %k29279; AVX512BW-ONLY-NEXT:    vmovdqa32 128(%rsi), %zmm2 {%k2} {z}9280; AVX512BW-ONLY-NEXT:    kshiftrq $16, %k1, %k19281; AVX512BW-ONLY-NEXT:    vmovdqa32 64(%rsi), %zmm3 {%k1} {z}9282; AVX512BW-ONLY-NEXT:    vmovdqa64 %zmm3, 64(%rdx)9283; AVX512BW-ONLY-NEXT:    vmovdqa64 %zmm2, 128(%rdx)9284; AVX512BW-ONLY-NEXT:    vmovdqa64 %zmm1, (%rdx)9285; AVX512BW-ONLY-NEXT:    vmovdqa %ymm0, 192(%rdx)9286; AVX512BW-ONLY-NEXT:    vzeroupper9287; AVX512BW-ONLY-NEXT:    retq9288;9289; AVX512VBMI-ONLY-LABEL: mask_replication_factor7_vf8:9290; AVX512VBMI-ONLY:       # %bb.0:9291; AVX512VBMI-ONLY-NEXT:    kmovw (%rdi), %k09292; AVX512VBMI-ONLY-NEXT:    vpmovm2b %k0, %zmm09293; AVX512VBMI-ONLY-NEXT:    vmovdqa64 {{.*#+}} zmm1 = [0,0,0,0,0,0,0,1,1,1,1,1,1,1,2,2,2,2,2,2,2,3,3,3,3,3,3,3,4,4,4,4,4,4,4,5,5,5,5,5,5,5,6,6,6,6,6,6,6,7,7,7,7,7,7,7,u,u,u,u,u,u,u,u]9294; AVX512VBMI-ONLY-NEXT:    vpermb %zmm0, %zmm1, %zmm09295; AVX512VBMI-ONLY-NEXT:    vpxor %xmm1, %xmm1, %xmm19296; AVX512VBMI-ONLY-NEXT:    movabsq $72057594037927935, %rax # imm = 0xFFFFFFFFFFFFFF9297; AVX512VBMI-ONLY-NEXT:    kmovq %rax, %k19298; AVX512VBMI-ONLY-NEXT:    vpcmpgtb %zmm0, %zmm1, %k1 {%k1}9299; AVX512VBMI-ONLY-NEXT:    kshiftrq $48, %k1, %k29300; AVX512VBMI-ONLY-NEXT:    vmovdqa32 192(%rsi), %zmm0 {%k2} {z}9301; AVX512VBMI-ONLY-NEXT:    vmovdqa32 (%rsi), %zmm1 {%k1} {z}9302; AVX512VBMI-ONLY-NEXT:    kshiftrq $32, %k1, %k29303; AVX512VBMI-ONLY-NEXT:    vmovdqa32 128(%rsi), %zmm2 {%k2} {z}9304; AVX512VBMI-ONLY-NEXT:    kshiftrq $16, %k1, %k19305; AVX512VBMI-ONLY-NEXT:    vmovdqa32 64(%rsi), %zmm3 {%k1} {z}9306; AVX512VBMI-ONLY-NEXT:    vmovdqa64 %zmm3, 64(%rdx)9307; AVX512VBMI-ONLY-NEXT:    vmovdqa64 %zmm2, 128(%rdx)9308; AVX512VBMI-ONLY-NEXT:    vmovdqa64 %zmm1, (%rdx)9309; AVX512VBMI-ONLY-NEXT:    vmovdqa %ymm0, 192(%rdx)9310; AVX512VBMI-ONLY-NEXT:    vzeroupper9311; AVX512VBMI-ONLY-NEXT:    retq9312  %src.mask.padded = load <64 x i1>, ptr %in.maskvec, align 649313  %src.mask = shufflevector <64 x i1> %src.mask.padded, <64 x i1> poison, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>9314  %tgt.mask = shufflevector <8 x i1> %src.mask, <8 x i1> poison, <56 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 4, i32 4, i32 4, i32 4, i32 4, i32 4, i32 4, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 6, i32 6, i32 6, i32 6, i32 6, i32 6, i32 6, i32 7, i32 7, i32 7, i32 7, i32 7, i32 7, i32 7>9315  %data = call <56 x i32> @llvm.masked.load.v56i32.p0(ptr %in.vec, i32 64, <56 x i1> %tgt.mask, <56 x i32> poison)9316  %data.padded = shufflevector <56 x i32> %data, <56 x i32> poison, <64 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>9317  store <56 x i32> %data, ptr %out.vec, align 649318  ret void9319}9320 9321define void @mask_replication_factor7_vf16(ptr %in.maskvec, ptr %in.vec, ptr %out.vec) nounwind {9322; AVX512F-ONLY-LABEL: mask_replication_factor7_vf16:9323; AVX512F-ONLY:       # %bb.0:9324; AVX512F-ONLY-NEXT:    kmovw (%rdi), %k19325; AVX512F-ONLY-NEXT:    vpternlogd {{.*#+}} zmm0 {%k1} {z} = -19326; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,0,0,0,1,1,1,1,1,1,1,2,2]9327; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm1, %zmm19328; AVX512F-ONLY-NEXT:    vptestmd %zmm1, %zmm1, %k19329; AVX512F-ONLY-NEXT:    vpternlogd {{.*#+}} zmm1 {%k1} {z} = -19330; AVX512F-ONLY-NEXT:    movw $1, %ax9331; AVX512F-ONLY-NEXT:    kmovw %eax, %k19332; AVX512F-ONLY-NEXT:    vmovdqa32 %zmm0, %zmm1 {%k1}9333; AVX512F-ONLY-NEXT:    vptestmd %zmm1, %zmm1, %k29334; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [2,2,2,2,2,3,3,3,3,3,3,3,4,4,4,4]9335; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm1, %zmm19336; AVX512F-ONLY-NEXT:    vptestmd %zmm1, %zmm1, %k19337; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [4,4,4,5,5,5,5,5,5,5,6,6,6,6,6,6]9338; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm1, %zmm19339; AVX512F-ONLY-NEXT:    vptestmd %zmm1, %zmm1, %k39340; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [6,7,7,7,7,7,7,7,8,8,8,8,8,8,8,9]9341; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm1, %zmm19342; AVX512F-ONLY-NEXT:    vptestmd %zmm1, %zmm1, %k49343; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [9,9,9,9,9,9,10,10,10,10,10,10,10,11,11,11]9344; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm1, %zmm19345; AVX512F-ONLY-NEXT:    vptestmd %zmm1, %zmm1, %k59346; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [11,11,11,11,12,12,12,12,12,12,12,13,13,13,13,13]9347; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm1, %zmm19348; AVX512F-ONLY-NEXT:    vptestmd %zmm1, %zmm1, %k69349; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [13,13,14,14,14,14,14,14,14,15,15,15,15,15,15,15]9350; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm1, %zmm09351; AVX512F-ONLY-NEXT:    vptestmd %zmm0, %zmm0, %k79352; AVX512F-ONLY-NEXT:    vmovdqa32 (%rsi), %zmm0 {%k2} {z}9353; AVX512F-ONLY-NEXT:    vmovdqa32 384(%rsi), %zmm1 {%k7} {z}9354; AVX512F-ONLY-NEXT:    vmovdqa32 320(%rsi), %zmm2 {%k6} {z}9355; AVX512F-ONLY-NEXT:    vmovdqa32 256(%rsi), %zmm3 {%k5} {z}9356; AVX512F-ONLY-NEXT:    vmovdqa32 192(%rsi), %zmm4 {%k4} {z}9357; AVX512F-ONLY-NEXT:    vmovdqa32 128(%rsi), %zmm5 {%k3} {z}9358; AVX512F-ONLY-NEXT:    vmovdqa32 64(%rsi), %zmm6 {%k1} {z}9359; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm6, 64(%rdx)9360; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm5, 128(%rdx)9361; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm4, 192(%rdx)9362; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm3, 256(%rdx)9363; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm2, 320(%rdx)9364; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm1, 384(%rdx)9365; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm0, (%rdx)9366; AVX512F-ONLY-NEXT:    vzeroupper9367; AVX512F-ONLY-NEXT:    retq9368;9369; AVX512DQ-LABEL: mask_replication_factor7_vf16:9370; AVX512DQ:       # %bb.0:9371; AVX512DQ-NEXT:    kmovw (%rdi), %k09372; AVX512DQ-NEXT:    vpmovm2d %k0, %zmm09373; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,0,0,0,1,1,1,1,1,1,1,2,2]9374; AVX512DQ-NEXT:    vpermd %zmm0, %zmm1, %zmm19375; AVX512DQ-NEXT:    vpmovd2m %zmm1, %k09376; AVX512DQ-NEXT:    vpmovm2d %k0, %zmm19377; AVX512DQ-NEXT:    movw $1, %ax9378; AVX512DQ-NEXT:    kmovw %eax, %k19379; AVX512DQ-NEXT:    vmovdqa32 %zmm0, %zmm1 {%k1}9380; AVX512DQ-NEXT:    vpmovd2m %zmm1, %k29381; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [2,2,2,2,2,3,3,3,3,3,3,3,4,4,4,4]9382; AVX512DQ-NEXT:    vpermd %zmm0, %zmm1, %zmm19383; AVX512DQ-NEXT:    vpmovd2m %zmm1, %k19384; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [4,4,4,5,5,5,5,5,5,5,6,6,6,6,6,6]9385; AVX512DQ-NEXT:    vpermd %zmm0, %zmm1, %zmm19386; AVX512DQ-NEXT:    vpmovd2m %zmm1, %k39387; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [6,7,7,7,7,7,7,7,8,8,8,8,8,8,8,9]9388; AVX512DQ-NEXT:    vpermd %zmm0, %zmm1, %zmm19389; AVX512DQ-NEXT:    vpmovd2m %zmm1, %k49390; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [9,9,9,9,9,9,10,10,10,10,10,10,10,11,11,11]9391; AVX512DQ-NEXT:    vpermd %zmm0, %zmm1, %zmm19392; AVX512DQ-NEXT:    vpmovd2m %zmm1, %k59393; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [11,11,11,11,12,12,12,12,12,12,12,13,13,13,13,13]9394; AVX512DQ-NEXT:    vpermd %zmm0, %zmm1, %zmm19395; AVX512DQ-NEXT:    vpmovd2m %zmm1, %k69396; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [13,13,14,14,14,14,14,14,14,15,15,15,15,15,15,15]9397; AVX512DQ-NEXT:    vpermd %zmm0, %zmm1, %zmm09398; AVX512DQ-NEXT:    vpmovd2m %zmm0, %k79399; AVX512DQ-NEXT:    vmovdqa32 (%rsi), %zmm0 {%k2} {z}9400; AVX512DQ-NEXT:    vmovdqa32 384(%rsi), %zmm1 {%k7} {z}9401; AVX512DQ-NEXT:    vmovdqa32 320(%rsi), %zmm2 {%k6} {z}9402; AVX512DQ-NEXT:    vmovdqa32 256(%rsi), %zmm3 {%k5} {z}9403; AVX512DQ-NEXT:    vmovdqa32 192(%rsi), %zmm4 {%k4} {z}9404; AVX512DQ-NEXT:    vmovdqa32 128(%rsi), %zmm5 {%k3} {z}9405; AVX512DQ-NEXT:    vmovdqa32 64(%rsi), %zmm6 {%k1} {z}9406; AVX512DQ-NEXT:    vmovdqa64 %zmm6, 64(%rdx)9407; AVX512DQ-NEXT:    vmovdqa64 %zmm5, 128(%rdx)9408; AVX512DQ-NEXT:    vmovdqa64 %zmm4, 192(%rdx)9409; AVX512DQ-NEXT:    vmovdqa64 %zmm3, 256(%rdx)9410; AVX512DQ-NEXT:    vmovdqa64 %zmm2, 320(%rdx)9411; AVX512DQ-NEXT:    vmovdqa64 %zmm1, 384(%rdx)9412; AVX512DQ-NEXT:    vmovdqa64 %zmm0, (%rdx)9413; AVX512DQ-NEXT:    vzeroupper9414; AVX512DQ-NEXT:    retq9415;9416; AVX512BW-LABEL: mask_replication_factor7_vf16:9417; AVX512BW:       # %bb.0:9418; AVX512BW-NEXT:    kmovw (%rdi), %k19419; AVX512BW-NEXT:    vpternlogd {{.*#+}} zmm0 {%k1} {z} = -19420; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,0,0,0,1,1,1,1,1,1,1,2,2]9421; AVX512BW-NEXT:    vpermd %zmm0, %zmm1, %zmm19422; AVX512BW-NEXT:    vptestmd %zmm1, %zmm1, %k19423; AVX512BW-NEXT:    vmovdqa32 (%rsi), %zmm1 {%k1} {z}9424; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm2 = [13,13,14,14,14,14,14,14,14,15,15,15,15,15,15,15]9425; AVX512BW-NEXT:    vpermd %zmm0, %zmm2, %zmm29426; AVX512BW-NEXT:    vptestmd %zmm2, %zmm2, %k19427; AVX512BW-NEXT:    vmovdqa32 384(%rsi), %zmm2 {%k1} {z}9428; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm3 = [11,11,11,11,12,12,12,12,12,12,12,13,13,13,13,13]9429; AVX512BW-NEXT:    vpermd %zmm0, %zmm3, %zmm39430; AVX512BW-NEXT:    vptestmd %zmm3, %zmm3, %k19431; AVX512BW-NEXT:    vmovdqa32 320(%rsi), %zmm3 {%k1} {z}9432; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm4 = [9,9,9,9,9,9,10,10,10,10,10,10,10,11,11,11]9433; AVX512BW-NEXT:    vpermd %zmm0, %zmm4, %zmm49434; AVX512BW-NEXT:    vptestmd %zmm4, %zmm4, %k19435; AVX512BW-NEXT:    vmovdqa32 256(%rsi), %zmm4 {%k1} {z}9436; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm5 = [6,7,7,7,7,7,7,7,8,8,8,8,8,8,8,9]9437; AVX512BW-NEXT:    vpermd %zmm0, %zmm5, %zmm59438; AVX512BW-NEXT:    vptestmd %zmm5, %zmm5, %k19439; AVX512BW-NEXT:    vmovdqa32 192(%rsi), %zmm5 {%k1} {z}9440; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm6 = [4,4,4,5,5,5,5,5,5,5,6,6,6,6,6,6]9441; AVX512BW-NEXT:    vpermd %zmm0, %zmm6, %zmm69442; AVX512BW-NEXT:    vptestmd %zmm6, %zmm6, %k19443; AVX512BW-NEXT:    vmovdqa32 128(%rsi), %zmm6 {%k1} {z}9444; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm7 = [2,2,2,2,2,3,3,3,3,3,3,3,4,4,4,4]9445; AVX512BW-NEXT:    vpermd %zmm0, %zmm7, %zmm09446; AVX512BW-NEXT:    vptestmd %zmm0, %zmm0, %k19447; AVX512BW-NEXT:    vmovdqa32 64(%rsi), %zmm0 {%k1} {z}9448; AVX512BW-NEXT:    vmovdqa64 %zmm0, 64(%rdx)9449; AVX512BW-NEXT:    vmovdqa64 %zmm6, 128(%rdx)9450; AVX512BW-NEXT:    vmovdqa64 %zmm5, 192(%rdx)9451; AVX512BW-NEXT:    vmovdqa64 %zmm4, 256(%rdx)9452; AVX512BW-NEXT:    vmovdqa64 %zmm3, 320(%rdx)9453; AVX512BW-NEXT:    vmovdqa64 %zmm2, 384(%rdx)9454; AVX512BW-NEXT:    vmovdqa64 %zmm1, (%rdx)9455; AVX512BW-NEXT:    vzeroupper9456; AVX512BW-NEXT:    retq9457  %src.mask.padded = load <64 x i1>, ptr %in.maskvec, align 649458  %src.mask = shufflevector <64 x i1> %src.mask.padded, <64 x i1> poison, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15>9459  %tgt.mask = shufflevector <16 x i1> %src.mask, <16 x i1> poison, <112 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 4, i32 4, i32 4, i32 4, i32 4, i32 4, i32 4, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 6, i32 6, i32 6, i32 6, i32 6, i32 6, i32 6, i32 7, i32 7, i32 7, i32 7, i32 7, i32 7, i32 7, i32 8, i32 8, i32 8, i32 8, i32 8, i32 8, i32 8, i32 9, i32 9, i32 9, i32 9, i32 9, i32 9, i32 9, i32 10, i32 10, i32 10, i32 10, i32 10, i32 10, i32 10, i32 11, i32 11, i32 11, i32 11, i32 11, i32 11, i32 11, i32 12, i32 12, i32 12, i32 12, i32 12, i32 12, i32 12, i32 13, i32 13, i32 13, i32 13, i32 13, i32 13, i32 13, i32 14, i32 14, i32 14, i32 14, i32 14, i32 14, i32 14, i32 15, i32 15, i32 15, i32 15, i32 15, i32 15, i32 15>9460  %data = call <112 x i32> @llvm.masked.load.v112i32.p0(ptr %in.vec, i32 64, <112 x i1> %tgt.mask, <112 x i32> poison)9461  store <112 x i32> %data, ptr %out.vec, align 649462  ret void9463}9464 9465define void @mask_replication_factor7_vf32(ptr %in.maskvec, ptr %in.vec, ptr %out.vec) nounwind {9466; AVX512F-ONLY-LABEL: mask_replication_factor7_vf32:9467; AVX512F-ONLY:       # %bb.0:9468; AVX512F-ONLY-NEXT:    kmovw (%rdi), %k19469; AVX512F-ONLY-NEXT:    vpternlogd {{.*#+}} zmm0 {%k1} {z} = -19470; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,0,0,0,1,1,1,1,1,1,1,2,2]9471; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm1, %zmm29472; AVX512F-ONLY-NEXT:    vptestmd %zmm2, %zmm2, %k19473; AVX512F-ONLY-NEXT:    vpternlogd {{.*#+}} zmm2 {%k1} {z} = -19474; AVX512F-ONLY-NEXT:    movw $1, %ax9475; AVX512F-ONLY-NEXT:    kmovw %eax, %k19476; AVX512F-ONLY-NEXT:    vmovdqa32 %zmm0, %zmm2 {%k1}9477; AVX512F-ONLY-NEXT:    kmovw 2(%rdi), %k19478; AVX512F-ONLY-NEXT:    vpternlogd {{.*#+}} zmm3 {%k1} {z} = -19479; AVX512F-ONLY-NEXT:    vptestmd %zmm2, %zmm2, %k19480; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm2 = [2,2,2,2,2,3,3,3,3,3,3,3,4,4,4,4]9481; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm2, %zmm49482; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm5 = [4,4,4,5,5,5,5,5,5,5,6,6,6,6,6,6]9483; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm5, %zmm69484; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm7 = [6,7,7,7,7,7,7,7,8,8,8,8,8,8,8,9]9485; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm7, %zmm89486; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm9 = [9,9,9,9,9,9,10,10,10,10,10,10,10,11,11,11]9487; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm9, %zmm109488; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm11 = [11,11,11,11,12,12,12,12,12,12,12,13,13,13,13,13]9489; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm11, %zmm129490; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm13 = [13,13,14,14,14,14,14,14,14,15,15,15,15,15,15,15]9491; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm13, %zmm09492; AVX512F-ONLY-NEXT:    vpermd %zmm3, %zmm1, %zmm19493; AVX512F-ONLY-NEXT:    vpermd %zmm3, %zmm2, %zmm29494; AVX512F-ONLY-NEXT:    vpermd %zmm3, %zmm5, %zmm59495; AVX512F-ONLY-NEXT:    vpermd %zmm3, %zmm7, %zmm79496; AVX512F-ONLY-NEXT:    vpermd %zmm3, %zmm9, %zmm99497; AVX512F-ONLY-NEXT:    vpermd %zmm3, %zmm11, %zmm119498; AVX512F-ONLY-NEXT:    vpermd %zmm3, %zmm13, %zmm39499; AVX512F-ONLY-NEXT:    vmovdqa32 (%rsi), %zmm13 {%k1} {z}9500; AVX512F-ONLY-NEXT:    vptestmd %zmm3, %zmm3, %k19501; AVX512F-ONLY-NEXT:    vmovdqa32 832(%rsi), %zmm3 {%k1} {z}9502; AVX512F-ONLY-NEXT:    vptestmd %zmm11, %zmm11, %k19503; AVX512F-ONLY-NEXT:    vmovdqa32 768(%rsi), %zmm11 {%k1} {z}9504; AVX512F-ONLY-NEXT:    vptestmd %zmm9, %zmm9, %k19505; AVX512F-ONLY-NEXT:    vmovdqa32 704(%rsi), %zmm9 {%k1} {z}9506; AVX512F-ONLY-NEXT:    vptestmd %zmm7, %zmm7, %k19507; AVX512F-ONLY-NEXT:    vmovdqa32 640(%rsi), %zmm7 {%k1} {z}9508; AVX512F-ONLY-NEXT:    vptestmd %zmm5, %zmm5, %k19509; AVX512F-ONLY-NEXT:    vmovdqa32 576(%rsi), %zmm5 {%k1} {z}9510; AVX512F-ONLY-NEXT:    vptestmd %zmm2, %zmm2, %k19511; AVX512F-ONLY-NEXT:    vmovdqa32 512(%rsi), %zmm2 {%k1} {z}9512; AVX512F-ONLY-NEXT:    vptestmd %zmm1, %zmm1, %k19513; AVX512F-ONLY-NEXT:    vmovdqa32 448(%rsi), %zmm1 {%k1} {z}9514; AVX512F-ONLY-NEXT:    vptestmd %zmm0, %zmm0, %k19515; AVX512F-ONLY-NEXT:    vmovdqa32 384(%rsi), %zmm0 {%k1} {z}9516; AVX512F-ONLY-NEXT:    vptestmd %zmm12, %zmm12, %k19517; AVX512F-ONLY-NEXT:    vmovdqa32 320(%rsi), %zmm12 {%k1} {z}9518; AVX512F-ONLY-NEXT:    vptestmd %zmm10, %zmm10, %k19519; AVX512F-ONLY-NEXT:    vmovdqa32 256(%rsi), %zmm10 {%k1} {z}9520; AVX512F-ONLY-NEXT:    vptestmd %zmm8, %zmm8, %k19521; AVX512F-ONLY-NEXT:    vmovdqa32 192(%rsi), %zmm8 {%k1} {z}9522; AVX512F-ONLY-NEXT:    vptestmd %zmm6, %zmm6, %k19523; AVX512F-ONLY-NEXT:    vmovdqa32 128(%rsi), %zmm6 {%k1} {z}9524; AVX512F-ONLY-NEXT:    vptestmd %zmm4, %zmm4, %k19525; AVX512F-ONLY-NEXT:    vmovdqa32 64(%rsi), %zmm4 {%k1} {z}9526; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm4, 64(%rdx)9527; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm6, 128(%rdx)9528; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm8, 192(%rdx)9529; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm10, 256(%rdx)9530; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm12, 320(%rdx)9531; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm0, 384(%rdx)9532; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm1, 448(%rdx)9533; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm2, 512(%rdx)9534; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm5, 576(%rdx)9535; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm7, 640(%rdx)9536; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm9, 704(%rdx)9537; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm11, 768(%rdx)9538; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm3, 832(%rdx)9539; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm13, (%rdx)9540; AVX512F-ONLY-NEXT:    vzeroupper9541; AVX512F-ONLY-NEXT:    retq9542;9543; AVX512DQ-LABEL: mask_replication_factor7_vf32:9544; AVX512DQ:       # %bb.0:9545; AVX512DQ-NEXT:    kmovw (%rdi), %k09546; AVX512DQ-NEXT:    vpmovm2d %k0, %zmm09547; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,0,0,0,1,1,1,1,1,1,1,2,2]9548; AVX512DQ-NEXT:    vpermd %zmm0, %zmm1, %zmm29549; AVX512DQ-NEXT:    vpmovd2m %zmm2, %k09550; AVX512DQ-NEXT:    vpmovm2d %k0, %zmm29551; AVX512DQ-NEXT:    movw $1, %ax9552; AVX512DQ-NEXT:    kmovw %eax, %k19553; AVX512DQ-NEXT:    vmovdqa32 %zmm0, %zmm2 {%k1}9554; AVX512DQ-NEXT:    kmovw 2(%rdi), %k09555; AVX512DQ-NEXT:    vpmovm2d %k0, %zmm39556; AVX512DQ-NEXT:    vpmovd2m %zmm2, %k19557; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm2 = [2,2,2,2,2,3,3,3,3,3,3,3,4,4,4,4]9558; AVX512DQ-NEXT:    vpermd %zmm0, %zmm2, %zmm49559; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm5 = [4,4,4,5,5,5,5,5,5,5,6,6,6,6,6,6]9560; AVX512DQ-NEXT:    vpermd %zmm0, %zmm5, %zmm69561; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm7 = [6,7,7,7,7,7,7,7,8,8,8,8,8,8,8,9]9562; AVX512DQ-NEXT:    vpermd %zmm0, %zmm7, %zmm89563; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm9 = [9,9,9,9,9,9,10,10,10,10,10,10,10,11,11,11]9564; AVX512DQ-NEXT:    vpermd %zmm0, %zmm9, %zmm109565; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm11 = [11,11,11,11,12,12,12,12,12,12,12,13,13,13,13,13]9566; AVX512DQ-NEXT:    vpermd %zmm0, %zmm11, %zmm129567; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm13 = [13,13,14,14,14,14,14,14,14,15,15,15,15,15,15,15]9568; AVX512DQ-NEXT:    vpermd %zmm0, %zmm13, %zmm09569; AVX512DQ-NEXT:    vpermd %zmm3, %zmm1, %zmm19570; AVX512DQ-NEXT:    vpermd %zmm3, %zmm2, %zmm29571; AVX512DQ-NEXT:    vpermd %zmm3, %zmm5, %zmm59572; AVX512DQ-NEXT:    vpermd %zmm3, %zmm7, %zmm79573; AVX512DQ-NEXT:    vpermd %zmm3, %zmm9, %zmm99574; AVX512DQ-NEXT:    vpermd %zmm3, %zmm11, %zmm119575; AVX512DQ-NEXT:    vpermd %zmm3, %zmm13, %zmm39576; AVX512DQ-NEXT:    vmovdqa32 (%rsi), %zmm13 {%k1} {z}9577; AVX512DQ-NEXT:    vpmovd2m %zmm3, %k19578; AVX512DQ-NEXT:    vmovdqa32 832(%rsi), %zmm3 {%k1} {z}9579; AVX512DQ-NEXT:    vpmovd2m %zmm11, %k19580; AVX512DQ-NEXT:    vmovdqa32 768(%rsi), %zmm11 {%k1} {z}9581; AVX512DQ-NEXT:    vpmovd2m %zmm9, %k19582; AVX512DQ-NEXT:    vmovdqa32 704(%rsi), %zmm9 {%k1} {z}9583; AVX512DQ-NEXT:    vpmovd2m %zmm7, %k19584; AVX512DQ-NEXT:    vmovdqa32 640(%rsi), %zmm7 {%k1} {z}9585; AVX512DQ-NEXT:    vpmovd2m %zmm5, %k19586; AVX512DQ-NEXT:    vmovdqa32 576(%rsi), %zmm5 {%k1} {z}9587; AVX512DQ-NEXT:    vpmovd2m %zmm2, %k19588; AVX512DQ-NEXT:    vmovdqa32 512(%rsi), %zmm2 {%k1} {z}9589; AVX512DQ-NEXT:    vpmovd2m %zmm1, %k19590; AVX512DQ-NEXT:    vmovdqa32 448(%rsi), %zmm1 {%k1} {z}9591; AVX512DQ-NEXT:    vpmovd2m %zmm0, %k19592; AVX512DQ-NEXT:    vmovdqa32 384(%rsi), %zmm0 {%k1} {z}9593; AVX512DQ-NEXT:    vpmovd2m %zmm12, %k19594; AVX512DQ-NEXT:    vmovdqa32 320(%rsi), %zmm12 {%k1} {z}9595; AVX512DQ-NEXT:    vpmovd2m %zmm10, %k19596; AVX512DQ-NEXT:    vmovdqa32 256(%rsi), %zmm10 {%k1} {z}9597; AVX512DQ-NEXT:    vpmovd2m %zmm8, %k19598; AVX512DQ-NEXT:    vmovdqa32 192(%rsi), %zmm8 {%k1} {z}9599; AVX512DQ-NEXT:    vpmovd2m %zmm6, %k19600; AVX512DQ-NEXT:    vmovdqa32 128(%rsi), %zmm6 {%k1} {z}9601; AVX512DQ-NEXT:    vpmovd2m %zmm4, %k19602; AVX512DQ-NEXT:    vmovdqa32 64(%rsi), %zmm4 {%k1} {z}9603; AVX512DQ-NEXT:    vmovdqa64 %zmm4, 64(%rdx)9604; AVX512DQ-NEXT:    vmovdqa64 %zmm6, 128(%rdx)9605; AVX512DQ-NEXT:    vmovdqa64 %zmm8, 192(%rdx)9606; AVX512DQ-NEXT:    vmovdqa64 %zmm10, 256(%rdx)9607; AVX512DQ-NEXT:    vmovdqa64 %zmm12, 320(%rdx)9608; AVX512DQ-NEXT:    vmovdqa64 %zmm0, 384(%rdx)9609; AVX512DQ-NEXT:    vmovdqa64 %zmm1, 448(%rdx)9610; AVX512DQ-NEXT:    vmovdqa64 %zmm2, 512(%rdx)9611; AVX512DQ-NEXT:    vmovdqa64 %zmm5, 576(%rdx)9612; AVX512DQ-NEXT:    vmovdqa64 %zmm7, 640(%rdx)9613; AVX512DQ-NEXT:    vmovdqa64 %zmm9, 704(%rdx)9614; AVX512DQ-NEXT:    vmovdqa64 %zmm11, 768(%rdx)9615; AVX512DQ-NEXT:    vmovdqa64 %zmm3, 832(%rdx)9616; AVX512DQ-NEXT:    vmovdqa64 %zmm13, (%rdx)9617; AVX512DQ-NEXT:    vzeroupper9618; AVX512DQ-NEXT:    retq9619;9620; AVX512BW-LABEL: mask_replication_factor7_vf32:9621; AVX512BW:       # %bb.0:9622; AVX512BW-NEXT:    movw $-3, %ax9623; AVX512BW-NEXT:    kmovd %eax, %k29624; AVX512BW-NEXT:    kmovw (%rdi), %k09625; AVX512BW-NEXT:    kandw %k2, %k0, %k19626; AVX512BW-NEXT:    kmovq %k2, %k39627; AVX512BW-NEXT:    kmovw %k2, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill9628; AVX512BW-NEXT:    kshiftlw $15, %k0, %k09629; AVX512BW-NEXT:    kshiftrw $14, %k0, %k29630; AVX512BW-NEXT:    korw %k2, %k1, %k19631; AVX512BW-NEXT:    movw $-5, %ax9632; AVX512BW-NEXT:    kmovd %eax, %k29633; AVX512BW-NEXT:    kandw %k2, %k1, %k19634; AVX512BW-NEXT:    kmovq %k2, %k49635; AVX512BW-NEXT:    kshiftrw $13, %k0, %k29636; AVX512BW-NEXT:    korw %k2, %k1, %k19637; AVX512BW-NEXT:    movw $-9, %ax9638; AVX512BW-NEXT:    kmovd %eax, %k29639; AVX512BW-NEXT:    kmovw %k2, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill9640; AVX512BW-NEXT:    kandw %k2, %k1, %k19641; AVX512BW-NEXT:    kshiftrw $12, %k0, %k29642; AVX512BW-NEXT:    korw %k2, %k1, %k19643; AVX512BW-NEXT:    movw $-17, %ax9644; AVX512BW-NEXT:    kmovd %eax, %k29645; AVX512BW-NEXT:    kmovw %k2, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill9646; AVX512BW-NEXT:    kandw %k2, %k1, %k19647; AVX512BW-NEXT:    kshiftrw $11, %k0, %k29648; AVX512BW-NEXT:    korw %k2, %k1, %k19649; AVX512BW-NEXT:    movw $-33, %ax9650; AVX512BW-NEXT:    kmovd %eax, %k29651; AVX512BW-NEXT:    kmovw %k2, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill9652; AVX512BW-NEXT:    kandw %k2, %k1, %k19653; AVX512BW-NEXT:    kshiftrw $10, %k0, %k29654; AVX512BW-NEXT:    korw %k2, %k1, %k19655; AVX512BW-NEXT:    movw $-65, %ax9656; AVX512BW-NEXT:    kmovd %eax, %k29657; AVX512BW-NEXT:    kmovw %k2, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill9658; AVX512BW-NEXT:    kandw %k2, %k1, %k19659; AVX512BW-NEXT:    kshiftrw $9, %k0, %k09660; AVX512BW-NEXT:    korw %k0, %k1, %k09661; AVX512BW-NEXT:    movw $-129, %ax9662; AVX512BW-NEXT:    kmovd %eax, %k19663; AVX512BW-NEXT:    kmovw %k1, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill9664; AVX512BW-NEXT:    kandw %k1, %k0, %k19665; AVX512BW-NEXT:    kmovd (%rdi), %k69666; AVX512BW-NEXT:    kshiftrd $1, %k6, %k09667; AVX512BW-NEXT:    kshiftlw $15, %k0, %k09668; AVX512BW-NEXT:    kshiftrw $8, %k0, %k29669; AVX512BW-NEXT:    korw %k2, %k1, %k19670; AVX512BW-NEXT:    movw $-257, %ax # imm = 0xFEFF9671; AVX512BW-NEXT:    kmovd %eax, %k29672; AVX512BW-NEXT:    kandw %k2, %k1, %k19673; AVX512BW-NEXT:    kmovq %k2, %k79674; AVX512BW-NEXT:    kmovw %k2, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill9675; AVX512BW-NEXT:    kshiftrw $7, %k0, %k29676; AVX512BW-NEXT:    korw %k2, %k1, %k19677; AVX512BW-NEXT:    movw $-513, %ax # imm = 0xFDFF9678; AVX512BW-NEXT:    kmovd %eax, %k59679; AVX512BW-NEXT:    kandw %k5, %k1, %k19680; AVX512BW-NEXT:    kmovw %k5, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill9681; AVX512BW-NEXT:    kshiftrw $6, %k0, %k29682; AVX512BW-NEXT:    korw %k2, %k1, %k19683; AVX512BW-NEXT:    movw $-1025, %ax # imm = 0xFBFF9684; AVX512BW-NEXT:    kmovd %eax, %k29685; AVX512BW-NEXT:    kmovw %k2, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill9686; AVX512BW-NEXT:    kandw %k2, %k1, %k19687; AVX512BW-NEXT:    kshiftrw $5, %k0, %k29688; AVX512BW-NEXT:    korw %k2, %k1, %k19689; AVX512BW-NEXT:    movw $-2049, %ax # imm = 0xF7FF9690; AVX512BW-NEXT:    kmovd %eax, %k29691; AVX512BW-NEXT:    kmovw %k2, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill9692; AVX512BW-NEXT:    kandw %k2, %k1, %k19693; AVX512BW-NEXT:    kshiftrw $4, %k0, %k29694; AVX512BW-NEXT:    korw %k2, %k1, %k19695; AVX512BW-NEXT:    movw $-4097, %ax # imm = 0xEFFF9696; AVX512BW-NEXT:    kmovd %eax, %k29697; AVX512BW-NEXT:    kmovw %k2, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill9698; AVX512BW-NEXT:    kandw %k2, %k1, %k19699; AVX512BW-NEXT:    kshiftrw $3, %k0, %k29700; AVX512BW-NEXT:    korw %k2, %k1, %k19701; AVX512BW-NEXT:    movw $-8193, %ax # imm = 0xDFFF9702; AVX512BW-NEXT:    kmovd %eax, %k29703; AVX512BW-NEXT:    kmovw %k2, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill9704; AVX512BW-NEXT:    kandw %k2, %k1, %k19705; AVX512BW-NEXT:    kshiftrw $2, %k0, %k09706; AVX512BW-NEXT:    korw %k0, %k1, %k09707; AVX512BW-NEXT:    movw $-16385, %ax # imm = 0xBFFF9708; AVX512BW-NEXT:    kmovd %eax, %k19709; AVX512BW-NEXT:    kmovw %k1, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill9710; AVX512BW-NEXT:    kandw %k1, %k0, %k09711; AVX512BW-NEXT:    kshiftrd $2, %k6, %k29712; AVX512BW-NEXT:    kmovd %k2, {{[-0-9]+}}(%r{{[sb]}}p) # 4-byte Spill9713; AVX512BW-NEXT:    kshiftlw $14, %k2, %k19714; AVX512BW-NEXT:    korw %k1, %k0, %k09715; AVX512BW-NEXT:    kshiftlw $1, %k0, %k09716; AVX512BW-NEXT:    kshiftrw $1, %k0, %k09717; AVX512BW-NEXT:    kshiftlw $15, %k2, %k19718; AVX512BW-NEXT:    kmovw %k1, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill9719; AVX512BW-NEXT:    korw %k1, %k0, %k19720; AVX512BW-NEXT:    vmovdqa32 (%rsi), %zmm0 {%k1} {z}9721; AVX512BW-NEXT:    kmovq %k6, %k29722; AVX512BW-NEXT:    kshiftrd $29, %k6, %k19723; AVX512BW-NEXT:    kmovd %k1, {{[-0-9]+}}(%r{{[sb]}}p) # 4-byte Spill9724; AVX512BW-NEXT:    kandw %k3, %k1, %k09725; AVX512BW-NEXT:    kshiftlw $15, %k1, %k19726; AVX512BW-NEXT:    kmovw %k1, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill9727; AVX512BW-NEXT:    kshiftrw $14, %k1, %k19728; AVX512BW-NEXT:    korw %k1, %k0, %k09729; AVX512BW-NEXT:    kmovq %k4, %k69730; AVX512BW-NEXT:    kmovw %k4, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill9731; AVX512BW-NEXT:    kandw %k4, %k0, %k09732; AVX512BW-NEXT:    kshiftrd $30, %k2, %k19733; AVX512BW-NEXT:    kmovq %k2, %k49734; AVX512BW-NEXT:    kshiftlw $15, %k1, %k19735; AVX512BW-NEXT:    kshiftrw $13, %k1, %k39736; AVX512BW-NEXT:    korw %k3, %k0, %k09737; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload9738; AVX512BW-NEXT:    kandw %k2, %k0, %k09739; AVX512BW-NEXT:    kshiftrw $12, %k1, %k39740; AVX512BW-NEXT:    korw %k3, %k0, %k09741; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload9742; AVX512BW-NEXT:    kandw %k2, %k0, %k09743; AVX512BW-NEXT:    kshiftrw $11, %k1, %k39744; AVX512BW-NEXT:    korw %k3, %k0, %k09745; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload9746; AVX512BW-NEXT:    kandw %k2, %k0, %k09747; AVX512BW-NEXT:    kshiftrw $10, %k1, %k39748; AVX512BW-NEXT:    korw %k3, %k0, %k09749; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload9750; AVX512BW-NEXT:    kandw %k2, %k0, %k09751; AVX512BW-NEXT:    kshiftrw $9, %k1, %k39752; AVX512BW-NEXT:    korw %k3, %k0, %k09753; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload9754; AVX512BW-NEXT:    kandw %k2, %k0, %k09755; AVX512BW-NEXT:    kshiftrw $8, %k1, %k39756; AVX512BW-NEXT:    korw %k3, %k0, %k09757; AVX512BW-NEXT:    kandw %k7, %k0, %k09758; AVX512BW-NEXT:    kshiftrw $7, %k1, %k19759; AVX512BW-NEXT:    korw %k1, %k0, %k09760; AVX512BW-NEXT:    kandw %k5, %k0, %k39761; AVX512BW-NEXT:    kshiftrd $31, %k4, %k09762; AVX512BW-NEXT:    kmovd %k4, {{[-0-9]+}}(%r{{[sb]}}p) # 4-byte Spill9763; AVX512BW-NEXT:    kshiftlw $15, %k0, %k19764; AVX512BW-NEXT:    kshiftrw $6, %k1, %k79765; AVX512BW-NEXT:    korw %k7, %k3, %k39766; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload9767; AVX512BW-NEXT:    kandw %k5, %k3, %k39768; AVX512BW-NEXT:    kshiftrw $5, %k1, %k79769; AVX512BW-NEXT:    korw %k7, %k3, %k39770; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload9771; AVX512BW-NEXT:    kandw %k2, %k3, %k39772; AVX512BW-NEXT:    kshiftrw $4, %k1, %k79773; AVX512BW-NEXT:    korw %k7, %k3, %k39774; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload9775; AVX512BW-NEXT:    kandw %k2, %k3, %k39776; AVX512BW-NEXT:    kshiftrw $3, %k1, %k79777; AVX512BW-NEXT:    korw %k7, %k3, %k39778; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k7 # 2-byte Reload9779; AVX512BW-NEXT:    kandw %k7, %k3, %k39780; AVX512BW-NEXT:    kshiftrw $2, %k1, %k79781; AVX512BW-NEXT:    korw %k7, %k3, %k39782; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k7 # 2-byte Reload9783; AVX512BW-NEXT:    kandw %k7, %k3, %k39784; AVX512BW-NEXT:    kshiftlw $14, %k0, %k09785; AVX512BW-NEXT:    korw %k0, %k3, %k09786; AVX512BW-NEXT:    kshiftlw $1, %k0, %k09787; AVX512BW-NEXT:    kshiftrw $1, %k0, %k09788; AVX512BW-NEXT:    korw %k1, %k0, %k19789; AVX512BW-NEXT:    vmovdqa32 832(%rsi), %zmm1 {%k1} {z}9790; AVX512BW-NEXT:    kshiftrd $27, %k4, %k19791; AVX512BW-NEXT:    kmovd %k1, {{[-0-9]+}}(%r{{[sb]}}p) # 4-byte Spill9792; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k0 # 2-byte Reload9793; AVX512BW-NEXT:    kandw %k0, %k1, %k09794; AVX512BW-NEXT:    kshiftlw $15, %k1, %k39795; AVX512BW-NEXT:    kmovw %k3, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill9796; AVX512BW-NEXT:    kshiftrw $14, %k3, %k79797; AVX512BW-NEXT:    korw %k7, %k0, %k09798; AVX512BW-NEXT:    kandw %k6, %k0, %k09799; AVX512BW-NEXT:    kshiftrw $13, %k3, %k79800; AVX512BW-NEXT:    korw %k7, %k0, %k09801; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload9802; AVX512BW-NEXT:    kandw %k1, %k0, %k09803; AVX512BW-NEXT:    kshiftrw $12, %k3, %k79804; AVX512BW-NEXT:    korw %k7, %k0, %k09805; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload9806; AVX512BW-NEXT:    kandw %k3, %k0, %k79807; AVX512BW-NEXT:    kshiftrd $28, %k4, %k09808; AVX512BW-NEXT:    kshiftlw $15, %k0, %k09809; AVX512BW-NEXT:    kshiftrw $11, %k0, %k69810; AVX512BW-NEXT:    korw %k6, %k7, %k69811; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload9812; AVX512BW-NEXT:    kandw %k1, %k6, %k69813; AVX512BW-NEXT:    kshiftrw $10, %k0, %k79814; AVX512BW-NEXT:    korw %k7, %k6, %k69815; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload9816; AVX512BW-NEXT:    kandw %k1, %k6, %k69817; AVX512BW-NEXT:    kshiftrw $9, %k0, %k79818; AVX512BW-NEXT:    korw %k7, %k6, %k69819; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload9820; AVX512BW-NEXT:    kandw %k1, %k6, %k69821; AVX512BW-NEXT:    kshiftrw $8, %k0, %k79822; AVX512BW-NEXT:    korw %k7, %k6, %k69823; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload9824; AVX512BW-NEXT:    kandw %k1, %k6, %k69825; AVX512BW-NEXT:    kshiftrw $7, %k0, %k79826; AVX512BW-NEXT:    korw %k7, %k6, %k69827; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload9828; AVX512BW-NEXT:    kandw %k1, %k6, %k69829; AVX512BW-NEXT:    kshiftrw $6, %k0, %k79830; AVX512BW-NEXT:    korw %k7, %k6, %k69831; AVX512BW-NEXT:    kandw %k5, %k6, %k69832; AVX512BW-NEXT:    kshiftrw $5, %k0, %k09833; AVX512BW-NEXT:    korw %k0, %k6, %k09834; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload9835; AVX512BW-NEXT:    kandw %k4, %k0, %k09836; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k7 # 2-byte Reload9837; AVX512BW-NEXT:    kshiftrw $4, %k7, %k69838; AVX512BW-NEXT:    korw %k6, %k0, %k09839; AVX512BW-NEXT:    kandw %k2, %k0, %k09840; AVX512BW-NEXT:    kmovq %k2, %k49841; AVX512BW-NEXT:    kshiftrw $3, %k7, %k69842; AVX512BW-NEXT:    korw %k6, %k0, %k09843; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload9844; AVX512BW-NEXT:    kandw %k2, %k0, %k09845; AVX512BW-NEXT:    kshiftrw $2, %k7, %k69846; AVX512BW-NEXT:    korw %k6, %k0, %k09847; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload9848; AVX512BW-NEXT:    kandw %k2, %k0, %k09849; AVX512BW-NEXT:    kmovd {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 4-byte Reload9850; AVX512BW-NEXT:    kshiftlw $14, %k2, %k59851; AVX512BW-NEXT:    korw %k5, %k0, %k09852; AVX512BW-NEXT:    kshiftlw $1, %k0, %k09853; AVX512BW-NEXT:    kshiftrw $1, %k0, %k09854; AVX512BW-NEXT:    korw %k7, %k0, %k29855; AVX512BW-NEXT:    vmovdqa32 768(%rsi), %zmm2 {%k2} {z}9856; AVX512BW-NEXT:    kmovd {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 4-byte Reload9857; AVX512BW-NEXT:    kshiftrd $25, %k6, %k09858; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload9859; AVX512BW-NEXT:    kandw %k2, %k0, %k29860; AVX512BW-NEXT:    kshiftlw $15, %k0, %k09861; AVX512BW-NEXT:    kshiftrw $14, %k0, %k59862; AVX512BW-NEXT:    korw %k5, %k2, %k29863; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload9864; AVX512BW-NEXT:    kandw %k5, %k2, %k29865; AVX512BW-NEXT:    kshiftrw $13, %k0, %k59866; AVX512BW-NEXT:    korw %k5, %k2, %k29867; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload9868; AVX512BW-NEXT:    kandw %k5, %k2, %k29869; AVX512BW-NEXT:    kshiftrw $12, %k0, %k59870; AVX512BW-NEXT:    korw %k5, %k2, %k29871; AVX512BW-NEXT:    kandw %k3, %k2, %k29872; AVX512BW-NEXT:    kshiftrw $11, %k0, %k59873; AVX512BW-NEXT:    korw %k5, %k2, %k29874; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k7 # 2-byte Reload9875; AVX512BW-NEXT:    kandw %k7, %k2, %k29876; AVX512BW-NEXT:    kshiftrw $10, %k0, %k59877; AVX512BW-NEXT:    korw %k5, %k2, %k29878; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload9879; AVX512BW-NEXT:    kandw %k3, %k2, %k59880; AVX512BW-NEXT:    kshiftrd $26, %k6, %k29881; AVX512BW-NEXT:    kshiftlw $15, %k2, %k29882; AVX512BW-NEXT:    kshiftrw $9, %k2, %k69883; AVX512BW-NEXT:    korw %k6, %k5, %k59884; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload9885; AVX512BW-NEXT:    kandw %k3, %k5, %k59886; AVX512BW-NEXT:    kshiftrw $8, %k2, %k69887; AVX512BW-NEXT:    korw %k6, %k5, %k59888; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload9889; AVX512BW-NEXT:    kandw %k3, %k5, %k59890; AVX512BW-NEXT:    kshiftrw $7, %k2, %k69891; AVX512BW-NEXT:    korw %k6, %k5, %k59892; AVX512BW-NEXT:    kandw %k1, %k5, %k59893; AVX512BW-NEXT:    kshiftrw $6, %k2, %k69894; AVX512BW-NEXT:    korw %k6, %k5, %k59895; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload9896; AVX512BW-NEXT:    kandw %k1, %k5, %k59897; AVX512BW-NEXT:    kshiftrw $5, %k2, %k69898; AVX512BW-NEXT:    korw %k6, %k5, %k59899; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload9900; AVX512BW-NEXT:    kandw %k1, %k5, %k59901; AVX512BW-NEXT:    kshiftrw $4, %k2, %k69902; AVX512BW-NEXT:    korw %k6, %k5, %k59903; AVX512BW-NEXT:    kandw %k4, %k5, %k59904; AVX512BW-NEXT:    kshiftrw $3, %k2, %k29905; AVX512BW-NEXT:    korw %k2, %k5, %k29906; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload9907; AVX512BW-NEXT:    kandw %k4, %k2, %k29908; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload9909; AVX512BW-NEXT:    kshiftrw $2, %k6, %k59910; AVX512BW-NEXT:    korw %k5, %k2, %k29911; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload9912; AVX512BW-NEXT:    kandw %k1, %k2, %k29913; AVX512BW-NEXT:    kmovd {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 4-byte Reload9914; AVX512BW-NEXT:    kshiftlw $14, %k1, %k39915; AVX512BW-NEXT:    korw %k3, %k2, %k29916; AVX512BW-NEXT:    kshiftlw $1, %k2, %k29917; AVX512BW-NEXT:    kshiftrw $1, %k2, %k29918; AVX512BW-NEXT:    korw %k6, %k2, %k19919; AVX512BW-NEXT:    vmovdqa32 704(%rsi), %zmm3 {%k1} {z}9920; AVX512BW-NEXT:    kmovd {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 4-byte Reload9921; AVX512BW-NEXT:    kshiftrd $23, %k6, %k19922; AVX512BW-NEXT:    kshiftlw $15, %k1, %k39923; AVX512BW-NEXT:    kshiftrd $22, %k6, %k59924; AVX512BW-NEXT:    kmovd %k5, {{[-0-9]+}}(%r{{[sb]}}p) # 4-byte Spill9925; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload9926; AVX512BW-NEXT:    kandw %k1, %k5, %k29927; AVX512BW-NEXT:    kshiftrw $14, %k3, %k59928; AVX512BW-NEXT:    korw %k5, %k2, %k29929; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload9930; AVX512BW-NEXT:    kandw %k1, %k2, %k29931; AVX512BW-NEXT:    kshiftrw $13, %k3, %k59932; AVX512BW-NEXT:    korw %k5, %k2, %k29933; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload9934; AVX512BW-NEXT:    kandw %k1, %k2, %k29935; AVX512BW-NEXT:    kshiftrw $12, %k3, %k59936; AVX512BW-NEXT:    korw %k5, %k2, %k29937; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload9938; AVX512BW-NEXT:    kandw %k5, %k2, %k29939; AVX512BW-NEXT:    kshiftrw $11, %k3, %k59940; AVX512BW-NEXT:    korw %k5, %k2, %k29941; AVX512BW-NEXT:    kandw %k7, %k2, %k29942; AVX512BW-NEXT:    kshiftrw $10, %k3, %k59943; AVX512BW-NEXT:    korw %k5, %k2, %k29944; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k7 # 2-byte Reload9945; AVX512BW-NEXT:    kandw %k7, %k2, %k29946; AVX512BW-NEXT:    kshiftrw $9, %k3, %k59947; AVX512BW-NEXT:    korw %k5, %k2, %k29948; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload9949; AVX512BW-NEXT:    kandw %k5, %k2, %k29950; AVX512BW-NEXT:    kshiftrw $8, %k3, %k39951; AVX512BW-NEXT:    korw %k3, %k2, %k29952; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload9953; AVX512BW-NEXT:    kandw %k3, %k2, %k29954; AVX512BW-NEXT:    kshiftrd $24, %k6, %k39955; AVX512BW-NEXT:    kshiftlw $15, %k3, %k59956; AVX512BW-NEXT:    kshiftrw $7, %k5, %k69957; AVX512BW-NEXT:    korw %k6, %k2, %k29958; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload9959; AVX512BW-NEXT:    kandw %k6, %k2, %k29960; AVX512BW-NEXT:    kshiftrw $6, %k5, %k69961; AVX512BW-NEXT:    korw %k6, %k2, %k29962; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload9963; AVX512BW-NEXT:    kandw %k6, %k2, %k29964; AVX512BW-NEXT:    kshiftrw $5, %k5, %k69965; AVX512BW-NEXT:    korw %k6, %k2, %k29966; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload9967; AVX512BW-NEXT:    kandw %k6, %k2, %k29968; AVX512BW-NEXT:    kshiftrw $4, %k5, %k69969; AVX512BW-NEXT:    korw %k6, %k2, %k29970; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload9971; AVX512BW-NEXT:    kandw %k6, %k2, %k29972; AVX512BW-NEXT:    kshiftrw $3, %k5, %k69973; AVX512BW-NEXT:    korw %k6, %k2, %k29974; AVX512BW-NEXT:    kandw %k4, %k2, %k29975; AVX512BW-NEXT:    kshiftrw $2, %k5, %k59976; AVX512BW-NEXT:    korw %k5, %k2, %k29977; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload9978; AVX512BW-NEXT:    kandw %k4, %k2, %k29979; AVX512BW-NEXT:    kshiftlw $14, %k3, %k39980; AVX512BW-NEXT:    korw %k3, %k2, %k29981; AVX512BW-NEXT:    kshiftlw $1, %k2, %k29982; AVX512BW-NEXT:    kshiftrw $1, %k2, %k29983; AVX512BW-NEXT:    korw %k0, %k2, %k29984; AVX512BW-NEXT:    vmovdqa32 640(%rsi), %zmm4 {%k2} {z}9985; AVX512BW-NEXT:    kmovd {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 4-byte Reload9986; AVX512BW-NEXT:    kshiftrd $20, %k3, %k59987; AVX512BW-NEXT:    kmovd %k5, {{[-0-9]+}}(%r{{[sb]}}p) # 4-byte Spill9988; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k0 # 2-byte Reload9989; AVX512BW-NEXT:    kandw %k0, %k5, %k29990; AVX512BW-NEXT:    kshiftlw $15, %k5, %k69991; AVX512BW-NEXT:    kmovw %k6, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill9992; AVX512BW-NEXT:    kshiftrw $14, %k6, %k59993; AVX512BW-NEXT:    korw %k5, %k2, %k29994; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k0 # 2-byte Reload9995; AVX512BW-NEXT:    kandw %k0, %k2, %k29996; AVX512BW-NEXT:    kshiftrw $13, %k6, %k59997; AVX512BW-NEXT:    korw %k5, %k2, %k29998; AVX512BW-NEXT:    kandw %k1, %k2, %k59999; AVX512BW-NEXT:    kshiftrd $21, %k3, %k210000; AVX512BW-NEXT:    kshiftlw $15, %k2, %k210001; AVX512BW-NEXT:    kshiftrw $12, %k2, %k610002; AVX512BW-NEXT:    korw %k6, %k5, %k510003; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k0 # 2-byte Reload10004; AVX512BW-NEXT:    kandw %k0, %k5, %k510005; AVX512BW-NEXT:    kshiftrw $11, %k2, %k610006; AVX512BW-NEXT:    korw %k6, %k5, %k510007; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k0 # 2-byte Reload10008; AVX512BW-NEXT:    kandw %k0, %k5, %k510009; AVX512BW-NEXT:    kshiftrw $10, %k2, %k610010; AVX512BW-NEXT:    korw %k6, %k5, %k510011; AVX512BW-NEXT:    kandw %k7, %k5, %k510012; AVX512BW-NEXT:    kshiftrw $9, %k2, %k610013; AVX512BW-NEXT:    korw %k6, %k5, %k510014; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k0 # 2-byte Reload10015; AVX512BW-NEXT:    kandw %k0, %k5, %k510016; AVX512BW-NEXT:    kshiftrw $8, %k2, %k610017; AVX512BW-NEXT:    korw %k6, %k5, %k510018; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k0 # 2-byte Reload10019; AVX512BW-NEXT:    kandw %k0, %k5, %k510020; AVX512BW-NEXT:    kshiftrw $7, %k2, %k610021; AVX512BW-NEXT:    korw %k6, %k5, %k510022; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k0 # 2-byte Reload10023; AVX512BW-NEXT:    kandw %k0, %k5, %k510024; AVX512BW-NEXT:    kshiftrw $6, %k2, %k210025; AVX512BW-NEXT:    korw %k2, %k5, %k210026; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k0 # 2-byte Reload10027; AVX512BW-NEXT:    kandw %k0, %k2, %k510028; AVX512BW-NEXT:    kmovd {{[-0-9]+}}(%r{{[sb]}}p), %k7 # 4-byte Reload10029; AVX512BW-NEXT:    kshiftlw $15, %k7, %k210030; AVX512BW-NEXT:    kshiftrw $5, %k2, %k610031; AVX512BW-NEXT:    korw %k6, %k5, %k510032; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload10033; AVX512BW-NEXT:    kandw %k3, %k5, %k510034; AVX512BW-NEXT:    kshiftrw $4, %k2, %k610035; AVX512BW-NEXT:    korw %k6, %k5, %k510036; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k0 # 2-byte Reload10037; AVX512BW-NEXT:    kandw %k0, %k5, %k510038; AVX512BW-NEXT:    kshiftrw $3, %k2, %k610039; AVX512BW-NEXT:    korw %k6, %k5, %k510040; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload10041; AVX512BW-NEXT:    kandw %k1, %k5, %k510042; AVX512BW-NEXT:    kshiftrw $2, %k2, %k610043; AVX512BW-NEXT:    korw %k6, %k5, %k510044; AVX512BW-NEXT:    kandw %k4, %k5, %k510045; AVX512BW-NEXT:    kshiftlw $14, %k7, %k110046; AVX512BW-NEXT:    korw %k1, %k5, %k110047; AVX512BW-NEXT:    kshiftlw $1, %k1, %k110048; AVX512BW-NEXT:    kshiftrw $1, %k1, %k110049; AVX512BW-NEXT:    korw %k2, %k1, %k110050; AVX512BW-NEXT:    vmovdqa32 576(%rsi), %zmm5 {%k1} {z}10051; AVX512BW-NEXT:    kmovd {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 4-byte Reload10052; AVX512BW-NEXT:    kshiftrd $18, %k2, %k410053; AVX512BW-NEXT:    kmovd %k4, {{[-0-9]+}}(%r{{[sb]}}p) # 4-byte Spill10054; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload10055; AVX512BW-NEXT:    kandw %k1, %k4, %k510056; AVX512BW-NEXT:    kshiftlw $15, %k4, %k410057; AVX512BW-NEXT:    kmovw %k4, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill10058; AVX512BW-NEXT:    kshiftrw $14, %k4, %k610059; AVX512BW-NEXT:    korw %k6, %k5, %k510060; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload10061; AVX512BW-NEXT:    kandw %k1, %k5, %k510062; AVX512BW-NEXT:    kshiftrw $13, %k4, %k610063; AVX512BW-NEXT:    korw %k6, %k5, %k510064; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload10065; AVX512BW-NEXT:    kandw %k1, %k5, %k510066; AVX512BW-NEXT:    kshiftrw $12, %k4, %k610067; AVX512BW-NEXT:    korw %k6, %k5, %k510068; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload10069; AVX512BW-NEXT:    kandw %k1, %k5, %k510070; AVX512BW-NEXT:    kshiftrw $11, %k4, %k610071; AVX512BW-NEXT:    korw %k6, %k5, %k510072; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload10073; AVX512BW-NEXT:    kandw %k1, %k5, %k610074; AVX512BW-NEXT:    kshiftrd $19, %k2, %k510075; AVX512BW-NEXT:    kshiftlw $15, %k5, %k510076; AVX512BW-NEXT:    kshiftrw $10, %k5, %k710077; AVX512BW-NEXT:    korw %k7, %k6, %k610078; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload10079; AVX512BW-NEXT:    kandw %k1, %k6, %k610080; AVX512BW-NEXT:    kshiftrw $9, %k5, %k710081; AVX512BW-NEXT:    korw %k7, %k6, %k610082; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload10083; AVX512BW-NEXT:    kandw %k4, %k6, %k610084; AVX512BW-NEXT:    kshiftrw $8, %k5, %k710085; AVX512BW-NEXT:    korw %k7, %k6, %k610086; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload10087; AVX512BW-NEXT:    kandw %k2, %k6, %k610088; AVX512BW-NEXT:    kshiftrw $7, %k5, %k710089; AVX512BW-NEXT:    korw %k7, %k6, %k610090; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload10091; AVX512BW-NEXT:    kandw %k2, %k6, %k610092; AVX512BW-NEXT:    kshiftrw $6, %k5, %k710093; AVX512BW-NEXT:    korw %k7, %k6, %k610094; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload10095; AVX512BW-NEXT:    kandw %k2, %k6, %k610096; AVX512BW-NEXT:    kshiftrw $5, %k5, %k710097; AVX512BW-NEXT:    korw %k7, %k6, %k610098; AVX512BW-NEXT:    kandw %k3, %k6, %k610099; AVX512BW-NEXT:    kshiftrw $4, %k5, %k510100; AVX512BW-NEXT:    korw %k5, %k6, %k510101; AVX512BW-NEXT:    kandw %k0, %k5, %k510102; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k7 # 2-byte Reload10103; AVX512BW-NEXT:    kshiftrw $3, %k7, %k610104; AVX512BW-NEXT:    korw %k6, %k5, %k510105; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k0 # 2-byte Reload10106; AVX512BW-NEXT:    kandw %k0, %k5, %k510107; AVX512BW-NEXT:    kshiftrw $2, %k7, %k610108; AVX512BW-NEXT:    korw %k6, %k5, %k510109; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k0 # 2-byte Reload10110; AVX512BW-NEXT:    kandw %k0, %k5, %k510111; AVX512BW-NEXT:    kmovd {{[-0-9]+}}(%r{{[sb]}}p), %k0 # 4-byte Reload10112; AVX512BW-NEXT:    kshiftlw $14, %k0, %k310113; AVX512BW-NEXT:    korw %k3, %k5, %k310114; AVX512BW-NEXT:    kshiftlw $1, %k3, %k310115; AVX512BW-NEXT:    kshiftrw $1, %k3, %k310116; AVX512BW-NEXT:    korw %k7, %k3, %k310117; AVX512BW-NEXT:    vmovdqa32 512(%rsi), %zmm6 {%k3} {z}10118; AVX512BW-NEXT:    kmovd {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 4-byte Reload10119; AVX512BW-NEXT:    kshiftrd $16, %k1, %k010120; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload10121; AVX512BW-NEXT:    kandw %k6, %k0, %k310122; AVX512BW-NEXT:    kshiftlw $15, %k0, %k010123; AVX512BW-NEXT:    kshiftrw $14, %k0, %k510124; AVX512BW-NEXT:    korw %k5, %k3, %k310125; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k7 # 2-byte Reload10126; AVX512BW-NEXT:    kandw %k7, %k3, %k310127; AVX512BW-NEXT:    kshiftrw $13, %k0, %k510128; AVX512BW-NEXT:    korw %k5, %k3, %k310129; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload10130; AVX512BW-NEXT:    kandw %k5, %k3, %k310131; AVX512BW-NEXT:    kshiftrw $12, %k0, %k510132; AVX512BW-NEXT:    korw %k5, %k3, %k310133; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload10134; AVX512BW-NEXT:    kandw %k5, %k3, %k310135; AVX512BW-NEXT:    kshiftrw $11, %k0, %k510136; AVX512BW-NEXT:    korw %k5, %k3, %k310137; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload10138; AVX512BW-NEXT:    kandw %k5, %k3, %k310139; AVX512BW-NEXT:    kshiftrw $10, %k0, %k510140; AVX512BW-NEXT:    korw %k5, %k3, %k310141; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload10142; AVX512BW-NEXT:    kandw %k5, %k3, %k310143; AVX512BW-NEXT:    kshiftrw $9, %k0, %k010144; AVX512BW-NEXT:    korw %k0, %k3, %k010145; AVX512BW-NEXT:    kandw %k4, %k0, %k310146; AVX512BW-NEXT:    kshiftrd $17, %k1, %k010147; AVX512BW-NEXT:    kshiftlw $15, %k0, %k010148; AVX512BW-NEXT:    kshiftrw $8, %k0, %k510149; AVX512BW-NEXT:    korw %k5, %k3, %k310150; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload10151; AVX512BW-NEXT:    kandw %k4, %k3, %k310152; AVX512BW-NEXT:    kshiftrw $7, %k0, %k510153; AVX512BW-NEXT:    korw %k5, %k3, %k310154; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload10155; AVX512BW-NEXT:    kandw %k1, %k3, %k310156; AVX512BW-NEXT:    kshiftrw $6, %k0, %k510157; AVX512BW-NEXT:    korw %k5, %k3, %k310158; AVX512BW-NEXT:    kandw %k2, %k3, %k310159; AVX512BW-NEXT:    kshiftrw $5, %k0, %k510160; AVX512BW-NEXT:    korw %k5, %k3, %k310161; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload10162; AVX512BW-NEXT:    kandw %k1, %k3, %k310163; AVX512BW-NEXT:    kshiftrw $4, %k0, %k510164; AVX512BW-NEXT:    korw %k5, %k3, %k310165; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload10166; AVX512BW-NEXT:    kandw %k1, %k3, %k310167; AVX512BW-NEXT:    kshiftrw $3, %k0, %k510168; AVX512BW-NEXT:    korw %k5, %k3, %k310169; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload10170; AVX512BW-NEXT:    kandw %k1, %k3, %k310171; AVX512BW-NEXT:    kshiftrw $2, %k0, %k010172; AVX512BW-NEXT:    korw %k0, %k3, %k010173; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload10174; AVX512BW-NEXT:    kandw %k1, %k0, %k010175; AVX512BW-NEXT:    kmovd {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 4-byte Reload10176; AVX512BW-NEXT:    kshiftlw $14, %k1, %k210177; AVX512BW-NEXT:    korw %k2, %k0, %k010178; AVX512BW-NEXT:    kshiftlw $1, %k0, %k010179; AVX512BW-NEXT:    kshiftrw $1, %k0, %k010180; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload10181; AVX512BW-NEXT:    korw %k1, %k0, %k110182; AVX512BW-NEXT:    vmovdqa32 448(%rsi), %zmm7 {%k1} {z}10183; AVX512BW-NEXT:    kmovd {{[-0-9]+}}(%r{{[sb]}}p), %k0 # 4-byte Reload10184; AVX512BW-NEXT:    kshiftrd $13, %k0, %k210185; AVX512BW-NEXT:    kmovd %k2, {{[-0-9]+}}(%r{{[sb]}}p) # 4-byte Spill10186; AVX512BW-NEXT:    kandw %k6, %k2, %k110187; AVX512BW-NEXT:    kshiftlw $15, %k2, %k210188; AVX512BW-NEXT:    kmovw %k2, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill10189; AVX512BW-NEXT:    kshiftrw $14, %k2, %k310190; AVX512BW-NEXT:    korw %k3, %k1, %k110191; AVX512BW-NEXT:    kandw %k7, %k1, %k310192; AVX512BW-NEXT:    kshiftrd $14, %k0, %k110193; AVX512BW-NEXT:    kmovq %k0, %k610194; AVX512BW-NEXT:    kshiftlw $15, %k1, %k110195; AVX512BW-NEXT:    kshiftrw $13, %k1, %k510196; AVX512BW-NEXT:    korw %k5, %k3, %k310197; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k7 # 2-byte Reload10198; AVX512BW-NEXT:    kandw %k7, %k3, %k310199; AVX512BW-NEXT:    kshiftrw $12, %k1, %k510200; AVX512BW-NEXT:    korw %k5, %k3, %k310201; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k0 # 2-byte Reload10202; AVX512BW-NEXT:    kandw %k0, %k3, %k310203; AVX512BW-NEXT:    kshiftrw $11, %k1, %k510204; AVX512BW-NEXT:    korw %k5, %k3, %k310205; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload10206; AVX512BW-NEXT:    kandw %k2, %k3, %k310207; AVX512BW-NEXT:    kshiftrw $10, %k1, %k510208; AVX512BW-NEXT:    korw %k5, %k3, %k310209; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload10210; AVX512BW-NEXT:    kandw %k2, %k3, %k310211; AVX512BW-NEXT:    kshiftrw $9, %k1, %k510212; AVX512BW-NEXT:    korw %k5, %k3, %k310213; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload10214; AVX512BW-NEXT:    kandw %k2, %k3, %k310215; AVX512BW-NEXT:    kshiftrw $8, %k1, %k510216; AVX512BW-NEXT:    korw %k5, %k3, %k310217; AVX512BW-NEXT:    kandw %k4, %k3, %k310218; AVX512BW-NEXT:    kshiftrw $7, %k1, %k110219; AVX512BW-NEXT:    korw %k1, %k3, %k110220; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload10221; AVX512BW-NEXT:    kandw %k4, %k1, %k510222; AVX512BW-NEXT:    kshiftrd $15, %k6, %k310223; AVX512BW-NEXT:    kmovq %k6, %k010224; AVX512BW-NEXT:    kshiftlw $15, %k3, %k110225; AVX512BW-NEXT:    kshiftrw $6, %k1, %k610226; AVX512BW-NEXT:    korw %k6, %k5, %k510227; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload10228; AVX512BW-NEXT:    kandw %k2, %k5, %k510229; AVX512BW-NEXT:    kshiftrw $5, %k1, %k610230; AVX512BW-NEXT:    korw %k6, %k5, %k510231; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload10232; AVX512BW-NEXT:    kandw %k2, %k5, %k510233; AVX512BW-NEXT:    kshiftrw $4, %k1, %k610234; AVX512BW-NEXT:    korw %k6, %k5, %k510235; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload10236; AVX512BW-NEXT:    kandw %k2, %k5, %k510237; AVX512BW-NEXT:    kshiftrw $3, %k1, %k610238; AVX512BW-NEXT:    korw %k6, %k5, %k510239; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload10240; AVX512BW-NEXT:    kandw %k2, %k5, %k510241; AVX512BW-NEXT:    kshiftrw $2, %k1, %k610242; AVX512BW-NEXT:    korw %k6, %k5, %k510243; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload10244; AVX512BW-NEXT:    kandw %k6, %k5, %k510245; AVX512BW-NEXT:    kshiftlw $14, %k3, %k310246; AVX512BW-NEXT:    korw %k3, %k5, %k310247; AVX512BW-NEXT:    kshiftlw $1, %k3, %k310248; AVX512BW-NEXT:    kshiftrw $1, %k3, %k310249; AVX512BW-NEXT:    korw %k1, %k3, %k110250; AVX512BW-NEXT:    vmovdqa32 384(%rsi), %zmm8 {%k1} {z}10251; AVX512BW-NEXT:    kmovq %k0, %k310252; AVX512BW-NEXT:    kshiftrd $11, %k0, %k010253; AVX512BW-NEXT:    kmovd %k0, {{[-0-9]+}}(%r{{[sb]}}p) # 4-byte Spill10254; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload10255; AVX512BW-NEXT:    kandw %k1, %k0, %k510256; AVX512BW-NEXT:    kshiftlw $15, %k0, %k010257; AVX512BW-NEXT:    kshiftrw $14, %k0, %k610258; AVX512BW-NEXT:    korw %k6, %k5, %k510259; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload10260; AVX512BW-NEXT:    kandw %k1, %k5, %k510261; AVX512BW-NEXT:    kmovw %k0, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill10262; AVX512BW-NEXT:    kshiftrw $13, %k0, %k610263; AVX512BW-NEXT:    korw %k6, %k5, %k510264; AVX512BW-NEXT:    kandw %k7, %k5, %k510265; AVX512BW-NEXT:    kshiftrw $12, %k0, %k610266; AVX512BW-NEXT:    korw %k6, %k5, %k510267; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k0 # 2-byte Reload10268; AVX512BW-NEXT:    kandw %k0, %k5, %k610269; AVX512BW-NEXT:    kshiftrd $12, %k3, %k510270; AVX512BW-NEXT:    kshiftlw $15, %k5, %k510271; AVX512BW-NEXT:    kshiftrw $11, %k5, %k710272; AVX512BW-NEXT:    korw %k7, %k6, %k610273; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload10274; AVX512BW-NEXT:    kandw %k1, %k6, %k610275; AVX512BW-NEXT:    kshiftrw $10, %k5, %k710276; AVX512BW-NEXT:    korw %k7, %k6, %k610277; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k0 # 2-byte Reload10278; AVX512BW-NEXT:    kandw %k0, %k6, %k610279; AVX512BW-NEXT:    kshiftrw $9, %k5, %k710280; AVX512BW-NEXT:    korw %k7, %k6, %k610281; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k0 # 2-byte Reload10282; AVX512BW-NEXT:    kandw %k0, %k6, %k610283; AVX512BW-NEXT:    kshiftrw $8, %k5, %k710284; AVX512BW-NEXT:    korw %k7, %k6, %k610285; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k0 # 2-byte Reload10286; AVX512BW-NEXT:    kandw %k0, %k6, %k610287; AVX512BW-NEXT:    kshiftrw $7, %k5, %k710288; AVX512BW-NEXT:    korw %k7, %k6, %k610289; AVX512BW-NEXT:    kandw %k4, %k6, %k610290; AVX512BW-NEXT:    kshiftrw $6, %k5, %k710291; AVX512BW-NEXT:    korw %k7, %k6, %k610292; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload10293; AVX512BW-NEXT:    kandw %k4, %k6, %k610294; AVX512BW-NEXT:    kshiftrw $5, %k5, %k510295; AVX512BW-NEXT:    korw %k5, %k6, %k510296; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k0 # 2-byte Reload10297; AVX512BW-NEXT:    kandw %k0, %k5, %k510298; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload10299; AVX512BW-NEXT:    kshiftrw $4, %k3, %k610300; AVX512BW-NEXT:    korw %k6, %k5, %k510301; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k0 # 2-byte Reload10302; AVX512BW-NEXT:    kandw %k0, %k5, %k510303; AVX512BW-NEXT:    kshiftrw $3, %k3, %k610304; AVX512BW-NEXT:    korw %k6, %k5, %k510305; AVX512BW-NEXT:    kandw %k2, %k5, %k510306; AVX512BW-NEXT:    kshiftrw $2, %k3, %k610307; AVX512BW-NEXT:    kmovq %k3, %k010308; AVX512BW-NEXT:    korw %k6, %k5, %k510309; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload10310; AVX512BW-NEXT:    kandw %k3, %k5, %k510311; AVX512BW-NEXT:    kmovd {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 4-byte Reload10312; AVX512BW-NEXT:    kshiftlw $14, %k2, %k210313; AVX512BW-NEXT:    korw %k2, %k5, %k210314; AVX512BW-NEXT:    kshiftlw $1, %k2, %k210315; AVX512BW-NEXT:    kshiftrw $1, %k2, %k210316; AVX512BW-NEXT:    korw %k0, %k2, %k210317; AVX512BW-NEXT:    vmovdqa32 320(%rsi), %zmm9 {%k2} {z}10318; AVX512BW-NEXT:    kmovd {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 4-byte Reload10319; AVX512BW-NEXT:    kshiftrd $9, %k6, %k010320; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload10321; AVX512BW-NEXT:    kandw %k2, %k0, %k210322; AVX512BW-NEXT:    kshiftlw $15, %k0, %k010323; AVX512BW-NEXT:    kshiftrw $14, %k0, %k510324; AVX512BW-NEXT:    korw %k5, %k2, %k210325; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload10326; AVX512BW-NEXT:    kandw %k5, %k2, %k210327; AVX512BW-NEXT:    kshiftrw $13, %k0, %k510328; AVX512BW-NEXT:    korw %k5, %k2, %k210329; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload10330; AVX512BW-NEXT:    kandw %k5, %k2, %k210331; AVX512BW-NEXT:    kshiftrw $12, %k0, %k510332; AVX512BW-NEXT:    korw %k5, %k2, %k210333; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k7 # 2-byte Reload10334; AVX512BW-NEXT:    kandw %k7, %k2, %k210335; AVX512BW-NEXT:    kshiftrw $11, %k0, %k510336; AVX512BW-NEXT:    korw %k5, %k2, %k210337; AVX512BW-NEXT:    kandw %k1, %k2, %k210338; AVX512BW-NEXT:    kshiftrw $10, %k0, %k510339; AVX512BW-NEXT:    korw %k5, %k2, %k210340; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload10341; AVX512BW-NEXT:    kandw %k1, %k2, %k510342; AVX512BW-NEXT:    kshiftrd $10, %k6, %k210343; AVX512BW-NEXT:    kshiftlw $15, %k2, %k210344; AVX512BW-NEXT:    kshiftrw $9, %k2, %k610345; AVX512BW-NEXT:    korw %k6, %k5, %k510346; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload10347; AVX512BW-NEXT:    kandw %k1, %k5, %k510348; AVX512BW-NEXT:    kshiftrw $8, %k2, %k610349; AVX512BW-NEXT:    korw %k6, %k5, %k510350; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload10351; AVX512BW-NEXT:    kandw %k1, %k5, %k510352; AVX512BW-NEXT:    kshiftrw $7, %k2, %k610353; AVX512BW-NEXT:    korw %k6, %k5, %k510354; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload10355; AVX512BW-NEXT:    kandw %k1, %k5, %k510356; AVX512BW-NEXT:    kshiftrw $6, %k2, %k610357; AVX512BW-NEXT:    korw %k6, %k5, %k510358; AVX512BW-NEXT:    kandw %k4, %k5, %k510359; AVX512BW-NEXT:    kshiftrw $5, %k2, %k610360; AVX512BW-NEXT:    korw %k6, %k5, %k510361; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload10362; AVX512BW-NEXT:    kandw %k1, %k5, %k510363; AVX512BW-NEXT:    kshiftrw $4, %k2, %k610364; AVX512BW-NEXT:    korw %k6, %k5, %k510365; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload10366; AVX512BW-NEXT:    kandw %k1, %k5, %k510367; AVX512BW-NEXT:    kshiftrw $3, %k2, %k210368; AVX512BW-NEXT:    korw %k2, %k5, %k210369; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload10370; AVX512BW-NEXT:    kandw %k1, %k2, %k210371; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload10372; AVX512BW-NEXT:    kshiftrw $2, %k4, %k510373; AVX512BW-NEXT:    korw %k5, %k2, %k210374; AVX512BW-NEXT:    kandw %k3, %k2, %k210375; AVX512BW-NEXT:    kmovd {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 4-byte Reload10376; AVX512BW-NEXT:    kshiftlw $14, %k1, %k110377; AVX512BW-NEXT:    korw %k1, %k2, %k110378; AVX512BW-NEXT:    kshiftlw $1, %k1, %k110379; AVX512BW-NEXT:    kshiftrw $1, %k1, %k110380; AVX512BW-NEXT:    korw %k4, %k1, %k110381; AVX512BW-NEXT:    vmovdqa32 256(%rsi), %zmm10 {%k1} {z}10382; AVX512BW-NEXT:    kmovd {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 4-byte Reload10383; AVX512BW-NEXT:    kshiftrd $7, %k4, %k110384; AVX512BW-NEXT:    kshiftlw $15, %k1, %k310385; AVX512BW-NEXT:    kshiftrd $6, %k4, %k210386; AVX512BW-NEXT:    kmovd %k2, {{[-0-9]+}}(%r{{[sb]}}p) # 4-byte Spill10387; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload10388; AVX512BW-NEXT:    kandw %k1, %k2, %k210389; AVX512BW-NEXT:    kshiftrw $14, %k3, %k510390; AVX512BW-NEXT:    korw %k5, %k2, %k210391; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload10392; AVX512BW-NEXT:    kandw %k1, %k2, %k210393; AVX512BW-NEXT:    kshiftrw $13, %k3, %k510394; AVX512BW-NEXT:    korw %k5, %k2, %k210395; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload10396; AVX512BW-NEXT:    kandw %k1, %k2, %k210397; AVX512BW-NEXT:    kshiftrw $12, %k3, %k510398; AVX512BW-NEXT:    korw %k5, %k2, %k210399; AVX512BW-NEXT:    kandw %k7, %k2, %k210400; AVX512BW-NEXT:    kshiftrw $11, %k3, %k510401; AVX512BW-NEXT:    korw %k5, %k2, %k210402; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload10403; AVX512BW-NEXT:    kandw %k1, %k2, %k210404; AVX512BW-NEXT:    kshiftrw $10, %k3, %k510405; AVX512BW-NEXT:    korw %k5, %k2, %k210406; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload10407; AVX512BW-NEXT:    kandw %k1, %k2, %k210408; AVX512BW-NEXT:    kshiftrw $9, %k3, %k510409; AVX512BW-NEXT:    korw %k5, %k2, %k210410; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload10411; AVX512BW-NEXT:    kandw %k1, %k2, %k210412; AVX512BW-NEXT:    kshiftrw $8, %k3, %k310413; AVX512BW-NEXT:    korw %k3, %k2, %k210414; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload10415; AVX512BW-NEXT:    kandw %k1, %k2, %k210416; AVX512BW-NEXT:    kshiftrd $8, %k4, %k310417; AVX512BW-NEXT:    kshiftlw $15, %k3, %k510418; AVX512BW-NEXT:    kshiftrw $7, %k5, %k610419; AVX512BW-NEXT:    korw %k6, %k2, %k210420; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload10421; AVX512BW-NEXT:    kandw %k1, %k2, %k210422; AVX512BW-NEXT:    kshiftrw $6, %k5, %k610423; AVX512BW-NEXT:    korw %k6, %k2, %k210424; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload10425; AVX512BW-NEXT:    kandw %k4, %k2, %k210426; AVX512BW-NEXT:    kshiftrw $5, %k5, %k610427; AVX512BW-NEXT:    korw %k6, %k2, %k210428; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k7 # 2-byte Reload10429; AVX512BW-NEXT:    kandw %k7, %k2, %k210430; AVX512BW-NEXT:    kshiftrw $4, %k5, %k610431; AVX512BW-NEXT:    korw %k6, %k2, %k210432; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload10433; AVX512BW-NEXT:    kandw %k6, %k2, %k210434; AVX512BW-NEXT:    kshiftrw $3, %k5, %k610435; AVX512BW-NEXT:    korw %k6, %k2, %k210436; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload10437; AVX512BW-NEXT:    kandw %k6, %k2, %k210438; AVX512BW-NEXT:    kshiftrw $2, %k5, %k510439; AVX512BW-NEXT:    korw %k5, %k2, %k210440; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload10441; AVX512BW-NEXT:    kandw %k5, %k2, %k210442; AVX512BW-NEXT:    kshiftlw $14, %k3, %k310443; AVX512BW-NEXT:    korw %k3, %k2, %k210444; AVX512BW-NEXT:    kshiftlw $1, %k2, %k210445; AVX512BW-NEXT:    kshiftrw $1, %k2, %k210446; AVX512BW-NEXT:    korw %k0, %k2, %k210447; AVX512BW-NEXT:    vmovdqa32 192(%rsi), %zmm11 {%k2} {z}10448; AVX512BW-NEXT:    kmovd {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 4-byte Reload10449; AVX512BW-NEXT:    kshiftrd $4, %k6, %k310450; AVX512BW-NEXT:    kmovd %k3, {{[-0-9]+}}(%r{{[sb]}}p) # 4-byte Spill10451; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k0 # 2-byte Reload10452; AVX512BW-NEXT:    kandw %k0, %k3, %k210453; AVX512BW-NEXT:    kshiftlw $15, %k3, %k010454; AVX512BW-NEXT:    kshiftrw $14, %k0, %k510455; AVX512BW-NEXT:    korw %k5, %k2, %k210456; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload10457; AVX512BW-NEXT:    kandw %k3, %k2, %k210458; AVX512BW-NEXT:    kshiftrw $13, %k0, %k510459; AVX512BW-NEXT:    korw %k5, %k2, %k210460; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload10461; AVX512BW-NEXT:    kandw %k3, %k2, %k510462; AVX512BW-NEXT:    kshiftrd $5, %k6, %k210463; AVX512BW-NEXT:    kshiftlw $15, %k2, %k210464; AVX512BW-NEXT:    kshiftrw $12, %k2, %k610465; AVX512BW-NEXT:    korw %k6, %k5, %k510466; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload10467; AVX512BW-NEXT:    kandw %k3, %k5, %k510468; AVX512BW-NEXT:    kshiftrw $11, %k2, %k610469; AVX512BW-NEXT:    korw %k6, %k5, %k510470; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload10471; AVX512BW-NEXT:    kandw %k3, %k5, %k510472; AVX512BW-NEXT:    kshiftrw $10, %k2, %k610473; AVX512BW-NEXT:    korw %k6, %k5, %k510474; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload10475; AVX512BW-NEXT:    kandw %k3, %k5, %k510476; AVX512BW-NEXT:    kshiftrw $9, %k2, %k610477; AVX512BW-NEXT:    korw %k6, %k5, %k510478; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload10479; AVX512BW-NEXT:    kandw %k3, %k5, %k510480; AVX512BW-NEXT:    kshiftrw $8, %k2, %k610481; AVX512BW-NEXT:    korw %k6, %k5, %k510482; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload10483; AVX512BW-NEXT:    kandw %k3, %k5, %k510484; AVX512BW-NEXT:    kshiftrw $7, %k2, %k610485; AVX512BW-NEXT:    korw %k6, %k5, %k510486; AVX512BW-NEXT:    kandw %k1, %k5, %k510487; AVX512BW-NEXT:    kshiftrw $6, %k2, %k210488; AVX512BW-NEXT:    korw %k2, %k5, %k210489; AVX512BW-NEXT:    kandw %k4, %k2, %k510490; AVX512BW-NEXT:    kmovd {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 4-byte Reload10491; AVX512BW-NEXT:    kshiftlw $15, %k1, %k210492; AVX512BW-NEXT:    kshiftrw $5, %k2, %k610493; AVX512BW-NEXT:    korw %k6, %k5, %k510494; AVX512BW-NEXT:    kandw %k7, %k5, %k510495; AVX512BW-NEXT:    kshiftrw $4, %k2, %k610496; AVX512BW-NEXT:    korw %k6, %k5, %k510497; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload10498; AVX512BW-NEXT:    kandw %k3, %k5, %k510499; AVX512BW-NEXT:    kshiftrw $3, %k2, %k610500; AVX512BW-NEXT:    korw %k6, %k5, %k510501; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k7 # 2-byte Reload10502; AVX512BW-NEXT:    kandw %k7, %k5, %k510503; AVX512BW-NEXT:    kshiftrw $2, %k2, %k610504; AVX512BW-NEXT:    korw %k6, %k5, %k510505; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload10506; AVX512BW-NEXT:    kandw %k6, %k5, %k510507; AVX512BW-NEXT:    kshiftlw $14, %k1, %k110508; AVX512BW-NEXT:    korw %k1, %k5, %k110509; AVX512BW-NEXT:    kshiftlw $1, %k1, %k110510; AVX512BW-NEXT:    kshiftrw $1, %k1, %k110511; AVX512BW-NEXT:    korw %k2, %k1, %k110512; AVX512BW-NEXT:    vmovdqa32 128(%rsi), %zmm12 {%k1} {z}10513; AVX512BW-NEXT:    kmovd {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 4-byte Reload10514; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload10515; AVX512BW-NEXT:    kandw %k2, %k1, %k110516; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload10517; AVX512BW-NEXT:    kshiftrw $14, %k4, %k210518; AVX512BW-NEXT:    korw %k2, %k1, %k110519; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload10520; AVX512BW-NEXT:    kandw %k2, %k1, %k110521; AVX512BW-NEXT:    kshiftrw $13, %k4, %k210522; AVX512BW-NEXT:    korw %k2, %k1, %k110523; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload10524; AVX512BW-NEXT:    kandw %k2, %k1, %k110525; AVX512BW-NEXT:    kshiftrw $12, %k4, %k210526; AVX512BW-NEXT:    korw %k2, %k1, %k110527; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload10528; AVX512BW-NEXT:    kandw %k2, %k1, %k110529; AVX512BW-NEXT:    kshiftrw $11, %k4, %k210530; AVX512BW-NEXT:    korw %k2, %k1, %k110531; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload10532; AVX512BW-NEXT:    kandw %k2, %k1, %k210533; AVX512BW-NEXT:    kmovd {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 4-byte Reload10534; AVX512BW-NEXT:    kshiftrd $3, %k1, %k110535; AVX512BW-NEXT:    kshiftlw $15, %k1, %k110536; AVX512BW-NEXT:    kshiftrw $10, %k1, %k410537; AVX512BW-NEXT:    korw %k4, %k2, %k210538; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload10539; AVX512BW-NEXT:    kandw %k4, %k2, %k210540; AVX512BW-NEXT:    kshiftrw $9, %k1, %k410541; AVX512BW-NEXT:    korw %k4, %k2, %k210542; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload10543; AVX512BW-NEXT:    kandw %k4, %k2, %k210544; AVX512BW-NEXT:    kshiftrw $8, %k1, %k410545; AVX512BW-NEXT:    korw %k4, %k2, %k210546; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload10547; AVX512BW-NEXT:    kandw %k4, %k2, %k210548; AVX512BW-NEXT:    kshiftrw $7, %k1, %k410549; AVX512BW-NEXT:    korw %k4, %k2, %k210550; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload10551; AVX512BW-NEXT:    kandw %k4, %k2, %k210552; AVX512BW-NEXT:    kshiftrw $6, %k1, %k410553; AVX512BW-NEXT:    korw %k4, %k2, %k210554; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload10555; AVX512BW-NEXT:    kandw %k4, %k2, %k210556; AVX512BW-NEXT:    kshiftrw $5, %k1, %k410557; AVX512BW-NEXT:    korw %k4, %k2, %k210558; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload10559; AVX512BW-NEXT:    kandw %k4, %k2, %k210560; AVX512BW-NEXT:    kshiftrw $4, %k1, %k110561; AVX512BW-NEXT:    korw %k1, %k2, %k110562; AVX512BW-NEXT:    kandw %k3, %k1, %k110563; AVX512BW-NEXT:    kshiftrw $3, %k0, %k210564; AVX512BW-NEXT:    korw %k2, %k1, %k110565; AVX512BW-NEXT:    kandw %k7, %k1, %k110566; AVX512BW-NEXT:    kshiftrw $2, %k0, %k210567; AVX512BW-NEXT:    korw %k2, %k1, %k110568; AVX512BW-NEXT:    kandw %k6, %k1, %k110569; AVX512BW-NEXT:    kmovd {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 4-byte Reload10570; AVX512BW-NEXT:    kshiftlw $14, %k2, %k210571; AVX512BW-NEXT:    korw %k2, %k1, %k110572; AVX512BW-NEXT:    kshiftlw $1, %k1, %k110573; AVX512BW-NEXT:    kshiftrw $1, %k1, %k110574; AVX512BW-NEXT:    korw %k0, %k1, %k110575; AVX512BW-NEXT:    vmovdqa32 64(%rsi), %zmm13 {%k1} {z}10576; AVX512BW-NEXT:    vmovdqa64 %zmm13, 64(%rdx)10577; AVX512BW-NEXT:    vmovdqa64 %zmm12, 128(%rdx)10578; AVX512BW-NEXT:    vmovdqa64 %zmm11, 192(%rdx)10579; AVX512BW-NEXT:    vmovdqa64 %zmm10, 256(%rdx)10580; AVX512BW-NEXT:    vmovdqa64 %zmm9, 320(%rdx)10581; AVX512BW-NEXT:    vmovdqa64 %zmm8, 384(%rdx)10582; AVX512BW-NEXT:    vmovdqa64 %zmm7, 448(%rdx)10583; AVX512BW-NEXT:    vmovdqa64 %zmm6, 512(%rdx)10584; AVX512BW-NEXT:    vmovdqa64 %zmm5, 576(%rdx)10585; AVX512BW-NEXT:    vmovdqa64 %zmm4, 640(%rdx)10586; AVX512BW-NEXT:    vmovdqa64 %zmm3, 704(%rdx)10587; AVX512BW-NEXT:    vmovdqa64 %zmm2, 768(%rdx)10588; AVX512BW-NEXT:    vmovdqa64 %zmm1, 832(%rdx)10589; AVX512BW-NEXT:    vmovdqa64 %zmm0, (%rdx)10590; AVX512BW-NEXT:    vzeroupper10591; AVX512BW-NEXT:    retq10592  %src.mask.padded = load <64 x i1>, ptr %in.maskvec, align 6410593  %src.mask = shufflevector <64 x i1> %src.mask.padded, <64 x i1> poison, <32 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31>10594  %tgt.mask = shufflevector <32 x i1> %src.mask, <32 x i1> poison, <224 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 4, i32 4, i32 4, i32 4, i32 4, i32 4, i32 4, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 6, i32 6, i32 6, i32 6, i32 6, i32 6, i32 6, i32 7, i32 7, i32 7, i32 7, i32 7, i32 7, i32 7, i32 8, i32 8, i32 8, i32 8, i32 8, i32 8, i32 8, i32 9, i32 9, i32 9, i32 9, i32 9, i32 9, i32 9, i32 10, i32 10, i32 10, i32 10, i32 10, i32 10, i32 10, i32 11, i32 11, i32 11, i32 11, i32 11, i32 11, i32 11, i32 12, i32 12, i32 12, i32 12, i32 12, i32 12, i32 12, i32 13, i32 13, i32 13, i32 13, i32 13, i32 13, i32 13, i32 14, i32 14, i32 14, i32 14, i32 14, i32 14, i32 14, i32 15, i32 15, i32 15, i32 15, i32 15, i32 15, i32 15, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 17, i32 17, i32 17, i32 17, i32 17, i32 17, i32 17, i32 18, i32 18, i32 18, i32 18, i32 18, i32 18, i32 18, i32 19, i32 19, i32 19, i32 19, i32 19, i32 19, i32 19, i32 20, i32 20, i32 20, i32 20, i32 20, i32 20, i32 20, i32 21, i32 21, i32 21, i32 21, i32 21, i32 21, i32 21, i32 22, i32 22, i32 22, i32 22, i32 22, i32 22, i32 22, i32 23, i32 23, i32 23, i32 23, i32 23, i32 23, i32 23, i32 24, i32 24, i32 24, i32 24, i32 24, i32 24, i32 24, i32 25, i32 25, i32 25, i32 25, i32 25, i32 25, i32 25, i32 26, i32 26, i32 26, i32 26, i32 26, i32 26, i32 26, i32 27, i32 27, i32 27, i32 27, i32 27, i32 27, i32 27, i32 28, i32 28, i32 28, i32 28, i32 28, i32 28, i32 28, i32 29, i32 29, i32 29, i32 29, i32 29, i32 29, i32 29, i32 30, i32 30, i32 30, i32 30, i32 30, i32 30, i32 30, i32 31, i32 31, i32 31, i32 31, i32 31, i32 31, i32 31>10595  %data = call <224 x i32> @llvm.masked.load.v224i32.p0(ptr %in.vec, i32 64, <224 x i1> %tgt.mask, <224 x i32> poison)10596  store <224 x i32> %data, ptr %out.vec, align 6410597  ret void10598}10599 10600define void @mask_replication_factor7_vf64(ptr %in.maskvec, ptr %in.vec, ptr %out.vec) nounwind {10601; AVX512F-ONLY-LABEL: mask_replication_factor7_vf64:10602; AVX512F-ONLY:       # %bb.0:10603; AVX512F-ONLY-NEXT:    kmovw (%rdi), %k110604; AVX512F-ONLY-NEXT:    vpternlogd {{.*#+}} zmm1 {%k1} {z} = -110605; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm5 = [0,0,0,0,0,0,0,1,1,1,1,1,1,1,2,2]10606; AVX512F-ONLY-NEXT:    vpermd %zmm1, %zmm5, %zmm010607; AVX512F-ONLY-NEXT:    vptestmd %zmm0, %zmm0, %k110608; AVX512F-ONLY-NEXT:    vpternlogd {{.*#+}} zmm0 {%k1} {z} = -110609; AVX512F-ONLY-NEXT:    movw $1, %ax10610; AVX512F-ONLY-NEXT:    kmovw %eax, %k110611; AVX512F-ONLY-NEXT:    vmovdqa32 %zmm1, %zmm0 {%k1}10612; AVX512F-ONLY-NEXT:    kmovw 6(%rdi), %k110613; AVX512F-ONLY-NEXT:    vpternlogd {{.*#+}} zmm8 {%k1} {z} = -110614; AVX512F-ONLY-NEXT:    kmovw 4(%rdi), %k110615; AVX512F-ONLY-NEXT:    vpternlogd {{.*#+}} zmm9 {%k1} {z} = -110616; AVX512F-ONLY-NEXT:    kmovw 2(%rdi), %k110617; AVX512F-ONLY-NEXT:    vpternlogd {{.*#+}} zmm11 {%k1} {z} = -110618; AVX512F-ONLY-NEXT:    vptestmd %zmm0, %zmm0, %k110619; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm13 = [13,13,14,14,14,14,14,14,14,15,15,15,15,15,15,15]10620; AVX512F-ONLY-NEXT:    vpermd %zmm8, %zmm13, %zmm010621; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm15 = [11,11,11,11,12,12,12,12,12,12,12,13,13,13,13,13]10622; AVX512F-ONLY-NEXT:    vpermd %zmm8, %zmm15, %zmm210623; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm16 = [9,9,9,9,9,9,10,10,10,10,10,10,10,11,11,11]10624; AVX512F-ONLY-NEXT:    vpermd %zmm8, %zmm16, %zmm310625; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm17 = [6,7,7,7,7,7,7,7,8,8,8,8,8,8,8,9]10626; AVX512F-ONLY-NEXT:    vpermd %zmm8, %zmm17, %zmm410627; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm18 = [4,4,4,5,5,5,5,5,5,5,6,6,6,6,6,6]10628; AVX512F-ONLY-NEXT:    vpermd %zmm8, %zmm18, %zmm610629; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm19 = [2,2,2,2,2,3,3,3,3,3,3,3,4,4,4,4]10630; AVX512F-ONLY-NEXT:    vpermd %zmm8, %zmm19, %zmm710631; AVX512F-ONLY-NEXT:    vpermd %zmm8, %zmm5, %zmm810632; AVX512F-ONLY-NEXT:    vpermd %zmm9, %zmm13, %zmm1010633; AVX512F-ONLY-NEXT:    vpermd %zmm9, %zmm15, %zmm1210634; AVX512F-ONLY-NEXT:    vpermd %zmm9, %zmm16, %zmm1410635; AVX512F-ONLY-NEXT:    vpermd %zmm9, %zmm17, %zmm2010636; AVX512F-ONLY-NEXT:    vpermd %zmm9, %zmm18, %zmm2110637; AVX512F-ONLY-NEXT:    vpermd %zmm9, %zmm19, %zmm2210638; AVX512F-ONLY-NEXT:    vpermd %zmm9, %zmm5, %zmm2310639; AVX512F-ONLY-NEXT:    vpermd %zmm11, %zmm13, %zmm2410640; AVX512F-ONLY-NEXT:    vpermd %zmm11, %zmm15, %zmm2510641; AVX512F-ONLY-NEXT:    vpermd %zmm11, %zmm16, %zmm2610642; AVX512F-ONLY-NEXT:    vpermd %zmm11, %zmm17, %zmm2710643; AVX512F-ONLY-NEXT:    vpermd %zmm11, %zmm18, %zmm2810644; AVX512F-ONLY-NEXT:    vpermd %zmm11, %zmm5, %zmm2910645; AVX512F-ONLY-NEXT:    vpermd %zmm11, %zmm19, %zmm3010646; AVX512F-ONLY-NEXT:    vpermd %zmm1, %zmm13, %zmm3110647; AVX512F-ONLY-NEXT:    vpermd %zmm1, %zmm15, %zmm1510648; AVX512F-ONLY-NEXT:    vpermd %zmm1, %zmm16, %zmm1310649; AVX512F-ONLY-NEXT:    vpermd %zmm1, %zmm17, %zmm1110650; AVX512F-ONLY-NEXT:    vpermd %zmm1, %zmm18, %zmm910651; AVX512F-ONLY-NEXT:    vpermd %zmm1, %zmm19, %zmm510652; AVX512F-ONLY-NEXT:    vmovdqa32 (%rsi), %zmm1 {%k1} {z}10653; AVX512F-ONLY-NEXT:    vptestmd %zmm5, %zmm5, %k110654; AVX512F-ONLY-NEXT:    vmovdqa32 64(%rsi), %zmm5 {%k1} {z}10655; AVX512F-ONLY-NEXT:    vptestmd %zmm9, %zmm9, %k110656; AVX512F-ONLY-NEXT:    vmovdqa32 128(%rsi), %zmm9 {%k1} {z}10657; AVX512F-ONLY-NEXT:    vptestmd %zmm11, %zmm11, %k110658; AVX512F-ONLY-NEXT:    vmovdqa32 192(%rsi), %zmm11 {%k1} {z}10659; AVX512F-ONLY-NEXT:    vptestmd %zmm13, %zmm13, %k110660; AVX512F-ONLY-NEXT:    vmovdqa32 256(%rsi), %zmm13 {%k1} {z}10661; AVX512F-ONLY-NEXT:    vptestmd %zmm15, %zmm15, %k110662; AVX512F-ONLY-NEXT:    vmovdqa32 320(%rsi), %zmm15 {%k1} {z}10663; AVX512F-ONLY-NEXT:    vptestmd %zmm31, %zmm31, %k110664; AVX512F-ONLY-NEXT:    vmovdqa32 384(%rsi), %zmm16 {%k1} {z}10665; AVX512F-ONLY-NEXT:    vptestmd %zmm29, %zmm29, %k110666; AVX512F-ONLY-NEXT:    vmovdqa32 448(%rsi), %zmm17 {%k1} {z}10667; AVX512F-ONLY-NEXT:    vptestmd %zmm30, %zmm30, %k110668; AVX512F-ONLY-NEXT:    vmovdqa32 512(%rsi), %zmm18 {%k1} {z}10669; AVX512F-ONLY-NEXT:    vptestmd %zmm28, %zmm28, %k110670; AVX512F-ONLY-NEXT:    vmovdqa32 576(%rsi), %zmm19 {%k1} {z}10671; AVX512F-ONLY-NEXT:    vptestmd %zmm27, %zmm27, %k110672; AVX512F-ONLY-NEXT:    vmovdqa32 640(%rsi), %zmm27 {%k1} {z}10673; AVX512F-ONLY-NEXT:    vptestmd %zmm26, %zmm26, %k110674; AVX512F-ONLY-NEXT:    vmovdqa32 704(%rsi), %zmm26 {%k1} {z}10675; AVX512F-ONLY-NEXT:    vptestmd %zmm25, %zmm25, %k110676; AVX512F-ONLY-NEXT:    vmovdqa32 768(%rsi), %zmm25 {%k1} {z}10677; AVX512F-ONLY-NEXT:    vptestmd %zmm24, %zmm24, %k110678; AVX512F-ONLY-NEXT:    vmovdqa32 832(%rsi), %zmm24 {%k1} {z}10679; AVX512F-ONLY-NEXT:    vptestmd %zmm23, %zmm23, %k110680; AVX512F-ONLY-NEXT:    vmovdqa32 896(%rsi), %zmm23 {%k1} {z}10681; AVX512F-ONLY-NEXT:    vptestmd %zmm22, %zmm22, %k110682; AVX512F-ONLY-NEXT:    vmovdqa32 960(%rsi), %zmm22 {%k1} {z}10683; AVX512F-ONLY-NEXT:    vptestmd %zmm21, %zmm21, %k110684; AVX512F-ONLY-NEXT:    vmovdqa32 1024(%rsi), %zmm21 {%k1} {z}10685; AVX512F-ONLY-NEXT:    vptestmd %zmm20, %zmm20, %k110686; AVX512F-ONLY-NEXT:    vmovdqa32 1088(%rsi), %zmm20 {%k1} {z}10687; AVX512F-ONLY-NEXT:    vptestmd %zmm14, %zmm14, %k110688; AVX512F-ONLY-NEXT:    vmovdqa32 1152(%rsi), %zmm14 {%k1} {z}10689; AVX512F-ONLY-NEXT:    vptestmd %zmm12, %zmm12, %k110690; AVX512F-ONLY-NEXT:    vmovdqa32 1216(%rsi), %zmm12 {%k1} {z}10691; AVX512F-ONLY-NEXT:    vptestmd %zmm10, %zmm10, %k110692; AVX512F-ONLY-NEXT:    vmovdqa32 1280(%rsi), %zmm10 {%k1} {z}10693; AVX512F-ONLY-NEXT:    vptestmd %zmm8, %zmm8, %k110694; AVX512F-ONLY-NEXT:    vmovdqa32 1344(%rsi), %zmm8 {%k1} {z}10695; AVX512F-ONLY-NEXT:    vptestmd %zmm7, %zmm7, %k110696; AVX512F-ONLY-NEXT:    vmovdqa32 1408(%rsi), %zmm7 {%k1} {z}10697; AVX512F-ONLY-NEXT:    vptestmd %zmm6, %zmm6, %k110698; AVX512F-ONLY-NEXT:    vmovdqa32 1472(%rsi), %zmm6 {%k1} {z}10699; AVX512F-ONLY-NEXT:    vptestmd %zmm4, %zmm4, %k110700; AVX512F-ONLY-NEXT:    vmovdqa32 1536(%rsi), %zmm4 {%k1} {z}10701; AVX512F-ONLY-NEXT:    vptestmd %zmm3, %zmm3, %k110702; AVX512F-ONLY-NEXT:    vmovdqa32 1600(%rsi), %zmm3 {%k1} {z}10703; AVX512F-ONLY-NEXT:    vptestmd %zmm2, %zmm2, %k110704; AVX512F-ONLY-NEXT:    vmovdqa32 1664(%rsi), %zmm2 {%k1} {z}10705; AVX512F-ONLY-NEXT:    vptestmd %zmm0, %zmm0, %k110706; AVX512F-ONLY-NEXT:    vmovdqa32 1728(%rsi), %zmm0 {%k1} {z}10707; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm0, 1728(%rdx)10708; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm2, 1664(%rdx)10709; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm3, 1600(%rdx)10710; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm4, 1536(%rdx)10711; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm6, 1472(%rdx)10712; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm7, 1408(%rdx)10713; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm8, 1344(%rdx)10714; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm10, 1280(%rdx)10715; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm12, 1216(%rdx)10716; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm14, 1152(%rdx)10717; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm20, 1088(%rdx)10718; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm21, 1024(%rdx)10719; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm22, 960(%rdx)10720; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm23, 896(%rdx)10721; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm24, 832(%rdx)10722; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm25, 768(%rdx)10723; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm26, 704(%rdx)10724; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm27, 640(%rdx)10725; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm19, 576(%rdx)10726; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm18, 512(%rdx)10727; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm17, 448(%rdx)10728; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm16, 384(%rdx)10729; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm15, 320(%rdx)10730; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm13, 256(%rdx)10731; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm11, 192(%rdx)10732; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm9, 128(%rdx)10733; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm5, 64(%rdx)10734; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm1, (%rdx)10735; AVX512F-ONLY-NEXT:    vzeroupper10736; AVX512F-ONLY-NEXT:    retq10737;10738; AVX512DQ-LABEL: mask_replication_factor7_vf64:10739; AVX512DQ:       # %bb.0:10740; AVX512DQ-NEXT:    kmovw (%rdi), %k010741; AVX512DQ-NEXT:    vpmovm2d %k0, %zmm110742; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm5 = [0,0,0,0,0,0,0,1,1,1,1,1,1,1,2,2]10743; AVX512DQ-NEXT:    vpermd %zmm1, %zmm5, %zmm010744; AVX512DQ-NEXT:    vpmovd2m %zmm0, %k010745; AVX512DQ-NEXT:    vpmovm2d %k0, %zmm010746; AVX512DQ-NEXT:    movw $1, %ax10747; AVX512DQ-NEXT:    kmovw %eax, %k110748; AVX512DQ-NEXT:    vmovdqa32 %zmm1, %zmm0 {%k1}10749; AVX512DQ-NEXT:    kmovw 6(%rdi), %k010750; AVX512DQ-NEXT:    vpmovm2d %k0, %zmm810751; AVX512DQ-NEXT:    kmovw 4(%rdi), %k010752; AVX512DQ-NEXT:    vpmovm2d %k0, %zmm910753; AVX512DQ-NEXT:    kmovw 2(%rdi), %k010754; AVX512DQ-NEXT:    vpmovm2d %k0, %zmm1110755; AVX512DQ-NEXT:    vpmovd2m %zmm0, %k110756; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm13 = [13,13,14,14,14,14,14,14,14,15,15,15,15,15,15,15]10757; AVX512DQ-NEXT:    vpermd %zmm8, %zmm13, %zmm010758; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm15 = [11,11,11,11,12,12,12,12,12,12,12,13,13,13,13,13]10759; AVX512DQ-NEXT:    vpermd %zmm8, %zmm15, %zmm210760; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm16 = [9,9,9,9,9,9,10,10,10,10,10,10,10,11,11,11]10761; AVX512DQ-NEXT:    vpermd %zmm8, %zmm16, %zmm310762; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm17 = [6,7,7,7,7,7,7,7,8,8,8,8,8,8,8,9]10763; AVX512DQ-NEXT:    vpermd %zmm8, %zmm17, %zmm410764; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm18 = [4,4,4,5,5,5,5,5,5,5,6,6,6,6,6,6]10765; AVX512DQ-NEXT:    vpermd %zmm8, %zmm18, %zmm610766; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm19 = [2,2,2,2,2,3,3,3,3,3,3,3,4,4,4,4]10767; AVX512DQ-NEXT:    vpermd %zmm8, %zmm19, %zmm710768; AVX512DQ-NEXT:    vpermd %zmm8, %zmm5, %zmm810769; AVX512DQ-NEXT:    vpermd %zmm9, %zmm13, %zmm1010770; AVX512DQ-NEXT:    vpermd %zmm9, %zmm15, %zmm1210771; AVX512DQ-NEXT:    vpermd %zmm9, %zmm16, %zmm1410772; AVX512DQ-NEXT:    vpermd %zmm9, %zmm17, %zmm2010773; AVX512DQ-NEXT:    vpermd %zmm9, %zmm18, %zmm2110774; AVX512DQ-NEXT:    vpermd %zmm9, %zmm19, %zmm2210775; AVX512DQ-NEXT:    vpermd %zmm9, %zmm5, %zmm2310776; AVX512DQ-NEXT:    vpermd %zmm11, %zmm13, %zmm2410777; AVX512DQ-NEXT:    vpermd %zmm11, %zmm15, %zmm2510778; AVX512DQ-NEXT:    vpermd %zmm11, %zmm16, %zmm2610779; AVX512DQ-NEXT:    vpermd %zmm11, %zmm17, %zmm2710780; AVX512DQ-NEXT:    vpermd %zmm11, %zmm18, %zmm2810781; AVX512DQ-NEXT:    vpermd %zmm11, %zmm5, %zmm2910782; AVX512DQ-NEXT:    vpermd %zmm11, %zmm19, %zmm3010783; AVX512DQ-NEXT:    vpermd %zmm1, %zmm13, %zmm3110784; AVX512DQ-NEXT:    vpermd %zmm1, %zmm15, %zmm1510785; AVX512DQ-NEXT:    vpermd %zmm1, %zmm16, %zmm1310786; AVX512DQ-NEXT:    vpermd %zmm1, %zmm17, %zmm1110787; AVX512DQ-NEXT:    vpermd %zmm1, %zmm18, %zmm910788; AVX512DQ-NEXT:    vpermd %zmm1, %zmm19, %zmm510789; AVX512DQ-NEXT:    vmovdqa32 (%rsi), %zmm1 {%k1} {z}10790; AVX512DQ-NEXT:    vpmovd2m %zmm5, %k110791; AVX512DQ-NEXT:    vmovdqa32 64(%rsi), %zmm5 {%k1} {z}10792; AVX512DQ-NEXT:    vpmovd2m %zmm9, %k110793; AVX512DQ-NEXT:    vmovdqa32 128(%rsi), %zmm9 {%k1} {z}10794; AVX512DQ-NEXT:    vpmovd2m %zmm11, %k110795; AVX512DQ-NEXT:    vmovdqa32 192(%rsi), %zmm11 {%k1} {z}10796; AVX512DQ-NEXT:    vpmovd2m %zmm13, %k110797; AVX512DQ-NEXT:    vmovdqa32 256(%rsi), %zmm13 {%k1} {z}10798; AVX512DQ-NEXT:    vpmovd2m %zmm15, %k110799; AVX512DQ-NEXT:    vmovdqa32 320(%rsi), %zmm15 {%k1} {z}10800; AVX512DQ-NEXT:    vpmovd2m %zmm31, %k110801; AVX512DQ-NEXT:    vmovdqa32 384(%rsi), %zmm16 {%k1} {z}10802; AVX512DQ-NEXT:    vpmovd2m %zmm29, %k110803; AVX512DQ-NEXT:    vmovdqa32 448(%rsi), %zmm17 {%k1} {z}10804; AVX512DQ-NEXT:    vpmovd2m %zmm30, %k110805; AVX512DQ-NEXT:    vmovdqa32 512(%rsi), %zmm18 {%k1} {z}10806; AVX512DQ-NEXT:    vpmovd2m %zmm28, %k110807; AVX512DQ-NEXT:    vmovdqa32 576(%rsi), %zmm19 {%k1} {z}10808; AVX512DQ-NEXT:    vpmovd2m %zmm27, %k110809; AVX512DQ-NEXT:    vmovdqa32 640(%rsi), %zmm27 {%k1} {z}10810; AVX512DQ-NEXT:    vpmovd2m %zmm26, %k110811; AVX512DQ-NEXT:    vmovdqa32 704(%rsi), %zmm26 {%k1} {z}10812; AVX512DQ-NEXT:    vpmovd2m %zmm25, %k110813; AVX512DQ-NEXT:    vmovdqa32 768(%rsi), %zmm25 {%k1} {z}10814; AVX512DQ-NEXT:    vpmovd2m %zmm24, %k110815; AVX512DQ-NEXT:    vmovdqa32 832(%rsi), %zmm24 {%k1} {z}10816; AVX512DQ-NEXT:    vpmovd2m %zmm23, %k110817; AVX512DQ-NEXT:    vmovdqa32 896(%rsi), %zmm23 {%k1} {z}10818; AVX512DQ-NEXT:    vpmovd2m %zmm22, %k110819; AVX512DQ-NEXT:    vmovdqa32 960(%rsi), %zmm22 {%k1} {z}10820; AVX512DQ-NEXT:    vpmovd2m %zmm21, %k110821; AVX512DQ-NEXT:    vmovdqa32 1024(%rsi), %zmm21 {%k1} {z}10822; AVX512DQ-NEXT:    vpmovd2m %zmm20, %k110823; AVX512DQ-NEXT:    vmovdqa32 1088(%rsi), %zmm20 {%k1} {z}10824; AVX512DQ-NEXT:    vpmovd2m %zmm14, %k110825; AVX512DQ-NEXT:    vmovdqa32 1152(%rsi), %zmm14 {%k1} {z}10826; AVX512DQ-NEXT:    vpmovd2m %zmm12, %k110827; AVX512DQ-NEXT:    vmovdqa32 1216(%rsi), %zmm12 {%k1} {z}10828; AVX512DQ-NEXT:    vpmovd2m %zmm10, %k110829; AVX512DQ-NEXT:    vmovdqa32 1280(%rsi), %zmm10 {%k1} {z}10830; AVX512DQ-NEXT:    vpmovd2m %zmm8, %k110831; AVX512DQ-NEXT:    vmovdqa32 1344(%rsi), %zmm8 {%k1} {z}10832; AVX512DQ-NEXT:    vpmovd2m %zmm7, %k110833; AVX512DQ-NEXT:    vmovdqa32 1408(%rsi), %zmm7 {%k1} {z}10834; AVX512DQ-NEXT:    vpmovd2m %zmm6, %k110835; AVX512DQ-NEXT:    vmovdqa32 1472(%rsi), %zmm6 {%k1} {z}10836; AVX512DQ-NEXT:    vpmovd2m %zmm4, %k110837; AVX512DQ-NEXT:    vmovdqa32 1536(%rsi), %zmm4 {%k1} {z}10838; AVX512DQ-NEXT:    vpmovd2m %zmm3, %k110839; AVX512DQ-NEXT:    vmovdqa32 1600(%rsi), %zmm3 {%k1} {z}10840; AVX512DQ-NEXT:    vpmovd2m %zmm2, %k110841; AVX512DQ-NEXT:    vmovdqa32 1664(%rsi), %zmm2 {%k1} {z}10842; AVX512DQ-NEXT:    vpmovd2m %zmm0, %k110843; AVX512DQ-NEXT:    vmovdqa32 1728(%rsi), %zmm0 {%k1} {z}10844; AVX512DQ-NEXT:    vmovdqa64 %zmm0, 1728(%rdx)10845; AVX512DQ-NEXT:    vmovdqa64 %zmm2, 1664(%rdx)10846; AVX512DQ-NEXT:    vmovdqa64 %zmm3, 1600(%rdx)10847; AVX512DQ-NEXT:    vmovdqa64 %zmm4, 1536(%rdx)10848; AVX512DQ-NEXT:    vmovdqa64 %zmm6, 1472(%rdx)10849; AVX512DQ-NEXT:    vmovdqa64 %zmm7, 1408(%rdx)10850; AVX512DQ-NEXT:    vmovdqa64 %zmm8, 1344(%rdx)10851; AVX512DQ-NEXT:    vmovdqa64 %zmm10, 1280(%rdx)10852; AVX512DQ-NEXT:    vmovdqa64 %zmm12, 1216(%rdx)10853; AVX512DQ-NEXT:    vmovdqa64 %zmm14, 1152(%rdx)10854; AVX512DQ-NEXT:    vmovdqa64 %zmm20, 1088(%rdx)10855; AVX512DQ-NEXT:    vmovdqa64 %zmm21, 1024(%rdx)10856; AVX512DQ-NEXT:    vmovdqa64 %zmm22, 960(%rdx)10857; AVX512DQ-NEXT:    vmovdqa64 %zmm23, 896(%rdx)10858; AVX512DQ-NEXT:    vmovdqa64 %zmm24, 832(%rdx)10859; AVX512DQ-NEXT:    vmovdqa64 %zmm25, 768(%rdx)10860; AVX512DQ-NEXT:    vmovdqa64 %zmm26, 704(%rdx)10861; AVX512DQ-NEXT:    vmovdqa64 %zmm27, 640(%rdx)10862; AVX512DQ-NEXT:    vmovdqa64 %zmm19, 576(%rdx)10863; AVX512DQ-NEXT:    vmovdqa64 %zmm18, 512(%rdx)10864; AVX512DQ-NEXT:    vmovdqa64 %zmm17, 448(%rdx)10865; AVX512DQ-NEXT:    vmovdqa64 %zmm16, 384(%rdx)10866; AVX512DQ-NEXT:    vmovdqa64 %zmm15, 320(%rdx)10867; AVX512DQ-NEXT:    vmovdqa64 %zmm13, 256(%rdx)10868; AVX512DQ-NEXT:    vmovdqa64 %zmm11, 192(%rdx)10869; AVX512DQ-NEXT:    vmovdqa64 %zmm9, 128(%rdx)10870; AVX512DQ-NEXT:    vmovdqa64 %zmm5, 64(%rdx)10871; AVX512DQ-NEXT:    vmovdqa64 %zmm1, (%rdx)10872; AVX512DQ-NEXT:    vzeroupper10873; AVX512DQ-NEXT:    retq10874;10875; AVX512BW-LABEL: mask_replication_factor7_vf64:10876; AVX512BW:       # %bb.0:10877; AVX512BW-NEXT:    movw $-3, %ax10878; AVX512BW-NEXT:    kmovd %eax, %k110879; AVX512BW-NEXT:    kmovw %k1, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill10880; AVX512BW-NEXT:    kmovw (%rdi), %k010881; AVX512BW-NEXT:    kandw %k1, %k0, %k110882; AVX512BW-NEXT:    kshiftlw $15, %k0, %k010883; AVX512BW-NEXT:    kshiftrw $14, %k0, %k210884; AVX512BW-NEXT:    korw %k2, %k1, %k110885; AVX512BW-NEXT:    movw $-5, %ax10886; AVX512BW-NEXT:    kmovd %eax, %k210887; AVX512BW-NEXT:    kandw %k2, %k1, %k110888; AVX512BW-NEXT:    kmovq %k2, %k310889; AVX512BW-NEXT:    kmovw %k2, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill10890; AVX512BW-NEXT:    kshiftrw $13, %k0, %k210891; AVX512BW-NEXT:    korw %k2, %k1, %k110892; AVX512BW-NEXT:    movw $-9, %ax10893; AVX512BW-NEXT:    kmovd %eax, %k210894; AVX512BW-NEXT:    kmovw %k2, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill10895; AVX512BW-NEXT:    kandw %k2, %k1, %k110896; AVX512BW-NEXT:    kshiftrw $12, %k0, %k210897; AVX512BW-NEXT:    korw %k2, %k1, %k110898; AVX512BW-NEXT:    movw $-17, %ax10899; AVX512BW-NEXT:    kmovd %eax, %k210900; AVX512BW-NEXT:    kmovw %k2, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill10901; AVX512BW-NEXT:    kandw %k2, %k1, %k110902; AVX512BW-NEXT:    kshiftrw $11, %k0, %k210903; AVX512BW-NEXT:    korw %k2, %k1, %k110904; AVX512BW-NEXT:    movw $-33, %ax10905; AVX512BW-NEXT:    kmovd %eax, %k210906; AVX512BW-NEXT:    kmovw %k2, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill10907; AVX512BW-NEXT:    kandw %k2, %k1, %k110908; AVX512BW-NEXT:    kshiftrw $10, %k0, %k210909; AVX512BW-NEXT:    korw %k2, %k1, %k110910; AVX512BW-NEXT:    movw $-65, %ax10911; AVX512BW-NEXT:    kmovd %eax, %k210912; AVX512BW-NEXT:    kmovw %k2, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill10913; AVX512BW-NEXT:    kandw %k2, %k1, %k110914; AVX512BW-NEXT:    kshiftrw $9, %k0, %k010915; AVX512BW-NEXT:    korw %k0, %k1, %k010916; AVX512BW-NEXT:    movw $-129, %ax10917; AVX512BW-NEXT:    kmovd %eax, %k110918; AVX512BW-NEXT:    kmovw %k1, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill10919; AVX512BW-NEXT:    kandw %k1, %k0, %k110920; AVX512BW-NEXT:    kmovq (%rdi), %k410921; AVX512BW-NEXT:    kshiftrq $1, %k4, %k010922; AVX512BW-NEXT:    kshiftlw $15, %k0, %k010923; AVX512BW-NEXT:    kshiftrw $8, %k0, %k210924; AVX512BW-NEXT:    korw %k2, %k1, %k110925; AVX512BW-NEXT:    movw $-257, %ax # imm = 0xFEFF10926; AVX512BW-NEXT:    kmovd %eax, %k210927; AVX512BW-NEXT:    kmovw %k2, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill10928; AVX512BW-NEXT:    kandw %k2, %k1, %k110929; AVX512BW-NEXT:    kshiftrw $7, %k0, %k210930; AVX512BW-NEXT:    korw %k2, %k1, %k110931; AVX512BW-NEXT:    movw $-513, %ax # imm = 0xFDFF10932; AVX512BW-NEXT:    kmovd %eax, %k210933; AVX512BW-NEXT:    kmovw %k2, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill10934; AVX512BW-NEXT:    kandw %k2, %k1, %k110935; AVX512BW-NEXT:    kshiftrw $6, %k0, %k210936; AVX512BW-NEXT:    korw %k2, %k1, %k110937; AVX512BW-NEXT:    movw $-1025, %ax # imm = 0xFBFF10938; AVX512BW-NEXT:    kmovd %eax, %k510939; AVX512BW-NEXT:    kandw %k5, %k1, %k110940; AVX512BW-NEXT:    kmovw %k5, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill10941; AVX512BW-NEXT:    kshiftrw $5, %k0, %k210942; AVX512BW-NEXT:    korw %k2, %k1, %k110943; AVX512BW-NEXT:    movw $-2049, %ax # imm = 0xF7FF10944; AVX512BW-NEXT:    kmovd %eax, %k210945; AVX512BW-NEXT:    kmovw %k2, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill10946; AVX512BW-NEXT:    kandw %k2, %k1, %k110947; AVX512BW-NEXT:    kshiftrw $4, %k0, %k210948; AVX512BW-NEXT:    korw %k2, %k1, %k110949; AVX512BW-NEXT:    movw $-4097, %ax # imm = 0xEFFF10950; AVX512BW-NEXT:    kmovd %eax, %k210951; AVX512BW-NEXT:    kmovw %k2, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill10952; AVX512BW-NEXT:    kandw %k2, %k1, %k110953; AVX512BW-NEXT:    kshiftrw $3, %k0, %k210954; AVX512BW-NEXT:    korw %k2, %k1, %k110955; AVX512BW-NEXT:    movw $-8193, %ax # imm = 0xDFFF10956; AVX512BW-NEXT:    kmovd %eax, %k210957; AVX512BW-NEXT:    kmovw %k2, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill10958; AVX512BW-NEXT:    kandw %k2, %k1, %k110959; AVX512BW-NEXT:    kshiftrw $2, %k0, %k010960; AVX512BW-NEXT:    korw %k0, %k1, %k010961; AVX512BW-NEXT:    movw $-16385, %ax # imm = 0xBFFF10962; AVX512BW-NEXT:    kmovd %eax, %k110963; AVX512BW-NEXT:    kmovw %k1, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill10964; AVX512BW-NEXT:    kandw %k1, %k0, %k010965; AVX512BW-NEXT:    kshiftrq $2, %k4, %k110966; AVX512BW-NEXT:    kshiftlw $14, %k1, %k710967; AVX512BW-NEXT:    korw %k7, %k0, %k010968; AVX512BW-NEXT:    kshiftlw $1, %k0, %k010969; AVX512BW-NEXT:    kshiftrw $1, %k0, %k010970; AVX512BW-NEXT:    kshiftlw $15, %k1, %k710971; AVX512BW-NEXT:    korw %k7, %k0, %k610972; AVX512BW-NEXT:    vmovdqa32 (%rsi), %zmm0 {%k6} {z}10973; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload10974; AVX512BW-NEXT:    kandw %k2, %k1, %k010975; AVX512BW-NEXT:    kshiftrw $14, %k7, %k110976; AVX512BW-NEXT:    korw %k1, %k0, %k010977; AVX512BW-NEXT:    kandw %k3, %k0, %k010978; AVX512BW-NEXT:    kshiftrw $13, %k7, %k110979; AVX512BW-NEXT:    korw %k1, %k0, %k010980; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload10981; AVX512BW-NEXT:    kandw %k3, %k0, %k010982; AVX512BW-NEXT:    kshiftrw $12, %k7, %k110983; AVX512BW-NEXT:    korw %k1, %k0, %k010984; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload10985; AVX512BW-NEXT:    kandw %k1, %k0, %k010986; AVX512BW-NEXT:    kshiftrw $11, %k7, %k110987; AVX512BW-NEXT:    korw %k1, %k0, %k010988; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload10989; AVX512BW-NEXT:    kandw %k1, %k0, %k110990; AVX512BW-NEXT:    kmovq %k4, %k710991; AVX512BW-NEXT:    kmovq %k4, {{[-0-9]+}}(%r{{[sb]}}p) # 8-byte Spill10992; AVX512BW-NEXT:    kshiftrq $3, %k4, %k010993; AVX512BW-NEXT:    kshiftlw $15, %k0, %k010994; AVX512BW-NEXT:    kshiftrw $10, %k0, %k610995; AVX512BW-NEXT:    korw %k6, %k1, %k110996; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload10997; AVX512BW-NEXT:    kandw %k4, %k1, %k110998; AVX512BW-NEXT:    kshiftrw $9, %k0, %k610999; AVX512BW-NEXT:    korw %k6, %k1, %k111000; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload11001; AVX512BW-NEXT:    kandw %k6, %k1, %k111002; AVX512BW-NEXT:    kshiftrw $8, %k0, %k611003; AVX512BW-NEXT:    korw %k6, %k1, %k111004; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload11005; AVX512BW-NEXT:    kandw %k4, %k1, %k111006; AVX512BW-NEXT:    kshiftrw $7, %k0, %k611007; AVX512BW-NEXT:    korw %k6, %k1, %k111008; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload11009; AVX512BW-NEXT:    kandw %k4, %k1, %k111010; AVX512BW-NEXT:    kshiftrw $6, %k0, %k611011; AVX512BW-NEXT:    korw %k6, %k1, %k111012; AVX512BW-NEXT:    kandw %k5, %k1, %k111013; AVX512BW-NEXT:    kshiftrw $5, %k0, %k611014; AVX512BW-NEXT:    korw %k6, %k1, %k111015; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload11016; AVX512BW-NEXT:    kandw %k5, %k1, %k111017; AVX512BW-NEXT:    kshiftrw $4, %k0, %k011018; AVX512BW-NEXT:    korw %k0, %k1, %k011019; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload11020; AVX512BW-NEXT:    kandw %k1, %k0, %k111021; AVX512BW-NEXT:    kshiftrq $4, %k7, %k611022; AVX512BW-NEXT:    kshiftlw $15, %k6, %k011023; AVX512BW-NEXT:    kshiftrw $3, %k0, %k711024; AVX512BW-NEXT:    korw %k7, %k1, %k111025; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k7 # 2-byte Reload11026; AVX512BW-NEXT:    kandw %k7, %k1, %k111027; AVX512BW-NEXT:    kshiftrw $2, %k0, %k711028; AVX512BW-NEXT:    korw %k7, %k1, %k111029; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k7 # 2-byte Reload11030; AVX512BW-NEXT:    kandw %k7, %k1, %k111031; AVX512BW-NEXT:    kshiftlw $14, %k6, %k711032; AVX512BW-NEXT:    korw %k7, %k1, %k111033; AVX512BW-NEXT:    kshiftlw $1, %k1, %k111034; AVX512BW-NEXT:    kshiftrw $1, %k1, %k111035; AVX512BW-NEXT:    korw %k0, %k1, %k111036; AVX512BW-NEXT:    vmovdqa32 64(%rsi), %zmm1 {%k1} {z}11037; AVX512BW-NEXT:    kandw %k2, %k6, %k111038; AVX512BW-NEXT:    kshiftrw $14, %k0, %k611039; AVX512BW-NEXT:    korw %k6, %k1, %k111040; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload11041; AVX512BW-NEXT:    kandw %k2, %k1, %k111042; AVX512BW-NEXT:    kshiftrw $13, %k0, %k011043; AVX512BW-NEXT:    korw %k0, %k1, %k011044; AVX512BW-NEXT:    kandw %k3, %k0, %k111045; AVX512BW-NEXT:    kmovq {{[-0-9]+}}(%r{{[sb]}}p), %k7 # 8-byte Reload11046; AVX512BW-NEXT:    kshiftrq $5, %k7, %k011047; AVX512BW-NEXT:    kshiftlw $15, %k0, %k011048; AVX512BW-NEXT:    kshiftrw $12, %k0, %k611049; AVX512BW-NEXT:    korw %k6, %k1, %k111050; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload11051; AVX512BW-NEXT:    kandw %k3, %k1, %k111052; AVX512BW-NEXT:    kshiftrw $11, %k0, %k611053; AVX512BW-NEXT:    korw %k6, %k1, %k111054; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload11055; AVX512BW-NEXT:    kandw %k3, %k1, %k111056; AVX512BW-NEXT:    kshiftrw $10, %k0, %k611057; AVX512BW-NEXT:    korw %k6, %k1, %k111058; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload11059; AVX512BW-NEXT:    kandw %k3, %k1, %k111060; AVX512BW-NEXT:    kshiftrw $9, %k0, %k611061; AVX512BW-NEXT:    korw %k6, %k1, %k111062; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload11063; AVX512BW-NEXT:    kandw %k3, %k1, %k111064; AVX512BW-NEXT:    kshiftrw $8, %k0, %k611065; AVX512BW-NEXT:    korw %k6, %k1, %k111066; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload11067; AVX512BW-NEXT:    kandw %k6, %k1, %k111068; AVX512BW-NEXT:    kshiftrw $7, %k0, %k611069; AVX512BW-NEXT:    korw %k6, %k1, %k111070; AVX512BW-NEXT:    kandw %k4, %k1, %k111071; AVX512BW-NEXT:    kshiftrw $6, %k0, %k011072; AVX512BW-NEXT:    korw %k0, %k1, %k011073; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload11074; AVX512BW-NEXT:    kandw %k1, %k0, %k611075; AVX512BW-NEXT:    kshiftrq $6, %k7, %k011076; AVX512BW-NEXT:    kshiftlw $15, %k0, %k111077; AVX512BW-NEXT:    kshiftrw $5, %k1, %k711078; AVX512BW-NEXT:    korw %k7, %k6, %k611079; AVX512BW-NEXT:    kandw %k5, %k6, %k611080; AVX512BW-NEXT:    kshiftrw $4, %k1, %k711081; AVX512BW-NEXT:    korw %k7, %k6, %k611082; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload11083; AVX512BW-NEXT:    kandw %k4, %k6, %k611084; AVX512BW-NEXT:    kshiftrw $3, %k1, %k711085; AVX512BW-NEXT:    korw %k7, %k6, %k611086; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload11087; AVX512BW-NEXT:    kandw %k4, %k6, %k611088; AVX512BW-NEXT:    kshiftrw $2, %k1, %k711089; AVX512BW-NEXT:    korw %k7, %k6, %k611090; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload11091; AVX512BW-NEXT:    kandw %k4, %k6, %k611092; AVX512BW-NEXT:    kshiftlw $14, %k0, %k711093; AVX512BW-NEXT:    korw %k7, %k6, %k611094; AVX512BW-NEXT:    kshiftlw $1, %k6, %k611095; AVX512BW-NEXT:    kshiftrw $1, %k6, %k611096; AVX512BW-NEXT:    korw %k1, %k6, %k111097; AVX512BW-NEXT:    vmovdqa32 128(%rsi), %zmm2 {%k1} {z}11098; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload11099; AVX512BW-NEXT:    kandw %k1, %k0, %k111100; AVX512BW-NEXT:    kmovq {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 8-byte Reload11101; AVX512BW-NEXT:    kshiftrq $7, %k4, %k011102; AVX512BW-NEXT:    kshiftlw $15, %k0, %k011103; AVX512BW-NEXT:    kshiftrw $14, %k0, %k611104; AVX512BW-NEXT:    korw %k6, %k1, %k111105; AVX512BW-NEXT:    kandw %k2, %k1, %k111106; AVX512BW-NEXT:    kshiftrw $13, %k0, %k611107; AVX512BW-NEXT:    korw %k6, %k1, %k111108; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload11109; AVX512BW-NEXT:    kandw %k2, %k1, %k111110; AVX512BW-NEXT:    kshiftrw $12, %k0, %k611111; AVX512BW-NEXT:    korw %k6, %k1, %k111112; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload11113; AVX512BW-NEXT:    kandw %k5, %k1, %k111114; AVX512BW-NEXT:    kshiftrw $11, %k0, %k611115; AVX512BW-NEXT:    korw %k6, %k1, %k111116; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload11117; AVX512BW-NEXT:    kandw %k5, %k1, %k111118; AVX512BW-NEXT:    kshiftrw $10, %k0, %k611119; AVX512BW-NEXT:    korw %k6, %k1, %k111120; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload11121; AVX512BW-NEXT:    kandw %k6, %k1, %k111122; AVX512BW-NEXT:    kshiftrw $9, %k0, %k611123; AVX512BW-NEXT:    korw %k6, %k1, %k111124; AVX512BW-NEXT:    kandw %k3, %k1, %k111125; AVX512BW-NEXT:    kshiftrw $8, %k0, %k011126; AVX512BW-NEXT:    korw %k0, %k1, %k011127; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload11128; AVX512BW-NEXT:    kandw %k1, %k0, %k111129; AVX512BW-NEXT:    kshiftrq $8, %k4, %k011130; AVX512BW-NEXT:    kmovq %k4, %k511131; AVX512BW-NEXT:    kshiftlw $15, %k0, %k611132; AVX512BW-NEXT:    kshiftrw $7, %k6, %k711133; AVX512BW-NEXT:    korw %k7, %k1, %k111134; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload11135; AVX512BW-NEXT:    kandw %k3, %k1, %k111136; AVX512BW-NEXT:    kshiftrw $6, %k6, %k711137; AVX512BW-NEXT:    korw %k7, %k1, %k111138; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload11139; AVX512BW-NEXT:    kandw %k4, %k1, %k111140; AVX512BW-NEXT:    kshiftrw $5, %k6, %k711141; AVX512BW-NEXT:    korw %k7, %k1, %k111142; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload11143; AVX512BW-NEXT:    kandw %k3, %k1, %k111144; AVX512BW-NEXT:    kshiftrw $4, %k6, %k711145; AVX512BW-NEXT:    korw %k7, %k1, %k111146; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload11147; AVX512BW-NEXT:    kandw %k3, %k1, %k111148; AVX512BW-NEXT:    kshiftrw $3, %k6, %k711149; AVX512BW-NEXT:    korw %k7, %k1, %k111150; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload11151; AVX512BW-NEXT:    kandw %k3, %k1, %k111152; AVX512BW-NEXT:    kshiftrw $2, %k6, %k611153; AVX512BW-NEXT:    korw %k6, %k1, %k111154; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload11155; AVX512BW-NEXT:    kandw %k6, %k1, %k111156; AVX512BW-NEXT:    kshiftlw $14, %k0, %k011157; AVX512BW-NEXT:    korw %k0, %k1, %k011158; AVX512BW-NEXT:    kshiftlw $1, %k0, %k011159; AVX512BW-NEXT:    kshiftrw $1, %k0, %k011160; AVX512BW-NEXT:    kshiftrq $9, %k5, %k111161; AVX512BW-NEXT:    kshiftlw $15, %k1, %k611162; AVX512BW-NEXT:    korw %k6, %k0, %k711163; AVX512BW-NEXT:    vmovdqa32 192(%rsi), %zmm3 {%k7} {z}11164; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k0 # 2-byte Reload11165; AVX512BW-NEXT:    kandw %k0, %k1, %k011166; AVX512BW-NEXT:    kshiftrw $14, %k6, %k111167; AVX512BW-NEXT:    korw %k1, %k0, %k011168; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload11169; AVX512BW-NEXT:    kandw %k1, %k0, %k011170; AVX512BW-NEXT:    kshiftrw $13, %k6, %k111171; AVX512BW-NEXT:    korw %k1, %k0, %k011172; AVX512BW-NEXT:    kandw %k2, %k0, %k011173; AVX512BW-NEXT:    kshiftrw $12, %k6, %k111174; AVX512BW-NEXT:    korw %k1, %k0, %k011175; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload11176; AVX512BW-NEXT:    kandw %k2, %k0, %k011177; AVX512BW-NEXT:    kshiftrw $11, %k6, %k111178; AVX512BW-NEXT:    korw %k1, %k0, %k011179; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload11180; AVX512BW-NEXT:    kandw %k1, %k0, %k011181; AVX512BW-NEXT:    kshiftrw $10, %k6, %k111182; AVX512BW-NEXT:    korw %k1, %k0, %k011183; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload11184; AVX512BW-NEXT:    kandw %k1, %k0, %k111185; AVX512BW-NEXT:    kshiftrq $10, %k5, %k011186; AVX512BW-NEXT:    kshiftlw $15, %k0, %k011187; AVX512BW-NEXT:    kshiftrw $9, %k0, %k611188; AVX512BW-NEXT:    korw %k6, %k1, %k111189; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload11190; AVX512BW-NEXT:    kandw %k6, %k1, %k111191; AVX512BW-NEXT:    kshiftrw $8, %k0, %k611192; AVX512BW-NEXT:    korw %k6, %k1, %k111193; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload11194; AVX512BW-NEXT:    kandw %k6, %k1, %k111195; AVX512BW-NEXT:    kshiftrw $7, %k0, %k611196; AVX512BW-NEXT:    korw %k6, %k1, %k111197; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload11198; AVX512BW-NEXT:    kandw %k6, %k1, %k111199; AVX512BW-NEXT:    kshiftrw $6, %k0, %k611200; AVX512BW-NEXT:    korw %k6, %k1, %k111201; AVX512BW-NEXT:    kandw %k4, %k1, %k111202; AVX512BW-NEXT:    kshiftrw $5, %k0, %k611203; AVX512BW-NEXT:    korw %k6, %k1, %k111204; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload11205; AVX512BW-NEXT:    kandw %k4, %k1, %k111206; AVX512BW-NEXT:    kshiftrw $4, %k0, %k611207; AVX512BW-NEXT:    korw %k6, %k1, %k111208; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload11209; AVX512BW-NEXT:    kandw %k4, %k1, %k111210; AVX512BW-NEXT:    kshiftrw $3, %k0, %k011211; AVX512BW-NEXT:    korw %k0, %k1, %k011212; AVX512BW-NEXT:    kandw %k3, %k0, %k111213; AVX512BW-NEXT:    kshiftrq $11, %k5, %k611214; AVX512BW-NEXT:    kmovq %k5, %k411215; AVX512BW-NEXT:    kshiftlw $15, %k6, %k011216; AVX512BW-NEXT:    kshiftrw $2, %k0, %k711217; AVX512BW-NEXT:    korw %k7, %k1, %k111218; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload11219; AVX512BW-NEXT:    kandw %k5, %k1, %k111220; AVX512BW-NEXT:    kshiftlw $14, %k6, %k711221; AVX512BW-NEXT:    korw %k7, %k1, %k111222; AVX512BW-NEXT:    kshiftlw $1, %k1, %k111223; AVX512BW-NEXT:    kshiftrw $1, %k1, %k111224; AVX512BW-NEXT:    korw %k0, %k1, %k111225; AVX512BW-NEXT:    vmovdqa32 256(%rsi), %zmm4 {%k1} {z}11226; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload11227; AVX512BW-NEXT:    kandw %k1, %k6, %k111228; AVX512BW-NEXT:    kshiftrw $14, %k0, %k611229; AVX512BW-NEXT:    korw %k6, %k1, %k111230; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload11231; AVX512BW-NEXT:    kandw %k3, %k1, %k111232; AVX512BW-NEXT:    kshiftrw $13, %k0, %k611233; AVX512BW-NEXT:    korw %k6, %k1, %k111234; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload11235; AVX512BW-NEXT:    kandw %k3, %k1, %k111236; AVX512BW-NEXT:    kshiftrw $12, %k0, %k011237; AVX512BW-NEXT:    korw %k0, %k1, %k011238; AVX512BW-NEXT:    kandw %k2, %k0, %k111239; AVX512BW-NEXT:    kmovq %k4, %k711240; AVX512BW-NEXT:    kshiftrq $12, %k4, %k011241; AVX512BW-NEXT:    kshiftlw $15, %k0, %k011242; AVX512BW-NEXT:    kshiftrw $11, %k0, %k611243; AVX512BW-NEXT:    korw %k6, %k1, %k111244; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload11245; AVX512BW-NEXT:    kandw %k2, %k1, %k111246; AVX512BW-NEXT:    kshiftrw $10, %k0, %k611247; AVX512BW-NEXT:    korw %k6, %k1, %k111248; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload11249; AVX512BW-NEXT:    kandw %k3, %k1, %k111250; AVX512BW-NEXT:    kshiftrw $9, %k0, %k611251; AVX512BW-NEXT:    korw %k6, %k1, %k111252; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload11253; AVX512BW-NEXT:    kandw %k3, %k1, %k111254; AVX512BW-NEXT:    kshiftrw $8, %k0, %k611255; AVX512BW-NEXT:    korw %k6, %k1, %k111256; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload11257; AVX512BW-NEXT:    kandw %k4, %k1, %k111258; AVX512BW-NEXT:    kshiftrw $7, %k0, %k611259; AVX512BW-NEXT:    korw %k6, %k1, %k111260; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload11261; AVX512BW-NEXT:    kandw %k3, %k1, %k111262; AVX512BW-NEXT:    kshiftrw $6, %k0, %k611263; AVX512BW-NEXT:    korw %k6, %k1, %k111264; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload11265; AVX512BW-NEXT:    kandw %k6, %k1, %k111266; AVX512BW-NEXT:    kshiftrw $5, %k0, %k011267; AVX512BW-NEXT:    korw %k0, %k1, %k011268; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload11269; AVX512BW-NEXT:    kandw %k1, %k0, %k611270; AVX512BW-NEXT:    kshiftrq $13, %k7, %k011271; AVX512BW-NEXT:    kshiftlw $15, %k0, %k111272; AVX512BW-NEXT:    kshiftrw $4, %k1, %k711273; AVX512BW-NEXT:    korw %k7, %k6, %k611274; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k7 # 2-byte Reload11275; AVX512BW-NEXT:    kandw %k7, %k6, %k611276; AVX512BW-NEXT:    kshiftrw $3, %k1, %k711277; AVX512BW-NEXT:    korw %k7, %k6, %k611278; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k7 # 2-byte Reload11279; AVX512BW-NEXT:    kandw %k7, %k6, %k611280; AVX512BW-NEXT:    kshiftrw $2, %k1, %k711281; AVX512BW-NEXT:    korw %k7, %k6, %k611282; AVX512BW-NEXT:    kandw %k5, %k6, %k611283; AVX512BW-NEXT:    kshiftlw $14, %k0, %k711284; AVX512BW-NEXT:    korw %k7, %k6, %k611285; AVX512BW-NEXT:    kshiftlw $1, %k6, %k611286; AVX512BW-NEXT:    kshiftrw $1, %k6, %k611287; AVX512BW-NEXT:    korw %k1, %k6, %k611288; AVX512BW-NEXT:    vmovdqa32 320(%rsi), %zmm5 {%k6} {z}11289; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload11290; AVX512BW-NEXT:    kandw %k5, %k0, %k011291; AVX512BW-NEXT:    kshiftrw $14, %k1, %k111292; AVX512BW-NEXT:    korw %k1, %k0, %k011293; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload11294; AVX512BW-NEXT:    kandw %k1, %k0, %k111295; AVX512BW-NEXT:    kmovq {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 8-byte Reload11296; AVX512BW-NEXT:    kshiftrq $14, %k5, %k011297; AVX512BW-NEXT:    kshiftlw $15, %k0, %k011298; AVX512BW-NEXT:    kshiftrw $13, %k0, %k611299; AVX512BW-NEXT:    korw %k6, %k1, %k111300; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload11301; AVX512BW-NEXT:    kandw %k6, %k1, %k111302; AVX512BW-NEXT:    kshiftrw $12, %k0, %k611303; AVX512BW-NEXT:    korw %k6, %k1, %k111304; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload11305; AVX512BW-NEXT:    kandw %k6, %k1, %k111306; AVX512BW-NEXT:    kshiftrw $11, %k0, %k611307; AVX512BW-NEXT:    korw %k6, %k1, %k111308; AVX512BW-NEXT:    kandw %k2, %k1, %k111309; AVX512BW-NEXT:    kshiftrw $10, %k0, %k611310; AVX512BW-NEXT:    korw %k6, %k1, %k111311; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload11312; AVX512BW-NEXT:    kandw %k2, %k1, %k111313; AVX512BW-NEXT:    kshiftrw $9, %k0, %k611314; AVX512BW-NEXT:    korw %k6, %k1, %k111315; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload11316; AVX512BW-NEXT:    kandw %k6, %k1, %k111317; AVX512BW-NEXT:    kshiftrw $8, %k0, %k611318; AVX512BW-NEXT:    korw %k6, %k1, %k111319; AVX512BW-NEXT:    kandw %k4, %k1, %k111320; AVX512BW-NEXT:    kshiftrw $7, %k0, %k011321; AVX512BW-NEXT:    korw %k0, %k1, %k011322; AVX512BW-NEXT:    kandw %k3, %k0, %k611323; AVX512BW-NEXT:    kshiftrq $15, %k5, %k111324; AVX512BW-NEXT:    kshiftlw $15, %k1, %k011325; AVX512BW-NEXT:    kshiftrw $6, %k0, %k711326; AVX512BW-NEXT:    korw %k7, %k6, %k611327; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload11328; AVX512BW-NEXT:    kandw %k3, %k6, %k611329; AVX512BW-NEXT:    kshiftrw $5, %k0, %k711330; AVX512BW-NEXT:    korw %k7, %k6, %k611331; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload11332; AVX512BW-NEXT:    kandw %k3, %k6, %k611333; AVX512BW-NEXT:    kshiftrw $4, %k0, %k711334; AVX512BW-NEXT:    korw %k7, %k6, %k611335; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload11336; AVX512BW-NEXT:    kandw %k4, %k6, %k611337; AVX512BW-NEXT:    kshiftrw $3, %k0, %k711338; AVX512BW-NEXT:    korw %k7, %k6, %k611339; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload11340; AVX512BW-NEXT:    kandw %k4, %k6, %k611341; AVX512BW-NEXT:    kshiftrw $2, %k0, %k711342; AVX512BW-NEXT:    korw %k7, %k6, %k611343; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload11344; AVX512BW-NEXT:    kandw %k4, %k6, %k611345; AVX512BW-NEXT:    kshiftlw $14, %k1, %k111346; AVX512BW-NEXT:    korw %k1, %k6, %k111347; AVX512BW-NEXT:    kshiftlw $1, %k1, %k111348; AVX512BW-NEXT:    kshiftrw $1, %k1, %k111349; AVX512BW-NEXT:    korw %k0, %k1, %k111350; AVX512BW-NEXT:    vmovdqa32 384(%rsi), %zmm6 {%k1} {z}11351; AVX512BW-NEXT:    kshiftrq $16, %k5, %k011352; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload11353; AVX512BW-NEXT:    kandw %k1, %k0, %k111354; AVX512BW-NEXT:    kshiftlw $15, %k0, %k011355; AVX512BW-NEXT:    kshiftrw $14, %k0, %k611356; AVX512BW-NEXT:    korw %k6, %k1, %k111357; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload11358; AVX512BW-NEXT:    kandw %k6, %k1, %k111359; AVX512BW-NEXT:    kshiftrw $13, %k0, %k611360; AVX512BW-NEXT:    korw %k6, %k1, %k111361; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload11362; AVX512BW-NEXT:    kandw %k6, %k1, %k111363; AVX512BW-NEXT:    kshiftrw $12, %k0, %k611364; AVX512BW-NEXT:    korw %k6, %k1, %k111365; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload11366; AVX512BW-NEXT:    kandw %k6, %k1, %k111367; AVX512BW-NEXT:    kshiftrw $11, %k0, %k611368; AVX512BW-NEXT:    korw %k6, %k1, %k111369; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload11370; AVX512BW-NEXT:    kandw %k6, %k1, %k111371; AVX512BW-NEXT:    kshiftrw $10, %k0, %k611372; AVX512BW-NEXT:    korw %k6, %k1, %k111373; AVX512BW-NEXT:    kandw %k2, %k1, %k111374; AVX512BW-NEXT:    kshiftrw $9, %k0, %k011375; AVX512BW-NEXT:    korw %k0, %k1, %k011376; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload11377; AVX512BW-NEXT:    kandw %k2, %k0, %k111378; AVX512BW-NEXT:    kshiftrq $17, %k5, %k011379; AVX512BW-NEXT:    kmovq %k5, %k711380; AVX512BW-NEXT:    kshiftlw $15, %k0, %k011381; AVX512BW-NEXT:    kshiftrw $8, %k0, %k611382; AVX512BW-NEXT:    korw %k6, %k1, %k111383; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload11384; AVX512BW-NEXT:    kandw %k5, %k1, %k111385; AVX512BW-NEXT:    kshiftrw $7, %k0, %k611386; AVX512BW-NEXT:    korw %k6, %k1, %k111387; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload11388; AVX512BW-NEXT:    kandw %k5, %k1, %k111389; AVX512BW-NEXT:    kshiftrw $6, %k0, %k611390; AVX512BW-NEXT:    korw %k6, %k1, %k111391; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload11392; AVX512BW-NEXT:    kandw %k5, %k1, %k111393; AVX512BW-NEXT:    kshiftrw $5, %k0, %k611394; AVX512BW-NEXT:    korw %k6, %k1, %k111395; AVX512BW-NEXT:    kandw %k3, %k1, %k111396; AVX512BW-NEXT:    kshiftrw $4, %k0, %k611397; AVX512BW-NEXT:    korw %k6, %k1, %k111398; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload11399; AVX512BW-NEXT:    kandw %k3, %k1, %k111400; AVX512BW-NEXT:    kshiftrw $3, %k0, %k611401; AVX512BW-NEXT:    korw %k6, %k1, %k111402; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload11403; AVX512BW-NEXT:    kandw %k3, %k1, %k111404; AVX512BW-NEXT:    kshiftrw $2, %k0, %k011405; AVX512BW-NEXT:    korw %k0, %k1, %k011406; AVX512BW-NEXT:    kandw %k4, %k0, %k011407; AVX512BW-NEXT:    kshiftrq $18, %k7, %k111408; AVX512BW-NEXT:    kshiftlw $14, %k1, %k611409; AVX512BW-NEXT:    korw %k6, %k0, %k011410; AVX512BW-NEXT:    kshiftlw $1, %k0, %k011411; AVX512BW-NEXT:    kshiftrw $1, %k0, %k011412; AVX512BW-NEXT:    kshiftlw $15, %k1, %k611413; AVX512BW-NEXT:    korw %k6, %k0, %k711414; AVX512BW-NEXT:    vmovdqa32 448(%rsi), %zmm7 {%k7} {z}11415; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload11416; AVX512BW-NEXT:    kandw %k5, %k1, %k011417; AVX512BW-NEXT:    kshiftrw $14, %k6, %k111418; AVX512BW-NEXT:    korw %k1, %k0, %k011419; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload11420; AVX512BW-NEXT:    kandw %k4, %k0, %k011421; AVX512BW-NEXT:    kshiftrw $13, %k6, %k111422; AVX512BW-NEXT:    korw %k1, %k0, %k011423; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload11424; AVX512BW-NEXT:    kandw %k1, %k0, %k011425; AVX512BW-NEXT:    kshiftrw $12, %k6, %k111426; AVX512BW-NEXT:    korw %k1, %k0, %k011427; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload11428; AVX512BW-NEXT:    kandw %k3, %k0, %k011429; AVX512BW-NEXT:    kshiftrw $11, %k6, %k111430; AVX512BW-NEXT:    korw %k1, %k0, %k011431; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload11432; AVX512BW-NEXT:    kandw %k1, %k0, %k111433; AVX512BW-NEXT:    kmovq {{[-0-9]+}}(%r{{[sb]}}p), %k7 # 8-byte Reload11434; AVX512BW-NEXT:    kshiftrq $19, %k7, %k011435; AVX512BW-NEXT:    kshiftlw $15, %k0, %k011436; AVX512BW-NEXT:    kshiftrw $10, %k0, %k611437; AVX512BW-NEXT:    korw %k6, %k1, %k111438; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload11439; AVX512BW-NEXT:    kandw %k6, %k1, %k111440; AVX512BW-NEXT:    kshiftrw $9, %k0, %k611441; AVX512BW-NEXT:    korw %k6, %k1, %k111442; AVX512BW-NEXT:    kandw %k2, %k1, %k111443; AVX512BW-NEXT:    kshiftrw $8, %k0, %k611444; AVX512BW-NEXT:    korw %k6, %k1, %k111445; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload11446; AVX512BW-NEXT:    kandw %k2, %k1, %k111447; AVX512BW-NEXT:    kshiftrw $7, %k0, %k611448; AVX512BW-NEXT:    korw %k6, %k1, %k111449; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload11450; AVX512BW-NEXT:    kandw %k6, %k1, %k111451; AVX512BW-NEXT:    kshiftrw $6, %k0, %k611452; AVX512BW-NEXT:    korw %k6, %k1, %k111453; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload11454; AVX512BW-NEXT:    kandw %k6, %k1, %k111455; AVX512BW-NEXT:    kshiftrw $5, %k0, %k611456; AVX512BW-NEXT:    korw %k6, %k1, %k111457; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload11458; AVX512BW-NEXT:    kandw %k6, %k1, %k111459; AVX512BW-NEXT:    kshiftrw $4, %k0, %k011460; AVX512BW-NEXT:    korw %k0, %k1, %k011461; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload11462; AVX512BW-NEXT:    kandw %k1, %k0, %k111463; AVX512BW-NEXT:    kshiftrq $20, %k7, %k611464; AVX512BW-NEXT:    kshiftlw $15, %k6, %k011465; AVX512BW-NEXT:    kshiftrw $3, %k0, %k711466; AVX512BW-NEXT:    korw %k7, %k1, %k111467; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k7 # 2-byte Reload11468; AVX512BW-NEXT:    kandw %k7, %k1, %k111469; AVX512BW-NEXT:    kshiftrw $2, %k0, %k711470; AVX512BW-NEXT:    korw %k7, %k1, %k111471; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k7 # 2-byte Reload11472; AVX512BW-NEXT:    kandw %k7, %k1, %k111473; AVX512BW-NEXT:    kshiftlw $14, %k6, %k711474; AVX512BW-NEXT:    korw %k7, %k1, %k111475; AVX512BW-NEXT:    kshiftlw $1, %k1, %k111476; AVX512BW-NEXT:    kshiftrw $1, %k1, %k111477; AVX512BW-NEXT:    korw %k0, %k1, %k111478; AVX512BW-NEXT:    vmovdqa32 512(%rsi), %zmm8 {%k1} {z}11479; AVX512BW-NEXT:    kandw %k5, %k6, %k111480; AVX512BW-NEXT:    kshiftrw $14, %k0, %k611481; AVX512BW-NEXT:    korw %k6, %k1, %k111482; AVX512BW-NEXT:    kandw %k4, %k1, %k111483; AVX512BW-NEXT:    kshiftrw $13, %k0, %k011484; AVX512BW-NEXT:    korw %k0, %k1, %k011485; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload11486; AVX512BW-NEXT:    kandw %k1, %k0, %k111487; AVX512BW-NEXT:    kmovq {{[-0-9]+}}(%r{{[sb]}}p), %k7 # 8-byte Reload11488; AVX512BW-NEXT:    kshiftrq $21, %k7, %k011489; AVX512BW-NEXT:    kshiftlw $15, %k0, %k011490; AVX512BW-NEXT:    kshiftrw $12, %k0, %k611491; AVX512BW-NEXT:    korw %k6, %k1, %k111492; AVX512BW-NEXT:    kandw %k3, %k1, %k111493; AVX512BW-NEXT:    kshiftrw $11, %k0, %k611494; AVX512BW-NEXT:    korw %k6, %k1, %k111495; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload11496; AVX512BW-NEXT:    kandw %k3, %k1, %k111497; AVX512BW-NEXT:    kshiftrw $10, %k0, %k611498; AVX512BW-NEXT:    korw %k6, %k1, %k111499; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload11500; AVX512BW-NEXT:    kandw %k3, %k1, %k111501; AVX512BW-NEXT:    kshiftrw $9, %k0, %k611502; AVX512BW-NEXT:    korw %k6, %k1, %k111503; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload11504; AVX512BW-NEXT:    kandw %k4, %k1, %k111505; AVX512BW-NEXT:    kshiftrw $8, %k0, %k611506; AVX512BW-NEXT:    korw %k6, %k1, %k111507; AVX512BW-NEXT:    kandw %k2, %k1, %k111508; AVX512BW-NEXT:    kshiftrw $7, %k0, %k611509; AVX512BW-NEXT:    korw %k6, %k1, %k111510; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload11511; AVX512BW-NEXT:    kandw %k2, %k1, %k111512; AVX512BW-NEXT:    kshiftrw $6, %k0, %k011513; AVX512BW-NEXT:    korw %k0, %k1, %k011514; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload11515; AVX512BW-NEXT:    kandw %k1, %k0, %k611516; AVX512BW-NEXT:    kshiftrq $22, %k7, %k011517; AVX512BW-NEXT:    kshiftlw $15, %k0, %k111518; AVX512BW-NEXT:    kshiftrw $5, %k1, %k711519; AVX512BW-NEXT:    korw %k7, %k6, %k611520; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload11521; AVX512BW-NEXT:    kandw %k3, %k6, %k611522; AVX512BW-NEXT:    kshiftrw $4, %k1, %k711523; AVX512BW-NEXT:    korw %k7, %k6, %k611524; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload11525; AVX512BW-NEXT:    kandw %k3, %k6, %k611526; AVX512BW-NEXT:    kshiftrw $3, %k1, %k711527; AVX512BW-NEXT:    korw %k7, %k6, %k611528; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload11529; AVX512BW-NEXT:    kandw %k3, %k6, %k611530; AVX512BW-NEXT:    kshiftrw $2, %k1, %k711531; AVX512BW-NEXT:    korw %k7, %k6, %k611532; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload11533; AVX512BW-NEXT:    kandw %k3, %k6, %k611534; AVX512BW-NEXT:    kshiftlw $14, %k0, %k711535; AVX512BW-NEXT:    korw %k7, %k6, %k611536; AVX512BW-NEXT:    kshiftlw $1, %k6, %k611537; AVX512BW-NEXT:    kshiftrw $1, %k6, %k611538; AVX512BW-NEXT:    korw %k1, %k6, %k111539; AVX512BW-NEXT:    vmovdqa32 576(%rsi), %zmm9 {%k1} {z}11540; AVX512BW-NEXT:    kandw %k5, %k0, %k111541; AVX512BW-NEXT:    kmovq {{[-0-9]+}}(%r{{[sb]}}p), %k7 # 8-byte Reload11542; AVX512BW-NEXT:    kshiftrq $23, %k7, %k011543; AVX512BW-NEXT:    kshiftlw $15, %k0, %k011544; AVX512BW-NEXT:    kshiftrw $14, %k0, %k611545; AVX512BW-NEXT:    korw %k6, %k1, %k111546; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload11547; AVX512BW-NEXT:    kandw %k3, %k1, %k111548; AVX512BW-NEXT:    kshiftrw $13, %k0, %k611549; AVX512BW-NEXT:    korw %k6, %k1, %k111550; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload11551; AVX512BW-NEXT:    kandw %k3, %k1, %k111552; AVX512BW-NEXT:    kshiftrw $12, %k0, %k611553; AVX512BW-NEXT:    korw %k6, %k1, %k111554; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload11555; AVX512BW-NEXT:    kandw %k6, %k1, %k111556; AVX512BW-NEXT:    kshiftrw $11, %k0, %k611557; AVX512BW-NEXT:    korw %k6, %k1, %k111558; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload11559; AVX512BW-NEXT:    kandw %k6, %k1, %k111560; AVX512BW-NEXT:    kshiftrw $10, %k0, %k611561; AVX512BW-NEXT:    korw %k6, %k1, %k111562; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload11563; AVX512BW-NEXT:    kandw %k6, %k1, %k111564; AVX512BW-NEXT:    kshiftrw $9, %k0, %k611565; AVX512BW-NEXT:    korw %k6, %k1, %k111566; AVX512BW-NEXT:    kandw %k4, %k1, %k111567; AVX512BW-NEXT:    kshiftrw $8, %k0, %k011568; AVX512BW-NEXT:    korw %k0, %k1, %k011569; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload11570; AVX512BW-NEXT:    kandw %k1, %k0, %k111571; AVX512BW-NEXT:    kshiftrq $24, %k7, %k011572; AVX512BW-NEXT:    kshiftlw $15, %k0, %k611573; AVX512BW-NEXT:    kshiftrw $7, %k6, %k711574; AVX512BW-NEXT:    korw %k7, %k1, %k111575; AVX512BW-NEXT:    kandw %k2, %k1, %k111576; AVX512BW-NEXT:    kshiftrw $6, %k6, %k711577; AVX512BW-NEXT:    korw %k7, %k1, %k111578; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload11579; AVX512BW-NEXT:    kandw %k2, %k1, %k111580; AVX512BW-NEXT:    kshiftrw $5, %k6, %k711581; AVX512BW-NEXT:    korw %k7, %k1, %k111582; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload11583; AVX512BW-NEXT:    kandw %k4, %k1, %k111584; AVX512BW-NEXT:    kshiftrw $4, %k6, %k711585; AVX512BW-NEXT:    korw %k7, %k1, %k111586; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload11587; AVX512BW-NEXT:    kandw %k4, %k1, %k111588; AVX512BW-NEXT:    kshiftrw $3, %k6, %k711589; AVX512BW-NEXT:    korw %k7, %k1, %k111590; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload11591; AVX512BW-NEXT:    kandw %k4, %k1, %k111592; AVX512BW-NEXT:    kshiftrw $2, %k6, %k611593; AVX512BW-NEXT:    korw %k6, %k1, %k111594; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload11595; AVX512BW-NEXT:    kandw %k6, %k1, %k111596; AVX512BW-NEXT:    kshiftlw $14, %k0, %k011597; AVX512BW-NEXT:    korw %k0, %k1, %k011598; AVX512BW-NEXT:    kshiftlw $1, %k0, %k011599; AVX512BW-NEXT:    kshiftrw $1, %k0, %k011600; AVX512BW-NEXT:    kmovq {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 8-byte Reload11601; AVX512BW-NEXT:    kshiftrq $25, %k2, %k111602; AVX512BW-NEXT:    kshiftlw $15, %k1, %k611603; AVX512BW-NEXT:    korw %k6, %k0, %k711604; AVX512BW-NEXT:    vmovdqa32 640(%rsi), %zmm10 {%k7} {z}11605; AVX512BW-NEXT:    kandw %k5, %k1, %k011606; AVX512BW-NEXT:    kshiftrw $14, %k6, %k111607; AVX512BW-NEXT:    korw %k1, %k0, %k011608; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload11609; AVX512BW-NEXT:    kandw %k1, %k0, %k011610; AVX512BW-NEXT:    kshiftrw $13, %k6, %k111611; AVX512BW-NEXT:    korw %k1, %k0, %k011612; AVX512BW-NEXT:    kandw %k3, %k0, %k011613; AVX512BW-NEXT:    kshiftrw $12, %k6, %k111614; AVX512BW-NEXT:    korw %k1, %k0, %k011615; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload11616; AVX512BW-NEXT:    kandw %k1, %k0, %k011617; AVX512BW-NEXT:    kshiftrw $11, %k6, %k111618; AVX512BW-NEXT:    korw %k1, %k0, %k011619; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload11620; AVX512BW-NEXT:    kandw %k3, %k0, %k011621; AVX512BW-NEXT:    kshiftrw $10, %k6, %k111622; AVX512BW-NEXT:    korw %k1, %k0, %k011623; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload11624; AVX512BW-NEXT:    kandw %k1, %k0, %k111625; AVX512BW-NEXT:    kmovq %k2, %k711626; AVX512BW-NEXT:    kshiftrq $26, %k2, %k011627; AVX512BW-NEXT:    kshiftlw $15, %k0, %k011628; AVX512BW-NEXT:    kshiftrw $9, %k0, %k611629; AVX512BW-NEXT:    korw %k6, %k1, %k111630; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload11631; AVX512BW-NEXT:    kandw %k5, %k1, %k111632; AVX512BW-NEXT:    kshiftrw $8, %k0, %k611633; AVX512BW-NEXT:    korw %k6, %k1, %k111634; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload11635; AVX512BW-NEXT:    kandw %k5, %k1, %k111636; AVX512BW-NEXT:    kshiftrw $7, %k0, %k611637; AVX512BW-NEXT:    korw %k6, %k1, %k111638; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload11639; AVX512BW-NEXT:    kandw %k5, %k1, %k111640; AVX512BW-NEXT:    kshiftrw $6, %k0, %k611641; AVX512BW-NEXT:    korw %k6, %k1, %k111642; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload11643; AVX512BW-NEXT:    kandw %k2, %k1, %k111644; AVX512BW-NEXT:    kshiftrw $5, %k0, %k611645; AVX512BW-NEXT:    korw %k6, %k1, %k111646; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload11647; AVX512BW-NEXT:    kandw %k2, %k1, %k111648; AVX512BW-NEXT:    kshiftrw $4, %k0, %k611649; AVX512BW-NEXT:    korw %k6, %k1, %k111650; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload11651; AVX512BW-NEXT:    kandw %k5, %k1, %k111652; AVX512BW-NEXT:    kshiftrw $3, %k0, %k011653; AVX512BW-NEXT:    korw %k0, %k1, %k011654; AVX512BW-NEXT:    kandw %k4, %k0, %k111655; AVX512BW-NEXT:    kshiftrq $27, %k7, %k611656; AVX512BW-NEXT:    kshiftlw $15, %k6, %k011657; AVX512BW-NEXT:    kshiftrw $2, %k0, %k711658; AVX512BW-NEXT:    korw %k7, %k1, %k111659; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload11660; AVX512BW-NEXT:    kandw %k4, %k1, %k111661; AVX512BW-NEXT:    kshiftlw $14, %k6, %k711662; AVX512BW-NEXT:    korw %k7, %k1, %k111663; AVX512BW-NEXT:    kshiftlw $1, %k1, %k111664; AVX512BW-NEXT:    kshiftrw $1, %k1, %k111665; AVX512BW-NEXT:    korw %k0, %k1, %k111666; AVX512BW-NEXT:    vmovdqa32 704(%rsi), %zmm11 {%k1} {z}11667; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload11668; AVX512BW-NEXT:    kandw %k1, %k6, %k111669; AVX512BW-NEXT:    kshiftrw $14, %k0, %k611670; AVX512BW-NEXT:    korw %k6, %k1, %k111671; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload11672; AVX512BW-NEXT:    kandw %k4, %k1, %k111673; AVX512BW-NEXT:    kshiftrw $13, %k0, %k611674; AVX512BW-NEXT:    korw %k6, %k1, %k111675; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload11676; AVX512BW-NEXT:    kandw %k4, %k1, %k111677; AVX512BW-NEXT:    kshiftrw $12, %k0, %k011678; AVX512BW-NEXT:    korw %k0, %k1, %k011679; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload11680; AVX512BW-NEXT:    kandw %k4, %k0, %k111681; AVX512BW-NEXT:    kmovq {{[-0-9]+}}(%r{{[sb]}}p), %k7 # 8-byte Reload11682; AVX512BW-NEXT:    kshiftrq $28, %k7, %k011683; AVX512BW-NEXT:    kshiftlw $15, %k0, %k011684; AVX512BW-NEXT:    kshiftrw $11, %k0, %k611685; AVX512BW-NEXT:    korw %k6, %k1, %k111686; AVX512BW-NEXT:    kandw %k3, %k1, %k111687; AVX512BW-NEXT:    kshiftrw $10, %k0, %k611688; AVX512BW-NEXT:    korw %k6, %k1, %k111689; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload11690; AVX512BW-NEXT:    kandw %k3, %k1, %k111691; AVX512BW-NEXT:    kshiftrw $9, %k0, %k611692; AVX512BW-NEXT:    korw %k6, %k1, %k111693; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload11694; AVX512BW-NEXT:    kandw %k3, %k1, %k111695; AVX512BW-NEXT:    kshiftrw $8, %k0, %k611696; AVX512BW-NEXT:    korw %k6, %k1, %k111697; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload11698; AVX512BW-NEXT:    kandw %k3, %k1, %k111699; AVX512BW-NEXT:    kshiftrw $7, %k0, %k611700; AVX512BW-NEXT:    korw %k6, %k1, %k111701; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload11702; AVX512BW-NEXT:    kandw %k3, %k1, %k111703; AVX512BW-NEXT:    kshiftrw $6, %k0, %k611704; AVX512BW-NEXT:    korw %k6, %k1, %k111705; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload11706; AVX512BW-NEXT:    kandw %k3, %k1, %k111707; AVX512BW-NEXT:    kshiftrw $5, %k0, %k011708; AVX512BW-NEXT:    korw %k0, %k1, %k011709; AVX512BW-NEXT:    kandw %k2, %k0, %k611710; AVX512BW-NEXT:    kshiftrq $29, %k7, %k011711; AVX512BW-NEXT:    kshiftlw $15, %k0, %k111712; AVX512BW-NEXT:    kshiftrw $4, %k1, %k711713; AVX512BW-NEXT:    korw %k7, %k6, %k611714; AVX512BW-NEXT:    kandw %k5, %k6, %k611715; AVX512BW-NEXT:    kshiftrw $3, %k1, %k711716; AVX512BW-NEXT:    korw %k7, %k6, %k611717; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload11718; AVX512BW-NEXT:    kandw %k3, %k6, %k611719; AVX512BW-NEXT:    kshiftrw $2, %k1, %k711720; AVX512BW-NEXT:    korw %k7, %k6, %k611721; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload11722; AVX512BW-NEXT:    kandw %k2, %k6, %k611723; AVX512BW-NEXT:    kshiftlw $14, %k0, %k711724; AVX512BW-NEXT:    korw %k7, %k6, %k611725; AVX512BW-NEXT:    kshiftlw $1, %k6, %k611726; AVX512BW-NEXT:    kshiftrw $1, %k6, %k611727; AVX512BW-NEXT:    korw %k1, %k6, %k611728; AVX512BW-NEXT:    vmovdqa32 768(%rsi), %zmm12 {%k6} {z}11729; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload11730; AVX512BW-NEXT:    kandw %k2, %k0, %k011731; AVX512BW-NEXT:    kshiftrw $14, %k1, %k111732; AVX512BW-NEXT:    korw %k1, %k0, %k011733; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload11734; AVX512BW-NEXT:    kandw %k1, %k0, %k111735; AVX512BW-NEXT:    kmovq {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 8-byte Reload11736; AVX512BW-NEXT:    kshiftrq $30, %k5, %k011737; AVX512BW-NEXT:    kshiftlw $15, %k0, %k011738; AVX512BW-NEXT:    kshiftrw $13, %k0, %k611739; AVX512BW-NEXT:    korw %k6, %k1, %k111740; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload11741; AVX512BW-NEXT:    kandw %k6, %k1, %k111742; AVX512BW-NEXT:    kshiftrw $12, %k0, %k611743; AVX512BW-NEXT:    korw %k6, %k1, %k111744; AVX512BW-NEXT:    kandw %k4, %k1, %k111745; AVX512BW-NEXT:    kshiftrw $11, %k0, %k611746; AVX512BW-NEXT:    korw %k6, %k1, %k111747; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload11748; AVX512BW-NEXT:    kandw %k4, %k1, %k111749; AVX512BW-NEXT:    kshiftrw $10, %k0, %k611750; AVX512BW-NEXT:    korw %k6, %k1, %k111751; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload11752; AVX512BW-NEXT:    kandw %k4, %k1, %k111753; AVX512BW-NEXT:    kshiftrw $9, %k0, %k611754; AVX512BW-NEXT:    korw %k6, %k1, %k111755; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload11756; AVX512BW-NEXT:    kandw %k6, %k1, %k111757; AVX512BW-NEXT:    kshiftrw $8, %k0, %k611758; AVX512BW-NEXT:    korw %k6, %k1, %k111759; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload11760; AVX512BW-NEXT:    kandw %k6, %k1, %k111761; AVX512BW-NEXT:    kshiftrw $7, %k0, %k011762; AVX512BW-NEXT:    korw %k0, %k1, %k011763; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload11764; AVX512BW-NEXT:    kandw %k1, %k0, %k611765; AVX512BW-NEXT:    kshiftrq $31, %k5, %k111766; AVX512BW-NEXT:    kshiftlw $15, %k1, %k011767; AVX512BW-NEXT:    kshiftrw $6, %k0, %k711768; AVX512BW-NEXT:    korw %k7, %k6, %k611769; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k7 # 2-byte Reload11770; AVX512BW-NEXT:    kandw %k7, %k6, %k611771; AVX512BW-NEXT:    kshiftrw $5, %k0, %k711772; AVX512BW-NEXT:    korw %k7, %k6, %k611773; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k7 # 2-byte Reload11774; AVX512BW-NEXT:    kandw %k7, %k6, %k611775; AVX512BW-NEXT:    kshiftrw $4, %k0, %k711776; AVX512BW-NEXT:    korw %k7, %k6, %k611777; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k7 # 2-byte Reload11778; AVX512BW-NEXT:    kandw %k7, %k6, %k611779; AVX512BW-NEXT:    kshiftrw $3, %k0, %k711780; AVX512BW-NEXT:    korw %k7, %k6, %k611781; AVX512BW-NEXT:    kandw %k3, %k6, %k611782; AVX512BW-NEXT:    kshiftrw $2, %k0, %k711783; AVX512BW-NEXT:    korw %k7, %k6, %k611784; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload11785; AVX512BW-NEXT:    kandw %k3, %k6, %k611786; AVX512BW-NEXT:    kshiftlw $14, %k1, %k111787; AVX512BW-NEXT:    korw %k1, %k6, %k111788; AVX512BW-NEXT:    kshiftlw $1, %k1, %k111789; AVX512BW-NEXT:    kshiftrw $1, %k1, %k111790; AVX512BW-NEXT:    korw %k0, %k1, %k111791; AVX512BW-NEXT:    vmovdqa32 832(%rsi), %zmm13 {%k1} {z}11792; AVX512BW-NEXT:    kshiftrq $32, %k5, %k011793; AVX512BW-NEXT:    kandw %k2, %k0, %k111794; AVX512BW-NEXT:    kshiftlw $15, %k0, %k011795; AVX512BW-NEXT:    kshiftrw $14, %k0, %k611796; AVX512BW-NEXT:    korw %k6, %k1, %k111797; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload11798; AVX512BW-NEXT:    kandw %k2, %k1, %k111799; AVX512BW-NEXT:    kshiftrw $13, %k0, %k611800; AVX512BW-NEXT:    korw %k6, %k1, %k111801; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload11802; AVX512BW-NEXT:    kandw %k6, %k1, %k111803; AVX512BW-NEXT:    kshiftrw $12, %k0, %k611804; AVX512BW-NEXT:    korw %k6, %k1, %k111805; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload11806; AVX512BW-NEXT:    kandw %k6, %k1, %k111807; AVX512BW-NEXT:    kshiftrw $11, %k0, %k611808; AVX512BW-NEXT:    korw %k6, %k1, %k111809; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload11810; AVX512BW-NEXT:    kandw %k6, %k1, %k111811; AVX512BW-NEXT:    kshiftrw $10, %k0, %k611812; AVX512BW-NEXT:    korw %k6, %k1, %k111813; AVX512BW-NEXT:    kandw %k4, %k1, %k111814; AVX512BW-NEXT:    kshiftrw $9, %k0, %k011815; AVX512BW-NEXT:    korw %k0, %k1, %k011816; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload11817; AVX512BW-NEXT:    kandw %k1, %k0, %k111818; AVX512BW-NEXT:    kshiftrq $33, %k5, %k011819; AVX512BW-NEXT:    kmovq %k5, %k711820; AVX512BW-NEXT:    kshiftlw $15, %k0, %k011821; AVX512BW-NEXT:    kshiftrw $8, %k0, %k611822; AVX512BW-NEXT:    korw %k6, %k1, %k111823; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload11824; AVX512BW-NEXT:    kandw %k4, %k1, %k111825; AVX512BW-NEXT:    kshiftrw $7, %k0, %k611826; AVX512BW-NEXT:    korw %k6, %k1, %k111827; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload11828; AVX512BW-NEXT:    kandw %k5, %k1, %k111829; AVX512BW-NEXT:    kshiftrw $6, %k0, %k611830; AVX512BW-NEXT:    korw %k6, %k1, %k111831; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload11832; AVX512BW-NEXT:    kandw %k4, %k1, %k111833; AVX512BW-NEXT:    kshiftrw $5, %k0, %k611834; AVX512BW-NEXT:    korw %k6, %k1, %k111835; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload11836; AVX512BW-NEXT:    kandw %k4, %k1, %k111837; AVX512BW-NEXT:    kshiftrw $4, %k0, %k611838; AVX512BW-NEXT:    korw %k6, %k1, %k111839; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload11840; AVX512BW-NEXT:    kandw %k4, %k1, %k111841; AVX512BW-NEXT:    kshiftrw $3, %k0, %k611842; AVX512BW-NEXT:    korw %k6, %k1, %k111843; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload11844; AVX512BW-NEXT:    kandw %k4, %k1, %k111845; AVX512BW-NEXT:    kshiftrw $2, %k0, %k011846; AVX512BW-NEXT:    korw %k0, %k1, %k011847; AVX512BW-NEXT:    kandw %k3, %k0, %k011848; AVX512BW-NEXT:    kmovq %k7, %k311849; AVX512BW-NEXT:    kshiftrq $34, %k7, %k111850; AVX512BW-NEXT:    kshiftlw $14, %k1, %k611851; AVX512BW-NEXT:    korw %k6, %k0, %k011852; AVX512BW-NEXT:    kshiftlw $1, %k0, %k011853; AVX512BW-NEXT:    kshiftrw $1, %k0, %k011854; AVX512BW-NEXT:    kshiftlw $15, %k1, %k611855; AVX512BW-NEXT:    korw %k6, %k0, %k711856; AVX512BW-NEXT:    vmovdqa32 896(%rsi), %zmm14 {%k7} {z}11857; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k0 # 2-byte Reload11858; AVX512BW-NEXT:    kandw %k0, %k1, %k011859; AVX512BW-NEXT:    kshiftrw $14, %k6, %k111860; AVX512BW-NEXT:    korw %k1, %k0, %k011861; AVX512BW-NEXT:    kandw %k2, %k0, %k011862; AVX512BW-NEXT:    kshiftrw $13, %k6, %k111863; AVX512BW-NEXT:    korw %k1, %k0, %k011864; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload11865; AVX512BW-NEXT:    kandw %k2, %k0, %k011866; AVX512BW-NEXT:    kshiftrw $12, %k6, %k111867; AVX512BW-NEXT:    korw %k1, %k0, %k011868; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload11869; AVX512BW-NEXT:    kandw %k1, %k0, %k011870; AVX512BW-NEXT:    kshiftrw $11, %k6, %k111871; AVX512BW-NEXT:    korw %k1, %k0, %k011872; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload11873; AVX512BW-NEXT:    kandw %k1, %k0, %k111874; AVX512BW-NEXT:    kshiftrq $35, %k3, %k011875; AVX512BW-NEXT:    kmovq %k3, %k711876; AVX512BW-NEXT:    kshiftlw $15, %k0, %k011877; AVX512BW-NEXT:    kshiftrw $10, %k0, %k611878; AVX512BW-NEXT:    korw %k6, %k1, %k111879; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload11880; AVX512BW-NEXT:    kandw %k3, %k1, %k111881; AVX512BW-NEXT:    kshiftrw $9, %k0, %k611882; AVX512BW-NEXT:    korw %k6, %k1, %k111883; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload11884; AVX512BW-NEXT:    kandw %k4, %k1, %k111885; AVX512BW-NEXT:    kshiftrw $8, %k0, %k611886; AVX512BW-NEXT:    korw %k6, %k1, %k111887; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload11888; AVX512BW-NEXT:    kandw %k3, %k1, %k111889; AVX512BW-NEXT:    kshiftrw $7, %k0, %k611890; AVX512BW-NEXT:    korw %k6, %k1, %k111891; AVX512BW-NEXT:    kandw %k5, %k1, %k111892; AVX512BW-NEXT:    kshiftrw $6, %k0, %k611893; AVX512BW-NEXT:    korw %k6, %k1, %k111894; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload11895; AVX512BW-NEXT:    kandw %k5, %k1, %k111896; AVX512BW-NEXT:    kshiftrw $5, %k0, %k611897; AVX512BW-NEXT:    korw %k6, %k1, %k111898; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload11899; AVX512BW-NEXT:    kandw %k6, %k1, %k111900; AVX512BW-NEXT:    kshiftrw $4, %k0, %k011901; AVX512BW-NEXT:    korw %k0, %k1, %k011902; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload11903; AVX512BW-NEXT:    kandw %k1, %k0, %k111904; AVX512BW-NEXT:    kshiftrq $36, %k7, %k611905; AVX512BW-NEXT:    kshiftlw $15, %k6, %k011906; AVX512BW-NEXT:    kshiftrw $3, %k0, %k711907; AVX512BW-NEXT:    korw %k7, %k1, %k111908; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k7 # 2-byte Reload11909; AVX512BW-NEXT:    kandw %k7, %k1, %k111910; AVX512BW-NEXT:    kshiftrw $2, %k0, %k711911; AVX512BW-NEXT:    korw %k7, %k1, %k111912; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k7 # 2-byte Reload11913; AVX512BW-NEXT:    kandw %k7, %k1, %k111914; AVX512BW-NEXT:    kshiftlw $14, %k6, %k711915; AVX512BW-NEXT:    korw %k7, %k1, %k111916; AVX512BW-NEXT:    kshiftlw $1, %k1, %k111917; AVX512BW-NEXT:    kshiftrw $1, %k1, %k111918; AVX512BW-NEXT:    korw %k0, %k1, %k111919; AVX512BW-NEXT:    vmovdqa32 960(%rsi), %zmm15 {%k1} {z}11920; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload11921; AVX512BW-NEXT:    kandw %k1, %k6, %k111922; AVX512BW-NEXT:    kshiftrw $14, %k0, %k611923; AVX512BW-NEXT:    korw %k6, %k1, %k111924; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload11925; AVX512BW-NEXT:    kandw %k6, %k1, %k111926; AVX512BW-NEXT:    kshiftrw $13, %k0, %k011927; AVX512BW-NEXT:    korw %k0, %k1, %k011928; AVX512BW-NEXT:    kandw %k2, %k0, %k111929; AVX512BW-NEXT:    kmovq {{[-0-9]+}}(%r{{[sb]}}p), %k7 # 8-byte Reload11930; AVX512BW-NEXT:    kshiftrq $37, %k7, %k011931; AVX512BW-NEXT:    kshiftlw $15, %k0, %k011932; AVX512BW-NEXT:    kshiftrw $12, %k0, %k611933; AVX512BW-NEXT:    korw %k6, %k1, %k111934; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload11935; AVX512BW-NEXT:    kandw %k2, %k1, %k111936; AVX512BW-NEXT:    kshiftrw $11, %k0, %k611937; AVX512BW-NEXT:    korw %k6, %k1, %k111938; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload11939; AVX512BW-NEXT:    kandw %k6, %k1, %k111940; AVX512BW-NEXT:    kshiftrw $10, %k0, %k611941; AVX512BW-NEXT:    korw %k6, %k1, %k111942; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload11943; AVX512BW-NEXT:    kandw %k6, %k1, %k111944; AVX512BW-NEXT:    kshiftrw $9, %k0, %k611945; AVX512BW-NEXT:    korw %k6, %k1, %k111946; AVX512BW-NEXT:    kandw %k4, %k1, %k111947; AVX512BW-NEXT:    kshiftrw $8, %k0, %k611948; AVX512BW-NEXT:    korw %k6, %k1, %k111949; AVX512BW-NEXT:    kandw %k3, %k1, %k111950; AVX512BW-NEXT:    kshiftrw $7, %k0, %k611951; AVX512BW-NEXT:    korw %k6, %k1, %k111952; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload11953; AVX512BW-NEXT:    kandw %k3, %k1, %k111954; AVX512BW-NEXT:    kshiftrw $6, %k0, %k011955; AVX512BW-NEXT:    korw %k0, %k1, %k011956; AVX512BW-NEXT:    kandw %k5, %k0, %k611957; AVX512BW-NEXT:    kshiftrq $38, %k7, %k011958; AVX512BW-NEXT:    kmovq %k7, %k511959; AVX512BW-NEXT:    kshiftlw $15, %k0, %k111960; AVX512BW-NEXT:    kshiftrw $5, %k1, %k711961; AVX512BW-NEXT:    korw %k7, %k6, %k611962; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload11963; AVX512BW-NEXT:    kandw %k3, %k6, %k611964; AVX512BW-NEXT:    kshiftrw $4, %k1, %k711965; AVX512BW-NEXT:    korw %k7, %k6, %k611966; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload11967; AVX512BW-NEXT:    kandw %k4, %k6, %k611968; AVX512BW-NEXT:    kshiftrw $3, %k1, %k711969; AVX512BW-NEXT:    korw %k7, %k6, %k611970; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload11971; AVX512BW-NEXT:    kandw %k3, %k6, %k611972; AVX512BW-NEXT:    kshiftrw $2, %k1, %k711973; AVX512BW-NEXT:    korw %k7, %k6, %k611974; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload11975; AVX512BW-NEXT:    kandw %k3, %k6, %k611976; AVX512BW-NEXT:    kshiftlw $14, %k0, %k711977; AVX512BW-NEXT:    korw %k7, %k6, %k611978; AVX512BW-NEXT:    kshiftlw $1, %k6, %k611979; AVX512BW-NEXT:    kshiftrw $1, %k6, %k611980; AVX512BW-NEXT:    korw %k1, %k6, %k111981; AVX512BW-NEXT:    vmovdqa32 1024(%rsi), %zmm16 {%k1} {z}11982; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload11983; AVX512BW-NEXT:    kandw %k1, %k0, %k111984; AVX512BW-NEXT:    kmovq %k5, %k711985; AVX512BW-NEXT:    kshiftrq $39, %k5, %k011986; AVX512BW-NEXT:    kshiftlw $15, %k0, %k011987; AVX512BW-NEXT:    kshiftrw $14, %k0, %k611988; AVX512BW-NEXT:    korw %k6, %k1, %k111989; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload11990; AVX512BW-NEXT:    kandw %k3, %k1, %k111991; AVX512BW-NEXT:    kshiftrw $13, %k0, %k611992; AVX512BW-NEXT:    korw %k6, %k1, %k111993; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload11994; AVX512BW-NEXT:    kandw %k3, %k1, %k111995; AVX512BW-NEXT:    kshiftrw $12, %k0, %k611996; AVX512BW-NEXT:    korw %k6, %k1, %k111997; AVX512BW-NEXT:    kandw %k2, %k1, %k111998; AVX512BW-NEXT:    kshiftrw $11, %k0, %k611999; AVX512BW-NEXT:    korw %k6, %k1, %k112000; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload12001; AVX512BW-NEXT:    kandw %k3, %k1, %k112002; AVX512BW-NEXT:    kshiftrw $10, %k0, %k612003; AVX512BW-NEXT:    korw %k6, %k1, %k112004; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload12005; AVX512BW-NEXT:    kandw %k2, %k1, %k112006; AVX512BW-NEXT:    kshiftrw $9, %k0, %k612007; AVX512BW-NEXT:    korw %k6, %k1, %k112008; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload12009; AVX512BW-NEXT:    kandw %k5, %k1, %k112010; AVX512BW-NEXT:    kshiftrw $8, %k0, %k012011; AVX512BW-NEXT:    korw %k0, %k1, %k012012; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload12013; AVX512BW-NEXT:    kandw %k1, %k0, %k112014; AVX512BW-NEXT:    kshiftrq $40, %k7, %k012015; AVX512BW-NEXT:    kshiftlw $15, %k0, %k612016; AVX512BW-NEXT:    kshiftrw $7, %k6, %k712017; AVX512BW-NEXT:    korw %k7, %k1, %k112018; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload12019; AVX512BW-NEXT:    kandw %k2, %k1, %k112020; AVX512BW-NEXT:    kshiftrw $6, %k6, %k712021; AVX512BW-NEXT:    korw %k7, %k1, %k112022; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload12023; AVX512BW-NEXT:    kandw %k2, %k1, %k112024; AVX512BW-NEXT:    kshiftrw $5, %k6, %k712025; AVX512BW-NEXT:    korw %k7, %k1, %k112026; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload12027; AVX512BW-NEXT:    kandw %k2, %k1, %k112028; AVX512BW-NEXT:    kshiftrw $4, %k6, %k712029; AVX512BW-NEXT:    korw %k7, %k1, %k112030; AVX512BW-NEXT:    kandw %k4, %k1, %k112031; AVX512BW-NEXT:    kshiftrw $3, %k6, %k712032; AVX512BW-NEXT:    korw %k7, %k1, %k112033; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload12034; AVX512BW-NEXT:    kandw %k2, %k1, %k112035; AVX512BW-NEXT:    kshiftrw $2, %k6, %k612036; AVX512BW-NEXT:    korw %k6, %k1, %k112037; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload12038; AVX512BW-NEXT:    kandw %k4, %k1, %k112039; AVX512BW-NEXT:    kshiftlw $14, %k0, %k012040; AVX512BW-NEXT:    korw %k0, %k1, %k012041; AVX512BW-NEXT:    kshiftlw $1, %k0, %k012042; AVX512BW-NEXT:    kshiftrw $1, %k0, %k012043; AVX512BW-NEXT:    kmovq {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 8-byte Reload12044; AVX512BW-NEXT:    kshiftrq $41, %k4, %k112045; AVX512BW-NEXT:    kshiftlw $15, %k1, %k612046; AVX512BW-NEXT:    korw %k6, %k0, %k712047; AVX512BW-NEXT:    vmovdqa32 1088(%rsi), %zmm17 {%k7} {z}12048; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k0 # 2-byte Reload12049; AVX512BW-NEXT:    kandw %k0, %k1, %k012050; AVX512BW-NEXT:    kshiftrw $14, %k6, %k112051; AVX512BW-NEXT:    korw %k1, %k0, %k012052; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload12053; AVX512BW-NEXT:    kandw %k1, %k0, %k012054; AVX512BW-NEXT:    kshiftrw $13, %k6, %k112055; AVX512BW-NEXT:    korw %k1, %k0, %k012056; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload12057; AVX512BW-NEXT:    kandw %k1, %k0, %k012058; AVX512BW-NEXT:    kshiftrw $12, %k6, %k112059; AVX512BW-NEXT:    korw %k1, %k0, %k012060; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload12061; AVX512BW-NEXT:    kandw %k1, %k0, %k012062; AVX512BW-NEXT:    kshiftrw $11, %k6, %k112063; AVX512BW-NEXT:    korw %k1, %k0, %k012064; AVX512BW-NEXT:    kandw %k3, %k0, %k012065; AVX512BW-NEXT:    kshiftrw $10, %k6, %k112066; AVX512BW-NEXT:    korw %k1, %k0, %k012067; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload12068; AVX512BW-NEXT:    kandw %k1, %k0, %k112069; AVX512BW-NEXT:    kshiftrq $42, %k4, %k012070; AVX512BW-NEXT:    kmovq %k4, %k312071; AVX512BW-NEXT:    kshiftlw $15, %k0, %k012072; AVX512BW-NEXT:    kshiftrw $9, %k0, %k612073; AVX512BW-NEXT:    korw %k6, %k1, %k112074; AVX512BW-NEXT:    kandw %k5, %k1, %k112075; AVX512BW-NEXT:    kshiftrw $8, %k0, %k612076; AVX512BW-NEXT:    korw %k6, %k1, %k112077; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload12078; AVX512BW-NEXT:    kandw %k4, %k1, %k112079; AVX512BW-NEXT:    kshiftrw $7, %k0, %k612080; AVX512BW-NEXT:    korw %k6, %k1, %k112081; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload12082; AVX512BW-NEXT:    kandw %k4, %k1, %k112083; AVX512BW-NEXT:    kshiftrw $6, %k0, %k612084; AVX512BW-NEXT:    korw %k6, %k1, %k112085; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload12086; AVX512BW-NEXT:    kandw %k4, %k1, %k112087; AVX512BW-NEXT:    kshiftrw $5, %k0, %k612088; AVX512BW-NEXT:    korw %k6, %k1, %k112089; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload12090; AVX512BW-NEXT:    kandw %k4, %k1, %k112091; AVX512BW-NEXT:    kshiftrw $4, %k0, %k612092; AVX512BW-NEXT:    korw %k6, %k1, %k112093; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload12094; AVX512BW-NEXT:    kandw %k5, %k1, %k112095; AVX512BW-NEXT:    kshiftrw $3, %k0, %k012096; AVX512BW-NEXT:    korw %k0, %k1, %k012097; AVX512BW-NEXT:    kandw %k2, %k0, %k112098; AVX512BW-NEXT:    kshiftrq $43, %k3, %k612099; AVX512BW-NEXT:    kshiftlw $15, %k6, %k012100; AVX512BW-NEXT:    kshiftrw $2, %k0, %k712101; AVX512BW-NEXT:    korw %k7, %k1, %k112102; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload12103; AVX512BW-NEXT:    kandw %k2, %k1, %k112104; AVX512BW-NEXT:    kshiftlw $14, %k6, %k712105; AVX512BW-NEXT:    korw %k7, %k1, %k112106; AVX512BW-NEXT:    kshiftlw $1, %k1, %k112107; AVX512BW-NEXT:    kshiftrw $1, %k1, %k112108; AVX512BW-NEXT:    korw %k0, %k1, %k112109; AVX512BW-NEXT:    vmovdqa32 1152(%rsi), %zmm18 {%k1} {z}12110; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload12111; AVX512BW-NEXT:    kandw %k5, %k6, %k112112; AVX512BW-NEXT:    kshiftrw $14, %k0, %k612113; AVX512BW-NEXT:    korw %k6, %k1, %k112114; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload12115; AVX512BW-NEXT:    kandw %k2, %k1, %k112116; AVX512BW-NEXT:    kshiftrw $13, %k0, %k612117; AVX512BW-NEXT:    korw %k6, %k1, %k112118; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload12119; AVX512BW-NEXT:    kandw %k2, %k1, %k112120; AVX512BW-NEXT:    kshiftrw $12, %k0, %k012121; AVX512BW-NEXT:    korw %k0, %k1, %k012122; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload12123; AVX512BW-NEXT:    kandw %k1, %k0, %k112124; AVX512BW-NEXT:    kmovq %k3, %k712125; AVX512BW-NEXT:    kshiftrq $44, %k3, %k012126; AVX512BW-NEXT:    kshiftlw $15, %k0, %k012127; AVX512BW-NEXT:    kshiftrw $11, %k0, %k612128; AVX512BW-NEXT:    korw %k6, %k1, %k112129; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload12130; AVX512BW-NEXT:    kandw %k2, %k1, %k112131; AVX512BW-NEXT:    kshiftrw $10, %k0, %k612132; AVX512BW-NEXT:    korw %k6, %k1, %k112133; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload12134; AVX512BW-NEXT:    kandw %k3, %k1, %k112135; AVX512BW-NEXT:    kshiftrw $9, %k0, %k612136; AVX512BW-NEXT:    korw %k6, %k1, %k112137; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload12138; AVX512BW-NEXT:    kandw %k2, %k1, %k112139; AVX512BW-NEXT:    kshiftrw $8, %k0, %k612140; AVX512BW-NEXT:    korw %k6, %k1, %k112141; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload12142; AVX512BW-NEXT:    kandw %k2, %k1, %k112143; AVX512BW-NEXT:    kshiftrw $7, %k0, %k612144; AVX512BW-NEXT:    korw %k6, %k1, %k112145; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload12146; AVX512BW-NEXT:    kandw %k2, %k1, %k112147; AVX512BW-NEXT:    kshiftrw $6, %k0, %k612148; AVX512BW-NEXT:    korw %k6, %k1, %k112149; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload12150; AVX512BW-NEXT:    kandw %k6, %k1, %k112151; AVX512BW-NEXT:    kshiftrw $5, %k0, %k012152; AVX512BW-NEXT:    korw %k0, %k1, %k012153; AVX512BW-NEXT:    kandw %k4, %k0, %k612154; AVX512BW-NEXT:    kshiftrq $45, %k7, %k012155; AVX512BW-NEXT:    kshiftlw $15, %k0, %k112156; AVX512BW-NEXT:    kshiftrw $4, %k1, %k712157; AVX512BW-NEXT:    korw %k7, %k6, %k612158; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload12159; AVX512BW-NEXT:    kandw %k4, %k6, %k612160; AVX512BW-NEXT:    kshiftrw $3, %k1, %k712161; AVX512BW-NEXT:    korw %k7, %k6, %k612162; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k7 # 2-byte Reload12163; AVX512BW-NEXT:    kandw %k7, %k6, %k612164; AVX512BW-NEXT:    kshiftrw $2, %k1, %k712165; AVX512BW-NEXT:    korw %k7, %k6, %k612166; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k7 # 2-byte Reload12167; AVX512BW-NEXT:    kandw %k7, %k6, %k612168; AVX512BW-NEXT:    kshiftlw $14, %k0, %k712169; AVX512BW-NEXT:    korw %k7, %k6, %k612170; AVX512BW-NEXT:    kshiftlw $1, %k6, %k612171; AVX512BW-NEXT:    kshiftrw $1, %k6, %k612172; AVX512BW-NEXT:    korw %k1, %k6, %k612173; AVX512BW-NEXT:    vmovdqa32 1216(%rsi), %zmm19 {%k6} {z}12174; AVX512BW-NEXT:    kandw %k5, %k0, %k012175; AVX512BW-NEXT:    kshiftrw $14, %k1, %k112176; AVX512BW-NEXT:    korw %k1, %k0, %k012177; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload12178; AVX512BW-NEXT:    kandw %k1, %k0, %k112179; AVX512BW-NEXT:    kmovq {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 8-byte Reload12180; AVX512BW-NEXT:    kshiftrq $46, %k5, %k012181; AVX512BW-NEXT:    kshiftlw $15, %k0, %k012182; AVX512BW-NEXT:    kshiftrw $13, %k0, %k612183; AVX512BW-NEXT:    korw %k6, %k1, %k112184; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload12185; AVX512BW-NEXT:    kandw %k6, %k1, %k112186; AVX512BW-NEXT:    kshiftrw $12, %k0, %k612187; AVX512BW-NEXT:    korw %k6, %k1, %k112188; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload12189; AVX512BW-NEXT:    kandw %k6, %k1, %k112190; AVX512BW-NEXT:    kshiftrw $11, %k0, %k612191; AVX512BW-NEXT:    korw %k6, %k1, %k112192; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload12193; AVX512BW-NEXT:    kandw %k6, %k1, %k112194; AVX512BW-NEXT:    kshiftrw $10, %k0, %k612195; AVX512BW-NEXT:    korw %k6, %k1, %k112196; AVX512BW-NEXT:    kandw %k3, %k1, %k112197; AVX512BW-NEXT:    kshiftrw $9, %k0, %k612198; AVX512BW-NEXT:    korw %k6, %k1, %k112199; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload12200; AVX512BW-NEXT:    kandw %k3, %k1, %k112201; AVX512BW-NEXT:    kshiftrw $8, %k0, %k612202; AVX512BW-NEXT:    korw %k6, %k1, %k112203; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload12204; AVX512BW-NEXT:    kandw %k3, %k1, %k112205; AVX512BW-NEXT:    kshiftrw $7, %k0, %k012206; AVX512BW-NEXT:    korw %k0, %k1, %k012207; AVX512BW-NEXT:    kandw %k2, %k0, %k612208; AVX512BW-NEXT:    kshiftrq $47, %k5, %k112209; AVX512BW-NEXT:    kshiftlw $15, %k1, %k012210; AVX512BW-NEXT:    kshiftrw $6, %k0, %k712211; AVX512BW-NEXT:    korw %k7, %k6, %k612212; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload12213; AVX512BW-NEXT:    kandw %k3, %k6, %k612214; AVX512BW-NEXT:    kshiftrw $5, %k0, %k712215; AVX512BW-NEXT:    korw %k7, %k6, %k612216; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload12217; AVX512BW-NEXT:    kandw %k2, %k6, %k612218; AVX512BW-NEXT:    kshiftrw $4, %k0, %k712219; AVX512BW-NEXT:    korw %k7, %k6, %k612220; AVX512BW-NEXT:    kandw %k4, %k6, %k612221; AVX512BW-NEXT:    kshiftrw $3, %k0, %k712222; AVX512BW-NEXT:    korw %k7, %k6, %k612223; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload12224; AVX512BW-NEXT:    kandw %k2, %k6, %k612225; AVX512BW-NEXT:    kshiftrw $2, %k0, %k712226; AVX512BW-NEXT:    korw %k7, %k6, %k612227; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload12228; AVX512BW-NEXT:    kandw %k2, %k6, %k612229; AVX512BW-NEXT:    kshiftlw $14, %k1, %k112230; AVX512BW-NEXT:    korw %k1, %k6, %k112231; AVX512BW-NEXT:    kshiftlw $1, %k1, %k112232; AVX512BW-NEXT:    kshiftrw $1, %k1, %k112233; AVX512BW-NEXT:    korw %k0, %k1, %k112234; AVX512BW-NEXT:    vmovdqa32 1280(%rsi), %zmm20 {%k1} {z}12235; AVX512BW-NEXT:    kshiftrq $48, %k5, %k012236; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload12237; AVX512BW-NEXT:    kandw %k1, %k0, %k112238; AVX512BW-NEXT:    kshiftlw $15, %k0, %k012239; AVX512BW-NEXT:    kshiftrw $14, %k0, %k612240; AVX512BW-NEXT:    korw %k6, %k1, %k112241; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload12242; AVX512BW-NEXT:    kandw %k4, %k1, %k112243; AVX512BW-NEXT:    kshiftrw $13, %k0, %k612244; AVX512BW-NEXT:    korw %k6, %k1, %k112245; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload12246; AVX512BW-NEXT:    kandw %k6, %k1, %k112247; AVX512BW-NEXT:    kshiftrw $12, %k0, %k612248; AVX512BW-NEXT:    korw %k6, %k1, %k112249; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload12250; AVX512BW-NEXT:    kandw %k6, %k1, %k112251; AVX512BW-NEXT:    kshiftrw $11, %k0, %k612252; AVX512BW-NEXT:    korw %k6, %k1, %k112253; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload12254; AVX512BW-NEXT:    kandw %k6, %k1, %k112255; AVX512BW-NEXT:    kshiftrw $10, %k0, %k612256; AVX512BW-NEXT:    korw %k6, %k1, %k112257; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload12258; AVX512BW-NEXT:    kandw %k6, %k1, %k112259; AVX512BW-NEXT:    kshiftrw $9, %k0, %k012260; AVX512BW-NEXT:    korw %k0, %k1, %k012261; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload12262; AVX512BW-NEXT:    kandw %k1, %k0, %k112263; AVX512BW-NEXT:    kshiftrq $49, %k5, %k012264; AVX512BW-NEXT:    kmovq %k5, %k712265; AVX512BW-NEXT:    kshiftlw $15, %k0, %k012266; AVX512BW-NEXT:    kshiftrw $8, %k0, %k612267; AVX512BW-NEXT:    korw %k6, %k1, %k112268; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload12269; AVX512BW-NEXT:    kandw %k5, %k1, %k112270; AVX512BW-NEXT:    kshiftrw $7, %k0, %k612271; AVX512BW-NEXT:    korw %k6, %k1, %k112272; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload12273; AVX512BW-NEXT:    kandw %k5, %k1, %k112274; AVX512BW-NEXT:    kshiftrw $6, %k0, %k612275; AVX512BW-NEXT:    korw %k6, %k1, %k112276; AVX512BW-NEXT:    kandw %k3, %k1, %k112277; AVX512BW-NEXT:    kshiftrw $5, %k0, %k612278; AVX512BW-NEXT:    korw %k6, %k1, %k112279; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload12280; AVX512BW-NEXT:    kandw %k3, %k1, %k112281; AVX512BW-NEXT:    kshiftrw $4, %k0, %k612282; AVX512BW-NEXT:    korw %k6, %k1, %k112283; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload12284; AVX512BW-NEXT:    kandw %k5, %k1, %k112285; AVX512BW-NEXT:    kshiftrw $3, %k0, %k612286; AVX512BW-NEXT:    korw %k6, %k1, %k112287; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload12288; AVX512BW-NEXT:    kandw %k5, %k1, %k112289; AVX512BW-NEXT:    kshiftrw $2, %k0, %k012290; AVX512BW-NEXT:    korw %k0, %k1, %k012291; AVX512BW-NEXT:    kandw %k2, %k0, %k012292; AVX512BW-NEXT:    kshiftrq $50, %k7, %k112293; AVX512BW-NEXT:    kshiftlw $14, %k1, %k612294; AVX512BW-NEXT:    korw %k6, %k0, %k012295; AVX512BW-NEXT:    kshiftlw $1, %k0, %k012296; AVX512BW-NEXT:    kshiftrw $1, %k0, %k012297; AVX512BW-NEXT:    kshiftlw $15, %k1, %k612298; AVX512BW-NEXT:    korw %k6, %k0, %k712299; AVX512BW-NEXT:    vmovdqa32 1344(%rsi), %zmm21 {%k7} {z}12300; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k0 # 2-byte Reload12301; AVX512BW-NEXT:    kandw %k0, %k1, %k012302; AVX512BW-NEXT:    kshiftrw $14, %k6, %k112303; AVX512BW-NEXT:    korw %k1, %k0, %k012304; AVX512BW-NEXT:    kandw %k4, %k0, %k012305; AVX512BW-NEXT:    kshiftrw $13, %k6, %k112306; AVX512BW-NEXT:    korw %k1, %k0, %k012307; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload12308; AVX512BW-NEXT:    kandw %k2, %k0, %k012309; AVX512BW-NEXT:    kshiftrw $12, %k6, %k112310; AVX512BW-NEXT:    korw %k1, %k0, %k012311; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload12312; AVX512BW-NEXT:    kandw %k5, %k0, %k012313; AVX512BW-NEXT:    kshiftrw $11, %k6, %k112314; AVX512BW-NEXT:    korw %k1, %k0, %k012315; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload12316; AVX512BW-NEXT:    kandw %k1, %k0, %k112317; AVX512BW-NEXT:    kmovq {{[-0-9]+}}(%r{{[sb]}}p), %k7 # 8-byte Reload12318; AVX512BW-NEXT:    kshiftrq $51, %k7, %k012319; AVX512BW-NEXT:    kshiftlw $15, %k0, %k012320; AVX512BW-NEXT:    kshiftrw $10, %k0, %k612321; AVX512BW-NEXT:    korw %k6, %k1, %k112322; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload12323; AVX512BW-NEXT:    kandw %k4, %k1, %k112324; AVX512BW-NEXT:    kshiftrw $9, %k0, %k612325; AVX512BW-NEXT:    korw %k6, %k1, %k112326; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload12327; AVX512BW-NEXT:    kandw %k4, %k1, %k112328; AVX512BW-NEXT:    kshiftrw $8, %k0, %k612329; AVX512BW-NEXT:    korw %k6, %k1, %k112330; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload12331; AVX512BW-NEXT:    kandw %k4, %k1, %k112332; AVX512BW-NEXT:    kshiftrw $7, %k0, %k612333; AVX512BW-NEXT:    korw %k6, %k1, %k112334; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload12335; AVX512BW-NEXT:    kandw %k6, %k1, %k112336; AVX512BW-NEXT:    kshiftrw $6, %k0, %k612337; AVX512BW-NEXT:    korw %k6, %k1, %k112338; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload12339; AVX512BW-NEXT:    kandw %k6, %k1, %k112340; AVX512BW-NEXT:    kshiftrw $5, %k0, %k612341; AVX512BW-NEXT:    korw %k6, %k1, %k112342; AVX512BW-NEXT:    kandw %k3, %k1, %k112343; AVX512BW-NEXT:    kshiftrw $4, %k0, %k012344; AVX512BW-NEXT:    korw %k0, %k1, %k012345; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload12346; AVX512BW-NEXT:    kandw %k1, %k0, %k112347; AVX512BW-NEXT:    kshiftrq $52, %k7, %k612348; AVX512BW-NEXT:    kshiftlw $15, %k6, %k012349; AVX512BW-NEXT:    kshiftrw $3, %k0, %k712350; AVX512BW-NEXT:    korw %k7, %k1, %k112351; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload12352; AVX512BW-NEXT:    kandw %k3, %k1, %k112353; AVX512BW-NEXT:    kshiftrw $2, %k0, %k712354; AVX512BW-NEXT:    korw %k7, %k1, %k112355; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload12356; AVX512BW-NEXT:    kandw %k3, %k1, %k112357; AVX512BW-NEXT:    kshiftlw $14, %k6, %k712358; AVX512BW-NEXT:    korw %k7, %k1, %k112359; AVX512BW-NEXT:    kshiftlw $1, %k1, %k112360; AVX512BW-NEXT:    kshiftrw $1, %k1, %k112361; AVX512BW-NEXT:    korw %k0, %k1, %k112362; AVX512BW-NEXT:    vmovdqa32 1408(%rsi), %zmm22 {%k1} {z}12363; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload12364; AVX512BW-NEXT:    kandw %k3, %k6, %k112365; AVX512BW-NEXT:    kshiftrw $14, %k0, %k612366; AVX512BW-NEXT:    korw %k6, %k1, %k112367; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload12368; AVX512BW-NEXT:    kandw %k6, %k1, %k112369; AVX512BW-NEXT:    kshiftrw $13, %k0, %k012370; AVX512BW-NEXT:    korw %k0, %k1, %k012371; AVX512BW-NEXT:    kandw %k2, %k0, %k112372; AVX512BW-NEXT:    kmovq {{[-0-9]+}}(%r{{[sb]}}p), %k7 # 8-byte Reload12373; AVX512BW-NEXT:    kshiftrq $53, %k7, %k012374; AVX512BW-NEXT:    kshiftlw $15, %k0, %k012375; AVX512BW-NEXT:    kshiftrw $12, %k0, %k612376; AVX512BW-NEXT:    korw %k6, %k1, %k112377; AVX512BW-NEXT:    kandw %k5, %k1, %k112378; AVX512BW-NEXT:    kshiftrw $11, %k0, %k612379; AVX512BW-NEXT:    korw %k6, %k1, %k112380; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload12381; AVX512BW-NEXT:    kandw %k5, %k1, %k112382; AVX512BW-NEXT:    kshiftrw $10, %k0, %k612383; AVX512BW-NEXT:    korw %k6, %k1, %k112384; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload12385; AVX512BW-NEXT:    kandw %k2, %k1, %k112386; AVX512BW-NEXT:    kshiftrw $9, %k0, %k612387; AVX512BW-NEXT:    korw %k6, %k1, %k112388; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload12389; AVX512BW-NEXT:    kandw %k2, %k1, %k112390; AVX512BW-NEXT:    kshiftrw $8, %k0, %k612391; AVX512BW-NEXT:    korw %k6, %k1, %k112392; AVX512BW-NEXT:    kandw %k4, %k1, %k112393; AVX512BW-NEXT:    kshiftrw $7, %k0, %k612394; AVX512BW-NEXT:    korw %k6, %k1, %k112395; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload12396; AVX512BW-NEXT:    kandw %k4, %k1, %k112397; AVX512BW-NEXT:    kshiftrw $6, %k0, %k012398; AVX512BW-NEXT:    korw %k0, %k1, %k012399; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload12400; AVX512BW-NEXT:    kandw %k1, %k0, %k612401; AVX512BW-NEXT:    kshiftrq $54, %k7, %k012402; AVX512BW-NEXT:    kshiftlw $15, %k0, %k112403; AVX512BW-NEXT:    kshiftrw $5, %k1, %k712404; AVX512BW-NEXT:    korw %k7, %k6, %k612405; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload12406; AVX512BW-NEXT:    kandw %k4, %k6, %k612407; AVX512BW-NEXT:    kshiftrw $4, %k1, %k712408; AVX512BW-NEXT:    korw %k7, %k6, %k612409; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload12410; AVX512BW-NEXT:    kandw %k4, %k6, %k612411; AVX512BW-NEXT:    kshiftrw $3, %k1, %k712412; AVX512BW-NEXT:    korw %k7, %k6, %k612413; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload12414; AVX512BW-NEXT:    kandw %k4, %k6, %k612415; AVX512BW-NEXT:    kshiftrw $2, %k1, %k712416; AVX512BW-NEXT:    korw %k7, %k6, %k612417; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k7 # 2-byte Reload12418; AVX512BW-NEXT:    kandw %k7, %k6, %k612419; AVX512BW-NEXT:    kshiftlw $14, %k0, %k712420; AVX512BW-NEXT:    korw %k7, %k6, %k612421; AVX512BW-NEXT:    kshiftlw $1, %k6, %k612422; AVX512BW-NEXT:    kshiftrw $1, %k6, %k612423; AVX512BW-NEXT:    korw %k1, %k6, %k112424; AVX512BW-NEXT:    vmovdqa32 1472(%rsi), %zmm23 {%k1} {z}12425; AVX512BW-NEXT:    kandw %k3, %k0, %k112426; AVX512BW-NEXT:    kmovq {{[-0-9]+}}(%r{{[sb]}}p), %k7 # 8-byte Reload12427; AVX512BW-NEXT:    kshiftrq $55, %k7, %k012428; AVX512BW-NEXT:    kshiftlw $15, %k0, %k012429; AVX512BW-NEXT:    kshiftrw $14, %k0, %k612430; AVX512BW-NEXT:    korw %k6, %k1, %k112431; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload12432; AVX512BW-NEXT:    kandw %k3, %k1, %k112433; AVX512BW-NEXT:    kshiftrw $13, %k0, %k612434; AVX512BW-NEXT:    korw %k6, %k1, %k112435; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload12436; AVX512BW-NEXT:    kandw %k3, %k1, %k112437; AVX512BW-NEXT:    kshiftrw $12, %k0, %k612438; AVX512BW-NEXT:    korw %k6, %k1, %k112439; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload12440; AVX512BW-NEXT:    kandw %k3, %k1, %k112441; AVX512BW-NEXT:    kshiftrw $11, %k0, %k612442; AVX512BW-NEXT:    korw %k6, %k1, %k112443; AVX512BW-NEXT:    kandw %k5, %k1, %k112444; AVX512BW-NEXT:    kshiftrw $10, %k0, %k612445; AVX512BW-NEXT:    korw %k6, %k1, %k112446; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload12447; AVX512BW-NEXT:    kandw %k5, %k1, %k112448; AVX512BW-NEXT:    kshiftrw $9, %k0, %k612449; AVX512BW-NEXT:    korw %k6, %k1, %k112450; AVX512BW-NEXT:    kandw %k2, %k1, %k112451; AVX512BW-NEXT:    kshiftrw $8, %k0, %k012452; AVX512BW-NEXT:    korw %k0, %k1, %k012453; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload12454; AVX512BW-NEXT:    kandw %k1, %k0, %k112455; AVX512BW-NEXT:    kshiftrq $56, %k7, %k012456; AVX512BW-NEXT:    kshiftlw $15, %k0, %k612457; AVX512BW-NEXT:    kshiftrw $7, %k6, %k712458; AVX512BW-NEXT:    korw %k7, %k1, %k112459; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload12460; AVX512BW-NEXT:    kandw %k2, %k1, %k112461; AVX512BW-NEXT:    kshiftrw $6, %k6, %k712462; AVX512BW-NEXT:    korw %k7, %k1, %k112463; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload12464; AVX512BW-NEXT:    kandw %k2, %k1, %k112465; AVX512BW-NEXT:    kshiftrw $5, %k6, %k712466; AVX512BW-NEXT:    korw %k7, %k1, %k112467; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload12468; AVX512BW-NEXT:    kandw %k2, %k1, %k112469; AVX512BW-NEXT:    kshiftrw $4, %k6, %k712470; AVX512BW-NEXT:    korw %k7, %k1, %k112471; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload12472; AVX512BW-NEXT:    kandw %k2, %k1, %k112473; AVX512BW-NEXT:    kshiftrw $3, %k6, %k712474; AVX512BW-NEXT:    korw %k7, %k1, %k112475; AVX512BW-NEXT:    kandw %k4, %k1, %k112476; AVX512BW-NEXT:    kshiftrw $2, %k6, %k612477; AVX512BW-NEXT:    korw %k6, %k1, %k112478; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload12479; AVX512BW-NEXT:    kandw %k5, %k1, %k112480; AVX512BW-NEXT:    kshiftlw $14, %k0, %k012481; AVX512BW-NEXT:    korw %k0, %k1, %k012482; AVX512BW-NEXT:    kshiftlw $1, %k0, %k012483; AVX512BW-NEXT:    kshiftrw $1, %k0, %k012484; AVX512BW-NEXT:    kmovq {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 8-byte Reload12485; AVX512BW-NEXT:    kshiftrq $57, %k4, %k112486; AVX512BW-NEXT:    kshiftlw $15, %k1, %k612487; AVX512BW-NEXT:    korw %k6, %k0, %k712488; AVX512BW-NEXT:    vmovdqa32 1536(%rsi), %zmm24 {%k7} {z}12489; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k0 # 2-byte Reload12490; AVX512BW-NEXT:    kandw %k0, %k1, %k012491; AVX512BW-NEXT:    kshiftrw $14, %k6, %k112492; AVX512BW-NEXT:    korw %k1, %k0, %k012493; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload12494; AVX512BW-NEXT:    kandw %k1, %k0, %k012495; AVX512BW-NEXT:    kshiftrw $13, %k6, %k112496; AVX512BW-NEXT:    korw %k1, %k0, %k012497; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload12498; AVX512BW-NEXT:    kandw %k1, %k0, %k012499; AVX512BW-NEXT:    kshiftrw $12, %k6, %k112500; AVX512BW-NEXT:    korw %k1, %k0, %k012501; AVX512BW-NEXT:    kandw %k3, %k0, %k012502; AVX512BW-NEXT:    kshiftrw $11, %k6, %k112503; AVX512BW-NEXT:    korw %k1, %k0, %k012504; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload12505; AVX512BW-NEXT:    kandw %k3, %k0, %k012506; AVX512BW-NEXT:    kshiftrw $10, %k6, %k112507; AVX512BW-NEXT:    korw %k1, %k0, %k012508; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload12509; AVX512BW-NEXT:    kandw %k2, %k0, %k112510; AVX512BW-NEXT:    kmovq %k4, %k712511; AVX512BW-NEXT:    kshiftrq $58, %k4, %k012512; AVX512BW-NEXT:    kshiftlw $15, %k0, %k012513; AVX512BW-NEXT:    kshiftrw $9, %k0, %k612514; AVX512BW-NEXT:    korw %k6, %k1, %k112515; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload12516; AVX512BW-NEXT:    kandw %k4, %k1, %k112517; AVX512BW-NEXT:    kshiftrw $8, %k0, %k612518; AVX512BW-NEXT:    korw %k6, %k1, %k112519; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload12520; AVX512BW-NEXT:    kandw %k4, %k1, %k112521; AVX512BW-NEXT:    kshiftrw $7, %k0, %k612522; AVX512BW-NEXT:    korw %k6, %k1, %k112523; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload12524; AVX512BW-NEXT:    kandw %k4, %k1, %k112525; AVX512BW-NEXT:    kshiftrw $6, %k0, %k612526; AVX512BW-NEXT:    korw %k6, %k1, %k112527; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload12528; AVX512BW-NEXT:    kandw %k6, %k1, %k112529; AVX512BW-NEXT:    kshiftrw $5, %k0, %k612530; AVX512BW-NEXT:    korw %k6, %k1, %k112531; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload12532; AVX512BW-NEXT:    kandw %k6, %k1, %k112533; AVX512BW-NEXT:    kshiftrw $4, %k0, %k612534; AVX512BW-NEXT:    korw %k6, %k1, %k112535; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload12536; AVX512BW-NEXT:    kandw %k6, %k1, %k112537; AVX512BW-NEXT:    kshiftrw $3, %k0, %k012538; AVX512BW-NEXT:    korw %k0, %k1, %k012539; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload12540; AVX512BW-NEXT:    kandw %k1, %k0, %k112541; AVX512BW-NEXT:    kshiftrq $59, %k7, %k612542; AVX512BW-NEXT:    kshiftlw $15, %k6, %k012543; AVX512BW-NEXT:    kshiftrw $2, %k0, %k712544; AVX512BW-NEXT:    korw %k7, %k1, %k112545; AVX512BW-NEXT:    kandw %k5, %k1, %k112546; AVX512BW-NEXT:    kshiftlw $14, %k6, %k712547; AVX512BW-NEXT:    korw %k7, %k1, %k112548; AVX512BW-NEXT:    kshiftlw $1, %k1, %k112549; AVX512BW-NEXT:    kshiftrw $1, %k1, %k112550; AVX512BW-NEXT:    korw %k0, %k1, %k112551; AVX512BW-NEXT:    vmovdqa32 1600(%rsi), %zmm25 {%k1} {z}12552; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload12553; AVX512BW-NEXT:    kandw %k1, %k6, %k112554; AVX512BW-NEXT:    kshiftrw $14, %k0, %k612555; AVX512BW-NEXT:    korw %k6, %k1, %k112556; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload12557; AVX512BW-NEXT:    kandw %k5, %k1, %k112558; AVX512BW-NEXT:    kshiftrw $13, %k0, %k612559; AVX512BW-NEXT:    korw %k6, %k1, %k112560; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 2-byte Reload12561; AVX512BW-NEXT:    kandw %k5, %k1, %k112562; AVX512BW-NEXT:    kshiftrw $12, %k0, %k012563; AVX512BW-NEXT:    korw %k0, %k1, %k012564; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload12565; AVX512BW-NEXT:    kandw %k1, %k0, %k112566; AVX512BW-NEXT:    kmovq {{[-0-9]+}}(%r{{[sb]}}p), %k5 # 8-byte Reload12567; AVX512BW-NEXT:    kshiftrq $60, %k5, %k012568; AVX512BW-NEXT:    kshiftlw $15, %k0, %k012569; AVX512BW-NEXT:    kshiftrw $11, %k0, %k612570; AVX512BW-NEXT:    korw %k6, %k1, %k112571; AVX512BW-NEXT:    kandw %k3, %k1, %k112572; AVX512BW-NEXT:    kshiftrw $10, %k0, %k612573; AVX512BW-NEXT:    korw %k6, %k1, %k112574; AVX512BW-NEXT:    kandw %k2, %k1, %k112575; AVX512BW-NEXT:    kshiftrw $9, %k0, %k612576; AVX512BW-NEXT:    korw %k6, %k1, %k112577; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload12578; AVX512BW-NEXT:    kandw %k2, %k1, %k112579; AVX512BW-NEXT:    kshiftrw $8, %k0, %k612580; AVX512BW-NEXT:    korw %k6, %k1, %k112581; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload12582; AVX512BW-NEXT:    kandw %k2, %k1, %k112583; AVX512BW-NEXT:    kshiftrw $7, %k0, %k612584; AVX512BW-NEXT:    korw %k6, %k1, %k112585; AVX512BW-NEXT:    kandw %k4, %k1, %k112586; AVX512BW-NEXT:    kshiftrw $6, %k0, %k612587; AVX512BW-NEXT:    korw %k6, %k1, %k112588; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 # 2-byte Reload12589; AVX512BW-NEXT:    kandw %k3, %k1, %k112590; AVX512BW-NEXT:    kshiftrw $5, %k0, %k012591; AVX512BW-NEXT:    korw %k0, %k1, %k012592; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 # 2-byte Reload12593; AVX512BW-NEXT:    kandw %k4, %k0, %k612594; AVX512BW-NEXT:    kshiftrq $61, %k5, %k012595; AVX512BW-NEXT:    kshiftlw $15, %k0, %k112596; AVX512BW-NEXT:    kshiftrw $4, %k1, %k712597; AVX512BW-NEXT:    korw %k7, %k6, %k612598; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload12599; AVX512BW-NEXT:    kandw %k2, %k6, %k612600; AVX512BW-NEXT:    kshiftrw $3, %k1, %k712601; AVX512BW-NEXT:    korw %k7, %k6, %k612602; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k7 # 2-byte Reload12603; AVX512BW-NEXT:    kandw %k7, %k6, %k612604; AVX512BW-NEXT:    kshiftrw $2, %k1, %k712605; AVX512BW-NEXT:    korw %k7, %k6, %k612606; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k7 # 2-byte Reload12607; AVX512BW-NEXT:    kandw %k7, %k6, %k612608; AVX512BW-NEXT:    kshiftlw $14, %k0, %k712609; AVX512BW-NEXT:    korw %k7, %k6, %k612610; AVX512BW-NEXT:    kshiftlw $1, %k6, %k612611; AVX512BW-NEXT:    kshiftrw $1, %k6, %k612612; AVX512BW-NEXT:    korw %k1, %k6, %k612613; AVX512BW-NEXT:    vmovdqa32 1664(%rsi), %zmm26 {%k6} {z}12614; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload12615; AVX512BW-NEXT:    kandw %k6, %k0, %k012616; AVX512BW-NEXT:    kshiftrw $14, %k1, %k112617; AVX512BW-NEXT:    korw %k1, %k0, %k012618; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload12619; AVX512BW-NEXT:    kandw %k1, %k0, %k112620; AVX512BW-NEXT:    kshiftrq $62, %k5, %k012621; AVX512BW-NEXT:    kshiftlw $15, %k0, %k012622; AVX512BW-NEXT:    kshiftrw $13, %k0, %k612623; AVX512BW-NEXT:    korw %k6, %k1, %k112624; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload12625; AVX512BW-NEXT:    kandw %k6, %k1, %k112626; AVX512BW-NEXT:    kshiftrw $12, %k0, %k612627; AVX512BW-NEXT:    korw %k6, %k1, %k112628; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload12629; AVX512BW-NEXT:    kandw %k6, %k1, %k112630; AVX512BW-NEXT:    kshiftrw $11, %k0, %k612631; AVX512BW-NEXT:    korw %k6, %k1, %k112632; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload12633; AVX512BW-NEXT:    kandw %k6, %k1, %k112634; AVX512BW-NEXT:    kshiftrw $10, %k0, %k612635; AVX512BW-NEXT:    korw %k6, %k1, %k112636; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload12637; AVX512BW-NEXT:    kandw %k6, %k1, %k112638; AVX512BW-NEXT:    kshiftrw $9, %k0, %k612639; AVX512BW-NEXT:    korw %k6, %k1, %k112640; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload12641; AVX512BW-NEXT:    kandw %k6, %k1, %k112642; AVX512BW-NEXT:    kshiftrw $8, %k0, %k612643; AVX512BW-NEXT:    korw %k6, %k1, %k112644; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 # 2-byte Reload12645; AVX512BW-NEXT:    kandw %k6, %k1, %k112646; AVX512BW-NEXT:    kshiftrw $7, %k0, %k012647; AVX512BW-NEXT:    korw %k0, %k1, %k012648; AVX512BW-NEXT:    kshiftrq $63, %k5, %k512649; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload12650; AVX512BW-NEXT:    kandw %k1, %k0, %k112651; AVX512BW-NEXT:    kshiftlw $15, %k5, %k012652; AVX512BW-NEXT:    kshiftrw $6, %k0, %k612653; AVX512BW-NEXT:    korw %k6, %k1, %k112654; AVX512BW-NEXT:    kandw %k3, %k1, %k112655; AVX512BW-NEXT:    kshiftrw $5, %k0, %k612656; AVX512BW-NEXT:    korw %k6, %k1, %k112657; AVX512BW-NEXT:    kandw %k4, %k1, %k112658; AVX512BW-NEXT:    kshiftrw $4, %k0, %k612659; AVX512BW-NEXT:    korw %k6, %k1, %k112660; AVX512BW-NEXT:    kandw %k2, %k1, %k112661; AVX512BW-NEXT:    kshiftrw $3, %k0, %k412662; AVX512BW-NEXT:    korw %k4, %k1, %k112663; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload12664; AVX512BW-NEXT:    kandw %k2, %k1, %k112665; AVX512BW-NEXT:    kshiftrw $2, %k0, %k312666; AVX512BW-NEXT:    korw %k3, %k1, %k112667; AVX512BW-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 # 2-byte Reload12668; AVX512BW-NEXT:    kandw %k2, %k1, %k112669; AVX512BW-NEXT:    kshiftlw $14, %k5, %k212670; AVX512BW-NEXT:    korw %k2, %k1, %k112671; AVX512BW-NEXT:    kshiftlw $1, %k1, %k112672; AVX512BW-NEXT:    kshiftrw $1, %k1, %k112673; AVX512BW-NEXT:    korw %k0, %k1, %k112674; AVX512BW-NEXT:    vmovdqa32 1728(%rsi), %zmm27 {%k1} {z}12675; AVX512BW-NEXT:    vmovdqa64 %zmm27, 1728(%rdx)12676; AVX512BW-NEXT:    vmovdqa64 %zmm26, 1664(%rdx)12677; AVX512BW-NEXT:    vmovdqa64 %zmm25, 1600(%rdx)12678; AVX512BW-NEXT:    vmovdqa64 %zmm24, 1536(%rdx)12679; AVX512BW-NEXT:    vmovdqa64 %zmm23, 1472(%rdx)12680; AVX512BW-NEXT:    vmovdqa64 %zmm22, 1408(%rdx)12681; AVX512BW-NEXT:    vmovdqa64 %zmm21, 1344(%rdx)12682; AVX512BW-NEXT:    vmovdqa64 %zmm20, 1280(%rdx)12683; AVX512BW-NEXT:    vmovdqa64 %zmm19, 1216(%rdx)12684; AVX512BW-NEXT:    vmovdqa64 %zmm18, 1152(%rdx)12685; AVX512BW-NEXT:    vmovdqa64 %zmm17, 1088(%rdx)12686; AVX512BW-NEXT:    vmovdqa64 %zmm16, 1024(%rdx)12687; AVX512BW-NEXT:    vmovdqa64 %zmm15, 960(%rdx)12688; AVX512BW-NEXT:    vmovdqa64 %zmm14, 896(%rdx)12689; AVX512BW-NEXT:    vmovdqa64 %zmm13, 832(%rdx)12690; AVX512BW-NEXT:    vmovdqa64 %zmm12, 768(%rdx)12691; AVX512BW-NEXT:    vmovdqa64 %zmm11, 704(%rdx)12692; AVX512BW-NEXT:    vmovdqa64 %zmm10, 640(%rdx)12693; AVX512BW-NEXT:    vmovdqa64 %zmm9, 576(%rdx)12694; AVX512BW-NEXT:    vmovdqa64 %zmm8, 512(%rdx)12695; AVX512BW-NEXT:    vmovdqa64 %zmm7, 448(%rdx)12696; AVX512BW-NEXT:    vmovdqa64 %zmm6, 384(%rdx)12697; AVX512BW-NEXT:    vmovdqa64 %zmm5, 320(%rdx)12698; AVX512BW-NEXT:    vmovdqa64 %zmm4, 256(%rdx)12699; AVX512BW-NEXT:    vmovdqa64 %zmm3, 192(%rdx)12700; AVX512BW-NEXT:    vmovdqa64 %zmm2, 128(%rdx)12701; AVX512BW-NEXT:    vmovdqa64 %zmm1, 64(%rdx)12702; AVX512BW-NEXT:    vmovdqa64 %zmm0, (%rdx)12703; AVX512BW-NEXT:    vzeroupper12704; AVX512BW-NEXT:    retq12705  %src.mask = load <64 x i1>, ptr %in.maskvec, align 6412706  %tgt.mask = shufflevector <64 x i1> %src.mask, <64 x i1> poison, <448 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 4, i32 4, i32 4, i32 4, i32 4, i32 4, i32 4, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 6, i32 6, i32 6, i32 6, i32 6, i32 6, i32 6, i32 7, i32 7, i32 7, i32 7, i32 7, i32 7, i32 7, i32 8, i32 8, i32 8, i32 8, i32 8, i32 8, i32 8, i32 9, i32 9, i32 9, i32 9, i32 9, i32 9, i32 9, i32 10, i32 10, i32 10, i32 10, i32 10, i32 10, i32 10, i32 11, i32 11, i32 11, i32 11, i32 11, i32 11, i32 11, i32 12, i32 12, i32 12, i32 12, i32 12, i32 12, i32 12, i32 13, i32 13, i32 13, i32 13, i32 13, i32 13, i32 13, i32 14, i32 14, i32 14, i32 14, i32 14, i32 14, i32 14, i32 15, i32 15, i32 15, i32 15, i32 15, i32 15, i32 15, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 17, i32 17, i32 17, i32 17, i32 17, i32 17, i32 17, i32 18, i32 18, i32 18, i32 18, i32 18, i32 18, i32 18, i32 19, i32 19, i32 19, i32 19, i32 19, i32 19, i32 19, i32 20, i32 20, i32 20, i32 20, i32 20, i32 20, i32 20, i32 21, i32 21, i32 21, i32 21, i32 21, i32 21, i32 21, i32 22, i32 22, i32 22, i32 22, i32 22, i32 22, i32 22, i32 23, i32 23, i32 23, i32 23, i32 23, i32 23, i32 23, i32 24, i32 24, i32 24, i32 24, i32 24, i32 24, i32 24, i32 25, i32 25, i32 25, i32 25, i32 25, i32 25, i32 25, i32 26, i32 26, i32 26, i32 26, i32 26, i32 26, i32 26, i32 27, i32 27, i32 27, i32 27, i32 27, i32 27, i32 27, i32 28, i32 28, i32 28, i32 28, i32 28, i32 28, i32 28, i32 29, i32 29, i32 29, i32 29, i32 29, i32 29, i32 29, i32 30, i32 30, i32 30, i32 30, i32 30, i32 30, i32 30, i32 31, i32 31, i32 31, i32 31, i32 31, i32 31, i32 31, i32 32, i32 32, i32 32, i32 32, i32 32, i32 32, i32 32, i32 33, i32 33, i32 33, i32 33, i32 33, i32 33, i32 33, i32 34, i32 34, i32 34, i32 34, i32 34, i32 34, i32 34, i32 35, i32 35, i32 35, i32 35, i32 35, i32 35, i32 35, i32 36, i32 36, i32 36, i32 36, i32 36, i32 36, i32 36, i32 37, i32 37, i32 37, i32 37, i32 37, i32 37, i32 37, i32 38, i32 38, i32 38, i32 38, i32 38, i32 38, i32 38, i32 39, i32 39, i32 39, i32 39, i32 39, i32 39, i32 39, i32 40, i32 40, i32 40, i32 40, i32 40, i32 40, i32 40, i32 41, i32 41, i32 41, i32 41, i32 41, i32 41, i32 41, i32 42, i32 42, i32 42, i32 42, i32 42, i32 42, i32 42, i32 43, i32 43, i32 43, i32 43, i32 43, i32 43, i32 43, i32 44, i32 44, i32 44, i32 44, i32 44, i32 44, i32 44, i32 45, i32 45, i32 45, i32 45, i32 45, i32 45, i32 45, i32 46, i32 46, i32 46, i32 46, i32 46, i32 46, i32 46, i32 47, i32 47, i32 47, i32 47, i32 47, i32 47, i32 47, i32 48, i32 48, i32 48, i32 48, i32 48, i32 48, i32 48, i32 49, i32 49, i32 49, i32 49, i32 49, i32 49, i32 49, i32 50, i32 50, i32 50, i32 50, i32 50, i32 50, i32 50, i32 51, i32 51, i32 51, i32 51, i32 51, i32 51, i32 51, i32 52, i32 52, i32 52, i32 52, i32 52, i32 52, i32 52, i32 53, i32 53, i32 53, i32 53, i32 53, i32 53, i32 53, i32 54, i32 54, i32 54, i32 54, i32 54, i32 54, i32 54, i32 55, i32 55, i32 55, i32 55, i32 55, i32 55, i32 55, i32 56, i32 56, i32 56, i32 56, i32 56, i32 56, i32 56, i32 57, i32 57, i32 57, i32 57, i32 57, i32 57, i32 57, i32 58, i32 58, i32 58, i32 58, i32 58, i32 58, i32 58, i32 59, i32 59, i32 59, i32 59, i32 59, i32 59, i32 59, i32 60, i32 60, i32 60, i32 60, i32 60, i32 60, i32 60, i32 61, i32 61, i32 61, i32 61, i32 61, i32 61, i32 61, i32 62, i32 62, i32 62, i32 62, i32 62, i32 62, i32 62, i32 63, i32 63, i32 63, i32 63, i32 63, i32 63, i32 63>12707  %data = call <448 x i32> @llvm.masked.load.v448i32.p0(ptr %in.vec, i32 64, <448 x i1> %tgt.mask, <448 x i32> poison)12708  store <448 x i32> %data, ptr %out.vec, align 6412709  ret void12710}12711 12712define void @mask_replication_factor8_vf2(ptr %in.maskvec, ptr %in.vec, ptr %out.vec) nounwind {12713; AVX512F-ONLY-LABEL: mask_replication_factor8_vf2:12714; AVX512F-ONLY:       # %bb.0:12715; AVX512F-ONLY-NEXT:    kmovw (%rdi), %k112716; AVX512F-ONLY-NEXT:    vpternlogd {{.*#+}} zmm0 {%k1} {z} = -112717; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1]12718; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm1, %zmm012719; AVX512F-ONLY-NEXT:    vptestmd %zmm0, %zmm0, %k112720; AVX512F-ONLY-NEXT:    vmovdqa32 (%rsi), %zmm0 {%k1} {z}12721; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm0, (%rdx)12722; AVX512F-ONLY-NEXT:    vzeroupper12723; AVX512F-ONLY-NEXT:    retq12724;12725; AVX512DQ-LABEL: mask_replication_factor8_vf2:12726; AVX512DQ:       # %bb.0:12727; AVX512DQ-NEXT:    kmovw (%rdi), %k012728; AVX512DQ-NEXT:    vpmovm2d %k0, %zmm012729; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1]12730; AVX512DQ-NEXT:    vpermd %zmm0, %zmm1, %zmm012731; AVX512DQ-NEXT:    vpmovd2m %zmm0, %k112732; AVX512DQ-NEXT:    vmovdqa32 (%rsi), %zmm0 {%k1} {z}12733; AVX512DQ-NEXT:    vmovdqa64 %zmm0, (%rdx)12734; AVX512DQ-NEXT:    vzeroupper12735; AVX512DQ-NEXT:    retq12736;12737; AVX512BW-LABEL: mask_replication_factor8_vf2:12738; AVX512BW:       # %bb.0:12739; AVX512BW-NEXT:    kmovw (%rdi), %k112740; AVX512BW-NEXT:    vpternlogd {{.*#+}} zmm0 {%k1} {z} = -112741; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1]12742; AVX512BW-NEXT:    vpermd %zmm0, %zmm1, %zmm012743; AVX512BW-NEXT:    vptestmd %zmm0, %zmm0, %k112744; AVX512BW-NEXT:    vmovdqa32 (%rsi), %zmm0 {%k1} {z}12745; AVX512BW-NEXT:    vmovdqa64 %zmm0, (%rdx)12746; AVX512BW-NEXT:    vzeroupper12747; AVX512BW-NEXT:    retq12748  %src.mask.padded = load <64 x i1>, ptr %in.maskvec, align 6412749  %src.mask = shufflevector <64 x i1> %src.mask.padded, <64 x i1> poison, <2 x i32> <i32 0, i32 1>12750  %tgt.mask = shufflevector <2 x i1> %src.mask, <2 x i1> poison, <16 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1>12751  %data = call <16 x i32> @llvm.masked.load.v16i32.p0(ptr %in.vec, i32 64, <16 x i1> %tgt.mask, <16 x i32> poison)12752  store <16 x i32> %data, ptr %out.vec, align 6412753  ret void12754}12755 12756define void @mask_replication_factor8_vf4(ptr %in.maskvec, ptr %in.vec, ptr %out.vec) nounwind {12757; AVX512F-ONLY-LABEL: mask_replication_factor8_vf4:12758; AVX512F-ONLY:       # %bb.0:12759; AVX512F-ONLY-NEXT:    kmovw (%rdi), %k112760; AVX512F-ONLY-NEXT:    vpternlogd {{.*#+}} zmm0 {%k1} {z} = -112761; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3]12762; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm1, %zmm112763; AVX512F-ONLY-NEXT:    vptestmd %zmm1, %zmm1, %k112764; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1]12765; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm1, %zmm012766; AVX512F-ONLY-NEXT:    vptestmd %zmm0, %zmm0, %k212767; AVX512F-ONLY-NEXT:    vmovdqa32 (%rsi), %zmm0 {%k2} {z}12768; AVX512F-ONLY-NEXT:    vmovdqa32 64(%rsi), %zmm1 {%k1} {z}12769; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm1, 64(%rdx)12770; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm0, (%rdx)12771; AVX512F-ONLY-NEXT:    vzeroupper12772; AVX512F-ONLY-NEXT:    retq12773;12774; AVX512DQ-LABEL: mask_replication_factor8_vf4:12775; AVX512DQ:       # %bb.0:12776; AVX512DQ-NEXT:    kmovw (%rdi), %k012777; AVX512DQ-NEXT:    vpmovm2d %k0, %zmm012778; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3]12779; AVX512DQ-NEXT:    vpermd %zmm0, %zmm1, %zmm112780; AVX512DQ-NEXT:    vpmovd2m %zmm1, %k112781; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1]12782; AVX512DQ-NEXT:    vpermd %zmm0, %zmm1, %zmm012783; AVX512DQ-NEXT:    vpmovd2m %zmm0, %k212784; AVX512DQ-NEXT:    vmovdqa32 (%rsi), %zmm0 {%k2} {z}12785; AVX512DQ-NEXT:    vmovdqa32 64(%rsi), %zmm1 {%k1} {z}12786; AVX512DQ-NEXT:    vmovdqa64 %zmm1, 64(%rdx)12787; AVX512DQ-NEXT:    vmovdqa64 %zmm0, (%rdx)12788; AVX512DQ-NEXT:    vzeroupper12789; AVX512DQ-NEXT:    retq12790;12791; AVX512BW-LABEL: mask_replication_factor8_vf4:12792; AVX512BW:       # %bb.0:12793; AVX512BW-NEXT:    kmovd (%rdi), %k012794; AVX512BW-NEXT:    vpmovm2w %k0, %zmm012795; AVX512BW-NEXT:    vpmovsxbw {{.*#+}} zmm1 = [0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3]12796; AVX512BW-NEXT:    vpermw %zmm0, %zmm1, %zmm012797; AVX512BW-NEXT:    vpmovw2m %zmm0, %k112798; AVX512BW-NEXT:    vmovdqa32 (%rsi), %zmm0 {%k1} {z}12799; AVX512BW-NEXT:    kshiftrd $16, %k1, %k112800; AVX512BW-NEXT:    vmovdqa32 64(%rsi), %zmm1 {%k1} {z}12801; AVX512BW-NEXT:    vmovdqa64 %zmm1, 64(%rdx)12802; AVX512BW-NEXT:    vmovdqa64 %zmm0, (%rdx)12803; AVX512BW-NEXT:    vzeroupper12804; AVX512BW-NEXT:    retq12805  %src.mask.padded = load <64 x i1>, ptr %in.maskvec, align 6412806  %src.mask = shufflevector <64 x i1> %src.mask.padded, <64 x i1> poison, <4 x i32> <i32 0, i32 1, i32 2, i32 3>12807  %tgt.mask = shufflevector <4 x i1> %src.mask, <4 x i1> poison, <32 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3>12808  %data = call <32 x i32> @llvm.masked.load.v32i32.p0(ptr %in.vec, i32 64, <32 x i1> %tgt.mask, <32 x i32> poison)12809  store <32 x i32> %data, ptr %out.vec, align 6412810  ret void12811}12812 12813define void @mask_replication_factor8_vf8(ptr %in.maskvec, ptr %in.vec, ptr %out.vec) nounwind {12814; AVX512F-ONLY-LABEL: mask_replication_factor8_vf8:12815; AVX512F-ONLY:       # %bb.0:12816; AVX512F-ONLY-NEXT:    kmovw (%rdi), %k112817; AVX512F-ONLY-NEXT:    vpternlogd {{.*#+}} zmm0 {%k1} {z} = -112818; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5]12819; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm1, %zmm112820; AVX512F-ONLY-NEXT:    vptestmd %zmm1, %zmm1, %k112821; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7]12822; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm1, %zmm112823; AVX512F-ONLY-NEXT:    vptestmd %zmm1, %zmm1, %k212824; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1]12825; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm1, %zmm112826; AVX512F-ONLY-NEXT:    vptestmd %zmm1, %zmm1, %k312827; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3]12828; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm1, %zmm012829; AVX512F-ONLY-NEXT:    vptestmd %zmm0, %zmm0, %k412830; AVX512F-ONLY-NEXT:    vmovdqa32 64(%rsi), %zmm0 {%k4} {z}12831; AVX512F-ONLY-NEXT:    vmovdqa32 (%rsi), %zmm1 {%k3} {z}12832; AVX512F-ONLY-NEXT:    vmovdqa32 192(%rsi), %zmm2 {%k2} {z}12833; AVX512F-ONLY-NEXT:    vmovdqa32 128(%rsi), %zmm3 {%k1} {z}12834; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm3, 128(%rdx)12835; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm2, 192(%rdx)12836; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm1, (%rdx)12837; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm0, 64(%rdx)12838; AVX512F-ONLY-NEXT:    vzeroupper12839; AVX512F-ONLY-NEXT:    retq12840;12841; AVX512DQ-LABEL: mask_replication_factor8_vf8:12842; AVX512DQ:       # %bb.0:12843; AVX512DQ-NEXT:    kmovw (%rdi), %k012844; AVX512DQ-NEXT:    vpmovm2d %k0, %zmm012845; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5]12846; AVX512DQ-NEXT:    vpermd %zmm0, %zmm1, %zmm112847; AVX512DQ-NEXT:    vpmovd2m %zmm1, %k112848; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7]12849; AVX512DQ-NEXT:    vpermd %zmm0, %zmm1, %zmm112850; AVX512DQ-NEXT:    vpmovd2m %zmm1, %k212851; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1]12852; AVX512DQ-NEXT:    vpermd %zmm0, %zmm1, %zmm112853; AVX512DQ-NEXT:    vpmovd2m %zmm1, %k312854; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3]12855; AVX512DQ-NEXT:    vpermd %zmm0, %zmm1, %zmm012856; AVX512DQ-NEXT:    vpmovd2m %zmm0, %k412857; AVX512DQ-NEXT:    vmovdqa32 64(%rsi), %zmm0 {%k4} {z}12858; AVX512DQ-NEXT:    vmovdqa32 (%rsi), %zmm1 {%k3} {z}12859; AVX512DQ-NEXT:    vmovdqa32 192(%rsi), %zmm2 {%k2} {z}12860; AVX512DQ-NEXT:    vmovdqa32 128(%rsi), %zmm3 {%k1} {z}12861; AVX512DQ-NEXT:    vmovdqa64 %zmm3, 128(%rdx)12862; AVX512DQ-NEXT:    vmovdqa64 %zmm2, 192(%rdx)12863; AVX512DQ-NEXT:    vmovdqa64 %zmm1, (%rdx)12864; AVX512DQ-NEXT:    vmovdqa64 %zmm0, 64(%rdx)12865; AVX512DQ-NEXT:    vzeroupper12866; AVX512DQ-NEXT:    retq12867;12868; AVX512BW-LABEL: mask_replication_factor8_vf8:12869; AVX512BW:       # %bb.0:12870; AVX512BW-NEXT:    kmovq (%rdi), %k012871; AVX512BW-NEXT:    vpmovm2b %k0, %zmm012872; AVX512BW-NEXT:    vpmovsxbq %xmm0, %zmm012873; AVX512BW-NEXT:    vpmovb2m %zmm0, %k112874; AVX512BW-NEXT:    kshiftrq $16, %k1, %k212875; AVX512BW-NEXT:    vmovdqa32 64(%rsi), %zmm0 {%k2} {z}12876; AVX512BW-NEXT:    vmovdqa32 (%rsi), %zmm1 {%k1} {z}12877; AVX512BW-NEXT:    kshiftrq $48, %k1, %k212878; AVX512BW-NEXT:    vmovdqa32 192(%rsi), %zmm2 {%k2} {z}12879; AVX512BW-NEXT:    kshiftrq $32, %k1, %k112880; AVX512BW-NEXT:    vmovdqa32 128(%rsi), %zmm3 {%k1} {z}12881; AVX512BW-NEXT:    vmovdqa64 %zmm3, 128(%rdx)12882; AVX512BW-NEXT:    vmovdqa64 %zmm2, 192(%rdx)12883; AVX512BW-NEXT:    vmovdqa64 %zmm1, (%rdx)12884; AVX512BW-NEXT:    vmovdqa64 %zmm0, 64(%rdx)12885; AVX512BW-NEXT:    vzeroupper12886; AVX512BW-NEXT:    retq12887  %src.mask.padded = load <64 x i1>, ptr %in.maskvec, align 6412888  %src.mask = shufflevector <64 x i1> %src.mask.padded, <64 x i1> poison, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>12889  %tgt.mask = shufflevector <8 x i1> %src.mask, <8 x i1> poison, <64 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 4, i32 4, i32 4, i32 4, i32 4, i32 4, i32 4, i32 4, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 6, i32 6, i32 6, i32 6, i32 6, i32 6, i32 6, i32 6, i32 7, i32 7, i32 7, i32 7, i32 7, i32 7, i32 7, i32 7>12890  %data = call <64 x i32> @llvm.masked.load.v64i32.p0(ptr %in.vec, i32 64, <64 x i1> %tgt.mask, <64 x i32> poison)12891  store <64 x i32> %data, ptr %out.vec, align 6412892  ret void12893}12894 12895define void @mask_replication_factor8_vf16(ptr %in.maskvec, ptr %in.vec, ptr %out.vec) nounwind {12896; AVX512F-ONLY-LABEL: mask_replication_factor8_vf16:12897; AVX512F-ONLY:       # %bb.0:12898; AVX512F-ONLY-NEXT:    kmovw (%rdi), %k112899; AVX512F-ONLY-NEXT:    vpternlogd {{.*#+}} zmm0 {%k1} {z} = -112900; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [12,12,12,12,12,12,12,12,13,13,13,13,13,13,13,13]12901; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm1, %zmm112902; AVX512F-ONLY-NEXT:    vptestmd %zmm1, %zmm1, %k112903; AVX512F-ONLY-NEXT:    kmovw %k1, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill12904; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [14,14,14,14,14,14,14,14,15,15,15,15,15,15,15,15]12905; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm1, %zmm112906; AVX512F-ONLY-NEXT:    vptestmd %zmm1, %zmm1, %k212907; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [8,8,8,8,8,8,8,8,9,9,9,9,9,9,9,9]12908; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm1, %zmm112909; AVX512F-ONLY-NEXT:    vptestmd %zmm1, %zmm1, %k312910; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [10,10,10,10,10,10,10,10,11,11,11,11,11,11,11,11]12911; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm1, %zmm112912; AVX512F-ONLY-NEXT:    vptestmd %zmm1, %zmm1, %k412913; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5]12914; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm1, %zmm112915; AVX512F-ONLY-NEXT:    vptestmd %zmm1, %zmm1, %k512916; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7]12917; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm1, %zmm112918; AVX512F-ONLY-NEXT:    vptestmd %zmm1, %zmm1, %k612919; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1]12920; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm1, %zmm112921; AVX512F-ONLY-NEXT:    vptestmd %zmm1, %zmm1, %k712922; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3]12923; AVX512F-ONLY-NEXT:    vpermd %zmm0, %zmm1, %zmm012924; AVX512F-ONLY-NEXT:    vptestmd %zmm0, %zmm0, %k112925; AVX512F-ONLY-NEXT:    vmovdqa32 64(%rsi), %zmm0 {%k1} {z}12926; AVX512F-ONLY-NEXT:    vmovdqa32 (%rsi), %zmm1 {%k7} {z}12927; AVX512F-ONLY-NEXT:    vmovdqa32 192(%rsi), %zmm2 {%k6} {z}12928; AVX512F-ONLY-NEXT:    vmovdqa32 128(%rsi), %zmm3 {%k5} {z}12929; AVX512F-ONLY-NEXT:    vmovdqa32 320(%rsi), %zmm4 {%k4} {z}12930; AVX512F-ONLY-NEXT:    vmovdqa32 256(%rsi), %zmm5 {%k3} {z}12931; AVX512F-ONLY-NEXT:    vmovdqa32 448(%rsi), %zmm6 {%k2} {z}12932; AVX512F-ONLY-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload12933; AVX512F-ONLY-NEXT:    vmovdqa32 384(%rsi), %zmm7 {%k1} {z}12934; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm7, 384(%rdx)12935; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm6, 448(%rdx)12936; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm5, 256(%rdx)12937; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm4, 320(%rdx)12938; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm3, 128(%rdx)12939; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm2, 192(%rdx)12940; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm1, (%rdx)12941; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm0, 64(%rdx)12942; AVX512F-ONLY-NEXT:    vzeroupper12943; AVX512F-ONLY-NEXT:    retq12944;12945; AVX512DQ-LABEL: mask_replication_factor8_vf16:12946; AVX512DQ:       # %bb.0:12947; AVX512DQ-NEXT:    kmovw (%rdi), %k012948; AVX512DQ-NEXT:    vpmovm2d %k0, %zmm012949; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [12,12,12,12,12,12,12,12,13,13,13,13,13,13,13,13]12950; AVX512DQ-NEXT:    vpermd %zmm0, %zmm1, %zmm112951; AVX512DQ-NEXT:    vpmovd2m %zmm1, %k112952; AVX512DQ-NEXT:    kmovw %k1, {{[-0-9]+}}(%r{{[sb]}}p) # 2-byte Spill12953; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [14,14,14,14,14,14,14,14,15,15,15,15,15,15,15,15]12954; AVX512DQ-NEXT:    vpermd %zmm0, %zmm1, %zmm112955; AVX512DQ-NEXT:    vpmovd2m %zmm1, %k212956; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [8,8,8,8,8,8,8,8,9,9,9,9,9,9,9,9]12957; AVX512DQ-NEXT:    vpermd %zmm0, %zmm1, %zmm112958; AVX512DQ-NEXT:    vpmovd2m %zmm1, %k312959; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [10,10,10,10,10,10,10,10,11,11,11,11,11,11,11,11]12960; AVX512DQ-NEXT:    vpermd %zmm0, %zmm1, %zmm112961; AVX512DQ-NEXT:    vpmovd2m %zmm1, %k412962; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5]12963; AVX512DQ-NEXT:    vpermd %zmm0, %zmm1, %zmm112964; AVX512DQ-NEXT:    vpmovd2m %zmm1, %k512965; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7]12966; AVX512DQ-NEXT:    vpermd %zmm0, %zmm1, %zmm112967; AVX512DQ-NEXT:    vpmovd2m %zmm1, %k612968; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1]12969; AVX512DQ-NEXT:    vpermd %zmm0, %zmm1, %zmm112970; AVX512DQ-NEXT:    vpmovd2m %zmm1, %k712971; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3]12972; AVX512DQ-NEXT:    vpermd %zmm0, %zmm1, %zmm012973; AVX512DQ-NEXT:    vpmovd2m %zmm0, %k112974; AVX512DQ-NEXT:    vmovdqa32 64(%rsi), %zmm0 {%k1} {z}12975; AVX512DQ-NEXT:    vmovdqa32 (%rsi), %zmm1 {%k7} {z}12976; AVX512DQ-NEXT:    vmovdqa32 192(%rsi), %zmm2 {%k6} {z}12977; AVX512DQ-NEXT:    vmovdqa32 128(%rsi), %zmm3 {%k5} {z}12978; AVX512DQ-NEXT:    vmovdqa32 320(%rsi), %zmm4 {%k4} {z}12979; AVX512DQ-NEXT:    vmovdqa32 256(%rsi), %zmm5 {%k3} {z}12980; AVX512DQ-NEXT:    vmovdqa32 448(%rsi), %zmm6 {%k2} {z}12981; AVX512DQ-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 # 2-byte Reload12982; AVX512DQ-NEXT:    vmovdqa32 384(%rsi), %zmm7 {%k1} {z}12983; AVX512DQ-NEXT:    vmovdqa64 %zmm7, 384(%rdx)12984; AVX512DQ-NEXT:    vmovdqa64 %zmm6, 448(%rdx)12985; AVX512DQ-NEXT:    vmovdqa64 %zmm5, 256(%rdx)12986; AVX512DQ-NEXT:    vmovdqa64 %zmm4, 320(%rdx)12987; AVX512DQ-NEXT:    vmovdqa64 %zmm3, 128(%rdx)12988; AVX512DQ-NEXT:    vmovdqa64 %zmm2, 192(%rdx)12989; AVX512DQ-NEXT:    vmovdqa64 %zmm1, (%rdx)12990; AVX512DQ-NEXT:    vmovdqa64 %zmm0, 64(%rdx)12991; AVX512DQ-NEXT:    vzeroupper12992; AVX512DQ-NEXT:    retq12993;12994; AVX512BW-LABEL: mask_replication_factor8_vf16:12995; AVX512BW:       # %bb.0:12996; AVX512BW-NEXT:    kmovw (%rdi), %k012997; AVX512BW-NEXT:    vpmovm2b %k0, %zmm012998; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm1 = zmm0[0,1,0,1,0,1,0,1]12999; AVX512BW-NEXT:    vpshufb {{.*#+}} zmm1 = zmm1[8,8,8,8,8,8,8,8,9,9,9,9,9,9,9,9,26,26,26,26,26,26,26,26,27,27,27,27,27,27,27,27,44,44,44,44,44,44,44,44,45,45,45,45,45,45,45,45,62,62,62,62,62,62,62,62,63,63,63,63,63,63,63,63]13000; AVX512BW-NEXT:    vpmovb2m %zmm1, %k113001; AVX512BW-NEXT:    vpmovsxbq %xmm0, %zmm013002; AVX512BW-NEXT:    vpmovb2m %zmm0, %k213003; AVX512BW-NEXT:    kshiftrq $16, %k2, %k313004; AVX512BW-NEXT:    vmovdqa32 64(%rsi), %zmm0 {%k3} {z}13005; AVX512BW-NEXT:    vmovdqa32 (%rsi), %zmm1 {%k2} {z}13006; AVX512BW-NEXT:    kshiftrq $48, %k2, %k313007; AVX512BW-NEXT:    vmovdqa32 192(%rsi), %zmm2 {%k3} {z}13008; AVX512BW-NEXT:    kshiftrq $32, %k2, %k213009; AVX512BW-NEXT:    vmovdqa32 128(%rsi), %zmm3 {%k2} {z}13010; AVX512BW-NEXT:    kshiftrq $16, %k1, %k213011; AVX512BW-NEXT:    vmovdqa32 320(%rsi), %zmm4 {%k2} {z}13012; AVX512BW-NEXT:    vmovdqa32 256(%rsi), %zmm5 {%k1} {z}13013; AVX512BW-NEXT:    kshiftrq $48, %k1, %k213014; AVX512BW-NEXT:    vmovdqa32 448(%rsi), %zmm6 {%k2} {z}13015; AVX512BW-NEXT:    kshiftrq $32, %k1, %k113016; AVX512BW-NEXT:    vmovdqa32 384(%rsi), %zmm7 {%k1} {z}13017; AVX512BW-NEXT:    vmovdqa64 %zmm7, 384(%rdx)13018; AVX512BW-NEXT:    vmovdqa64 %zmm6, 448(%rdx)13019; AVX512BW-NEXT:    vmovdqa64 %zmm5, 256(%rdx)13020; AVX512BW-NEXT:    vmovdqa64 %zmm4, 320(%rdx)13021; AVX512BW-NEXT:    vmovdqa64 %zmm3, 128(%rdx)13022; AVX512BW-NEXT:    vmovdqa64 %zmm2, 192(%rdx)13023; AVX512BW-NEXT:    vmovdqa64 %zmm1, (%rdx)13024; AVX512BW-NEXT:    vmovdqa64 %zmm0, 64(%rdx)13025; AVX512BW-NEXT:    vzeroupper13026; AVX512BW-NEXT:    retq13027  %src.mask.padded = load <64 x i1>, ptr %in.maskvec, align 6413028  %src.mask = shufflevector <64 x i1> %src.mask.padded, <64 x i1> poison, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15>13029  %tgt.mask = shufflevector <16 x i1> %src.mask, <16 x i1> poison, <128 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 4, i32 4, i32 4, i32 4, i32 4, i32 4, i32 4, i32 4, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 6, i32 6, i32 6, i32 6, i32 6, i32 6, i32 6, i32 6, i32 7, i32 7, i32 7, i32 7, i32 7, i32 7, i32 7, i32 7, i32 8, i32 8, i32 8, i32 8, i32 8, i32 8, i32 8, i32 8, i32 9, i32 9, i32 9, i32 9, i32 9, i32 9, i32 9, i32 9, i32 10, i32 10, i32 10, i32 10, i32 10, i32 10, i32 10, i32 10, i32 11, i32 11, i32 11, i32 11, i32 11, i32 11, i32 11, i32 11, i32 12, i32 12, i32 12, i32 12, i32 12, i32 12, i32 12, i32 12, i32 13, i32 13, i32 13, i32 13, i32 13, i32 13, i32 13, i32 13, i32 14, i32 14, i32 14, i32 14, i32 14, i32 14, i32 14, i32 14, i32 15, i32 15, i32 15, i32 15, i32 15, i32 15, i32 15, i32 15>13030  %data = call <128 x i32> @llvm.masked.load.v128i32.p0(ptr %in.vec, i32 64, <128 x i1> %tgt.mask, <128 x i32> poison)13031  store <128 x i32> %data, ptr %out.vec, align 6413032  ret void13033}13034 13035define void @mask_replication_factor8_vf32(ptr %in.maskvec, ptr %in.vec, ptr %out.vec) nounwind {13036; AVX512F-ONLY-LABEL: mask_replication_factor8_vf32:13037; AVX512F-ONLY:       # %bb.0:13038; AVX512F-ONLY-NEXT:    kmovw 2(%rdi), %k113039; AVX512F-ONLY-NEXT:    vpternlogd {{.*#+}} zmm1 {%k1} {z} = -113040; AVX512F-ONLY-NEXT:    kmovw (%rdi), %k113041; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm2 = [14,14,14,14,14,14,14,14,15,15,15,15,15,15,15,15]13042; AVX512F-ONLY-NEXT:    vpermd %zmm1, %zmm2, %zmm013043; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm3 = [12,12,12,12,12,12,12,12,13,13,13,13,13,13,13,13]13044; AVX512F-ONLY-NEXT:    vpermd %zmm1, %zmm3, %zmm413045; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm5 = [10,10,10,10,10,10,10,10,11,11,11,11,11,11,11,11]13046; AVX512F-ONLY-NEXT:    vpermd %zmm1, %zmm5, %zmm613047; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm7 = [8,8,8,8,8,8,8,8,9,9,9,9,9,9,9,9]13048; AVX512F-ONLY-NEXT:    vpermd %zmm1, %zmm7, %zmm813049; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm9 = [6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7]13050; AVX512F-ONLY-NEXT:    vpermd %zmm1, %zmm9, %zmm1013051; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm11 = [4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5]13052; AVX512F-ONLY-NEXT:    vpermd %zmm1, %zmm11, %zmm1213053; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm13 = [2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3]13054; AVX512F-ONLY-NEXT:    vpermd %zmm1, %zmm13, %zmm1413055; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm15 = [0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1]13056; AVX512F-ONLY-NEXT:    vpermd %zmm1, %zmm15, %zmm113057; AVX512F-ONLY-NEXT:    vpternlogd {{.*#+}} zmm16 {%k1} {z} = -113058; AVX512F-ONLY-NEXT:    vpermd %zmm16, %zmm2, %zmm213059; AVX512F-ONLY-NEXT:    vpermd %zmm16, %zmm3, %zmm313060; AVX512F-ONLY-NEXT:    vpermd %zmm16, %zmm5, %zmm513061; AVX512F-ONLY-NEXT:    vpermd %zmm16, %zmm7, %zmm713062; AVX512F-ONLY-NEXT:    vpermd %zmm16, %zmm9, %zmm913063; AVX512F-ONLY-NEXT:    vpermd %zmm16, %zmm11, %zmm1113064; AVX512F-ONLY-NEXT:    vpermd %zmm16, %zmm13, %zmm1313065; AVX512F-ONLY-NEXT:    vpermd %zmm16, %zmm15, %zmm1513066; AVX512F-ONLY-NEXT:    vptestmd %zmm15, %zmm15, %k113067; AVX512F-ONLY-NEXT:    vmovdqa32 (%rsi), %zmm15 {%k1} {z}13068; AVX512F-ONLY-NEXT:    vptestmd %zmm13, %zmm13, %k113069; AVX512F-ONLY-NEXT:    vmovdqa32 64(%rsi), %zmm13 {%k1} {z}13070; AVX512F-ONLY-NEXT:    vptestmd %zmm11, %zmm11, %k113071; AVX512F-ONLY-NEXT:    vmovdqa32 128(%rsi), %zmm11 {%k1} {z}13072; AVX512F-ONLY-NEXT:    vptestmd %zmm9, %zmm9, %k113073; AVX512F-ONLY-NEXT:    vmovdqa32 192(%rsi), %zmm9 {%k1} {z}13074; AVX512F-ONLY-NEXT:    vptestmd %zmm7, %zmm7, %k113075; AVX512F-ONLY-NEXT:    vmovdqa32 256(%rsi), %zmm7 {%k1} {z}13076; AVX512F-ONLY-NEXT:    vptestmd %zmm5, %zmm5, %k113077; AVX512F-ONLY-NEXT:    vmovdqa32 320(%rsi), %zmm5 {%k1} {z}13078; AVX512F-ONLY-NEXT:    vptestmd %zmm3, %zmm3, %k113079; AVX512F-ONLY-NEXT:    vmovdqa32 384(%rsi), %zmm3 {%k1} {z}13080; AVX512F-ONLY-NEXT:    vptestmd %zmm2, %zmm2, %k113081; AVX512F-ONLY-NEXT:    vmovdqa32 448(%rsi), %zmm2 {%k1} {z}13082; AVX512F-ONLY-NEXT:    vptestmd %zmm1, %zmm1, %k113083; AVX512F-ONLY-NEXT:    vmovdqa32 512(%rsi), %zmm1 {%k1} {z}13084; AVX512F-ONLY-NEXT:    vptestmd %zmm14, %zmm14, %k113085; AVX512F-ONLY-NEXT:    vmovdqa32 576(%rsi), %zmm14 {%k1} {z}13086; AVX512F-ONLY-NEXT:    vptestmd %zmm12, %zmm12, %k113087; AVX512F-ONLY-NEXT:    vmovdqa32 640(%rsi), %zmm12 {%k1} {z}13088; AVX512F-ONLY-NEXT:    vptestmd %zmm10, %zmm10, %k113089; AVX512F-ONLY-NEXT:    vmovdqa32 704(%rsi), %zmm10 {%k1} {z}13090; AVX512F-ONLY-NEXT:    vptestmd %zmm8, %zmm8, %k113091; AVX512F-ONLY-NEXT:    vmovdqa32 768(%rsi), %zmm8 {%k1} {z}13092; AVX512F-ONLY-NEXT:    vptestmd %zmm6, %zmm6, %k113093; AVX512F-ONLY-NEXT:    vmovdqa32 832(%rsi), %zmm6 {%k1} {z}13094; AVX512F-ONLY-NEXT:    vptestmd %zmm4, %zmm4, %k113095; AVX512F-ONLY-NEXT:    vmovdqa32 896(%rsi), %zmm4 {%k1} {z}13096; AVX512F-ONLY-NEXT:    vptestmd %zmm0, %zmm0, %k113097; AVX512F-ONLY-NEXT:    vmovdqa32 960(%rsi), %zmm0 {%k1} {z}13098; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm0, 960(%rdx)13099; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm4, 896(%rdx)13100; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm6, 832(%rdx)13101; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm8, 768(%rdx)13102; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm10, 704(%rdx)13103; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm12, 640(%rdx)13104; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm14, 576(%rdx)13105; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm1, 512(%rdx)13106; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm2, 448(%rdx)13107; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm3, 384(%rdx)13108; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm5, 320(%rdx)13109; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm7, 256(%rdx)13110; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm9, 192(%rdx)13111; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm11, 128(%rdx)13112; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm13, 64(%rdx)13113; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm15, (%rdx)13114; AVX512F-ONLY-NEXT:    vzeroupper13115; AVX512F-ONLY-NEXT:    retq13116;13117; AVX512DQ-LABEL: mask_replication_factor8_vf32:13118; AVX512DQ:       # %bb.0:13119; AVX512DQ-NEXT:    kmovw 2(%rdi), %k013120; AVX512DQ-NEXT:    vpmovm2d %k0, %zmm113121; AVX512DQ-NEXT:    kmovw (%rdi), %k013122; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm2 = [14,14,14,14,14,14,14,14,15,15,15,15,15,15,15,15]13123; AVX512DQ-NEXT:    vpermd %zmm1, %zmm2, %zmm013124; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm3 = [12,12,12,12,12,12,12,12,13,13,13,13,13,13,13,13]13125; AVX512DQ-NEXT:    vpermd %zmm1, %zmm3, %zmm413126; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm5 = [10,10,10,10,10,10,10,10,11,11,11,11,11,11,11,11]13127; AVX512DQ-NEXT:    vpermd %zmm1, %zmm5, %zmm613128; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm7 = [8,8,8,8,8,8,8,8,9,9,9,9,9,9,9,9]13129; AVX512DQ-NEXT:    vpermd %zmm1, %zmm7, %zmm813130; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm9 = [6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7]13131; AVX512DQ-NEXT:    vpermd %zmm1, %zmm9, %zmm1013132; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm11 = [4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5]13133; AVX512DQ-NEXT:    vpermd %zmm1, %zmm11, %zmm1213134; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm13 = [2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3]13135; AVX512DQ-NEXT:    vpermd %zmm1, %zmm13, %zmm1413136; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm15 = [0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1]13137; AVX512DQ-NEXT:    vpermd %zmm1, %zmm15, %zmm113138; AVX512DQ-NEXT:    vpmovm2d %k0, %zmm1613139; AVX512DQ-NEXT:    vpermd %zmm16, %zmm2, %zmm213140; AVX512DQ-NEXT:    vpermd %zmm16, %zmm3, %zmm313141; AVX512DQ-NEXT:    vpermd %zmm16, %zmm5, %zmm513142; AVX512DQ-NEXT:    vpermd %zmm16, %zmm7, %zmm713143; AVX512DQ-NEXT:    vpermd %zmm16, %zmm9, %zmm913144; AVX512DQ-NEXT:    vpermd %zmm16, %zmm11, %zmm1113145; AVX512DQ-NEXT:    vpermd %zmm16, %zmm13, %zmm1313146; AVX512DQ-NEXT:    vpermd %zmm16, %zmm15, %zmm1513147; AVX512DQ-NEXT:    vpmovd2m %zmm15, %k113148; AVX512DQ-NEXT:    vmovdqa32 (%rsi), %zmm15 {%k1} {z}13149; AVX512DQ-NEXT:    vpmovd2m %zmm13, %k113150; AVX512DQ-NEXT:    vmovdqa32 64(%rsi), %zmm13 {%k1} {z}13151; AVX512DQ-NEXT:    vpmovd2m %zmm11, %k113152; AVX512DQ-NEXT:    vmovdqa32 128(%rsi), %zmm11 {%k1} {z}13153; AVX512DQ-NEXT:    vpmovd2m %zmm9, %k113154; AVX512DQ-NEXT:    vmovdqa32 192(%rsi), %zmm9 {%k1} {z}13155; AVX512DQ-NEXT:    vpmovd2m %zmm7, %k113156; AVX512DQ-NEXT:    vmovdqa32 256(%rsi), %zmm7 {%k1} {z}13157; AVX512DQ-NEXT:    vpmovd2m %zmm5, %k113158; AVX512DQ-NEXT:    vmovdqa32 320(%rsi), %zmm5 {%k1} {z}13159; AVX512DQ-NEXT:    vpmovd2m %zmm3, %k113160; AVX512DQ-NEXT:    vmovdqa32 384(%rsi), %zmm3 {%k1} {z}13161; AVX512DQ-NEXT:    vpmovd2m %zmm2, %k113162; AVX512DQ-NEXT:    vmovdqa32 448(%rsi), %zmm2 {%k1} {z}13163; AVX512DQ-NEXT:    vpmovd2m %zmm1, %k113164; AVX512DQ-NEXT:    vmovdqa32 512(%rsi), %zmm1 {%k1} {z}13165; AVX512DQ-NEXT:    vpmovd2m %zmm14, %k113166; AVX512DQ-NEXT:    vmovdqa32 576(%rsi), %zmm14 {%k1} {z}13167; AVX512DQ-NEXT:    vpmovd2m %zmm12, %k113168; AVX512DQ-NEXT:    vmovdqa32 640(%rsi), %zmm12 {%k1} {z}13169; AVX512DQ-NEXT:    vpmovd2m %zmm10, %k113170; AVX512DQ-NEXT:    vmovdqa32 704(%rsi), %zmm10 {%k1} {z}13171; AVX512DQ-NEXT:    vpmovd2m %zmm8, %k113172; AVX512DQ-NEXT:    vmovdqa32 768(%rsi), %zmm8 {%k1} {z}13173; AVX512DQ-NEXT:    vpmovd2m %zmm6, %k113174; AVX512DQ-NEXT:    vmovdqa32 832(%rsi), %zmm6 {%k1} {z}13175; AVX512DQ-NEXT:    vpmovd2m %zmm4, %k113176; AVX512DQ-NEXT:    vmovdqa32 896(%rsi), %zmm4 {%k1} {z}13177; AVX512DQ-NEXT:    vpmovd2m %zmm0, %k113178; AVX512DQ-NEXT:    vmovdqa32 960(%rsi), %zmm0 {%k1} {z}13179; AVX512DQ-NEXT:    vmovdqa64 %zmm0, 960(%rdx)13180; AVX512DQ-NEXT:    vmovdqa64 %zmm4, 896(%rdx)13181; AVX512DQ-NEXT:    vmovdqa64 %zmm6, 832(%rdx)13182; AVX512DQ-NEXT:    vmovdqa64 %zmm8, 768(%rdx)13183; AVX512DQ-NEXT:    vmovdqa64 %zmm10, 704(%rdx)13184; AVX512DQ-NEXT:    vmovdqa64 %zmm12, 640(%rdx)13185; AVX512DQ-NEXT:    vmovdqa64 %zmm14, 576(%rdx)13186; AVX512DQ-NEXT:    vmovdqa64 %zmm1, 512(%rdx)13187; AVX512DQ-NEXT:    vmovdqa64 %zmm2, 448(%rdx)13188; AVX512DQ-NEXT:    vmovdqa64 %zmm3, 384(%rdx)13189; AVX512DQ-NEXT:    vmovdqa64 %zmm5, 320(%rdx)13190; AVX512DQ-NEXT:    vmovdqa64 %zmm7, 256(%rdx)13191; AVX512DQ-NEXT:    vmovdqa64 %zmm9, 192(%rdx)13192; AVX512DQ-NEXT:    vmovdqa64 %zmm11, 128(%rdx)13193; AVX512DQ-NEXT:    vmovdqa64 %zmm13, 64(%rdx)13194; AVX512DQ-NEXT:    vmovdqa64 %zmm15, (%rdx)13195; AVX512DQ-NEXT:    vzeroupper13196; AVX512DQ-NEXT:    retq13197;13198; AVX512BW-LABEL: mask_replication_factor8_vf32:13199; AVX512BW:       # %bb.0:13200; AVX512BW-NEXT:    kmovd (%rdi), %k013201; AVX512BW-NEXT:    vpmovm2b %k0, %zmm013202; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm1 = zmm0[2,3,2,3,2,3,2,3]13203; AVX512BW-NEXT:    vmovdqa64 {{.*#+}} zmm2 = [8,8,8,8,8,8,8,8,9,9,9,9,9,9,9,9,10,10,10,10,10,10,10,10,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,13,13,13,13,13,13,13,13,14,14,14,14,14,14,14,14,15,15,15,15,15,15,15,15]13204; AVX512BW-NEXT:    vpshufb %zmm2, %zmm1, %zmm313205; AVX512BW-NEXT:    vpmovb2m %zmm3, %k113206; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm3 = zmm0[0,1,0,1,0,1,0,1]13207; AVX512BW-NEXT:    vpshufb %zmm2, %zmm3, %zmm213208; AVX512BW-NEXT:    vpmovb2m %zmm2, %k313209; AVX512BW-NEXT:    vpshufb {{.*#+}} zmm1 = zmm1[0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,18,18,18,18,18,18,18,18,19,19,19,19,19,19,19,19,36,36,36,36,36,36,36,36,37,37,37,37,37,37,37,37,54,54,54,54,54,54,54,54,55,55,55,55,55,55,55,55]13210; AVX512BW-NEXT:    vpmovb2m %zmm1, %k213211; AVX512BW-NEXT:    vpmovsxbq %xmm0, %zmm013212; AVX512BW-NEXT:    vpmovb2m %zmm0, %k413213; AVX512BW-NEXT:    kshiftrq $16, %k4, %k513214; AVX512BW-NEXT:    vmovdqa32 64(%rsi), %zmm0 {%k5} {z}13215; AVX512BW-NEXT:    vmovdqa32 (%rsi), %zmm1 {%k4} {z}13216; AVX512BW-NEXT:    kshiftrq $48, %k4, %k513217; AVX512BW-NEXT:    vmovdqa32 192(%rsi), %zmm2 {%k5} {z}13218; AVX512BW-NEXT:    kshiftrq $32, %k4, %k413219; AVX512BW-NEXT:    vmovdqa32 128(%rsi), %zmm3 {%k4} {z}13220; AVX512BW-NEXT:    kshiftrq $16, %k3, %k413221; AVX512BW-NEXT:    vmovdqa32 320(%rsi), %zmm4 {%k4} {z}13222; AVX512BW-NEXT:    vmovdqa32 256(%rsi), %zmm5 {%k3} {z}13223; AVX512BW-NEXT:    kshiftrq $48, %k3, %k413224; AVX512BW-NEXT:    vmovdqa32 448(%rsi), %zmm6 {%k4} {z}13225; AVX512BW-NEXT:    kshiftrq $32, %k3, %k313226; AVX512BW-NEXT:    vmovdqa32 384(%rsi), %zmm7 {%k3} {z}13227; AVX512BW-NEXT:    kshiftrq $16, %k2, %k313228; AVX512BW-NEXT:    vmovdqa32 576(%rsi), %zmm8 {%k3} {z}13229; AVX512BW-NEXT:    vmovdqa32 512(%rsi), %zmm9 {%k2} {z}13230; AVX512BW-NEXT:    kshiftrq $48, %k2, %k313231; AVX512BW-NEXT:    vmovdqa32 704(%rsi), %zmm10 {%k3} {z}13232; AVX512BW-NEXT:    kshiftrq $32, %k2, %k213233; AVX512BW-NEXT:    vmovdqa32 640(%rsi), %zmm11 {%k2} {z}13234; AVX512BW-NEXT:    kshiftrq $16, %k1, %k213235; AVX512BW-NEXT:    vmovdqa32 832(%rsi), %zmm12 {%k2} {z}13236; AVX512BW-NEXT:    vmovdqa32 768(%rsi), %zmm13 {%k1} {z}13237; AVX512BW-NEXT:    kshiftrq $48, %k1, %k213238; AVX512BW-NEXT:    vmovdqa32 960(%rsi), %zmm14 {%k2} {z}13239; AVX512BW-NEXT:    kshiftrq $32, %k1, %k113240; AVX512BW-NEXT:    vmovdqa32 896(%rsi), %zmm15 {%k1} {z}13241; AVX512BW-NEXT:    vmovdqa64 %zmm15, 896(%rdx)13242; AVX512BW-NEXT:    vmovdqa64 %zmm14, 960(%rdx)13243; AVX512BW-NEXT:    vmovdqa64 %zmm13, 768(%rdx)13244; AVX512BW-NEXT:    vmovdqa64 %zmm12, 832(%rdx)13245; AVX512BW-NEXT:    vmovdqa64 %zmm11, 640(%rdx)13246; AVX512BW-NEXT:    vmovdqa64 %zmm10, 704(%rdx)13247; AVX512BW-NEXT:    vmovdqa64 %zmm9, 512(%rdx)13248; AVX512BW-NEXT:    vmovdqa64 %zmm8, 576(%rdx)13249; AVX512BW-NEXT:    vmovdqa64 %zmm7, 384(%rdx)13250; AVX512BW-NEXT:    vmovdqa64 %zmm6, 448(%rdx)13251; AVX512BW-NEXT:    vmovdqa64 %zmm5, 256(%rdx)13252; AVX512BW-NEXT:    vmovdqa64 %zmm4, 320(%rdx)13253; AVX512BW-NEXT:    vmovdqa64 %zmm3, 128(%rdx)13254; AVX512BW-NEXT:    vmovdqa64 %zmm2, 192(%rdx)13255; AVX512BW-NEXT:    vmovdqa64 %zmm1, (%rdx)13256; AVX512BW-NEXT:    vmovdqa64 %zmm0, 64(%rdx)13257; AVX512BW-NEXT:    vzeroupper13258; AVX512BW-NEXT:    retq13259  %src.mask.padded = load <64 x i1>, ptr %in.maskvec, align 6413260  %src.mask = shufflevector <64 x i1> %src.mask.padded, <64 x i1> poison, <32 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31>13261  %tgt.mask = shufflevector <32 x i1> %src.mask, <32 x i1> poison, <256 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 4, i32 4, i32 4, i32 4, i32 4, i32 4, i32 4, i32 4, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 6, i32 6, i32 6, i32 6, i32 6, i32 6, i32 6, i32 6, i32 7, i32 7, i32 7, i32 7, i32 7, i32 7, i32 7, i32 7, i32 8, i32 8, i32 8, i32 8, i32 8, i32 8, i32 8, i32 8, i32 9, i32 9, i32 9, i32 9, i32 9, i32 9, i32 9, i32 9, i32 10, i32 10, i32 10, i32 10, i32 10, i32 10, i32 10, i32 10, i32 11, i32 11, i32 11, i32 11, i32 11, i32 11, i32 11, i32 11, i32 12, i32 12, i32 12, i32 12, i32 12, i32 12, i32 12, i32 12, i32 13, i32 13, i32 13, i32 13, i32 13, i32 13, i32 13, i32 13, i32 14, i32 14, i32 14, i32 14, i32 14, i32 14, i32 14, i32 14, i32 15, i32 15, i32 15, i32 15, i32 15, i32 15, i32 15, i32 15, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 17, i32 17, i32 17, i32 17, i32 17, i32 17, i32 17, i32 17, i32 18, i32 18, i32 18, i32 18, i32 18, i32 18, i32 18, i32 18, i32 19, i32 19, i32 19, i32 19, i32 19, i32 19, i32 19, i32 19, i32 20, i32 20, i32 20, i32 20, i32 20, i32 20, i32 20, i32 20, i32 21, i32 21, i32 21, i32 21, i32 21, i32 21, i32 21, i32 21, i32 22, i32 22, i32 22, i32 22, i32 22, i32 22, i32 22, i32 22, i32 23, i32 23, i32 23, i32 23, i32 23, i32 23, i32 23, i32 23, i32 24, i32 24, i32 24, i32 24, i32 24, i32 24, i32 24, i32 24, i32 25, i32 25, i32 25, i32 25, i32 25, i32 25, i32 25, i32 25, i32 26, i32 26, i32 26, i32 26, i32 26, i32 26, i32 26, i32 26, i32 27, i32 27, i32 27, i32 27, i32 27, i32 27, i32 27, i32 27, i32 28, i32 28, i32 28, i32 28, i32 28, i32 28, i32 28, i32 28, i32 29, i32 29, i32 29, i32 29, i32 29, i32 29, i32 29, i32 29, i32 30, i32 30, i32 30, i32 30, i32 30, i32 30, i32 30, i32 30, i32 31, i32 31, i32 31, i32 31, i32 31, i32 31, i32 31, i32 31>13262  %data = call <256 x i32> @llvm.masked.load.v256i32.p0(ptr %in.vec, i32 64, <256 x i1> %tgt.mask, <256 x i32> poison)13263  store <256 x i32> %data, ptr %out.vec, align 6413264  ret void13265}13266 13267define void @mask_replication_factor8_vf64(ptr %in.maskvec, ptr %in.vec, ptr %out.vec) nounwind {13268; AVX512F-ONLY-LABEL: mask_replication_factor8_vf64:13269; AVX512F-ONLY:       # %bb.0:13270; AVX512F-ONLY-NEXT:    subq $136, %rsp13271; AVX512F-ONLY-NEXT:    kmovw 6(%rdi), %k113272; AVX512F-ONLY-NEXT:    vpternlogd {{.*#+}} zmm6 {%k1} {z} = -113273; AVX512F-ONLY-NEXT:    kmovw 4(%rdi), %k113274; AVX512F-ONLY-NEXT:    vpternlogd {{.*#+}} zmm8 {%k1} {z} = -113275; AVX512F-ONLY-NEXT:    kmovw 2(%rdi), %k113276; AVX512F-ONLY-NEXT:    vpternlogd {{.*#+}} zmm10 {%k1} {z} = -113277; AVX512F-ONLY-NEXT:    kmovw (%rdi), %k113278; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [14,14,14,14,14,14,14,14,15,15,15,15,15,15,15,15]13279; AVX512F-ONLY-NEXT:    vpermd %zmm6, %zmm12, %zmm013280; AVX512F-ONLY-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill13281; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm14 = [12,12,12,12,12,12,12,12,13,13,13,13,13,13,13,13]13282; AVX512F-ONLY-NEXT:    vpermd %zmm6, %zmm14, %zmm013283; AVX512F-ONLY-NEXT:    vmovdqu64 %zmm0, (%rsp) # 64-byte Spill13284; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm16 = [10,10,10,10,10,10,10,10,11,11,11,11,11,11,11,11]13285; AVX512F-ONLY-NEXT:    vpermd %zmm6, %zmm16, %zmm013286; AVX512F-ONLY-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill13287; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm18 = [8,8,8,8,8,8,8,8,9,9,9,9,9,9,9,9]13288; AVX512F-ONLY-NEXT:    vpermd %zmm6, %zmm18, %zmm013289; AVX512F-ONLY-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill13290; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm20 = [6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7]13291; AVX512F-ONLY-NEXT:    vpermd %zmm6, %zmm20, %zmm413292; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm22 = [4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5]13293; AVX512F-ONLY-NEXT:    vpermd %zmm6, %zmm22, %zmm513294; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm24 = [2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3]13295; AVX512F-ONLY-NEXT:    vpermd %zmm6, %zmm24, %zmm713296; AVX512F-ONLY-NEXT:    vpmovsxbd {{.*#+}} zmm26 = [0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1]13297; AVX512F-ONLY-NEXT:    vpermd %zmm6, %zmm26, %zmm913298; AVX512F-ONLY-NEXT:    vpermd %zmm8, %zmm12, %zmm1113299; AVX512F-ONLY-NEXT:    vpermd %zmm8, %zmm14, %zmm1313300; AVX512F-ONLY-NEXT:    vpermd %zmm8, %zmm16, %zmm1513301; AVX512F-ONLY-NEXT:    vpermd %zmm8, %zmm18, %zmm1713302; AVX512F-ONLY-NEXT:    vpermd %zmm8, %zmm20, %zmm1913303; AVX512F-ONLY-NEXT:    vpermd %zmm8, %zmm22, %zmm2113304; AVX512F-ONLY-NEXT:    vpermd %zmm8, %zmm24, %zmm2313305; AVX512F-ONLY-NEXT:    vpermd %zmm8, %zmm26, %zmm2513306; AVX512F-ONLY-NEXT:    vpermd %zmm10, %zmm12, %zmm2713307; AVX512F-ONLY-NEXT:    vpermd %zmm10, %zmm14, %zmm2813308; AVX512F-ONLY-NEXT:    vpermd %zmm10, %zmm16, %zmm2913309; AVX512F-ONLY-NEXT:    vpermd %zmm10, %zmm18, %zmm3013310; AVX512F-ONLY-NEXT:    vpermd %zmm10, %zmm20, %zmm3113311; AVX512F-ONLY-NEXT:    vpermd %zmm10, %zmm22, %zmm313312; AVX512F-ONLY-NEXT:    vpermd %zmm10, %zmm24, %zmm613313; AVX512F-ONLY-NEXT:    vpermd %zmm10, %zmm26, %zmm213314; AVX512F-ONLY-NEXT:    vpternlogd {{.*#+}} zmm8 {%k1} {z} = -113315; AVX512F-ONLY-NEXT:    vpermd %zmm8, %zmm12, %zmm113316; AVX512F-ONLY-NEXT:    vpermd %zmm8, %zmm14, %zmm013317; AVX512F-ONLY-NEXT:    vpermd %zmm8, %zmm16, %zmm1613318; AVX512F-ONLY-NEXT:    vpermd %zmm8, %zmm18, %zmm1413319; AVX512F-ONLY-NEXT:    vpermd %zmm8, %zmm20, %zmm1213320; AVX512F-ONLY-NEXT:    vpermd %zmm8, %zmm22, %zmm1013321; AVX512F-ONLY-NEXT:    vpermd %zmm8, %zmm24, %zmm1813322; AVX512F-ONLY-NEXT:    vpermd %zmm8, %zmm26, %zmm813323; AVX512F-ONLY-NEXT:    vptestmd %zmm8, %zmm8, %k113324; AVX512F-ONLY-NEXT:    vmovdqa32 (%rsi), %zmm26 {%k1} {z}13325; AVX512F-ONLY-NEXT:    vptestmd %zmm18, %zmm18, %k113326; AVX512F-ONLY-NEXT:    vmovdqa32 64(%rsi), %zmm8 {%k1} {z}13327; AVX512F-ONLY-NEXT:    vptestmd %zmm10, %zmm10, %k113328; AVX512F-ONLY-NEXT:    vmovdqa32 128(%rsi), %zmm10 {%k1} {z}13329; AVX512F-ONLY-NEXT:    vptestmd %zmm12, %zmm12, %k113330; AVX512F-ONLY-NEXT:    vmovdqa32 192(%rsi), %zmm12 {%k1} {z}13331; AVX512F-ONLY-NEXT:    vptestmd %zmm14, %zmm14, %k113332; AVX512F-ONLY-NEXT:    vmovdqa32 256(%rsi), %zmm14 {%k1} {z}13333; AVX512F-ONLY-NEXT:    vptestmd %zmm16, %zmm16, %k113334; AVX512F-ONLY-NEXT:    vmovdqa32 320(%rsi), %zmm16 {%k1} {z}13335; AVX512F-ONLY-NEXT:    vptestmd %zmm0, %zmm0, %k113336; AVX512F-ONLY-NEXT:    vmovdqa32 384(%rsi), %zmm18 {%k1} {z}13337; AVX512F-ONLY-NEXT:    vptestmd %zmm1, %zmm1, %k113338; AVX512F-ONLY-NEXT:    vmovdqa32 448(%rsi), %zmm20 {%k1} {z}13339; AVX512F-ONLY-NEXT:    vptestmd %zmm2, %zmm2, %k113340; AVX512F-ONLY-NEXT:    vmovdqa32 512(%rsi), %zmm22 {%k1} {z}13341; AVX512F-ONLY-NEXT:    vptestmd %zmm6, %zmm6, %k113342; AVX512F-ONLY-NEXT:    vmovdqa32 576(%rsi), %zmm24 {%k1} {z}13343; AVX512F-ONLY-NEXT:    vptestmd %zmm3, %zmm3, %k113344; AVX512F-ONLY-NEXT:    vmovdqa32 640(%rsi), %zmm0 {%k1} {z}13345; AVX512F-ONLY-NEXT:    vptestmd %zmm31, %zmm31, %k113346; AVX512F-ONLY-NEXT:    vmovdqa32 704(%rsi), %zmm1 {%k1} {z}13347; AVX512F-ONLY-NEXT:    vptestmd %zmm30, %zmm30, %k113348; AVX512F-ONLY-NEXT:    vmovdqa32 768(%rsi), %zmm2 {%k1} {z}13349; AVX512F-ONLY-NEXT:    vptestmd %zmm29, %zmm29, %k113350; AVX512F-ONLY-NEXT:    vmovdqa32 832(%rsi), %zmm3 {%k1} {z}13351; AVX512F-ONLY-NEXT:    vptestmd %zmm28, %zmm28, %k113352; AVX512F-ONLY-NEXT:    vmovdqa32 896(%rsi), %zmm6 {%k1} {z}13353; AVX512F-ONLY-NEXT:    vptestmd %zmm27, %zmm27, %k113354; AVX512F-ONLY-NEXT:    vmovdqa32 960(%rsi), %zmm27 {%k1} {z}13355; AVX512F-ONLY-NEXT:    vptestmd %zmm25, %zmm25, %k113356; AVX512F-ONLY-NEXT:    vmovdqa32 1024(%rsi), %zmm25 {%k1} {z}13357; AVX512F-ONLY-NEXT:    vptestmd %zmm23, %zmm23, %k113358; AVX512F-ONLY-NEXT:    vmovdqa32 1088(%rsi), %zmm23 {%k1} {z}13359; AVX512F-ONLY-NEXT:    vptestmd %zmm21, %zmm21, %k113360; AVX512F-ONLY-NEXT:    vmovdqa32 1152(%rsi), %zmm21 {%k1} {z}13361; AVX512F-ONLY-NEXT:    vptestmd %zmm19, %zmm19, %k113362; AVX512F-ONLY-NEXT:    vmovdqa32 1216(%rsi), %zmm19 {%k1} {z}13363; AVX512F-ONLY-NEXT:    vptestmd %zmm17, %zmm17, %k113364; AVX512F-ONLY-NEXT:    vmovdqa32 1280(%rsi), %zmm17 {%k1} {z}13365; AVX512F-ONLY-NEXT:    vptestmd %zmm15, %zmm15, %k113366; AVX512F-ONLY-NEXT:    vmovdqa32 1344(%rsi), %zmm15 {%k1} {z}13367; AVX512F-ONLY-NEXT:    vptestmd %zmm13, %zmm13, %k113368; AVX512F-ONLY-NEXT:    vmovdqa32 1408(%rsi), %zmm13 {%k1} {z}13369; AVX512F-ONLY-NEXT:    vptestmd %zmm11, %zmm11, %k113370; AVX512F-ONLY-NEXT:    vmovdqa32 1472(%rsi), %zmm11 {%k1} {z}13371; AVX512F-ONLY-NEXT:    vptestmd %zmm9, %zmm9, %k113372; AVX512F-ONLY-NEXT:    vmovdqa32 1536(%rsi), %zmm9 {%k1} {z}13373; AVX512F-ONLY-NEXT:    vptestmd %zmm7, %zmm7, %k113374; AVX512F-ONLY-NEXT:    vmovdqa32 1600(%rsi), %zmm7 {%k1} {z}13375; AVX512F-ONLY-NEXT:    vptestmd %zmm5, %zmm5, %k113376; AVX512F-ONLY-NEXT:    vmovdqa32 1664(%rsi), %zmm5 {%k1} {z}13377; AVX512F-ONLY-NEXT:    vptestmd %zmm4, %zmm4, %k113378; AVX512F-ONLY-NEXT:    vmovdqa32 1728(%rsi), %zmm4 {%k1} {z}13379; AVX512F-ONLY-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm28 # 64-byte Reload13380; AVX512F-ONLY-NEXT:    vptestmd %zmm28, %zmm28, %k113381; AVX512F-ONLY-NEXT:    vmovdqa32 1792(%rsi), %zmm28 {%k1} {z}13382; AVX512F-ONLY-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm29 # 64-byte Reload13383; AVX512F-ONLY-NEXT:    vptestmd %zmm29, %zmm29, %k113384; AVX512F-ONLY-NEXT:    vmovdqa32 1856(%rsi), %zmm29 {%k1} {z}13385; AVX512F-ONLY-NEXT:    vmovdqu64 (%rsp), %zmm30 # 64-byte Reload13386; AVX512F-ONLY-NEXT:    vptestmd %zmm30, %zmm30, %k113387; AVX512F-ONLY-NEXT:    vmovdqa32 1920(%rsi), %zmm30 {%k1} {z}13388; AVX512F-ONLY-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm31 # 64-byte Reload13389; AVX512F-ONLY-NEXT:    vptestmd %zmm31, %zmm31, %k113390; AVX512F-ONLY-NEXT:    vmovdqa32 1984(%rsi), %zmm31 {%k1} {z}13391; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm31, 1984(%rdx)13392; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm30, 1920(%rdx)13393; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm29, 1856(%rdx)13394; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm28, 1792(%rdx)13395; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm4, 1728(%rdx)13396; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm5, 1664(%rdx)13397; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm7, 1600(%rdx)13398; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm9, 1536(%rdx)13399; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm11, 1472(%rdx)13400; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm13, 1408(%rdx)13401; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm15, 1344(%rdx)13402; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm17, 1280(%rdx)13403; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm19, 1216(%rdx)13404; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm21, 1152(%rdx)13405; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm23, 1088(%rdx)13406; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm25, 1024(%rdx)13407; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm27, 960(%rdx)13408; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm6, 896(%rdx)13409; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm3, 832(%rdx)13410; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm2, 768(%rdx)13411; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm1, 704(%rdx)13412; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm0, 640(%rdx)13413; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm24, 576(%rdx)13414; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm22, 512(%rdx)13415; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm20, 448(%rdx)13416; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm18, 384(%rdx)13417; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm16, 320(%rdx)13418; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm14, 256(%rdx)13419; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm12, 192(%rdx)13420; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm10, 128(%rdx)13421; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm8, 64(%rdx)13422; AVX512F-ONLY-NEXT:    vmovdqa64 %zmm26, (%rdx)13423; AVX512F-ONLY-NEXT:    addq $136, %rsp13424; AVX512F-ONLY-NEXT:    vzeroupper13425; AVX512F-ONLY-NEXT:    retq13426;13427; AVX512DQ-LABEL: mask_replication_factor8_vf64:13428; AVX512DQ:       # %bb.0:13429; AVX512DQ-NEXT:    subq $136, %rsp13430; AVX512DQ-NEXT:    kmovw 6(%rdi), %k013431; AVX512DQ-NEXT:    vpmovm2d %k0, %zmm613432; AVX512DQ-NEXT:    kmovw 4(%rdi), %k013433; AVX512DQ-NEXT:    vpmovm2d %k0, %zmm813434; AVX512DQ-NEXT:    kmovw 2(%rdi), %k013435; AVX512DQ-NEXT:    vpmovm2d %k0, %zmm1013436; AVX512DQ-NEXT:    kmovw (%rdi), %k013437; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [14,14,14,14,14,14,14,14,15,15,15,15,15,15,15,15]13438; AVX512DQ-NEXT:    vpermd %zmm6, %zmm12, %zmm013439; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill13440; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm14 = [12,12,12,12,12,12,12,12,13,13,13,13,13,13,13,13]13441; AVX512DQ-NEXT:    vpermd %zmm6, %zmm14, %zmm013442; AVX512DQ-NEXT:    vmovdqu64 %zmm0, (%rsp) # 64-byte Spill13443; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm16 = [10,10,10,10,10,10,10,10,11,11,11,11,11,11,11,11]13444; AVX512DQ-NEXT:    vpermd %zmm6, %zmm16, %zmm013445; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill13446; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm18 = [8,8,8,8,8,8,8,8,9,9,9,9,9,9,9,9]13447; AVX512DQ-NEXT:    vpermd %zmm6, %zmm18, %zmm013448; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill13449; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm20 = [6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7]13450; AVX512DQ-NEXT:    vpermd %zmm6, %zmm20, %zmm413451; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm22 = [4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5]13452; AVX512DQ-NEXT:    vpermd %zmm6, %zmm22, %zmm513453; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm24 = [2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3]13454; AVX512DQ-NEXT:    vpermd %zmm6, %zmm24, %zmm713455; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm26 = [0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1]13456; AVX512DQ-NEXT:    vpermd %zmm6, %zmm26, %zmm913457; AVX512DQ-NEXT:    vpermd %zmm8, %zmm12, %zmm1113458; AVX512DQ-NEXT:    vpermd %zmm8, %zmm14, %zmm1313459; AVX512DQ-NEXT:    vpermd %zmm8, %zmm16, %zmm1513460; AVX512DQ-NEXT:    vpermd %zmm8, %zmm18, %zmm1713461; AVX512DQ-NEXT:    vpermd %zmm8, %zmm20, %zmm1913462; AVX512DQ-NEXT:    vpermd %zmm8, %zmm22, %zmm2113463; AVX512DQ-NEXT:    vpermd %zmm8, %zmm24, %zmm2313464; AVX512DQ-NEXT:    vpermd %zmm8, %zmm26, %zmm2513465; AVX512DQ-NEXT:    vpermd %zmm10, %zmm12, %zmm2713466; AVX512DQ-NEXT:    vpermd %zmm10, %zmm14, %zmm2813467; AVX512DQ-NEXT:    vpermd %zmm10, %zmm16, %zmm2913468; AVX512DQ-NEXT:    vpermd %zmm10, %zmm18, %zmm3013469; AVX512DQ-NEXT:    vpermd %zmm10, %zmm20, %zmm3113470; AVX512DQ-NEXT:    vpermd %zmm10, %zmm22, %zmm313471; AVX512DQ-NEXT:    vpermd %zmm10, %zmm24, %zmm613472; AVX512DQ-NEXT:    vpermd %zmm10, %zmm26, %zmm213473; AVX512DQ-NEXT:    vpmovm2d %k0, %zmm813474; AVX512DQ-NEXT:    vpermd %zmm8, %zmm12, %zmm113475; AVX512DQ-NEXT:    vpermd %zmm8, %zmm14, %zmm013476; AVX512DQ-NEXT:    vpermd %zmm8, %zmm16, %zmm1613477; AVX512DQ-NEXT:    vpermd %zmm8, %zmm18, %zmm1413478; AVX512DQ-NEXT:    vpermd %zmm8, %zmm20, %zmm1213479; AVX512DQ-NEXT:    vpermd %zmm8, %zmm22, %zmm1013480; AVX512DQ-NEXT:    vpermd %zmm8, %zmm24, %zmm1813481; AVX512DQ-NEXT:    vpermd %zmm8, %zmm26, %zmm813482; AVX512DQ-NEXT:    vpmovd2m %zmm8, %k113483; AVX512DQ-NEXT:    vmovdqa32 (%rsi), %zmm26 {%k1} {z}13484; AVX512DQ-NEXT:    vpmovd2m %zmm18, %k113485; AVX512DQ-NEXT:    vmovdqa32 64(%rsi), %zmm8 {%k1} {z}13486; AVX512DQ-NEXT:    vpmovd2m %zmm10, %k113487; AVX512DQ-NEXT:    vmovdqa32 128(%rsi), %zmm10 {%k1} {z}13488; AVX512DQ-NEXT:    vpmovd2m %zmm12, %k113489; AVX512DQ-NEXT:    vmovdqa32 192(%rsi), %zmm12 {%k1} {z}13490; AVX512DQ-NEXT:    vpmovd2m %zmm14, %k113491; AVX512DQ-NEXT:    vmovdqa32 256(%rsi), %zmm14 {%k1} {z}13492; AVX512DQ-NEXT:    vpmovd2m %zmm16, %k113493; AVX512DQ-NEXT:    vmovdqa32 320(%rsi), %zmm16 {%k1} {z}13494; AVX512DQ-NEXT:    vpmovd2m %zmm0, %k113495; AVX512DQ-NEXT:    vmovdqa32 384(%rsi), %zmm18 {%k1} {z}13496; AVX512DQ-NEXT:    vpmovd2m %zmm1, %k113497; AVX512DQ-NEXT:    vmovdqa32 448(%rsi), %zmm20 {%k1} {z}13498; AVX512DQ-NEXT:    vpmovd2m %zmm2, %k113499; AVX512DQ-NEXT:    vmovdqa32 512(%rsi), %zmm22 {%k1} {z}13500; AVX512DQ-NEXT:    vpmovd2m %zmm6, %k113501; AVX512DQ-NEXT:    vmovdqa32 576(%rsi), %zmm24 {%k1} {z}13502; AVX512DQ-NEXT:    vpmovd2m %zmm3, %k113503; AVX512DQ-NEXT:    vmovdqa32 640(%rsi), %zmm0 {%k1} {z}13504; AVX512DQ-NEXT:    vpmovd2m %zmm31, %k113505; AVX512DQ-NEXT:    vmovdqa32 704(%rsi), %zmm1 {%k1} {z}13506; AVX512DQ-NEXT:    vpmovd2m %zmm30, %k113507; AVX512DQ-NEXT:    vmovdqa32 768(%rsi), %zmm2 {%k1} {z}13508; AVX512DQ-NEXT:    vpmovd2m %zmm29, %k113509; AVX512DQ-NEXT:    vmovdqa32 832(%rsi), %zmm3 {%k1} {z}13510; AVX512DQ-NEXT:    vpmovd2m %zmm28, %k113511; AVX512DQ-NEXT:    vmovdqa32 896(%rsi), %zmm6 {%k1} {z}13512; AVX512DQ-NEXT:    vpmovd2m %zmm27, %k113513; AVX512DQ-NEXT:    vmovdqa32 960(%rsi), %zmm27 {%k1} {z}13514; AVX512DQ-NEXT:    vpmovd2m %zmm25, %k113515; AVX512DQ-NEXT:    vmovdqa32 1024(%rsi), %zmm25 {%k1} {z}13516; AVX512DQ-NEXT:    vpmovd2m %zmm23, %k113517; AVX512DQ-NEXT:    vmovdqa32 1088(%rsi), %zmm23 {%k1} {z}13518; AVX512DQ-NEXT:    vpmovd2m %zmm21, %k113519; AVX512DQ-NEXT:    vmovdqa32 1152(%rsi), %zmm21 {%k1} {z}13520; AVX512DQ-NEXT:    vpmovd2m %zmm19, %k113521; AVX512DQ-NEXT:    vmovdqa32 1216(%rsi), %zmm19 {%k1} {z}13522; AVX512DQ-NEXT:    vpmovd2m %zmm17, %k113523; AVX512DQ-NEXT:    vmovdqa32 1280(%rsi), %zmm17 {%k1} {z}13524; AVX512DQ-NEXT:    vpmovd2m %zmm15, %k113525; AVX512DQ-NEXT:    vmovdqa32 1344(%rsi), %zmm15 {%k1} {z}13526; AVX512DQ-NEXT:    vpmovd2m %zmm13, %k113527; AVX512DQ-NEXT:    vmovdqa32 1408(%rsi), %zmm13 {%k1} {z}13528; AVX512DQ-NEXT:    vpmovd2m %zmm11, %k113529; AVX512DQ-NEXT:    vmovdqa32 1472(%rsi), %zmm11 {%k1} {z}13530; AVX512DQ-NEXT:    vpmovd2m %zmm9, %k113531; AVX512DQ-NEXT:    vmovdqa32 1536(%rsi), %zmm9 {%k1} {z}13532; AVX512DQ-NEXT:    vpmovd2m %zmm7, %k113533; AVX512DQ-NEXT:    vmovdqa32 1600(%rsi), %zmm7 {%k1} {z}13534; AVX512DQ-NEXT:    vpmovd2m %zmm5, %k113535; AVX512DQ-NEXT:    vmovdqa32 1664(%rsi), %zmm5 {%k1} {z}13536; AVX512DQ-NEXT:    vpmovd2m %zmm4, %k113537; AVX512DQ-NEXT:    vmovdqa32 1728(%rsi), %zmm4 {%k1} {z}13538; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm28 # 64-byte Reload13539; AVX512DQ-NEXT:    vpmovd2m %zmm28, %k113540; AVX512DQ-NEXT:    vmovdqa32 1792(%rsi), %zmm28 {%k1} {z}13541; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm29 # 64-byte Reload13542; AVX512DQ-NEXT:    vpmovd2m %zmm29, %k113543; AVX512DQ-NEXT:    vmovdqa32 1856(%rsi), %zmm29 {%k1} {z}13544; AVX512DQ-NEXT:    vmovdqu64 (%rsp), %zmm30 # 64-byte Reload13545; AVX512DQ-NEXT:    vpmovd2m %zmm30, %k113546; AVX512DQ-NEXT:    vmovdqa32 1920(%rsi), %zmm30 {%k1} {z}13547; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm31 # 64-byte Reload13548; AVX512DQ-NEXT:    vpmovd2m %zmm31, %k113549; AVX512DQ-NEXT:    vmovdqa32 1984(%rsi), %zmm31 {%k1} {z}13550; AVX512DQ-NEXT:    vmovdqa64 %zmm31, 1984(%rdx)13551; AVX512DQ-NEXT:    vmovdqa64 %zmm30, 1920(%rdx)13552; AVX512DQ-NEXT:    vmovdqa64 %zmm29, 1856(%rdx)13553; AVX512DQ-NEXT:    vmovdqa64 %zmm28, 1792(%rdx)13554; AVX512DQ-NEXT:    vmovdqa64 %zmm4, 1728(%rdx)13555; AVX512DQ-NEXT:    vmovdqa64 %zmm5, 1664(%rdx)13556; AVX512DQ-NEXT:    vmovdqa64 %zmm7, 1600(%rdx)13557; AVX512DQ-NEXT:    vmovdqa64 %zmm9, 1536(%rdx)13558; AVX512DQ-NEXT:    vmovdqa64 %zmm11, 1472(%rdx)13559; AVX512DQ-NEXT:    vmovdqa64 %zmm13, 1408(%rdx)13560; AVX512DQ-NEXT:    vmovdqa64 %zmm15, 1344(%rdx)13561; AVX512DQ-NEXT:    vmovdqa64 %zmm17, 1280(%rdx)13562; AVX512DQ-NEXT:    vmovdqa64 %zmm19, 1216(%rdx)13563; AVX512DQ-NEXT:    vmovdqa64 %zmm21, 1152(%rdx)13564; AVX512DQ-NEXT:    vmovdqa64 %zmm23, 1088(%rdx)13565; AVX512DQ-NEXT:    vmovdqa64 %zmm25, 1024(%rdx)13566; AVX512DQ-NEXT:    vmovdqa64 %zmm27, 960(%rdx)13567; AVX512DQ-NEXT:    vmovdqa64 %zmm6, 896(%rdx)13568; AVX512DQ-NEXT:    vmovdqa64 %zmm3, 832(%rdx)13569; AVX512DQ-NEXT:    vmovdqa64 %zmm2, 768(%rdx)13570; AVX512DQ-NEXT:    vmovdqa64 %zmm1, 704(%rdx)13571; AVX512DQ-NEXT:    vmovdqa64 %zmm0, 640(%rdx)13572; AVX512DQ-NEXT:    vmovdqa64 %zmm24, 576(%rdx)13573; AVX512DQ-NEXT:    vmovdqa64 %zmm22, 512(%rdx)13574; AVX512DQ-NEXT:    vmovdqa64 %zmm20, 448(%rdx)13575; AVX512DQ-NEXT:    vmovdqa64 %zmm18, 384(%rdx)13576; AVX512DQ-NEXT:    vmovdqa64 %zmm16, 320(%rdx)13577; AVX512DQ-NEXT:    vmovdqa64 %zmm14, 256(%rdx)13578; AVX512DQ-NEXT:    vmovdqa64 %zmm12, 192(%rdx)13579; AVX512DQ-NEXT:    vmovdqa64 %zmm10, 128(%rdx)13580; AVX512DQ-NEXT:    vmovdqa64 %zmm8, 64(%rdx)13581; AVX512DQ-NEXT:    vmovdqa64 %zmm26, (%rdx)13582; AVX512DQ-NEXT:    addq $136, %rsp13583; AVX512DQ-NEXT:    vzeroupper13584; AVX512DQ-NEXT:    retq13585;13586; AVX512BW-LABEL: mask_replication_factor8_vf64:13587; AVX512BW:       # %bb.0:13588; AVX512BW-NEXT:    kmovq (%rdi), %k013589; AVX512BW-NEXT:    vpmovm2b %k0, %zmm013590; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm1 = zmm0[6,7,6,7,6,7,6,7]13591; AVX512BW-NEXT:    vmovdqa64 {{.*#+}} zmm2 = [8,8,8,8,8,8,8,8,9,9,9,9,9,9,9,9,10,10,10,10,10,10,10,10,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,13,13,13,13,13,13,13,13,14,14,14,14,14,14,14,14,15,15,15,15,15,15,15,15]13592; AVX512BW-NEXT:    vpshufb %zmm2, %zmm1, %zmm713593; AVX512BW-NEXT:    vmovdqa64 {{.*#+}} zmm3 = [0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7]13594; AVX512BW-NEXT:    vpshufb %zmm3, %zmm1, %zmm1013595; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm1 = zmm0[4,5,4,5,4,5,4,5]13596; AVX512BW-NEXT:    vpshufb %zmm2, %zmm1, %zmm1513597; AVX512BW-NEXT:    vpshufb %zmm3, %zmm1, %zmm1613598; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm1 = zmm0[2,3,2,3,2,3,2,3]13599; AVX512BW-NEXT:    vpshufb %zmm2, %zmm1, %zmm1113600; AVX512BW-NEXT:    vpshufb %zmm3, %zmm1, %zmm513601; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm1 = zmm0[0,1,0,1,0,1,0,1]13602; AVX512BW-NEXT:    vpshufb %zmm2, %zmm1, %zmm113603; AVX512BW-NEXT:    vpmovsxbq %xmm0, %zmm013604; AVX512BW-NEXT:    vpmovb2m %zmm0, %k213605; AVX512BW-NEXT:    kshiftrq $16, %k2, %k113606; AVX512BW-NEXT:    vmovdqa32 64(%rsi), %zmm0 {%k1} {z}13607; AVX512BW-NEXT:    kshiftrq $32, %k2, %k113608; AVX512BW-NEXT:    vmovdqa32 128(%rsi), %zmm2 {%k1} {z}13609; AVX512BW-NEXT:    vpmovb2m %zmm1, %k113610; AVX512BW-NEXT:    vmovdqa32 (%rsi), %zmm1 {%k2} {z}13611; AVX512BW-NEXT:    kshiftrq $48, %k2, %k213612; AVX512BW-NEXT:    vmovdqa32 192(%rsi), %zmm3 {%k2} {z}13613; AVX512BW-NEXT:    kshiftrq $16, %k1, %k213614; AVX512BW-NEXT:    vmovdqa32 320(%rsi), %zmm4 {%k2} {z}13615; AVX512BW-NEXT:    kshiftrq $32, %k1, %k213616; AVX512BW-NEXT:    vmovdqa32 384(%rsi), %zmm6 {%k2} {z}13617; AVX512BW-NEXT:    vpmovb2m %zmm5, %k213618; AVX512BW-NEXT:    vmovdqa32 256(%rsi), %zmm5 {%k1} {z}13619; AVX512BW-NEXT:    kshiftrq $48, %k1, %k113620; AVX512BW-NEXT:    vmovdqa32 448(%rsi), %zmm8 {%k1} {z}13621; AVX512BW-NEXT:    kshiftrq $16, %k2, %k113622; AVX512BW-NEXT:    vmovdqa32 576(%rsi), %zmm9 {%k1} {z}13623; AVX512BW-NEXT:    kshiftrq $32, %k2, %k113624; AVX512BW-NEXT:    vmovdqa32 640(%rsi), %zmm12 {%k1} {z}13625; AVX512BW-NEXT:    vpmovb2m %zmm11, %k113626; AVX512BW-NEXT:    vmovdqa32 512(%rsi), %zmm11 {%k2} {z}13627; AVX512BW-NEXT:    kshiftrq $48, %k2, %k213628; AVX512BW-NEXT:    vmovdqa32 704(%rsi), %zmm13 {%k2} {z}13629; AVX512BW-NEXT:    kshiftrq $16, %k1, %k213630; AVX512BW-NEXT:    vmovdqa32 832(%rsi), %zmm14 {%k2} {z}13631; AVX512BW-NEXT:    kshiftrq $32, %k1, %k213632; AVX512BW-NEXT:    vmovdqa32 896(%rsi), %zmm17 {%k2} {z}13633; AVX512BW-NEXT:    vpmovb2m %zmm16, %k213634; AVX512BW-NEXT:    vmovdqa32 768(%rsi), %zmm16 {%k1} {z}13635; AVX512BW-NEXT:    kshiftrq $48, %k1, %k113636; AVX512BW-NEXT:    vmovdqa32 960(%rsi), %zmm18 {%k1} {z}13637; AVX512BW-NEXT:    kshiftrq $16, %k2, %k113638; AVX512BW-NEXT:    vmovdqa32 1088(%rsi), %zmm19 {%k1} {z}13639; AVX512BW-NEXT:    kshiftrq $32, %k2, %k113640; AVX512BW-NEXT:    vmovdqa32 1152(%rsi), %zmm20 {%k1} {z}13641; AVX512BW-NEXT:    vpmovb2m %zmm15, %k113642; AVX512BW-NEXT:    vmovdqa32 1024(%rsi), %zmm15 {%k2} {z}13643; AVX512BW-NEXT:    kshiftrq $48, %k2, %k213644; AVX512BW-NEXT:    vmovdqa32 1216(%rsi), %zmm21 {%k2} {z}13645; AVX512BW-NEXT:    kshiftrq $16, %k1, %k213646; AVX512BW-NEXT:    vmovdqa32 1344(%rsi), %zmm22 {%k2} {z}13647; AVX512BW-NEXT:    kshiftrq $32, %k1, %k213648; AVX512BW-NEXT:    vmovdqa32 1408(%rsi), %zmm23 {%k2} {z}13649; AVX512BW-NEXT:    vpmovb2m %zmm10, %k213650; AVX512BW-NEXT:    vmovdqa32 1280(%rsi), %zmm10 {%k1} {z}13651; AVX512BW-NEXT:    kshiftrq $48, %k1, %k113652; AVX512BW-NEXT:    vmovdqa32 1472(%rsi), %zmm24 {%k1} {z}13653; AVX512BW-NEXT:    kshiftrq $16, %k2, %k113654; AVX512BW-NEXT:    vmovdqa32 1600(%rsi), %zmm25 {%k1} {z}13655; AVX512BW-NEXT:    kshiftrq $32, %k2, %k113656; AVX512BW-NEXT:    vmovdqa32 1664(%rsi), %zmm26 {%k1} {z}13657; AVX512BW-NEXT:    vpmovb2m %zmm7, %k113658; AVX512BW-NEXT:    vmovdqa32 1536(%rsi), %zmm7 {%k2} {z}13659; AVX512BW-NEXT:    kshiftrq $48, %k2, %k213660; AVX512BW-NEXT:    vmovdqa32 1728(%rsi), %zmm27 {%k2} {z}13661; AVX512BW-NEXT:    kshiftrq $16, %k1, %k213662; AVX512BW-NEXT:    vmovdqa32 1856(%rsi), %zmm28 {%k2} {z}13663; AVX512BW-NEXT:    kshiftrq $32, %k1, %k213664; AVX512BW-NEXT:    vmovdqa32 1920(%rsi), %zmm29 {%k2} {z}13665; AVX512BW-NEXT:    vmovdqa32 1792(%rsi), %zmm30 {%k1} {z}13666; AVX512BW-NEXT:    kshiftrq $48, %k1, %k113667; AVX512BW-NEXT:    vmovdqa32 1984(%rsi), %zmm31 {%k1} {z}13668; AVX512BW-NEXT:    vmovdqa64 %zmm31, 1984(%rdx)13669; AVX512BW-NEXT:    vmovdqa64 %zmm29, 1920(%rdx)13670; AVX512BW-NEXT:    vmovdqa64 %zmm28, 1856(%rdx)13671; AVX512BW-NEXT:    vmovdqa64 %zmm30, 1792(%rdx)13672; AVX512BW-NEXT:    vmovdqa64 %zmm27, 1728(%rdx)13673; AVX512BW-NEXT:    vmovdqa64 %zmm26, 1664(%rdx)13674; AVX512BW-NEXT:    vmovdqa64 %zmm25, 1600(%rdx)13675; AVX512BW-NEXT:    vmovdqa64 %zmm7, 1536(%rdx)13676; AVX512BW-NEXT:    vmovdqa64 %zmm24, 1472(%rdx)13677; AVX512BW-NEXT:    vmovdqa64 %zmm23, 1408(%rdx)13678; AVX512BW-NEXT:    vmovdqa64 %zmm22, 1344(%rdx)13679; AVX512BW-NEXT:    vmovdqa64 %zmm10, 1280(%rdx)13680; AVX512BW-NEXT:    vmovdqa64 %zmm21, 1216(%rdx)13681; AVX512BW-NEXT:    vmovdqa64 %zmm20, 1152(%rdx)13682; AVX512BW-NEXT:    vmovdqa64 %zmm19, 1088(%rdx)13683; AVX512BW-NEXT:    vmovdqa64 %zmm15, 1024(%rdx)13684; AVX512BW-NEXT:    vmovdqa64 %zmm18, 960(%rdx)13685; AVX512BW-NEXT:    vmovdqa64 %zmm17, 896(%rdx)13686; AVX512BW-NEXT:    vmovdqa64 %zmm14, 832(%rdx)13687; AVX512BW-NEXT:    vmovdqa64 %zmm16, 768(%rdx)13688; AVX512BW-NEXT:    vmovdqa64 %zmm13, 704(%rdx)13689; AVX512BW-NEXT:    vmovdqa64 %zmm12, 640(%rdx)13690; AVX512BW-NEXT:    vmovdqa64 %zmm9, 576(%rdx)13691; AVX512BW-NEXT:    vmovdqa64 %zmm11, 512(%rdx)13692; AVX512BW-NEXT:    vmovdqa64 %zmm8, 448(%rdx)13693; AVX512BW-NEXT:    vmovdqa64 %zmm6, 384(%rdx)13694; AVX512BW-NEXT:    vmovdqa64 %zmm4, 320(%rdx)13695; AVX512BW-NEXT:    vmovdqa64 %zmm5, 256(%rdx)13696; AVX512BW-NEXT:    vmovdqa64 %zmm3, 192(%rdx)13697; AVX512BW-NEXT:    vmovdqa64 %zmm2, 128(%rdx)13698; AVX512BW-NEXT:    vmovdqa64 %zmm0, 64(%rdx)13699; AVX512BW-NEXT:    vmovdqa64 %zmm1, (%rdx)13700; AVX512BW-NEXT:    vzeroupper13701; AVX512BW-NEXT:    retq13702  %src.mask = load <64 x i1>, ptr %in.maskvec, align 6413703  %tgt.mask = shufflevector <64 x i1> %src.mask, <64 x i1> poison, <512 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 4, i32 4, i32 4, i32 4, i32 4, i32 4, i32 4, i32 4, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 6, i32 6, i32 6, i32 6, i32 6, i32 6, i32 6, i32 6, i32 7, i32 7, i32 7, i32 7, i32 7, i32 7, i32 7, i32 7, i32 8, i32 8, i32 8, i32 8, i32 8, i32 8, i32 8, i32 8, i32 9, i32 9, i32 9, i32 9, i32 9, i32 9, i32 9, i32 9, i32 10, i32 10, i32 10, i32 10, i32 10, i32 10, i32 10, i32 10, i32 11, i32 11, i32 11, i32 11, i32 11, i32 11, i32 11, i32 11, i32 12, i32 12, i32 12, i32 12, i32 12, i32 12, i32 12, i32 12, i32 13, i32 13, i32 13, i32 13, i32 13, i32 13, i32 13, i32 13, i32 14, i32 14, i32 14, i32 14, i32 14, i32 14, i32 14, i32 14, i32 15, i32 15, i32 15, i32 15, i32 15, i32 15, i32 15, i32 15, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 17, i32 17, i32 17, i32 17, i32 17, i32 17, i32 17, i32 17, i32 18, i32 18, i32 18, i32 18, i32 18, i32 18, i32 18, i32 18, i32 19, i32 19, i32 19, i32 19, i32 19, i32 19, i32 19, i32 19, i32 20, i32 20, i32 20, i32 20, i32 20, i32 20, i32 20, i32 20, i32 21, i32 21, i32 21, i32 21, i32 21, i32 21, i32 21, i32 21, i32 22, i32 22, i32 22, i32 22, i32 22, i32 22, i32 22, i32 22, i32 23, i32 23, i32 23, i32 23, i32 23, i32 23, i32 23, i32 23, i32 24, i32 24, i32 24, i32 24, i32 24, i32 24, i32 24, i32 24, i32 25, i32 25, i32 25, i32 25, i32 25, i32 25, i32 25, i32 25, i32 26, i32 26, i32 26, i32 26, i32 26, i32 26, i32 26, i32 26, i32 27, i32 27, i32 27, i32 27, i32 27, i32 27, i32 27, i32 27, i32 28, i32 28, i32 28, i32 28, i32 28, i32 28, i32 28, i32 28, i32 29, i32 29, i32 29, i32 29, i32 29, i32 29, i32 29, i32 29, i32 30, i32 30, i32 30, i32 30, i32 30, i32 30, i32 30, i32 30, i32 31, i32 31, i32 31, i32 31, i32 31, i32 31, i32 31, i32 31, i32 32, i32 32, i32 32, i32 32, i32 32, i32 32, i32 32, i32 32, i32 33, i32 33, i32 33, i32 33, i32 33, i32 33, i32 33, i32 33, i32 34, i32 34, i32 34, i32 34, i32 34, i32 34, i32 34, i32 34, i32 35, i32 35, i32 35, i32 35, i32 35, i32 35, i32 35, i32 35, i32 36, i32 36, i32 36, i32 36, i32 36, i32 36, i32 36, i32 36, i32 37, i32 37, i32 37, i32 37, i32 37, i32 37, i32 37, i32 37, i32 38, i32 38, i32 38, i32 38, i32 38, i32 38, i32 38, i32 38, i32 39, i32 39, i32 39, i32 39, i32 39, i32 39, i32 39, i32 39, i32 40, i32 40, i32 40, i32 40, i32 40, i32 40, i32 40, i32 40, i32 41, i32 41, i32 41, i32 41, i32 41, i32 41, i32 41, i32 41, i32 42, i32 42, i32 42, i32 42, i32 42, i32 42, i32 42, i32 42, i32 43, i32 43, i32 43, i32 43, i32 43, i32 43, i32 43, i32 43, i32 44, i32 44, i32 44, i32 44, i32 44, i32 44, i32 44, i32 44, i32 45, i32 45, i32 45, i32 45, i32 45, i32 45, i32 45, i32 45, i32 46, i32 46, i32 46, i32 46, i32 46, i32 46, i32 46, i32 46, i32 47, i32 47, i32 47, i32 47, i32 47, i32 47, i32 47, i32 47, i32 48, i32 48, i32 48, i32 48, i32 48, i32 48, i32 48, i32 48, i32 49, i32 49, i32 49, i32 49, i32 49, i32 49, i32 49, i32 49, i32 50, i32 50, i32 50, i32 50, i32 50, i32 50, i32 50, i32 50, i32 51, i32 51, i32 51, i32 51, i32 51, i32 51, i32 51, i32 51, i32 52, i32 52, i32 52, i32 52, i32 52, i32 52, i32 52, i32 52, i32 53, i32 53, i32 53, i32 53, i32 53, i32 53, i32 53, i32 53, i32 54, i32 54, i32 54, i32 54, i32 54, i32 54, i32 54, i32 54, i32 55, i32 55, i32 55, i32 55, i32 55, i32 55, i32 55, i32 55, i32 56, i32 56, i32 56, i32 56, i32 56, i32 56, i32 56, i32 56, i32 57, i32 57, i32 57, i32 57, i32 57, i32 57, i32 57, i32 57, i32 58, i32 58, i32 58, i32 58, i32 58, i32 58, i32 58, i32 58, i32 59, i32 59, i32 59, i32 59, i32 59, i32 59, i32 59, i32 59, i32 60, i32 60, i32 60, i32 60, i32 60, i32 60, i32 60, i32 60, i32 61, i32 61, i32 61, i32 61, i32 61, i32 61, i32 61, i32 61, i32 62, i32 62, i32 62, i32 62, i32 62, i32 62, i32 62, i32 62, i32 63, i32 63, i32 63, i32 63, i32 63, i32 63, i32 63, i32 63>13704  %data = call <512 x i32> @llvm.masked.load.v512i32.p0(ptr %in.vec, i32 64, <512 x i1> %tgt.mask, <512 x i32> poison)13705  store <512 x i32> %data, ptr %out.vec, align 6413706  ret void13707}13708 13709declare <4 x i32> @llvm.masked.load.v4i32.p0(ptr, i32, <4 x i1>, <4 x i32>)13710declare <6 x i32> @llvm.masked.load.v6i32.p0(ptr, i32, <6 x i1>, <6 x i32>)13711declare <8 x i32> @llvm.masked.load.v8i32.p0(ptr, i32, <8 x i1>, <8 x i32>)13712declare <10 x i32> @llvm.masked.load.v10i32.p0(ptr, i32, <10 x i1>, <10 x i32>)13713declare <12 x i32> @llvm.masked.load.v12i32.p0(ptr, i32, <12 x i1>, <12 x i32>)13714declare <14 x i32> @llvm.masked.load.v14i32.p0(ptr, i32, <14 x i1>, <14 x i32>)13715declare <16 x i32> @llvm.masked.load.v16i32.p0(ptr, i32, <16 x i1>, <16 x i32>)13716declare <20 x i32> @llvm.masked.load.v20i32.p0(ptr, i32, <20 x i1>, <20 x i32>)13717declare <24 x i32> @llvm.masked.load.v24i32.p0(ptr, i32, <24 x i1>, <24 x i32>)13718declare <28 x i32> @llvm.masked.load.v28i32.p0(ptr, i32, <28 x i1>, <28 x i32>)13719declare <32 x i32> @llvm.masked.load.v32i32.p0(ptr, i32, <32 x i1>, <32 x i32>)13720declare <40 x i32> @llvm.masked.load.v40i32.p0(ptr, i32, <40 x i1>, <40 x i32>)13721declare <48 x i32> @llvm.masked.load.v48i32.p0(ptr, i32, <48 x i1>, <48 x i32>)13722declare <56 x i32> @llvm.masked.load.v56i32.p0(ptr, i32, <56 x i1>, <56 x i32>)13723declare <64 x i32> @llvm.masked.load.v64i32.p0(ptr, i32, <64 x i1>, <64 x i32>)13724declare <80 x i32> @llvm.masked.load.v80i32.p0(ptr, i32, <80 x i1>, <80 x i32>)13725declare <96 x i32> @llvm.masked.load.v96i32.p0(ptr, i32, <96 x i1>, <96 x i32>)13726declare <112 x i32> @llvm.masked.load.v112i32.p0(ptr, i32, <112 x i1>, <112 x i32>)13727declare <128 x i32> @llvm.masked.load.v128i32.p0(ptr, i32, <128 x i1>, <128 x i32>)13728declare <160 x i32> @llvm.masked.load.v160i32.p0(ptr, i32, <160 x i1>, <160 x i32>)13729declare <192 x i32> @llvm.masked.load.v192i32.p0(ptr, i32, <192 x i1>, <192 x i32>)13730declare <224 x i32> @llvm.masked.load.v224i32.p0(ptr, i32, <224 x i1>, <224 x i32>)13731declare <256 x i32> @llvm.masked.load.v256i32.p0(ptr, i32, <256 x i1>, <256 x i32>)13732declare <320 x i32> @llvm.masked.load.v320i32.p0(ptr, i32, <320 x i1>, <320 x i32>)13733declare <384 x i32> @llvm.masked.load.v384i32.p0(ptr, i32, <384 x i1>, <384 x i32>)13734declare <448 x i32> @llvm.masked.load.v448i32.p0(ptr, i32, <448 x i1>, <448 x i32>)13735declare <512 x i32> @llvm.masked.load.v512i32.p0(ptr, i32, <512 x i1>, <512 x i32>)13736;; NOTE: These prefixes are unused and the list is autogenerated. Do not add tests below this line:13737; AVX512: {{.*}}13738; FALLBACK0: {{.*}}13739; FALLBACK1: {{.*}}13740; FALLBACK2: {{.*}}13741; FALLBACK3: {{.*}}13742; FALLBACK4: {{.*}}13743; FALLBACK5: {{.*}}13744; FALLBACK6: {{.*}}13745; FALLBACK7: {{.*}}13746