brintos

brintos / llvm-project-archived public Read only

0
0
Text · 798.8 KiB · 61bfee1 Raw
10941 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc < %s -mtriple=x86_64-- -mattr=+sse2 | FileCheck %s --check-prefixes=SSE3; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx  | FileCheck %s --check-prefixes=AVX4; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx2 | FileCheck %s --check-prefixes=AVX25; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx2,+fast-variable-perlane-shuffle | FileCheck %s --check-prefixes=AVX2-FP6; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx2,+fast-variable-crosslane-shuffle,+fast-variable-perlane-shuffle | FileCheck %s --check-prefixes=AVX2-FCP7; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl | FileCheck %s --check-prefixes=AVX5128; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl,+fast-variable-crosslane-shuffle,+fast-variable-perlane-shuffle | FileCheck %s --check-prefixes=AVX512-FCP9; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl,+avx512dq | FileCheck %s --check-prefixes=AVX512DQ10; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl,+avx512dq,+fast-variable-crosslane-shuffle,+fast-variable-perlane-shuffle | FileCheck %s --check-prefixes=AVX512DQ-FCP11; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl,+avx512bw | FileCheck %s --check-prefixes=AVX512BW12; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl,+avx512bw,+fast-variable-crosslane-shuffle,+fast-variable-perlane-shuffle | FileCheck %s --check-prefixes=AVX512BW-FCP13; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl,+avx512dq,+avx512bw | FileCheck %s --check-prefixes=AVX512DQ-BW14; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl,+avx512dq,+avx512bw,+fast-variable-crosslane-shuffle,+fast-variable-perlane-shuffle | FileCheck %s --check-prefixes=AVX512DQ-BW-FCP15 16; These patterns are produced by LoopVectorizer for interleaved stores.17 18define void @store_i8_stride7_vf2(ptr %in.vecptr0, ptr %in.vecptr1, ptr %in.vecptr2, ptr %in.vecptr3, ptr %in.vecptr4, ptr %in.vecptr5, ptr %in.vecptr6, ptr %out.vec) nounwind {19; SSE-LABEL: store_i8_stride7_vf2:20; SSE:       # %bb.0:21; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %rax22; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %r1023; SSE-NEXT:    movdqa (%rdi), %xmm024; SSE-NEXT:    movdqa (%rdx), %xmm125; SSE-NEXT:    movdqa (%r8), %xmm226; SSE-NEXT:    punpcklwd {{.*#+}} xmm0 = xmm0[0],mem[0],xmm0[1],mem[1],xmm0[2],mem[2],xmm0[3],mem[3]27; SSE-NEXT:    punpcklwd {{.*#+}} xmm1 = xmm1[0],mem[0],xmm1[1],mem[1],xmm1[2],mem[2],xmm1[3],mem[3]28; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]29; SSE-NEXT:    punpcklwd {{.*#+}} xmm2 = xmm2[0],mem[0],xmm2[1],mem[1],xmm2[2],mem[2],xmm2[3],mem[3]30; SSE-NEXT:    punpckldq {{.*#+}} xmm2 = xmm2[0],mem[0],xmm2[1],mem[1]31; SSE-NEXT:    pxor %xmm1, %xmm132; SSE-NEXT:    punpcklbw {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3],xmm0[4],xmm1[4],xmm0[5],xmm1[5],xmm0[6],xmm1[6],xmm0[7],xmm1[7]33; SSE-NEXT:    pshufhw {{.*#+}} xmm3 = xmm0[0,1,2,3,7,5,6,7]34; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm3[2,1,2,3]35; SSE-NEXT:    pshuflw {{.*#+}} xmm3 = xmm3[3,1,0,3,4,5,6,7]36; SSE-NEXT:    pshuflw {{.*#+}} xmm0 = xmm0[0,2,1,3,4,5,6,7]37; SSE-NEXT:    pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,6,6,7]38; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,2,2,1]39; SSE-NEXT:    pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,6,6,6,6]40; SSE-NEXT:    packuswb %xmm3, %xmm041; SSE-NEXT:    movdqa {{.*#+}} xmm3 = [255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255]42; SSE-NEXT:    pand %xmm3, %xmm043; SSE-NEXT:    punpcklbw {{.*#+}} xmm2 = xmm2[0],xmm1[0],xmm2[1],xmm1[1],xmm2[2],xmm1[2],xmm2[3],xmm1[3],xmm2[4],xmm1[4],xmm2[5],xmm1[5],xmm2[6],xmm1[6],xmm2[7],xmm1[7]44; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm2[0,0,2,1]45; SSE-NEXT:    pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,7,5,6,7]46; SSE-NEXT:    pshuflw {{.*#+}} xmm2 = xmm2[0,2,2,3,4,5,6,7]47; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm2[0,1,0,2]48; SSE-NEXT:    packuswb %xmm1, %xmm249; SSE-NEXT:    pandn %xmm2, %xmm350; SSE-NEXT:    por %xmm0, %xmm351; SSE-NEXT:    pextrw $6, %xmm2, %ecx52; SSE-NEXT:    movw %cx, 12(%rax)53; SSE-NEXT:    movq %xmm3, (%rax)54; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm3[2,3,2,3]55; SSE-NEXT:    movd %xmm0, 8(%rax)56; SSE-NEXT:    retq57;58; AVX-LABEL: store_i8_stride7_vf2:59; AVX:       # %bb.0:60; AVX-NEXT:    movq {{[0-9]+}}(%rsp), %rax61; AVX-NEXT:    movq {{[0-9]+}}(%rsp), %r1062; AVX-NEXT:    vmovdqa (%rdi), %xmm063; AVX-NEXT:    vmovdqa (%rdx), %xmm164; AVX-NEXT:    vmovdqa (%r8), %xmm265; AVX-NEXT:    vpunpcklwd {{.*#+}} xmm0 = xmm0[0],mem[0],xmm0[1],mem[1],xmm0[2],mem[2],xmm0[3],mem[3]66; AVX-NEXT:    vpunpcklwd {{.*#+}} xmm1 = xmm1[0],mem[0],xmm1[1],mem[1],xmm1[2],mem[2],xmm1[3],mem[3]67; AVX-NEXT:    vpunpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]68; AVX-NEXT:    vpunpcklwd {{.*#+}} xmm1 = xmm2[0],mem[0],xmm2[1],mem[1],xmm2[2],mem[2],xmm2[3],mem[3]69; AVX-NEXT:    vpunpckldq {{.*#+}} xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]70; AVX-NEXT:    vpunpcklbw {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3],xmm0[4],xmm1[4],xmm0[5],xmm1[5],xmm0[6],xmm1[6],xmm0[7],xmm1[7]71; AVX-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[0,4,8,12,1,5,9,2,6,10,14,3,7,11,u,u]72; AVX-NEXT:    vpextrw $6, %xmm0, 12(%rax)73; AVX-NEXT:    vpextrd $2, %xmm0, 8(%rax)74; AVX-NEXT:    vmovq %xmm0, (%rax)75; AVX-NEXT:    retq76;77; AVX2-LABEL: store_i8_stride7_vf2:78; AVX2:       # %bb.0:79; AVX2-NEXT:    movq {{[0-9]+}}(%rsp), %rax80; AVX2-NEXT:    movq {{[0-9]+}}(%rsp), %r1081; AVX2-NEXT:    vmovdqa (%rdi), %xmm082; AVX2-NEXT:    vmovdqa (%rdx), %xmm183; AVX2-NEXT:    vmovdqa (%r8), %xmm284; AVX2-NEXT:    vpunpcklwd {{.*#+}} xmm0 = xmm0[0],mem[0],xmm0[1],mem[1],xmm0[2],mem[2],xmm0[3],mem[3]85; AVX2-NEXT:    vpunpcklwd {{.*#+}} xmm1 = xmm1[0],mem[0],xmm1[1],mem[1],xmm1[2],mem[2],xmm1[3],mem[3]86; AVX2-NEXT:    vpunpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]87; AVX2-NEXT:    vpunpcklwd {{.*#+}} xmm1 = xmm2[0],mem[0],xmm2[1],mem[1],xmm2[2],mem[2],xmm2[3],mem[3]88; AVX2-NEXT:    vpunpckldq {{.*#+}} xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]89; AVX2-NEXT:    vpunpcklbw {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3],xmm0[4],xmm1[4],xmm0[5],xmm1[5],xmm0[6],xmm1[6],xmm0[7],xmm1[7]90; AVX2-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[0,4,8,12,1,5,9,2,6,10,14,3,7,11,u,u]91; AVX2-NEXT:    vpextrw $6, %xmm0, 12(%rax)92; AVX2-NEXT:    vpextrd $2, %xmm0, 8(%rax)93; AVX2-NEXT:    vmovq %xmm0, (%rax)94; AVX2-NEXT:    retq95;96; AVX2-FP-LABEL: store_i8_stride7_vf2:97; AVX2-FP:       # %bb.0:98; AVX2-FP-NEXT:    movq {{[0-9]+}}(%rsp), %rax99; AVX2-FP-NEXT:    movq {{[0-9]+}}(%rsp), %r10100; AVX2-FP-NEXT:    vmovdqa (%rdi), %xmm0101; AVX2-FP-NEXT:    vmovdqa (%rdx), %xmm1102; AVX2-FP-NEXT:    vmovdqa (%r8), %xmm2103; AVX2-FP-NEXT:    vpunpcklwd {{.*#+}} xmm0 = xmm0[0],mem[0],xmm0[1],mem[1],xmm0[2],mem[2],xmm0[3],mem[3]104; AVX2-FP-NEXT:    vpunpcklwd {{.*#+}} xmm1 = xmm1[0],mem[0],xmm1[1],mem[1],xmm1[2],mem[2],xmm1[3],mem[3]105; AVX2-FP-NEXT:    vpunpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]106; AVX2-FP-NEXT:    vpunpcklwd {{.*#+}} xmm1 = xmm2[0],mem[0],xmm2[1],mem[1],xmm2[2],mem[2],xmm2[3],mem[3]107; AVX2-FP-NEXT:    vpunpckldq {{.*#+}} xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]108; AVX2-FP-NEXT:    vpunpcklbw {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3],xmm0[4],xmm1[4],xmm0[5],xmm1[5],xmm0[6],xmm1[6],xmm0[7],xmm1[7]109; AVX2-FP-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[0,4,8,12,1,5,9,2,6,10,14,3,7,11,u,u]110; AVX2-FP-NEXT:    vpextrw $6, %xmm0, 12(%rax)111; AVX2-FP-NEXT:    vpextrd $2, %xmm0, 8(%rax)112; AVX2-FP-NEXT:    vmovq %xmm0, (%rax)113; AVX2-FP-NEXT:    retq114;115; AVX2-FCP-LABEL: store_i8_stride7_vf2:116; AVX2-FCP:       # %bb.0:117; AVX2-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax118; AVX2-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r10119; AVX2-FCP-NEXT:    vmovdqa (%rdi), %xmm0120; AVX2-FCP-NEXT:    vmovdqa (%rdx), %xmm1121; AVX2-FCP-NEXT:    vmovdqa (%r8), %xmm2122; AVX2-FCP-NEXT:    vpunpcklwd {{.*#+}} xmm0 = xmm0[0],mem[0],xmm0[1],mem[1],xmm0[2],mem[2],xmm0[3],mem[3]123; AVX2-FCP-NEXT:    vpunpcklwd {{.*#+}} xmm1 = xmm1[0],mem[0],xmm1[1],mem[1],xmm1[2],mem[2],xmm1[3],mem[3]124; AVX2-FCP-NEXT:    vpunpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]125; AVX2-FCP-NEXT:    vpunpcklwd {{.*#+}} xmm1 = xmm2[0],mem[0],xmm2[1],mem[1],xmm2[2],mem[2],xmm2[3],mem[3]126; AVX2-FCP-NEXT:    vpunpckldq {{.*#+}} xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]127; AVX2-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3],xmm0[4],xmm1[4],xmm0[5],xmm1[5],xmm0[6],xmm1[6],xmm0[7],xmm1[7]128; AVX2-FCP-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[0,4,8,12,1,5,9,2,6,10,14,3,7,11,u,u]129; AVX2-FCP-NEXT:    vpextrw $6, %xmm0, 12(%rax)130; AVX2-FCP-NEXT:    vpextrd $2, %xmm0, 8(%rax)131; AVX2-FCP-NEXT:    vmovq %xmm0, (%rax)132; AVX2-FCP-NEXT:    retq133;134; AVX512-LABEL: store_i8_stride7_vf2:135; AVX512:       # %bb.0:136; AVX512-NEXT:    movq {{[0-9]+}}(%rsp), %rax137; AVX512-NEXT:    movq {{[0-9]+}}(%rsp), %r10138; AVX512-NEXT:    vmovdqa (%rdi), %xmm0139; AVX512-NEXT:    vmovdqa (%rdx), %xmm1140; AVX512-NEXT:    vmovdqa (%r8), %xmm2141; AVX512-NEXT:    vpunpcklwd {{.*#+}} xmm0 = xmm0[0],mem[0],xmm0[1],mem[1],xmm0[2],mem[2],xmm0[3],mem[3]142; AVX512-NEXT:    vpunpcklwd {{.*#+}} xmm1 = xmm1[0],mem[0],xmm1[1],mem[1],xmm1[2],mem[2],xmm1[3],mem[3]143; AVX512-NEXT:    vpunpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]144; AVX512-NEXT:    vpunpcklwd {{.*#+}} xmm1 = xmm2[0],mem[0],xmm2[1],mem[1],xmm2[2],mem[2],xmm2[3],mem[3]145; AVX512-NEXT:    vpunpckldq {{.*#+}} xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]146; AVX512-NEXT:    vpunpcklbw {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3],xmm0[4],xmm1[4],xmm0[5],xmm1[5],xmm0[6],xmm1[6],xmm0[7],xmm1[7]147; AVX512-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[0,4,8,12,1,5,9,2,6,10,14,3,7,11,u,u]148; AVX512-NEXT:    vpextrw $6, %xmm0, 12(%rax)149; AVX512-NEXT:    vpextrd $2, %xmm0, 8(%rax)150; AVX512-NEXT:    vmovq %xmm0, (%rax)151; AVX512-NEXT:    retq152;153; AVX512-FCP-LABEL: store_i8_stride7_vf2:154; AVX512-FCP:       # %bb.0:155; AVX512-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax156; AVX512-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r10157; AVX512-FCP-NEXT:    vmovdqa (%rdi), %xmm0158; AVX512-FCP-NEXT:    vmovdqa (%rdx), %xmm1159; AVX512-FCP-NEXT:    vmovdqa (%r8), %xmm2160; AVX512-FCP-NEXT:    vpunpcklwd {{.*#+}} xmm0 = xmm0[0],mem[0],xmm0[1],mem[1],xmm0[2],mem[2],xmm0[3],mem[3]161; AVX512-FCP-NEXT:    vpunpcklwd {{.*#+}} xmm1 = xmm1[0],mem[0],xmm1[1],mem[1],xmm1[2],mem[2],xmm1[3],mem[3]162; AVX512-FCP-NEXT:    vpunpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]163; AVX512-FCP-NEXT:    vpunpcklwd {{.*#+}} xmm1 = xmm2[0],mem[0],xmm2[1],mem[1],xmm2[2],mem[2],xmm2[3],mem[3]164; AVX512-FCP-NEXT:    vpunpckldq {{.*#+}} xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]165; AVX512-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3],xmm0[4],xmm1[4],xmm0[5],xmm1[5],xmm0[6],xmm1[6],xmm0[7],xmm1[7]166; AVX512-FCP-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[0,4,8,12,1,5,9,2,6,10,14,3,7,11,u,u]167; AVX512-FCP-NEXT:    vpextrw $6, %xmm0, 12(%rax)168; AVX512-FCP-NEXT:    vpextrd $2, %xmm0, 8(%rax)169; AVX512-FCP-NEXT:    vmovq %xmm0, (%rax)170; AVX512-FCP-NEXT:    retq171;172; AVX512DQ-LABEL: store_i8_stride7_vf2:173; AVX512DQ:       # %bb.0:174; AVX512DQ-NEXT:    movq {{[0-9]+}}(%rsp), %rax175; AVX512DQ-NEXT:    movq {{[0-9]+}}(%rsp), %r10176; AVX512DQ-NEXT:    vmovdqa (%rdi), %xmm0177; AVX512DQ-NEXT:    vmovdqa (%rdx), %xmm1178; AVX512DQ-NEXT:    vmovdqa (%r8), %xmm2179; AVX512DQ-NEXT:    vpunpcklwd {{.*#+}} xmm0 = xmm0[0],mem[0],xmm0[1],mem[1],xmm0[2],mem[2],xmm0[3],mem[3]180; AVX512DQ-NEXT:    vpunpcklwd {{.*#+}} xmm1 = xmm1[0],mem[0],xmm1[1],mem[1],xmm1[2],mem[2],xmm1[3],mem[3]181; AVX512DQ-NEXT:    vpunpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]182; AVX512DQ-NEXT:    vpunpcklwd {{.*#+}} xmm1 = xmm2[0],mem[0],xmm2[1],mem[1],xmm2[2],mem[2],xmm2[3],mem[3]183; AVX512DQ-NEXT:    vpunpckldq {{.*#+}} xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]184; AVX512DQ-NEXT:    vpunpcklbw {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3],xmm0[4],xmm1[4],xmm0[5],xmm1[5],xmm0[6],xmm1[6],xmm0[7],xmm1[7]185; AVX512DQ-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[0,4,8,12,1,5,9,2,6,10,14,3,7,11,u,u]186; AVX512DQ-NEXT:    vpextrw $6, %xmm0, 12(%rax)187; AVX512DQ-NEXT:    vpextrd $2, %xmm0, 8(%rax)188; AVX512DQ-NEXT:    vmovq %xmm0, (%rax)189; AVX512DQ-NEXT:    retq190;191; AVX512DQ-FCP-LABEL: store_i8_stride7_vf2:192; AVX512DQ-FCP:       # %bb.0:193; AVX512DQ-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax194; AVX512DQ-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r10195; AVX512DQ-FCP-NEXT:    vmovdqa (%rdi), %xmm0196; AVX512DQ-FCP-NEXT:    vmovdqa (%rdx), %xmm1197; AVX512DQ-FCP-NEXT:    vmovdqa (%r8), %xmm2198; AVX512DQ-FCP-NEXT:    vpunpcklwd {{.*#+}} xmm0 = xmm0[0],mem[0],xmm0[1],mem[1],xmm0[2],mem[2],xmm0[3],mem[3]199; AVX512DQ-FCP-NEXT:    vpunpcklwd {{.*#+}} xmm1 = xmm1[0],mem[0],xmm1[1],mem[1],xmm1[2],mem[2],xmm1[3],mem[3]200; AVX512DQ-FCP-NEXT:    vpunpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]201; AVX512DQ-FCP-NEXT:    vpunpcklwd {{.*#+}} xmm1 = xmm2[0],mem[0],xmm2[1],mem[1],xmm2[2],mem[2],xmm2[3],mem[3]202; AVX512DQ-FCP-NEXT:    vpunpckldq {{.*#+}} xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]203; AVX512DQ-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3],xmm0[4],xmm1[4],xmm0[5],xmm1[5],xmm0[6],xmm1[6],xmm0[7],xmm1[7]204; AVX512DQ-FCP-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[0,4,8,12,1,5,9,2,6,10,14,3,7,11,u,u]205; AVX512DQ-FCP-NEXT:    vpextrw $6, %xmm0, 12(%rax)206; AVX512DQ-FCP-NEXT:    vpextrd $2, %xmm0, 8(%rax)207; AVX512DQ-FCP-NEXT:    vmovq %xmm0, (%rax)208; AVX512DQ-FCP-NEXT:    retq209;210; AVX512BW-LABEL: store_i8_stride7_vf2:211; AVX512BW:       # %bb.0:212; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax213; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %r10214; AVX512BW-NEXT:    vmovdqa (%rdi), %xmm0215; AVX512BW-NEXT:    vmovdqa (%rdx), %xmm1216; AVX512BW-NEXT:    vmovdqa (%r8), %xmm2217; AVX512BW-NEXT:    vpunpcklwd {{.*#+}} xmm0 = xmm0[0],mem[0],xmm0[1],mem[1],xmm0[2],mem[2],xmm0[3],mem[3]218; AVX512BW-NEXT:    vpunpcklwd {{.*#+}} xmm1 = xmm1[0],mem[0],xmm1[1],mem[1],xmm1[2],mem[2],xmm1[3],mem[3]219; AVX512BW-NEXT:    vpunpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]220; AVX512BW-NEXT:    vpunpcklwd {{.*#+}} xmm1 = xmm2[0],mem[0],xmm2[1],mem[1],xmm2[2],mem[2],xmm2[3],mem[3]221; AVX512BW-NEXT:    vpunpckldq {{.*#+}} xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]222; AVX512BW-NEXT:    vpunpcklbw {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3],xmm0[4],xmm1[4],xmm0[5],xmm1[5],xmm0[6],xmm1[6],xmm0[7],xmm1[7]223; AVX512BW-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[0,4,8,12,1,5,9,2,6,10,14,3,7,11,u,u]224; AVX512BW-NEXT:    vpextrw $6, %xmm0, 12(%rax)225; AVX512BW-NEXT:    vpextrd $2, %xmm0, 8(%rax)226; AVX512BW-NEXT:    vmovq %xmm0, (%rax)227; AVX512BW-NEXT:    retq228;229; AVX512BW-FCP-LABEL: store_i8_stride7_vf2:230; AVX512BW-FCP:       # %bb.0:231; AVX512BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax232; AVX512BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r10233; AVX512BW-FCP-NEXT:    vmovdqa (%rdi), %xmm0234; AVX512BW-FCP-NEXT:    vmovdqa (%rdx), %xmm1235; AVX512BW-FCP-NEXT:    vmovdqa (%r8), %xmm2236; AVX512BW-FCP-NEXT:    vpunpcklwd {{.*#+}} xmm0 = xmm0[0],mem[0],xmm0[1],mem[1],xmm0[2],mem[2],xmm0[3],mem[3]237; AVX512BW-FCP-NEXT:    vpunpcklwd {{.*#+}} xmm1 = xmm1[0],mem[0],xmm1[1],mem[1],xmm1[2],mem[2],xmm1[3],mem[3]238; AVX512BW-FCP-NEXT:    vpunpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]239; AVX512BW-FCP-NEXT:    vpunpcklwd {{.*#+}} xmm1 = xmm2[0],mem[0],xmm2[1],mem[1],xmm2[2],mem[2],xmm2[3],mem[3]240; AVX512BW-FCP-NEXT:    vpunpckldq {{.*#+}} xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]241; AVX512BW-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3],xmm0[4],xmm1[4],xmm0[5],xmm1[5],xmm0[6],xmm1[6],xmm0[7],xmm1[7]242; AVX512BW-FCP-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[0,4,8,12,1,5,9,2,6,10,14,3,7,11,u,u]243; AVX512BW-FCP-NEXT:    vpextrw $6, %xmm0, 12(%rax)244; AVX512BW-FCP-NEXT:    vpextrd $2, %xmm0, 8(%rax)245; AVX512BW-FCP-NEXT:    vmovq %xmm0, (%rax)246; AVX512BW-FCP-NEXT:    retq247;248; AVX512DQ-BW-LABEL: store_i8_stride7_vf2:249; AVX512DQ-BW:       # %bb.0:250; AVX512DQ-BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax251; AVX512DQ-BW-NEXT:    movq {{[0-9]+}}(%rsp), %r10252; AVX512DQ-BW-NEXT:    vmovdqa (%rdi), %xmm0253; AVX512DQ-BW-NEXT:    vmovdqa (%rdx), %xmm1254; AVX512DQ-BW-NEXT:    vmovdqa (%r8), %xmm2255; AVX512DQ-BW-NEXT:    vpunpcklwd {{.*#+}} xmm0 = xmm0[0],mem[0],xmm0[1],mem[1],xmm0[2],mem[2],xmm0[3],mem[3]256; AVX512DQ-BW-NEXT:    vpunpcklwd {{.*#+}} xmm1 = xmm1[0],mem[0],xmm1[1],mem[1],xmm1[2],mem[2],xmm1[3],mem[3]257; AVX512DQ-BW-NEXT:    vpunpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]258; AVX512DQ-BW-NEXT:    vpunpcklwd {{.*#+}} xmm1 = xmm2[0],mem[0],xmm2[1],mem[1],xmm2[2],mem[2],xmm2[3],mem[3]259; AVX512DQ-BW-NEXT:    vpunpckldq {{.*#+}} xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]260; AVX512DQ-BW-NEXT:    vpunpcklbw {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3],xmm0[4],xmm1[4],xmm0[5],xmm1[5],xmm0[6],xmm1[6],xmm0[7],xmm1[7]261; AVX512DQ-BW-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[0,4,8,12,1,5,9,2,6,10,14,3,7,11,u,u]262; AVX512DQ-BW-NEXT:    vpextrw $6, %xmm0, 12(%rax)263; AVX512DQ-BW-NEXT:    vpextrd $2, %xmm0, 8(%rax)264; AVX512DQ-BW-NEXT:    vmovq %xmm0, (%rax)265; AVX512DQ-BW-NEXT:    retq266;267; AVX512DQ-BW-FCP-LABEL: store_i8_stride7_vf2:268; AVX512DQ-BW-FCP:       # %bb.0:269; AVX512DQ-BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax270; AVX512DQ-BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r10271; AVX512DQ-BW-FCP-NEXT:    vmovdqa (%rdi), %xmm0272; AVX512DQ-BW-FCP-NEXT:    vmovdqa (%rdx), %xmm1273; AVX512DQ-BW-FCP-NEXT:    vmovdqa (%r8), %xmm2274; AVX512DQ-BW-FCP-NEXT:    vpunpcklwd {{.*#+}} xmm0 = xmm0[0],mem[0],xmm0[1],mem[1],xmm0[2],mem[2],xmm0[3],mem[3]275; AVX512DQ-BW-FCP-NEXT:    vpunpcklwd {{.*#+}} xmm1 = xmm1[0],mem[0],xmm1[1],mem[1],xmm1[2],mem[2],xmm1[3],mem[3]276; AVX512DQ-BW-FCP-NEXT:    vpunpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]277; AVX512DQ-BW-FCP-NEXT:    vpunpcklwd {{.*#+}} xmm1 = xmm2[0],mem[0],xmm2[1],mem[1],xmm2[2],mem[2],xmm2[3],mem[3]278; AVX512DQ-BW-FCP-NEXT:    vpunpckldq {{.*#+}} xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]279; AVX512DQ-BW-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3],xmm0[4],xmm1[4],xmm0[5],xmm1[5],xmm0[6],xmm1[6],xmm0[7],xmm1[7]280; AVX512DQ-BW-FCP-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[0,4,8,12,1,5,9,2,6,10,14,3,7,11,u,u]281; AVX512DQ-BW-FCP-NEXT:    vpextrw $6, %xmm0, 12(%rax)282; AVX512DQ-BW-FCP-NEXT:    vpextrd $2, %xmm0, 8(%rax)283; AVX512DQ-BW-FCP-NEXT:    vmovq %xmm0, (%rax)284; AVX512DQ-BW-FCP-NEXT:    retq285  %in.vec0 = load <2 x i8>, ptr %in.vecptr0, align 64286  %in.vec1 = load <2 x i8>, ptr %in.vecptr1, align 64287  %in.vec2 = load <2 x i8>, ptr %in.vecptr2, align 64288  %in.vec3 = load <2 x i8>, ptr %in.vecptr3, align 64289  %in.vec4 = load <2 x i8>, ptr %in.vecptr4, align 64290  %in.vec5 = load <2 x i8>, ptr %in.vecptr5, align 64291  %in.vec6 = load <2 x i8>, ptr %in.vecptr6, align 64292  %1 = shufflevector <2 x i8> %in.vec0, <2 x i8> %in.vec1, <4 x i32> <i32 0, i32 1, i32 2, i32 3>293  %2 = shufflevector <2 x i8> %in.vec2, <2 x i8> %in.vec3, <4 x i32> <i32 0, i32 1, i32 2, i32 3>294  %3 = shufflevector <2 x i8> %in.vec4, <2 x i8> %in.vec5, <4 x i32> <i32 0, i32 1, i32 2, i32 3>295  %4 = shufflevector <4 x i8> %1, <4 x i8> %2, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>296  %5 = shufflevector <2 x i8> %in.vec6, <2 x i8> poison, <4 x i32> <i32 0, i32 1, i32 undef, i32 undef>297  %6 = shufflevector <4 x i8> %3, <4 x i8> %5, <6 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5>298  %7 = shufflevector <6 x i8> %6, <6 x i8> poison, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 undef, i32 undef>299  %8 = shufflevector <8 x i8> %4, <8 x i8> %7, <14 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>300  %interleaved.vec = shufflevector <14 x i8> %8, <14 x i8> poison, <14 x i32> <i32 0, i32 2, i32 4, i32 6, i32 8, i32 10, i32 12, i32 1, i32 3, i32 5, i32 7, i32 9, i32 11, i32 13>301  store <14 x i8> %interleaved.vec, ptr %out.vec, align 64302  ret void303}304 305define void @store_i8_stride7_vf4(ptr %in.vecptr0, ptr %in.vecptr1, ptr %in.vecptr2, ptr %in.vecptr3, ptr %in.vecptr4, ptr %in.vecptr5, ptr %in.vecptr6, ptr %out.vec) nounwind {306; SSE-LABEL: store_i8_stride7_vf4:307; SSE:       # %bb.0:308; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %rax309; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %r10310; SSE-NEXT:    movdqa (%rdi), %xmm0311; SSE-NEXT:    movdqa (%rdx), %xmm3312; SSE-NEXT:    movdqa (%r8), %xmm5313; SSE-NEXT:    movdqa (%r10), %xmm2314; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],mem[0],xmm0[1],mem[1]315; SSE-NEXT:    punpckldq {{.*#+}} xmm3 = xmm3[0],mem[0],xmm3[1],mem[1]316; SSE-NEXT:    punpckldq {{.*#+}} xmm5 = xmm5[0],mem[0],xmm5[1],mem[1]317; SSE-NEXT:    pxor %xmm7, %xmm7318; SSE-NEXT:    punpcklbw {{.*#+}} xmm3 = xmm3[0],xmm7[0],xmm3[1],xmm7[1],xmm3[2],xmm7[2],xmm3[3],xmm7[3],xmm3[4],xmm7[4],xmm3[5],xmm7[5],xmm3[6],xmm7[6],xmm3[7],xmm7[7]319; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm3[0,2,2,3]320; SSE-NEXT:    pshuflw {{.*#+}} xmm4 = xmm1[0,1,3,3,4,5,6,7]321; SSE-NEXT:    pshuflw {{.*#+}} xmm6 = xmm1[0,1,0,2,4,5,6,7]322; SSE-NEXT:    packuswb %xmm4, %xmm6323; SSE-NEXT:    movdqa {{.*#+}} xmm1 = [255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255]324; SSE-NEXT:    movdqa %xmm1, %xmm4325; SSE-NEXT:    pandn %xmm6, %xmm4326; SSE-NEXT:    movdqa %xmm0, %xmm8327; SSE-NEXT:    punpcklbw {{.*#+}} xmm8 = xmm8[0],xmm7[0],xmm8[1],xmm7[1],xmm8[2],xmm7[2],xmm8[3],xmm7[3],xmm8[4],xmm7[4],xmm8[5],xmm7[5],xmm8[6],xmm7[6],xmm8[7],xmm7[7]328; SSE-NEXT:    pshufd {{.*#+}} xmm6 = xmm8[0,2,0,0]329; SSE-NEXT:    pshuflw {{.*#+}} xmm6 = xmm6[0,2,2,3,4,5,6,7]330; SSE-NEXT:    pshufd {{.*#+}} xmm8 = xmm8[2,1,1,3]331; SSE-NEXT:    pshuflw {{.*#+}} xmm8 = xmm8[1,1,1,1,4,5,6,7]332; SSE-NEXT:    pshufhw {{.*#+}} xmm8 = xmm8[0,1,2,3,4,5,4,6]333; SSE-NEXT:    packuswb %xmm8, %xmm6334; SSE-NEXT:    pand %xmm1, %xmm6335; SSE-NEXT:    por %xmm4, %xmm6336; SSE-NEXT:    movdqa {{.*#+}} xmm4 = [255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255]337; SSE-NEXT:    pand %xmm4, %xmm6338; SSE-NEXT:    punpcklbw {{.*#+}} xmm5 = xmm5[0],xmm7[0],xmm5[1],xmm7[1],xmm5[2],xmm7[2],xmm5[3],xmm7[3],xmm5[4],xmm7[4],xmm5[5],xmm7[5],xmm5[6],xmm7[6],xmm5[7],xmm7[7]339; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm5[0,0,2,3]340; SSE-NEXT:    pshufhw {{.*#+}} xmm7 = xmm7[0,1,2,3,5,5,5,5]341; SSE-NEXT:    pshufd {{.*#+}} xmm8 = xmm5[0,1,2,0]342; SSE-NEXT:    pshufhw {{.*#+}} xmm8 = xmm8[0,1,2,3,6,4,6,7]343; SSE-NEXT:    packuswb %xmm7, %xmm8344; SSE-NEXT:    movdqa {{.*#+}} xmm7 = [255,255,255,255,255,255,0,255,255,255,255,255,255,0,255,255]345; SSE-NEXT:    pand %xmm7, %xmm8346; SSE-NEXT:    pshuflw {{.*#+}} xmm9 = xmm2[0,0,0,0,4,5,6,7]347; SSE-NEXT:    pshufd {{.*#+}} xmm9 = xmm9[0,1,0,1]348; SSE-NEXT:    pandn %xmm9, %xmm7349; SSE-NEXT:    por %xmm8, %xmm7350; SSE-NEXT:    pandn %xmm7, %xmm4351; SSE-NEXT:    por %xmm6, %xmm4352; SSE-NEXT:    pshufd {{.*#+}} xmm5 = xmm5[3,1,2,3]353; SSE-NEXT:    pshuflw {{.*#+}} xmm6 = xmm5[0,3,1,3,4,5,6,7]354; SSE-NEXT:    pshuflw {{.*#+}} xmm5 = xmm5[0,1,2,0,4,5,6,7]355; SSE-NEXT:    packuswb %xmm6, %xmm5356; SSE-NEXT:    pshufd {{.*#+}} xmm6 = xmm3[3,1,2,1]357; SSE-NEXT:    psrldq {{.*#+}} xmm3 = xmm3[14,15],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero358; SSE-NEXT:    pshuflw {{.*#+}} xmm6 = xmm6[2,0,2,3,4,5,6,7]359; SSE-NEXT:    packuswb %xmm3, %xmm6360; SSE-NEXT:    pand %xmm1, %xmm6361; SSE-NEXT:    pandn %xmm5, %xmm1362; SSE-NEXT:    por %xmm6, %xmm1363; SSE-NEXT:    movdqa {{.*#+}} xmm3 = [255,255,255,255,0,0,0,255,255,255,255,0,255,255,255,255]364; SSE-NEXT:    pand %xmm3, %xmm1365; SSE-NEXT:    pshuflw {{.*#+}} xmm2 = xmm2[1,1,1,1,4,5,6,7]366; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm2[0,1,0,1]367; SSE-NEXT:    movdqa {{.*#+}} xmm5 = [255,255,255,255,0,255,255,255,255,255,255,0,255,255,255,255]368; SSE-NEXT:    punpcklbw {{.*#+}} xmm0 = xmm0[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7]369; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[3,1,2,3]370; SSE-NEXT:    pshuflw {{.*#+}} xmm0 = xmm0[0,1,3,1,4,5,6,7]371; SSE-NEXT:    pand %xmm5, %xmm0372; SSE-NEXT:    pandn %xmm2, %xmm5373; SSE-NEXT:    por %xmm0, %xmm5374; SSE-NEXT:    pandn %xmm5, %xmm3375; SSE-NEXT:    por %xmm1, %xmm3376; SSE-NEXT:    movq %xmm3, 16(%rax)377; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm3[2,3,2,3]378; SSE-NEXT:    movd %xmm0, 24(%rax)379; SSE-NEXT:    movdqa %xmm4, (%rax)380; SSE-NEXT:    retq381;382; AVX-LABEL: store_i8_stride7_vf4:383; AVX:       # %bb.0:384; AVX-NEXT:    movq {{[0-9]+}}(%rsp), %rax385; AVX-NEXT:    movq {{[0-9]+}}(%rsp), %r10386; AVX-NEXT:    vmovdqa (%rdi), %xmm0387; AVX-NEXT:    vmovdqa (%rdx), %xmm1388; AVX-NEXT:    vmovdqa (%r8), %xmm2389; AVX-NEXT:    vpunpckldq {{.*#+}} xmm0 = xmm0[0],mem[0],xmm0[1],mem[1]390; AVX-NEXT:    vpunpckldq {{.*#+}} xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]391; AVX-NEXT:    vpunpcklqdq {{.*#+}} xmm0 = xmm0[0],xmm1[0]392; AVX-NEXT:    vpunpckldq {{.*#+}} xmm1 = xmm2[0],mem[0],xmm2[1],mem[1]393; AVX-NEXT:    vpunpcklqdq {{.*#+}} xmm1 = xmm1[0],mem[0]394; AVX-NEXT:    vpshufb {{.*#+}} xmm2 = xmm0[0,4,8,12],zero,zero,zero,xmm0[1,5,9,13],zero,zero,zero,xmm0[2,6]395; AVX-NEXT:    vpshufb {{.*#+}} xmm3 = zero,zero,zero,zero,xmm1[0,4,8],zero,zero,zero,zero,xmm1[1,5,9],zero,zero396; AVX-NEXT:    vpor %xmm3, %xmm2, %xmm2397; AVX-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[10,14],zero,zero,zero,xmm0[3,7,11,15],zero,zero,zero,xmm0[u,u,u,u]398; AVX-NEXT:    vpshufb {{.*#+}} xmm1 = zero,zero,xmm1[2,6,10],zero,zero,zero,zero,xmm1[3,7,11,u,u,u,u]399; AVX-NEXT:    vpor %xmm1, %xmm0, %xmm0400; AVX-NEXT:    vpextrd $2, %xmm0, 24(%rax)401; AVX-NEXT:    vmovq %xmm0, 16(%rax)402; AVX-NEXT:    vmovdqa %xmm2, (%rax)403; AVX-NEXT:    retq404;405; AVX2-LABEL: store_i8_stride7_vf4:406; AVX2:       # %bb.0:407; AVX2-NEXT:    movq {{[0-9]+}}(%rsp), %rax408; AVX2-NEXT:    movq {{[0-9]+}}(%rsp), %r10409; AVX2-NEXT:    vmovdqa (%rdi), %xmm0410; AVX2-NEXT:    vmovdqa (%rdx), %xmm1411; AVX2-NEXT:    vmovdqa (%r8), %xmm2412; AVX2-NEXT:    vpunpckldq {{.*#+}} xmm0 = xmm0[0],mem[0],xmm0[1],mem[1]413; AVX2-NEXT:    vpunpckldq {{.*#+}} xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]414; AVX2-NEXT:    vpunpckldq {{.*#+}} xmm2 = xmm2[0],mem[0],xmm2[1],mem[1]415; AVX2-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm0416; AVX2-NEXT:    vinserti128 $1, (%r10), %ymm1, %ymm1417; AVX2-NEXT:    vpunpcklqdq {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]418; AVX2-NEXT:    vpshufb {{.*#+}} ymm1 = ymm0[0,4,8,12],zero,zero,zero,ymm0[1,5,9,13],zero,zero,zero,ymm0[2,6],zero,zero,ymm0[18,22,26],zero,zero,zero,zero,ymm0[19,23,27],zero,zero,zero,zero419; AVX2-NEXT:    vpermq {{.*#+}} ymm0 = ymm0[2,3,0,1]420; AVX2-NEXT:    vpshufb {{.*#+}} ymm0 = zero,zero,zero,zero,ymm0[0,4,8],zero,zero,zero,zero,ymm0[1,5,9],zero,zero,ymm0[26,30],zero,zero,zero,ymm0[19,23,27,31],zero,zero,zero,zero,zero,zero,zero421; AVX2-NEXT:    vpor %ymm0, %ymm1, %ymm0422; AVX2-NEXT:    vextracti128 $1, %ymm0, %xmm1423; AVX2-NEXT:    vpextrd $2, %xmm1, 24(%rax)424; AVX2-NEXT:    vmovq %xmm1, 16(%rax)425; AVX2-NEXT:    vmovdqa %xmm0, (%rax)426; AVX2-NEXT:    vzeroupper427; AVX2-NEXT:    retq428;429; AVX2-FP-LABEL: store_i8_stride7_vf4:430; AVX2-FP:       # %bb.0:431; AVX2-FP-NEXT:    movq {{[0-9]+}}(%rsp), %rax432; AVX2-FP-NEXT:    movq {{[0-9]+}}(%rsp), %r10433; AVX2-FP-NEXT:    vmovdqa (%rdi), %xmm0434; AVX2-FP-NEXT:    vmovdqa (%rdx), %xmm1435; AVX2-FP-NEXT:    vmovdqa (%r8), %xmm2436; AVX2-FP-NEXT:    vpunpckldq {{.*#+}} xmm0 = xmm0[0],mem[0],xmm0[1],mem[1]437; AVX2-FP-NEXT:    vpunpckldq {{.*#+}} xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]438; AVX2-FP-NEXT:    vpunpckldq {{.*#+}} xmm2 = xmm2[0],mem[0],xmm2[1],mem[1]439; AVX2-FP-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm0440; AVX2-FP-NEXT:    vinserti128 $1, (%r10), %ymm1, %ymm1441; AVX2-FP-NEXT:    vpunpcklqdq {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]442; AVX2-FP-NEXT:    vpshufb {{.*#+}} ymm1 = ymm0[0,4,8,12],zero,zero,zero,ymm0[1,5,9,13],zero,zero,zero,ymm0[2,6],zero,zero,ymm0[18,22,26],zero,zero,zero,zero,ymm0[19,23,27],zero,zero,zero,zero443; AVX2-FP-NEXT:    vpermq {{.*#+}} ymm0 = ymm0[2,3,0,1]444; AVX2-FP-NEXT:    vpshufb {{.*#+}} ymm0 = zero,zero,zero,zero,ymm0[0,4,8],zero,zero,zero,zero,ymm0[1,5,9],zero,zero,ymm0[26,30],zero,zero,zero,ymm0[19,23,27,31],zero,zero,zero,zero,zero,zero,zero445; AVX2-FP-NEXT:    vpor %ymm0, %ymm1, %ymm0446; AVX2-FP-NEXT:    vextracti128 $1, %ymm0, %xmm1447; AVX2-FP-NEXT:    vpextrd $2, %xmm1, 24(%rax)448; AVX2-FP-NEXT:    vmovq %xmm1, 16(%rax)449; AVX2-FP-NEXT:    vmovdqa %xmm0, (%rax)450; AVX2-FP-NEXT:    vzeroupper451; AVX2-FP-NEXT:    retq452;453; AVX2-FCP-LABEL: store_i8_stride7_vf4:454; AVX2-FCP:       # %bb.0:455; AVX2-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax456; AVX2-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r10457; AVX2-FCP-NEXT:    vmovdqa (%rdi), %xmm0458; AVX2-FCP-NEXT:    vmovdqa (%rdx), %xmm1459; AVX2-FCP-NEXT:    vmovdqa (%r8), %xmm2460; AVX2-FCP-NEXT:    vpunpckldq {{.*#+}} xmm0 = xmm0[0],mem[0],xmm0[1],mem[1]461; AVX2-FCP-NEXT:    vpunpckldq {{.*#+}} xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]462; AVX2-FCP-NEXT:    vpunpckldq {{.*#+}} xmm2 = xmm2[0],mem[0],xmm2[1],mem[1]463; AVX2-FCP-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm0464; AVX2-FCP-NEXT:    vinserti128 $1, (%r10), %ymm1, %ymm1465; AVX2-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]466; AVX2-FCP-NEXT:    vpshufb {{.*#+}} ymm1 = ymm0[0,4,8,12],zero,zero,zero,ymm0[1,5,9,13],zero,zero,zero,ymm0[2,6],zero,zero,ymm0[18,22,26],zero,zero,zero,zero,ymm0[19,23,27],zero,zero,zero,zero467; AVX2-FCP-NEXT:    vpermq {{.*#+}} ymm0 = ymm0[2,3,0,1]468; AVX2-FCP-NEXT:    vpshufb {{.*#+}} ymm0 = zero,zero,zero,zero,ymm0[0,4,8],zero,zero,zero,zero,ymm0[1,5,9],zero,zero,ymm0[26,30],zero,zero,zero,ymm0[19,23,27,31],zero,zero,zero,zero,zero,zero,zero469; AVX2-FCP-NEXT:    vpor %ymm0, %ymm1, %ymm0470; AVX2-FCP-NEXT:    vextracti128 $1, %ymm0, %xmm1471; AVX2-FCP-NEXT:    vpextrd $2, %xmm1, 24(%rax)472; AVX2-FCP-NEXT:    vmovq %xmm1, 16(%rax)473; AVX2-FCP-NEXT:    vmovdqa %xmm0, (%rax)474; AVX2-FCP-NEXT:    vzeroupper475; AVX2-FCP-NEXT:    retq476;477; AVX512-LABEL: store_i8_stride7_vf4:478; AVX512:       # %bb.0:479; AVX512-NEXT:    movq {{[0-9]+}}(%rsp), %rax480; AVX512-NEXT:    movq {{[0-9]+}}(%rsp), %r10481; AVX512-NEXT:    vmovdqa (%rdi), %xmm0482; AVX512-NEXT:    vmovdqa (%rdx), %xmm1483; AVX512-NEXT:    vmovdqa (%r8), %xmm2484; AVX512-NEXT:    vpunpckldq {{.*#+}} xmm0 = xmm0[0],mem[0],xmm0[1],mem[1]485; AVX512-NEXT:    vpunpckldq {{.*#+}} xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]486; AVX512-NEXT:    vpunpckldq {{.*#+}} xmm2 = xmm2[0],mem[0],xmm2[1],mem[1]487; AVX512-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm0488; AVX512-NEXT:    vinserti128 $1, (%r10), %ymm1, %ymm1489; AVX512-NEXT:    vpunpcklqdq {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]490; AVX512-NEXT:    vpshufb {{.*#+}} ymm1 = ymm0[0,4,8,12],zero,zero,zero,ymm0[1,5,9,13],zero,zero,zero,ymm0[2,6],zero,zero,ymm0[18,22,26],zero,zero,zero,zero,ymm0[19,23,27,u,u,u,u]491; AVX512-NEXT:    vpermq {{.*#+}} ymm0 = ymm0[2,3,0,1]492; AVX512-NEXT:    vpshufb {{.*#+}} ymm0 = zero,zero,zero,zero,ymm0[0,4,8],zero,zero,zero,zero,ymm0[1,5,9],zero,zero,ymm0[26,30],zero,zero,zero,ymm0[19,23,27,31],zero,zero,zero,zero,zero,zero,zero493; AVX512-NEXT:    vpor %ymm0, %ymm1, %ymm0494; AVX512-NEXT:    vextracti128 $1, %ymm0, %xmm1495; AVX512-NEXT:    vpextrd $2, %xmm1, 24(%rax)496; AVX512-NEXT:    vmovq %xmm1, 16(%rax)497; AVX512-NEXT:    vmovdqa %xmm0, (%rax)498; AVX512-NEXT:    vzeroupper499; AVX512-NEXT:    retq500;501; AVX512-FCP-LABEL: store_i8_stride7_vf4:502; AVX512-FCP:       # %bb.0:503; AVX512-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax504; AVX512-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r10505; AVX512-FCP-NEXT:    vmovdqa (%rdi), %xmm0506; AVX512-FCP-NEXT:    vmovdqa (%rdx), %xmm1507; AVX512-FCP-NEXT:    vmovdqa (%r8), %xmm2508; AVX512-FCP-NEXT:    vpunpckldq {{.*#+}} xmm0 = xmm0[0],mem[0],xmm0[1],mem[1]509; AVX512-FCP-NEXT:    vpunpckldq {{.*#+}} xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]510; AVX512-FCP-NEXT:    vpunpckldq {{.*#+}} xmm2 = xmm2[0],mem[0],xmm2[1],mem[1]511; AVX512-FCP-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm0512; AVX512-FCP-NEXT:    vinserti128 $1, (%r10), %ymm1, %ymm1513; AVX512-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]514; AVX512-FCP-NEXT:    vpshufb {{.*#+}} ymm1 = ymm0[0,4,8,12],zero,zero,zero,ymm0[1,5,9,13],zero,zero,zero,ymm0[2,6],zero,zero,ymm0[18,22,26],zero,zero,zero,zero,ymm0[19,23,27,u,u,u,u]515; AVX512-FCP-NEXT:    vpermq {{.*#+}} ymm0 = ymm0[2,3,0,1]516; AVX512-FCP-NEXT:    vpshufb {{.*#+}} ymm0 = zero,zero,zero,zero,ymm0[0,4,8],zero,zero,zero,zero,ymm0[1,5,9],zero,zero,ymm0[26,30],zero,zero,zero,ymm0[19,23,27,31],zero,zero,zero,zero,zero,zero,zero517; AVX512-FCP-NEXT:    vpor %ymm0, %ymm1, %ymm0518; AVX512-FCP-NEXT:    vextracti128 $1, %ymm0, %xmm1519; AVX512-FCP-NEXT:    vpextrd $2, %xmm1, 24(%rax)520; AVX512-FCP-NEXT:    vmovq %xmm1, 16(%rax)521; AVX512-FCP-NEXT:    vmovdqa %xmm0, (%rax)522; AVX512-FCP-NEXT:    vzeroupper523; AVX512-FCP-NEXT:    retq524;525; AVX512DQ-LABEL: store_i8_stride7_vf4:526; AVX512DQ:       # %bb.0:527; AVX512DQ-NEXT:    movq {{[0-9]+}}(%rsp), %rax528; AVX512DQ-NEXT:    movq {{[0-9]+}}(%rsp), %r10529; AVX512DQ-NEXT:    vmovdqa (%rdi), %xmm0530; AVX512DQ-NEXT:    vmovdqa (%rdx), %xmm1531; AVX512DQ-NEXT:    vmovdqa (%r8), %xmm2532; AVX512DQ-NEXT:    vpunpckldq {{.*#+}} xmm0 = xmm0[0],mem[0],xmm0[1],mem[1]533; AVX512DQ-NEXT:    vpunpckldq {{.*#+}} xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]534; AVX512DQ-NEXT:    vpunpckldq {{.*#+}} xmm2 = xmm2[0],mem[0],xmm2[1],mem[1]535; AVX512DQ-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm0536; AVX512DQ-NEXT:    vinserti128 $1, (%r10), %ymm1, %ymm1537; AVX512DQ-NEXT:    vpunpcklqdq {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]538; AVX512DQ-NEXT:    vpshufb {{.*#+}} ymm1 = ymm0[0,4,8,12],zero,zero,zero,ymm0[1,5,9,13],zero,zero,zero,ymm0[2,6],zero,zero,ymm0[18,22,26],zero,zero,zero,zero,ymm0[19,23,27,u,u,u,u]539; AVX512DQ-NEXT:    vpermq {{.*#+}} ymm0 = ymm0[2,3,0,1]540; AVX512DQ-NEXT:    vpshufb {{.*#+}} ymm0 = zero,zero,zero,zero,ymm0[0,4,8],zero,zero,zero,zero,ymm0[1,5,9],zero,zero,ymm0[26,30],zero,zero,zero,ymm0[19,23,27,31],zero,zero,zero,zero,zero,zero,zero541; AVX512DQ-NEXT:    vpor %ymm0, %ymm1, %ymm0542; AVX512DQ-NEXT:    vextracti128 $1, %ymm0, %xmm1543; AVX512DQ-NEXT:    vpextrd $2, %xmm1, 24(%rax)544; AVX512DQ-NEXT:    vmovq %xmm1, 16(%rax)545; AVX512DQ-NEXT:    vmovdqa %xmm0, (%rax)546; AVX512DQ-NEXT:    vzeroupper547; AVX512DQ-NEXT:    retq548;549; AVX512DQ-FCP-LABEL: store_i8_stride7_vf4:550; AVX512DQ-FCP:       # %bb.0:551; AVX512DQ-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax552; AVX512DQ-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r10553; AVX512DQ-FCP-NEXT:    vmovdqa (%rdi), %xmm0554; AVX512DQ-FCP-NEXT:    vmovdqa (%rdx), %xmm1555; AVX512DQ-FCP-NEXT:    vmovdqa (%r8), %xmm2556; AVX512DQ-FCP-NEXT:    vpunpckldq {{.*#+}} xmm0 = xmm0[0],mem[0],xmm0[1],mem[1]557; AVX512DQ-FCP-NEXT:    vpunpckldq {{.*#+}} xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]558; AVX512DQ-FCP-NEXT:    vpunpckldq {{.*#+}} xmm2 = xmm2[0],mem[0],xmm2[1],mem[1]559; AVX512DQ-FCP-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm0560; AVX512DQ-FCP-NEXT:    vinserti128 $1, (%r10), %ymm1, %ymm1561; AVX512DQ-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]562; AVX512DQ-FCP-NEXT:    vpshufb {{.*#+}} ymm1 = ymm0[0,4,8,12],zero,zero,zero,ymm0[1,5,9,13],zero,zero,zero,ymm0[2,6],zero,zero,ymm0[18,22,26],zero,zero,zero,zero,ymm0[19,23,27,u,u,u,u]563; AVX512DQ-FCP-NEXT:    vpermq {{.*#+}} ymm0 = ymm0[2,3,0,1]564; AVX512DQ-FCP-NEXT:    vpshufb {{.*#+}} ymm0 = zero,zero,zero,zero,ymm0[0,4,8],zero,zero,zero,zero,ymm0[1,5,9],zero,zero,ymm0[26,30],zero,zero,zero,ymm0[19,23,27,31],zero,zero,zero,zero,zero,zero,zero565; AVX512DQ-FCP-NEXT:    vpor %ymm0, %ymm1, %ymm0566; AVX512DQ-FCP-NEXT:    vextracti128 $1, %ymm0, %xmm1567; AVX512DQ-FCP-NEXT:    vpextrd $2, %xmm1, 24(%rax)568; AVX512DQ-FCP-NEXT:    vmovq %xmm1, 16(%rax)569; AVX512DQ-FCP-NEXT:    vmovdqa %xmm0, (%rax)570; AVX512DQ-FCP-NEXT:    vzeroupper571; AVX512DQ-FCP-NEXT:    retq572;573; AVX512BW-LABEL: store_i8_stride7_vf4:574; AVX512BW:       # %bb.0:575; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax576; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %r10577; AVX512BW-NEXT:    vmovdqa (%rdi), %xmm0578; AVX512BW-NEXT:    vmovdqa (%rdx), %xmm1579; AVX512BW-NEXT:    vmovdqa (%r8), %xmm2580; AVX512BW-NEXT:    vpunpckldq {{.*#+}} xmm0 = xmm0[0],mem[0],xmm0[1],mem[1]581; AVX512BW-NEXT:    vpunpckldq {{.*#+}} xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]582; AVX512BW-NEXT:    vpunpckldq {{.*#+}} xmm2 = xmm2[0],mem[0],xmm2[1],mem[1]583; AVX512BW-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm0584; AVX512BW-NEXT:    vinserti128 $1, (%r10), %ymm1, %ymm1585; AVX512BW-NEXT:    vpunpcklqdq {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]586; AVX512BW-NEXT:    vpshufb {{.*#+}} ymm1 = ymm0[0,4,8,12],zero,zero,zero,ymm0[1,5,9,13],zero,zero,zero,ymm0[2,6],zero,zero,ymm0[18,22,26],zero,zero,zero,zero,ymm0[19,23,27],zero,zero,zero,zero587; AVX512BW-NEXT:    vpermq {{.*#+}} ymm0 = ymm0[2,3,0,1]588; AVX512BW-NEXT:    vpshufb {{.*#+}} ymm0 = zero,zero,zero,zero,ymm0[0,4,8],zero,zero,zero,zero,ymm0[1,5,9],zero,zero,ymm0[26,30],zero,zero,zero,ymm0[19,23,27,31],zero,zero,zero,zero,zero,zero,zero589; AVX512BW-NEXT:    vpor %ymm1, %ymm0, %ymm0590; AVX512BW-NEXT:    vextracti128 $1, %ymm0, %xmm1591; AVX512BW-NEXT:    vpextrd $2, %xmm1, 24(%rax)592; AVX512BW-NEXT:    vmovq %xmm1, 16(%rax)593; AVX512BW-NEXT:    vmovdqa %xmm0, (%rax)594; AVX512BW-NEXT:    vzeroupper595; AVX512BW-NEXT:    retq596;597; AVX512BW-FCP-LABEL: store_i8_stride7_vf4:598; AVX512BW-FCP:       # %bb.0:599; AVX512BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax600; AVX512BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r10601; AVX512BW-FCP-NEXT:    vmovdqa (%rdi), %xmm0602; AVX512BW-FCP-NEXT:    vmovdqa (%rdx), %xmm1603; AVX512BW-FCP-NEXT:    vmovdqa (%r8), %xmm2604; AVX512BW-FCP-NEXT:    vpunpckldq {{.*#+}} xmm0 = xmm0[0],mem[0],xmm0[1],mem[1]605; AVX512BW-FCP-NEXT:    vpunpckldq {{.*#+}} xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]606; AVX512BW-FCP-NEXT:    vpunpckldq {{.*#+}} xmm2 = xmm2[0],mem[0],xmm2[1],mem[1]607; AVX512BW-FCP-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm0608; AVX512BW-FCP-NEXT:    vinserti128 $1, (%r10), %ymm1, %ymm1609; AVX512BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]610; AVX512BW-FCP-NEXT:    vpshufb {{.*#+}} ymm1 = ymm0[0,4,8,12],zero,zero,zero,ymm0[1,5,9,13],zero,zero,zero,ymm0[2,6],zero,zero,ymm0[18,22,26],zero,zero,zero,zero,ymm0[19,23,27],zero,zero,zero,zero611; AVX512BW-FCP-NEXT:    vpermq {{.*#+}} ymm0 = ymm0[2,3,0,1]612; AVX512BW-FCP-NEXT:    vpshufb {{.*#+}} ymm0 = zero,zero,zero,zero,ymm0[0,4,8],zero,zero,zero,zero,ymm0[1,5,9],zero,zero,ymm0[26,30],zero,zero,zero,ymm0[19,23,27,31],zero,zero,zero,zero,zero,zero,zero613; AVX512BW-FCP-NEXT:    vpor %ymm1, %ymm0, %ymm0614; AVX512BW-FCP-NEXT:    vextracti128 $1, %ymm0, %xmm1615; AVX512BW-FCP-NEXT:    vpextrd $2, %xmm1, 24(%rax)616; AVX512BW-FCP-NEXT:    vmovq %xmm1, 16(%rax)617; AVX512BW-FCP-NEXT:    vmovdqa %xmm0, (%rax)618; AVX512BW-FCP-NEXT:    vzeroupper619; AVX512BW-FCP-NEXT:    retq620;621; AVX512DQ-BW-LABEL: store_i8_stride7_vf4:622; AVX512DQ-BW:       # %bb.0:623; AVX512DQ-BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax624; AVX512DQ-BW-NEXT:    movq {{[0-9]+}}(%rsp), %r10625; AVX512DQ-BW-NEXT:    vmovdqa (%rdi), %xmm0626; AVX512DQ-BW-NEXT:    vmovdqa (%rdx), %xmm1627; AVX512DQ-BW-NEXT:    vmovdqa (%r8), %xmm2628; AVX512DQ-BW-NEXT:    vpunpckldq {{.*#+}} xmm0 = xmm0[0],mem[0],xmm0[1],mem[1]629; AVX512DQ-BW-NEXT:    vpunpckldq {{.*#+}} xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]630; AVX512DQ-BW-NEXT:    vpunpckldq {{.*#+}} xmm2 = xmm2[0],mem[0],xmm2[1],mem[1]631; AVX512DQ-BW-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm0632; AVX512DQ-BW-NEXT:    vinserti128 $1, (%r10), %ymm1, %ymm1633; AVX512DQ-BW-NEXT:    vpunpcklqdq {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]634; AVX512DQ-BW-NEXT:    vpshufb {{.*#+}} ymm1 = ymm0[0,4,8,12],zero,zero,zero,ymm0[1,5,9,13],zero,zero,zero,ymm0[2,6],zero,zero,ymm0[18,22,26],zero,zero,zero,zero,ymm0[19,23,27],zero,zero,zero,zero635; AVX512DQ-BW-NEXT:    vpermq {{.*#+}} ymm0 = ymm0[2,3,0,1]636; AVX512DQ-BW-NEXT:    vpshufb {{.*#+}} ymm0 = zero,zero,zero,zero,ymm0[0,4,8],zero,zero,zero,zero,ymm0[1,5,9],zero,zero,ymm0[26,30],zero,zero,zero,ymm0[19,23,27,31],zero,zero,zero,zero,zero,zero,zero637; AVX512DQ-BW-NEXT:    vpor %ymm1, %ymm0, %ymm0638; AVX512DQ-BW-NEXT:    vextracti128 $1, %ymm0, %xmm1639; AVX512DQ-BW-NEXT:    vpextrd $2, %xmm1, 24(%rax)640; AVX512DQ-BW-NEXT:    vmovq %xmm1, 16(%rax)641; AVX512DQ-BW-NEXT:    vmovdqa %xmm0, (%rax)642; AVX512DQ-BW-NEXT:    vzeroupper643; AVX512DQ-BW-NEXT:    retq644;645; AVX512DQ-BW-FCP-LABEL: store_i8_stride7_vf4:646; AVX512DQ-BW-FCP:       # %bb.0:647; AVX512DQ-BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax648; AVX512DQ-BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r10649; AVX512DQ-BW-FCP-NEXT:    vmovdqa (%rdi), %xmm0650; AVX512DQ-BW-FCP-NEXT:    vmovdqa (%rdx), %xmm1651; AVX512DQ-BW-FCP-NEXT:    vmovdqa (%r8), %xmm2652; AVX512DQ-BW-FCP-NEXT:    vpunpckldq {{.*#+}} xmm0 = xmm0[0],mem[0],xmm0[1],mem[1]653; AVX512DQ-BW-FCP-NEXT:    vpunpckldq {{.*#+}} xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]654; AVX512DQ-BW-FCP-NEXT:    vpunpckldq {{.*#+}} xmm2 = xmm2[0],mem[0],xmm2[1],mem[1]655; AVX512DQ-BW-FCP-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm0656; AVX512DQ-BW-FCP-NEXT:    vinserti128 $1, (%r10), %ymm1, %ymm1657; AVX512DQ-BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]658; AVX512DQ-BW-FCP-NEXT:    vpshufb {{.*#+}} ymm1 = ymm0[0,4,8,12],zero,zero,zero,ymm0[1,5,9,13],zero,zero,zero,ymm0[2,6],zero,zero,ymm0[18,22,26],zero,zero,zero,zero,ymm0[19,23,27],zero,zero,zero,zero659; AVX512DQ-BW-FCP-NEXT:    vpermq {{.*#+}} ymm0 = ymm0[2,3,0,1]660; AVX512DQ-BW-FCP-NEXT:    vpshufb {{.*#+}} ymm0 = zero,zero,zero,zero,ymm0[0,4,8],zero,zero,zero,zero,ymm0[1,5,9],zero,zero,ymm0[26,30],zero,zero,zero,ymm0[19,23,27,31],zero,zero,zero,zero,zero,zero,zero661; AVX512DQ-BW-FCP-NEXT:    vpor %ymm1, %ymm0, %ymm0662; AVX512DQ-BW-FCP-NEXT:    vextracti128 $1, %ymm0, %xmm1663; AVX512DQ-BW-FCP-NEXT:    vpextrd $2, %xmm1, 24(%rax)664; AVX512DQ-BW-FCP-NEXT:    vmovq %xmm1, 16(%rax)665; AVX512DQ-BW-FCP-NEXT:    vmovdqa %xmm0, (%rax)666; AVX512DQ-BW-FCP-NEXT:    vzeroupper667; AVX512DQ-BW-FCP-NEXT:    retq668  %in.vec0 = load <4 x i8>, ptr %in.vecptr0, align 64669  %in.vec1 = load <4 x i8>, ptr %in.vecptr1, align 64670  %in.vec2 = load <4 x i8>, ptr %in.vecptr2, align 64671  %in.vec3 = load <4 x i8>, ptr %in.vecptr3, align 64672  %in.vec4 = load <4 x i8>, ptr %in.vecptr4, align 64673  %in.vec5 = load <4 x i8>, ptr %in.vecptr5, align 64674  %in.vec6 = load <4 x i8>, ptr %in.vecptr6, align 64675  %1 = shufflevector <4 x i8> %in.vec0, <4 x i8> %in.vec1, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>676  %2 = shufflevector <4 x i8> %in.vec2, <4 x i8> %in.vec3, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>677  %3 = shufflevector <4 x i8> %in.vec4, <4 x i8> %in.vec5, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>678  %4 = shufflevector <8 x i8> %1, <8 x i8> %2, <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>679  %5 = shufflevector <4 x i8> %in.vec6, <4 x i8> poison, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 undef, i32 undef, i32 undef, i32 undef>680  %6 = shufflevector <8 x i8> %3, <8 x i8> %5, <12 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>681  %7 = shufflevector <12 x i8> %6, <12 x i8> 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>682  %8 = shufflevector <16 x i8> %4, <16 x i8> %7, <28 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>683  %interleaved.vec = shufflevector <28 x i8> %8, <28 x i8> poison, <28 x i32> <i32 0, i32 4, i32 8, i32 12, i32 16, i32 20, i32 24, i32 1, i32 5, i32 9, i32 13, i32 17, i32 21, i32 25, i32 2, i32 6, i32 10, i32 14, i32 18, i32 22, i32 26, i32 3, i32 7, i32 11, i32 15, i32 19, i32 23, i32 27>684  store <28 x i8> %interleaved.vec, ptr %out.vec, align 64685  ret void686}687 688define void @store_i8_stride7_vf8(ptr %in.vecptr0, ptr %in.vecptr1, ptr %in.vecptr2, ptr %in.vecptr3, ptr %in.vecptr4, ptr %in.vecptr5, ptr %in.vecptr6, ptr %out.vec) nounwind {689; SSE-LABEL: store_i8_stride7_vf8:690; SSE:       # %bb.0:691; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %rax692; SSE-NEXT:    movq {{.*#+}} xmm3 = mem[0],zero693; SSE-NEXT:    movq {{.*#+}} xmm10 = mem[0],zero694; SSE-NEXT:    movdqa %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill695; SSE-NEXT:    movq {{.*#+}} xmm2 = mem[0],zero696; SSE-NEXT:    movq {{.*#+}} xmm4 = mem[0],zero697; SSE-NEXT:    movq {{.*#+}} xmm14 = mem[0],zero698; SSE-NEXT:    movdqa %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill699; SSE-NEXT:    movq {{.*#+}} xmm0 = mem[0],zero700; SSE-NEXT:    movq {{.*#+}} xmm5 = mem[0],zero701; SSE-NEXT:    punpcklqdq {{.*#+}} xmm5 = xmm5[0],xmm0[0]702; SSE-NEXT:    pshuflw {{.*#+}} xmm0 = xmm2[0,0,0,0,4,5,6,7]703; SSE-NEXT:    movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill704; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,1,0,1]705; SSE-NEXT:    movdqa {{.*#+}} xmm6 = [255,255,255,0,255,255,255,255,255,255,0,255,255,255,255,255]706; SSE-NEXT:    pand %xmm6, %xmm0707; SSE-NEXT:    movdqa %xmm4, %xmm7708; SSE-NEXT:    punpcklbw {{.*#+}} xmm7 = xmm7[0],xmm4[0],xmm7[1],xmm4[1],xmm7[2],xmm4[2],xmm7[3],xmm4[3],xmm7[4],xmm4[4],xmm7[5],xmm4[5],xmm7[6],xmm4[6],xmm7[7],xmm4[7]709; SSE-NEXT:    pshuflw {{.*#+}} xmm8 = xmm7[0,0,2,1,4,5,6,7]710; SSE-NEXT:    pshufd {{.*#+}} xmm8 = xmm8[0,1,1,3]711; SSE-NEXT:    pandn %xmm8, %xmm6712; SSE-NEXT:    por %xmm0, %xmm6713; SSE-NEXT:    movdqa {{.*#+}} xmm9 = [255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255]714; SSE-NEXT:    pshuflw {{.*#+}} xmm0 = xmm3[0,0,2,1,4,5,6,7]715; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,0,2,1]716; SSE-NEXT:    movdqa {{.*#+}} xmm8 = [255,0,255,255,255,255,255,255,0,255,255,255,255,255,255,0]717; SSE-NEXT:    pand %xmm8, %xmm0718; SSE-NEXT:    punpcklbw {{.*#+}} xmm10 = xmm10[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7]719; SSE-NEXT:    pshuflw {{.*#+}} xmm11 = xmm10[0,2,1,3,4,5,6,7]720; SSE-NEXT:    pshufd {{.*#+}} xmm11 = xmm11[0,1,1,0]721; SSE-NEXT:    movdqa %xmm8, %xmm12722; SSE-NEXT:    pandn %xmm11, %xmm12723; SSE-NEXT:    por %xmm0, %xmm12724; SSE-NEXT:    pand %xmm9, %xmm12725; SSE-NEXT:    pandn %xmm6, %xmm9726; SSE-NEXT:    por %xmm12, %xmm9727; SSE-NEXT:    pxor %xmm0, %xmm0728; SSE-NEXT:    movdqa %xmm5, %xmm12729; SSE-NEXT:    movdqa %xmm5, %xmm15730; SSE-NEXT:    punpckhbw {{.*#+}} xmm15 = xmm15[8],xmm0[8],xmm15[9],xmm0[9],xmm15[10],xmm0[10],xmm15[11],xmm0[11],xmm15[12],xmm0[12],xmm15[13],xmm0[13],xmm15[14],xmm0[14],xmm15[15],xmm0[15]731; SSE-NEXT:    punpcklbw {{.*#+}} xmm12 = xmm12[0],xmm0[0],xmm12[1],xmm0[1],xmm12[2],xmm0[2],xmm12[3],xmm0[3],xmm12[4],xmm0[4],xmm12[5],xmm0[5],xmm12[6],xmm0[6],xmm12[7],xmm0[7]732; SSE-NEXT:    movdqa %xmm12, %xmm13733; SSE-NEXT:    punpcklwd {{.*#+}} xmm13 = xmm13[0],xmm15[0],xmm13[1],xmm15[1],xmm13[2],xmm15[2],xmm13[3],xmm15[3]734; SSE-NEXT:    movdqa %xmm13, %xmm0735; SSE-NEXT:    pslldq {{.*#+}} xmm0 = zero,zero,xmm0[0,1,2,3,4,5,6,7,8,9,10,11,12,13]736; SSE-NEXT:    movdqa %xmm13, %xmm6737; SSE-NEXT:    packuswb %xmm0, %xmm6738; SSE-NEXT:    movdqa {{.*#+}} xmm11 = [255,255,255,255,255,255,0,255,255,255,255,255,255,0,255,255]739; SSE-NEXT:    pshuflw {{.*#+}} xmm0 = xmm14[0,0,0,0,4,5,6,7]740; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,1,0,1]741; SSE-NEXT:    movdqa %xmm11, %xmm14742; SSE-NEXT:    pandn %xmm0, %xmm14743; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm6[0,0,2,3]744; SSE-NEXT:    pand %xmm11, %xmm0745; SSE-NEXT:    por %xmm0, %xmm14746; SSE-NEXT:    movdqa {{.*#+}} xmm6 = [255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255]747; SSE-NEXT:    pand %xmm6, %xmm9748; SSE-NEXT:    pandn %xmm14, %xmm6749; SSE-NEXT:    por %xmm9, %xmm6750; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm7[2,2,3,3]751; SSE-NEXT:    movdqa %xmm11, %xmm9752; SSE-NEXT:    pandn %xmm0, %xmm9753; SSE-NEXT:    pshuflw {{.*#+}} xmm0 = xmm2[2,1,3,3,4,5,6,7]754; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,0,2,1]755; SSE-NEXT:    pand %xmm11, %xmm0756; SSE-NEXT:    por %xmm9, %xmm0757; SSE-NEXT:    movdqa {{.*#+}} xmm1 = [255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255]758; SSE-NEXT:    movdqa %xmm1, %xmm9759; SSE-NEXT:    pandn %xmm0, %xmm9760; SSE-NEXT:    pshufhw {{.*#+}} xmm0 = xmm10[0,1,2,3,5,6,6,7]761; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm0[2,2,2,2]762; SSE-NEXT:    movdqa {{.*#+}} xmm0 = [255,255,255,255,0,255,255,255,255,255,255,0,255,255,255,255]763; SSE-NEXT:    movdqa %xmm0, %xmm14764; SSE-NEXT:    pandn %xmm2, %xmm14765; SSE-NEXT:    pshuflw {{.*#+}} xmm2 = xmm3[0,2,2,3,4,5,6,7]766; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm2[0,1,1,3]767; SSE-NEXT:    pand %xmm0, %xmm2768; SSE-NEXT:    por %xmm2, %xmm14769; SSE-NEXT:    pand %xmm1, %xmm14770; SSE-NEXT:    por %xmm9, %xmm14771; SSE-NEXT:    movdqa %xmm15, %xmm2772; SSE-NEXT:    punpckhwd {{.*#+}} xmm2 = xmm2[4],xmm12[4],xmm2[5],xmm12[5],xmm2[6],xmm12[6],xmm2[7],xmm12[7]773; SSE-NEXT:    punpckhwd {{.*#+}} xmm12 = xmm12[4],xmm15[4],xmm12[5],xmm15[5],xmm12[6],xmm15[6],xmm12[7],xmm15[7]774; SSE-NEXT:    pshuflw {{.*#+}} xmm2 = xmm2[2,2,2,2,4,5,6,7]775; SSE-NEXT:    pshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,5,5,4]776; SSE-NEXT:    pshuflw {{.*#+}} xmm9 = xmm12[0,1,2,2,4,5,6,7]777; SSE-NEXT:    pshufd {{.*#+}} xmm9 = xmm9[0,1,2,1]778; SSE-NEXT:    packuswb %xmm2, %xmm9779; SSE-NEXT:    movdqa {{.*#+}} xmm12 = [255,255,0,255,255,255,255,255,255,0,255,255,255,255,255,255]780; SSE-NEXT:    pand %xmm12, %xmm9781; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload782; SSE-NEXT:    pshuflw {{.*#+}} xmm2 = xmm15[2,2,2,2,4,5,6,7]783; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm2[0,1,0,1]784; SSE-NEXT:    pandn %xmm2, %xmm12785; SSE-NEXT:    por %xmm9, %xmm12786; SSE-NEXT:    movdqa {{.*#+}} xmm2 = [255,255,255,0,0,0,0,255,255,255,0,0,0,0,255,255]787; SSE-NEXT:    pand %xmm2, %xmm12788; SSE-NEXT:    pandn %xmm14, %xmm2789; SSE-NEXT:    por %xmm2, %xmm12790; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm13[2,2,3,3]791; SSE-NEXT:    psrldq {{.*#+}} xmm13 = xmm13[10,11,12,13,14,15],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero792; SSE-NEXT:    packuswb %xmm13, %xmm2793; SSE-NEXT:    pand %xmm0, %xmm2794; SSE-NEXT:    pshuflw {{.*#+}} xmm9 = xmm15[1,1,1,1,4,5,6,7]795; SSE-NEXT:    pshufd {{.*#+}} xmm9 = xmm9[0,1,0,1]796; SSE-NEXT:    pandn %xmm9, %xmm0797; SSE-NEXT:    por %xmm2, %xmm0798; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm10[0,1,2,2]799; SSE-NEXT:    movdqa %xmm3, %xmm10800; SSE-NEXT:    pshuflw {{.*#+}} xmm9 = xmm3[1,1,2,3,4,5,6,7]801; SSE-NEXT:    pshufd {{.*#+}} xmm9 = xmm9[0,0,2,1]802; SSE-NEXT:    pand %xmm11, %xmm9803; SSE-NEXT:    pandn %xmm2, %xmm11804; SSE-NEXT:    por %xmm9, %xmm11805; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload806; SSE-NEXT:    pshuflw {{.*#+}} xmm2 = xmm3[1,1,2,2,4,5,6,7]807; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm2[0,0,2,1]808; SSE-NEXT:    pand %xmm8, %xmm2809; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm7[1,1,2,1]810; SSE-NEXT:    pshufhw {{.*#+}} xmm7 = xmm7[0,1,2,3,7,5,6,4]811; SSE-NEXT:    pandn %xmm7, %xmm8812; SSE-NEXT:    por %xmm2, %xmm8813; SSE-NEXT:    pand %xmm1, %xmm8814; SSE-NEXT:    pandn %xmm11, %xmm1815; SSE-NEXT:    por %xmm8, %xmm1816; SSE-NEXT:    movdqa {{.*#+}} xmm2 = [255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255]817; SSE-NEXT:    pand %xmm2, %xmm1818; SSE-NEXT:    pandn %xmm0, %xmm2819; SSE-NEXT:    por %xmm2, %xmm1820; SSE-NEXT:    punpcklbw {{.*#+}} xmm4 = xmm4[0],xmm3[0],xmm4[1],xmm3[1],xmm4[2],xmm3[2],xmm4[3],xmm3[3],xmm4[4],xmm3[4],xmm4[5],xmm3[5],xmm4[6],xmm3[6],xmm4[7],xmm3[7]821; SSE-NEXT:    pshufhw {{.*#+}} xmm0 = xmm4[0,1,2,3,7,7,7,7]822; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm0[2,3,2,3]823; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload824; SSE-NEXT:    punpcklbw {{.*#+}} xmm4 = xmm4[0],xmm10[0],xmm4[1],xmm10[1],xmm4[2],xmm10[2],xmm4[3],xmm10[3],xmm4[4],xmm10[4],xmm4[5],xmm10[5],xmm4[6],xmm10[6],xmm4[7],xmm10[7]825; SSE-NEXT:    movdqa {{.*#+}} xmm0 = [255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255]826; SSE-NEXT:    pshufhw {{.*#+}} xmm4 = xmm4[0,1,2,3,7,7,7,7]827; SSE-NEXT:    pshufd {{.*#+}} xmm4 = xmm4[2,3,2,3]828; SSE-NEXT:    pand %xmm0, %xmm4829; SSE-NEXT:    pandn %xmm2, %xmm0830; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm5[3,1,2,3]831; SSE-NEXT:    por %xmm4, %xmm0832; SSE-NEXT:    pshuflw {{.*#+}} xmm3 = xmm15[3,3,3,3,4,5,6,7]833; SSE-NEXT:    movdqa {{.*#+}} xmm4 = [255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255]834; SSE-NEXT:    pand %xmm4, %xmm3835; SSE-NEXT:    pshuflw {{.*#+}} xmm2 = xmm2[1,3,2,3,4,5,6,7]836; SSE-NEXT:    punpcklbw {{.*#+}} xmm2 = xmm2[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7]837; SSE-NEXT:    pshuflw {{.*#+}} xmm2 = xmm2[0,1,3,1,4,5,6,7]838; SSE-NEXT:    pandn %xmm2, %xmm4839; SSE-NEXT:    por %xmm3, %xmm4840; SSE-NEXT:    movdqa {{.*#+}} xmm2 = [0,255,255,255,255,0,0,0,255,255,255,255,255,255,255,255]841; SSE-NEXT:    pand %xmm2, %xmm0842; SSE-NEXT:    pandn %xmm4, %xmm2843; SSE-NEXT:    por %xmm0, %xmm2844; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %rax845; SSE-NEXT:    movq %xmm2, 48(%rax)846; SSE-NEXT:    movdqa %xmm1, 16(%rax)847; SSE-NEXT:    movdqa %xmm12, 32(%rax)848; SSE-NEXT:    movdqa %xmm6, (%rax)849; SSE-NEXT:    retq850;851; AVX-LABEL: store_i8_stride7_vf8:852; AVX:       # %bb.0:853; AVX-NEXT:    movq {{[0-9]+}}(%rsp), %rax854; AVX-NEXT:    movq {{[0-9]+}}(%rsp), %r10855; AVX-NEXT:    vmovq {{.*#+}} xmm0 = mem[0],zero856; AVX-NEXT:    vmovq {{.*#+}} xmm1 = mem[0],zero857; AVX-NEXT:    vpunpcklqdq {{.*#+}} xmm0 = xmm0[0],xmm1[0]858; AVX-NEXT:    vmovq {{.*#+}} xmm1 = mem[0],zero859; AVX-NEXT:    vmovq {{.*#+}} xmm2 = mem[0],zero860; AVX-NEXT:    vpunpcklqdq {{.*#+}} xmm1 = xmm2[0],xmm1[0]861; AVX-NEXT:    vmovq {{.*#+}} xmm2 = mem[0],zero862; AVX-NEXT:    vmovq {{.*#+}} xmm3 = mem[0],zero863; AVX-NEXT:    vpunpcklqdq {{.*#+}} xmm2 = xmm3[0],xmm2[0]864; AVX-NEXT:    vmovq {{.*#+}} xmm3 = mem[0],zero865; AVX-NEXT:    vpshufb {{.*#+}} xmm4 = xmm2[u,u,u],zero,zero,xmm2[5,13,u,u,u],zero,zero,xmm2[6,14,u,u]866; AVX-NEXT:    vpshufb {{.*#+}} xmm5 = xmm1[u,u,u,5,13],zero,zero,xmm1[u,u,u,6,14],zero,zero,xmm1[u,u]867; AVX-NEXT:    vpor %xmm4, %xmm5, %xmm4868; AVX-NEXT:    vpshufb {{.*#+}} xmm5 = xmm0[4,12],zero,xmm0[u,u,u,u,5,13],zero,xmm0[u,u,u,u,6,14]869; AVX-NEXT:    vpshufb {{.*#+}} xmm6 = zero,zero,xmm3[4,u,u,u,u],zero,zero,xmm3[5,u,u,u,u],zero,zero870; AVX-NEXT:    vpor %xmm6, %xmm5, %xmm5871; AVX-NEXT:    vmovdqa {{.*#+}} xmm6 = [255,255,255,0,0,0,0,255,255,255,0,0,0,0,255,255]872; AVX-NEXT:    vpblendvb %xmm6, %xmm5, %xmm4, %xmm4873; AVX-NEXT:    vpshufb {{.*#+}} xmm5 = xmm2[u],zero,zero,xmm2[7,15,u,u,u,u,u,u,u,u,u,u,u]874; AVX-NEXT:    vpshufb {{.*#+}} xmm6 = xmm1[u,7,15],zero,zero,xmm1[u,u,u,u,u,u,u,u,u,u,u]875; AVX-NEXT:    vpor %xmm5, %xmm6, %xmm5876; AVX-NEXT:    vpshufb {{.*#+}} xmm6 = zero,xmm0[u,u,u,u,7,15],zero,xmm0[u,u,u,u,u,u,u,u]877; AVX-NEXT:    vpshufb {{.*#+}} xmm7 = xmm3[6,u,u,u,u],zero,zero,xmm3[7,u,u,u,u,u,u,u,u]878; AVX-NEXT:    vpor %xmm6, %xmm7, %xmm6879; AVX-NEXT:    vmovq {{.*#+}} xmm7 = [0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0]880; AVX-NEXT:    vpblendvb %xmm7, %xmm5, %xmm6, %xmm5881; AVX-NEXT:    vpshufb {{.*#+}} xmm6 = zero,zero,xmm2[0,8,u,u,u],zero,zero,xmm2[1,9,u,u,u],zero,zero882; AVX-NEXT:    vpshufb {{.*#+}} xmm7 = xmm1[0,8],zero,zero,xmm1[u,u,u,1,9],zero,zero,xmm1[u,u,u,2,10]883; AVX-NEXT:    vpor %xmm6, %xmm7, %xmm6884; AVX-NEXT:    vpshufb {{.*#+}} xmm7 = xmm0[u,u,u,u,0,8],zero,xmm0[u,u,u,u,1,9],zero,xmm0[u,u]885; AVX-NEXT:    vpshufb {{.*#+}} xmm8 = xmm3[u,u,u,u],zero,zero,xmm3[0,u,u,u,u],zero,zero,xmm3[1,u,u]886; AVX-NEXT:    vpor %xmm7, %xmm8, %xmm7887; AVX-NEXT:    vmovdqa {{.*#+}} xmm8 = [255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255]888; AVX-NEXT:    vpblendvb %xmm8, %xmm6, %xmm7, %xmm6889; AVX-NEXT:    vpshufb {{.*#+}} xmm1 = zero,zero,xmm1[u,u,u,3,11],zero,zero,xmm1[u,u,u,4,12],zero,zero890; AVX-NEXT:    vpshufb {{.*#+}} xmm2 = xmm2[2,10,u,u,u],zero,zero,xmm2[3,11,u,u,u],zero,zero,xmm2[4,12]891; AVX-NEXT:    vpor %xmm1, %xmm2, %xmm1892; AVX-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[u,u,2,10],zero,xmm0[u,u,u,u,3,11],zero,xmm0[u,u,u,u]893; AVX-NEXT:    vpshufb {{.*#+}} xmm2 = xmm3[u,u],zero,zero,xmm3[2,u,u,u,u],zero,zero,xmm3[3,u,u,u,u]894; AVX-NEXT:    vpor %xmm2, %xmm0, %xmm0895; AVX-NEXT:    vmovdqa {{.*#+}} xmm2 = [255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255]896; AVX-NEXT:    vpblendvb %xmm2, %xmm1, %xmm0, %xmm0897; AVX-NEXT:    vmovdqa %xmm0, 16(%rax)898; AVX-NEXT:    vmovdqa %xmm6, (%rax)899; AVX-NEXT:    vmovq %xmm5, 48(%rax)900; AVX-NEXT:    vmovdqa %xmm4, 32(%rax)901; AVX-NEXT:    retq902;903; AVX2-LABEL: store_i8_stride7_vf8:904; AVX2:       # %bb.0:905; AVX2-NEXT:    movq {{[0-9]+}}(%rsp), %rax906; AVX2-NEXT:    movq {{[0-9]+}}(%rsp), %r10907; AVX2-NEXT:    vmovq {{.*#+}} xmm0 = mem[0],zero908; AVX2-NEXT:    vmovq {{.*#+}} xmm1 = mem[0],zero909; AVX2-NEXT:    vmovq {{.*#+}} xmm2 = mem[0],zero910; AVX2-NEXT:    vmovq {{.*#+}} xmm3 = mem[0],zero911; AVX2-NEXT:    vpunpcklqdq {{.*#+}} xmm2 = xmm3[0],xmm2[0]912; AVX2-NEXT:    vmovq {{.*#+}} xmm3 = mem[0],zero913; AVX2-NEXT:    vmovq {{.*#+}} xmm4 = mem[0],zero914; AVX2-NEXT:    vpunpcklqdq {{.*#+}} xmm3 = xmm4[0],xmm3[0]915; AVX2-NEXT:    vinserti128 $1, %xmm3, %ymm2, %ymm4916; AVX2-NEXT:    vmovq {{.*#+}} xmm5 = mem[0],zero917; AVX2-NEXT:    vinserti128 $1, %xmm1, %ymm0, %ymm0918; AVX2-NEXT:    vpunpcklqdq {{.*#+}} ymm0 = ymm0[0],ymm5[0],ymm0[2],ymm5[2]919; AVX2-NEXT:    vpermq {{.*#+}} ymm1 = ymm0[0,2,1,3]920; AVX2-NEXT:    vinserti128 $1, %xmm2, %ymm3, %ymm2921; AVX2-NEXT:    vpshufb {{.*#+}} ymm3 = zero,zero,zero,zero,zero,ymm2[5,13],zero,zero,zero,zero,zero,ymm2[6,14],zero,zero,zero,ymm2[23,31],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero922; AVX2-NEXT:    vpshufb {{.*#+}} ymm5 = zero,zero,zero,ymm4[5,13],zero,zero,zero,zero,zero,ymm4[6,14],zero,zero,zero,zero,zero,zero,zero,ymm4[23,31],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero923; AVX2-NEXT:    vpor %ymm3, %ymm5, %ymm3924; AVX2-NEXT:    vpermq {{.*#+}} ymm0 = ymm0[1,3,0,2]925; AVX2-NEXT:    vpshufb {{.*#+}} ymm5 = zero,zero,ymm0[4],zero,zero,zero,zero,zero,zero,ymm0[5],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm0[23,31],zero,zero,zero,zero,zero,zero,zero,zero,zero926; AVX2-NEXT:    vpshufb {{.*#+}} ymm6 = ymm1[4,12],zero,zero,zero,zero,zero,ymm1[5,13],zero,zero,zero,zero,zero,ymm1[6,14,22],zero,zero,zero,zero,zero,zero,ymm1[23],zero,zero,zero,zero,zero,zero,zero,zero927; AVX2-NEXT:    vpor %ymm5, %ymm6, %ymm5928; AVX2-NEXT:    vpor %ymm3, %ymm5, %ymm3929; AVX2-NEXT:    vpshufb {{.*#+}} ymm2 = zero,zero,ymm2[0,8],zero,zero,zero,zero,zero,ymm2[1,9],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm2[19,27],zero,zero,zero,zero,zero,ymm2[20,28],zero,zero930; AVX2-NEXT:    vpshufb {{.*#+}} ymm4 = ymm4[0,8],zero,zero,zero,zero,zero,ymm4[1,9],zero,zero,zero,zero,zero,ymm4[2,10,18,26],zero,zero,zero,zero,zero,ymm4[19,27],zero,zero,zero,zero,zero,ymm4[20,28]931; AVX2-NEXT:    vpor %ymm2, %ymm4, %ymm2932; AVX2-NEXT:    vpshufb {{.*#+}} ymm0 = zero,zero,zero,zero,zero,zero,ymm0[0],zero,zero,zero,zero,zero,zero,ymm0[1],zero,zero,zero,zero,ymm0[18,26],zero,zero,zero,zero,zero,ymm0[19,27],zero,zero,zero,zero,zero933; AVX2-NEXT:    vpshufb {{.*#+}} ymm1 = zero,zero,zero,zero,ymm1[0,8],zero,zero,zero,zero,zero,ymm1[1,9],zero,zero,zero,zero,zero,zero,zero,ymm1[18],zero,zero,zero,zero,zero,zero,ymm1[19],zero,zero,zero,zero934; AVX2-NEXT:    vpor %ymm0, %ymm1, %ymm0935; AVX2-NEXT:    vpor %ymm0, %ymm2, %ymm0936; AVX2-NEXT:    vmovdqa %ymm0, (%rax)937; AVX2-NEXT:    vextracti128 $1, %ymm3, %xmm0938; AVX2-NEXT:    vmovq %xmm0, 48(%rax)939; AVX2-NEXT:    vmovdqa %xmm3, 32(%rax)940; AVX2-NEXT:    vzeroupper941; AVX2-NEXT:    retq942;943; AVX2-FP-LABEL: store_i8_stride7_vf8:944; AVX2-FP:       # %bb.0:945; AVX2-FP-NEXT:    movq {{[0-9]+}}(%rsp), %rax946; AVX2-FP-NEXT:    movq {{[0-9]+}}(%rsp), %r10947; AVX2-FP-NEXT:    vmovq {{.*#+}} xmm0 = mem[0],zero948; AVX2-FP-NEXT:    vmovq {{.*#+}} xmm1 = mem[0],zero949; AVX2-FP-NEXT:    vmovq {{.*#+}} xmm2 = mem[0],zero950; AVX2-FP-NEXT:    vmovq {{.*#+}} xmm3 = mem[0],zero951; AVX2-FP-NEXT:    vpunpcklqdq {{.*#+}} xmm2 = xmm3[0],xmm2[0]952; AVX2-FP-NEXT:    vmovq {{.*#+}} xmm3 = mem[0],zero953; AVX2-FP-NEXT:    vmovq {{.*#+}} xmm4 = mem[0],zero954; AVX2-FP-NEXT:    vpunpcklqdq {{.*#+}} xmm3 = xmm4[0],xmm3[0]955; AVX2-FP-NEXT:    vinserti128 $1, %xmm3, %ymm2, %ymm4956; AVX2-FP-NEXT:    vmovq {{.*#+}} xmm5 = mem[0],zero957; AVX2-FP-NEXT:    vinserti128 $1, %xmm1, %ymm0, %ymm0958; AVX2-FP-NEXT:    vpunpcklqdq {{.*#+}} ymm0 = ymm0[0],ymm5[0],ymm0[2],ymm5[2]959; AVX2-FP-NEXT:    vpermq {{.*#+}} ymm1 = ymm0[0,2,1,3]960; AVX2-FP-NEXT:    vinserti128 $1, %xmm2, %ymm3, %ymm2961; AVX2-FP-NEXT:    vpshufb {{.*#+}} ymm3 = zero,zero,zero,zero,zero,ymm2[5,13],zero,zero,zero,zero,zero,ymm2[6,14],zero,zero,zero,ymm2[23,31],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero962; AVX2-FP-NEXT:    vpshufb {{.*#+}} ymm5 = zero,zero,zero,ymm4[5,13],zero,zero,zero,zero,zero,ymm4[6,14],zero,zero,zero,zero,zero,zero,zero,ymm4[23,31],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero963; AVX2-FP-NEXT:    vpor %ymm3, %ymm5, %ymm3964; AVX2-FP-NEXT:    vpermq {{.*#+}} ymm0 = ymm0[1,3,0,2]965; AVX2-FP-NEXT:    vpshufb {{.*#+}} ymm5 = zero,zero,ymm0[4],zero,zero,zero,zero,zero,zero,ymm0[5],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm0[23,31],zero,zero,zero,zero,zero,zero,zero,zero,zero966; AVX2-FP-NEXT:    vpshufb {{.*#+}} ymm6 = ymm1[4,12],zero,zero,zero,zero,zero,ymm1[5,13],zero,zero,zero,zero,zero,ymm1[6,14,22],zero,zero,zero,zero,zero,zero,ymm1[23],zero,zero,zero,zero,zero,zero,zero,zero967; AVX2-FP-NEXT:    vpor %ymm5, %ymm6, %ymm5968; AVX2-FP-NEXT:    vpor %ymm3, %ymm5, %ymm3969; AVX2-FP-NEXT:    vpshufb {{.*#+}} ymm2 = zero,zero,ymm2[0,8],zero,zero,zero,zero,zero,ymm2[1,9],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm2[19,27],zero,zero,zero,zero,zero,ymm2[20,28],zero,zero970; AVX2-FP-NEXT:    vpshufb {{.*#+}} ymm4 = ymm4[0,8],zero,zero,zero,zero,zero,ymm4[1,9],zero,zero,zero,zero,zero,ymm4[2,10,18,26],zero,zero,zero,zero,zero,ymm4[19,27],zero,zero,zero,zero,zero,ymm4[20,28]971; AVX2-FP-NEXT:    vpor %ymm2, %ymm4, %ymm2972; AVX2-FP-NEXT:    vpshufb {{.*#+}} ymm0 = zero,zero,zero,zero,zero,zero,ymm0[0],zero,zero,zero,zero,zero,zero,ymm0[1],zero,zero,zero,zero,ymm0[18,26],zero,zero,zero,zero,zero,ymm0[19,27],zero,zero,zero,zero,zero973; AVX2-FP-NEXT:    vpshufb {{.*#+}} ymm1 = zero,zero,zero,zero,ymm1[0,8],zero,zero,zero,zero,zero,ymm1[1,9],zero,zero,zero,zero,zero,zero,zero,ymm1[18],zero,zero,zero,zero,zero,zero,ymm1[19],zero,zero,zero,zero974; AVX2-FP-NEXT:    vpor %ymm0, %ymm1, %ymm0975; AVX2-FP-NEXT:    vpor %ymm0, %ymm2, %ymm0976; AVX2-FP-NEXT:    vmovdqa %ymm0, (%rax)977; AVX2-FP-NEXT:    vextracti128 $1, %ymm3, %xmm0978; AVX2-FP-NEXT:    vmovq %xmm0, 48(%rax)979; AVX2-FP-NEXT:    vmovdqa %xmm3, 32(%rax)980; AVX2-FP-NEXT:    vzeroupper981; AVX2-FP-NEXT:    retq982;983; AVX2-FCP-LABEL: store_i8_stride7_vf8:984; AVX2-FCP:       # %bb.0:985; AVX2-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax986; AVX2-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r10987; AVX2-FCP-NEXT:    vmovq {{.*#+}} xmm0 = mem[0],zero988; AVX2-FCP-NEXT:    vmovq {{.*#+}} xmm1 = mem[0],zero989; AVX2-FCP-NEXT:    vmovq {{.*#+}} xmm2 = mem[0],zero990; AVX2-FCP-NEXT:    vmovq {{.*#+}} xmm3 = mem[0],zero991; AVX2-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm2 = xmm3[0],xmm2[0]992; AVX2-FCP-NEXT:    vmovq {{.*#+}} xmm3 = mem[0],zero993; AVX2-FCP-NEXT:    vmovq {{.*#+}} xmm4 = mem[0],zero994; AVX2-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm3 = xmm4[0],xmm3[0]995; AVX2-FCP-NEXT:    vinserti128 $1, %xmm3, %ymm2, %ymm4996; AVX2-FCP-NEXT:    vmovq {{.*#+}} xmm5 = mem[0],zero997; AVX2-FCP-NEXT:    vinserti128 $1, %xmm1, %ymm0, %ymm0998; AVX2-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm0 = ymm0[0],ymm5[0],ymm0[2],ymm5[2]999; AVX2-FCP-NEXT:    vpmovsxbd {{.*#+}} ymm1 = [1,5,3,0,3,1,5,0]1000; AVX2-FCP-NEXT:    vpermd %ymm0, %ymm1, %ymm11001; AVX2-FCP-NEXT:    vpshufb {{.*#+}} ymm1 = ymm1[0,4,8],zero,zero,zero,zero,ymm1[1,5,9],zero,zero,zero,zero,ymm1[2,6,18],zero,zero,zero,zero,ymm1[23,27,19],zero,zero,zero,zero,zero,zero,zero,zero1002; AVX2-FCP-NEXT:    vbroadcasti128 {{.*#+}} ymm5 = [1,3,5,7,1,3,5,7]1003; AVX2-FCP-NEXT:    # ymm5 = mem[0,1,0,1]1004; AVX2-FCP-NEXT:    vpermd %ymm4, %ymm5, %ymm51005; AVX2-FCP-NEXT:    vpshufb {{.*#+}} ymm5 = zero,zero,zero,ymm5[1,5,9,13],zero,zero,zero,ymm5[2,6,10,14],zero,zero,zero,ymm5[19,23,27,31],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero1006; AVX2-FCP-NEXT:    vpor %ymm1, %ymm5, %ymm11007; AVX2-FCP-NEXT:    vinserti128 $1, %xmm2, %ymm3, %ymm21008; AVX2-FCP-NEXT:    vpshufb {{.*#+}} ymm2 = zero,zero,ymm2[0,8],zero,zero,zero,zero,zero,ymm2[1,9],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm2[19,27],zero,zero,zero,zero,zero,ymm2[20,28],zero,zero1009; AVX2-FCP-NEXT:    vpshufb {{.*#+}} ymm3 = ymm4[0,8],zero,zero,zero,zero,zero,ymm4[1,9],zero,zero,zero,zero,zero,ymm4[2,10,18,26],zero,zero,zero,zero,zero,ymm4[19,27],zero,zero,zero,zero,zero,ymm4[20,28]1010; AVX2-FCP-NEXT:    vpor %ymm2, %ymm3, %ymm21011; AVX2-FCP-NEXT:    vbroadcasti128 {{.*#+}} ymm3 = [0,4,2,6,0,4,2,6]1012; AVX2-FCP-NEXT:    # ymm3 = mem[0,1,0,1]1013; AVX2-FCP-NEXT:    vpermd %ymm0, %ymm3, %ymm01014; AVX2-FCP-NEXT:    vpshufb {{.*#+}} ymm0 = ymm0[u,u,u,u,0,4,8,u,u,u,u,1,5,9,u,u,u,u,18,22,26,u,u,u,u,19,23,27,u,u,u,u]1015; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} ymm3 = [255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255]1016; AVX2-FCP-NEXT:    vpblendvb %ymm3, %ymm2, %ymm0, %ymm01017; AVX2-FCP-NEXT:    vmovdqa %ymm0, (%rax)1018; AVX2-FCP-NEXT:    vextracti128 $1, %ymm1, %xmm01019; AVX2-FCP-NEXT:    vmovq %xmm0, 48(%rax)1020; AVX2-FCP-NEXT:    vmovdqa %xmm1, 32(%rax)1021; AVX2-FCP-NEXT:    vzeroupper1022; AVX2-FCP-NEXT:    retq1023;1024; AVX512-LABEL: store_i8_stride7_vf8:1025; AVX512:       # %bb.0:1026; AVX512-NEXT:    movq {{[0-9]+}}(%rsp), %rax1027; AVX512-NEXT:    movq {{[0-9]+}}(%rsp), %r101028; AVX512-NEXT:    vmovq {{.*#+}} xmm0 = mem[0],zero1029; AVX512-NEXT:    vmovq {{.*#+}} xmm1 = mem[0],zero1030; AVX512-NEXT:    vmovq {{.*#+}} xmm2 = mem[0],zero1031; AVX512-NEXT:    vmovq {{.*#+}} xmm3 = mem[0],zero1032; AVX512-NEXT:    vpunpcklqdq {{.*#+}} xmm2 = xmm3[0],xmm2[0]1033; AVX512-NEXT:    vmovq {{.*#+}} xmm3 = mem[0],zero1034; AVX512-NEXT:    vmovq {{.*#+}} xmm4 = mem[0],zero1035; AVX512-NEXT:    vpunpcklqdq {{.*#+}} xmm3 = xmm4[0],xmm3[0]1036; AVX512-NEXT:    vinserti128 $1, %xmm3, %ymm2, %ymm41037; AVX512-NEXT:    vmovq {{.*#+}} xmm5 = mem[0],zero1038; AVX512-NEXT:    vinserti128 $1, %xmm1, %ymm0, %ymm01039; AVX512-NEXT:    vpunpcklqdq {{.*#+}} ymm0 = ymm0[0],ymm5[0],ymm0[2],ymm5[2]1040; AVX512-NEXT:    vpermq {{.*#+}} ymm1 = ymm0[0,2,1,3]1041; AVX512-NEXT:    vinserti128 $1, %xmm2, %ymm3, %ymm21042; AVX512-NEXT:    vpshufb {{.*#+}} ymm3 = zero,zero,ymm2[0,8,u,u,u],zero,zero,ymm2[1,9,u,u,u],zero,zero,zero,zero,ymm2[u,u,u,19,27],zero,zero,ymm2[u,u,u,20,28],zero,zero1043; AVX512-NEXT:    vpshufb {{.*#+}} ymm2 = ymm2[u,u,u],zero,zero,ymm2[5,13,u,u,u],zero,zero,ymm2[6,14,u,u,u,23,31],zero,zero,ymm2[u,u,u],zero,zero,zero,zero,zero,zero,zero,zero1044; AVX512-NEXT:    vinserti64x4 $1, %ymm2, %zmm3, %zmm21045; AVX512-NEXT:    vpshufb {{.*#+}} ymm3 = ymm4[0,8],zero,zero,ymm4[u,u,u,1,9],zero,zero,ymm4[u,u,u,2,10,18,26,u,u,u],zero,zero,ymm4[19,27,u,u,u],zero,zero,ymm4[20,28]1046; AVX512-NEXT:    vpshufb {{.*#+}} ymm4 = ymm4[u,u,u,5,13],zero,zero,ymm4[u,u,u,6,14],zero,zero,ymm4[u,u,u],zero,zero,ymm4[23,31,u,u,u,u,u,u,u,u,u,u,u]1047; AVX512-NEXT:    vinserti64x4 $1, %ymm4, %zmm3, %zmm31048; AVX512-NEXT:    vporq %zmm2, %zmm3, %zmm21049; AVX512-NEXT:    vpermq {{.*#+}} ymm0 = ymm0[1,3,0,2]1050; AVX512-NEXT:    vpshufb {{.*#+}} ymm3 = ymm0[u,u,u,u],zero,zero,ymm0[0,u,u,u,u],zero,zero,ymm0[1,u,u,u,u,18,26],zero,ymm0[u,u,u,u,19,27],zero,ymm0[u,u,u,u]1051; AVX512-NEXT:    vpshufb {{.*#+}} ymm0 = zero,zero,ymm0[4,u,u,u,u],zero,zero,ymm0[5,u,u,u,u],zero,zero,zero,ymm0[u,u,u,u,23,31],zero,ymm0[u,u,u,u,u,u,u,u]1052; AVX512-NEXT:    vinserti64x4 $1, %ymm0, %zmm3, %zmm01053; AVX512-NEXT:    vpshufb {{.*#+}} ymm3 = ymm1[u,u,u,u,0,8],zero,ymm1[u,u,u,u,1,9],zero,ymm1[u,u,u,u],zero,zero,ymm1[18,u,u,u,u],zero,zero,ymm1[19,u,u,u,u]1054; AVX512-NEXT:    vpshufb {{.*#+}} ymm1 = ymm1[4,12],zero,ymm1[u,u,u,u,5,13],zero,ymm1[u,u,u,u,6,14,22,u,u,u,u],zero,zero,ymm1[23,u,u,u,u,u,u,u,u]1055; AVX512-NEXT:    vinserti64x4 $1, %ymm1, %zmm3, %zmm11056; AVX512-NEXT:    vporq %zmm0, %zmm1, %zmm01057; AVX512-NEXT:    vpternlogq {{.*#+}} zmm0 = zmm0 ^ (mem & (zmm0 ^ zmm2))1058; AVX512-NEXT:    vextracti32x4 $2, %zmm0, 32(%rax)1059; AVX512-NEXT:    vextracti32x4 $3, %zmm0, %xmm11060; AVX512-NEXT:    vmovq %xmm1, 48(%rax)1061; AVX512-NEXT:    vmovdqa %ymm0, (%rax)1062; AVX512-NEXT:    vzeroupper1063; AVX512-NEXT:    retq1064;1065; AVX512-FCP-LABEL: store_i8_stride7_vf8:1066; AVX512-FCP:       # %bb.0:1067; AVX512-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax1068; AVX512-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r101069; AVX512-FCP-NEXT:    vmovq {{.*#+}} xmm0 = mem[0],zero1070; AVX512-FCP-NEXT:    vmovq {{.*#+}} xmm1 = mem[0],zero1071; AVX512-FCP-NEXT:    vmovq {{.*#+}} xmm2 = mem[0],zero1072; AVX512-FCP-NEXT:    vmovq {{.*#+}} xmm3 = mem[0],zero1073; AVX512-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm2 = xmm3[0],xmm2[0]1074; AVX512-FCP-NEXT:    vmovq {{.*#+}} xmm3 = mem[0],zero1075; AVX512-FCP-NEXT:    vmovq {{.*#+}} xmm4 = mem[0],zero1076; AVX512-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm3 = xmm4[0],xmm3[0]1077; AVX512-FCP-NEXT:    vinserti128 $1, %xmm3, %ymm2, %ymm41078; AVX512-FCP-NEXT:    vmovq {{.*#+}} xmm5 = mem[0],zero1079; AVX512-FCP-NEXT:    vinserti128 $1, %xmm1, %ymm0, %ymm01080; AVX512-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm0 = ymm0[0],ymm5[0],ymm0[2],ymm5[2]1081; AVX512-FCP-NEXT:    vbroadcasti128 {{.*#+}} ymm1 = [0,4,2,6,0,4,2,6]1082; AVX512-FCP-NEXT:    # ymm1 = mem[0,1,0,1]1083; AVX512-FCP-NEXT:    vpermd %ymm0, %ymm1, %ymm11084; AVX512-FCP-NEXT:    vpshufb {{.*#+}} ymm1 = zero,zero,zero,zero,ymm1[0,4,8],zero,zero,zero,zero,ymm1[1,5,9],zero,zero,zero,zero,ymm1[18,22,26],zero,zero,zero,zero,ymm1[19,23,27],zero,zero,zero,zero1085; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} ymm5 = [1,5,3,0,3,1,5,0]1086; AVX512-FCP-NEXT:    vpermd %ymm0, %ymm5, %ymm01087; AVX512-FCP-NEXT:    vpshufb {{.*#+}} ymm0 = ymm0[0,4,8],zero,zero,zero,zero,ymm0[1,5,9],zero,zero,zero,zero,ymm0[2,6,18],zero,zero,zero,zero,ymm0[23,27,19],zero,zero,zero,zero,zero,zero,zero,zero1088; AVX512-FCP-NEXT:    vinserti64x4 $1, %ymm0, %zmm1, %zmm01089; AVX512-FCP-NEXT:    vpshufb {{.*#+}} ymm1 = ymm4[0,8],zero,zero,ymm4[u,u,u,1,9],zero,zero,ymm4[u,u,u,2,10,18,26,u,u,u],zero,zero,ymm4[19,27,u,u,u],zero,zero,ymm4[20,28]1090; AVX512-FCP-NEXT:    vpermq {{.*#+}} ymm4 = ymm4[2,3,0,1]1091; AVX512-FCP-NEXT:    vpshufb {{.*#+}} ymm4 = zero,zero,ymm4[0,8,u,u,u],zero,zero,ymm4[1,9,u,u,u],zero,zero,zero,zero,ymm4[u,u,u,19,27],zero,zero,ymm4[u,u,u,20,28],zero,zero1092; AVX512-FCP-NEXT:    vpternlogq {{.*#+}} ymm4 = mem & (ymm4 | ymm1)1093; AVX512-FCP-NEXT:    vbroadcasti128 {{.*#+}} ymm1 = [1,3,9,11,1,3,9,11]1094; AVX512-FCP-NEXT:    # ymm1 = mem[0,1,0,1]1095; AVX512-FCP-NEXT:    vpermi2d %ymm3, %ymm2, %ymm11096; AVX512-FCP-NEXT:    vpshufb {{.*#+}} ymm1 = zero,zero,zero,ymm1[1,5,9,13],zero,zero,zero,ymm1[2,6,10,14],zero,zero,zero,ymm1[19,23,27,31],zero,zero,zero,ymm1[u,u,u,u,u,u,u,u]1097; AVX512-FCP-NEXT:    vinserti64x4 $1, %ymm1, %zmm4, %zmm11098; AVX512-FCP-NEXT:    vporq %zmm0, %zmm1, %zmm01099; AVX512-FCP-NEXT:    vextracti32x4 $2, %zmm0, 32(%rax)1100; AVX512-FCP-NEXT:    vextracti32x4 $3, %zmm0, %xmm11101; AVX512-FCP-NEXT:    vmovq %xmm1, 48(%rax)1102; AVX512-FCP-NEXT:    vmovdqa %ymm0, (%rax)1103; AVX512-FCP-NEXT:    vzeroupper1104; AVX512-FCP-NEXT:    retq1105;1106; AVX512DQ-LABEL: store_i8_stride7_vf8:1107; AVX512DQ:       # %bb.0:1108; AVX512DQ-NEXT:    movq {{[0-9]+}}(%rsp), %rax1109; AVX512DQ-NEXT:    movq {{[0-9]+}}(%rsp), %r101110; AVX512DQ-NEXT:    vmovq {{.*#+}} xmm0 = mem[0],zero1111; AVX512DQ-NEXT:    vmovq {{.*#+}} xmm1 = mem[0],zero1112; AVX512DQ-NEXT:    vmovq {{.*#+}} xmm2 = mem[0],zero1113; AVX512DQ-NEXT:    vmovq {{.*#+}} xmm3 = mem[0],zero1114; AVX512DQ-NEXT:    vpunpcklqdq {{.*#+}} xmm2 = xmm3[0],xmm2[0]1115; AVX512DQ-NEXT:    vmovq {{.*#+}} xmm3 = mem[0],zero1116; AVX512DQ-NEXT:    vmovq {{.*#+}} xmm4 = mem[0],zero1117; AVX512DQ-NEXT:    vpunpcklqdq {{.*#+}} xmm3 = xmm4[0],xmm3[0]1118; AVX512DQ-NEXT:    vinserti128 $1, %xmm3, %ymm2, %ymm41119; AVX512DQ-NEXT:    vmovq {{.*#+}} xmm5 = mem[0],zero1120; AVX512DQ-NEXT:    vinserti128 $1, %xmm1, %ymm0, %ymm01121; AVX512DQ-NEXT:    vpunpcklqdq {{.*#+}} ymm0 = ymm0[0],ymm5[0],ymm0[2],ymm5[2]1122; AVX512DQ-NEXT:    vpermq {{.*#+}} ymm1 = ymm0[0,2,1,3]1123; AVX512DQ-NEXT:    vinserti128 $1, %xmm2, %ymm3, %ymm21124; AVX512DQ-NEXT:    vpshufb {{.*#+}} ymm3 = zero,zero,ymm2[0,8,u,u,u],zero,zero,ymm2[1,9,u,u,u],zero,zero,zero,zero,ymm2[u,u,u,19,27],zero,zero,ymm2[u,u,u,20,28],zero,zero1125; AVX512DQ-NEXT:    vpshufb {{.*#+}} ymm2 = ymm2[u,u,u],zero,zero,ymm2[5,13,u,u,u],zero,zero,ymm2[6,14,u,u,u,23,31],zero,zero,ymm2[u,u,u],zero,zero,zero,zero,zero,zero,zero,zero1126; AVX512DQ-NEXT:    vinserti64x4 $1, %ymm2, %zmm3, %zmm21127; AVX512DQ-NEXT:    vpshufb {{.*#+}} ymm3 = ymm4[0,8],zero,zero,ymm4[u,u,u,1,9],zero,zero,ymm4[u,u,u,2,10,18,26,u,u,u],zero,zero,ymm4[19,27,u,u,u],zero,zero,ymm4[20,28]1128; AVX512DQ-NEXT:    vpshufb {{.*#+}} ymm4 = ymm4[u,u,u,5,13],zero,zero,ymm4[u,u,u,6,14],zero,zero,ymm4[u,u,u],zero,zero,ymm4[23,31,u,u,u,u,u,u,u,u,u,u,u]1129; AVX512DQ-NEXT:    vinserti64x4 $1, %ymm4, %zmm3, %zmm31130; AVX512DQ-NEXT:    vporq %zmm2, %zmm3, %zmm21131; AVX512DQ-NEXT:    vpermq {{.*#+}} ymm0 = ymm0[1,3,0,2]1132; AVX512DQ-NEXT:    vpshufb {{.*#+}} ymm3 = ymm0[u,u,u,u],zero,zero,ymm0[0,u,u,u,u],zero,zero,ymm0[1,u,u,u,u,18,26],zero,ymm0[u,u,u,u,19,27],zero,ymm0[u,u,u,u]1133; AVX512DQ-NEXT:    vpshufb {{.*#+}} ymm0 = zero,zero,ymm0[4,u,u,u,u],zero,zero,ymm0[5,u,u,u,u],zero,zero,zero,ymm0[u,u,u,u,23,31],zero,ymm0[u,u,u,u,u,u,u,u]1134; AVX512DQ-NEXT:    vinserti64x4 $1, %ymm0, %zmm3, %zmm01135; AVX512DQ-NEXT:    vpshufb {{.*#+}} ymm3 = ymm1[u,u,u,u,0,8],zero,ymm1[u,u,u,u,1,9],zero,ymm1[u,u,u,u],zero,zero,ymm1[18,u,u,u,u],zero,zero,ymm1[19,u,u,u,u]1136; AVX512DQ-NEXT:    vpshufb {{.*#+}} ymm1 = ymm1[4,12],zero,ymm1[u,u,u,u,5,13],zero,ymm1[u,u,u,u,6,14,22,u,u,u,u],zero,zero,ymm1[23,u,u,u,u,u,u,u,u]1137; AVX512DQ-NEXT:    vinserti64x4 $1, %ymm1, %zmm3, %zmm11138; AVX512DQ-NEXT:    vporq %zmm0, %zmm1, %zmm01139; AVX512DQ-NEXT:    vpternlogq {{.*#+}} zmm0 = zmm0 ^ (mem & (zmm0 ^ zmm2))1140; AVX512DQ-NEXT:    vextracti32x4 $2, %zmm0, 32(%rax)1141; AVX512DQ-NEXT:    vextracti32x4 $3, %zmm0, %xmm11142; AVX512DQ-NEXT:    vmovq %xmm1, 48(%rax)1143; AVX512DQ-NEXT:    vmovdqa %ymm0, (%rax)1144; AVX512DQ-NEXT:    vzeroupper1145; AVX512DQ-NEXT:    retq1146;1147; AVX512DQ-FCP-LABEL: store_i8_stride7_vf8:1148; AVX512DQ-FCP:       # %bb.0:1149; AVX512DQ-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax1150; AVX512DQ-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r101151; AVX512DQ-FCP-NEXT:    vmovq {{.*#+}} xmm0 = mem[0],zero1152; AVX512DQ-FCP-NEXT:    vmovq {{.*#+}} xmm1 = mem[0],zero1153; AVX512DQ-FCP-NEXT:    vmovq {{.*#+}} xmm2 = mem[0],zero1154; AVX512DQ-FCP-NEXT:    vmovq {{.*#+}} xmm3 = mem[0],zero1155; AVX512DQ-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm2 = xmm3[0],xmm2[0]1156; AVX512DQ-FCP-NEXT:    vmovq {{.*#+}} xmm3 = mem[0],zero1157; AVX512DQ-FCP-NEXT:    vmovq {{.*#+}} xmm4 = mem[0],zero1158; AVX512DQ-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm3 = xmm4[0],xmm3[0]1159; AVX512DQ-FCP-NEXT:    vinserti128 $1, %xmm3, %ymm2, %ymm41160; AVX512DQ-FCP-NEXT:    vmovq {{.*#+}} xmm5 = mem[0],zero1161; AVX512DQ-FCP-NEXT:    vinserti128 $1, %xmm1, %ymm0, %ymm01162; AVX512DQ-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm0 = ymm0[0],ymm5[0],ymm0[2],ymm5[2]1163; AVX512DQ-FCP-NEXT:    vbroadcasti128 {{.*#+}} ymm1 = [0,4,2,6,0,4,2,6]1164; AVX512DQ-FCP-NEXT:    # ymm1 = mem[0,1,0,1]1165; AVX512DQ-FCP-NEXT:    vpermd %ymm0, %ymm1, %ymm11166; AVX512DQ-FCP-NEXT:    vpshufb {{.*#+}} ymm1 = zero,zero,zero,zero,ymm1[0,4,8],zero,zero,zero,zero,ymm1[1,5,9],zero,zero,zero,zero,ymm1[18,22,26],zero,zero,zero,zero,ymm1[19,23,27],zero,zero,zero,zero1167; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} ymm5 = [1,5,3,0,3,1,5,0]1168; AVX512DQ-FCP-NEXT:    vpermd %ymm0, %ymm5, %ymm01169; AVX512DQ-FCP-NEXT:    vpshufb {{.*#+}} ymm0 = ymm0[0,4,8],zero,zero,zero,zero,ymm0[1,5,9],zero,zero,zero,zero,ymm0[2,6,18],zero,zero,zero,zero,ymm0[23,27,19],zero,zero,zero,zero,zero,zero,zero,zero1170; AVX512DQ-FCP-NEXT:    vinserti64x4 $1, %ymm0, %zmm1, %zmm01171; AVX512DQ-FCP-NEXT:    vpshufb {{.*#+}} ymm1 = ymm4[0,8],zero,zero,ymm4[u,u,u,1,9],zero,zero,ymm4[u,u,u,2,10,18,26,u,u,u],zero,zero,ymm4[19,27,u,u,u],zero,zero,ymm4[20,28]1172; AVX512DQ-FCP-NEXT:    vpermq {{.*#+}} ymm4 = ymm4[2,3,0,1]1173; AVX512DQ-FCP-NEXT:    vpshufb {{.*#+}} ymm4 = zero,zero,ymm4[0,8,u,u,u],zero,zero,ymm4[1,9,u,u,u],zero,zero,zero,zero,ymm4[u,u,u,19,27],zero,zero,ymm4[u,u,u,20,28],zero,zero1174; AVX512DQ-FCP-NEXT:    vpternlogq {{.*#+}} ymm4 = mem & (ymm4 | ymm1)1175; AVX512DQ-FCP-NEXT:    vbroadcasti128 {{.*#+}} ymm1 = [1,3,9,11,1,3,9,11]1176; AVX512DQ-FCP-NEXT:    # ymm1 = mem[0,1,0,1]1177; AVX512DQ-FCP-NEXT:    vpermi2d %ymm3, %ymm2, %ymm11178; AVX512DQ-FCP-NEXT:    vpshufb {{.*#+}} ymm1 = zero,zero,zero,ymm1[1,5,9,13],zero,zero,zero,ymm1[2,6,10,14],zero,zero,zero,ymm1[19,23,27,31],zero,zero,zero,ymm1[u,u,u,u,u,u,u,u]1179; AVX512DQ-FCP-NEXT:    vinserti64x4 $1, %ymm1, %zmm4, %zmm11180; AVX512DQ-FCP-NEXT:    vporq %zmm0, %zmm1, %zmm01181; AVX512DQ-FCP-NEXT:    vextracti32x4 $2, %zmm0, 32(%rax)1182; AVX512DQ-FCP-NEXT:    vextracti32x4 $3, %zmm0, %xmm11183; AVX512DQ-FCP-NEXT:    vmovq %xmm1, 48(%rax)1184; AVX512DQ-FCP-NEXT:    vmovdqa %ymm0, (%rax)1185; AVX512DQ-FCP-NEXT:    vzeroupper1186; AVX512DQ-FCP-NEXT:    retq1187;1188; AVX512BW-LABEL: store_i8_stride7_vf8:1189; AVX512BW:       # %bb.0:1190; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax1191; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %r101192; AVX512BW-NEXT:    vmovq {{.*#+}} xmm0 = mem[0],zero1193; AVX512BW-NEXT:    vmovq {{.*#+}} xmm1 = mem[0],zero1194; AVX512BW-NEXT:    vmovq {{.*#+}} xmm2 = mem[0],zero1195; AVX512BW-NEXT:    vmovq {{.*#+}} xmm3 = mem[0],zero1196; AVX512BW-NEXT:    vpunpcklqdq {{.*#+}} xmm2 = xmm3[0],xmm2[0]1197; AVX512BW-NEXT:    vmovq {{.*#+}} xmm3 = mem[0],zero1198; AVX512BW-NEXT:    vmovq {{.*#+}} xmm4 = mem[0],zero1199; AVX512BW-NEXT:    vpunpcklqdq {{.*#+}} xmm3 = xmm4[0],xmm3[0]1200; AVX512BW-NEXT:    vinserti128 $1, %xmm3, %ymm2, %ymm21201; AVX512BW-NEXT:    vmovq {{.*#+}} xmm3 = mem[0],zero1202; AVX512BW-NEXT:    vinserti128 $1, %xmm1, %ymm0, %ymm01203; AVX512BW-NEXT:    vpunpcklqdq {{.*#+}} ymm0 = ymm0[0],ymm3[0],ymm0[2],ymm3[2]1204; AVX512BW-NEXT:    vinserti64x4 $1, %ymm2, %zmm2, %zmm11205; AVX512BW-NEXT:    vpshufb {{.*#+}} zmm1 = zmm1[0,8],zero,zero,zero,zero,zero,zmm1[1,9],zero,zero,zero,zero,zero,zmm1[2,10,18,26],zero,zero,zero,zero,zero,zmm1[19,27],zero,zero,zero,zero,zero,zmm1[20,28],zero,zero,zero,zmm1[37,45],zero,zero,zero,zero,zero,zmm1[38,46],zero,zero,zero,zero,zero,zero,zero,zmm1[55,63],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero1206; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm2 = zmm2[2,3,0,1,2,3,0,1]1207; AVX512BW-NEXT:    vpshufb {{.*#+}} zmm2 = zero,zero,zmm2[0,8],zero,zero,zero,zero,zero,zmm2[1,9],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zmm2[19,27],zero,zero,zero,zero,zero,zmm2[20,28],zero,zero,zero,zero,zero,zero,zero,zmm2[37,45],zero,zero,zero,zero,zero,zmm2[38,46],zero,zero,zero,zmm2[55,63],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero1208; AVX512BW-NEXT:    vporq %zmm1, %zmm2, %zmm11209; AVX512BW-NEXT:    vinserti64x4 $1, %ymm0, %zmm0, %zmm01210; AVX512BW-NEXT:    vpermq {{.*#+}} zmm2 = zmm0[0,2,1,3,4,6,5,7]1211; AVX512BW-NEXT:    vpshufb {{.*#+}} zmm2 = zero,zero,zero,zero,zmm2[0,8],zero,zero,zero,zero,zero,zmm2[1,9],zero,zero,zero,zero,zero,zero,zero,zmm2[18],zero,zero,zero,zero,zero,zero,zmm2[19],zero,zero,zero,zero,zmm2[36,44],zero,zero,zero,zero,zero,zmm2[37,45],zero,zero,zero,zero,zero,zmm2[38,46,54],zero,zero,zero,zero,zero,zero,zmm2[55],zero,zero,zero,zero,zero,zero,zero,zero1212; AVX512BW-NEXT:    vpermq {{.*#+}} zmm0 = zmm0[1,3,0,2,5,7,4,6]1213; AVX512BW-NEXT:    vpshufb {{.*#+}} zmm0 = zero,zero,zero,zero,zero,zero,zmm0[0],zero,zero,zero,zero,zero,zero,zmm0[1],zero,zero,zero,zero,zmm0[18,26],zero,zero,zero,zero,zero,zmm0[19,27],zero,zero,zero,zero,zero,zero,zero,zmm0[36],zero,zero,zero,zero,zero,zero,zmm0[37],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zmm0[55,63],zero,zero,zero,zero,zero,zero,zero,zero,zero1214; AVX512BW-NEXT:    vpternlogq {{.*#+}} zmm0 = zmm0 | zmm1 | zmm21215; AVX512BW-NEXT:    vextracti32x4 $2, %zmm0, 32(%rax)1216; AVX512BW-NEXT:    vextracti32x4 $3, %zmm0, %xmm11217; AVX512BW-NEXT:    vmovq %xmm1, 48(%rax)1218; AVX512BW-NEXT:    vmovdqa %ymm0, (%rax)1219; AVX512BW-NEXT:    vzeroupper1220; AVX512BW-NEXT:    retq1221;1222; AVX512BW-FCP-LABEL: store_i8_stride7_vf8:1223; AVX512BW-FCP:       # %bb.0:1224; AVX512BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax1225; AVX512BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r101226; AVX512BW-FCP-NEXT:    vmovq {{.*#+}} xmm0 = mem[0],zero1227; AVX512BW-FCP-NEXT:    vmovq {{.*#+}} xmm1 = mem[0],zero1228; AVX512BW-FCP-NEXT:    vmovq {{.*#+}} xmm2 = mem[0],zero1229; AVX512BW-FCP-NEXT:    vmovq {{.*#+}} xmm3 = mem[0],zero1230; AVX512BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm2 = xmm3[0],xmm2[0]1231; AVX512BW-FCP-NEXT:    vmovq {{.*#+}} xmm3 = mem[0],zero1232; AVX512BW-FCP-NEXT:    vmovq {{.*#+}} xmm4 = mem[0],zero1233; AVX512BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm3 = xmm4[0],xmm3[0]1234; AVX512BW-FCP-NEXT:    vinserti128 $1, %xmm3, %ymm2, %ymm41235; AVX512BW-FCP-NEXT:    vmovq {{.*#+}} xmm5 = mem[0],zero1236; AVX512BW-FCP-NEXT:    vinserti128 $1, %xmm1, %ymm0, %ymm01237; AVX512BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm0 = ymm0[0],ymm5[0],ymm0[2],ymm5[2]1238; AVX512BW-FCP-NEXT:    vpshufb {{.*#+}} ymm1 = ymm4[0,8],zero,zero,zero,zero,zero,ymm4[1,9],zero,zero,zero,zero,zero,ymm4[2,10,18,26],zero,zero,zero,zero,zero,ymm4[19,27],zero,zero,zero,zero,zero,ymm4[20,28]1239; AVX512BW-FCP-NEXT:    vpermq {{.*#+}} ymm4 = ymm4[2,3,0,1]1240; AVX512BW-FCP-NEXT:    vpshufb {{.*#+}} ymm4 = zero,zero,ymm4[0,8],zero,zero,zero,zero,zero,ymm4[1,9],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm4[19,27],zero,zero,zero,zero,zero,ymm4[20,28],zero,zero1241; AVX512BW-FCP-NEXT:    vpor %ymm1, %ymm4, %ymm11242; AVX512BW-FCP-NEXT:    vbroadcasti128 {{.*#+}} ymm4 = [0,4,2,6,0,4,2,6]1243; AVX512BW-FCP-NEXT:    # ymm4 = mem[0,1,0,1]1244; AVX512BW-FCP-NEXT:    vpermd %ymm0, %ymm4, %ymm41245; AVX512BW-FCP-NEXT:    movl $236730480, %ecx # imm = 0xE1C38701246; AVX512BW-FCP-NEXT:    kmovd %ecx, %k11247; AVX512BW-FCP-NEXT:    vpshufb {{.*#+}} ymm1 {%k1} = ymm4[u,u,u,u,0,4,8,u,u,u,u,1,5,9,u,u,u,u,18,22,26,u,u,u,u,19,23,27,u,u,u,u]1248; AVX512BW-FCP-NEXT:    vbroadcasti128 {{.*#+}} ymm4 = [1,3,9,11,1,3,9,11]1249; AVX512BW-FCP-NEXT:    # ymm4 = mem[0,1,0,1]1250; AVX512BW-FCP-NEXT:    vpermi2d %ymm3, %ymm2, %ymm41251; AVX512BW-FCP-NEXT:    vpshufb {{.*#+}} ymm2 = zero,zero,zero,ymm4[1,5,9,13],zero,zero,zero,ymm4[2,6,10,14],zero,zero,zero,ymm4[19,23,27,31],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero1252; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} ymm3 = [1,5,3,0,3,1,5,0]1253; AVX512BW-FCP-NEXT:    vpermd %ymm0, %ymm3, %ymm01254; AVX512BW-FCP-NEXT:    vpshufb {{.*#+}} ymm0 = ymm0[0,4,8],zero,zero,zero,zero,ymm0[1,5,9],zero,zero,zero,zero,ymm0[2,6,18],zero,zero,zero,zero,ymm0[23,27,19],zero,zero,zero,zero,zero,zero,zero,zero1255; AVX512BW-FCP-NEXT:    vpor %ymm2, %ymm0, %ymm01256; AVX512BW-FCP-NEXT:    vextracti128 $1, %ymm0, %xmm21257; AVX512BW-FCP-NEXT:    vmovq %xmm2, 48(%rax)1258; AVX512BW-FCP-NEXT:    vmovdqa %xmm0, 32(%rax)1259; AVX512BW-FCP-NEXT:    vmovdqa %ymm1, (%rax)1260; AVX512BW-FCP-NEXT:    vzeroupper1261; AVX512BW-FCP-NEXT:    retq1262;1263; AVX512DQ-BW-LABEL: store_i8_stride7_vf8:1264; AVX512DQ-BW:       # %bb.0:1265; AVX512DQ-BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax1266; AVX512DQ-BW-NEXT:    movq {{[0-9]+}}(%rsp), %r101267; AVX512DQ-BW-NEXT:    vmovq {{.*#+}} xmm0 = mem[0],zero1268; AVX512DQ-BW-NEXT:    vmovq {{.*#+}} xmm1 = mem[0],zero1269; AVX512DQ-BW-NEXT:    vmovq {{.*#+}} xmm2 = mem[0],zero1270; AVX512DQ-BW-NEXT:    vmovq {{.*#+}} xmm3 = mem[0],zero1271; AVX512DQ-BW-NEXT:    vpunpcklqdq {{.*#+}} xmm2 = xmm3[0],xmm2[0]1272; AVX512DQ-BW-NEXT:    vmovq {{.*#+}} xmm3 = mem[0],zero1273; AVX512DQ-BW-NEXT:    vmovq {{.*#+}} xmm4 = mem[0],zero1274; AVX512DQ-BW-NEXT:    vpunpcklqdq {{.*#+}} xmm3 = xmm4[0],xmm3[0]1275; AVX512DQ-BW-NEXT:    vinserti128 $1, %xmm3, %ymm2, %ymm21276; AVX512DQ-BW-NEXT:    vmovq {{.*#+}} xmm3 = mem[0],zero1277; AVX512DQ-BW-NEXT:    vinserti128 $1, %xmm1, %ymm0, %ymm01278; AVX512DQ-BW-NEXT:    vpunpcklqdq {{.*#+}} ymm0 = ymm0[0],ymm3[0],ymm0[2],ymm3[2]1279; AVX512DQ-BW-NEXT:    vinserti64x4 $1, %ymm2, %zmm2, %zmm11280; AVX512DQ-BW-NEXT:    vpshufb {{.*#+}} zmm1 = zmm1[0,8],zero,zero,zero,zero,zero,zmm1[1,9],zero,zero,zero,zero,zero,zmm1[2,10,18,26],zero,zero,zero,zero,zero,zmm1[19,27],zero,zero,zero,zero,zero,zmm1[20,28],zero,zero,zero,zmm1[37,45],zero,zero,zero,zero,zero,zmm1[38,46],zero,zero,zero,zero,zero,zero,zero,zmm1[55,63],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero1281; AVX512DQ-BW-NEXT:    vshufi64x2 {{.*#+}} zmm2 = zmm2[2,3,0,1,2,3,0,1]1282; AVX512DQ-BW-NEXT:    vpshufb {{.*#+}} zmm2 = zero,zero,zmm2[0,8],zero,zero,zero,zero,zero,zmm2[1,9],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zmm2[19,27],zero,zero,zero,zero,zero,zmm2[20,28],zero,zero,zero,zero,zero,zero,zero,zmm2[37,45],zero,zero,zero,zero,zero,zmm2[38,46],zero,zero,zero,zmm2[55,63],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero1283; AVX512DQ-BW-NEXT:    vporq %zmm1, %zmm2, %zmm11284; AVX512DQ-BW-NEXT:    vinserti64x4 $1, %ymm0, %zmm0, %zmm01285; AVX512DQ-BW-NEXT:    vpermq {{.*#+}} zmm2 = zmm0[0,2,1,3,4,6,5,7]1286; AVX512DQ-BW-NEXT:    vpshufb {{.*#+}} zmm2 = zero,zero,zero,zero,zmm2[0,8],zero,zero,zero,zero,zero,zmm2[1,9],zero,zero,zero,zero,zero,zero,zero,zmm2[18],zero,zero,zero,zero,zero,zero,zmm2[19],zero,zero,zero,zero,zmm2[36,44],zero,zero,zero,zero,zero,zmm2[37,45],zero,zero,zero,zero,zero,zmm2[38,46,54],zero,zero,zero,zero,zero,zero,zmm2[55],zero,zero,zero,zero,zero,zero,zero,zero1287; AVX512DQ-BW-NEXT:    vpermq {{.*#+}} zmm0 = zmm0[1,3,0,2,5,7,4,6]1288; AVX512DQ-BW-NEXT:    vpshufb {{.*#+}} zmm0 = zero,zero,zero,zero,zero,zero,zmm0[0],zero,zero,zero,zero,zero,zero,zmm0[1],zero,zero,zero,zero,zmm0[18,26],zero,zero,zero,zero,zero,zmm0[19,27],zero,zero,zero,zero,zero,zero,zero,zmm0[36],zero,zero,zero,zero,zero,zero,zmm0[37],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zmm0[55,63],zero,zero,zero,zero,zero,zero,zero,zero,zero1289; AVX512DQ-BW-NEXT:    vpternlogq {{.*#+}} zmm0 = zmm0 | zmm1 | zmm21290; AVX512DQ-BW-NEXT:    vextracti32x4 $2, %zmm0, 32(%rax)1291; AVX512DQ-BW-NEXT:    vextracti32x4 $3, %zmm0, %xmm11292; AVX512DQ-BW-NEXT:    vmovq %xmm1, 48(%rax)1293; AVX512DQ-BW-NEXT:    vmovdqa %ymm0, (%rax)1294; AVX512DQ-BW-NEXT:    vzeroupper1295; AVX512DQ-BW-NEXT:    retq1296;1297; AVX512DQ-BW-FCP-LABEL: store_i8_stride7_vf8:1298; AVX512DQ-BW-FCP:       # %bb.0:1299; AVX512DQ-BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax1300; AVX512DQ-BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r101301; AVX512DQ-BW-FCP-NEXT:    vmovq {{.*#+}} xmm0 = mem[0],zero1302; AVX512DQ-BW-FCP-NEXT:    vmovq {{.*#+}} xmm1 = mem[0],zero1303; AVX512DQ-BW-FCP-NEXT:    vmovq {{.*#+}} xmm2 = mem[0],zero1304; AVX512DQ-BW-FCP-NEXT:    vmovq {{.*#+}} xmm3 = mem[0],zero1305; AVX512DQ-BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm2 = xmm3[0],xmm2[0]1306; AVX512DQ-BW-FCP-NEXT:    vmovq {{.*#+}} xmm3 = mem[0],zero1307; AVX512DQ-BW-FCP-NEXT:    vmovq {{.*#+}} xmm4 = mem[0],zero1308; AVX512DQ-BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm3 = xmm4[0],xmm3[0]1309; AVX512DQ-BW-FCP-NEXT:    vinserti128 $1, %xmm3, %ymm2, %ymm41310; AVX512DQ-BW-FCP-NEXT:    vmovq {{.*#+}} xmm5 = mem[0],zero1311; AVX512DQ-BW-FCP-NEXT:    vinserti128 $1, %xmm1, %ymm0, %ymm01312; AVX512DQ-BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm0 = ymm0[0],ymm5[0],ymm0[2],ymm5[2]1313; AVX512DQ-BW-FCP-NEXT:    vpshufb {{.*#+}} ymm1 = ymm4[0,8],zero,zero,zero,zero,zero,ymm4[1,9],zero,zero,zero,zero,zero,ymm4[2,10,18,26],zero,zero,zero,zero,zero,ymm4[19,27],zero,zero,zero,zero,zero,ymm4[20,28]1314; AVX512DQ-BW-FCP-NEXT:    vpermq {{.*#+}} ymm4 = ymm4[2,3,0,1]1315; AVX512DQ-BW-FCP-NEXT:    vpshufb {{.*#+}} ymm4 = zero,zero,ymm4[0,8],zero,zero,zero,zero,zero,ymm4[1,9],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm4[19,27],zero,zero,zero,zero,zero,ymm4[20,28],zero,zero1316; AVX512DQ-BW-FCP-NEXT:    vpor %ymm1, %ymm4, %ymm11317; AVX512DQ-BW-FCP-NEXT:    vbroadcasti128 {{.*#+}} ymm4 = [0,4,2,6,0,4,2,6]1318; AVX512DQ-BW-FCP-NEXT:    # ymm4 = mem[0,1,0,1]1319; AVX512DQ-BW-FCP-NEXT:    vpermd %ymm0, %ymm4, %ymm41320; AVX512DQ-BW-FCP-NEXT:    movl $236730480, %ecx # imm = 0xE1C38701321; AVX512DQ-BW-FCP-NEXT:    kmovd %ecx, %k11322; AVX512DQ-BW-FCP-NEXT:    vpshufb {{.*#+}} ymm1 {%k1} = ymm4[u,u,u,u,0,4,8,u,u,u,u,1,5,9,u,u,u,u,18,22,26,u,u,u,u,19,23,27,u,u,u,u]1323; AVX512DQ-BW-FCP-NEXT:    vbroadcasti128 {{.*#+}} ymm4 = [1,3,9,11,1,3,9,11]1324; AVX512DQ-BW-FCP-NEXT:    # ymm4 = mem[0,1,0,1]1325; AVX512DQ-BW-FCP-NEXT:    vpermi2d %ymm3, %ymm2, %ymm41326; AVX512DQ-BW-FCP-NEXT:    vpshufb {{.*#+}} ymm2 = zero,zero,zero,ymm4[1,5,9,13],zero,zero,zero,ymm4[2,6,10,14],zero,zero,zero,ymm4[19,23,27,31],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero1327; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} ymm3 = [1,5,3,0,3,1,5,0]1328; AVX512DQ-BW-FCP-NEXT:    vpermd %ymm0, %ymm3, %ymm01329; AVX512DQ-BW-FCP-NEXT:    vpshufb {{.*#+}} ymm0 = ymm0[0,4,8],zero,zero,zero,zero,ymm0[1,5,9],zero,zero,zero,zero,ymm0[2,6,18],zero,zero,zero,zero,ymm0[23,27,19],zero,zero,zero,zero,zero,zero,zero,zero1330; AVX512DQ-BW-FCP-NEXT:    vpor %ymm2, %ymm0, %ymm01331; AVX512DQ-BW-FCP-NEXT:    vextracti128 $1, %ymm0, %xmm21332; AVX512DQ-BW-FCP-NEXT:    vmovq %xmm2, 48(%rax)1333; AVX512DQ-BW-FCP-NEXT:    vmovdqa %xmm0, 32(%rax)1334; AVX512DQ-BW-FCP-NEXT:    vmovdqa %ymm1, (%rax)1335; AVX512DQ-BW-FCP-NEXT:    vzeroupper1336; AVX512DQ-BW-FCP-NEXT:    retq1337  %in.vec0 = load <8 x i8>, ptr %in.vecptr0, align 641338  %in.vec1 = load <8 x i8>, ptr %in.vecptr1, align 641339  %in.vec2 = load <8 x i8>, ptr %in.vecptr2, align 641340  %in.vec3 = load <8 x i8>, ptr %in.vecptr3, align 641341  %in.vec4 = load <8 x i8>, ptr %in.vecptr4, align 641342  %in.vec5 = load <8 x i8>, ptr %in.vecptr5, align 641343  %in.vec6 = load <8 x i8>, ptr %in.vecptr6, align 641344  %1 = shufflevector <8 x i8> %in.vec0, <8 x i8> %in.vec1, <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>1345  %2 = shufflevector <8 x i8> %in.vec2, <8 x i8> %in.vec3, <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>1346  %3 = shufflevector <8 x i8> %in.vec4, <8 x i8> %in.vec5, <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>1347  %4 = shufflevector <16 x i8> %1, <16 x i8> %2, <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>1348  %5 = shufflevector <8 x i8> %in.vec6, <8 x i8> 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>1349  %6 = shufflevector <16 x i8> %3, <16 x i8> %5, <24 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>1350  %7 = shufflevector <24 x i8> %6, <24 x i8> 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>1351  %8 = shufflevector <32 x i8> %4, <32 x i8> %7, <56 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>1352  %interleaved.vec = shufflevector <56 x i8> %8, <56 x i8> poison, <56 x i32> <i32 0, i32 8, i32 16, i32 24, i32 32, i32 40, i32 48, i32 1, i32 9, i32 17, i32 25, i32 33, i32 41, i32 49, i32 2, i32 10, i32 18, i32 26, i32 34, i32 42, i32 50, i32 3, i32 11, i32 19, i32 27, i32 35, i32 43, i32 51, i32 4, i32 12, i32 20, i32 28, i32 36, i32 44, i32 52, i32 5, i32 13, i32 21, i32 29, i32 37, i32 45, i32 53, i32 6, i32 14, i32 22, i32 30, i32 38, i32 46, i32 54, i32 7, i32 15, i32 23, i32 31, i32 39, i32 47, i32 55>1353  store <56 x i8> %interleaved.vec, ptr %out.vec, align 641354  ret void1355}1356 1357define void @store_i8_stride7_vf16(ptr %in.vecptr0, ptr %in.vecptr1, ptr %in.vecptr2, ptr %in.vecptr3, ptr %in.vecptr4, ptr %in.vecptr5, ptr %in.vecptr6, ptr %out.vec) nounwind {1358; SSE-LABEL: store_i8_stride7_vf16:1359; SSE:       # %bb.0:1360; SSE-NEXT:    subq $56, %rsp1361; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %rax1362; SSE-NEXT:    movdqa (%rdi), %xmm121363; SSE-NEXT:    movdqa (%rsi), %xmm41364; SSE-NEXT:    movdqa (%rdx), %xmm01365; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1366; SSE-NEXT:    movdqa (%rcx), %xmm51367; SSE-NEXT:    movdqa (%r8), %xmm71368; SSE-NEXT:    movdqa %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1369; SSE-NEXT:    movdqa (%r9), %xmm81370; SSE-NEXT:    pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,7,7,7,7]1371; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[2,3,2,3]1372; SSE-NEXT:    movdqa {{.*#+}} xmm13 = [255,255,255,255,255,0,255,255,255,255,255,255,0,255,255,255]1373; SSE-NEXT:    pand %xmm13, %xmm01374; SSE-NEXT:    movdqa %xmm5, %xmm11375; SSE-NEXT:    movdqa %xmm5, %xmm61376; SSE-NEXT:    movdqa %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1377; SSE-NEXT:    punpckhbw {{.*#+}} xmm1 = xmm1[8],xmm5[8],xmm1[9],xmm5[9],xmm1[10],xmm5[10],xmm1[11],xmm5[11],xmm1[12],xmm5[12],xmm1[13],xmm5[13],xmm1[14],xmm5[14],xmm1[15],xmm5[15]1378; SSE-NEXT:    movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1379; SSE-NEXT:    pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,6,5,7,7]1380; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm1[0,2,2,3]1381; SSE-NEXT:    movdqa %xmm13, %xmm21382; SSE-NEXT:    pandn %xmm1, %xmm21383; SSE-NEXT:    por %xmm0, %xmm21384; SSE-NEXT:    movdqa {{.*#+}} xmm0 = [255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255]1385; SSE-NEXT:    movdqa %xmm0, %xmm11386; SSE-NEXT:    pandn %xmm2, %xmm11387; SSE-NEXT:    pshufhw {{.*#+}} xmm2 = xmm12[0,1,2,3,7,7,7,7]1388; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm2[2,3,2,3]1389; SSE-NEXT:    movdqa {{.*#+}} xmm10 = [255,255,255,0,255,255,255,255,255,255,0,255,255,255,255,255]1390; SSE-NEXT:    pand %xmm10, %xmm31391; SSE-NEXT:    movdqa %xmm4, %xmm91392; SSE-NEXT:    movdqa %xmm4, %xmm51393; SSE-NEXT:    movdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1394; SSE-NEXT:    punpckhbw {{.*#+}} xmm9 = xmm9[8],xmm4[8],xmm9[9],xmm4[9],xmm9[10],xmm4[10],xmm9[11],xmm4[11],xmm9[12],xmm4[12],xmm9[13],xmm4[13],xmm9[14],xmm4[14],xmm9[15],xmm4[15]1395; SSE-NEXT:    pshufhw {{.*#+}} xmm4 = xmm9[0,1,2,3,4,6,6,7]1396; SSE-NEXT:    movdqa %xmm9, (%rsp) # 16-byte Spill1397; SSE-NEXT:    pshufd {{.*#+}} xmm4 = xmm4[2,1,3,3]1398; SSE-NEXT:    pandn %xmm4, %xmm101399; SSE-NEXT:    por %xmm3, %xmm101400; SSE-NEXT:    pand %xmm0, %xmm101401; SSE-NEXT:    por %xmm1, %xmm101402; SSE-NEXT:    pshufhw {{.*#+}} xmm1 = xmm7[0,1,2,3,7,7,7,7]1403; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm1[2,3,2,3]1404; SSE-NEXT:    movdqa {{.*#+}} xmm2 = [255,255,255,255,255,255,0,255,255,255,255,255,255,0,255,255]1405; SSE-NEXT:    movdqa %xmm2, %xmm41406; SSE-NEXT:    pandn %xmm1, %xmm41407; SSE-NEXT:    movdqa %xmm8, %xmm11408; SSE-NEXT:    movdqa %xmm8, %xmm31409; SSE-NEXT:    movdqa %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1410; SSE-NEXT:    punpckhbw {{.*#+}} xmm1 = xmm1[8],xmm8[8],xmm1[9],xmm8[9],xmm1[10],xmm8[10],xmm1[11],xmm8[11],xmm1[12],xmm8[12],xmm1[13],xmm8[13],xmm1[14],xmm8[14],xmm1[15],xmm8[15]1411; SSE-NEXT:    movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1412; SSE-NEXT:    pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,5,6,6,7]1413; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm1[2,2,2,3]1414; SSE-NEXT:    pand %xmm2, %xmm11415; SSE-NEXT:    por %xmm4, %xmm11416; SSE-NEXT:    movdqa {{.*#+}} xmm4 = [0,255,255,255,255,255,0,0,255,255,255,255,255,0,0,255]1417; SSE-NEXT:    pand %xmm4, %xmm101418; SSE-NEXT:    pandn %xmm1, %xmm41419; SSE-NEXT:    movdqa (%rax), %xmm151420; SSE-NEXT:    por %xmm10, %xmm41421; SSE-NEXT:    pshufhw {{.*#+}} xmm1 = xmm15[0,1,2,3,6,7,7,7]1422; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm1[2,1,3,2]1423; SSE-NEXT:    movdqa {{.*#+}} xmm11 = [255,0,255,255,255,255,255,255,0,255,255,255,255,255,255,0]1424; SSE-NEXT:    movdqa %xmm11, %xmm71425; SSE-NEXT:    pandn %xmm1, %xmm71426; SSE-NEXT:    pand %xmm11, %xmm41427; SSE-NEXT:    por %xmm4, %xmm71428; SSE-NEXT:    movdqa %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1429; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm5[2,1,2,3]1430; SSE-NEXT:    punpcklbw {{.*#+}} xmm1 = xmm1[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7]1431; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm1[3,1,0,3]1432; SSE-NEXT:    movdqa {{.*#+}} xmm10 = [255,255,0,255,255,255,255,255,255,0,255,255,255,255,255,255]1433; SSE-NEXT:    movdqa %xmm10, %xmm41434; SSE-NEXT:    pandn %xmm1, %xmm41435; SSE-NEXT:    pshuflw {{.*#+}} xmm1 = xmm12[3,3,3,3,4,5,6,7]1436; SSE-NEXT:    movdqa %xmm12, %xmm51437; SSE-NEXT:    pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,4,4,4]1438; SSE-NEXT:    pand %xmm10, %xmm11439; SSE-NEXT:    por %xmm1, %xmm41440; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm6[2,1,2,3]1441; SSE-NEXT:    punpcklbw {{.*#+}} xmm1 = xmm1[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7]1442; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm1[0,3,0,3]1443; SSE-NEXT:    pshuflw {{.*#+}} xmm1 = xmm1[3,3,3,3,4,5,6,7]1444; SSE-NEXT:    pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,4,4,4]1445; SSE-NEXT:    movdqa {{.*#+}} xmm12 = [255,255,255,255,0,255,255,255,255,255,255,0,255,255,255,255]1446; SSE-NEXT:    movdqa %xmm12, %xmm141447; SSE-NEXT:    pandn %xmm1, %xmm141448; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload1449; SSE-NEXT:    pshuflw {{.*#+}} xmm1 = xmm8[3,3,3,3,4,5,6,7]1450; SSE-NEXT:    pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,4,4,4]1451; SSE-NEXT:    pand %xmm12, %xmm11452; SSE-NEXT:    por %xmm1, %xmm141453; SSE-NEXT:    movdqa {{.*#+}} xmm1 = [255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255]1454; SSE-NEXT:    pand %xmm1, %xmm41455; SSE-NEXT:    pandn %xmm14, %xmm11456; SSE-NEXT:    por %xmm4, %xmm11457; SSE-NEXT:    pshufd {{.*#+}} xmm4 = xmm3[2,1,2,3]1458; SSE-NEXT:    punpcklbw {{.*#+}} xmm4 = xmm4[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7]1459; SSE-NEXT:    pshufd {{.*#+}} xmm4 = xmm4[0,3,2,0]1460; SSE-NEXT:    movdqa %xmm2, %xmm141461; SSE-NEXT:    pandn %xmm4, %xmm141462; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload1463; SSE-NEXT:    pshuflw {{.*#+}} xmm4 = xmm6[3,3,3,3,4,5,6,7]1464; SSE-NEXT:    pshufhw {{.*#+}} xmm4 = xmm4[0,1,2,3,4,4,4,4]1465; SSE-NEXT:    pand %xmm2, %xmm41466; SSE-NEXT:    por %xmm4, %xmm141467; SSE-NEXT:    movdqa {{.*#+}} xmm4 = [0,255,255,255,255,255,255,0,255,255,255,255,255,255,0,255]1468; SSE-NEXT:    pand %xmm4, %xmm141469; SSE-NEXT:    pshuflw {{.*#+}} xmm7 = xmm15[3,3,3,3,4,5,6,7]1470; SSE-NEXT:    movdqa %xmm15, %xmm31471; SSE-NEXT:    pshufhw {{.*#+}} xmm7 = xmm7[0,1,2,3,4,4,4,4]1472; SSE-NEXT:    pandn %xmm7, %xmm41473; SSE-NEXT:    por %xmm14, %xmm41474; SSE-NEXT:    movdqa {{.*#+}} xmm7 = [0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255]1475; SSE-NEXT:    pand %xmm7, %xmm11476; SSE-NEXT:    pandn %xmm4, %xmm71477; SSE-NEXT:    por %xmm1, %xmm71478; SSE-NEXT:    movdqa %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1479; SSE-NEXT:    pshufhw {{.*#+}} xmm1 = xmm9[0,1,2,3,4,5,5,7]1480; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm1[0,2,2,3]1481; SSE-NEXT:    movdqa %xmm13, %xmm41482; SSE-NEXT:    pandn %xmm1, %xmm41483; SSE-NEXT:    movdqa %xmm5, %xmm151484; SSE-NEXT:    pshufhw {{.*#+}} xmm1 = xmm5[0,1,2,3,6,6,6,6]1485; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm1[2,3,2,3]1486; SSE-NEXT:    pand %xmm13, %xmm11487; SSE-NEXT:    por %xmm1, %xmm41488; SSE-NEXT:    pshufhw {{.*#+}} xmm1 = xmm8[0,1,2,3,6,6,6,6]1489; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm1[2,3,2,3]1490; SSE-NEXT:    movdqa %xmm2, %xmm71491; SSE-NEXT:    pandn %xmm1, %xmm71492; SSE-NEXT:    pshufd $230, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload1493; SSE-NEXT:    # xmm1 = mem[2,1,2,3]1494; SSE-NEXT:    pshuflw {{.*#+}} xmm1 = xmm1[3,1,2,0,4,5,6,7]1495; SSE-NEXT:    pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,5,5,5,5]1496; SSE-NEXT:    pand %xmm2, %xmm11497; SSE-NEXT:    por %xmm7, %xmm11498; SSE-NEXT:    pand %xmm0, %xmm11499; SSE-NEXT:    pandn %xmm4, %xmm01500; SSE-NEXT:    por %xmm1, %xmm01501; SSE-NEXT:    pshufd $229, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload1502; SSE-NEXT:    # xmm1 = mem[1,1,2,3]1503; SSE-NEXT:    movdqa %xmm10, %xmm41504; SSE-NEXT:    pandn %xmm1, %xmm41505; SSE-NEXT:    pshufhw {{.*#+}} xmm1 = xmm6[0,1,2,3,5,6,6,7]1506; SSE-NEXT:    movdqa %xmm6, %xmm91507; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm1[2,1,3,2]1508; SSE-NEXT:    pand %xmm10, %xmm11509; SSE-NEXT:    por %xmm4, %xmm11510; SSE-NEXT:    pshufhw {{.*#+}} xmm4 = xmm3[0,1,2,3,4,5,6,6]1511; SSE-NEXT:    movdqa %xmm3, %xmm61512; SSE-NEXT:    pshufd {{.*#+}} xmm4 = xmm4[2,1,3,3]1513; SSE-NEXT:    movdqa {{.*#+}} xmm5 = [255,255,255,0,255,255,255,255,255,255,0,255,255,255,255,255]1514; SSE-NEXT:    movdqa %xmm5, %xmm71515; SSE-NEXT:    pandn %xmm4, %xmm71516; SSE-NEXT:    pand %xmm5, %xmm11517; SSE-NEXT:    por %xmm1, %xmm71518; SSE-NEXT:    movdqa {{.*#+}} xmm1 = [255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0]1519; SSE-NEXT:    pand %xmm1, %xmm01520; SSE-NEXT:    pandn %xmm7, %xmm11521; SSE-NEXT:    por %xmm0, %xmm11522; SSE-NEXT:    movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1523; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload1524; SSE-NEXT:    punpcklbw {{.*#+}} xmm0 = xmm0[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7]1525; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1526; SSE-NEXT:    pshuflw {{.*#+}} xmm0 = xmm0[0,0,2,1,4,5,6,7]1527; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,1,1,3]1528; SSE-NEXT:    movdqa %xmm5, %xmm11529; SSE-NEXT:    pandn %xmm0, %xmm11530; SSE-NEXT:    pshuflw {{.*#+}} xmm0 = xmm8[0,0,0,0,4,5,6,7]1531; SSE-NEXT:    movdqa %xmm8, %xmm31532; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,1,0,1]1533; SSE-NEXT:    pand %xmm5, %xmm01534; SSE-NEXT:    por %xmm0, %xmm11535; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload1536; SSE-NEXT:    punpcklbw {{.*#+}} xmm0 = xmm0[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7]1537; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1538; SSE-NEXT:    pshuflw {{.*#+}} xmm0 = xmm0[0,2,1,3,4,5,6,7]1539; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,1,1,0]1540; SSE-NEXT:    movdqa %xmm11, %xmm71541; SSE-NEXT:    pandn %xmm0, %xmm71542; SSE-NEXT:    pshuflw {{.*#+}} xmm0 = xmm15[0,0,2,1,4,5,6,7]1543; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,0,2,1]1544; SSE-NEXT:    pand %xmm11, %xmm01545; SSE-NEXT:    por %xmm0, %xmm71546; SSE-NEXT:    movdqa {{.*#+}} xmm0 = [255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255]1547; SSE-NEXT:    pand %xmm0, %xmm71548; SSE-NEXT:    pandn %xmm1, %xmm01549; SSE-NEXT:    por %xmm7, %xmm01550; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload1551; SSE-NEXT:    punpcklbw {{.*#+}} xmm1 = xmm1[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7]1552; SSE-NEXT:    movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1553; SSE-NEXT:    pshuflw {{.*#+}} xmm1 = xmm1[0,1,1,3,4,5,6,7]1554; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm1[0,0,2,1]1555; SSE-NEXT:    movdqa %xmm13, %xmm71556; SSE-NEXT:    pandn %xmm1, %xmm71557; SSE-NEXT:    movdqa %xmm9, %xmm51558; SSE-NEXT:    pshuflw {{.*#+}} xmm1 = xmm9[0,0,0,0,4,5,6,7]1559; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm1[0,1,0,1]1560; SSE-NEXT:    pand %xmm13, %xmm11561; SSE-NEXT:    por %xmm1, %xmm71562; SSE-NEXT:    movdqa %xmm6, %xmm81563; SSE-NEXT:    pshuflw {{.*#+}} xmm1 = xmm6[0,0,0,0,4,5,6,7]1564; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm1[0,1,0,1]1565; SSE-NEXT:    movdqa %xmm2, %xmm91566; SSE-NEXT:    pandn %xmm1, %xmm91567; SSE-NEXT:    pand %xmm2, %xmm71568; SSE-NEXT:    por %xmm7, %xmm91569; SSE-NEXT:    movdqa {{.*#+}} xmm14 = [255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255]1570; SSE-NEXT:    pand %xmm14, %xmm01571; SSE-NEXT:    pandn %xmm9, %xmm141572; SSE-NEXT:    por %xmm0, %xmm141573; SSE-NEXT:    pshufd $212, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload1574; SSE-NEXT:    # xmm0 = mem[0,1,1,3]1575; SSE-NEXT:    movdqa %xmm10, %xmm71576; SSE-NEXT:    pandn %xmm0, %xmm71577; SSE-NEXT:    movdqa %xmm3, %xmm11578; SSE-NEXT:    pshufhw {{.*#+}} xmm0 = xmm3[0,1,2,3,4,5,5,7]1579; SSE-NEXT:    pshufd {{.*#+}} xmm9 = xmm0[2,1,3,2]1580; SSE-NEXT:    pand %xmm10, %xmm91581; SSE-NEXT:    por %xmm7, %xmm91582; SSE-NEXT:    pshufhw {{.*#+}} xmm0 = xmm15[0,1,2,3,5,5,5,5]1583; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[2,3,2,3]1584; SSE-NEXT:    movdqa %xmm2, %xmm71585; SSE-NEXT:    pandn %xmm0, %xmm71586; SSE-NEXT:    pshuflw $233, (%rsp), %xmm0 # 16-byte Folded Reload1587; SSE-NEXT:    # xmm0 = mem[1,2,2,3,4,5,6,7]1588; SSE-NEXT:    pshufd {{.*#+}} xmm6 = xmm0[0,0,2,1]1589; SSE-NEXT:    pand %xmm2, %xmm61590; SSE-NEXT:    por %xmm7, %xmm61591; SSE-NEXT:    movdqa {{.*#+}} xmm0 = [255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0]1592; SSE-NEXT:    pand %xmm0, %xmm61593; SSE-NEXT:    pandn %xmm9, %xmm01594; SSE-NEXT:    por %xmm6, %xmm01595; SSE-NEXT:    pshuflw $233, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Folded Reload1596; SSE-NEXT:    # xmm3 = mem[1,2,2,3,4,5,6,7]1597; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm3[0,0,0,0]1598; SSE-NEXT:    movdqa %xmm12, %xmm61599; SSE-NEXT:    pandn %xmm3, %xmm61600; SSE-NEXT:    pshufhw {{.*#+}} xmm3 = xmm5[0,1,2,3,4,4,6,5]1601; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm3[2,1,3,3]1602; SSE-NEXT:    pand %xmm12, %xmm31603; SSE-NEXT:    por %xmm3, %xmm61604; SSE-NEXT:    pand %xmm13, %xmm61605; SSE-NEXT:    pshufhw {{.*#+}} xmm3 = xmm8[0,1,2,3,4,5,5,7]1606; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm3[0,2,2,3]1607; SSE-NEXT:    pandn %xmm3, %xmm131608; SSE-NEXT:    por %xmm6, %xmm131609; SSE-NEXT:    movdqa {{.*#+}} xmm3 = [255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255]1610; SSE-NEXT:    pand %xmm3, %xmm01611; SSE-NEXT:    pandn %xmm13, %xmm31612; SSE-NEXT:    por %xmm0, %xmm31613; SSE-NEXT:    pshufd $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload1614; SSE-NEXT:    # xmm0 = mem[2,2,3,3]1615; SSE-NEXT:    movdqa %xmm2, %xmm61616; SSE-NEXT:    pandn %xmm0, %xmm61617; SSE-NEXT:    movdqa %xmm1, %xmm131618; SSE-NEXT:    pshuflw {{.*#+}} xmm0 = xmm1[2,1,3,3,4,5,6,7]1619; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,0,2,1]1620; SSE-NEXT:    pand %xmm2, %xmm01621; SSE-NEXT:    por %xmm6, %xmm01622; SSE-NEXT:    movdqa {{.*#+}} xmm6 = [255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255]1623; SSE-NEXT:    movdqa %xmm6, %xmm71624; SSE-NEXT:    pandn %xmm0, %xmm71625; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload1626; SSE-NEXT:    pshufhw {{.*#+}} xmm0 = xmm1[0,1,2,3,5,6,6,7]1627; SSE-NEXT:    pshufd {{.*#+}} xmm9 = xmm0[2,2,2,2]1628; SSE-NEXT:    movdqa %xmm12, %xmm01629; SSE-NEXT:    pandn %xmm9, %xmm01630; SSE-NEXT:    pshuflw {{.*#+}} xmm9 = xmm15[0,2,2,3,4,5,6,7]1631; SSE-NEXT:    pshufd {{.*#+}} xmm9 = xmm9[0,1,1,3]1632; SSE-NEXT:    pand %xmm12, %xmm91633; SSE-NEXT:    por %xmm9, %xmm01634; SSE-NEXT:    pand %xmm6, %xmm01635; SSE-NEXT:    por %xmm7, %xmm01636; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload1637; SSE-NEXT:    pshufhw {{.*#+}} xmm7 = xmm5[0,1,2,3,4,6,5,7]1638; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm7[2,1,3,2]1639; SSE-NEXT:    movdqa %xmm11, %xmm91640; SSE-NEXT:    pandn %xmm7, %xmm91641; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload1642; SSE-NEXT:    pshuflw {{.*#+}} xmm7 = xmm4[2,2,2,3,4,5,6,7]1643; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm7[0,0,2,1]1644; SSE-NEXT:    pand %xmm11, %xmm71645; SSE-NEXT:    por %xmm7, %xmm91646; SSE-NEXT:    pand %xmm10, %xmm91647; SSE-NEXT:    pshuflw {{.*#+}} xmm7 = xmm8[2,2,2,2,4,5,6,7]1648; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm7[0,1,0,1]1649; SSE-NEXT:    pandn %xmm7, %xmm101650; SSE-NEXT:    por %xmm9, %xmm101651; SSE-NEXT:    movdqa {{.*#+}} xmm7 = [255,255,255,0,0,0,0,255,255,255,0,0,0,0,255,255]1652; SSE-NEXT:    pand %xmm7, %xmm101653; SSE-NEXT:    pandn %xmm0, %xmm71654; SSE-NEXT:    por %xmm7, %xmm101655; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm1[0,1,2,2]1656; SSE-NEXT:    pshuflw {{.*#+}} xmm7 = xmm15[1,1,2,3,4,5,6,7]1657; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm7[0,0,2,1]1658; SSE-NEXT:    pand %xmm2, %xmm71659; SSE-NEXT:    pandn %xmm0, %xmm21660; SSE-NEXT:    por %xmm7, %xmm21661; SSE-NEXT:    pshuflw {{.*#+}} xmm0 = xmm13[1,1,2,2,4,5,6,7]1662; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,0,2,1]1663; SSE-NEXT:    pand %xmm11, %xmm01664; SSE-NEXT:    pshufd $101, {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Folded Reload1665; SSE-NEXT:    # xmm7 = mem[1,1,2,1]1666; SSE-NEXT:    pshufhw {{.*#+}} xmm7 = xmm7[0,1,2,3,7,5,6,4]1667; SSE-NEXT:    pandn %xmm7, %xmm111668; SSE-NEXT:    por %xmm0, %xmm111669; SSE-NEXT:    pand %xmm6, %xmm111670; SSE-NEXT:    pandn %xmm2, %xmm61671; SSE-NEXT:    por %xmm11, %xmm61672; SSE-NEXT:    pshuflw {{.*#+}} xmm0 = xmm4[1,1,1,1,4,5,6,7]1673; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,1,0,1]1674; SSE-NEXT:    movdqa {{.*#+}} xmm1 = [255,255,255,0,255,255,255,255,255,255,0,255,255,255,255,255]1675; SSE-NEXT:    pand %xmm1, %xmm01676; SSE-NEXT:    pshuflw {{.*#+}} xmm2 = xmm5[0,2,2,3,4,5,6,7]1677; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm2[0,1,1,3]1678; SSE-NEXT:    pandn %xmm2, %xmm11679; SSE-NEXT:    por %xmm0, %xmm11680; SSE-NEXT:    pand %xmm12, %xmm11681; SSE-NEXT:    pshuflw {{.*#+}} xmm0 = xmm8[1,1,1,1,4,5,6,7]1682; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,1,0,1]1683; SSE-NEXT:    pandn %xmm0, %xmm121684; SSE-NEXT:    por %xmm1, %xmm121685; SSE-NEXT:    movdqa {{.*#+}} xmm0 = [255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255]1686; SSE-NEXT:    pand %xmm0, %xmm61687; SSE-NEXT:    pandn %xmm12, %xmm01688; SSE-NEXT:    por %xmm6, %xmm01689; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %rax1690; SSE-NEXT:    movdqa %xmm0, 16(%rax)1691; SSE-NEXT:    movdqa %xmm10, 32(%rax)1692; SSE-NEXT:    movdqa %xmm3, 64(%rax)1693; SSE-NEXT:    movdqa %xmm14, (%rax)1694; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload1695; SSE-NEXT:    movaps %xmm0, 80(%rax)1696; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload1697; SSE-NEXT:    movaps %xmm0, 48(%rax)1698; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload1699; SSE-NEXT:    movaps %xmm0, 96(%rax)1700; SSE-NEXT:    addq $56, %rsp1701; SSE-NEXT:    retq1702;1703; AVX-LABEL: store_i8_stride7_vf16:1704; AVX:       # %bb.0:1705; AVX-NEXT:    movq {{[0-9]+}}(%rsp), %rax1706; AVX-NEXT:    movq {{[0-9]+}}(%rsp), %r101707; AVX-NEXT:    vmovdqa (%rdi), %xmm31708; AVX-NEXT:    vmovdqa (%rsi), %xmm51709; AVX-NEXT:    vmovdqa (%rdx), %xmm61710; AVX-NEXT:    vmovdqa (%rcx), %xmm71711; AVX-NEXT:    vmovdqa (%r8), %xmm01712; AVX-NEXT:    vmovdqa (%r9), %xmm21713; AVX-NEXT:    vmovdqa (%r10), %xmm11714; AVX-NEXT:    vpunpcklbw {{.*#+}} xmm10 = xmm3[0],xmm5[0],xmm3[1],xmm5[1],xmm3[2],xmm5[2],xmm3[3],xmm5[3],xmm3[4],xmm5[4],xmm3[5],xmm5[5],xmm3[6],xmm5[6],xmm3[7],xmm5[7]1715; AVX-NEXT:    vpshufb {{.*#+}} xmm4 = zero,zero,zero,zero,zero,xmm10[6,7],zero,zero,zero,zero,zero,xmm10[8,9],zero,zero1716; AVX-NEXT:    vpunpcklbw {{.*#+}} xmm11 = xmm6[0],xmm7[0],xmm6[1],xmm7[1],xmm6[2],xmm7[2],xmm6[3],xmm7[3],xmm6[4],xmm7[4],xmm6[5],xmm7[5],xmm6[6],xmm7[6],xmm6[7],xmm7[7]1717; AVX-NEXT:    vpshufb {{.*#+}} xmm8 = xmm11[4,5],zero,zero,zero,zero,zero,xmm11[6,7],zero,zero,zero,zero,zero,xmm11[8,9]1718; AVX-NEXT:    vpor %xmm4, %xmm8, %xmm41719; AVX-NEXT:    vpshufb {{.*#+}} xmm8 = zero,zero,xmm11[0,1],zero,zero,zero,zero,zero,xmm11[2,3],zero,zero,zero,zero,zero1720; AVX-NEXT:    vpshufb {{.*#+}} xmm9 = xmm10[0,1],zero,zero,zero,zero,zero,xmm10[2,3],zero,zero,zero,zero,zero,xmm10[4,5]1721; AVX-NEXT:    vpor %xmm8, %xmm9, %xmm81722; AVX-NEXT:    vinsertf128 $1, %xmm4, %ymm8, %ymm41723; AVX-NEXT:    vpunpcklbw {{.*#+}} xmm9 = xmm0[0],xmm2[0],xmm0[1],xmm2[1],xmm0[2],xmm2[2],xmm0[3],xmm2[3],xmm0[4],xmm2[4],xmm0[5],xmm2[5],xmm0[6],xmm2[6],xmm0[7],xmm2[7]1724; AVX-NEXT:    vpshufb {{.*#+}} xmm8 = xmm9[u,u,4,5],zero,xmm9[u,u,u,u,6,7],zero,xmm9[u,u,u,u]1725; AVX-NEXT:    vpshufb {{.*#+}} xmm12 = xmm1[u,u],zero,zero,xmm1[2,u,u,u,u],zero,zero,xmm1[3,u,u,u,u]1726; AVX-NEXT:    vpor %xmm12, %xmm8, %xmm81727; AVX-NEXT:    vpshufb {{.*#+}} xmm12 = xmm9[u,u,u,u,0,1,u,u,u,u,u,2,3,u,u,u]1728; AVX-NEXT:    vpalignr {{.*#+}} xmm12 = xmm12[4,5,6,7,8,9,10,11,12,13,14,15],xmm1[0,1,2,3]1729; AVX-NEXT:    vpshufb {{.*#+}} xmm12 = xmm12[u,u,u,u,0,1,12,u,u,u,u,7,8,13,u,u]1730; AVX-NEXT:    vinsertf128 $1, %xmm8, %ymm12, %ymm81731; AVX-NEXT:    vmovaps {{.*#+}} ymm12 = [255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255]1732; AVX-NEXT:    vandnps %ymm8, %ymm12, %ymm81733; AVX-NEXT:    vorps %ymm4, %ymm8, %ymm41734; AVX-NEXT:    vpshufb {{.*#+}} xmm8 = xmm5[u],zero,xmm5[7,u,u,u,u,u],zero,xmm5[8,u,u,u,u,u],zero1735; AVX-NEXT:    vpshufb {{.*#+}} xmm12 = xmm3[u,7],zero,xmm3[u,u,u,u,u,8],zero,xmm3[u,u,u,u,u,9]1736; AVX-NEXT:    vpor %xmm8, %xmm12, %xmm121737; AVX-NEXT:    vpshufb {{.*#+}} xmm8 = xmm7[u,u,u],zero,xmm7[7,u,u,u,u,u],zero,xmm7[8,u,u,u,u]1738; AVX-NEXT:    vpshufb {{.*#+}} xmm13 = xmm6[u,u,u,7],zero,xmm6[u,u,u,u,u,8],zero,xmm6[u,u,u,u]1739; AVX-NEXT:    vpor %xmm8, %xmm13, %xmm131740; AVX-NEXT:    vmovdqa {{.*#+}} ymm8 = [255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0]1741; AVX-NEXT:    vpblendvb %xmm8, %xmm12, %xmm13, %xmm121742; AVX-NEXT:    vpshufb {{.*#+}} xmm11 = zero,zero,zero,zero,zero,xmm11[10,11],zero,zero,zero,zero,zero,xmm11[12,13],zero,zero1743; AVX-NEXT:    vpshufb {{.*#+}} xmm10 = zero,zero,zero,xmm10[10,11],zero,zero,zero,zero,zero,xmm10[12,13],zero,zero,zero,zero1744; AVX-NEXT:    vpor %xmm11, %xmm10, %xmm101745; AVX-NEXT:    vinsertf128 $1, %xmm12, %ymm10, %ymm101746; AVX-NEXT:    vmovaps {{.*#+}} ymm11 = [0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255]1747; AVX-NEXT:    vandps %ymm11, %ymm10, %ymm101748; AVX-NEXT:    vpshufb {{.*#+}} xmm12 = xmm2[u,u,u,u,u],zero,xmm2[7,u,u,u,u,u],zero,xmm2[8,u,u]1749; AVX-NEXT:    vpshufb {{.*#+}} xmm13 = xmm0[u,u,u,u,u,7],zero,xmm0[u,u,u,u,u,8],zero,xmm0[u,u]1750; AVX-NEXT:    vpor %xmm12, %xmm13, %xmm121751; AVX-NEXT:    vpshufb {{.*#+}} xmm12 = zero,xmm12[u,u,u,u,5,6],zero,xmm12[u,u,u,u,12,13],zero,xmm12[u]1752; AVX-NEXT:    vpshufb {{.*#+}} xmm13 = xmm1[6,u,u,u,u],zero,zero,xmm1[7,u,u,u,u],zero,zero,xmm1[8,u]1753; AVX-NEXT:    vpor %xmm13, %xmm12, %xmm121754; AVX-NEXT:    vpshufb {{.*#+}} xmm9 = xmm9[8,9],zero,xmm9[u,u,u,u,10,11],zero,xmm9[u,u,u,u,12,13]1755; AVX-NEXT:    vpshufb {{.*#+}} xmm13 = zero,zero,xmm1[4,u,u,u,u],zero,zero,xmm1[5,u,u,u,u],zero,zero1756; AVX-NEXT:    vpor %xmm13, %xmm9, %xmm91757; AVX-NEXT:    vinsertf128 $1, %xmm12, %ymm9, %ymm91758; AVX-NEXT:    vandnps %ymm9, %ymm11, %ymm91759; AVX-NEXT:    vorps %ymm9, %ymm10, %ymm91760; AVX-NEXT:    vpunpckhbw {{.*#+}} xmm10 = xmm3[8],xmm5[8],xmm3[9],xmm5[9],xmm3[10],xmm5[10],xmm3[11],xmm5[11],xmm3[12],xmm5[12],xmm3[13],xmm5[13],xmm3[14],xmm5[14],xmm3[15],xmm5[15]1761; AVX-NEXT:    vpshufb {{.*#+}} xmm11 = zero,zero,zero,zero,xmm10[8,9],zero,zero,zero,zero,zero,xmm10[10,11],zero,zero,zero1762; AVX-NEXT:    vpunpckhbw {{.*#+}} xmm12 = xmm7[8],xmm6[8],xmm7[9],xmm6[9],xmm7[10],xmm6[10],xmm7[11],xmm6[11],xmm7[12],xmm6[12],xmm7[13],xmm6[13],xmm7[14],xmm6[14],xmm7[15],xmm6[15]1763; AVX-NEXT:    vpshufb {{.*#+}} xmm12 = xmm12[6],zero,zero,zero,zero,zero,xmm12[9,8],zero,zero,zero,zero,zero,xmm12[11,10],zero1764; AVX-NEXT:    vpor %xmm11, %xmm12, %xmm111765; AVX-NEXT:    vpunpckhbw {{.*#+}} xmm6 = xmm6[8],xmm7[8],xmm6[9],xmm7[9],xmm6[10],xmm7[10],xmm6[11],xmm7[11],xmm6[12],xmm7[12],xmm6[13],xmm7[13],xmm6[14],xmm7[14],xmm6[15],xmm7[15]1766; AVX-NEXT:    vpshufb {{.*#+}} xmm7 = zero,xmm6[2,3],zero,zero,zero,zero,zero,xmm6[4,5],zero,zero,zero,zero,zero,xmm6[6]1767; AVX-NEXT:    vpunpckhbw {{.*#+}} xmm3 = xmm5[8],xmm3[8],xmm5[9],xmm3[9],xmm5[10],xmm3[10],xmm5[11],xmm3[11],xmm5[12],xmm3[12],xmm5[13],xmm3[13],xmm5[14],xmm3[14],xmm5[15],xmm3[15]1768; AVX-NEXT:    vpshufb {{.*#+}} xmm3 = xmm3[2],zero,zero,zero,zero,zero,xmm3[5,4],zero,zero,zero,zero,zero,xmm3[7,6],zero1769; AVX-NEXT:    vpor %xmm7, %xmm3, %xmm31770; AVX-NEXT:    vinsertf128 $1, %xmm11, %ymm3, %ymm31771; AVX-NEXT:    vpunpckhbw {{.*#+}} xmm5 = xmm0[8],xmm2[8],xmm0[9],xmm2[9],xmm0[10],xmm2[10],xmm0[11],xmm2[11],xmm0[12],xmm2[12],xmm0[13],xmm2[13],xmm0[14],xmm2[14],xmm0[15],xmm2[15]1772; AVX-NEXT:    vpshufb {{.*#+}} xmm7 = xmm5[u,6,7],zero,xmm5[u,u,u,u,8,9],zero,xmm5[u,u,u,u,10]1773; AVX-NEXT:    vpshufb {{.*#+}} xmm11 = xmm1[u],zero,zero,xmm1[11,u,u,u,u],zero,zero,xmm1[12,u,u,u,u],zero1774; AVX-NEXT:    vpor %xmm7, %xmm11, %xmm71775; AVX-NEXT:    vpshufb {{.*#+}} xmm5 = xmm5[u,u,u,2,3],zero,xmm5[u,u,u,u,4,5],zero,xmm5[u,u,u]1776; AVX-NEXT:    vpshufb {{.*#+}} xmm11 = xmm1[u,u,u],zero,zero,xmm1[9,u,u,u,u],zero,zero,xmm1[10,u,u,u]1777; AVX-NEXT:    vpor %xmm5, %xmm11, %xmm51778; AVX-NEXT:    vinsertf128 $1, %xmm7, %ymm5, %ymm51779; AVX-NEXT:    vandnps %ymm5, %ymm8, %ymm51780; AVX-NEXT:    vorps %ymm5, %ymm3, %ymm31781; AVX-NEXT:    vpshufb {{.*#+}} xmm5 = zero,zero,zero,zero,xmm6[12,13],zero,zero,zero,zero,zero,xmm6[14,15],zero,zero,zero1782; AVX-NEXT:    vpshufb {{.*#+}} xmm6 = zero,zero,xmm10[12,13],zero,zero,zero,zero,zero,xmm10[14,15],zero,zero,zero,zero,zero1783; AVX-NEXT:    vpor %xmm5, %xmm6, %xmm51784; AVX-NEXT:    vpunpckhbw {{.*#+}} xmm0 = xmm2[8],xmm0[8],xmm2[9],xmm0[9],xmm2[10],xmm0[10],xmm2[11],xmm0[11],xmm2[12],xmm0[12],xmm2[13],xmm0[13],xmm2[14],xmm0[14],xmm2[15],xmm0[15]1785; AVX-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[10],zero,xmm0[u,u,u,u,13,12],zero,xmm0[u,u,u,u,15,14],zero1786; AVX-NEXT:    vpshufb {{.*#+}} xmm1 = zero,xmm1[13,u,u,u,u],zero,zero,xmm1[14,u,u,u,u],zero,zero,xmm1[15]1787; AVX-NEXT:    vpor %xmm1, %xmm0, %xmm01788; AVX-NEXT:    vmovdqa {{.*#+}} xmm1 = [0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0]1789; AVX-NEXT:    vpblendvb %xmm1, %xmm5, %xmm0, %xmm01790; AVX-NEXT:    vmovdqa %xmm0, 96(%rax)1791; AVX-NEXT:    vmovaps %ymm3, 64(%rax)1792; AVX-NEXT:    vmovaps %ymm9, 32(%rax)1793; AVX-NEXT:    vmovaps %ymm4, (%rax)1794; AVX-NEXT:    vzeroupper1795; AVX-NEXT:    retq1796;1797; AVX2-LABEL: store_i8_stride7_vf16:1798; AVX2:       # %bb.0:1799; AVX2-NEXT:    movq {{[0-9]+}}(%rsp), %rax1800; AVX2-NEXT:    movq {{[0-9]+}}(%rsp), %r101801; AVX2-NEXT:    vmovdqa (%rdi), %xmm31802; AVX2-NEXT:    vmovdqa (%rdx), %xmm41803; AVX2-NEXT:    vmovdqa (%r8), %xmm11804; AVX2-NEXT:    vmovdqa (%r9), %xmm21805; AVX2-NEXT:    vmovdqa (%r10), %xmm01806; AVX2-NEXT:    vinserti128 $1, (%rsi), %ymm3, %ymm31807; AVX2-NEXT:    vinserti128 $1, (%rcx), %ymm4, %ymm41808; AVX2-NEXT:    vinserti128 $1, %xmm2, %ymm1, %ymm61809; AVX2-NEXT:    vpshufb {{.*#+}} ymm5 = zero,zero,zero,ymm3[5],zero,zero,zero,zero,zero,zero,ymm3[6],zero,zero,zero,zero,zero,zero,zero,ymm3[23],zero,zero,zero,zero,zero,zero,ymm3[24],zero,zero,zero,zero,zero,zero1810; AVX2-NEXT:    vpermq {{.*#+}} ymm7 = ymm3[2,3,0,1]1811; AVX2-NEXT:    vpshufb {{.*#+}} ymm7 = zero,zero,zero,zero,ymm7[5],zero,zero,zero,zero,zero,zero,ymm7[6],zero,zero,zero,zero,zero,ymm7[23],zero,zero,zero,zero,zero,zero,ymm7[24],zero,zero,zero,zero,zero,zero,ymm7[25]1812; AVX2-NEXT:    vpor %ymm5, %ymm7, %ymm51813; AVX2-NEXT:    vpshufb {{.*#+}} ymm7 = zero,zero,zero,zero,zero,ymm4[5],zero,zero,zero,zero,zero,zero,ymm4[6],zero,zero,zero,zero,zero,zero,zero,ymm4[23],zero,zero,zero,zero,zero,zero,ymm4[24],zero,zero,zero,zero1814; AVX2-NEXT:    vpermq {{.*#+}} ymm8 = ymm4[2,3,0,1]1815; AVX2-NEXT:    vpshufb {{.*#+}} ymm8 = zero,zero,zero,zero,zero,zero,ymm8[5],zero,zero,zero,zero,zero,zero,ymm8[6],zero,zero,zero,zero,zero,ymm8[23],zero,zero,zero,zero,zero,zero,ymm8[24],zero,zero,zero,zero,zero1816; AVX2-NEXT:    vpor %ymm7, %ymm8, %ymm71817; AVX2-NEXT:    vpor %ymm5, %ymm7, %ymm51818; AVX2-NEXT:    vpshufb {{.*#+}} ymm7 = ymm6[4],zero,zero,zero,zero,zero,zero,ymm6[5],zero,zero,zero,zero,zero,zero,ymm6[6],zero,zero,zero,zero,zero,zero,zero,ymm6[23],zero,zero,zero,zero,zero,zero,ymm6[24],zero,zero1819; AVX2-NEXT:    vpermq {{.*#+}} ymm8 = ymm6[2,3,0,1]1820; AVX2-NEXT:    vpshufb {{.*#+}} ymm8 = zero,ymm8[4],zero,zero,zero,zero,zero,zero,ymm8[5],zero,zero,zero,zero,zero,zero,ymm8[6],zero,zero,zero,zero,zero,ymm8[23],zero,zero,zero,zero,zero,zero,ymm8[24],zero,zero,zero1821; AVX2-NEXT:    vpor %ymm7, %ymm8, %ymm71822; AVX2-NEXT:    vpshufb {{.*#+}} xmm8 = xmm0[4,5,4,5,4,5,8,9,6,7,6,7,6,7,6,7]1823; AVX2-NEXT:    vpermq {{.*#+}} ymm8 = ymm8[0,0,1,0]1824; AVX2-NEXT:    vmovdqa {{.*#+}} ymm9 = [255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u]1825; AVX2-NEXT:    vpblendvb %ymm9, %ymm7, %ymm8, %ymm71826; AVX2-NEXT:    vmovdqa {{.*#+}} ymm8 = [0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255]1827; AVX2-NEXT:    vpblendvb %ymm8, %ymm5, %ymm7, %ymm51828; AVX2-NEXT:    vpermq {{.*#+}} ymm7 = ymm6[0,2,0,2]1829; AVX2-NEXT:    vpshufb {{.*#+}} ymm7 = ymm7[u,u,u,u,0,8,u,u,u,u,u,1,9,u,u,u,u,u,18,26,u,u,u,u,u,19,27,u,u,u,u,u]1830; AVX2-NEXT:    vpshuflw {{.*#+}} xmm8 = xmm0[1,1,0,0,4,5,6,7]1831; AVX2-NEXT:    vpshufd {{.*#+}} xmm8 = xmm8[0,1,2,0]1832; AVX2-NEXT:    vpermq {{.*#+}} ymm8 = ymm8[0,0,1,0]1833; AVX2-NEXT:    vmovdqa {{.*#+}} ymm9 = [u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u]1834; AVX2-NEXT:    vpblendvb %ymm9, %ymm7, %ymm8, %ymm71835; AVX2-NEXT:    vpermq {{.*#+}} ymm8 = ymm4[0,2,0,2]1836; AVX2-NEXT:    vpshufb {{.*#+}} ymm8 = zero,zero,ymm8[0,8],zero,zero,zero,zero,zero,ymm8[1,9],zero,zero,zero,zero,zero,ymm8[18,26],zero,zero,zero,zero,zero,ymm8[19,27],zero,zero,zero,zero,zero,ymm8[20,28]1837; AVX2-NEXT:    vpermq {{.*#+}} ymm9 = ymm3[0,2,0,2]1838; AVX2-NEXT:    vpshufb {{.*#+}} ymm9 = ymm9[0,8],zero,zero,zero,zero,zero,ymm9[1,9],zero,zero,zero,zero,zero,ymm9[2,10],zero,zero,zero,zero,zero,ymm9[19,27],zero,zero,zero,zero,zero,ymm9[20,28],zero,zero1839; AVX2-NEXT:    vpor %ymm8, %ymm9, %ymm81840; AVX2-NEXT:    vmovdqa {{.*#+}} ymm9 = [255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255]1841; AVX2-NEXT:    vpblendvb %ymm9, %ymm8, %ymm7, %ymm71842; AVX2-NEXT:    vpermq {{.*#+}} ymm6 = ymm6[1,3,1,3]1843; AVX2-NEXT:    vpshufb {{.*#+}} ymm6 = ymm6[u,u,u,1,9,u,u,u,u,u,2,10,u,u,u,u,u,19,27,u,u,u,u,u,20,28,u,u,u,u,u,21]1844; AVX2-NEXT:    vpshufhw {{.*#+}} xmm8 = xmm0[0,1,2,3,4,5,5,6]1845; AVX2-NEXT:    vpshufd {{.*#+}} xmm8 = xmm8[2,2,3,3]1846; AVX2-NEXT:    vpermq {{.*#+}} ymm8 = ymm8[0,1,0,1]1847; AVX2-NEXT:    vmovdqa {{.*#+}} ymm9 = [u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255]1848; AVX2-NEXT:    vpblendvb %ymm9, %ymm6, %ymm8, %ymm61849; AVX2-NEXT:    vpermq {{.*#+}} ymm8 = ymm3[3,1,1,3]1850; AVX2-NEXT:    vpshufb {{.*#+}} ymm8 = ymm8[1],zero,zero,zero,zero,zero,ymm8[10,2],zero,zero,zero,zero,zero,ymm8[11,3],zero,zero,zero,zero,zero,ymm8[20,28],zero,zero,zero,zero,zero,ymm8[21,29],zero,zero,zero1851; AVX2-NEXT:    vpermq {{.*#+}} ymm9 = ymm4[1,3,3,1]1852; AVX2-NEXT:    vpshufb {{.*#+}} ymm9 = zero,ymm9[1,9],zero,zero,zero,zero,zero,ymm9[2,10],zero,zero,zero,zero,zero,ymm9[3,19],zero,zero,zero,zero,zero,ymm9[28,20],zero,zero,zero,zero,zero,ymm9[29,21],zero1853; AVX2-NEXT:    vpor %ymm8, %ymm9, %ymm81854; AVX2-NEXT:    vmovdqa {{.*#+}} ymm9 = [255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0]1855; AVX2-NEXT:    vpblendvb %ymm9, %ymm8, %ymm6, %ymm61856; AVX2-NEXT:    vpermq {{.*#+}} ymm4 = ymm4[1,3,2,3]1857; AVX2-NEXT:    vpshufb {{.*#+}} xmm4 = zero,zero,zero,zero,xmm4[6,14],zero,zero,zero,zero,zero,xmm4[7,15],zero,zero,zero1858; AVX2-NEXT:    vpermq {{.*#+}} ymm3 = ymm3[1,3,2,3]1859; AVX2-NEXT:    vpshufb {{.*#+}} xmm3 = zero,zero,xmm3[6,14],zero,zero,zero,zero,zero,xmm3[7,15],zero,zero,zero,zero,zero1860; AVX2-NEXT:    vpor %xmm4, %xmm3, %xmm31861; AVX2-NEXT:    vpunpckhbw {{.*#+}} xmm1 = xmm2[8],xmm1[8],xmm2[9],xmm1[9],xmm2[10],xmm1[10],xmm2[11],xmm1[11],xmm2[12],xmm1[12],xmm2[13],xmm1[13],xmm2[14],xmm1[14],xmm2[15],xmm1[15]1862; AVX2-NEXT:    vpshufb {{.*#+}} xmm1 = xmm1[10,u,u,u,u,u,13,12,u,u,u,u,u,15,14,u]1863; AVX2-NEXT:    vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,6,7,7,7]1864; AVX2-NEXT:    vpshufd {{.*#+}} xmm0 = xmm0[2,1,3,2]1865; AVX2-NEXT:    vmovdqa {{.*#+}} xmm2 = [255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0]1866; AVX2-NEXT:    vpblendvb %xmm2, %xmm1, %xmm0, %xmm01867; AVX2-NEXT:    vmovdqa %ymm6, 64(%rax)1868; AVX2-NEXT:    vmovdqa %ymm7, (%rax)1869; AVX2-NEXT:    vmovdqa {{.*#+}} xmm1 = [0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0]1870; AVX2-NEXT:    vpblendvb %xmm1, %xmm3, %xmm0, %xmm01871; AVX2-NEXT:    vmovdqa %xmm0, 96(%rax)1872; AVX2-NEXT:    vmovdqa %ymm5, 32(%rax)1873; AVX2-NEXT:    vzeroupper1874; AVX2-NEXT:    retq1875;1876; AVX2-FP-LABEL: store_i8_stride7_vf16:1877; AVX2-FP:       # %bb.0:1878; AVX2-FP-NEXT:    movq {{[0-9]+}}(%rsp), %rax1879; AVX2-FP-NEXT:    movq {{[0-9]+}}(%rsp), %r101880; AVX2-FP-NEXT:    vmovdqa (%rdi), %xmm21881; AVX2-FP-NEXT:    vmovdqa (%rdx), %xmm31882; AVX2-FP-NEXT:    vmovdqa (%r8), %xmm01883; AVX2-FP-NEXT:    vmovdqa (%r9), %xmm11884; AVX2-FP-NEXT:    vinserti128 $1, (%rsi), %ymm2, %ymm21885; AVX2-FP-NEXT:    vinserti128 $1, (%rcx), %ymm3, %ymm31886; AVX2-FP-NEXT:    vinserti128 $1, %xmm1, %ymm0, %ymm61887; AVX2-FP-NEXT:    vpshufb {{.*#+}} ymm4 = zero,zero,zero,ymm2[5],zero,zero,zero,zero,zero,zero,ymm2[6],zero,zero,zero,zero,zero,zero,zero,ymm2[23],zero,zero,zero,zero,zero,zero,ymm2[24],zero,zero,zero,zero,zero,zero1888; AVX2-FP-NEXT:    vpermq {{.*#+}} ymm5 = ymm2[2,3,0,1]1889; AVX2-FP-NEXT:    vpshufb {{.*#+}} ymm5 = zero,zero,zero,zero,ymm5[5],zero,zero,zero,zero,zero,zero,ymm5[6],zero,zero,zero,zero,zero,ymm5[23],zero,zero,zero,zero,zero,zero,ymm5[24],zero,zero,zero,zero,zero,zero,ymm5[25]1890; AVX2-FP-NEXT:    vpor %ymm4, %ymm5, %ymm41891; AVX2-FP-NEXT:    vpshufb {{.*#+}} ymm5 = zero,zero,zero,zero,zero,ymm3[5],zero,zero,zero,zero,zero,zero,ymm3[6],zero,zero,zero,zero,zero,zero,zero,ymm3[23],zero,zero,zero,zero,zero,zero,ymm3[24],zero,zero,zero,zero1892; AVX2-FP-NEXT:    vpermq {{.*#+}} ymm7 = ymm3[2,3,0,1]1893; AVX2-FP-NEXT:    vpshufb {{.*#+}} ymm7 = zero,zero,zero,zero,zero,zero,ymm7[5],zero,zero,zero,zero,zero,zero,ymm7[6],zero,zero,zero,zero,zero,ymm7[23],zero,zero,zero,zero,zero,zero,ymm7[24],zero,zero,zero,zero,zero1894; AVX2-FP-NEXT:    vpor %ymm7, %ymm5, %ymm51895; AVX2-FP-NEXT:    vpor %ymm4, %ymm5, %ymm51896; AVX2-FP-NEXT:    vpshufb {{.*#+}} ymm4 = ymm6[4],zero,zero,zero,zero,zero,zero,ymm6[5],zero,zero,zero,zero,zero,zero,ymm6[6],zero,zero,zero,zero,zero,zero,zero,ymm6[23],zero,zero,zero,zero,zero,zero,ymm6[24],zero,zero1897; AVX2-FP-NEXT:    vpermq {{.*#+}} ymm7 = ymm6[2,3,0,1]1898; AVX2-FP-NEXT:    vpshufb {{.*#+}} ymm7 = zero,ymm7[4],zero,zero,zero,zero,zero,zero,ymm7[5],zero,zero,zero,zero,zero,zero,ymm7[6],zero,zero,zero,zero,zero,ymm7[23],zero,zero,zero,zero,zero,zero,ymm7[24],zero,zero,zero1899; AVX2-FP-NEXT:    vpor %ymm7, %ymm4, %ymm71900; AVX2-FP-NEXT:    vmovdqa (%r10), %xmm41901; AVX2-FP-NEXT:    vpshufb {{.*#+}} xmm8 = xmm4[4,5,4,5,4,5,8,9,6,7,6,7,6,7,6,7]1902; AVX2-FP-NEXT:    vpermq {{.*#+}} ymm8 = ymm8[0,0,1,0]1903; AVX2-FP-NEXT:    vmovdqa {{.*#+}} ymm9 = [255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u]1904; AVX2-FP-NEXT:    vpblendvb %ymm9, %ymm7, %ymm8, %ymm71905; AVX2-FP-NEXT:    vmovdqa {{.*#+}} ymm8 = [0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255]1906; AVX2-FP-NEXT:    vpblendvb %ymm8, %ymm5, %ymm7, %ymm51907; AVX2-FP-NEXT:    vpshufb {{.*#+}} xmm7 = xmm4[2,3,2,3,0,1,0,1,8,9,10,11,2,3,2,3]1908; AVX2-FP-NEXT:    vpermq {{.*#+}} ymm7 = ymm7[0,0,1,0]1909; AVX2-FP-NEXT:    vpermq {{.*#+}} ymm8 = ymm6[0,2,0,2]1910; AVX2-FP-NEXT:    vpshufb {{.*#+}} ymm8 = ymm8[u,u,u,u,0,8,u,u,u,u,u,1,9,u,u,u,u,u,18,26,u,u,u,u,u,19,27,u,u,u,u,u]1911; AVX2-FP-NEXT:    vmovdqa {{.*#+}} ymm9 = [u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u]1912; AVX2-FP-NEXT:    vpblendvb %ymm9, %ymm8, %ymm7, %ymm71913; AVX2-FP-NEXT:    vpermq {{.*#+}} ymm8 = ymm3[0,2,0,2]1914; AVX2-FP-NEXT:    vpshufb {{.*#+}} ymm8 = zero,zero,ymm8[0,8],zero,zero,zero,zero,zero,ymm8[1,9],zero,zero,zero,zero,zero,ymm8[18,26],zero,zero,zero,zero,zero,ymm8[19,27],zero,zero,zero,zero,zero,ymm8[20,28]1915; AVX2-FP-NEXT:    vpermq {{.*#+}} ymm9 = ymm2[0,2,0,2]1916; AVX2-FP-NEXT:    vpshufb {{.*#+}} ymm9 = ymm9[0,8],zero,zero,zero,zero,zero,ymm9[1,9],zero,zero,zero,zero,zero,ymm9[2,10],zero,zero,zero,zero,zero,ymm9[19,27],zero,zero,zero,zero,zero,ymm9[20,28],zero,zero1917; AVX2-FP-NEXT:    vpor %ymm8, %ymm9, %ymm81918; AVX2-FP-NEXT:    vmovdqa {{.*#+}} ymm9 = [255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255]1919; AVX2-FP-NEXT:    vpblendvb %ymm9, %ymm8, %ymm7, %ymm71920; AVX2-FP-NEXT:    vpshufb {{.*#+}} xmm8 = xmm4[8,9,10,11,8,9,10,11,10,11,12,13,10,11,12,13]1921; AVX2-FP-NEXT:    vpermq {{.*#+}} ymm8 = ymm8[0,1,0,1]1922; AVX2-FP-NEXT:    vpermq {{.*#+}} ymm6 = ymm6[1,3,1,3]1923; AVX2-FP-NEXT:    vpshufb {{.*#+}} ymm6 = ymm6[u,u,u,1,9,u,u,u,u,u,2,10,u,u,u,u,u,19,27,u,u,u,u,u,20,28,u,u,u,u,u,21]1924; AVX2-FP-NEXT:    vmovdqa {{.*#+}} ymm9 = [u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255]1925; AVX2-FP-NEXT:    vpblendvb %ymm9, %ymm6, %ymm8, %ymm61926; AVX2-FP-NEXT:    vpermq {{.*#+}} ymm8 = ymm2[3,1,1,3]1927; AVX2-FP-NEXT:    vpshufb {{.*#+}} ymm8 = ymm8[1],zero,zero,zero,zero,zero,ymm8[10,2],zero,zero,zero,zero,zero,ymm8[11,3],zero,zero,zero,zero,zero,ymm8[20,28],zero,zero,zero,zero,zero,ymm8[21,29],zero,zero,zero1928; AVX2-FP-NEXT:    vpermq {{.*#+}} ymm9 = ymm3[1,3,3,1]1929; AVX2-FP-NEXT:    vpshufb {{.*#+}} ymm9 = zero,ymm9[1,9],zero,zero,zero,zero,zero,ymm9[2,10],zero,zero,zero,zero,zero,ymm9[3,19],zero,zero,zero,zero,zero,ymm9[28,20],zero,zero,zero,zero,zero,ymm9[29,21],zero1930; AVX2-FP-NEXT:    vpor %ymm8, %ymm9, %ymm81931; AVX2-FP-NEXT:    vmovdqa {{.*#+}} ymm9 = [255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0]1932; AVX2-FP-NEXT:    vpblendvb %ymm9, %ymm8, %ymm6, %ymm61933; AVX2-FP-NEXT:    vpermq {{.*#+}} ymm3 = ymm3[1,3,2,3]1934; AVX2-FP-NEXT:    vpshufb {{.*#+}} xmm3 = zero,zero,zero,zero,xmm3[6,14],zero,zero,zero,zero,zero,xmm3[7,15],zero,zero,zero1935; AVX2-FP-NEXT:    vpermq {{.*#+}} ymm2 = ymm2[1,3,2,3]1936; AVX2-FP-NEXT:    vpshufb {{.*#+}} xmm2 = zero,zero,xmm2[6,14],zero,zero,zero,zero,zero,xmm2[7,15],zero,zero,zero,zero,zero1937; AVX2-FP-NEXT:    vpor %xmm3, %xmm2, %xmm21938; AVX2-FP-NEXT:    vpunpckhbw {{.*#+}} xmm0 = xmm1[8],xmm0[8],xmm1[9],xmm0[9],xmm1[10],xmm0[10],xmm1[11],xmm0[11],xmm1[12],xmm0[12],xmm1[13],xmm0[13],xmm1[14],xmm0[14],xmm1[15],xmm0[15]1939; AVX2-FP-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[10],zero,zero,zero,zero,zero,xmm0[13,12],zero,zero,zero,zero,zero,xmm0[15,14],zero1940; AVX2-FP-NEXT:    vpshufb {{.*#+}} xmm1 = zero,xmm4[13,14,15,4,5],zero,zero,xmm4[14,15,14,15,12],zero,zero,xmm4[15]1941; AVX2-FP-NEXT:    vpor %xmm1, %xmm0, %xmm01942; AVX2-FP-NEXT:    vmovdqa %ymm6, 64(%rax)1943; AVX2-FP-NEXT:    vmovdqa %ymm7, (%rax)1944; AVX2-FP-NEXT:    vmovdqa {{.*#+}} xmm1 = [0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0]1945; AVX2-FP-NEXT:    vpblendvb %xmm1, %xmm2, %xmm0, %xmm01946; AVX2-FP-NEXT:    vmovdqa %xmm0, 96(%rax)1947; AVX2-FP-NEXT:    vmovdqa %ymm5, 32(%rax)1948; AVX2-FP-NEXT:    vzeroupper1949; AVX2-FP-NEXT:    retq1950;1951; AVX2-FCP-LABEL: store_i8_stride7_vf16:1952; AVX2-FCP:       # %bb.0:1953; AVX2-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax1954; AVX2-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r101955; AVX2-FCP-NEXT:    vmovdqa (%rdi), %xmm31956; AVX2-FCP-NEXT:    vmovdqa (%rdx), %xmm41957; AVX2-FCP-NEXT:    vmovdqa (%r8), %xmm11958; AVX2-FCP-NEXT:    vmovdqa (%r9), %xmm21959; AVX2-FCP-NEXT:    vmovdqa (%r10), %xmm01960; AVX2-FCP-NEXT:    vinserti128 $1, (%rsi), %ymm3, %ymm31961; AVX2-FCP-NEXT:    vinserti128 $1, (%rcx), %ymm4, %ymm41962; AVX2-FCP-NEXT:    vinserti128 $1, %xmm2, %ymm1, %ymm61963; AVX2-FCP-NEXT:    vpshuflw {{.*#+}} xmm5 = xmm0[1,1,0,0,4,5,6,7]1964; AVX2-FCP-NEXT:    vpmovsxbd {{.*#+}} ymm7 = [0,1,0,1,2,0,0,1]1965; AVX2-FCP-NEXT:    vpermd %ymm5, %ymm7, %ymm51966; AVX2-FCP-NEXT:    vpermq {{.*#+}} ymm7 = ymm6[0,2,0,2]1967; AVX2-FCP-NEXT:    vpshufb {{.*#+}} ymm7 = ymm7[u,u,u,u,0,8,u,u,u,u,u,1,9,u,u,u,u,u,18,26,u,u,u,u,u,19,27,u,u,u,u,u]1968; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} ymm8 = [u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u]1969; AVX2-FCP-NEXT:    vpblendvb %ymm8, %ymm7, %ymm5, %ymm51970; AVX2-FCP-NEXT:    vpermq {{.*#+}} ymm7 = ymm4[0,2,0,2]1971; AVX2-FCP-NEXT:    vpshufb {{.*#+}} ymm7 = zero,zero,ymm7[0,8],zero,zero,zero,zero,zero,ymm7[1,9],zero,zero,zero,zero,zero,ymm7[18,26],zero,zero,zero,zero,zero,ymm7[19,27],zero,zero,zero,zero,zero,ymm7[20,28]1972; AVX2-FCP-NEXT:    vpermq {{.*#+}} ymm8 = ymm3[0,2,0,2]1973; AVX2-FCP-NEXT:    vpshufb {{.*#+}} ymm8 = ymm8[0,8],zero,zero,zero,zero,zero,ymm8[1,9],zero,zero,zero,zero,zero,ymm8[2,10],zero,zero,zero,zero,zero,ymm8[19,27],zero,zero,zero,zero,zero,ymm8[20,28],zero,zero1974; AVX2-FCP-NEXT:    vpor %ymm7, %ymm8, %ymm71975; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} ymm8 = [255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255]1976; AVX2-FCP-NEXT:    vpblendvb %ymm8, %ymm7, %ymm5, %ymm51977; AVX2-FCP-NEXT:    vpshufb {{.*#+}} xmm7 = xmm0[4,5,4,5,4,5,8,9,6,7,6,7,6,7,6,7]1978; AVX2-FCP-NEXT:    vpermq {{.*#+}} ymm7 = ymm7[0,0,1,0]1979; AVX2-FCP-NEXT:    vbroadcasti128 {{.*#+}} ymm8 = [1,5,2,6,1,5,2,6]1980; AVX2-FCP-NEXT:    # ymm8 = mem[0,1,0,1]1981; AVX2-FCP-NEXT:    vpermd %ymm6, %ymm8, %ymm91982; AVX2-FCP-NEXT:    vpshufb {{.*#+}} ymm9 = ymm9[0,4,u,u,u,u,u,1,5,u,u,u,u,u,2,6,u,u,u,u,u,19,23,u,u,u,u,u,24,28,u,u]1983; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} ymm10 = [255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u]1984; AVX2-FCP-NEXT:    vpblendvb %ymm10, %ymm9, %ymm7, %ymm71985; AVX2-FCP-NEXT:    vpermd %ymm4, %ymm8, %ymm91986; AVX2-FCP-NEXT:    vpshufb {{.*#+}} ymm9 = zero,zero,zero,zero,zero,ymm9[1,5],zero,zero,zero,zero,zero,ymm9[2,6],zero,zero,zero,zero,zero,ymm9[19,23],zero,zero,zero,zero,zero,ymm9[24,28],zero,zero,zero,zero1987; AVX2-FCP-NEXT:    vpermd %ymm3, %ymm8, %ymm81988; AVX2-FCP-NEXT:    vpshufb {{.*#+}} ymm8 = zero,zero,zero,ymm8[1,5],zero,zero,zero,zero,zero,ymm8[2,6],zero,zero,zero,zero,zero,ymm8[19,23],zero,zero,zero,zero,zero,ymm8[24,28],zero,zero,zero,zero,zero,ymm8[25]1989; AVX2-FCP-NEXT:    vpor %ymm9, %ymm8, %ymm81990; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} ymm9 = [0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255]1991; AVX2-FCP-NEXT:    vpblendvb %ymm9, %ymm8, %ymm7, %ymm71992; AVX2-FCP-NEXT:    vpshufhw {{.*#+}} xmm8 = xmm0[0,1,2,3,4,5,5,6]1993; AVX2-FCP-NEXT:    vbroadcasti128 {{.*#+}} ymm9 = [2,2,3,3,2,2,3,3]1994; AVX2-FCP-NEXT:    # ymm9 = mem[0,1,0,1]1995; AVX2-FCP-NEXT:    vpermd %ymm8, %ymm9, %ymm81996; AVX2-FCP-NEXT:    vpermq {{.*#+}} ymm6 = ymm6[1,3,1,3]1997; AVX2-FCP-NEXT:    vpshufb {{.*#+}} ymm6 = ymm6[u,u,u,1,9,u,u,u,u,u,2,10,u,u,u,u,u,19,27,u,u,u,u,u,20,28,u,u,u,u,u,21]1998; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} ymm9 = [u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255]1999; AVX2-FCP-NEXT:    vpblendvb %ymm9, %ymm6, %ymm8, %ymm62000; AVX2-FCP-NEXT:    vpermq {{.*#+}} ymm8 = ymm3[3,1,1,3]2001; AVX2-FCP-NEXT:    vpshufb {{.*#+}} ymm8 = ymm8[1],zero,zero,zero,zero,zero,ymm8[10,2],zero,zero,zero,zero,zero,ymm8[11,3],zero,zero,zero,zero,zero,ymm8[20,28],zero,zero,zero,zero,zero,ymm8[21,29],zero,zero,zero2002; AVX2-FCP-NEXT:    vpermq {{.*#+}} ymm9 = ymm4[1,3,3,1]2003; AVX2-FCP-NEXT:    vpshufb {{.*#+}} ymm9 = zero,ymm9[1,9],zero,zero,zero,zero,zero,ymm9[2,10],zero,zero,zero,zero,zero,ymm9[3,19],zero,zero,zero,zero,zero,ymm9[28,20],zero,zero,zero,zero,zero,ymm9[29,21],zero2004; AVX2-FCP-NEXT:    vpor %ymm8, %ymm9, %ymm82005; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} ymm9 = [255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0]2006; AVX2-FCP-NEXT:    vpblendvb %ymm9, %ymm8, %ymm6, %ymm62007; AVX2-FCP-NEXT:    vpermq {{.*#+}} ymm4 = ymm4[1,3,2,3]2008; AVX2-FCP-NEXT:    vpshufb {{.*#+}} xmm4 = zero,zero,zero,zero,xmm4[6,14],zero,zero,zero,zero,zero,xmm4[7,15],zero,zero,zero2009; AVX2-FCP-NEXT:    vpermq {{.*#+}} ymm3 = ymm3[1,3,2,3]2010; AVX2-FCP-NEXT:    vpshufb {{.*#+}} xmm3 = zero,zero,xmm3[6,14],zero,zero,zero,zero,zero,xmm3[7,15],zero,zero,zero,zero,zero2011; AVX2-FCP-NEXT:    vpor %xmm4, %xmm3, %xmm32012; AVX2-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm1 = xmm2[8],xmm1[8],xmm2[9],xmm1[9],xmm2[10],xmm1[10],xmm2[11],xmm1[11],xmm2[12],xmm1[12],xmm2[13],xmm1[13],xmm2[14],xmm1[14],xmm2[15],xmm1[15]2013; AVX2-FCP-NEXT:    vpshufb {{.*#+}} xmm1 = xmm1[10],zero,zero,zero,zero,zero,xmm1[13,12],zero,zero,zero,zero,zero,xmm1[15,14],zero2014; AVX2-FCP-NEXT:    vpshufb {{.*#+}} xmm0 = zero,xmm0[13,14,15,4,5],zero,zero,xmm0[14,15,14,15,12],zero,zero,xmm0[15]2015; AVX2-FCP-NEXT:    vpor %xmm0, %xmm1, %xmm02016; AVX2-FCP-NEXT:    vmovdqa %ymm6, 64(%rax)2017; AVX2-FCP-NEXT:    vmovdqa %ymm7, 32(%rax)2018; AVX2-FCP-NEXT:    vmovdqa %ymm5, (%rax)2019; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} xmm1 = [0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0]2020; AVX2-FCP-NEXT:    vpblendvb %xmm1, %xmm3, %xmm0, %xmm02021; AVX2-FCP-NEXT:    vmovdqa %xmm0, 96(%rax)2022; AVX2-FCP-NEXT:    vzeroupper2023; AVX2-FCP-NEXT:    retq2024;2025; AVX512-LABEL: store_i8_stride7_vf16:2026; AVX512:       # %bb.0:2027; AVX512-NEXT:    movq {{[0-9]+}}(%rsp), %rax2028; AVX512-NEXT:    movq {{[0-9]+}}(%rsp), %r102029; AVX512-NEXT:    vmovdqa (%rdi), %xmm42030; AVX512-NEXT:    vmovdqa (%rdx), %xmm32031; AVX512-NEXT:    vmovdqa (%r8), %xmm12032; AVX512-NEXT:    vmovdqa (%r9), %xmm22033; AVX512-NEXT:    vmovdqa (%r10), %xmm02034; AVX512-NEXT:    vinserti128 $1, (%rcx), %ymm3, %ymm32035; AVX512-NEXT:    vpshufb {{.*#+}} ymm5 = ymm3[u,u,u,u,u,5],zero,ymm3[u,u,u,u,u,6],zero,ymm3[u,u,u,u,u],zero,ymm3[23,u,u,u,u,u],zero,ymm3[24,u,u,u,u]2036; AVX512-NEXT:    vpermq {{.*#+}} ymm6 = ymm3[2,3,0,1]2037; AVX512-NEXT:    vpshufb {{.*#+}} ymm6 = ymm6[u,u,u,u,u],zero,ymm6[5,u,u,u,u,u],zero,ymm6[6,u,u,u,u,u,23],zero,ymm6[u,u,u,u,u,24],zero,ymm6[u,u,u,u]2038; AVX512-NEXT:    vmovdqa {{.*#+}} ymm7 = [255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255]2039; AVX512-NEXT:    vpternlogq {{.*#+}} ymm6 = ~ymm7 & (ymm6 | ymm5)2040; AVX512-NEXT:    vpermq {{.*#+}} ymm5 = ymm3[0,2,0,2]2041; AVX512-NEXT:    vpshufb {{.*#+}} ymm5 = zero,zero,ymm5[0,8,u,u,u],zero,zero,ymm5[1,9,u,u,u],zero,zero,ymm5[18,26,u,u,u],zero,zero,ymm5[19,27,u,u,u],zero,zero,ymm5[20,28]2042; AVX512-NEXT:    vinserti64x4 $1, %ymm6, %zmm5, %zmm52043; AVX512-NEXT:    vinserti128 $1, (%rsi), %ymm4, %ymm42044; AVX512-NEXT:    vpshufb {{.*#+}} ymm6 = ymm4[u,u,u,5],zero,ymm4[u,u,u,u,u,6],zero,ymm4[u,u,u,u,u],zero,ymm4[23,u,u,u,u,u],zero,ymm4[24,u,u,u,u,u],zero2045; AVX512-NEXT:    vpermq {{.*#+}} ymm8 = ymm4[2,3,0,1]2046; AVX512-NEXT:    vpshufb {{.*#+}} ymm8 = ymm8[u,u,u],zero,ymm8[5,u,u,u,u,u],zero,ymm8[6,u,u,u,u,u,23],zero,ymm8[u,u,u,u,u,24],zero,ymm8[u,u,u,u,u,25]2047; AVX512-NEXT:    vpternlogq {{.*#+}} ymm8 = ymm7 & (ymm8 | ymm6)2048; AVX512-NEXT:    vpermq {{.*#+}} ymm6 = ymm4[0,2,0,2]2049; AVX512-NEXT:    vpshufb {{.*#+}} ymm6 = ymm6[0,8],zero,zero,ymm6[u,u,u,1,9],zero,zero,ymm6[u,u,u,2,10],zero,zero,ymm6[u,u,u,19,27],zero,zero,ymm6[u,u,u,20,28],zero,zero2050; AVX512-NEXT:    vinserti64x4 $1, %ymm8, %zmm6, %zmm62051; AVX512-NEXT:    vporq %zmm5, %zmm6, %zmm52052; AVX512-NEXT:    vinserti128 $1, %xmm2, %ymm1, %ymm62053; AVX512-NEXT:    vpshufb {{.*#+}} ymm7 = ymm6[4],zero,ymm6[u,u,u,u,u,5],zero,ymm6[u,u,u,u,u,6],zero,ymm6[u,u,u,u,u],zero,ymm6[23,u,u,u,u,u],zero,ymm6[24,u,u]2054; AVX512-NEXT:    vpermq {{.*#+}} ymm8 = ymm6[2,3,0,1]2055; AVX512-NEXT:    vpshufb {{.*#+}} ymm8 = zero,ymm8[4,u,u,u,u,u],zero,ymm8[5,u,u,u,u,u],zero,ymm8[6,u,u,u,u,u,23],zero,ymm8[u,u,u,u,u,24],zero,ymm8[u,u]2056; AVX512-NEXT:    vpternlogq {{.*#+}} ymm8 = mem & (ymm8 | ymm7)2057; AVX512-NEXT:    vpermq {{.*#+}} ymm7 = ymm6[0,2,0,2]2058; AVX512-NEXT:    vpshufb {{.*#+}} ymm7 = ymm7[u,u,u,u,0,8],zero,ymm7[u,u,u,u,1,9],zero,ymm7[u,u,u,u,18,26],zero,ymm7[u,u,u,u,19,27],zero,ymm7[u,u,u,u]2059; AVX512-NEXT:    vinserti64x4 $1, %ymm8, %zmm7, %zmm72060; AVX512-NEXT:    vpshufb {{.*#+}} xmm8 = xmm0[4,5,4,5,4,5,8,9,6,7,6,7,6,7,6,7]2061; AVX512-NEXT:    vpshuflw {{.*#+}} xmm9 = xmm0[1,1,0,0,4,5,6,7]2062; AVX512-NEXT:    vpshufd {{.*#+}} xmm9 = xmm9[0,1,2,0]2063; AVX512-NEXT:    vinserti64x4 $1, %ymm8, %zmm9, %zmm82064; AVX512-NEXT:    vpermq {{.*#+}} zmm8 = zmm8[0,0,1,0,4,4,5,4]2065; AVX512-NEXT:    vpternlogq {{.*#+}} zmm8 = (zmm8 & mem) | zmm72066; AVX512-NEXT:    vpternlogq {{.*#+}} zmm8 = zmm8 ^ (mem & (zmm8 ^ zmm5))2067; AVX512-NEXT:    vpermq {{.*#+}} ymm5 = ymm4[3,1,1,3]2068; AVX512-NEXT:    vpshufb {{.*#+}} ymm5 = ymm5[1],zero,zero,ymm5[u,u,u,10,2],zero,zero,ymm5[u,u,u,11,3],zero,zero,ymm5[u,u,u,20,28],zero,zero,ymm5[u,u,u,21,29],zero,zero,ymm5[u]2069; AVX512-NEXT:    vpermq {{.*#+}} ymm7 = ymm3[1,3,3,1]2070; AVX512-NEXT:    vpshufb {{.*#+}} ymm7 = zero,ymm7[1,9,u,u,u],zero,zero,ymm7[2,10,u,u,u],zero,zero,ymm7[3,19,u,u,u],zero,zero,ymm7[28,20,u,u,u],zero,zero,ymm7[29,21,u]2071; AVX512-NEXT:    vpor %ymm5, %ymm7, %ymm52072; AVX512-NEXT:    vpshufhw {{.*#+}} xmm7 = xmm0[0,1,2,3,4,5,5,6]2073; AVX512-NEXT:    vpshufd {{.*#+}} xmm7 = xmm7[2,2,3,3]2074; AVX512-NEXT:    vpermq {{.*#+}} ymm7 = ymm7[0,1,0,1]2075; AVX512-NEXT:    vpermq {{.*#+}} ymm6 = ymm6[1,3,1,3]2076; AVX512-NEXT:    vpshufb {{.*#+}} ymm6 = ymm6[u,u,u,1,9],zero,ymm6[u,u,u,u,2,10],zero,ymm6[u,u,u,u,19,27],zero,ymm6[u,u,u,u,20,28],zero,ymm6[u,u,u,u,21]2077; AVX512-NEXT:    vpternlogq {{.*#+}} ymm6 = ymm6 | (ymm7 & ~mem)2078; AVX512-NEXT:    vpternlogq {{.*#+}} ymm6 = ymm6 ^ (mem & (ymm6 ^ ymm5))2079; AVX512-NEXT:    vpermq {{.*#+}} ymm3 = ymm3[1,3,2,3]2080; AVX512-NEXT:    vpshufb {{.*#+}} xmm3 = xmm3[u,u],zero,zero,xmm3[6,14,u,u,u],zero,zero,xmm3[7,15,u,u,u]2081; AVX512-NEXT:    vpermq {{.*#+}} ymm4 = ymm4[1,3,2,3]2082; AVX512-NEXT:    vpshufb {{.*#+}} xmm4 = xmm4[u,u,6,14],zero,zero,xmm4[u,u,u,7,15],zero,zero,xmm4[u,u,u]2083; AVX512-NEXT:    vpor %xmm3, %xmm4, %xmm32084; AVX512-NEXT:    vpunpckhbw {{.*#+}} xmm1 = xmm2[8],xmm1[8],xmm2[9],xmm1[9],xmm2[10],xmm1[10],xmm2[11],xmm1[11],xmm2[12],xmm1[12],xmm2[13],xmm1[13],xmm2[14],xmm1[14],xmm2[15],xmm1[15]2085; AVX512-NEXT:    vpshufb {{.*#+}} xmm1 = xmm1[10],zero,xmm1[u,u,u,u,13,12],zero,xmm1[u,u,u,u,15,14],zero2086; AVX512-NEXT:    vpshufb {{.*#+}} xmm0 = zero,xmm0[13,u,u,u,u],zero,zero,xmm0[14,u,u,u,u],zero,zero,xmm0[15]2087; AVX512-NEXT:    vpor %xmm0, %xmm1, %xmm02088; AVX512-NEXT:    vpternlogq {{.*#+}} xmm0 = xmm0 ^ (mem & (xmm0 ^ xmm3))2089; AVX512-NEXT:    vmovdqa %ymm6, 64(%rax)2090; AVX512-NEXT:    vmovdqa %xmm0, 96(%rax)2091; AVX512-NEXT:    vmovdqa64 %zmm8, (%rax)2092; AVX512-NEXT:    vzeroupper2093; AVX512-NEXT:    retq2094;2095; AVX512-FCP-LABEL: store_i8_stride7_vf16:2096; AVX512-FCP:       # %bb.0:2097; AVX512-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax2098; AVX512-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r102099; AVX512-FCP-NEXT:    vmovdqa (%rdi), %xmm32100; AVX512-FCP-NEXT:    vmovdqa (%rdx), %xmm42101; AVX512-FCP-NEXT:    vmovdqa (%r8), %xmm12102; AVX512-FCP-NEXT:    vmovdqa (%r9), %xmm22103; AVX512-FCP-NEXT:    vmovdqa (%r10), %xmm02104; AVX512-FCP-NEXT:    vinserti128 $1, (%rcx), %ymm4, %ymm42105; AVX512-FCP-NEXT:    vpermq {{.*#+}} ymm5 = ymm4[0,2,0,2]2106; AVX512-FCP-NEXT:    vpshufb {{.*#+}} ymm5 = zero,zero,ymm5[0,8,u,u,u],zero,zero,ymm5[1,9,u,u,u],zero,zero,ymm5[18,26,u,u,u],zero,zero,ymm5[19,27,u,u,u],zero,zero,ymm5[20,28]2107; AVX512-FCP-NEXT:    vbroadcasti128 {{.*#+}} ymm6 = [1,5,2,6,1,5,2,6]2108; AVX512-FCP-NEXT:    # ymm6 = mem[0,1,0,1]2109; AVX512-FCP-NEXT:    vpermd %ymm4, %ymm6, %ymm72110; AVX512-FCP-NEXT:    vpshufb {{.*#+}} ymm7 = ymm7[u,u,u],zero,zero,ymm7[1,5,u,u,u],zero,zero,ymm7[2,6,u,u,u],zero,zero,ymm7[19,23,u,u,u],zero,zero,ymm7[24,28,u,u,u],zero2111; AVX512-FCP-NEXT:    vinserti64x4 $1, %ymm7, %zmm5, %zmm52112; AVX512-FCP-NEXT:    vinserti128 $1, (%rsi), %ymm3, %ymm32113; AVX512-FCP-NEXT:    vpermq {{.*#+}} ymm7 = ymm3[0,2,0,2]2114; AVX512-FCP-NEXT:    vpshufb {{.*#+}} ymm7 = ymm7[0,8],zero,zero,ymm7[u,u,u,1,9],zero,zero,ymm7[u,u,u,2,10],zero,zero,ymm7[u,u,u,19,27],zero,zero,ymm7[u,u,u,20,28],zero,zero2115; AVX512-FCP-NEXT:    vpermd %ymm3, %ymm6, %ymm62116; AVX512-FCP-NEXT:    vpshufb {{.*#+}} ymm6 = ymm6[u,u,u,1,5],zero,zero,ymm6[u,u,u,2,6],zero,zero,ymm6[u,u,u,19,23],zero,zero,ymm6[u,u,u,24,28],zero,zero,ymm6[u,u,u,25]2117; AVX512-FCP-NEXT:    vinserti64x4 $1, %ymm6, %zmm7, %zmm62118; AVX512-FCP-NEXT:    vporq %zmm5, %zmm6, %zmm52119; AVX512-FCP-NEXT:    vpshuflw {{.*#+}} xmm6 = xmm0[1,1,0,0,4,5,6,7]2120; AVX512-FCP-NEXT:    vpshufb {{.*#+}} xmm7 = xmm0[4,5,4,5,4,5,8,9,6,7,6,7,6,7,6,7]2121; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm8 = [0,17,0,17,0,16,16,0,0,1,0,1,2,3,0,1]2122; AVX512-FCP-NEXT:    vpermi2d %zmm6, %zmm7, %zmm82123; AVX512-FCP-NEXT:    vbroadcasti128 {{.*#+}} ymm6 = [1,9,2,10,1,9,2,10]2124; AVX512-FCP-NEXT:    # ymm6 = mem[0,1,0,1]2125; AVX512-FCP-NEXT:    vpermi2d %ymm2, %ymm1, %ymm62126; AVX512-FCP-NEXT:    vpshufb {{.*#+}} ymm6 = ymm6[0,4],zero,ymm6[u,u,u,u,1,5],zero,ymm6[u,u,u,u,2,6],zero,ymm6[u,u,u,u,19,23],zero,ymm6[u,u,u,u,24,28],zero,ymm6[u]2127; AVX512-FCP-NEXT:    vinserti128 $1, %xmm2, %ymm1, %ymm72128; AVX512-FCP-NEXT:    vpermq {{.*#+}} ymm9 = ymm7[0,2,0,2]2129; AVX512-FCP-NEXT:    vpshufb {{.*#+}} ymm9 = ymm9[u,u,u,u,0,8],zero,ymm9[u,u,u,u,1,9],zero,ymm9[u,u,u,u,18,26],zero,ymm9[u,u,u,u,19,27],zero,ymm9[u,u,u,u]2130; AVX512-FCP-NEXT:    vinserti64x4 $1, %ymm6, %zmm9, %zmm62131; AVX512-FCP-NEXT:    vpternlogq {{.*#+}} zmm6 = zmm6 | (zmm8 & mem)2132; AVX512-FCP-NEXT:    vpternlogq {{.*#+}} zmm6 = zmm6 ^ (mem & (zmm6 ^ zmm5))2133; AVX512-FCP-NEXT:    vpermq {{.*#+}} ymm5 = ymm3[3,1,1,3]2134; AVX512-FCP-NEXT:    vpshufb {{.*#+}} ymm5 = ymm5[1],zero,zero,ymm5[u,u,u,10,2],zero,zero,ymm5[u,u,u,11,3],zero,zero,ymm5[u,u,u,20,28],zero,zero,ymm5[u,u,u,21,29],zero,zero,ymm5[u]2135; AVX512-FCP-NEXT:    vpermq {{.*#+}} ymm8 = ymm4[1,3,3,1]2136; AVX512-FCP-NEXT:    vpshufb {{.*#+}} ymm8 = zero,ymm8[1,9,u,u,u],zero,zero,ymm8[2,10,u,u,u],zero,zero,ymm8[3,19,u,u,u],zero,zero,ymm8[28,20,u,u,u],zero,zero,ymm8[29,21,u]2137; AVX512-FCP-NEXT:    vpor %ymm5, %ymm8, %ymm52138; AVX512-FCP-NEXT:    vpshufhw {{.*#+}} xmm8 = xmm0[0,1,2,3,4,5,5,6]2139; AVX512-FCP-NEXT:    vbroadcasti128 {{.*#+}} ymm9 = [2,2,3,3,2,2,3,3]2140; AVX512-FCP-NEXT:    # ymm9 = mem[0,1,0,1]2141; AVX512-FCP-NEXT:    vpermd %ymm8, %ymm9, %ymm82142; AVX512-FCP-NEXT:    vpermq {{.*#+}} ymm7 = ymm7[1,3,1,3]2143; AVX512-FCP-NEXT:    vpshufb {{.*#+}} ymm7 = ymm7[u,u,u,1,9],zero,ymm7[u,u,u,u,2,10],zero,ymm7[u,u,u,u,19,27],zero,ymm7[u,u,u,u,20,28],zero,ymm7[u,u,u,u,21]2144; AVX512-FCP-NEXT:    vpternlogq {{.*#+}} ymm7 = ymm7 | (ymm8 & ~mem)2145; AVX512-FCP-NEXT:    vpternlogq {{.*#+}} ymm7 = ymm7 ^ (mem & (ymm7 ^ ymm5))2146; AVX512-FCP-NEXT:    vpermq {{.*#+}} ymm4 = ymm4[1,3,2,3]2147; AVX512-FCP-NEXT:    vpshufb {{.*#+}} xmm4 = xmm4[u,u],zero,zero,xmm4[6,14,u,u,u],zero,zero,xmm4[7,15,u,u,u]2148; AVX512-FCP-NEXT:    vpermq {{.*#+}} ymm3 = ymm3[1,3,2,3]2149; AVX512-FCP-NEXT:    vpshufb {{.*#+}} xmm3 = xmm3[u,u,6,14],zero,zero,xmm3[u,u,u,7,15],zero,zero,xmm3[u,u,u]2150; AVX512-FCP-NEXT:    vpor %xmm4, %xmm3, %xmm32151; AVX512-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm1 = xmm2[8],xmm1[8],xmm2[9],xmm1[9],xmm2[10],xmm1[10],xmm2[11],xmm1[11],xmm2[12],xmm1[12],xmm2[13],xmm1[13],xmm2[14],xmm1[14],xmm2[15],xmm1[15]2152; AVX512-FCP-NEXT:    vpshufb {{.*#+}} xmm1 = xmm1[10],zero,xmm1[u,u,u,u,13,12],zero,xmm1[u,u,u,u,15,14],zero2153; AVX512-FCP-NEXT:    vpshufb {{.*#+}} xmm0 = zero,xmm0[13,u,u,u,u],zero,zero,xmm0[14,u,u,u,u],zero,zero,xmm0[15]2154; AVX512-FCP-NEXT:    vpor %xmm0, %xmm1, %xmm02155; AVX512-FCP-NEXT:    vpternlogq {{.*#+}} xmm0 = xmm0 ^ (mem & (xmm0 ^ xmm3))2156; AVX512-FCP-NEXT:    vmovdqa %ymm7, 64(%rax)2157; AVX512-FCP-NEXT:    vmovdqa %xmm0, 96(%rax)2158; AVX512-FCP-NEXT:    vmovdqa64 %zmm6, (%rax)2159; AVX512-FCP-NEXT:    vzeroupper2160; AVX512-FCP-NEXT:    retq2161;2162; AVX512DQ-LABEL: store_i8_stride7_vf16:2163; AVX512DQ:       # %bb.0:2164; AVX512DQ-NEXT:    movq {{[0-9]+}}(%rsp), %rax2165; AVX512DQ-NEXT:    movq {{[0-9]+}}(%rsp), %r102166; AVX512DQ-NEXT:    vmovdqa (%rdi), %xmm42167; AVX512DQ-NEXT:    vmovdqa (%rdx), %xmm32168; AVX512DQ-NEXT:    vmovdqa (%r8), %xmm12169; AVX512DQ-NEXT:    vmovdqa (%r9), %xmm22170; AVX512DQ-NEXT:    vmovdqa (%r10), %xmm02171; AVX512DQ-NEXT:    vinserti128 $1, (%rcx), %ymm3, %ymm32172; AVX512DQ-NEXT:    vpshufb {{.*#+}} ymm5 = ymm3[u,u,u,u,u,5],zero,ymm3[u,u,u,u,u,6],zero,ymm3[u,u,u,u,u],zero,ymm3[23,u,u,u,u,u],zero,ymm3[24,u,u,u,u]2173; AVX512DQ-NEXT:    vpermq {{.*#+}} ymm6 = ymm3[2,3,0,1]2174; AVX512DQ-NEXT:    vpshufb {{.*#+}} ymm6 = ymm6[u,u,u,u,u],zero,ymm6[5,u,u,u,u,u],zero,ymm6[6,u,u,u,u,u,23],zero,ymm6[u,u,u,u,u,24],zero,ymm6[u,u,u,u]2175; AVX512DQ-NEXT:    vmovdqa {{.*#+}} ymm7 = [255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255]2176; AVX512DQ-NEXT:    vpternlogq {{.*#+}} ymm6 = ~ymm7 & (ymm6 | ymm5)2177; AVX512DQ-NEXT:    vpermq {{.*#+}} ymm5 = ymm3[0,2,0,2]2178; AVX512DQ-NEXT:    vpshufb {{.*#+}} ymm5 = zero,zero,ymm5[0,8,u,u,u],zero,zero,ymm5[1,9,u,u,u],zero,zero,ymm5[18,26,u,u,u],zero,zero,ymm5[19,27,u,u,u],zero,zero,ymm5[20,28]2179; AVX512DQ-NEXT:    vinserti64x4 $1, %ymm6, %zmm5, %zmm52180; AVX512DQ-NEXT:    vinserti128 $1, (%rsi), %ymm4, %ymm42181; AVX512DQ-NEXT:    vpshufb {{.*#+}} ymm6 = ymm4[u,u,u,5],zero,ymm4[u,u,u,u,u,6],zero,ymm4[u,u,u,u,u],zero,ymm4[23,u,u,u,u,u],zero,ymm4[24,u,u,u,u,u],zero2182; AVX512DQ-NEXT:    vpermq {{.*#+}} ymm8 = ymm4[2,3,0,1]2183; AVX512DQ-NEXT:    vpshufb {{.*#+}} ymm8 = ymm8[u,u,u],zero,ymm8[5,u,u,u,u,u],zero,ymm8[6,u,u,u,u,u,23],zero,ymm8[u,u,u,u,u,24],zero,ymm8[u,u,u,u,u,25]2184; AVX512DQ-NEXT:    vpternlogq {{.*#+}} ymm8 = ymm7 & (ymm8 | ymm6)2185; AVX512DQ-NEXT:    vpermq {{.*#+}} ymm6 = ymm4[0,2,0,2]2186; AVX512DQ-NEXT:    vpshufb {{.*#+}} ymm6 = ymm6[0,8],zero,zero,ymm6[u,u,u,1,9],zero,zero,ymm6[u,u,u,2,10],zero,zero,ymm6[u,u,u,19,27],zero,zero,ymm6[u,u,u,20,28],zero,zero2187; AVX512DQ-NEXT:    vinserti64x4 $1, %ymm8, %zmm6, %zmm62188; AVX512DQ-NEXT:    vporq %zmm5, %zmm6, %zmm52189; AVX512DQ-NEXT:    vinserti128 $1, %xmm2, %ymm1, %ymm62190; AVX512DQ-NEXT:    vpshufb {{.*#+}} ymm7 = ymm6[4],zero,ymm6[u,u,u,u,u,5],zero,ymm6[u,u,u,u,u,6],zero,ymm6[u,u,u,u,u],zero,ymm6[23,u,u,u,u,u],zero,ymm6[24,u,u]2191; AVX512DQ-NEXT:    vpermq {{.*#+}} ymm8 = ymm6[2,3,0,1]2192; AVX512DQ-NEXT:    vpshufb {{.*#+}} ymm8 = zero,ymm8[4,u,u,u,u,u],zero,ymm8[5,u,u,u,u,u],zero,ymm8[6,u,u,u,u,u,23],zero,ymm8[u,u,u,u,u,24],zero,ymm8[u,u]2193; AVX512DQ-NEXT:    vpternlogq {{.*#+}} ymm8 = mem & (ymm8 | ymm7)2194; AVX512DQ-NEXT:    vpermq {{.*#+}} ymm7 = ymm6[0,2,0,2]2195; AVX512DQ-NEXT:    vpshufb {{.*#+}} ymm7 = ymm7[u,u,u,u,0,8],zero,ymm7[u,u,u,u,1,9],zero,ymm7[u,u,u,u,18,26],zero,ymm7[u,u,u,u,19,27],zero,ymm7[u,u,u,u]2196; AVX512DQ-NEXT:    vinserti64x4 $1, %ymm8, %zmm7, %zmm72197; AVX512DQ-NEXT:    vpshufb {{.*#+}} xmm8 = xmm0[4,5,4,5,4,5,8,9,6,7,6,7,6,7,6,7]2198; AVX512DQ-NEXT:    vpshuflw {{.*#+}} xmm9 = xmm0[1,1,0,0,4,5,6,7]2199; AVX512DQ-NEXT:    vpshufd {{.*#+}} xmm9 = xmm9[0,1,2,0]2200; AVX512DQ-NEXT:    vinserti64x4 $1, %ymm8, %zmm9, %zmm82201; AVX512DQ-NEXT:    vpermq {{.*#+}} zmm8 = zmm8[0,0,1,0,4,4,5,4]2202; AVX512DQ-NEXT:    vpternlogq {{.*#+}} zmm8 = (zmm8 & mem) | zmm72203; AVX512DQ-NEXT:    vpternlogq {{.*#+}} zmm8 = zmm8 ^ (mem & (zmm8 ^ zmm5))2204; AVX512DQ-NEXT:    vpermq {{.*#+}} ymm5 = ymm4[3,1,1,3]2205; AVX512DQ-NEXT:    vpshufb {{.*#+}} ymm5 = ymm5[1],zero,zero,ymm5[u,u,u,10,2],zero,zero,ymm5[u,u,u,11,3],zero,zero,ymm5[u,u,u,20,28],zero,zero,ymm5[u,u,u,21,29],zero,zero,ymm5[u]2206; AVX512DQ-NEXT:    vpermq {{.*#+}} ymm7 = ymm3[1,3,3,1]2207; AVX512DQ-NEXT:    vpshufb {{.*#+}} ymm7 = zero,ymm7[1,9,u,u,u],zero,zero,ymm7[2,10,u,u,u],zero,zero,ymm7[3,19,u,u,u],zero,zero,ymm7[28,20,u,u,u],zero,zero,ymm7[29,21,u]2208; AVX512DQ-NEXT:    vpor %ymm5, %ymm7, %ymm52209; AVX512DQ-NEXT:    vpshufhw {{.*#+}} xmm7 = xmm0[0,1,2,3,4,5,5,6]2210; AVX512DQ-NEXT:    vpshufd {{.*#+}} xmm7 = xmm7[2,2,3,3]2211; AVX512DQ-NEXT:    vpermq {{.*#+}} ymm7 = ymm7[0,1,0,1]2212; AVX512DQ-NEXT:    vpermq {{.*#+}} ymm6 = ymm6[1,3,1,3]2213; AVX512DQ-NEXT:    vpshufb {{.*#+}} ymm6 = ymm6[u,u,u,1,9],zero,ymm6[u,u,u,u,2,10],zero,ymm6[u,u,u,u,19,27],zero,ymm6[u,u,u,u,20,28],zero,ymm6[u,u,u,u,21]2214; AVX512DQ-NEXT:    vpternlogq {{.*#+}} ymm6 = ymm6 | (ymm7 & ~mem)2215; AVX512DQ-NEXT:    vpternlogq {{.*#+}} ymm6 = ymm6 ^ (mem & (ymm6 ^ ymm5))2216; AVX512DQ-NEXT:    vpermq {{.*#+}} ymm3 = ymm3[1,3,2,3]2217; AVX512DQ-NEXT:    vpshufb {{.*#+}} xmm3 = xmm3[u,u],zero,zero,xmm3[6,14,u,u,u],zero,zero,xmm3[7,15,u,u,u]2218; AVX512DQ-NEXT:    vpermq {{.*#+}} ymm4 = ymm4[1,3,2,3]2219; AVX512DQ-NEXT:    vpshufb {{.*#+}} xmm4 = xmm4[u,u,6,14],zero,zero,xmm4[u,u,u,7,15],zero,zero,xmm4[u,u,u]2220; AVX512DQ-NEXT:    vpor %xmm3, %xmm4, %xmm32221; AVX512DQ-NEXT:    vpunpckhbw {{.*#+}} xmm1 = xmm2[8],xmm1[8],xmm2[9],xmm1[9],xmm2[10],xmm1[10],xmm2[11],xmm1[11],xmm2[12],xmm1[12],xmm2[13],xmm1[13],xmm2[14],xmm1[14],xmm2[15],xmm1[15]2222; AVX512DQ-NEXT:    vpshufb {{.*#+}} xmm1 = xmm1[10],zero,xmm1[u,u,u,u,13,12],zero,xmm1[u,u,u,u,15,14],zero2223; AVX512DQ-NEXT:    vpshufb {{.*#+}} xmm0 = zero,xmm0[13,u,u,u,u],zero,zero,xmm0[14,u,u,u,u],zero,zero,xmm0[15]2224; AVX512DQ-NEXT:    vpor %xmm0, %xmm1, %xmm02225; AVX512DQ-NEXT:    vpternlogq {{.*#+}} xmm0 = xmm0 ^ (mem & (xmm0 ^ xmm3))2226; AVX512DQ-NEXT:    vmovdqa %ymm6, 64(%rax)2227; AVX512DQ-NEXT:    vmovdqa %xmm0, 96(%rax)2228; AVX512DQ-NEXT:    vmovdqa64 %zmm8, (%rax)2229; AVX512DQ-NEXT:    vzeroupper2230; AVX512DQ-NEXT:    retq2231;2232; AVX512DQ-FCP-LABEL: store_i8_stride7_vf16:2233; AVX512DQ-FCP:       # %bb.0:2234; AVX512DQ-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax2235; AVX512DQ-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r102236; AVX512DQ-FCP-NEXT:    vmovdqa (%rdi), %xmm32237; AVX512DQ-FCP-NEXT:    vmovdqa (%rdx), %xmm42238; AVX512DQ-FCP-NEXT:    vmovdqa (%r8), %xmm12239; AVX512DQ-FCP-NEXT:    vmovdqa (%r9), %xmm22240; AVX512DQ-FCP-NEXT:    vmovdqa (%r10), %xmm02241; AVX512DQ-FCP-NEXT:    vinserti128 $1, (%rcx), %ymm4, %ymm42242; AVX512DQ-FCP-NEXT:    vpermq {{.*#+}} ymm5 = ymm4[0,2,0,2]2243; AVX512DQ-FCP-NEXT:    vpshufb {{.*#+}} ymm5 = zero,zero,ymm5[0,8,u,u,u],zero,zero,ymm5[1,9,u,u,u],zero,zero,ymm5[18,26,u,u,u],zero,zero,ymm5[19,27,u,u,u],zero,zero,ymm5[20,28]2244; AVX512DQ-FCP-NEXT:    vbroadcasti128 {{.*#+}} ymm6 = [1,5,2,6,1,5,2,6]2245; AVX512DQ-FCP-NEXT:    # ymm6 = mem[0,1,0,1]2246; AVX512DQ-FCP-NEXT:    vpermd %ymm4, %ymm6, %ymm72247; AVX512DQ-FCP-NEXT:    vpshufb {{.*#+}} ymm7 = ymm7[u,u,u],zero,zero,ymm7[1,5,u,u,u],zero,zero,ymm7[2,6,u,u,u],zero,zero,ymm7[19,23,u,u,u],zero,zero,ymm7[24,28,u,u,u],zero2248; AVX512DQ-FCP-NEXT:    vinserti64x4 $1, %ymm7, %zmm5, %zmm52249; AVX512DQ-FCP-NEXT:    vinserti128 $1, (%rsi), %ymm3, %ymm32250; AVX512DQ-FCP-NEXT:    vpermq {{.*#+}} ymm7 = ymm3[0,2,0,2]2251; AVX512DQ-FCP-NEXT:    vpshufb {{.*#+}} ymm7 = ymm7[0,8],zero,zero,ymm7[u,u,u,1,9],zero,zero,ymm7[u,u,u,2,10],zero,zero,ymm7[u,u,u,19,27],zero,zero,ymm7[u,u,u,20,28],zero,zero2252; AVX512DQ-FCP-NEXT:    vpermd %ymm3, %ymm6, %ymm62253; AVX512DQ-FCP-NEXT:    vpshufb {{.*#+}} ymm6 = ymm6[u,u,u,1,5],zero,zero,ymm6[u,u,u,2,6],zero,zero,ymm6[u,u,u,19,23],zero,zero,ymm6[u,u,u,24,28],zero,zero,ymm6[u,u,u,25]2254; AVX512DQ-FCP-NEXT:    vinserti64x4 $1, %ymm6, %zmm7, %zmm62255; AVX512DQ-FCP-NEXT:    vporq %zmm5, %zmm6, %zmm52256; AVX512DQ-FCP-NEXT:    vpshuflw {{.*#+}} xmm6 = xmm0[1,1,0,0,4,5,6,7]2257; AVX512DQ-FCP-NEXT:    vpshufb {{.*#+}} xmm7 = xmm0[4,5,4,5,4,5,8,9,6,7,6,7,6,7,6,7]2258; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm8 = [0,17,0,17,0,16,16,0,0,1,0,1,2,3,0,1]2259; AVX512DQ-FCP-NEXT:    vpermi2d %zmm6, %zmm7, %zmm82260; AVX512DQ-FCP-NEXT:    vbroadcasti128 {{.*#+}} ymm6 = [1,9,2,10,1,9,2,10]2261; AVX512DQ-FCP-NEXT:    # ymm6 = mem[0,1,0,1]2262; AVX512DQ-FCP-NEXT:    vpermi2d %ymm2, %ymm1, %ymm62263; AVX512DQ-FCP-NEXT:    vpshufb {{.*#+}} ymm6 = ymm6[0,4],zero,ymm6[u,u,u,u,1,5],zero,ymm6[u,u,u,u,2,6],zero,ymm6[u,u,u,u,19,23],zero,ymm6[u,u,u,u,24,28],zero,ymm6[u]2264; AVX512DQ-FCP-NEXT:    vinserti128 $1, %xmm2, %ymm1, %ymm72265; AVX512DQ-FCP-NEXT:    vpermq {{.*#+}} ymm9 = ymm7[0,2,0,2]2266; AVX512DQ-FCP-NEXT:    vpshufb {{.*#+}} ymm9 = ymm9[u,u,u,u,0,8],zero,ymm9[u,u,u,u,1,9],zero,ymm9[u,u,u,u,18,26],zero,ymm9[u,u,u,u,19,27],zero,ymm9[u,u,u,u]2267; AVX512DQ-FCP-NEXT:    vinserti64x4 $1, %ymm6, %zmm9, %zmm62268; AVX512DQ-FCP-NEXT:    vpternlogq {{.*#+}} zmm6 = zmm6 | (zmm8 & mem)2269; AVX512DQ-FCP-NEXT:    vpternlogq {{.*#+}} zmm6 = zmm6 ^ (mem & (zmm6 ^ zmm5))2270; AVX512DQ-FCP-NEXT:    vpermq {{.*#+}} ymm5 = ymm3[3,1,1,3]2271; AVX512DQ-FCP-NEXT:    vpshufb {{.*#+}} ymm5 = ymm5[1],zero,zero,ymm5[u,u,u,10,2],zero,zero,ymm5[u,u,u,11,3],zero,zero,ymm5[u,u,u,20,28],zero,zero,ymm5[u,u,u,21,29],zero,zero,ymm5[u]2272; AVX512DQ-FCP-NEXT:    vpermq {{.*#+}} ymm8 = ymm4[1,3,3,1]2273; AVX512DQ-FCP-NEXT:    vpshufb {{.*#+}} ymm8 = zero,ymm8[1,9,u,u,u],zero,zero,ymm8[2,10,u,u,u],zero,zero,ymm8[3,19,u,u,u],zero,zero,ymm8[28,20,u,u,u],zero,zero,ymm8[29,21,u]2274; AVX512DQ-FCP-NEXT:    vpor %ymm5, %ymm8, %ymm52275; AVX512DQ-FCP-NEXT:    vpshufhw {{.*#+}} xmm8 = xmm0[0,1,2,3,4,5,5,6]2276; AVX512DQ-FCP-NEXT:    vbroadcasti128 {{.*#+}} ymm9 = [2,2,3,3,2,2,3,3]2277; AVX512DQ-FCP-NEXT:    # ymm9 = mem[0,1,0,1]2278; AVX512DQ-FCP-NEXT:    vpermd %ymm8, %ymm9, %ymm82279; AVX512DQ-FCP-NEXT:    vpermq {{.*#+}} ymm7 = ymm7[1,3,1,3]2280; AVX512DQ-FCP-NEXT:    vpshufb {{.*#+}} ymm7 = ymm7[u,u,u,1,9],zero,ymm7[u,u,u,u,2,10],zero,ymm7[u,u,u,u,19,27],zero,ymm7[u,u,u,u,20,28],zero,ymm7[u,u,u,u,21]2281; AVX512DQ-FCP-NEXT:    vpternlogq {{.*#+}} ymm7 = ymm7 | (ymm8 & ~mem)2282; AVX512DQ-FCP-NEXT:    vpternlogq {{.*#+}} ymm7 = ymm7 ^ (mem & (ymm7 ^ ymm5))2283; AVX512DQ-FCP-NEXT:    vpermq {{.*#+}} ymm4 = ymm4[1,3,2,3]2284; AVX512DQ-FCP-NEXT:    vpshufb {{.*#+}} xmm4 = xmm4[u,u],zero,zero,xmm4[6,14,u,u,u],zero,zero,xmm4[7,15,u,u,u]2285; AVX512DQ-FCP-NEXT:    vpermq {{.*#+}} ymm3 = ymm3[1,3,2,3]2286; AVX512DQ-FCP-NEXT:    vpshufb {{.*#+}} xmm3 = xmm3[u,u,6,14],zero,zero,xmm3[u,u,u,7,15],zero,zero,xmm3[u,u,u]2287; AVX512DQ-FCP-NEXT:    vpor %xmm4, %xmm3, %xmm32288; AVX512DQ-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm1 = xmm2[8],xmm1[8],xmm2[9],xmm1[9],xmm2[10],xmm1[10],xmm2[11],xmm1[11],xmm2[12],xmm1[12],xmm2[13],xmm1[13],xmm2[14],xmm1[14],xmm2[15],xmm1[15]2289; AVX512DQ-FCP-NEXT:    vpshufb {{.*#+}} xmm1 = xmm1[10],zero,xmm1[u,u,u,u,13,12],zero,xmm1[u,u,u,u,15,14],zero2290; AVX512DQ-FCP-NEXT:    vpshufb {{.*#+}} xmm0 = zero,xmm0[13,u,u,u,u],zero,zero,xmm0[14,u,u,u,u],zero,zero,xmm0[15]2291; AVX512DQ-FCP-NEXT:    vpor %xmm0, %xmm1, %xmm02292; AVX512DQ-FCP-NEXT:    vpternlogq {{.*#+}} xmm0 = xmm0 ^ (mem & (xmm0 ^ xmm3))2293; AVX512DQ-FCP-NEXT:    vmovdqa %ymm7, 64(%rax)2294; AVX512DQ-FCP-NEXT:    vmovdqa %xmm0, 96(%rax)2295; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm6, (%rax)2296; AVX512DQ-FCP-NEXT:    vzeroupper2297; AVX512DQ-FCP-NEXT:    retq2298;2299; AVX512BW-LABEL: store_i8_stride7_vf16:2300; AVX512BW:       # %bb.0:2301; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax2302; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %r102303; AVX512BW-NEXT:    vmovdqa (%rdi), %xmm12304; AVX512BW-NEXT:    vmovdqa (%rdx), %xmm02305; AVX512BW-NEXT:    vmovdqa (%r8), %xmm32306; AVX512BW-NEXT:    vmovdqa (%r9), %xmm42307; AVX512BW-NEXT:    vmovdqa (%r10), %xmm22308; AVX512BW-NEXT:    vinserti128 $1, (%rcx), %ymm0, %ymm02309; AVX512BW-NEXT:    vpshufb {{.*#+}} ymm5 = zero,zero,zero,zero,zero,ymm0[5],zero,zero,zero,zero,zero,zero,ymm0[6],zero,zero,zero,zero,zero,zero,zero,ymm0[23],zero,zero,zero,zero,zero,zero,ymm0[24],zero,zero,zero,zero2310; AVX512BW-NEXT:    vpermq {{.*#+}} ymm6 = ymm0[2,3,0,1]2311; AVX512BW-NEXT:    vpshufb {{.*#+}} ymm6 = zero,zero,zero,zero,zero,zero,ymm6[5],zero,zero,zero,zero,zero,zero,ymm6[6],zero,zero,zero,zero,zero,ymm6[23],zero,zero,zero,zero,zero,zero,ymm6[24],zero,zero,zero,zero,zero2312; AVX512BW-NEXT:    vpor %ymm5, %ymm6, %ymm52313; AVX512BW-NEXT:    vinserti128 $1, (%rsi), %ymm1, %ymm12314; AVX512BW-NEXT:    vpermq {{.*#+}} ymm6 = ymm1[0,2,0,2]2315; AVX512BW-NEXT:    vpshufb {{.*#+}} ymm6 = ymm6[0,8],zero,zero,zero,zero,zero,ymm6[1,9],zero,zero,zero,zero,zero,ymm6[2,10],zero,zero,zero,zero,zero,ymm6[19,27],zero,zero,zero,zero,zero,ymm6[20,28],zero,zero2316; AVX512BW-NEXT:    vinserti64x4 $1, %ymm5, %zmm6, %zmm52317; AVX512BW-NEXT:    vpshufb {{.*#+}} ymm6 = zero,zero,zero,ymm1[5],zero,zero,zero,zero,zero,zero,ymm1[6],zero,zero,zero,zero,zero,zero,zero,ymm1[23],zero,zero,zero,zero,zero,zero,ymm1[24],zero,zero,zero,zero,zero,zero2318; AVX512BW-NEXT:    vpermq {{.*#+}} ymm7 = ymm1[2,3,0,1]2319; AVX512BW-NEXT:    vpshufb {{.*#+}} ymm7 = zero,zero,zero,zero,ymm7[5],zero,zero,zero,zero,zero,zero,ymm7[6],zero,zero,zero,zero,zero,ymm7[23],zero,zero,zero,zero,zero,zero,ymm7[24],zero,zero,zero,zero,zero,zero,ymm7[25]2320; AVX512BW-NEXT:    vpor %ymm7, %ymm6, %ymm62321; AVX512BW-NEXT:    vpermq {{.*#+}} ymm7 = ymm0[0,2,0,2]2322; AVX512BW-NEXT:    vpshufb {{.*#+}} ymm7 = zero,zero,ymm7[0,8],zero,zero,zero,zero,zero,ymm7[1,9],zero,zero,zero,zero,zero,ymm7[18,26],zero,zero,zero,zero,zero,ymm7[19,27],zero,zero,zero,zero,zero,ymm7[20,28]2323; AVX512BW-NEXT:    vinserti64x4 $1, %ymm6, %zmm7, %zmm62324; AVX512BW-NEXT:    vporq %zmm5, %zmm6, %zmm52325; AVX512BW-NEXT:    vinserti128 $1, %xmm4, %ymm3, %ymm62326; AVX512BW-NEXT:    vpshufb {{.*#+}} ymm7 = ymm6[4],zero,zero,zero,zero,zero,zero,ymm6[5],zero,zero,zero,zero,zero,zero,ymm6[6],zero,zero,zero,zero,zero,zero,zero,ymm6[23],zero,zero,zero,zero,zero,zero,ymm6[24],zero,zero2327; AVX512BW-NEXT:    vpermq {{.*#+}} ymm8 = ymm6[2,3,0,1]2328; AVX512BW-NEXT:    vpshufb {{.*#+}} ymm8 = zero,ymm8[4],zero,zero,zero,zero,zero,zero,ymm8[5],zero,zero,zero,zero,zero,zero,ymm8[6],zero,zero,zero,zero,zero,ymm8[23],zero,zero,zero,zero,zero,zero,ymm8[24],zero,zero,zero2329; AVX512BW-NEXT:    vpor %ymm7, %ymm8, %ymm72330; AVX512BW-NEXT:    vpermq {{.*#+}} ymm8 = ymm6[0,2,0,2]2331; AVX512BW-NEXT:    vpshufb {{.*#+}} ymm8 = ymm8[u,u,u,u,0,8,u,u,u,u,u,1,9,u,u,u,u,u,18,26,u,u,u,u,u,19,27,u,u,u,u,u]2332; AVX512BW-NEXT:    vinserti64x4 $1, %ymm7, %zmm8, %zmm72333; AVX512BW-NEXT:    vpmovsxbw {{.*#+}} zmm8 = [1,1,0,0,1,1,0,0,4,5,1,1,1,1,0,0,2,2,2,4,2,2,2,4,3,3,3,3,2,2,2,4]2334; AVX512BW-NEXT:    vpermw %zmm2, %zmm8, %zmm82335; AVX512BW-NEXT:    movabsq $4647998506761461824, %rcx # imm = 0x40810204081020402336; AVX512BW-NEXT:    kmovq %rcx, %k12337; AVX512BW-NEXT:    vmovdqu8 %zmm8, %zmm7 {%k1}2338; AVX512BW-NEXT:    movabsq $8133997386832558192, %rcx # imm = 0x70E1C3870E1C38702339; AVX512BW-NEXT:    kmovq %rcx, %k12340; AVX512BW-NEXT:    vmovdqu8 %zmm7, %zmm5 {%k1}2341; AVX512BW-NEXT:    vpunpckhbw {{.*#+}} xmm3 = xmm4[8],xmm3[8],xmm4[9],xmm3[9],xmm4[10],xmm3[10],xmm4[11],xmm3[11],xmm4[12],xmm3[12],xmm4[13],xmm3[13],xmm4[14],xmm3[14],xmm4[15],xmm3[15]2342; AVX512BW-NEXT:    vpshufb {{.*#+}} xmm3 = xmm3[10,u,u,u,u,u,13,12,u,u,u,u,u,15,14,u]2343; AVX512BW-NEXT:    vpshufhw {{.*#+}} xmm4 = xmm2[0,1,2,3,6,7,7,7]2344; AVX512BW-NEXT:    vpshufd {{.*#+}} xmm4 = xmm4[2,1,3,2]2345; AVX512BW-NEXT:    movw $-32510, %cx # imm = 0x81022346; AVX512BW-NEXT:    kmovd %ecx, %k12347; AVX512BW-NEXT:    vmovdqu8 %xmm4, %xmm3 {%k1}2348; AVX512BW-NEXT:    vpermq {{.*#+}} ymm4 = ymm1[1,3,2,3]2349; AVX512BW-NEXT:    vpshufb {{.*#+}} xmm4 = zero,zero,xmm4[6,14],zero,zero,zero,zero,zero,xmm4[7,15],zero,zero,zero,zero,zero2350; AVX512BW-NEXT:    vpermq {{.*#+}} ymm7 = ymm0[1,3,2,3]2351; AVX512BW-NEXT:    vpshufb {{.*#+}} xmm7 = zero,zero,zero,zero,xmm7[6,14],zero,zero,zero,zero,zero,xmm7[7,15],zero,zero,zero2352; AVX512BW-NEXT:    vpor %xmm4, %xmm7, %xmm42353; AVX512BW-NEXT:    movw $-7741, %cx # imm = 0xE1C32354; AVX512BW-NEXT:    kmovd %ecx, %k12355; AVX512BW-NEXT:    vmovdqu8 %xmm3, %xmm4 {%k1}2356; AVX512BW-NEXT:    vbroadcasti128 {{.*#+}} ymm3 = [4,5,4,5,5,6,5,6,4,5,4,5,5,6,5,6]2357; AVX512BW-NEXT:    # ymm3 = mem[0,1,0,1]2358; AVX512BW-NEXT:    vpermw %ymm2, %ymm3, %ymm22359; AVX512BW-NEXT:    vpermq {{.*#+}} ymm3 = ymm6[1,3,1,3]2360; AVX512BW-NEXT:    vpshufb {{.*#+}} ymm3 = ymm3[u,u,u,1,9,u,u,u,u,u,2,10,u,u,u,u,u,19,27,u,u,u,u,u,20,28,u,u,u,u,u,21]2361; AVX512BW-NEXT:    movl $67637280, %ecx # imm = 0x40810202362; AVX512BW-NEXT:    kmovd %ecx, %k12363; AVX512BW-NEXT:    vmovdqu8 %ymm2, %ymm3 {%k1}2364; AVX512BW-NEXT:    vpermq {{.*#+}} ymm0 = ymm0[1,3,3,1]2365; AVX512BW-NEXT:    vpshufb {{.*#+}} ymm0 = zero,ymm0[1,9],zero,zero,zero,zero,zero,ymm0[2,10],zero,zero,zero,zero,zero,ymm0[3,19],zero,zero,zero,zero,zero,ymm0[28,20],zero,zero,zero,zero,zero,ymm0[29,21],zero2366; AVX512BW-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[3,1,1,3]2367; AVX512BW-NEXT:    vpshufb {{.*#+}} ymm1 = ymm1[1],zero,zero,zero,zero,zero,ymm1[10,2],zero,zero,zero,zero,zero,ymm1[11,3],zero,zero,zero,zero,zero,ymm1[20,28],zero,zero,zero,zero,zero,ymm1[21,29],zero,zero,zero2368; AVX512BW-NEXT:    vpor %ymm0, %ymm1, %ymm02369; AVX512BW-NEXT:    movl $-2029118408, %ecx # imm = 0x870E1C382370; AVX512BW-NEXT:    kmovd %ecx, %k12371; AVX512BW-NEXT:    vmovdqu8 %ymm3, %ymm0 {%k1}2372; AVX512BW-NEXT:    vmovdqa %ymm0, 64(%rax)2373; AVX512BW-NEXT:    vmovdqa %xmm4, 96(%rax)2374; AVX512BW-NEXT:    vmovdqa64 %zmm5, (%rax)2375; AVX512BW-NEXT:    vzeroupper2376; AVX512BW-NEXT:    retq2377;2378; AVX512BW-FCP-LABEL: store_i8_stride7_vf16:2379; AVX512BW-FCP:       # %bb.0:2380; AVX512BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax2381; AVX512BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r102382; AVX512BW-FCP-NEXT:    vmovdqa (%rdi), %xmm02383; AVX512BW-FCP-NEXT:    vmovdqa (%rdx), %xmm12384; AVX512BW-FCP-NEXT:    vmovdqa (%r8), %xmm22385; AVX512BW-FCP-NEXT:    vmovdqa (%r9), %xmm32386; AVX512BW-FCP-NEXT:    vmovdqa (%r10), %xmm42387; AVX512BW-FCP-NEXT:    vbroadcasti128 {{.*#+}} ymm5 = [1,9,2,10,1,9,2,10]2388; AVX512BW-FCP-NEXT:    # ymm5 = mem[0,1,0,1]2389; AVX512BW-FCP-NEXT:    vpermi2d %ymm3, %ymm2, %ymm52390; AVX512BW-FCP-NEXT:    vinserti128 $1, %xmm3, %ymm2, %ymm62391; AVX512BW-FCP-NEXT:    vpermq {{.*#+}} ymm7 = ymm6[0,2,0,2]2392; AVX512BW-FCP-NEXT:    vinserti64x4 $1, %ymm5, %zmm7, %zmm52393; AVX512BW-FCP-NEXT:    vpshufb {{.*#+}} zmm5 = zmm5[u,u,u,u,0,8,u,u,u,u,u,1,9,u,u,u,u,u,18,26,u,u,u,u,u,19,27,u,u,u,u,u,32,36,u,u,u,u,u,33,37,u,u,u,u,u,34,38,u,u,u,u,u,51,55,u,u,u,u,u,56,60,u,u]2394; AVX512BW-FCP-NEXT:    vpmovsxbw {{.*#+}} zmm7 = [1,1,0,0,1,1,0,0,4,5,1,1,1,1,0,0,2,2,2,4,2,2,2,4,3,3,3,3,2,2,2,4]2395; AVX512BW-FCP-NEXT:    vpermw %zmm4, %zmm7, %zmm72396; AVX512BW-FCP-NEXT:    movabsq $4647998506761461824, %rdx # imm = 0x40810204081020402397; AVX512BW-FCP-NEXT:    kmovq %rdx, %k12398; AVX512BW-FCP-NEXT:    vmovdqu8 %zmm7, %zmm5 {%k1}2399; AVX512BW-FCP-NEXT:    vinserti128 $1, (%rsi), %ymm0, %ymm02400; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm7 = [0,0,4,0,0,1,4,5,1,5,0,0,1,5,2,6]2401; AVX512BW-FCP-NEXT:    vpermd %zmm0, %zmm7, %zmm82402; AVX512BW-FCP-NEXT:    vpshufb {{.*#+}} zmm8 = zmm8[0,8],zero,zero,zero,zero,zero,zmm8[1,9],zero,zero,zero,zero,zero,zmm8[2,10],zero,zero,zero,zero,zero,zmm8[19,27],zero,zero,zero,zero,zero,zmm8[20,28],zero,zero,zero,zero,zero,zmm8[33,37],zero,zero,zero,zero,zero,zmm8[34,38],zero,zero,zero,zero,zero,zmm8[51,55],zero,zero,zero,zero,zero,zmm8[56,60],zero,zero,zero,zero,zero,zmm8[57]2403; AVX512BW-FCP-NEXT:    vinserti128 $1, (%rcx), %ymm1, %ymm12404; AVX512BW-FCP-NEXT:    vpermd %zmm1, %zmm7, %zmm72405; AVX512BW-FCP-NEXT:    vpshufb {{.*#+}} zmm7 = zero,zero,zmm7[0,8],zero,zero,zero,zero,zero,zmm7[1,9],zero,zero,zero,zero,zero,zmm7[18,26],zero,zero,zero,zero,zero,zmm7[19,27],zero,zero,zero,zero,zero,zmm7[20,28],zero,zero,zero,zero,zero,zmm7[33,37],zero,zero,zero,zero,zero,zmm7[34,38],zero,zero,zero,zero,zero,zmm7[51,55],zero,zero,zero,zero,zero,zmm7[56,60],zero,zero,zero,zero2406; AVX512BW-FCP-NEXT:    vporq %zmm8, %zmm7, %zmm72407; AVX512BW-FCP-NEXT:    movabsq $8133997386832558192, %rcx # imm = 0x70E1C3870E1C38702408; AVX512BW-FCP-NEXT:    kmovq %rcx, %k12409; AVX512BW-FCP-NEXT:    vmovdqu8 %zmm5, %zmm7 {%k1}2410; AVX512BW-FCP-NEXT:    vbroadcasti128 {{.*#+}} ymm5 = [4,5,4,5,5,6,5,6,4,5,4,5,5,6,5,6]2411; AVX512BW-FCP-NEXT:    # ymm5 = mem[0,1,0,1]2412; AVX512BW-FCP-NEXT:    vpermw %ymm4, %ymm5, %ymm52413; AVX512BW-FCP-NEXT:    vpermq {{.*#+}} ymm6 = ymm6[1,3,1,3]2414; AVX512BW-FCP-NEXT:    vpshufb {{.*#+}} ymm6 = ymm6[u,u,u,1,9,u,u,u,u,u,2,10,u,u,u,u,u,19,27,u,u,u,u,u,20,28,u,u,u,u,u,21]2415; AVX512BW-FCP-NEXT:    movl $67637280, %ecx # imm = 0x40810202416; AVX512BW-FCP-NEXT:    kmovd %ecx, %k12417; AVX512BW-FCP-NEXT:    vmovdqu8 %ymm5, %ymm6 {%k1}2418; AVX512BW-FCP-NEXT:    vpermq {{.*#+}} ymm5 = ymm1[1,3,3,1]2419; AVX512BW-FCP-NEXT:    vpshufb {{.*#+}} ymm5 = zero,ymm5[1,9],zero,zero,zero,zero,zero,ymm5[2,10],zero,zero,zero,zero,zero,ymm5[3,19],zero,zero,zero,zero,zero,ymm5[28,20],zero,zero,zero,zero,zero,ymm5[29,21],zero2420; AVX512BW-FCP-NEXT:    vpermq {{.*#+}} ymm8 = ymm0[3,1,1,3]2421; AVX512BW-FCP-NEXT:    vpshufb {{.*#+}} ymm8 = ymm8[1],zero,zero,zero,zero,zero,ymm8[10,2],zero,zero,zero,zero,zero,ymm8[11,3],zero,zero,zero,zero,zero,ymm8[20,28],zero,zero,zero,zero,zero,ymm8[21,29],zero,zero,zero2422; AVX512BW-FCP-NEXT:    vpor %ymm5, %ymm8, %ymm52423; AVX512BW-FCP-NEXT:    movl $-2029118408, %ecx # imm = 0x870E1C382424; AVX512BW-FCP-NEXT:    kmovd %ecx, %k12425; AVX512BW-FCP-NEXT:    vmovdqu8 %ymm6, %ymm5 {%k1}2426; AVX512BW-FCP-NEXT:    vpermq {{.*#+}} ymm0 = ymm0[1,3,2,3]2427; AVX512BW-FCP-NEXT:    vpshufb {{.*#+}} xmm0 = zero,zero,xmm0[6,14],zero,zero,zero,zero,zero,xmm0[7,15],zero,zero,zero,zero,zero2428; AVX512BW-FCP-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[1,3,2,3]2429; AVX512BW-FCP-NEXT:    vpshufb {{.*#+}} xmm1 = zero,zero,zero,zero,xmm1[6,14],zero,zero,zero,zero,zero,xmm1[7,15],zero,zero,zero2430; AVX512BW-FCP-NEXT:    vpor %xmm0, %xmm1, %xmm02431; AVX512BW-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm1 = xmm3[8],xmm2[8],xmm3[9],xmm2[9],xmm3[10],xmm2[10],xmm3[11],xmm2[11],xmm3[12],xmm2[12],xmm3[13],xmm2[13],xmm3[14],xmm2[14],xmm3[15],xmm2[15]2432; AVX512BW-FCP-NEXT:    vpshufb {{.*#+}} xmm1 = xmm1[10],zero,zero,zero,zero,zero,xmm1[13,12],zero,zero,zero,zero,zero,xmm1[15,14],zero2433; AVX512BW-FCP-NEXT:    vpshufb {{.*#+}} xmm2 = zero,xmm4[13],zero,zero,zero,zero,zero,zero,xmm4[14],zero,zero,zero,zero,zero,zero,xmm4[15]2434; AVX512BW-FCP-NEXT:    vpternlogq {{.*#+}} xmm2 = xmm2 | xmm0 | xmm12435; AVX512BW-FCP-NEXT:    vmovdqa %ymm5, 64(%rax)2436; AVX512BW-FCP-NEXT:    vmovdqa %xmm2, 96(%rax)2437; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm7, (%rax)2438; AVX512BW-FCP-NEXT:    vzeroupper2439; AVX512BW-FCP-NEXT:    retq2440;2441; AVX512DQ-BW-LABEL: store_i8_stride7_vf16:2442; AVX512DQ-BW:       # %bb.0:2443; AVX512DQ-BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax2444; AVX512DQ-BW-NEXT:    movq {{[0-9]+}}(%rsp), %r102445; AVX512DQ-BW-NEXT:    vmovdqa (%rdi), %xmm12446; AVX512DQ-BW-NEXT:    vmovdqa (%rdx), %xmm02447; AVX512DQ-BW-NEXT:    vmovdqa (%r8), %xmm32448; AVX512DQ-BW-NEXT:    vmovdqa (%r9), %xmm42449; AVX512DQ-BW-NEXT:    vmovdqa (%r10), %xmm22450; AVX512DQ-BW-NEXT:    vinserti128 $1, (%rcx), %ymm0, %ymm02451; AVX512DQ-BW-NEXT:    vpshufb {{.*#+}} ymm5 = zero,zero,zero,zero,zero,ymm0[5],zero,zero,zero,zero,zero,zero,ymm0[6],zero,zero,zero,zero,zero,zero,zero,ymm0[23],zero,zero,zero,zero,zero,zero,ymm0[24],zero,zero,zero,zero2452; AVX512DQ-BW-NEXT:    vpermq {{.*#+}} ymm6 = ymm0[2,3,0,1]2453; AVX512DQ-BW-NEXT:    vpshufb {{.*#+}} ymm6 = zero,zero,zero,zero,zero,zero,ymm6[5],zero,zero,zero,zero,zero,zero,ymm6[6],zero,zero,zero,zero,zero,ymm6[23],zero,zero,zero,zero,zero,zero,ymm6[24],zero,zero,zero,zero,zero2454; AVX512DQ-BW-NEXT:    vpor %ymm5, %ymm6, %ymm52455; AVX512DQ-BW-NEXT:    vinserti128 $1, (%rsi), %ymm1, %ymm12456; AVX512DQ-BW-NEXT:    vpermq {{.*#+}} ymm6 = ymm1[0,2,0,2]2457; AVX512DQ-BW-NEXT:    vpshufb {{.*#+}} ymm6 = ymm6[0,8],zero,zero,zero,zero,zero,ymm6[1,9],zero,zero,zero,zero,zero,ymm6[2,10],zero,zero,zero,zero,zero,ymm6[19,27],zero,zero,zero,zero,zero,ymm6[20,28],zero,zero2458; AVX512DQ-BW-NEXT:    vinserti64x4 $1, %ymm5, %zmm6, %zmm52459; AVX512DQ-BW-NEXT:    vpshufb {{.*#+}} ymm6 = zero,zero,zero,ymm1[5],zero,zero,zero,zero,zero,zero,ymm1[6],zero,zero,zero,zero,zero,zero,zero,ymm1[23],zero,zero,zero,zero,zero,zero,ymm1[24],zero,zero,zero,zero,zero,zero2460; AVX512DQ-BW-NEXT:    vpermq {{.*#+}} ymm7 = ymm1[2,3,0,1]2461; AVX512DQ-BW-NEXT:    vpshufb {{.*#+}} ymm7 = zero,zero,zero,zero,ymm7[5],zero,zero,zero,zero,zero,zero,ymm7[6],zero,zero,zero,zero,zero,ymm7[23],zero,zero,zero,zero,zero,zero,ymm7[24],zero,zero,zero,zero,zero,zero,ymm7[25]2462; AVX512DQ-BW-NEXT:    vpor %ymm7, %ymm6, %ymm62463; AVX512DQ-BW-NEXT:    vpermq {{.*#+}} ymm7 = ymm0[0,2,0,2]2464; AVX512DQ-BW-NEXT:    vpshufb {{.*#+}} ymm7 = zero,zero,ymm7[0,8],zero,zero,zero,zero,zero,ymm7[1,9],zero,zero,zero,zero,zero,ymm7[18,26],zero,zero,zero,zero,zero,ymm7[19,27],zero,zero,zero,zero,zero,ymm7[20,28]2465; AVX512DQ-BW-NEXT:    vinserti64x4 $1, %ymm6, %zmm7, %zmm62466; AVX512DQ-BW-NEXT:    vporq %zmm5, %zmm6, %zmm52467; AVX512DQ-BW-NEXT:    vinserti128 $1, %xmm4, %ymm3, %ymm62468; AVX512DQ-BW-NEXT:    vpshufb {{.*#+}} ymm7 = ymm6[4],zero,zero,zero,zero,zero,zero,ymm6[5],zero,zero,zero,zero,zero,zero,ymm6[6],zero,zero,zero,zero,zero,zero,zero,ymm6[23],zero,zero,zero,zero,zero,zero,ymm6[24],zero,zero2469; AVX512DQ-BW-NEXT:    vpermq {{.*#+}} ymm8 = ymm6[2,3,0,1]2470; AVX512DQ-BW-NEXT:    vpshufb {{.*#+}} ymm8 = zero,ymm8[4],zero,zero,zero,zero,zero,zero,ymm8[5],zero,zero,zero,zero,zero,zero,ymm8[6],zero,zero,zero,zero,zero,ymm8[23],zero,zero,zero,zero,zero,zero,ymm8[24],zero,zero,zero2471; AVX512DQ-BW-NEXT:    vpor %ymm7, %ymm8, %ymm72472; AVX512DQ-BW-NEXT:    vpermq {{.*#+}} ymm8 = ymm6[0,2,0,2]2473; AVX512DQ-BW-NEXT:    vpshufb {{.*#+}} ymm8 = ymm8[u,u,u,u,0,8,u,u,u,u,u,1,9,u,u,u,u,u,18,26,u,u,u,u,u,19,27,u,u,u,u,u]2474; AVX512DQ-BW-NEXT:    vinserti64x4 $1, %ymm7, %zmm8, %zmm72475; AVX512DQ-BW-NEXT:    vpmovsxbw {{.*#+}} zmm8 = [1,1,0,0,1,1,0,0,4,5,1,1,1,1,0,0,2,2,2,4,2,2,2,4,3,3,3,3,2,2,2,4]2476; AVX512DQ-BW-NEXT:    vpermw %zmm2, %zmm8, %zmm82477; AVX512DQ-BW-NEXT:    movabsq $4647998506761461824, %rcx # imm = 0x40810204081020402478; AVX512DQ-BW-NEXT:    kmovq %rcx, %k12479; AVX512DQ-BW-NEXT:    vmovdqu8 %zmm8, %zmm7 {%k1}2480; AVX512DQ-BW-NEXT:    movabsq $8133997386832558192, %rcx # imm = 0x70E1C3870E1C38702481; AVX512DQ-BW-NEXT:    kmovq %rcx, %k12482; AVX512DQ-BW-NEXT:    vmovdqu8 %zmm7, %zmm5 {%k1}2483; AVX512DQ-BW-NEXT:    vpunpckhbw {{.*#+}} xmm3 = xmm4[8],xmm3[8],xmm4[9],xmm3[9],xmm4[10],xmm3[10],xmm4[11],xmm3[11],xmm4[12],xmm3[12],xmm4[13],xmm3[13],xmm4[14],xmm3[14],xmm4[15],xmm3[15]2484; AVX512DQ-BW-NEXT:    vpshufb {{.*#+}} xmm3 = xmm3[10,u,u,u,u,u,13,12,u,u,u,u,u,15,14,u]2485; AVX512DQ-BW-NEXT:    vpshufhw {{.*#+}} xmm4 = xmm2[0,1,2,3,6,7,7,7]2486; AVX512DQ-BW-NEXT:    vpshufd {{.*#+}} xmm4 = xmm4[2,1,3,2]2487; AVX512DQ-BW-NEXT:    movw $-32510, %cx # imm = 0x81022488; AVX512DQ-BW-NEXT:    kmovd %ecx, %k12489; AVX512DQ-BW-NEXT:    vmovdqu8 %xmm4, %xmm3 {%k1}2490; AVX512DQ-BW-NEXT:    vpermq {{.*#+}} ymm4 = ymm1[1,3,2,3]2491; AVX512DQ-BW-NEXT:    vpshufb {{.*#+}} xmm4 = zero,zero,xmm4[6,14],zero,zero,zero,zero,zero,xmm4[7,15],zero,zero,zero,zero,zero2492; AVX512DQ-BW-NEXT:    vpermq {{.*#+}} ymm7 = ymm0[1,3,2,3]2493; AVX512DQ-BW-NEXT:    vpshufb {{.*#+}} xmm7 = zero,zero,zero,zero,xmm7[6,14],zero,zero,zero,zero,zero,xmm7[7,15],zero,zero,zero2494; AVX512DQ-BW-NEXT:    vpor %xmm4, %xmm7, %xmm42495; AVX512DQ-BW-NEXT:    movw $-7741, %cx # imm = 0xE1C32496; AVX512DQ-BW-NEXT:    kmovd %ecx, %k12497; AVX512DQ-BW-NEXT:    vmovdqu8 %xmm3, %xmm4 {%k1}2498; AVX512DQ-BW-NEXT:    vbroadcasti128 {{.*#+}} ymm3 = [4,5,4,5,5,6,5,6,4,5,4,5,5,6,5,6]2499; AVX512DQ-BW-NEXT:    # ymm3 = mem[0,1,0,1]2500; AVX512DQ-BW-NEXT:    vpermw %ymm2, %ymm3, %ymm22501; AVX512DQ-BW-NEXT:    vpermq {{.*#+}} ymm3 = ymm6[1,3,1,3]2502; AVX512DQ-BW-NEXT:    vpshufb {{.*#+}} ymm3 = ymm3[u,u,u,1,9,u,u,u,u,u,2,10,u,u,u,u,u,19,27,u,u,u,u,u,20,28,u,u,u,u,u,21]2503; AVX512DQ-BW-NEXT:    movl $67637280, %ecx # imm = 0x40810202504; AVX512DQ-BW-NEXT:    kmovd %ecx, %k12505; AVX512DQ-BW-NEXT:    vmovdqu8 %ymm2, %ymm3 {%k1}2506; AVX512DQ-BW-NEXT:    vpermq {{.*#+}} ymm0 = ymm0[1,3,3,1]2507; AVX512DQ-BW-NEXT:    vpshufb {{.*#+}} ymm0 = zero,ymm0[1,9],zero,zero,zero,zero,zero,ymm0[2,10],zero,zero,zero,zero,zero,ymm0[3,19],zero,zero,zero,zero,zero,ymm0[28,20],zero,zero,zero,zero,zero,ymm0[29,21],zero2508; AVX512DQ-BW-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[3,1,1,3]2509; AVX512DQ-BW-NEXT:    vpshufb {{.*#+}} ymm1 = ymm1[1],zero,zero,zero,zero,zero,ymm1[10,2],zero,zero,zero,zero,zero,ymm1[11,3],zero,zero,zero,zero,zero,ymm1[20,28],zero,zero,zero,zero,zero,ymm1[21,29],zero,zero,zero2510; AVX512DQ-BW-NEXT:    vpor %ymm0, %ymm1, %ymm02511; AVX512DQ-BW-NEXT:    movl $-2029118408, %ecx # imm = 0x870E1C382512; AVX512DQ-BW-NEXT:    kmovd %ecx, %k12513; AVX512DQ-BW-NEXT:    vmovdqu8 %ymm3, %ymm0 {%k1}2514; AVX512DQ-BW-NEXT:    vmovdqa %ymm0, 64(%rax)2515; AVX512DQ-BW-NEXT:    vmovdqa %xmm4, 96(%rax)2516; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm5, (%rax)2517; AVX512DQ-BW-NEXT:    vzeroupper2518; AVX512DQ-BW-NEXT:    retq2519;2520; AVX512DQ-BW-FCP-LABEL: store_i8_stride7_vf16:2521; AVX512DQ-BW-FCP:       # %bb.0:2522; AVX512DQ-BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax2523; AVX512DQ-BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r102524; AVX512DQ-BW-FCP-NEXT:    vmovdqa (%rdi), %xmm02525; AVX512DQ-BW-FCP-NEXT:    vmovdqa (%rdx), %xmm12526; AVX512DQ-BW-FCP-NEXT:    vmovdqa (%r8), %xmm22527; AVX512DQ-BW-FCP-NEXT:    vmovdqa (%r9), %xmm32528; AVX512DQ-BW-FCP-NEXT:    vmovdqa (%r10), %xmm42529; AVX512DQ-BW-FCP-NEXT:    vbroadcasti128 {{.*#+}} ymm5 = [1,9,2,10,1,9,2,10]2530; AVX512DQ-BW-FCP-NEXT:    # ymm5 = mem[0,1,0,1]2531; AVX512DQ-BW-FCP-NEXT:    vpermi2d %ymm3, %ymm2, %ymm52532; AVX512DQ-BW-FCP-NEXT:    vinserti128 $1, %xmm3, %ymm2, %ymm62533; AVX512DQ-BW-FCP-NEXT:    vpermq {{.*#+}} ymm7 = ymm6[0,2,0,2]2534; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $1, %ymm5, %zmm7, %zmm52535; AVX512DQ-BW-FCP-NEXT:    vpshufb {{.*#+}} zmm5 = zmm5[u,u,u,u,0,8,u,u,u,u,u,1,9,u,u,u,u,u,18,26,u,u,u,u,u,19,27,u,u,u,u,u,32,36,u,u,u,u,u,33,37,u,u,u,u,u,34,38,u,u,u,u,u,51,55,u,u,u,u,u,56,60,u,u]2536; AVX512DQ-BW-FCP-NEXT:    vpmovsxbw {{.*#+}} zmm7 = [1,1,0,0,1,1,0,0,4,5,1,1,1,1,0,0,2,2,2,4,2,2,2,4,3,3,3,3,2,2,2,4]2537; AVX512DQ-BW-FCP-NEXT:    vpermw %zmm4, %zmm7, %zmm72538; AVX512DQ-BW-FCP-NEXT:    movabsq $4647998506761461824, %rdx # imm = 0x40810204081020402539; AVX512DQ-BW-FCP-NEXT:    kmovq %rdx, %k12540; AVX512DQ-BW-FCP-NEXT:    vmovdqu8 %zmm7, %zmm5 {%k1}2541; AVX512DQ-BW-FCP-NEXT:    vinserti128 $1, (%rsi), %ymm0, %ymm02542; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm7 = [0,0,4,0,0,1,4,5,1,5,0,0,1,5,2,6]2543; AVX512DQ-BW-FCP-NEXT:    vpermd %zmm0, %zmm7, %zmm82544; AVX512DQ-BW-FCP-NEXT:    vpshufb {{.*#+}} zmm8 = zmm8[0,8],zero,zero,zero,zero,zero,zmm8[1,9],zero,zero,zero,zero,zero,zmm8[2,10],zero,zero,zero,zero,zero,zmm8[19,27],zero,zero,zero,zero,zero,zmm8[20,28],zero,zero,zero,zero,zero,zmm8[33,37],zero,zero,zero,zero,zero,zmm8[34,38],zero,zero,zero,zero,zero,zmm8[51,55],zero,zero,zero,zero,zero,zmm8[56,60],zero,zero,zero,zero,zero,zmm8[57]2545; AVX512DQ-BW-FCP-NEXT:    vinserti128 $1, (%rcx), %ymm1, %ymm12546; AVX512DQ-BW-FCP-NEXT:    vpermd %zmm1, %zmm7, %zmm72547; AVX512DQ-BW-FCP-NEXT:    vpshufb {{.*#+}} zmm7 = zero,zero,zmm7[0,8],zero,zero,zero,zero,zero,zmm7[1,9],zero,zero,zero,zero,zero,zmm7[18,26],zero,zero,zero,zero,zero,zmm7[19,27],zero,zero,zero,zero,zero,zmm7[20,28],zero,zero,zero,zero,zero,zmm7[33,37],zero,zero,zero,zero,zero,zmm7[34,38],zero,zero,zero,zero,zero,zmm7[51,55],zero,zero,zero,zero,zero,zmm7[56,60],zero,zero,zero,zero2548; AVX512DQ-BW-FCP-NEXT:    vporq %zmm8, %zmm7, %zmm72549; AVX512DQ-BW-FCP-NEXT:    movabsq $8133997386832558192, %rcx # imm = 0x70E1C3870E1C38702550; AVX512DQ-BW-FCP-NEXT:    kmovq %rcx, %k12551; AVX512DQ-BW-FCP-NEXT:    vmovdqu8 %zmm5, %zmm7 {%k1}2552; AVX512DQ-BW-FCP-NEXT:    vbroadcasti128 {{.*#+}} ymm5 = [4,5,4,5,5,6,5,6,4,5,4,5,5,6,5,6]2553; AVX512DQ-BW-FCP-NEXT:    # ymm5 = mem[0,1,0,1]2554; AVX512DQ-BW-FCP-NEXT:    vpermw %ymm4, %ymm5, %ymm52555; AVX512DQ-BW-FCP-NEXT:    vpermq {{.*#+}} ymm6 = ymm6[1,3,1,3]2556; AVX512DQ-BW-FCP-NEXT:    vpshufb {{.*#+}} ymm6 = ymm6[u,u,u,1,9,u,u,u,u,u,2,10,u,u,u,u,u,19,27,u,u,u,u,u,20,28,u,u,u,u,u,21]2557; AVX512DQ-BW-FCP-NEXT:    movl $67637280, %ecx # imm = 0x40810202558; AVX512DQ-BW-FCP-NEXT:    kmovd %ecx, %k12559; AVX512DQ-BW-FCP-NEXT:    vmovdqu8 %ymm5, %ymm6 {%k1}2560; AVX512DQ-BW-FCP-NEXT:    vpermq {{.*#+}} ymm5 = ymm1[1,3,3,1]2561; AVX512DQ-BW-FCP-NEXT:    vpshufb {{.*#+}} ymm5 = zero,ymm5[1,9],zero,zero,zero,zero,zero,ymm5[2,10],zero,zero,zero,zero,zero,ymm5[3,19],zero,zero,zero,zero,zero,ymm5[28,20],zero,zero,zero,zero,zero,ymm5[29,21],zero2562; AVX512DQ-BW-FCP-NEXT:    vpermq {{.*#+}} ymm8 = ymm0[3,1,1,3]2563; AVX512DQ-BW-FCP-NEXT:    vpshufb {{.*#+}} ymm8 = ymm8[1],zero,zero,zero,zero,zero,ymm8[10,2],zero,zero,zero,zero,zero,ymm8[11,3],zero,zero,zero,zero,zero,ymm8[20,28],zero,zero,zero,zero,zero,ymm8[21,29],zero,zero,zero2564; AVX512DQ-BW-FCP-NEXT:    vpor %ymm5, %ymm8, %ymm52565; AVX512DQ-BW-FCP-NEXT:    movl $-2029118408, %ecx # imm = 0x870E1C382566; AVX512DQ-BW-FCP-NEXT:    kmovd %ecx, %k12567; AVX512DQ-BW-FCP-NEXT:    vmovdqu8 %ymm6, %ymm5 {%k1}2568; AVX512DQ-BW-FCP-NEXT:    vpermq {{.*#+}} ymm0 = ymm0[1,3,2,3]2569; AVX512DQ-BW-FCP-NEXT:    vpshufb {{.*#+}} xmm0 = zero,zero,xmm0[6,14],zero,zero,zero,zero,zero,xmm0[7,15],zero,zero,zero,zero,zero2570; AVX512DQ-BW-FCP-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[1,3,2,3]2571; AVX512DQ-BW-FCP-NEXT:    vpshufb {{.*#+}} xmm1 = zero,zero,zero,zero,xmm1[6,14],zero,zero,zero,zero,zero,xmm1[7,15],zero,zero,zero2572; AVX512DQ-BW-FCP-NEXT:    vpor %xmm0, %xmm1, %xmm02573; AVX512DQ-BW-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm1 = xmm3[8],xmm2[8],xmm3[9],xmm2[9],xmm3[10],xmm2[10],xmm3[11],xmm2[11],xmm3[12],xmm2[12],xmm3[13],xmm2[13],xmm3[14],xmm2[14],xmm3[15],xmm2[15]2574; AVX512DQ-BW-FCP-NEXT:    vpshufb {{.*#+}} xmm1 = xmm1[10],zero,zero,zero,zero,zero,xmm1[13,12],zero,zero,zero,zero,zero,xmm1[15,14],zero2575; AVX512DQ-BW-FCP-NEXT:    vpshufb {{.*#+}} xmm2 = zero,xmm4[13],zero,zero,zero,zero,zero,zero,xmm4[14],zero,zero,zero,zero,zero,zero,xmm4[15]2576; AVX512DQ-BW-FCP-NEXT:    vpternlogq {{.*#+}} xmm2 = xmm2 | xmm0 | xmm12577; AVX512DQ-BW-FCP-NEXT:    vmovdqa %ymm5, 64(%rax)2578; AVX512DQ-BW-FCP-NEXT:    vmovdqa %xmm2, 96(%rax)2579; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm7, (%rax)2580; AVX512DQ-BW-FCP-NEXT:    vzeroupper2581; AVX512DQ-BW-FCP-NEXT:    retq2582  %in.vec0 = load <16 x i8>, ptr %in.vecptr0, align 642583  %in.vec1 = load <16 x i8>, ptr %in.vecptr1, align 642584  %in.vec2 = load <16 x i8>, ptr %in.vecptr2, align 642585  %in.vec3 = load <16 x i8>, ptr %in.vecptr3, align 642586  %in.vec4 = load <16 x i8>, ptr %in.vecptr4, align 642587  %in.vec5 = load <16 x i8>, ptr %in.vecptr5, align 642588  %in.vec6 = load <16 x i8>, ptr %in.vecptr6, align 642589  %1 = shufflevector <16 x i8> %in.vec0, <16 x i8> %in.vec1, <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>2590  %2 = shufflevector <16 x i8> %in.vec2, <16 x i8> %in.vec3, <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>2591  %3 = shufflevector <16 x i8> %in.vec4, <16 x i8> %in.vec5, <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>2592  %4 = shufflevector <32 x i8> %1, <32 x i8> %2, <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 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63>2593  %5 = shufflevector <16 x i8> %in.vec6, <16 x i8> 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 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>2594  %6 = shufflevector <32 x i8> %3, <32 x i8> %5, <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 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47>2595  %7 = shufflevector <48 x i8> %6, <48 x i8> 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 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>2596  %8 = shufflevector <64 x i8> %4, <64 x i8> %7, <112 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 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 88, i32 89, i32 90, i32 91, i32 92, i32 93, i32 94, i32 95, i32 96, i32 97, i32 98, i32 99, i32 100, i32 101, i32 102, i32 103, i32 104, i32 105, i32 106, i32 107, i32 108, i32 109, i32 110, i32 111>2597  %interleaved.vec = shufflevector <112 x i8> %8, <112 x i8> poison, <112 x i32> <i32 0, i32 16, i32 32, i32 48, i32 64, i32 80, i32 96, i32 1, i32 17, i32 33, i32 49, i32 65, i32 81, i32 97, i32 2, i32 18, i32 34, i32 50, i32 66, i32 82, i32 98, i32 3, i32 19, i32 35, i32 51, i32 67, i32 83, i32 99, i32 4, i32 20, i32 36, i32 52, i32 68, i32 84, i32 100, i32 5, i32 21, i32 37, i32 53, i32 69, i32 85, i32 101, i32 6, i32 22, i32 38, i32 54, i32 70, i32 86, i32 102, i32 7, i32 23, i32 39, i32 55, i32 71, i32 87, i32 103, i32 8, i32 24, i32 40, i32 56, i32 72, i32 88, i32 104, i32 9, i32 25, i32 41, i32 57, i32 73, i32 89, i32 105, i32 10, i32 26, i32 42, i32 58, i32 74, i32 90, i32 106, i32 11, i32 27, i32 43, i32 59, i32 75, i32 91, i32 107, i32 12, i32 28, i32 44, i32 60, i32 76, i32 92, i32 108, i32 13, i32 29, i32 45, i32 61, i32 77, i32 93, i32 109, i32 14, i32 30, i32 46, i32 62, i32 78, i32 94, i32 110, i32 15, i32 31, i32 47, i32 63, i32 79, i32 95, i32 111>2598  store <112 x i8> %interleaved.vec, ptr %out.vec, align 642599  ret void2600}2601 2602define void @store_i8_stride7_vf32(ptr %in.vecptr0, ptr %in.vecptr1, ptr %in.vecptr2, ptr %in.vecptr3, ptr %in.vecptr4, ptr %in.vecptr5, ptr %in.vecptr6, ptr %out.vec) nounwind {2603; SSE-LABEL: store_i8_stride7_vf32:2604; SSE:       # %bb.0:2605; SSE-NEXT:    subq $360, %rsp # imm = 0x1682606; SSE-NEXT:    movdqa 16(%rdi), %xmm152607; SSE-NEXT:    movdqa 16(%rsi), %xmm42608; SSE-NEXT:    movdqa 16(%rdx), %xmm32609; SSE-NEXT:    movdqa 16(%rcx), %xmm72610; SSE-NEXT:    movdqa %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2611; SSE-NEXT:    movdqa 16(%r8), %xmm62612; SSE-NEXT:    movdqa 16(%r9), %xmm52613; SSE-NEXT:    movdqa %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2614; SSE-NEXT:    pshufhw {{.*#+}} xmm0 = xmm15[0,1,2,3,6,6,6,6]2615; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[2,3,2,3]2616; SSE-NEXT:    movdqa {{.*#+}} xmm10 = [255,255,255,255,255,0,255,255,255,255,255,255,0,255,255,255]2617; SSE-NEXT:    pand %xmm10, %xmm02618; SSE-NEXT:    movdqa %xmm4, %xmm82619; SSE-NEXT:    movdqa %xmm4, %xmm132620; SSE-NEXT:    movdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2621; SSE-NEXT:    punpckhbw {{.*#+}} xmm8 = xmm8[8],xmm4[8],xmm8[9],xmm4[9],xmm8[10],xmm4[10],xmm8[11],xmm4[11],xmm8[12],xmm4[12],xmm8[13],xmm4[13],xmm8[14],xmm4[14],xmm8[15],xmm4[15]2622; SSE-NEXT:    pshufhw {{.*#+}} xmm1 = xmm8[0,1,2,3,4,5,5,7]2623; SSE-NEXT:    movdqa %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2624; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm1[0,2,2,3]2625; SSE-NEXT:    movdqa %xmm10, %xmm22626; SSE-NEXT:    pandn %xmm1, %xmm22627; SSE-NEXT:    por %xmm0, %xmm22628; SSE-NEXT:    movdqa {{.*#+}} xmm1 = [255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255]2629; SSE-NEXT:    movdqa %xmm1, %xmm02630; SSE-NEXT:    movdqa %xmm1, %xmm112631; SSE-NEXT:    pandn %xmm2, %xmm02632; SSE-NEXT:    pshufhw {{.*#+}} xmm1 = xmm3[0,1,2,3,6,6,6,6]2633; SSE-NEXT:    movdqa %xmm3, %xmm42634; SSE-NEXT:    movdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2635; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm1[2,3,2,3]2636; SSE-NEXT:    movdqa {{.*#+}} xmm9 = [255,255,255,255,255,255,0,255,255,255,255,255,255,0,255,255]2637; SSE-NEXT:    movdqa %xmm9, %xmm32638; SSE-NEXT:    pandn %xmm1, %xmm32639; SSE-NEXT:    movdqa %xmm7, %xmm22640; SSE-NEXT:    punpckhbw {{.*#+}} xmm2 = xmm2[8],xmm7[8],xmm2[9],xmm7[9],xmm2[10],xmm7[10],xmm2[11],xmm7[11],xmm2[12],xmm7[12],xmm2[13],xmm7[13],xmm2[14],xmm7[14],xmm2[15],xmm7[15]2641; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm2[2,1,2,3]2642; SSE-NEXT:    movdqa %xmm2, %xmm72643; SSE-NEXT:    movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2644; SSE-NEXT:    pshuflw {{.*#+}} xmm1 = xmm1[3,1,2,0,4,5,6,7]2645; SSE-NEXT:    pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,5,5,5,5]2646; SSE-NEXT:    pand %xmm9, %xmm12647; SSE-NEXT:    por %xmm3, %xmm12648; SSE-NEXT:    pand %xmm11, %xmm12649; SSE-NEXT:    por %xmm0, %xmm12650; SSE-NEXT:    movdqa {{.*#+}} xmm11 = [255,0,255,255,255,255,255,255,0,255,255,255,255,255,255,0]2651; SSE-NEXT:    pand %xmm11, %xmm12652; SSE-NEXT:    pshufhw {{.*#+}} xmm0 = xmm6[0,1,2,3,5,6,6,7]2653; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[2,1,3,2]2654; SSE-NEXT:    movdqa %xmm11, %xmm32655; SSE-NEXT:    pandn %xmm0, %xmm32656; SSE-NEXT:    por %xmm1, %xmm32657; SSE-NEXT:    movdqa {{.*#+}} xmm12 = [255,255,0,255,255,255,255,255,255,0,255,255,255,255,255,255]2658; SSE-NEXT:    movdqa %xmm5, %xmm12659; SSE-NEXT:    punpckhbw {{.*#+}} xmm1 = xmm1[8],xmm5[8],xmm1[9],xmm5[9],xmm1[10],xmm5[10],xmm1[11],xmm5[11],xmm1[12],xmm5[12],xmm1[13],xmm5[13],xmm1[14],xmm5[14],xmm1[15],xmm5[15]2660; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm1[1,1,2,3]2661; SSE-NEXT:    movdqa %xmm1, %xmm52662; SSE-NEXT:    movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2663; SSE-NEXT:    movdqa %xmm12, %xmm12664; SSE-NEXT:    pandn %xmm0, %xmm12665; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %rax2666; SSE-NEXT:    pand %xmm12, %xmm32667; SSE-NEXT:    por %xmm3, %xmm12668; SSE-NEXT:    movdqa 16(%rax), %xmm142669; SSE-NEXT:    pshufhw {{.*#+}} xmm0 = xmm14[0,1,2,3,4,5,6,6]2670; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[2,1,3,3]2671; SSE-NEXT:    movdqa {{.*#+}} xmm3 = [255,255,255,0,255,255,255,255,255,255,0,255,255,255,255,255]2672; SSE-NEXT:    movdqa %xmm3, %xmm22673; SSE-NEXT:    pandn %xmm0, %xmm22674; SSE-NEXT:    pand %xmm3, %xmm12675; SSE-NEXT:    por %xmm1, %xmm22676; SSE-NEXT:    movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2677; SSE-NEXT:    pshufhw {{.*#+}} xmm0 = xmm7[0,1,2,3,6,5,7,7]2678; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,2,2,3]2679; SSE-NEXT:    movdqa %xmm10, %xmm12680; SSE-NEXT:    pandn %xmm0, %xmm12681; SSE-NEXT:    pshufhw {{.*#+}} xmm0 = xmm4[0,1,2,3,7,7,7,7]2682; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[2,3,2,3]2683; SSE-NEXT:    pand %xmm10, %xmm02684; SSE-NEXT:    por %xmm0, %xmm12685; SSE-NEXT:    movdqa {{.*#+}} xmm2 = [255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255]2686; SSE-NEXT:    movdqa %xmm2, %xmm02687; SSE-NEXT:    pandn %xmm1, %xmm02688; SSE-NEXT:    pshufhw {{.*#+}} xmm1 = xmm8[0,1,2,3,4,6,6,7]2689; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm1[2,1,3,3]2690; SSE-NEXT:    movdqa %xmm3, %xmm42691; SSE-NEXT:    pandn %xmm1, %xmm32692; SSE-NEXT:    movdqa %xmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2693; SSE-NEXT:    pshufhw {{.*#+}} xmm1 = xmm15[0,1,2,3,7,7,7,7]2694; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm1[2,3,2,3]2695; SSE-NEXT:    pand %xmm4, %xmm12696; SSE-NEXT:    por %xmm1, %xmm32697; SSE-NEXT:    pand %xmm2, %xmm32698; SSE-NEXT:    por %xmm0, %xmm32699; SSE-NEXT:    pshufhw {{.*#+}} xmm0 = xmm6[0,1,2,3,7,7,7,7]2700; SSE-NEXT:    movdqa %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2701; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[2,3,2,3]2702; SSE-NEXT:    movdqa %xmm9, %xmm12703; SSE-NEXT:    pandn %xmm0, %xmm12704; SSE-NEXT:    pand %xmm9, %xmm32705; SSE-NEXT:    por %xmm3, %xmm12706; SSE-NEXT:    pshufhw {{.*#+}} xmm0 = xmm5[0,1,2,3,5,6,6,7]2707; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm0[2,2,2,3]2708; SSE-NEXT:    movdqa {{.*#+}} xmm0 = [0,255,255,255,255,255,255,0,255,255,255,255,255,255,0,255]2709; SSE-NEXT:    movdqa %xmm0, %xmm42710; SSE-NEXT:    pandn %xmm3, %xmm42711; SSE-NEXT:    pand %xmm0, %xmm12712; SSE-NEXT:    por %xmm1, %xmm42713; SSE-NEXT:    movdqa %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2714; SSE-NEXT:    pshufhw {{.*#+}} xmm1 = xmm14[0,1,2,3,6,7,7,7]2715; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm1[2,1,3,2]2716; SSE-NEXT:    movdqa %xmm11, %xmm22717; SSE-NEXT:    pandn %xmm1, %xmm22718; SSE-NEXT:    pand %xmm11, %xmm42719; SSE-NEXT:    por %xmm4, %xmm22720; SSE-NEXT:    movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2721; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm13[2,1,2,3]2722; SSE-NEXT:    punpcklbw {{.*#+}} xmm1 = xmm1[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7]2723; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm1[3,1,0,3]2724; SSE-NEXT:    movdqa %xmm12, %xmm42725; SSE-NEXT:    pandn %xmm1, %xmm42726; SSE-NEXT:    pshuflw {{.*#+}} xmm1 = xmm15[3,3,3,3,4,5,6,7]2727; SSE-NEXT:    pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,4,4,4]2728; SSE-NEXT:    pand %xmm12, %xmm12729; SSE-NEXT:    por %xmm1, %xmm42730; SSE-NEXT:    pshufd $230, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload2731; SSE-NEXT:    # xmm1 = mem[2,1,2,3]2732; SSE-NEXT:    punpcklbw {{.*#+}} xmm1 = xmm1[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7]2733; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm1[0,3,0,3]2734; SSE-NEXT:    pshuflw {{.*#+}} xmm1 = xmm1[3,3,3,3,4,5,6,7]2735; SSE-NEXT:    pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,4,4,4]2736; SSE-NEXT:    movdqa {{.*#+}} xmm15 = [255,255,255,255,0,255,255,255,255,255,255,0,255,255,255,255]2737; SSE-NEXT:    movdqa %xmm15, %xmm72738; SSE-NEXT:    pandn %xmm1, %xmm72739; SSE-NEXT:    pshuflw $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload2740; SSE-NEXT:    # xmm1 = mem[3,3,3,3,4,5,6,7]2741; SSE-NEXT:    pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,4,4,4]2742; SSE-NEXT:    pand %xmm15, %xmm12743; SSE-NEXT:    por %xmm1, %xmm72744; SSE-NEXT:    movdqa {{.*#+}} xmm1 = [255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255]2745; SSE-NEXT:    movdqa %xmm1, %xmm32746; SSE-NEXT:    pandn %xmm7, %xmm32747; SSE-NEXT:    pand %xmm1, %xmm42748; SSE-NEXT:    por %xmm4, %xmm32749; SSE-NEXT:    pshufd $230, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload2750; SSE-NEXT:    # xmm4 = mem[2,1,2,3]2751; SSE-NEXT:    punpcklbw {{.*#+}} xmm4 = xmm4[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7]2752; SSE-NEXT:    pshufd {{.*#+}} xmm4 = xmm4[0,3,2,0]2753; SSE-NEXT:    movdqa %xmm9, %xmm72754; SSE-NEXT:    pandn %xmm4, %xmm72755; SSE-NEXT:    pshuflw {{.*#+}} xmm4 = xmm6[3,3,3,3,4,5,6,7]2756; SSE-NEXT:    pshufhw {{.*#+}} xmm4 = xmm4[0,1,2,3,4,4,4,4]2757; SSE-NEXT:    pand %xmm9, %xmm42758; SSE-NEXT:    por %xmm4, %xmm72759; SSE-NEXT:    pshuflw {{.*#+}} xmm4 = xmm14[3,3,3,3,4,5,6,7]2760; SSE-NEXT:    pshufhw {{.*#+}} xmm4 = xmm4[0,1,2,3,4,4,4,4]2761; SSE-NEXT:    movdqa %xmm0, %xmm82762; SSE-NEXT:    pandn %xmm4, %xmm82763; SSE-NEXT:    pand %xmm0, %xmm72764; SSE-NEXT:    por %xmm7, %xmm82765; SSE-NEXT:    movdqa {{.*#+}} xmm5 = [0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255]2766; SSE-NEXT:    movdqa %xmm5, %xmm22767; SSE-NEXT:    pandn %xmm8, %xmm22768; SSE-NEXT:    pand %xmm5, %xmm32769; SSE-NEXT:    por %xmm3, %xmm22770; SSE-NEXT:    movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2771; SSE-NEXT:    movdqa (%rsi), %xmm62772; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm6[2,1,2,3]2773; SSE-NEXT:    movdqa %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2774; SSE-NEXT:    punpcklbw {{.*#+}} xmm3 = xmm3[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7]2775; SSE-NEXT:    pshufd {{.*#+}} xmm4 = xmm3[3,1,0,3]2776; SSE-NEXT:    movdqa %xmm12, %xmm32777; SSE-NEXT:    pandn %xmm4, %xmm32778; SSE-NEXT:    movdqa (%rdi), %xmm132779; SSE-NEXT:    pshuflw {{.*#+}} xmm4 = xmm13[3,3,3,3,4,5,6,7]2780; SSE-NEXT:    movdqa %xmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2781; SSE-NEXT:    pshufhw {{.*#+}} xmm4 = xmm4[0,1,2,3,4,4,4,4]2782; SSE-NEXT:    pand %xmm12, %xmm42783; SSE-NEXT:    por %xmm4, %xmm32784; SSE-NEXT:    movdqa (%rcx), %xmm142785; SSE-NEXT:    pshufd {{.*#+}} xmm4 = xmm14[2,1,2,3]2786; SSE-NEXT:    movdqa %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2787; SSE-NEXT:    punpcklbw {{.*#+}} xmm4 = xmm4[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7]2788; SSE-NEXT:    pshufd {{.*#+}} xmm4 = xmm4[0,3,0,3]2789; SSE-NEXT:    pshuflw {{.*#+}} xmm4 = xmm4[3,3,3,3,4,5,6,7]2790; SSE-NEXT:    pshufhw {{.*#+}} xmm4 = xmm4[0,1,2,3,4,4,4,4]2791; SSE-NEXT:    movdqa %xmm15, %xmm72792; SSE-NEXT:    pandn %xmm4, %xmm72793; SSE-NEXT:    movdqa (%rdx), %xmm82794; SSE-NEXT:    pshuflw {{.*#+}} xmm4 = xmm8[3,3,3,3,4,5,6,7]2795; SSE-NEXT:    movdqa %xmm8, (%rsp) # 16-byte Spill2796; SSE-NEXT:    pshufhw {{.*#+}} xmm4 = xmm4[0,1,2,3,4,4,4,4]2797; SSE-NEXT:    pand %xmm15, %xmm42798; SSE-NEXT:    por %xmm4, %xmm72799; SSE-NEXT:    pand %xmm1, %xmm32800; SSE-NEXT:    pandn %xmm7, %xmm12801; SSE-NEXT:    por %xmm3, %xmm12802; SSE-NEXT:    movdqa (%r9), %xmm112803; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm11[2,1,2,3]2804; SSE-NEXT:    movdqa %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2805; SSE-NEXT:    punpcklbw {{.*#+}} xmm3 = xmm3[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7]2806; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm3[0,3,2,0]2807; SSE-NEXT:    movdqa %xmm9, %xmm42808; SSE-NEXT:    pandn %xmm3, %xmm42809; SSE-NEXT:    movdqa (%r8), %xmm72810; SSE-NEXT:    pshuflw {{.*#+}} xmm3 = xmm7[3,3,3,3,4,5,6,7]2811; SSE-NEXT:    movdqa %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2812; SSE-NEXT:    pshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,4,4,4,4]2813; SSE-NEXT:    pand %xmm9, %xmm32814; SSE-NEXT:    por %xmm3, %xmm42815; SSE-NEXT:    pand %xmm0, %xmm42816; SSE-NEXT:    movdqa (%rax), %xmm102817; SSE-NEXT:    pshuflw {{.*#+}} xmm3 = xmm10[3,3,3,3,4,5,6,7]2818; SSE-NEXT:    movdqa %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2819; SSE-NEXT:    pshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,4,4,4,4]2820; SSE-NEXT:    pandn %xmm3, %xmm02821; SSE-NEXT:    por %xmm4, %xmm02822; SSE-NEXT:    pand %xmm5, %xmm12823; SSE-NEXT:    pandn %xmm0, %xmm52824; SSE-NEXT:    por %xmm1, %xmm52825; SSE-NEXT:    movdqa %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2826; SSE-NEXT:    movdqa %xmm6, %xmm02827; SSE-NEXT:    punpckhbw {{.*#+}} xmm0 = xmm0[8],xmm6[8],xmm0[9],xmm6[9],xmm0[10],xmm6[10],xmm0[11],xmm6[11],xmm0[12],xmm6[12],xmm0[13],xmm6[13],xmm0[14],xmm6[14],xmm0[15],xmm6[15]2828; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2829; SSE-NEXT:    pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,5,5,7]2830; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,2,2,3]2831; SSE-NEXT:    movdqa {{.*#+}} xmm2 = [255,255,255,255,255,0,255,255,255,255,255,255,0,255,255,255]2832; SSE-NEXT:    movdqa %xmm2, %xmm12833; SSE-NEXT:    pandn %xmm0, %xmm12834; SSE-NEXT:    pshufhw {{.*#+}} xmm0 = xmm13[0,1,2,3,6,6,6,6]2835; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[2,3,2,3]2836; SSE-NEXT:    pand %xmm2, %xmm02837; SSE-NEXT:    por %xmm0, %xmm12838; SSE-NEXT:    movdqa {{.*#+}} xmm2 = [255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255]2839; SSE-NEXT:    movdqa %xmm2, %xmm32840; SSE-NEXT:    pandn %xmm1, %xmm32841; SSE-NEXT:    pshufhw {{.*#+}} xmm0 = xmm8[0,1,2,3,6,6,6,6]2842; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[2,3,2,3]2843; SSE-NEXT:    movdqa %xmm9, %xmm12844; SSE-NEXT:    pandn %xmm0, %xmm12845; SSE-NEXT:    movdqa %xmm14, %xmm02846; SSE-NEXT:    punpckhbw {{.*#+}} xmm0 = xmm0[8],xmm14[8],xmm0[9],xmm14[9],xmm0[10],xmm14[10],xmm0[11],xmm14[11],xmm0[12],xmm14[12],xmm0[13],xmm14[13],xmm0[14],xmm14[14],xmm0[15],xmm14[15]2847; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2848; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[2,1,2,3]2849; SSE-NEXT:    pshuflw {{.*#+}} xmm0 = xmm0[3,1,2,0,4,5,6,7]2850; SSE-NEXT:    pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,5,5,5,5]2851; SSE-NEXT:    pand %xmm9, %xmm02852; SSE-NEXT:    por %xmm1, %xmm02853; SSE-NEXT:    pand %xmm2, %xmm02854; SSE-NEXT:    por %xmm3, %xmm02855; SSE-NEXT:    punpckhbw {{.*#+}} xmm11 = xmm11[8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15]2856; SSE-NEXT:    movdqa %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2857; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm11[1,1,2,3]2858; SSE-NEXT:    movdqa %xmm12, %xmm32859; SSE-NEXT:    pandn %xmm1, %xmm32860; SSE-NEXT:    pshufhw {{.*#+}} xmm1 = xmm7[0,1,2,3,5,6,6,7]2861; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm1[2,1,3,2]2862; SSE-NEXT:    pand %xmm12, %xmm12863; SSE-NEXT:    por %xmm3, %xmm12864; SSE-NEXT:    pshufhw {{.*#+}} xmm3 = xmm10[0,1,2,3,4,5,6,6]2865; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm3[2,1,3,3]2866; SSE-NEXT:    movdqa {{.*#+}} xmm2 = [255,255,255,0,255,255,255,255,255,255,0,255,255,255,255,255]2867; SSE-NEXT:    movdqa %xmm2, %xmm42868; SSE-NEXT:    pandn %xmm3, %xmm42869; SSE-NEXT:    pand %xmm2, %xmm12870; SSE-NEXT:    por %xmm1, %xmm42871; SSE-NEXT:    movdqa {{.*#+}} xmm1 = [255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0]2872; SSE-NEXT:    pand %xmm1, %xmm02873; SSE-NEXT:    pandn %xmm4, %xmm12874; SSE-NEXT:    por %xmm0, %xmm12875; SSE-NEXT:    movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2876; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Reload2877; SSE-NEXT:    punpcklbw {{.*#+}} xmm11 = xmm11[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7]2878; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm11[2,2,3,3]2879; SSE-NEXT:    movdqa %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2880; SSE-NEXT:    movdqa %xmm9, %xmm12881; SSE-NEXT:    pandn %xmm0, %xmm12882; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload2883; SSE-NEXT:    pshuflw {{.*#+}} xmm0 = xmm7[2,1,3,3,4,5,6,7]2884; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,0,2,1]2885; SSE-NEXT:    pand %xmm9, %xmm02886; SSE-NEXT:    por %xmm1, %xmm02887; SSE-NEXT:    movdqa {{.*#+}} xmm13 = [255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255]2888; SSE-NEXT:    movdqa %xmm13, %xmm12889; SSE-NEXT:    pandn %xmm0, %xmm12890; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload2891; SSE-NEXT:    punpcklbw {{.*#+}} xmm6 = xmm6[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7]2892; SSE-NEXT:    pshufhw {{.*#+}} xmm0 = xmm6[0,1,2,3,5,6,6,7]2893; SSE-NEXT:    movdqa %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2894; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[2,2,2,2]2895; SSE-NEXT:    movdqa %xmm15, %xmm32896; SSE-NEXT:    pandn %xmm0, %xmm32897; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload2898; SSE-NEXT:    pshuflw {{.*#+}} xmm0 = xmm4[0,2,2,3,4,5,6,7]2899; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,1,1,3]2900; SSE-NEXT:    pand %xmm15, %xmm02901; SSE-NEXT:    por %xmm0, %xmm32902; SSE-NEXT:    pand %xmm13, %xmm32903; SSE-NEXT:    por %xmm1, %xmm32904; SSE-NEXT:    movdqa {{.*#+}} xmm0 = [255,255,255,0,0,0,0,255,255,255,0,0,0,0,255,255]2905; SSE-NEXT:    pandn %xmm3, %xmm02906; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload2907; SSE-NEXT:    punpcklbw {{.*#+}} xmm8 = xmm8[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7]2908; SSE-NEXT:    pshufhw {{.*#+}} xmm1 = xmm8[0,1,2,3,4,6,5,7]2909; SSE-NEXT:    movdqa %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2910; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm1[2,1,3,2]2911; SSE-NEXT:    movdqa {{.*#+}} xmm12 = [255,0,255,255,255,255,255,255,0,255,255,255,255,255,255,0]2912; SSE-NEXT:    movdqa %xmm12, %xmm32913; SSE-NEXT:    pandn %xmm1, %xmm32914; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload2915; SSE-NEXT:    pshuflw {{.*#+}} xmm1 = xmm10[2,2,2,3,4,5,6,7]2916; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm1[0,0,2,1]2917; SSE-NEXT:    pand %xmm12, %xmm12918; SSE-NEXT:    por %xmm1, %xmm32919; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload2920; SSE-NEXT:    pshuflw {{.*#+}} xmm1 = xmm5[2,2,2,2,4,5,6,7]2921; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm1[0,1,0,1]2922; SSE-NEXT:    movdqa {{.*#+}} xmm2 = [255,255,0,255,255,255,255,255,255,0,255,255,255,255,255,255]2923; SSE-NEXT:    movdqa %xmm2, %xmm142924; SSE-NEXT:    pandn %xmm1, %xmm142925; SSE-NEXT:    pand %xmm2, %xmm32926; SSE-NEXT:    por %xmm3, %xmm142927; SSE-NEXT:    pand {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm142928; SSE-NEXT:    por %xmm0, %xmm142929; SSE-NEXT:    movdqa %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2930; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm6[0,1,2,2]2931; SSE-NEXT:    movdqa %xmm9, %xmm12932; SSE-NEXT:    pandn %xmm0, %xmm12933; SSE-NEXT:    pshuflw {{.*#+}} xmm0 = xmm4[1,1,2,3,4,5,6,7]2934; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,0,2,1]2935; SSE-NEXT:    pand %xmm9, %xmm02936; SSE-NEXT:    por %xmm1, %xmm02937; SSE-NEXT:    movdqa %xmm13, %xmm12938; SSE-NEXT:    pandn %xmm0, %xmm12939; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm11[1,1,2,1]2940; SSE-NEXT:    pshufhw {{.*#+}} xmm3 = xmm0[0,1,2,3,7,5,6,4]2941; SSE-NEXT:    movdqa %xmm12, %xmm02942; SSE-NEXT:    pandn %xmm3, %xmm02943; SSE-NEXT:    pshuflw {{.*#+}} xmm3 = xmm7[1,1,2,2,4,5,6,7]2944; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm3[0,0,2,1]2945; SSE-NEXT:    pand %xmm12, %xmm32946; SSE-NEXT:    movdqa %xmm12, %xmm112947; SSE-NEXT:    por %xmm3, %xmm02948; SSE-NEXT:    pand %xmm13, %xmm02949; SSE-NEXT:    por %xmm1, %xmm02950; SSE-NEXT:    pshuflw {{.*#+}} xmm1 = xmm8[0,2,2,3,4,5,6,7]2951; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm1[0,1,1,3]2952; SSE-NEXT:    movdqa {{.*#+}} xmm13 = [255,255,255,0,255,255,255,255,255,255,0,255,255,255,255,255]2953; SSE-NEXT:    movdqa %xmm13, %xmm32954; SSE-NEXT:    pandn %xmm1, %xmm32955; SSE-NEXT:    pshuflw {{.*#+}} xmm1 = xmm10[1,1,1,1,4,5,6,7]2956; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm1[0,1,0,1]2957; SSE-NEXT:    pand %xmm13, %xmm12958; SSE-NEXT:    por %xmm1, %xmm32959; SSE-NEXT:    pshuflw {{.*#+}} xmm1 = xmm5[1,1,1,1,4,5,6,7]2960; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm1[0,1,0,1]2961; SSE-NEXT:    movdqa %xmm15, %xmm42962; SSE-NEXT:    pandn %xmm1, %xmm42963; SSE-NEXT:    pand %xmm15, %xmm32964; SSE-NEXT:    por %xmm3, %xmm42965; SSE-NEXT:    movdqa {{.*#+}} xmm2 = [255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255]2966; SSE-NEXT:    movdqa %xmm2, %xmm12967; SSE-NEXT:    pandn %xmm4, %xmm12968; SSE-NEXT:    pand %xmm2, %xmm02969; SSE-NEXT:    por %xmm0, %xmm12970; SSE-NEXT:    movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2971; SSE-NEXT:    pshufd $212, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload2972; SSE-NEXT:    # xmm0 = mem[0,1,1,3]2973; SSE-NEXT:    movdqa {{.*#+}} xmm12 = [255,255,0,255,255,255,255,255,255,0,255,255,255,255,255,255]2974; SSE-NEXT:    movdqa %xmm12, %xmm12975; SSE-NEXT:    pandn %xmm0, %xmm12976; SSE-NEXT:    movdqa (%rsp), %xmm8 # 16-byte Reload2977; SSE-NEXT:    pshufhw {{.*#+}} xmm0 = xmm8[0,1,2,3,4,5,5,7]2978; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[2,1,3,2]2979; SSE-NEXT:    pand %xmm12, %xmm02980; SSE-NEXT:    por %xmm1, %xmm02981; SSE-NEXT:    movdqa {{.*#+}} xmm6 = [255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0]2982; SSE-NEXT:    movdqa %xmm6, %xmm32983; SSE-NEXT:    pandn %xmm0, %xmm32984; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload2985; SSE-NEXT:    pshufhw {{.*#+}} xmm0 = xmm5[0,1,2,3,5,5,5,5]2986; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[2,3,2,3]2987; SSE-NEXT:    movdqa %xmm9, %xmm42988; SSE-NEXT:    pandn %xmm0, %xmm42989; SSE-NEXT:    pshuflw $233, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload2990; SSE-NEXT:    # xmm0 = mem[1,2,2,3,4,5,6,7]2991; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,0,2,1]2992; SSE-NEXT:    pand %xmm9, %xmm02993; SSE-NEXT:    por %xmm4, %xmm02994; SSE-NEXT:    pand %xmm6, %xmm02995; SSE-NEXT:    por %xmm3, %xmm02996; SSE-NEXT:    pshuflw $233, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Folded Reload2997; SSE-NEXT:    # xmm3 = mem[1,2,2,3,4,5,6,7]2998; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm3[0,0,0,0]2999; SSE-NEXT:    movdqa %xmm15, %xmm43000; SSE-NEXT:    pandn %xmm3, %xmm43001; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload3002; SSE-NEXT:    pshufhw {{.*#+}} xmm3 = xmm13[0,1,2,3,4,4,6,5]3003; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm3[2,1,3,3]3004; SSE-NEXT:    pand %xmm15, %xmm33005; SSE-NEXT:    por %xmm3, %xmm43006; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Reload3007; SSE-NEXT:    pshufhw {{.*#+}} xmm3 = xmm12[0,1,2,3,4,5,5,7]3008; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm3[0,2,2,3]3009; SSE-NEXT:    movdqa {{.*#+}} xmm1 = [255,255,255,255,255,0,255,255,255,255,255,255,0,255,255,255]3010; SSE-NEXT:    movdqa %xmm1, %xmm103011; SSE-NEXT:    pandn %xmm3, %xmm103012; SSE-NEXT:    pand %xmm1, %xmm43013; SSE-NEXT:    por %xmm4, %xmm103014; SSE-NEXT:    movdqa {{.*#+}} xmm2 = [255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255]3015; SSE-NEXT:    movdqa %xmm2, %xmm13016; SSE-NEXT:    pandn %xmm10, %xmm13017; SSE-NEXT:    pand %xmm2, %xmm03018; SSE-NEXT:    por %xmm0, %xmm13019; SSE-NEXT:    movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3020; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload3021; SSE-NEXT:    punpcklbw {{.*#+}} xmm14 = xmm14[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7]3022; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm14[0,1,2,2]3023; SSE-NEXT:    movdqa %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3024; SSE-NEXT:    movdqa %xmm9, %xmm33025; SSE-NEXT:    pandn %xmm0, %xmm33026; SSE-NEXT:    pshuflw {{.*#+}} xmm0 = xmm5[1,1,2,3,4,5,6,7]3027; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,0,2,1]3028; SSE-NEXT:    pand %xmm9, %xmm03029; SSE-NEXT:    por %xmm3, %xmm03030; SSE-NEXT:    movdqa {{.*#+}} xmm5 = [255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255]3031; SSE-NEXT:    movdqa %xmm5, %xmm33032; SSE-NEXT:    pandn %xmm0, %xmm33033; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload3034; SSE-NEXT:    punpcklbw {{.*#+}} xmm7 = xmm7[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7]3035; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm7[1,1,2,1]3036; SSE-NEXT:    movdqa %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3037; SSE-NEXT:    pshufhw {{.*#+}} xmm4 = xmm0[0,1,2,3,7,5,6,4]3038; SSE-NEXT:    movdqa %xmm11, %xmm03039; SSE-NEXT:    pandn %xmm4, %xmm03040; SSE-NEXT:    movdqa %xmm8, %xmm13041; SSE-NEXT:    pshuflw {{.*#+}} xmm4 = xmm8[1,1,2,2,4,5,6,7]3042; SSE-NEXT:    pshufd {{.*#+}} xmm4 = xmm4[0,0,2,1]3043; SSE-NEXT:    pand %xmm11, %xmm43044; SSE-NEXT:    por %xmm4, %xmm03045; SSE-NEXT:    pand %xmm5, %xmm03046; SSE-NEXT:    por %xmm3, %xmm03047; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload3048; SSE-NEXT:    punpcklbw {{.*#+}} xmm8 = xmm8[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7]3049; SSE-NEXT:    pshuflw {{.*#+}} xmm3 = xmm8[0,2,2,3,4,5,6,7]3050; SSE-NEXT:    movdqa %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3051; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm3[0,1,1,3]3052; SSE-NEXT:    movdqa {{.*#+}} xmm2 = [255,255,255,0,255,255,255,255,255,255,0,255,255,255,255,255]3053; SSE-NEXT:    movdqa %xmm2, %xmm43054; SSE-NEXT:    pandn %xmm3, %xmm43055; SSE-NEXT:    movdqa %xmm13, %xmm53056; SSE-NEXT:    pshuflw {{.*#+}} xmm3 = xmm13[1,1,1,1,4,5,6,7]3057; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm3[0,1,0,1]3058; SSE-NEXT:    pand %xmm2, %xmm33059; SSE-NEXT:    por %xmm3, %xmm43060; SSE-NEXT:    pshuflw {{.*#+}} xmm3 = xmm12[1,1,1,1,4,5,6,7]3061; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm3[0,1,0,1]3062; SSE-NEXT:    movdqa %xmm15, %xmm103063; SSE-NEXT:    pandn %xmm3, %xmm103064; SSE-NEXT:    pand %xmm15, %xmm43065; SSE-NEXT:    por %xmm4, %xmm103066; SSE-NEXT:    movdqa {{.*#+}} xmm3 = [255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255]3067; SSE-NEXT:    pand %xmm3, %xmm03068; SSE-NEXT:    pandn %xmm10, %xmm33069; SSE-NEXT:    por %xmm0, %xmm33070; SSE-NEXT:    movdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3071; SSE-NEXT:    pshuflw {{.*#+}} xmm0 = xmm7[0,0,2,1,4,5,6,7]3072; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,1,1,3]3073; SSE-NEXT:    movdqa %xmm2, %xmm33074; SSE-NEXT:    pandn %xmm0, %xmm33075; SSE-NEXT:    pshuflw {{.*#+}} xmm0 = xmm1[0,0,0,0,4,5,6,7]3076; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,1,0,1]3077; SSE-NEXT:    pand %xmm2, %xmm03078; SSE-NEXT:    por %xmm0, %xmm33079; SSE-NEXT:    movdqa {{.*#+}} xmm0 = [255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255]3080; SSE-NEXT:    movdqa %xmm0, %xmm43081; SSE-NEXT:    pandn %xmm3, %xmm43082; SSE-NEXT:    pshuflw {{.*#+}} xmm3 = xmm14[0,2,1,3,4,5,6,7]3083; SSE-NEXT:    pshufd {{.*#+}} xmm10 = xmm3[0,1,1,0]3084; SSE-NEXT:    movdqa %xmm11, %xmm33085; SSE-NEXT:    pandn %xmm10, %xmm33086; SSE-NEXT:    pshuflw $96, {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Folded Reload3087; SSE-NEXT:    # xmm10 = mem[0,0,2,1,4,5,6,7]3088; SSE-NEXT:    pshufd {{.*#+}} xmm10 = xmm10[0,0,2,1]3089; SSE-NEXT:    pand %xmm11, %xmm103090; SSE-NEXT:    por %xmm10, %xmm33091; SSE-NEXT:    pand %xmm0, %xmm33092; SSE-NEXT:    por %xmm4, %xmm33093; SSE-NEXT:    pshuflw {{.*#+}} xmm4 = xmm8[0,1,1,3,4,5,6,7]3094; SSE-NEXT:    pshufd {{.*#+}} xmm4 = xmm4[0,0,2,1]3095; SSE-NEXT:    movdqa {{.*#+}} xmm13 = [255,255,255,255,255,0,255,255,255,255,255,255,0,255,255,255]3096; SSE-NEXT:    movdqa %xmm13, %xmm103097; SSE-NEXT:    pandn %xmm4, %xmm103098; SSE-NEXT:    pshuflw {{.*#+}} xmm4 = xmm5[0,0,0,0,4,5,6,7]3099; SSE-NEXT:    pshufd {{.*#+}} xmm4 = xmm4[0,1,0,1]3100; SSE-NEXT:    pand %xmm13, %xmm43101; SSE-NEXT:    por %xmm4, %xmm103102; SSE-NEXT:    pshuflw {{.*#+}} xmm4 = xmm12[0,0,0,0,4,5,6,7]3103; SSE-NEXT:    pshufd {{.*#+}} xmm4 = xmm4[0,1,0,1]3104; SSE-NEXT:    movdqa %xmm9, %xmm23105; SSE-NEXT:    pandn %xmm4, %xmm23106; SSE-NEXT:    pand %xmm9, %xmm103107; SSE-NEXT:    por %xmm10, %xmm23108; SSE-NEXT:    movdqa {{.*#+}} xmm7 = [255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255]3109; SSE-NEXT:    movdqa %xmm7, %xmm13110; SSE-NEXT:    pandn %xmm2, %xmm13111; SSE-NEXT:    pand %xmm7, %xmm33112; SSE-NEXT:    por %xmm3, %xmm13113; SSE-NEXT:    movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3114; SSE-NEXT:    pshufd $212, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload3115; SSE-NEXT:    # xmm2 = mem[0,1,1,3]3116; SSE-NEXT:    movdqa {{.*#+}} xmm1 = [255,255,0,255,255,255,255,255,255,0,255,255,255,255,255,255]3117; SSE-NEXT:    movdqa %xmm1, %xmm33118; SSE-NEXT:    pandn %xmm2, %xmm33119; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload3120; SSE-NEXT:    pshufhw {{.*#+}} xmm2 = xmm4[0,1,2,3,4,5,5,7]3121; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm2[2,1,3,2]3122; SSE-NEXT:    pand %xmm1, %xmm23123; SSE-NEXT:    por %xmm3, %xmm23124; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Reload3125; SSE-NEXT:    pshufhw {{.*#+}} xmm3 = xmm12[0,1,2,3,5,5,5,5]3126; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm3[2,3,2,3]3127; SSE-NEXT:    movdqa %xmm9, %xmm53128; SSE-NEXT:    pandn %xmm3, %xmm53129; SSE-NEXT:    pshuflw $233, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Folded Reload3130; SSE-NEXT:    # xmm3 = mem[1,2,2,3,4,5,6,7]3131; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm3[0,0,2,1]3132; SSE-NEXT:    pand %xmm9, %xmm33133; SSE-NEXT:    por %xmm5, %xmm33134; SSE-NEXT:    pand %xmm6, %xmm33135; SSE-NEXT:    pandn %xmm2, %xmm63136; SSE-NEXT:    por %xmm3, %xmm63137; SSE-NEXT:    pshuflw $233, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload3138; SSE-NEXT:    # xmm2 = mem[1,2,2,3,4,5,6,7]3139; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm2[0,0,0,0]3140; SSE-NEXT:    movdqa %xmm15, %xmm33141; SSE-NEXT:    pandn %xmm2, %xmm33142; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload3143; SSE-NEXT:    pshufhw {{.*#+}} xmm2 = xmm8[0,1,2,3,4,4,6,5]3144; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm2[2,1,3,3]3145; SSE-NEXT:    pand %xmm15, %xmm23146; SSE-NEXT:    por %xmm2, %xmm33147; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload3148; SSE-NEXT:    pshufhw {{.*#+}} xmm2 = xmm10[0,1,2,3,4,5,5,7]3149; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm2[0,2,2,3]3150; SSE-NEXT:    movdqa %xmm13, %xmm53151; SSE-NEXT:    pandn %xmm2, %xmm53152; SSE-NEXT:    pand %xmm13, %xmm33153; SSE-NEXT:    por %xmm3, %xmm53154; SSE-NEXT:    movdqa {{.*#+}} xmm14 = [255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255]3155; SSE-NEXT:    pand %xmm14, %xmm63156; SSE-NEXT:    pandn %xmm5, %xmm143157; SSE-NEXT:    por %xmm6, %xmm143158; SSE-NEXT:    pshuflw $96, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload3159; SSE-NEXT:    # xmm1 = mem[0,0,2,1,4,5,6,7]3160; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm1[0,1,1,3]3161; SSE-NEXT:    movdqa {{.*#+}} xmm3 = [255,255,255,0,255,255,255,255,255,255,0,255,255,255,255,255]3162; SSE-NEXT:    movdqa %xmm3, %xmm23163; SSE-NEXT:    pandn %xmm1, %xmm23164; SSE-NEXT:    pshuflw {{.*#+}} xmm1 = xmm4[0,0,0,0,4,5,6,7]3165; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm1[0,1,0,1]3166; SSE-NEXT:    pand %xmm3, %xmm13167; SSE-NEXT:    movdqa %xmm3, %xmm43168; SSE-NEXT:    por %xmm1, %xmm23169; SSE-NEXT:    pshuflw $216, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload3170; SSE-NEXT:    # xmm1 = mem[0,2,1,3,4,5,6,7]3171; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm1[0,1,1,0]3172; SSE-NEXT:    movdqa %xmm11, %xmm33173; SSE-NEXT:    pandn %xmm1, %xmm33174; SSE-NEXT:    pshuflw {{.*#+}} xmm1 = xmm12[0,0,2,1,4,5,6,7]3175; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm1[0,0,2,1]3176; SSE-NEXT:    pand %xmm11, %xmm13177; SSE-NEXT:    por %xmm1, %xmm33178; SSE-NEXT:    pand %xmm0, %xmm33179; SSE-NEXT:    pandn %xmm2, %xmm03180; SSE-NEXT:    por %xmm3, %xmm03181; SSE-NEXT:    pshuflw $212, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload3182; SSE-NEXT:    # xmm1 = mem[0,1,1,3,4,5,6,7]3183; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm1[0,0,2,1]3184; SSE-NEXT:    movdqa %xmm13, %xmm23185; SSE-NEXT:    pandn %xmm1, %xmm23186; SSE-NEXT:    pshuflw {{.*#+}} xmm1 = xmm8[0,0,0,0,4,5,6,7]3187; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm1[0,1,0,1]3188; SSE-NEXT:    pand %xmm13, %xmm13189; SSE-NEXT:    por %xmm1, %xmm23190; SSE-NEXT:    pshuflw {{.*#+}} xmm1 = xmm10[0,0,0,0,4,5,6,7]3191; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm1[0,1,0,1]3192; SSE-NEXT:    movdqa %xmm9, %xmm33193; SSE-NEXT:    pandn %xmm1, %xmm33194; SSE-NEXT:    pand %xmm9, %xmm23195; SSE-NEXT:    por %xmm2, %xmm33196; SSE-NEXT:    pand %xmm7, %xmm03197; SSE-NEXT:    pandn %xmm3, %xmm73198; SSE-NEXT:    por %xmm0, %xmm73199; SSE-NEXT:    movdqa (%rsp), %xmm5 # 16-byte Reload3200; SSE-NEXT:    pshufhw {{.*#+}} xmm0 = xmm5[0,1,2,3,7,7,7,7]3201; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[2,3,2,3]3202; SSE-NEXT:    pand %xmm13, %xmm03203; SSE-NEXT:    pshufhw $246, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload3204; SSE-NEXT:    # xmm1 = mem[0,1,2,3,6,5,7,7]3205; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm1[0,2,2,3]3206; SSE-NEXT:    pandn %xmm1, %xmm133207; SSE-NEXT:    por %xmm0, %xmm133208; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload3209; SSE-NEXT:    pshufhw {{.*#+}} xmm0 = xmm6[0,1,2,3,7,7,7,7]3210; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[2,3,2,3]3211; SSE-NEXT:    movdqa %xmm4, %xmm33212; SSE-NEXT:    pand %xmm4, %xmm03213; SSE-NEXT:    pshufhw $232, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload3214; SSE-NEXT:    # xmm1 = mem[0,1,2,3,4,6,6,7]3215; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm1[2,1,3,3]3216; SSE-NEXT:    pandn %xmm1, %xmm33217; SSE-NEXT:    por %xmm0, %xmm33218; SSE-NEXT:    movdqa {{.*#+}} xmm0 = [255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255]3219; SSE-NEXT:    pand %xmm0, %xmm33220; SSE-NEXT:    pandn %xmm13, %xmm03221; SSE-NEXT:    por %xmm3, %xmm03222; SSE-NEXT:    movdqa %xmm0, %xmm33223; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload3224; SSE-NEXT:    pshufhw {{.*#+}} xmm0 = xmm4[0,1,2,3,7,7,7,7]3225; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[2,3,2,3]3226; SSE-NEXT:    movdqa %xmm9, %xmm13227; SSE-NEXT:    pandn %xmm0, %xmm13228; SSE-NEXT:    pshufhw $233, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload3229; SSE-NEXT:    # xmm0 = mem[0,1,2,3,5,6,6,7]3230; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[2,2,2,3]3231; SSE-NEXT:    pand %xmm9, %xmm03232; SSE-NEXT:    por %xmm1, %xmm03233; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload3234; SSE-NEXT:    pshufhw {{.*#+}} xmm1 = xmm13[0,1,2,3,6,7,7,7]3235; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm1[2,1,3,2]3236; SSE-NEXT:    movdqa %xmm11, %xmm23237; SSE-NEXT:    pandn %xmm1, %xmm23238; SSE-NEXT:    pand %xmm11, %xmm03239; SSE-NEXT:    por %xmm0, %xmm23240; SSE-NEXT:    movdqa {{.*#+}} xmm0 = [0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0]3241; SSE-NEXT:    pand %xmm0, %xmm33242; SSE-NEXT:    pandn %xmm2, %xmm03243; SSE-NEXT:    por %xmm3, %xmm03244; SSE-NEXT:    pshufd $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload3245; SSE-NEXT:    # xmm1 = mem[2,2,3,3]3246; SSE-NEXT:    pshuflw {{.*#+}} xmm2 = xmm5[2,1,3,3,4,5,6,7]3247; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm2[0,0,2,1]3248; SSE-NEXT:    pand %xmm9, %xmm23249; SSE-NEXT:    pandn %xmm1, %xmm93250; SSE-NEXT:    por %xmm2, %xmm93251; SSE-NEXT:    pshuflw {{.*#+}} xmm1 = xmm6[0,2,2,3,4,5,6,7]3252; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm1[0,1,1,3]3253; SSE-NEXT:    pand %xmm15, %xmm13254; SSE-NEXT:    pshufhw $233, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload3255; SSE-NEXT:    # xmm2 = mem[0,1,2,3,5,6,6,7]3256; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm2[2,2,2,2]3257; SSE-NEXT:    pandn %xmm2, %xmm153258; SSE-NEXT:    por %xmm1, %xmm153259; SSE-NEXT:    movdqa {{.*#+}} xmm1 = [255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255]3260; SSE-NEXT:    pand %xmm1, %xmm153261; SSE-NEXT:    pandn %xmm9, %xmm13262; SSE-NEXT:    por %xmm15, %xmm13263; SSE-NEXT:    movdqa %xmm1, %xmm33264; SSE-NEXT:    pshuflw {{.*#+}} xmm1 = xmm4[2,2,2,3,4,5,6,7]3265; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm1[0,0,2,1]3266; SSE-NEXT:    pand %xmm11, %xmm13267; SSE-NEXT:    pshufhw $216, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload3268; SSE-NEXT:    # xmm2 = mem[0,1,2,3,4,6,5,7]3269; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm2[2,1,3,2]3270; SSE-NEXT:    pandn %xmm2, %xmm113271; SSE-NEXT:    por %xmm1, %xmm113272; SSE-NEXT:    movdqa {{.*#+}} xmm4 = [255,255,0,255,255,255,255,255,255,0,255,255,255,255,255,255]3273; SSE-NEXT:    pand %xmm4, %xmm113274; SSE-NEXT:    pshuflw {{.*#+}} xmm1 = xmm13[2,2,2,2,4,5,6,7]3275; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm1[0,1,0,1]3276; SSE-NEXT:    pandn %xmm1, %xmm43277; SSE-NEXT:    por %xmm11, %xmm43278; SSE-NEXT:    movdqa {{.*#+}} xmm1 = [255,255,255,0,0,0,0,255,255,255,0,0,0,0,255,255]3279; SSE-NEXT:    pand %xmm1, %xmm43280; SSE-NEXT:    pandn %xmm3, %xmm13281; SSE-NEXT:    por %xmm1, %xmm43282; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %rax3283; SSE-NEXT:    movdqa %xmm4, 32(%rax)3284; SSE-NEXT:    movdqa %xmm0, 96(%rax)3285; SSE-NEXT:    movdqa %xmm7, 112(%rax)3286; SSE-NEXT:    movdqa %xmm14, 176(%rax)3287; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload3288; SSE-NEXT:    movaps %xmm0, (%rax)3289; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload3290; SSE-NEXT:    movaps %xmm0, 16(%rax)3291; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload3292; SSE-NEXT:    movaps %xmm0, 64(%rax)3293; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload3294; SSE-NEXT:    movaps %xmm0, 128(%rax)3295; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload3296; SSE-NEXT:    movaps %xmm0, 144(%rax)3297; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload3298; SSE-NEXT:    movaps %xmm0, 80(%rax)3299; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload3300; SSE-NEXT:    movaps %xmm0, 48(%rax)3301; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload3302; SSE-NEXT:    movaps %xmm0, 160(%rax)3303; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload3304; SSE-NEXT:    movaps %xmm0, 208(%rax)3305; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload3306; SSE-NEXT:    movaps %xmm0, 192(%rax)3307; SSE-NEXT:    addq $360, %rsp # imm = 0x1683308; SSE-NEXT:    retq3309;3310; AVX-LABEL: store_i8_stride7_vf32:3311; AVX:       # %bb.0:3312; AVX-NEXT:    subq $216, %rsp3313; AVX-NEXT:    movq {{[0-9]+}}(%rsp), %rax3314; AVX-NEXT:    vmovdqa 16(%rax), %xmm143315; AVX-NEXT:    vpshufb {{.*#+}} xmm0 = xmm14[u,u,u],zero,zero,xmm14[9,u,u,u,u],zero,zero,xmm14[10,u,u,u]3316; AVX-NEXT:    vmovdqa 16(%r9), %xmm23317; AVX-NEXT:    vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3318; AVX-NEXT:    vmovdqa 16(%r8), %xmm33319; AVX-NEXT:    vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3320; AVX-NEXT:    vpunpckhbw {{.*#+}} xmm1 = xmm3[8],xmm2[8],xmm3[9],xmm2[9],xmm3[10],xmm2[10],xmm3[11],xmm2[11],xmm3[12],xmm2[12],xmm3[13],xmm2[13],xmm3[14],xmm2[14],xmm3[15],xmm2[15]3321; AVX-NEXT:    vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3322; AVX-NEXT:    vpshufb {{.*#+}} xmm1 = xmm1[u,u,u,2,3],zero,xmm1[u,u,u,u,4,5],zero,xmm1[u,u,u]3323; AVX-NEXT:    vpor %xmm0, %xmm1, %xmm03324; AVX-NEXT:    vmovdqa {{.*#+}} xmm11 = [u,u,u,u,u,128,7,u,u,u,u,u,128,8,u,u]3325; AVX-NEXT:    vpshufb %xmm11, %xmm2, %xmm13326; AVX-NEXT:    vmovdqa {{.*#+}} xmm12 = [u,u,u,u,u,7,128,u,u,u,u,u,8,128,u,u]3327; AVX-NEXT:    vpshufb %xmm12, %xmm3, %xmm33328; AVX-NEXT:    vpor %xmm1, %xmm3, %xmm13329; AVX-NEXT:    vmovdqa {{.*#+}} xmm8 = [128,u,u,u,u,5,6,128,u,u,u,u,12,13,128,u]3330; AVX-NEXT:    vpshufb %xmm8, %xmm1, %xmm13331; AVX-NEXT:    vmovdqa {{.*#+}} xmm5 = [6,u,u,u,u,128,128,7,u,u,u,u,128,128,8,u]3332; AVX-NEXT:    vpshufb %xmm5, %xmm14, %xmm33333; AVX-NEXT:    vpor %xmm3, %xmm1, %xmm13334; AVX-NEXT:    vinsertf128 $1, %xmm0, %ymm1, %ymm73335; AVX-NEXT:    vmovdqa 16(%rcx), %xmm13336; AVX-NEXT:    vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3337; AVX-NEXT:    vmovdqa {{.*#+}} xmm4 = [u,u,u,128,7,u,u,u,u,u,128,8,u,u,u,u]3338; AVX-NEXT:    vpshufb %xmm4, %xmm1, %xmm03339; AVX-NEXT:    vmovdqa 16(%rdx), %xmm23340; AVX-NEXT:    vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3341; AVX-NEXT:    vmovdqa {{.*#+}} xmm9 = [u,u,u,7,128,u,u,u,u,u,8,128,u,u,u,u]3342; AVX-NEXT:    vpshufb %xmm9, %xmm2, %xmm33343; AVX-NEXT:    vpor %xmm0, %xmm3, %xmm03344; AVX-NEXT:    vpunpckhbw {{.*#+}} xmm3 = xmm2[8],xmm1[8],xmm2[9],xmm1[9],xmm2[10],xmm1[10],xmm2[11],xmm1[11],xmm2[12],xmm1[12],xmm2[13],xmm1[13],xmm2[14],xmm1[14],xmm2[15],xmm1[15]3345; AVX-NEXT:    vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3346; AVX-NEXT:    vpshufb {{.*#+}} xmm3 = xmm3[u,2,3,u,u,u,u,u,4,5,u,u,u,u,u,6]3347; AVX-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm153348; AVX-NEXT:    vmovdqa 16(%rsi), %xmm103349; AVX-NEXT:    vmovdqa {{.*#+}} xmm1 = [u,128,7,u,u,u,u,u,128,8,u,u,u,u,u,128]3350; AVX-NEXT:    vpshufb %xmm1, %xmm10, %xmm03351; AVX-NEXT:    vmovdqa 16(%rdi), %xmm63352; AVX-NEXT:    vpshufb {{.*#+}} xmm2 = xmm6[u,7],zero,xmm6[u,u,u,u,u,8],zero,xmm6[u,u,u,u,u,9]3353; AVX-NEXT:    vpor %xmm0, %xmm2, %xmm03354; AVX-NEXT:    vpunpckhbw {{.*#+}} xmm2 = xmm10[8],xmm6[8],xmm10[9],xmm6[9],xmm10[10],xmm6[10],xmm10[11],xmm6[11],xmm10[12],xmm6[12],xmm10[13],xmm6[13],xmm10[14],xmm6[14],xmm10[15],xmm6[15]3355; AVX-NEXT:    vpshufb {{.*#+}} xmm2 = xmm2[2,u,u,u,u,u,5,4,u,u,u,u,u,7,6,u]3356; AVX-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm03357; AVX-NEXT:    vmovaps {{.*#+}} ymm2 = [255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0]3358; AVX-NEXT:    vandnps %ymm15, %ymm2, %ymm153359; AVX-NEXT:    vandps %ymm2, %ymm0, %ymm03360; AVX-NEXT:    vorps %ymm0, %ymm15, %ymm03361; AVX-NEXT:    vmovaps {{.*#+}} ymm2 = [0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255]3362; AVX-NEXT:    vandnps %ymm7, %ymm2, %ymm73363; AVX-NEXT:    vandps %ymm2, %ymm0, %ymm03364; AVX-NEXT:    vorps %ymm7, %ymm0, %ymm03365; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3366; AVX-NEXT:    vmovdqa (%r9), %xmm73367; AVX-NEXT:    vpshufb %xmm11, %xmm7, %xmm03368; AVX-NEXT:    vmovdqa %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3369; AVX-NEXT:    vmovdqa (%r8), %xmm33370; AVX-NEXT:    vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3371; AVX-NEXT:    vpshufb %xmm12, %xmm3, %xmm23372; AVX-NEXT:    vpor %xmm0, %xmm2, %xmm03373; AVX-NEXT:    vpshufb %xmm8, %xmm0, %xmm03374; AVX-NEXT:    vmovdqa (%rax), %xmm83375; AVX-NEXT:    vmovdqa %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3376; AVX-NEXT:    vpshufb %xmm5, %xmm8, %xmm23377; AVX-NEXT:    vpor %xmm2, %xmm0, %xmm03378; AVX-NEXT:    vmovdqa {{.*#+}} xmm5 = [128,128,4,u,u,u,u,128,128,5,u,u,u,u,128,128]3379; AVX-NEXT:    vpshufb %xmm5, %xmm8, %xmm23380; AVX-NEXT:    vmovdqa %xmm5, %xmm83381; AVX-NEXT:    vpunpcklbw {{.*#+}} xmm3 = xmm3[0],xmm7[0],xmm3[1],xmm7[1],xmm3[2],xmm7[2],xmm3[3],xmm7[3],xmm3[4],xmm7[4],xmm3[5],xmm7[5],xmm3[6],xmm7[6],xmm3[7],xmm7[7]3382; AVX-NEXT:    vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3383; AVX-NEXT:    vpshufb {{.*#+}} xmm5 = xmm3[8,9],zero,xmm3[u,u,u,u,10,11],zero,xmm3[u,u,u,u,12,13]3384; AVX-NEXT:    vpor %xmm2, %xmm5, %xmm23385; AVX-NEXT:    vinsertf128 $1, %xmm0, %ymm2, %ymm153386; AVX-NEXT:    vmovdqa (%rcx), %xmm33387; AVX-NEXT:    vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3388; AVX-NEXT:    vpshufb %xmm4, %xmm3, %xmm03389; AVX-NEXT:    vmovdqa (%rdx), %xmm133390; AVX-NEXT:    vpshufb %xmm9, %xmm13, %xmm23391; AVX-NEXT:    vpor %xmm0, %xmm2, %xmm03392; AVX-NEXT:    vpunpcklbw {{.*#+}} xmm2 = xmm13[0],xmm3[0],xmm13[1],xmm3[1],xmm13[2],xmm3[2],xmm13[3],xmm3[3],xmm13[4],xmm3[4],xmm13[5],xmm3[5],xmm13[6],xmm3[6],xmm13[7],xmm3[7]3393; AVX-NEXT:    vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3394; AVX-NEXT:    vpshufb {{.*#+}} xmm2 = xmm2[u,u,u,u,u,10,11,u,u,u,u,u,12,13,u,u]3395; AVX-NEXT:    vinsertf128 $1, %xmm0, %ymm2, %ymm03396; AVX-NEXT:    vmovdqa (%rsi), %xmm53397; AVX-NEXT:    vpshufb %xmm1, %xmm5, %xmm23398; AVX-NEXT:    vmovdqa (%rdi), %xmm33399; AVX-NEXT:    vpshufb {{.*#+}} xmm11 = xmm3[u,7],zero,xmm3[u,u,u,u,u,8],zero,xmm3[u,u,u,u,u,9]3400; AVX-NEXT:    vpor %xmm2, %xmm11, %xmm23401; AVX-NEXT:    vpunpcklbw {{.*#+}} xmm9 = xmm3[0],xmm5[0],xmm3[1],xmm5[1],xmm3[2],xmm5[2],xmm3[3],xmm5[3],xmm3[4],xmm5[4],xmm3[5],xmm5[5],xmm3[6],xmm5[6],xmm3[7],xmm5[7]3402; AVX-NEXT:    vmovdqa %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3403; AVX-NEXT:    vmovdqa {{.*#+}} xmm12 = [u,u,u,10,11,u,u,u,u,u,12,13,u,u,u,u]3404; AVX-NEXT:    vpshufb %xmm12, %xmm9, %xmm113405; AVX-NEXT:    vinsertf128 $1, %xmm2, %ymm11, %ymm113406; AVX-NEXT:    vmovaps {{.*#+}} ymm4 = [255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255]3407; AVX-NEXT:    vandnps %ymm0, %ymm4, %ymm03408; AVX-NEXT:    vandps %ymm4, %ymm11, %ymm113409; AVX-NEXT:    vorps %ymm0, %ymm11, %ymm03410; AVX-NEXT:    vmovaps {{.*#+}} ymm11 = [0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255]3411; AVX-NEXT:    vandnps %ymm15, %ymm11, %ymm153412; AVX-NEXT:    vandps %ymm0, %ymm11, %ymm03413; AVX-NEXT:    vorps %ymm0, %ymm15, %ymm03414; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3415; AVX-NEXT:    vmovdqa %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3416; AVX-NEXT:    vpshufb %xmm8, %xmm14, %xmm03417; AVX-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload3418; AVX-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload3419; AVX-NEXT:    vpunpcklbw {{.*#+}} xmm1 = xmm7[0],xmm8[0],xmm7[1],xmm8[1],xmm7[2],xmm8[2],xmm7[3],xmm8[3],xmm7[4],xmm8[4],xmm7[5],xmm8[5],xmm7[6],xmm8[6],xmm7[7],xmm8[7]3420; AVX-NEXT:    vmovdqa %xmm1, (%rsp) # 16-byte Spill3421; AVX-NEXT:    vpshufb {{.*#+}} xmm11 = xmm1[8,9],zero,xmm1[u,u,u,u,10,11],zero,xmm1[u,u,u,u,12,13]3422; AVX-NEXT:    vpor %xmm0, %xmm11, %xmm03423; AVX-NEXT:    vpshufb {{.*#+}} xmm11 = xmm14[u,u],zero,zero,xmm14[2,u,u,u,u],zero,zero,xmm14[3,u,u,u,u]3424; AVX-NEXT:    vpshufb {{.*#+}} xmm15 = xmm1[u,u,4,5],zero,xmm1[u,u,u,u,6,7],zero,xmm1[u,u,u,u]3425; AVX-NEXT:    vpor %xmm11, %xmm15, %xmm113426; AVX-NEXT:    vinsertf128 $1, %xmm0, %ymm11, %ymm153427; AVX-NEXT:    vpunpcklbw {{.*#+}} xmm11 = xmm6[0],xmm10[0],xmm6[1],xmm10[1],xmm6[2],xmm10[2],xmm6[3],xmm10[3],xmm6[4],xmm10[4],xmm6[5],xmm10[5],xmm6[6],xmm10[6],xmm6[7],xmm10[7]3428; AVX-NEXT:    vpshufb %xmm12, %xmm11, %xmm03429; AVX-NEXT:    vpshufb {{.*#+}} xmm12 = xmm11[u,u,u,u,u,6,7,u,u,u,u,u,8,9,u,u]3430; AVX-NEXT:    vinsertf128 $1, %xmm0, %ymm12, %ymm123431; AVX-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload3432; AVX-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload3433; AVX-NEXT:    vpunpcklbw {{.*#+}} xmm9 = xmm2[0],xmm1[0],xmm2[1],xmm1[1],xmm2[2],xmm1[2],xmm2[3],xmm1[3],xmm2[4],xmm1[4],xmm2[5],xmm1[5],xmm2[6],xmm1[6],xmm2[7],xmm1[7]3434; AVX-NEXT:    vpshufb {{.*#+}} xmm0 = xmm9[u,u,u,u,u,10,11,u,u,u,u,u,12,13,u,u]3435; AVX-NEXT:    vpshufb {{.*#+}} xmm14 = xmm9[4,5,u,u,u,u,u,6,7,u,u,u,u,u,8,9]3436; AVX-NEXT:    vinsertf128 $1, %xmm0, %ymm14, %ymm03437; AVX-NEXT:    vandnps %ymm12, %ymm4, %ymm123438; AVX-NEXT:    vandps %ymm4, %ymm0, %ymm03439; AVX-NEXT:    vorps %ymm0, %ymm12, %ymm03440; AVX-NEXT:    vmovaps {{.*#+}} ymm4 = [255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0]3441; AVX-NEXT:    vandnps %ymm15, %ymm4, %ymm123442; AVX-NEXT:    vandps %ymm4, %ymm0, %ymm03443; AVX-NEXT:    vorps %ymm0, %ymm12, %ymm03444; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3445; AVX-NEXT:    vpunpckhbw {{.*#+}} xmm0 = xmm6[8],xmm10[8],xmm6[9],xmm10[9],xmm6[10],xmm10[10],xmm6[11],xmm10[11],xmm6[12],xmm10[12],xmm6[13],xmm10[13],xmm6[14],xmm10[14],xmm6[15],xmm10[15]3446; AVX-NEXT:    vpshufb {{.*#+}} xmm4 = xmm0[u,u,12,13,u,u,u,u,u,14,15,u,u,u,u,u]3447; AVX-NEXT:    vmovdqa {{.*#+}} xmm10 = [u,u,u,u,8,9,u,u,u,u,u,10,11,u,u,u]3448; AVX-NEXT:    vpshufb %xmm10, %xmm0, %xmm03449; AVX-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm03450; AVX-NEXT:    vpunpckhbw {{.*#+}} xmm4 = xmm1[8],xmm2[8],xmm1[9],xmm2[9],xmm1[10],xmm2[10],xmm1[11],xmm2[11],xmm1[12],xmm2[12],xmm1[13],xmm2[13],xmm1[14],xmm2[14],xmm1[15],xmm2[15]3451; AVX-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload3452; AVX-NEXT:    vpshufb {{.*#+}} xmm6 = xmm1[u,u,u,u,12,13,u,u,u,u,u,14,15,u,u,u]3453; AVX-NEXT:    vmovdqa {{.*#+}} xmm15 = [6,u,u,u,u,u,9,8,u,u,u,u,u,11,10,u]3454; AVX-NEXT:    vpshufb %xmm15, %xmm4, %xmm43455; AVX-NEXT:    vinsertf128 $1, %xmm6, %ymm4, %ymm63456; AVX-NEXT:    vmovaps {{.*#+}} ymm4 = [255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255]3457; AVX-NEXT:    vandnps %ymm0, %ymm4, %ymm03458; AVX-NEXT:    vandps %ymm4, %ymm6, %ymm63459; AVX-NEXT:    vorps %ymm0, %ymm6, %ymm03460; AVX-NEXT:    vpunpckhbw {{.*#+}} xmm6 = xmm8[8],xmm7[8],xmm8[9],xmm7[9],xmm8[10],xmm7[10],xmm8[11],xmm7[11],xmm8[12],xmm7[12],xmm8[13],xmm7[13],xmm8[14],xmm7[14],xmm8[15],xmm7[15]3461; AVX-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Reload3462; AVX-NEXT:    vpshufb {{.*#+}} xmm12 = xmm12[u,6,7,u,u,u,u,u,8,9,u,u,u,u,u,10]3463; AVX-NEXT:    vpshufb {{.*#+}} xmm6 = xmm6[10,u,u,u,u,u,13,12,u,u,u,u,u,15,14,u]3464; AVX-NEXT:    vinsertf128 $1, %xmm6, %ymm12, %ymm63465; AVX-NEXT:    vmovaps {{.*#+}} ymm12 = [255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0,0,255]3466; AVX-NEXT:    vandps %ymm0, %ymm12, %ymm03467; AVX-NEXT:    vandnps %ymm6, %ymm12, %ymm63468; AVX-NEXT:    vorps %ymm6, %ymm0, %ymm03469; AVX-NEXT:    vextractf128 $1, %ymm0, %xmm63470; AVX-NEXT:    vpshufb {{.*#+}} xmm6 = xmm6[0],zero,xmm6[2,3,4,5,6,7],zero,xmm6[9,10,11,12,13,14],zero3471; AVX-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload3472; AVX-NEXT:    vpshufb {{.*#+}} xmm12 = zero,xmm14[13],zero,zero,zero,zero,zero,zero,xmm14[14],zero,zero,zero,zero,zero,zero,xmm14[15]3473; AVX-NEXT:    vpor %xmm6, %xmm12, %xmm13474; AVX-NEXT:    vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3475; AVX-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[0,1,2],zero,xmm0[4,5,6,7,8,9],zero,xmm0[11,12,13,14,15]3476; AVX-NEXT:    vpshufb {{.*#+}} xmm6 = zero,zero,zero,xmm14[11],zero,zero,zero,zero,zero,zero,xmm14[12],zero,zero,zero,zero,zero3477; AVX-NEXT:    vpor %xmm6, %xmm0, %xmm03478; AVX-NEXT:    vpunpckhbw {{.*#+}} xmm12 = xmm3[8],xmm5[8],xmm3[9],xmm5[9],xmm3[10],xmm5[10],xmm3[11],xmm5[11],xmm3[12],xmm5[12],xmm3[13],xmm5[13],xmm3[14],xmm5[14],xmm3[15],xmm5[15]3479; AVX-NEXT:    vpunpckhbw {{.*#+}} xmm1 = xmm5[8],xmm3[8],xmm5[9],xmm3[9],xmm5[10],xmm3[10],xmm5[11],xmm3[11],xmm5[12],xmm3[12],xmm5[13],xmm3[13],xmm5[14],xmm3[14],xmm5[15],xmm3[15]3480; AVX-NEXT:    vpshufb {{.*#+}} xmm1 = xmm1[2,u,u,u,u,u,5,4,u,u,u,u,u,7,6,u]3481; AVX-NEXT:    vpshufb %xmm10, %xmm12, %xmm23482; AVX-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm13483; AVX-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload3484; AVX-NEXT:    vpunpckhbw {{.*#+}} xmm2 = xmm3[8],xmm13[8],xmm3[9],xmm13[9],xmm3[10],xmm13[10],xmm3[11],xmm13[11],xmm3[12],xmm13[12],xmm3[13],xmm13[13],xmm3[14],xmm13[14],xmm3[15],xmm13[15]3485; AVX-NEXT:    vpshufb %xmm15, %xmm2, %xmm23486; AVX-NEXT:    vpunpckhbw {{.*#+}} xmm3 = xmm13[8],xmm3[8],xmm13[9],xmm3[9],xmm13[10],xmm3[10],xmm13[11],xmm3[11],xmm13[12],xmm3[12],xmm13[13],xmm3[13],xmm13[14],xmm3[14],xmm13[15],xmm3[15]3487; AVX-NEXT:    vpshufb {{.*#+}} xmm5 = xmm3[u,2,3,u,u,u,u,u,4,5,u,u,u,u,u,6]3488; AVX-NEXT:    vinsertf128 $1, %xmm2, %ymm5, %ymm23489; AVX-NEXT:    vmovaps {{.*#+}} ymm5 = [0,255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255]3490; AVX-NEXT:    vandnps %ymm1, %ymm5, %ymm13491; AVX-NEXT:    vandps %ymm5, %ymm2, %ymm23492; AVX-NEXT:    vorps %ymm1, %ymm2, %ymm13493; AVX-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload3494; AVX-NEXT:    vpshufb {{.*#+}} xmm2 = xmm8[u,u,u],zero,zero,xmm8[9,u,u,u,u],zero,zero,xmm8[10,u,u,u]3495; AVX-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload3496; AVX-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload3497; AVX-NEXT:    vpunpckhbw {{.*#+}} xmm5 = xmm15[8],xmm10[8],xmm15[9],xmm10[9],xmm15[10],xmm10[10],xmm15[11],xmm10[11],xmm15[12],xmm10[12],xmm15[13],xmm10[13],xmm15[14],xmm10[14],xmm15[15],xmm10[15]3498; AVX-NEXT:    vpshufb {{.*#+}} xmm6 = xmm5[u,u,u,2,3],zero,xmm5[u,u,u,u,4,5],zero,xmm5[u,u,u]3499; AVX-NEXT:    vpor %xmm2, %xmm6, %xmm23500; AVX-NEXT:    vpshufb {{.*#+}} xmm5 = xmm5[u,6,7],zero,xmm5[u,u,u,u,8,9],zero,xmm5[u,u,u,u,10]3501; AVX-NEXT:    vpshufb {{.*#+}} xmm6 = xmm8[u],zero,zero,xmm8[11,u,u,u,u],zero,zero,xmm8[12,u,u,u,u],zero3502; AVX-NEXT:    vpor %xmm6, %xmm5, %xmm53503; AVX-NEXT:    vinsertf128 $1, %xmm5, %ymm2, %ymm23504; AVX-NEXT:    vmovaps {{.*#+}} ymm5 = [255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0]3505; AVX-NEXT:    vandps %ymm5, %ymm1, %ymm13506; AVX-NEXT:    vandnps %ymm2, %ymm5, %ymm23507; AVX-NEXT:    vorps %ymm2, %ymm1, %ymm63508; AVX-NEXT:    vpshufb {{.*#+}} xmm1 = xmm3[u,u,u,u,12,13,u,u,u,u,u,14,15,u,u,u]3509; AVX-NEXT:    vpmovsxdq {{.*#+}} xmm2 = [16777216,197120]3510; AVX-NEXT:    vpshufb %xmm2, %xmm9, %xmm33511; AVX-NEXT:    vinsertf128 $1, %xmm3, %ymm1, %ymm13512; AVX-NEXT:    vpshufb {{.*#+}} xmm5 = xmm12[u,u,12,13,u,u,u,u,u,14,15,u,u,u,u,u]3513; AVX-NEXT:    vmovdqa {{.*#+}} xmm3 = [0,1,u,u,u,u,u,2,3,u,u,u,u,u,4,5]3514; AVX-NEXT:    vpshufb %xmm3, %xmm11, %xmm73515; AVX-NEXT:    vinsertf128 $1, %xmm7, %ymm5, %ymm53516; AVX-NEXT:    vandnps %ymm1, %ymm4, %ymm13517; AVX-NEXT:    vandps %ymm4, %ymm5, %ymm43518; AVX-NEXT:    vorps %ymm1, %ymm4, %ymm43519; AVX-NEXT:    vmovdqa {{.*#+}} xmm1 = [u,u,u,u,0,1,u,u,u,u,u,2,3,u,u,u]3520; AVX-NEXT:    vmovdqa (%rsp), %xmm5 # 16-byte Reload3521; AVX-NEXT:    vpshufb %xmm1, %xmm5, %xmm53522; AVX-NEXT:    vpalignr {{.*#+}} xmm5 = xmm5[4,5,6,7,8,9,10,11,12,13,14,15],xmm14[0,1,2,3]3523; AVX-NEXT:    vpunpckhbw {{.*#+}} xmm7 = xmm10[8],xmm15[8],xmm10[9],xmm15[9],xmm10[10],xmm15[10],xmm10[11],xmm15[11],xmm10[12],xmm15[12],xmm10[13],xmm15[13],xmm10[14],xmm15[14],xmm10[15],xmm15[15]3524; AVX-NEXT:    vpshufb {{.*#+}} xmm7 = xmm7[10],zero,xmm7[u,u,u,u,13,12],zero,xmm7[u,u,u,u,15,14],zero3525; AVX-NEXT:    vpshufb {{.*#+}} xmm9 = zero,xmm8[13,u,u,u,u],zero,zero,xmm8[14,u,u,u,u],zero,zero,xmm8[15]3526; AVX-NEXT:    vpor %xmm7, %xmm9, %xmm73527; AVX-NEXT:    vmovdqa {{.*#+}} xmm9 = [u,u,u,u,0,1,12,u,u,u,u,7,8,13,u,u]3528; AVX-NEXT:    vpshufb %xmm9, %xmm5, %xmm53529; AVX-NEXT:    vinsertf128 $1, %xmm5, %ymm7, %ymm53530; AVX-NEXT:    vmovaps {{.*#+}} ymm7 = [0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255]3531; AVX-NEXT:    vandps %ymm7, %ymm4, %ymm43532; AVX-NEXT:    vandnps %ymm5, %ymm7, %ymm53533; AVX-NEXT:    vorps %ymm5, %ymm4, %ymm53534; AVX-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload3535; AVX-NEXT:    vpshufb {{.*#+}} xmm4 = xmm7[4,5,u,u,u,u,u,6,7,u,u,u,u,u,8,9]3536; AVX-NEXT:    vpshufb %xmm2, %xmm7, %xmm23537; AVX-NEXT:    vinsertf128 $1, %xmm4, %ymm2, %ymm23538; AVX-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload3539; AVX-NEXT:    vpshufb {{.*#+}} xmm4 = xmm7[u,u,u,u,u,6,7,u,u,u,u,u,8,9,u,u]3540; AVX-NEXT:    vpshufb %xmm3, %xmm7, %xmm33541; AVX-NEXT:    vinsertf128 $1, %xmm4, %ymm3, %ymm33542; AVX-NEXT:    vmovaps {{.*#+}} ymm4 = [255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0,0]3543; AVX-NEXT:    vandnps %ymm2, %ymm4, %ymm23544; AVX-NEXT:    vandps %ymm4, %ymm3, %ymm33545; AVX-NEXT:    vorps %ymm2, %ymm3, %ymm23546; AVX-NEXT:    vpshufb {{.*#+}} xmm3 = xmm8[u,u],zero,zero,xmm8[2,u,u,u,u],zero,zero,xmm8[3,u,u,u,u]3547; AVX-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload3548; AVX-NEXT:    vpshufb {{.*#+}} xmm4 = xmm7[u,u,4,5],zero,xmm7[u,u,u,u,6,7],zero,xmm7[u,u,u,u]3549; AVX-NEXT:    vpor %xmm3, %xmm4, %xmm33550; AVX-NEXT:    vpshufb %xmm1, %xmm7, %xmm13551; AVX-NEXT:    vpalignr {{.*#+}} xmm1 = xmm1[4,5,6,7,8,9,10,11,12,13,14,15],xmm8[0,1,2,3]3552; AVX-NEXT:    vpshufb %xmm9, %xmm1, %xmm13553; AVX-NEXT:    vinsertf128 $1, %xmm3, %ymm1, %ymm13554; AVX-NEXT:    vmovaps {{.*#+}} ymm3 = [255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255]3555; AVX-NEXT:    vandps %ymm3, %ymm2, %ymm23556; AVX-NEXT:    vandnps %ymm1, %ymm3, %ymm13557; AVX-NEXT:    vorps %ymm1, %ymm2, %ymm13558; AVX-NEXT:    movq {{[0-9]+}}(%rsp), %rax3559; AVX-NEXT:    vmovaps %ymm1, (%rax)3560; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload3561; AVX-NEXT:    vmovaps %ymm1, 128(%rax)3562; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload3563; AVX-NEXT:    vmovaps %ymm1, 32(%rax)3564; AVX-NEXT:    vmovaps %ymm5, 96(%rax)3565; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload3566; AVX-NEXT:    vmovaps %ymm1, 160(%rax)3567; AVX-NEXT:    vmovaps %ymm6, 64(%rax)3568; AVX-NEXT:    vmovdqa %xmm0, 192(%rax)3569; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload3570; AVX-NEXT:    vmovaps %xmm0, 208(%rax)3571; AVX-NEXT:    addq $216, %rsp3572; AVX-NEXT:    vzeroupper3573; AVX-NEXT:    retq3574;3575; AVX2-LABEL: store_i8_stride7_vf32:3576; AVX2:       # %bb.0:3577; AVX2-NEXT:    pushq %rax3578; AVX2-NEXT:    movq {{[0-9]+}}(%rsp), %rax3579; AVX2-NEXT:    vmovdqa (%rdi), %ymm73580; AVX2-NEXT:    vmovdqu %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3581; AVX2-NEXT:    vmovdqa (%rsi), %ymm33582; AVX2-NEXT:    vmovdqa (%rdx), %ymm13583; AVX2-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3584; AVX2-NEXT:    vmovdqa (%rcx), %ymm23585; AVX2-NEXT:    vmovdqa (%r8), %ymm53586; AVX2-NEXT:    vmovdqa (%r9), %ymm63587; AVX2-NEXT:    vmovdqa (%rax), %ymm43588; AVX2-NEXT:    vpshufb {{.*#+}} ymm0 = ymm2[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,27,u,u,u,u,30,u,28,u,u,u,u,31,u,29,u]3589; AVX2-NEXT:    vpshufhw {{.*#+}} ymm8 = ymm1[0,1,2,3,7,6,6,7,8,9,10,11,15,14,14,15]3590; AVX2-NEXT:    vpshufd {{.*#+}} ymm8 = ymm8[0,2,3,3,4,6,7,7]3591; AVX2-NEXT:    vbroadcasti128 {{.*#+}} ymm9 = [255,0,0,0,0,255,0,255,0,0,0,0,255,0,255,0,255,0,0,0,0,255,0,255,0,0,0,0,255,0,255,0]3592; AVX2-NEXT:    # ymm9 = mem[0,1,0,1]3593; AVX2-NEXT:    vpblendvb %ymm9, %ymm0, %ymm8, %ymm03594; AVX2-NEXT:    vpermq {{.*#+}} ymm0 = ymm0[2,3,2,3]3595; AVX2-NEXT:    vpshufb {{.*#+}} ymm8 = ymm3[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,30,u,28,u,u,u,u,31,u,29,u,u,u]3596; AVX2-NEXT:    vpshufhw {{.*#+}} ymm9 = ymm7[0,1,2,3,6,7,7,6,8,9,10,11,14,15,15,14]3597; AVX2-NEXT:    vpshufd {{.*#+}} ymm9 = ymm9[2,2,3,3,6,6,7,7]3598; AVX2-NEXT:    vbroadcasti128 {{.*#+}} ymm10 = [0,0,255,0,255,0,0,0,0,255,0,255,0,0,0,0,0,0,255,0,255,0,0,0,0,255,0,255,0,0,0,0]3599; AVX2-NEXT:    # ymm10 = mem[0,1,0,1]3600; AVX2-NEXT:    vpblendvb %ymm10, %ymm9, %ymm8, %ymm83601; AVX2-NEXT:    vpermq {{.*#+}} ymm8 = ymm8[2,3,2,3]3602; AVX2-NEXT:    vmovdqa {{.*#+}} ymm9 = [255,u,u,u,0,0,255,255,u,u,u,0,0,255,255,u,u,u,0,0,255,255,u,u,u,0,0,255,255,u,u,u]3603; AVX2-NEXT:    vpblendvb %ymm9, %ymm0, %ymm8, %ymm03604; AVX2-NEXT:    vpshufb {{.*#+}} ymm8 = ymm5[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,ymm5[27],zero,ymm5[27,28,29,30],zero,ymm5[28],zero,ymm5[26,27,30,31],zero,ymm5[29]3605; AVX2-NEXT:    vpshufb {{.*#+}} ymm9 = ymm6[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,29],zero,ymm6[27],zero,zero,zero,zero,ymm6[30],zero,ymm6[28],zero,zero,zero,zero,ymm6[31],zero3606; AVX2-NEXT:    vpor %ymm8, %ymm9, %ymm83607; AVX2-NEXT:    vpermq {{.*#+}} ymm8 = ymm8[2,3,2,3]3608; AVX2-NEXT:    vmovdqa {{.*#+}} ymm9 = [255,0,0,u,255,255,255,255,0,0,u,255,255,255,255,0,0,u,255,255,255,255,0,0,u,255,255,255,255,0,0,u]3609; AVX2-NEXT:    vpblendvb %ymm9, %ymm0, %ymm8, %ymm03610; AVX2-NEXT:    vpshufb {{.*#+}} ymm8 = ymm4[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,28,29,26,27,28,29,30,31,30,31,28,29,28,29,30,31]3611; AVX2-NEXT:    vpermq {{.*#+}} ymm8 = ymm8[2,3,2,3]3612; AVX2-NEXT:    vmovdqa {{.*#+}} ymm9 = [255,255,255,0,255,255,255,255,255,255,0,255,255,255,255,255,255,0,255,255,255,255,255,255,0,255,255,255,255,255,255,0]3613; AVX2-NEXT:    vpblendvb %ymm9, %ymm0, %ymm8, %ymm03614; AVX2-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3615; AVX2-NEXT:    vmovdqa (%rdx), %xmm103616; AVX2-NEXT:    vmovdqa (%rcx), %xmm113617; AVX2-NEXT:    vpunpckhbw {{.*#+}} xmm0 = xmm11[8],xmm10[8],xmm11[9],xmm10[9],xmm11[10],xmm10[10],xmm11[11],xmm10[11],xmm11[12],xmm10[12],xmm11[13],xmm10[13],xmm11[14],xmm10[14],xmm11[15],xmm10[15]3618; AVX2-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[6,3,2,u,u,u,9,8,5,4,u,u,u,11,10,7]3619; AVX2-NEXT:    vpermq {{.*#+}} ymm8 = ymm0[0,1,0,1]3620; AVX2-NEXT:    vmovdqa (%rdi), %xmm143621; AVX2-NEXT:    vmovdqa (%rsi), %xmm03622; AVX2-NEXT:    vpunpckhbw {{.*#+}} xmm9 = xmm0[8],xmm14[8],xmm0[9],xmm14[9],xmm0[10],xmm14[10],xmm0[11],xmm14[11],xmm0[12],xmm14[12],xmm0[13],xmm14[13],xmm0[14],xmm14[14],xmm0[15],xmm14[15]3623; AVX2-NEXT:    vpshufb {{.*#+}} xmm9 = xmm9[2,u,u,u,9,8,5,4,u,u,u,11,10,7,6,u]3624; AVX2-NEXT:    vpermq {{.*#+}} ymm9 = ymm9[0,1,0,1]3625; AVX2-NEXT:    vmovdqa {{.*#+}} ymm12 = [0,255,255,u,u,u,0,0,255,255,u,u,u,0,0,255,255,u,u,u,0,0,255,255,u,u,u,0,0,255,255,u]3626; AVX2-NEXT:    vpblendvb %ymm12, %ymm8, %ymm9, %ymm83627; AVX2-NEXT:    vmovdqa (%r9), %xmm123628; AVX2-NEXT:    vmovdqa (%r8), %xmm133629; AVX2-NEXT:    vpunpckhbw {{.*#+}} xmm9 = xmm13[8],xmm12[8],xmm13[9],xmm12[9],xmm13[10],xmm12[10],xmm13[11],xmm12[11],xmm13[12],xmm12[12],xmm13[13],xmm12[13],xmm13[14],xmm12[14],xmm13[15],xmm12[15]3630; AVX2-NEXT:    vpshufb {{.*#+}} xmm9 = xmm9[u,6,7,2,3,u,u,u,8,9,4,5,u,u,u,10]3631; AVX2-NEXT:    vpermq {{.*#+}} ymm9 = ymm9[0,1,0,1]3632; AVX2-NEXT:    vmovdqa (%rax), %xmm153633; AVX2-NEXT:    vpshufhw {{.*#+}} xmm7 = xmm15[0,1,2,3,4,5,5,6]3634; AVX2-NEXT:    vpshufd {{.*#+}} xmm7 = xmm7[2,2,3,3]3635; AVX2-NEXT:    vpermq {{.*#+}} ymm7 = ymm7[0,1,0,1]3636; AVX2-NEXT:    vmovdqa {{.*#+}} ymm1 = [u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255]3637; AVX2-NEXT:    vpblendvb %ymm1, %ymm9, %ymm7, %ymm13638; AVX2-NEXT:    vmovdqa {{.*#+}} ymm7 = [255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0]3639; AVX2-NEXT:    vpblendvb %ymm7, %ymm8, %ymm1, %ymm13640; AVX2-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3641; AVX2-NEXT:    vpshufb {{.*#+}} xmm1 = xmm0[u],zero,xmm0[7],zero,xmm0[5,u,u,u],zero,xmm0[8],zero,xmm0[6,u,u,u],zero3642; AVX2-NEXT:    vpshufb {{.*#+}} xmm7 = xmm14[u,7],zero,xmm14[5],zero,xmm14[u,u,u,8],zero,xmm14[6],zero,xmm14[u,u,u,9]3643; AVX2-NEXT:    vpor %xmm1, %xmm7, %xmm13644; AVX2-NEXT:    vpshufb {{.*#+}} xmm7 = xmm11[u,u,u],zero,xmm11[7],zero,xmm11[5,u,u,u],zero,xmm11[8],zero,xmm11[6,u,u]3645; AVX2-NEXT:    vpshufb {{.*#+}} xmm9 = xmm10[u,u,u,7],zero,xmm10[5],zero,xmm10[u,u,u,8],zero,xmm10[6],zero,xmm10[u,u]3646; AVX2-NEXT:    vpor %xmm7, %xmm9, %xmm73647; AVX2-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[0,1,0,1]3648; AVX2-NEXT:    vpermq {{.*#+}} ymm7 = ymm7[0,1,0,1]3649; AVX2-NEXT:    vmovdqa {{.*#+}} ymm9 = [u,u,u,255,255,0,0,u,u,u,255,255,0,0,u,u,u,255,255,0,0,u,u,u,255,255,0,0,u,u,u,255]3650; AVX2-NEXT:    vpblendvb %ymm9, %ymm1, %ymm7, %ymm13651; AVX2-NEXT:    vpshufb {{.*#+}} xmm7 = zero,xmm12[4,u,u,u],zero,xmm12[7],zero,xmm12[5,u,u,u],zero,xmm12[8],zero,xmm12[6]3652; AVX2-NEXT:    vpshufb {{.*#+}} xmm9 = xmm13[4],zero,xmm13[u,u,u,7],zero,xmm13[5],zero,xmm13[u,u,u,8],zero,xmm13[6],zero3653; AVX2-NEXT:    vpor %xmm7, %xmm9, %xmm73654; AVX2-NEXT:    vpshufb {{.*#+}} xmm9 = xmm15[4,5,4,5,4,5,8,9,6,7,6,7,6,7,6,7]3655; AVX2-NEXT:    vpermq {{.*#+}} ymm9 = ymm9[0,0,1,0]3656; AVX2-NEXT:    vpermq {{.*#+}} ymm7 = ymm7[0,1,0,1]3657; AVX2-NEXT:    vmovdqa {{.*#+}} ymm8 = [255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u]3658; AVX2-NEXT:    vpblendvb %ymm8, %ymm7, %ymm9, %ymm73659; AVX2-NEXT:    vmovdqa {{.*#+}} ymm8 = [0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255]3660; AVX2-NEXT:    vpblendvb %ymm8, %ymm1, %ymm7, %ymm93661; AVX2-NEXT:    vpunpcklbw {{.*#+}} xmm0 = xmm14[0],xmm0[0],xmm14[1],xmm0[1],xmm14[2],xmm0[2],xmm14[3],xmm0[3],xmm14[4],xmm0[4],xmm14[5],xmm0[5],xmm14[6],xmm0[6],xmm14[7],xmm0[7]3662; AVX2-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[0,1,u,u,u,6,7,2,3,u,u,u,8,9,4,5]3663; AVX2-NEXT:    vpermq {{.*#+}} ymm0 = ymm0[0,1,0,1]3664; AVX2-NEXT:    vpunpcklbw {{.*#+}} xmm1 = xmm10[0],xmm11[0],xmm10[1],xmm11[1],xmm10[2],xmm11[2],xmm10[3],xmm11[3],xmm10[4],xmm11[4],xmm10[5],xmm11[5],xmm10[6],xmm11[6],xmm10[7],xmm11[7]3665; AVX2-NEXT:    vpshufb {{.*#+}} xmm1 = xmm1[4,5,0,1,u,u,u,6,7,2,3,u,u,u,8,9]3666; AVX2-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[0,1,0,1]3667; AVX2-NEXT:    vmovdqa {{.*#+}} ymm7 = [255,255,0,0,u,u,u,255,255,0,0,u,u,u,255,255,0,0,u,u,u,255,255,0,0,u,u,u,255,255,0,0]3668; AVX2-NEXT:    vpblendvb %ymm7, %ymm0, %ymm1, %ymm03669; AVX2-NEXT:    vpunpcklbw {{.*#+}} xmm1 = xmm13[0],xmm12[0],xmm13[1],xmm12[1],xmm13[2],xmm12[2],xmm13[3],xmm12[3],xmm13[4],xmm12[4],xmm13[5],xmm12[5],xmm13[6],xmm12[6],xmm13[7],xmm12[7]3670; AVX2-NEXT:    vpshufb {{.*#+}} xmm1 = xmm1[u,u,4,5,0,1,u,u,u,6,7,2,3,u,u,u]3671; AVX2-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[0,1,0,1]3672; AVX2-NEXT:    vpshuflw {{.*#+}} xmm7 = xmm15[1,1,0,0,4,5,6,7]3673; AVX2-NEXT:    vpshufd {{.*#+}} xmm7 = xmm7[0,1,2,0]3674; AVX2-NEXT:    vpermq {{.*#+}} ymm7 = ymm7[0,0,1,0]3675; AVX2-NEXT:    vmovdqa {{.*#+}} ymm8 = [u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u]3676; AVX2-NEXT:    vpblendvb %ymm8, %ymm1, %ymm7, %ymm13677; AVX2-NEXT:    vmovdqa {{.*#+}} ymm7 = [255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255]3678; AVX2-NEXT:    vpblendvb %ymm7, %ymm0, %ymm1, %ymm103679; AVX2-NEXT:    vpshufb {{.*#+}} ymm0 = ymm3[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,21,u,19,u,u,u,u,22,u,20,u,u]3680; AVX2-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm12 # 32-byte Reload3681; AVX2-NEXT:    vpshuflw {{.*#+}} ymm1 = ymm12[1,2,2,3,4,5,6,7,9,10,10,11,12,13,14,15]3682; AVX2-NEXT:    vpshufd {{.*#+}} ymm1 = ymm1[0,0,1,1,4,4,5,5]3683; AVX2-NEXT:    vbroadcasti128 {{.*#+}} ymm7 = [0,0,0,255,0,255,0,0,0,0,255,0,255,0,0,0,0,0,0,255,0,255,0,0,0,0,255,0,255,0,0,0]3684; AVX2-NEXT:    # ymm7 = mem[0,1,0,1]3685; AVX2-NEXT:    vpblendvb %ymm7, %ymm1, %ymm0, %ymm03686; AVX2-NEXT:    vpermq {{.*#+}} ymm0 = ymm0[2,3,2,3]3687; AVX2-NEXT:    vpshufb {{.*#+}} ymm1 = ymm2[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,ymm2[18],zero,zero,zero,zero,ymm2[21],zero,ymm2[19],zero,zero,zero,zero,ymm2[22],zero,ymm2[20]3688; AVX2-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm13 # 32-byte Reload3689; AVX2-NEXT:    vpshufb {{.*#+}} ymm7 = ymm13[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,18],zero,zero,zero,zero,ymm13[21],zero,ymm13[19],zero,zero,zero,zero,ymm13[22],zero,ymm13[20],zero3690; AVX2-NEXT:    vpor %ymm1, %ymm7, %ymm13691; AVX2-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[2,3,2,3]3692; AVX2-NEXT:    vmovdqa {{.*#+}} ymm7 = [255,255,u,u,u,0,0,255,255,u,u,u,0,0,255,255,u,u,u,0,0,255,255,u,u,u,0,0,255,255,u,u]3693; AVX2-NEXT:    vpblendvb %ymm7, %ymm1, %ymm0, %ymm03694; AVX2-NEXT:    vpshufb {{.*#+}} ymm1 = ymm6[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,ymm6[20],zero,ymm6[18],zero,zero,zero,zero,ymm6[21],zero,ymm6[19],zero,zero,zero,zero,ymm6[22]3695; AVX2-NEXT:    vpshufb {{.*#+}} ymm7 = ymm5[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,20],zero,ymm5[18],zero,zero,zero,zero,ymm5[21],zero,ymm5[19],zero,zero,zero,zero,ymm5[22],zero3696; AVX2-NEXT:    vpor %ymm1, %ymm7, %ymm13697; AVX2-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[2,3,2,3]3698; AVX2-NEXT:    vpshuflw {{.*#+}} ymm7 = ymm4[2,1,1,2,4,5,6,7,10,9,9,10,12,13,14,15]3699; AVX2-NEXT:    vpshufd {{.*#+}} ymm7 = ymm7[0,1,1,3,4,5,5,7]3700; AVX2-NEXT:    vpermq {{.*#+}} ymm7 = ymm7[2,2,3,2]3701; AVX2-NEXT:    vmovdqa {{.*#+}} ymm8 = [u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255]3702; AVX2-NEXT:    vpblendvb %ymm8, %ymm1, %ymm7, %ymm13703; AVX2-NEXT:    vmovdqa {{.*#+}} ymm7 = [255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0]3704; AVX2-NEXT:    vpblendvb %ymm7, %ymm0, %ymm1, %ymm03705; AVX2-NEXT:    vpshufb {{.*#+}} ymm1 = ymm12[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,ymm12[23],zero,ymm12[27,20,21,26],zero,ymm12[24],zero,ymm12[26,27,26,27],zero,ymm12[25]3706; AVX2-NEXT:    vpshufb {{.*#+}} ymm7 = ymm3[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,25],zero,ymm3[23],zero,zero,zero,zero,ymm3[26],zero,ymm3[24],zero,zero,zero,zero,ymm3[27],zero3707; AVX2-NEXT:    vpor %ymm1, %ymm7, %ymm13708; AVX2-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[2,3,2,3]3709; AVX2-NEXT:    vpshufb {{.*#+}} ymm7 = ymm2[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,ymm2[25],zero,ymm2[23],zero,zero,zero,zero,ymm2[26],zero,ymm2[24],zero,zero,zero,zero3710; AVX2-NEXT:    vpshufb {{.*#+}} ymm8 = ymm13[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,ymm13[25],zero,ymm13[23],zero,zero,zero,zero,ymm13[26],zero,ymm13[24],zero,zero,zero,zero,ymm13[27]3711; AVX2-NEXT:    vpor %ymm7, %ymm8, %ymm73712; AVX2-NEXT:    vpermq {{.*#+}} ymm7 = ymm7[2,3,2,3]3713; AVX2-NEXT:    vmovdqa {{.*#+}} ymm8 = [u,255,255,0,0,u,u,u,255,255,0,0,u,u,u,255,255,0,0,u,u,u,255,255,0,0,u,u,u,255,255,0]3714; AVX2-NEXT:    vpblendvb %ymm8, %ymm1, %ymm7, %ymm13715; AVX2-NEXT:    vpshufb {{.*#+}} ymm7 = ymm6[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,zero,zero,ymm6[25],zero,ymm6[23],zero,zero,zero,zero,ymm6[26],zero,ymm6[24],zero,zero3716; AVX2-NEXT:    vpshufb {{.*#+}} ymm8 = ymm5[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,zero,ymm5[25],zero,ymm5[23],zero,zero,zero,zero,ymm5[26],zero,ymm5[24],zero,zero,zero3717; AVX2-NEXT:    vpor %ymm7, %ymm8, %ymm73718; AVX2-NEXT:    vpermq {{.*#+}} ymm7 = ymm7[2,3,2,3]3719; AVX2-NEXT:    vpshufb {{.*#+}} ymm8 = ymm4[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,22,23,26,27,24,25,22,23,24,25,26,27,26,27,24,25]3720; AVX2-NEXT:    vpermq {{.*#+}} ymm8 = ymm8[2,3,2,3]3721; AVX2-NEXT:    vmovdqa {{.*#+}} ymm11 = [0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u]3722; AVX2-NEXT:    vpblendvb %ymm11, %ymm7, %ymm8, %ymm73723; AVX2-NEXT:    vmovdqa {{.*#+}} ymm8 = [0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255]3724; AVX2-NEXT:    vpblendvb %ymm8, %ymm1, %ymm7, %ymm13725; AVX2-NEXT:    vpshufb {{.*#+}} ymm5 = zero,ymm5[1,2,3,0,1,14],zero,ymm5[0,1,0,1,14,15],zero,ymm5[15,16,17,18,19,16],zero,ymm5[30,31,16,17,16,17],zero,ymm5[31,30,31]3726; AVX2-NEXT:    vpshufb {{.*#+}} ymm6 = ymm6[13],zero,zero,zero,zero,zero,zero,ymm6[14],zero,zero,zero,zero,zero,zero,ymm6[15],zero,zero,zero,zero,zero,zero,ymm6[16],zero,zero,zero,zero,zero,zero,ymm6[17],zero,zero,zero3727; AVX2-NEXT:    vpor %ymm5, %ymm6, %ymm53728; AVX2-NEXT:    vpshufb {{.*#+}} ymm4 = ymm4[12,13,2,3,12,13,0,1,14,15,2,3,0,1,14,15,28,29,18,19,28,29,16,17,30,31,18,19,16,17,30,31]3729; AVX2-NEXT:    vmovdqa {{.*#+}} ymm6 = [255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u]3730; AVX2-NEXT:    vpblendvb %ymm6, %ymm5, %ymm4, %ymm43731; AVX2-NEXT:    vpshufb {{.*#+}} ymm3 = zero,zero,zero,ymm3[14],zero,zero,zero,zero,zero,zero,ymm3[15],zero,zero,zero,zero,zero,zero,ymm3[16],zero,zero,zero,zero,zero,zero,ymm3[17],zero,zero,zero,zero,zero,zero,ymm3[18]3732; AVX2-NEXT:    vpshufb {{.*#+}} ymm5 = zero,zero,ymm12[14],zero,zero,zero,zero,zero,zero,ymm12[15],zero,zero,zero,zero,zero,zero,ymm12[16],zero,zero,zero,zero,zero,zero,ymm12[17],zero,zero,zero,zero,zero,zero,ymm12[18],zero3733; AVX2-NEXT:    vpor %ymm3, %ymm5, %ymm33734; AVX2-NEXT:    vpshufb {{.*#+}} ymm2 = zero,zero,zero,zero,zero,ymm2[14],zero,zero,zero,zero,zero,zero,ymm2[15],zero,zero,zero,zero,zero,zero,ymm2[16],zero,zero,zero,zero,zero,zero,ymm2[17],zero,zero,zero,zero,zero3735; AVX2-NEXT:    vpshufb {{.*#+}} ymm5 = zero,zero,zero,zero,ymm13[14],zero,zero,zero,zero,zero,zero,ymm13[15],zero,zero,zero,zero,zero,zero,ymm13[16],zero,zero,zero,zero,zero,zero,ymm13[17],zero,zero,zero,zero,zero,zero3736; AVX2-NEXT:    vpor %ymm2, %ymm5, %ymm23737; AVX2-NEXT:    vpor %ymm3, %ymm2, %ymm23738; AVX2-NEXT:    vmovdqa {{.*#+}} ymm3 = [0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255]3739; AVX2-NEXT:    vpblendvb %ymm3, %ymm2, %ymm4, %ymm23740; AVX2-NEXT:    movq {{[0-9]+}}(%rsp), %rax3741; AVX2-NEXT:    vmovdqa %ymm2, 96(%rax)3742; AVX2-NEXT:    vmovdqa %ymm1, 160(%rax)3743; AVX2-NEXT:    vmovdqa %ymm10, (%rax)3744; AVX2-NEXT:    vmovdqa %ymm0, 128(%rax)3745; AVX2-NEXT:    vmovdqa %ymm9, 32(%rax)3746; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3747; AVX2-NEXT:    vmovaps %ymm0, 64(%rax)3748; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3749; AVX2-NEXT:    vmovaps %ymm0, 192(%rax)3750; AVX2-NEXT:    popq %rax3751; AVX2-NEXT:    vzeroupper3752; AVX2-NEXT:    retq3753;3754; AVX2-FP-LABEL: store_i8_stride7_vf32:3755; AVX2-FP:       # %bb.0:3756; AVX2-FP-NEXT:    movq {{[0-9]+}}(%rsp), %rax3757; AVX2-FP-NEXT:    vmovdqa (%rdi), %ymm13758; AVX2-FP-NEXT:    vmovdqa (%rsi), %ymm33759; AVX2-FP-NEXT:    vmovdqa (%rdx), %ymm03760; AVX2-FP-NEXT:    vmovdqa (%rcx), %ymm23761; AVX2-FP-NEXT:    vmovdqa (%rdx), %xmm93762; AVX2-FP-NEXT:    vmovdqa (%rcx), %xmm103763; AVX2-FP-NEXT:    vpunpckhbw {{.*#+}} xmm4 = xmm10[8],xmm9[8],xmm10[9],xmm9[9],xmm10[10],xmm9[10],xmm10[11],xmm9[11],xmm10[12],xmm9[12],xmm10[13],xmm9[13],xmm10[14],xmm9[14],xmm10[15],xmm9[15]3764; AVX2-FP-NEXT:    vpshufb {{.*#+}} xmm4 = xmm4[6,3,2,u,u,u,9,8,5,4,u,u,u,11,10,7]3765; AVX2-FP-NEXT:    vpermq {{.*#+}} ymm4 = ymm4[0,1,0,1]3766; AVX2-FP-NEXT:    vmovdqa (%rdi), %xmm133767; AVX2-FP-NEXT:    vmovdqa (%rsi), %xmm153768; AVX2-FP-NEXT:    vpunpckhbw {{.*#+}} xmm5 = xmm15[8],xmm13[8],xmm15[9],xmm13[9],xmm15[10],xmm13[10],xmm15[11],xmm13[11],xmm15[12],xmm13[12],xmm15[13],xmm13[13],xmm15[14],xmm13[14],xmm15[15],xmm13[15]3769; AVX2-FP-NEXT:    vpshufb {{.*#+}} xmm5 = xmm5[2,u,u,u,9,8,5,4,u,u,u,11,10,7,6,u]3770; AVX2-FP-NEXT:    vpermq {{.*#+}} ymm5 = ymm5[0,1,0,1]3771; AVX2-FP-NEXT:    vmovdqa {{.*#+}} ymm6 = [0,255,255,u,u,u,0,0,255,255,u,u,u,0,0,255,255,u,u,u,0,0,255,255,u,u,u,0,0,255,255,u]3772; AVX2-FP-NEXT:    vpblendvb %ymm6, %ymm4, %ymm5, %ymm43773; AVX2-FP-NEXT:    vmovdqa (%rax), %xmm113774; AVX2-FP-NEXT:    vpshufb {{.*#+}} xmm5 = xmm11[8,9,10,11,8,9,10,11,10,11,12,13,10,11,12,13]3775; AVX2-FP-NEXT:    vpermq {{.*#+}} ymm5 = ymm5[0,1,0,1]3776; AVX2-FP-NEXT:    vmovdqa (%r9), %xmm123777; AVX2-FP-NEXT:    vmovdqa (%r8), %xmm143778; AVX2-FP-NEXT:    vpunpckhbw {{.*#+}} xmm6 = xmm14[8],xmm12[8],xmm14[9],xmm12[9],xmm14[10],xmm12[10],xmm14[11],xmm12[11],xmm14[12],xmm12[12],xmm14[13],xmm12[13],xmm14[14],xmm12[14],xmm14[15],xmm12[15]3779; AVX2-FP-NEXT:    vpshufb {{.*#+}} xmm6 = xmm6[u,6,7,2,3,u,u,u,8,9,4,5,u,u,u,10]3780; AVX2-FP-NEXT:    vpermq {{.*#+}} ymm6 = ymm6[0,1,0,1]3781; AVX2-FP-NEXT:    vmovdqa {{.*#+}} ymm7 = [u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255]3782; AVX2-FP-NEXT:    vpblendvb %ymm7, %ymm6, %ymm5, %ymm53783; AVX2-FP-NEXT:    vmovdqa {{.*#+}} ymm6 = [255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0]3784; AVX2-FP-NEXT:    vpblendvb %ymm6, %ymm4, %ymm5, %ymm43785; AVX2-FP-NEXT:    vpshufb {{.*#+}} xmm5 = xmm15[u],zero,xmm15[7],zero,xmm15[5,u,u,u],zero,xmm15[8],zero,xmm15[6,u,u,u],zero3786; AVX2-FP-NEXT:    vpshufb {{.*#+}} xmm6 = xmm13[u,7],zero,xmm13[5],zero,xmm13[u,u,u,8],zero,xmm13[6],zero,xmm13[u,u,u,9]3787; AVX2-FP-NEXT:    vpor %xmm5, %xmm6, %xmm53788; AVX2-FP-NEXT:    vpermq {{.*#+}} ymm5 = ymm5[0,1,0,1]3789; AVX2-FP-NEXT:    vpshufb {{.*#+}} xmm6 = xmm10[u,u,u],zero,xmm10[7],zero,xmm10[5,u,u,u],zero,xmm10[8],zero,xmm10[6,u,u]3790; AVX2-FP-NEXT:    vpshufb {{.*#+}} xmm7 = xmm9[u,u,u,7],zero,xmm9[5],zero,xmm9[u,u,u,8],zero,xmm9[6],zero,xmm9[u,u]3791; AVX2-FP-NEXT:    vpor %xmm6, %xmm7, %xmm63792; AVX2-FP-NEXT:    vpermq {{.*#+}} ymm6 = ymm6[0,1,0,1]3793; AVX2-FP-NEXT:    vmovdqa {{.*#+}} ymm7 = [u,u,u,255,255,0,0,u,u,u,255,255,0,0,u,u,u,255,255,0,0,u,u,u,255,255,0,0,u,u,u,255]3794; AVX2-FP-NEXT:    vpblendvb %ymm7, %ymm5, %ymm6, %ymm53795; AVX2-FP-NEXT:    vpshufb {{.*#+}} xmm6 = xmm11[4,5,4,5,4,5,8,9,6,7,6,7,6,7,6,7]3796; AVX2-FP-NEXT:    vpermq {{.*#+}} ymm6 = ymm6[0,0,1,0]3797; AVX2-FP-NEXT:    vpshufb {{.*#+}} xmm7 = zero,xmm12[4,u,u,u],zero,xmm12[7],zero,xmm12[5,u,u,u],zero,xmm12[8],zero,xmm12[6]3798; AVX2-FP-NEXT:    vpshufb {{.*#+}} xmm8 = xmm14[4],zero,xmm14[u,u,u,7],zero,xmm14[5],zero,xmm14[u,u,u,8],zero,xmm14[6],zero3799; AVX2-FP-NEXT:    vpor %xmm7, %xmm8, %xmm73800; AVX2-FP-NEXT:    vpermq {{.*#+}} ymm7 = ymm7[0,1,0,1]3801; AVX2-FP-NEXT:    vmovdqa {{.*#+}} ymm8 = [255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u]3802; AVX2-FP-NEXT:    vpblendvb %ymm8, %ymm7, %ymm6, %ymm73803; AVX2-FP-NEXT:    vmovdqa (%r8), %ymm63804; AVX2-FP-NEXT:    vmovdqa {{.*#+}} ymm8 = [0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255]3805; AVX2-FP-NEXT:    vpblendvb %ymm8, %ymm5, %ymm7, %ymm53806; AVX2-FP-NEXT:    vmovdqa (%r9), %ymm83807; AVX2-FP-NEXT:    vmovdqa (%rax), %ymm73808; AVX2-FP-NEXT:    vpunpcklbw {{.*#+}} xmm13 = xmm13[0],xmm15[0],xmm13[1],xmm15[1],xmm13[2],xmm15[2],xmm13[3],xmm15[3],xmm13[4],xmm15[4],xmm13[5],xmm15[5],xmm13[6],xmm15[6],xmm13[7],xmm15[7]3809; AVX2-FP-NEXT:    vpshufb {{.*#+}} xmm13 = xmm13[0,1,u,u,u,6,7,2,3,u,u,u,8,9,4,5]3810; AVX2-FP-NEXT:    vpermq {{.*#+}} ymm13 = ymm13[0,1,0,1]3811; AVX2-FP-NEXT:    vpunpcklbw {{.*#+}} xmm9 = xmm9[0],xmm10[0],xmm9[1],xmm10[1],xmm9[2],xmm10[2],xmm9[3],xmm10[3],xmm9[4],xmm10[4],xmm9[5],xmm10[5],xmm9[6],xmm10[6],xmm9[7],xmm10[7]3812; AVX2-FP-NEXT:    vpshufb {{.*#+}} xmm9 = xmm9[4,5,0,1,u,u,u,6,7,2,3,u,u,u,8,9]3813; AVX2-FP-NEXT:    vpermq {{.*#+}} ymm9 = ymm9[0,1,0,1]3814; AVX2-FP-NEXT:    vmovdqa {{.*#+}} ymm10 = [255,255,0,0,u,u,u,255,255,0,0,u,u,u,255,255,0,0,u,u,u,255,255,0,0,u,u,u,255,255,0,0]3815; AVX2-FP-NEXT:    vpblendvb %ymm10, %ymm13, %ymm9, %ymm93816; AVX2-FP-NEXT:    vpshufb {{.*#+}} xmm10 = xmm11[2,3,2,3,0,1,0,1,8,9,10,11,2,3,2,3]3817; AVX2-FP-NEXT:    vpermq {{.*#+}} ymm10 = ymm10[0,0,1,0]3818; AVX2-FP-NEXT:    vpunpcklbw {{.*#+}} xmm11 = xmm14[0],xmm12[0],xmm14[1],xmm12[1],xmm14[2],xmm12[2],xmm14[3],xmm12[3],xmm14[4],xmm12[4],xmm14[5],xmm12[5],xmm14[6],xmm12[6],xmm14[7],xmm12[7]3819; AVX2-FP-NEXT:    vpshufb {{.*#+}} xmm11 = xmm11[u,u,4,5,0,1,u,u,u,6,7,2,3,u,u,u]3820; AVX2-FP-NEXT:    vpermq {{.*#+}} ymm11 = ymm11[0,1,0,1]3821; AVX2-FP-NEXT:    vmovdqa {{.*#+}} ymm12 = [u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u]3822; AVX2-FP-NEXT:    vpblendvb %ymm12, %ymm11, %ymm10, %ymm103823; AVX2-FP-NEXT:    vmovdqa {{.*#+}} ymm11 = [255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255]3824; AVX2-FP-NEXT:    vpblendvb %ymm11, %ymm9, %ymm10, %ymm93825; AVX2-FP-NEXT:    vpshufb {{.*#+}} ymm10 = ymm0[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,ymm0[17,18,19,30],zero,ymm0[28],zero,ymm0[28,29,30,31],zero,ymm0[29],zero,ymm0[31]3826; AVX2-FP-NEXT:    vpshufb {{.*#+}} ymm11 = ymm2[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,27],zero,zero,zero,zero,ymm2[30],zero,ymm2[28],zero,zero,zero,zero,ymm2[31],zero,ymm2[29],zero3827; AVX2-FP-NEXT:    vpor %ymm10, %ymm11, %ymm103828; AVX2-FP-NEXT:    vpermq {{.*#+}} ymm10 = ymm10[2,3,2,3]3829; AVX2-FP-NEXT:    vpshufb {{.*#+}} ymm11 = ymm3[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,zero,ymm3[30],zero,ymm3[28],zero,zero,zero,zero,ymm3[31],zero,ymm3[29],zero,zero,zero3830; AVX2-FP-NEXT:    vpshufb {{.*#+}} ymm12 = ymm1[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,ymm1[30],zero,ymm1[28],zero,zero,zero,zero,ymm1[31],zero,ymm1[29],zero,zero,zero,zero3831; AVX2-FP-NEXT:    vpor %ymm11, %ymm12, %ymm113832; AVX2-FP-NEXT:    vpermq {{.*#+}} ymm11 = ymm11[2,3,2,3]3833; AVX2-FP-NEXT:    vmovdqa {{.*#+}} ymm12 = [255,u,u,u,0,0,255,255,u,u,u,0,0,255,255,u,u,u,0,0,255,255,u,u,u,0,0,255,255,u,u,u]3834; AVX2-FP-NEXT:    vpblendvb %ymm12, %ymm10, %ymm11, %ymm103835; AVX2-FP-NEXT:    vpshufb {{.*#+}} ymm11 = ymm6[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,ymm6[27],zero,ymm6[27,28,29,30],zero,ymm6[28],zero,ymm6[26,27,30,31],zero,ymm6[29]3836; AVX2-FP-NEXT:    vpshufb {{.*#+}} ymm12 = ymm8[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,29],zero,ymm8[27],zero,zero,zero,zero,ymm8[30],zero,ymm8[28],zero,zero,zero,zero,ymm8[31],zero3837; AVX2-FP-NEXT:    vpor %ymm11, %ymm12, %ymm113838; AVX2-FP-NEXT:    vpermq {{.*#+}} ymm11 = ymm11[2,3,2,3]3839; AVX2-FP-NEXT:    vmovdqa {{.*#+}} ymm12 = [255,0,0,u,255,255,255,255,0,0,u,255,255,255,255,0,0,u,255,255,255,255,0,0,u,255,255,255,255,0,0,u]3840; AVX2-FP-NEXT:    vpblendvb %ymm12, %ymm10, %ymm11, %ymm103841; AVX2-FP-NEXT:    vpshufb {{.*#+}} ymm11 = ymm7[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,28,29,26,27,28,29,30,31,30,31,28,29,28,29,30,31]3842; AVX2-FP-NEXT:    vpermq {{.*#+}} ymm11 = ymm11[2,3,2,3]3843; AVX2-FP-NEXT:    vmovdqa {{.*#+}} ymm12 = [255,255,255,0,255,255,255,255,255,255,0,255,255,255,255,255,255,0,255,255,255,255,255,255,0,255,255,255,255,255,255,0]3844; AVX2-FP-NEXT:    vpblendvb %ymm12, %ymm10, %ymm11, %ymm103845; AVX2-FP-NEXT:    vpshufb {{.*#+}} ymm11 = ymm1[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,ymm1[23],zero,ymm1[27,20,21,26],zero,ymm1[24],zero,ymm1[26,27,26,27],zero,ymm1[25]3846; AVX2-FP-NEXT:    vpshufb {{.*#+}} ymm12 = ymm3[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,25],zero,ymm3[23],zero,zero,zero,zero,ymm3[26],zero,ymm3[24],zero,zero,zero,zero,ymm3[27],zero3847; AVX2-FP-NEXT:    vpor %ymm11, %ymm12, %ymm113848; AVX2-FP-NEXT:    vpermq {{.*#+}} ymm11 = ymm11[2,3,2,3]3849; AVX2-FP-NEXT:    vpshufb {{.*#+}} ymm12 = ymm2[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,ymm2[25],zero,ymm2[23],zero,zero,zero,zero,ymm2[26],zero,ymm2[24],zero,zero,zero,zero3850; AVX2-FP-NEXT:    vpshufb {{.*#+}} ymm13 = ymm0[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,ymm0[25],zero,ymm0[23],zero,zero,zero,zero,ymm0[26],zero,ymm0[24],zero,zero,zero,zero,ymm0[27]3851; AVX2-FP-NEXT:    vpor %ymm12, %ymm13, %ymm123852; AVX2-FP-NEXT:    vpermq {{.*#+}} ymm12 = ymm12[2,3,2,3]3853; AVX2-FP-NEXT:    vmovdqa {{.*#+}} ymm13 = [u,255,255,0,0,u,u,u,255,255,0,0,u,u,u,255,255,0,0,u,u,u,255,255,0,0,u,u,u,255,255,0]3854; AVX2-FP-NEXT:    vpblendvb %ymm13, %ymm11, %ymm12, %ymm113855; AVX2-FP-NEXT:    vpshufb {{.*#+}} ymm12 = ymm8[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,zero,zero,ymm8[25],zero,ymm8[23],zero,zero,zero,zero,ymm8[26],zero,ymm8[24],zero,zero3856; AVX2-FP-NEXT:    vpshufb {{.*#+}} ymm13 = ymm6[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,zero,ymm6[25],zero,ymm6[23],zero,zero,zero,zero,ymm6[26],zero,ymm6[24],zero,zero,zero3857; AVX2-FP-NEXT:    vpor %ymm12, %ymm13, %ymm123858; AVX2-FP-NEXT:    vpermq {{.*#+}} ymm12 = ymm12[2,3,2,3]3859; AVX2-FP-NEXT:    vpshufb {{.*#+}} ymm13 = ymm7[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,22,23,26,27,24,25,22,23,24,25,26,27,26,27,24,25]3860; AVX2-FP-NEXT:    vpermq {{.*#+}} ymm13 = ymm13[2,3,2,3]3861; AVX2-FP-NEXT:    vmovdqa {{.*#+}} ymm14 = [0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u]3862; AVX2-FP-NEXT:    vpblendvb %ymm14, %ymm12, %ymm13, %ymm123863; AVX2-FP-NEXT:    vmovdqa {{.*#+}} ymm13 = [0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255]3864; AVX2-FP-NEXT:    vpblendvb %ymm13, %ymm11, %ymm12, %ymm113865; AVX2-FP-NEXT:    vpshufb {{.*#+}} ymm12 = ymm2[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,ymm2[18],zero,zero,zero,zero,ymm2[21],zero,ymm2[19],zero,zero,zero,zero,ymm2[22],zero,ymm2[20]3866; AVX2-FP-NEXT:    vpshufb {{.*#+}} ymm13 = ymm0[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,18],zero,zero,zero,zero,ymm0[21],zero,ymm0[19],zero,zero,zero,zero,ymm0[22],zero,ymm0[20],zero3867; AVX2-FP-NEXT:    vpor %ymm12, %ymm13, %ymm123868; AVX2-FP-NEXT:    vpermq {{.*#+}} ymm12 = ymm12[2,3,2,3]3869; AVX2-FP-NEXT:    vpshufb {{.*#+}} ymm13 = ymm3[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,zero,zero,ymm3[21],zero,ymm3[19],zero,zero,zero,zero,ymm3[22],zero,ymm3[20],zero,zero3870; AVX2-FP-NEXT:    vpshufb {{.*#+}} ymm14 = ymm1[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,zero,ymm1[21],zero,ymm1[19],zero,zero,zero,zero,ymm1[22],zero,ymm1[20],zero,zero,zero3871; AVX2-FP-NEXT:    vpor %ymm13, %ymm14, %ymm133872; AVX2-FP-NEXT:    vpermq {{.*#+}} ymm13 = ymm13[2,3,2,3]3873; AVX2-FP-NEXT:    vmovdqa {{.*#+}} ymm14 = [255,255,u,u,u,0,0,255,255,u,u,u,0,0,255,255,u,u,u,0,0,255,255,u,u,u,0,0,255,255,u,u]3874; AVX2-FP-NEXT:    vpblendvb %ymm14, %ymm12, %ymm13, %ymm123875; AVX2-FP-NEXT:    vpshufb {{.*#+}} ymm13 = ymm8[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,ymm8[20],zero,ymm8[18],zero,zero,zero,zero,ymm8[21],zero,ymm8[19],zero,zero,zero,zero,ymm8[22]3876; AVX2-FP-NEXT:    vpshufb {{.*#+}} ymm14 = ymm6[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,20],zero,ymm6[18],zero,zero,zero,zero,ymm6[21],zero,ymm6[19],zero,zero,zero,zero,ymm6[22],zero3877; AVX2-FP-NEXT:    vpor %ymm13, %ymm14, %ymm133878; AVX2-FP-NEXT:    vpermq {{.*#+}} ymm13 = ymm13[2,3,2,3]3879; AVX2-FP-NEXT:    vpshufb {{.*#+}} ymm14 = ymm7[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,20,21,18,19,18,19,20,21,18,19,20,21,28,29,30,31]3880; AVX2-FP-NEXT:    vpermq {{.*#+}} ymm14 = ymm14[2,2,3,2]3881; AVX2-FP-NEXT:    vmovdqa {{.*#+}} ymm15 = [u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255]3882; AVX2-FP-NEXT:    vpblendvb %ymm15, %ymm13, %ymm14, %ymm133883; AVX2-FP-NEXT:    vmovdqa {{.*#+}} ymm14 = [255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0]3884; AVX2-FP-NEXT:    vpblendvb %ymm14, %ymm12, %ymm13, %ymm123885; AVX2-FP-NEXT:    vpshufb {{.*#+}} ymm6 = zero,ymm6[1,2,3,0,1,14],zero,ymm6[0,1,0,1,14,15],zero,ymm6[15,16,17,18,19,16],zero,ymm6[30,31,16,17,16,17],zero,ymm6[31,30,31]3886; AVX2-FP-NEXT:    vpshufb {{.*#+}} ymm8 = ymm8[13],zero,zero,zero,zero,zero,zero,ymm8[14],zero,zero,zero,zero,zero,zero,ymm8[15],zero,zero,zero,zero,zero,zero,ymm8[16],zero,zero,zero,zero,zero,zero,ymm8[17],zero,zero,zero3887; AVX2-FP-NEXT:    vpor %ymm6, %ymm8, %ymm63888; AVX2-FP-NEXT:    vpshufb {{.*#+}} ymm7 = ymm7[12,13,2,3,12,13,0,1,14,15,2,3,0,1,14,15,28,29,18,19,28,29,16,17,30,31,18,19,16,17,30,31]3889; AVX2-FP-NEXT:    vmovdqa {{.*#+}} ymm8 = [255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u]3890; AVX2-FP-NEXT:    vpblendvb %ymm8, %ymm6, %ymm7, %ymm63891; AVX2-FP-NEXT:    vpshufb {{.*#+}} ymm3 = zero,zero,zero,ymm3[14],zero,zero,zero,zero,zero,zero,ymm3[15],zero,zero,zero,zero,zero,zero,ymm3[16],zero,zero,zero,zero,zero,zero,ymm3[17],zero,zero,zero,zero,zero,zero,ymm3[18]3892; AVX2-FP-NEXT:    vpshufb {{.*#+}} ymm1 = zero,zero,ymm1[14],zero,zero,zero,zero,zero,zero,ymm1[15],zero,zero,zero,zero,zero,zero,ymm1[16],zero,zero,zero,zero,zero,zero,ymm1[17],zero,zero,zero,zero,zero,zero,ymm1[18],zero3893; AVX2-FP-NEXT:    vpor %ymm3, %ymm1, %ymm13894; AVX2-FP-NEXT:    vpshufb {{.*#+}} ymm2 = zero,zero,zero,zero,zero,ymm2[14],zero,zero,zero,zero,zero,zero,ymm2[15],zero,zero,zero,zero,zero,zero,ymm2[16],zero,zero,zero,zero,zero,zero,ymm2[17],zero,zero,zero,zero,zero3895; AVX2-FP-NEXT:    vpshufb {{.*#+}} ymm0 = zero,zero,zero,zero,ymm0[14],zero,zero,zero,zero,zero,zero,ymm0[15],zero,zero,zero,zero,zero,zero,ymm0[16],zero,zero,zero,zero,zero,zero,ymm0[17],zero,zero,zero,zero,zero,zero3896; AVX2-FP-NEXT:    vpor %ymm2, %ymm0, %ymm03897; AVX2-FP-NEXT:    vpor %ymm1, %ymm0, %ymm03898; AVX2-FP-NEXT:    vmovdqa {{.*#+}} ymm1 = [0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255]3899; AVX2-FP-NEXT:    vpblendvb %ymm1, %ymm0, %ymm6, %ymm03900; AVX2-FP-NEXT:    movq {{[0-9]+}}(%rsp), %rax3901; AVX2-FP-NEXT:    vmovdqa %ymm0, 96(%rax)3902; AVX2-FP-NEXT:    vmovdqa %ymm12, 128(%rax)3903; AVX2-FP-NEXT:    vmovdqa %ymm11, 160(%rax)3904; AVX2-FP-NEXT:    vmovdqa %ymm9, (%rax)3905; AVX2-FP-NEXT:    vmovdqa %ymm10, 192(%rax)3906; AVX2-FP-NEXT:    vmovdqa %ymm5, 32(%rax)3907; AVX2-FP-NEXT:    vmovdqa %ymm4, 64(%rax)3908; AVX2-FP-NEXT:    vzeroupper3909; AVX2-FP-NEXT:    retq3910;3911; AVX2-FCP-LABEL: store_i8_stride7_vf32:3912; AVX2-FCP:       # %bb.0:3913; AVX2-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax3914; AVX2-FCP-NEXT:    vmovdqa (%rdi), %ymm13915; AVX2-FCP-NEXT:    vmovdqa (%rsi), %ymm33916; AVX2-FCP-NEXT:    vmovdqa (%rdx), %ymm03917; AVX2-FCP-NEXT:    vmovdqa (%rcx), %ymm23918; AVX2-FCP-NEXT:    vmovdqa (%rdx), %xmm93919; AVX2-FCP-NEXT:    vmovdqa (%rcx), %xmm103920; AVX2-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm4 = xmm10[8],xmm9[8],xmm10[9],xmm9[9],xmm10[10],xmm9[10],xmm10[11],xmm9[11],xmm10[12],xmm9[12],xmm10[13],xmm9[13],xmm10[14],xmm9[14],xmm10[15],xmm9[15]3921; AVX2-FCP-NEXT:    vpshufb {{.*#+}} xmm4 = xmm4[6,3,2,u,u,u,9,8,5,4,u,u,u,11,10,7]3922; AVX2-FCP-NEXT:    vpermq {{.*#+}} ymm4 = ymm4[0,1,0,1]3923; AVX2-FCP-NEXT:    vmovdqa (%rdi), %xmm133924; AVX2-FCP-NEXT:    vmovdqa (%rsi), %xmm153925; AVX2-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm5 = xmm15[8],xmm13[8],xmm15[9],xmm13[9],xmm15[10],xmm13[10],xmm15[11],xmm13[11],xmm15[12],xmm13[12],xmm15[13],xmm13[13],xmm15[14],xmm13[14],xmm15[15],xmm13[15]3926; AVX2-FCP-NEXT:    vpshufb {{.*#+}} xmm5 = xmm5[2,u,u,u,9,8,5,4,u,u,u,11,10,7,6,u]3927; AVX2-FCP-NEXT:    vpermq {{.*#+}} ymm5 = ymm5[0,1,0,1]3928; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} ymm6 = [0,255,255,u,u,u,0,0,255,255,u,u,u,0,0,255,255,u,u,u,0,0,255,255,u,u,u,0,0,255,255,u]3929; AVX2-FCP-NEXT:    vpblendvb %ymm6, %ymm4, %ymm5, %ymm43930; AVX2-FCP-NEXT:    vmovdqa (%rax), %xmm113931; AVX2-FCP-NEXT:    vpshufhw {{.*#+}} xmm5 = xmm11[0,1,2,3,4,5,5,6]3932; AVX2-FCP-NEXT:    vbroadcasti128 {{.*#+}} ymm6 = [2,2,3,3,2,2,3,3]3933; AVX2-FCP-NEXT:    # ymm6 = mem[0,1,0,1]3934; AVX2-FCP-NEXT:    vpermd %ymm5, %ymm6, %ymm53935; AVX2-FCP-NEXT:    vmovdqa (%r9), %xmm123936; AVX2-FCP-NEXT:    vmovdqa (%r8), %xmm143937; AVX2-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm6 = xmm14[8],xmm12[8],xmm14[9],xmm12[9],xmm14[10],xmm12[10],xmm14[11],xmm12[11],xmm14[12],xmm12[12],xmm14[13],xmm12[13],xmm14[14],xmm12[14],xmm14[15],xmm12[15]3938; AVX2-FCP-NEXT:    vpshufb {{.*#+}} xmm6 = xmm6[u,6,7,2,3,u,u,u,8,9,4,5,u,u,u,10]3939; AVX2-FCP-NEXT:    vpermq {{.*#+}} ymm6 = ymm6[0,1,0,1]3940; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} ymm7 = [u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255]3941; AVX2-FCP-NEXT:    vpblendvb %ymm7, %ymm6, %ymm5, %ymm53942; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} ymm6 = [255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0]3943; AVX2-FCP-NEXT:    vpblendvb %ymm6, %ymm4, %ymm5, %ymm43944; AVX2-FCP-NEXT:    vpshufb {{.*#+}} xmm5 = xmm15[u],zero,xmm15[7],zero,xmm15[5,u,u,u],zero,xmm15[8],zero,xmm15[6,u,u,u],zero3945; AVX2-FCP-NEXT:    vpshufb {{.*#+}} xmm6 = xmm13[u,7],zero,xmm13[5],zero,xmm13[u,u,u,8],zero,xmm13[6],zero,xmm13[u,u,u,9]3946; AVX2-FCP-NEXT:    vpor %xmm5, %xmm6, %xmm53947; AVX2-FCP-NEXT:    vpermq {{.*#+}} ymm5 = ymm5[0,1,0,1]3948; AVX2-FCP-NEXT:    vpshufb {{.*#+}} xmm6 = xmm10[u,u,u],zero,xmm10[7],zero,xmm10[5,u,u,u],zero,xmm10[8],zero,xmm10[6,u,u]3949; AVX2-FCP-NEXT:    vpshufb {{.*#+}} xmm7 = xmm9[u,u,u,7],zero,xmm9[5],zero,xmm9[u,u,u,8],zero,xmm9[6],zero,xmm9[u,u]3950; AVX2-FCP-NEXT:    vpor %xmm6, %xmm7, %xmm63951; AVX2-FCP-NEXT:    vpermq {{.*#+}} ymm6 = ymm6[0,1,0,1]3952; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} ymm7 = [u,u,u,255,255,0,0,u,u,u,255,255,0,0,u,u,u,255,255,0,0,u,u,u,255,255,0,0,u,u,u,255]3953; AVX2-FCP-NEXT:    vpblendvb %ymm7, %ymm5, %ymm6, %ymm53954; AVX2-FCP-NEXT:    vpshufb {{.*#+}} xmm6 = xmm11[4,5,4,5,4,5,8,9,6,7,6,7,6,7,6,7]3955; AVX2-FCP-NEXT:    vpermq {{.*#+}} ymm6 = ymm6[0,0,1,0]3956; AVX2-FCP-NEXT:    vpshufb {{.*#+}} xmm7 = zero,xmm12[4,u,u,u],zero,xmm12[7],zero,xmm12[5,u,u,u],zero,xmm12[8],zero,xmm12[6]3957; AVX2-FCP-NEXT:    vpshufb {{.*#+}} xmm8 = xmm14[4],zero,xmm14[u,u,u,7],zero,xmm14[5],zero,xmm14[u,u,u,8],zero,xmm14[6],zero3958; AVX2-FCP-NEXT:    vpor %xmm7, %xmm8, %xmm73959; AVX2-FCP-NEXT:    vpermq {{.*#+}} ymm7 = ymm7[0,1,0,1]3960; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} ymm8 = [255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u]3961; AVX2-FCP-NEXT:    vpblendvb %ymm8, %ymm7, %ymm6, %ymm73962; AVX2-FCP-NEXT:    vmovdqa (%r8), %ymm63963; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} ymm8 = [0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255]3964; AVX2-FCP-NEXT:    vpblendvb %ymm8, %ymm5, %ymm7, %ymm53965; AVX2-FCP-NEXT:    vmovdqa (%r9), %ymm83966; AVX2-FCP-NEXT:    vmovdqa (%rax), %ymm73967; AVX2-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm13 = xmm13[0],xmm15[0],xmm13[1],xmm15[1],xmm13[2],xmm15[2],xmm13[3],xmm15[3],xmm13[4],xmm15[4],xmm13[5],xmm15[5],xmm13[6],xmm15[6],xmm13[7],xmm15[7]3968; AVX2-FCP-NEXT:    vpshufb {{.*#+}} xmm13 = xmm13[0,1,u,u,u,6,7,2,3,u,u,u,8,9,4,5]3969; AVX2-FCP-NEXT:    vpermq {{.*#+}} ymm13 = ymm13[0,1,0,1]3970; AVX2-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm9 = xmm9[0],xmm10[0],xmm9[1],xmm10[1],xmm9[2],xmm10[2],xmm9[3],xmm10[3],xmm9[4],xmm10[4],xmm9[5],xmm10[5],xmm9[6],xmm10[6],xmm9[7],xmm10[7]3971; AVX2-FCP-NEXT:    vpshufb {{.*#+}} xmm9 = xmm9[4,5,0,1,u,u,u,6,7,2,3,u,u,u,8,9]3972; AVX2-FCP-NEXT:    vpermq {{.*#+}} ymm9 = ymm9[0,1,0,1]3973; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} ymm10 = [255,255,0,0,u,u,u,255,255,0,0,u,u,u,255,255,0,0,u,u,u,255,255,0,0,u,u,u,255,255,0,0]3974; AVX2-FCP-NEXT:    vpblendvb %ymm10, %ymm13, %ymm9, %ymm93975; AVX2-FCP-NEXT:    vpshuflw {{.*#+}} xmm10 = xmm11[1,1,0,0,4,5,6,7]3976; AVX2-FCP-NEXT:    vpmovsxbd {{.*#+}} ymm11 = [0,1,0,1,2,0,0,1]3977; AVX2-FCP-NEXT:    vpermd %ymm10, %ymm11, %ymm103978; AVX2-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm11 = xmm14[0],xmm12[0],xmm14[1],xmm12[1],xmm14[2],xmm12[2],xmm14[3],xmm12[3],xmm14[4],xmm12[4],xmm14[5],xmm12[5],xmm14[6],xmm12[6],xmm14[7],xmm12[7]3979; AVX2-FCP-NEXT:    vpshufb {{.*#+}} xmm11 = xmm11[u,u,4,5,0,1,u,u,u,6,7,2,3,u,u,u]3980; AVX2-FCP-NEXT:    vpermq {{.*#+}} ymm11 = ymm11[0,1,0,1]3981; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} ymm12 = [u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u]3982; AVX2-FCP-NEXT:    vpblendvb %ymm12, %ymm11, %ymm10, %ymm103983; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} ymm11 = [255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255]3984; AVX2-FCP-NEXT:    vpblendvb %ymm11, %ymm9, %ymm10, %ymm93985; AVX2-FCP-NEXT:    vpshufb {{.*#+}} ymm10 = ymm2[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,ymm2[18],zero,zero,zero,zero,ymm2[21],zero,ymm2[19],zero,zero,zero,zero,ymm2[22],zero,ymm2[20]3986; AVX2-FCP-NEXT:    vpshufb {{.*#+}} ymm11 = ymm0[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,18],zero,zero,zero,zero,ymm0[21],zero,ymm0[19],zero,zero,zero,zero,ymm0[22],zero,ymm0[20],zero3987; AVX2-FCP-NEXT:    vpor %ymm10, %ymm11, %ymm103988; AVX2-FCP-NEXT:    vpermq {{.*#+}} ymm10 = ymm10[2,3,2,3]3989; AVX2-FCP-NEXT:    vpshufb {{.*#+}} ymm11 = ymm3[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,zero,zero,ymm3[21],zero,ymm3[19],zero,zero,zero,zero,ymm3[22],zero,ymm3[20],zero,zero3990; AVX2-FCP-NEXT:    vpshufb {{.*#+}} ymm12 = ymm1[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,zero,ymm1[21],zero,ymm1[19],zero,zero,zero,zero,ymm1[22],zero,ymm1[20],zero,zero,zero3991; AVX2-FCP-NEXT:    vpor %ymm11, %ymm12, %ymm113992; AVX2-FCP-NEXT:    vpermq {{.*#+}} ymm11 = ymm11[2,3,2,3]3993; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} ymm12 = [255,255,u,u,u,0,0,255,255,u,u,u,0,0,255,255,u,u,u,0,0,255,255,u,u,u,0,0,255,255,u,u]3994; AVX2-FCP-NEXT:    vpblendvb %ymm12, %ymm10, %ymm11, %ymm103995; AVX2-FCP-NEXT:    vpshuflw {{.*#+}} ymm11 = ymm7[2,1,1,2,4,5,6,7,10,9,9,10,12,13,14,15]3996; AVX2-FCP-NEXT:    vpmovsxbd {{.*#+}} ymm12 = [4,5,4,5,5,7,4,5]3997; AVX2-FCP-NEXT:    vpermd %ymm11, %ymm12, %ymm113998; AVX2-FCP-NEXT:    vpshufb {{.*#+}} ymm12 = ymm8[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,ymm8[20],zero,ymm8[18],zero,zero,zero,zero,ymm8[21],zero,ymm8[19],zero,zero,zero,zero,ymm8[22]3999; AVX2-FCP-NEXT:    vpshufb {{.*#+}} ymm13 = ymm6[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,20],zero,ymm6[18],zero,zero,zero,zero,ymm6[21],zero,ymm6[19],zero,zero,zero,zero,ymm6[22],zero4000; AVX2-FCP-NEXT:    vpor %ymm12, %ymm13, %ymm124001; AVX2-FCP-NEXT:    vpermq {{.*#+}} ymm12 = ymm12[2,3,2,3]4002; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} ymm13 = [u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255]4003; AVX2-FCP-NEXT:    vpblendvb %ymm13, %ymm12, %ymm11, %ymm114004; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} ymm12 = [255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0]4005; AVX2-FCP-NEXT:    vpblendvb %ymm12, %ymm10, %ymm11, %ymm104006; AVX2-FCP-NEXT:    vpshufb {{.*#+}} ymm11 = ymm0[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,ymm0[17,18,19,30],zero,ymm0[28],zero,ymm0[28,29,30,31],zero,ymm0[29],zero,ymm0[31]4007; AVX2-FCP-NEXT:    vpshufb {{.*#+}} ymm12 = ymm2[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,27],zero,zero,zero,zero,ymm2[30],zero,ymm2[28],zero,zero,zero,zero,ymm2[31],zero,ymm2[29],zero4008; AVX2-FCP-NEXT:    vpor %ymm11, %ymm12, %ymm114009; AVX2-FCP-NEXT:    vpermq {{.*#+}} ymm11 = ymm11[2,3,2,3]4010; AVX2-FCP-NEXT:    vpshufb {{.*#+}} ymm12 = ymm3[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,zero,ymm3[30],zero,ymm3[28],zero,zero,zero,zero,ymm3[31],zero,ymm3[29],zero,zero,zero4011; AVX2-FCP-NEXT:    vpshufb {{.*#+}} ymm13 = ymm1[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,ymm1[30],zero,ymm1[28],zero,zero,zero,zero,ymm1[31],zero,ymm1[29],zero,zero,zero,zero4012; AVX2-FCP-NEXT:    vpor %ymm12, %ymm13, %ymm124013; AVX2-FCP-NEXT:    vpermq {{.*#+}} ymm12 = ymm12[2,3,2,3]4014; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} ymm13 = [255,u,u,u,0,0,255,255,u,u,u,0,0,255,255,u,u,u,0,0,255,255,u,u,u,0,0,255,255,u,u,u]4015; AVX2-FCP-NEXT:    vpblendvb %ymm13, %ymm11, %ymm12, %ymm114016; AVX2-FCP-NEXT:    vpshufb {{.*#+}} ymm12 = ymm6[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,ymm6[27],zero,ymm6[27,28,29,30],zero,ymm6[28],zero,ymm6[26,27,30,31],zero,ymm6[29]4017; AVX2-FCP-NEXT:    vpshufb {{.*#+}} ymm13 = ymm8[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,29],zero,ymm8[27],zero,zero,zero,zero,ymm8[30],zero,ymm8[28],zero,zero,zero,zero,ymm8[31],zero4018; AVX2-FCP-NEXT:    vpor %ymm12, %ymm13, %ymm124019; AVX2-FCP-NEXT:    vpermq {{.*#+}} ymm12 = ymm12[2,3,2,3]4020; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} ymm13 = [255,0,0,u,255,255,255,255,0,0,u,255,255,255,255,0,0,u,255,255,255,255,0,0,u,255,255,255,255,0,0,u]4021; AVX2-FCP-NEXT:    vpblendvb %ymm13, %ymm11, %ymm12, %ymm114022; AVX2-FCP-NEXT:    vpshufb {{.*#+}} ymm12 = ymm7[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,28,29,26,27,28,29,30,31,30,31,28,29,28,29,30,31]4023; AVX2-FCP-NEXT:    vpermq {{.*#+}} ymm12 = ymm12[2,3,2,3]4024; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} ymm13 = [255,255,255,0,255,255,255,255,255,255,0,255,255,255,255,255,255,0,255,255,255,255,255,255,0,255,255,255,255,255,255,0]4025; AVX2-FCP-NEXT:    vpblendvb %ymm13, %ymm11, %ymm12, %ymm114026; AVX2-FCP-NEXT:    vpshufb {{.*#+}} ymm12 = ymm1[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,ymm1[23],zero,ymm1[27,20,21,26],zero,ymm1[24],zero,ymm1[26,27,26,27],zero,ymm1[25]4027; AVX2-FCP-NEXT:    vpshufb {{.*#+}} ymm13 = ymm3[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,25],zero,ymm3[23],zero,zero,zero,zero,ymm3[26],zero,ymm3[24],zero,zero,zero,zero,ymm3[27],zero4028; AVX2-FCP-NEXT:    vpor %ymm12, %ymm13, %ymm124029; AVX2-FCP-NEXT:    vpermq {{.*#+}} ymm12 = ymm12[2,3,2,3]4030; AVX2-FCP-NEXT:    vpshufb {{.*#+}} ymm13 = ymm2[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,ymm2[25],zero,ymm2[23],zero,zero,zero,zero,ymm2[26],zero,ymm2[24],zero,zero,zero,zero4031; AVX2-FCP-NEXT:    vpshufb {{.*#+}} ymm14 = ymm0[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,ymm0[25],zero,ymm0[23],zero,zero,zero,zero,ymm0[26],zero,ymm0[24],zero,zero,zero,zero,ymm0[27]4032; AVX2-FCP-NEXT:    vpor %ymm13, %ymm14, %ymm134033; AVX2-FCP-NEXT:    vpermq {{.*#+}} ymm13 = ymm13[2,3,2,3]4034; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} ymm14 = [u,255,255,0,0,u,u,u,255,255,0,0,u,u,u,255,255,0,0,u,u,u,255,255,0,0,u,u,u,255,255,0]4035; AVX2-FCP-NEXT:    vpblendvb %ymm14, %ymm12, %ymm13, %ymm124036; AVX2-FCP-NEXT:    vpshufb {{.*#+}} ymm13 = ymm8[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,zero,zero,ymm8[25],zero,ymm8[23],zero,zero,zero,zero,ymm8[26],zero,ymm8[24],zero,zero4037; AVX2-FCP-NEXT:    vpshufb {{.*#+}} ymm14 = ymm6[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,zero,ymm6[25],zero,ymm6[23],zero,zero,zero,zero,ymm6[26],zero,ymm6[24],zero,zero,zero4038; AVX2-FCP-NEXT:    vpor %ymm13, %ymm14, %ymm134039; AVX2-FCP-NEXT:    vpermq {{.*#+}} ymm13 = ymm13[2,3,2,3]4040; AVX2-FCP-NEXT:    vpshufb {{.*#+}} ymm14 = ymm7[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,22,23,26,27,24,25,22,23,24,25,26,27,26,27,24,25]4041; AVX2-FCP-NEXT:    vpermq {{.*#+}} ymm14 = ymm14[2,3,2,3]4042; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} ymm15 = [0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u]4043; AVX2-FCP-NEXT:    vpblendvb %ymm15, %ymm13, %ymm14, %ymm134044; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} ymm14 = [0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255]4045; AVX2-FCP-NEXT:    vpblendvb %ymm14, %ymm12, %ymm13, %ymm124046; AVX2-FCP-NEXT:    vpshufb {{.*#+}} ymm6 = zero,ymm6[1,2,3,0,1,14],zero,ymm6[0,1,0,1,14,15],zero,ymm6[15,16,17,18,19,16],zero,ymm6[30,31,16,17,16,17],zero,ymm6[31,30,31]4047; AVX2-FCP-NEXT:    vpshufb {{.*#+}} ymm8 = ymm8[13],zero,zero,zero,zero,zero,zero,ymm8[14],zero,zero,zero,zero,zero,zero,ymm8[15],zero,zero,zero,zero,zero,zero,ymm8[16],zero,zero,zero,zero,zero,zero,ymm8[17],zero,zero,zero4048; AVX2-FCP-NEXT:    vpor %ymm6, %ymm8, %ymm64049; AVX2-FCP-NEXT:    vpshufb {{.*#+}} ymm7 = ymm7[12,13,2,3,12,13,0,1,14,15,2,3,0,1,14,15,28,29,18,19,28,29,16,17,30,31,18,19,16,17,30,31]4050; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} ymm8 = [255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u]4051; AVX2-FCP-NEXT:    vpblendvb %ymm8, %ymm6, %ymm7, %ymm64052; AVX2-FCP-NEXT:    vpshufb {{.*#+}} ymm3 = zero,zero,zero,ymm3[14],zero,zero,zero,zero,zero,zero,ymm3[15],zero,zero,zero,zero,zero,zero,ymm3[16],zero,zero,zero,zero,zero,zero,ymm3[17],zero,zero,zero,zero,zero,zero,ymm3[18]4053; AVX2-FCP-NEXT:    vpshufb {{.*#+}} ymm1 = zero,zero,ymm1[14],zero,zero,zero,zero,zero,zero,ymm1[15],zero,zero,zero,zero,zero,zero,ymm1[16],zero,zero,zero,zero,zero,zero,ymm1[17],zero,zero,zero,zero,zero,zero,ymm1[18],zero4054; AVX2-FCP-NEXT:    vpor %ymm3, %ymm1, %ymm14055; AVX2-FCP-NEXT:    vpshufb {{.*#+}} ymm2 = zero,zero,zero,zero,zero,ymm2[14],zero,zero,zero,zero,zero,zero,ymm2[15],zero,zero,zero,zero,zero,zero,ymm2[16],zero,zero,zero,zero,zero,zero,ymm2[17],zero,zero,zero,zero,zero4056; AVX2-FCP-NEXT:    vpshufb {{.*#+}} ymm0 = zero,zero,zero,zero,ymm0[14],zero,zero,zero,zero,zero,zero,ymm0[15],zero,zero,zero,zero,zero,zero,ymm0[16],zero,zero,zero,zero,zero,zero,ymm0[17],zero,zero,zero,zero,zero,zero4057; AVX2-FCP-NEXT:    vpor %ymm2, %ymm0, %ymm04058; AVX2-FCP-NEXT:    vpor %ymm1, %ymm0, %ymm04059; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} ymm1 = [0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255]4060; AVX2-FCP-NEXT:    vpblendvb %ymm1, %ymm0, %ymm6, %ymm04061; AVX2-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax4062; AVX2-FCP-NEXT:    vmovdqa %ymm0, 96(%rax)4063; AVX2-FCP-NEXT:    vmovdqa %ymm10, 128(%rax)4064; AVX2-FCP-NEXT:    vmovdqa %ymm12, 160(%rax)4065; AVX2-FCP-NEXT:    vmovdqa %ymm9, (%rax)4066; AVX2-FCP-NEXT:    vmovdqa %ymm11, 192(%rax)4067; AVX2-FCP-NEXT:    vmovdqa %ymm5, 32(%rax)4068; AVX2-FCP-NEXT:    vmovdqa %ymm4, 64(%rax)4069; AVX2-FCP-NEXT:    vzeroupper4070; AVX2-FCP-NEXT:    retq4071;4072; AVX512-LABEL: store_i8_stride7_vf32:4073; AVX512:       # %bb.0:4074; AVX512-NEXT:    movq {{[0-9]+}}(%rsp), %rax4075; AVX512-NEXT:    movq {{[0-9]+}}(%rsp), %r104076; AVX512-NEXT:    vmovdqa (%rdi), %ymm64077; AVX512-NEXT:    vmovdqa (%rsi), %ymm34078; AVX512-NEXT:    vmovdqa (%rdx), %ymm84079; AVX512-NEXT:    vmovdqa64 (%rcx), %ymm194080; AVX512-NEXT:    vmovdqa (%r8), %ymm44081; AVX512-NEXT:    vmovdqa (%r9), %ymm54082; AVX512-NEXT:    vmovdqa64 (%r10), %ymm184083; AVX512-NEXT:    vmovdqa (%rsi), %xmm04084; AVX512-NEXT:    vpshufb {{.*#+}} xmm7 = xmm0[u],zero,xmm0[7],zero,xmm0[5,u,u,u],zero,xmm0[8],zero,xmm0[6,u,u,u],zero4085; AVX512-NEXT:    vmovdqa (%rdi), %xmm94086; AVX512-NEXT:    vpshufb {{.*#+}} xmm10 = xmm9[u,7],zero,xmm9[5],zero,xmm9[u,u,u,8],zero,xmm9[6],zero,xmm9[u,u,u,9]4087; AVX512-NEXT:    vpor %xmm7, %xmm10, %xmm74088; AVX512-NEXT:    vpunpcklbw {{.*#+}} xmm10 = xmm9[0],xmm0[0],xmm9[1],xmm0[1],xmm9[2],xmm0[2],xmm9[3],xmm0[3],xmm9[4],xmm0[4],xmm9[5],xmm0[5],xmm9[6],xmm0[6],xmm9[7],xmm0[7]4089; AVX512-NEXT:    vmovdqa64 %xmm0, %xmm204090; AVX512-NEXT:    vpshufb {{.*#+}} xmm10 = xmm10[0,1,u,u,u,6,7,2,3,u,u,u,8,9,4,5]4091; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm7 = zmm10[0,1,0,1],zmm7[0,1,0,1]4092; AVX512-NEXT:    vmovdqa (%rcx), %xmm134093; AVX512-NEXT:    vpshufb {{.*#+}} xmm10 = xmm13[u,u,u],zero,xmm13[7],zero,xmm13[5,u,u,u],zero,xmm13[8],zero,xmm13[6,u,u]4094; AVX512-NEXT:    vmovdqa (%rdx), %xmm144095; AVX512-NEXT:    vpshufb {{.*#+}} xmm11 = xmm14[u,u,u,7],zero,xmm14[5],zero,xmm14[u,u,u,8],zero,xmm14[6],zero,xmm14[u,u]4096; AVX512-NEXT:    vpor %xmm10, %xmm11, %xmm104097; AVX512-NEXT:    vpunpcklbw {{.*#+}} xmm11 = xmm14[0],xmm13[0],xmm14[1],xmm13[1],xmm14[2],xmm13[2],xmm14[3],xmm13[3],xmm14[4],xmm13[4],xmm14[5],xmm13[5],xmm14[6],xmm13[6],xmm14[7],xmm13[7]4098; AVX512-NEXT:    vpshufb {{.*#+}} xmm11 = xmm11[4,5,0,1,u,u,u,6,7,2,3,u,u,u,8,9]4099; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm15 = zmm11[0,1,0,1],zmm10[0,1,0,1]4100; AVX512-NEXT:    vpternlogq {{.*#+}} zmm15 = zmm15 ^ (mem & (zmm15 ^ zmm7))4101; AVX512-NEXT:    vmovdqa (%r9), %xmm104102; AVX512-NEXT:    vpshufb {{.*#+}} xmm7 = zero,xmm10[4,u,u,u],zero,xmm10[7],zero,xmm10[5,u,u,u],zero,xmm10[8],zero,xmm10[6]4103; AVX512-NEXT:    vmovdqa (%r8), %xmm114104; AVX512-NEXT:    vpshufb {{.*#+}} xmm12 = xmm11[4],zero,xmm11[u,u,u,7],zero,xmm11[5],zero,xmm11[u,u,u,8],zero,xmm11[6],zero4105; AVX512-NEXT:    vpor %xmm7, %xmm12, %xmm74106; AVX512-NEXT:    vpunpcklbw {{.*#+}} xmm12 = xmm11[0],xmm10[0],xmm11[1],xmm10[1],xmm11[2],xmm10[2],xmm11[3],xmm10[3],xmm11[4],xmm10[4],xmm11[5],xmm10[5],xmm11[6],xmm10[6],xmm11[7],xmm10[7]4107; AVX512-NEXT:    vpshufb {{.*#+}} xmm12 = xmm12[u,u,4,5,0,1,u,u,u,6,7,2,3,u,u,u]4108; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm16 = zmm12[0,1,0,1],zmm7[0,1,0,1]4109; AVX512-NEXT:    vmovdqa (%r10), %xmm124110; AVX512-NEXT:    vpshufb {{.*#+}} xmm7 = xmm12[4,5,4,5,4,5,8,9,6,7,6,7,6,7,6,7]4111; AVX512-NEXT:    vpshuflw {{.*#+}} xmm0 = xmm12[1,1,0,0,4,5,6,7]4112; AVX512-NEXT:    vpshufd {{.*#+}} xmm0 = xmm0[0,1,2,0]4113; AVX512-NEXT:    vinserti64x4 $1, %ymm7, %zmm0, %zmm04114; AVX512-NEXT:    vpermq {{.*#+}} zmm17 = zmm0[0,0,1,0,4,4,5,4]4115; AVX512-NEXT:    vpternlogq {{.*#+}} zmm17 = zmm17 ^ (mem & (zmm17 ^ zmm16))4116; AVX512-NEXT:    vpternlogq {{.*#+}} zmm17 = zmm17 ^ (mem & (zmm17 ^ zmm15))4117; AVX512-NEXT:    vpshufb {{.*#+}} ymm0 = ymm6[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,ymm6[23],zero,zero,zero,zero,ymm6[26],zero,ymm6[24],zero,zero,zero,zero,ymm6[27],zero,ymm6[25]4118; AVX512-NEXT:    vmovdqa64 %ymm19, %ymm74119; AVX512-NEXT:    vpshufb {{.*#+}} ymm15 = ymm7[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,ymm7[18],zero,zero,zero,zero,ymm7[21],zero,ymm7[19],zero,zero,zero,zero,ymm7[22],zero,ymm7[20]4120; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm0 = zmm15[2,3,2,3],zmm0[2,3,2,3]4121; AVX512-NEXT:    vpshufb {{.*#+}} ymm15 = ymm3[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,25],zero,ymm3[23,u,u,u],zero,ymm3[26],zero,ymm3[24,u,u,u],zero,ymm3[27],zero4122; AVX512-NEXT:    vpshufb {{.*#+}} ymm1 = ymm8[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,18],zero,ymm8[18,19,20,21],zero,ymm8[19],zero,ymm8[25,26,27,22],zero,ymm8[20],zero4123; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm1 = zmm1[2,3,2,3],zmm15[2,3,2,3]4124; AVX512-NEXT:    vporq %zmm0, %zmm1, %zmm04125; AVX512-NEXT:    vpshufb {{.*#+}} ymm1 = ymm7[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,ymm7[25],zero,ymm7[23],zero,zero,zero,zero,ymm7[26],zero,ymm7[24],zero,zero,zero,zero4126; AVX512-NEXT:    vmovdqa64 %ymm19, %ymm164127; AVX512-NEXT:    vpshufb {{.*#+}} ymm15 = ymm3[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,zero,zero,ymm3[21],zero,ymm3[19],zero,zero,zero,zero,ymm3[22],zero,ymm3[20],zero,zero4128; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm1 = zmm15[2,3,2,3],zmm1[2,3,2,3]4129; AVX512-NEXT:    vpshufb {{.*#+}} ymm15 = ymm8[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,24,25],zero,ymm8[23],zero,ymm8[21,22,23,26],zero,ymm8[24],zero,ymm8[28,29,26,27]4130; AVX512-NEXT:    vpshufb {{.*#+}} ymm2 = ymm6[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,18,19,20,21],zero,ymm6[19],zero,ymm6[21,20,21,22],zero,ymm6[20],zero,ymm6[22,23]4131; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm2 = zmm2[2,3,2,3],zmm15[2,3,2,3]4132; AVX512-NEXT:    vporq %zmm1, %zmm2, %zmm14133; AVX512-NEXT:    vpternlogq {{.*#+}} zmm1 = zmm1 ^ (mem & (zmm1 ^ zmm0))4134; AVX512-NEXT:    vpshufb {{.*#+}} ymm0 = ymm5[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,zero,zero,ymm5[25],zero,ymm5[23],zero,zero,zero,zero,ymm5[26],zero,ymm5[24],zero,zero4135; AVX512-NEXT:    vpshufb {{.*#+}} ymm2 = ymm5[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,ymm5[20],zero,ymm5[18],zero,zero,zero,zero,ymm5[21],zero,ymm5[19],zero,zero,zero,zero,ymm5[22]4136; AVX512-NEXT:    vmovdqa64 %ymm5, %ymm194137; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm0 = zmm2[2,3,2,3],zmm0[2,3,2,3]4138; AVX512-NEXT:    vmovdqa %ymm4, %ymm54139; AVX512-NEXT:    vpshufb {{.*#+}} ymm2 = ymm4[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,24,25,24,25],zero,ymm4[23],zero,ymm4[23,24,25,26],zero,ymm4[24],zero,ymm4[30,31]4140; AVX512-NEXT:    vpshufb {{.*#+}} ymm15 = ymm4[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,20],zero,ymm4[18],zero,ymm4[20,21,20,21],zero,ymm4[19],zero,ymm4[19,20,21,22],zero4141; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm2 = zmm15[2,3,2,3],zmm2[2,3,2,3]4142; AVX512-NEXT:    vporq %zmm0, %zmm2, %zmm04143; AVX512-NEXT:    vmovdqa64 %ymm18, %ymm44144; AVX512-NEXT:    vpshufb {{.*#+}} ymm2 = ymm4[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,22,23,26,27,24,25,22,23,u,u,u,u,26,27,24,25]4145; AVX512-NEXT:    vpshuflw {{.*#+}} ymm7 = ymm4[2,1,1,2,4,5,6,7,10,9,9,10,12,13,14,15]4146; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm15 = [0,5,4,0,5,0,4,0,20,21,0,23,0,21,0,23]4147; AVX512-NEXT:    vpermi2d %zmm2, %zmm7, %zmm154148; AVX512-NEXT:    vpternlogq {{.*#+}} zmm15 = zmm15 ^ (mem & (zmm15 ^ zmm0))4149; AVX512-NEXT:    vpternlogq {{.*#+}} zmm15 = zmm15 ^ (mem & (zmm15 ^ zmm1))4150; AVX512-NEXT:    vpshufb {{.*#+}} ymm0 = zero,zero,zero,ymm3[14,u,u],zero,zero,zero,zero,ymm3[15,u,u],zero,zero,zero,zero,ymm3[16,u,u],zero,zero,zero,zero,ymm3[17,u,u],zero,zero,zero,zero,ymm3[18]4151; AVX512-NEXT:    vpshufb {{.*#+}} ymm1 = ymm6[0,1,14],zero,ymm6[u,u,0,1,14,15],zero,ymm6[u,u,13,2,3,16],zero,ymm6[u,u,28,29,16,17],zero,ymm6[u,u,19,28,29,18],zero4152; AVX512-NEXT:    vpor %ymm0, %ymm1, %ymm04153; AVX512-NEXT:    vpunpckhbw {{.*#+}} xmm1 = xmm13[8],xmm14[8],xmm13[9],xmm14[9],xmm13[10],xmm14[10],xmm13[11],xmm14[11],xmm13[12],xmm14[12],xmm13[13],xmm14[13],xmm13[14],xmm14[14],xmm13[15],xmm14[15]4154; AVX512-NEXT:    vpshufb {{.*#+}} xmm1 = xmm1[6,3,2,u,u,u,9,8,5,4,u,u,u,11,10,7]4155; AVX512-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[0,1,0,1]4156; AVX512-NEXT:    vinserti64x4 $1, %ymm0, %zmm1, %zmm04157; AVX512-NEXT:    vmovdqa64 %ymm16, %ymm134158; AVX512-NEXT:    vpshufb {{.*#+}} ymm1 = ymm13[u,u,u,u],zero,ymm13[14,u,u,u,u,u],zero,ymm13[15,u,u,u,u,u],zero,ymm13[16,u,u,u,u,u],zero,ymm13[17,u,u,u,u,u]4159; AVX512-NEXT:    vpshufb {{.*#+}} ymm2 = ymm8[u,u,u,u,14],zero,ymm8[u,u,u,u,u,15],zero,ymm8[u,u,u,u,u,16],zero,ymm8[u,u,u,u,u,17],zero,ymm8[u,u,u,u,u]4160; AVX512-NEXT:    vpor %ymm1, %ymm2, %ymm14161; AVX512-NEXT:    vmovdqa64 %xmm20, %xmm24162; AVX512-NEXT:    vpunpckhbw {{.*#+}} xmm2 = xmm2[8],xmm9[8],xmm2[9],xmm9[9],xmm2[10],xmm9[10],xmm2[11],xmm9[11],xmm2[12],xmm9[12],xmm2[13],xmm9[13],xmm2[14],xmm9[14],xmm2[15],xmm9[15]4163; AVX512-NEXT:    vpshufb {{.*#+}} xmm2 = xmm2[2,u,u,u,9,8,5,4,u,u,u,11,10,7,6,u]4164; AVX512-NEXT:    vpermq {{.*#+}} ymm2 = ymm2[0,1,0,1]4165; AVX512-NEXT:    vinserti64x4 $1, %ymm1, %zmm2, %zmm14166; AVX512-NEXT:    vpternlogq {{.*#+}} zmm1 = zmm1 ^ (mem & (zmm1 ^ zmm0))4167; AVX512-NEXT:    vpshufb {{.*#+}} ymm0 = zero,ymm5[u],zero,zero,zero,zero,ymm5[14],zero,ymm5[u],zero,zero,zero,zero,ymm5[15],zero,ymm5[u],zero,zero,zero,zero,ymm5[16],zero,ymm5[u],zero,zero,zero,zero,ymm5[17],zero,ymm5[u],zero,zero4168; AVX512-NEXT:    vmovdqa64 %ymm19, %ymm94169; AVX512-NEXT:    vpshufb {{.*#+}} ymm2 = ymm9[13,u,u,u,u,u],zero,ymm9[14,u,u,u,u,u],zero,ymm9[15,u,u,u,u,u],zero,ymm9[16,u,u,u,u,u],zero,ymm9[17,u,u,u]4170; AVX512-NEXT:    vpor %ymm0, %ymm2, %ymm04171; AVX512-NEXT:    vpunpckhbw {{.*#+}} xmm2 = xmm11[8],xmm10[8],xmm11[9],xmm10[9],xmm11[10],xmm10[10],xmm11[11],xmm10[11],xmm11[12],xmm10[12],xmm11[13],xmm10[13],xmm11[14],xmm10[14],xmm11[15],xmm10[15]4172; AVX512-NEXT:    vpshufb {{.*#+}} xmm2 = xmm2[u,6,7,2,3,u,u,u,8,9,4,5,u,u,u,10]4173; AVX512-NEXT:    vpermq {{.*#+}} ymm2 = ymm2[0,1,0,1]4174; AVX512-NEXT:    vinserti64x4 $1, %ymm0, %zmm2, %zmm04175; AVX512-NEXT:    vpshufhw {{.*#+}} xmm2 = xmm12[0,1,2,3,4,5,5,6]4176; AVX512-NEXT:    vpshufd {{.*#+}} xmm2 = xmm2[2,2,3,3]4177; AVX512-NEXT:    vpermq {{.*#+}} ymm2 = ymm2[0,1,0,1]4178; AVX512-NEXT:    vpand {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm2, %ymm24179; AVX512-NEXT:    vpshufb {{.*#+}} ymm7 = zero,ymm4[13,u,u,u,u],zero,zero,ymm4[14,u,u,u,u],zero,zero,ymm4[15,u,u,u,u],zero,zero,ymm4[16,u,u,u,u],zero,zero,ymm4[17,u,u]4180; AVX512-NEXT:    vinserti64x4 $1, %ymm7, %zmm2, %zmm24181; AVX512-NEXT:    vpternlogq {{.*#+}} zmm2 = zmm2 | (zmm0 & mem)4182; AVX512-NEXT:    vpternlogq {{.*#+}} zmm2 = zmm2 ^ (mem & (zmm2 ^ zmm1))4183; AVX512-NEXT:    vpshufb {{.*#+}} ymm0 = ymm8[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,zero,zero,ymm8[30],zero,ymm8[28],zero,zero,zero,zero,ymm8[31],zero,ymm8[29],zero,zero4184; AVX512-NEXT:    vpshufb {{.*#+}} ymm1 = ymm13[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,27,u,u,u],zero,ymm13[30],zero,ymm13[28,u,u,u],zero,ymm13[31],zero,ymm13[29,u]4185; AVX512-NEXT:    vpor %ymm0, %ymm1, %ymm04186; AVX512-NEXT:    vpermq {{.*#+}} ymm0 = ymm0[2,3,2,3]4187; AVX512-NEXT:    vpshufb {{.*#+}} ymm1 = ymm3[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,zero,ymm3[30],zero,ymm3[28],zero,zero,zero,zero,ymm3[31],zero,ymm3[29],zero,zero,zero4188; AVX512-NEXT:    vpshufb {{.*#+}} ymm3 = ymm6[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,28,29,30],zero,ymm6[28],zero,ymm6[30,31,30,31],zero,ymm6[29],zero,ymm6[31,28,29]4189; AVX512-NEXT:    vpor %ymm1, %ymm3, %ymm14190; AVX512-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[2,3,2,3]4191; AVX512-NEXT:    vpternlogq {{.*#+}} ymm1 = ymm1 ^ (mem & (ymm1 ^ ymm0))4192; AVX512-NEXT:    vpshufb {{.*#+}} ymm0 = ymm5[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,ymm5[27],zero,zero,zero,zero,ymm5[30],zero,ymm5[28],zero,zero,zero,zero,ymm5[31],zero,ymm5[29]4193; AVX512-NEXT:    vpshufb {{.*#+}} ymm3 = ymm9[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,29],zero,ymm9[27,u,u,u],zero,ymm9[30],zero,ymm9[28,u,u,u],zero,ymm9[31],zero4194; AVX512-NEXT:    vpor %ymm0, %ymm3, %ymm04195; AVX512-NEXT:    vpermq {{.*#+}} ymm0 = ymm0[2,3,2,3]4196; AVX512-NEXT:    vpshufb {{.*#+}} ymm3 = ymm4[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,28,29,26,27,28,29,30,31,30,31,28,29,28,29,30,31]4197; AVX512-NEXT:    vpermq {{.*#+}} ymm3 = ymm3[2,3,2,3]4198; AVX512-NEXT:    vpternlogq {{.*#+}} ymm3 = ymm3 ^ (mem & (ymm3 ^ ymm0))4199; AVX512-NEXT:    vpternlogq {{.*#+}} ymm3 = ymm3 ^ (mem & (ymm3 ^ ymm1))4200; AVX512-NEXT:    vmovdqa %ymm3, 192(%rax)4201; AVX512-NEXT:    vmovdqa64 %zmm15, 128(%rax)4202; AVX512-NEXT:    vmovdqa64 %zmm17, (%rax)4203; AVX512-NEXT:    vmovdqa64 %zmm2, 64(%rax)4204; AVX512-NEXT:    vzeroupper4205; AVX512-NEXT:    retq4206;4207; AVX512-FCP-LABEL: store_i8_stride7_vf32:4208; AVX512-FCP:       # %bb.0:4209; AVX512-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax4210; AVX512-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r104211; AVX512-FCP-NEXT:    vmovdqa (%rdi), %ymm34212; AVX512-FCP-NEXT:    vmovdqa (%rsi), %ymm44213; AVX512-FCP-NEXT:    vmovdqa (%rdx), %ymm54214; AVX512-FCP-NEXT:    vmovdqa (%rcx), %ymm64215; AVX512-FCP-NEXT:    vmovdqa (%r8), %ymm14216; AVX512-FCP-NEXT:    vmovdqa (%r9), %ymm24217; AVX512-FCP-NEXT:    vmovdqa (%r10), %ymm04218; AVX512-FCP-NEXT:    vpshufb {{.*#+}} ymm7 = ymm3[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,ymm3[23],zero,zero,zero,zero,ymm3[26],zero,ymm3[24],zero,zero,zero,zero,ymm3[27],zero,ymm3[25]4219; AVX512-FCP-NEXT:    vpshufb {{.*#+}} ymm8 = ymm6[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,ymm6[18],zero,zero,zero,zero,ymm6[21],zero,ymm6[19],zero,zero,zero,zero,ymm6[22],zero,ymm6[20]4220; AVX512-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm7 = zmm8[2,3,2,3],zmm7[2,3,2,3]4221; AVX512-FCP-NEXT:    vpshufb {{.*#+}} ymm8 = ymm4[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,25],zero,ymm4[23,u,u,u],zero,ymm4[26],zero,ymm4[24,u,u,u],zero,ymm4[27],zero4222; AVX512-FCP-NEXT:    vpshufb {{.*#+}} ymm9 = ymm5[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,18],zero,ymm5[18,19,20,21],zero,ymm5[19],zero,ymm5[25,26,27,22],zero,ymm5[20],zero4223; AVX512-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm8 = zmm9[2,3,2,3],zmm8[2,3,2,3]4224; AVX512-FCP-NEXT:    vporq %zmm7, %zmm8, %zmm74225; AVX512-FCP-NEXT:    vpshufb {{.*#+}} ymm8 = ymm6[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,ymm6[25],zero,ymm6[23],zero,zero,zero,zero,ymm6[26],zero,ymm6[24],zero,zero,zero,zero4226; AVX512-FCP-NEXT:    vpshufb {{.*#+}} ymm9 = ymm4[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,zero,zero,ymm4[21],zero,ymm4[19],zero,zero,zero,zero,ymm4[22],zero,ymm4[20],zero,zero4227; AVX512-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm8 = zmm9[2,3,2,3],zmm8[2,3,2,3]4228; AVX512-FCP-NEXT:    vpshufb {{.*#+}} ymm9 = ymm5[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,24,25],zero,ymm5[23],zero,ymm5[21,22,23,26],zero,ymm5[24],zero,ymm5[28,29,26,27]4229; AVX512-FCP-NEXT:    vpshufb {{.*#+}} ymm10 = ymm3[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,18,19,20,21],zero,ymm3[19],zero,ymm3[21,20,21,22],zero,ymm3[20],zero,ymm3[22,23]4230; AVX512-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm9 = zmm10[2,3,2,3],zmm9[2,3,2,3]4231; AVX512-FCP-NEXT:    vporq %zmm8, %zmm9, %zmm84232; AVX512-FCP-NEXT:    vpternlogq {{.*#+}} zmm8 = zmm8 ^ (mem & (zmm8 ^ zmm7))4233; AVX512-FCP-NEXT:    vpshufb {{.*#+}} ymm7 = ymm2[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,zero,zero,ymm2[25],zero,ymm2[23],zero,zero,zero,zero,ymm2[26],zero,ymm2[24],zero,zero4234; AVX512-FCP-NEXT:    vpshufb {{.*#+}} ymm9 = ymm2[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,ymm2[20],zero,ymm2[18],zero,zero,zero,zero,ymm2[21],zero,ymm2[19],zero,zero,zero,zero,ymm2[22]4235; AVX512-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm7 = zmm9[2,3,2,3],zmm7[2,3,2,3]4236; AVX512-FCP-NEXT:    vpshufb {{.*#+}} ymm9 = ymm1[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,24,25,24,25],zero,ymm1[23],zero,ymm1[23,24,25,26],zero,ymm1[24],zero,ymm1[30,31]4237; AVX512-FCP-NEXT:    vpshufb {{.*#+}} ymm10 = ymm1[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,20],zero,ymm1[18],zero,ymm1[20,21,20,21],zero,ymm1[19],zero,ymm1[19,20,21,22],zero4238; AVX512-FCP-NEXT:    vmovdqa64 %ymm1, %ymm184239; AVX512-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm9 = zmm10[2,3,2,3],zmm9[2,3,2,3]4240; AVX512-FCP-NEXT:    vporq %zmm7, %zmm9, %zmm94241; AVX512-FCP-NEXT:    vpshuflw {{.*#+}} ymm10 = ymm0[2,1,1,2,4,5,6,7,10,9,9,10,12,13,14,15]4242; AVX512-FCP-NEXT:    vpshufb {{.*#+}} ymm11 = ymm0[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,22,23,26,27,24,25,22,23,u,u,u,u,26,27,24,25]4243; AVX512-FCP-NEXT:    vmovdqa64 %ymm0, %ymm194244; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm7 = [0,21,20,0,21,0,20,0,4,5,0,7,0,5,0,7]4245; AVX512-FCP-NEXT:    vpermi2d %zmm10, %zmm11, %zmm74246; AVX512-FCP-NEXT:    vpternlogq {{.*#+}} zmm7 = zmm7 ^ (mem & (zmm7 ^ zmm9))4247; AVX512-FCP-NEXT:    vpternlogq {{.*#+}} zmm7 = zmm7 ^ (mem & (zmm7 ^ zmm8))4248; AVX512-FCP-NEXT:    vmovdqa (%rsi), %xmm94249; AVX512-FCP-NEXT:    vpshufb {{.*#+}} xmm8 = xmm9[u],zero,xmm9[7],zero,xmm9[5,u,u,u],zero,xmm9[8],zero,xmm9[6,u,u,u],zero4250; AVX512-FCP-NEXT:    vmovdqa (%rdi), %xmm104251; AVX512-FCP-NEXT:    vpshufb {{.*#+}} xmm11 = xmm10[u,7],zero,xmm10[5],zero,xmm10[u,u,u,8],zero,xmm10[6],zero,xmm10[u,u,u,9]4252; AVX512-FCP-NEXT:    vpor %xmm8, %xmm11, %xmm84253; AVX512-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm11 = xmm10[0],xmm9[0],xmm10[1],xmm9[1],xmm10[2],xmm9[2],xmm10[3],xmm9[3],xmm10[4],xmm9[4],xmm10[5],xmm9[5],xmm10[6],xmm9[6],xmm10[7],xmm9[7]4254; AVX512-FCP-NEXT:    vpshufb {{.*#+}} xmm11 = xmm11[0,1,u,u,u,6,7,2,3,u,u,u,8,9,4,5]4255; AVX512-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm8 = zmm11[0,1,0,1],zmm8[0,1,0,1]4256; AVX512-FCP-NEXT:    vmovdqa (%rcx), %xmm124257; AVX512-FCP-NEXT:    vpshufb {{.*#+}} xmm11 = xmm12[u,u,u],zero,xmm12[7],zero,xmm12[5,u,u,u],zero,xmm12[8],zero,xmm12[6,u,u]4258; AVX512-FCP-NEXT:    vmovdqa (%rdx), %xmm144259; AVX512-FCP-NEXT:    vpshufb {{.*#+}} xmm13 = xmm14[u,u,u,7],zero,xmm14[5],zero,xmm14[u,u,u,8],zero,xmm14[6],zero,xmm14[u,u]4260; AVX512-FCP-NEXT:    vpor %xmm11, %xmm13, %xmm114261; AVX512-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm13 = xmm14[0],xmm12[0],xmm14[1],xmm12[1],xmm14[2],xmm12[2],xmm14[3],xmm12[3],xmm14[4],xmm12[4],xmm14[5],xmm12[5],xmm14[6],xmm12[6],xmm14[7],xmm12[7]4262; AVX512-FCP-NEXT:    vpshufb {{.*#+}} xmm13 = xmm13[4,5,0,1,u,u,u,6,7,2,3,u,u,u,8,9]4263; AVX512-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm16 = zmm13[0,1,0,1],zmm11[0,1,0,1]4264; AVX512-FCP-NEXT:    vpternlogq {{.*#+}} zmm16 = zmm16 ^ (mem & (zmm16 ^ zmm8))4265; AVX512-FCP-NEXT:    vmovdqa (%r10), %xmm114266; AVX512-FCP-NEXT:    vpshuflw {{.*#+}} xmm8 = xmm11[1,1,0,0,4,5,6,7]4267; AVX512-FCP-NEXT:    vpshufb {{.*#+}} xmm13 = xmm11[4,5,4,5,4,5,8,9,6,7,6,7,6,7,6,7]4268; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm17 = [0,17,0,17,0,16,16,0,0,0,0,0,2,3,0,1]4269; AVX512-FCP-NEXT:    vpermi2d %zmm8, %zmm13, %zmm174270; AVX512-FCP-NEXT:    vmovdqa (%r9), %xmm134271; AVX512-FCP-NEXT:    vpshufb {{.*#+}} xmm8 = zero,xmm13[4,u,u,u],zero,xmm13[7],zero,xmm13[5,u,u,u],zero,xmm13[8],zero,xmm13[6]4272; AVX512-FCP-NEXT:    vmovdqa (%r8), %xmm154273; AVX512-FCP-NEXT:    vpshufb {{.*#+}} xmm0 = xmm15[4],zero,xmm15[u,u,u,7],zero,xmm15[5],zero,xmm15[u,u,u,8],zero,xmm15[6],zero4274; AVX512-FCP-NEXT:    vpor %xmm0, %xmm8, %xmm04275; AVX512-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm8 = xmm15[0],xmm13[0],xmm15[1],xmm13[1],xmm15[2],xmm13[2],xmm15[3],xmm13[3],xmm15[4],xmm13[4],xmm15[5],xmm13[5],xmm15[6],xmm13[6],xmm15[7],xmm13[7]4276; AVX512-FCP-NEXT:    vpshufb {{.*#+}} xmm8 = xmm8[u,u,4,5,0,1,u,u,u,6,7,2,3,u,u,u]4277; AVX512-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm8 = zmm8[0,1,0,1],zmm0[0,1,0,1]4278; AVX512-FCP-NEXT:    vpternlogq {{.*#+}} zmm8 = zmm17 ^ (mem & (zmm8 ^ zmm17))4279; AVX512-FCP-NEXT:    vpternlogq {{.*#+}} zmm8 = zmm8 ^ (mem & (zmm8 ^ zmm16))4280; AVX512-FCP-NEXT:    vpshufb {{.*#+}} ymm0 = zero,zero,zero,ymm4[14,u,u],zero,zero,zero,zero,ymm4[15,u,u],zero,zero,zero,zero,ymm4[16,u,u],zero,zero,zero,zero,ymm4[17,u,u],zero,zero,zero,zero,ymm4[18]4281; AVX512-FCP-NEXT:    vpshufb {{.*#+}} ymm1 = ymm3[0,1,14],zero,ymm3[u,u,0,1,14,15],zero,ymm3[u,u,13,2,3,16],zero,ymm3[u,u,28,29,16,17],zero,ymm3[u,u,19,28,29,18],zero4282; AVX512-FCP-NEXT:    vpor %ymm0, %ymm1, %ymm04283; AVX512-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm1 = xmm12[8],xmm14[8],xmm12[9],xmm14[9],xmm12[10],xmm14[10],xmm12[11],xmm14[11],xmm12[12],xmm14[12],xmm12[13],xmm14[13],xmm12[14],xmm14[14],xmm12[15],xmm14[15]4284; AVX512-FCP-NEXT:    vpshufb {{.*#+}} xmm1 = xmm1[6,3,2,u,u,u,9,8,5,4,u,u,u,11,10,7]4285; AVX512-FCP-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[0,1,0,1]4286; AVX512-FCP-NEXT:    vinserti64x4 $1, %ymm0, %zmm1, %zmm04287; AVX512-FCP-NEXT:    vpshufb {{.*#+}} ymm1 = ymm6[u,u,u,u],zero,ymm6[14,u,u,u,u,u],zero,ymm6[15,u,u,u,u,u],zero,ymm6[16,u,u,u,u,u],zero,ymm6[17,u,u,u,u,u]4288; AVX512-FCP-NEXT:    vpshufb {{.*#+}} ymm12 = ymm5[u,u,u,u,14],zero,ymm5[u,u,u,u,u,15],zero,ymm5[u,u,u,u,u,16],zero,ymm5[u,u,u,u,u,17],zero,ymm5[u,u,u,u,u]4289; AVX512-FCP-NEXT:    vpor %ymm1, %ymm12, %ymm14290; AVX512-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm9 = xmm9[8],xmm10[8],xmm9[9],xmm10[9],xmm9[10],xmm10[10],xmm9[11],xmm10[11],xmm9[12],xmm10[12],xmm9[13],xmm10[13],xmm9[14],xmm10[14],xmm9[15],xmm10[15]4291; AVX512-FCP-NEXT:    vpshufb {{.*#+}} xmm9 = xmm9[2,u,u,u,9,8,5,4,u,u,u,11,10,7,6,u]4292; AVX512-FCP-NEXT:    vpermq {{.*#+}} ymm9 = ymm9[0,1,0,1]4293; AVX512-FCP-NEXT:    vinserti64x4 $1, %ymm1, %zmm9, %zmm14294; AVX512-FCP-NEXT:    vpternlogq {{.*#+}} zmm1 = zmm1 ^ (mem & (zmm1 ^ zmm0))4295; AVX512-FCP-NEXT:    vmovdqa64 %ymm18, %ymm124296; AVX512-FCP-NEXT:    vpshufb {{.*#+}} ymm0 = zero,ymm12[u],zero,zero,zero,zero,ymm12[14],zero,ymm12[u],zero,zero,zero,zero,ymm12[15],zero,ymm12[u],zero,zero,zero,zero,ymm12[16],zero,ymm12[u],zero,zero,zero,zero,ymm12[17],zero,ymm12[u],zero,zero4297; AVX512-FCP-NEXT:    vpshufb {{.*#+}} ymm9 = ymm2[13,u,u,u,u,u],zero,ymm2[14,u,u,u,u,u],zero,ymm2[15,u,u,u,u,u],zero,ymm2[16,u,u,u,u,u],zero,ymm2[17,u,u,u]4298; AVX512-FCP-NEXT:    vpor %ymm0, %ymm9, %ymm04299; AVX512-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm9 = xmm15[8],xmm13[8],xmm15[9],xmm13[9],xmm15[10],xmm13[10],xmm15[11],xmm13[11],xmm15[12],xmm13[12],xmm15[13],xmm13[13],xmm15[14],xmm13[14],xmm15[15],xmm13[15]4300; AVX512-FCP-NEXT:    vpshufb {{.*#+}} xmm9 = xmm9[u,6,7,2,3,u,u,u,8,9,4,5,u,u,u,10]4301; AVX512-FCP-NEXT:    vpermq {{.*#+}} ymm9 = ymm9[0,1,0,1]4302; AVX512-FCP-NEXT:    vinserti64x4 $1, %ymm0, %zmm9, %zmm04303; AVX512-FCP-NEXT:    vpshufhw {{.*#+}} xmm9 = xmm11[0,1,2,3,4,5,5,6]4304; AVX512-FCP-NEXT:    vbroadcasti128 {{.*#+}} ymm10 = [2,2,3,3,2,2,3,3]4305; AVX512-FCP-NEXT:    # ymm10 = mem[0,1,0,1]4306; AVX512-FCP-NEXT:    vpermd %ymm9, %ymm10, %ymm94307; AVX512-FCP-NEXT:    vpand {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm9, %ymm94308; AVX512-FCP-NEXT:    vmovdqa64 %ymm19, %ymm114309; AVX512-FCP-NEXT:    vpshufb {{.*#+}} ymm10 = zero,ymm11[13,u,u,u,u],zero,zero,ymm11[14,u,u,u,u],zero,zero,ymm11[15,u,u,u,u],zero,zero,ymm11[16,u,u,u,u],zero,zero,ymm11[17,u,u]4310; AVX512-FCP-NEXT:    vinserti64x4 $1, %ymm10, %zmm9, %zmm94311; AVX512-FCP-NEXT:    vpternlogq {{.*#+}} zmm9 = zmm9 | (zmm0 & mem)4312; AVX512-FCP-NEXT:    vpternlogq {{.*#+}} zmm9 = zmm9 ^ (mem & (zmm9 ^ zmm1))4313; AVX512-FCP-NEXT:    vpshufb {{.*#+}} ymm0 = ymm5[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,zero,zero,ymm5[30],zero,ymm5[28],zero,zero,zero,zero,ymm5[31],zero,ymm5[29],zero,zero4314; AVX512-FCP-NEXT:    vpshufb {{.*#+}} ymm1 = ymm6[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,27,u,u,u],zero,ymm6[30],zero,ymm6[28,u,u,u],zero,ymm6[31],zero,ymm6[29,u]4315; AVX512-FCP-NEXT:    vpor %ymm0, %ymm1, %ymm04316; AVX512-FCP-NEXT:    vpermq {{.*#+}} ymm0 = ymm0[2,3,2,3]4317; AVX512-FCP-NEXT:    vpshufb {{.*#+}} ymm1 = ymm4[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,zero,ymm4[30],zero,ymm4[28],zero,zero,zero,zero,ymm4[31],zero,ymm4[29],zero,zero,zero4318; AVX512-FCP-NEXT:    vpshufb {{.*#+}} ymm3 = ymm3[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,28,29,30],zero,ymm3[28],zero,ymm3[30,31,30,31],zero,ymm3[29],zero,ymm3[31,28,29]4319; AVX512-FCP-NEXT:    vpor %ymm1, %ymm3, %ymm14320; AVX512-FCP-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[2,3,2,3]4321; AVX512-FCP-NEXT:    vpternlogq {{.*#+}} ymm1 = ymm1 ^ (mem & (ymm1 ^ ymm0))4322; AVX512-FCP-NEXT:    vpshufb {{.*#+}} ymm0 = ymm12[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,ymm12[27],zero,zero,zero,zero,ymm12[30],zero,ymm12[28],zero,zero,zero,zero,ymm12[31],zero,ymm12[29]4323; AVX512-FCP-NEXT:    vpshufb {{.*#+}} ymm2 = ymm2[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,29],zero,ymm2[27,u,u,u],zero,ymm2[30],zero,ymm2[28,u,u,u],zero,ymm2[31],zero4324; AVX512-FCP-NEXT:    vpor %ymm0, %ymm2, %ymm04325; AVX512-FCP-NEXT:    vpermq {{.*#+}} ymm0 = ymm0[2,3,2,3]4326; AVX512-FCP-NEXT:    vpshufb {{.*#+}} ymm2 = ymm11[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,28,29,26,27,28,29,30,31,30,31,28,29,28,29,30,31]4327; AVX512-FCP-NEXT:    vpermq {{.*#+}} ymm2 = ymm2[2,3,2,3]4328; AVX512-FCP-NEXT:    vpternlogq {{.*#+}} ymm2 = ymm2 ^ (mem & (ymm2 ^ ymm0))4329; AVX512-FCP-NEXT:    vpternlogq {{.*#+}} ymm2 = ymm2 ^ (mem & (ymm2 ^ ymm1))4330; AVX512-FCP-NEXT:    vmovdqa %ymm2, 192(%rax)4331; AVX512-FCP-NEXT:    vmovdqa64 %zmm8, (%rax)4332; AVX512-FCP-NEXT:    vmovdqa64 %zmm7, 128(%rax)4333; AVX512-FCP-NEXT:    vmovdqa64 %zmm9, 64(%rax)4334; AVX512-FCP-NEXT:    vzeroupper4335; AVX512-FCP-NEXT:    retq4336;4337; AVX512DQ-LABEL: store_i8_stride7_vf32:4338; AVX512DQ:       # %bb.0:4339; AVX512DQ-NEXT:    movq {{[0-9]+}}(%rsp), %rax4340; AVX512DQ-NEXT:    movq {{[0-9]+}}(%rsp), %r104341; AVX512DQ-NEXT:    vmovdqa (%rdi), %ymm64342; AVX512DQ-NEXT:    vmovdqa (%rsi), %ymm34343; AVX512DQ-NEXT:    vmovdqa (%rdx), %ymm84344; AVX512DQ-NEXT:    vmovdqa64 (%rcx), %ymm194345; AVX512DQ-NEXT:    vmovdqa (%r8), %ymm44346; AVX512DQ-NEXT:    vmovdqa (%r9), %ymm54347; AVX512DQ-NEXT:    vmovdqa64 (%r10), %ymm184348; AVX512DQ-NEXT:    vmovdqa (%rsi), %xmm04349; AVX512DQ-NEXT:    vpshufb {{.*#+}} xmm7 = xmm0[u],zero,xmm0[7],zero,xmm0[5,u,u,u],zero,xmm0[8],zero,xmm0[6,u,u,u],zero4350; AVX512DQ-NEXT:    vmovdqa (%rdi), %xmm94351; AVX512DQ-NEXT:    vpshufb {{.*#+}} xmm10 = xmm9[u,7],zero,xmm9[5],zero,xmm9[u,u,u,8],zero,xmm9[6],zero,xmm9[u,u,u,9]4352; AVX512DQ-NEXT:    vpor %xmm7, %xmm10, %xmm74353; AVX512DQ-NEXT:    vpunpcklbw {{.*#+}} xmm10 = xmm9[0],xmm0[0],xmm9[1],xmm0[1],xmm9[2],xmm0[2],xmm9[3],xmm0[3],xmm9[4],xmm0[4],xmm9[5],xmm0[5],xmm9[6],xmm0[6],xmm9[7],xmm0[7]4354; AVX512DQ-NEXT:    vmovdqa64 %xmm0, %xmm204355; AVX512DQ-NEXT:    vpshufb {{.*#+}} xmm10 = xmm10[0,1,u,u,u,6,7,2,3,u,u,u,8,9,4,5]4356; AVX512DQ-NEXT:    vshufi64x2 {{.*#+}} zmm7 = zmm10[0,1,0,1],zmm7[0,1,0,1]4357; AVX512DQ-NEXT:    vmovdqa (%rcx), %xmm134358; AVX512DQ-NEXT:    vpshufb {{.*#+}} xmm10 = xmm13[u,u,u],zero,xmm13[7],zero,xmm13[5,u,u,u],zero,xmm13[8],zero,xmm13[6,u,u]4359; AVX512DQ-NEXT:    vmovdqa (%rdx), %xmm144360; AVX512DQ-NEXT:    vpshufb {{.*#+}} xmm11 = xmm14[u,u,u,7],zero,xmm14[5],zero,xmm14[u,u,u,8],zero,xmm14[6],zero,xmm14[u,u]4361; AVX512DQ-NEXT:    vpor %xmm10, %xmm11, %xmm104362; AVX512DQ-NEXT:    vpunpcklbw {{.*#+}} xmm11 = xmm14[0],xmm13[0],xmm14[1],xmm13[1],xmm14[2],xmm13[2],xmm14[3],xmm13[3],xmm14[4],xmm13[4],xmm14[5],xmm13[5],xmm14[6],xmm13[6],xmm14[7],xmm13[7]4363; AVX512DQ-NEXT:    vpshufb {{.*#+}} xmm11 = xmm11[4,5,0,1,u,u,u,6,7,2,3,u,u,u,8,9]4364; AVX512DQ-NEXT:    vshufi64x2 {{.*#+}} zmm15 = zmm11[0,1,0,1],zmm10[0,1,0,1]4365; AVX512DQ-NEXT:    vpternlogq {{.*#+}} zmm15 = zmm15 ^ (mem & (zmm15 ^ zmm7))4366; AVX512DQ-NEXT:    vmovdqa (%r9), %xmm104367; AVX512DQ-NEXT:    vpshufb {{.*#+}} xmm7 = zero,xmm10[4,u,u,u],zero,xmm10[7],zero,xmm10[5,u,u,u],zero,xmm10[8],zero,xmm10[6]4368; AVX512DQ-NEXT:    vmovdqa (%r8), %xmm114369; AVX512DQ-NEXT:    vpshufb {{.*#+}} xmm12 = xmm11[4],zero,xmm11[u,u,u,7],zero,xmm11[5],zero,xmm11[u,u,u,8],zero,xmm11[6],zero4370; AVX512DQ-NEXT:    vpor %xmm7, %xmm12, %xmm74371; AVX512DQ-NEXT:    vpunpcklbw {{.*#+}} xmm12 = xmm11[0],xmm10[0],xmm11[1],xmm10[1],xmm11[2],xmm10[2],xmm11[3],xmm10[3],xmm11[4],xmm10[4],xmm11[5],xmm10[5],xmm11[6],xmm10[6],xmm11[7],xmm10[7]4372; AVX512DQ-NEXT:    vpshufb {{.*#+}} xmm12 = xmm12[u,u,4,5,0,1,u,u,u,6,7,2,3,u,u,u]4373; AVX512DQ-NEXT:    vshufi64x2 {{.*#+}} zmm16 = zmm12[0,1,0,1],zmm7[0,1,0,1]4374; AVX512DQ-NEXT:    vmovdqa (%r10), %xmm124375; AVX512DQ-NEXT:    vpshufb {{.*#+}} xmm7 = xmm12[4,5,4,5,4,5,8,9,6,7,6,7,6,7,6,7]4376; AVX512DQ-NEXT:    vpshuflw {{.*#+}} xmm0 = xmm12[1,1,0,0,4,5,6,7]4377; AVX512DQ-NEXT:    vpshufd {{.*#+}} xmm0 = xmm0[0,1,2,0]4378; AVX512DQ-NEXT:    vinserti64x4 $1, %ymm7, %zmm0, %zmm04379; AVX512DQ-NEXT:    vpermq {{.*#+}} zmm17 = zmm0[0,0,1,0,4,4,5,4]4380; AVX512DQ-NEXT:    vpternlogq {{.*#+}} zmm17 = zmm17 ^ (mem & (zmm17 ^ zmm16))4381; AVX512DQ-NEXT:    vpternlogq {{.*#+}} zmm17 = zmm17 ^ (mem & (zmm17 ^ zmm15))4382; AVX512DQ-NEXT:    vpshufb {{.*#+}} ymm0 = ymm6[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,ymm6[23],zero,zero,zero,zero,ymm6[26],zero,ymm6[24],zero,zero,zero,zero,ymm6[27],zero,ymm6[25]4383; AVX512DQ-NEXT:    vmovdqa64 %ymm19, %ymm74384; AVX512DQ-NEXT:    vpshufb {{.*#+}} ymm15 = ymm7[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,ymm7[18],zero,zero,zero,zero,ymm7[21],zero,ymm7[19],zero,zero,zero,zero,ymm7[22],zero,ymm7[20]4385; AVX512DQ-NEXT:    vshufi64x2 {{.*#+}} zmm0 = zmm15[2,3,2,3],zmm0[2,3,2,3]4386; AVX512DQ-NEXT:    vpshufb {{.*#+}} ymm15 = ymm3[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,25],zero,ymm3[23,u,u,u],zero,ymm3[26],zero,ymm3[24,u,u,u],zero,ymm3[27],zero4387; AVX512DQ-NEXT:    vpshufb {{.*#+}} ymm1 = ymm8[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,18],zero,ymm8[18,19,20,21],zero,ymm8[19],zero,ymm8[25,26,27,22],zero,ymm8[20],zero4388; AVX512DQ-NEXT:    vshufi64x2 {{.*#+}} zmm1 = zmm1[2,3,2,3],zmm15[2,3,2,3]4389; AVX512DQ-NEXT:    vporq %zmm0, %zmm1, %zmm04390; AVX512DQ-NEXT:    vpshufb {{.*#+}} ymm1 = ymm7[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,ymm7[25],zero,ymm7[23],zero,zero,zero,zero,ymm7[26],zero,ymm7[24],zero,zero,zero,zero4391; AVX512DQ-NEXT:    vmovdqa64 %ymm19, %ymm164392; AVX512DQ-NEXT:    vpshufb {{.*#+}} ymm15 = ymm3[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,zero,zero,ymm3[21],zero,ymm3[19],zero,zero,zero,zero,ymm3[22],zero,ymm3[20],zero,zero4393; AVX512DQ-NEXT:    vshufi64x2 {{.*#+}} zmm1 = zmm15[2,3,2,3],zmm1[2,3,2,3]4394; AVX512DQ-NEXT:    vpshufb {{.*#+}} ymm15 = ymm8[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,24,25],zero,ymm8[23],zero,ymm8[21,22,23,26],zero,ymm8[24],zero,ymm8[28,29,26,27]4395; AVX512DQ-NEXT:    vpshufb {{.*#+}} ymm2 = ymm6[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,18,19,20,21],zero,ymm6[19],zero,ymm6[21,20,21,22],zero,ymm6[20],zero,ymm6[22,23]4396; AVX512DQ-NEXT:    vshufi64x2 {{.*#+}} zmm2 = zmm2[2,3,2,3],zmm15[2,3,2,3]4397; AVX512DQ-NEXT:    vporq %zmm1, %zmm2, %zmm14398; AVX512DQ-NEXT:    vpternlogq {{.*#+}} zmm1 = zmm1 ^ (mem & (zmm1 ^ zmm0))4399; AVX512DQ-NEXT:    vpshufb {{.*#+}} ymm0 = ymm5[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,zero,zero,ymm5[25],zero,ymm5[23],zero,zero,zero,zero,ymm5[26],zero,ymm5[24],zero,zero4400; AVX512DQ-NEXT:    vpshufb {{.*#+}} ymm2 = ymm5[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,ymm5[20],zero,ymm5[18],zero,zero,zero,zero,ymm5[21],zero,ymm5[19],zero,zero,zero,zero,ymm5[22]4401; AVX512DQ-NEXT:    vmovdqa64 %ymm5, %ymm194402; AVX512DQ-NEXT:    vshufi64x2 {{.*#+}} zmm0 = zmm2[2,3,2,3],zmm0[2,3,2,3]4403; AVX512DQ-NEXT:    vmovdqa %ymm4, %ymm54404; AVX512DQ-NEXT:    vpshufb {{.*#+}} ymm2 = ymm4[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,24,25,24,25],zero,ymm4[23],zero,ymm4[23,24,25,26],zero,ymm4[24],zero,ymm4[30,31]4405; AVX512DQ-NEXT:    vpshufb {{.*#+}} ymm15 = ymm4[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,20],zero,ymm4[18],zero,ymm4[20,21,20,21],zero,ymm4[19],zero,ymm4[19,20,21,22],zero4406; AVX512DQ-NEXT:    vshufi64x2 {{.*#+}} zmm2 = zmm15[2,3,2,3],zmm2[2,3,2,3]4407; AVX512DQ-NEXT:    vporq %zmm0, %zmm2, %zmm04408; AVX512DQ-NEXT:    vmovdqa64 %ymm18, %ymm44409; AVX512DQ-NEXT:    vpshufb {{.*#+}} ymm2 = ymm4[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,22,23,26,27,24,25,22,23,u,u,u,u,26,27,24,25]4410; AVX512DQ-NEXT:    vpshuflw {{.*#+}} ymm7 = ymm4[2,1,1,2,4,5,6,7,10,9,9,10,12,13,14,15]4411; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm15 = [0,5,4,0,5,0,4,0,20,21,0,23,0,21,0,23]4412; AVX512DQ-NEXT:    vpermi2d %zmm2, %zmm7, %zmm154413; AVX512DQ-NEXT:    vpternlogq {{.*#+}} zmm15 = zmm15 ^ (mem & (zmm15 ^ zmm0))4414; AVX512DQ-NEXT:    vpternlogq {{.*#+}} zmm15 = zmm15 ^ (mem & (zmm15 ^ zmm1))4415; AVX512DQ-NEXT:    vpshufb {{.*#+}} ymm0 = zero,zero,zero,ymm3[14,u,u],zero,zero,zero,zero,ymm3[15,u,u],zero,zero,zero,zero,ymm3[16,u,u],zero,zero,zero,zero,ymm3[17,u,u],zero,zero,zero,zero,ymm3[18]4416; AVX512DQ-NEXT:    vpshufb {{.*#+}} ymm1 = ymm6[0,1,14],zero,ymm6[u,u,0,1,14,15],zero,ymm6[u,u,13,2,3,16],zero,ymm6[u,u,28,29,16,17],zero,ymm6[u,u,19,28,29,18],zero4417; AVX512DQ-NEXT:    vpor %ymm0, %ymm1, %ymm04418; AVX512DQ-NEXT:    vpunpckhbw {{.*#+}} xmm1 = xmm13[8],xmm14[8],xmm13[9],xmm14[9],xmm13[10],xmm14[10],xmm13[11],xmm14[11],xmm13[12],xmm14[12],xmm13[13],xmm14[13],xmm13[14],xmm14[14],xmm13[15],xmm14[15]4419; AVX512DQ-NEXT:    vpshufb {{.*#+}} xmm1 = xmm1[6,3,2,u,u,u,9,8,5,4,u,u,u,11,10,7]4420; AVX512DQ-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[0,1,0,1]4421; AVX512DQ-NEXT:    vinserti64x4 $1, %ymm0, %zmm1, %zmm04422; AVX512DQ-NEXT:    vmovdqa64 %ymm16, %ymm134423; AVX512DQ-NEXT:    vpshufb {{.*#+}} ymm1 = ymm13[u,u,u,u],zero,ymm13[14,u,u,u,u,u],zero,ymm13[15,u,u,u,u,u],zero,ymm13[16,u,u,u,u,u],zero,ymm13[17,u,u,u,u,u]4424; AVX512DQ-NEXT:    vpshufb {{.*#+}} ymm2 = ymm8[u,u,u,u,14],zero,ymm8[u,u,u,u,u,15],zero,ymm8[u,u,u,u,u,16],zero,ymm8[u,u,u,u,u,17],zero,ymm8[u,u,u,u,u]4425; AVX512DQ-NEXT:    vpor %ymm1, %ymm2, %ymm14426; AVX512DQ-NEXT:    vmovdqa64 %xmm20, %xmm24427; AVX512DQ-NEXT:    vpunpckhbw {{.*#+}} xmm2 = xmm2[8],xmm9[8],xmm2[9],xmm9[9],xmm2[10],xmm9[10],xmm2[11],xmm9[11],xmm2[12],xmm9[12],xmm2[13],xmm9[13],xmm2[14],xmm9[14],xmm2[15],xmm9[15]4428; AVX512DQ-NEXT:    vpshufb {{.*#+}} xmm2 = xmm2[2,u,u,u,9,8,5,4,u,u,u,11,10,7,6,u]4429; AVX512DQ-NEXT:    vpermq {{.*#+}} ymm2 = ymm2[0,1,0,1]4430; AVX512DQ-NEXT:    vinserti64x4 $1, %ymm1, %zmm2, %zmm14431; AVX512DQ-NEXT:    vpternlogq {{.*#+}} zmm1 = zmm1 ^ (mem & (zmm1 ^ zmm0))4432; AVX512DQ-NEXT:    vpshufb {{.*#+}} ymm0 = zero,ymm5[u],zero,zero,zero,zero,ymm5[14],zero,ymm5[u],zero,zero,zero,zero,ymm5[15],zero,ymm5[u],zero,zero,zero,zero,ymm5[16],zero,ymm5[u],zero,zero,zero,zero,ymm5[17],zero,ymm5[u],zero,zero4433; AVX512DQ-NEXT:    vmovdqa64 %ymm19, %ymm94434; AVX512DQ-NEXT:    vpshufb {{.*#+}} ymm2 = ymm9[13,u,u,u,u,u],zero,ymm9[14,u,u,u,u,u],zero,ymm9[15,u,u,u,u,u],zero,ymm9[16,u,u,u,u,u],zero,ymm9[17,u,u,u]4435; AVX512DQ-NEXT:    vpor %ymm0, %ymm2, %ymm04436; AVX512DQ-NEXT:    vpunpckhbw {{.*#+}} xmm2 = xmm11[8],xmm10[8],xmm11[9],xmm10[9],xmm11[10],xmm10[10],xmm11[11],xmm10[11],xmm11[12],xmm10[12],xmm11[13],xmm10[13],xmm11[14],xmm10[14],xmm11[15],xmm10[15]4437; AVX512DQ-NEXT:    vpshufb {{.*#+}} xmm2 = xmm2[u,6,7,2,3,u,u,u,8,9,4,5,u,u,u,10]4438; AVX512DQ-NEXT:    vpermq {{.*#+}} ymm2 = ymm2[0,1,0,1]4439; AVX512DQ-NEXT:    vinserti64x4 $1, %ymm0, %zmm2, %zmm04440; AVX512DQ-NEXT:    vpshufhw {{.*#+}} xmm2 = xmm12[0,1,2,3,4,5,5,6]4441; AVX512DQ-NEXT:    vpshufd {{.*#+}} xmm2 = xmm2[2,2,3,3]4442; AVX512DQ-NEXT:    vpermq {{.*#+}} ymm2 = ymm2[0,1,0,1]4443; AVX512DQ-NEXT:    vpand {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm2, %ymm24444; AVX512DQ-NEXT:    vpshufb {{.*#+}} ymm7 = zero,ymm4[13,u,u,u,u],zero,zero,ymm4[14,u,u,u,u],zero,zero,ymm4[15,u,u,u,u],zero,zero,ymm4[16,u,u,u,u],zero,zero,ymm4[17,u,u]4445; AVX512DQ-NEXT:    vinserti64x4 $1, %ymm7, %zmm2, %zmm24446; AVX512DQ-NEXT:    vpternlogq {{.*#+}} zmm2 = zmm2 | (zmm0 & mem)4447; AVX512DQ-NEXT:    vpternlogq {{.*#+}} zmm2 = zmm2 ^ (mem & (zmm2 ^ zmm1))4448; AVX512DQ-NEXT:    vpshufb {{.*#+}} ymm0 = ymm8[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,zero,zero,ymm8[30],zero,ymm8[28],zero,zero,zero,zero,ymm8[31],zero,ymm8[29],zero,zero4449; AVX512DQ-NEXT:    vpshufb {{.*#+}} ymm1 = ymm13[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,27,u,u,u],zero,ymm13[30],zero,ymm13[28,u,u,u],zero,ymm13[31],zero,ymm13[29,u]4450; AVX512DQ-NEXT:    vpor %ymm0, %ymm1, %ymm04451; AVX512DQ-NEXT:    vpermq {{.*#+}} ymm0 = ymm0[2,3,2,3]4452; AVX512DQ-NEXT:    vpshufb {{.*#+}} ymm1 = ymm3[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,zero,ymm3[30],zero,ymm3[28],zero,zero,zero,zero,ymm3[31],zero,ymm3[29],zero,zero,zero4453; AVX512DQ-NEXT:    vpshufb {{.*#+}} ymm3 = ymm6[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,28,29,30],zero,ymm6[28],zero,ymm6[30,31,30,31],zero,ymm6[29],zero,ymm6[31,28,29]4454; AVX512DQ-NEXT:    vpor %ymm1, %ymm3, %ymm14455; AVX512DQ-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[2,3,2,3]4456; AVX512DQ-NEXT:    vpternlogq {{.*#+}} ymm1 = ymm1 ^ (mem & (ymm1 ^ ymm0))4457; AVX512DQ-NEXT:    vpshufb {{.*#+}} ymm0 = ymm5[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,ymm5[27],zero,zero,zero,zero,ymm5[30],zero,ymm5[28],zero,zero,zero,zero,ymm5[31],zero,ymm5[29]4458; AVX512DQ-NEXT:    vpshufb {{.*#+}} ymm3 = ymm9[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,29],zero,ymm9[27,u,u,u],zero,ymm9[30],zero,ymm9[28,u,u,u],zero,ymm9[31],zero4459; AVX512DQ-NEXT:    vpor %ymm0, %ymm3, %ymm04460; AVX512DQ-NEXT:    vpermq {{.*#+}} ymm0 = ymm0[2,3,2,3]4461; AVX512DQ-NEXT:    vpshufb {{.*#+}} ymm3 = ymm4[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,28,29,26,27,28,29,30,31,30,31,28,29,28,29,30,31]4462; AVX512DQ-NEXT:    vpermq {{.*#+}} ymm3 = ymm3[2,3,2,3]4463; AVX512DQ-NEXT:    vpternlogq {{.*#+}} ymm3 = ymm3 ^ (mem & (ymm3 ^ ymm0))4464; AVX512DQ-NEXT:    vpternlogq {{.*#+}} ymm3 = ymm3 ^ (mem & (ymm3 ^ ymm1))4465; AVX512DQ-NEXT:    vmovdqa %ymm3, 192(%rax)4466; AVX512DQ-NEXT:    vmovdqa64 %zmm15, 128(%rax)4467; AVX512DQ-NEXT:    vmovdqa64 %zmm17, (%rax)4468; AVX512DQ-NEXT:    vmovdqa64 %zmm2, 64(%rax)4469; AVX512DQ-NEXT:    vzeroupper4470; AVX512DQ-NEXT:    retq4471;4472; AVX512DQ-FCP-LABEL: store_i8_stride7_vf32:4473; AVX512DQ-FCP:       # %bb.0:4474; AVX512DQ-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax4475; AVX512DQ-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r104476; AVX512DQ-FCP-NEXT:    vmovdqa (%rdi), %ymm34477; AVX512DQ-FCP-NEXT:    vmovdqa (%rsi), %ymm44478; AVX512DQ-FCP-NEXT:    vmovdqa (%rdx), %ymm54479; AVX512DQ-FCP-NEXT:    vmovdqa (%rcx), %ymm64480; AVX512DQ-FCP-NEXT:    vmovdqa (%r8), %ymm14481; AVX512DQ-FCP-NEXT:    vmovdqa (%r9), %ymm24482; AVX512DQ-FCP-NEXT:    vmovdqa (%r10), %ymm04483; AVX512DQ-FCP-NEXT:    vpshufb {{.*#+}} ymm7 = ymm3[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,ymm3[23],zero,zero,zero,zero,ymm3[26],zero,ymm3[24],zero,zero,zero,zero,ymm3[27],zero,ymm3[25]4484; AVX512DQ-FCP-NEXT:    vpshufb {{.*#+}} ymm8 = ymm6[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,ymm6[18],zero,zero,zero,zero,ymm6[21],zero,ymm6[19],zero,zero,zero,zero,ymm6[22],zero,ymm6[20]4485; AVX512DQ-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm7 = zmm8[2,3,2,3],zmm7[2,3,2,3]4486; AVX512DQ-FCP-NEXT:    vpshufb {{.*#+}} ymm8 = ymm4[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,25],zero,ymm4[23,u,u,u],zero,ymm4[26],zero,ymm4[24,u,u,u],zero,ymm4[27],zero4487; AVX512DQ-FCP-NEXT:    vpshufb {{.*#+}} ymm9 = ymm5[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,18],zero,ymm5[18,19,20,21],zero,ymm5[19],zero,ymm5[25,26,27,22],zero,ymm5[20],zero4488; AVX512DQ-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm8 = zmm9[2,3,2,3],zmm8[2,3,2,3]4489; AVX512DQ-FCP-NEXT:    vporq %zmm7, %zmm8, %zmm74490; AVX512DQ-FCP-NEXT:    vpshufb {{.*#+}} ymm8 = ymm6[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,ymm6[25],zero,ymm6[23],zero,zero,zero,zero,ymm6[26],zero,ymm6[24],zero,zero,zero,zero4491; AVX512DQ-FCP-NEXT:    vpshufb {{.*#+}} ymm9 = ymm4[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,zero,zero,ymm4[21],zero,ymm4[19],zero,zero,zero,zero,ymm4[22],zero,ymm4[20],zero,zero4492; AVX512DQ-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm8 = zmm9[2,3,2,3],zmm8[2,3,2,3]4493; AVX512DQ-FCP-NEXT:    vpshufb {{.*#+}} ymm9 = ymm5[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,24,25],zero,ymm5[23],zero,ymm5[21,22,23,26],zero,ymm5[24],zero,ymm5[28,29,26,27]4494; AVX512DQ-FCP-NEXT:    vpshufb {{.*#+}} ymm10 = ymm3[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,18,19,20,21],zero,ymm3[19],zero,ymm3[21,20,21,22],zero,ymm3[20],zero,ymm3[22,23]4495; AVX512DQ-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm9 = zmm10[2,3,2,3],zmm9[2,3,2,3]4496; AVX512DQ-FCP-NEXT:    vporq %zmm8, %zmm9, %zmm84497; AVX512DQ-FCP-NEXT:    vpternlogq {{.*#+}} zmm8 = zmm8 ^ (mem & (zmm8 ^ zmm7))4498; AVX512DQ-FCP-NEXT:    vpshufb {{.*#+}} ymm7 = ymm2[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,zero,zero,ymm2[25],zero,ymm2[23],zero,zero,zero,zero,ymm2[26],zero,ymm2[24],zero,zero4499; AVX512DQ-FCP-NEXT:    vpshufb {{.*#+}} ymm9 = ymm2[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,ymm2[20],zero,ymm2[18],zero,zero,zero,zero,ymm2[21],zero,ymm2[19],zero,zero,zero,zero,ymm2[22]4500; AVX512DQ-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm7 = zmm9[2,3,2,3],zmm7[2,3,2,3]4501; AVX512DQ-FCP-NEXT:    vpshufb {{.*#+}} ymm9 = ymm1[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,24,25,24,25],zero,ymm1[23],zero,ymm1[23,24,25,26],zero,ymm1[24],zero,ymm1[30,31]4502; AVX512DQ-FCP-NEXT:    vpshufb {{.*#+}} ymm10 = ymm1[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,20],zero,ymm1[18],zero,ymm1[20,21,20,21],zero,ymm1[19],zero,ymm1[19,20,21,22],zero4503; AVX512DQ-FCP-NEXT:    vmovdqa64 %ymm1, %ymm184504; AVX512DQ-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm9 = zmm10[2,3,2,3],zmm9[2,3,2,3]4505; AVX512DQ-FCP-NEXT:    vporq %zmm7, %zmm9, %zmm94506; AVX512DQ-FCP-NEXT:    vpshuflw {{.*#+}} ymm10 = ymm0[2,1,1,2,4,5,6,7,10,9,9,10,12,13,14,15]4507; AVX512DQ-FCP-NEXT:    vpshufb {{.*#+}} ymm11 = ymm0[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,22,23,26,27,24,25,22,23,u,u,u,u,26,27,24,25]4508; AVX512DQ-FCP-NEXT:    vmovdqa64 %ymm0, %ymm194509; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm7 = [0,21,20,0,21,0,20,0,4,5,0,7,0,5,0,7]4510; AVX512DQ-FCP-NEXT:    vpermi2d %zmm10, %zmm11, %zmm74511; AVX512DQ-FCP-NEXT:    vpternlogq {{.*#+}} zmm7 = zmm7 ^ (mem & (zmm7 ^ zmm9))4512; AVX512DQ-FCP-NEXT:    vpternlogq {{.*#+}} zmm7 = zmm7 ^ (mem & (zmm7 ^ zmm8))4513; AVX512DQ-FCP-NEXT:    vmovdqa (%rsi), %xmm94514; AVX512DQ-FCP-NEXT:    vpshufb {{.*#+}} xmm8 = xmm9[u],zero,xmm9[7],zero,xmm9[5,u,u,u],zero,xmm9[8],zero,xmm9[6,u,u,u],zero4515; AVX512DQ-FCP-NEXT:    vmovdqa (%rdi), %xmm104516; AVX512DQ-FCP-NEXT:    vpshufb {{.*#+}} xmm11 = xmm10[u,7],zero,xmm10[5],zero,xmm10[u,u,u,8],zero,xmm10[6],zero,xmm10[u,u,u,9]4517; AVX512DQ-FCP-NEXT:    vpor %xmm8, %xmm11, %xmm84518; AVX512DQ-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm11 = xmm10[0],xmm9[0],xmm10[1],xmm9[1],xmm10[2],xmm9[2],xmm10[3],xmm9[3],xmm10[4],xmm9[4],xmm10[5],xmm9[5],xmm10[6],xmm9[6],xmm10[7],xmm9[7]4519; AVX512DQ-FCP-NEXT:    vpshufb {{.*#+}} xmm11 = xmm11[0,1,u,u,u,6,7,2,3,u,u,u,8,9,4,5]4520; AVX512DQ-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm8 = zmm11[0,1,0,1],zmm8[0,1,0,1]4521; AVX512DQ-FCP-NEXT:    vmovdqa (%rcx), %xmm124522; AVX512DQ-FCP-NEXT:    vpshufb {{.*#+}} xmm11 = xmm12[u,u,u],zero,xmm12[7],zero,xmm12[5,u,u,u],zero,xmm12[8],zero,xmm12[6,u,u]4523; AVX512DQ-FCP-NEXT:    vmovdqa (%rdx), %xmm144524; AVX512DQ-FCP-NEXT:    vpshufb {{.*#+}} xmm13 = xmm14[u,u,u,7],zero,xmm14[5],zero,xmm14[u,u,u,8],zero,xmm14[6],zero,xmm14[u,u]4525; AVX512DQ-FCP-NEXT:    vpor %xmm11, %xmm13, %xmm114526; AVX512DQ-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm13 = xmm14[0],xmm12[0],xmm14[1],xmm12[1],xmm14[2],xmm12[2],xmm14[3],xmm12[3],xmm14[4],xmm12[4],xmm14[5],xmm12[5],xmm14[6],xmm12[6],xmm14[7],xmm12[7]4527; AVX512DQ-FCP-NEXT:    vpshufb {{.*#+}} xmm13 = xmm13[4,5,0,1,u,u,u,6,7,2,3,u,u,u,8,9]4528; AVX512DQ-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm16 = zmm13[0,1,0,1],zmm11[0,1,0,1]4529; AVX512DQ-FCP-NEXT:    vpternlogq {{.*#+}} zmm16 = zmm16 ^ (mem & (zmm16 ^ zmm8))4530; AVX512DQ-FCP-NEXT:    vmovdqa (%r10), %xmm114531; AVX512DQ-FCP-NEXT:    vpshuflw {{.*#+}} xmm8 = xmm11[1,1,0,0,4,5,6,7]4532; AVX512DQ-FCP-NEXT:    vpshufb {{.*#+}} xmm13 = xmm11[4,5,4,5,4,5,8,9,6,7,6,7,6,7,6,7]4533; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm17 = [0,17,0,17,0,16,16,0,0,0,0,0,2,3,0,1]4534; AVX512DQ-FCP-NEXT:    vpermi2d %zmm8, %zmm13, %zmm174535; AVX512DQ-FCP-NEXT:    vmovdqa (%r9), %xmm134536; AVX512DQ-FCP-NEXT:    vpshufb {{.*#+}} xmm8 = zero,xmm13[4,u,u,u],zero,xmm13[7],zero,xmm13[5,u,u,u],zero,xmm13[8],zero,xmm13[6]4537; AVX512DQ-FCP-NEXT:    vmovdqa (%r8), %xmm154538; AVX512DQ-FCP-NEXT:    vpshufb {{.*#+}} xmm0 = xmm15[4],zero,xmm15[u,u,u,7],zero,xmm15[5],zero,xmm15[u,u,u,8],zero,xmm15[6],zero4539; AVX512DQ-FCP-NEXT:    vpor %xmm0, %xmm8, %xmm04540; AVX512DQ-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm8 = xmm15[0],xmm13[0],xmm15[1],xmm13[1],xmm15[2],xmm13[2],xmm15[3],xmm13[3],xmm15[4],xmm13[4],xmm15[5],xmm13[5],xmm15[6],xmm13[6],xmm15[7],xmm13[7]4541; AVX512DQ-FCP-NEXT:    vpshufb {{.*#+}} xmm8 = xmm8[u,u,4,5,0,1,u,u,u,6,7,2,3,u,u,u]4542; AVX512DQ-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm8 = zmm8[0,1,0,1],zmm0[0,1,0,1]4543; AVX512DQ-FCP-NEXT:    vpternlogq {{.*#+}} zmm8 = zmm17 ^ (mem & (zmm8 ^ zmm17))4544; AVX512DQ-FCP-NEXT:    vpternlogq {{.*#+}} zmm8 = zmm8 ^ (mem & (zmm8 ^ zmm16))4545; AVX512DQ-FCP-NEXT:    vpshufb {{.*#+}} ymm0 = zero,zero,zero,ymm4[14,u,u],zero,zero,zero,zero,ymm4[15,u,u],zero,zero,zero,zero,ymm4[16,u,u],zero,zero,zero,zero,ymm4[17,u,u],zero,zero,zero,zero,ymm4[18]4546; AVX512DQ-FCP-NEXT:    vpshufb {{.*#+}} ymm1 = ymm3[0,1,14],zero,ymm3[u,u,0,1,14,15],zero,ymm3[u,u,13,2,3,16],zero,ymm3[u,u,28,29,16,17],zero,ymm3[u,u,19,28,29,18],zero4547; AVX512DQ-FCP-NEXT:    vpor %ymm0, %ymm1, %ymm04548; AVX512DQ-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm1 = xmm12[8],xmm14[8],xmm12[9],xmm14[9],xmm12[10],xmm14[10],xmm12[11],xmm14[11],xmm12[12],xmm14[12],xmm12[13],xmm14[13],xmm12[14],xmm14[14],xmm12[15],xmm14[15]4549; AVX512DQ-FCP-NEXT:    vpshufb {{.*#+}} xmm1 = xmm1[6,3,2,u,u,u,9,8,5,4,u,u,u,11,10,7]4550; AVX512DQ-FCP-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[0,1,0,1]4551; AVX512DQ-FCP-NEXT:    vinserti64x4 $1, %ymm0, %zmm1, %zmm04552; AVX512DQ-FCP-NEXT:    vpshufb {{.*#+}} ymm1 = ymm6[u,u,u,u],zero,ymm6[14,u,u,u,u,u],zero,ymm6[15,u,u,u,u,u],zero,ymm6[16,u,u,u,u,u],zero,ymm6[17,u,u,u,u,u]4553; AVX512DQ-FCP-NEXT:    vpshufb {{.*#+}} ymm12 = ymm5[u,u,u,u,14],zero,ymm5[u,u,u,u,u,15],zero,ymm5[u,u,u,u,u,16],zero,ymm5[u,u,u,u,u,17],zero,ymm5[u,u,u,u,u]4554; AVX512DQ-FCP-NEXT:    vpor %ymm1, %ymm12, %ymm14555; AVX512DQ-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm9 = xmm9[8],xmm10[8],xmm9[9],xmm10[9],xmm9[10],xmm10[10],xmm9[11],xmm10[11],xmm9[12],xmm10[12],xmm9[13],xmm10[13],xmm9[14],xmm10[14],xmm9[15],xmm10[15]4556; AVX512DQ-FCP-NEXT:    vpshufb {{.*#+}} xmm9 = xmm9[2,u,u,u,9,8,5,4,u,u,u,11,10,7,6,u]4557; AVX512DQ-FCP-NEXT:    vpermq {{.*#+}} ymm9 = ymm9[0,1,0,1]4558; AVX512DQ-FCP-NEXT:    vinserti64x4 $1, %ymm1, %zmm9, %zmm14559; AVX512DQ-FCP-NEXT:    vpternlogq {{.*#+}} zmm1 = zmm1 ^ (mem & (zmm1 ^ zmm0))4560; AVX512DQ-FCP-NEXT:    vmovdqa64 %ymm18, %ymm124561; AVX512DQ-FCP-NEXT:    vpshufb {{.*#+}} ymm0 = zero,ymm12[u],zero,zero,zero,zero,ymm12[14],zero,ymm12[u],zero,zero,zero,zero,ymm12[15],zero,ymm12[u],zero,zero,zero,zero,ymm12[16],zero,ymm12[u],zero,zero,zero,zero,ymm12[17],zero,ymm12[u],zero,zero4562; AVX512DQ-FCP-NEXT:    vpshufb {{.*#+}} ymm9 = ymm2[13,u,u,u,u,u],zero,ymm2[14,u,u,u,u,u],zero,ymm2[15,u,u,u,u,u],zero,ymm2[16,u,u,u,u,u],zero,ymm2[17,u,u,u]4563; AVX512DQ-FCP-NEXT:    vpor %ymm0, %ymm9, %ymm04564; AVX512DQ-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm9 = xmm15[8],xmm13[8],xmm15[9],xmm13[9],xmm15[10],xmm13[10],xmm15[11],xmm13[11],xmm15[12],xmm13[12],xmm15[13],xmm13[13],xmm15[14],xmm13[14],xmm15[15],xmm13[15]4565; AVX512DQ-FCP-NEXT:    vpshufb {{.*#+}} xmm9 = xmm9[u,6,7,2,3,u,u,u,8,9,4,5,u,u,u,10]4566; AVX512DQ-FCP-NEXT:    vpermq {{.*#+}} ymm9 = ymm9[0,1,0,1]4567; AVX512DQ-FCP-NEXT:    vinserti64x4 $1, %ymm0, %zmm9, %zmm04568; AVX512DQ-FCP-NEXT:    vpshufhw {{.*#+}} xmm9 = xmm11[0,1,2,3,4,5,5,6]4569; AVX512DQ-FCP-NEXT:    vbroadcasti128 {{.*#+}} ymm10 = [2,2,3,3,2,2,3,3]4570; AVX512DQ-FCP-NEXT:    # ymm10 = mem[0,1,0,1]4571; AVX512DQ-FCP-NEXT:    vpermd %ymm9, %ymm10, %ymm94572; AVX512DQ-FCP-NEXT:    vpand {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm9, %ymm94573; AVX512DQ-FCP-NEXT:    vmovdqa64 %ymm19, %ymm114574; AVX512DQ-FCP-NEXT:    vpshufb {{.*#+}} ymm10 = zero,ymm11[13,u,u,u,u],zero,zero,ymm11[14,u,u,u,u],zero,zero,ymm11[15,u,u,u,u],zero,zero,ymm11[16,u,u,u,u],zero,zero,ymm11[17,u,u]4575; AVX512DQ-FCP-NEXT:    vinserti64x4 $1, %ymm10, %zmm9, %zmm94576; AVX512DQ-FCP-NEXT:    vpternlogq {{.*#+}} zmm9 = zmm9 | (zmm0 & mem)4577; AVX512DQ-FCP-NEXT:    vpternlogq {{.*#+}} zmm9 = zmm9 ^ (mem & (zmm9 ^ zmm1))4578; AVX512DQ-FCP-NEXT:    vpshufb {{.*#+}} ymm0 = ymm5[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,zero,zero,ymm5[30],zero,ymm5[28],zero,zero,zero,zero,ymm5[31],zero,ymm5[29],zero,zero4579; AVX512DQ-FCP-NEXT:    vpshufb {{.*#+}} ymm1 = ymm6[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,27,u,u,u],zero,ymm6[30],zero,ymm6[28,u,u,u],zero,ymm6[31],zero,ymm6[29,u]4580; AVX512DQ-FCP-NEXT:    vpor %ymm0, %ymm1, %ymm04581; AVX512DQ-FCP-NEXT:    vpermq {{.*#+}} ymm0 = ymm0[2,3,2,3]4582; AVX512DQ-FCP-NEXT:    vpshufb {{.*#+}} ymm1 = ymm4[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,zero,ymm4[30],zero,ymm4[28],zero,zero,zero,zero,ymm4[31],zero,ymm4[29],zero,zero,zero4583; AVX512DQ-FCP-NEXT:    vpshufb {{.*#+}} ymm3 = ymm3[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,28,29,30],zero,ymm3[28],zero,ymm3[30,31,30,31],zero,ymm3[29],zero,ymm3[31,28,29]4584; AVX512DQ-FCP-NEXT:    vpor %ymm1, %ymm3, %ymm14585; AVX512DQ-FCP-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[2,3,2,3]4586; AVX512DQ-FCP-NEXT:    vpternlogq {{.*#+}} ymm1 = ymm1 ^ (mem & (ymm1 ^ ymm0))4587; AVX512DQ-FCP-NEXT:    vpshufb {{.*#+}} ymm0 = ymm12[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,ymm12[27],zero,zero,zero,zero,ymm12[30],zero,ymm12[28],zero,zero,zero,zero,ymm12[31],zero,ymm12[29]4588; AVX512DQ-FCP-NEXT:    vpshufb {{.*#+}} ymm2 = ymm2[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,29],zero,ymm2[27,u,u,u],zero,ymm2[30],zero,ymm2[28,u,u,u],zero,ymm2[31],zero4589; AVX512DQ-FCP-NEXT:    vpor %ymm0, %ymm2, %ymm04590; AVX512DQ-FCP-NEXT:    vpermq {{.*#+}} ymm0 = ymm0[2,3,2,3]4591; AVX512DQ-FCP-NEXT:    vpshufb {{.*#+}} ymm2 = ymm11[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,28,29,26,27,28,29,30,31,30,31,28,29,28,29,30,31]4592; AVX512DQ-FCP-NEXT:    vpermq {{.*#+}} ymm2 = ymm2[2,3,2,3]4593; AVX512DQ-FCP-NEXT:    vpternlogq {{.*#+}} ymm2 = ymm2 ^ (mem & (ymm2 ^ ymm0))4594; AVX512DQ-FCP-NEXT:    vpternlogq {{.*#+}} ymm2 = ymm2 ^ (mem & (ymm2 ^ ymm1))4595; AVX512DQ-FCP-NEXT:    vmovdqa %ymm2, 192(%rax)4596; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm8, (%rax)4597; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm7, 128(%rax)4598; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm9, 64(%rax)4599; AVX512DQ-FCP-NEXT:    vzeroupper4600; AVX512DQ-FCP-NEXT:    retq4601;4602; AVX512BW-LABEL: store_i8_stride7_vf32:4603; AVX512BW:       # %bb.0:4604; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax4605; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %r104606; AVX512BW-NEXT:    vmovdqa (%rdi), %ymm134607; AVX512BW-NEXT:    vmovdqa (%rsi), %ymm74608; AVX512BW-NEXT:    vmovdqa (%rdx), %ymm64609; AVX512BW-NEXT:    vmovdqa (%rcx), %ymm94610; AVX512BW-NEXT:    vpshufb {{.*#+}} ymm0 = ymm6[0,1,0,1,14],zero,ymm6[14,15,0,1,14,15],zero,ymm6[13,14,15,16,17,16],zero,ymm6[30,31,30,31,16,17],zero,ymm6[31,28,29,30,31]4611; AVX512BW-NEXT:    vpshufb {{.*#+}} ymm1 = zero,zero,zero,zero,zero,ymm9[14],zero,zero,zero,zero,zero,zero,ymm9[15],zero,zero,zero,zero,zero,zero,ymm9[16],zero,zero,zero,zero,zero,zero,ymm9[17],zero,zero,zero,zero,zero4612; AVX512BW-NEXT:    vpor %ymm0, %ymm1, %ymm04613; AVX512BW-NEXT:    vmovdqa (%rdi), %xmm34614; AVX512BW-NEXT:    vmovdqa (%rsi), %xmm44615; AVX512BW-NEXT:    vpunpckhbw {{.*#+}} xmm1 = xmm4[8],xmm3[8],xmm4[9],xmm3[9],xmm4[10],xmm3[10],xmm4[11],xmm3[11],xmm4[12],xmm3[12],xmm4[13],xmm3[13],xmm4[14],xmm3[14],xmm4[15],xmm3[15]4616; AVX512BW-NEXT:    vpshufb {{.*#+}} xmm1 = xmm1[2,u,u,u,9,8,5,4,u,u,u,11,10,7,6,u]4617; AVX512BW-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[0,1,0,1]4618; AVX512BW-NEXT:    vinserti64x4 $1, %ymm0, %zmm1, %zmm14619; AVX512BW-NEXT:    vpshufb {{.*#+}} ymm0 = ymm13[0,1,14],zero,ymm13[12,13,0,1,14,15],zero,ymm13[3,12,13,2,3,16],zero,ymm13[30,31,28,29,16,17],zero,ymm13[31,18,19,28,29,18],zero4620; AVX512BW-NEXT:    vpshufb {{.*#+}} ymm2 = zero,zero,zero,ymm7[14],zero,zero,zero,zero,zero,zero,ymm7[15],zero,zero,zero,zero,zero,zero,ymm7[16],zero,zero,zero,zero,zero,zero,ymm7[17],zero,zero,zero,zero,zero,zero,ymm7[18]4621; AVX512BW-NEXT:    vpor %ymm0, %ymm2, %ymm04622; AVX512BW-NEXT:    vmovdqa (%rdx), %xmm104623; AVX512BW-NEXT:    vmovdqa (%rcx), %xmm124624; AVX512BW-NEXT:    vpunpckhbw {{.*#+}} xmm2 = xmm12[8],xmm10[8],xmm12[9],xmm10[9],xmm12[10],xmm10[10],xmm12[11],xmm10[11],xmm12[12],xmm10[12],xmm12[13],xmm10[13],xmm12[14],xmm10[14],xmm12[15],xmm10[15]4625; AVX512BW-NEXT:    vpshufb {{.*#+}} xmm2 = xmm2[6,3,2,u,u,u,9,8,5,4,u,u,u,11,10,7]4626; AVX512BW-NEXT:    vpermq {{.*#+}} ymm2 = ymm2[0,1,0,1]4627; AVX512BW-NEXT:    vinserti64x4 $1, %ymm0, %zmm2, %zmm04628; AVX512BW-NEXT:    movabsq $435749858791416001, %rcx # imm = 0x60C1830183060C14629; AVX512BW-NEXT:    kmovq %rcx, %k14630; AVX512BW-NEXT:    vmovdqu8 %zmm1, %zmm0 {%k1}4631; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm1 = mem[0,1,2,3,0,1,2,3]4632; AVX512BW-NEXT:    vpshufb {{.*#+}} ymm5 = ymm1[13],zero,zero,zero,zero,zero,zero,ymm1[14],zero,zero,zero,zero,zero,zero,ymm1[15],zero,zero,zero,zero,zero,zero,ymm1[16],zero,zero,zero,zero,zero,zero,ymm1[17],zero,zero,zero4633; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm2 = mem[0,1,2,3,0,1,2,3]4634; AVX512BW-NEXT:    vpshufb {{.*#+}} ymm8 = zero,zero,zero,zero,zero,zero,ymm2[14],zero,zero,zero,zero,zero,zero,ymm2[15],zero,zero,zero,zero,zero,zero,ymm2[16],zero,zero,zero,zero,zero,zero,ymm2[17],zero,zero,zero,zero4635; AVX512BW-NEXT:    vpor %ymm5, %ymm8, %ymm54636; AVX512BW-NEXT:    vmovdqa (%r9), %xmm84637; AVX512BW-NEXT:    vmovdqa (%r8), %xmm114638; AVX512BW-NEXT:    vpunpckhbw {{.*#+}} xmm14 = xmm11[8],xmm8[8],xmm11[9],xmm8[9],xmm11[10],xmm8[10],xmm11[11],xmm8[11],xmm11[12],xmm8[12],xmm11[13],xmm8[13],xmm11[14],xmm8[14],xmm11[15],xmm8[15]4639; AVX512BW-NEXT:    vpshufb {{.*#+}} xmm14 = xmm14[u,6,7,2,3,u,u,u,8,9,4,5,u,u,u,10]4640; AVX512BW-NEXT:    vpermq {{.*#+}} ymm14 = ymm14[0,1,0,1]4641; AVX512BW-NEXT:    vinserti64x4 $1, %ymm5, %zmm14, %zmm144642; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm5 = mem[0,1,2,3,0,1,2,3]4643; AVX512BW-NEXT:    vpmovsxbw {{.*#+}} zmm15 = [4,5,4,5,5,6,5,6,4,5,4,5,5,6,5,6,6,1,6,0,7,1,0,7,14,9,14,8,15,9,8,15]4644; AVX512BW-NEXT:    vpermw %zmm5, %zmm15, %zmm154645; AVX512BW-NEXT:    movabsq $2323999253380730912, %rcx # imm = 0x20408102040810204646; AVX512BW-NEXT:    kmovq %rcx, %k14647; AVX512BW-NEXT:    vmovdqu8 %zmm15, %zmm14 {%k1}4648; AVX512BW-NEXT:    movabsq $4066998693416279096, %rcx # imm = 0x3870E1C3870E1C384649; AVX512BW-NEXT:    kmovq %rcx, %k14650; AVX512BW-NEXT:    vmovdqu8 %zmm14, %zmm0 {%k1}4651; AVX512BW-NEXT:    vpshuflw {{.*#+}} ymm14 = ymm13[1,2,2,3,4,5,6,7,9,10,10,11,12,13,14,15]4652; AVX512BW-NEXT:    vpshufd {{.*#+}} ymm14 = ymm14[0,0,1,1,4,4,5,5]4653; AVX512BW-NEXT:    movl $676341840, %ecx # imm = 0x285028504654; AVX512BW-NEXT:    kmovd %ecx, %k14655; AVX512BW-NEXT:    vpshufb {{.*#+}} ymm14 {%k1} = ymm7[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,21,u,19,u,u,u,u,22,u,20,u,u]4656; AVX512BW-NEXT:    vpshufb {{.*#+}} ymm15 = ymm6[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,24,25],zero,ymm6[23],zero,ymm6[21,22,23,26],zero,ymm6[24],zero,ymm6[28,29,26,27]4657; AVX512BW-NEXT:    vpshufb {{.*#+}} ymm16 = ymm9[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,ymm9[25],zero,ymm9[23],zero,zero,zero,zero,ymm9[26],zero,ymm9[24],zero,zero,zero,zero4658; AVX512BW-NEXT:    vporq %ymm15, %ymm16, %ymm154659; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm15 = zmm14[2,3,2,3],zmm15[2,3,2,3]4660; AVX512BW-NEXT:    vinserti64x4 $1, %ymm7, %zmm6, %zmm144661; AVX512BW-NEXT:    vpshufb {{.*#+}} zmm14 = zmm14[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,18],zero,zmm14[18,19,20,21],zero,zmm14[19],zero,zmm14[25,26,27,22],zero,zmm14[20],zero,zmm14[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,57],zero,zmm14[55],zero,zero,zero,zero,zmm14[58],zero,zmm14[56],zero,zero,zero,zero,zmm14[59],zero4662; AVX512BW-NEXT:    vinserti64x4 $1, %ymm13, %zmm9, %zmm164663; AVX512BW-NEXT:    vpshufb {{.*#+}} zmm16 = zmm16[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zmm16[18],zero,zero,zero,zero,zmm16[21],zero,zmm16[19],zero,zero,zero,zero,zmm16[22],zero,zmm16[20,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zmm16[55],zero,zero,zero,zero,zmm16[58],zero,zmm16[56],zero,zero,zero,zero,zmm16[59],zero,zmm16[57]4664; AVX512BW-NEXT:    vporq %zmm14, %zmm16, %zmm144665; AVX512BW-NEXT:    vpermq {{.*#+}} zmm14 = zmm14[2,3,2,3,6,7,6,7]4666; AVX512BW-NEXT:    movabsq $-9005497107459067808, %rcx # imm = 0x83060C180C1830604667; AVX512BW-NEXT:    kmovq %rcx, %k24668; AVX512BW-NEXT:    vmovdqu8 %zmm15, %zmm14 {%k2}4669; AVX512BW-NEXT:    vpmovsxbw {{.*#+}} zmm15 = [10,9,9,10,10,9,9,10,9,10,14,15,10,9,9,10,27,29,28,27,28,29,29,28,27,29,28,27,28,29,29,28]4670; AVX512BW-NEXT:    vpermw %zmm5, %zmm15, %zmm154671; AVX512BW-NEXT:    vpshufb {{.*#+}} zmm16 = zmm2[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,20],zero,zmm2[18],zero,zmm2[20,21,20,21],zero,zmm2[19],zero,zmm2[19,20,21,22],zero,zmm2[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,56,57,56,57],zero,zmm2[55],zero,zmm2[55,56,57,58],zero,zmm2[56],zero,zmm2[62,63]4672; AVX512BW-NEXT:    vpshufb {{.*#+}} zmm17 = zmm1[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zmm1[20],zero,zmm1[18],zero,zero,zero,zero,zmm1[21],zero,zmm1[19],zero,zero,zero,zero,zmm1[22,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,zero,zero,zmm1[57],zero,zmm1[55],zero,zero,zero,zero,zmm1[58],zero,zmm1[56],zero,zero4673; AVX512BW-NEXT:    vporq %zmm16, %zmm17, %zmm164674; AVX512BW-NEXT:    vpermq {{.*#+}} zmm16 = zmm16[2,3,2,3,6,7,6,7]4675; AVX512BW-NEXT:    movabsq $1161999626690365456, %rcx # imm = 0x10204081020408104676; AVX512BW-NEXT:    kmovq %rcx, %k24677; AVX512BW-NEXT:    vmovdqu8 %zmm15, %zmm16 {%k2}4678; AVX512BW-NEXT:    movabsq $2033499346708139548, %rcx # imm = 0x1C3870E1C3870E1C4679; AVX512BW-NEXT:    kmovq %rcx, %k24680; AVX512BW-NEXT:    vmovdqu8 %zmm16, %zmm14 {%k2}4681; AVX512BW-NEXT:    vpshufhw {{.*#+}} ymm13 = ymm13[0,1,2,3,6,7,7,6,8,9,10,11,14,15,15,14]4682; AVX512BW-NEXT:    vpshufd {{.*#+}} ymm13 = ymm13[2,2,3,3,6,6,7,7]4683; AVX512BW-NEXT:    movl $338170920, %ecx # imm = 0x142814284684; AVX512BW-NEXT:    kmovd %ecx, %k24685; AVX512BW-NEXT:    vpshufb {{.*#+}} ymm13 {%k2} = ymm7[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,30,u,28,u,u,u,u,31,u,29,u,u,u]4686; AVX512BW-NEXT:    vpermq {{.*#+}} ymm7 = ymm13[2,3,2,3]4687; AVX512BW-NEXT:    vpshufb {{.*#+}} ymm9 = ymm9[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,27,u,u,u,u,30,u,28,u,u,u,u,31,u,29,u]4688; AVX512BW-NEXT:    vpshufhw {{.*#+}} ymm6 = ymm6[0,1,2,3,7,6,6,7,8,9,10,11,15,14,14,15]4689; AVX512BW-NEXT:    vpshufd {{.*#+}} ymm6 = ymm6[0,2,3,3,4,6,7,7]4690; AVX512BW-NEXT:    vmovdqu8 %ymm6, %ymm9 {%k1}4691; AVX512BW-NEXT:    vpermq {{.*#+}} ymm6 = ymm9[2,3,2,3]4692; AVX512BW-NEXT:    movl $101455920, %ecx # imm = 0x60C18304693; AVX512BW-NEXT:    kmovd %ecx, %k14694; AVX512BW-NEXT:    vmovdqu8 %ymm7, %ymm6 {%k1}4695; AVX512BW-NEXT:    vpshufb {{.*#+}} xmm7 = xmm12[u,u,u],zero,xmm12[7],zero,xmm12[5,u,u,u],zero,xmm12[8],zero,xmm12[6,u,u]4696; AVX512BW-NEXT:    vpshufb {{.*#+}} xmm9 = xmm10[u,u,u,7],zero,xmm10[5],zero,xmm10[u,u,u,8],zero,xmm10[6],zero,xmm10[u,u]4697; AVX512BW-NEXT:    vpor %xmm7, %xmm9, %xmm74698; AVX512BW-NEXT:    vpunpcklbw {{.*#+}} xmm9 = xmm10[0],xmm12[0],xmm10[1],xmm12[1],xmm10[2],xmm12[2],xmm10[3],xmm12[3],xmm10[4],xmm12[4],xmm10[5],xmm12[5],xmm10[6],xmm12[6],xmm10[7],xmm12[7]4699; AVX512BW-NEXT:    vpshufb {{.*#+}} xmm9 = xmm9[4,5,0,1,u,u,u,6,7,2,3,u,u,u,8,9]4700; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm7 = zmm9[0,1,0,1],zmm7[0,1,0,1]4701; AVX512BW-NEXT:    vpshufb {{.*#+}} xmm9 = xmm4[u],zero,xmm4[7],zero,xmm4[5,u,u,u],zero,xmm4[8],zero,xmm4[6,u,u,u],zero4702; AVX512BW-NEXT:    vpshufb {{.*#+}} xmm10 = xmm3[u,7],zero,xmm3[5],zero,xmm3[u,u,u,8],zero,xmm3[6],zero,xmm3[u,u,u,9]4703; AVX512BW-NEXT:    vpor %xmm9, %xmm10, %xmm94704; AVX512BW-NEXT:    vpunpcklbw {{.*#+}} xmm3 = xmm3[0],xmm4[0],xmm3[1],xmm4[1],xmm3[2],xmm4[2],xmm3[3],xmm4[3],xmm3[4],xmm4[4],xmm3[5],xmm4[5],xmm3[6],xmm4[6],xmm3[7],xmm4[7]4705; AVX512BW-NEXT:    vpshufb {{.*#+}} xmm3 = xmm3[0,1,u,u,u,6,7,2,3,u,u,u,8,9,4,5]4706; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm3 = zmm3[0,1,0,1],zmm9[0,1,0,1]4707; AVX512BW-NEXT:    movabsq $871499720017774092, %rcx # imm = 0xC183060C183060C4708; AVX512BW-NEXT:    kmovq %rcx, %k14709; AVX512BW-NEXT:    vmovdqu8 %zmm7, %zmm3 {%k1}4710; AVX512BW-NEXT:    vpshufb {{.*#+}} xmm4 = zero,xmm8[4,u,u,u],zero,xmm8[7],zero,xmm8[5,u,u,u],zero,xmm8[8],zero,xmm8[6]4711; AVX512BW-NEXT:    vpshufb {{.*#+}} xmm7 = xmm11[4],zero,xmm11[u,u,u,7],zero,xmm11[5],zero,xmm11[u,u,u,8],zero,xmm11[6],zero4712; AVX512BW-NEXT:    vpor %xmm4, %xmm7, %xmm44713; AVX512BW-NEXT:    vpunpcklbw {{.*#+}} xmm7 = xmm11[0],xmm8[0],xmm11[1],xmm8[1],xmm11[2],xmm8[2],xmm11[3],xmm8[3],xmm11[4],xmm8[4],xmm11[5],xmm8[5],xmm11[6],xmm8[6],xmm11[7],xmm8[7]4714; AVX512BW-NEXT:    vpshufb {{.*#+}} xmm7 = xmm7[u,u,4,5,0,1,u,u,u,6,7,2,3,u,u,u]4715; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm4 = zmm7[0,1,0,1],zmm4[0,1,0,1]4716; AVX512BW-NEXT:    vpmovsxbw {{.*#+}} zmm7 = [1,1,0,0,1,1,0,0,4,5,1,1,1,1,0,0,18,18,18,20,18,18,18,20,19,19,19,19,18,18,18,20]4717; AVX512BW-NEXT:    vpermw %zmm5, %zmm7, %zmm74718; AVX512BW-NEXT:    movabsq $4647998506761461824, %rcx # imm = 0x40810204081020404719; AVX512BW-NEXT:    kmovq %rcx, %k14720; AVX512BW-NEXT:    vmovdqu8 %zmm7, %zmm4 {%k1}4721; AVX512BW-NEXT:    movabsq $8133997386832558192, %rcx # imm = 0x70E1C3870E1C38704722; AVX512BW-NEXT:    kmovq %rcx, %k14723; AVX512BW-NEXT:    vmovdqu8 %zmm4, %zmm3 {%k1}4724; AVX512BW-NEXT:    vbroadcasti128 {{.*#+}} ymm4 = [14,13,14,15,15,14,14,15,14,13,14,15,15,14,14,15]4725; AVX512BW-NEXT:    # ymm4 = mem[0,1,0,1]4726; AVX512BW-NEXT:    vpermw %ymm5, %ymm4, %ymm44727; AVX512BW-NEXT:    vpshufb {{.*#+}} ymm1 = ymm1[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,29],zero,ymm1[27],zero,zero,zero,zero,ymm1[30],zero,ymm1[28],zero,zero,zero,zero,ymm1[31],zero4728; AVX512BW-NEXT:    vpshufb {{.*#+}} ymm2 = ymm2[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,ymm2[27],zero,zero,zero,zero,ymm2[30],zero,ymm2[28],zero,zero,zero,zero,ymm2[31],zero,ymm2[29]4729; AVX512BW-NEXT:    vpor %ymm1, %ymm2, %ymm14730; AVX512BW-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[2,3,2,3]4731; AVX512BW-NEXT:    movl $-2130574328, %ecx # imm = 0x810204084732; AVX512BW-NEXT:    kmovd %ecx, %k14733; AVX512BW-NEXT:    vmovdqu8 %ymm4, %ymm1 {%k1}4734; AVX512BW-NEXT:    vmovdqa64 %zmm3, (%rax)4735; AVX512BW-NEXT:    movl $-507279602, %ecx # imm = 0xE1C3870E4736; AVX512BW-NEXT:    kmovd %ecx, %k14737; AVX512BW-NEXT:    vmovdqu8 %ymm1, %ymm6 {%k1}4738; AVX512BW-NEXT:    vmovdqa %ymm6, 192(%rax)4739; AVX512BW-NEXT:    vmovdqa64 %zmm14, 128(%rax)4740; AVX512BW-NEXT:    vmovdqa64 %zmm0, 64(%rax)4741; AVX512BW-NEXT:    vzeroupper4742; AVX512BW-NEXT:    retq4743;4744; AVX512BW-FCP-LABEL: store_i8_stride7_vf32:4745; AVX512BW-FCP:       # %bb.0:4746; AVX512BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax4747; AVX512BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r104748; AVX512BW-FCP-NEXT:    vmovdqa (%rdi), %ymm34749; AVX512BW-FCP-NEXT:    vmovdqa (%rsi), %ymm44750; AVX512BW-FCP-NEXT:    vmovdqa (%rdx), %ymm14751; AVX512BW-FCP-NEXT:    vmovdqa (%rcx), %ymm24752; AVX512BW-FCP-NEXT:    vpshufb {{.*#+}} ymm0 = ymm1[0,1,0,1,14],zero,ymm1[14,15,0,1,14,15],zero,ymm1[13,14,15,16,17,16],zero,ymm1[30,31,30,31,16,17],zero,ymm1[31,28,29,30,31]4753; AVX512BW-FCP-NEXT:    vpshufb {{.*#+}} ymm5 = zero,zero,zero,zero,zero,ymm2[14],zero,zero,zero,zero,zero,zero,ymm2[15],zero,zero,zero,zero,zero,zero,ymm2[16],zero,zero,zero,zero,zero,zero,ymm2[17],zero,zero,zero,zero,zero4754; AVX512BW-FCP-NEXT:    vpor %ymm0, %ymm5, %ymm04755; AVX512BW-FCP-NEXT:    vmovdqa (%rdi), %xmm84756; AVX512BW-FCP-NEXT:    vmovdqa (%rsi), %xmm94757; AVX512BW-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm5 = xmm9[8],xmm8[8],xmm9[9],xmm8[9],xmm9[10],xmm8[10],xmm9[11],xmm8[11],xmm9[12],xmm8[12],xmm9[13],xmm8[13],xmm9[14],xmm8[14],xmm9[15],xmm8[15]4758; AVX512BW-FCP-NEXT:    vpshufb {{.*#+}} xmm5 = xmm5[2,u,u,u,9,8,5,4,u,u,u,11,10,7,6,u]4759; AVX512BW-FCP-NEXT:    vpermq {{.*#+}} ymm5 = ymm5[0,1,0,1]4760; AVX512BW-FCP-NEXT:    vinserti64x4 $1, %ymm0, %zmm5, %zmm54761; AVX512BW-FCP-NEXT:    vpshufb {{.*#+}} ymm0 = ymm3[0,1,14],zero,ymm3[12,13,0,1,14,15],zero,ymm3[3,12,13,2,3,16],zero,ymm3[30,31,28,29,16,17],zero,ymm3[31,18,19,28,29,18],zero4762; AVX512BW-FCP-NEXT:    vpshufb {{.*#+}} ymm6 = zero,zero,zero,ymm4[14],zero,zero,zero,zero,zero,zero,ymm4[15],zero,zero,zero,zero,zero,zero,ymm4[16],zero,zero,zero,zero,zero,zero,ymm4[17],zero,zero,zero,zero,zero,zero,ymm4[18]4763; AVX512BW-FCP-NEXT:    vpor %ymm0, %ymm6, %ymm04764; AVX512BW-FCP-NEXT:    vmovdqa (%rdx), %xmm124765; AVX512BW-FCP-NEXT:    vmovdqa (%rcx), %xmm144766; AVX512BW-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm6 = xmm14[8],xmm12[8],xmm14[9],xmm12[9],xmm14[10],xmm12[10],xmm14[11],xmm12[11],xmm14[12],xmm12[12],xmm14[13],xmm12[13],xmm14[14],xmm12[14],xmm14[15],xmm12[15]4767; AVX512BW-FCP-NEXT:    vpshufb {{.*#+}} xmm6 = xmm6[6,3,2,u,u,u,9,8,5,4,u,u,u,11,10,7]4768; AVX512BW-FCP-NEXT:    vpermq {{.*#+}} ymm6 = ymm6[0,1,0,1]4769; AVX512BW-FCP-NEXT:    vinserti64x4 $1, %ymm0, %zmm6, %zmm04770; AVX512BW-FCP-NEXT:    movabsq $435749858791416001, %rcx # imm = 0x60C1830183060C14771; AVX512BW-FCP-NEXT:    kmovq %rcx, %k14772; AVX512BW-FCP-NEXT:    vmovdqu8 %zmm5, %zmm0 {%k1}4773; AVX512BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm5 = mem[0,1,2,3,0,1,2,3]4774; AVX512BW-FCP-NEXT:    vpshufb {{.*#+}} ymm7 = ymm5[13],zero,zero,zero,zero,zero,zero,ymm5[14],zero,zero,zero,zero,zero,zero,ymm5[15],zero,zero,zero,zero,zero,zero,ymm5[16],zero,zero,zero,zero,zero,zero,ymm5[17],zero,zero,zero4775; AVX512BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm6 = mem[0,1,2,3,0,1,2,3]4776; AVX512BW-FCP-NEXT:    vpshufb {{.*#+}} ymm10 = zero,zero,zero,zero,zero,zero,ymm6[14],zero,zero,zero,zero,zero,zero,ymm6[15],zero,zero,zero,zero,zero,zero,ymm6[16],zero,zero,zero,zero,zero,zero,ymm6[17],zero,zero,zero,zero4777; AVX512BW-FCP-NEXT:    vpor %ymm7, %ymm10, %ymm74778; AVX512BW-FCP-NEXT:    vmovdqa (%r9), %xmm114779; AVX512BW-FCP-NEXT:    vmovdqa (%r8), %xmm134780; AVX512BW-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm10 = xmm13[8],xmm11[8],xmm13[9],xmm11[9],xmm13[10],xmm11[10],xmm13[11],xmm11[11],xmm13[12],xmm11[12],xmm13[13],xmm11[13],xmm13[14],xmm11[14],xmm13[15],xmm11[15]4781; AVX512BW-FCP-NEXT:    vpshufb {{.*#+}} xmm10 = xmm10[u,6,7,2,3,u,u,u,8,9,4,5,u,u,u,10]4782; AVX512BW-FCP-NEXT:    vpermq {{.*#+}} ymm10 = ymm10[0,1,0,1]4783; AVX512BW-FCP-NEXT:    vinserti64x4 $1, %ymm7, %zmm10, %zmm104784; AVX512BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm7 = mem[0,1,2,3,0,1,2,3]4785; AVX512BW-FCP-NEXT:    vpmovsxbw {{.*#+}} zmm15 = [4,5,4,5,5,6,5,6,4,5,4,5,5,6,5,6,6,1,6,0,7,1,0,7,14,9,14,8,15,9,8,15]4786; AVX512BW-FCP-NEXT:    vpermw %zmm7, %zmm15, %zmm154787; AVX512BW-FCP-NEXT:    movabsq $2323999253380730912, %rcx # imm = 0x20408102040810204788; AVX512BW-FCP-NEXT:    kmovq %rcx, %k14789; AVX512BW-FCP-NEXT:    vmovdqu8 %zmm15, %zmm10 {%k1}4790; AVX512BW-FCP-NEXT:    movabsq $4066998693416279096, %rcx # imm = 0x3870E1C3870E1C384791; AVX512BW-FCP-NEXT:    kmovq %rcx, %k14792; AVX512BW-FCP-NEXT:    vmovdqu8 %zmm10, %zmm0 {%k1}4793; AVX512BW-FCP-NEXT:    vinserti64x4 $1, %ymm1, %zmm3, %zmm104794; AVX512BW-FCP-NEXT:    vpshufb {{.*#+}} zmm10 = zmm10[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,18,19,20,21],zero,zmm10[19],zero,zmm10[21,20,21,22],zero,zmm10[20],zero,zmm10[22,23,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,56,57],zero,zmm10[55],zero,zmm10[53,54,55,58],zero,zmm10[56],zero,zmm10[60,61,58,59]4795; AVX512BW-FCP-NEXT:    vinserti64x4 $1, %ymm2, %zmm4, %zmm154796; AVX512BW-FCP-NEXT:    vpshufb {{.*#+}} zmm15 = zmm15[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,zero,zero,zmm15[21],zero,zmm15[19],zero,zero,zero,zero,zmm15[22],zero,zmm15[20],zero,zero,zmm15[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,zmm15[57],zero,zmm15[55],zero,zero,zero,zero,zmm15[58],zero,zmm15[56],zero,zero,zero,zero4797; AVX512BW-FCP-NEXT:    vporq %zmm10, %zmm15, %zmm104798; AVX512BW-FCP-NEXT:    vpermq {{.*#+}} zmm15 = zmm10[2,3,2,3,6,7,6,7]4799; AVX512BW-FCP-NEXT:    vinserti64x4 $1, %ymm4, %zmm1, %zmm104800; AVX512BW-FCP-NEXT:    vpshufb {{.*#+}} zmm10 = zmm10[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,18],zero,zmm10[18,19,20,21],zero,zmm10[19],zero,zmm10[25,26,27,22],zero,zmm10[20],zero,zmm10[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,57],zero,zmm10[55],zero,zero,zero,zero,zmm10[58],zero,zmm10[56],zero,zero,zero,zero,zmm10[59],zero4801; AVX512BW-FCP-NEXT:    vinserti64x4 $1, %ymm3, %zmm2, %zmm164802; AVX512BW-FCP-NEXT:    vpshufb {{.*#+}} zmm16 = zmm16[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zmm16[18],zero,zero,zero,zero,zmm16[21],zero,zmm16[19],zero,zero,zero,zero,zmm16[22],zero,zmm16[20,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zmm16[55],zero,zero,zero,zero,zmm16[58],zero,zmm16[56],zero,zero,zero,zero,zmm16[59],zero,zmm16[57]4803; AVX512BW-FCP-NEXT:    vporq %zmm10, %zmm16, %zmm104804; AVX512BW-FCP-NEXT:    vpermq {{.*#+}} zmm10 = zmm10[2,3,2,3,6,7,6,7]4805; AVX512BW-FCP-NEXT:    movabsq $-9005497107459067808, %rcx # imm = 0x83060C180C1830604806; AVX512BW-FCP-NEXT:    kmovq %rcx, %k14807; AVX512BW-FCP-NEXT:    vmovdqu8 %zmm15, %zmm10 {%k1}4808; AVX512BW-FCP-NEXT:    vpmovsxbw {{.*#+}} zmm15 = [10,9,9,10,10,9,9,10,9,10,14,15,10,9,9,10,27,29,28,27,28,29,29,28,27,29,28,27,28,29,29,28]4809; AVX512BW-FCP-NEXT:    vpermw %zmm7, %zmm15, %zmm154810; AVX512BW-FCP-NEXT:    vpshufb {{.*#+}} zmm16 = zmm6[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,20],zero,zmm6[18],zero,zmm6[20,21,20,21],zero,zmm6[19],zero,zmm6[19,20,21,22],zero,zmm6[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,56,57,56,57],zero,zmm6[55],zero,zmm6[55,56,57,58],zero,zmm6[56],zero,zmm6[62,63]4811; AVX512BW-FCP-NEXT:    vpshufb {{.*#+}} zmm17 = zmm5[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zmm5[20],zero,zmm5[18],zero,zero,zero,zero,zmm5[21],zero,zmm5[19],zero,zero,zero,zero,zmm5[22,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,zero,zero,zmm5[57],zero,zmm5[55],zero,zero,zero,zero,zmm5[58],zero,zmm5[56],zero,zero4812; AVX512BW-FCP-NEXT:    vporq %zmm16, %zmm17, %zmm164813; AVX512BW-FCP-NEXT:    vpermq {{.*#+}} zmm16 = zmm16[2,3,2,3,6,7,6,7]4814; AVX512BW-FCP-NEXT:    movabsq $1161999626690365456, %rcx # imm = 0x10204081020408104815; AVX512BW-FCP-NEXT:    kmovq %rcx, %k14816; AVX512BW-FCP-NEXT:    vmovdqu8 %zmm15, %zmm16 {%k1}4817; AVX512BW-FCP-NEXT:    movabsq $2033499346708139548, %rcx # imm = 0x1C3870E1C3870E1C4818; AVX512BW-FCP-NEXT:    kmovq %rcx, %k14819; AVX512BW-FCP-NEXT:    vmovdqu8 %zmm16, %zmm10 {%k1}4820; AVX512BW-FCP-NEXT:    vpshufb {{.*#+}} xmm15 = xmm14[u,u,u],zero,xmm14[7],zero,xmm14[5,u,u,u],zero,xmm14[8],zero,xmm14[6,u,u]4821; AVX512BW-FCP-NEXT:    vpshufb {{.*#+}} xmm16 = xmm12[u,u,u,7],zero,xmm12[5],zero,xmm12[u,u,u,8],zero,xmm12[6],zero,xmm12[u,u]4822; AVX512BW-FCP-NEXT:    vporq %xmm15, %xmm16, %xmm154823; AVX512BW-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm12 = xmm12[0],xmm14[0],xmm12[1],xmm14[1],xmm12[2],xmm14[2],xmm12[3],xmm14[3],xmm12[4],xmm14[4],xmm12[5],xmm14[5],xmm12[6],xmm14[6],xmm12[7],xmm14[7]4824; AVX512BW-FCP-NEXT:    vpshufb {{.*#+}} xmm12 = xmm12[4,5,0,1,u,u,u,6,7,2,3,u,u,u,8,9]4825; AVX512BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm12 = zmm12[0,1,0,1],zmm15[0,1,0,1]4826; AVX512BW-FCP-NEXT:    vpshufb {{.*#+}} xmm14 = xmm9[u],zero,xmm9[7],zero,xmm9[5,u,u,u],zero,xmm9[8],zero,xmm9[6,u,u,u],zero4827; AVX512BW-FCP-NEXT:    vpshufb {{.*#+}} xmm15 = xmm8[u,7],zero,xmm8[5],zero,xmm8[u,u,u,8],zero,xmm8[6],zero,xmm8[u,u,u,9]4828; AVX512BW-FCP-NEXT:    vpor %xmm14, %xmm15, %xmm144829; AVX512BW-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm8 = xmm8[0],xmm9[0],xmm8[1],xmm9[1],xmm8[2],xmm9[2],xmm8[3],xmm9[3],xmm8[4],xmm9[4],xmm8[5],xmm9[5],xmm8[6],xmm9[6],xmm8[7],xmm9[7]4830; AVX512BW-FCP-NEXT:    vpshufb {{.*#+}} xmm8 = xmm8[0,1,u,u,u,6,7,2,3,u,u,u,8,9,4,5]4831; AVX512BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm8 = zmm8[0,1,0,1],zmm14[0,1,0,1]4832; AVX512BW-FCP-NEXT:    movabsq $871499720017774092, %rcx # imm = 0xC183060C183060C4833; AVX512BW-FCP-NEXT:    kmovq %rcx, %k14834; AVX512BW-FCP-NEXT:    vmovdqu8 %zmm12, %zmm8 {%k1}4835; AVX512BW-FCP-NEXT:    vpshufb {{.*#+}} xmm9 = zero,xmm11[4,u,u,u],zero,xmm11[7],zero,xmm11[5,u,u,u],zero,xmm11[8],zero,xmm11[6]4836; AVX512BW-FCP-NEXT:    vpshufb {{.*#+}} xmm12 = xmm13[4],zero,xmm13[u,u,u,7],zero,xmm13[5],zero,xmm13[u,u,u,8],zero,xmm13[6],zero4837; AVX512BW-FCP-NEXT:    vpor %xmm9, %xmm12, %xmm94838; AVX512BW-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm11 = xmm13[0],xmm11[0],xmm13[1],xmm11[1],xmm13[2],xmm11[2],xmm13[3],xmm11[3],xmm13[4],xmm11[4],xmm13[5],xmm11[5],xmm13[6],xmm11[6],xmm13[7],xmm11[7]4839; AVX512BW-FCP-NEXT:    vpshufb {{.*#+}} xmm11 = xmm11[u,u,4,5,0,1,u,u,u,6,7,2,3,u,u,u]4840; AVX512BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm9 = zmm11[0,1,0,1],zmm9[0,1,0,1]4841; AVX512BW-FCP-NEXT:    vpmovsxbw {{.*#+}} zmm11 = [1,1,0,0,1,1,0,0,4,5,1,1,1,1,0,0,18,18,18,20,18,18,18,20,19,19,19,19,18,18,18,20]4842; AVX512BW-FCP-NEXT:    vpermw %zmm7, %zmm11, %zmm114843; AVX512BW-FCP-NEXT:    movabsq $4647998506761461824, %rcx # imm = 0x40810204081020404844; AVX512BW-FCP-NEXT:    kmovq %rcx, %k14845; AVX512BW-FCP-NEXT:    vmovdqu8 %zmm11, %zmm9 {%k1}4846; AVX512BW-FCP-NEXT:    movabsq $8133997386832558192, %rcx # imm = 0x70E1C3870E1C38704847; AVX512BW-FCP-NEXT:    kmovq %rcx, %k14848; AVX512BW-FCP-NEXT:    vmovdqu8 %zmm9, %zmm8 {%k1}4849; AVX512BW-FCP-NEXT:    vpshufb {{.*#+}} ymm3 = ymm3[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,28,29,30],zero,ymm3[28],zero,ymm3[30,31,30,31],zero,ymm3[29],zero,ymm3[31,28,29]4850; AVX512BW-FCP-NEXT:    vpshufb {{.*#+}} ymm4 = ymm4[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,zero,ymm4[30],zero,ymm4[28],zero,zero,zero,zero,ymm4[31],zero,ymm4[29],zero,zero,zero4851; AVX512BW-FCP-NEXT:    vpor %ymm3, %ymm4, %ymm34852; AVX512BW-FCP-NEXT:    vpermq {{.*#+}} ymm3 = ymm3[2,3,2,3]4853; AVX512BW-FCP-NEXT:    vpshufb {{.*#+}} ymm2 = ymm2[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,27],zero,zero,zero,zero,ymm2[30],zero,ymm2[28],zero,zero,zero,zero,ymm2[31],zero,ymm2[29],zero4854; AVX512BW-FCP-NEXT:    vpshufb {{.*#+}} ymm1 = ymm1[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,zero,zero,ymm1[30],zero,ymm1[28],zero,zero,zero,zero,ymm1[31],zero,ymm1[29],zero,zero4855; AVX512BW-FCP-NEXT:    vpor %ymm2, %ymm1, %ymm14856; AVX512BW-FCP-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[2,3,2,3]4857; AVX512BW-FCP-NEXT:    movl $101455920, %ecx # imm = 0x60C18304858; AVX512BW-FCP-NEXT:    kmovd %ecx, %k14859; AVX512BW-FCP-NEXT:    vmovdqu8 %ymm3, %ymm1 {%k1}4860; AVX512BW-FCP-NEXT:    vbroadcasti128 {{.*#+}} ymm2 = [14,13,14,15,15,14,14,15,14,13,14,15,15,14,14,15]4861; AVX512BW-FCP-NEXT:    # ymm2 = mem[0,1,0,1]4862; AVX512BW-FCP-NEXT:    vpermw %ymm7, %ymm2, %ymm24863; AVX512BW-FCP-NEXT:    vpshufb {{.*#+}} ymm3 = ymm5[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,29],zero,ymm5[27],zero,zero,zero,zero,ymm5[30],zero,ymm5[28],zero,zero,zero,zero,ymm5[31],zero4864; AVX512BW-FCP-NEXT:    vpshufb {{.*#+}} ymm4 = ymm6[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,ymm6[27],zero,zero,zero,zero,ymm6[30],zero,ymm6[28],zero,zero,zero,zero,ymm6[31],zero,ymm6[29]4865; AVX512BW-FCP-NEXT:    vpor %ymm3, %ymm4, %ymm34866; AVX512BW-FCP-NEXT:    vpermq {{.*#+}} ymm3 = ymm3[2,3,2,3]4867; AVX512BW-FCP-NEXT:    movl $-2130574328, %ecx # imm = 0x810204084868; AVX512BW-FCP-NEXT:    kmovd %ecx, %k14869; AVX512BW-FCP-NEXT:    vmovdqu8 %ymm2, %ymm3 {%k1}4870; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm8, (%rax)4871; AVX512BW-FCP-NEXT:    movl $-507279602, %ecx # imm = 0xE1C3870E4872; AVX512BW-FCP-NEXT:    kmovd %ecx, %k14873; AVX512BW-FCP-NEXT:    vmovdqu8 %ymm3, %ymm1 {%k1}4874; AVX512BW-FCP-NEXT:    vmovdqa %ymm1, 192(%rax)4875; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm10, 128(%rax)4876; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, 64(%rax)4877; AVX512BW-FCP-NEXT:    vzeroupper4878; AVX512BW-FCP-NEXT:    retq4879;4880; AVX512DQ-BW-LABEL: store_i8_stride7_vf32:4881; AVX512DQ-BW:       # %bb.0:4882; AVX512DQ-BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax4883; AVX512DQ-BW-NEXT:    movq {{[0-9]+}}(%rsp), %r104884; AVX512DQ-BW-NEXT:    vmovdqa (%rdi), %ymm134885; AVX512DQ-BW-NEXT:    vmovdqa (%rsi), %ymm74886; AVX512DQ-BW-NEXT:    vmovdqa (%rdx), %ymm64887; AVX512DQ-BW-NEXT:    vmovdqa (%rcx), %ymm94888; AVX512DQ-BW-NEXT:    vpshufb {{.*#+}} ymm0 = ymm6[0,1,0,1,14],zero,ymm6[14,15,0,1,14,15],zero,ymm6[13,14,15,16,17,16],zero,ymm6[30,31,30,31,16,17],zero,ymm6[31,28,29,30,31]4889; AVX512DQ-BW-NEXT:    vpshufb {{.*#+}} ymm1 = zero,zero,zero,zero,zero,ymm9[14],zero,zero,zero,zero,zero,zero,ymm9[15],zero,zero,zero,zero,zero,zero,ymm9[16],zero,zero,zero,zero,zero,zero,ymm9[17],zero,zero,zero,zero,zero4890; AVX512DQ-BW-NEXT:    vpor %ymm0, %ymm1, %ymm04891; AVX512DQ-BW-NEXT:    vmovdqa (%rdi), %xmm34892; AVX512DQ-BW-NEXT:    vmovdqa (%rsi), %xmm44893; AVX512DQ-BW-NEXT:    vpunpckhbw {{.*#+}} xmm1 = xmm4[8],xmm3[8],xmm4[9],xmm3[9],xmm4[10],xmm3[10],xmm4[11],xmm3[11],xmm4[12],xmm3[12],xmm4[13],xmm3[13],xmm4[14],xmm3[14],xmm4[15],xmm3[15]4894; AVX512DQ-BW-NEXT:    vpshufb {{.*#+}} xmm1 = xmm1[2,u,u,u,9,8,5,4,u,u,u,11,10,7,6,u]4895; AVX512DQ-BW-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[0,1,0,1]4896; AVX512DQ-BW-NEXT:    vinserti64x4 $1, %ymm0, %zmm1, %zmm14897; AVX512DQ-BW-NEXT:    vpshufb {{.*#+}} ymm0 = ymm13[0,1,14],zero,ymm13[12,13,0,1,14,15],zero,ymm13[3,12,13,2,3,16],zero,ymm13[30,31,28,29,16,17],zero,ymm13[31,18,19,28,29,18],zero4898; AVX512DQ-BW-NEXT:    vpshufb {{.*#+}} ymm2 = zero,zero,zero,ymm7[14],zero,zero,zero,zero,zero,zero,ymm7[15],zero,zero,zero,zero,zero,zero,ymm7[16],zero,zero,zero,zero,zero,zero,ymm7[17],zero,zero,zero,zero,zero,zero,ymm7[18]4899; AVX512DQ-BW-NEXT:    vpor %ymm0, %ymm2, %ymm04900; AVX512DQ-BW-NEXT:    vmovdqa (%rdx), %xmm104901; AVX512DQ-BW-NEXT:    vmovdqa (%rcx), %xmm124902; AVX512DQ-BW-NEXT:    vpunpckhbw {{.*#+}} xmm2 = xmm12[8],xmm10[8],xmm12[9],xmm10[9],xmm12[10],xmm10[10],xmm12[11],xmm10[11],xmm12[12],xmm10[12],xmm12[13],xmm10[13],xmm12[14],xmm10[14],xmm12[15],xmm10[15]4903; AVX512DQ-BW-NEXT:    vpshufb {{.*#+}} xmm2 = xmm2[6,3,2,u,u,u,9,8,5,4,u,u,u,11,10,7]4904; AVX512DQ-BW-NEXT:    vpermq {{.*#+}} ymm2 = ymm2[0,1,0,1]4905; AVX512DQ-BW-NEXT:    vinserti64x4 $1, %ymm0, %zmm2, %zmm04906; AVX512DQ-BW-NEXT:    movabsq $435749858791416001, %rcx # imm = 0x60C1830183060C14907; AVX512DQ-BW-NEXT:    kmovq %rcx, %k14908; AVX512DQ-BW-NEXT:    vmovdqu8 %zmm1, %zmm0 {%k1}4909; AVX512DQ-BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm1 = mem[0,1,2,3,0,1,2,3]4910; AVX512DQ-BW-NEXT:    vpshufb {{.*#+}} ymm5 = ymm1[13],zero,zero,zero,zero,zero,zero,ymm1[14],zero,zero,zero,zero,zero,zero,ymm1[15],zero,zero,zero,zero,zero,zero,ymm1[16],zero,zero,zero,zero,zero,zero,ymm1[17],zero,zero,zero4911; AVX512DQ-BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm2 = mem[0,1,2,3,0,1,2,3]4912; AVX512DQ-BW-NEXT:    vpshufb {{.*#+}} ymm8 = zero,zero,zero,zero,zero,zero,ymm2[14],zero,zero,zero,zero,zero,zero,ymm2[15],zero,zero,zero,zero,zero,zero,ymm2[16],zero,zero,zero,zero,zero,zero,ymm2[17],zero,zero,zero,zero4913; AVX512DQ-BW-NEXT:    vpor %ymm5, %ymm8, %ymm54914; AVX512DQ-BW-NEXT:    vmovdqa (%r9), %xmm84915; AVX512DQ-BW-NEXT:    vmovdqa (%r8), %xmm114916; AVX512DQ-BW-NEXT:    vpunpckhbw {{.*#+}} xmm14 = xmm11[8],xmm8[8],xmm11[9],xmm8[9],xmm11[10],xmm8[10],xmm11[11],xmm8[11],xmm11[12],xmm8[12],xmm11[13],xmm8[13],xmm11[14],xmm8[14],xmm11[15],xmm8[15]4917; AVX512DQ-BW-NEXT:    vpshufb {{.*#+}} xmm14 = xmm14[u,6,7,2,3,u,u,u,8,9,4,5,u,u,u,10]4918; AVX512DQ-BW-NEXT:    vpermq {{.*#+}} ymm14 = ymm14[0,1,0,1]4919; AVX512DQ-BW-NEXT:    vinserti64x4 $1, %ymm5, %zmm14, %zmm144920; AVX512DQ-BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm5 = mem[0,1,2,3,0,1,2,3]4921; AVX512DQ-BW-NEXT:    vpmovsxbw {{.*#+}} zmm15 = [4,5,4,5,5,6,5,6,4,5,4,5,5,6,5,6,6,1,6,0,7,1,0,7,14,9,14,8,15,9,8,15]4922; AVX512DQ-BW-NEXT:    vpermw %zmm5, %zmm15, %zmm154923; AVX512DQ-BW-NEXT:    movabsq $2323999253380730912, %rcx # imm = 0x20408102040810204924; AVX512DQ-BW-NEXT:    kmovq %rcx, %k14925; AVX512DQ-BW-NEXT:    vmovdqu8 %zmm15, %zmm14 {%k1}4926; AVX512DQ-BW-NEXT:    movabsq $4066998693416279096, %rcx # imm = 0x3870E1C3870E1C384927; AVX512DQ-BW-NEXT:    kmovq %rcx, %k14928; AVX512DQ-BW-NEXT:    vmovdqu8 %zmm14, %zmm0 {%k1}4929; AVX512DQ-BW-NEXT:    vpshuflw {{.*#+}} ymm14 = ymm13[1,2,2,3,4,5,6,7,9,10,10,11,12,13,14,15]4930; AVX512DQ-BW-NEXT:    vpshufd {{.*#+}} ymm14 = ymm14[0,0,1,1,4,4,5,5]4931; AVX512DQ-BW-NEXT:    movl $676341840, %ecx # imm = 0x285028504932; AVX512DQ-BW-NEXT:    kmovd %ecx, %k14933; AVX512DQ-BW-NEXT:    vpshufb {{.*#+}} ymm14 {%k1} = ymm7[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,21,u,19,u,u,u,u,22,u,20,u,u]4934; AVX512DQ-BW-NEXT:    vpshufb {{.*#+}} ymm15 = ymm6[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,24,25],zero,ymm6[23],zero,ymm6[21,22,23,26],zero,ymm6[24],zero,ymm6[28,29,26,27]4935; AVX512DQ-BW-NEXT:    vpshufb {{.*#+}} ymm16 = ymm9[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,ymm9[25],zero,ymm9[23],zero,zero,zero,zero,ymm9[26],zero,ymm9[24],zero,zero,zero,zero4936; AVX512DQ-BW-NEXT:    vporq %ymm15, %ymm16, %ymm154937; AVX512DQ-BW-NEXT:    vshufi64x2 {{.*#+}} zmm15 = zmm14[2,3,2,3],zmm15[2,3,2,3]4938; AVX512DQ-BW-NEXT:    vinserti64x4 $1, %ymm7, %zmm6, %zmm144939; AVX512DQ-BW-NEXT:    vpshufb {{.*#+}} zmm14 = zmm14[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,18],zero,zmm14[18,19,20,21],zero,zmm14[19],zero,zmm14[25,26,27,22],zero,zmm14[20],zero,zmm14[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,57],zero,zmm14[55],zero,zero,zero,zero,zmm14[58],zero,zmm14[56],zero,zero,zero,zero,zmm14[59],zero4940; AVX512DQ-BW-NEXT:    vinserti64x4 $1, %ymm13, %zmm9, %zmm164941; AVX512DQ-BW-NEXT:    vpshufb {{.*#+}} zmm16 = zmm16[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zmm16[18],zero,zero,zero,zero,zmm16[21],zero,zmm16[19],zero,zero,zero,zero,zmm16[22],zero,zmm16[20,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zmm16[55],zero,zero,zero,zero,zmm16[58],zero,zmm16[56],zero,zero,zero,zero,zmm16[59],zero,zmm16[57]4942; AVX512DQ-BW-NEXT:    vporq %zmm14, %zmm16, %zmm144943; AVX512DQ-BW-NEXT:    vpermq {{.*#+}} zmm14 = zmm14[2,3,2,3,6,7,6,7]4944; AVX512DQ-BW-NEXT:    movabsq $-9005497107459067808, %rcx # imm = 0x83060C180C1830604945; AVX512DQ-BW-NEXT:    kmovq %rcx, %k24946; AVX512DQ-BW-NEXT:    vmovdqu8 %zmm15, %zmm14 {%k2}4947; AVX512DQ-BW-NEXT:    vpmovsxbw {{.*#+}} zmm15 = [10,9,9,10,10,9,9,10,9,10,14,15,10,9,9,10,27,29,28,27,28,29,29,28,27,29,28,27,28,29,29,28]4948; AVX512DQ-BW-NEXT:    vpermw %zmm5, %zmm15, %zmm154949; AVX512DQ-BW-NEXT:    vpshufb {{.*#+}} zmm16 = zmm2[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,20],zero,zmm2[18],zero,zmm2[20,21,20,21],zero,zmm2[19],zero,zmm2[19,20,21,22],zero,zmm2[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,56,57,56,57],zero,zmm2[55],zero,zmm2[55,56,57,58],zero,zmm2[56],zero,zmm2[62,63]4950; AVX512DQ-BW-NEXT:    vpshufb {{.*#+}} zmm17 = zmm1[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zmm1[20],zero,zmm1[18],zero,zero,zero,zero,zmm1[21],zero,zmm1[19],zero,zero,zero,zero,zmm1[22,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,zero,zero,zmm1[57],zero,zmm1[55],zero,zero,zero,zero,zmm1[58],zero,zmm1[56],zero,zero4951; AVX512DQ-BW-NEXT:    vporq %zmm16, %zmm17, %zmm164952; AVX512DQ-BW-NEXT:    vpermq {{.*#+}} zmm16 = zmm16[2,3,2,3,6,7,6,7]4953; AVX512DQ-BW-NEXT:    movabsq $1161999626690365456, %rcx # imm = 0x10204081020408104954; AVX512DQ-BW-NEXT:    kmovq %rcx, %k24955; AVX512DQ-BW-NEXT:    vmovdqu8 %zmm15, %zmm16 {%k2}4956; AVX512DQ-BW-NEXT:    movabsq $2033499346708139548, %rcx # imm = 0x1C3870E1C3870E1C4957; AVX512DQ-BW-NEXT:    kmovq %rcx, %k24958; AVX512DQ-BW-NEXT:    vmovdqu8 %zmm16, %zmm14 {%k2}4959; AVX512DQ-BW-NEXT:    vpshufhw {{.*#+}} ymm13 = ymm13[0,1,2,3,6,7,7,6,8,9,10,11,14,15,15,14]4960; AVX512DQ-BW-NEXT:    vpshufd {{.*#+}} ymm13 = ymm13[2,2,3,3,6,6,7,7]4961; AVX512DQ-BW-NEXT:    movl $338170920, %ecx # imm = 0x142814284962; AVX512DQ-BW-NEXT:    kmovd %ecx, %k24963; AVX512DQ-BW-NEXT:    vpshufb {{.*#+}} ymm13 {%k2} = ymm7[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,30,u,28,u,u,u,u,31,u,29,u,u,u]4964; AVX512DQ-BW-NEXT:    vpermq {{.*#+}} ymm7 = ymm13[2,3,2,3]4965; AVX512DQ-BW-NEXT:    vpshufb {{.*#+}} ymm9 = ymm9[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,27,u,u,u,u,30,u,28,u,u,u,u,31,u,29,u]4966; AVX512DQ-BW-NEXT:    vpshufhw {{.*#+}} ymm6 = ymm6[0,1,2,3,7,6,6,7,8,9,10,11,15,14,14,15]4967; AVX512DQ-BW-NEXT:    vpshufd {{.*#+}} ymm6 = ymm6[0,2,3,3,4,6,7,7]4968; AVX512DQ-BW-NEXT:    vmovdqu8 %ymm6, %ymm9 {%k1}4969; AVX512DQ-BW-NEXT:    vpermq {{.*#+}} ymm6 = ymm9[2,3,2,3]4970; AVX512DQ-BW-NEXT:    movl $101455920, %ecx # imm = 0x60C18304971; AVX512DQ-BW-NEXT:    kmovd %ecx, %k14972; AVX512DQ-BW-NEXT:    vmovdqu8 %ymm7, %ymm6 {%k1}4973; AVX512DQ-BW-NEXT:    vpshufb {{.*#+}} xmm7 = xmm12[u,u,u],zero,xmm12[7],zero,xmm12[5,u,u,u],zero,xmm12[8],zero,xmm12[6,u,u]4974; AVX512DQ-BW-NEXT:    vpshufb {{.*#+}} xmm9 = xmm10[u,u,u,7],zero,xmm10[5],zero,xmm10[u,u,u,8],zero,xmm10[6],zero,xmm10[u,u]4975; AVX512DQ-BW-NEXT:    vpor %xmm7, %xmm9, %xmm74976; AVX512DQ-BW-NEXT:    vpunpcklbw {{.*#+}} xmm9 = xmm10[0],xmm12[0],xmm10[1],xmm12[1],xmm10[2],xmm12[2],xmm10[3],xmm12[3],xmm10[4],xmm12[4],xmm10[5],xmm12[5],xmm10[6],xmm12[6],xmm10[7],xmm12[7]4977; AVX512DQ-BW-NEXT:    vpshufb {{.*#+}} xmm9 = xmm9[4,5,0,1,u,u,u,6,7,2,3,u,u,u,8,9]4978; AVX512DQ-BW-NEXT:    vshufi64x2 {{.*#+}} zmm7 = zmm9[0,1,0,1],zmm7[0,1,0,1]4979; AVX512DQ-BW-NEXT:    vpshufb {{.*#+}} xmm9 = xmm4[u],zero,xmm4[7],zero,xmm4[5,u,u,u],zero,xmm4[8],zero,xmm4[6,u,u,u],zero4980; AVX512DQ-BW-NEXT:    vpshufb {{.*#+}} xmm10 = xmm3[u,7],zero,xmm3[5],zero,xmm3[u,u,u,8],zero,xmm3[6],zero,xmm3[u,u,u,9]4981; AVX512DQ-BW-NEXT:    vpor %xmm9, %xmm10, %xmm94982; AVX512DQ-BW-NEXT:    vpunpcklbw {{.*#+}} xmm3 = xmm3[0],xmm4[0],xmm3[1],xmm4[1],xmm3[2],xmm4[2],xmm3[3],xmm4[3],xmm3[4],xmm4[4],xmm3[5],xmm4[5],xmm3[6],xmm4[6],xmm3[7],xmm4[7]4983; AVX512DQ-BW-NEXT:    vpshufb {{.*#+}} xmm3 = xmm3[0,1,u,u,u,6,7,2,3,u,u,u,8,9,4,5]4984; AVX512DQ-BW-NEXT:    vshufi64x2 {{.*#+}} zmm3 = zmm3[0,1,0,1],zmm9[0,1,0,1]4985; AVX512DQ-BW-NEXT:    movabsq $871499720017774092, %rcx # imm = 0xC183060C183060C4986; AVX512DQ-BW-NEXT:    kmovq %rcx, %k14987; AVX512DQ-BW-NEXT:    vmovdqu8 %zmm7, %zmm3 {%k1}4988; AVX512DQ-BW-NEXT:    vpshufb {{.*#+}} xmm4 = zero,xmm8[4,u,u,u],zero,xmm8[7],zero,xmm8[5,u,u,u],zero,xmm8[8],zero,xmm8[6]4989; AVX512DQ-BW-NEXT:    vpshufb {{.*#+}} xmm7 = xmm11[4],zero,xmm11[u,u,u,7],zero,xmm11[5],zero,xmm11[u,u,u,8],zero,xmm11[6],zero4990; AVX512DQ-BW-NEXT:    vpor %xmm4, %xmm7, %xmm44991; AVX512DQ-BW-NEXT:    vpunpcklbw {{.*#+}} xmm7 = xmm11[0],xmm8[0],xmm11[1],xmm8[1],xmm11[2],xmm8[2],xmm11[3],xmm8[3],xmm11[4],xmm8[4],xmm11[5],xmm8[5],xmm11[6],xmm8[6],xmm11[7],xmm8[7]4992; AVX512DQ-BW-NEXT:    vpshufb {{.*#+}} xmm7 = xmm7[u,u,4,5,0,1,u,u,u,6,7,2,3,u,u,u]4993; AVX512DQ-BW-NEXT:    vshufi64x2 {{.*#+}} zmm4 = zmm7[0,1,0,1],zmm4[0,1,0,1]4994; AVX512DQ-BW-NEXT:    vpmovsxbw {{.*#+}} zmm7 = [1,1,0,0,1,1,0,0,4,5,1,1,1,1,0,0,18,18,18,20,18,18,18,20,19,19,19,19,18,18,18,20]4995; AVX512DQ-BW-NEXT:    vpermw %zmm5, %zmm7, %zmm74996; AVX512DQ-BW-NEXT:    movabsq $4647998506761461824, %rcx # imm = 0x40810204081020404997; AVX512DQ-BW-NEXT:    kmovq %rcx, %k14998; AVX512DQ-BW-NEXT:    vmovdqu8 %zmm7, %zmm4 {%k1}4999; AVX512DQ-BW-NEXT:    movabsq $8133997386832558192, %rcx # imm = 0x70E1C3870E1C38705000; AVX512DQ-BW-NEXT:    kmovq %rcx, %k15001; AVX512DQ-BW-NEXT:    vmovdqu8 %zmm4, %zmm3 {%k1}5002; AVX512DQ-BW-NEXT:    vbroadcasti128 {{.*#+}} ymm4 = [14,13,14,15,15,14,14,15,14,13,14,15,15,14,14,15]5003; AVX512DQ-BW-NEXT:    # ymm4 = mem[0,1,0,1]5004; AVX512DQ-BW-NEXT:    vpermw %ymm5, %ymm4, %ymm45005; AVX512DQ-BW-NEXT:    vpshufb {{.*#+}} ymm1 = ymm1[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,29],zero,ymm1[27],zero,zero,zero,zero,ymm1[30],zero,ymm1[28],zero,zero,zero,zero,ymm1[31],zero5006; AVX512DQ-BW-NEXT:    vpshufb {{.*#+}} ymm2 = ymm2[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,ymm2[27],zero,zero,zero,zero,ymm2[30],zero,ymm2[28],zero,zero,zero,zero,ymm2[31],zero,ymm2[29]5007; AVX512DQ-BW-NEXT:    vpor %ymm1, %ymm2, %ymm15008; AVX512DQ-BW-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[2,3,2,3]5009; AVX512DQ-BW-NEXT:    movl $-2130574328, %ecx # imm = 0x810204085010; AVX512DQ-BW-NEXT:    kmovd %ecx, %k15011; AVX512DQ-BW-NEXT:    vmovdqu8 %ymm4, %ymm1 {%k1}5012; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm3, (%rax)5013; AVX512DQ-BW-NEXT:    movl $-507279602, %ecx # imm = 0xE1C3870E5014; AVX512DQ-BW-NEXT:    kmovd %ecx, %k15015; AVX512DQ-BW-NEXT:    vmovdqu8 %ymm1, %ymm6 {%k1}5016; AVX512DQ-BW-NEXT:    vmovdqa %ymm6, 192(%rax)5017; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm14, 128(%rax)5018; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, 64(%rax)5019; AVX512DQ-BW-NEXT:    vzeroupper5020; AVX512DQ-BW-NEXT:    retq5021;5022; AVX512DQ-BW-FCP-LABEL: store_i8_stride7_vf32:5023; AVX512DQ-BW-FCP:       # %bb.0:5024; AVX512DQ-BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax5025; AVX512DQ-BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r105026; AVX512DQ-BW-FCP-NEXT:    vmovdqa (%rdi), %ymm35027; AVX512DQ-BW-FCP-NEXT:    vmovdqa (%rsi), %ymm45028; AVX512DQ-BW-FCP-NEXT:    vmovdqa (%rdx), %ymm15029; AVX512DQ-BW-FCP-NEXT:    vmovdqa (%rcx), %ymm25030; AVX512DQ-BW-FCP-NEXT:    vpshufb {{.*#+}} ymm0 = ymm1[0,1,0,1,14],zero,ymm1[14,15,0,1,14,15],zero,ymm1[13,14,15,16,17,16],zero,ymm1[30,31,30,31,16,17],zero,ymm1[31,28,29,30,31]5031; AVX512DQ-BW-FCP-NEXT:    vpshufb {{.*#+}} ymm5 = zero,zero,zero,zero,zero,ymm2[14],zero,zero,zero,zero,zero,zero,ymm2[15],zero,zero,zero,zero,zero,zero,ymm2[16],zero,zero,zero,zero,zero,zero,ymm2[17],zero,zero,zero,zero,zero5032; AVX512DQ-BW-FCP-NEXT:    vpor %ymm0, %ymm5, %ymm05033; AVX512DQ-BW-FCP-NEXT:    vmovdqa (%rdi), %xmm85034; AVX512DQ-BW-FCP-NEXT:    vmovdqa (%rsi), %xmm95035; AVX512DQ-BW-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm5 = xmm9[8],xmm8[8],xmm9[9],xmm8[9],xmm9[10],xmm8[10],xmm9[11],xmm8[11],xmm9[12],xmm8[12],xmm9[13],xmm8[13],xmm9[14],xmm8[14],xmm9[15],xmm8[15]5036; AVX512DQ-BW-FCP-NEXT:    vpshufb {{.*#+}} xmm5 = xmm5[2,u,u,u,9,8,5,4,u,u,u,11,10,7,6,u]5037; AVX512DQ-BW-FCP-NEXT:    vpermq {{.*#+}} ymm5 = ymm5[0,1,0,1]5038; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $1, %ymm0, %zmm5, %zmm55039; AVX512DQ-BW-FCP-NEXT:    vpshufb {{.*#+}} ymm0 = ymm3[0,1,14],zero,ymm3[12,13,0,1,14,15],zero,ymm3[3,12,13,2,3,16],zero,ymm3[30,31,28,29,16,17],zero,ymm3[31,18,19,28,29,18],zero5040; AVX512DQ-BW-FCP-NEXT:    vpshufb {{.*#+}} ymm6 = zero,zero,zero,ymm4[14],zero,zero,zero,zero,zero,zero,ymm4[15],zero,zero,zero,zero,zero,zero,ymm4[16],zero,zero,zero,zero,zero,zero,ymm4[17],zero,zero,zero,zero,zero,zero,ymm4[18]5041; AVX512DQ-BW-FCP-NEXT:    vpor %ymm0, %ymm6, %ymm05042; AVX512DQ-BW-FCP-NEXT:    vmovdqa (%rdx), %xmm125043; AVX512DQ-BW-FCP-NEXT:    vmovdqa (%rcx), %xmm145044; AVX512DQ-BW-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm6 = xmm14[8],xmm12[8],xmm14[9],xmm12[9],xmm14[10],xmm12[10],xmm14[11],xmm12[11],xmm14[12],xmm12[12],xmm14[13],xmm12[13],xmm14[14],xmm12[14],xmm14[15],xmm12[15]5045; AVX512DQ-BW-FCP-NEXT:    vpshufb {{.*#+}} xmm6 = xmm6[6,3,2,u,u,u,9,8,5,4,u,u,u,11,10,7]5046; AVX512DQ-BW-FCP-NEXT:    vpermq {{.*#+}} ymm6 = ymm6[0,1,0,1]5047; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $1, %ymm0, %zmm6, %zmm05048; AVX512DQ-BW-FCP-NEXT:    movabsq $435749858791416001, %rcx # imm = 0x60C1830183060C15049; AVX512DQ-BW-FCP-NEXT:    kmovq %rcx, %k15050; AVX512DQ-BW-FCP-NEXT:    vmovdqu8 %zmm5, %zmm0 {%k1}5051; AVX512DQ-BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm5 = mem[0,1,2,3,0,1,2,3]5052; AVX512DQ-BW-FCP-NEXT:    vpshufb {{.*#+}} ymm7 = ymm5[13],zero,zero,zero,zero,zero,zero,ymm5[14],zero,zero,zero,zero,zero,zero,ymm5[15],zero,zero,zero,zero,zero,zero,ymm5[16],zero,zero,zero,zero,zero,zero,ymm5[17],zero,zero,zero5053; AVX512DQ-BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm6 = mem[0,1,2,3,0,1,2,3]5054; AVX512DQ-BW-FCP-NEXT:    vpshufb {{.*#+}} ymm10 = zero,zero,zero,zero,zero,zero,ymm6[14],zero,zero,zero,zero,zero,zero,ymm6[15],zero,zero,zero,zero,zero,zero,ymm6[16],zero,zero,zero,zero,zero,zero,ymm6[17],zero,zero,zero,zero5055; AVX512DQ-BW-FCP-NEXT:    vpor %ymm7, %ymm10, %ymm75056; AVX512DQ-BW-FCP-NEXT:    vmovdqa (%r9), %xmm115057; AVX512DQ-BW-FCP-NEXT:    vmovdqa (%r8), %xmm135058; AVX512DQ-BW-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm10 = xmm13[8],xmm11[8],xmm13[9],xmm11[9],xmm13[10],xmm11[10],xmm13[11],xmm11[11],xmm13[12],xmm11[12],xmm13[13],xmm11[13],xmm13[14],xmm11[14],xmm13[15],xmm11[15]5059; AVX512DQ-BW-FCP-NEXT:    vpshufb {{.*#+}} xmm10 = xmm10[u,6,7,2,3,u,u,u,8,9,4,5,u,u,u,10]5060; AVX512DQ-BW-FCP-NEXT:    vpermq {{.*#+}} ymm10 = ymm10[0,1,0,1]5061; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $1, %ymm7, %zmm10, %zmm105062; AVX512DQ-BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm7 = mem[0,1,2,3,0,1,2,3]5063; AVX512DQ-BW-FCP-NEXT:    vpmovsxbw {{.*#+}} zmm15 = [4,5,4,5,5,6,5,6,4,5,4,5,5,6,5,6,6,1,6,0,7,1,0,7,14,9,14,8,15,9,8,15]5064; AVX512DQ-BW-FCP-NEXT:    vpermw %zmm7, %zmm15, %zmm155065; AVX512DQ-BW-FCP-NEXT:    movabsq $2323999253380730912, %rcx # imm = 0x20408102040810205066; AVX512DQ-BW-FCP-NEXT:    kmovq %rcx, %k15067; AVX512DQ-BW-FCP-NEXT:    vmovdqu8 %zmm15, %zmm10 {%k1}5068; AVX512DQ-BW-FCP-NEXT:    movabsq $4066998693416279096, %rcx # imm = 0x3870E1C3870E1C385069; AVX512DQ-BW-FCP-NEXT:    kmovq %rcx, %k15070; AVX512DQ-BW-FCP-NEXT:    vmovdqu8 %zmm10, %zmm0 {%k1}5071; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $1, %ymm1, %zmm3, %zmm105072; AVX512DQ-BW-FCP-NEXT:    vpshufb {{.*#+}} zmm10 = zmm10[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,18,19,20,21],zero,zmm10[19],zero,zmm10[21,20,21,22],zero,zmm10[20],zero,zmm10[22,23,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,56,57],zero,zmm10[55],zero,zmm10[53,54,55,58],zero,zmm10[56],zero,zmm10[60,61,58,59]5073; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $1, %ymm2, %zmm4, %zmm155074; AVX512DQ-BW-FCP-NEXT:    vpshufb {{.*#+}} zmm15 = zmm15[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,zero,zero,zmm15[21],zero,zmm15[19],zero,zero,zero,zero,zmm15[22],zero,zmm15[20],zero,zero,zmm15[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,zmm15[57],zero,zmm15[55],zero,zero,zero,zero,zmm15[58],zero,zmm15[56],zero,zero,zero,zero5075; AVX512DQ-BW-FCP-NEXT:    vporq %zmm10, %zmm15, %zmm105076; AVX512DQ-BW-FCP-NEXT:    vpermq {{.*#+}} zmm15 = zmm10[2,3,2,3,6,7,6,7]5077; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $1, %ymm4, %zmm1, %zmm105078; AVX512DQ-BW-FCP-NEXT:    vpshufb {{.*#+}} zmm10 = zmm10[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,18],zero,zmm10[18,19,20,21],zero,zmm10[19],zero,zmm10[25,26,27,22],zero,zmm10[20],zero,zmm10[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,57],zero,zmm10[55],zero,zero,zero,zero,zmm10[58],zero,zmm10[56],zero,zero,zero,zero,zmm10[59],zero5079; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $1, %ymm3, %zmm2, %zmm165080; AVX512DQ-BW-FCP-NEXT:    vpshufb {{.*#+}} zmm16 = zmm16[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zmm16[18],zero,zero,zero,zero,zmm16[21],zero,zmm16[19],zero,zero,zero,zero,zmm16[22],zero,zmm16[20,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zmm16[55],zero,zero,zero,zero,zmm16[58],zero,zmm16[56],zero,zero,zero,zero,zmm16[59],zero,zmm16[57]5081; AVX512DQ-BW-FCP-NEXT:    vporq %zmm10, %zmm16, %zmm105082; AVX512DQ-BW-FCP-NEXT:    vpermq {{.*#+}} zmm10 = zmm10[2,3,2,3,6,7,6,7]5083; AVX512DQ-BW-FCP-NEXT:    movabsq $-9005497107459067808, %rcx # imm = 0x83060C180C1830605084; AVX512DQ-BW-FCP-NEXT:    kmovq %rcx, %k15085; AVX512DQ-BW-FCP-NEXT:    vmovdqu8 %zmm15, %zmm10 {%k1}5086; AVX512DQ-BW-FCP-NEXT:    vpmovsxbw {{.*#+}} zmm15 = [10,9,9,10,10,9,9,10,9,10,14,15,10,9,9,10,27,29,28,27,28,29,29,28,27,29,28,27,28,29,29,28]5087; AVX512DQ-BW-FCP-NEXT:    vpermw %zmm7, %zmm15, %zmm155088; AVX512DQ-BW-FCP-NEXT:    vpshufb {{.*#+}} zmm16 = zmm6[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,20],zero,zmm6[18],zero,zmm6[20,21,20,21],zero,zmm6[19],zero,zmm6[19,20,21,22],zero,zmm6[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,56,57,56,57],zero,zmm6[55],zero,zmm6[55,56,57,58],zero,zmm6[56],zero,zmm6[62,63]5089; AVX512DQ-BW-FCP-NEXT:    vpshufb {{.*#+}} zmm17 = zmm5[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zmm5[20],zero,zmm5[18],zero,zero,zero,zero,zmm5[21],zero,zmm5[19],zero,zero,zero,zero,zmm5[22,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,zero,zero,zmm5[57],zero,zmm5[55],zero,zero,zero,zero,zmm5[58],zero,zmm5[56],zero,zero5090; AVX512DQ-BW-FCP-NEXT:    vporq %zmm16, %zmm17, %zmm165091; AVX512DQ-BW-FCP-NEXT:    vpermq {{.*#+}} zmm16 = zmm16[2,3,2,3,6,7,6,7]5092; AVX512DQ-BW-FCP-NEXT:    movabsq $1161999626690365456, %rcx # imm = 0x10204081020408105093; AVX512DQ-BW-FCP-NEXT:    kmovq %rcx, %k15094; AVX512DQ-BW-FCP-NEXT:    vmovdqu8 %zmm15, %zmm16 {%k1}5095; AVX512DQ-BW-FCP-NEXT:    movabsq $2033499346708139548, %rcx # imm = 0x1C3870E1C3870E1C5096; AVX512DQ-BW-FCP-NEXT:    kmovq %rcx, %k15097; AVX512DQ-BW-FCP-NEXT:    vmovdqu8 %zmm16, %zmm10 {%k1}5098; AVX512DQ-BW-FCP-NEXT:    vpshufb {{.*#+}} xmm15 = xmm14[u,u,u],zero,xmm14[7],zero,xmm14[5,u,u,u],zero,xmm14[8],zero,xmm14[6,u,u]5099; AVX512DQ-BW-FCP-NEXT:    vpshufb {{.*#+}} xmm16 = xmm12[u,u,u,7],zero,xmm12[5],zero,xmm12[u,u,u,8],zero,xmm12[6],zero,xmm12[u,u]5100; AVX512DQ-BW-FCP-NEXT:    vporq %xmm15, %xmm16, %xmm155101; AVX512DQ-BW-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm12 = xmm12[0],xmm14[0],xmm12[1],xmm14[1],xmm12[2],xmm14[2],xmm12[3],xmm14[3],xmm12[4],xmm14[4],xmm12[5],xmm14[5],xmm12[6],xmm14[6],xmm12[7],xmm14[7]5102; AVX512DQ-BW-FCP-NEXT:    vpshufb {{.*#+}} xmm12 = xmm12[4,5,0,1,u,u,u,6,7,2,3,u,u,u,8,9]5103; AVX512DQ-BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm12 = zmm12[0,1,0,1],zmm15[0,1,0,1]5104; AVX512DQ-BW-FCP-NEXT:    vpshufb {{.*#+}} xmm14 = xmm9[u],zero,xmm9[7],zero,xmm9[5,u,u,u],zero,xmm9[8],zero,xmm9[6,u,u,u],zero5105; AVX512DQ-BW-FCP-NEXT:    vpshufb {{.*#+}} xmm15 = xmm8[u,7],zero,xmm8[5],zero,xmm8[u,u,u,8],zero,xmm8[6],zero,xmm8[u,u,u,9]5106; AVX512DQ-BW-FCP-NEXT:    vpor %xmm14, %xmm15, %xmm145107; AVX512DQ-BW-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm8 = xmm8[0],xmm9[0],xmm8[1],xmm9[1],xmm8[2],xmm9[2],xmm8[3],xmm9[3],xmm8[4],xmm9[4],xmm8[5],xmm9[5],xmm8[6],xmm9[6],xmm8[7],xmm9[7]5108; AVX512DQ-BW-FCP-NEXT:    vpshufb {{.*#+}} xmm8 = xmm8[0,1,u,u,u,6,7,2,3,u,u,u,8,9,4,5]5109; AVX512DQ-BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm8 = zmm8[0,1,0,1],zmm14[0,1,0,1]5110; AVX512DQ-BW-FCP-NEXT:    movabsq $871499720017774092, %rcx # imm = 0xC183060C183060C5111; AVX512DQ-BW-FCP-NEXT:    kmovq %rcx, %k15112; AVX512DQ-BW-FCP-NEXT:    vmovdqu8 %zmm12, %zmm8 {%k1}5113; AVX512DQ-BW-FCP-NEXT:    vpshufb {{.*#+}} xmm9 = zero,xmm11[4,u,u,u],zero,xmm11[7],zero,xmm11[5,u,u,u],zero,xmm11[8],zero,xmm11[6]5114; AVX512DQ-BW-FCP-NEXT:    vpshufb {{.*#+}} xmm12 = xmm13[4],zero,xmm13[u,u,u,7],zero,xmm13[5],zero,xmm13[u,u,u,8],zero,xmm13[6],zero5115; AVX512DQ-BW-FCP-NEXT:    vpor %xmm9, %xmm12, %xmm95116; AVX512DQ-BW-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm11 = xmm13[0],xmm11[0],xmm13[1],xmm11[1],xmm13[2],xmm11[2],xmm13[3],xmm11[3],xmm13[4],xmm11[4],xmm13[5],xmm11[5],xmm13[6],xmm11[6],xmm13[7],xmm11[7]5117; AVX512DQ-BW-FCP-NEXT:    vpshufb {{.*#+}} xmm11 = xmm11[u,u,4,5,0,1,u,u,u,6,7,2,3,u,u,u]5118; AVX512DQ-BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm9 = zmm11[0,1,0,1],zmm9[0,1,0,1]5119; AVX512DQ-BW-FCP-NEXT:    vpmovsxbw {{.*#+}} zmm11 = [1,1,0,0,1,1,0,0,4,5,1,1,1,1,0,0,18,18,18,20,18,18,18,20,19,19,19,19,18,18,18,20]5120; AVX512DQ-BW-FCP-NEXT:    vpermw %zmm7, %zmm11, %zmm115121; AVX512DQ-BW-FCP-NEXT:    movabsq $4647998506761461824, %rcx # imm = 0x40810204081020405122; AVX512DQ-BW-FCP-NEXT:    kmovq %rcx, %k15123; AVX512DQ-BW-FCP-NEXT:    vmovdqu8 %zmm11, %zmm9 {%k1}5124; AVX512DQ-BW-FCP-NEXT:    movabsq $8133997386832558192, %rcx # imm = 0x70E1C3870E1C38705125; AVX512DQ-BW-FCP-NEXT:    kmovq %rcx, %k15126; AVX512DQ-BW-FCP-NEXT:    vmovdqu8 %zmm9, %zmm8 {%k1}5127; AVX512DQ-BW-FCP-NEXT:    vpshufb {{.*#+}} ymm3 = ymm3[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,28,29,30],zero,ymm3[28],zero,ymm3[30,31,30,31],zero,ymm3[29],zero,ymm3[31,28,29]5128; AVX512DQ-BW-FCP-NEXT:    vpshufb {{.*#+}} ymm4 = ymm4[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,zero,ymm4[30],zero,ymm4[28],zero,zero,zero,zero,ymm4[31],zero,ymm4[29],zero,zero,zero5129; AVX512DQ-BW-FCP-NEXT:    vpor %ymm3, %ymm4, %ymm35130; AVX512DQ-BW-FCP-NEXT:    vpermq {{.*#+}} ymm3 = ymm3[2,3,2,3]5131; AVX512DQ-BW-FCP-NEXT:    vpshufb {{.*#+}} ymm2 = ymm2[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,27],zero,zero,zero,zero,ymm2[30],zero,ymm2[28],zero,zero,zero,zero,ymm2[31],zero,ymm2[29],zero5132; AVX512DQ-BW-FCP-NEXT:    vpshufb {{.*#+}} ymm1 = ymm1[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,zero,zero,ymm1[30],zero,ymm1[28],zero,zero,zero,zero,ymm1[31],zero,ymm1[29],zero,zero5133; AVX512DQ-BW-FCP-NEXT:    vpor %ymm2, %ymm1, %ymm15134; AVX512DQ-BW-FCP-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[2,3,2,3]5135; AVX512DQ-BW-FCP-NEXT:    movl $101455920, %ecx # imm = 0x60C18305136; AVX512DQ-BW-FCP-NEXT:    kmovd %ecx, %k15137; AVX512DQ-BW-FCP-NEXT:    vmovdqu8 %ymm3, %ymm1 {%k1}5138; AVX512DQ-BW-FCP-NEXT:    vbroadcasti128 {{.*#+}} ymm2 = [14,13,14,15,15,14,14,15,14,13,14,15,15,14,14,15]5139; AVX512DQ-BW-FCP-NEXT:    # ymm2 = mem[0,1,0,1]5140; AVX512DQ-BW-FCP-NEXT:    vpermw %ymm7, %ymm2, %ymm25141; AVX512DQ-BW-FCP-NEXT:    vpshufb {{.*#+}} ymm3 = ymm5[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,29],zero,ymm5[27],zero,zero,zero,zero,ymm5[30],zero,ymm5[28],zero,zero,zero,zero,ymm5[31],zero5142; AVX512DQ-BW-FCP-NEXT:    vpshufb {{.*#+}} ymm4 = ymm6[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,ymm6[27],zero,zero,zero,zero,ymm6[30],zero,ymm6[28],zero,zero,zero,zero,ymm6[31],zero,ymm6[29]5143; AVX512DQ-BW-FCP-NEXT:    vpor %ymm3, %ymm4, %ymm35144; AVX512DQ-BW-FCP-NEXT:    vpermq {{.*#+}} ymm3 = ymm3[2,3,2,3]5145; AVX512DQ-BW-FCP-NEXT:    movl $-2130574328, %ecx # imm = 0x810204085146; AVX512DQ-BW-FCP-NEXT:    kmovd %ecx, %k15147; AVX512DQ-BW-FCP-NEXT:    vmovdqu8 %ymm2, %ymm3 {%k1}5148; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm8, (%rax)5149; AVX512DQ-BW-FCP-NEXT:    movl $-507279602, %ecx # imm = 0xE1C3870E5150; AVX512DQ-BW-FCP-NEXT:    kmovd %ecx, %k15151; AVX512DQ-BW-FCP-NEXT:    vmovdqu8 %ymm3, %ymm1 {%k1}5152; AVX512DQ-BW-FCP-NEXT:    vmovdqa %ymm1, 192(%rax)5153; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm10, 128(%rax)5154; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, 64(%rax)5155; AVX512DQ-BW-FCP-NEXT:    vzeroupper5156; AVX512DQ-BW-FCP-NEXT:    retq5157  %in.vec0 = load <32 x i8>, ptr %in.vecptr0, align 645158  %in.vec1 = load <32 x i8>, ptr %in.vecptr1, align 645159  %in.vec2 = load <32 x i8>, ptr %in.vecptr2, align 645160  %in.vec3 = load <32 x i8>, ptr %in.vecptr3, align 645161  %in.vec4 = load <32 x i8>, ptr %in.vecptr4, align 645162  %in.vec5 = load <32 x i8>, ptr %in.vecptr5, align 645163  %in.vec6 = load <32 x i8>, ptr %in.vecptr6, align 645164  %1 = shufflevector <32 x i8> %in.vec0, <32 x i8> %in.vec1, <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 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63>5165  %2 = shufflevector <32 x i8> %in.vec2, <32 x i8> %in.vec3, <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 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63>5166  %3 = shufflevector <32 x i8> %in.vec4, <32 x i8> %in.vec5, <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 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63>5167  %4 = shufflevector <64 x i8> %1, <64 x i8> %2, <128 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 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 88, i32 89, i32 90, i32 91, i32 92, i32 93, i32 94, i32 95, i32 96, i32 97, i32 98, i32 99, i32 100, i32 101, i32 102, i32 103, i32 104, i32 105, i32 106, i32 107, i32 108, i32 109, i32 110, i32 111, i32 112, i32 113, i32 114, i32 115, i32 116, i32 117, i32 118, i32 119, i32 120, i32 121, i32 122, i32 123, i32 124, i32 125, i32 126, i32 127>5168  %5 = shufflevector <32 x i8> %in.vec6, <32 x i8> 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 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>5169  %6 = shufflevector <64 x i8> %3, <64 x i8> %5, <96 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 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 88, i32 89, i32 90, i32 91, i32 92, i32 93, i32 94, i32 95>5170  %7 = shufflevector <96 x i8> %6, <96 x i8> poison, <128 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 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 88, i32 89, i32 90, i32 91, i32 92, i32 93, i32 94, i32 95, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>5171  %8 = shufflevector <128 x i8> %4, <128 x i8> %7, <224 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 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 88, i32 89, i32 90, i32 91, i32 92, i32 93, i32 94, i32 95, i32 96, i32 97, i32 98, i32 99, i32 100, i32 101, i32 102, i32 103, i32 104, i32 105, i32 106, i32 107, i32 108, i32 109, i32 110, i32 111, i32 112, i32 113, i32 114, i32 115, i32 116, i32 117, i32 118, i32 119, i32 120, i32 121, i32 122, i32 123, i32 124, i32 125, i32 126, i32 127, i32 128, i32 129, i32 130, i32 131, i32 132, i32 133, i32 134, i32 135, i32 136, i32 137, i32 138, i32 139, i32 140, i32 141, i32 142, i32 143, i32 144, i32 145, i32 146, i32 147, i32 148, i32 149, i32 150, i32 151, i32 152, i32 153, i32 154, i32 155, i32 156, i32 157, i32 158, i32 159, i32 160, i32 161, i32 162, i32 163, i32 164, i32 165, i32 166, i32 167, i32 168, i32 169, i32 170, i32 171, i32 172, i32 173, i32 174, i32 175, i32 176, i32 177, i32 178, i32 179, i32 180, i32 181, i32 182, i32 183, i32 184, i32 185, i32 186, i32 187, i32 188, i32 189, i32 190, i32 191, i32 192, i32 193, i32 194, i32 195, i32 196, i32 197, i32 198, i32 199, i32 200, i32 201, i32 202, i32 203, i32 204, i32 205, i32 206, i32 207, i32 208, i32 209, i32 210, i32 211, i32 212, i32 213, i32 214, i32 215, i32 216, i32 217, i32 218, i32 219, i32 220, i32 221, i32 222, i32 223>5172  %interleaved.vec = shufflevector <224 x i8> %8, <224 x i8> poison, <224 x i32> <i32 0, i32 32, i32 64, i32 96, i32 128, i32 160, i32 192, i32 1, i32 33, i32 65, i32 97, i32 129, i32 161, i32 193, i32 2, i32 34, i32 66, i32 98, i32 130, i32 162, i32 194, i32 3, i32 35, i32 67, i32 99, i32 131, i32 163, i32 195, i32 4, i32 36, i32 68, i32 100, i32 132, i32 164, i32 196, i32 5, i32 37, i32 69, i32 101, i32 133, i32 165, i32 197, i32 6, i32 38, i32 70, i32 102, i32 134, i32 166, i32 198, i32 7, i32 39, i32 71, i32 103, i32 135, i32 167, i32 199, i32 8, i32 40, i32 72, i32 104, i32 136, i32 168, i32 200, i32 9, i32 41, i32 73, i32 105, i32 137, i32 169, i32 201, i32 10, i32 42, i32 74, i32 106, i32 138, i32 170, i32 202, i32 11, i32 43, i32 75, i32 107, i32 139, i32 171, i32 203, i32 12, i32 44, i32 76, i32 108, i32 140, i32 172, i32 204, i32 13, i32 45, i32 77, i32 109, i32 141, i32 173, i32 205, i32 14, i32 46, i32 78, i32 110, i32 142, i32 174, i32 206, i32 15, i32 47, i32 79, i32 111, i32 143, i32 175, i32 207, i32 16, i32 48, i32 80, i32 112, i32 144, i32 176, i32 208, i32 17, i32 49, i32 81, i32 113, i32 145, i32 177, i32 209, i32 18, i32 50, i32 82, i32 114, i32 146, i32 178, i32 210, i32 19, i32 51, i32 83, i32 115, i32 147, i32 179, i32 211, i32 20, i32 52, i32 84, i32 116, i32 148, i32 180, i32 212, i32 21, i32 53, i32 85, i32 117, i32 149, i32 181, i32 213, i32 22, i32 54, i32 86, i32 118, i32 150, i32 182, i32 214, i32 23, i32 55, i32 87, i32 119, i32 151, i32 183, i32 215, i32 24, i32 56, i32 88, i32 120, i32 152, i32 184, i32 216, i32 25, i32 57, i32 89, i32 121, i32 153, i32 185, i32 217, i32 26, i32 58, i32 90, i32 122, i32 154, i32 186, i32 218, i32 27, i32 59, i32 91, i32 123, i32 155, i32 187, i32 219, i32 28, i32 60, i32 92, i32 124, i32 156, i32 188, i32 220, i32 29, i32 61, i32 93, i32 125, i32 157, i32 189, i32 221, i32 30, i32 62, i32 94, i32 126, i32 158, i32 190, i32 222, i32 31, i32 63, i32 95, i32 127, i32 159, i32 191, i32 223>5173  store <224 x i8> %interleaved.vec, ptr %out.vec, align 645174  ret void5175}5176 5177define void @store_i8_stride7_vf64(ptr %in.vecptr0, ptr %in.vecptr1, ptr %in.vecptr2, ptr %in.vecptr3, ptr %in.vecptr4, ptr %in.vecptr5, ptr %in.vecptr6, ptr %out.vec) nounwind {5178; SSE-LABEL: store_i8_stride7_vf64:5179; SSE:       # %bb.0:5180; SSE-NEXT:    subq $648, %rsp # imm = 0x2885181; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %rax5182; SSE-NEXT:    movdqa 48(%rdi), %xmm145183; SSE-NEXT:    movdqa 48(%rsi), %xmm115184; SSE-NEXT:    movdqa 48(%rdx), %xmm35185; SSE-NEXT:    movdqa 48(%rcx), %xmm105186; SSE-NEXT:    movdqa 48(%r8), %xmm95187; SSE-NEXT:    movdqa 48(%r9), %xmm85188; SSE-NEXT:    movdqa 48(%rax), %xmm135189; SSE-NEXT:    pshuflw {{.*#+}} xmm0 = xmm14[3,3,3,3,4,5,6,7]5190; SSE-NEXT:    pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,4,4,4]5191; SSE-NEXT:    movdqa {{.*#+}} xmm2 = [255,255,0,255,255,255,255,255,255,0,255,255,255,255,255,255]5192; SSE-NEXT:    pand %xmm2, %xmm05193; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm11[2,1,2,3]5194; SSE-NEXT:    movdqa %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5195; SSE-NEXT:    punpcklbw {{.*#+}} xmm1 = xmm1[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7]5196; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm1[3,1,0,3]5197; SSE-NEXT:    pandn %xmm1, %xmm25198; SSE-NEXT:    por %xmm0, %xmm25199; SSE-NEXT:    movdqa {{.*#+}} xmm12 = [255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255]5200; SSE-NEXT:    pand %xmm12, %xmm25201; SSE-NEXT:    pshuflw {{.*#+}} xmm0 = xmm3[3,3,3,3,4,5,6,7]5202; SSE-NEXT:    movdqa %xmm3, %xmm65203; SSE-NEXT:    pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,4,4,4]5204; SSE-NEXT:    movdqa {{.*#+}} xmm4 = [255,255,255,255,0,255,255,255,255,255,255,0,255,255,255,255]5205; SSE-NEXT:    pand %xmm4, %xmm05206; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm10[2,1,2,3]5207; SSE-NEXT:    movdqa %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5208; SSE-NEXT:    punpcklbw {{.*#+}} xmm3 = xmm3[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7]5209; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm3[0,3,0,3]5210; SSE-NEXT:    pshuflw {{.*#+}} xmm3 = xmm3[3,3,3,3,4,5,6,7]5211; SSE-NEXT:    pshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,4,4,4,4]5212; SSE-NEXT:    pandn %xmm3, %xmm45213; SSE-NEXT:    por %xmm0, %xmm45214; SSE-NEXT:    movdqa %xmm12, %xmm05215; SSE-NEXT:    pandn %xmm4, %xmm05216; SSE-NEXT:    por %xmm2, %xmm05217; SSE-NEXT:    movdqa {{.*#+}} xmm1 = [255,255,255,255,255,0,255,255,255,255,255,255,0,255,255,255]5218; SSE-NEXT:    pand %xmm1, %xmm05219; SSE-NEXT:    pshuflw {{.*#+}} xmm2 = xmm9[3,3,3,3,4,5,6,7]5220; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm2[0,1,2,2]5221; SSE-NEXT:    movdqa %xmm1, %xmm35222; SSE-NEXT:    movdqa %xmm1, %xmm55223; SSE-NEXT:    pandn %xmm2, %xmm35224; SSE-NEXT:    por %xmm0, %xmm35225; SSE-NEXT:    movdqa {{.*#+}} xmm7 = [255,255,255,255,255,255,0,255,255,255,255,255,255,0,255,255]5226; SSE-NEXT:    pand %xmm7, %xmm35227; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm8[2,1,2,3]5228; SSE-NEXT:    movdqa %xmm8, %xmm15229; SSE-NEXT:    movdqa %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5230; SSE-NEXT:    punpcklbw {{.*#+}} xmm0 = xmm0[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7]5231; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,3,2,0]5232; SSE-NEXT:    movdqa %xmm7, %xmm45233; SSE-NEXT:    pandn %xmm0, %xmm45234; SSE-NEXT:    por %xmm3, %xmm45235; SSE-NEXT:    movdqa {{.*#+}} xmm2 = [0,255,255,255,255,255,255,0,255,255,255,255,255,255,0,255]5236; SSE-NEXT:    pand %xmm2, %xmm45237; SSE-NEXT:    pshuflw {{.*#+}} xmm0 = xmm13[3,3,3,3,4,5,6,7]5238; SSE-NEXT:    pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,4,4,4]5239; SSE-NEXT:    movdqa %xmm2, %xmm35240; SSE-NEXT:    pandn %xmm0, %xmm35241; SSE-NEXT:    por %xmm4, %xmm35242; SSE-NEXT:    movdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5243; SSE-NEXT:    movdqa %xmm11, %xmm05244; SSE-NEXT:    punpckhbw {{.*#+}} xmm0 = xmm0[8],xmm11[8],xmm0[9],xmm11[9],xmm0[10],xmm11[10],xmm0[11],xmm11[11],xmm0[12],xmm11[12],xmm0[13],xmm11[13],xmm0[14],xmm11[14],xmm0[15],xmm11[15]5245; SSE-NEXT:    pshufhw {{.*#+}} xmm3 = xmm0[0,1,2,3,4,5,5,7]5246; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm3[0,2,2,3]5247; SSE-NEXT:    movdqa %xmm5, %xmm45248; SSE-NEXT:    pandn %xmm3, %xmm55249; SSE-NEXT:    pshufhw {{.*#+}} xmm3 = xmm14[0,1,2,3,6,6,6,6]5250; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm3[2,3,2,3]5251; SSE-NEXT:    pand %xmm4, %xmm35252; SSE-NEXT:    por %xmm3, %xmm55253; SSE-NEXT:    movdqa {{.*#+}} xmm4 = [255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255]5254; SSE-NEXT:    movdqa %xmm4, %xmm35255; SSE-NEXT:    pandn %xmm5, %xmm35256; SSE-NEXT:    pshufhw {{.*#+}} xmm5 = xmm6[0,1,2,3,6,6,6,6]5257; SSE-NEXT:    movdqa %xmm6, %xmm155258; SSE-NEXT:    pshufd {{.*#+}} xmm5 = xmm5[2,3,2,3]5259; SSE-NEXT:    movdqa %xmm7, %xmm65260; SSE-NEXT:    pandn %xmm5, %xmm65261; SSE-NEXT:    movdqa %xmm10, %xmm55262; SSE-NEXT:    punpckhbw {{.*#+}} xmm5 = xmm5[8],xmm10[8],xmm5[9],xmm10[9],xmm5[10],xmm10[10],xmm5[11],xmm10[11],xmm5[12],xmm10[12],xmm5[13],xmm10[13],xmm5[14],xmm10[14],xmm5[15],xmm10[15]5263; SSE-NEXT:    pshufd {{.*#+}} xmm8 = xmm5[2,1,2,3]5264; SSE-NEXT:    pshuflw {{.*#+}} xmm8 = xmm8[3,1,2,0,4,5,6,7]5265; SSE-NEXT:    pshufhw {{.*#+}} xmm8 = xmm8[0,1,2,3,5,5,5,5]5266; SSE-NEXT:    pand %xmm7, %xmm85267; SSE-NEXT:    por %xmm6, %xmm85268; SSE-NEXT:    pand %xmm4, %xmm85269; SSE-NEXT:    por %xmm3, %xmm85270; SSE-NEXT:    pshufhw {{.*#+}} xmm3 = xmm9[0,1,2,3,5,6,6,7]5271; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm3[2,1,3,2]5272; SSE-NEXT:    movdqa {{.*#+}} xmm4 = [255,0,255,255,255,255,255,255,0,255,255,255,255,255,255,0]5273; SSE-NEXT:    movdqa %xmm4, %xmm65274; SSE-NEXT:    pandn %xmm3, %xmm65275; SSE-NEXT:    pand %xmm4, %xmm85276; SSE-NEXT:    por %xmm8, %xmm65277; SSE-NEXT:    movdqa %xmm1, %xmm35278; SSE-NEXT:    punpckhbw {{.*#+}} xmm3 = xmm3[8],xmm1[8],xmm3[9],xmm1[9],xmm3[10],xmm1[10],xmm3[11],xmm1[11],xmm3[12],xmm1[12],xmm3[13],xmm1[13],xmm3[14],xmm1[14],xmm3[15],xmm1[15]5279; SSE-NEXT:    pshufd {{.*#+}} xmm8 = xmm3[1,1,2,3]5280; SSE-NEXT:    movdqa {{.*#+}} xmm4 = [255,255,0,255,255,255,255,255,255,0,255,255,255,255,255,255]5281; SSE-NEXT:    movdqa %xmm4, %xmm115282; SSE-NEXT:    pandn %xmm8, %xmm115283; SSE-NEXT:    pand %xmm4, %xmm65284; SSE-NEXT:    por %xmm6, %xmm115285; SSE-NEXT:    movdqa %xmm13, %xmm105286; SSE-NEXT:    pshufhw {{.*#+}} xmm6 = xmm13[0,1,2,3,4,5,6,6]5287; SSE-NEXT:    pshufd {{.*#+}} xmm6 = xmm6[2,1,3,3]5288; SSE-NEXT:    movdqa {{.*#+}} xmm1 = [255,255,255,0,255,255,255,255,255,255,0,255,255,255,255,255]5289; SSE-NEXT:    movdqa %xmm1, %xmm85290; SSE-NEXT:    pandn %xmm6, %xmm85291; SSE-NEXT:    pand %xmm1, %xmm115292; SSE-NEXT:    por %xmm11, %xmm85293; SSE-NEXT:    movdqa %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5294; SSE-NEXT:    pshufd {{.*#+}} xmm6 = xmm5[0,1,1,3]5295; SSE-NEXT:    movdqa %xmm4, %xmm85296; SSE-NEXT:    pandn %xmm6, %xmm85297; SSE-NEXT:    pshufhw {{.*#+}} xmm6 = xmm15[0,1,2,3,4,5,5,7]5298; SSE-NEXT:    movdqa %xmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5299; SSE-NEXT:    pshufd {{.*#+}} xmm6 = xmm6[2,1,3,2]5300; SSE-NEXT:    pand %xmm4, %xmm65301; SSE-NEXT:    por %xmm8, %xmm65302; SSE-NEXT:    movdqa {{.*#+}} xmm1 = [255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0]5303; SSE-NEXT:    movdqa %xmm1, %xmm85304; SSE-NEXT:    pandn %xmm6, %xmm85305; SSE-NEXT:    movdqa %xmm14, %xmm135306; SSE-NEXT:    movdqa %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5307; SSE-NEXT:    pshufhw {{.*#+}} xmm6 = xmm14[0,1,2,3,5,5,5,5]5308; SSE-NEXT:    pshufd {{.*#+}} xmm6 = xmm6[2,3,2,3]5309; SSE-NEXT:    movdqa %xmm7, %xmm115310; SSE-NEXT:    pandn %xmm6, %xmm115311; SSE-NEXT:    pshuflw {{.*#+}} xmm6 = xmm0[1,2,2,3,4,5,6,7]5312; SSE-NEXT:    pshufd {{.*#+}} xmm6 = xmm6[0,0,2,1]5313; SSE-NEXT:    pand %xmm7, %xmm65314; SSE-NEXT:    por %xmm11, %xmm65315; SSE-NEXT:    pand %xmm1, %xmm65316; SSE-NEXT:    por %xmm8, %xmm65317; SSE-NEXT:    pshufhw {{.*#+}} xmm8 = xmm9[0,1,2,3,4,4,6,5]5318; SSE-NEXT:    movdqa %xmm9, %xmm15319; SSE-NEXT:    movdqa %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5320; SSE-NEXT:    pshufd {{.*#+}} xmm8 = xmm8[2,1,3,3]5321; SSE-NEXT:    movdqa {{.*#+}} xmm4 = [255,255,255,0,255,255,255,255,255,255,0,255,255,255,255,255]5322; SSE-NEXT:    movdqa %xmm4, %xmm115323; SSE-NEXT:    pandn %xmm8, %xmm115324; SSE-NEXT:    pand %xmm4, %xmm65325; SSE-NEXT:    por %xmm6, %xmm115326; SSE-NEXT:    pshuflw {{.*#+}} xmm6 = xmm3[1,2,2,3,4,5,6,7]5327; SSE-NEXT:    pshufd {{.*#+}} xmm6 = xmm6[0,0,0,0]5328; SSE-NEXT:    movdqa {{.*#+}} xmm9 = [255,255,255,255,0,255,255,255,255,255,255,0,255,255,255,255]5329; SSE-NEXT:    movdqa %xmm9, %xmm85330; SSE-NEXT:    pandn %xmm6, %xmm85331; SSE-NEXT:    pand %xmm9, %xmm115332; SSE-NEXT:    movdqa %xmm9, %xmm145333; SSE-NEXT:    por %xmm11, %xmm85334; SSE-NEXT:    pshufhw {{.*#+}} xmm6 = xmm10[0,1,2,3,4,5,5,7]5335; SSE-NEXT:    movdqa %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5336; SSE-NEXT:    pshufd {{.*#+}} xmm6 = xmm6[0,2,2,3]5337; SSE-NEXT:    movdqa {{.*#+}} xmm11 = [255,255,255,255,255,0,255,255,255,255,255,255,0,255,255,255]5338; SSE-NEXT:    movdqa %xmm11, %xmm95339; SSE-NEXT:    pandn %xmm6, %xmm95340; SSE-NEXT:    pand %xmm11, %xmm85341; SSE-NEXT:    por %xmm8, %xmm95342; SSE-NEXT:    movdqa %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5343; SSE-NEXT:    pshufhw {{.*#+}} xmm5 = xmm5[0,1,2,3,6,5,7,7]5344; SSE-NEXT:    pshufd {{.*#+}} xmm5 = xmm5[0,2,2,3]5345; SSE-NEXT:    movdqa %xmm11, %xmm65346; SSE-NEXT:    pandn %xmm5, %xmm65347; SSE-NEXT:    pshufhw {{.*#+}} xmm5 = xmm15[0,1,2,3,7,7,7,7]5348; SSE-NEXT:    pshufd {{.*#+}} xmm5 = xmm5[2,3,2,3]5349; SSE-NEXT:    pand %xmm11, %xmm55350; SSE-NEXT:    por %xmm5, %xmm65351; SSE-NEXT:    movdqa {{.*#+}} xmm8 = [255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255]5352; SSE-NEXT:    movdqa %xmm8, %xmm55353; SSE-NEXT:    pandn %xmm6, %xmm55354; SSE-NEXT:    pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,6,6,7]5355; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[2,1,3,3]5356; SSE-NEXT:    movdqa %xmm4, %xmm65357; SSE-NEXT:    pandn %xmm0, %xmm65358; SSE-NEXT:    pshufhw {{.*#+}} xmm0 = xmm13[0,1,2,3,7,7,7,7]5359; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[2,3,2,3]5360; SSE-NEXT:    pand %xmm4, %xmm05361; SSE-NEXT:    por %xmm0, %xmm65362; SSE-NEXT:    pand %xmm8, %xmm65363; SSE-NEXT:    por %xmm5, %xmm65364; SSE-NEXT:    pshufhw {{.*#+}} xmm0 = xmm1[0,1,2,3,7,7,7,7]5365; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[2,3,2,3]5366; SSE-NEXT:    movdqa %xmm7, %xmm55367; SSE-NEXT:    pandn %xmm0, %xmm55368; SSE-NEXT:    pand %xmm7, %xmm65369; SSE-NEXT:    por %xmm6, %xmm55370; SSE-NEXT:    pshufhw {{.*#+}} xmm0 = xmm3[0,1,2,3,5,6,6,7]5371; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[2,2,2,3]5372; SSE-NEXT:    movdqa %xmm2, %xmm35373; SSE-NEXT:    pandn %xmm0, %xmm35374; SSE-NEXT:    pand %xmm2, %xmm55375; SSE-NEXT:    por %xmm5, %xmm35376; SSE-NEXT:    pshufhw {{.*#+}} xmm0 = xmm10[0,1,2,3,6,7,7,7]5377; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[2,1,3,2]5378; SSE-NEXT:    movdqa {{.*#+}} xmm5 = [255,0,255,255,255,255,255,255,0,255,255,255,255,255,255,0]5379; SSE-NEXT:    movdqa %xmm5, %xmm15380; SSE-NEXT:    pandn %xmm0, %xmm15381; SSE-NEXT:    pand %xmm5, %xmm35382; SSE-NEXT:    por %xmm3, %xmm15383; SSE-NEXT:    movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5384; SSE-NEXT:    movdqa (%rsi), %xmm05385; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5386; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[2,1,2,3]5387; SSE-NEXT:    punpcklbw {{.*#+}} xmm0 = xmm0[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7]5388; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[3,1,0,3]5389; SSE-NEXT:    movdqa {{.*#+}} xmm4 = [255,255,0,255,255,255,255,255,255,0,255,255,255,255,255,255]5390; SSE-NEXT:    movdqa %xmm4, %xmm35391; SSE-NEXT:    pandn %xmm0, %xmm35392; SSE-NEXT:    movdqa (%rdi), %xmm05393; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5394; SSE-NEXT:    pshuflw {{.*#+}} xmm0 = xmm0[3,3,3,3,4,5,6,7]5395; SSE-NEXT:    pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,4,4,4]5396; SSE-NEXT:    pand %xmm4, %xmm05397; SSE-NEXT:    movdqa %xmm4, %xmm115398; SSE-NEXT:    por %xmm0, %xmm35399; SSE-NEXT:    movdqa (%rcx), %xmm05400; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5401; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[2,1,2,3]5402; SSE-NEXT:    punpcklbw {{.*#+}} xmm0 = xmm0[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7]5403; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,3,0,3]5404; SSE-NEXT:    pshuflw {{.*#+}} xmm0 = xmm0[3,3,3,3,4,5,6,7]5405; SSE-NEXT:    pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,4,4,4]5406; SSE-NEXT:    movdqa %xmm14, %xmm55407; SSE-NEXT:    pandn %xmm0, %xmm55408; SSE-NEXT:    movdqa (%rdx), %xmm05409; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5410; SSE-NEXT:    pshuflw {{.*#+}} xmm0 = xmm0[3,3,3,3,4,5,6,7]5411; SSE-NEXT:    pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,4,4,4]5412; SSE-NEXT:    pand %xmm14, %xmm05413; SSE-NEXT:    movdqa %xmm14, %xmm95414; SSE-NEXT:    por %xmm0, %xmm55415; SSE-NEXT:    movdqa %xmm12, %xmm05416; SSE-NEXT:    pandn %xmm5, %xmm05417; SSE-NEXT:    pand %xmm12, %xmm35418; SSE-NEXT:    por %xmm3, %xmm05419; SSE-NEXT:    movdqa (%r9), %xmm155420; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm15[2,1,2,3]5421; SSE-NEXT:    movdqa %xmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5422; SSE-NEXT:    punpcklbw {{.*#+}} xmm3 = xmm3[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7]5423; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm3[0,3,2,0]5424; SSE-NEXT:    movdqa %xmm7, %xmm65425; SSE-NEXT:    pandn %xmm3, %xmm65426; SSE-NEXT:    movdqa (%r8), %xmm85427; SSE-NEXT:    pshuflw {{.*#+}} xmm3 = xmm8[3,3,3,3,4,5,6,7]5428; SSE-NEXT:    movdqa %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5429; SSE-NEXT:    pshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,4,4,4,4]5430; SSE-NEXT:    pand %xmm7, %xmm35431; SSE-NEXT:    por %xmm3, %xmm65432; SSE-NEXT:    movdqa (%rax), %xmm45433; SSE-NEXT:    pshuflw {{.*#+}} xmm3 = xmm4[3,3,3,3,4,5,6,7]5434; SSE-NEXT:    movdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5435; SSE-NEXT:    pshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,4,4,4,4]5436; SSE-NEXT:    movdqa %xmm2, %xmm145437; SSE-NEXT:    pandn %xmm3, %xmm145438; SSE-NEXT:    pand %xmm2, %xmm65439; SSE-NEXT:    por %xmm6, %xmm145440; SSE-NEXT:    movdqa {{.*#+}} xmm10 = [0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255]5441; SSE-NEXT:    movdqa %xmm10, %xmm15442; SSE-NEXT:    pandn %xmm14, %xmm15443; SSE-NEXT:    pand %xmm10, %xmm05444; SSE-NEXT:    por %xmm0, %xmm15445; SSE-NEXT:    movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5446; SSE-NEXT:    movdqa 16(%rsi), %xmm05447; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5448; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[2,1,2,3]5449; SSE-NEXT:    punpcklbw {{.*#+}} xmm0 = xmm0[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7]5450; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[3,1,0,3]5451; SSE-NEXT:    movdqa %xmm11, %xmm35452; SSE-NEXT:    pandn %xmm0, %xmm35453; SSE-NEXT:    movdqa 16(%rdi), %xmm05454; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5455; SSE-NEXT:    pshuflw {{.*#+}} xmm0 = xmm0[3,3,3,3,4,5,6,7]5456; SSE-NEXT:    pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,4,4,4]5457; SSE-NEXT:    pand %xmm11, %xmm05458; SSE-NEXT:    por %xmm0, %xmm35459; SSE-NEXT:    movdqa 16(%rcx), %xmm05460; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5461; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[2,1,2,3]5462; SSE-NEXT:    punpcklbw {{.*#+}} xmm0 = xmm0[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7]5463; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,3,0,3]5464; SSE-NEXT:    pshuflw {{.*#+}} xmm0 = xmm0[3,3,3,3,4,5,6,7]5465; SSE-NEXT:    pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,4,4,4]5466; SSE-NEXT:    movdqa %xmm9, %xmm65467; SSE-NEXT:    pandn %xmm0, %xmm65468; SSE-NEXT:    movdqa 16(%rdx), %xmm05469; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5470; SSE-NEXT:    pshuflw {{.*#+}} xmm0 = xmm0[3,3,3,3,4,5,6,7]5471; SSE-NEXT:    pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,4,4,4]5472; SSE-NEXT:    pand %xmm9, %xmm05473; SSE-NEXT:    por %xmm0, %xmm65474; SSE-NEXT:    movdqa %xmm12, %xmm05475; SSE-NEXT:    pandn %xmm6, %xmm05476; SSE-NEXT:    pand %xmm12, %xmm35477; SSE-NEXT:    por %xmm3, %xmm05478; SSE-NEXT:    movdqa 16(%r9), %xmm15479; SSE-NEXT:    movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5480; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm1[2,1,2,3]5481; SSE-NEXT:    punpcklbw {{.*#+}} xmm3 = xmm3[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7]5482; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm3[0,3,2,0]5483; SSE-NEXT:    movdqa %xmm7, %xmm65484; SSE-NEXT:    pandn %xmm3, %xmm65485; SSE-NEXT:    movdqa 16(%r8), %xmm15486; SSE-NEXT:    movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5487; SSE-NEXT:    pshuflw {{.*#+}} xmm3 = xmm1[3,3,3,3,4,5,6,7]5488; SSE-NEXT:    pshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,4,4,4,4]5489; SSE-NEXT:    pand %xmm7, %xmm35490; SSE-NEXT:    por %xmm3, %xmm65491; SSE-NEXT:    movdqa 16(%rax), %xmm15492; SSE-NEXT:    movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5493; SSE-NEXT:    pshuflw {{.*#+}} xmm3 = xmm1[3,3,3,3,4,5,6,7]5494; SSE-NEXT:    pshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,4,4,4,4]5495; SSE-NEXT:    movdqa %xmm2, %xmm145496; SSE-NEXT:    pandn %xmm3, %xmm145497; SSE-NEXT:    pand %xmm2, %xmm65498; SSE-NEXT:    por %xmm6, %xmm145499; SSE-NEXT:    movdqa %xmm10, %xmm15500; SSE-NEXT:    pandn %xmm14, %xmm15501; SSE-NEXT:    pand %xmm10, %xmm05502; SSE-NEXT:    por %xmm0, %xmm15503; SSE-NEXT:    movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5504; SSE-NEXT:    movdqa 32(%rsi), %xmm05505; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5506; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[2,1,2,3]5507; SSE-NEXT:    punpcklbw {{.*#+}} xmm0 = xmm0[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7]5508; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm0[3,1,0,3]5509; SSE-NEXT:    movdqa %xmm11, %xmm05510; SSE-NEXT:    pandn %xmm3, %xmm05511; SSE-NEXT:    movdqa 32(%rdi), %xmm15512; SSE-NEXT:    movdqa %xmm1, (%rsp) # 16-byte Spill5513; SSE-NEXT:    pshuflw {{.*#+}} xmm3 = xmm1[3,3,3,3,4,5,6,7]5514; SSE-NEXT:    pshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,4,4,4,4]5515; SSE-NEXT:    pand %xmm11, %xmm35516; SSE-NEXT:    por %xmm3, %xmm05517; SSE-NEXT:    movdqa 32(%rcx), %xmm15518; SSE-NEXT:    movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5519; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm1[2,1,2,3]5520; SSE-NEXT:    punpcklbw {{.*#+}} xmm3 = xmm3[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7]5521; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm3[0,3,0,3]5522; SSE-NEXT:    pshuflw {{.*#+}} xmm3 = xmm3[3,3,3,3,4,5,6,7]5523; SSE-NEXT:    pshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,4,4,4,4]5524; SSE-NEXT:    movdqa %xmm9, %xmm55525; SSE-NEXT:    movdqa %xmm9, %xmm65526; SSE-NEXT:    pandn %xmm3, %xmm65527; SSE-NEXT:    movdqa 32(%rdx), %xmm95528; SSE-NEXT:    pshuflw {{.*#+}} xmm3 = xmm9[3,3,3,3,4,5,6,7]5529; SSE-NEXT:    movdqa %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5530; SSE-NEXT:    pshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,4,4,4,4]5531; SSE-NEXT:    pand %xmm5, %xmm35532; SSE-NEXT:    por %xmm3, %xmm65533; SSE-NEXT:    pand %xmm12, %xmm05534; SSE-NEXT:    pandn %xmm6, %xmm125535; SSE-NEXT:    por %xmm0, %xmm125536; SSE-NEXT:    movdqa 32(%r9), %xmm05537; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5538; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[2,1,2,3]5539; SSE-NEXT:    punpcklbw {{.*#+}} xmm0 = xmm0[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7]5540; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,3,2,0]5541; SSE-NEXT:    movdqa %xmm7, %xmm35542; SSE-NEXT:    pandn %xmm0, %xmm35543; SSE-NEXT:    movdqa 32(%r8), %xmm115544; SSE-NEXT:    pshuflw {{.*#+}} xmm0 = xmm11[3,3,3,3,4,5,6,7]5545; SSE-NEXT:    movdqa %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5546; SSE-NEXT:    pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,4,4,4]5547; SSE-NEXT:    pand %xmm7, %xmm05548; SSE-NEXT:    por %xmm0, %xmm35549; SSE-NEXT:    pand %xmm2, %xmm35550; SSE-NEXT:    movdqa 32(%rax), %xmm135551; SSE-NEXT:    pshuflw {{.*#+}} xmm0 = xmm13[3,3,3,3,4,5,6,7]5552; SSE-NEXT:    movdqa %xmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5553; SSE-NEXT:    pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,4,4,4]5554; SSE-NEXT:    pandn %xmm0, %xmm25555; SSE-NEXT:    por %xmm3, %xmm25556; SSE-NEXT:    pand %xmm10, %xmm125557; SSE-NEXT:    pandn %xmm2, %xmm105558; SSE-NEXT:    por %xmm12, %xmm105559; SSE-NEXT:    movdqa %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5560; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5561; SSE-NEXT:    punpckhbw {{.*#+}} xmm0 = xmm0[8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15]5562; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5563; SSE-NEXT:    pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,5,5,7]5564; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,2,2,3]5565; SSE-NEXT:    movdqa {{.*#+}} xmm12 = [255,255,255,255,255,0,255,255,255,255,255,255,0,255,255,255]5566; SSE-NEXT:    movdqa %xmm12, %xmm15567; SSE-NEXT:    pandn %xmm0, %xmm15568; SSE-NEXT:    pshufhw $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload5569; SSE-NEXT:    # xmm0 = mem[0,1,2,3,6,6,6,6]5570; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[2,3,2,3]5571; SSE-NEXT:    pand %xmm12, %xmm05572; SSE-NEXT:    por %xmm0, %xmm15573; SSE-NEXT:    movdqa {{.*#+}} xmm14 = [255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255]5574; SSE-NEXT:    movdqa %xmm14, %xmm05575; SSE-NEXT:    pandn %xmm1, %xmm05576; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload5577; SSE-NEXT:    pshufhw {{.*#+}} xmm1 = xmm6[0,1,2,3,6,6,6,6]5578; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm1[2,3,2,3]5579; SSE-NEXT:    movdqa %xmm7, %xmm25580; SSE-NEXT:    pandn %xmm1, %xmm25581; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload5582; SSE-NEXT:    movdqa %xmm5, %xmm15583; SSE-NEXT:    punpckhbw {{.*#+}} xmm1 = xmm1[8],xmm5[8],xmm1[9],xmm5[9],xmm1[10],xmm5[10],xmm1[11],xmm5[11],xmm1[12],xmm5[12],xmm1[13],xmm5[13],xmm1[14],xmm5[14],xmm1[15],xmm5[15]5584; SSE-NEXT:    movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5585; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm1[2,1,2,3]5586; SSE-NEXT:    pshuflw {{.*#+}} xmm1 = xmm1[3,1,2,0,4,5,6,7]5587; SSE-NEXT:    pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,5,5,5,5]5588; SSE-NEXT:    pand %xmm7, %xmm15589; SSE-NEXT:    por %xmm2, %xmm15590; SSE-NEXT:    pand %xmm14, %xmm15591; SSE-NEXT:    por %xmm0, %xmm15592; SSE-NEXT:    punpckhbw {{.*#+}} xmm15 = xmm15[8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15]5593; SSE-NEXT:    movdqa %xmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5594; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm15[1,1,2,3]5595; SSE-NEXT:    movdqa {{.*#+}} xmm0 = [255,255,0,255,255,255,255,255,255,0,255,255,255,255,255,255]5596; SSE-NEXT:    movdqa %xmm0, %xmm35597; SSE-NEXT:    pandn %xmm2, %xmm35598; SSE-NEXT:    pshufhw {{.*#+}} xmm2 = xmm8[0,1,2,3,5,6,6,7]5599; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm2[2,1,3,2]5600; SSE-NEXT:    pand %xmm0, %xmm25601; SSE-NEXT:    por %xmm3, %xmm25602; SSE-NEXT:    pshufhw {{.*#+}} xmm3 = xmm4[0,1,2,3,4,5,6,6]5603; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm3[2,1,3,3]5604; SSE-NEXT:    movdqa {{.*#+}} xmm4 = [255,255,255,0,255,255,255,255,255,255,0,255,255,255,255,255]5605; SSE-NEXT:    movdqa %xmm4, %xmm155606; SSE-NEXT:    pandn %xmm3, %xmm155607; SSE-NEXT:    pand %xmm4, %xmm25608; SSE-NEXT:    por %xmm2, %xmm155609; SSE-NEXT:    movdqa {{.*#+}} xmm10 = [255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0]5610; SSE-NEXT:    movdqa %xmm10, %xmm05611; SSE-NEXT:    pandn %xmm15, %xmm05612; SSE-NEXT:    pand %xmm10, %xmm15613; SSE-NEXT:    por %xmm1, %xmm05614; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5615; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5616; SSE-NEXT:    punpckhbw {{.*#+}} xmm0 = xmm0[8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15]5617; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5618; SSE-NEXT:    pshufhw {{.*#+}} xmm1 = xmm0[0,1,2,3,4,5,5,7]5619; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm1[0,2,2,3]5620; SSE-NEXT:    movdqa %xmm12, %xmm85621; SSE-NEXT:    movdqa %xmm12, %xmm25622; SSE-NEXT:    pandn %xmm1, %xmm25623; SSE-NEXT:    pshufhw $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload5624; SSE-NEXT:    # xmm1 = mem[0,1,2,3,6,6,6,6]5625; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm1[2,3,2,3]5626; SSE-NEXT:    pand %xmm12, %xmm15627; SSE-NEXT:    por %xmm1, %xmm25628; SSE-NEXT:    movdqa %xmm14, %xmm125629; SSE-NEXT:    movdqa %xmm14, %xmm35630; SSE-NEXT:    pandn %xmm2, %xmm35631; SSE-NEXT:    pshufhw $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload5632; SSE-NEXT:    # xmm1 = mem[0,1,2,3,6,6,6,6]5633; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm1[2,3,2,3]5634; SSE-NEXT:    movdqa %xmm7, %xmm25635; SSE-NEXT:    pandn %xmm1, %xmm25636; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5637; SSE-NEXT:    punpckhbw {{.*#+}} xmm0 = xmm0[8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15]5638; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5639; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm0[2,1,2,3]5640; SSE-NEXT:    pshuflw {{.*#+}} xmm1 = xmm1[3,1,2,0,4,5,6,7]5641; SSE-NEXT:    pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,5,5,5,5]5642; SSE-NEXT:    pand %xmm7, %xmm15643; SSE-NEXT:    por %xmm2, %xmm15644; SSE-NEXT:    pand %xmm14, %xmm15645; SSE-NEXT:    por %xmm3, %xmm15646; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5647; SSE-NEXT:    punpckhbw {{.*#+}} xmm0 = xmm0[8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15]5648; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5649; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm0[1,1,2,3]5650; SSE-NEXT:    movdqa {{.*#+}} xmm14 = [255,255,0,255,255,255,255,255,255,0,255,255,255,255,255,255]5651; SSE-NEXT:    movdqa %xmm14, %xmm35652; SSE-NEXT:    pandn %xmm2, %xmm35653; SSE-NEXT:    pshufhw $233, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload5654; SSE-NEXT:    # xmm2 = mem[0,1,2,3,5,6,6,7]5655; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm2[2,1,3,2]5656; SSE-NEXT:    pand %xmm14, %xmm25657; SSE-NEXT:    por %xmm3, %xmm25658; SSE-NEXT:    pshufhw $164, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Folded Reload5659; SSE-NEXT:    # xmm3 = mem[0,1,2,3,4,5,6,6]5660; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm3[2,1,3,3]5661; SSE-NEXT:    movdqa %xmm4, %xmm155662; SSE-NEXT:    pandn %xmm3, %xmm155663; SSE-NEXT:    pand %xmm4, %xmm25664; SSE-NEXT:    por %xmm2, %xmm155665; SSE-NEXT:    movdqa %xmm10, %xmm05666; SSE-NEXT:    pandn %xmm15, %xmm05667; SSE-NEXT:    pand %xmm10, %xmm15668; SSE-NEXT:    por %xmm1, %xmm05669; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5670; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5671; SSE-NEXT:    punpckhbw {{.*#+}} xmm0 = xmm0[8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15]5672; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5673; SSE-NEXT:    pshufhw {{.*#+}} xmm1 = xmm0[0,1,2,3,4,5,5,7]5674; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm1[0,2,2,3]5675; SSE-NEXT:    movdqa %xmm8, %xmm25676; SSE-NEXT:    pandn %xmm1, %xmm25677; SSE-NEXT:    pshufhw $170, (%rsp), %xmm1 # 16-byte Folded Reload5678; SSE-NEXT:    # xmm1 = mem[0,1,2,3,6,6,6,6]5679; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm1[2,3,2,3]5680; SSE-NEXT:    pand %xmm8, %xmm15681; SSE-NEXT:    por %xmm1, %xmm25682; SSE-NEXT:    movdqa %xmm12, %xmm35683; SSE-NEXT:    pandn %xmm2, %xmm35684; SSE-NEXT:    pshufhw {{.*#+}} xmm1 = xmm9[0,1,2,3,6,6,6,6]5685; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm1[2,3,2,3]5686; SSE-NEXT:    movdqa %xmm7, %xmm25687; SSE-NEXT:    pandn %xmm1, %xmm25688; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5689; SSE-NEXT:    punpckhbw {{.*#+}} xmm0 = xmm0[8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15]5690; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5691; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm0[2,1,2,3]5692; SSE-NEXT:    pshuflw {{.*#+}} xmm1 = xmm1[3,1,2,0,4,5,6,7]5693; SSE-NEXT:    pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,5,5,5,5]5694; SSE-NEXT:    pand %xmm7, %xmm15695; SSE-NEXT:    por %xmm2, %xmm15696; SSE-NEXT:    pand %xmm12, %xmm15697; SSE-NEXT:    por %xmm3, %xmm15698; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5699; SSE-NEXT:    punpckhbw {{.*#+}} xmm0 = xmm0[8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15]5700; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5701; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm0[1,1,2,3]5702; SSE-NEXT:    movdqa %xmm14, %xmm35703; SSE-NEXT:    pandn %xmm2, %xmm35704; SSE-NEXT:    pshufhw {{.*#+}} xmm2 = xmm11[0,1,2,3,5,6,6,7]5705; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm2[2,1,3,2]5706; SSE-NEXT:    pand %xmm14, %xmm25707; SSE-NEXT:    por %xmm3, %xmm25708; SSE-NEXT:    pshufhw {{.*#+}} xmm3 = xmm13[0,1,2,3,4,5,6,6]5709; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm3[2,1,3,3]5710; SSE-NEXT:    movdqa %xmm4, %xmm155711; SSE-NEXT:    pandn %xmm3, %xmm155712; SSE-NEXT:    pand %xmm4, %xmm25713; SSE-NEXT:    por %xmm2, %xmm155714; SSE-NEXT:    pand %xmm10, %xmm15715; SSE-NEXT:    pandn %xmm15, %xmm105716; SSE-NEXT:    por %xmm1, %xmm105717; SSE-NEXT:    movdqa %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5718; SSE-NEXT:    punpcklbw {{.*#+}} xmm5 = xmm5[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7]5719; SSE-NEXT:    pshuflw {{.*#+}} xmm1 = xmm5[0,0,2,1,4,5,6,7]5720; SSE-NEXT:    movdqa %xmm5, %xmm145721; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm1[0,1,1,3]5722; SSE-NEXT:    movdqa %xmm4, %xmm25723; SSE-NEXT:    pandn %xmm1, %xmm25724; SSE-NEXT:    movdqa %xmm6, %xmm85725; SSE-NEXT:    pshuflw {{.*#+}} xmm1 = xmm6[0,0,0,0,4,5,6,7]5726; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm1[0,1,0,1]5727; SSE-NEXT:    pand %xmm4, %xmm15728; SSE-NEXT:    por %xmm1, %xmm25729; SSE-NEXT:    movdqa {{.*#+}} xmm0 = [255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255]5730; SSE-NEXT:    movdqa %xmm0, %xmm155731; SSE-NEXT:    pandn %xmm2, %xmm155732; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload5733; SSE-NEXT:    punpcklbw {{.*#+}} xmm4 = xmm4[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7]5734; SSE-NEXT:    pshuflw {{.*#+}} xmm1 = xmm4[0,2,1,3,4,5,6,7]5735; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm1[0,1,1,0]5736; SSE-NEXT:    movdqa {{.*#+}} xmm9 = [255,0,255,255,255,255,255,255,0,255,255,255,255,255,255,0]5737; SSE-NEXT:    movdqa %xmm9, %xmm15738; SSE-NEXT:    pandn %xmm2, %xmm15739; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload5740; SSE-NEXT:    pshuflw {{.*#+}} xmm2 = xmm3[0,0,2,1,4,5,6,7]5741; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm2[0,0,2,1]5742; SSE-NEXT:    pand %xmm9, %xmm25743; SSE-NEXT:    movdqa %xmm9, %xmm65744; SSE-NEXT:    por %xmm2, %xmm15745; SSE-NEXT:    pand %xmm0, %xmm15746; SSE-NEXT:    por %xmm15, %xmm15747; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload5748; SSE-NEXT:    punpcklbw {{.*#+}} xmm5 = xmm5[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7]5749; SSE-NEXT:    pshuflw {{.*#+}} xmm2 = xmm5[0,1,1,3,4,5,6,7]5750; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm2[0,0,2,1]5751; SSE-NEXT:    movdqa {{.*#+}} xmm0 = [255,255,255,255,255,0,255,255,255,255,255,255,0,255,255,255]5752; SSE-NEXT:    movdqa %xmm0, %xmm155753; SSE-NEXT:    pandn %xmm2, %xmm155754; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload5755; SSE-NEXT:    pshuflw {{.*#+}} xmm2 = xmm13[0,0,0,0,4,5,6,7]5756; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm2[0,1,0,1]5757; SSE-NEXT:    pand %xmm0, %xmm25758; SSE-NEXT:    por %xmm2, %xmm155759; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Reload5760; SSE-NEXT:    pshuflw {{.*#+}} xmm2 = xmm11[0,0,0,0,4,5,6,7]5761; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm2[0,1,0,1]5762; SSE-NEXT:    movdqa %xmm7, %xmm105763; SSE-NEXT:    pandn %xmm2, %xmm105764; SSE-NEXT:    pand %xmm7, %xmm155765; SSE-NEXT:    por %xmm15, %xmm105766; SSE-NEXT:    movdqa {{.*#+}} xmm2 = [255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255]5767; SSE-NEXT:    movdqa %xmm2, %xmm05768; SSE-NEXT:    pandn %xmm10, %xmm05769; SSE-NEXT:    pand %xmm2, %xmm15770; SSE-NEXT:    por %xmm1, %xmm05771; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5772; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm4[0,1,2,2]5773; SSE-NEXT:    movdqa %xmm7, %xmm25774; SSE-NEXT:    pandn %xmm1, %xmm25775; SSE-NEXT:    pshuflw {{.*#+}} xmm1 = xmm3[1,1,2,3,4,5,6,7]5776; SSE-NEXT:    movdqa %xmm3, %xmm95777; SSE-NEXT:    pshufd {{.*#+}} xmm10 = xmm1[0,0,2,1]5778; SSE-NEXT:    pand %xmm7, %xmm105779; SSE-NEXT:    por %xmm2, %xmm105780; SSE-NEXT:    movdqa {{.*#+}} xmm0 = [255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255]5781; SSE-NEXT:    movdqa %xmm0, %xmm155782; SSE-NEXT:    movdqa %xmm0, %xmm125783; SSE-NEXT:    pandn %xmm10, %xmm155784; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm14[1,1,2,1]5785; SSE-NEXT:    pshufhw {{.*#+}} xmm10 = xmm2[0,1,2,3,7,5,6,4]5786; SSE-NEXT:    movdqa %xmm6, %xmm05787; SSE-NEXT:    movdqa %xmm6, %xmm25788; SSE-NEXT:    pandn %xmm10, %xmm25789; SSE-NEXT:    pshuflw {{.*#+}} xmm10 = xmm8[1,1,2,2,4,5,6,7]5790; SSE-NEXT:    pshufd {{.*#+}} xmm10 = xmm10[0,0,2,1]5791; SSE-NEXT:    pand %xmm0, %xmm105792; SSE-NEXT:    por %xmm10, %xmm25793; SSE-NEXT:    pand %xmm12, %xmm25794; SSE-NEXT:    por %xmm15, %xmm25795; SSE-NEXT:    pshuflw {{.*#+}} xmm10 = xmm5[0,2,2,3,4,5,6,7]5796; SSE-NEXT:    pshufd {{.*#+}} xmm10 = xmm10[0,1,1,3]5797; SSE-NEXT:    movdqa {{.*#+}} xmm0 = [255,255,255,0,255,255,255,255,255,255,0,255,255,255,255,255]5798; SSE-NEXT:    movdqa %xmm0, %xmm155799; SSE-NEXT:    pandn %xmm10, %xmm155800; SSE-NEXT:    movdqa %xmm13, %xmm35801; SSE-NEXT:    pshuflw {{.*#+}} xmm10 = xmm13[1,1,1,1,4,5,6,7]5802; SSE-NEXT:    pshufd {{.*#+}} xmm10 = xmm10[0,1,0,1]5803; SSE-NEXT:    pand %xmm0, %xmm105804; SSE-NEXT:    por %xmm10, %xmm155805; SSE-NEXT:    pshuflw {{.*#+}} xmm10 = xmm11[1,1,1,1,4,5,6,7]5806; SSE-NEXT:    pshufd {{.*#+}} xmm10 = xmm10[0,1,0,1]5807; SSE-NEXT:    movdqa {{.*#+}} xmm13 = [255,255,255,255,0,255,255,255,255,255,255,0,255,255,255,255]5808; SSE-NEXT:    movdqa %xmm13, %xmm05809; SSE-NEXT:    pandn %xmm10, %xmm05810; SSE-NEXT:    pand %xmm13, %xmm155811; SSE-NEXT:    por %xmm15, %xmm05812; SSE-NEXT:    movdqa {{.*#+}} xmm10 = [255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255]5813; SSE-NEXT:    movdqa %xmm10, %xmm15814; SSE-NEXT:    pandn %xmm0, %xmm15815; SSE-NEXT:    pand %xmm10, %xmm25816; SSE-NEXT:    por %xmm2, %xmm15817; SSE-NEXT:    movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5818; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm14[2,2,3,3]5819; SSE-NEXT:    movdqa %xmm7, %xmm25820; SSE-NEXT:    pandn %xmm0, %xmm25821; SSE-NEXT:    pshuflw {{.*#+}} xmm0 = xmm8[2,1,3,3,4,5,6,7]5822; SSE-NEXT:    movdqa %xmm8, %xmm105823; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,0,2,1]5824; SSE-NEXT:    pand %xmm7, %xmm05825; SSE-NEXT:    por %xmm2, %xmm05826; SSE-NEXT:    movdqa %xmm12, %xmm25827; SSE-NEXT:    pandn %xmm0, %xmm25828; SSE-NEXT:    pshufhw {{.*#+}} xmm0 = xmm4[0,1,2,3,5,6,6,7]5829; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[2,2,2,2]5830; SSE-NEXT:    movdqa %xmm13, %xmm155831; SSE-NEXT:    movdqa %xmm13, %xmm85832; SSE-NEXT:    pandn %xmm0, %xmm85833; SSE-NEXT:    pshuflw {{.*#+}} xmm0 = xmm9[0,2,2,3,4,5,6,7]5834; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,1,1,3]5835; SSE-NEXT:    pand %xmm13, %xmm05836; SSE-NEXT:    por %xmm0, %xmm85837; SSE-NEXT:    pand %xmm12, %xmm85838; SSE-NEXT:    por %xmm2, %xmm85839; SSE-NEXT:    movdqa {{.*#+}} xmm1 = [255,255,255,0,0,0,0,255,255,255,0,0,0,0,255,255]5840; SSE-NEXT:    movdqa %xmm1, %xmm05841; SSE-NEXT:    movdqa %xmm1, %xmm65842; SSE-NEXT:    pandn %xmm8, %xmm05843; SSE-NEXT:    pshufhw {{.*#+}} xmm2 = xmm5[0,1,2,3,4,6,5,7]5844; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm2[2,1,3,2]5845; SSE-NEXT:    movdqa {{.*#+}} xmm1 = [255,0,255,255,255,255,255,255,0,255,255,255,255,255,255,0]5846; SSE-NEXT:    movdqa %xmm1, %xmm55847; SSE-NEXT:    pandn %xmm2, %xmm55848; SSE-NEXT:    movdqa %xmm3, %xmm45849; SSE-NEXT:    pshuflw {{.*#+}} xmm2 = xmm3[2,2,2,3,4,5,6,7]5850; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm2[0,0,2,1]5851; SSE-NEXT:    pand %xmm1, %xmm25852; SSE-NEXT:    por %xmm2, %xmm55853; SSE-NEXT:    pshuflw {{.*#+}} xmm2 = xmm11[2,2,2,2,4,5,6,7]5854; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm2[0,1,0,1]5855; SSE-NEXT:    movdqa {{.*#+}} xmm1 = [255,255,0,255,255,255,255,255,255,0,255,255,255,255,255,255]5856; SSE-NEXT:    movdqa %xmm1, %xmm85857; SSE-NEXT:    pandn %xmm2, %xmm85858; SSE-NEXT:    pand %xmm1, %xmm55859; SSE-NEXT:    por %xmm5, %xmm85860; SSE-NEXT:    pand %xmm6, %xmm85861; SSE-NEXT:    por %xmm0, %xmm85862; SSE-NEXT:    movdqa %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5863; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload5864; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm6[0,1,1,3]5865; SSE-NEXT:    movdqa %xmm1, %xmm25866; SSE-NEXT:    pandn %xmm0, %xmm25867; SSE-NEXT:    pshufhw {{.*#+}} xmm0 = xmm10[0,1,2,3,4,5,5,7]5868; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[2,1,3,2]5869; SSE-NEXT:    pand %xmm1, %xmm05870; SSE-NEXT:    por %xmm2, %xmm05871; SSE-NEXT:    movdqa {{.*#+}} xmm1 = [255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0]5872; SSE-NEXT:    movdqa %xmm1, %xmm55873; SSE-NEXT:    pandn %xmm0, %xmm55874; SSE-NEXT:    pshufhw {{.*#+}} xmm0 = xmm9[0,1,2,3,5,5,5,5]5875; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[2,3,2,3]5876; SSE-NEXT:    movdqa %xmm7, %xmm85877; SSE-NEXT:    pandn %xmm0, %xmm85878; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload5879; SSE-NEXT:    pshuflw {{.*#+}} xmm0 = xmm14[1,2,2,3,4,5,6,7]5880; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm0[0,0,2,1]5881; SSE-NEXT:    pand %xmm7, %xmm25882; SSE-NEXT:    por %xmm8, %xmm25883; SSE-NEXT:    pand %xmm1, %xmm25884; SSE-NEXT:    por %xmm5, %xmm25885; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload5886; SSE-NEXT:    pshuflw {{.*#+}} xmm0 = xmm13[1,2,2,3,4,5,6,7]5887; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,0,0,0]5888; SSE-NEXT:    movdqa %xmm15, %xmm55889; SSE-NEXT:    pandn %xmm0, %xmm55890; SSE-NEXT:    pshufhw {{.*#+}} xmm0 = xmm3[0,1,2,3,4,4,6,5]5891; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[2,1,3,3]5892; SSE-NEXT:    pand %xmm15, %xmm05893; SSE-NEXT:    por %xmm0, %xmm55894; SSE-NEXT:    pshufhw {{.*#+}} xmm0 = xmm11[0,1,2,3,4,5,5,7]5895; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,2,2,3]5896; SSE-NEXT:    movdqa {{.*#+}} xmm12 = [255,255,255,255,255,0,255,255,255,255,255,255,0,255,255,255]5897; SSE-NEXT:    movdqa %xmm12, %xmm85898; SSE-NEXT:    pandn %xmm0, %xmm85899; SSE-NEXT:    pand %xmm12, %xmm55900; SSE-NEXT:    por %xmm5, %xmm85901; SSE-NEXT:    movdqa {{.*#+}} xmm3 = [255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255]5902; SSE-NEXT:    movdqa %xmm3, %xmm05903; SSE-NEXT:    pandn %xmm8, %xmm05904; SSE-NEXT:    pand %xmm3, %xmm25905; SSE-NEXT:    por %xmm2, %xmm05906; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5907; SSE-NEXT:    pshufhw {{.*#+}} xmm0 = xmm6[0,1,2,3,6,5,7,7]5908; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,2,2,3]5909; SSE-NEXT:    movdqa %xmm12, %xmm25910; SSE-NEXT:    pandn %xmm0, %xmm25911; SSE-NEXT:    pshufhw {{.*#+}} xmm0 = xmm10[0,1,2,3,7,7,7,7]5912; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[2,3,2,3]5913; SSE-NEXT:    pand %xmm12, %xmm05914; SSE-NEXT:    por %xmm0, %xmm25915; SSE-NEXT:    movdqa {{.*#+}} xmm5 = [255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255]5916; SSE-NEXT:    movdqa %xmm5, %xmm05917; SSE-NEXT:    pandn %xmm2, %xmm05918; SSE-NEXT:    pshufhw {{.*#+}} xmm2 = xmm14[0,1,2,3,4,6,6,7]5919; SSE-NEXT:    pshufd {{.*#+}} xmm6 = xmm2[2,1,3,3]5920; SSE-NEXT:    movdqa {{.*#+}} xmm3 = [255,255,255,0,255,255,255,255,255,255,0,255,255,255,255,255]5921; SSE-NEXT:    movdqa %xmm3, %xmm25922; SSE-NEXT:    pandn %xmm6, %xmm25923; SSE-NEXT:    pshufhw {{.*#+}} xmm6 = xmm9[0,1,2,3,7,7,7,7]5924; SSE-NEXT:    pshufd {{.*#+}} xmm6 = xmm6[2,3,2,3]5925; SSE-NEXT:    pand %xmm3, %xmm65926; SSE-NEXT:    movdqa %xmm3, %xmm105927; SSE-NEXT:    por %xmm6, %xmm25928; SSE-NEXT:    pand %xmm5, %xmm25929; SSE-NEXT:    por %xmm0, %xmm25930; SSE-NEXT:    pshufhw {{.*#+}} xmm0 = xmm4[0,1,2,3,7,7,7,7]5931; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[2,3,2,3]5932; SSE-NEXT:    movdqa %xmm7, %xmm65933; SSE-NEXT:    pandn %xmm0, %xmm65934; SSE-NEXT:    pshufhw {{.*#+}} xmm0 = xmm13[0,1,2,3,5,6,6,7]5935; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[2,2,2,3]5936; SSE-NEXT:    pand %xmm7, %xmm05937; SSE-NEXT:    por %xmm6, %xmm05938; SSE-NEXT:    pshufhw {{.*#+}} xmm6 = xmm11[0,1,2,3,6,7,7,7]5939; SSE-NEXT:    pshufd {{.*#+}} xmm6 = xmm6[2,1,3,2]5940; SSE-NEXT:    movdqa {{.*#+}} xmm1 = [255,0,255,255,255,255,255,255,0,255,255,255,255,255,255,0]5941; SSE-NEXT:    movdqa %xmm1, %xmm85942; SSE-NEXT:    pandn %xmm6, %xmm85943; SSE-NEXT:    pand %xmm1, %xmm05944; SSE-NEXT:    movdqa %xmm1, %xmm45945; SSE-NEXT:    por %xmm0, %xmm85946; SSE-NEXT:    movdqa {{.*#+}} xmm1 = [0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0]5947; SSE-NEXT:    movdqa %xmm1, %xmm05948; SSE-NEXT:    pandn %xmm8, %xmm05949; SSE-NEXT:    pand %xmm1, %xmm25950; SSE-NEXT:    por %xmm2, %xmm05951; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5952; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Reload5953; SSE-NEXT:    punpcklbw {{.*#+}} xmm9 = xmm9[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7]5954; SSE-NEXT:    pshuflw {{.*#+}} xmm0 = xmm9[0,0,2,1,4,5,6,7]5955; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,1,1,3]5956; SSE-NEXT:    movdqa %xmm3, %xmm25957; SSE-NEXT:    pandn %xmm0, %xmm25958; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Reload5959; SSE-NEXT:    pshuflw {{.*#+}} xmm0 = xmm11[0,0,0,0,4,5,6,7]5960; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,1,0,1]5961; SSE-NEXT:    pand %xmm3, %xmm05962; SSE-NEXT:    por %xmm0, %xmm25963; SSE-NEXT:    movdqa {{.*#+}} xmm3 = [255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255]5964; SSE-NEXT:    movdqa %xmm3, %xmm65965; SSE-NEXT:    pandn %xmm2, %xmm65966; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload5967; SSE-NEXT:    punpcklbw {{.*#+}} xmm5 = xmm5[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7]5968; SSE-NEXT:    pshuflw {{.*#+}} xmm0 = xmm5[0,2,1,3,4,5,6,7]5969; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm0[0,1,1,0]5970; SSE-NEXT:    movdqa %xmm4, %xmm05971; SSE-NEXT:    pandn %xmm2, %xmm05972; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload5973; SSE-NEXT:    pshuflw {{.*#+}} xmm2 = xmm1[0,0,2,1,4,5,6,7]5974; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm2[0,0,2,1]5975; SSE-NEXT:    pand %xmm4, %xmm25976; SSE-NEXT:    por %xmm2, %xmm05977; SSE-NEXT:    pand %xmm3, %xmm05978; SSE-NEXT:    por %xmm6, %xmm05979; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload5980; SSE-NEXT:    punpcklbw {{.*#+}} xmm3 = xmm3[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7]5981; SSE-NEXT:    pshuflw {{.*#+}} xmm2 = xmm3[0,1,1,3,4,5,6,7]5982; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm2[0,0,2,1]5983; SSE-NEXT:    movdqa %xmm12, %xmm65984; SSE-NEXT:    pandn %xmm2, %xmm65985; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload5986; SSE-NEXT:    pshuflw {{.*#+}} xmm2 = xmm13[0,0,0,0,4,5,6,7]5987; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm2[0,1,0,1]5988; SSE-NEXT:    pand %xmm12, %xmm25989; SSE-NEXT:    por %xmm2, %xmm65990; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload5991; SSE-NEXT:    pshuflw {{.*#+}} xmm2 = xmm14[0,0,0,0,4,5,6,7]5992; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm2[0,1,0,1]5993; SSE-NEXT:    movdqa %xmm7, %xmm85994; SSE-NEXT:    pandn %xmm2, %xmm85995; SSE-NEXT:    pand %xmm7, %xmm65996; SSE-NEXT:    por %xmm6, %xmm85997; SSE-NEXT:    movdqa {{.*#+}} xmm2 = [255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255]5998; SSE-NEXT:    movdqa %xmm2, %xmm65999; SSE-NEXT:    pandn %xmm8, %xmm66000; SSE-NEXT:    pand %xmm2, %xmm06001; SSE-NEXT:    por %xmm0, %xmm66002; SSE-NEXT:    movdqa %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6003; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm5[0,1,2,2]6004; SSE-NEXT:    movdqa %xmm7, %xmm26005; SSE-NEXT:    pandn %xmm0, %xmm26006; SSE-NEXT:    pshuflw {{.*#+}} xmm0 = xmm1[1,1,2,3,4,5,6,7]6007; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,0,2,1]6008; SSE-NEXT:    pand %xmm7, %xmm06009; SSE-NEXT:    por %xmm2, %xmm06010; SSE-NEXT:    movdqa {{.*#+}} xmm12 = [255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255]6011; SSE-NEXT:    movdqa %xmm12, %xmm26012; SSE-NEXT:    pandn %xmm0, %xmm26013; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm9[1,1,2,1]6014; SSE-NEXT:    pshufhw {{.*#+}} xmm6 = xmm0[0,1,2,3,7,5,6,4]6015; SSE-NEXT:    movdqa %xmm4, %xmm06016; SSE-NEXT:    pandn %xmm6, %xmm06017; SSE-NEXT:    pshuflw {{.*#+}} xmm6 = xmm11[1,1,2,2,4,5,6,7]6018; SSE-NEXT:    pshufd {{.*#+}} xmm6 = xmm6[0,0,2,1]6019; SSE-NEXT:    pand %xmm4, %xmm66020; SSE-NEXT:    por %xmm6, %xmm06021; SSE-NEXT:    pand %xmm12, %xmm06022; SSE-NEXT:    por %xmm2, %xmm06023; SSE-NEXT:    pshuflw {{.*#+}} xmm2 = xmm3[0,2,2,3,4,5,6,7]6024; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm2[0,1,1,3]6025; SSE-NEXT:    movdqa %xmm10, %xmm66026; SSE-NEXT:    pandn %xmm2, %xmm66027; SSE-NEXT:    pshuflw {{.*#+}} xmm2 = xmm13[1,1,1,1,4,5,6,7]6028; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm2[0,1,0,1]6029; SSE-NEXT:    pand %xmm10, %xmm26030; SSE-NEXT:    por %xmm2, %xmm66031; SSE-NEXT:    pshuflw {{.*#+}} xmm2 = xmm14[1,1,1,1,4,5,6,7]6032; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm2[0,1,0,1]6033; SSE-NEXT:    movdqa %xmm15, %xmm86034; SSE-NEXT:    pandn %xmm2, %xmm86035; SSE-NEXT:    pand %xmm15, %xmm66036; SSE-NEXT:    movdqa %xmm15, %xmm106037; SSE-NEXT:    por %xmm6, %xmm86038; SSE-NEXT:    movdqa {{.*#+}} xmm6 = [255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255]6039; SSE-NEXT:    movdqa %xmm6, %xmm26040; SSE-NEXT:    pandn %xmm8, %xmm26041; SSE-NEXT:    pand %xmm6, %xmm06042; SSE-NEXT:    por %xmm0, %xmm26043; SSE-NEXT:    movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6044; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm9[2,2,3,3]6045; SSE-NEXT:    movdqa %xmm7, %xmm26046; SSE-NEXT:    pandn %xmm0, %xmm26047; SSE-NEXT:    pshuflw {{.*#+}} xmm0 = xmm11[2,1,3,3,4,5,6,7]6048; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,0,2,1]6049; SSE-NEXT:    pand %xmm7, %xmm06050; SSE-NEXT:    por %xmm2, %xmm06051; SSE-NEXT:    movdqa %xmm12, %xmm26052; SSE-NEXT:    pandn %xmm0, %xmm26053; SSE-NEXT:    pshufhw {{.*#+}} xmm0 = xmm5[0,1,2,3,5,6,6,7]6054; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[2,2,2,2]6055; SSE-NEXT:    movdqa %xmm15, %xmm66056; SSE-NEXT:    pandn %xmm0, %xmm66057; SSE-NEXT:    pshuflw {{.*#+}} xmm0 = xmm1[0,2,2,3,4,5,6,7]6058; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,1,1,3]6059; SSE-NEXT:    pand %xmm15, %xmm06060; SSE-NEXT:    por %xmm0, %xmm66061; SSE-NEXT:    pand %xmm12, %xmm66062; SSE-NEXT:    por %xmm2, %xmm66063; SSE-NEXT:    movdqa {{.*#+}} xmm9 = [255,255,255,0,0,0,0,255,255,255,0,0,0,0,255,255]6064; SSE-NEXT:    movdqa %xmm9, %xmm06065; SSE-NEXT:    pandn %xmm6, %xmm06066; SSE-NEXT:    pshufhw {{.*#+}} xmm2 = xmm3[0,1,2,3,4,6,5,7]6067; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm2[2,1,3,2]6068; SSE-NEXT:    movdqa %xmm4, %xmm126069; SSE-NEXT:    movdqa %xmm4, %xmm66070; SSE-NEXT:    pandn %xmm2, %xmm66071; SSE-NEXT:    movdqa %xmm13, %xmm56072; SSE-NEXT:    pshuflw {{.*#+}} xmm2 = xmm13[2,2,2,3,4,5,6,7]6073; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm2[0,0,2,1]6074; SSE-NEXT:    pand %xmm4, %xmm26075; SSE-NEXT:    por %xmm2, %xmm66076; SSE-NEXT:    pshuflw {{.*#+}} xmm2 = xmm14[2,2,2,2,4,5,6,7]6077; SSE-NEXT:    pshufd {{.*#+}} xmm8 = xmm2[0,1,0,1]6078; SSE-NEXT:    movdqa {{.*#+}} xmm2 = [255,255,0,255,255,255,255,255,255,0,255,255,255,255,255,255]6079; SSE-NEXT:    movdqa %xmm2, %xmm46080; SSE-NEXT:    pandn %xmm8, %xmm46081; SSE-NEXT:    pand %xmm2, %xmm66082; SSE-NEXT:    por %xmm6, %xmm46083; SSE-NEXT:    pand %xmm9, %xmm46084; SSE-NEXT:    por %xmm0, %xmm46085; SSE-NEXT:    movdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6086; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload6087; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm15[0,1,1,3]6088; SSE-NEXT:    movdqa %xmm2, %xmm66089; SSE-NEXT:    pandn %xmm0, %xmm66090; SSE-NEXT:    pshufhw {{.*#+}} xmm0 = xmm11[0,1,2,3,4,5,5,7]6091; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[2,1,3,2]6092; SSE-NEXT:    pand %xmm2, %xmm06093; SSE-NEXT:    por %xmm6, %xmm06094; SSE-NEXT:    movdqa {{.*#+}} xmm2 = [255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0]6095; SSE-NEXT:    movdqa %xmm2, %xmm66096; SSE-NEXT:    pandn %xmm0, %xmm66097; SSE-NEXT:    pshufhw {{.*#+}} xmm0 = xmm1[0,1,2,3,5,5,5,5]6098; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[2,3,2,3]6099; SSE-NEXT:    movdqa %xmm7, %xmm86100; SSE-NEXT:    pandn %xmm0, %xmm86101; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Reload6102; SSE-NEXT:    pshuflw {{.*#+}} xmm0 = xmm9[1,2,2,3,4,5,6,7]6103; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,0,2,1]6104; SSE-NEXT:    pand %xmm7, %xmm06105; SSE-NEXT:    por %xmm8, %xmm06106; SSE-NEXT:    pand %xmm2, %xmm06107; SSE-NEXT:    por %xmm6, %xmm06108; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload6109; SSE-NEXT:    pshuflw {{.*#+}} xmm6 = xmm13[1,2,2,3,4,5,6,7]6110; SSE-NEXT:    pshufd {{.*#+}} xmm6 = xmm6[0,0,0,0]6111; SSE-NEXT:    movdqa %xmm10, %xmm86112; SSE-NEXT:    pandn %xmm6, %xmm86113; SSE-NEXT:    pshufhw {{.*#+}} xmm6 = xmm5[0,1,2,3,4,4,6,5]6114; SSE-NEXT:    pshufd {{.*#+}} xmm6 = xmm6[2,1,3,3]6115; SSE-NEXT:    pand %xmm10, %xmm66116; SSE-NEXT:    por %xmm6, %xmm86117; SSE-NEXT:    pshufhw {{.*#+}} xmm6 = xmm14[0,1,2,3,4,5,5,7]6118; SSE-NEXT:    movdqa %xmm14, %xmm26119; SSE-NEXT:    pshufd {{.*#+}} xmm6 = xmm6[0,2,2,3]6120; SSE-NEXT:    movdqa {{.*#+}} xmm3 = [255,255,255,255,255,0,255,255,255,255,255,255,0,255,255,255]6121; SSE-NEXT:    movdqa %xmm3, %xmm106122; SSE-NEXT:    pandn %xmm6, %xmm106123; SSE-NEXT:    pand %xmm3, %xmm86124; SSE-NEXT:    movdqa %xmm3, %xmm66125; SSE-NEXT:    por %xmm8, %xmm106126; SSE-NEXT:    movdqa {{.*#+}} xmm3 = [255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255]6127; SSE-NEXT:    movdqa %xmm3, %xmm46128; SSE-NEXT:    pandn %xmm10, %xmm46129; SSE-NEXT:    pand %xmm3, %xmm06130; SSE-NEXT:    por %xmm0, %xmm46131; SSE-NEXT:    movdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6132; SSE-NEXT:    pshufhw {{.*#+}} xmm0 = xmm15[0,1,2,3,6,5,7,7]6133; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,2,2,3]6134; SSE-NEXT:    movdqa %xmm6, %xmm36135; SSE-NEXT:    pandn %xmm0, %xmm66136; SSE-NEXT:    pshufhw {{.*#+}} xmm0 = xmm11[0,1,2,3,7,7,7,7]6137; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[2,3,2,3]6138; SSE-NEXT:    pand %xmm3, %xmm06139; SSE-NEXT:    movdqa %xmm3, %xmm146140; SSE-NEXT:    por %xmm0, %xmm66141; SSE-NEXT:    movdqa {{.*#+}} xmm3 = [255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255]6142; SSE-NEXT:    movdqa %xmm3, %xmm86143; SSE-NEXT:    pandn %xmm6, %xmm86144; SSE-NEXT:    pshufhw {{.*#+}} xmm0 = xmm9[0,1,2,3,4,6,6,7]6145; SSE-NEXT:    pshufd {{.*#+}} xmm6 = xmm0[2,1,3,3]6146; SSE-NEXT:    movdqa {{.*#+}} xmm4 = [255,255,255,0,255,255,255,255,255,255,0,255,255,255,255,255]6147; SSE-NEXT:    movdqa %xmm4, %xmm06148; SSE-NEXT:    pandn %xmm6, %xmm06149; SSE-NEXT:    pshufhw {{.*#+}} xmm6 = xmm1[0,1,2,3,7,7,7,7]6150; SSE-NEXT:    pshufd {{.*#+}} xmm6 = xmm6[2,3,2,3]6151; SSE-NEXT:    pand %xmm4, %xmm66152; SSE-NEXT:    movdqa %xmm4, %xmm116153; SSE-NEXT:    por %xmm6, %xmm06154; SSE-NEXT:    pand %xmm3, %xmm06155; SSE-NEXT:    por %xmm8, %xmm06156; SSE-NEXT:    pshufhw {{.*#+}} xmm6 = xmm5[0,1,2,3,7,7,7,7]6157; SSE-NEXT:    pshufd {{.*#+}} xmm6 = xmm6[2,3,2,3]6158; SSE-NEXT:    movdqa %xmm7, %xmm86159; SSE-NEXT:    pandn %xmm6, %xmm86160; SSE-NEXT:    pshufhw {{.*#+}} xmm6 = xmm13[0,1,2,3,5,6,6,7]6161; SSE-NEXT:    pshufd {{.*#+}} xmm6 = xmm6[2,2,2,3]6162; SSE-NEXT:    pand %xmm7, %xmm66163; SSE-NEXT:    por %xmm8, %xmm66164; SSE-NEXT:    pshufhw {{.*#+}} xmm8 = xmm2[0,1,2,3,6,7,7,7]6165; SSE-NEXT:    pshufd {{.*#+}} xmm8 = xmm8[2,1,3,2]6166; SSE-NEXT:    movdqa %xmm12, %xmm106167; SSE-NEXT:    pandn %xmm8, %xmm106168; SSE-NEXT:    pand %xmm12, %xmm66169; SSE-NEXT:    movdqa %xmm12, %xmm46170; SSE-NEXT:    por %xmm6, %xmm106171; SSE-NEXT:    movdqa {{.*#+}} xmm1 = [0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0]6172; SSE-NEXT:    movdqa %xmm1, %xmm26173; SSE-NEXT:    pandn %xmm10, %xmm26174; SSE-NEXT:    pand %xmm1, %xmm06175; SSE-NEXT:    por %xmm0, %xmm26176; SSE-NEXT:    movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6177; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Reload6178; SSE-NEXT:    punpcklbw {{.*#+}} xmm9 = xmm9[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7]6179; SSE-NEXT:    pshuflw {{.*#+}} xmm0 = xmm9[0,0,2,1,4,5,6,7]6180; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,1,1,3]6181; SSE-NEXT:    movdqa %xmm11, %xmm16182; SSE-NEXT:    movdqa %xmm11, %xmm86183; SSE-NEXT:    pandn %xmm0, %xmm86184; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Reload6185; SSE-NEXT:    pshuflw {{.*#+}} xmm0 = xmm11[0,0,0,0,4,5,6,7]6186; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,1,0,1]6187; SSE-NEXT:    pand %xmm1, %xmm06188; SSE-NEXT:    por %xmm0, %xmm86189; SSE-NEXT:    movdqa {{.*#+}} xmm3 = [255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255]6190; SSE-NEXT:    movdqa %xmm3, %xmm106191; SSE-NEXT:    pandn %xmm8, %xmm106192; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload6193; SSE-NEXT:    punpcklbw {{.*#+}} xmm5 = xmm5[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7]6194; SSE-NEXT:    pshuflw {{.*#+}} xmm0 = xmm5[0,2,1,3,4,5,6,7]6195; SSE-NEXT:    pshufd {{.*#+}} xmm8 = xmm0[0,1,1,0]6196; SSE-NEXT:    movdqa %xmm12, %xmm06197; SSE-NEXT:    pandn %xmm8, %xmm06198; SSE-NEXT:    movdqa (%rsp), %xmm13 # 16-byte Reload6199; SSE-NEXT:    pshuflw {{.*#+}} xmm8 = xmm13[0,0,2,1,4,5,6,7]6200; SSE-NEXT:    pshufd {{.*#+}} xmm8 = xmm8[0,0,2,1]6201; SSE-NEXT:    pand %xmm12, %xmm86202; SSE-NEXT:    por %xmm8, %xmm06203; SSE-NEXT:    pand %xmm3, %xmm06204; SSE-NEXT:    por %xmm10, %xmm06205; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload6206; SSE-NEXT:    punpcklbw {{.*#+}} xmm3 = xmm3[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7]6207; SSE-NEXT:    pshuflw {{.*#+}} xmm8 = xmm3[0,1,1,3,4,5,6,7]6208; SSE-NEXT:    pshufd {{.*#+}} xmm8 = xmm8[0,0,2,1]6209; SSE-NEXT:    movdqa %xmm14, %xmm106210; SSE-NEXT:    pandn %xmm8, %xmm106211; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload6212; SSE-NEXT:    pshuflw {{.*#+}} xmm8 = xmm1[0,0,0,0,4,5,6,7]6213; SSE-NEXT:    pshufd {{.*#+}} xmm8 = xmm8[0,1,0,1]6214; SSE-NEXT:    pand %xmm14, %xmm86215; SSE-NEXT:    por %xmm8, %xmm106216; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload6217; SSE-NEXT:    pshuflw {{.*#+}} xmm8 = xmm6[0,0,0,0,4,5,6,7]6218; SSE-NEXT:    pshufd {{.*#+}} xmm8 = xmm8[0,1,0,1]6219; SSE-NEXT:    movdqa %xmm7, %xmm156220; SSE-NEXT:    pandn %xmm8, %xmm156221; SSE-NEXT:    pand %xmm7, %xmm106222; SSE-NEXT:    por %xmm10, %xmm156223; SSE-NEXT:    movdqa {{.*#+}} xmm8 = [255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255]6224; SSE-NEXT:    movdqa %xmm8, %xmm106225; SSE-NEXT:    pandn %xmm15, %xmm106226; SSE-NEXT:    pand %xmm8, %xmm06227; SSE-NEXT:    por %xmm0, %xmm106228; SSE-NEXT:    movdqa %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6229; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm5[0,1,2,2]6230; SSE-NEXT:    movdqa %xmm7, %xmm86231; SSE-NEXT:    pandn %xmm0, %xmm86232; SSE-NEXT:    pshuflw {{.*#+}} xmm0 = xmm13[1,1,2,3,4,5,6,7]6233; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,0,2,1]6234; SSE-NEXT:    pand %xmm7, %xmm06235; SSE-NEXT:    por %xmm8, %xmm06236; SSE-NEXT:    movdqa {{.*#+}} xmm12 = [255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255]6237; SSE-NEXT:    movdqa %xmm12, %xmm86238; SSE-NEXT:    pandn %xmm0, %xmm86239; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm9[1,1,2,1]6240; SSE-NEXT:    pshufhw {{.*#+}} xmm10 = xmm0[0,1,2,3,7,5,6,4]6241; SSE-NEXT:    movdqa %xmm4, %xmm146242; SSE-NEXT:    movdqa %xmm4, %xmm06243; SSE-NEXT:    pandn %xmm10, %xmm06244; SSE-NEXT:    pshuflw {{.*#+}} xmm10 = xmm11[1,1,2,2,4,5,6,7]6245; SSE-NEXT:    pshufd {{.*#+}} xmm10 = xmm10[0,0,2,1]6246; SSE-NEXT:    pand %xmm4, %xmm106247; SSE-NEXT:    por %xmm10, %xmm06248; SSE-NEXT:    pand %xmm12, %xmm06249; SSE-NEXT:    movdqa %xmm12, %xmm46250; SSE-NEXT:    por %xmm8, %xmm06251; SSE-NEXT:    pshuflw {{.*#+}} xmm8 = xmm3[0,2,2,3,4,5,6,7]6252; SSE-NEXT:    pshufd {{.*#+}} xmm8 = xmm8[0,1,1,3]6253; SSE-NEXT:    movdqa {{.*#+}} xmm2 = [255,255,255,0,255,255,255,255,255,255,0,255,255,255,255,255]6254; SSE-NEXT:    movdqa %xmm2, %xmm106255; SSE-NEXT:    pandn %xmm8, %xmm106256; SSE-NEXT:    pshuflw {{.*#+}} xmm8 = xmm1[1,1,1,1,4,5,6,7]6257; SSE-NEXT:    pshufd {{.*#+}} xmm8 = xmm8[0,1,0,1]6258; SSE-NEXT:    pand %xmm2, %xmm86259; SSE-NEXT:    por %xmm8, %xmm106260; SSE-NEXT:    pshuflw {{.*#+}} xmm8 = xmm6[1,1,1,1,4,5,6,7]6261; SSE-NEXT:    pshufd {{.*#+}} xmm8 = xmm8[0,1,0,1]6262; SSE-NEXT:    movdqa {{.*#+}} xmm2 = [255,255,255,255,0,255,255,255,255,255,255,0,255,255,255,255]6263; SSE-NEXT:    movdqa %xmm2, %xmm156264; SSE-NEXT:    pandn %xmm8, %xmm156265; SSE-NEXT:    pand %xmm2, %xmm106266; SSE-NEXT:    movdqa %xmm2, %xmm126267; SSE-NEXT:    por %xmm10, %xmm156268; SSE-NEXT:    movdqa {{.*#+}} xmm2 = [255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255]6269; SSE-NEXT:    movdqa %xmm2, %xmm86270; SSE-NEXT:    pandn %xmm15, %xmm86271; SSE-NEXT:    pand %xmm2, %xmm06272; SSE-NEXT:    por %xmm0, %xmm86273; SSE-NEXT:    movdqa %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6274; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm9[2,2,3,3]6275; SSE-NEXT:    movdqa %xmm7, %xmm106276; SSE-NEXT:    pandn %xmm0, %xmm106277; SSE-NEXT:    pshuflw {{.*#+}} xmm0 = xmm11[2,1,3,3,4,5,6,7]6278; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,0,2,1]6279; SSE-NEXT:    pand %xmm7, %xmm06280; SSE-NEXT:    por %xmm10, %xmm06281; SSE-NEXT:    movdqa %xmm4, %xmm106282; SSE-NEXT:    pandn %xmm0, %xmm106283; SSE-NEXT:    pshufhw {{.*#+}} xmm0 = xmm5[0,1,2,3,5,6,6,7]6284; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[2,2,2,2]6285; SSE-NEXT:    movdqa %xmm12, %xmm156286; SSE-NEXT:    pandn %xmm0, %xmm156287; SSE-NEXT:    pshuflw {{.*#+}} xmm0 = xmm13[0,2,2,3,4,5,6,7]6288; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,1,1,3]6289; SSE-NEXT:    pand %xmm12, %xmm06290; SSE-NEXT:    por %xmm0, %xmm156291; SSE-NEXT:    pand %xmm4, %xmm156292; SSE-NEXT:    por %xmm10, %xmm156293; SSE-NEXT:    movdqa {{.*#+}} xmm2 = [255,255,255,0,0,0,0,255,255,255,0,0,0,0,255,255]6294; SSE-NEXT:    movdqa %xmm2, %xmm106295; SSE-NEXT:    pandn %xmm15, %xmm106296; SSE-NEXT:    pshufhw {{.*#+}} xmm0 = xmm3[0,1,2,3,4,6,5,7]6297; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[2,1,3,2]6298; SSE-NEXT:    movdqa %xmm14, %xmm156299; SSE-NEXT:    pandn %xmm0, %xmm156300; SSE-NEXT:    movdqa %xmm1, %xmm86301; SSE-NEXT:    pshuflw {{.*#+}} xmm0 = xmm1[2,2,2,3,4,5,6,7]6302; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,0,2,1]6303; SSE-NEXT:    pand %xmm14, %xmm06304; SSE-NEXT:    movdqa %xmm14, %xmm46305; SSE-NEXT:    por %xmm0, %xmm156306; SSE-NEXT:    pshuflw {{.*#+}} xmm0 = xmm6[2,2,2,2,4,5,6,7]6307; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,1,0,1]6308; SSE-NEXT:    movdqa {{.*#+}} xmm1 = [255,255,0,255,255,255,255,255,255,0,255,255,255,255,255,255]6309; SSE-NEXT:    movdqa %xmm1, %xmm96310; SSE-NEXT:    pandn %xmm0, %xmm96311; SSE-NEXT:    pand %xmm1, %xmm156312; SSE-NEXT:    por %xmm15, %xmm96313; SSE-NEXT:    pand %xmm2, %xmm96314; SSE-NEXT:    por %xmm10, %xmm96315; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload6316; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm2[0,1,1,3]6317; SSE-NEXT:    movdqa %xmm1, %xmm106318; SSE-NEXT:    pandn %xmm0, %xmm106319; SSE-NEXT:    pshufhw {{.*#+}} xmm0 = xmm11[0,1,2,3,4,5,5,7]6320; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[2,1,3,2]6321; SSE-NEXT:    pand %xmm1, %xmm06322; SSE-NEXT:    por %xmm10, %xmm06323; SSE-NEXT:    pshufhw {{.*#+}} xmm10 = xmm13[0,1,2,3,5,5,5,5]6324; SSE-NEXT:    pshufd {{.*#+}} xmm10 = xmm10[2,3,2,3]6325; SSE-NEXT:    movdqa %xmm7, %xmm156326; SSE-NEXT:    pandn %xmm10, %xmm156327; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload6328; SSE-NEXT:    pshuflw {{.*#+}} xmm10 = xmm3[1,2,2,3,4,5,6,7]6329; SSE-NEXT:    pshufd {{.*#+}} xmm10 = xmm10[0,0,2,1]6330; SSE-NEXT:    pand %xmm7, %xmm106331; SSE-NEXT:    por %xmm15, %xmm106332; SSE-NEXT:    movdqa {{.*#+}} xmm1 = [255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0]6333; SSE-NEXT:    pand %xmm1, %xmm106334; SSE-NEXT:    pandn %xmm0, %xmm16335; SSE-NEXT:    por %xmm10, %xmm16336; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload6337; SSE-NEXT:    pshuflw {{.*#+}} xmm0 = xmm5[1,2,2,3,4,5,6,7]6338; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,0,0,0]6339; SSE-NEXT:    movdqa %xmm12, %xmm106340; SSE-NEXT:    pandn %xmm0, %xmm106341; SSE-NEXT:    pshufhw {{.*#+}} xmm0 = xmm8[0,1,2,3,4,4,6,5]6342; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[2,1,3,3]6343; SSE-NEXT:    pand %xmm12, %xmm06344; SSE-NEXT:    por %xmm0, %xmm106345; SSE-NEXT:    pshufhw {{.*#+}} xmm0 = xmm6[0,1,2,3,4,5,5,7]6346; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,2,2,3]6347; SSE-NEXT:    movdqa {{.*#+}} xmm14 = [255,255,255,255,255,0,255,255,255,255,255,255,0,255,255,255]6348; SSE-NEXT:    movdqa %xmm14, %xmm156349; SSE-NEXT:    pandn %xmm0, %xmm156350; SSE-NEXT:    pand %xmm14, %xmm106351; SSE-NEXT:    por %xmm10, %xmm156352; SSE-NEXT:    movdqa {{.*#+}} xmm0 = [255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255]6353; SSE-NEXT:    pand %xmm0, %xmm16354; SSE-NEXT:    pandn %xmm15, %xmm06355; SSE-NEXT:    por %xmm1, %xmm06356; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6357; SSE-NEXT:    pshufhw {{.*#+}} xmm0 = xmm2[0,1,2,3,6,5,7,7]6358; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,2,2,3]6359; SSE-NEXT:    movdqa %xmm14, %xmm106360; SSE-NEXT:    pandn %xmm0, %xmm106361; SSE-NEXT:    pshufhw {{.*#+}} xmm0 = xmm11[0,1,2,3,7,7,7,7]6362; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[2,3,2,3]6363; SSE-NEXT:    pand %xmm14, %xmm06364; SSE-NEXT:    por %xmm0, %xmm106365; SSE-NEXT:    pshufhw {{.*#+}} xmm0 = xmm3[0,1,2,3,4,6,6,7]6366; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[2,1,3,3]6367; SSE-NEXT:    movdqa {{.*#+}} xmm1 = [255,255,255,0,255,255,255,255,255,255,0,255,255,255,255,255]6368; SSE-NEXT:    movdqa %xmm1, %xmm156369; SSE-NEXT:    pandn %xmm0, %xmm156370; SSE-NEXT:    pshufhw {{.*#+}} xmm0 = xmm13[0,1,2,3,7,7,7,7]6371; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[2,3,2,3]6372; SSE-NEXT:    pand %xmm1, %xmm06373; SSE-NEXT:    movdqa %xmm1, %xmm26374; SSE-NEXT:    por %xmm0, %xmm156375; SSE-NEXT:    movdqa {{.*#+}} xmm0 = [255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255]6376; SSE-NEXT:    pand %xmm0, %xmm156377; SSE-NEXT:    pandn %xmm10, %xmm06378; SSE-NEXT:    por %xmm15, %xmm06379; SSE-NEXT:    movdqa %xmm0, %xmm16380; SSE-NEXT:    pshufhw {{.*#+}} xmm0 = xmm8[0,1,2,3,7,7,7,7]6381; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[2,3,2,3]6382; SSE-NEXT:    movdqa %xmm7, %xmm106383; SSE-NEXT:    pandn %xmm0, %xmm106384; SSE-NEXT:    pshufhw {{.*#+}} xmm0 = xmm5[0,1,2,3,5,6,6,7]6385; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[2,2,2,3]6386; SSE-NEXT:    pand %xmm7, %xmm06387; SSE-NEXT:    por %xmm10, %xmm06388; SSE-NEXT:    pshufhw {{.*#+}} xmm10 = xmm6[0,1,2,3,6,7,7,7]6389; SSE-NEXT:    pshufd {{.*#+}} xmm10 = xmm10[2,1,3,2]6390; SSE-NEXT:    movdqa %xmm4, %xmm146391; SSE-NEXT:    movdqa %xmm4, %xmm156392; SSE-NEXT:    pandn %xmm10, %xmm156393; SSE-NEXT:    pand %xmm4, %xmm06394; SSE-NEXT:    por %xmm0, %xmm156395; SSE-NEXT:    movdqa {{.*#+}} xmm0 = [0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0]6396; SSE-NEXT:    pand %xmm0, %xmm16397; SSE-NEXT:    pandn %xmm15, %xmm06398; SSE-NEXT:    por %xmm1, %xmm06399; SSE-NEXT:    movdqa %xmm0, (%rsp) # 16-byte Spill6400; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Reload6401; SSE-NEXT:    punpcklbw {{.*#+}} xmm12 = xmm12[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7]6402; SSE-NEXT:    pshuflw {{.*#+}} xmm0 = xmm12[0,0,2,1,4,5,6,7]6403; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,1,1,3]6404; SSE-NEXT:    movdqa %xmm2, %xmm106405; SSE-NEXT:    pandn %xmm0, %xmm106406; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Reload6407; SSE-NEXT:    pshuflw {{.*#+}} xmm0 = xmm11[0,0,0,0,4,5,6,7]6408; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,1,0,1]6409; SSE-NEXT:    pand %xmm2, %xmm06410; SSE-NEXT:    movdqa %xmm2, %xmm66411; SSE-NEXT:    por %xmm0, %xmm106412; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload6413; SSE-NEXT:    punpcklbw {{.*#+}} xmm8 = xmm8[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7]6414; SSE-NEXT:    pshuflw {{.*#+}} xmm0 = xmm8[0,2,1,3,4,5,6,7]6415; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,1,1,0]6416; SSE-NEXT:    movdqa %xmm4, %xmm156417; SSE-NEXT:    pandn %xmm0, %xmm156418; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload6419; SSE-NEXT:    pshuflw {{.*#+}} xmm0 = xmm13[0,0,2,1,4,5,6,7]6420; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,0,2,1]6421; SSE-NEXT:    pand %xmm4, %xmm06422; SSE-NEXT:    por %xmm0, %xmm156423; SSE-NEXT:    movdqa {{.*#+}} xmm0 = [255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255]6424; SSE-NEXT:    pand %xmm0, %xmm156425; SSE-NEXT:    pandn %xmm10, %xmm06426; SSE-NEXT:    por %xmm15, %xmm06427; SSE-NEXT:    movdqa %xmm0, %xmm36428; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload6429; SSE-NEXT:    pshuflw {{.*#+}} xmm0 = xmm2[0,0,0,0,4,5,6,7]6430; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,1,0,1]6431; SSE-NEXT:    movdqa {{.*#+}} xmm15 = [255,255,255,255,255,0,255,255,255,255,255,255,0,255,255,255]6432; SSE-NEXT:    pand %xmm15, %xmm06433; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload6434; SSE-NEXT:    punpcklbw {{.*#+}} xmm5 = xmm5[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7]6435; SSE-NEXT:    pshuflw {{.*#+}} xmm10 = xmm5[0,1,1,3,4,5,6,7]6436; SSE-NEXT:    pshufd {{.*#+}} xmm10 = xmm10[0,0,2,1]6437; SSE-NEXT:    pandn %xmm10, %xmm156438; SSE-NEXT:    por %xmm0, %xmm156439; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload6440; SSE-NEXT:    pshuflw {{.*#+}} xmm0 = xmm1[0,0,0,0,4,5,6,7]6441; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,1,0,1]6442; SSE-NEXT:    movdqa %xmm7, %xmm106443; SSE-NEXT:    pandn %xmm0, %xmm106444; SSE-NEXT:    pand %xmm7, %xmm156445; SSE-NEXT:    por %xmm15, %xmm106446; SSE-NEXT:    movdqa {{.*#+}} xmm0 = [255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255]6447; SSE-NEXT:    pand %xmm0, %xmm36448; SSE-NEXT:    pandn %xmm10, %xmm06449; SSE-NEXT:    por %xmm3, %xmm06450; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6451; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm8[0,1,2,2]6452; SSE-NEXT:    movdqa %xmm7, %xmm36453; SSE-NEXT:    pandn %xmm0, %xmm36454; SSE-NEXT:    pshuflw {{.*#+}} xmm0 = xmm13[1,1,2,3,4,5,6,7]6455; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,0,2,1]6456; SSE-NEXT:    pand %xmm7, %xmm06457; SSE-NEXT:    por %xmm3, %xmm06458; SSE-NEXT:    movdqa {{.*#+}} xmm4 = [255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255]6459; SSE-NEXT:    movdqa %xmm4, %xmm106460; SSE-NEXT:    pandn %xmm0, %xmm106461; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm12[1,1,2,1]6462; SSE-NEXT:    pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,7,5,6,4]6463; SSE-NEXT:    movdqa %xmm14, %xmm36464; SSE-NEXT:    pandn %xmm0, %xmm36465; SSE-NEXT:    pshuflw {{.*#+}} xmm0 = xmm11[1,1,2,2,4,5,6,7]6466; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,0,2,1]6467; SSE-NEXT:    pand %xmm14, %xmm06468; SSE-NEXT:    por %xmm0, %xmm36469; SSE-NEXT:    pand %xmm4, %xmm36470; SSE-NEXT:    por %xmm10, %xmm36471; SSE-NEXT:    pshuflw {{.*#+}} xmm0 = xmm2[1,1,1,1,4,5,6,7]6472; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,1,0,1]6473; SSE-NEXT:    movdqa %xmm6, %xmm46474; SSE-NEXT:    pand %xmm6, %xmm06475; SSE-NEXT:    pshuflw {{.*#+}} xmm10 = xmm5[0,2,2,3,4,5,6,7]6476; SSE-NEXT:    pshufd {{.*#+}} xmm10 = xmm10[0,1,1,3]6477; SSE-NEXT:    pandn %xmm10, %xmm46478; SSE-NEXT:    por %xmm0, %xmm46479; SSE-NEXT:    pshuflw {{.*#+}} xmm0 = xmm1[1,1,1,1,4,5,6,7]6480; SSE-NEXT:    movdqa %xmm1, %xmm156481; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,1,0,1]6482; SSE-NEXT:    movdqa {{.*#+}} xmm6 = [255,255,255,255,0,255,255,255,255,255,255,0,255,255,255,255]6483; SSE-NEXT:    movdqa %xmm6, %xmm106484; SSE-NEXT:    pandn %xmm0, %xmm106485; SSE-NEXT:    pand %xmm6, %xmm46486; SSE-NEXT:    por %xmm4, %xmm106487; SSE-NEXT:    movdqa {{.*#+}} xmm1 = [255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255]6488; SSE-NEXT:    pand %xmm1, %xmm36489; SSE-NEXT:    pandn %xmm10, %xmm16490; SSE-NEXT:    por %xmm3, %xmm16491; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm12[2,2,3,3]6492; SSE-NEXT:    pshuflw {{.*#+}} xmm3 = xmm11[2,1,3,3,4,5,6,7]6493; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm3[0,0,2,1]6494; SSE-NEXT:    pand %xmm7, %xmm36495; SSE-NEXT:    pandn %xmm0, %xmm76496; SSE-NEXT:    por %xmm3, %xmm76497; SSE-NEXT:    pshuflw {{.*#+}} xmm0 = xmm13[0,2,2,3,4,5,6,7]6498; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,1,1,3]6499; SSE-NEXT:    pand %xmm6, %xmm06500; SSE-NEXT:    pshufhw {{.*#+}} xmm3 = xmm8[0,1,2,3,5,6,6,7]6501; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm3[2,2,2,2]6502; SSE-NEXT:    pandn %xmm3, %xmm66503; SSE-NEXT:    por %xmm0, %xmm66504; SSE-NEXT:    movdqa {{.*#+}} xmm0 = [255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255]6505; SSE-NEXT:    pand %xmm0, %xmm66506; SSE-NEXT:    pandn %xmm7, %xmm06507; SSE-NEXT:    por %xmm6, %xmm06508; SSE-NEXT:    movdqa %xmm0, %xmm46509; SSE-NEXT:    pshuflw {{.*#+}} xmm0 = xmm2[2,2,2,3,4,5,6,7]6510; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,0,2,1]6511; SSE-NEXT:    pand %xmm14, %xmm06512; SSE-NEXT:    pshufhw {{.*#+}} xmm3 = xmm5[0,1,2,3,4,6,5,7]6513; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm3[2,1,3,2]6514; SSE-NEXT:    pandn %xmm3, %xmm146515; SSE-NEXT:    por %xmm0, %xmm146516; SSE-NEXT:    movdqa {{.*#+}} xmm3 = [255,255,0,255,255,255,255,255,255,0,255,255,255,255,255,255]6517; SSE-NEXT:    pand %xmm3, %xmm146518; SSE-NEXT:    pshuflw {{.*#+}} xmm0 = xmm15[2,2,2,2,4,5,6,7]6519; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,1,0,1]6520; SSE-NEXT:    pandn %xmm0, %xmm36521; SSE-NEXT:    por %xmm14, %xmm36522; SSE-NEXT:    movdqa {{.*#+}} xmm0 = [255,255,255,0,0,0,0,255,255,255,0,0,0,0,255,255]6523; SSE-NEXT:    pand %xmm0, %xmm36524; SSE-NEXT:    pandn %xmm4, %xmm06525; SSE-NEXT:    por %xmm0, %xmm36526; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %rax6527; SSE-NEXT:    movdqa %xmm3, 368(%rax)6528; SSE-NEXT:    movdqa %xmm1, 352(%rax)6529; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6530; SSE-NEXT:    movaps %xmm0, 336(%rax)6531; SSE-NEXT:    movaps (%rsp), %xmm0 # 16-byte Reload6532; SSE-NEXT:    movaps %xmm0, 320(%rax)6533; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6534; SSE-NEXT:    movaps %xmm0, 288(%rax)6535; SSE-NEXT:    movdqa %xmm9, 256(%rax)6536; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6537; SSE-NEXT:    movaps %xmm0, 240(%rax)6538; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6539; SSE-NEXT:    movaps %xmm0, 224(%rax)6540; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6541; SSE-NEXT:    movaps %xmm0, 208(%rax)6542; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6543; SSE-NEXT:    movaps %xmm0, 176(%rax)6544; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6545; SSE-NEXT:    movaps %xmm0, 144(%rax)6546; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6547; SSE-NEXT:    movaps %xmm0, 128(%rax)6548; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6549; SSE-NEXT:    movaps %xmm0, 112(%rax)6550; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6551; SSE-NEXT:    movaps %xmm0, 96(%rax)6552; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6553; SSE-NEXT:    movaps %xmm0, 64(%rax)6554; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6555; SSE-NEXT:    movaps %xmm0, 32(%rax)6556; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6557; SSE-NEXT:    movaps %xmm0, 16(%rax)6558; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6559; SSE-NEXT:    movaps %xmm0, (%rax)6560; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6561; SSE-NEXT:    movaps %xmm0, 304(%rax)6562; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6563; SSE-NEXT:    movaps %xmm0, 192(%rax)6564; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6565; SSE-NEXT:    movaps %xmm0, 80(%rax)6566; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6567; SSE-NEXT:    movaps %xmm0, 272(%rax)6568; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6569; SSE-NEXT:    movaps %xmm0, 160(%rax)6570; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6571; SSE-NEXT:    movaps %xmm0, 48(%rax)6572; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6573; SSE-NEXT:    movaps %xmm0, 432(%rax)6574; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6575; SSE-NEXT:    movaps %xmm0, 400(%rax)6576; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6577; SSE-NEXT:    movaps %xmm0, 416(%rax)6578; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6579; SSE-NEXT:    movaps %xmm0, 384(%rax)6580; SSE-NEXT:    addq $648, %rsp # imm = 0x2886581; SSE-NEXT:    retq6582;6583; AVX-LABEL: store_i8_stride7_vf64:6584; AVX:       # %bb.0:6585; AVX-NEXT:    subq $616, %rsp # imm = 0x2686586; AVX-NEXT:    movq {{[0-9]+}}(%rsp), %rax6587; AVX-NEXT:    vmovdqa 16(%rax), %xmm66588; AVX-NEXT:    vpshufb {{.*#+}} xmm0 = zero,xmm6[13,u,u,u,u],zero,zero,xmm6[14,u,u,u,u],zero,zero,xmm6[15]6589; AVX-NEXT:    vmovdqa 16(%r8), %xmm106590; AVX-NEXT:    vmovdqa 16(%r9), %xmm86591; AVX-NEXT:    vpunpckhbw {{.*#+}} xmm1 = xmm8[8],xmm10[8],xmm8[9],xmm10[9],xmm8[10],xmm10[10],xmm8[11],xmm10[11],xmm8[12],xmm10[12],xmm8[13],xmm10[13],xmm8[14],xmm10[14],xmm8[15],xmm10[15]6592; AVX-NEXT:    vpshufb {{.*#+}} xmm1 = xmm1[10],zero,xmm1[u,u,u,u,13,12],zero,xmm1[u,u,u,u,15,14],zero6593; AVX-NEXT:    vpor %xmm0, %xmm1, %xmm16594; AVX-NEXT:    vpshufb {{.*#+}} xmm2 = xmm6[u],zero,zero,xmm6[11,u,u,u,u],zero,zero,xmm6[12,u,u,u,u],zero6595; AVX-NEXT:    vpunpckhbw {{.*#+}} xmm0 = xmm10[8],xmm8[8],xmm10[9],xmm8[9],xmm10[10],xmm8[10],xmm10[11],xmm8[11],xmm10[12],xmm8[12],xmm10[13],xmm8[13],xmm10[14],xmm8[14],xmm10[15],xmm8[15]6596; AVX-NEXT:    vmovdqa %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6597; AVX-NEXT:    vmovdqa %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6598; AVX-NEXT:    vpshufb {{.*#+}} xmm3 = xmm0[u,6,7],zero,xmm0[u,u,u,u,8,9],zero,xmm0[u,u,u,u,10]6599; AVX-NEXT:    vpor %xmm2, %xmm3, %xmm26600; AVX-NEXT:    vinsertf128 $1, %xmm1, %ymm2, %ymm16601; AVX-NEXT:    vmovdqa 16(%rsi), %xmm76602; AVX-NEXT:    vmovdqa 16(%rdi), %xmm116603; AVX-NEXT:    vpunpckhbw {{.*#+}} xmm2 = xmm11[8],xmm7[8],xmm11[9],xmm7[9],xmm11[10],xmm7[10],xmm11[11],xmm7[11],xmm11[12],xmm7[12],xmm11[13],xmm7[13],xmm11[14],xmm7[14],xmm11[15],xmm7[15]6604; AVX-NEXT:    vpshufb {{.*#+}} xmm3 = xmm2[u,u,12,13,u,u,u,u,u,14,15,u,u,u,u,u]6605; AVX-NEXT:    vpshufb {{.*#+}} xmm2 = xmm2[u,u,u,u,8,9,u,u,u,u,u,10,11,u,u,u]6606; AVX-NEXT:    vinsertf128 $1, %xmm3, %ymm2, %ymm36607; AVX-NEXT:    vmovdqa 16(%rcx), %xmm126608; AVX-NEXT:    vmovdqa 16(%rdx), %xmm136609; AVX-NEXT:    vpunpckhbw {{.*#+}} xmm2 = xmm12[8],xmm13[8],xmm12[9],xmm13[9],xmm12[10],xmm13[10],xmm12[11],xmm13[11],xmm12[12],xmm13[12],xmm12[13],xmm13[13],xmm12[14],xmm13[14],xmm12[15],xmm13[15]6610; AVX-NEXT:    vpshufb {{.*#+}} xmm4 = xmm2[6,u,u,u,u,u,9,8,u,u,u,u,u,11,10,u]6611; AVX-NEXT:    vpunpckhbw {{.*#+}} xmm2 = xmm13[8],xmm12[8],xmm13[9],xmm12[9],xmm13[10],xmm12[10],xmm13[11],xmm12[11],xmm13[12],xmm12[12],xmm13[13],xmm12[13],xmm13[14],xmm12[14],xmm13[15],xmm12[15]6612; AVX-NEXT:    vmovdqa %xmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6613; AVX-NEXT:    vmovdqa %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6614; AVX-NEXT:    vpshufb {{.*#+}} xmm5 = xmm2[u,u,u,u,12,13,u,u,u,u,u,14,15,u,u,u]6615; AVX-NEXT:    vinsertf128 $1, %xmm5, %ymm4, %ymm46616; AVX-NEXT:    vmovaps {{.*#+}} ymm5 = [255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255]6617; AVX-NEXT:    vandnps %ymm3, %ymm5, %ymm36618; AVX-NEXT:    vandps %ymm5, %ymm4, %ymm46619; AVX-NEXT:    vorps %ymm3, %ymm4, %ymm36620; AVX-NEXT:    vmovaps {{.*#+}} ymm4 = [255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0]6621; AVX-NEXT:    vandnps %ymm1, %ymm4, %ymm16622; AVX-NEXT:    vandps %ymm4, %ymm3, %ymm36623; AVX-NEXT:    vorps %ymm1, %ymm3, %ymm16624; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6625; AVX-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[u,u,u,2,3],zero,xmm0[u,u,u,u,4,5],zero,xmm0[u,u,u]6626; AVX-NEXT:    vmovdqa %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6627; AVX-NEXT:    vpshufb {{.*#+}} xmm1 = xmm6[u,u,u],zero,zero,xmm6[9,u,u,u,u],zero,zero,xmm6[10,u,u,u]6628; AVX-NEXT:    vpor %xmm1, %xmm0, %xmm06629; AVX-NEXT:    vmovdqa {{.*#+}} xmm3 = [u,u,u,u,u,128,7,u,u,u,u,u,128,8,u,u]6630; AVX-NEXT:    vpshufb %xmm3, %xmm8, %xmm16631; AVX-NEXT:    vmovdqa %xmm3, %xmm86632; AVX-NEXT:    vmovdqa {{.*#+}} xmm4 = [u,u,u,u,u,7,128,u,u,u,u,u,8,128,u,u]6633; AVX-NEXT:    vpshufb %xmm4, %xmm10, %xmm36634; AVX-NEXT:    vmovdqa %xmm4, %xmm106635; AVX-NEXT:    vpor %xmm1, %xmm3, %xmm16636; AVX-NEXT:    vmovdqa {{.*#+}} xmm5 = [128,u,u,u,u,5,6,128,u,u,u,u,12,13,128,u]6637; AVX-NEXT:    vpshufb %xmm5, %xmm1, %xmm16638; AVX-NEXT:    vmovdqa {{.*#+}} xmm4 = [6,u,u,u,u,128,128,7,u,u,u,u,128,128,8,u]6639; AVX-NEXT:    vpshufb %xmm4, %xmm6, %xmm36640; AVX-NEXT:    vpor %xmm3, %xmm1, %xmm16641; AVX-NEXT:    vinsertf128 $1, %xmm0, %ymm1, %ymm06642; AVX-NEXT:    vmovdqa {{.*#+}} xmm3 = [u,u,u,128,7,u,u,u,u,u,128,8,u,u,u,u]6643; AVX-NEXT:    vpshufb %xmm3, %xmm12, %xmm16644; AVX-NEXT:    vmovdqa %xmm3, %xmm126645; AVX-NEXT:    vmovdqa {{.*#+}} xmm9 = [u,u,u,7,128,u,u,u,u,u,8,128,u,u,u,u]6646; AVX-NEXT:    vpshufb %xmm9, %xmm13, %xmm36647; AVX-NEXT:    vpor %xmm1, %xmm3, %xmm16648; AVX-NEXT:    vpshufb {{.*#+}} xmm2 = xmm2[u,2,3,u,u,u,u,u,4,5,u,u,u,u,u,6]6649; AVX-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm16650; AVX-NEXT:    vmovdqa {{.*#+}} xmm14 = [u,128,7,u,u,u,u,u,128,8,u,u,u,u,u,128]6651; AVX-NEXT:    vmovdqa %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6652; AVX-NEXT:    vpshufb %xmm14, %xmm7, %xmm26653; AVX-NEXT:    vmovdqa {{.*#+}} xmm13 = [u,7,128,u,u,u,u,u,8,128,u,u,u,u,u,9]6654; AVX-NEXT:    vmovdqa %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6655; AVX-NEXT:    vpshufb %xmm13, %xmm11, %xmm36656; AVX-NEXT:    vpor %xmm2, %xmm3, %xmm26657; AVX-NEXT:    vpunpckhbw {{.*#+}} xmm3 = xmm7[8],xmm11[8],xmm7[9],xmm11[9],xmm7[10],xmm11[10],xmm7[11],xmm11[11],xmm7[12],xmm11[12],xmm7[13],xmm11[13],xmm7[14],xmm11[14],xmm7[15],xmm11[15]6658; AVX-NEXT:    vmovdqa {{.*#+}} xmm15 = [2,u,u,u,u,u,5,4,u,u,u,u,u,7,6,u]6659; AVX-NEXT:    vpshufb %xmm15, %xmm3, %xmm36660; AVX-NEXT:    vinsertf128 $1, %xmm3, %ymm2, %ymm26661; AVX-NEXT:    vmovaps {{.*#+}} ymm3 = [255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0]6662; AVX-NEXT:    vandnps %ymm1, %ymm3, %ymm16663; AVX-NEXT:    vandps %ymm3, %ymm2, %ymm26664; AVX-NEXT:    vorps %ymm1, %ymm2, %ymm16665; AVX-NEXT:    vmovaps {{.*#+}} ymm2 = [0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255]6666; AVX-NEXT:    vandnps %ymm0, %ymm2, %ymm06667; AVX-NEXT:    vandps %ymm2, %ymm1, %ymm16668; AVX-NEXT:    vorps %ymm0, %ymm1, %ymm06669; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6670; AVX-NEXT:    vmovdqa 32(%r8), %xmm36671; AVX-NEXT:    vmovdqa 32(%r9), %xmm116672; AVX-NEXT:    vpshufb %xmm8, %xmm11, %xmm06673; AVX-NEXT:    vpshufb %xmm10, %xmm3, %xmm16674; AVX-NEXT:    vpor %xmm0, %xmm1, %xmm06675; AVX-NEXT:    vpshufb %xmm5, %xmm0, %xmm06676; AVX-NEXT:    vmovdqa 32(%rax), %xmm86677; AVX-NEXT:    vpshufb %xmm4, %xmm8, %xmm16678; AVX-NEXT:    vpor %xmm1, %xmm0, %xmm06679; AVX-NEXT:    vpshufb {{.*#+}} xmm1 = zero,zero,xmm8[4,u,u,u,u],zero,zero,xmm8[5,u,u,u,u],zero,zero6680; AVX-NEXT:    vpunpcklbw {{.*#+}} xmm2 = xmm3[0],xmm11[0],xmm3[1],xmm11[1],xmm3[2],xmm11[2],xmm3[3],xmm11[3],xmm3[4],xmm11[4],xmm3[5],xmm11[5],xmm3[6],xmm11[6],xmm3[7],xmm11[7]6681; AVX-NEXT:    vmovdqa %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6682; AVX-NEXT:    vmovdqa %xmm3, %xmm106683; AVX-NEXT:    vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6684; AVX-NEXT:    vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6685; AVX-NEXT:    vpshufb {{.*#+}} xmm2 = xmm2[8,9],zero,xmm2[u,u,u,u,10,11],zero,xmm2[u,u,u,u,12,13]6686; AVX-NEXT:    vpor %xmm1, %xmm2, %xmm16687; AVX-NEXT:    vinsertf128 $1, %xmm0, %ymm1, %ymm46688; AVX-NEXT:    vmovdqa 32(%rcx), %xmm06689; AVX-NEXT:    vmovdqa 32(%rdx), %xmm26690; AVX-NEXT:    vpshufb %xmm12, %xmm0, %xmm16691; AVX-NEXT:    vpshufb %xmm9, %xmm2, %xmm36692; AVX-NEXT:    vpor %xmm1, %xmm3, %xmm16693; AVX-NEXT:    vpunpcklbw {{.*#+}} xmm3 = xmm2[0],xmm0[0],xmm2[1],xmm0[1],xmm2[2],xmm0[2],xmm2[3],xmm0[3],xmm2[4],xmm0[4],xmm2[5],xmm0[5],xmm2[6],xmm0[6],xmm2[7],xmm0[7]6694; AVX-NEXT:    vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6695; AVX-NEXT:    vpshufb {{.*#+}} xmm3 = xmm3[u,u,u,u,u,10,11,u,u,u,u,u,12,13,u,u]6696; AVX-NEXT:    vinsertf128 $1, %xmm1, %ymm3, %ymm56697; AVX-NEXT:    vmovdqa 32(%rsi), %xmm16698; AVX-NEXT:    vmovdqa 32(%rdi), %xmm36699; AVX-NEXT:    vpshufb %xmm14, %xmm1, %xmm66700; AVX-NEXT:    vpshufb %xmm13, %xmm3, %xmm76701; AVX-NEXT:    vpor %xmm6, %xmm7, %xmm66702; AVX-NEXT:    vpunpcklbw {{.*#+}} xmm7 = xmm3[0],xmm1[0],xmm3[1],xmm1[1],xmm3[2],xmm1[2],xmm3[3],xmm1[3],xmm3[4],xmm1[4],xmm3[5],xmm1[5],xmm3[6],xmm1[6],xmm3[7],xmm1[7]6703; AVX-NEXT:    vmovdqa %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6704; AVX-NEXT:    vmovdqa {{.*#+}} xmm9 = [u,u,u,10,11,u,u,u,u,u,12,13,u,u,u,u]6705; AVX-NEXT:    vpshufb %xmm9, %xmm7, %xmm76706; AVX-NEXT:    vinsertf128 $1, %xmm6, %ymm7, %ymm66707; AVX-NEXT:    vmovaps {{.*#+}} ymm7 = [255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255]6708; AVX-NEXT:    vandnps %ymm5, %ymm7, %ymm56709; AVX-NEXT:    vandps %ymm7, %ymm6, %ymm66710; AVX-NEXT:    vorps %ymm5, %ymm6, %ymm56711; AVX-NEXT:    vmovaps {{.*#+}} ymm6 = [0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255]6712; AVX-NEXT:    vandnps %ymm4, %ymm6, %ymm46713; AVX-NEXT:    vandps %ymm6, %ymm5, %ymm56714; AVX-NEXT:    vorps %ymm4, %ymm5, %ymm46715; AVX-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6716; AVX-NEXT:    vmovdqa %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6717; AVX-NEXT:    vpshufb {{.*#+}} xmm4 = xmm8[u],zero,zero,xmm8[11,u,u,u,u],zero,zero,xmm8[12,u,u,u,u],zero6718; AVX-NEXT:    vpunpckhbw {{.*#+}} xmm5 = xmm10[8],xmm11[8],xmm10[9],xmm11[9],xmm10[10],xmm11[10],xmm10[11],xmm11[11],xmm10[12],xmm11[12],xmm10[13],xmm11[13],xmm10[14],xmm11[14],xmm10[15],xmm11[15]6719; AVX-NEXT:    vpshufb {{.*#+}} xmm6 = xmm5[u,6,7],zero,xmm5[u,u,u,u,8,9],zero,xmm5[u,u,u,u,10]6720; AVX-NEXT:    vpor %xmm4, %xmm6, %xmm46721; AVX-NEXT:    vpshufb {{.*#+}} xmm5 = xmm5[u,u,u,2,3],zero,xmm5[u,u,u,u,4,5],zero,xmm5[u,u,u]6722; AVX-NEXT:    vpshufb {{.*#+}} xmm6 = xmm8[u,u,u],zero,zero,xmm8[9,u,u,u,u],zero,zero,xmm8[10,u,u,u]6723; AVX-NEXT:    vpor %xmm6, %xmm5, %xmm56724; AVX-NEXT:    vinsertf128 $1, %xmm4, %ymm5, %ymm46725; AVX-NEXT:    vpunpckhbw {{.*#+}} xmm5 = xmm3[8],xmm1[8],xmm3[9],xmm1[9],xmm3[10],xmm1[10],xmm3[11],xmm1[11],xmm3[12],xmm1[12],xmm3[13],xmm1[13],xmm3[14],xmm1[14],xmm3[15],xmm1[15]6726; AVX-NEXT:    vmovdqa %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6727; AVX-NEXT:    vpunpckhbw {{.*#+}} xmm1 = xmm1[8],xmm3[8],xmm1[9],xmm3[9],xmm1[10],xmm3[10],xmm1[11],xmm3[11],xmm1[12],xmm3[12],xmm1[13],xmm3[13],xmm1[14],xmm3[14],xmm1[15],xmm3[15]6728; AVX-NEXT:    vpshufb %xmm15, %xmm1, %xmm16729; AVX-NEXT:    vpshufb {{.*#+}} xmm3 = xmm5[u,u,u,u,8,9,u,u,u,u,u,10,11,u,u,u]6730; AVX-NEXT:    vinsertf128 $1, %xmm3, %ymm1, %ymm16731; AVX-NEXT:    vpunpckhbw {{.*#+}} xmm3 = xmm0[8],xmm2[8],xmm0[9],xmm2[9],xmm0[10],xmm2[10],xmm0[11],xmm2[11],xmm0[12],xmm2[12],xmm0[13],xmm2[13],xmm0[14],xmm2[14],xmm0[15],xmm2[15]6732; AVX-NEXT:    vpunpckhbw {{.*#+}} xmm2 = xmm2[8],xmm0[8],xmm2[9],xmm0[9],xmm2[10],xmm0[10],xmm2[11],xmm0[11],xmm2[12],xmm0[12],xmm2[13],xmm0[13],xmm2[14],xmm0[14],xmm2[15],xmm0[15]6733; AVX-NEXT:    vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6734; AVX-NEXT:    vmovdqa {{.*#+}} xmm0 = [6,u,u,u,u,u,9,8,u,u,u,u,u,11,10,u]6735; AVX-NEXT:    vpshufb %xmm0, %xmm3, %xmm06736; AVX-NEXT:    vpshufb {{.*#+}} xmm2 = xmm2[u,2,3,u,u,u,u,u,4,5,u,u,u,u,u,6]6737; AVX-NEXT:    vinsertf128 $1, %xmm0, %ymm2, %ymm06738; AVX-NEXT:    vmovaps {{.*#+}} ymm2 = [0,255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255]6739; AVX-NEXT:    vandnps %ymm1, %ymm2, %ymm16740; AVX-NEXT:    vandps %ymm2, %ymm0, %ymm06741; AVX-NEXT:    vorps %ymm1, %ymm0, %ymm06742; AVX-NEXT:    vmovaps {{.*#+}} ymm2 = [255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0]6743; AVX-NEXT:    vandnps %ymm4, %ymm2, %ymm16744; AVX-NEXT:    vandps %ymm2, %ymm0, %ymm06745; AVX-NEXT:    vorps %ymm1, %ymm0, %ymm06746; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6747; AVX-NEXT:    vmovdqa 48(%rax), %xmm126748; AVX-NEXT:    vmovdqa 48(%r8), %xmm26749; AVX-NEXT:    vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6750; AVX-NEXT:    vmovdqa 48(%r9), %xmm16751; AVX-NEXT:    vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6752; AVX-NEXT:    vmovdqa {{.*#+}} xmm5 = [128,128,4,u,u,u,u,128,128,5,u,u,u,u,128,128]6753; AVX-NEXT:    vpshufb %xmm5, %xmm12, %xmm06754; AVX-NEXT:    vpunpcklbw {{.*#+}} xmm2 = xmm2[0],xmm1[0],xmm2[1],xmm1[1],xmm2[2],xmm1[2],xmm2[3],xmm1[3],xmm2[4],xmm1[4],xmm2[5],xmm1[5],xmm2[6],xmm1[6],xmm2[7],xmm1[7]6755; AVX-NEXT:    vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6756; AVX-NEXT:    vmovdqa {{.*#+}} xmm14 = [8,9,128,u,u,u,u,10,11,128,u,u,u,u,12,13]6757; AVX-NEXT:    vpshufb %xmm14, %xmm2, %xmm16758; AVX-NEXT:    vpor %xmm0, %xmm1, %xmm06759; AVX-NEXT:    vpshufb {{.*#+}} xmm1 = xmm12[u,u],zero,zero,xmm12[2,u,u,u,u],zero,zero,xmm12[3,u,u,u,u]6760; AVX-NEXT:    vpshufb {{.*#+}} xmm3 = xmm2[u,u,4,5],zero,xmm2[u,u,u,u,6,7],zero,xmm2[u,u,u,u]6761; AVX-NEXT:    vpor %xmm1, %xmm3, %xmm16762; AVX-NEXT:    vinsertf128 $1, %xmm0, %ymm1, %ymm06763; AVX-NEXT:    vmovdqa 48(%rsi), %xmm16764; AVX-NEXT:    vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6765; AVX-NEXT:    vmovdqa 48(%rdi), %xmm106766; AVX-NEXT:    vpunpcklbw {{.*#+}} xmm2 = xmm10[0],xmm1[0],xmm10[1],xmm1[1],xmm10[2],xmm1[2],xmm10[3],xmm1[3],xmm10[4],xmm1[4],xmm10[5],xmm1[5],xmm10[6],xmm1[6],xmm10[7],xmm1[7]6767; AVX-NEXT:    vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6768; AVX-NEXT:    vpshufb %xmm9, %xmm2, %xmm16769; AVX-NEXT:    vpshufb {{.*#+}} xmm3 = xmm2[u,u,u,u,u,6,7,u,u,u,u,u,8,9,u,u]6770; AVX-NEXT:    vinsertf128 $1, %xmm1, %ymm3, %ymm16771; AVX-NEXT:    vmovdqa 48(%rcx), %xmm26772; AVX-NEXT:    vmovdqa %xmm2, (%rsp) # 16-byte Spill6773; AVX-NEXT:    vmovdqa 48(%rdx), %xmm136774; AVX-NEXT:    vpunpcklbw {{.*#+}} xmm4 = xmm13[0],xmm2[0],xmm13[1],xmm2[1],xmm13[2],xmm2[2],xmm13[3],xmm2[3],xmm13[4],xmm2[4],xmm13[5],xmm2[5],xmm13[6],xmm2[6],xmm13[7],xmm2[7]6775; AVX-NEXT:    vmovdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6776; AVX-NEXT:    vmovdqa {{.*#+}} xmm9 = [u,u,u,u,u,10,11,u,u,u,u,u,12,13,u,u]6777; AVX-NEXT:    vpshufb %xmm9, %xmm4, %xmm36778; AVX-NEXT:    vpshufb {{.*#+}} xmm11 = xmm4[4,5,u,u,u,u,u,6,7,u,u,u,u,u,8,9]6779; AVX-NEXT:    vinsertf128 $1, %xmm3, %ymm11, %ymm36780; AVX-NEXT:    vandnps %ymm1, %ymm7, %ymm16781; AVX-NEXT:    vandps %ymm7, %ymm3, %ymm36782; AVX-NEXT:    vorps %ymm1, %ymm3, %ymm16783; AVX-NEXT:    vmovaps {{.*#+}} ymm2 = [255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0]6784; AVX-NEXT:    vandnps %ymm0, %ymm2, %ymm06785; AVX-NEXT:    vandps %ymm2, %ymm1, %ymm16786; AVX-NEXT:    vorps %ymm0, %ymm1, %ymm06787; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6788; AVX-NEXT:    vmovdqa (%r9), %xmm66789; AVX-NEXT:    vpshufb {{.*#+}} xmm0 = xmm6[u,u,u,u,u],zero,xmm6[7,u,u,u,u,u],zero,xmm6[8,u,u]6790; AVX-NEXT:    vmovdqa (%r8), %xmm86791; AVX-NEXT:    vpshufb {{.*#+}} xmm1 = xmm8[u,u,u,u,u,7],zero,xmm8[u,u,u,u,u,8],zero,xmm8[u,u]6792; AVX-NEXT:    vpor %xmm0, %xmm1, %xmm06793; AVX-NEXT:    vpshufb {{.*#+}} xmm0 = zero,xmm0[u,u,u,u,5,6],zero,xmm0[u,u,u,u,12,13],zero,xmm0[u]6794; AVX-NEXT:    vmovdqa (%rax), %xmm76795; AVX-NEXT:    vpshufb {{.*#+}} xmm1 = xmm7[6,u,u,u,u],zero,zero,xmm7[7,u,u,u,u],zero,zero,xmm7[8,u]6796; AVX-NEXT:    vpor %xmm1, %xmm0, %xmm06797; AVX-NEXT:    vpshufb %xmm5, %xmm7, %xmm16798; AVX-NEXT:    vpunpcklbw {{.*#+}} xmm4 = xmm8[0],xmm6[0],xmm8[1],xmm6[1],xmm8[2],xmm6[2],xmm8[3],xmm6[3],xmm8[4],xmm6[4],xmm8[5],xmm6[5],xmm8[6],xmm6[6],xmm8[7],xmm6[7]6799; AVX-NEXT:    vmovdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6800; AVX-NEXT:    vmovdqa %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6801; AVX-NEXT:    vmovdqa %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6802; AVX-NEXT:    vpshufb %xmm14, %xmm4, %xmm156803; AVX-NEXT:    vpor %xmm1, %xmm15, %xmm16804; AVX-NEXT:    vinsertf128 $1, %xmm0, %ymm1, %ymm156805; AVX-NEXT:    vmovdqa (%rcx), %xmm56806; AVX-NEXT:    vmovdqa (%rdx), %xmm36807; AVX-NEXT:    vpshufb {{.*#+}} xmm0 = xmm5[u,u,u],zero,xmm5[7,u,u,u,u,u],zero,xmm5[8,u,u,u,u]6808; AVX-NEXT:    vpshufb {{.*#+}} xmm14 = xmm3[u,u,u,7],zero,xmm3[u,u,u,u,u,8],zero,xmm3[u,u,u,u]6809; AVX-NEXT:    vpor %xmm0, %xmm14, %xmm06810; AVX-NEXT:    vpunpcklbw {{.*#+}} xmm1 = xmm3[0],xmm5[0],xmm3[1],xmm5[1],xmm3[2],xmm5[2],xmm3[3],xmm5[3],xmm3[4],xmm5[4],xmm3[5],xmm5[5],xmm3[6],xmm5[6],xmm3[7],xmm5[7]6811; AVX-NEXT:    vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6812; AVX-NEXT:    vpshufb %xmm9, %xmm1, %xmm146813; AVX-NEXT:    vinsertf128 $1, %xmm0, %ymm14, %ymm46814; AVX-NEXT:    vmovdqa (%rsi), %xmm146815; AVX-NEXT:    vmovdqa (%rdi), %xmm26816; AVX-NEXT:    vpshufb {{.*#+}} xmm1 = xmm14[u],zero,xmm14[7,u,u,u,u,u],zero,xmm14[8,u,u,u,u,u],zero6817; AVX-NEXT:    vpshufb {{.*#+}} xmm11 = xmm2[u,7],zero,xmm2[u,u,u,u,u,8],zero,xmm2[u,u,u,u,u,9]6818; AVX-NEXT:    vpor %xmm1, %xmm11, %xmm16819; AVX-NEXT:    vpunpcklbw {{.*#+}} xmm0 = xmm2[0],xmm14[0],xmm2[1],xmm14[1],xmm2[2],xmm14[2],xmm2[3],xmm14[3],xmm2[4],xmm14[4],xmm2[5],xmm14[5],xmm2[6],xmm14[6],xmm2[7],xmm14[7]6820; AVX-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6821; AVX-NEXT:    vpshufb {{.*#+}} xmm11 = xmm0[u,u,u,10,11,u,u,u,u,u,12,13,u,u,u,u]6822; AVX-NEXT:    vinsertf128 $1, %xmm1, %ymm11, %ymm16823; AVX-NEXT:    vmovaps {{.*#+}} ymm9 = [255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255]6824; AVX-NEXT:    vandnps %ymm4, %ymm9, %ymm46825; AVX-NEXT:    vandps %ymm1, %ymm9, %ymm16826; AVX-NEXT:    vorps %ymm4, %ymm1, %ymm16827; AVX-NEXT:    vmovaps {{.*#+}} ymm0 = [0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255]6828; AVX-NEXT:    vandnps %ymm15, %ymm0, %ymm46829; AVX-NEXT:    vandps %ymm0, %ymm1, %ymm16830; AVX-NEXT:    vorps %ymm4, %ymm1, %ymm16831; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6832; AVX-NEXT:    vmovdqa %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6833; AVX-NEXT:    vpshufb {{.*#+}} xmm1 = xmm7[u],zero,zero,xmm7[11,u,u,u,u],zero,zero,xmm7[12,u,u,u,u],zero6834; AVX-NEXT:    vpunpckhbw {{.*#+}} xmm4 = xmm8[8],xmm6[8],xmm8[9],xmm6[9],xmm8[10],xmm6[10],xmm8[11],xmm6[11],xmm8[12],xmm6[12],xmm8[13],xmm6[13],xmm8[14],xmm6[14],xmm8[15],xmm6[15]6835; AVX-NEXT:    vpshufb {{.*#+}} xmm11 = xmm4[u,6,7],zero,xmm4[u,u,u,u,8,9],zero,xmm4[u,u,u,u,10]6836; AVX-NEXT:    vpor %xmm1, %xmm11, %xmm16837; AVX-NEXT:    vpshufb {{.*#+}} xmm4 = xmm4[u,u,u,2,3],zero,xmm4[u,u,u,u,4,5],zero,xmm4[u,u,u]6838; AVX-NEXT:    vpshufb {{.*#+}} xmm11 = xmm7[u,u,u],zero,zero,xmm7[9,u,u,u,u],zero,zero,xmm7[10,u,u,u]6839; AVX-NEXT:    vpor %xmm4, %xmm11, %xmm46840; AVX-NEXT:    vinsertf128 $1, %xmm1, %ymm4, %ymm16841; AVX-NEXT:    vpunpckhbw {{.*#+}} xmm4 = xmm2[8],xmm14[8],xmm2[9],xmm14[9],xmm2[10],xmm14[10],xmm2[11],xmm14[11],xmm2[12],xmm14[12],xmm2[13],xmm14[13],xmm2[14],xmm14[14],xmm2[15],xmm14[15]6842; AVX-NEXT:    vmovdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6843; AVX-NEXT:    vpunpckhbw {{.*#+}} xmm0 = xmm14[8],xmm2[8],xmm14[9],xmm2[9],xmm14[10],xmm2[10],xmm14[11],xmm2[11],xmm14[12],xmm2[12],xmm14[13],xmm2[13],xmm14[14],xmm2[14],xmm14[15],xmm2[15]6844; AVX-NEXT:    vmovdqa {{.*#+}} xmm6 = [2,u,u,u,u,u,5,4,u,u,u,u,u,7,6,u]6845; AVX-NEXT:    vpshufb %xmm6, %xmm0, %xmm06846; AVX-NEXT:    vmovdqa {{.*#+}} xmm14 = [u,u,u,u,8,9,u,u,u,u,u,10,11,u,u,u]6847; AVX-NEXT:    vpshufb %xmm14, %xmm4, %xmm46848; AVX-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm06849; AVX-NEXT:    vpunpckhbw {{.*#+}} xmm4 = xmm5[8],xmm3[8],xmm5[9],xmm3[9],xmm5[10],xmm3[10],xmm5[11],xmm3[11],xmm5[12],xmm3[12],xmm5[13],xmm3[13],xmm5[14],xmm3[14],xmm5[15],xmm3[15]6850; AVX-NEXT:    vpunpckhbw {{.*#+}} xmm3 = xmm3[8],xmm5[8],xmm3[9],xmm5[9],xmm3[10],xmm5[10],xmm3[11],xmm5[11],xmm3[12],xmm5[12],xmm3[13],xmm5[13],xmm3[14],xmm5[14],xmm3[15],xmm5[15]6851; AVX-NEXT:    vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6852; AVX-NEXT:    vmovdqa {{.*#+}} xmm7 = [6,u,u,u,u,u,9,8,u,u,u,u,u,11,10,u]6853; AVX-NEXT:    vpshufb %xmm7, %xmm4, %xmm26854; AVX-NEXT:    vmovdqa {{.*#+}} xmm5 = [u,2,3,u,u,u,u,u,4,5,u,u,u,u,u,6]6855; AVX-NEXT:    vpshufb %xmm5, %xmm3, %xmm36856; AVX-NEXT:    vinsertf128 $1, %xmm2, %ymm3, %ymm26857; AVX-NEXT:    vmovaps {{.*#+}} ymm3 = [0,255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255]6858; AVX-NEXT:    vandnps %ymm0, %ymm3, %ymm06859; AVX-NEXT:    vandps %ymm3, %ymm2, %ymm26860; AVX-NEXT:    vorps %ymm0, %ymm2, %ymm06861; AVX-NEXT:    vmovaps {{.*#+}} ymm2 = [255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0]6862; AVX-NEXT:    vandnps %ymm1, %ymm2, %ymm16863; AVX-NEXT:    vandps %ymm2, %ymm0, %ymm06864; AVX-NEXT:    vorps %ymm1, %ymm0, %ymm06865; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6866; AVX-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6867; AVX-NEXT:    vpunpcklbw {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm1 # 16-byte Folded Reload6868; AVX-NEXT:    # xmm1 = xmm0[0],mem[0],xmm0[1],mem[1],xmm0[2],mem[2],xmm0[3],mem[3],xmm0[4],mem[4],xmm0[5],mem[5],xmm0[6],mem[6],xmm0[7],mem[7]6869; AVX-NEXT:    vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6870; AVX-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload6871; AVX-NEXT:    vpshufb {{.*#+}} xmm0 = zero,zero,xmm3[4,u,u,u,u],zero,zero,xmm3[5,u,u,u,u],zero,zero6872; AVX-NEXT:    vpshufb {{.*#+}} xmm2 = xmm1[8,9],zero,xmm1[u,u,u,u,10,11],zero,xmm1[u,u,u,u,12,13]6873; AVX-NEXT:    vpor %xmm0, %xmm2, %xmm06874; AVX-NEXT:    vpshufb {{.*#+}} xmm2 = xmm3[u,u],zero,zero,xmm3[2,u,u,u,u],zero,zero,xmm3[3,u,u,u,u]6875; AVX-NEXT:    vpshufb {{.*#+}} xmm3 = xmm1[u,u,4,5],zero,xmm1[u,u,u,u,6,7],zero,xmm1[u,u,u,u]6876; AVX-NEXT:    vpor %xmm2, %xmm3, %xmm26877; AVX-NEXT:    vinsertf128 $1, %xmm0, %ymm2, %ymm06878; AVX-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload6879; AVX-NEXT:    vpunpcklbw {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload6880; AVX-NEXT:    # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1],xmm1[2],mem[2],xmm1[3],mem[3],xmm1[4],mem[4],xmm1[5],mem[5],xmm1[6],mem[6],xmm1[7],mem[7]6881; AVX-NEXT:    vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6882; AVX-NEXT:    vpshufb {{.*#+}} xmm3 = xmm1[u,u,u,10,11,u,u,u,u,u,12,13,u,u,u,u]6883; AVX-NEXT:    vpshufb {{.*#+}} xmm4 = xmm1[u,u,u,u,u,6,7,u,u,u,u,u,8,9,u,u]6884; AVX-NEXT:    vinsertf128 $1, %xmm3, %ymm4, %ymm36885; AVX-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload6886; AVX-NEXT:    vpunpcklbw {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload6887; AVX-NEXT:    # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1],xmm1[2],mem[2],xmm1[3],mem[3],xmm1[4],mem[4],xmm1[5],mem[5],xmm1[6],mem[6],xmm1[7],mem[7]6888; AVX-NEXT:    vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6889; AVX-NEXT:    vpshufb {{.*#+}} xmm4 = xmm1[u,u,u,u,u,10,11,u,u,u,u,u,12,13,u,u]6890; AVX-NEXT:    vmovdqa {{.*#+}} xmm2 = [4,5,u,u,u,u,u,6,7,u,u,u,u,u,8,9]6891; AVX-NEXT:    vpshufb %xmm2, %xmm1, %xmm116892; AVX-NEXT:    vinsertf128 $1, %xmm4, %ymm11, %ymm46893; AVX-NEXT:    vandnps %ymm3, %ymm9, %ymm36894; AVX-NEXT:    vandps %ymm4, %ymm9, %ymm46895; AVX-NEXT:    vorps %ymm3, %ymm4, %ymm36896; AVX-NEXT:    vmovaps {{.*#+}} ymm1 = [255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0]6897; AVX-NEXT:    vandnps %ymm0, %ymm1, %ymm06898; AVX-NEXT:    vandps %ymm1, %ymm3, %ymm36899; AVX-NEXT:    vorps %ymm0, %ymm3, %ymm06900; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6901; AVX-NEXT:    vmovdqa (%rsp), %xmm9 # 16-byte Reload6902; AVX-NEXT:    vpshufb {{.*#+}} xmm0 = xmm9[u,u,u],zero,xmm9[7,u,u,u,u,u],zero,xmm9[8,u,u,u,u]6903; AVX-NEXT:    vpshufb {{.*#+}} xmm3 = xmm13[u,u,u,7],zero,xmm13[u,u,u,u,u,8],zero,xmm13[u,u,u,u]6904; AVX-NEXT:    vpor %xmm0, %xmm3, %xmm36905; AVX-NEXT:    vpunpckhbw {{.*#+}} xmm0 = xmm13[8],xmm9[8],xmm13[9],xmm9[9],xmm13[10],xmm9[10],xmm13[11],xmm9[11],xmm13[12],xmm9[12],xmm13[13],xmm9[13],xmm13[14],xmm9[14],xmm13[15],xmm9[15]6906; AVX-NEXT:    vpshufb %xmm5, %xmm0, %xmm46907; AVX-NEXT:    vinsertf128 $1, %xmm4, %ymm3, %ymm36908; AVX-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload6909; AVX-NEXT:    vpshufb {{.*#+}} xmm4 = xmm8[u],zero,xmm8[7,u,u,u,u,u],zero,xmm8[8,u,u,u,u,u],zero6910; AVX-NEXT:    vpshufb {{.*#+}} xmm11 = xmm10[u,7],zero,xmm10[u,u,u,u,u,8],zero,xmm10[u,u,u,u,u,9]6911; AVX-NEXT:    vpor %xmm4, %xmm11, %xmm46912; AVX-NEXT:    vpunpckhbw {{.*#+}} xmm11 = xmm8[8],xmm10[8],xmm8[9],xmm10[9],xmm8[10],xmm10[10],xmm8[11],xmm10[11],xmm8[12],xmm10[12],xmm8[13],xmm10[13],xmm8[14],xmm10[14],xmm8[15],xmm10[15]6913; AVX-NEXT:    vpshufb %xmm6, %xmm11, %xmm116914; AVX-NEXT:    vinsertf128 $1, %xmm11, %ymm4, %ymm46915; AVX-NEXT:    vmovaps {{.*#+}} ymm1 = [255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0]6916; AVX-NEXT:    vandnps %ymm3, %ymm1, %ymm36917; AVX-NEXT:    vandps %ymm1, %ymm4, %ymm46918; AVX-NEXT:    vorps %ymm3, %ymm4, %ymm36919; AVX-NEXT:    vextractf128 $1, %ymm3, %xmm46920; AVX-NEXT:    vpshufb {{.*#+}} xmm4 = xmm4[0,1,2],zero,xmm4[u,u,6,7,8,9],zero,xmm4[u,u,13,14,15]6921; AVX-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload6922; AVX-NEXT:    vpshufb {{.*#+}} xmm11 = zero,zero,zero,xmm6[9,u,u],zero,zero,zero,zero,xmm6[10,u,u],zero,zero,zero6923; AVX-NEXT:    vpor %xmm4, %xmm11, %xmm46924; AVX-NEXT:    vpshufb {{.*#+}} xmm4 = xmm4[0,1,2,3],zero,xmm4[u,6,7,8,9,10],zero,xmm4[u,13,14,15]6925; AVX-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload6926; AVX-NEXT:    vpshufb {{.*#+}} xmm11 = zero,zero,zero,zero,xmm5[9,u],zero,zero,zero,zero,zero,xmm5[10,u],zero,zero,zero6927; AVX-NEXT:    vpor %xmm4, %xmm11, %xmm46928; AVX-NEXT:    vpshufb {{.*#+}} xmm4 = xmm4[0,1,2,3,4],zero,xmm4[6,7,8,9,10,11],zero,xmm4[13,14,15]6929; AVX-NEXT:    vpshufb {{.*#+}} xmm11 = zero,zero,zero,zero,zero,xmm12[9],zero,zero,zero,zero,zero,zero,xmm12[10],zero,zero,zero6930; AVX-NEXT:    vpor %xmm4, %xmm11, %xmm16931; AVX-NEXT:    vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6932; AVX-NEXT:    vpshufb {{.*#+}} xmm3 = xmm3[u,1,2,3,4],zero,xmm3[u,u,8,9,10,11],zero,xmm3[u,u,15]6933; AVX-NEXT:    vpshufb {{.*#+}} xmm4 = xmm6[u],zero,zero,zero,zero,xmm6[7,u,u],zero,zero,zero,zero,xmm6[8,u,u],zero6934; AVX-NEXT:    vpor %xmm4, %xmm3, %xmm36935; AVX-NEXT:    vpshufb {{.*#+}} xmm3 = xmm3[u,1,2,3,4,5],zero,xmm3[u,8,9,10,11,12],zero,xmm3[u,15]6936; AVX-NEXT:    vpshufb {{.*#+}} xmm4 = xmm5[u],zero,zero,zero,zero,zero,xmm5[7,u],zero,zero,zero,zero,zero,xmm5[8,u],zero6937; AVX-NEXT:    vpor %xmm4, %xmm3, %xmm36938; AVX-NEXT:    vpshufb {{.*#+}} xmm3 = zero,xmm3[1,2,3,4,5,6],zero,xmm3[8,9,10,11,12,13],zero,xmm3[15]6939; AVX-NEXT:    vpshufb {{.*#+}} xmm4 = xmm12[6],zero,zero,zero,zero,zero,zero,xmm12[7],zero,zero,zero,zero,zero,zero,xmm12[8],zero6940; AVX-NEXT:    vpor %xmm4, %xmm3, %xmm16941; AVX-NEXT:    vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6942; AVX-NEXT:    vpunpckhbw {{.*#+}} xmm3 = xmm10[8],xmm8[8],xmm10[9],xmm8[9],xmm10[10],xmm8[10],xmm10[11],xmm8[11],xmm10[12],xmm8[12],xmm10[13],xmm8[13],xmm10[14],xmm8[14],xmm10[15],xmm8[15]6943; AVX-NEXT:    vpshufb %xmm14, %xmm3, %xmm46944; AVX-NEXT:    vpmovsxdq {{.*#+}} xmm10 = [218890240,986624]6945; AVX-NEXT:    vpshufb %xmm10, %xmm3, %xmm36946; AVX-NEXT:    vinsertf128 $1, %xmm3, %ymm4, %ymm36947; AVX-NEXT:    vpunpckhbw {{.*#+}} xmm4 = xmm9[8],xmm13[8],xmm9[9],xmm13[9],xmm9[10],xmm13[10],xmm9[11],xmm13[11],xmm9[12],xmm13[12],xmm9[13],xmm13[13],xmm9[14],xmm13[14],xmm9[15],xmm13[15]6948; AVX-NEXT:    vpshufb %xmm7, %xmm4, %xmm46949; AVX-NEXT:    vmovdqa {{.*#+}} xmm9 = [u,u,u,u,12,13,u,u,u,u,u,14,15,u,u,u]6950; AVX-NEXT:    vpshufb %xmm9, %xmm0, %xmm06951; AVX-NEXT:    vinsertf128 $1, %xmm0, %ymm4, %ymm06952; AVX-NEXT:    vmovaps {{.*#+}} ymm8 = [255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255]6953; AVX-NEXT:    vandnps %ymm3, %ymm8, %ymm36954; AVX-NEXT:    vandps %ymm0, %ymm8, %ymm06955; AVX-NEXT:    vorps %ymm3, %ymm0, %ymm06956; AVX-NEXT:    vpshufb {{.*#+}} xmm3 = xmm0[0],zero,xmm0[u,u,4,5,6,7],zero,xmm0[u,u,11,12,13,14],zero6957; AVX-NEXT:    vpshufb {{.*#+}} xmm4 = zero,xmm6[11,u,u],zero,zero,zero,zero,xmm6[12,u,u],zero,zero,zero,zero,xmm6[13]6958; AVX-NEXT:    vpor %xmm4, %xmm3, %xmm36959; AVX-NEXT:    vpshufb {{.*#+}} xmm3 = xmm3[0,1],zero,xmm3[u,4,5,6,7,8],zero,xmm3[u,11,12,13,14,15]6960; AVX-NEXT:    vpshufb {{.*#+}} xmm4 = zero,zero,xmm5[11,u],zero,zero,zero,zero,zero,xmm5[12,u],zero,zero,zero,zero,zero6961; AVX-NEXT:    vpor %xmm4, %xmm3, %xmm36962; AVX-NEXT:    vpshufb {{.*#+}} xmm3 = xmm3[0,1,2],zero,xmm3[4,5,6,7,8,9],zero,xmm3[11,12,13,14,15]6963; AVX-NEXT:    vpshufb {{.*#+}} xmm4 = zero,zero,zero,xmm12[11],zero,zero,zero,zero,zero,zero,xmm12[12],zero,zero,zero,zero,zero6964; AVX-NEXT:    vpor %xmm4, %xmm3, %xmm16965; AVX-NEXT:    vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6966; AVX-NEXT:    vextractf128 $1, %ymm0, %xmm06967; AVX-NEXT:    vpalignr {{.*#+}} xmm0 = xmm6[14,15],xmm0[0,1,2,3,4,5,6,7,8,9,10,11,12,13]6968; AVX-NEXT:    vpshufb {{.*#+}} xmm0 = zero,xmm0[u,4,5,6,7,0],zero,xmm0[u,11,12,13,14,1],zero,xmm0[u]6969; AVX-NEXT:    vpshufb {{.*#+}} xmm3 = xmm5[13,u],zero,zero,zero,zero,zero,xmm5[14,u],zero,zero,zero,zero,zero,xmm5[15,u]6970; AVX-NEXT:    vpor %xmm3, %xmm0, %xmm06971; AVX-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[0],zero,xmm0[2,3,4,5,6,7],zero,xmm0[9,10,11,12,13,14],zero6972; AVX-NEXT:    vpshufb {{.*#+}} xmm3 = zero,xmm12[13],zero,zero,zero,zero,zero,zero,xmm12[14],zero,zero,zero,zero,zero,zero,xmm12[15]6973; AVX-NEXT:    vpor %xmm3, %xmm0, %xmm06974; AVX-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6975; AVX-NEXT:    vpmovsxdq {{.*#+}} xmm15 = [16777216,197120]6976; AVX-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6977; AVX-NEXT:    vpshufb %xmm15, %xmm0, %xmm06978; AVX-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload6979; AVX-NEXT:    vpshufb %xmm9, %xmm1, %xmm36980; AVX-NEXT:    vinsertf128 $1, %xmm0, %ymm3, %ymm06981; AVX-NEXT:    vmovdqa {{.*#+}} xmm3 = [0,1,u,u,u,u,u,2,3,u,u,u,u,u,4,5]6982; AVX-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload6983; AVX-NEXT:    vpshufb %xmm3, %xmm1, %xmm46984; AVX-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload6985; AVX-NEXT:    vpshufb %xmm10, %xmm1, %xmm76986; AVX-NEXT:    vinsertf128 $1, %xmm4, %ymm7, %ymm46987; AVX-NEXT:    vandnps %ymm0, %ymm8, %ymm06988; AVX-NEXT:    vandps %ymm4, %ymm8, %ymm46989; AVX-NEXT:    vorps %ymm0, %ymm4, %ymm06990; AVX-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload6991; AVX-NEXT:    vpunpckhbw {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm4 # 16-byte Folded Reload6992; AVX-NEXT:    # xmm4 = xmm1[8],mem[8],xmm1[9],mem[9],xmm1[10],mem[10],xmm1[11],mem[11],xmm1[12],mem[12],xmm1[13],mem[13],xmm1[14],mem[14],xmm1[15],mem[15]6993; AVX-NEXT:    vpshufb {{.*#+}} xmm4 = xmm4[10],zero,xmm4[u,u,u,u,13,12],zero,xmm4[u,u,u,u,15,14],zero6994; AVX-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload6995; AVX-NEXT:    vpshufb {{.*#+}} xmm7 = zero,xmm14[13,u,u,u,u],zero,zero,xmm14[14,u,u,u,u],zero,zero,xmm14[15]6996; AVX-NEXT:    vpor %xmm7, %xmm4, %xmm76997; AVX-NEXT:    vmovdqa {{.*#+}} xmm4 = [u,u,u,u,0,1,u,u,u,u,u,2,3,u,u,u]6998; AVX-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload6999; AVX-NEXT:    vpshufb %xmm4, %xmm1, %xmm107000; AVX-NEXT:    vpalignr {{.*#+}} xmm5 = xmm10[4,5,6,7,8,9,10,11,12,13,14,15],xmm12[0,1,2,3]7001; AVX-NEXT:    vmovdqa {{.*#+}} xmm11 = [u,u,u,u,0,1,12,u,u,u,u,7,8,13,u,u]7002; AVX-NEXT:    vpshufb %xmm11, %xmm5, %xmm57003; AVX-NEXT:    vinsertf128 $1, %xmm5, %ymm7, %ymm57004; AVX-NEXT:    vmovaps {{.*#+}} ymm7 = [0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255]7005; AVX-NEXT:    vandps %ymm7, %ymm0, %ymm07006; AVX-NEXT:    vandnps %ymm5, %ymm7, %ymm57007; AVX-NEXT:    vorps %ymm5, %ymm0, %ymm07008; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7009; AVX-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload7010; AVX-NEXT:    vpshufb %xmm2, %xmm8, %xmm57011; AVX-NEXT:    vpshufb %xmm15, %xmm8, %xmm107012; AVX-NEXT:    vinsertf128 $1, %xmm5, %ymm10, %ymm57013; AVX-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload7014; AVX-NEXT:    vmovdqa {{.*#+}} xmm6 = [u,u,u,u,u,6,7,u,u,u,u,u,8,9,u,u]7015; AVX-NEXT:    vpshufb %xmm6, %xmm8, %xmm107016; AVX-NEXT:    vpshufb %xmm3, %xmm8, %xmm127017; AVX-NEXT:    vinsertf128 $1, %xmm10, %ymm12, %ymm107018; AVX-NEXT:    vmovaps {{.*#+}} ymm12 = [255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0,0]7019; AVX-NEXT:    vandnps %ymm5, %ymm12, %ymm57020; AVX-NEXT:    vandps %ymm12, %ymm10, %ymm107021; AVX-NEXT:    vorps %ymm5, %ymm10, %ymm57022; AVX-NEXT:    vmovdqa {{.*#+}} xmm0 = [u,u,128,128,2,u,u,u,u,128,128,3,u,u,u,u]7023; AVX-NEXT:    vpshufb %xmm0, %xmm14, %xmm107024; AVX-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload7025; AVX-NEXT:    vmovdqa {{.*#+}} xmm1 = [u,u,4,5,128,u,u,u,u,6,7,128,u,u,u,u]7026; AVX-NEXT:    vpshufb %xmm1, %xmm8, %xmm137027; AVX-NEXT:    vpor %xmm10, %xmm13, %xmm107028; AVX-NEXT:    vpshufb %xmm4, %xmm8, %xmm137029; AVX-NEXT:    vpalignr {{.*#+}} xmm13 = xmm13[4,5,6,7,8,9,10,11,12,13,14,15],xmm14[0,1,2,3]7030; AVX-NEXT:    vpshufb %xmm11, %xmm13, %xmm137031; AVX-NEXT:    vinsertf128 $1, %xmm10, %ymm13, %ymm107032; AVX-NEXT:    vmovaps {{.*#+}} ymm13 = [255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255]7033; AVX-NEXT:    vandps %ymm5, %ymm13, %ymm57034; AVX-NEXT:    vandnps %ymm10, %ymm13, %ymm107035; AVX-NEXT:    vorps %ymm5, %ymm10, %ymm107036; AVX-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload7037; AVX-NEXT:    vpshufb %xmm2, %xmm8, %xmm57038; AVX-NEXT:    vpshufb %xmm15, %xmm8, %xmm147039; AVX-NEXT:    vinsertf128 $1, %xmm5, %ymm14, %ymm57040; AVX-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload7041; AVX-NEXT:    vpshufb %xmm6, %xmm2, %xmm147042; AVX-NEXT:    vpshufb %xmm3, %xmm2, %xmm87043; AVX-NEXT:    vinsertf128 $1, %xmm14, %ymm8, %ymm87044; AVX-NEXT:    vandnps %ymm5, %ymm12, %ymm57045; AVX-NEXT:    vandps %ymm12, %ymm8, %ymm87046; AVX-NEXT:    vorps %ymm5, %ymm8, %ymm57047; AVX-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload7048; AVX-NEXT:    vpshufb %xmm0, %xmm6, %xmm87049; AVX-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload7050; AVX-NEXT:    vpshufb %xmm1, %xmm0, %xmm127051; AVX-NEXT:    vpor %xmm8, %xmm12, %xmm87052; AVX-NEXT:    vpshufb %xmm4, %xmm0, %xmm127053; AVX-NEXT:    vpalignr {{.*#+}} xmm12 = xmm12[4,5,6,7,8,9,10,11,12,13,14,15],xmm6[0,1,2,3]7054; AVX-NEXT:    vpshufb %xmm11, %xmm12, %xmm127055; AVX-NEXT:    vinsertf128 $1, %xmm8, %ymm12, %ymm87056; AVX-NEXT:    vandps %ymm5, %ymm13, %ymm57057; AVX-NEXT:    vandnps %ymm8, %ymm13, %ymm87058; AVX-NEXT:    vorps %ymm5, %ymm8, %ymm57059; AVX-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload7060; AVX-NEXT:    vpshufb %xmm15, %xmm0, %xmm87061; AVX-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload7062; AVX-NEXT:    vpshufb %xmm9, %xmm0, %xmm97063; AVX-NEXT:    vinsertf128 $1, %xmm8, %ymm9, %ymm87064; AVX-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload7065; AVX-NEXT:    vpshufb %xmm3, %xmm0, %xmm27066; AVX-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload7067; AVX-NEXT:    vpshufb {{.*#+}} xmm3 = xmm0[u,u,12,13,u,u,u,u,u,14,15,u,u,u,u,u]7068; AVX-NEXT:    vinsertf128 $1, %xmm2, %ymm3, %ymm27069; AVX-NEXT:    vmovaps {{.*#+}} ymm0 = [255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255]7070; AVX-NEXT:    vandnps %ymm8, %ymm0, %ymm37071; AVX-NEXT:    vandps %ymm0, %ymm2, %ymm27072; AVX-NEXT:    vorps %ymm3, %ymm2, %ymm27073; AVX-NEXT:    vpshufb {{.*#+}} xmm3 = zero,xmm6[13,u,u,u,u],zero,zero,xmm6[14,u,u,u,u],zero,zero,xmm6[15]7074; AVX-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload7075; AVX-NEXT:    vpunpckhbw {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm6 # 16-byte Folded Reload7076; AVX-NEXT:    # xmm6 = xmm0[8],mem[8],xmm0[9],mem[9],xmm0[10],mem[10],xmm0[11],mem[11],xmm0[12],mem[12],xmm0[13],mem[13],xmm0[14],mem[14],xmm0[15],mem[15]7077; AVX-NEXT:    vpshufb {{.*#+}} xmm6 = xmm6[10],zero,xmm6[u,u,u,u,13,12],zero,xmm6[u,u,u,u,15,14],zero7078; AVX-NEXT:    vpor %xmm3, %xmm6, %xmm37079; AVX-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload7080; AVX-NEXT:    vpshufb %xmm4, %xmm0, %xmm17081; AVX-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload7082; AVX-NEXT:    vpalignr {{.*#+}} xmm1 = xmm1[4,5,6,7,8,9,10,11,12,13,14,15],xmm0[0,1,2,3]7083; AVX-NEXT:    vpshufb %xmm11, %xmm1, %xmm17084; AVX-NEXT:    vinsertf128 $1, %xmm1, %ymm3, %ymm17085; AVX-NEXT:    vandps %ymm7, %ymm2, %ymm27086; AVX-NEXT:    vandnps %ymm1, %ymm7, %ymm17087; AVX-NEXT:    vorps %ymm1, %ymm2, %ymm17088; AVX-NEXT:    movq {{[0-9]+}}(%rsp), %rax7089; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload7090; AVX-NEXT:    vmovaps %ymm0, 128(%rax)7091; AVX-NEXT:    vmovaps %ymm1, 96(%rax)7092; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload7093; AVX-NEXT:    vmovaps %ymm0, 64(%rax)7094; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload7095; AVX-NEXT:    vmovaps %ymm0, 32(%rax)7096; AVX-NEXT:    vmovaps %ymm5, (%rax)7097; AVX-NEXT:    vmovaps %ymm10, 224(%rax)7098; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload7099; AVX-NEXT:    vmovaps %ymm1, 352(%rax)7100; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload7101; AVX-NEXT:    vmovaps %ymm0, 320(%rax)7102; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload7103; AVX-NEXT:    vmovaps %ymm0, 288(%rax)7104; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload7105; AVX-NEXT:    vmovaps %ymm0, 256(%rax)7106; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload7107; AVX-NEXT:    vmovaps %ymm0, 160(%rax)7108; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload7109; AVX-NEXT:    vmovaps %ymm0, 192(%rax)7110; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload7111; AVX-NEXT:    vmovaps %xmm0, 432(%rax)7112; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload7113; AVX-NEXT:    vmovaps %xmm0, 416(%rax)7114; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload7115; AVX-NEXT:    vmovaps %xmm0, 384(%rax)7116; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload7117; AVX-NEXT:    vmovaps %xmm0, 400(%rax)7118; AVX-NEXT:    addq $616, %rsp # imm = 0x2687119; AVX-NEXT:    vzeroupper7120; AVX-NEXT:    retq7121;7122; AVX2-LABEL: store_i8_stride7_vf64:7123; AVX2:       # %bb.0:7124; AVX2-NEXT:    subq $824, %rsp # imm = 0x3387125; AVX2-NEXT:    movq {{[0-9]+}}(%rsp), %rax7126; AVX2-NEXT:    vmovdqa 32(%rdi), %ymm07127; AVX2-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7128; AVX2-NEXT:    vmovdqa 32(%rsi), %ymm27129; AVX2-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7130; AVX2-NEXT:    vmovdqa 32(%rdx), %ymm67131; AVX2-NEXT:    vmovdqu %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7132; AVX2-NEXT:    vmovdqa 32(%rcx), %ymm77133; AVX2-NEXT:    vmovdqu %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7134; AVX2-NEXT:    vmovdqa 32(%r8), %ymm57135; AVX2-NEXT:    vmovdqu %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7136; AVX2-NEXT:    vmovdqa 32(%r9), %ymm47137; AVX2-NEXT:    vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7138; AVX2-NEXT:    vmovdqa 32(%rax), %ymm37139; AVX2-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7140; AVX2-NEXT:    vpshufb {{.*#+}} ymm0 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm0[23],zero,ymm0[27,20,21,26],zero,ymm0[24],zero,ymm0[26,27,26,27],zero,ymm0[25]7141; AVX2-NEXT:    vpshufb {{.*#+}} ymm1 = ymm2[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,25],zero,ymm2[23],zero,zero,zero,zero,ymm2[26],zero,ymm2[24],zero,zero,zero,zero,ymm2[27],zero7142; AVX2-NEXT:    vpor %ymm0, %ymm1, %ymm07143; AVX2-NEXT:    vpermq {{.*#+}} ymm0 = ymm0[2,3,2,3]7144; AVX2-NEXT:    vpshufb {{.*#+}} ymm1 = ymm7[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,ymm7[25],zero,ymm7[23],zero,zero,zero,zero,ymm7[26],zero,ymm7[24],zero,zero,zero,zero7145; AVX2-NEXT:    vpshufb {{.*#+}} ymm2 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm6[25],zero,ymm6[23],zero,zero,zero,zero,ymm6[26],zero,ymm6[24],zero,zero,zero,zero,ymm6[27]7146; AVX2-NEXT:    vpor %ymm1, %ymm2, %ymm17147; AVX2-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[2,3,2,3]7148; AVX2-NEXT:    vmovdqa {{.*#+}} ymm2 = [u,255,255,0,0,u,u,u,255,255,0,0,u,u,u,255,255,0,0,u,u,u,255,255,0,0,u,u,u,255,255,0]7149; AVX2-NEXT:    vpblendvb %ymm2, %ymm0, %ymm1, %ymm07150; AVX2-NEXT:    vpshufb {{.*#+}} ymm1 = ymm5[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,24,25,24,25,22,23,22,23,24,25,26,27,24,25,30,31]7151; AVX2-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[2,3,2,3]7152; AVX2-NEXT:    vmovdqa {{.*#+}} ymm2 = [u,255,255,255,255,0,u,u,255,255,255,255,0,u,u,255,255,255,255,0,u,u,255,255,255,255,0,u,u,255,255,255]7153; AVX2-NEXT:    vpblendvb %ymm2, %ymm0, %ymm1, %ymm07154; AVX2-NEXT:    vpshufb {{.*#+}} ymm1 = ymm4[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,26,25,24,23,u,u,u,u,u,u,u,u,u]7155; AVX2-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[2,2,2,2]7156; AVX2-NEXT:    vmovdqa {{.*#+}} ymm2 = [u,255,255,255,255,255,0,u,255,255,255,255,255,0,u,255,255,255,255,255,0,u,255,255,255,255,255,0,u,255,255,255]7157; AVX2-NEXT:    vpblendvb %ymm2, %ymm0, %ymm1, %ymm07158; AVX2-NEXT:    vpshufb {{.*#+}} ymm1 = ymm3[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,22,23,26,27,24,25,22,23,24,25,26,27,26,27,24,25]7159; AVX2-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[2,3,2,3]7160; AVX2-NEXT:    vmovdqa {{.*#+}} ymm2 = [0,255,255,255,255,255,255,0,255,255,255,255,255,255,0,255,255,255,255,255,255,0,255,255,255,255,255,255,0,255,255,255]7161; AVX2-NEXT:    vpblendvb %ymm2, %ymm0, %ymm1, %ymm07162; AVX2-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7163; AVX2-NEXT:    vmovdqa (%r8), %ymm07164; AVX2-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7165; AVX2-NEXT:    vmovdqa (%r9), %ymm17166; AVX2-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7167; AVX2-NEXT:    vpshufb {{.*#+}} ymm0 = ymm0[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,ymm0[27],zero,ymm0[27,28,29,30],zero,ymm0[28],zero,ymm0[26,27,30,31],zero,ymm0[29]7168; AVX2-NEXT:    vpshufb {{.*#+}} ymm1 = ymm1[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,29],zero,ymm1[27],zero,zero,zero,zero,ymm1[30],zero,ymm1[28],zero,zero,zero,zero,ymm1[31],zero7169; AVX2-NEXT:    vpor %ymm0, %ymm1, %ymm07170; AVX2-NEXT:    vmovdqa (%rax), %ymm17171; AVX2-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7172; AVX2-NEXT:    vpshufb {{.*#+}} ymm1 = ymm1[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,28,29,26,27,28,29,30,31,30,31,28,29,28,29,30,31]7173; AVX2-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[2,3,2,3]7174; AVX2-NEXT:    vpermq {{.*#+}} ymm0 = ymm0[2,3,2,3]7175; AVX2-NEXT:    vmovdqa {{.*#+}} ymm2 = [u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0]7176; AVX2-NEXT:    vpblendvb %ymm2, %ymm0, %ymm1, %ymm07177; AVX2-NEXT:    vmovdqa (%rdx), %ymm17178; AVX2-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7179; AVX2-NEXT:    vpshufhw {{.*#+}} ymm1 = ymm1[0,1,2,3,7,6,6,7,8,9,10,11,15,14,14,15]7180; AVX2-NEXT:    vpshufd {{.*#+}} ymm1 = ymm1[0,2,3,3,4,6,7,7]7181; AVX2-NEXT:    vmovdqa (%rcx), %ymm27182; AVX2-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7183; AVX2-NEXT:    vpshufb {{.*#+}} ymm2 = ymm2[11,u,u,u,u,14,u,12,u,u,u,u,15,u,13,u,27,u,u,u,u,30,u,28,u,u,u,u,31,u,29,u]7184; AVX2-NEXT:    vbroadcasti128 {{.*#+}} ymm3 = [255,0,0,0,0,255,0,255,0,0,0,0,255,0,255,0,255,0,0,0,0,255,0,255,0,0,0,0,255,0,255,0]7185; AVX2-NEXT:    # ymm3 = mem[0,1,0,1]7186; AVX2-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7187; AVX2-NEXT:    vpblendvb %ymm3, %ymm2, %ymm1, %ymm17188; AVX2-NEXT:    vmovdqa (%rdi), %ymm27189; AVX2-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7190; AVX2-NEXT:    vpshufhw {{.*#+}} ymm2 = ymm2[0,1,2,3,6,7,7,6,8,9,10,11,14,15,15,14]7191; AVX2-NEXT:    vpshufd {{.*#+}} ymm2 = ymm2[2,2,3,3,6,6,7,7]7192; AVX2-NEXT:    vmovdqa (%rsi), %ymm37193; AVX2-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7194; AVX2-NEXT:    vpshufb {{.*#+}} ymm3 = ymm3[u,u,u,14,u,12,u,u,u,u,15,u,13,u,u,u,u,u,u,30,u,28,u,u,u,u,31,u,29,u,u,u]7195; AVX2-NEXT:    vbroadcasti128 {{.*#+}} ymm4 = [0,0,255,0,255,0,0,0,0,255,0,255,0,0,0,0,0,0,255,0,255,0,0,0,0,255,0,255,0,0,0,0]7196; AVX2-NEXT:    # ymm4 = mem[0,1,0,1]7197; AVX2-NEXT:    vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7198; AVX2-NEXT:    vpblendvb %ymm4, %ymm2, %ymm3, %ymm27199; AVX2-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[2,3,2,3]7200; AVX2-NEXT:    vpermq {{.*#+}} ymm2 = ymm2[2,3,2,3]7201; AVX2-NEXT:    vmovdqa {{.*#+}} ymm3 = [255,u,u,u,0,0,255,255,u,u,u,0,0,255,255,u,u,u,0,0,255,255,u,u,u,0,0,255,255,u,u,u]7202; AVX2-NEXT:    vpblendvb %ymm3, %ymm1, %ymm2, %ymm17203; AVX2-NEXT:    vmovdqa {{.*#+}} ymm2 = [255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0]7204; AVX2-NEXT:    vpblendvb %ymm2, %ymm1, %ymm0, %ymm07205; AVX2-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7206; AVX2-NEXT:    vmovdqa 32(%rsi), %xmm137207; AVX2-NEXT:    vmovdqa 32(%rdi), %xmm147208; AVX2-NEXT:    vpunpcklbw {{.*#+}} xmm0 = xmm14[0],xmm13[0],xmm14[1],xmm13[1],xmm14[2],xmm13[2],xmm14[3],xmm13[3],xmm14[4],xmm13[4],xmm14[5],xmm13[5],xmm14[6],xmm13[6],xmm14[7],xmm13[7]7209; AVX2-NEXT:    vmovdqa %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7210; AVX2-NEXT:    vmovdqa {{.*#+}} xmm1 = [0,1,u,u,u,6,7,2,3,u,u,u,8,9,4,5]7211; AVX2-NEXT:    vpshufb %xmm1, %xmm0, %xmm07212; AVX2-NEXT:    vpermq {{.*#+}} ymm0 = ymm0[0,1,0,1]7213; AVX2-NEXT:    vmovdqa 32(%rcx), %xmm117214; AVX2-NEXT:    vmovdqa 32(%rdx), %xmm97215; AVX2-NEXT:    vpunpcklbw {{.*#+}} xmm2 = xmm9[0],xmm11[0],xmm9[1],xmm11[1],xmm9[2],xmm11[2],xmm9[3],xmm11[3],xmm9[4],xmm11[4],xmm9[5],xmm11[5],xmm9[6],xmm11[6],xmm9[7],xmm11[7]7216; AVX2-NEXT:    vmovdqa {{.*#+}} xmm3 = [4,5,0,1,u,u,u,6,7,2,3,u,u,u,8,9]7217; AVX2-NEXT:    vpshufb %xmm3, %xmm2, %xmm27218; AVX2-NEXT:    vpermq {{.*#+}} ymm2 = ymm2[0,1,0,1]7219; AVX2-NEXT:    vmovdqa {{.*#+}} ymm5 = [255,255,0,0,u,u,u,255,255,0,0,u,u,u,255,255,0,0,u,u,u,255,255,0,0,u,u,u,255,255,0,0]7220; AVX2-NEXT:    vpblendvb %ymm5, %ymm0, %ymm2, %ymm107221; AVX2-NEXT:    vmovdqa (%rsi), %xmm07222; AVX2-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7223; AVX2-NEXT:    vmovdqa (%rdi), %xmm67224; AVX2-NEXT:    vpunpcklbw {{.*#+}} xmm0 = xmm6[0],xmm0[0],xmm6[1],xmm0[1],xmm6[2],xmm0[2],xmm6[3],xmm0[3],xmm6[4],xmm0[4],xmm6[5],xmm0[5],xmm6[6],xmm0[6],xmm6[7],xmm0[7]7225; AVX2-NEXT:    vmovdqa %xmm6, (%rsp) # 16-byte Spill7226; AVX2-NEXT:    vpshufb %xmm1, %xmm0, %xmm07227; AVX2-NEXT:    vmovdqa (%rcx), %xmm17228; AVX2-NEXT:    vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7229; AVX2-NEXT:    vmovdqa (%rdx), %xmm77230; AVX2-NEXT:    vpunpcklbw {{.*#+}} xmm1 = xmm7[0],xmm1[0],xmm7[1],xmm1[1],xmm7[2],xmm1[2],xmm7[3],xmm1[3],xmm7[4],xmm1[4],xmm7[5],xmm1[5],xmm7[6],xmm1[6],xmm7[7],xmm1[7]7231; AVX2-NEXT:    vmovdqa %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7232; AVX2-NEXT:    vpshufb %xmm3, %xmm1, %xmm17233; AVX2-NEXT:    vpermq {{.*#+}} ymm0 = ymm0[0,1,0,1]7234; AVX2-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[0,1,0,1]7235; AVX2-NEXT:    vpblendvb %ymm5, %ymm0, %ymm1, %ymm47236; AVX2-NEXT:    vmovdqa 32(%r9), %xmm07237; AVX2-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7238; AVX2-NEXT:    vmovdqa 32(%r8), %xmm87239; AVX2-NEXT:    vpunpcklbw {{.*#+}} xmm1 = xmm8[0],xmm0[0],xmm8[1],xmm0[1],xmm8[2],xmm0[2],xmm8[3],xmm0[3],xmm8[4],xmm0[4],xmm8[5],xmm0[5],xmm8[6],xmm0[6],xmm8[7],xmm0[7]7240; AVX2-NEXT:    vmovdqa {{.*#+}} xmm0 = [u,u,4,5,0,1,u,u,u,6,7,2,3,u,u,u]7241; AVX2-NEXT:    vpshufb %xmm0, %xmm1, %xmm17242; AVX2-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[0,1,0,1]7243; AVX2-NEXT:    vmovdqa 32(%rax), %xmm27244; AVX2-NEXT:    vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7245; AVX2-NEXT:    vpshuflw {{.*#+}} xmm3 = xmm2[1,1,0,0,4,5,6,7]7246; AVX2-NEXT:    vpshufd {{.*#+}} xmm3 = xmm3[0,1,2,0]7247; AVX2-NEXT:    vpermq {{.*#+}} ymm3 = ymm3[0,0,1,0]7248; AVX2-NEXT:    vmovdqa {{.*#+}} ymm2 = [u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u]7249; AVX2-NEXT:    vpblendvb %ymm2, %ymm1, %ymm3, %ymm17250; AVX2-NEXT:    vmovdqa (%r9), %xmm37251; AVX2-NEXT:    vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7252; AVX2-NEXT:    vmovdqa (%r8), %xmm57253; AVX2-NEXT:    vmovdqa %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7254; AVX2-NEXT:    vpunpcklbw {{.*#+}} xmm12 = xmm5[0],xmm3[0],xmm5[1],xmm3[1],xmm5[2],xmm3[2],xmm5[3],xmm3[3],xmm5[4],xmm3[4],xmm5[5],xmm3[5],xmm5[6],xmm3[6],xmm5[7],xmm3[7]7255; AVX2-NEXT:    vpshufb %xmm0, %xmm12, %xmm07256; AVX2-NEXT:    vpermq {{.*#+}} ymm12 = ymm0[0,1,0,1]7257; AVX2-NEXT:    vmovdqa (%rax), %xmm07258; AVX2-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7259; AVX2-NEXT:    vpshuflw {{.*#+}} xmm15 = xmm0[1,1,0,0,4,5,6,7]7260; AVX2-NEXT:    vpshufd {{.*#+}} xmm15 = xmm15[0,1,2,0]7261; AVX2-NEXT:    vpermq {{.*#+}} ymm15 = ymm15[0,0,1,0]7262; AVX2-NEXT:    vpblendvb %ymm2, %ymm12, %ymm15, %ymm27263; AVX2-NEXT:    vmovdqa {{.*#+}} ymm12 = [255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255]7264; AVX2-NEXT:    vpblendvb %ymm12, %ymm10, %ymm1, %ymm07265; AVX2-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7266; AVX2-NEXT:    vpblendvb %ymm12, %ymm4, %ymm2, %ymm07267; AVX2-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7268; AVX2-NEXT:    vmovdqa {{.*#+}} xmm1 = [u,128,7,128,5,u,u,u,128,8,128,6,u,u,u,128]7269; AVX2-NEXT:    vpshufb %xmm1, %xmm13, %xmm27270; AVX2-NEXT:    vmovdqa {{.*#+}} xmm4 = [u,7,128,5,128,u,u,u,8,128,6,128,u,u,u,9]7271; AVX2-NEXT:    vpshufb %xmm4, %xmm14, %xmm127272; AVX2-NEXT:    vpor %xmm2, %xmm12, %xmm27273; AVX2-NEXT:    vmovdqa {{.*#+}} xmm15 = [u,u,u,128,7,128,5,u,u,u,128,8,128,6,u,u]7274; AVX2-NEXT:    vpshufb %xmm15, %xmm11, %xmm127275; AVX2-NEXT:    vmovdqa {{.*#+}} xmm0 = [u,u,u,7,128,5,128,u,u,u,8,128,6,128,u,u]7276; AVX2-NEXT:    vpshufb %xmm0, %xmm9, %xmm147277; AVX2-NEXT:    vpor %xmm12, %xmm14, %xmm127278; AVX2-NEXT:    vpermq {{.*#+}} ymm2 = ymm2[0,1,0,1]7279; AVX2-NEXT:    vpermq {{.*#+}} ymm12 = ymm12[0,1,0,1]7280; AVX2-NEXT:    vmovdqa {{.*#+}} ymm14 = [u,u,u,255,255,0,0,u,u,u,255,255,0,0,u,u,u,255,255,0,0,u,u,u,255,255,0,0,u,u,u,255]7281; AVX2-NEXT:    vpblendvb %ymm14, %ymm2, %ymm12, %ymm27282; AVX2-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7283; AVX2-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload7284; AVX2-NEXT:    vpshufb %xmm1, %xmm2, %xmm17285; AVX2-NEXT:    vpshufb %xmm4, %xmm6, %xmm27286; AVX2-NEXT:    vpor %xmm1, %xmm2, %xmm17287; AVX2-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload7288; AVX2-NEXT:    vpshufb %xmm15, %xmm6, %xmm27289; AVX2-NEXT:    vpshufb %xmm0, %xmm7, %xmm07290; AVX2-NEXT:    vpor %xmm2, %xmm0, %xmm07291; AVX2-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[0,1,0,1]7292; AVX2-NEXT:    vpermq {{.*#+}} ymm0 = ymm0[0,1,0,1]7293; AVX2-NEXT:    vpblendvb %ymm14, %ymm1, %ymm0, %ymm127294; AVX2-NEXT:    vmovdqa {{.*#+}} xmm1 = [128,4,u,u,u,128,7,128,5,u,u,u,128,8,128,6]7295; AVX2-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload7296; AVX2-NEXT:    vpshufb %xmm1, %xmm10, %xmm27297; AVX2-NEXT:    vmovdqa {{.*#+}} xmm4 = [4,128,u,u,u,7,128,5,128,u,u,u,8,128,6,128]7298; AVX2-NEXT:    vmovdqa %xmm8, %xmm37299; AVX2-NEXT:    vpshufb %xmm4, %xmm8, %xmm147300; AVX2-NEXT:    vpor %xmm2, %xmm14, %xmm27301; AVX2-NEXT:    vpermq {{.*#+}} ymm2 = ymm2[0,1,0,1]7302; AVX2-NEXT:    vmovdqa {{.*#+}} xmm14 = [4,5,4,5,4,5,8,9,6,7,6,7,6,7,6,7]7303; AVX2-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload7304; AVX2-NEXT:    vpshufb %xmm14, %xmm5, %xmm157305; AVX2-NEXT:    vpermq {{.*#+}} ymm15 = ymm15[0,0,1,0]7306; AVX2-NEXT:    vmovdqa {{.*#+}} ymm0 = [255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u]7307; AVX2-NEXT:    vpblendvb %ymm0, %ymm2, %ymm15, %ymm27308; AVX2-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload7309; AVX2-NEXT:    vpshufb %xmm1, %xmm8, %xmm17310; AVX2-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload7311; AVX2-NEXT:    vpshufb %xmm4, %xmm15, %xmm47312; AVX2-NEXT:    vpor %xmm1, %xmm4, %xmm17313; AVX2-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[0,1,0,1]7314; AVX2-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload7315; AVX2-NEXT:    vpshufb %xmm14, %xmm7, %xmm47316; AVX2-NEXT:    vpermq {{.*#+}} ymm4 = ymm4[0,0,1,0]7317; AVX2-NEXT:    vpblendvb %ymm0, %ymm1, %ymm4, %ymm07318; AVX2-NEXT:    vmovdqa {{.*#+}} ymm1 = [0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255]7319; AVX2-NEXT:    vpblendvb %ymm1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload7320; AVX2-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7321; AVX2-NEXT:    vpblendvb %ymm1, %ymm12, %ymm0, %ymm07322; AVX2-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7323; AVX2-NEXT:    vpunpckhbw {{.*#+}} xmm0 = xmm11[8],xmm9[8],xmm11[9],xmm9[9],xmm11[10],xmm9[10],xmm11[11],xmm9[11],xmm11[12],xmm9[12],xmm11[13],xmm9[13],xmm11[14],xmm9[14],xmm11[15],xmm9[15]7324; AVX2-NEXT:    vpunpckhbw {{[-0-9]+}}(%r{{[sb]}}p), %xmm13, %xmm1 # 16-byte Folded Reload7325; AVX2-NEXT:    # xmm1 = xmm13[8],mem[8],xmm13[9],mem[9],xmm13[10],mem[10],xmm13[11],mem[11],xmm13[12],mem[12],xmm13[13],mem[13],xmm13[14],mem[14],xmm13[15],mem[15]7326; AVX2-NEXT:    vmovdqa {{.*#+}} xmm2 = [6,3,2,u,u,u,9,8,5,4,u,u,u,11,10,7]7327; AVX2-NEXT:    vpshufb %xmm2, %xmm0, %xmm07328; AVX2-NEXT:    vpermq {{.*#+}} ymm0 = ymm0[0,1,0,1]7329; AVX2-NEXT:    vmovdqa {{.*#+}} xmm9 = [2,u,u,u,9,8,5,4,u,u,u,11,10,7,6,u]7330; AVX2-NEXT:    vpshufb %xmm9, %xmm1, %xmm17331; AVX2-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[0,1,0,1]7332; AVX2-NEXT:    vmovdqa {{.*#+}} ymm4 = [0,255,255,u,u,u,0,0,255,255,u,u,u,0,0,255,255,u,u,u,0,0,255,255,u,u,u,0,0,255,255,u]7333; AVX2-NEXT:    vpblendvb %ymm4, %ymm0, %ymm1, %ymm07334; AVX2-NEXT:    vpunpckhbw {{[-0-9]+}}(%r{{[sb]}}p), %xmm6, %xmm1 # 16-byte Folded Reload7335; AVX2-NEXT:    # xmm1 = xmm6[8],mem[8],xmm6[9],mem[9],xmm6[10],mem[10],xmm6[11],mem[11],xmm6[12],mem[12],xmm6[13],mem[13],xmm6[14],mem[14],xmm6[15],mem[15]7336; AVX2-NEXT:    vpshufb %xmm2, %xmm1, %xmm17337; AVX2-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload7338; AVX2-NEXT:    vpunpckhbw (%rsp), %xmm2, %xmm2 # 16-byte Folded Reload7339; AVX2-NEXT:    # xmm2 = xmm2[8],mem[8],xmm2[9],mem[9],xmm2[10],mem[10],xmm2[11],mem[11],xmm2[12],mem[12],xmm2[13],mem[13],xmm2[14],mem[14],xmm2[15],mem[15]7340; AVX2-NEXT:    vpshufb %xmm9, %xmm2, %xmm27341; AVX2-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[0,1,0,1]7342; AVX2-NEXT:    vpermq {{.*#+}} ymm2 = ymm2[0,1,0,1]7343; AVX2-NEXT:    vpblendvb %ymm4, %ymm1, %ymm2, %ymm17344; AVX2-NEXT:    vpunpckhbw {{.*#+}} xmm2 = xmm3[8],xmm10[8],xmm3[9],xmm10[9],xmm3[10],xmm10[10],xmm3[11],xmm10[11],xmm3[12],xmm10[12],xmm3[13],xmm10[13],xmm3[14],xmm10[14],xmm3[15],xmm10[15]7345; AVX2-NEXT:    vmovdqa {{.*#+}} xmm3 = [u,6,7,2,3,u,u,u,8,9,4,5,u,u,u,10]7346; AVX2-NEXT:    vpshufb %xmm3, %xmm2, %xmm27347; AVX2-NEXT:    vpermq {{.*#+}} ymm2 = ymm2[0,1,0,1]7348; AVX2-NEXT:    vpshufhw {{.*#+}} xmm4 = xmm5[0,1,2,3,4,5,5,6]7349; AVX2-NEXT:    vpshufd {{.*#+}} xmm4 = xmm4[2,2,3,3]7350; AVX2-NEXT:    vpermq {{.*#+}} ymm4 = ymm4[0,1,0,1]7351; AVX2-NEXT:    vmovdqa {{.*#+}} ymm5 = [u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255]7352; AVX2-NEXT:    vpblendvb %ymm5, %ymm2, %ymm4, %ymm27353; AVX2-NEXT:    vpunpckhbw {{.*#+}} xmm4 = xmm15[8],xmm8[8],xmm15[9],xmm8[9],xmm15[10],xmm8[10],xmm15[11],xmm8[11],xmm15[12],xmm8[12],xmm15[13],xmm8[13],xmm15[14],xmm8[14],xmm15[15],xmm8[15]7354; AVX2-NEXT:    vpshufb %xmm3, %xmm4, %xmm37355; AVX2-NEXT:    vpermq {{.*#+}} ymm3 = ymm3[0,1,0,1]7356; AVX2-NEXT:    vpshufhw {{.*#+}} xmm4 = xmm7[0,1,2,3,4,5,5,6]7357; AVX2-NEXT:    vpshufd {{.*#+}} xmm4 = xmm4[2,2,3,3]7358; AVX2-NEXT:    vpermq {{.*#+}} ymm4 = ymm4[0,1,0,1]7359; AVX2-NEXT:    vpblendvb %ymm5, %ymm3, %ymm4, %ymm37360; AVX2-NEXT:    vmovdqa {{.*#+}} ymm4 = [255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0]7361; AVX2-NEXT:    vpblendvb %ymm4, %ymm0, %ymm2, %ymm07362; AVX2-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7363; AVX2-NEXT:    vpblendvb %ymm4, %ymm1, %ymm3, %ymm07364; AVX2-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7365; AVX2-NEXT:    vbroadcasti128 {{.*#+}} ymm3 = [128,20,128,18,128,128,128,128,21,128,19,128,128,128,128,22,128,20,128,18,128,128,128,128,21,128,19,128,128,128,128,22]7366; AVX2-NEXT:    # ymm3 = mem[0,1,0,1]7367; AVX2-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload7368; AVX2-NEXT:    vpshufb %ymm3, %ymm0, %ymm27369; AVX2-NEXT:    vmovdqa {{.*#+}} ymm4 = [128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,20,128,18,128,128,128,128,21,128,19,128,128,128,128,22,128]7370; AVX2-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload7371; AVX2-NEXT:    vpshufb %ymm4, %ymm0, %ymm57372; AVX2-NEXT:    vpor %ymm2, %ymm5, %ymm27373; AVX2-NEXT:    vpermq {{.*#+}} ymm2 = ymm2[2,3,2,3]7374; AVX2-NEXT:    vpshuflw $150, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Folded Reload7375; AVX2-NEXT:    # ymm5 = mem[2,1,1,2,4,5,6,7,10,9,9,10,12,13,14,15]7376; AVX2-NEXT:    vpshufd {{.*#+}} ymm5 = ymm5[0,1,1,3,4,5,5,7]7377; AVX2-NEXT:    vpermq {{.*#+}} ymm5 = ymm5[2,2,3,2]7378; AVX2-NEXT:    vmovdqa {{.*#+}} ymm6 = [u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255]7379; AVX2-NEXT:    vpblendvb %ymm6, %ymm2, %ymm5, %ymm07380; AVX2-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7381; AVX2-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload7382; AVX2-NEXT:    vpshufb %ymm3, %ymm8, %ymm37383; AVX2-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm13 # 32-byte Reload7384; AVX2-NEXT:    vpshufb %ymm4, %ymm13, %ymm47385; AVX2-NEXT:    vpor %ymm3, %ymm4, %ymm37386; AVX2-NEXT:    vpermq {{.*#+}} ymm3 = ymm3[2,3,2,3]7387; AVX2-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Reload7388; AVX2-NEXT:    vpshuflw {{.*#+}} ymm4 = ymm14[2,1,1,2,4,5,6,7,10,9,9,10,12,13,14,15]7389; AVX2-NEXT:    vpshufd {{.*#+}} ymm4 = ymm4[0,1,1,3,4,5,5,7]7390; AVX2-NEXT:    vpermq {{.*#+}} ymm4 = ymm4[2,2,3,2]7391; AVX2-NEXT:    vpblendvb %ymm6, %ymm3, %ymm4, %ymm07392; AVX2-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7393; AVX2-NEXT:    vpshuflw $233, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Folded Reload7394; AVX2-NEXT:    # ymm4 = mem[1,2,2,3,4,5,6,7,9,10,10,11,12,13,14,15]7395; AVX2-NEXT:    vpshufd {{.*#+}} ymm4 = ymm4[0,0,1,1,4,4,5,5]7396; AVX2-NEXT:    vpbroadcastd {{.*#+}} ymm5 = [5,4,3,6,5,4,3,6,5,4,3,6,5,4,3,6,5,4,3,6,5,4,3,6,5,4,3,6,5,4,3,6]7397; AVX2-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Reload7398; AVX2-NEXT:    vpshufb %ymm5, %ymm11, %ymm67399; AVX2-NEXT:    vbroadcasti128 {{.*#+}} ymm7 = [0,0,0,255,0,255,0,0,0,0,255,0,255,0,0,0,0,0,0,255,0,255,0,0,0,0,255,0,255,0,0,0]7400; AVX2-NEXT:    # ymm7 = mem[0,1,0,1]7401; AVX2-NEXT:    vpblendvb %ymm7, %ymm4, %ymm6, %ymm47402; AVX2-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload7403; AVX2-NEXT:    vpshufb %ymm5, %ymm1, %ymm57404; AVX2-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload7405; AVX2-NEXT:    vpshuflw {{.*#+}} ymm6 = ymm0[1,2,2,3,4,5,6,7,9,10,10,11,12,13,14,15]7406; AVX2-NEXT:    vpshufd {{.*#+}} ymm6 = ymm6[0,0,1,1,4,4,5,5]7407; AVX2-NEXT:    vpblendvb %ymm7, %ymm6, %ymm5, %ymm57408; AVX2-NEXT:    vbroadcasti128 {{.*#+}} ymm6 = [128,18,128,128,128,128,21,128,19,128,128,128,128,22,128,20,128,18,128,128,128,128,21,128,19,128,128,128,128,22,128,20]7409; AVX2-NEXT:    # ymm6 = mem[0,1,0,1]7410; AVX2-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload7411; AVX2-NEXT:    vpshufb %ymm6, %ymm2, %ymm77412; AVX2-NEXT:    vmovdqa {{.*#+}} ymm3 = [128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,18,128,128,128,128,21,128,19,128,128,128,128,22,128,20,128]7413; AVX2-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload7414; AVX2-NEXT:    vpshufb %ymm3, %ymm10, %ymm97415; AVX2-NEXT:    vpor %ymm7, %ymm9, %ymm77416; AVX2-NEXT:    vpermq {{.*#+}} ymm7 = ymm7[2,3,2,3]7417; AVX2-NEXT:    vpermq {{.*#+}} ymm4 = ymm4[2,3,2,3]7418; AVX2-NEXT:    vmovdqa {{.*#+}} ymm9 = [255,255,u,u,u,0,0,255,255,u,u,u,0,0,255,255,u,u,u,0,0,255,255,u,u,u,0,0,255,255,u,u]7419; AVX2-NEXT:    vpblendvb %ymm9, %ymm7, %ymm4, %ymm47420; AVX2-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Reload7421; AVX2-NEXT:    vpshufb %ymm6, %ymm15, %ymm67422; AVX2-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm12 # 32-byte Reload7423; AVX2-NEXT:    vpshufb %ymm3, %ymm12, %ymm77424; AVX2-NEXT:    vpor %ymm6, %ymm7, %ymm67425; AVX2-NEXT:    vpermq {{.*#+}} ymm6 = ymm6[2,3,2,3]7426; AVX2-NEXT:    vpermq {{.*#+}} ymm5 = ymm5[2,3,2,3]7427; AVX2-NEXT:    vpblendvb %ymm9, %ymm6, %ymm5, %ymm57428; AVX2-NEXT:    vmovdqa {{.*#+}} ymm6 = [255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0]7429; AVX2-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload7430; AVX2-NEXT:    vpblendvb %ymm6, %ymm4, %ymm3, %ymm37431; AVX2-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7432; AVX2-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload7433; AVX2-NEXT:    vpblendvb %ymm6, %ymm5, %ymm3, %ymm37434; AVX2-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7435; AVX2-NEXT:    vpshufb {{.*#+}} ymm4 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm0[23],zero,ymm0[27,20,21,26],zero,ymm0[24],zero,ymm0[26,27,26,27],zero,ymm0[25]7436; AVX2-NEXT:    vmovdqa %ymm1, %ymm07437; AVX2-NEXT:    vpshufb {{.*#+}} ymm5 = ymm1[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,25],zero,ymm1[23],zero,zero,zero,zero,ymm1[26],zero,ymm1[24],zero,zero,zero,zero,ymm1[27],zero7438; AVX2-NEXT:    vpor %ymm4, %ymm5, %ymm47439; AVX2-NEXT:    vpshufb {{.*#+}} ymm5 = ymm15[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,ymm15[25],zero,ymm15[23],zero,zero,zero,zero,ymm15[26],zero,ymm15[24],zero,zero,zero,zero7440; AVX2-NEXT:    vpshufb {{.*#+}} ymm6 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm12[25],zero,ymm12[23],zero,zero,zero,zero,ymm12[26],zero,ymm12[24],zero,zero,zero,zero,ymm12[27]7441; AVX2-NEXT:    vpor %ymm5, %ymm6, %ymm57442; AVX2-NEXT:    vpermq {{.*#+}} ymm4 = ymm4[2,3,2,3]7443; AVX2-NEXT:    vpermq {{.*#+}} ymm5 = ymm5[2,3,2,3]7444; AVX2-NEXT:    vmovdqa {{.*#+}} ymm3 = [u,255,255,0,0,u,u,u,255,255,0,0,u,u,u,255,255,0,0,u,u,u,255,255,0,0,u,u,u,255,255,0]7445; AVX2-NEXT:    vpblendvb %ymm3, %ymm4, %ymm5, %ymm47446; AVX2-NEXT:    vpshufb {{.*#+}} ymm5 = ymm8[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,zero,zero,ymm8[25],zero,ymm8[23],zero,zero,zero,zero,ymm8[26],zero,ymm8[24],zero,zero7447; AVX2-NEXT:    vpshufb {{.*#+}} ymm6 = ymm13[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,zero,ymm13[25],zero,ymm13[23],zero,zero,zero,zero,ymm13[26],zero,ymm13[24],zero,zero,zero7448; AVX2-NEXT:    vpor %ymm5, %ymm6, %ymm57449; AVX2-NEXT:    vpshufb {{.*#+}} ymm6 = ymm14[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,22,23,26,27,24,25,22,23,24,25,26,27,26,27,24,25]7450; AVX2-NEXT:    vpermq {{.*#+}} ymm6 = ymm6[2,3,2,3]7451; AVX2-NEXT:    vpermq {{.*#+}} ymm5 = ymm5[2,3,2,3]7452; AVX2-NEXT:    vmovdqa {{.*#+}} ymm7 = [0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u]7453; AVX2-NEXT:    vpblendvb %ymm7, %ymm5, %ymm6, %ymm57454; AVX2-NEXT:    vmovdqa {{.*#+}} ymm6 = [0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255]7455; AVX2-NEXT:    vpblendvb %ymm6, %ymm4, %ymm5, %ymm17456; AVX2-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7457; AVX2-NEXT:    vmovdqa {{.*#+}} ymm6 = [128,128,128,14,128,128,128,128,128,128,15,128,128,128,128,128,128,16,128,128,128,128,128,128,17,128,128,128,128,128,128,18]7458; AVX2-NEXT:    vpshufb %ymm6, %ymm11, %ymm57459; AVX2-NEXT:    vmovdqa {{.*#+}} ymm7 = [0,128,14,128,128,128,128,1,128,15,128,128,128,128,2,128,16,128,30,128,128,128,128,17,128,31,128,128,128,128,18,128]7460; AVX2-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload7461; AVX2-NEXT:    vpshufb %ymm7, %ymm4, %ymm87462; AVX2-NEXT:    vpor %ymm5, %ymm8, %ymm57463; AVX2-NEXT:    vmovdqa {{.*#+}} ymm8 = [128,128,128,128,128,14,128,128,128,128,128,128,15,128,128,128,128,128,128,16,128,128,128,128,128,128,17,128,128,128,128,128]7464; AVX2-NEXT:    vpshufb %ymm8, %ymm2, %ymm97465; AVX2-NEXT:    vmovdqa %ymm2, %ymm37466; AVX2-NEXT:    vmovdqa {{.*#+}} ymm1 = [128,128,0,128,14,128,128,128,128,1,128,15,128,128,128,128,128,128,16,128,30,128,128,128,128,17,128,31,128,128,128,128]7467; AVX2-NEXT:    vpshufb %ymm1, %ymm10, %ymm117468; AVX2-NEXT:    vmovdqa %ymm10, %ymm27469; AVX2-NEXT:    vpor %ymm9, %ymm11, %ymm97470; AVX2-NEXT:    vmovdqa {{.*#+}} ymm11 = [u,u,255,255,0,0,u,u,u,255,255,0,0,u,u,u,255,255,0,0,u,u,u,255,255,0,0,u,u,u,255,255]7471; AVX2-NEXT:    vpblendvb %ymm11, %ymm5, %ymm9, %ymm57472; AVX2-NEXT:    vpshufb %ymm6, %ymm0, %ymm67473; AVX2-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload7474; AVX2-NEXT:    vpshufb %ymm7, %ymm0, %ymm77475; AVX2-NEXT:    vpor %ymm6, %ymm7, %ymm67476; AVX2-NEXT:    vpshufb %ymm8, %ymm15, %ymm77477; AVX2-NEXT:    vpshufb %ymm1, %ymm12, %ymm87478; AVX2-NEXT:    vpor %ymm7, %ymm8, %ymm77479; AVX2-NEXT:    vpblendvb %ymm11, %ymm6, %ymm7, %ymm67480; AVX2-NEXT:    vmovdqa {{.*#+}} ymm7 = [128,1,2,3,0,128,14,128,0,1,0,1,128,15,128,15,128,17,18,19,16,128,30,128,16,17,16,17,128,31,128,31]7481; AVX2-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload7482; AVX2-NEXT:    vpshufb %ymm7, %ymm0, %ymm87483; AVX2-NEXT:    vmovdqa {{.*#+}} ymm9 = [13,128,128,128,128,128,128,14,128,128,128,128,128,128,15,128,128,128,128,128,128,16,128,128,128,128,128,128,17,128,128,128]7484; AVX2-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Reload7485; AVX2-NEXT:    vpshufb %ymm9, %ymm15, %ymm107486; AVX2-NEXT:    vpor %ymm8, %ymm10, %ymm87487; AVX2-NEXT:    vmovdqa {{.*#+}} ymm10 = [12,13,2,3,12,13,0,1,14,15,2,3,0,1,14,15,28,29,18,19,28,29,16,17,30,31,18,19,16,17,30,31]7488; AVX2-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload7489; AVX2-NEXT:    vpshufb %ymm10, %ymm1, %ymm117490; AVX2-NEXT:    vmovdqa {{.*#+}} ymm12 = [255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u]7491; AVX2-NEXT:    vpblendvb %ymm12, %ymm8, %ymm11, %ymm87492; AVX2-NEXT:    vpshufb %ymm7, %ymm13, %ymm77493; AVX2-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Reload7494; AVX2-NEXT:    vpshufb %ymm9, %ymm11, %ymm97495; AVX2-NEXT:    vpor %ymm7, %ymm9, %ymm77496; AVX2-NEXT:    vpshufb %ymm10, %ymm14, %ymm97497; AVX2-NEXT:    vpblendvb %ymm12, %ymm7, %ymm9, %ymm77498; AVX2-NEXT:    vmovdqa {{.*#+}} ymm9 = [0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255]7499; AVX2-NEXT:    vpblendvb %ymm9, %ymm5, %ymm8, %ymm57500; AVX2-NEXT:    vpblendvb %ymm9, %ymm6, %ymm7, %ymm67501; AVX2-NEXT:    vpshufb {{.*#+}} ymm7 = ymm3[11,u,u,u,u,14,u,12,u,u,u,u,15,u,13,u,27,u,u,u,u,30,u,28,u,u,u,u,31,u,29,u]7502; AVX2-NEXT:    vpshufhw {{.*#+}} ymm8 = ymm2[0,1,2,3,7,6,6,7,8,9,10,11,15,14,14,15]7503; AVX2-NEXT:    vpshufd {{.*#+}} ymm8 = ymm8[0,2,3,3,4,6,7,7]7504; AVX2-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload7505; AVX2-NEXT:    vpblendvb %ymm2, %ymm7, %ymm8, %ymm77506; AVX2-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload7507; AVX2-NEXT:    vpshufb {{.*#+}} ymm8 = ymm2[u,u,u,14,u,12,u,u,u,u,15,u,13,u,u,u,u,u,u,30,u,28,u,u,u,u,31,u,29,u,u,u]7508; AVX2-NEXT:    vpshufhw {{.*#+}} ymm9 = ymm4[0,1,2,3,6,7,7,6,8,9,10,11,14,15,15,14]7509; AVX2-NEXT:    vpshufd {{.*#+}} ymm9 = ymm9[2,2,3,3,6,6,7,7]7510; AVX2-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload7511; AVX2-NEXT:    vpblendvb %ymm2, %ymm9, %ymm8, %ymm87512; AVX2-NEXT:    vpermq {{.*#+}} ymm7 = ymm7[2,3,2,3]7513; AVX2-NEXT:    vpermq {{.*#+}} ymm8 = ymm8[2,3,2,3]7514; AVX2-NEXT:    vmovdqa {{.*#+}} ymm2 = [255,u,u,u,0,0,255,255,u,u,u,0,0,255,255,u,u,u,0,0,255,255,u,u,u,0,0,255,255,u,u,u]7515; AVX2-NEXT:    vpblendvb %ymm2, %ymm7, %ymm8, %ymm77516; AVX2-NEXT:    vpshufb {{.*#+}} ymm8 = ymm0[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,26,27,26,27,30,31,30,31,28,29,28,29,28,29,28,29]7517; AVX2-NEXT:    vpermq {{.*#+}} ymm8 = ymm8[2,3,2,2]7518; AVX2-NEXT:    vmovdqa {{.*#+}} ymm9 = [255,0,u,u,255,255,255,255,0,u,u,255,255,255,255,0,u,u,255,255,255,255,0,u,u,255,255,255,255,0,u,u]7519; AVX2-NEXT:    vpblendvb %ymm9, %ymm7, %ymm8, %ymm77520; AVX2-NEXT:    vpshufb {{.*#+}} ymm8 = ymm15[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,29,28,27,u,u,u,31,30,u,u,u,u,u,u,u,u]7521; AVX2-NEXT:    vpermq {{.*#+}} ymm8 = ymm8[2,2,2,2]7522; AVX2-NEXT:    vmovdqa {{.*#+}} ymm9 = [255,255,0,u,255,255,255,255,255,0,u,255,255,255,255,255,0,u,255,255,255,255,255,0,u,255,255,255,255,255,0,u]7523; AVX2-NEXT:    vpblendvb %ymm9, %ymm7, %ymm8, %ymm77524; AVX2-NEXT:    vpshufb {{.*#+}} ymm8 = ymm1[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,28,29,26,27,28,29,30,31,30,31,28,29,28,29,30,31]7525; AVX2-NEXT:    vpermq {{.*#+}} ymm8 = ymm8[2,3,2,3]7526; AVX2-NEXT:    vmovdqa {{.*#+}} ymm9 = [255,255,255,0,255,255,255,255,255,255,0,255,255,255,255,255,255,0,255,255,255,255,255,255,0,255,255,255,255,255,255,0]7527; AVX2-NEXT:    vpblendvb %ymm9, %ymm7, %ymm8, %ymm77528; AVX2-NEXT:    movq {{[0-9]+}}(%rsp), %rax7529; AVX2-NEXT:    vmovdqa %ymm6, 96(%rax)7530; AVX2-NEXT:    vmovdqa %ymm5, 320(%rax)7531; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload7532; AVX2-NEXT:    vmovaps %ymm0, 160(%rax)7533; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload7534; AVX2-NEXT:    vmovaps %ymm0, 128(%rax)7535; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload7536; AVX2-NEXT:    vmovaps %ymm0, 64(%rax)7537; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload7538; AVX2-NEXT:    vmovaps %ymm0, 32(%rax)7539; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload7540; AVX2-NEXT:    vmovaps %ymm0, (%rax)7541; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload7542; AVX2-NEXT:    vmovaps %ymm0, 224(%rax)7543; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload7544; AVX2-NEXT:    vmovaps %ymm0, 352(%rax)7545; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload7546; AVX2-NEXT:    vmovaps %ymm0, 288(%rax)7547; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload7548; AVX2-NEXT:    vmovaps %ymm0, 256(%rax)7549; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload7550; AVX2-NEXT:    vmovaps %ymm0, 192(%rax)7551; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload7552; AVX2-NEXT:    vmovaps %ymm0, 384(%rax)7553; AVX2-NEXT:    vmovdqa %ymm7, 416(%rax)7554; AVX2-NEXT:    addq $824, %rsp # imm = 0x3387555; AVX2-NEXT:    vzeroupper7556; AVX2-NEXT:    retq7557;7558; AVX2-FP-LABEL: store_i8_stride7_vf64:7559; AVX2-FP:       # %bb.0:7560; AVX2-FP-NEXT:    subq $616, %rsp # imm = 0x2687561; AVX2-FP-NEXT:    movq {{[0-9]+}}(%rsp), %rax7562; AVX2-FP-NEXT:    vmovdqa 32(%rdi), %ymm87563; AVX2-FP-NEXT:    vmovdqa 32(%rsi), %ymm97564; AVX2-FP-NEXT:    vmovdqa 32(%rdx), %ymm67565; AVX2-FP-NEXT:    vmovdqa 32(%rcx), %ymm27566; AVX2-FP-NEXT:    vmovdqa 32(%r8), %ymm47567; AVX2-FP-NEXT:    vmovdqa 32(%r9), %ymm57568; AVX2-FP-NEXT:    vmovdqa 32(%rax), %ymm37569; AVX2-FP-NEXT:    vpshufb {{.*#+}} ymm0 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm8[23],zero,ymm8[27,20,21,26],zero,ymm8[24],zero,ymm8[26,27,26,27],zero,ymm8[25]7570; AVX2-FP-NEXT:    vmovdqu %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7571; AVX2-FP-NEXT:    vpshufb {{.*#+}} ymm1 = ymm9[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,25],zero,ymm9[23],zero,zero,zero,zero,ymm9[26],zero,ymm9[24],zero,zero,zero,zero,ymm9[27],zero7572; AVX2-FP-NEXT:    vmovdqu %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7573; AVX2-FP-NEXT:    vpor %ymm0, %ymm1, %ymm07574; AVX2-FP-NEXT:    vpermq {{.*#+}} ymm0 = ymm0[2,3,2,3]7575; AVX2-FP-NEXT:    vpshufb {{.*#+}} ymm1 = ymm2[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,ymm2[25],zero,ymm2[23],zero,zero,zero,zero,ymm2[26],zero,ymm2[24],zero,zero,zero,zero7576; AVX2-FP-NEXT:    vmovdqa %ymm2, %ymm77577; AVX2-FP-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7578; AVX2-FP-NEXT:    vpshufb {{.*#+}} ymm2 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm6[25],zero,ymm6[23],zero,zero,zero,zero,ymm6[26],zero,ymm6[24],zero,zero,zero,zero,ymm6[27]7579; AVX2-FP-NEXT:    vmovdqu %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7580; AVX2-FP-NEXT:    vpor %ymm1, %ymm2, %ymm17581; AVX2-FP-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[2,3,2,3]7582; AVX2-FP-NEXT:    vmovdqa {{.*#+}} ymm2 = [u,255,255,0,0,u,u,u,255,255,0,0,u,u,u,255,255,0,0,u,u,u,255,255,0,0,u,u,u,255,255,0]7583; AVX2-FP-NEXT:    vpblendvb %ymm2, %ymm0, %ymm1, %ymm07584; AVX2-FP-NEXT:    vpshufb {{.*#+}} ymm1 = ymm4[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,24,25,24,25,22,23,22,23,24,25,26,27,24,25,30,31]7585; AVX2-FP-NEXT:    vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7586; AVX2-FP-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[2,3,2,3]7587; AVX2-FP-NEXT:    vmovdqa {{.*#+}} ymm2 = [u,255,255,255,255,0,u,u,255,255,255,255,0,u,u,255,255,255,255,0,u,u,255,255,255,255,0,u,u,255,255,255]7588; AVX2-FP-NEXT:    vpblendvb %ymm2, %ymm0, %ymm1, %ymm07589; AVX2-FP-NEXT:    vmovdqu %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7590; AVX2-FP-NEXT:    vpshufb {{.*#+}} ymm1 = ymm5[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,26,25,24,23,u,u,u,u,u,u,u,u,u]7591; AVX2-FP-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[2,2,2,2]7592; AVX2-FP-NEXT:    vmovdqa {{.*#+}} ymm2 = [u,255,255,255,255,255,0,u,255,255,255,255,255,0,u,255,255,255,255,255,0,u,255,255,255,255,255,0,u,255,255,255]7593; AVX2-FP-NEXT:    vpblendvb %ymm2, %ymm0, %ymm1, %ymm07594; AVX2-FP-NEXT:    vpshufb {{.*#+}} ymm1 = ymm3[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,22,23,26,27,24,25,22,23,24,25,26,27,26,27,24,25]7595; AVX2-FP-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7596; AVX2-FP-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[2,3,2,3]7597; AVX2-FP-NEXT:    vmovdqa {{.*#+}} ymm2 = [0,255,255,255,255,255,255,0,255,255,255,255,255,255,0,255,255,255,255,255,255,0,255,255,255,255,255,255,0,255,255,255]7598; AVX2-FP-NEXT:    vpblendvb %ymm2, %ymm0, %ymm1, %ymm07599; AVX2-FP-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7600; AVX2-FP-NEXT:    vpshufb {{.*#+}} ymm0 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm6[17,18,19,30],zero,ymm6[28],zero,ymm6[28,29,30,31],zero,ymm6[29],zero,ymm6[31]7601; AVX2-FP-NEXT:    vpshufb {{.*#+}} ymm1 = ymm7[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,27],zero,zero,zero,zero,ymm7[30],zero,ymm7[28],zero,zero,zero,zero,ymm7[31],zero,ymm7[29],zero7602; AVX2-FP-NEXT:    vpor %ymm0, %ymm1, %ymm07603; AVX2-FP-NEXT:    vpshufb {{.*#+}} ymm1 = ymm9[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,zero,ymm9[30],zero,ymm9[28],zero,zero,zero,zero,ymm9[31],zero,ymm9[29],zero,zero,zero7604; AVX2-FP-NEXT:    vpshufb {{.*#+}} ymm2 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm8[30],zero,ymm8[28],zero,zero,zero,zero,ymm8[31],zero,ymm8[29],zero,zero,zero,zero7605; AVX2-FP-NEXT:    vpor %ymm1, %ymm2, %ymm17606; AVX2-FP-NEXT:    vpermq {{.*#+}} ymm0 = ymm0[2,3,2,3]7607; AVX2-FP-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[2,3,2,3]7608; AVX2-FP-NEXT:    vmovdqa {{.*#+}} ymm2 = [255,u,u,u,0,0,255,255,u,u,u,0,0,255,255,u,u,u,0,0,255,255,u,u,u,0,0,255,255,u,u,u]7609; AVX2-FP-NEXT:    vpblendvb %ymm2, %ymm0, %ymm1, %ymm07610; AVX2-FP-NEXT:    vpshufb {{.*#+}} ymm1 = ymm4[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,26,27,26,27,30,31,30,31,28,29,28,29,28,29,28,29]7611; AVX2-FP-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[2,3,2,2]7612; AVX2-FP-NEXT:    vmovdqa {{.*#+}} ymm2 = [255,0,u,u,255,255,255,255,0,u,u,255,255,255,255,0,u,u,255,255,255,255,0,u,u,255,255,255,255,0,u,u]7613; AVX2-FP-NEXT:    vpblendvb %ymm2, %ymm0, %ymm1, %ymm07614; AVX2-FP-NEXT:    vpshufb {{.*#+}} ymm1 = ymm5[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,29,28,27,u,u,u,31,30,u,u,u,u,u,u,u,u]7615; AVX2-FP-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[2,2,2,2]7616; AVX2-FP-NEXT:    vmovdqa {{.*#+}} ymm2 = [255,255,0,u,255,255,255,255,255,0,u,255,255,255,255,255,0,u,255,255,255,255,255,0,u,255,255,255,255,255,0,u]7617; AVX2-FP-NEXT:    vpblendvb %ymm2, %ymm0, %ymm1, %ymm07618; AVX2-FP-NEXT:    vpshufb {{.*#+}} ymm1 = ymm3[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,28,29,26,27,28,29,30,31,30,31,28,29,28,29,30,31]7619; AVX2-FP-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[2,3,2,3]7620; AVX2-FP-NEXT:    vmovdqa {{.*#+}} ymm2 = [255,255,255,0,255,255,255,255,255,255,0,255,255,255,255,255,255,0,255,255,255,255,255,255,0,255,255,255,255,255,255,0]7621; AVX2-FP-NEXT:    vpblendvb %ymm2, %ymm0, %ymm1, %ymm07622; AVX2-FP-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7623; AVX2-FP-NEXT:    vmovdqa 32(%rsi), %xmm157624; AVX2-FP-NEXT:    vmovdqa 32(%rdi), %xmm77625; AVX2-FP-NEXT:    vpunpcklbw {{.*#+}} xmm0 = xmm7[0],xmm15[0],xmm7[1],xmm15[1],xmm7[2],xmm15[2],xmm7[3],xmm15[3],xmm7[4],xmm15[4],xmm7[5],xmm15[5],xmm7[6],xmm15[6],xmm7[7],xmm15[7]7626; AVX2-FP-NEXT:    vmovdqa %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7627; AVX2-FP-NEXT:    vmovdqa %xmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7628; AVX2-FP-NEXT:    vmovdqa {{.*#+}} xmm1 = [0,1,u,u,u,6,7,2,3,u,u,u,8,9,4,5]7629; AVX2-FP-NEXT:    vpshufb %xmm1, %xmm0, %xmm07630; AVX2-FP-NEXT:    vpermq {{.*#+}} ymm0 = ymm0[0,1,0,1]7631; AVX2-FP-NEXT:    vmovdqa 32(%rcx), %xmm97632; AVX2-FP-NEXT:    vmovdqa 32(%rdx), %xmm117633; AVX2-FP-NEXT:    vpunpcklbw {{.*#+}} xmm2 = xmm11[0],xmm9[0],xmm11[1],xmm9[1],xmm11[2],xmm9[2],xmm11[3],xmm9[3],xmm11[4],xmm9[4],xmm11[5],xmm9[5],xmm11[6],xmm9[6],xmm11[7],xmm9[7]7634; AVX2-FP-NEXT:    vmovdqa {{.*#+}} xmm3 = [4,5,0,1,u,u,u,6,7,2,3,u,u,u,8,9]7635; AVX2-FP-NEXT:    vpshufb %xmm3, %xmm2, %xmm27636; AVX2-FP-NEXT:    vpermq {{.*#+}} ymm2 = ymm2[0,1,0,1]7637; AVX2-FP-NEXT:    vmovdqa {{.*#+}} ymm5 = [255,255,0,0,u,u,u,255,255,0,0,u,u,u,255,255,0,0,u,u,u,255,255,0,0,u,u,u,255,255,0,0]7638; AVX2-FP-NEXT:    vpblendvb %ymm5, %ymm0, %ymm2, %ymm07639; AVX2-FP-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7640; AVX2-FP-NEXT:    vmovdqa (%rsi), %xmm07641; AVX2-FP-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7642; AVX2-FP-NEXT:    vmovdqa (%rdi), %xmm47643; AVX2-FP-NEXT:    vpunpcklbw {{.*#+}} xmm0 = xmm4[0],xmm0[0],xmm4[1],xmm0[1],xmm4[2],xmm0[2],xmm4[3],xmm0[3],xmm4[4],xmm0[4],xmm4[5],xmm0[5],xmm4[6],xmm0[6],xmm4[7],xmm0[7]7644; AVX2-FP-NEXT:    vmovdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7645; AVX2-FP-NEXT:    vpshufb %xmm1, %xmm0, %xmm07646; AVX2-FP-NEXT:    vmovdqa (%rcx), %xmm17647; AVX2-FP-NEXT:    vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7648; AVX2-FP-NEXT:    vmovdqa (%rdx), %xmm107649; AVX2-FP-NEXT:    vpunpcklbw {{.*#+}} xmm1 = xmm10[0],xmm1[0],xmm10[1],xmm1[1],xmm10[2],xmm1[2],xmm10[3],xmm1[3],xmm10[4],xmm1[4],xmm10[5],xmm1[5],xmm10[6],xmm1[6],xmm10[7],xmm1[7]7650; AVX2-FP-NEXT:    vmovdqa %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7651; AVX2-FP-NEXT:    vpshufb %xmm3, %xmm1, %xmm17652; AVX2-FP-NEXT:    vpermq {{.*#+}} ymm0 = ymm0[0,1,0,1]7653; AVX2-FP-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[0,1,0,1]7654; AVX2-FP-NEXT:    vpblendvb %ymm5, %ymm0, %ymm1, %ymm37655; AVX2-FP-NEXT:    vmovdqa 32(%rax), %xmm07656; AVX2-FP-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7657; AVX2-FP-NEXT:    vmovdqa {{.*#+}} xmm6 = [2,3,2,3,0,1,0,1,8,9,10,11,2,3,2,3]7658; AVX2-FP-NEXT:    vpshufb %xmm6, %xmm0, %xmm17659; AVX2-FP-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[0,0,1,0]7660; AVX2-FP-NEXT:    vmovdqa 32(%r9), %xmm07661; AVX2-FP-NEXT:    vmovdqa %xmm0, (%rsp) # 16-byte Spill7662; AVX2-FP-NEXT:    vmovdqa 32(%r8), %xmm147663; AVX2-FP-NEXT:    vpunpcklbw {{.*#+}} xmm5 = xmm14[0],xmm0[0],xmm14[1],xmm0[1],xmm14[2],xmm0[2],xmm14[3],xmm0[3],xmm14[4],xmm0[4],xmm14[5],xmm0[5],xmm14[6],xmm0[6],xmm14[7],xmm0[7]7664; AVX2-FP-NEXT:    vmovdqa {{.*#+}} xmm0 = [u,u,4,5,0,1,u,u,u,6,7,2,3,u,u,u]7665; AVX2-FP-NEXT:    vpshufb %xmm0, %xmm5, %xmm57666; AVX2-FP-NEXT:    vpermq {{.*#+}} ymm5 = ymm5[0,1,0,1]7667; AVX2-FP-NEXT:    vmovdqa {{.*#+}} ymm2 = [u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u]7668; AVX2-FP-NEXT:    vpblendvb %ymm2, %ymm5, %ymm1, %ymm17669; AVX2-FP-NEXT:    vmovdqa (%r9), %xmm57670; AVX2-FP-NEXT:    vmovdqa %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7671; AVX2-FP-NEXT:    vmovdqa (%r8), %xmm87672; AVX2-FP-NEXT:    vmovdqa %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7673; AVX2-FP-NEXT:    vpunpcklbw {{.*#+}} xmm12 = xmm8[0],xmm5[0],xmm8[1],xmm5[1],xmm8[2],xmm5[2],xmm8[3],xmm5[3],xmm8[4],xmm5[4],xmm8[5],xmm5[5],xmm8[6],xmm5[6],xmm8[7],xmm5[7]7674; AVX2-FP-NEXT:    vpshufb %xmm0, %xmm12, %xmm127675; AVX2-FP-NEXT:    vmovdqa (%rax), %xmm137676; AVX2-FP-NEXT:    vpshufb %xmm6, %xmm13, %xmm67677; AVX2-FP-NEXT:    vpermq {{.*#+}} ymm6 = ymm6[0,0,1,0]7678; AVX2-FP-NEXT:    vpermq {{.*#+}} ymm12 = ymm12[0,1,0,1]7679; AVX2-FP-NEXT:    vpblendvb %ymm2, %ymm12, %ymm6, %ymm27680; AVX2-FP-NEXT:    vmovdqa {{.*#+}} ymm6 = [255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255]7681; AVX2-FP-NEXT:    vpblendvb %ymm6, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm0 # 32-byte Folded Reload7682; AVX2-FP-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7683; AVX2-FP-NEXT:    vpblendvb %ymm6, %ymm3, %ymm2, %ymm07684; AVX2-FP-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7685; AVX2-FP-NEXT:    vmovdqa {{.*#+}} xmm1 = [u,128,7,128,5,u,u,u,128,8,128,6,u,u,u,128]7686; AVX2-FP-NEXT:    vpshufb %xmm1, %xmm15, %xmm27687; AVX2-FP-NEXT:    vmovdqa {{.*#+}} xmm3 = [u,7,128,5,128,u,u,u,8,128,6,128,u,u,u,9]7688; AVX2-FP-NEXT:    vpshufb %xmm3, %xmm7, %xmm67689; AVX2-FP-NEXT:    vpor %xmm2, %xmm6, %xmm27690; AVX2-FP-NEXT:    vmovdqa {{.*#+}} xmm6 = [u,u,u,128,7,128,5,u,u,u,128,8,128,6,u,u]7691; AVX2-FP-NEXT:    vpshufb %xmm6, %xmm9, %xmm127692; AVX2-FP-NEXT:    vmovdqa {{.*#+}} xmm0 = [u,u,u,7,128,5,128,u,u,u,8,128,6,128,u,u]7693; AVX2-FP-NEXT:    vmovdqa %xmm11, %xmm77694; AVX2-FP-NEXT:    vpshufb %xmm0, %xmm11, %xmm157695; AVX2-FP-NEXT:    vpor %xmm12, %xmm15, %xmm127696; AVX2-FP-NEXT:    vpermq {{.*#+}} ymm2 = ymm2[0,1,0,1]7697; AVX2-FP-NEXT:    vpermq {{.*#+}} ymm12 = ymm12[0,1,0,1]7698; AVX2-FP-NEXT:    vmovdqa {{.*#+}} ymm15 = [u,u,u,255,255,0,0,u,u,u,255,255,0,0,u,u,u,255,255,0,0,u,u,u,255,255,0,0,u,u,u,255]7699; AVX2-FP-NEXT:    vpblendvb %ymm15, %ymm2, %ymm12, %ymm27700; AVX2-FP-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7701; AVX2-FP-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Reload7702; AVX2-FP-NEXT:    vpshufb %xmm1, %xmm12, %xmm17703; AVX2-FP-NEXT:    vpshufb %xmm3, %xmm4, %xmm27704; AVX2-FP-NEXT:    vpor %xmm1, %xmm2, %xmm17705; AVX2-FP-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload7706; AVX2-FP-NEXT:    vpshufb %xmm6, %xmm5, %xmm27707; AVX2-FP-NEXT:    vpshufb %xmm0, %xmm10, %xmm07708; AVX2-FP-NEXT:    vpor %xmm2, %xmm0, %xmm07709; AVX2-FP-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[0,1,0,1]7710; AVX2-FP-NEXT:    vpermq {{.*#+}} ymm0 = ymm0[0,1,0,1]7711; AVX2-FP-NEXT:    vpblendvb %ymm15, %ymm1, %ymm0, %ymm117712; AVX2-FP-NEXT:    vmovdqa {{.*#+}} xmm1 = [128,4,u,u,u,128,7,128,5,u,u,u,128,8,128,6]7713; AVX2-FP-NEXT:    vmovdqa (%rsp), %xmm8 # 16-byte Reload7714; AVX2-FP-NEXT:    vpshufb %xmm1, %xmm8, %xmm27715; AVX2-FP-NEXT:    vmovdqa {{.*#+}} xmm3 = [4,128,u,u,u,7,128,5,128,u,u,u,8,128,6,128]7716; AVX2-FP-NEXT:    vpshufb %xmm3, %xmm14, %xmm67717; AVX2-FP-NEXT:    vpor %xmm2, %xmm6, %xmm27718; AVX2-FP-NEXT:    vpermq {{.*#+}} ymm2 = ymm2[0,1,0,1]7719; AVX2-FP-NEXT:    vmovdqa {{.*#+}} xmm6 = [4,5,4,5,4,5,8,9,6,7,6,7,6,7,6,7]7720; AVX2-FP-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload7721; AVX2-FP-NEXT:    vpshufb %xmm6, %xmm4, %xmm157722; AVX2-FP-NEXT:    vpermq {{.*#+}} ymm15 = ymm15[0,0,1,0]7723; AVX2-FP-NEXT:    vmovdqa {{.*#+}} ymm0 = [255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u]7724; AVX2-FP-NEXT:    vpblendvb %ymm0, %ymm2, %ymm15, %ymm27725; AVX2-FP-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload7726; AVX2-FP-NEXT:    vpshufb %xmm1, %xmm10, %xmm17727; AVX2-FP-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload7728; AVX2-FP-NEXT:    vpshufb %xmm3, %xmm15, %xmm37729; AVX2-FP-NEXT:    vpor %xmm1, %xmm3, %xmm17730; AVX2-FP-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[0,1,0,1]7731; AVX2-FP-NEXT:    vpshufb %xmm6, %xmm13, %xmm37732; AVX2-FP-NEXT:    vpermq {{.*#+}} ymm3 = ymm3[0,0,1,0]7733; AVX2-FP-NEXT:    vpblendvb %ymm0, %ymm1, %ymm3, %ymm07734; AVX2-FP-NEXT:    vmovdqa {{.*#+}} ymm1 = [0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255]7735; AVX2-FP-NEXT:    vpblendvb %ymm1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload7736; AVX2-FP-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7737; AVX2-FP-NEXT:    vpblendvb %ymm1, %ymm11, %ymm0, %ymm07738; AVX2-FP-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7739; AVX2-FP-NEXT:    vpunpckhbw {{.*#+}} xmm0 = xmm9[8],xmm7[8],xmm9[9],xmm7[9],xmm9[10],xmm7[10],xmm9[11],xmm7[11],xmm9[12],xmm7[12],xmm9[13],xmm7[13],xmm9[14],xmm7[14],xmm9[15],xmm7[15]7740; AVX2-FP-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload7741; AVX2-FP-NEXT:    vpunpckhbw {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload7742; AVX2-FP-NEXT:    # xmm1 = xmm1[8],mem[8],xmm1[9],mem[9],xmm1[10],mem[10],xmm1[11],mem[11],xmm1[12],mem[12],xmm1[13],mem[13],xmm1[14],mem[14],xmm1[15],mem[15]7743; AVX2-FP-NEXT:    vmovdqa {{.*#+}} xmm2 = [6,3,2,u,u,u,9,8,5,4,u,u,u,11,10,7]7744; AVX2-FP-NEXT:    vpshufb %xmm2, %xmm0, %xmm07745; AVX2-FP-NEXT:    vpermq {{.*#+}} ymm0 = ymm0[0,1,0,1]7746; AVX2-FP-NEXT:    vmovdqa {{.*#+}} xmm3 = [2,u,u,u,9,8,5,4,u,u,u,11,10,7,6,u]7747; AVX2-FP-NEXT:    vpshufb %xmm3, %xmm1, %xmm17748; AVX2-FP-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[0,1,0,1]7749; AVX2-FP-NEXT:    vmovdqa {{.*#+}} ymm6 = [0,255,255,u,u,u,0,0,255,255,u,u,u,0,0,255,255,u,u,u,0,0,255,255,u,u,u,0,0,255,255,u]7750; AVX2-FP-NEXT:    vpblendvb %ymm6, %ymm0, %ymm1, %ymm07751; AVX2-FP-NEXT:    vpunpckhbw {{[-0-9]+}}(%r{{[sb]}}p), %xmm5, %xmm1 # 16-byte Folded Reload7752; AVX2-FP-NEXT:    # xmm1 = xmm5[8],mem[8],xmm5[9],mem[9],xmm5[10],mem[10],xmm5[11],mem[11],xmm5[12],mem[12],xmm5[13],mem[13],xmm5[14],mem[14],xmm5[15],mem[15]7753; AVX2-FP-NEXT:    vpshufb %xmm2, %xmm1, %xmm17754; AVX2-FP-NEXT:    vpunpckhbw {{[-0-9]+}}(%r{{[sb]}}p), %xmm12, %xmm2 # 16-byte Folded Reload7755; AVX2-FP-NEXT:    # xmm2 = xmm12[8],mem[8],xmm12[9],mem[9],xmm12[10],mem[10],xmm12[11],mem[11],xmm12[12],mem[12],xmm12[13],mem[13],xmm12[14],mem[14],xmm12[15],mem[15]7756; AVX2-FP-NEXT:    vpshufb %xmm3, %xmm2, %xmm27757; AVX2-FP-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[0,1,0,1]7758; AVX2-FP-NEXT:    vpermq {{.*#+}} ymm2 = ymm2[0,1,0,1]7759; AVX2-FP-NEXT:    vpblendvb %ymm6, %ymm1, %ymm2, %ymm17760; AVX2-FP-NEXT:    vpunpckhbw {{.*#+}} xmm2 = xmm14[8],xmm8[8],xmm14[9],xmm8[9],xmm14[10],xmm8[10],xmm14[11],xmm8[11],xmm14[12],xmm8[12],xmm14[13],xmm8[13],xmm14[14],xmm8[14],xmm14[15],xmm8[15]7761; AVX2-FP-NEXT:    vmovdqa {{.*#+}} xmm3 = [8,9,10,11,8,9,10,11,10,11,12,13,10,11,12,13]7762; AVX2-FP-NEXT:    vpshufb %xmm3, %xmm4, %xmm47763; AVX2-FP-NEXT:    vpermq {{.*#+}} ymm4 = ymm4[0,1,0,1]7764; AVX2-FP-NEXT:    vmovdqa {{.*#+}} xmm6 = [u,6,7,2,3,u,u,u,8,9,4,5,u,u,u,10]7765; AVX2-FP-NEXT:    vpshufb %xmm6, %xmm2, %xmm27766; AVX2-FP-NEXT:    vpermq {{.*#+}} ymm2 = ymm2[0,1,0,1]7767; AVX2-FP-NEXT:    vmovdqa {{.*#+}} ymm7 = [u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255]7768; AVX2-FP-NEXT:    vpblendvb %ymm7, %ymm2, %ymm4, %ymm27769; AVX2-FP-NEXT:    vpshufb %xmm3, %xmm13, %xmm37770; AVX2-FP-NEXT:    vpunpckhbw {{.*#+}} xmm4 = xmm15[8],xmm10[8],xmm15[9],xmm10[9],xmm15[10],xmm10[10],xmm15[11],xmm10[11],xmm15[12],xmm10[12],xmm15[13],xmm10[13],xmm15[14],xmm10[14],xmm15[15],xmm10[15]7771; AVX2-FP-NEXT:    vpshufb %xmm6, %xmm4, %xmm47772; AVX2-FP-NEXT:    vpermq {{.*#+}} ymm3 = ymm3[0,1,0,1]7773; AVX2-FP-NEXT:    vpermq {{.*#+}} ymm4 = ymm4[0,1,0,1]7774; AVX2-FP-NEXT:    vpblendvb %ymm7, %ymm4, %ymm3, %ymm37775; AVX2-FP-NEXT:    vmovdqa {{.*#+}} ymm4 = [255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0]7776; AVX2-FP-NEXT:    vpblendvb %ymm4, %ymm0, %ymm2, %ymm07777; AVX2-FP-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7778; AVX2-FP-NEXT:    vpblendvb %ymm4, %ymm1, %ymm3, %ymm07779; AVX2-FP-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7780; AVX2-FP-NEXT:    vmovdqa (%rdx), %ymm37781; AVX2-FP-NEXT:    vpshufb {{.*#+}} ymm0 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm3[17,18,19,30],zero,ymm3[28],zero,ymm3[28,29,30,31],zero,ymm3[29],zero,ymm3[31]7782; AVX2-FP-NEXT:    vmovdqa (%rcx), %ymm57783; AVX2-FP-NEXT:    vpshufb {{.*#+}} ymm1 = ymm5[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,27],zero,zero,zero,zero,ymm5[30],zero,ymm5[28],zero,zero,zero,zero,ymm5[31],zero,ymm5[29],zero7784; AVX2-FP-NEXT:    vpor %ymm0, %ymm1, %ymm27785; AVX2-FP-NEXT:    vmovdqa (%rsi), %ymm117786; AVX2-FP-NEXT:    vpshufb {{.*#+}} ymm4 = ymm11[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,zero,ymm11[30],zero,ymm11[28],zero,zero,zero,zero,ymm11[31],zero,ymm11[29],zero,zero,zero7787; AVX2-FP-NEXT:    vmovdqa (%rdi), %ymm137788; AVX2-FP-NEXT:    vpshufb {{.*#+}} ymm6 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm13[30],zero,ymm13[28],zero,zero,zero,zero,ymm13[31],zero,ymm13[29],zero,zero,zero,zero7789; AVX2-FP-NEXT:    vpor %ymm4, %ymm6, %ymm47790; AVX2-FP-NEXT:    vpermq {{.*#+}} ymm2 = ymm2[2,3,2,3]7791; AVX2-FP-NEXT:    vpermq {{.*#+}} ymm4 = ymm4[2,3,2,3]7792; AVX2-FP-NEXT:    vmovdqa {{.*#+}} ymm0 = [255,u,u,u,0,0,255,255,u,u,u,0,0,255,255,u,u,u,0,0,255,255,u,u,u,0,0,255,255,u,u,u]7793; AVX2-FP-NEXT:    vpblendvb %ymm0, %ymm2, %ymm4, %ymm67794; AVX2-FP-NEXT:    vmovdqa (%r8), %ymm147795; AVX2-FP-NEXT:    vmovdqa (%r9), %ymm17796; AVX2-FP-NEXT:    vpshufb {{.*#+}} ymm2 = ymm14[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,ymm14[27],zero,ymm14[27,28,29,30],zero,ymm14[28],zero,ymm14[26,27,30,31],zero,ymm14[29]7797; AVX2-FP-NEXT:    vpshufb {{.*#+}} ymm7 = ymm1[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,29],zero,ymm1[27],zero,zero,zero,zero,ymm1[30],zero,ymm1[28],zero,zero,zero,zero,ymm1[31],zero7798; AVX2-FP-NEXT:    vmovdqu %ymm1, (%rsp) # 32-byte Spill7799; AVX2-FP-NEXT:    vpor %ymm2, %ymm7, %ymm77800; AVX2-FP-NEXT:    vmovdqa (%rax), %ymm107801; AVX2-FP-NEXT:    vpshufb {{.*#+}} ymm8 = ymm10[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,28,29,26,27,28,29,30,31,30,31,28,29,28,29,30,31]7802; AVX2-FP-NEXT:    vmovdqu %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7803; AVX2-FP-NEXT:    vpermq {{.*#+}} ymm8 = ymm8[2,3,2,3]7804; AVX2-FP-NEXT:    vpermq {{.*#+}} ymm7 = ymm7[2,3,2,3]7805; AVX2-FP-NEXT:    vmovdqa {{.*#+}} ymm9 = [u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0]7806; AVX2-FP-NEXT:    vpblendvb %ymm9, %ymm7, %ymm8, %ymm77807; AVX2-FP-NEXT:    vmovdqa {{.*#+}} ymm8 = [255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0]7808; AVX2-FP-NEXT:    vpblendvb %ymm8, %ymm6, %ymm7, %ymm07809; AVX2-FP-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7810; AVX2-FP-NEXT:    vpshufb {{.*#+}} ymm6 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm13[23],zero,ymm13[27,20,21,26],zero,ymm13[24],zero,ymm13[26,27,26,27],zero,ymm13[25]7811; AVX2-FP-NEXT:    vmovdqu %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7812; AVX2-FP-NEXT:    vpshufb {{.*#+}} ymm8 = ymm11[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,25],zero,ymm11[23],zero,zero,zero,zero,ymm11[26],zero,ymm11[24],zero,zero,zero,zero,ymm11[27],zero7813; AVX2-FP-NEXT:    vmovdqa %ymm11, %ymm27814; AVX2-FP-NEXT:    vpor %ymm6, %ymm8, %ymm67815; AVX2-FP-NEXT:    vpshufb {{.*#+}} ymm8 = ymm5[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,ymm5[25],zero,ymm5[23],zero,zero,zero,zero,ymm5[26],zero,ymm5[24],zero,zero,zero,zero7816; AVX2-FP-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7817; AVX2-FP-NEXT:    vpshufb {{.*#+}} ymm9 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm3[25],zero,ymm3[23],zero,zero,zero,zero,ymm3[26],zero,ymm3[24],zero,zero,zero,zero,ymm3[27]7818; AVX2-FP-NEXT:    vpor %ymm8, %ymm9, %ymm87819; AVX2-FP-NEXT:    vpermq {{.*#+}} ymm6 = ymm6[2,3,2,3]7820; AVX2-FP-NEXT:    vpermq {{.*#+}} ymm8 = ymm8[2,3,2,3]7821; AVX2-FP-NEXT:    vmovdqa {{.*#+}} ymm0 = [u,255,255,0,0,u,u,u,255,255,0,0,u,u,u,255,255,0,0,u,u,u,255,255,0,0,u,u,u,255,255,0]7822; AVX2-FP-NEXT:    vpblendvb %ymm0, %ymm6, %ymm8, %ymm67823; AVX2-FP-NEXT:    vpshufb {{.*#+}} ymm8 = ymm1[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,zero,zero,ymm1[25],zero,ymm1[23],zero,zero,zero,zero,ymm1[26],zero,ymm1[24],zero,zero7824; AVX2-FP-NEXT:    vpshufb {{.*#+}} ymm9 = ymm14[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,zero,ymm14[25],zero,ymm14[23],zero,zero,zero,zero,ymm14[26],zero,ymm14[24],zero,zero,zero7825; AVX2-FP-NEXT:    vmovdqu %ymm14, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7826; AVX2-FP-NEXT:    vpor %ymm8, %ymm9, %ymm87827; AVX2-FP-NEXT:    vpshufb {{.*#+}} ymm9 = ymm10[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,22,23,26,27,24,25,22,23,24,25,26,27,26,27,24,25]7828; AVX2-FP-NEXT:    vpermq {{.*#+}} ymm9 = ymm9[2,3,2,3]7829; AVX2-FP-NEXT:    vpermq {{.*#+}} ymm8 = ymm8[2,3,2,3]7830; AVX2-FP-NEXT:    vmovdqa {{.*#+}} ymm10 = [0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u]7831; AVX2-FP-NEXT:    vpblendvb %ymm10, %ymm8, %ymm9, %ymm87832; AVX2-FP-NEXT:    vmovdqa {{.*#+}} ymm9 = [0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255]7833; AVX2-FP-NEXT:    vpblendvb %ymm9, %ymm6, %ymm8, %ymm07834; AVX2-FP-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7835; AVX2-FP-NEXT:    vbroadcasti128 {{.*#+}} ymm9 = [128,18,128,128,128,128,21,128,19,128,128,128,128,22,128,20,128,18,128,128,128,128,21,128,19,128,128,128,128,22,128,20]7836; AVX2-FP-NEXT:    # ymm9 = mem[0,1,0,1]7837; AVX2-FP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload7838; AVX2-FP-NEXT:    vpshufb %ymm9, %ymm0, %ymm87839; AVX2-FP-NEXT:    vmovdqa {{.*#+}} ymm10 = [128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,18,128,128,128,128,21,128,19,128,128,128,128,22,128,20,128]7840; AVX2-FP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload7841; AVX2-FP-NEXT:    vpshufb %ymm10, %ymm0, %ymm117842; AVX2-FP-NEXT:    vpor %ymm8, %ymm11, %ymm87843; AVX2-FP-NEXT:    vbroadcasti128 {{.*#+}} ymm11 = [128,128,128,128,21,128,19,128,128,128,128,22,128,20,128,128,128,128,128,128,21,128,19,128,128,128,128,22,128,20,128,128]7844; AVX2-FP-NEXT:    # ymm11 = mem[0,1,0,1]7845; AVX2-FP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload7846; AVX2-FP-NEXT:    vpshufb %ymm11, %ymm7, %ymm127847; AVX2-FP-NEXT:    vmovdqa {{.*#+}} ymm0 = [128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,21,128,19,128,128,128,128,22,128,20,128,128,128]7848; AVX2-FP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload7849; AVX2-FP-NEXT:    vpshufb %ymm0, %ymm1, %ymm157850; AVX2-FP-NEXT:    vpor %ymm12, %ymm15, %ymm127851; AVX2-FP-NEXT:    vpermq {{.*#+}} ymm8 = ymm8[2,3,2,3]7852; AVX2-FP-NEXT:    vpermq {{.*#+}} ymm12 = ymm12[2,3,2,3]7853; AVX2-FP-NEXT:    vmovdqa {{.*#+}} ymm15 = [255,255,u,u,u,0,0,255,255,u,u,u,0,0,255,255,u,u,u,0,0,255,255,u,u,u,0,0,255,255,u,u]7854; AVX2-FP-NEXT:    vpblendvb %ymm15, %ymm8, %ymm12, %ymm47855; AVX2-FP-NEXT:    vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7856; AVX2-FP-NEXT:    vpshufb %ymm9, %ymm5, %ymm97857; AVX2-FP-NEXT:    vpshufb %ymm10, %ymm3, %ymm107858; AVX2-FP-NEXT:    vpor %ymm9, %ymm10, %ymm97859; AVX2-FP-NEXT:    vmovdqa %ymm2, %ymm37860; AVX2-FP-NEXT:    vpshufb %ymm11, %ymm2, %ymm107861; AVX2-FP-NEXT:    vpshufb %ymm0, %ymm13, %ymm117862; AVX2-FP-NEXT:    vpor %ymm10, %ymm11, %ymm107863; AVX2-FP-NEXT:    vpermq {{.*#+}} ymm9 = ymm9[2,3,2,3]7864; AVX2-FP-NEXT:    vpermq {{.*#+}} ymm10 = ymm10[2,3,2,3]7865; AVX2-FP-NEXT:    vpblendvb %ymm15, %ymm9, %ymm10, %ymm97866; AVX2-FP-NEXT:    vbroadcasti128 {{.*#+}} ymm10 = [128,20,128,18,128,128,128,128,21,128,19,128,128,128,128,22,128,20,128,18,128,128,128,128,21,128,19,128,128,128,128,22]7867; AVX2-FP-NEXT:    # ymm10 = mem[0,1,0,1]7868; AVX2-FP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload7869; AVX2-FP-NEXT:    vpshufb %ymm10, %ymm8, %ymm117870; AVX2-FP-NEXT:    vmovdqa {{.*#+}} ymm12 = [128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,20,128,18,128,128,128,128,21,128,19,128,128,128,128,22,128]7871; AVX2-FP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload7872; AVX2-FP-NEXT:    vpshufb %ymm12, %ymm4, %ymm137873; AVX2-FP-NEXT:    vpor %ymm11, %ymm13, %ymm117874; AVX2-FP-NEXT:    vpermq {{.*#+}} ymm11 = ymm11[2,3,2,3]7875; AVX2-FP-NEXT:    vbroadcasti128 {{.*#+}} ymm13 = [20,21,18,19,18,19,20,21,18,19,20,21,28,29,30,31,20,21,18,19,18,19,20,21,18,19,20,21,28,29,30,31]7876; AVX2-FP-NEXT:    # ymm13 = mem[0,1,0,1]7877; AVX2-FP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload7878; AVX2-FP-NEXT:    vpshufb %ymm13, %ymm6, %ymm157879; AVX2-FP-NEXT:    vpermq {{.*#+}} ymm15 = ymm15[2,2,3,2]7880; AVX2-FP-NEXT:    vmovdqa {{.*#+}} ymm0 = [u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255]7881; AVX2-FP-NEXT:    vpblendvb %ymm0, %ymm11, %ymm15, %ymm117882; AVX2-FP-NEXT:    vmovdqu (%rsp), %ymm15 # 32-byte Reload7883; AVX2-FP-NEXT:    vpshufb %ymm10, %ymm15, %ymm107884; AVX2-FP-NEXT:    vpshufb %ymm12, %ymm14, %ymm127885; AVX2-FP-NEXT:    vpor %ymm10, %ymm12, %ymm107886; AVX2-FP-NEXT:    vpermq {{.*#+}} ymm10 = ymm10[2,3,2,3]7887; AVX2-FP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload7888; AVX2-FP-NEXT:    vpshufb %ymm13, %ymm2, %ymm127889; AVX2-FP-NEXT:    vpermq {{.*#+}} ymm12 = ymm12[2,2,3,2]7890; AVX2-FP-NEXT:    vpblendvb %ymm0, %ymm10, %ymm12, %ymm07891; AVX2-FP-NEXT:    vmovdqa {{.*#+}} ymm10 = [255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0]7892; AVX2-FP-NEXT:    vpblendvb %ymm10, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm11 # 32-byte Folded Reload7893; AVX2-FP-NEXT:    vmovdqu %ymm11, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7894; AVX2-FP-NEXT:    vpblendvb %ymm10, %ymm9, %ymm0, %ymm97895; AVX2-FP-NEXT:    vmovdqa {{.*#+}} ymm0 = [128,128,128,14,128,128,128,128,128,128,15,128,128,128,128,128,128,16,128,128,128,128,128,128,17,128,128,128,128,128,128,18]7896; AVX2-FP-NEXT:    vpshufb %ymm0, %ymm7, %ymm107897; AVX2-FP-NEXT:    vmovdqa {{.*#+}} ymm11 = [0,128,14,128,128,128,128,1,128,15,128,128,128,128,2,128,16,128,30,128,128,128,128,17,128,31,128,128,128,128,18,128]7898; AVX2-FP-NEXT:    vpshufb %ymm11, %ymm1, %ymm127899; AVX2-FP-NEXT:    vpor %ymm10, %ymm12, %ymm107900; AVX2-FP-NEXT:    vmovdqa {{.*#+}} ymm12 = [128,128,128,128,128,14,128,128,128,128,128,128,15,128,128,128,128,128,128,16,128,128,128,128,128,128,17,128,128,128,128,128]7901; AVX2-FP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload7902; AVX2-FP-NEXT:    vpshufb %ymm12, %ymm1, %ymm137903; AVX2-FP-NEXT:    vmovdqa {{.*#+}} ymm14 = [128,128,0,128,14,128,128,128,128,1,128,15,128,128,128,128,128,128,16,128,30,128,128,128,128,17,128,31,128,128,128,128]7904; AVX2-FP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload7905; AVX2-FP-NEXT:    vpshufb %ymm14, %ymm1, %ymm77906; AVX2-FP-NEXT:    vpor %ymm7, %ymm13, %ymm77907; AVX2-FP-NEXT:    vmovdqa {{.*#+}} ymm13 = [u,u,255,255,0,0,u,u,u,255,255,0,0,u,u,u,255,255,0,0,u,u,u,255,255,0,0,u,u,u,255,255]7908; AVX2-FP-NEXT:    vpblendvb %ymm13, %ymm10, %ymm7, %ymm107909; AVX2-FP-NEXT:    vpshufb %ymm0, %ymm3, %ymm07910; AVX2-FP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload7911; AVX2-FP-NEXT:    vpshufb %ymm11, %ymm1, %ymm17912; AVX2-FP-NEXT:    vpor %ymm0, %ymm1, %ymm07913; AVX2-FP-NEXT:    vpshufb %ymm12, %ymm5, %ymm17914; AVX2-FP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload7915; AVX2-FP-NEXT:    vpshufb %ymm14, %ymm3, %ymm37916; AVX2-FP-NEXT:    vpor %ymm1, %ymm3, %ymm17917; AVX2-FP-NEXT:    vpblendvb %ymm13, %ymm0, %ymm1, %ymm07918; AVX2-FP-NEXT:    vmovdqa {{.*#+}} ymm1 = [128,1,2,3,0,128,14,128,0,1,0,1,128,15,128,15,128,17,18,19,16,128,30,128,16,17,16,17,128,31,128,31]7919; AVX2-FP-NEXT:    vpshufb %ymm1, %ymm4, %ymm37920; AVX2-FP-NEXT:    vmovdqa {{.*#+}} ymm5 = [13,128,128,128,128,128,128,14,128,128,128,128,128,128,15,128,128,128,128,128,128,16,128,128,128,128,128,128,17,128,128,128]7921; AVX2-FP-NEXT:    vpshufb %ymm5, %ymm8, %ymm77922; AVX2-FP-NEXT:    vpor %ymm3, %ymm7, %ymm37923; AVX2-FP-NEXT:    vmovdqa {{.*#+}} ymm7 = [12,13,2,3,12,13,0,1,14,15,2,3,0,1,14,15,28,29,18,19,28,29,16,17,30,31,18,19,16,17,30,31]7924; AVX2-FP-NEXT:    vpshufb %ymm7, %ymm6, %ymm117925; AVX2-FP-NEXT:    vmovdqa {{.*#+}} ymm12 = [255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u]7926; AVX2-FP-NEXT:    vpblendvb %ymm12, %ymm3, %ymm11, %ymm37927; AVX2-FP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload7928; AVX2-FP-NEXT:    vpshufb %ymm1, %ymm4, %ymm17929; AVX2-FP-NEXT:    vpshufb %ymm5, %ymm15, %ymm47930; AVX2-FP-NEXT:    vpor %ymm1, %ymm4, %ymm17931; AVX2-FP-NEXT:    vpshufb %ymm7, %ymm2, %ymm27932; AVX2-FP-NEXT:    vpblendvb %ymm12, %ymm1, %ymm2, %ymm17933; AVX2-FP-NEXT:    vmovdqa {{.*#+}} ymm2 = [0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255]7934; AVX2-FP-NEXT:    vpblendvb %ymm2, %ymm10, %ymm3, %ymm37935; AVX2-FP-NEXT:    vpblendvb %ymm2, %ymm0, %ymm1, %ymm07936; AVX2-FP-NEXT:    movq {{[0-9]+}}(%rsp), %rax7937; AVX2-FP-NEXT:    vmovdqa %ymm0, 96(%rax)7938; AVX2-FP-NEXT:    vmovdqa %ymm3, 320(%rax)7939; AVX2-FP-NEXT:    vmovdqa %ymm9, 128(%rax)7940; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload7941; AVX2-FP-NEXT:    vmovaps %ymm0, 352(%rax)7942; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload7943; AVX2-FP-NEXT:    vmovaps %ymm0, 160(%rax)7944; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload7945; AVX2-FP-NEXT:    vmovaps %ymm0, 192(%rax)7946; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload7947; AVX2-FP-NEXT:    vmovaps %ymm0, 64(%rax)7948; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload7949; AVX2-FP-NEXT:    vmovaps %ymm0, 32(%rax)7950; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload7951; AVX2-FP-NEXT:    vmovaps %ymm0, (%rax)7952; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload7953; AVX2-FP-NEXT:    vmovaps %ymm0, 224(%rax)7954; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload7955; AVX2-FP-NEXT:    vmovaps %ymm0, 288(%rax)7956; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload7957; AVX2-FP-NEXT:    vmovaps %ymm0, 256(%rax)7958; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload7959; AVX2-FP-NEXT:    vmovaps %ymm0, 416(%rax)7960; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload7961; AVX2-FP-NEXT:    vmovaps %ymm0, 384(%rax)7962; AVX2-FP-NEXT:    addq $616, %rsp # imm = 0x2687963; AVX2-FP-NEXT:    vzeroupper7964; AVX2-FP-NEXT:    retq7965;7966; AVX2-FCP-LABEL: store_i8_stride7_vf64:7967; AVX2-FCP:       # %bb.0:7968; AVX2-FCP-NEXT:    subq $616, %rsp # imm = 0x2687969; AVX2-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax7970; AVX2-FCP-NEXT:    vmovdqa 32(%rdi), %ymm87971; AVX2-FCP-NEXT:    vmovdqa 32(%rsi), %ymm97972; AVX2-FCP-NEXT:    vmovdqa 32(%rdx), %ymm67973; AVX2-FCP-NEXT:    vmovdqa 32(%rcx), %ymm27974; AVX2-FCP-NEXT:    vmovdqa 32(%r8), %ymm47975; AVX2-FCP-NEXT:    vmovdqa 32(%r9), %ymm57976; AVX2-FCP-NEXT:    vmovdqa 32(%rax), %ymm37977; AVX2-FCP-NEXT:    vpshufb {{.*#+}} ymm0 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm8[23],zero,ymm8[27,20,21,26],zero,ymm8[24],zero,ymm8[26,27,26,27],zero,ymm8[25]7978; AVX2-FCP-NEXT:    vmovdqu %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7979; AVX2-FCP-NEXT:    vpshufb {{.*#+}} ymm1 = ymm9[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,25],zero,ymm9[23],zero,zero,zero,zero,ymm9[26],zero,ymm9[24],zero,zero,zero,zero,ymm9[27],zero7980; AVX2-FCP-NEXT:    vmovdqu %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7981; AVX2-FCP-NEXT:    vpor %ymm0, %ymm1, %ymm07982; AVX2-FCP-NEXT:    vpermq {{.*#+}} ymm0 = ymm0[2,3,2,3]7983; AVX2-FCP-NEXT:    vpshufb {{.*#+}} ymm1 = ymm2[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,ymm2[25],zero,ymm2[23],zero,zero,zero,zero,ymm2[26],zero,ymm2[24],zero,zero,zero,zero7984; AVX2-FCP-NEXT:    vmovdqa %ymm2, %ymm77985; AVX2-FCP-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7986; AVX2-FCP-NEXT:    vpshufb {{.*#+}} ymm2 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm6[25],zero,ymm6[23],zero,zero,zero,zero,ymm6[26],zero,ymm6[24],zero,zero,zero,zero,ymm6[27]7987; AVX2-FCP-NEXT:    vmovdqu %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7988; AVX2-FCP-NEXT:    vpor %ymm1, %ymm2, %ymm17989; AVX2-FCP-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[2,3,2,3]7990; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} ymm2 = [u,255,255,0,0,u,u,u,255,255,0,0,u,u,u,255,255,0,0,u,u,u,255,255,0,0,u,u,u,255,255,0]7991; AVX2-FCP-NEXT:    vpblendvb %ymm2, %ymm0, %ymm1, %ymm07992; AVX2-FCP-NEXT:    vpshufb {{.*#+}} ymm1 = ymm4[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,24,25,24,25,22,23,22,23,24,25,26,27,24,25,30,31]7993; AVX2-FCP-NEXT:    vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7994; AVX2-FCP-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[2,3,2,3]7995; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} ymm2 = [u,255,255,255,255,0,u,u,255,255,255,255,0,u,u,255,255,255,255,0,u,u,255,255,255,255,0,u,u,255,255,255]7996; AVX2-FCP-NEXT:    vpblendvb %ymm2, %ymm0, %ymm1, %ymm07997; AVX2-FCP-NEXT:    vmovdqu %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7998; AVX2-FCP-NEXT:    vpshufb {{.*#+}} ymm1 = ymm5[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,26,25,24,23,u,u,u,u,u,u,u,u,u]7999; AVX2-FCP-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[2,2,2,2]8000; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} ymm2 = [u,255,255,255,255,255,0,u,255,255,255,255,255,0,u,255,255,255,255,255,0,u,255,255,255,255,255,0,u,255,255,255]8001; AVX2-FCP-NEXT:    vpblendvb %ymm2, %ymm0, %ymm1, %ymm08002; AVX2-FCP-NEXT:    vpshufb {{.*#+}} ymm1 = ymm3[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,22,23,26,27,24,25,22,23,24,25,26,27,26,27,24,25]8003; AVX2-FCP-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8004; AVX2-FCP-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[2,3,2,3]8005; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} ymm2 = [0,255,255,255,255,255,255,0,255,255,255,255,255,255,0,255,255,255,255,255,255,0,255,255,255,255,255,255,0,255,255,255]8006; AVX2-FCP-NEXT:    vpblendvb %ymm2, %ymm0, %ymm1, %ymm08007; AVX2-FCP-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8008; AVX2-FCP-NEXT:    vpshufb {{.*#+}} ymm0 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm6[17,18,19,30],zero,ymm6[28],zero,ymm6[28,29,30,31],zero,ymm6[29],zero,ymm6[31]8009; AVX2-FCP-NEXT:    vpshufb {{.*#+}} ymm1 = ymm7[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,27],zero,zero,zero,zero,ymm7[30],zero,ymm7[28],zero,zero,zero,zero,ymm7[31],zero,ymm7[29],zero8010; AVX2-FCP-NEXT:    vpor %ymm0, %ymm1, %ymm08011; AVX2-FCP-NEXT:    vpshufb {{.*#+}} ymm1 = ymm9[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,zero,ymm9[30],zero,ymm9[28],zero,zero,zero,zero,ymm9[31],zero,ymm9[29],zero,zero,zero8012; AVX2-FCP-NEXT:    vpshufb {{.*#+}} ymm2 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm8[30],zero,ymm8[28],zero,zero,zero,zero,ymm8[31],zero,ymm8[29],zero,zero,zero,zero8013; AVX2-FCP-NEXT:    vpor %ymm1, %ymm2, %ymm18014; AVX2-FCP-NEXT:    vpermq {{.*#+}} ymm0 = ymm0[2,3,2,3]8015; AVX2-FCP-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[2,3,2,3]8016; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} ymm2 = [255,u,u,u,0,0,255,255,u,u,u,0,0,255,255,u,u,u,0,0,255,255,u,u,u,0,0,255,255,u,u,u]8017; AVX2-FCP-NEXT:    vpblendvb %ymm2, %ymm0, %ymm1, %ymm08018; AVX2-FCP-NEXT:    vpshufb {{.*#+}} ymm1 = ymm4[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,26,27,26,27,30,31,30,31,28,29,28,29,28,29,28,29]8019; AVX2-FCP-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[2,3,2,2]8020; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} ymm2 = [255,0,u,u,255,255,255,255,0,u,u,255,255,255,255,0,u,u,255,255,255,255,0,u,u,255,255,255,255,0,u,u]8021; AVX2-FCP-NEXT:    vpblendvb %ymm2, %ymm0, %ymm1, %ymm08022; AVX2-FCP-NEXT:    vpshufb {{.*#+}} ymm1 = ymm5[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,29,28,27,u,u,u,31,30,u,u,u,u,u,u,u,u]8023; AVX2-FCP-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[2,2,2,2]8024; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} ymm2 = [255,255,0,u,255,255,255,255,255,0,u,255,255,255,255,255,0,u,255,255,255,255,255,0,u,255,255,255,255,255,0,u]8025; AVX2-FCP-NEXT:    vpblendvb %ymm2, %ymm0, %ymm1, %ymm08026; AVX2-FCP-NEXT:    vpshufb {{.*#+}} ymm1 = ymm3[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,28,29,26,27,28,29,30,31,30,31,28,29,28,29,30,31]8027; AVX2-FCP-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[2,3,2,3]8028; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} ymm2 = [255,255,255,0,255,255,255,255,255,255,0,255,255,255,255,255,255,0,255,255,255,255,255,255,0,255,255,255,255,255,255,0]8029; AVX2-FCP-NEXT:    vpblendvb %ymm2, %ymm0, %ymm1, %ymm08030; AVX2-FCP-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8031; AVX2-FCP-NEXT:    vmovdqa 32(%rsi), %xmm148032; AVX2-FCP-NEXT:    vmovdqa 32(%rdi), %xmm08033; AVX2-FCP-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8034; AVX2-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm0 = xmm0[0],xmm14[0],xmm0[1],xmm14[1],xmm0[2],xmm14[2],xmm0[3],xmm14[3],xmm0[4],xmm14[4],xmm0[5],xmm14[5],xmm0[6],xmm14[6],xmm0[7],xmm14[7]8035; AVX2-FCP-NEXT:    vmovdqa %xmm14, (%rsp) # 16-byte Spill8036; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} xmm1 = [0,1,u,u,u,6,7,2,3,u,u,u,8,9,4,5]8037; AVX2-FCP-NEXT:    vpshufb %xmm1, %xmm0, %xmm08038; AVX2-FCP-NEXT:    vpermq {{.*#+}} ymm0 = ymm0[0,1,0,1]8039; AVX2-FCP-NEXT:    vmovdqa 32(%rcx), %xmm108040; AVX2-FCP-NEXT:    vmovdqa 32(%rdx), %xmm78041; AVX2-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm2 = xmm7[0],xmm10[0],xmm7[1],xmm10[1],xmm7[2],xmm10[2],xmm7[3],xmm10[3],xmm7[4],xmm10[4],xmm7[5],xmm10[5],xmm7[6],xmm10[6],xmm7[7],xmm10[7]8042; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} xmm3 = [4,5,0,1,u,u,u,6,7,2,3,u,u,u,8,9]8043; AVX2-FCP-NEXT:    vpshufb %xmm3, %xmm2, %xmm28044; AVX2-FCP-NEXT:    vpermq {{.*#+}} ymm2 = ymm2[0,1,0,1]8045; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} ymm4 = [255,255,0,0,u,u,u,255,255,0,0,u,u,u,255,255,0,0,u,u,u,255,255,0,0,u,u,u,255,255,0,0]8046; AVX2-FCP-NEXT:    vpblendvb %ymm4, %ymm0, %ymm2, %ymm08047; AVX2-FCP-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8048; AVX2-FCP-NEXT:    vmovdqa (%rsi), %xmm118049; AVX2-FCP-NEXT:    vmovdqa (%rdi), %xmm128050; AVX2-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm0 = xmm12[0],xmm11[0],xmm12[1],xmm11[1],xmm12[2],xmm11[2],xmm12[3],xmm11[3],xmm12[4],xmm11[4],xmm12[5],xmm11[5],xmm12[6],xmm11[6],xmm12[7],xmm11[7]8051; AVX2-FCP-NEXT:    vmovdqa %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8052; AVX2-FCP-NEXT:    vmovdqa %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8053; AVX2-FCP-NEXT:    vpshufb %xmm1, %xmm0, %xmm08054; AVX2-FCP-NEXT:    vmovdqa (%rcx), %xmm28055; AVX2-FCP-NEXT:    vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8056; AVX2-FCP-NEXT:    vmovdqa (%rdx), %xmm18057; AVX2-FCP-NEXT:    vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8058; AVX2-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1],xmm1[2],xmm2[2],xmm1[3],xmm2[3],xmm1[4],xmm2[4],xmm1[5],xmm2[5],xmm1[6],xmm2[6],xmm1[7],xmm2[7]8059; AVX2-FCP-NEXT:    vpshufb %xmm3, %xmm1, %xmm18060; AVX2-FCP-NEXT:    vpermq {{.*#+}} ymm0 = ymm0[0,1,0,1]8061; AVX2-FCP-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[0,1,0,1]8062; AVX2-FCP-NEXT:    vpblendvb %ymm4, %ymm0, %ymm1, %ymm68063; AVX2-FCP-NEXT:    vmovdqa 32(%rax), %xmm08064; AVX2-FCP-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8065; AVX2-FCP-NEXT:    vpshuflw {{.*#+}} xmm1 = xmm0[1,1,0,0,4,5,6,7]8066; AVX2-FCP-NEXT:    vpmovsxbd {{.*#+}} ymm3 = [0,1,0,1,2,0,0,1]8067; AVX2-FCP-NEXT:    vpermd %ymm1, %ymm3, %ymm48068; AVX2-FCP-NEXT:    vmovdqa 32(%r9), %xmm88069; AVX2-FCP-NEXT:    vmovdqa 32(%r8), %xmm138070; AVX2-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm5 = xmm13[0],xmm8[0],xmm13[1],xmm8[1],xmm13[2],xmm8[2],xmm13[3],xmm8[3],xmm13[4],xmm8[4],xmm13[5],xmm8[5],xmm13[6],xmm8[6],xmm13[7],xmm8[7]8071; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} xmm2 = [u,u,4,5,0,1,u,u,u,6,7,2,3,u,u,u]8072; AVX2-FCP-NEXT:    vpshufb %xmm2, %xmm5, %xmm58073; AVX2-FCP-NEXT:    vpermq {{.*#+}} ymm5 = ymm5[0,1,0,1]8074; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} ymm1 = [u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u]8075; AVX2-FCP-NEXT:    vpblendvb %ymm1, %ymm5, %ymm4, %ymm08076; AVX2-FCP-NEXT:    vmovdqa (%rax), %xmm48077; AVX2-FCP-NEXT:    vmovdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8078; AVX2-FCP-NEXT:    vpshuflw {{.*#+}} xmm4 = xmm4[1,1,0,0,4,5,6,7]8079; AVX2-FCP-NEXT:    vpermd %ymm4, %ymm3, %ymm38080; AVX2-FCP-NEXT:    vmovdqa (%r9), %xmm98081; AVX2-FCP-NEXT:    vmovdqa (%r8), %xmm58082; AVX2-FCP-NEXT:    vmovdqa %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8083; AVX2-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm15 = xmm5[0],xmm9[0],xmm5[1],xmm9[1],xmm5[2],xmm9[2],xmm5[3],xmm9[3],xmm5[4],xmm9[4],xmm5[5],xmm9[5],xmm5[6],xmm9[6],xmm5[7],xmm9[7]8084; AVX2-FCP-NEXT:    vpshufb %xmm2, %xmm15, %xmm28085; AVX2-FCP-NEXT:    vpermq {{.*#+}} ymm2 = ymm2[0,1,0,1]8086; AVX2-FCP-NEXT:    vpblendvb %ymm1, %ymm2, %ymm3, %ymm18087; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} ymm2 = [255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255]8088; AVX2-FCP-NEXT:    vpblendvb %ymm2, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload8089; AVX2-FCP-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8090; AVX2-FCP-NEXT:    vpblendvb %ymm2, %ymm6, %ymm1, %ymm08091; AVX2-FCP-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8092; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} xmm1 = [u,128,7,128,5,u,u,u,128,8,128,6,u,u,u,128]8093; AVX2-FCP-NEXT:    vpshufb %xmm1, %xmm14, %xmm08094; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} xmm2 = [u,7,128,5,128,u,u,u,8,128,6,128,u,u,u,9]8095; AVX2-FCP-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload8096; AVX2-FCP-NEXT:    vpshufb %xmm2, %xmm3, %xmm38097; AVX2-FCP-NEXT:    vpor %xmm0, %xmm3, %xmm08098; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} xmm3 = [u,u,u,128,7,128,5,u,u,u,128,8,128,6,u,u]8099; AVX2-FCP-NEXT:    vpshufb %xmm3, %xmm10, %xmm68100; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} xmm15 = [u,u,u,7,128,5,128,u,u,u,8,128,6,128,u,u]8101; AVX2-FCP-NEXT:    vpshufb %xmm15, %xmm7, %xmm148102; AVX2-FCP-NEXT:    vpor %xmm6, %xmm14, %xmm68103; AVX2-FCP-NEXT:    vpermq {{.*#+}} ymm0 = ymm0[0,1,0,1]8104; AVX2-FCP-NEXT:    vpermq {{.*#+}} ymm6 = ymm6[0,1,0,1]8105; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} ymm14 = [u,u,u,255,255,0,0,u,u,u,255,255,0,0,u,u,u,255,255,0,0,u,u,u,255,255,0,0,u,u,u,255]8106; AVX2-FCP-NEXT:    vpblendvb %ymm14, %ymm0, %ymm6, %ymm08107; AVX2-FCP-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8108; AVX2-FCP-NEXT:    vpshufb %xmm1, %xmm11, %xmm18109; AVX2-FCP-NEXT:    vpshufb %xmm2, %xmm12, %xmm28110; AVX2-FCP-NEXT:    vpor %xmm1, %xmm2, %xmm18111; AVX2-FCP-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload8112; AVX2-FCP-NEXT:    vpshufb %xmm3, %xmm5, %xmm28113; AVX2-FCP-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload8114; AVX2-FCP-NEXT:    vpshufb %xmm15, %xmm4, %xmm38115; AVX2-FCP-NEXT:    vpor %xmm2, %xmm3, %xmm28116; AVX2-FCP-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[0,1,0,1]8117; AVX2-FCP-NEXT:    vpermq {{.*#+}} ymm2 = ymm2[0,1,0,1]8118; AVX2-FCP-NEXT:    vpblendvb %ymm14, %ymm1, %ymm2, %ymm18119; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} xmm2 = [128,4,u,u,u,128,7,128,5,u,u,u,128,8,128,6]8120; AVX2-FCP-NEXT:    vpshufb %xmm2, %xmm8, %xmm38121; AVX2-FCP-NEXT:    vmovdqa %xmm8, %xmm118122; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} xmm6 = [4,128,u,u,u,7,128,5,128,u,u,u,8,128,6,128]8123; AVX2-FCP-NEXT:    vpshufb %xmm6, %xmm13, %xmm148124; AVX2-FCP-NEXT:    vpor %xmm3, %xmm14, %xmm38125; AVX2-FCP-NEXT:    vpermq {{.*#+}} ymm3 = ymm3[0,1,0,1]8126; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} xmm14 = [4,5,4,5,4,5,8,9,6,7,6,7,6,7,6,7]8127; AVX2-FCP-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload8128; AVX2-FCP-NEXT:    vpshufb %xmm14, %xmm8, %xmm158129; AVX2-FCP-NEXT:    vpermq {{.*#+}} ymm15 = ymm15[0,0,1,0]8130; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} ymm0 = [255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u]8131; AVX2-FCP-NEXT:    vpblendvb %ymm0, %ymm3, %ymm15, %ymm38132; AVX2-FCP-NEXT:    vpshufb %xmm2, %xmm9, %xmm28133; AVX2-FCP-NEXT:    vmovdqa %xmm9, %xmm128134; AVX2-FCP-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Reload8135; AVX2-FCP-NEXT:    vpshufb %xmm6, %xmm9, %xmm68136; AVX2-FCP-NEXT:    vpor %xmm2, %xmm6, %xmm28137; AVX2-FCP-NEXT:    vpermq {{.*#+}} ymm2 = ymm2[0,1,0,1]8138; AVX2-FCP-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload8139; AVX2-FCP-NEXT:    vpshufb %xmm14, %xmm15, %xmm68140; AVX2-FCP-NEXT:    vpermq {{.*#+}} ymm6 = ymm6[0,0,1,0]8141; AVX2-FCP-NEXT:    vpblendvb %ymm0, %ymm2, %ymm6, %ymm08142; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} ymm2 = [0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255]8143; AVX2-FCP-NEXT:    vpblendvb %ymm2, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm3 # 32-byte Folded Reload8144; AVX2-FCP-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8145; AVX2-FCP-NEXT:    vpblendvb %ymm2, %ymm1, %ymm0, %ymm08146; AVX2-FCP-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8147; AVX2-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm0 = xmm10[8],xmm7[8],xmm10[9],xmm7[9],xmm10[10],xmm7[10],xmm10[11],xmm7[11],xmm10[12],xmm7[12],xmm10[13],xmm7[13],xmm10[14],xmm7[14],xmm10[15],xmm7[15]8148; AVX2-FCP-NEXT:    vmovdqa (%rsp), %xmm1 # 16-byte Reload8149; AVX2-FCP-NEXT:    vpunpckhbw {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload8150; AVX2-FCP-NEXT:    # xmm1 = xmm1[8],mem[8],xmm1[9],mem[9],xmm1[10],mem[10],xmm1[11],mem[11],xmm1[12],mem[12],xmm1[13],mem[13],xmm1[14],mem[14],xmm1[15],mem[15]8151; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} xmm2 = [6,3,2,u,u,u,9,8,5,4,u,u,u,11,10,7]8152; AVX2-FCP-NEXT:    vpshufb %xmm2, %xmm0, %xmm08153; AVX2-FCP-NEXT:    vpermq {{.*#+}} ymm0 = ymm0[0,1,0,1]8154; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} xmm3 = [2,u,u,u,9,8,5,4,u,u,u,11,10,7,6,u]8155; AVX2-FCP-NEXT:    vpshufb %xmm3, %xmm1, %xmm18156; AVX2-FCP-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[0,1,0,1]8157; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} ymm6 = [0,255,255,u,u,u,0,0,255,255,u,u,u,0,0,255,255,u,u,u,0,0,255,255,u,u,u,0,0,255,255,u]8158; AVX2-FCP-NEXT:    vpblendvb %ymm6, %ymm0, %ymm1, %ymm08159; AVX2-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm1 = xmm5[8],xmm4[8],xmm5[9],xmm4[9],xmm5[10],xmm4[10],xmm5[11],xmm4[11],xmm5[12],xmm4[12],xmm5[13],xmm4[13],xmm5[14],xmm4[14],xmm5[15],xmm4[15]8160; AVX2-FCP-NEXT:    vpshufb %xmm2, %xmm1, %xmm18161; AVX2-FCP-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload8162; AVX2-FCP-NEXT:    vpunpckhbw {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm2 # 16-byte Folded Reload8163; AVX2-FCP-NEXT:    # xmm2 = xmm2[8],mem[8],xmm2[9],mem[9],xmm2[10],mem[10],xmm2[11],mem[11],xmm2[12],mem[12],xmm2[13],mem[13],xmm2[14],mem[14],xmm2[15],mem[15]8164; AVX2-FCP-NEXT:    vpshufb %xmm3, %xmm2, %xmm28165; AVX2-FCP-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[0,1,0,1]8166; AVX2-FCP-NEXT:    vpermq {{.*#+}} ymm2 = ymm2[0,1,0,1]8167; AVX2-FCP-NEXT:    vpblendvb %ymm6, %ymm1, %ymm2, %ymm18168; AVX2-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm2 = xmm13[8],xmm11[8],xmm13[9],xmm11[9],xmm13[10],xmm11[10],xmm13[11],xmm11[11],xmm13[12],xmm11[12],xmm13[13],xmm11[13],xmm13[14],xmm11[14],xmm13[15],xmm11[15]8169; AVX2-FCP-NEXT:    vpshufhw {{.*#+}} xmm3 = xmm8[0,1,2,3,4,5,5,6]8170; AVX2-FCP-NEXT:    vbroadcasti128 {{.*#+}} ymm6 = [2,2,3,3,2,2,3,3]8171; AVX2-FCP-NEXT:    # ymm6 = mem[0,1,0,1]8172; AVX2-FCP-NEXT:    vpermd %ymm3, %ymm6, %ymm38173; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} xmm7 = [u,6,7,2,3,u,u,u,8,9,4,5,u,u,u,10]8174; AVX2-FCP-NEXT:    vpshufb %xmm7, %xmm2, %xmm28175; AVX2-FCP-NEXT:    vpermq {{.*#+}} ymm2 = ymm2[0,1,0,1]8176; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} ymm5 = [u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255]8177; AVX2-FCP-NEXT:    vpblendvb %ymm5, %ymm2, %ymm3, %ymm28178; AVX2-FCP-NEXT:    vpshufhw {{.*#+}} xmm3 = xmm15[0,1,2,3,4,5,5,6]8179; AVX2-FCP-NEXT:    vpermd %ymm3, %ymm6, %ymm38180; AVX2-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm4 = xmm9[8],xmm12[8],xmm9[9],xmm12[9],xmm9[10],xmm12[10],xmm9[11],xmm12[11],xmm9[12],xmm12[12],xmm9[13],xmm12[13],xmm9[14],xmm12[14],xmm9[15],xmm12[15]8181; AVX2-FCP-NEXT:    vpshufb %xmm7, %xmm4, %xmm48182; AVX2-FCP-NEXT:    vpermq {{.*#+}} ymm4 = ymm4[0,1,0,1]8183; AVX2-FCP-NEXT:    vpblendvb %ymm5, %ymm4, %ymm3, %ymm38184; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} ymm4 = [255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0]8185; AVX2-FCP-NEXT:    vpblendvb %ymm4, %ymm0, %ymm2, %ymm08186; AVX2-FCP-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8187; AVX2-FCP-NEXT:    vpblendvb %ymm4, %ymm1, %ymm3, %ymm08188; AVX2-FCP-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8189; AVX2-FCP-NEXT:    vmovdqa (%rdx), %ymm38190; AVX2-FCP-NEXT:    vpshufb {{.*#+}} ymm0 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm3[17,18,19,30],zero,ymm3[28],zero,ymm3[28,29,30,31],zero,ymm3[29],zero,ymm3[31]8191; AVX2-FCP-NEXT:    vmovdqa (%rcx), %ymm58192; AVX2-FCP-NEXT:    vpshufb {{.*#+}} ymm1 = ymm5[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,27],zero,zero,zero,zero,ymm5[30],zero,ymm5[28],zero,zero,zero,zero,ymm5[31],zero,ymm5[29],zero8193; AVX2-FCP-NEXT:    vpor %ymm0, %ymm1, %ymm28194; AVX2-FCP-NEXT:    vmovdqa (%rsi), %ymm118195; AVX2-FCP-NEXT:    vpshufb {{.*#+}} ymm4 = ymm11[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,zero,ymm11[30],zero,ymm11[28],zero,zero,zero,zero,ymm11[31],zero,ymm11[29],zero,zero,zero8196; AVX2-FCP-NEXT:    vmovdqa (%rdi), %ymm138197; AVX2-FCP-NEXT:    vpshufb {{.*#+}} ymm6 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm13[30],zero,ymm13[28],zero,zero,zero,zero,ymm13[31],zero,ymm13[29],zero,zero,zero,zero8198; AVX2-FCP-NEXT:    vpor %ymm4, %ymm6, %ymm48199; AVX2-FCP-NEXT:    vpermq {{.*#+}} ymm2 = ymm2[2,3,2,3]8200; AVX2-FCP-NEXT:    vpermq {{.*#+}} ymm4 = ymm4[2,3,2,3]8201; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} ymm0 = [255,u,u,u,0,0,255,255,u,u,u,0,0,255,255,u,u,u,0,0,255,255,u,u,u,0,0,255,255,u,u,u]8202; AVX2-FCP-NEXT:    vpblendvb %ymm0, %ymm2, %ymm4, %ymm68203; AVX2-FCP-NEXT:    vmovdqa (%r8), %ymm148204; AVX2-FCP-NEXT:    vmovdqa (%r9), %ymm18205; AVX2-FCP-NEXT:    vpshufb {{.*#+}} ymm2 = ymm14[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,ymm14[27],zero,ymm14[27,28,29,30],zero,ymm14[28],zero,ymm14[26,27,30,31],zero,ymm14[29]8206; AVX2-FCP-NEXT:    vpshufb {{.*#+}} ymm7 = ymm1[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,29],zero,ymm1[27],zero,zero,zero,zero,ymm1[30],zero,ymm1[28],zero,zero,zero,zero,ymm1[31],zero8207; AVX2-FCP-NEXT:    vmovdqu %ymm1, (%rsp) # 32-byte Spill8208; AVX2-FCP-NEXT:    vpor %ymm2, %ymm7, %ymm78209; AVX2-FCP-NEXT:    vmovdqa (%rax), %ymm108210; AVX2-FCP-NEXT:    vpshufb {{.*#+}} ymm8 = ymm10[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,28,29,26,27,28,29,30,31,30,31,28,29,28,29,30,31]8211; AVX2-FCP-NEXT:    vmovdqu %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8212; AVX2-FCP-NEXT:    vpermq {{.*#+}} ymm8 = ymm8[2,3,2,3]8213; AVX2-FCP-NEXT:    vpermq {{.*#+}} ymm7 = ymm7[2,3,2,3]8214; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} ymm9 = [u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0]8215; AVX2-FCP-NEXT:    vpblendvb %ymm9, %ymm7, %ymm8, %ymm78216; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} ymm8 = [255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0]8217; AVX2-FCP-NEXT:    vpblendvb %ymm8, %ymm6, %ymm7, %ymm08218; AVX2-FCP-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8219; AVX2-FCP-NEXT:    vpshufb {{.*#+}} ymm6 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm13[23],zero,ymm13[27,20,21,26],zero,ymm13[24],zero,ymm13[26,27,26,27],zero,ymm13[25]8220; AVX2-FCP-NEXT:    vmovdqu %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8221; AVX2-FCP-NEXT:    vpshufb {{.*#+}} ymm8 = ymm11[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,25],zero,ymm11[23],zero,zero,zero,zero,ymm11[26],zero,ymm11[24],zero,zero,zero,zero,ymm11[27],zero8222; AVX2-FCP-NEXT:    vmovdqa %ymm11, %ymm28223; AVX2-FCP-NEXT:    vpor %ymm6, %ymm8, %ymm68224; AVX2-FCP-NEXT:    vpshufb {{.*#+}} ymm8 = ymm5[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,ymm5[25],zero,ymm5[23],zero,zero,zero,zero,ymm5[26],zero,ymm5[24],zero,zero,zero,zero8225; AVX2-FCP-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8226; AVX2-FCP-NEXT:    vpshufb {{.*#+}} ymm9 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm3[25],zero,ymm3[23],zero,zero,zero,zero,ymm3[26],zero,ymm3[24],zero,zero,zero,zero,ymm3[27]8227; AVX2-FCP-NEXT:    vpor %ymm8, %ymm9, %ymm88228; AVX2-FCP-NEXT:    vpermq {{.*#+}} ymm6 = ymm6[2,3,2,3]8229; AVX2-FCP-NEXT:    vpermq {{.*#+}} ymm8 = ymm8[2,3,2,3]8230; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} ymm0 = [u,255,255,0,0,u,u,u,255,255,0,0,u,u,u,255,255,0,0,u,u,u,255,255,0,0,u,u,u,255,255,0]8231; AVX2-FCP-NEXT:    vpblendvb %ymm0, %ymm6, %ymm8, %ymm68232; AVX2-FCP-NEXT:    vpshufb {{.*#+}} ymm8 = ymm1[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,zero,zero,ymm1[25],zero,ymm1[23],zero,zero,zero,zero,ymm1[26],zero,ymm1[24],zero,zero8233; AVX2-FCP-NEXT:    vpshufb {{.*#+}} ymm9 = ymm14[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,zero,ymm14[25],zero,ymm14[23],zero,zero,zero,zero,ymm14[26],zero,ymm14[24],zero,zero,zero8234; AVX2-FCP-NEXT:    vmovdqu %ymm14, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8235; AVX2-FCP-NEXT:    vpor %ymm8, %ymm9, %ymm88236; AVX2-FCP-NEXT:    vpshufb {{.*#+}} ymm9 = ymm10[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,22,23,26,27,24,25,22,23,24,25,26,27,26,27,24,25]8237; AVX2-FCP-NEXT:    vpermq {{.*#+}} ymm9 = ymm9[2,3,2,3]8238; AVX2-FCP-NEXT:    vpermq {{.*#+}} ymm8 = ymm8[2,3,2,3]8239; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} ymm10 = [0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u]8240; AVX2-FCP-NEXT:    vpblendvb %ymm10, %ymm8, %ymm9, %ymm88241; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} ymm9 = [0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255]8242; AVX2-FCP-NEXT:    vpblendvb %ymm9, %ymm6, %ymm8, %ymm08243; AVX2-FCP-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8244; AVX2-FCP-NEXT:    vbroadcasti128 {{.*#+}} ymm9 = [128,18,128,128,128,128,21,128,19,128,128,128,128,22,128,20,128,18,128,128,128,128,21,128,19,128,128,128,128,22,128,20]8245; AVX2-FCP-NEXT:    # ymm9 = mem[0,1,0,1]8246; AVX2-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload8247; AVX2-FCP-NEXT:    vpshufb %ymm9, %ymm0, %ymm88248; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} ymm10 = [128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,18,128,128,128,128,21,128,19,128,128,128,128,22,128,20,128]8249; AVX2-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload8250; AVX2-FCP-NEXT:    vpshufb %ymm10, %ymm0, %ymm118251; AVX2-FCP-NEXT:    vpor %ymm8, %ymm11, %ymm88252; AVX2-FCP-NEXT:    vbroadcasti128 {{.*#+}} ymm11 = [128,128,128,128,21,128,19,128,128,128,128,22,128,20,128,128,128,128,128,128,21,128,19,128,128,128,128,22,128,20,128,128]8253; AVX2-FCP-NEXT:    # ymm11 = mem[0,1,0,1]8254; AVX2-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload8255; AVX2-FCP-NEXT:    vpshufb %ymm11, %ymm7, %ymm128256; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} ymm0 = [128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,21,128,19,128,128,128,128,22,128,20,128,128,128]8257; AVX2-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload8258; AVX2-FCP-NEXT:    vpshufb %ymm0, %ymm1, %ymm158259; AVX2-FCP-NEXT:    vpor %ymm12, %ymm15, %ymm128260; AVX2-FCP-NEXT:    vpermq {{.*#+}} ymm8 = ymm8[2,3,2,3]8261; AVX2-FCP-NEXT:    vpermq {{.*#+}} ymm12 = ymm12[2,3,2,3]8262; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} ymm15 = [255,255,u,u,u,0,0,255,255,u,u,u,0,0,255,255,u,u,u,0,0,255,255,u,u,u,0,0,255,255,u,u]8263; AVX2-FCP-NEXT:    vpblendvb %ymm15, %ymm8, %ymm12, %ymm48264; AVX2-FCP-NEXT:    vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8265; AVX2-FCP-NEXT:    vpshufb %ymm9, %ymm5, %ymm98266; AVX2-FCP-NEXT:    vpshufb %ymm10, %ymm3, %ymm108267; AVX2-FCP-NEXT:    vpor %ymm9, %ymm10, %ymm98268; AVX2-FCP-NEXT:    vmovdqa %ymm2, %ymm38269; AVX2-FCP-NEXT:    vpshufb %ymm11, %ymm2, %ymm108270; AVX2-FCP-NEXT:    vpshufb %ymm0, %ymm13, %ymm118271; AVX2-FCP-NEXT:    vpor %ymm10, %ymm11, %ymm108272; AVX2-FCP-NEXT:    vpermq {{.*#+}} ymm9 = ymm9[2,3,2,3]8273; AVX2-FCP-NEXT:    vpermq {{.*#+}} ymm10 = ymm10[2,3,2,3]8274; AVX2-FCP-NEXT:    vpblendvb %ymm15, %ymm9, %ymm10, %ymm98275; AVX2-FCP-NEXT:    vbroadcasti128 {{.*#+}} ymm10 = [128,20,128,18,128,128,128,128,21,128,19,128,128,128,128,22,128,20,128,18,128,128,128,128,21,128,19,128,128,128,128,22]8276; AVX2-FCP-NEXT:    # ymm10 = mem[0,1,0,1]8277; AVX2-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload8278; AVX2-FCP-NEXT:    vpshufb %ymm10, %ymm8, %ymm118279; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} ymm12 = [128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,20,128,18,128,128,128,128,21,128,19,128,128,128,128,22,128]8280; AVX2-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload8281; AVX2-FCP-NEXT:    vpshufb %ymm12, %ymm2, %ymm138282; AVX2-FCP-NEXT:    vpor %ymm11, %ymm13, %ymm118283; AVX2-FCP-NEXT:    vpermq {{.*#+}} ymm11 = ymm11[2,3,2,3]8284; AVX2-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload8285; AVX2-FCP-NEXT:    vpshuflw {{.*#+}} ymm13 = ymm6[2,1,1,2,4,5,6,7,10,9,9,10,12,13,14,15]8286; AVX2-FCP-NEXT:    vpmovsxbd {{.*#+}} ymm15 = [4,5,4,5,5,7,4,5]8287; AVX2-FCP-NEXT:    vpermd %ymm13, %ymm15, %ymm138288; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} ymm0 = [u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255]8289; AVX2-FCP-NEXT:    vpblendvb %ymm0, %ymm11, %ymm13, %ymm118290; AVX2-FCP-NEXT:    vmovdqu (%rsp), %ymm4 # 32-byte Reload8291; AVX2-FCP-NEXT:    vpshufb %ymm10, %ymm4, %ymm108292; AVX2-FCP-NEXT:    vpshufb %ymm12, %ymm14, %ymm128293; AVX2-FCP-NEXT:    vpor %ymm10, %ymm12, %ymm108294; AVX2-FCP-NEXT:    vpshuflw $150, {{[-0-9]+}}(%r{{[sb]}}p), %ymm12 # 32-byte Folded Reload8295; AVX2-FCP-NEXT:    # ymm12 = mem[2,1,1,2,4,5,6,7,10,9,9,10,12,13,14,15]8296; AVX2-FCP-NEXT:    vpermd %ymm12, %ymm15, %ymm128297; AVX2-FCP-NEXT:    vpermq {{.*#+}} ymm10 = ymm10[2,3,2,3]8298; AVX2-FCP-NEXT:    vpblendvb %ymm0, %ymm10, %ymm12, %ymm08299; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} ymm10 = [255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0]8300; AVX2-FCP-NEXT:    vpblendvb %ymm10, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm14 # 32-byte Folded Reload8301; AVX2-FCP-NEXT:    vpblendvb %ymm10, %ymm9, %ymm0, %ymm98302; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} ymm0 = [128,128,128,14,128,128,128,128,128,128,15,128,128,128,128,128,128,16,128,128,128,128,128,128,17,128,128,128,128,128,128,18]8303; AVX2-FCP-NEXT:    vpshufb %ymm0, %ymm7, %ymm108304; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} ymm11 = [0,128,14,128,128,128,128,1,128,15,128,128,128,128,2,128,16,128,30,128,128,128,128,17,128,31,128,128,128,128,18,128]8305; AVX2-FCP-NEXT:    vpshufb %ymm11, %ymm1, %ymm128306; AVX2-FCP-NEXT:    vpor %ymm10, %ymm12, %ymm108307; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} ymm12 = [128,128,128,128,128,14,128,128,128,128,128,128,15,128,128,128,128,128,128,16,128,128,128,128,128,128,17,128,128,128,128,128]8308; AVX2-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload8309; AVX2-FCP-NEXT:    vpshufb %ymm12, %ymm1, %ymm138310; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} ymm15 = [128,128,0,128,14,128,128,128,128,1,128,15,128,128,128,128,128,128,16,128,30,128,128,128,128,17,128,31,128,128,128,128]8311; AVX2-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload8312; AVX2-FCP-NEXT:    vpshufb %ymm15, %ymm1, %ymm78313; AVX2-FCP-NEXT:    vpor %ymm7, %ymm13, %ymm78314; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} ymm13 = [u,u,255,255,0,0,u,u,u,255,255,0,0,u,u,u,255,255,0,0,u,u,u,255,255,0,0,u,u,u,255,255]8315; AVX2-FCP-NEXT:    vpblendvb %ymm13, %ymm10, %ymm7, %ymm108316; AVX2-FCP-NEXT:    vpshufb %ymm0, %ymm3, %ymm08317; AVX2-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload8318; AVX2-FCP-NEXT:    vpshufb %ymm11, %ymm1, %ymm18319; AVX2-FCP-NEXT:    vpor %ymm0, %ymm1, %ymm08320; AVX2-FCP-NEXT:    vpshufb %ymm12, %ymm5, %ymm18321; AVX2-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload8322; AVX2-FCP-NEXT:    vpshufb %ymm15, %ymm3, %ymm38323; AVX2-FCP-NEXT:    vpor %ymm1, %ymm3, %ymm18324; AVX2-FCP-NEXT:    vpblendvb %ymm13, %ymm0, %ymm1, %ymm08325; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} ymm1 = [128,1,2,3,0,128,14,128,0,1,0,1,128,15,128,15,128,17,18,19,16,128,30,128,16,17,16,17,128,31,128,31]8326; AVX2-FCP-NEXT:    vpshufb %ymm1, %ymm2, %ymm38327; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} ymm5 = [13,128,128,128,128,128,128,14,128,128,128,128,128,128,15,128,128,128,128,128,128,16,128,128,128,128,128,128,17,128,128,128]8328; AVX2-FCP-NEXT:    vpshufb %ymm5, %ymm8, %ymm78329; AVX2-FCP-NEXT:    vpor %ymm3, %ymm7, %ymm38330; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} ymm7 = [12,13,2,3,12,13,0,1,14,15,2,3,0,1,14,15,28,29,18,19,28,29,16,17,30,31,18,19,16,17,30,31]8331; AVX2-FCP-NEXT:    vpshufb %ymm7, %ymm6, %ymm118332; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} ymm12 = [255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u,u,u,255,255,0,u,u]8333; AVX2-FCP-NEXT:    vpblendvb %ymm12, %ymm3, %ymm11, %ymm38334; AVX2-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload8335; AVX2-FCP-NEXT:    vpshufb %ymm1, %ymm2, %ymm18336; AVX2-FCP-NEXT:    vpshufb %ymm5, %ymm4, %ymm48337; AVX2-FCP-NEXT:    vpor %ymm1, %ymm4, %ymm18338; AVX2-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload8339; AVX2-FCP-NEXT:    vpshufb %ymm7, %ymm2, %ymm28340; AVX2-FCP-NEXT:    vpblendvb %ymm12, %ymm1, %ymm2, %ymm18341; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} ymm2 = [0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255]8342; AVX2-FCP-NEXT:    vpblendvb %ymm2, %ymm10, %ymm3, %ymm38343; AVX2-FCP-NEXT:    vpblendvb %ymm2, %ymm0, %ymm1, %ymm08344; AVX2-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax8345; AVX2-FCP-NEXT:    vmovdqa %ymm0, 96(%rax)8346; AVX2-FCP-NEXT:    vmovdqa %ymm3, 320(%rax)8347; AVX2-FCP-NEXT:    vmovdqa %ymm9, 128(%rax)8348; AVX2-FCP-NEXT:    vmovdqa %ymm14, 352(%rax)8349; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload8350; AVX2-FCP-NEXT:    vmovaps %ymm0, 160(%rax)8351; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload8352; AVX2-FCP-NEXT:    vmovaps %ymm0, 192(%rax)8353; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload8354; AVX2-FCP-NEXT:    vmovaps %ymm0, 64(%rax)8355; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload8356; AVX2-FCP-NEXT:    vmovaps %ymm0, 32(%rax)8357; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload8358; AVX2-FCP-NEXT:    vmovaps %ymm0, (%rax)8359; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload8360; AVX2-FCP-NEXT:    vmovaps %ymm0, 224(%rax)8361; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload8362; AVX2-FCP-NEXT:    vmovaps %ymm0, 288(%rax)8363; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload8364; AVX2-FCP-NEXT:    vmovaps %ymm0, 256(%rax)8365; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload8366; AVX2-FCP-NEXT:    vmovaps %ymm0, 416(%rax)8367; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload8368; AVX2-FCP-NEXT:    vmovaps %ymm0, 384(%rax)8369; AVX2-FCP-NEXT:    addq $616, %rsp # imm = 0x2688370; AVX2-FCP-NEXT:    vzeroupper8371; AVX2-FCP-NEXT:    retq8372;8373; AVX512-LABEL: store_i8_stride7_vf64:8374; AVX512:       # %bb.0:8375; AVX512-NEXT:    subq $1256, %rsp # imm = 0x4E88376; AVX512-NEXT:    vmovdqa (%rsi), %ymm98377; AVX512-NEXT:    vmovdqa {{.*#+}} ymm5 = [128,128,128,14,128,128,128,128,128,128,15,128,128,128,128,128,128,16,128,128,128,128,128,128,17,128,128,128,128,128,128,18]8378; AVX512-NEXT:    vpshufb %ymm5, %ymm9, %ymm08379; AVX512-NEXT:    vmovdqa (%rdi), %ymm108380; AVX512-NEXT:    vmovdqa {{.*#+}} ymm4 = [0,1,14,128,12,13,0,1,14,15,128,3,12,13,2,3,16,128,30,31,28,29,16,17,128,31,18,19,28,29,18,128]8381; AVX512-NEXT:    vpshufb %ymm4, %ymm10, %ymm18382; AVX512-NEXT:    vpor %ymm0, %ymm1, %ymm08383; AVX512-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8384; AVX512-NEXT:    vmovdqa (%rcx), %ymm118385; AVX512-NEXT:    vmovdqa {{.*#+}} ymm1 = [128,128,128,128,128,14,128,128,128,128,128,128,15,128,128,128,128,128,128,16,128,128,128,128,128,128,17,128,128,128,128,128]8386; AVX512-NEXT:    vpshufb %ymm1, %ymm11, %ymm08387; AVX512-NEXT:    vmovdqa (%rdx), %ymm138388; AVX512-NEXT:    vmovdqa {{.*#+}} ymm3 = [0,1,0,1,14,128,14,15,0,1,14,15,128,13,14,15,16,17,16,128,30,31,30,31,16,17,128,31,28,29,30,31]8389; AVX512-NEXT:    vpshufb %ymm3, %ymm13, %ymm28390; AVX512-NEXT:    vpor %ymm0, %ymm2, %ymm08391; AVX512-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8392; AVX512-NEXT:    vmovdqa (%r8), %ymm148393; AVX512-NEXT:    vmovdqa {{.*#+}} ymm2 = [128,128,128,128,128,128,14,128,128,128,128,128,128,15,128,128,128,128,128,128,16,128,128,128,128,128,128,17,128,128,128,128]8394; AVX512-NEXT:    vpshufb %ymm2, %ymm14, %ymm08395; AVX512-NEXT:    vmovdqa (%r9), %ymm158396; AVX512-NEXT:    vbroadcasti128 {{.*#+}} ymm6 = [13,0,0,0,128,16,128,14,0,0,0,128,17,128,15,0,13,0,0,0,128,16,128,14,0,0,0,128,17,128,15,0]8397; AVX512-NEXT:    # ymm6 = mem[0,1,0,1]8398; AVX512-NEXT:    vpshufb %ymm6, %ymm15, %ymm78399; AVX512-NEXT:    vpor %ymm0, %ymm7, %ymm08400; AVX512-NEXT:    vmovdqu %ymm0, (%rsp) # 32-byte Spill8401; AVX512-NEXT:    vbroadcasti128 {{.*#+}} ymm8 = [128,128,128,30,128,28,128,128,128,128,31,128,29,128,128,128,128,128,128,30,128,28,128,128,128,128,31,128,29,128,128,128]8402; AVX512-NEXT:    # ymm8 = mem[0,1,0,1]8403; AVX512-NEXT:    vpshufb %ymm8, %ymm9, %ymm08404; AVX512-NEXT:    vmovdqa64 %ymm9, %ymm218405; AVX512-NEXT:    vmovdqa {{.*#+}} ymm12 = [12,13,14,128,12,128,14,15,14,15,128,13,128,15,12,13,28,29,30,128,28,128,30,31,30,31,128,29,128,31,28,29]8406; AVX512-NEXT:    vpshufb %ymm12, %ymm10, %ymm78407; AVX512-NEXT:    vmovdqa64 %ymm10, %ymm188408; AVX512-NEXT:    vporq %ymm0, %ymm7, %ymm318409; AVX512-NEXT:    vbroadcasti128 {{.*#+}} ymm9 = [128,128,128,128,30,128,28,128,128,128,128,31,128,29,128,128,128,128,128,128,30,128,28,128,128,128,128,31,128,29,128,128]8410; AVX512-NEXT:    # ymm9 = mem[0,1,0,1]8411; AVX512-NEXT:    vpshufb %ymm9, %ymm13, %ymm08412; AVX512-NEXT:    vmovdqa64 %ymm13, %ymm198413; AVX512-NEXT:    vbroadcasti128 {{.*#+}} ymm10 = [27,0,0,0,128,30,128,28,0,0,0,128,31,128,29,0,27,0,0,0,128,30,128,28,0,0,0,128,31,128,29,0]8414; AVX512-NEXT:    # ymm10 = mem[0,1,0,1]8415; AVX512-NEXT:    vpshufb %ymm10, %ymm11, %ymm78416; AVX512-NEXT:    vmovdqa64 %ymm11, %ymm168417; AVX512-NEXT:    vpor %ymm0, %ymm7, %ymm08418; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8419; AVX512-NEXT:    vbroadcasti128 {{.*#+}} ymm0 = [128,27,128,128,128,128,30,128,28,128,128,128,128,31,128,29,128,27,128,128,128,128,30,128,28,128,128,128,128,31,128,29]8420; AVX512-NEXT:    # ymm0 = mem[0,1,0,1]8421; AVX512-NEXT:    vpshufb %ymm0, %ymm14, %ymm78422; AVX512-NEXT:    vmovdqa64 %ymm14, %ymm178423; AVX512-NEXT:    vbroadcasti128 {{.*#+}} ymm11 = [29,128,27,0,0,0,128,30,128,28,0,0,0,128,31,128,29,128,27,0,0,0,128,30,128,28,0,0,0,128,31,128]8424; AVX512-NEXT:    # ymm11 = mem[0,1,0,1]8425; AVX512-NEXT:    vpshufb %ymm11, %ymm15, %ymm138426; AVX512-NEXT:    vmovdqa64 %ymm15, %ymm248427; AVX512-NEXT:    vpor %ymm7, %ymm13, %ymm78428; AVX512-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8429; AVX512-NEXT:    vmovdqa 32(%rsi), %ymm78430; AVX512-NEXT:    vpshufb %ymm8, %ymm7, %ymm138431; AVX512-NEXT:    vmovdqa 32(%rdi), %ymm88432; AVX512-NEXT:    vpshufb %ymm12, %ymm8, %ymm128433; AVX512-NEXT:    vpor %ymm13, %ymm12, %ymm128434; AVX512-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8435; AVX512-NEXT:    vpshufb {{.*#+}} ymm12 = ymm8[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,ymm8[23],zero,zero,zero,zero,ymm8[26],zero,ymm8[24],zero,zero,zero,zero,ymm8[27],zero,ymm8[25]8436; AVX512-NEXT:    vbroadcasti128 {{.*#+}} ymm14 = [25,128,23,0,0,0,128,26,128,24,0,0,0,128,27,128,25,128,23,0,0,0,128,26,128,24,0,0,0,128,27,128]8437; AVX512-NEXT:    # ymm14 = mem[0,1,0,1]8438; AVX512-NEXT:    vpshufb %ymm14, %ymm7, %ymm138439; AVX512-NEXT:    vmovdqa64 %ymm14, %ymm258440; AVX512-NEXT:    vpor %ymm12, %ymm13, %ymm128441; AVX512-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8442; AVX512-NEXT:    vmovdqa 32(%rdx), %ymm128443; AVX512-NEXT:    vpshufb %ymm9, %ymm12, %ymm98444; AVX512-NEXT:    vmovdqa 32(%rcx), %ymm138445; AVX512-NEXT:    vpshufb %ymm10, %ymm13, %ymm108446; AVX512-NEXT:    vpor %ymm9, %ymm10, %ymm98447; AVX512-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8448; AVX512-NEXT:    vpshufb {{.*#+}} ymm9 = ymm13[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,ymm13[25],zero,ymm13[23],zero,zero,zero,zero,ymm13[26],zero,ymm13[24],zero,zero,zero,zero8449; AVX512-NEXT:    vpshufb {{.*#+}} ymm10 = ymm12[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,24,25],zero,ymm12[23],zero,ymm12[21,22,23,26],zero,ymm12[24],zero,ymm12[28,29,26,27]8450; AVX512-NEXT:    vpor %ymm9, %ymm10, %ymm98451; AVX512-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8452; AVX512-NEXT:    vmovdqa 32(%r8), %ymm98453; AVX512-NEXT:    vpshufb %ymm0, %ymm9, %ymm08454; AVX512-NEXT:    vmovdqa 32(%r9), %ymm108455; AVX512-NEXT:    vpshufb %ymm11, %ymm10, %ymm118456; AVX512-NEXT:    vpor %ymm0, %ymm11, %ymm08457; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8458; AVX512-NEXT:    vpshufb {{.*#+}} ymm0 = ymm10[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,zero,zero,ymm10[25],zero,ymm10[23],zero,zero,zero,zero,ymm10[26],zero,ymm10[24],zero,zero8459; AVX512-NEXT:    vpshufb {{.*#+}} ymm11 = ymm9[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,24,25,24,25],zero,ymm9[23],zero,ymm9[23,24,25,26],zero,ymm9[24],zero,ymm9[30,31]8460; AVX512-NEXT:    vpor %ymm0, %ymm11, %ymm08461; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8462; AVX512-NEXT:    movq {{[0-9]+}}(%rsp), %rax8463; AVX512-NEXT:    vmovdqa 32(%rax), %ymm148464; AVX512-NEXT:    vpshufb {{.*#+}} ymm0 = ymm14[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,28,29,26,27,28,29,30,31,30,31,28,29,28,29,30,31]8465; AVX512-NEXT:    vpshufb {{.*#+}} ymm11 = ymm14[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,22,23,26,27,24,25,22,23,24,25,26,27,26,27,24,25]8466; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm0 = zmm11[2,3,2,3],zmm0[2,3,2,3]8467; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8468; AVX512-NEXT:    vpshufb %ymm1, %ymm13, %ymm08469; AVX512-NEXT:    vpshufb %ymm3, %ymm12, %ymm18470; AVX512-NEXT:    vpor %ymm0, %ymm1, %ymm08471; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8472; AVX512-NEXT:    vpshufb {{.*#+}} ymm0 = ymm13[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,ymm13[18],zero,zero,zero,zero,ymm13[21],zero,ymm13[19],zero,zero,zero,zero,ymm13[22],zero,ymm13[20]8473; AVX512-NEXT:    vpshufb {{.*#+}} ymm1 = ymm12[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,18],zero,ymm12[18,19,20,21],zero,ymm12[19],zero,ymm12[25,26,27,22],zero,ymm12[20],zero8474; AVX512-NEXT:    vpor %ymm0, %ymm1, %ymm08475; AVX512-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8476; AVX512-NEXT:    vpshufb %ymm5, %ymm7, %ymm08477; AVX512-NEXT:    vpshufb %ymm4, %ymm8, %ymm18478; AVX512-NEXT:    vpor %ymm0, %ymm1, %ymm08479; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8480; AVX512-NEXT:    vbroadcasti128 {{.*#+}} ymm1 = [128,128,128,128,21,128,19,128,128,128,128,22,128,20,128,128,128,128,128,128,21,128,19,128,128,128,128,22,128,20,128,128]8481; AVX512-NEXT:    # ymm1 = mem[0,1,0,1]8482; AVX512-NEXT:    vpshufb %ymm1, %ymm7, %ymm08483; AVX512-NEXT:    vmovdqa64 %ymm1, %ymm228484; AVX512-NEXT:    vmovdqa {{.*#+}} ymm12 = [2,3,4,5,128,3,128,5,4,5,6,128,4,128,6,7,18,19,20,21,128,19,128,21,20,21,22,128,20,128,22,23]8485; AVX512-NEXT:    vpshufb %ymm12, %ymm8, %ymm18486; AVX512-NEXT:    vpor %ymm0, %ymm1, %ymm08487; AVX512-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8488; AVX512-NEXT:    vpshufb {{.*#+}} ymm0 = ymm10[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,ymm10[20],zero,ymm10[18],zero,zero,zero,zero,ymm10[21],zero,ymm10[19],zero,zero,zero,zero,ymm10[22]8489; AVX512-NEXT:    vbroadcasti128 {{.*#+}} ymm8 = [20,128,18,128,20,21,20,21,128,19,128,19,20,21,22,128,20,128,18,128,20,21,20,21,128,19,128,19,20,21,22,128]8490; AVX512-NEXT:    # ymm8 = mem[0,1,0,1]8491; AVX512-NEXT:    vpshufb %ymm8, %ymm9, %ymm18492; AVX512-NEXT:    vpor %ymm0, %ymm1, %ymm08493; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8494; AVX512-NEXT:    vpshufb %ymm2, %ymm9, %ymm08495; AVX512-NEXT:    vpshufb %ymm6, %ymm10, %ymm18496; AVX512-NEXT:    vpor %ymm0, %ymm1, %ymm08497; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8498; AVX512-NEXT:    vmovdqa (%rdi), %xmm48499; AVX512-NEXT:    vmovdqa (%rsi), %xmm08500; AVX512-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8501; AVX512-NEXT:    vmovdqa {{.*#+}} xmm1 = [u,128,7,128,5,u,u,u,128,8,128,6,u,u,u,128]8502; AVX512-NEXT:    vpshufb %xmm1, %xmm0, %xmm08503; AVX512-NEXT:    vmovdqa {{.*#+}} xmm2 = [u,7,128,5,128,u,u,u,8,128,6,128,u,u,u,9]8504; AVX512-NEXT:    vpshufb %xmm2, %xmm4, %xmm38505; AVX512-NEXT:    vmovdqa64 %xmm4, %xmm298506; AVX512-NEXT:    vpor %xmm0, %xmm3, %xmm08507; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8508; AVX512-NEXT:    vmovdqa (%rdx), %xmm68509; AVX512-NEXT:    vmovdqa (%rcx), %xmm08510; AVX512-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8511; AVX512-NEXT:    vmovdqa {{.*#+}} xmm4 = [u,u,u,128,7,128,5,u,u,u,128,8,128,6,u,u]8512; AVX512-NEXT:    vpshufb %xmm4, %xmm0, %xmm08513; AVX512-NEXT:    vmovdqa {{.*#+}} xmm5 = [u,u,u,7,128,5,128,u,u,u,8,128,6,128,u,u]8514; AVX512-NEXT:    vpshufb %xmm5, %xmm6, %xmm38515; AVX512-NEXT:    vmovdqa64 %xmm6, %xmm308516; AVX512-NEXT:    vpor %xmm0, %xmm3, %xmm08517; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8518; AVX512-NEXT:    vmovdqa (%r9), %xmm08519; AVX512-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8520; AVX512-NEXT:    vmovdqa (%r8), %xmm78521; AVX512-NEXT:    vmovdqa %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8522; AVX512-NEXT:    vmovdqa {{.*#+}} xmm3 = [128,4,u,u,u,128,7,128,5,u,u,u,128,8,128,6]8523; AVX512-NEXT:    vpshufb %xmm3, %xmm0, %xmm68524; AVX512-NEXT:    vmovdqa {{.*#+}} xmm0 = [4,128,u,u,u,7,128,5,128,u,u,u,8,128,6,128]8525; AVX512-NEXT:    vpshufb %xmm0, %xmm7, %xmm78526; AVX512-NEXT:    vpor %xmm6, %xmm7, %xmm68527; AVX512-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8528; AVX512-NEXT:    vmovdqa 32(%rcx), %xmm108529; AVX512-NEXT:    vpshufb %xmm4, %xmm10, %xmm48530; AVX512-NEXT:    vmovdqa 32(%rdx), %xmm138531; AVX512-NEXT:    vpshufb %xmm5, %xmm13, %xmm58532; AVX512-NEXT:    vpor %xmm4, %xmm5, %xmm48533; AVX512-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8534; AVX512-NEXT:    vmovdqa 32(%rsi), %xmm68535; AVX512-NEXT:    vpshufb %xmm1, %xmm6, %xmm18536; AVX512-NEXT:    vmovdqa 32(%rdi), %xmm98537; AVX512-NEXT:    vpshufb %xmm2, %xmm9, %xmm28538; AVX512-NEXT:    vpor %xmm1, %xmm2, %xmm18539; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8540; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm20 = [0,0,0,0,2,3,0,1,0,18,0,19,18,0,19,0]8541; AVX512-NEXT:    vmovdqa 32(%rax), %xmm48542; AVX512-NEXT:    vpshufhw {{.*#+}} xmm1 = xmm4[0,1,2,3,4,5,5,6]8543; AVX512-NEXT:    vpshufb {{.*#+}} xmm2 = xmm4[4,5,4,5,4,5,8,9,6,7,6,7,6,7,6,7]8544; AVX512-NEXT:    vmovdqa64 %xmm4, %xmm288545; AVX512-NEXT:    vpermi2d %zmm1, %zmm2, %zmm208546; AVX512-NEXT:    vmovdqa 32(%r9), %xmm158547; AVX512-NEXT:    vpshufb %xmm3, %xmm15, %xmm18548; AVX512-NEXT:    vmovdqa 32(%r8), %xmm118549; AVX512-NEXT:    vpshufb %xmm0, %xmm11, %xmm08550; AVX512-NEXT:    vporq %xmm1, %xmm0, %xmm238551; AVX512-NEXT:    vmovdqa64 %ymm18, %ymm38552; AVX512-NEXT:    vpshufb {{.*#+}} ymm0 = ymm3[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,ymm3[23],zero,zero,zero,zero,ymm3[26],zero,ymm3[24],zero,zero,zero,zero,ymm3[27],zero,ymm3[25]8553; AVX512-NEXT:    vmovdqa64 %ymm21, %ymm28554; AVX512-NEXT:    vmovdqa64 %ymm25, %ymm18555; AVX512-NEXT:    vpshufb %ymm1, %ymm2, %ymm18556; AVX512-NEXT:    vporq %ymm0, %ymm1, %ymm268557; AVX512-NEXT:    vmovdqa64 %ymm22, %ymm08558; AVX512-NEXT:    vpshufb %ymm0, %ymm2, %ymm08559; AVX512-NEXT:    vpshufb %ymm12, %ymm3, %ymm18560; AVX512-NEXT:    vporq %ymm0, %ymm1, %ymm258561; AVX512-NEXT:    vmovdqa64 %ymm16, %ymm28562; AVX512-NEXT:    vpshufb {{.*#+}} ymm0 = ymm2[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,ymm2[25],zero,ymm2[23],zero,zero,zero,zero,ymm2[26],zero,ymm2[24],zero,zero,zero,zero8563; AVX512-NEXT:    vmovdqa64 %ymm19, %ymm38564; AVX512-NEXT:    vpshufb {{.*#+}} ymm1 = ymm3[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,24,25],zero,ymm3[23],zero,ymm3[21,22,23,26],zero,ymm3[24],zero,ymm3[28,29,26,27]8565; AVX512-NEXT:    vporq %ymm0, %ymm1, %ymm228566; AVX512-NEXT:    vpshufb {{.*#+}} ymm0 = ymm2[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,ymm2[18],zero,zero,zero,zero,ymm2[21],zero,ymm2[19],zero,zero,zero,zero,ymm2[22],zero,ymm2[20]8567; AVX512-NEXT:    vpshufb {{.*#+}} ymm1 = ymm3[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,18],zero,ymm3[18,19,20,21],zero,ymm3[19],zero,ymm3[25,26,27,22],zero,ymm3[20],zero8568; AVX512-NEXT:    vporq %ymm0, %ymm1, %ymm218569; AVX512-NEXT:    vmovdqa64 %ymm24, %ymm18570; AVX512-NEXT:    vpshufb {{.*#+}} ymm0 = ymm1[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,zero,zero,ymm1[25],zero,ymm1[23],zero,zero,zero,zero,ymm1[26],zero,ymm1[24],zero,zero8571; AVX512-NEXT:    vpshufb {{.*#+}} ymm1 = ymm1[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,ymm1[20],zero,ymm1[18],zero,zero,zero,zero,ymm1[21],zero,ymm1[19],zero,zero,zero,zero,ymm1[22]8572; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm27 = zmm1[2,3,2,3],zmm0[2,3,2,3]8573; AVX512-NEXT:    vmovdqa64 %ymm17, %ymm18574; AVX512-NEXT:    vpshufb {{.*#+}} ymm0 = ymm1[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,24,25,24,25],zero,ymm1[23],zero,ymm1[23,24,25,26],zero,ymm1[24],zero,ymm1[30,31]8575; AVX512-NEXT:    vpshufb %ymm8, %ymm1, %ymm18576; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm24 = zmm1[2,3,2,3],zmm0[2,3,2,3]8577; AVX512-NEXT:    vmovdqa (%rax), %ymm78578; AVX512-NEXT:    vpshufb {{.*#+}} ymm1 = ymm7[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,22,23,26,27,24,25,22,23,24,25,26,27,26,27,24,25]8579; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm17 = [0,5,4,0,5,0,4,0,20,21,0,23,0,21,0,23]8580; AVX512-NEXT:    vpshuflw {{.*#+}} ymm2 = ymm7[2,1,1,2,4,5,6,7,10,9,9,10,12,13,14,15]8581; AVX512-NEXT:    vpermi2d %zmm1, %zmm2, %zmm178582; AVX512-NEXT:    vmovdqa (%rax), %xmm18583; AVX512-NEXT:    vpshufhw {{.*#+}} xmm2 = xmm1[0,1,2,3,4,5,5,6]8584; AVX512-NEXT:    vpshufd {{.*#+}} xmm2 = xmm2[2,2,3,3]8585; AVX512-NEXT:    vpermq {{.*#+}} ymm2 = ymm2[0,1,0,1]8586; AVX512-NEXT:    vpand {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm2, %ymm28587; AVX512-NEXT:    vmovdqa {{.*#+}} ymm5 = [128,13,128,128,128,128,128,128,14,128,128,128,128,128,128,15,128,128,128,128,128,128,16,128,128,128,128,128,128,17,128,128]8588; AVX512-NEXT:    vpshufb %ymm5, %ymm7, %ymm38589; AVX512-NEXT:    vinserti64x4 $1, %ymm3, %zmm2, %zmm28590; AVX512-NEXT:    vpunpcklbw {{.*#+}} xmm3 = xmm9[0],xmm6[0],xmm9[1],xmm6[1],xmm9[2],xmm6[2],xmm9[3],xmm6[3],xmm9[4],xmm6[4],xmm9[5],xmm6[5],xmm9[6],xmm6[6],xmm9[7],xmm6[7]8591; AVX512-NEXT:    vmovdqa %xmm9, %xmm128592; AVX512-NEXT:    vmovdqa64 %xmm6, %xmm198593; AVX512-NEXT:    vmovdqa {{.*#+}} xmm6 = [0,1,u,u,u,6,7,2,3,u,u,u,8,9,4,5]8594; AVX512-NEXT:    vpshufb %xmm6, %xmm3, %xmm38595; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm31 = zmm31[2,3,2,3],zmm3[0,1,0,1]8596; AVX512-NEXT:    vpunpcklbw {{.*#+}} xmm4 = xmm13[0],xmm10[0],xmm13[1],xmm10[1],xmm13[2],xmm10[2],xmm13[3],xmm10[3],xmm13[4],xmm10[4],xmm13[5],xmm10[5],xmm13[6],xmm10[6],xmm13[7],xmm10[7]8597; AVX512-NEXT:    vmovdqa %xmm10, %xmm98598; AVX512-NEXT:    vmovdqa {{.*#+}} xmm8 = [4,5,0,1,u,u,u,6,7,2,3,u,u,u,8,9]8599; AVX512-NEXT:    vpshufb %xmm8, %xmm4, %xmm48600; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8601; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm16 = zmm0[2,3,2,3],zmm4[0,1,0,1]8602; AVX512-NEXT:    vpunpcklbw {{.*#+}} xmm0 = xmm11[0],xmm15[0],xmm11[1],xmm15[1],xmm11[2],xmm15[2],xmm11[3],xmm15[3],xmm11[4],xmm15[4],xmm11[5],xmm15[5],xmm11[6],xmm15[6],xmm11[7],xmm15[7]8603; AVX512-NEXT:    vmovdqa {{.*#+}} xmm10 = [u,u,4,5,0,1,u,u,u,6,7,2,3,u,u,u]8604; AVX512-NEXT:    vpshufb %xmm10, %xmm0, %xmm08605; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm18 # 64-byte Reload8606; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm18 = zmm18[2,3,2,3],zmm0[0,1,0,1]8607; AVX512-NEXT:    vpshufb {{.*#+}} ymm7 = ymm7[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,28,29,26,27,28,29,30,31,30,31,28,29,28,29,30,31]8608; AVX512-NEXT:    vpshufb %ymm5, %ymm14, %ymm58609; AVX512-NEXT:    vpshuflw {{.*#+}} ymm14 = ymm14[2,1,1,2,4,5,6,7,10,9,9,10,12,13,14,15]8610; AVX512-NEXT:    vpshufd {{.*#+}} ymm14 = ymm14[0,1,1,3,4,5,5,7]8611; AVX512-NEXT:    vpermq {{.*#+}} ymm14 = ymm14[2,2,3,2]8612; AVX512-NEXT:    vpand {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm14, %ymm148613; AVX512-NEXT:    vinserti64x4 $1, %ymm14, %zmm5, %zmm148614; AVX512-NEXT:    vmovdqa64 %xmm29, %xmm08615; AVX512-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload8616; AVX512-NEXT:    vpunpckhbw {{.*#+}} xmm5 = xmm3[8],xmm0[8],xmm3[9],xmm0[9],xmm3[10],xmm0[10],xmm3[11],xmm0[11],xmm3[12],xmm0[12],xmm3[13],xmm0[13],xmm3[14],xmm0[14],xmm3[15],xmm0[15]8617; AVX512-NEXT:    vpunpcklbw {{.*#+}} xmm0 = xmm0[0],xmm3[0],xmm0[1],xmm3[1],xmm0[2],xmm3[2],xmm0[3],xmm3[3],xmm0[4],xmm3[4],xmm0[5],xmm3[5],xmm0[6],xmm3[6],xmm0[7],xmm3[7]8618; AVX512-NEXT:    vpshufb %xmm6, %xmm0, %xmm08619; AVX512-NEXT:    vshufi64x2 $0, {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm29 # 64-byte Folded Reload8620; AVX512-NEXT:    # zmm29 = zmm0[0,1,0,1],mem[0,1,0,1]8621; AVX512-NEXT:    vmovdqa64 %xmm30, %xmm38622; AVX512-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload8623; AVX512-NEXT:    vpunpckhbw {{.*#+}} xmm4 = xmm6[8],xmm3[8],xmm6[9],xmm3[9],xmm6[10],xmm3[10],xmm6[11],xmm3[11],xmm6[12],xmm3[12],xmm6[13],xmm3[13],xmm6[14],xmm3[14],xmm6[15],xmm3[15]8624; AVX512-NEXT:    vpunpcklbw {{.*#+}} xmm6 = xmm3[0],xmm6[0],xmm3[1],xmm6[1],xmm3[2],xmm6[2],xmm3[3],xmm6[3],xmm3[4],xmm6[4],xmm3[5],xmm6[5],xmm3[6],xmm6[6],xmm3[7],xmm6[7]8625; AVX512-NEXT:    vpshufb %xmm8, %xmm6, %xmm68626; AVX512-NEXT:    vmovdqa64 {{.*#+}} zmm8 = [255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255]8627; AVX512-NEXT:    vpternlogq {{.*#+}} zmm16 = zmm31 ^ (zmm8 & (zmm16 ^ zmm31))8628; AVX512-NEXT:    vpermq $238, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Folded Reload8629; AVX512-NEXT:    # ymm3 = mem[2,3,2,3]8630; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm31 # 64-byte Reload8631; AVX512-NEXT:    vinserti64x4 $1, %ymm3, %zmm31, %zmm38632; AVX512-NEXT:    vpermq $238, {{[-0-9]+}}(%r{{[sb]}}p), %ymm31 # 32-byte Folded Reload8633; AVX512-NEXT:    # ymm31 = mem[2,3,2,3]8634; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm30 # 64-byte Reload8635; AVX512-NEXT:    vinserti64x4 $1, %ymm31, %zmm30, %zmm318636; AVX512-NEXT:    vpternlogq {{.*#+}} zmm31 = zmm3 ^ (zmm8 & (zmm31 ^ zmm3))8637; AVX512-NEXT:    vshufi64x2 $0, {{[-0-9]+}}(%r{{[sb]}}p), %zmm6, %zmm3 # 64-byte Folded Reload8638; AVX512-NEXT:    # zmm3 = zmm6[0,1,0,1],mem[0,1,0,1]8639; AVX512-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload8640; AVX512-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload8641; AVX512-NEXT:    vpunpckhbw {{.*#+}} xmm6 = xmm0[8],xmm8[8],xmm0[9],xmm8[9],xmm0[10],xmm8[10],xmm0[11],xmm8[11],xmm0[12],xmm8[12],xmm0[13],xmm8[13],xmm0[14],xmm8[14],xmm0[15],xmm8[15]8642; AVX512-NEXT:    vpunpcklbw {{.*#+}} xmm8 = xmm0[0],xmm8[0],xmm0[1],xmm8[1],xmm0[2],xmm8[2],xmm0[3],xmm8[3],xmm0[4],xmm8[4],xmm0[5],xmm8[5],xmm0[6],xmm8[6],xmm0[7],xmm8[7]8643; AVX512-NEXT:    vpshufb %xmm10, %xmm8, %xmm88644; AVX512-NEXT:    vshufi64x2 $0, {{[-0-9]+}}(%r{{[sb]}}p), %zmm8, %zmm8 # 64-byte Folded Reload8645; AVX512-NEXT:    # zmm8 = zmm8[0,1,0,1],mem[0,1,0,1]8646; AVX512-NEXT:    vpshufb {{.*#+}} xmm10 = xmm1[4,5,4,5,4,5,8,9,6,7,6,7,6,7,6,7]8647; AVX512-NEXT:    vpshuflw {{.*#+}} xmm1 = xmm1[1,1,0,0,4,5,6,7]8648; AVX512-NEXT:    vpshufd {{.*#+}} xmm1 = xmm1[0,1,2,0]8649; AVX512-NEXT:    vinserti64x4 $1, %ymm10, %zmm1, %zmm18650; AVX512-NEXT:    vpunpckhbw {{.*#+}} xmm10 = xmm9[8],xmm13[8],xmm9[9],xmm13[9],xmm9[10],xmm13[10],xmm9[11],xmm13[11],xmm9[12],xmm13[12],xmm9[13],xmm13[13],xmm9[14],xmm13[14],xmm9[15],xmm13[15]8651; AVX512-NEXT:    vmovdqa {{.*#+}} xmm13 = [6,3,2,u,u,u,9,8,5,4,u,u,u,11,10,7]8652; AVX512-NEXT:    vpshufb %xmm13, %xmm4, %xmm08653; AVX512-NEXT:    vpshufb %xmm13, %xmm10, %xmm108654; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload8655; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm10 = zmm4[0,1,0,1],zmm10[0,1,0,1]8656; AVX512-NEXT:    vmovdqa64 %xmm19, %xmm48657; AVX512-NEXT:    vpunpckhbw {{.*#+}} xmm12 = xmm4[8],xmm12[8],xmm4[9],xmm12[9],xmm4[10],xmm12[10],xmm4[11],xmm12[11],xmm4[12],xmm12[12],xmm4[13],xmm12[13],xmm4[14],xmm12[14],xmm4[15],xmm12[15]8658; AVX512-NEXT:    vmovdqa {{.*#+}} xmm13 = [2,u,u,u,9,8,5,4,u,u,u,11,10,7,6,u]8659; AVX512-NEXT:    vpshufb %xmm13, %xmm5, %xmm58660; AVX512-NEXT:    vpshufb %xmm13, %xmm12, %xmm128661; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload8662; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm12 = zmm4[0,1,0,1],zmm12[0,1,0,1]8663; AVX512-NEXT:    vpunpckhbw {{.*#+}} xmm9 = xmm11[8],xmm15[8],xmm11[9],xmm15[9],xmm11[10],xmm15[10],xmm11[11],xmm15[11],xmm11[12],xmm15[12],xmm11[13],xmm15[13],xmm11[14],xmm15[14],xmm11[15],xmm15[15]8664; AVX512-NEXT:    vmovdqa {{.*#+}} xmm11 = [u,6,7,2,3,u,u,u,8,9,4,5,u,u,u,10]8665; AVX512-NEXT:    vpshufb %xmm11, %xmm6, %xmm68666; AVX512-NEXT:    vpshufb %xmm11, %xmm9, %xmm98667; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm9 = zmm23[0,1,0,1],zmm9[0,1,0,1]8668; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm11 # 64-byte Reload8669; AVX512-NEXT:    vshufi64x2 $85, {{[-0-9]+}}(%r{{[sb]}}p), %zmm11, %zmm11 # 64-byte Folded Reload8670; AVX512-NEXT:    # zmm11 = zmm11[2,3,2,3],mem[2,3,2,3]8671; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm13 # 64-byte Reload8672; AVX512-NEXT:    vshufi64x2 $85, {{[-0-9]+}}(%r{{[sb]}}p), %zmm13, %zmm13 # 64-byte Folded Reload8673; AVX512-NEXT:    # zmm13 = zmm13[2,3,2,3],mem[2,3,2,3]8674; AVX512-NEXT:    vpternlogq {{.*#+}} zmm13 = zmm13 ^ (mem & (zmm13 ^ zmm11))8675; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm11 # 64-byte Reload8676; AVX512-NEXT:    vshufi64x2 $85, {{[-0-9]+}}(%r{{[sb]}}p), %zmm11, %zmm11 # 64-byte Folded Reload8677; AVX512-NEXT:    # zmm11 = zmm11[2,3,2,3],mem[2,3,2,3]8678; AVX512-NEXT:    vmovdqa64 {{.*#+}} zmm23 = [255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0,0,255]8679; AVX512-NEXT:    vpternlogq {{.*#+}} zmm11 = zmm11 ^ (zmm23 & (zmm11 ^ zmm13))8680; AVX512-NEXT:    vpternlogq {{.*#+}} zmm12 = zmm10 ^ (zmm23 & (zmm12 ^ zmm10))8681; AVX512-NEXT:    vpermq {{.*#+}} ymm5 = ymm5[0,1,0,1]8682; AVX512-NEXT:    vpermq {{.*#+}} ymm0 = ymm0[0,1,0,1]8683; AVX512-NEXT:    vpermq {{.*#+}} ymm6 = ymm6[0,1,0,1]8684; AVX512-NEXT:    vpermq {{.*#+}} ymm7 = ymm7[2,3,2,3]8685; AVX512-NEXT:    vmovdqa64 %xmm28, %xmm48686; AVX512-NEXT:    vpshuflw {{.*#+}} xmm10 = xmm4[1,1,0,0,4,5,6,7]8687; AVX512-NEXT:    vpshufd {{.*#+}} xmm10 = xmm10[0,1,2,0]8688; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm13 = zmm25[2,3,2,3],zmm26[2,3,2,3]8689; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm15 = zmm21[2,3,2,3],zmm22[2,3,2,3]8690; AVX512-NEXT:    vpternlogq {{.*#+}} zmm15 = zmm13 ^ (zmm23 & (zmm15 ^ zmm13))8691; AVX512-NEXT:    vinserti64x4 $1, {{[-0-9]+}}(%r{{[sb]}}p), %zmm5, %zmm5 # 32-byte Folded Reload8692; AVX512-NEXT:    vinserti64x4 $1, {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm0 # 32-byte Folded Reload8693; AVX512-NEXT:    vpternlogq {{.*#+}} zmm0 = zmm0 ^ (mem & (zmm0 ^ zmm5))8694; AVX512-NEXT:    vinserti64x4 $1, (%rsp), %zmm6, %zmm5 # 32-byte Folded Reload8695; AVX512-NEXT:    vpternlogq {{.*#+}} zmm2 = zmm2 | (zmm5 & mem)8696; AVX512-NEXT:    vpternlogq {{.*#+}} zmm2 = zmm2 ^ (mem & (zmm2 ^ zmm0))8697; AVX512-NEXT:    vpermq {{.*#+}} ymm0 = ymm10[0,0,1,0]8698; AVX512-NEXT:    vinserti64x4 $1, %ymm0, %zmm7, %zmm08699; AVX512-NEXT:    vpternlogq {{.*#+}} zmm0 = zmm0 ^ (mem & (zmm0 ^ zmm18))8700; AVX512-NEXT:    vpternlogq {{.*#+}} zmm0 = zmm0 ^ (mem & (zmm0 ^ zmm16))8701; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload8702; AVX512-NEXT:    vpternlogq {{.*#+}} zmm5 = zmm5 ^ (mem & (zmm5 ^ zmm11))8703; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload8704; AVX512-NEXT:    vshufi64x2 $84, {{[-0-9]+}}(%r{{[sb]}}p), %zmm4, %zmm4 # 64-byte Folded Reload8705; AVX512-NEXT:    # zmm4 = zmm4[0,1,2,3],mem[2,3,2,3]8706; AVX512-NEXT:    vpternlogq {{.*#+}} zmm14 = zmm14 | (zmm4 & mem)8707; AVX512-NEXT:    vpternlogq {{.*#+}} zmm14 = zmm14 ^ (mem & (zmm14 ^ zmm31))8708; AVX512-NEXT:    vpternlogq {{.*#+}} zmm3 = zmm3 ^ (mem & (zmm3 ^ zmm29))8709; AVX512-NEXT:    vpermq {{.*#+}} zmm1 = zmm1[0,0,1,0,4,4,5,4]8710; AVX512-NEXT:    vpternlogq {{.*#+}} zmm1 = zmm1 ^ (mem & (zmm1 ^ zmm8))8711; AVX512-NEXT:    vpternlogq {{.*#+}} zmm1 = zmm1 ^ (mem & (zmm1 ^ zmm3))8712; AVX512-NEXT:    vpternlogq {{.*#+}} zmm9 = zmm20 ^ (mem & (zmm9 ^ zmm20))8713; AVX512-NEXT:    vpternlogq {{.*#+}} zmm9 = zmm9 ^ (mem & (zmm9 ^ zmm12))8714; AVX512-NEXT:    vporq %zmm27, %zmm24, %zmm38715; AVX512-NEXT:    vpternlogq {{.*#+}} zmm17 = zmm17 ^ (mem & (zmm17 ^ zmm3))8716; AVX512-NEXT:    vpternlogq {{.*#+}} zmm17 = zmm17 ^ (mem & (zmm17 ^ zmm15))8717; AVX512-NEXT:    movq {{[0-9]+}}(%rsp), %rax8718; AVX512-NEXT:    vmovdqa64 %zmm17, 128(%rax)8719; AVX512-NEXT:    vmovdqa64 %zmm9, 256(%rax)8720; AVX512-NEXT:    vmovdqa64 %zmm1, (%rax)8721; AVX512-NEXT:    vmovdqa64 %zmm14, 320(%rax)8722; AVX512-NEXT:    vmovdqa64 %zmm5, 384(%rax)8723; AVX512-NEXT:    vmovdqa64 %zmm0, 192(%rax)8724; AVX512-NEXT:    vmovdqa64 %zmm2, 64(%rax)8725; AVX512-NEXT:    addq $1256, %rsp # imm = 0x4E88726; AVX512-NEXT:    vzeroupper8727; AVX512-NEXT:    retq8728;8729; AVX512-FCP-LABEL: store_i8_stride7_vf64:8730; AVX512-FCP:       # %bb.0:8731; AVX512-FCP-NEXT:    subq $1448, %rsp # imm = 0x5A88732; AVX512-FCP-NEXT:    vmovdqa (%rsi), %ymm88733; AVX512-FCP-NEXT:    vpshufb {{.*#+}} ymm0 = zero,zero,zero,ymm8[14],zero,zero,zero,zero,zero,zero,ymm8[15],zero,zero,zero,zero,zero,zero,ymm8[16],zero,zero,zero,zero,zero,zero,ymm8[17],zero,zero,zero,zero,zero,zero,ymm8[18]8734; AVX512-FCP-NEXT:    vmovdqa (%rdi), %ymm28735; AVX512-FCP-NEXT:    vpshufb {{.*#+}} ymm1 = ymm2[0,1,14],zero,ymm2[12,13,0,1,14,15],zero,ymm2[3,12,13,2,3,16],zero,ymm2[30,31,28,29,16,17],zero,ymm2[31,18,19,28,29,18],zero8736; AVX512-FCP-NEXT:    vmovdqa64 %ymm2, %ymm168737; AVX512-FCP-NEXT:    vpor %ymm0, %ymm1, %ymm08738; AVX512-FCP-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8739; AVX512-FCP-NEXT:    vmovdqa (%rcx), %ymm78740; AVX512-FCP-NEXT:    vmovdqa {{.*#+}} ymm2 = [128,128,128,128,128,14,128,128,128,128,128,128,15,128,128,128,128,128,128,16,128,128,128,128,128,128,17,128,128,128,128,128]8741; AVX512-FCP-NEXT:    vpshufb %ymm2, %ymm7, %ymm08742; AVX512-FCP-NEXT:    vmovdqa64 %ymm2, %ymm258743; AVX512-FCP-NEXT:    vmovdqa (%rdx), %ymm148744; AVX512-FCP-NEXT:    vmovdqa {{.*#+}} ymm3 = [0,1,0,1,14,128,14,15,0,1,14,15,128,13,14,15,16,17,16,128,30,31,30,31,16,17,128,31,28,29,30,31]8745; AVX512-FCP-NEXT:    vpshufb %ymm3, %ymm14, %ymm18746; AVX512-FCP-NEXT:    vmovdqa64 %ymm3, %ymm248747; AVX512-FCP-NEXT:    vpor %ymm0, %ymm1, %ymm08748; AVX512-FCP-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8749; AVX512-FCP-NEXT:    vmovdqa (%r8), %ymm18750; AVX512-FCP-NEXT:    vpshufb {{.*#+}} ymm0 = zero,zero,zero,zero,zero,zero,ymm1[14],zero,zero,zero,zero,zero,zero,ymm1[15],zero,zero,zero,zero,zero,zero,ymm1[16],zero,zero,zero,zero,zero,zero,ymm1[17],zero,zero,zero,zero8751; AVX512-FCP-NEXT:    vmovdqa64 %ymm1, %ymm208752; AVX512-FCP-NEXT:    vmovdqa (%r9), %ymm98753; AVX512-FCP-NEXT:    vpshufb {{.*#+}} ymm1 = ymm9[13,u,u,u,u,u],zero,ymm9[14,u,u,u,u,u],zero,ymm9[15,u,u,u,u,u],zero,ymm9[16,u,u,u,u,u],zero,ymm9[17,u,u,u]8754; AVX512-FCP-NEXT:    vpor %ymm0, %ymm1, %ymm08755; AVX512-FCP-NEXT:    vmovdqu %ymm0, (%rsp) # 32-byte Spill8756; AVX512-FCP-NEXT:    vmovdqa 32(%rsi), %ymm118757; AVX512-FCP-NEXT:    vbroadcasti128 {{.*#+}} ymm6 = [128,128,128,30,128,28,128,128,128,128,31,128,29,128,128,128,128,128,128,30,128,28,128,128,128,128,31,128,29,128,128,128]8758; AVX512-FCP-NEXT:    # ymm6 = mem[0,1,0,1]8759; AVX512-FCP-NEXT:    vpshufb %ymm6, %ymm11, %ymm08760; AVX512-FCP-NEXT:    vmovdqa 32(%rdi), %ymm58761; AVX512-FCP-NEXT:    vbroadcasti128 {{.*#+}} ymm2 = [28,29,30,128,28,128,30,31,30,31,128,29,128,31,28,29,28,29,30,128,28,128,30,31,30,31,128,29,128,31,28,29]8762; AVX512-FCP-NEXT:    # ymm2 = mem[0,1,0,1]8763; AVX512-FCP-NEXT:    vpshufb %ymm2, %ymm5, %ymm18764; AVX512-FCP-NEXT:    vmovdqa64 %ymm2, %ymm178765; AVX512-FCP-NEXT:    vpor %ymm0, %ymm1, %ymm08766; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8767; AVX512-FCP-NEXT:    vpshufb {{.*#+}} ymm0 = ymm5[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,ymm5[23],zero,zero,zero,zero,ymm5[26],zero,ymm5[24],zero,zero,zero,zero,ymm5[27],zero,ymm5[25]8768; AVX512-FCP-NEXT:    vpshufb {{.*#+}} ymm1 = ymm11[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,25],zero,ymm11[23,u,u,u],zero,ymm11[26],zero,ymm11[24,u,u,u],zero,ymm11[27],zero8769; AVX512-FCP-NEXT:    vpor %ymm0, %ymm1, %ymm08770; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8771; AVX512-FCP-NEXT:    vmovdqa 32(%rdx), %ymm48772; AVX512-FCP-NEXT:    vbroadcasti128 {{.*#+}} ymm0 = [128,128,128,128,30,128,28,128,128,128,128,31,128,29,128,128,128,128,128,128,30,128,28,128,128,128,128,31,128,29,128,128]8773; AVX512-FCP-NEXT:    # ymm0 = mem[0,1,0,1]8774; AVX512-FCP-NEXT:    vpshufb %ymm0, %ymm4, %ymm28775; AVX512-FCP-NEXT:    vmovdqa64 %ymm0, %ymm198776; AVX512-FCP-NEXT:    vmovdqa 32(%rcx), %ymm18777; AVX512-FCP-NEXT:    vbroadcasti128 {{.*#+}} ymm10 = [27,0,0,0,128,30,128,28,0,0,0,128,31,128,29,0,27,0,0,0,128,30,128,28,0,0,0,128,31,128,29,0]8778; AVX512-FCP-NEXT:    # ymm10 = mem[0,1,0,1]8779; AVX512-FCP-NEXT:    vpshufb %ymm10, %ymm1, %ymm38780; AVX512-FCP-NEXT:    vpor %ymm2, %ymm3, %ymm28781; AVX512-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8782; AVX512-FCP-NEXT:    vpshufb {{.*#+}} ymm2 = ymm1[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,ymm1[25],zero,ymm1[23],zero,zero,zero,zero,ymm1[26],zero,ymm1[24],zero,zero,zero,zero8783; AVX512-FCP-NEXT:    vpshufb {{.*#+}} ymm3 = ymm4[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,24,25],zero,ymm4[23],zero,ymm4[21,22,23,26],zero,ymm4[24],zero,ymm4[28,29,26,27]8784; AVX512-FCP-NEXT:    vpor %ymm2, %ymm3, %ymm28785; AVX512-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8786; AVX512-FCP-NEXT:    vmovdqa 32(%r8), %ymm38787; AVX512-FCP-NEXT:    vbroadcasti128 {{.*#+}} ymm0 = [128,27,128,128,128,128,30,128,28,128,128,128,128,31,128,29,128,27,128,128,128,128,30,128,28,128,128,128,128,31,128,29]8788; AVX512-FCP-NEXT:    # ymm0 = mem[0,1,0,1]8789; AVX512-FCP-NEXT:    vpshufb %ymm0, %ymm3, %ymm128790; AVX512-FCP-NEXT:    vmovdqa64 %ymm0, %ymm188791; AVX512-FCP-NEXT:    vmovdqa 32(%r9), %ymm28792; AVX512-FCP-NEXT:    vbroadcasti128 {{.*#+}} ymm0 = [29,128,27,0,0,0,128,30,128,28,0,0,0,128,31,128,29,128,27,0,0,0,128,30,128,28,0,0,0,128,31,128]8793; AVX512-FCP-NEXT:    # ymm0 = mem[0,1,0,1]8794; AVX512-FCP-NEXT:    vpshufb %ymm0, %ymm2, %ymm138795; AVX512-FCP-NEXT:    vmovdqa64 %ymm0, %ymm228796; AVX512-FCP-NEXT:    vpor %ymm12, %ymm13, %ymm128797; AVX512-FCP-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8798; AVX512-FCP-NEXT:    vpshufb {{.*#+}} ymm12 = ymm2[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,zero,zero,ymm2[25],zero,ymm2[23],zero,zero,zero,zero,ymm2[26],zero,ymm2[24],zero,zero8799; AVX512-FCP-NEXT:    vpshufb {{.*#+}} ymm13 = ymm3[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,24,25,24,25],zero,ymm3[23],zero,ymm3[23,24,25,26],zero,ymm3[24],zero,ymm3[30,31]8800; AVX512-FCP-NEXT:    vpor %ymm12, %ymm13, %ymm128801; AVX512-FCP-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8802; AVX512-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax8803; AVX512-FCP-NEXT:    vmovdqa 32(%rax), %ymm158804; AVX512-FCP-NEXT:    vbroadcasti128 {{.*#+}} ymm12 = [28,29,26,27,28,29,30,31,30,31,28,29,28,29,30,31,28,29,26,27,28,29,30,31,30,31,28,29,28,29,30,31]8805; AVX512-FCP-NEXT:    # ymm12 = mem[0,1,0,1]8806; AVX512-FCP-NEXT:    vpshufb %ymm12, %ymm15, %ymm138807; AVX512-FCP-NEXT:    vmovdqu %ymm15, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8808; AVX512-FCP-NEXT:    vpshufb {{.*#+}} ymm15 = ymm15[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,22,23,26,27,24,25,22,23,24,25,26,27,26,27,24,25]8809; AVX512-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm13 = zmm15[2,3,2,3],zmm13[2,3,2,3]8810; AVX512-FCP-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8811; AVX512-FCP-NEXT:    vpshufb %ymm6, %ymm8, %ymm68812; AVX512-FCP-NEXT:    vmovdqa64 %ymm8, %ymm218813; AVX512-FCP-NEXT:    vmovdqa64 %ymm16, %ymm138814; AVX512-FCP-NEXT:    vmovdqa64 %ymm17, %ymm08815; AVX512-FCP-NEXT:    vpshufb %ymm0, %ymm13, %ymm88816; AVX512-FCP-NEXT:    vpor %ymm6, %ymm8, %ymm08817; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8818; AVX512-FCP-NEXT:    vmovdqa64 %ymm19, %ymm08819; AVX512-FCP-NEXT:    vpshufb %ymm0, %ymm14, %ymm68820; AVX512-FCP-NEXT:    vmovdqa64 %ymm14, %ymm198821; AVX512-FCP-NEXT:    vpshufb %ymm10, %ymm7, %ymm88822; AVX512-FCP-NEXT:    vmovdqa64 %ymm7, %ymm178823; AVX512-FCP-NEXT:    vpor %ymm6, %ymm8, %ymm08824; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8825; AVX512-FCP-NEXT:    vmovdqa (%rax), %ymm08826; AVX512-FCP-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8827; AVX512-FCP-NEXT:    vpshufb %ymm12, %ymm0, %ymm68828; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm0 = [4,0,6,0,4,0,6,7,0,17,0,17,0,16,16,0]8829; AVX512-FCP-NEXT:    vmovdqa 32(%rax), %xmm88830; AVX512-FCP-NEXT:    vpshuflw {{.*#+}} xmm10 = xmm8[1,1,0,0,4,5,6,7]8831; AVX512-FCP-NEXT:    vpermi2d %zmm10, %zmm6, %zmm08832; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8833; AVX512-FCP-NEXT:    vmovdqa64 %ymm20, %ymm148834; AVX512-FCP-NEXT:    vmovdqa64 %ymm18, %ymm08835; AVX512-FCP-NEXT:    vpshufb %ymm0, %ymm14, %ymm68836; AVX512-FCP-NEXT:    vmovdqa64 %ymm22, %ymm08837; AVX512-FCP-NEXT:    vpshufb %ymm0, %ymm9, %ymm78838; AVX512-FCP-NEXT:    vmovdqa64 %ymm9, %ymm208839; AVX512-FCP-NEXT:    vpor %ymm6, %ymm7, %ymm08840; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8841; AVX512-FCP-NEXT:    vmovdqa 32(%rdx), %xmm08842; AVX512-FCP-NEXT:    vmovdqa 32(%rcx), %xmm78843; AVX512-FCP-NEXT:    vmovdqa {{.*#+}} xmm9 = [u,u,u,128,7,128,5,u,u,u,128,8,128,6,u,u]8844; AVX512-FCP-NEXT:    vpshufb %xmm9, %xmm7, %xmm68845; AVX512-FCP-NEXT:    vmovdqa64 %xmm9, %xmm268846; AVX512-FCP-NEXT:    vmovdqa64 %xmm7, %xmm168847; AVX512-FCP-NEXT:    vmovdqa {{.*#+}} xmm9 = [u,u,u,7,128,5,128,u,u,u,8,128,6,128,u,u]8848; AVX512-FCP-NEXT:    vpshufb %xmm9, %xmm0, %xmm78849; AVX512-FCP-NEXT:    vmovdqa64 %xmm9, %xmm278850; AVX512-FCP-NEXT:    vmovdqa64 %xmm0, %xmm308851; AVX512-FCP-NEXT:    vpor %xmm6, %xmm7, %xmm08852; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8853; AVX512-FCP-NEXT:    vmovdqa 32(%rdi), %xmm08854; AVX512-FCP-NEXT:    vmovdqa 32(%rsi), %xmm158855; AVX512-FCP-NEXT:    vmovdqa {{.*#+}} xmm10 = [u,128,7,128,5,u,u,u,128,8,128,6,u,u,u,128]8856; AVX512-FCP-NEXT:    vpshufb %xmm10, %xmm15, %xmm68857; AVX512-FCP-NEXT:    vmovdqa {{.*#+}} xmm7 = [u,7,128,5,128,u,u,u,8,128,6,128,u,u,u,9]8858; AVX512-FCP-NEXT:    vpshufb %xmm7, %xmm0, %xmm98859; AVX512-FCP-NEXT:    vmovdqa64 %xmm0, %xmm288860; AVX512-FCP-NEXT:    vpor %xmm6, %xmm9, %xmm08861; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8862; AVX512-FCP-NEXT:    vpshufhw {{.*#+}} xmm6 = xmm8[0,1,2,3,4,5,5,6]8863; AVX512-FCP-NEXT:    vmovdqa {{.*#+}} xmm0 = [4,5,4,5,4,5,8,9,6,7,6,7,6,7,6,7]8864; AVX512-FCP-NEXT:    vpshufb %xmm0, %xmm8, %xmm88865; AVX512-FCP-NEXT:    vmovdqa64 %xmm0, %xmm188866; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm0 = [0,0,0,0,2,3,0,1,0,18,0,19,18,0,19,0]8867; AVX512-FCP-NEXT:    vpermi2d %zmm6, %zmm8, %zmm08868; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8869; AVX512-FCP-NEXT:    vmovdqa 32(%r9), %xmm08870; AVX512-FCP-NEXT:    vmovdqa 32(%r8), %xmm98871; AVX512-FCP-NEXT:    vmovdqa {{.*#+}} xmm8 = [128,4,u,u,u,128,7,128,5,u,u,u,128,8,128,6]8872; AVX512-FCP-NEXT:    vpshufb %xmm8, %xmm0, %xmm68873; AVX512-FCP-NEXT:    vmovdqa64 %xmm8, %xmm238874; AVX512-FCP-NEXT:    vmovdqa64 %xmm0, %xmm318875; AVX512-FCP-NEXT:    vmovdqa {{.*#+}} xmm0 = [4,128,u,u,u,7,128,5,128,u,u,u,8,128,6,128]8876; AVX512-FCP-NEXT:    vpshufb %xmm0, %xmm9, %xmm88877; AVX512-FCP-NEXT:    vmovdqa64 %xmm0, %xmm228878; AVX512-FCP-NEXT:    vpor %xmm6, %xmm8, %xmm08879; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8880; AVX512-FCP-NEXT:    vmovdqa64 %ymm25, %ymm08881; AVX512-FCP-NEXT:    vpshufb %ymm0, %ymm1, %ymm68882; AVX512-FCP-NEXT:    vmovdqa64 %ymm24, %ymm08883; AVX512-FCP-NEXT:    vpshufb %ymm0, %ymm4, %ymm88884; AVX512-FCP-NEXT:    vpor %ymm6, %ymm8, %ymm08885; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8886; AVX512-FCP-NEXT:    vpshufb {{.*#+}} ymm0 = ymm1[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,ymm1[18],zero,zero,zero,zero,ymm1[21],zero,ymm1[19],zero,zero,zero,zero,ymm1[22],zero,ymm1[20]8887; AVX512-FCP-NEXT:    vpshufb {{.*#+}} ymm1 = ymm4[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,18],zero,ymm4[18,19,20,21],zero,ymm4[19],zero,ymm4[25,26,27,22],zero,ymm4[20],zero8888; AVX512-FCP-NEXT:    vpor %ymm0, %ymm1, %ymm08889; AVX512-FCP-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8890; AVX512-FCP-NEXT:    vpshufb {{.*#+}} ymm0 = zero,zero,zero,ymm11[14],zero,zero,zero,zero,zero,zero,ymm11[15],zero,zero,zero,zero,zero,zero,ymm11[16],zero,zero,zero,zero,zero,zero,ymm11[17],zero,zero,zero,zero,zero,zero,ymm11[18]8891; AVX512-FCP-NEXT:    vpshufb {{.*#+}} ymm1 = ymm5[0,1,14],zero,ymm5[12,13,0,1,14,15],zero,ymm5[3,12,13,2,3,16],zero,ymm5[30,31,28,29,16,17],zero,ymm5[31,18,19,28,29,18],zero8892; AVX512-FCP-NEXT:    vpor %ymm0, %ymm1, %ymm08893; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8894; AVX512-FCP-NEXT:    vbroadcasti128 {{.*#+}} ymm0 = [128,128,128,128,21,128,19,128,128,128,128,22,128,20,128,128,128,128,128,128,21,128,19,128,128,128,128,22,128,20,128,128]8895; AVX512-FCP-NEXT:    # ymm0 = mem[0,1,0,1]8896; AVX512-FCP-NEXT:    vpshufb %ymm0, %ymm11, %ymm18897; AVX512-FCP-NEXT:    vbroadcasti128 {{.*#+}} ymm6 = [18,19,20,21,128,19,128,21,20,21,22,128,20,128,22,23,18,19,20,21,128,19,128,21,20,21,22,128,20,128,22,23]8898; AVX512-FCP-NEXT:    # ymm6 = mem[0,1,0,1]8899; AVX512-FCP-NEXT:    vpshufb %ymm6, %ymm5, %ymm48900; AVX512-FCP-NEXT:    vmovdqa64 %ymm6, %ymm248901; AVX512-FCP-NEXT:    vpor %ymm1, %ymm4, %ymm18902; AVX512-FCP-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8903; AVX512-FCP-NEXT:    vpshufb {{.*#+}} ymm1 = ymm2[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,ymm2[20],zero,ymm2[18],zero,zero,zero,zero,ymm2[21],zero,ymm2[19],zero,zero,zero,zero,ymm2[22]8904; AVX512-FCP-NEXT:    vpshufb {{.*#+}} ymm4 = ymm3[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,20],zero,ymm3[18],zero,ymm3[20,21,20,21],zero,ymm3[19],zero,ymm3[19,20,21,22],zero8905; AVX512-FCP-NEXT:    vpor %ymm1, %ymm4, %ymm18906; AVX512-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8907; AVX512-FCP-NEXT:    vpshufb {{.*#+}} ymm1 = zero,zero,zero,zero,zero,zero,ymm3[14],zero,zero,zero,zero,zero,zero,ymm3[15],zero,zero,zero,zero,zero,zero,ymm3[16],zero,zero,zero,zero,zero,zero,ymm3[17],zero,zero,zero,zero8908; AVX512-FCP-NEXT:    vpshufb {{.*#+}} ymm2 = ymm2[13,u,u,u,u,u],zero,ymm2[14,u,u,u,u,u],zero,ymm2[15,u,u,u,u,u],zero,ymm2[16,u,u,u,u,u],zero,ymm2[17,u,u,u]8909; AVX512-FCP-NEXT:    vpor %ymm1, %ymm2, %ymm18910; AVX512-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8911; AVX512-FCP-NEXT:    vmovdqa (%rsi), %xmm128912; AVX512-FCP-NEXT:    vpshufb %xmm10, %xmm12, %xmm18913; AVX512-FCP-NEXT:    vmovdqa (%rdi), %xmm88914; AVX512-FCP-NEXT:    vpshufb %xmm7, %xmm8, %xmm28915; AVX512-FCP-NEXT:    vpor %xmm1, %xmm2, %xmm18916; AVX512-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8917; AVX512-FCP-NEXT:    vmovdqa (%rcx), %xmm118918; AVX512-FCP-NEXT:    vmovdqa64 %xmm26, %xmm18919; AVX512-FCP-NEXT:    vpshufb %xmm1, %xmm11, %xmm18920; AVX512-FCP-NEXT:    vmovdqa (%rdx), %xmm68921; AVX512-FCP-NEXT:    vmovdqa64 %xmm27, %xmm28922; AVX512-FCP-NEXT:    vpshufb %xmm2, %xmm6, %xmm28923; AVX512-FCP-NEXT:    vpor %xmm1, %xmm2, %xmm18924; AVX512-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8925; AVX512-FCP-NEXT:    vmovdqa (%rax), %xmm108926; AVX512-FCP-NEXT:    vmovdqa64 %xmm18, %xmm18927; AVX512-FCP-NEXT:    vpshufb %xmm1, %xmm10, %xmm18928; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm18 = [0,1,0,1,0,0,0,0,16,0,16,0,18,19,0,17]8929; AVX512-FCP-NEXT:    vpshuflw {{.*#+}} xmm2 = xmm10[1,1,0,0,4,5,6,7]8930; AVX512-FCP-NEXT:    vpermi2d %zmm1, %zmm2, %zmm188931; AVX512-FCP-NEXT:    vmovdqa (%r9), %xmm78932; AVX512-FCP-NEXT:    vmovdqa64 %xmm23, %xmm18933; AVX512-FCP-NEXT:    vpshufb %xmm1, %xmm7, %xmm38934; AVX512-FCP-NEXT:    vmovdqa (%r8), %xmm58935; AVX512-FCP-NEXT:    vmovdqa64 %xmm22, %xmm18936; AVX512-FCP-NEXT:    vpshufb %xmm1, %xmm5, %xmm48937; AVX512-FCP-NEXT:    vporq %xmm3, %xmm4, %xmm268938; AVX512-FCP-NEXT:    vpshufb {{.*#+}} ymm3 = ymm13[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,ymm13[23],zero,zero,zero,zero,ymm13[26],zero,ymm13[24],zero,zero,zero,zero,ymm13[27],zero,ymm13[25]8939; AVX512-FCP-NEXT:    vmovdqa64 %ymm21, %ymm18940; AVX512-FCP-NEXT:    vpshufb {{.*#+}} ymm4 = ymm1[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,25],zero,ymm1[23,u,u,u],zero,ymm1[26],zero,ymm1[24,u,u,u],zero,ymm1[27],zero8941; AVX512-FCP-NEXT:    vporq %ymm3, %ymm4, %ymm258942; AVX512-FCP-NEXT:    vpshufb %ymm0, %ymm1, %ymm08943; AVX512-FCP-NEXT:    vmovdqa64 %ymm24, %ymm18944; AVX512-FCP-NEXT:    vpshufb %ymm1, %ymm13, %ymm38945; AVX512-FCP-NEXT:    vporq %ymm0, %ymm3, %ymm248946; AVX512-FCP-NEXT:    vmovdqa64 %ymm17, %ymm18947; AVX512-FCP-NEXT:    vpshufb {{.*#+}} ymm0 = ymm1[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,ymm1[25],zero,ymm1[23],zero,zero,zero,zero,ymm1[26],zero,ymm1[24],zero,zero,zero,zero8948; AVX512-FCP-NEXT:    vmovdqa64 %ymm19, %ymm48949; AVX512-FCP-NEXT:    vpshufb {{.*#+}} ymm3 = ymm4[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,24,25],zero,ymm4[23],zero,ymm4[21,22,23,26],zero,ymm4[24],zero,ymm4[28,29,26,27]8950; AVX512-FCP-NEXT:    vporq %ymm0, %ymm3, %ymm238951; AVX512-FCP-NEXT:    vpshufb {{.*#+}} ymm0 = ymm1[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,ymm1[18],zero,zero,zero,zero,ymm1[21],zero,ymm1[19],zero,zero,zero,zero,ymm1[22],zero,ymm1[20]8952; AVX512-FCP-NEXT:    vpshufb {{.*#+}} ymm3 = ymm4[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,18],zero,ymm4[18,19,20,21],zero,ymm4[19],zero,ymm4[25,26,27,22],zero,ymm4[20],zero8953; AVX512-FCP-NEXT:    vporq %ymm0, %ymm3, %ymm228954; AVX512-FCP-NEXT:    vmovdqa64 %ymm20, %ymm18955; AVX512-FCP-NEXT:    vpshufb {{.*#+}} ymm0 = ymm1[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,zero,zero,ymm1[25],zero,ymm1[23],zero,zero,zero,zero,ymm1[26],zero,ymm1[24],zero,zero8956; AVX512-FCP-NEXT:    vpshufb {{.*#+}} ymm3 = ymm1[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,ymm1[20],zero,ymm1[18],zero,zero,zero,zero,ymm1[21],zero,ymm1[19],zero,zero,zero,zero,ymm1[22]8957; AVX512-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm20 = zmm3[2,3,2,3],zmm0[2,3,2,3]8958; AVX512-FCP-NEXT:    vpshufb {{.*#+}} ymm0 = ymm14[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,24,25,24,25],zero,ymm14[23],zero,ymm14[23,24,25,26],zero,ymm14[24],zero,ymm14[30,31]8959; AVX512-FCP-NEXT:    vpshufb {{.*#+}} ymm3 = ymm14[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,20],zero,ymm14[18],zero,ymm14[20,21,20,21],zero,ymm14[19],zero,ymm14[19,20,21,22],zero8960; AVX512-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm19 = zmm3[2,3,2,3],zmm0[2,3,2,3]8961; AVX512-FCP-NEXT:    vpshufhw {{.*#+}} xmm0 = xmm10[0,1,2,3,4,5,5,6]8962; AVX512-FCP-NEXT:    vbroadcasti128 {{.*#+}} ymm3 = [2,2,3,3,2,2,3,3]8963; AVX512-FCP-NEXT:    # ymm3 = mem[0,1,0,1]8964; AVX512-FCP-NEXT:    vpermd %ymm0, %ymm3, %ymm08965; AVX512-FCP-NEXT:    vpand {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm0, %ymm08966; AVX512-FCP-NEXT:    vmovdqa {{.*#+}} ymm1 = [128,13,128,128,128,128,128,128,14,128,128,128,128,128,128,15,128,128,128,128,128,128,16,128,128,128,128,128,128,17,128,128]8967; AVX512-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm13 # 32-byte Reload8968; AVX512-FCP-NEXT:    vpshufb %ymm1, %ymm13, %ymm38969; AVX512-FCP-NEXT:    vmovdqa64 %ymm1, %ymm298970; AVX512-FCP-NEXT:    vinserti64x4 $1, %ymm3, %zmm0, %zmm148971; AVX512-FCP-NEXT:    vmovdqa64 %xmm28, %xmm28972; AVX512-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm0 = xmm2[0],xmm15[0],xmm2[1],xmm15[1],xmm2[2],xmm15[2],xmm2[3],xmm15[3],xmm2[4],xmm15[4],xmm2[5],xmm15[5],xmm2[6],xmm15[6],xmm2[7],xmm15[7]8973; AVX512-FCP-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[0,1,u,u,u,6,7,2,3,u,u,u,8,9,4,5]8974; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload8975; AVX512-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm21 = zmm1[2,3,2,3],zmm0[0,1,0,1]8976; AVX512-FCP-NEXT:    vmovdqa64 %xmm30, %xmm48977; AVX512-FCP-NEXT:    vmovdqa64 %xmm16, %xmm108978; AVX512-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm0 = xmm4[0],xmm10[0],xmm4[1],xmm10[1],xmm4[2],xmm10[2],xmm4[3],xmm10[3],xmm4[4],xmm10[4],xmm4[5],xmm10[5],xmm4[6],xmm10[6],xmm4[7],xmm10[7]8979; AVX512-FCP-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[4,5,0,1,u,u,u,6,7,2,3,u,u,u,8,9]8980; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload8981; AVX512-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm16 = zmm1[2,3,2,3],zmm0[0,1,0,1]8982; AVX512-FCP-NEXT:    vmovdqa64 %xmm31, %xmm18983; AVX512-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm3 = xmm9[0],xmm1[0],xmm9[1],xmm1[1],xmm9[2],xmm1[2],xmm9[3],xmm1[3],xmm9[4],xmm1[4],xmm9[5],xmm1[5],xmm9[6],xmm1[6],xmm9[7],xmm1[7]8984; AVX512-FCP-NEXT:    vmovdqa {{.*#+}} xmm0 = [u,u,4,5,0,1,u,u,u,6,7,2,3,u,u,u]8985; AVX512-FCP-NEXT:    vpshufb %xmm0, %xmm3, %xmm38986; AVX512-FCP-NEXT:    vmovdqa64 %xmm0, %xmm278987; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8988; AVX512-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm30 = zmm0[2,3,2,3],zmm3[0,1,0,1]8989; AVX512-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm3 = xmm10[8],xmm4[8],xmm10[9],xmm4[9],xmm10[10],xmm4[10],xmm10[11],xmm4[11],xmm10[12],xmm4[12],xmm10[13],xmm4[13],xmm10[14],xmm4[14],xmm10[15],xmm4[15]8990; AVX512-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm4 = xmm11[8],xmm6[8],xmm11[9],xmm6[9],xmm11[10],xmm6[10],xmm11[11],xmm6[11],xmm11[12],xmm6[12],xmm11[13],xmm6[13],xmm11[14],xmm6[14],xmm11[15],xmm6[15]8991; AVX512-FCP-NEXT:    vmovdqa {{.*#+}} xmm0 = [6,3,2,u,u,u,9,8,5,4,u,u,u,11,10,7]8992; AVX512-FCP-NEXT:    vpshufb %xmm0, %xmm4, %xmm108993; AVX512-FCP-NEXT:    vpshufb %xmm0, %xmm3, %xmm08994; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload8995; AVX512-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm17 = zmm3[0,1,0,1],zmm0[0,1,0,1]8996; AVX512-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm3 = xmm15[8],xmm2[8],xmm15[9],xmm2[9],xmm15[10],xmm2[10],xmm15[11],xmm2[11],xmm15[12],xmm2[12],xmm15[13],xmm2[13],xmm15[14],xmm2[14],xmm15[15],xmm2[15]8997; AVX512-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm4 = xmm12[8],xmm8[8],xmm12[9],xmm8[9],xmm12[10],xmm8[10],xmm12[11],xmm8[11],xmm12[12],xmm8[12],xmm12[13],xmm8[13],xmm12[14],xmm8[14],xmm12[15],xmm8[15]8998; AVX512-FCP-NEXT:    vmovdqa {{.*#+}} xmm15 = [2,u,u,u,9,8,5,4,u,u,u,11,10,7,6,u]8999; AVX512-FCP-NEXT:    vpshufb %xmm15, %xmm4, %xmm49000; AVX512-FCP-NEXT:    vpshufb %xmm15, %xmm3, %xmm39001; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload9002; AVX512-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm31 = zmm0[0,1,0,1],zmm3[0,1,0,1]9003; AVX512-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm9 = xmm9[8],xmm1[8],xmm9[9],xmm1[9],xmm9[10],xmm1[10],xmm9[11],xmm1[11],xmm9[12],xmm1[12],xmm9[13],xmm1[13],xmm9[14],xmm1[14],xmm9[15],xmm1[15]9004; AVX512-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm3 = xmm5[8],xmm7[8],xmm5[9],xmm7[9],xmm5[10],xmm7[10],xmm5[11],xmm7[11],xmm5[12],xmm7[12],xmm5[13],xmm7[13],xmm5[14],xmm7[14],xmm5[15],xmm7[15]9005; AVX512-FCP-NEXT:    vmovdqa {{.*#+}} xmm0 = [u,6,7,2,3,u,u,u,8,9,4,5,u,u,u,10]9006; AVX512-FCP-NEXT:    vpshufb %xmm0, %xmm3, %xmm39007; AVX512-FCP-NEXT:    vpshufb %xmm0, %xmm9, %xmm09008; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload9009; AVX512-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm9 = zmm2[0,1,0,1],zmm0[0,1,0,1]9010; AVX512-FCP-NEXT:    vpshufb {{.*#+}} ymm0 = ymm13[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,22,23,26,27,24,25,22,23,24,25,26,27,26,27,24,25]9011; AVX512-FCP-NEXT:    vpshuflw {{.*#+}} ymm15 = ymm13[2,1,1,2,4,5,6,7,10,9,9,10,12,13,14,15]9012; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm28 = [0,5,4,0,5,0,4,0,20,21,0,23,0,21,0,23]9013; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm28, %zmm159014; AVX512-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm13 # 32-byte Reload9015; AVX512-FCP-NEXT:    vmovdqa64 %ymm29, %ymm09016; AVX512-FCP-NEXT:    vpshufb %ymm0, %ymm13, %ymm09017; AVX512-FCP-NEXT:    vpshuflw {{.*#+}} ymm13 = ymm13[2,1,1,2,4,5,6,7,10,9,9,10,12,13,14,15]9018; AVX512-FCP-NEXT:    vpermd %ymm13, %ymm28, %ymm139019; AVX512-FCP-NEXT:    vpand {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm13, %ymm139020; AVX512-FCP-NEXT:    vinserti64x4 $1, %ymm13, %zmm0, %zmm09021; AVX512-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm8 = xmm8[0],xmm12[0],xmm8[1],xmm12[1],xmm8[2],xmm12[2],xmm8[3],xmm12[3],xmm8[4],xmm12[4],xmm8[5],xmm12[5],xmm8[6],xmm12[6],xmm8[7],xmm12[7]9022; AVX512-FCP-NEXT:    vpshufb {{.*#+}} xmm8 = xmm8[0,1,u,u,u,6,7,2,3,u,u,u,8,9,4,5]9023; AVX512-FCP-NEXT:    vshufi64x2 $0, {{[-0-9]+}}(%r{{[sb]}}p), %zmm8, %zmm8 # 64-byte Folded Reload9024; AVX512-FCP-NEXT:    # zmm8 = zmm8[0,1,0,1],mem[0,1,0,1]9025; AVX512-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm6 = xmm6[0],xmm11[0],xmm6[1],xmm11[1],xmm6[2],xmm11[2],xmm6[3],xmm11[3],xmm6[4],xmm11[4],xmm6[5],xmm11[5],xmm6[6],xmm11[6],xmm6[7],xmm11[7]9026; AVX512-FCP-NEXT:    vpshufb {{.*#+}} xmm6 = xmm6[4,5,0,1,u,u,u,6,7,2,3,u,u,u,8,9]9027; AVX512-FCP-NEXT:    vshufi64x2 $0, {{[-0-9]+}}(%r{{[sb]}}p), %zmm6, %zmm6 # 64-byte Folded Reload9028; AVX512-FCP-NEXT:    # zmm6 = zmm6[0,1,0,1],mem[0,1,0,1]9029; AVX512-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm2 = xmm5[0],xmm7[0],xmm5[1],xmm7[1],xmm5[2],xmm7[2],xmm5[3],xmm7[3],xmm5[4],xmm7[4],xmm5[5],xmm7[5],xmm5[6],xmm7[6],xmm5[7],xmm7[7]9030; AVX512-FCP-NEXT:    vmovdqa64 %xmm27, %xmm19031; AVX512-FCP-NEXT:    vpshufb %xmm1, %xmm2, %xmm29032; AVX512-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm2 = zmm2[0,1,0,1],zmm26[0,1,0,1]9033; AVX512-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm5 = zmm24[2,3,2,3],zmm25[2,3,2,3]9034; AVX512-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm7 = zmm22[2,3,2,3],zmm23[2,3,2,3]9035; AVX512-FCP-NEXT:    vmovdqa64 {{.*#+}} zmm12 = [255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0,0,255]9036; AVX512-FCP-NEXT:    vpternlogq {{.*#+}} zmm7 = zmm5 ^ (zmm12 & (zmm7 ^ zmm5))9037; AVX512-FCP-NEXT:    vporq %zmm20, %zmm19, %zmm59038; AVX512-FCP-NEXT:    vpternlogq {{.*#+}} zmm15 = zmm15 ^ (mem & (zmm15 ^ zmm5))9039; AVX512-FCP-NEXT:    vpternlogq {{.*#+}} zmm15 = zmm15 ^ (mem & (zmm15 ^ zmm7))9040; AVX512-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax9041; AVX512-FCP-NEXT:    vmovdqa64 %zmm15, 128(%rax)9042; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload9043; AVX512-FCP-NEXT:    vshufi64x2 $85, {{[-0-9]+}}(%r{{[sb]}}p), %zmm5, %zmm5 # 64-byte Folded Reload9044; AVX512-FCP-NEXT:    # zmm5 = zmm5[2,3,2,3],mem[2,3,2,3]9045; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload9046; AVX512-FCP-NEXT:    vshufi64x2 $85, {{[-0-9]+}}(%r{{[sb]}}p), %zmm7, %zmm7 # 64-byte Folded Reload9047; AVX512-FCP-NEXT:    # zmm7 = zmm7[2,3,2,3],mem[2,3,2,3]9048; AVX512-FCP-NEXT:    vpermq {{.*#+}} ymm4 = ymm4[0,1,0,1]9049; AVX512-FCP-NEXT:    vpermq {{.*#+}} ymm10 = ymm10[0,1,0,1]9050; AVX512-FCP-NEXT:    vpermq {{.*#+}} ymm3 = ymm3[0,1,0,1]9051; AVX512-FCP-NEXT:    vpternlogq {{.*#+}} zmm7 = zmm7 ^ (mem & (zmm7 ^ zmm5))9052; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload9053; AVX512-FCP-NEXT:    vshufi64x2 $85, {{[-0-9]+}}(%r{{[sb]}}p), %zmm5, %zmm5 # 64-byte Folded Reload9054; AVX512-FCP-NEXT:    # zmm5 = zmm5[2,3,2,3],mem[2,3,2,3]9055; AVX512-FCP-NEXT:    vpternlogq {{.*#+}} zmm5 = zmm5 ^ (zmm12 & (zmm5 ^ zmm7))9056; AVX512-FCP-NEXT:    vpternlogq {{.*#+}} zmm31 = zmm17 ^ (zmm12 & (zmm31 ^ zmm17))9057; AVX512-FCP-NEXT:    vmovdqa64 {{.*#+}} zmm7 = [255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255]9058; AVX512-FCP-NEXT:    vpternlogq {{.*#+}} zmm16 = zmm21 ^ (zmm7 & (zmm16 ^ zmm21))9059; AVX512-FCP-NEXT:    vpermq $238, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Folded Reload9060; AVX512-FCP-NEXT:    # ymm11 = mem[2,3,2,3]9061; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload9062; AVX512-FCP-NEXT:    vinserti64x4 $1, %ymm11, %zmm12, %zmm119063; AVX512-FCP-NEXT:    vpermq $238, {{[-0-9]+}}(%r{{[sb]}}p), %ymm12 # 32-byte Folded Reload9064; AVX512-FCP-NEXT:    # ymm12 = mem[2,3,2,3]9065; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm13 # 64-byte Reload9066; AVX512-FCP-NEXT:    vinserti64x4 $1, %ymm12, %zmm13, %zmm129067; AVX512-FCP-NEXT:    vpternlogq {{.*#+}} zmm12 = zmm11 ^ (zmm7 & (zmm12 ^ zmm11))9068; AVX512-FCP-NEXT:    vinserti64x4 $1, {{[-0-9]+}}(%r{{[sb]}}p), %zmm4, %zmm4 # 32-byte Folded Reload9069; AVX512-FCP-NEXT:    vinserti64x4 $1, {{[-0-9]+}}(%r{{[sb]}}p), %zmm10, %zmm7 # 32-byte Folded Reload9070; AVX512-FCP-NEXT:    vpternlogq {{.*#+}} zmm7 = zmm7 ^ (mem & (zmm7 ^ zmm4))9071; AVX512-FCP-NEXT:    vinserti64x4 $1, (%rsp), %zmm3, %zmm3 # 32-byte Folded Reload9072; AVX512-FCP-NEXT:    vpternlogq {{.*#+}} zmm14 = zmm14 | (zmm3 & mem)9073; AVX512-FCP-NEXT:    vpternlogq {{.*#+}} zmm14 = zmm14 ^ (mem & (zmm14 ^ zmm7))9074; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload9075; AVX512-FCP-NEXT:    vpternlogq {{.*#+}} zmm3 = zmm3 ^ (mem & (zmm3 ^ zmm5))9076; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload9077; AVX512-FCP-NEXT:    vpternlogq {{.*#+}} zmm30 = zmm4 ^ (mem & (zmm30 ^ zmm4))9078; AVX512-FCP-NEXT:    vpternlogq {{.*#+}} zmm30 = zmm30 ^ (mem & (zmm30 ^ zmm16))9079; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload9080; AVX512-FCP-NEXT:    vpternlogq {{.*#+}} zmm9 = zmm1 ^ (mem & (zmm9 ^ zmm1))9081; AVX512-FCP-NEXT:    vpternlogq {{.*#+}} zmm9 = zmm9 ^ (mem & (zmm9 ^ zmm31))9082; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload9083; AVX512-FCP-NEXT:    vshufi64x2 $84, {{[-0-9]+}}(%r{{[sb]}}p), %zmm1, %zmm1 # 64-byte Folded Reload9084; AVX512-FCP-NEXT:    # zmm1 = zmm1[0,1,2,3],mem[2,3,2,3]9085; AVX512-FCP-NEXT:    vpternlogq {{.*#+}} zmm0 = zmm0 | (zmm1 & mem)9086; AVX512-FCP-NEXT:    vpternlogq {{.*#+}} zmm0 = zmm0 ^ (mem & (zmm0 ^ zmm12))9087; AVX512-FCP-NEXT:    vpternlogq {{.*#+}} zmm6 = zmm6 ^ (mem & (zmm6 ^ zmm8))9088; AVX512-FCP-NEXT:    vpternlogq {{.*#+}} zmm2 = zmm18 ^ (mem & (zmm2 ^ zmm18))9089; AVX512-FCP-NEXT:    vpternlogq {{.*#+}} zmm2 = zmm2 ^ (mem & (zmm2 ^ zmm6))9090; AVX512-FCP-NEXT:    vmovdqa64 %zmm2, (%rax)9091; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, 320(%rax)9092; AVX512-FCP-NEXT:    vmovdqa64 %zmm9, 256(%rax)9093; AVX512-FCP-NEXT:    vmovdqa64 %zmm30, 192(%rax)9094; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, 384(%rax)9095; AVX512-FCP-NEXT:    vmovdqa64 %zmm14, 64(%rax)9096; AVX512-FCP-NEXT:    addq $1448, %rsp # imm = 0x5A89097; AVX512-FCP-NEXT:    vzeroupper9098; AVX512-FCP-NEXT:    retq9099;9100; AVX512DQ-LABEL: store_i8_stride7_vf64:9101; AVX512DQ:       # %bb.0:9102; AVX512DQ-NEXT:    subq $1256, %rsp # imm = 0x4E89103; AVX512DQ-NEXT:    vmovdqa (%rsi), %ymm99104; AVX512DQ-NEXT:    vmovdqa {{.*#+}} ymm5 = [128,128,128,14,128,128,128,128,128,128,15,128,128,128,128,128,128,16,128,128,128,128,128,128,17,128,128,128,128,128,128,18]9105; AVX512DQ-NEXT:    vpshufb %ymm5, %ymm9, %ymm09106; AVX512DQ-NEXT:    vmovdqa (%rdi), %ymm109107; AVX512DQ-NEXT:    vmovdqa {{.*#+}} ymm4 = [0,1,14,128,12,13,0,1,14,15,128,3,12,13,2,3,16,128,30,31,28,29,16,17,128,31,18,19,28,29,18,128]9108; AVX512DQ-NEXT:    vpshufb %ymm4, %ymm10, %ymm19109; AVX512DQ-NEXT:    vpor %ymm0, %ymm1, %ymm09110; AVX512DQ-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9111; AVX512DQ-NEXT:    vmovdqa (%rcx), %ymm119112; AVX512DQ-NEXT:    vmovdqa {{.*#+}} ymm1 = [128,128,128,128,128,14,128,128,128,128,128,128,15,128,128,128,128,128,128,16,128,128,128,128,128,128,17,128,128,128,128,128]9113; AVX512DQ-NEXT:    vpshufb %ymm1, %ymm11, %ymm09114; AVX512DQ-NEXT:    vmovdqa (%rdx), %ymm139115; AVX512DQ-NEXT:    vmovdqa {{.*#+}} ymm3 = [0,1,0,1,14,128,14,15,0,1,14,15,128,13,14,15,16,17,16,128,30,31,30,31,16,17,128,31,28,29,30,31]9116; AVX512DQ-NEXT:    vpshufb %ymm3, %ymm13, %ymm29117; AVX512DQ-NEXT:    vpor %ymm0, %ymm2, %ymm09118; AVX512DQ-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9119; AVX512DQ-NEXT:    vmovdqa (%r8), %ymm149120; AVX512DQ-NEXT:    vmovdqa {{.*#+}} ymm2 = [128,128,128,128,128,128,14,128,128,128,128,128,128,15,128,128,128,128,128,128,16,128,128,128,128,128,128,17,128,128,128,128]9121; AVX512DQ-NEXT:    vpshufb %ymm2, %ymm14, %ymm09122; AVX512DQ-NEXT:    vmovdqa (%r9), %ymm159123; AVX512DQ-NEXT:    vbroadcasti128 {{.*#+}} ymm6 = [13,0,0,0,128,16,128,14,0,0,0,128,17,128,15,0,13,0,0,0,128,16,128,14,0,0,0,128,17,128,15,0]9124; AVX512DQ-NEXT:    # ymm6 = mem[0,1,0,1]9125; AVX512DQ-NEXT:    vpshufb %ymm6, %ymm15, %ymm79126; AVX512DQ-NEXT:    vpor %ymm0, %ymm7, %ymm09127; AVX512DQ-NEXT:    vmovdqu %ymm0, (%rsp) # 32-byte Spill9128; AVX512DQ-NEXT:    vbroadcasti128 {{.*#+}} ymm8 = [128,128,128,30,128,28,128,128,128,128,31,128,29,128,128,128,128,128,128,30,128,28,128,128,128,128,31,128,29,128,128,128]9129; AVX512DQ-NEXT:    # ymm8 = mem[0,1,0,1]9130; AVX512DQ-NEXT:    vpshufb %ymm8, %ymm9, %ymm09131; AVX512DQ-NEXT:    vmovdqa64 %ymm9, %ymm219132; AVX512DQ-NEXT:    vmovdqa {{.*#+}} ymm12 = [12,13,14,128,12,128,14,15,14,15,128,13,128,15,12,13,28,29,30,128,28,128,30,31,30,31,128,29,128,31,28,29]9133; AVX512DQ-NEXT:    vpshufb %ymm12, %ymm10, %ymm79134; AVX512DQ-NEXT:    vmovdqa64 %ymm10, %ymm189135; AVX512DQ-NEXT:    vporq %ymm0, %ymm7, %ymm319136; AVX512DQ-NEXT:    vbroadcasti128 {{.*#+}} ymm9 = [128,128,128,128,30,128,28,128,128,128,128,31,128,29,128,128,128,128,128,128,30,128,28,128,128,128,128,31,128,29,128,128]9137; AVX512DQ-NEXT:    # ymm9 = mem[0,1,0,1]9138; AVX512DQ-NEXT:    vpshufb %ymm9, %ymm13, %ymm09139; AVX512DQ-NEXT:    vmovdqa64 %ymm13, %ymm199140; AVX512DQ-NEXT:    vbroadcasti128 {{.*#+}} ymm10 = [27,0,0,0,128,30,128,28,0,0,0,128,31,128,29,0,27,0,0,0,128,30,128,28,0,0,0,128,31,128,29,0]9141; AVX512DQ-NEXT:    # ymm10 = mem[0,1,0,1]9142; AVX512DQ-NEXT:    vpshufb %ymm10, %ymm11, %ymm79143; AVX512DQ-NEXT:    vmovdqa64 %ymm11, %ymm169144; AVX512DQ-NEXT:    vpor %ymm0, %ymm7, %ymm09145; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill9146; AVX512DQ-NEXT:    vbroadcasti128 {{.*#+}} ymm0 = [128,27,128,128,128,128,30,128,28,128,128,128,128,31,128,29,128,27,128,128,128,128,30,128,28,128,128,128,128,31,128,29]9147; AVX512DQ-NEXT:    # ymm0 = mem[0,1,0,1]9148; AVX512DQ-NEXT:    vpshufb %ymm0, %ymm14, %ymm79149; AVX512DQ-NEXT:    vmovdqa64 %ymm14, %ymm179150; AVX512DQ-NEXT:    vbroadcasti128 {{.*#+}} ymm11 = [29,128,27,0,0,0,128,30,128,28,0,0,0,128,31,128,29,128,27,0,0,0,128,30,128,28,0,0,0,128,31,128]9151; AVX512DQ-NEXT:    # ymm11 = mem[0,1,0,1]9152; AVX512DQ-NEXT:    vpshufb %ymm11, %ymm15, %ymm139153; AVX512DQ-NEXT:    vmovdqa64 %ymm15, %ymm249154; AVX512DQ-NEXT:    vpor %ymm7, %ymm13, %ymm79155; AVX512DQ-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill9156; AVX512DQ-NEXT:    vmovdqa 32(%rsi), %ymm79157; AVX512DQ-NEXT:    vpshufb %ymm8, %ymm7, %ymm139158; AVX512DQ-NEXT:    vmovdqa 32(%rdi), %ymm89159; AVX512DQ-NEXT:    vpshufb %ymm12, %ymm8, %ymm129160; AVX512DQ-NEXT:    vpor %ymm13, %ymm12, %ymm129161; AVX512DQ-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill9162; AVX512DQ-NEXT:    vpshufb {{.*#+}} ymm12 = ymm8[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,ymm8[23],zero,zero,zero,zero,ymm8[26],zero,ymm8[24],zero,zero,zero,zero,ymm8[27],zero,ymm8[25]9163; AVX512DQ-NEXT:    vbroadcasti128 {{.*#+}} ymm14 = [25,128,23,0,0,0,128,26,128,24,0,0,0,128,27,128,25,128,23,0,0,0,128,26,128,24,0,0,0,128,27,128]9164; AVX512DQ-NEXT:    # ymm14 = mem[0,1,0,1]9165; AVX512DQ-NEXT:    vpshufb %ymm14, %ymm7, %ymm139166; AVX512DQ-NEXT:    vmovdqa64 %ymm14, %ymm259167; AVX512DQ-NEXT:    vpor %ymm12, %ymm13, %ymm129168; AVX512DQ-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill9169; AVX512DQ-NEXT:    vmovdqa 32(%rdx), %ymm129170; AVX512DQ-NEXT:    vpshufb %ymm9, %ymm12, %ymm99171; AVX512DQ-NEXT:    vmovdqa 32(%rcx), %ymm139172; AVX512DQ-NEXT:    vpshufb %ymm10, %ymm13, %ymm109173; AVX512DQ-NEXT:    vpor %ymm9, %ymm10, %ymm99174; AVX512DQ-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill9175; AVX512DQ-NEXT:    vpshufb {{.*#+}} ymm9 = ymm13[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,ymm13[25],zero,ymm13[23],zero,zero,zero,zero,ymm13[26],zero,ymm13[24],zero,zero,zero,zero9176; AVX512DQ-NEXT:    vpshufb {{.*#+}} ymm10 = ymm12[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,24,25],zero,ymm12[23],zero,ymm12[21,22,23,26],zero,ymm12[24],zero,ymm12[28,29,26,27]9177; AVX512DQ-NEXT:    vpor %ymm9, %ymm10, %ymm99178; AVX512DQ-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill9179; AVX512DQ-NEXT:    vmovdqa 32(%r8), %ymm99180; AVX512DQ-NEXT:    vpshufb %ymm0, %ymm9, %ymm09181; AVX512DQ-NEXT:    vmovdqa 32(%r9), %ymm109182; AVX512DQ-NEXT:    vpshufb %ymm11, %ymm10, %ymm119183; AVX512DQ-NEXT:    vpor %ymm0, %ymm11, %ymm09184; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill9185; AVX512DQ-NEXT:    vpshufb {{.*#+}} ymm0 = ymm10[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,zero,zero,ymm10[25],zero,ymm10[23],zero,zero,zero,zero,ymm10[26],zero,ymm10[24],zero,zero9186; AVX512DQ-NEXT:    vpshufb {{.*#+}} ymm11 = ymm9[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,24,25,24,25],zero,ymm9[23],zero,ymm9[23,24,25,26],zero,ymm9[24],zero,ymm9[30,31]9187; AVX512DQ-NEXT:    vpor %ymm0, %ymm11, %ymm09188; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill9189; AVX512DQ-NEXT:    movq {{[0-9]+}}(%rsp), %rax9190; AVX512DQ-NEXT:    vmovdqa 32(%rax), %ymm149191; AVX512DQ-NEXT:    vpshufb {{.*#+}} ymm0 = ymm14[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,28,29,26,27,28,29,30,31,30,31,28,29,28,29,30,31]9192; AVX512DQ-NEXT:    vpshufb {{.*#+}} ymm11 = ymm14[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,22,23,26,27,24,25,22,23,24,25,26,27,26,27,24,25]9193; AVX512DQ-NEXT:    vshufi64x2 {{.*#+}} zmm0 = zmm11[2,3,2,3],zmm0[2,3,2,3]9194; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill9195; AVX512DQ-NEXT:    vpshufb %ymm1, %ymm13, %ymm09196; AVX512DQ-NEXT:    vpshufb %ymm3, %ymm12, %ymm19197; AVX512DQ-NEXT:    vpor %ymm0, %ymm1, %ymm09198; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill9199; AVX512DQ-NEXT:    vpshufb {{.*#+}} ymm0 = ymm13[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,ymm13[18],zero,zero,zero,zero,ymm13[21],zero,ymm13[19],zero,zero,zero,zero,ymm13[22],zero,ymm13[20]9200; AVX512DQ-NEXT:    vpshufb {{.*#+}} ymm1 = ymm12[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,18],zero,ymm12[18,19,20,21],zero,ymm12[19],zero,ymm12[25,26,27,22],zero,ymm12[20],zero9201; AVX512DQ-NEXT:    vpor %ymm0, %ymm1, %ymm09202; AVX512DQ-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9203; AVX512DQ-NEXT:    vpshufb %ymm5, %ymm7, %ymm09204; AVX512DQ-NEXT:    vpshufb %ymm4, %ymm8, %ymm19205; AVX512DQ-NEXT:    vpor %ymm0, %ymm1, %ymm09206; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill9207; AVX512DQ-NEXT:    vbroadcasti128 {{.*#+}} ymm1 = [128,128,128,128,21,128,19,128,128,128,128,22,128,20,128,128,128,128,128,128,21,128,19,128,128,128,128,22,128,20,128,128]9208; AVX512DQ-NEXT:    # ymm1 = mem[0,1,0,1]9209; AVX512DQ-NEXT:    vpshufb %ymm1, %ymm7, %ymm09210; AVX512DQ-NEXT:    vmovdqa64 %ymm1, %ymm229211; AVX512DQ-NEXT:    vmovdqa {{.*#+}} ymm12 = [2,3,4,5,128,3,128,5,4,5,6,128,4,128,6,7,18,19,20,21,128,19,128,21,20,21,22,128,20,128,22,23]9212; AVX512DQ-NEXT:    vpshufb %ymm12, %ymm8, %ymm19213; AVX512DQ-NEXT:    vpor %ymm0, %ymm1, %ymm09214; AVX512DQ-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9215; AVX512DQ-NEXT:    vpshufb {{.*#+}} ymm0 = ymm10[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,ymm10[20],zero,ymm10[18],zero,zero,zero,zero,ymm10[21],zero,ymm10[19],zero,zero,zero,zero,ymm10[22]9216; AVX512DQ-NEXT:    vbroadcasti128 {{.*#+}} ymm8 = [20,128,18,128,20,21,20,21,128,19,128,19,20,21,22,128,20,128,18,128,20,21,20,21,128,19,128,19,20,21,22,128]9217; AVX512DQ-NEXT:    # ymm8 = mem[0,1,0,1]9218; AVX512DQ-NEXT:    vpshufb %ymm8, %ymm9, %ymm19219; AVX512DQ-NEXT:    vpor %ymm0, %ymm1, %ymm09220; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill9221; AVX512DQ-NEXT:    vpshufb %ymm2, %ymm9, %ymm09222; AVX512DQ-NEXT:    vpshufb %ymm6, %ymm10, %ymm19223; AVX512DQ-NEXT:    vpor %ymm0, %ymm1, %ymm09224; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill9225; AVX512DQ-NEXT:    vmovdqa (%rdi), %xmm49226; AVX512DQ-NEXT:    vmovdqa (%rsi), %xmm09227; AVX512DQ-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill9228; AVX512DQ-NEXT:    vmovdqa {{.*#+}} xmm1 = [u,128,7,128,5,u,u,u,128,8,128,6,u,u,u,128]9229; AVX512DQ-NEXT:    vpshufb %xmm1, %xmm0, %xmm09230; AVX512DQ-NEXT:    vmovdqa {{.*#+}} xmm2 = [u,7,128,5,128,u,u,u,8,128,6,128,u,u,u,9]9231; AVX512DQ-NEXT:    vpshufb %xmm2, %xmm4, %xmm39232; AVX512DQ-NEXT:    vmovdqa64 %xmm4, %xmm299233; AVX512DQ-NEXT:    vpor %xmm0, %xmm3, %xmm09234; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill9235; AVX512DQ-NEXT:    vmovdqa (%rdx), %xmm69236; AVX512DQ-NEXT:    vmovdqa (%rcx), %xmm09237; AVX512DQ-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill9238; AVX512DQ-NEXT:    vmovdqa {{.*#+}} xmm4 = [u,u,u,128,7,128,5,u,u,u,128,8,128,6,u,u]9239; AVX512DQ-NEXT:    vpshufb %xmm4, %xmm0, %xmm09240; AVX512DQ-NEXT:    vmovdqa {{.*#+}} xmm5 = [u,u,u,7,128,5,128,u,u,u,8,128,6,128,u,u]9241; AVX512DQ-NEXT:    vpshufb %xmm5, %xmm6, %xmm39242; AVX512DQ-NEXT:    vmovdqa64 %xmm6, %xmm309243; AVX512DQ-NEXT:    vpor %xmm0, %xmm3, %xmm09244; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill9245; AVX512DQ-NEXT:    vmovdqa (%r9), %xmm09246; AVX512DQ-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill9247; AVX512DQ-NEXT:    vmovdqa (%r8), %xmm79248; AVX512DQ-NEXT:    vmovdqa %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill9249; AVX512DQ-NEXT:    vmovdqa {{.*#+}} xmm3 = [128,4,u,u,u,128,7,128,5,u,u,u,128,8,128,6]9250; AVX512DQ-NEXT:    vpshufb %xmm3, %xmm0, %xmm69251; AVX512DQ-NEXT:    vmovdqa {{.*#+}} xmm0 = [4,128,u,u,u,7,128,5,128,u,u,u,8,128,6,128]9252; AVX512DQ-NEXT:    vpshufb %xmm0, %xmm7, %xmm79253; AVX512DQ-NEXT:    vpor %xmm6, %xmm7, %xmm69254; AVX512DQ-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill9255; AVX512DQ-NEXT:    vmovdqa 32(%rcx), %xmm109256; AVX512DQ-NEXT:    vpshufb %xmm4, %xmm10, %xmm49257; AVX512DQ-NEXT:    vmovdqa 32(%rdx), %xmm139258; AVX512DQ-NEXT:    vpshufb %xmm5, %xmm13, %xmm59259; AVX512DQ-NEXT:    vpor %xmm4, %xmm5, %xmm49260; AVX512DQ-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill9261; AVX512DQ-NEXT:    vmovdqa 32(%rsi), %xmm69262; AVX512DQ-NEXT:    vpshufb %xmm1, %xmm6, %xmm19263; AVX512DQ-NEXT:    vmovdqa 32(%rdi), %xmm99264; AVX512DQ-NEXT:    vpshufb %xmm2, %xmm9, %xmm29265; AVX512DQ-NEXT:    vpor %xmm1, %xmm2, %xmm19266; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill9267; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm20 = [0,0,0,0,2,3,0,1,0,18,0,19,18,0,19,0]9268; AVX512DQ-NEXT:    vmovdqa 32(%rax), %xmm49269; AVX512DQ-NEXT:    vpshufhw {{.*#+}} xmm1 = xmm4[0,1,2,3,4,5,5,6]9270; AVX512DQ-NEXT:    vpshufb {{.*#+}} xmm2 = xmm4[4,5,4,5,4,5,8,9,6,7,6,7,6,7,6,7]9271; AVX512DQ-NEXT:    vmovdqa64 %xmm4, %xmm289272; AVX512DQ-NEXT:    vpermi2d %zmm1, %zmm2, %zmm209273; AVX512DQ-NEXT:    vmovdqa 32(%r9), %xmm159274; AVX512DQ-NEXT:    vpshufb %xmm3, %xmm15, %xmm19275; AVX512DQ-NEXT:    vmovdqa 32(%r8), %xmm119276; AVX512DQ-NEXT:    vpshufb %xmm0, %xmm11, %xmm09277; AVX512DQ-NEXT:    vporq %xmm1, %xmm0, %xmm239278; AVX512DQ-NEXT:    vmovdqa64 %ymm18, %ymm39279; AVX512DQ-NEXT:    vpshufb {{.*#+}} ymm0 = ymm3[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,ymm3[23],zero,zero,zero,zero,ymm3[26],zero,ymm3[24],zero,zero,zero,zero,ymm3[27],zero,ymm3[25]9280; AVX512DQ-NEXT:    vmovdqa64 %ymm21, %ymm29281; AVX512DQ-NEXT:    vmovdqa64 %ymm25, %ymm19282; AVX512DQ-NEXT:    vpshufb %ymm1, %ymm2, %ymm19283; AVX512DQ-NEXT:    vporq %ymm0, %ymm1, %ymm269284; AVX512DQ-NEXT:    vmovdqa64 %ymm22, %ymm09285; AVX512DQ-NEXT:    vpshufb %ymm0, %ymm2, %ymm09286; AVX512DQ-NEXT:    vpshufb %ymm12, %ymm3, %ymm19287; AVX512DQ-NEXT:    vporq %ymm0, %ymm1, %ymm259288; AVX512DQ-NEXT:    vmovdqa64 %ymm16, %ymm29289; AVX512DQ-NEXT:    vpshufb {{.*#+}} ymm0 = ymm2[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,ymm2[25],zero,ymm2[23],zero,zero,zero,zero,ymm2[26],zero,ymm2[24],zero,zero,zero,zero9290; AVX512DQ-NEXT:    vmovdqa64 %ymm19, %ymm39291; AVX512DQ-NEXT:    vpshufb {{.*#+}} ymm1 = ymm3[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,24,25],zero,ymm3[23],zero,ymm3[21,22,23,26],zero,ymm3[24],zero,ymm3[28,29,26,27]9292; AVX512DQ-NEXT:    vporq %ymm0, %ymm1, %ymm229293; AVX512DQ-NEXT:    vpshufb {{.*#+}} ymm0 = ymm2[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,ymm2[18],zero,zero,zero,zero,ymm2[21],zero,ymm2[19],zero,zero,zero,zero,ymm2[22],zero,ymm2[20]9294; AVX512DQ-NEXT:    vpshufb {{.*#+}} ymm1 = ymm3[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,18],zero,ymm3[18,19,20,21],zero,ymm3[19],zero,ymm3[25,26,27,22],zero,ymm3[20],zero9295; AVX512DQ-NEXT:    vporq %ymm0, %ymm1, %ymm219296; AVX512DQ-NEXT:    vmovdqa64 %ymm24, %ymm19297; AVX512DQ-NEXT:    vpshufb {{.*#+}} ymm0 = ymm1[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,zero,zero,ymm1[25],zero,ymm1[23],zero,zero,zero,zero,ymm1[26],zero,ymm1[24],zero,zero9298; AVX512DQ-NEXT:    vpshufb {{.*#+}} ymm1 = ymm1[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,ymm1[20],zero,ymm1[18],zero,zero,zero,zero,ymm1[21],zero,ymm1[19],zero,zero,zero,zero,ymm1[22]9299; AVX512DQ-NEXT:    vshufi64x2 {{.*#+}} zmm27 = zmm1[2,3,2,3],zmm0[2,3,2,3]9300; AVX512DQ-NEXT:    vmovdqa64 %ymm17, %ymm19301; AVX512DQ-NEXT:    vpshufb {{.*#+}} ymm0 = ymm1[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,24,25,24,25],zero,ymm1[23],zero,ymm1[23,24,25,26],zero,ymm1[24],zero,ymm1[30,31]9302; AVX512DQ-NEXT:    vpshufb %ymm8, %ymm1, %ymm19303; AVX512DQ-NEXT:    vshufi64x2 {{.*#+}} zmm24 = zmm1[2,3,2,3],zmm0[2,3,2,3]9304; AVX512DQ-NEXT:    vmovdqa (%rax), %ymm79305; AVX512DQ-NEXT:    vpshufb {{.*#+}} ymm1 = ymm7[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,22,23,26,27,24,25,22,23,24,25,26,27,26,27,24,25]9306; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm17 = [0,5,4,0,5,0,4,0,20,21,0,23,0,21,0,23]9307; AVX512DQ-NEXT:    vpshuflw {{.*#+}} ymm2 = ymm7[2,1,1,2,4,5,6,7,10,9,9,10,12,13,14,15]9308; AVX512DQ-NEXT:    vpermi2d %zmm1, %zmm2, %zmm179309; AVX512DQ-NEXT:    vmovdqa (%rax), %xmm19310; AVX512DQ-NEXT:    vpshufhw {{.*#+}} xmm2 = xmm1[0,1,2,3,4,5,5,6]9311; AVX512DQ-NEXT:    vpshufd {{.*#+}} xmm2 = xmm2[2,2,3,3]9312; AVX512DQ-NEXT:    vpermq {{.*#+}} ymm2 = ymm2[0,1,0,1]9313; AVX512DQ-NEXT:    vpand {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm2, %ymm29314; AVX512DQ-NEXT:    vmovdqa {{.*#+}} ymm5 = [128,13,128,128,128,128,128,128,14,128,128,128,128,128,128,15,128,128,128,128,128,128,16,128,128,128,128,128,128,17,128,128]9315; AVX512DQ-NEXT:    vpshufb %ymm5, %ymm7, %ymm39316; AVX512DQ-NEXT:    vinserti64x4 $1, %ymm3, %zmm2, %zmm29317; AVX512DQ-NEXT:    vpunpcklbw {{.*#+}} xmm3 = xmm9[0],xmm6[0],xmm9[1],xmm6[1],xmm9[2],xmm6[2],xmm9[3],xmm6[3],xmm9[4],xmm6[4],xmm9[5],xmm6[5],xmm9[6],xmm6[6],xmm9[7],xmm6[7]9318; AVX512DQ-NEXT:    vmovdqa %xmm9, %xmm129319; AVX512DQ-NEXT:    vmovdqa64 %xmm6, %xmm199320; AVX512DQ-NEXT:    vmovdqa {{.*#+}} xmm6 = [0,1,u,u,u,6,7,2,3,u,u,u,8,9,4,5]9321; AVX512DQ-NEXT:    vpshufb %xmm6, %xmm3, %xmm39322; AVX512DQ-NEXT:    vshufi64x2 {{.*#+}} zmm31 = zmm31[2,3,2,3],zmm3[0,1,0,1]9323; AVX512DQ-NEXT:    vpunpcklbw {{.*#+}} xmm4 = xmm13[0],xmm10[0],xmm13[1],xmm10[1],xmm13[2],xmm10[2],xmm13[3],xmm10[3],xmm13[4],xmm10[4],xmm13[5],xmm10[5],xmm13[6],xmm10[6],xmm13[7],xmm10[7]9324; AVX512DQ-NEXT:    vmovdqa %xmm10, %xmm99325; AVX512DQ-NEXT:    vmovdqa {{.*#+}} xmm8 = [4,5,0,1,u,u,u,6,7,2,3,u,u,u,8,9]9326; AVX512DQ-NEXT:    vpshufb %xmm8, %xmm4, %xmm49327; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload9328; AVX512DQ-NEXT:    vshufi64x2 {{.*#+}} zmm16 = zmm0[2,3,2,3],zmm4[0,1,0,1]9329; AVX512DQ-NEXT:    vpunpcklbw {{.*#+}} xmm0 = xmm11[0],xmm15[0],xmm11[1],xmm15[1],xmm11[2],xmm15[2],xmm11[3],xmm15[3],xmm11[4],xmm15[4],xmm11[5],xmm15[5],xmm11[6],xmm15[6],xmm11[7],xmm15[7]9330; AVX512DQ-NEXT:    vmovdqa {{.*#+}} xmm10 = [u,u,4,5,0,1,u,u,u,6,7,2,3,u,u,u]9331; AVX512DQ-NEXT:    vpshufb %xmm10, %xmm0, %xmm09332; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm18 # 64-byte Reload9333; AVX512DQ-NEXT:    vshufi64x2 {{.*#+}} zmm18 = zmm18[2,3,2,3],zmm0[0,1,0,1]9334; AVX512DQ-NEXT:    vpshufb {{.*#+}} ymm7 = ymm7[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,28,29,26,27,28,29,30,31,30,31,28,29,28,29,30,31]9335; AVX512DQ-NEXT:    vpshufb %ymm5, %ymm14, %ymm59336; AVX512DQ-NEXT:    vpshuflw {{.*#+}} ymm14 = ymm14[2,1,1,2,4,5,6,7,10,9,9,10,12,13,14,15]9337; AVX512DQ-NEXT:    vpshufd {{.*#+}} ymm14 = ymm14[0,1,1,3,4,5,5,7]9338; AVX512DQ-NEXT:    vpermq {{.*#+}} ymm14 = ymm14[2,2,3,2]9339; AVX512DQ-NEXT:    vpand {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm14, %ymm149340; AVX512DQ-NEXT:    vinserti64x4 $1, %ymm14, %zmm5, %zmm149341; AVX512DQ-NEXT:    vmovdqa64 %xmm29, %xmm09342; AVX512DQ-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload9343; AVX512DQ-NEXT:    vpunpckhbw {{.*#+}} xmm5 = xmm3[8],xmm0[8],xmm3[9],xmm0[9],xmm3[10],xmm0[10],xmm3[11],xmm0[11],xmm3[12],xmm0[12],xmm3[13],xmm0[13],xmm3[14],xmm0[14],xmm3[15],xmm0[15]9344; AVX512DQ-NEXT:    vpunpcklbw {{.*#+}} xmm0 = xmm0[0],xmm3[0],xmm0[1],xmm3[1],xmm0[2],xmm3[2],xmm0[3],xmm3[3],xmm0[4],xmm3[4],xmm0[5],xmm3[5],xmm0[6],xmm3[6],xmm0[7],xmm3[7]9345; AVX512DQ-NEXT:    vpshufb %xmm6, %xmm0, %xmm09346; AVX512DQ-NEXT:    vshufi64x2 $0, {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm29 # 64-byte Folded Reload9347; AVX512DQ-NEXT:    # zmm29 = zmm0[0,1,0,1],mem[0,1,0,1]9348; AVX512DQ-NEXT:    vmovdqa64 %xmm30, %xmm39349; AVX512DQ-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload9350; AVX512DQ-NEXT:    vpunpckhbw {{.*#+}} xmm4 = xmm6[8],xmm3[8],xmm6[9],xmm3[9],xmm6[10],xmm3[10],xmm6[11],xmm3[11],xmm6[12],xmm3[12],xmm6[13],xmm3[13],xmm6[14],xmm3[14],xmm6[15],xmm3[15]9351; AVX512DQ-NEXT:    vpunpcklbw {{.*#+}} xmm6 = xmm3[0],xmm6[0],xmm3[1],xmm6[1],xmm3[2],xmm6[2],xmm3[3],xmm6[3],xmm3[4],xmm6[4],xmm3[5],xmm6[5],xmm3[6],xmm6[6],xmm3[7],xmm6[7]9352; AVX512DQ-NEXT:    vpshufb %xmm8, %xmm6, %xmm69353; AVX512DQ-NEXT:    vmovdqa64 {{.*#+}} zmm8 = [255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255]9354; AVX512DQ-NEXT:    vpternlogq {{.*#+}} zmm16 = zmm31 ^ (zmm8 & (zmm16 ^ zmm31))9355; AVX512DQ-NEXT:    vpermq $238, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Folded Reload9356; AVX512DQ-NEXT:    # ymm3 = mem[2,3,2,3]9357; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm31 # 64-byte Reload9358; AVX512DQ-NEXT:    vinserti64x4 $1, %ymm3, %zmm31, %zmm39359; AVX512DQ-NEXT:    vpermq $238, {{[-0-9]+}}(%r{{[sb]}}p), %ymm31 # 32-byte Folded Reload9360; AVX512DQ-NEXT:    # ymm31 = mem[2,3,2,3]9361; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm30 # 64-byte Reload9362; AVX512DQ-NEXT:    vinserti64x4 $1, %ymm31, %zmm30, %zmm319363; AVX512DQ-NEXT:    vpternlogq {{.*#+}} zmm31 = zmm3 ^ (zmm8 & (zmm31 ^ zmm3))9364; AVX512DQ-NEXT:    vshufi64x2 $0, {{[-0-9]+}}(%r{{[sb]}}p), %zmm6, %zmm3 # 64-byte Folded Reload9365; AVX512DQ-NEXT:    # zmm3 = zmm6[0,1,0,1],mem[0,1,0,1]9366; AVX512DQ-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload9367; AVX512DQ-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload9368; AVX512DQ-NEXT:    vpunpckhbw {{.*#+}} xmm6 = xmm0[8],xmm8[8],xmm0[9],xmm8[9],xmm0[10],xmm8[10],xmm0[11],xmm8[11],xmm0[12],xmm8[12],xmm0[13],xmm8[13],xmm0[14],xmm8[14],xmm0[15],xmm8[15]9369; AVX512DQ-NEXT:    vpunpcklbw {{.*#+}} xmm8 = xmm0[0],xmm8[0],xmm0[1],xmm8[1],xmm0[2],xmm8[2],xmm0[3],xmm8[3],xmm0[4],xmm8[4],xmm0[5],xmm8[5],xmm0[6],xmm8[6],xmm0[7],xmm8[7]9370; AVX512DQ-NEXT:    vpshufb %xmm10, %xmm8, %xmm89371; AVX512DQ-NEXT:    vshufi64x2 $0, {{[-0-9]+}}(%r{{[sb]}}p), %zmm8, %zmm8 # 64-byte Folded Reload9372; AVX512DQ-NEXT:    # zmm8 = zmm8[0,1,0,1],mem[0,1,0,1]9373; AVX512DQ-NEXT:    vpshufb {{.*#+}} xmm10 = xmm1[4,5,4,5,4,5,8,9,6,7,6,7,6,7,6,7]9374; AVX512DQ-NEXT:    vpshuflw {{.*#+}} xmm1 = xmm1[1,1,0,0,4,5,6,7]9375; AVX512DQ-NEXT:    vpshufd {{.*#+}} xmm1 = xmm1[0,1,2,0]9376; AVX512DQ-NEXT:    vinserti64x4 $1, %ymm10, %zmm1, %zmm19377; AVX512DQ-NEXT:    vpunpckhbw {{.*#+}} xmm10 = xmm9[8],xmm13[8],xmm9[9],xmm13[9],xmm9[10],xmm13[10],xmm9[11],xmm13[11],xmm9[12],xmm13[12],xmm9[13],xmm13[13],xmm9[14],xmm13[14],xmm9[15],xmm13[15]9378; AVX512DQ-NEXT:    vmovdqa {{.*#+}} xmm13 = [6,3,2,u,u,u,9,8,5,4,u,u,u,11,10,7]9379; AVX512DQ-NEXT:    vpshufb %xmm13, %xmm4, %xmm09380; AVX512DQ-NEXT:    vpshufb %xmm13, %xmm10, %xmm109381; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload9382; AVX512DQ-NEXT:    vshufi64x2 {{.*#+}} zmm10 = zmm4[0,1,0,1],zmm10[0,1,0,1]9383; AVX512DQ-NEXT:    vmovdqa64 %xmm19, %xmm49384; AVX512DQ-NEXT:    vpunpckhbw {{.*#+}} xmm12 = xmm4[8],xmm12[8],xmm4[9],xmm12[9],xmm4[10],xmm12[10],xmm4[11],xmm12[11],xmm4[12],xmm12[12],xmm4[13],xmm12[13],xmm4[14],xmm12[14],xmm4[15],xmm12[15]9385; AVX512DQ-NEXT:    vmovdqa {{.*#+}} xmm13 = [2,u,u,u,9,8,5,4,u,u,u,11,10,7,6,u]9386; AVX512DQ-NEXT:    vpshufb %xmm13, %xmm5, %xmm59387; AVX512DQ-NEXT:    vpshufb %xmm13, %xmm12, %xmm129388; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload9389; AVX512DQ-NEXT:    vshufi64x2 {{.*#+}} zmm12 = zmm4[0,1,0,1],zmm12[0,1,0,1]9390; AVX512DQ-NEXT:    vpunpckhbw {{.*#+}} xmm9 = xmm11[8],xmm15[8],xmm11[9],xmm15[9],xmm11[10],xmm15[10],xmm11[11],xmm15[11],xmm11[12],xmm15[12],xmm11[13],xmm15[13],xmm11[14],xmm15[14],xmm11[15],xmm15[15]9391; AVX512DQ-NEXT:    vmovdqa {{.*#+}} xmm11 = [u,6,7,2,3,u,u,u,8,9,4,5,u,u,u,10]9392; AVX512DQ-NEXT:    vpshufb %xmm11, %xmm6, %xmm69393; AVX512DQ-NEXT:    vpshufb %xmm11, %xmm9, %xmm99394; AVX512DQ-NEXT:    vshufi64x2 {{.*#+}} zmm9 = zmm23[0,1,0,1],zmm9[0,1,0,1]9395; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm11 # 64-byte Reload9396; AVX512DQ-NEXT:    vshufi64x2 $85, {{[-0-9]+}}(%r{{[sb]}}p), %zmm11, %zmm11 # 64-byte Folded Reload9397; AVX512DQ-NEXT:    # zmm11 = zmm11[2,3,2,3],mem[2,3,2,3]9398; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm13 # 64-byte Reload9399; AVX512DQ-NEXT:    vshufi64x2 $85, {{[-0-9]+}}(%r{{[sb]}}p), %zmm13, %zmm13 # 64-byte Folded Reload9400; AVX512DQ-NEXT:    # zmm13 = zmm13[2,3,2,3],mem[2,3,2,3]9401; AVX512DQ-NEXT:    vpternlogq {{.*#+}} zmm13 = zmm13 ^ (mem & (zmm13 ^ zmm11))9402; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm11 # 64-byte Reload9403; AVX512DQ-NEXT:    vshufi64x2 $85, {{[-0-9]+}}(%r{{[sb]}}p), %zmm11, %zmm11 # 64-byte Folded Reload9404; AVX512DQ-NEXT:    # zmm11 = zmm11[2,3,2,3],mem[2,3,2,3]9405; AVX512DQ-NEXT:    vmovdqa64 {{.*#+}} zmm23 = [255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0,0,255]9406; AVX512DQ-NEXT:    vpternlogq {{.*#+}} zmm11 = zmm11 ^ (zmm23 & (zmm11 ^ zmm13))9407; AVX512DQ-NEXT:    vpternlogq {{.*#+}} zmm12 = zmm10 ^ (zmm23 & (zmm12 ^ zmm10))9408; AVX512DQ-NEXT:    vpermq {{.*#+}} ymm5 = ymm5[0,1,0,1]9409; AVX512DQ-NEXT:    vpermq {{.*#+}} ymm0 = ymm0[0,1,0,1]9410; AVX512DQ-NEXT:    vpermq {{.*#+}} ymm6 = ymm6[0,1,0,1]9411; AVX512DQ-NEXT:    vpermq {{.*#+}} ymm7 = ymm7[2,3,2,3]9412; AVX512DQ-NEXT:    vmovdqa64 %xmm28, %xmm49413; AVX512DQ-NEXT:    vpshuflw {{.*#+}} xmm10 = xmm4[1,1,0,0,4,5,6,7]9414; AVX512DQ-NEXT:    vpshufd {{.*#+}} xmm10 = xmm10[0,1,2,0]9415; AVX512DQ-NEXT:    vshufi64x2 {{.*#+}} zmm13 = zmm25[2,3,2,3],zmm26[2,3,2,3]9416; AVX512DQ-NEXT:    vshufi64x2 {{.*#+}} zmm15 = zmm21[2,3,2,3],zmm22[2,3,2,3]9417; AVX512DQ-NEXT:    vpternlogq {{.*#+}} zmm15 = zmm13 ^ (zmm23 & (zmm15 ^ zmm13))9418; AVX512DQ-NEXT:    vinserti64x4 $1, {{[-0-9]+}}(%r{{[sb]}}p), %zmm5, %zmm5 # 32-byte Folded Reload9419; AVX512DQ-NEXT:    vinserti64x4 $1, {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm0 # 32-byte Folded Reload9420; AVX512DQ-NEXT:    vpternlogq {{.*#+}} zmm0 = zmm0 ^ (mem & (zmm0 ^ zmm5))9421; AVX512DQ-NEXT:    vinserti64x4 $1, (%rsp), %zmm6, %zmm5 # 32-byte Folded Reload9422; AVX512DQ-NEXT:    vpternlogq {{.*#+}} zmm2 = zmm2 | (zmm5 & mem)9423; AVX512DQ-NEXT:    vpternlogq {{.*#+}} zmm2 = zmm2 ^ (mem & (zmm2 ^ zmm0))9424; AVX512DQ-NEXT:    vpermq {{.*#+}} ymm0 = ymm10[0,0,1,0]9425; AVX512DQ-NEXT:    vinserti64x4 $1, %ymm0, %zmm7, %zmm09426; AVX512DQ-NEXT:    vpternlogq {{.*#+}} zmm0 = zmm0 ^ (mem & (zmm0 ^ zmm18))9427; AVX512DQ-NEXT:    vpternlogq {{.*#+}} zmm0 = zmm0 ^ (mem & (zmm0 ^ zmm16))9428; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload9429; AVX512DQ-NEXT:    vpternlogq {{.*#+}} zmm5 = zmm5 ^ (mem & (zmm5 ^ zmm11))9430; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload9431; AVX512DQ-NEXT:    vshufi64x2 $84, {{[-0-9]+}}(%r{{[sb]}}p), %zmm4, %zmm4 # 64-byte Folded Reload9432; AVX512DQ-NEXT:    # zmm4 = zmm4[0,1,2,3],mem[2,3,2,3]9433; AVX512DQ-NEXT:    vpternlogq {{.*#+}} zmm14 = zmm14 | (zmm4 & mem)9434; AVX512DQ-NEXT:    vpternlogq {{.*#+}} zmm14 = zmm14 ^ (mem & (zmm14 ^ zmm31))9435; AVX512DQ-NEXT:    vpternlogq {{.*#+}} zmm3 = zmm3 ^ (mem & (zmm3 ^ zmm29))9436; AVX512DQ-NEXT:    vpermq {{.*#+}} zmm1 = zmm1[0,0,1,0,4,4,5,4]9437; AVX512DQ-NEXT:    vpternlogq {{.*#+}} zmm1 = zmm1 ^ (mem & (zmm1 ^ zmm8))9438; AVX512DQ-NEXT:    vpternlogq {{.*#+}} zmm1 = zmm1 ^ (mem & (zmm1 ^ zmm3))9439; AVX512DQ-NEXT:    vpternlogq {{.*#+}} zmm9 = zmm20 ^ (mem & (zmm9 ^ zmm20))9440; AVX512DQ-NEXT:    vpternlogq {{.*#+}} zmm9 = zmm9 ^ (mem & (zmm9 ^ zmm12))9441; AVX512DQ-NEXT:    vporq %zmm27, %zmm24, %zmm39442; AVX512DQ-NEXT:    vpternlogq {{.*#+}} zmm17 = zmm17 ^ (mem & (zmm17 ^ zmm3))9443; AVX512DQ-NEXT:    vpternlogq {{.*#+}} zmm17 = zmm17 ^ (mem & (zmm17 ^ zmm15))9444; AVX512DQ-NEXT:    movq {{[0-9]+}}(%rsp), %rax9445; AVX512DQ-NEXT:    vmovdqa64 %zmm17, 128(%rax)9446; AVX512DQ-NEXT:    vmovdqa64 %zmm9, 256(%rax)9447; AVX512DQ-NEXT:    vmovdqa64 %zmm1, (%rax)9448; AVX512DQ-NEXT:    vmovdqa64 %zmm14, 320(%rax)9449; AVX512DQ-NEXT:    vmovdqa64 %zmm5, 384(%rax)9450; AVX512DQ-NEXT:    vmovdqa64 %zmm0, 192(%rax)9451; AVX512DQ-NEXT:    vmovdqa64 %zmm2, 64(%rax)9452; AVX512DQ-NEXT:    addq $1256, %rsp # imm = 0x4E89453; AVX512DQ-NEXT:    vzeroupper9454; AVX512DQ-NEXT:    retq9455;9456; AVX512DQ-FCP-LABEL: store_i8_stride7_vf64:9457; AVX512DQ-FCP:       # %bb.0:9458; AVX512DQ-FCP-NEXT:    subq $1448, %rsp # imm = 0x5A89459; AVX512DQ-FCP-NEXT:    vmovdqa (%rsi), %ymm89460; AVX512DQ-FCP-NEXT:    vpshufb {{.*#+}} ymm0 = zero,zero,zero,ymm8[14],zero,zero,zero,zero,zero,zero,ymm8[15],zero,zero,zero,zero,zero,zero,ymm8[16],zero,zero,zero,zero,zero,zero,ymm8[17],zero,zero,zero,zero,zero,zero,ymm8[18]9461; AVX512DQ-FCP-NEXT:    vmovdqa (%rdi), %ymm29462; AVX512DQ-FCP-NEXT:    vpshufb {{.*#+}} ymm1 = ymm2[0,1,14],zero,ymm2[12,13,0,1,14,15],zero,ymm2[3,12,13,2,3,16],zero,ymm2[30,31,28,29,16,17],zero,ymm2[31,18,19,28,29,18],zero9463; AVX512DQ-FCP-NEXT:    vmovdqa64 %ymm2, %ymm169464; AVX512DQ-FCP-NEXT:    vpor %ymm0, %ymm1, %ymm09465; AVX512DQ-FCP-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9466; AVX512DQ-FCP-NEXT:    vmovdqa (%rcx), %ymm79467; AVX512DQ-FCP-NEXT:    vmovdqa {{.*#+}} ymm2 = [128,128,128,128,128,14,128,128,128,128,128,128,15,128,128,128,128,128,128,16,128,128,128,128,128,128,17,128,128,128,128,128]9468; AVX512DQ-FCP-NEXT:    vpshufb %ymm2, %ymm7, %ymm09469; AVX512DQ-FCP-NEXT:    vmovdqa64 %ymm2, %ymm259470; AVX512DQ-FCP-NEXT:    vmovdqa (%rdx), %ymm149471; AVX512DQ-FCP-NEXT:    vmovdqa {{.*#+}} ymm3 = [0,1,0,1,14,128,14,15,0,1,14,15,128,13,14,15,16,17,16,128,30,31,30,31,16,17,128,31,28,29,30,31]9472; AVX512DQ-FCP-NEXT:    vpshufb %ymm3, %ymm14, %ymm19473; AVX512DQ-FCP-NEXT:    vmovdqa64 %ymm3, %ymm249474; AVX512DQ-FCP-NEXT:    vpor %ymm0, %ymm1, %ymm09475; AVX512DQ-FCP-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9476; AVX512DQ-FCP-NEXT:    vmovdqa (%r8), %ymm19477; AVX512DQ-FCP-NEXT:    vpshufb {{.*#+}} ymm0 = zero,zero,zero,zero,zero,zero,ymm1[14],zero,zero,zero,zero,zero,zero,ymm1[15],zero,zero,zero,zero,zero,zero,ymm1[16],zero,zero,zero,zero,zero,zero,ymm1[17],zero,zero,zero,zero9478; AVX512DQ-FCP-NEXT:    vmovdqa64 %ymm1, %ymm209479; AVX512DQ-FCP-NEXT:    vmovdqa (%r9), %ymm99480; AVX512DQ-FCP-NEXT:    vpshufb {{.*#+}} ymm1 = ymm9[13,u,u,u,u,u],zero,ymm9[14,u,u,u,u,u],zero,ymm9[15,u,u,u,u,u],zero,ymm9[16,u,u,u,u,u],zero,ymm9[17,u,u,u]9481; AVX512DQ-FCP-NEXT:    vpor %ymm0, %ymm1, %ymm09482; AVX512DQ-FCP-NEXT:    vmovdqu %ymm0, (%rsp) # 32-byte Spill9483; AVX512DQ-FCP-NEXT:    vmovdqa 32(%rsi), %ymm119484; AVX512DQ-FCP-NEXT:    vbroadcasti128 {{.*#+}} ymm6 = [128,128,128,30,128,28,128,128,128,128,31,128,29,128,128,128,128,128,128,30,128,28,128,128,128,128,31,128,29,128,128,128]9485; AVX512DQ-FCP-NEXT:    # ymm6 = mem[0,1,0,1]9486; AVX512DQ-FCP-NEXT:    vpshufb %ymm6, %ymm11, %ymm09487; AVX512DQ-FCP-NEXT:    vmovdqa 32(%rdi), %ymm59488; AVX512DQ-FCP-NEXT:    vbroadcasti128 {{.*#+}} ymm2 = [28,29,30,128,28,128,30,31,30,31,128,29,128,31,28,29,28,29,30,128,28,128,30,31,30,31,128,29,128,31,28,29]9489; AVX512DQ-FCP-NEXT:    # ymm2 = mem[0,1,0,1]9490; AVX512DQ-FCP-NEXT:    vpshufb %ymm2, %ymm5, %ymm19491; AVX512DQ-FCP-NEXT:    vmovdqa64 %ymm2, %ymm179492; AVX512DQ-FCP-NEXT:    vpor %ymm0, %ymm1, %ymm09493; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill9494; AVX512DQ-FCP-NEXT:    vpshufb {{.*#+}} ymm0 = ymm5[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,ymm5[23],zero,zero,zero,zero,ymm5[26],zero,ymm5[24],zero,zero,zero,zero,ymm5[27],zero,ymm5[25]9495; AVX512DQ-FCP-NEXT:    vpshufb {{.*#+}} ymm1 = ymm11[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,25],zero,ymm11[23,u,u,u],zero,ymm11[26],zero,ymm11[24,u,u,u],zero,ymm11[27],zero9496; AVX512DQ-FCP-NEXT:    vpor %ymm0, %ymm1, %ymm09497; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill9498; AVX512DQ-FCP-NEXT:    vmovdqa 32(%rdx), %ymm49499; AVX512DQ-FCP-NEXT:    vbroadcasti128 {{.*#+}} ymm0 = [128,128,128,128,30,128,28,128,128,128,128,31,128,29,128,128,128,128,128,128,30,128,28,128,128,128,128,31,128,29,128,128]9500; AVX512DQ-FCP-NEXT:    # ymm0 = mem[0,1,0,1]9501; AVX512DQ-FCP-NEXT:    vpshufb %ymm0, %ymm4, %ymm29502; AVX512DQ-FCP-NEXT:    vmovdqa64 %ymm0, %ymm199503; AVX512DQ-FCP-NEXT:    vmovdqa 32(%rcx), %ymm19504; AVX512DQ-FCP-NEXT:    vbroadcasti128 {{.*#+}} ymm10 = [27,0,0,0,128,30,128,28,0,0,0,128,31,128,29,0,27,0,0,0,128,30,128,28,0,0,0,128,31,128,29,0]9505; AVX512DQ-FCP-NEXT:    # ymm10 = mem[0,1,0,1]9506; AVX512DQ-FCP-NEXT:    vpshufb %ymm10, %ymm1, %ymm39507; AVX512DQ-FCP-NEXT:    vpor %ymm2, %ymm3, %ymm29508; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill9509; AVX512DQ-FCP-NEXT:    vpshufb {{.*#+}} ymm2 = ymm1[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,ymm1[25],zero,ymm1[23],zero,zero,zero,zero,ymm1[26],zero,ymm1[24],zero,zero,zero,zero9510; AVX512DQ-FCP-NEXT:    vpshufb {{.*#+}} ymm3 = ymm4[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,24,25],zero,ymm4[23],zero,ymm4[21,22,23,26],zero,ymm4[24],zero,ymm4[28,29,26,27]9511; AVX512DQ-FCP-NEXT:    vpor %ymm2, %ymm3, %ymm29512; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill9513; AVX512DQ-FCP-NEXT:    vmovdqa 32(%r8), %ymm39514; AVX512DQ-FCP-NEXT:    vbroadcasti128 {{.*#+}} ymm0 = [128,27,128,128,128,128,30,128,28,128,128,128,128,31,128,29,128,27,128,128,128,128,30,128,28,128,128,128,128,31,128,29]9515; AVX512DQ-FCP-NEXT:    # ymm0 = mem[0,1,0,1]9516; AVX512DQ-FCP-NEXT:    vpshufb %ymm0, %ymm3, %ymm129517; AVX512DQ-FCP-NEXT:    vmovdqa64 %ymm0, %ymm189518; AVX512DQ-FCP-NEXT:    vmovdqa 32(%r9), %ymm29519; AVX512DQ-FCP-NEXT:    vbroadcasti128 {{.*#+}} ymm0 = [29,128,27,0,0,0,128,30,128,28,0,0,0,128,31,128,29,128,27,0,0,0,128,30,128,28,0,0,0,128,31,128]9520; AVX512DQ-FCP-NEXT:    # ymm0 = mem[0,1,0,1]9521; AVX512DQ-FCP-NEXT:    vpshufb %ymm0, %ymm2, %ymm139522; AVX512DQ-FCP-NEXT:    vmovdqa64 %ymm0, %ymm229523; AVX512DQ-FCP-NEXT:    vpor %ymm12, %ymm13, %ymm129524; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill9525; AVX512DQ-FCP-NEXT:    vpshufb {{.*#+}} ymm12 = ymm2[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,zero,zero,ymm2[25],zero,ymm2[23],zero,zero,zero,zero,ymm2[26],zero,ymm2[24],zero,zero9526; AVX512DQ-FCP-NEXT:    vpshufb {{.*#+}} ymm13 = ymm3[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,24,25,24,25],zero,ymm3[23],zero,ymm3[23,24,25,26],zero,ymm3[24],zero,ymm3[30,31]9527; AVX512DQ-FCP-NEXT:    vpor %ymm12, %ymm13, %ymm129528; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill9529; AVX512DQ-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax9530; AVX512DQ-FCP-NEXT:    vmovdqa 32(%rax), %ymm159531; AVX512DQ-FCP-NEXT:    vbroadcasti128 {{.*#+}} ymm12 = [28,29,26,27,28,29,30,31,30,31,28,29,28,29,30,31,28,29,26,27,28,29,30,31,30,31,28,29,28,29,30,31]9532; AVX512DQ-FCP-NEXT:    # ymm12 = mem[0,1,0,1]9533; AVX512DQ-FCP-NEXT:    vpshufb %ymm12, %ymm15, %ymm139534; AVX512DQ-FCP-NEXT:    vmovdqu %ymm15, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9535; AVX512DQ-FCP-NEXT:    vpshufb {{.*#+}} ymm15 = ymm15[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,22,23,26,27,24,25,22,23,24,25,26,27,26,27,24,25]9536; AVX512DQ-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm13 = zmm15[2,3,2,3],zmm13[2,3,2,3]9537; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill9538; AVX512DQ-FCP-NEXT:    vpshufb %ymm6, %ymm8, %ymm69539; AVX512DQ-FCP-NEXT:    vmovdqa64 %ymm8, %ymm219540; AVX512DQ-FCP-NEXT:    vmovdqa64 %ymm16, %ymm139541; AVX512DQ-FCP-NEXT:    vmovdqa64 %ymm17, %ymm09542; AVX512DQ-FCP-NEXT:    vpshufb %ymm0, %ymm13, %ymm89543; AVX512DQ-FCP-NEXT:    vpor %ymm6, %ymm8, %ymm09544; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill9545; AVX512DQ-FCP-NEXT:    vmovdqa64 %ymm19, %ymm09546; AVX512DQ-FCP-NEXT:    vpshufb %ymm0, %ymm14, %ymm69547; AVX512DQ-FCP-NEXT:    vmovdqa64 %ymm14, %ymm199548; AVX512DQ-FCP-NEXT:    vpshufb %ymm10, %ymm7, %ymm89549; AVX512DQ-FCP-NEXT:    vmovdqa64 %ymm7, %ymm179550; AVX512DQ-FCP-NEXT:    vpor %ymm6, %ymm8, %ymm09551; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill9552; AVX512DQ-FCP-NEXT:    vmovdqa (%rax), %ymm09553; AVX512DQ-FCP-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9554; AVX512DQ-FCP-NEXT:    vpshufb %ymm12, %ymm0, %ymm69555; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm0 = [4,0,6,0,4,0,6,7,0,17,0,17,0,16,16,0]9556; AVX512DQ-FCP-NEXT:    vmovdqa 32(%rax), %xmm89557; AVX512DQ-FCP-NEXT:    vpshuflw {{.*#+}} xmm10 = xmm8[1,1,0,0,4,5,6,7]9558; AVX512DQ-FCP-NEXT:    vpermi2d %zmm10, %zmm6, %zmm09559; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill9560; AVX512DQ-FCP-NEXT:    vmovdqa64 %ymm20, %ymm149561; AVX512DQ-FCP-NEXT:    vmovdqa64 %ymm18, %ymm09562; AVX512DQ-FCP-NEXT:    vpshufb %ymm0, %ymm14, %ymm69563; AVX512DQ-FCP-NEXT:    vmovdqa64 %ymm22, %ymm09564; AVX512DQ-FCP-NEXT:    vpshufb %ymm0, %ymm9, %ymm79565; AVX512DQ-FCP-NEXT:    vmovdqa64 %ymm9, %ymm209566; AVX512DQ-FCP-NEXT:    vpor %ymm6, %ymm7, %ymm09567; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill9568; AVX512DQ-FCP-NEXT:    vmovdqa 32(%rdx), %xmm09569; AVX512DQ-FCP-NEXT:    vmovdqa 32(%rcx), %xmm79570; AVX512DQ-FCP-NEXT:    vmovdqa {{.*#+}} xmm9 = [u,u,u,128,7,128,5,u,u,u,128,8,128,6,u,u]9571; AVX512DQ-FCP-NEXT:    vpshufb %xmm9, %xmm7, %xmm69572; AVX512DQ-FCP-NEXT:    vmovdqa64 %xmm9, %xmm269573; AVX512DQ-FCP-NEXT:    vmovdqa64 %xmm7, %xmm169574; AVX512DQ-FCP-NEXT:    vmovdqa {{.*#+}} xmm9 = [u,u,u,7,128,5,128,u,u,u,8,128,6,128,u,u]9575; AVX512DQ-FCP-NEXT:    vpshufb %xmm9, %xmm0, %xmm79576; AVX512DQ-FCP-NEXT:    vmovdqa64 %xmm9, %xmm279577; AVX512DQ-FCP-NEXT:    vmovdqa64 %xmm0, %xmm309578; AVX512DQ-FCP-NEXT:    vpor %xmm6, %xmm7, %xmm09579; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill9580; AVX512DQ-FCP-NEXT:    vmovdqa 32(%rdi), %xmm09581; AVX512DQ-FCP-NEXT:    vmovdqa 32(%rsi), %xmm159582; AVX512DQ-FCP-NEXT:    vmovdqa {{.*#+}} xmm10 = [u,128,7,128,5,u,u,u,128,8,128,6,u,u,u,128]9583; AVX512DQ-FCP-NEXT:    vpshufb %xmm10, %xmm15, %xmm69584; AVX512DQ-FCP-NEXT:    vmovdqa {{.*#+}} xmm7 = [u,7,128,5,128,u,u,u,8,128,6,128,u,u,u,9]9585; AVX512DQ-FCP-NEXT:    vpshufb %xmm7, %xmm0, %xmm99586; AVX512DQ-FCP-NEXT:    vmovdqa64 %xmm0, %xmm289587; AVX512DQ-FCP-NEXT:    vpor %xmm6, %xmm9, %xmm09588; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill9589; AVX512DQ-FCP-NEXT:    vpshufhw {{.*#+}} xmm6 = xmm8[0,1,2,3,4,5,5,6]9590; AVX512DQ-FCP-NEXT:    vmovdqa {{.*#+}} xmm0 = [4,5,4,5,4,5,8,9,6,7,6,7,6,7,6,7]9591; AVX512DQ-FCP-NEXT:    vpshufb %xmm0, %xmm8, %xmm89592; AVX512DQ-FCP-NEXT:    vmovdqa64 %xmm0, %xmm189593; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm0 = [0,0,0,0,2,3,0,1,0,18,0,19,18,0,19,0]9594; AVX512DQ-FCP-NEXT:    vpermi2d %zmm6, %zmm8, %zmm09595; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill9596; AVX512DQ-FCP-NEXT:    vmovdqa 32(%r9), %xmm09597; AVX512DQ-FCP-NEXT:    vmovdqa 32(%r8), %xmm99598; AVX512DQ-FCP-NEXT:    vmovdqa {{.*#+}} xmm8 = [128,4,u,u,u,128,7,128,5,u,u,u,128,8,128,6]9599; AVX512DQ-FCP-NEXT:    vpshufb %xmm8, %xmm0, %xmm69600; AVX512DQ-FCP-NEXT:    vmovdqa64 %xmm8, %xmm239601; AVX512DQ-FCP-NEXT:    vmovdqa64 %xmm0, %xmm319602; AVX512DQ-FCP-NEXT:    vmovdqa {{.*#+}} xmm0 = [4,128,u,u,u,7,128,5,128,u,u,u,8,128,6,128]9603; AVX512DQ-FCP-NEXT:    vpshufb %xmm0, %xmm9, %xmm89604; AVX512DQ-FCP-NEXT:    vmovdqa64 %xmm0, %xmm229605; AVX512DQ-FCP-NEXT:    vpor %xmm6, %xmm8, %xmm09606; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill9607; AVX512DQ-FCP-NEXT:    vmovdqa64 %ymm25, %ymm09608; AVX512DQ-FCP-NEXT:    vpshufb %ymm0, %ymm1, %ymm69609; AVX512DQ-FCP-NEXT:    vmovdqa64 %ymm24, %ymm09610; AVX512DQ-FCP-NEXT:    vpshufb %ymm0, %ymm4, %ymm89611; AVX512DQ-FCP-NEXT:    vpor %ymm6, %ymm8, %ymm09612; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill9613; AVX512DQ-FCP-NEXT:    vpshufb {{.*#+}} ymm0 = ymm1[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,ymm1[18],zero,zero,zero,zero,ymm1[21],zero,ymm1[19],zero,zero,zero,zero,ymm1[22],zero,ymm1[20]9614; AVX512DQ-FCP-NEXT:    vpshufb {{.*#+}} ymm1 = ymm4[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,18],zero,ymm4[18,19,20,21],zero,ymm4[19],zero,ymm4[25,26,27,22],zero,ymm4[20],zero9615; AVX512DQ-FCP-NEXT:    vpor %ymm0, %ymm1, %ymm09616; AVX512DQ-FCP-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9617; AVX512DQ-FCP-NEXT:    vpshufb {{.*#+}} ymm0 = zero,zero,zero,ymm11[14],zero,zero,zero,zero,zero,zero,ymm11[15],zero,zero,zero,zero,zero,zero,ymm11[16],zero,zero,zero,zero,zero,zero,ymm11[17],zero,zero,zero,zero,zero,zero,ymm11[18]9618; AVX512DQ-FCP-NEXT:    vpshufb {{.*#+}} ymm1 = ymm5[0,1,14],zero,ymm5[12,13,0,1,14,15],zero,ymm5[3,12,13,2,3,16],zero,ymm5[30,31,28,29,16,17],zero,ymm5[31,18,19,28,29,18],zero9619; AVX512DQ-FCP-NEXT:    vpor %ymm0, %ymm1, %ymm09620; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill9621; AVX512DQ-FCP-NEXT:    vbroadcasti128 {{.*#+}} ymm0 = [128,128,128,128,21,128,19,128,128,128,128,22,128,20,128,128,128,128,128,128,21,128,19,128,128,128,128,22,128,20,128,128]9622; AVX512DQ-FCP-NEXT:    # ymm0 = mem[0,1,0,1]9623; AVX512DQ-FCP-NEXT:    vpshufb %ymm0, %ymm11, %ymm19624; AVX512DQ-FCP-NEXT:    vbroadcasti128 {{.*#+}} ymm6 = [18,19,20,21,128,19,128,21,20,21,22,128,20,128,22,23,18,19,20,21,128,19,128,21,20,21,22,128,20,128,22,23]9625; AVX512DQ-FCP-NEXT:    # ymm6 = mem[0,1,0,1]9626; AVX512DQ-FCP-NEXT:    vpshufb %ymm6, %ymm5, %ymm49627; AVX512DQ-FCP-NEXT:    vmovdqa64 %ymm6, %ymm249628; AVX512DQ-FCP-NEXT:    vpor %ymm1, %ymm4, %ymm19629; AVX512DQ-FCP-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9630; AVX512DQ-FCP-NEXT:    vpshufb {{.*#+}} ymm1 = ymm2[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,ymm2[20],zero,ymm2[18],zero,zero,zero,zero,ymm2[21],zero,ymm2[19],zero,zero,zero,zero,ymm2[22]9631; AVX512DQ-FCP-NEXT:    vpshufb {{.*#+}} ymm4 = ymm3[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,20],zero,ymm3[18],zero,ymm3[20,21,20,21],zero,ymm3[19],zero,ymm3[19,20,21,22],zero9632; AVX512DQ-FCP-NEXT:    vpor %ymm1, %ymm4, %ymm19633; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill9634; AVX512DQ-FCP-NEXT:    vpshufb {{.*#+}} ymm1 = zero,zero,zero,zero,zero,zero,ymm3[14],zero,zero,zero,zero,zero,zero,ymm3[15],zero,zero,zero,zero,zero,zero,ymm3[16],zero,zero,zero,zero,zero,zero,ymm3[17],zero,zero,zero,zero9635; AVX512DQ-FCP-NEXT:    vpshufb {{.*#+}} ymm2 = ymm2[13,u,u,u,u,u],zero,ymm2[14,u,u,u,u,u],zero,ymm2[15,u,u,u,u,u],zero,ymm2[16,u,u,u,u,u],zero,ymm2[17,u,u,u]9636; AVX512DQ-FCP-NEXT:    vpor %ymm1, %ymm2, %ymm19637; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill9638; AVX512DQ-FCP-NEXT:    vmovdqa (%rsi), %xmm129639; AVX512DQ-FCP-NEXT:    vpshufb %xmm10, %xmm12, %xmm19640; AVX512DQ-FCP-NEXT:    vmovdqa (%rdi), %xmm89641; AVX512DQ-FCP-NEXT:    vpshufb %xmm7, %xmm8, %xmm29642; AVX512DQ-FCP-NEXT:    vpor %xmm1, %xmm2, %xmm19643; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill9644; AVX512DQ-FCP-NEXT:    vmovdqa (%rcx), %xmm119645; AVX512DQ-FCP-NEXT:    vmovdqa64 %xmm26, %xmm19646; AVX512DQ-FCP-NEXT:    vpshufb %xmm1, %xmm11, %xmm19647; AVX512DQ-FCP-NEXT:    vmovdqa (%rdx), %xmm69648; AVX512DQ-FCP-NEXT:    vmovdqa64 %xmm27, %xmm29649; AVX512DQ-FCP-NEXT:    vpshufb %xmm2, %xmm6, %xmm29650; AVX512DQ-FCP-NEXT:    vpor %xmm1, %xmm2, %xmm19651; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill9652; AVX512DQ-FCP-NEXT:    vmovdqa (%rax), %xmm109653; AVX512DQ-FCP-NEXT:    vmovdqa64 %xmm18, %xmm19654; AVX512DQ-FCP-NEXT:    vpshufb %xmm1, %xmm10, %xmm19655; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm18 = [0,1,0,1,0,0,0,0,16,0,16,0,18,19,0,17]9656; AVX512DQ-FCP-NEXT:    vpshuflw {{.*#+}} xmm2 = xmm10[1,1,0,0,4,5,6,7]9657; AVX512DQ-FCP-NEXT:    vpermi2d %zmm1, %zmm2, %zmm189658; AVX512DQ-FCP-NEXT:    vmovdqa (%r9), %xmm79659; AVX512DQ-FCP-NEXT:    vmovdqa64 %xmm23, %xmm19660; AVX512DQ-FCP-NEXT:    vpshufb %xmm1, %xmm7, %xmm39661; AVX512DQ-FCP-NEXT:    vmovdqa (%r8), %xmm59662; AVX512DQ-FCP-NEXT:    vmovdqa64 %xmm22, %xmm19663; AVX512DQ-FCP-NEXT:    vpshufb %xmm1, %xmm5, %xmm49664; AVX512DQ-FCP-NEXT:    vporq %xmm3, %xmm4, %xmm269665; AVX512DQ-FCP-NEXT:    vpshufb {{.*#+}} ymm3 = ymm13[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,ymm13[23],zero,zero,zero,zero,ymm13[26],zero,ymm13[24],zero,zero,zero,zero,ymm13[27],zero,ymm13[25]9666; AVX512DQ-FCP-NEXT:    vmovdqa64 %ymm21, %ymm19667; AVX512DQ-FCP-NEXT:    vpshufb {{.*#+}} ymm4 = ymm1[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,25],zero,ymm1[23,u,u,u],zero,ymm1[26],zero,ymm1[24,u,u,u],zero,ymm1[27],zero9668; AVX512DQ-FCP-NEXT:    vporq %ymm3, %ymm4, %ymm259669; AVX512DQ-FCP-NEXT:    vpshufb %ymm0, %ymm1, %ymm09670; AVX512DQ-FCP-NEXT:    vmovdqa64 %ymm24, %ymm19671; AVX512DQ-FCP-NEXT:    vpshufb %ymm1, %ymm13, %ymm39672; AVX512DQ-FCP-NEXT:    vporq %ymm0, %ymm3, %ymm249673; AVX512DQ-FCP-NEXT:    vmovdqa64 %ymm17, %ymm19674; AVX512DQ-FCP-NEXT:    vpshufb {{.*#+}} ymm0 = ymm1[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,ymm1[25],zero,ymm1[23],zero,zero,zero,zero,ymm1[26],zero,ymm1[24],zero,zero,zero,zero9675; AVX512DQ-FCP-NEXT:    vmovdqa64 %ymm19, %ymm49676; AVX512DQ-FCP-NEXT:    vpshufb {{.*#+}} ymm3 = ymm4[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,24,25],zero,ymm4[23],zero,ymm4[21,22,23,26],zero,ymm4[24],zero,ymm4[28,29,26,27]9677; AVX512DQ-FCP-NEXT:    vporq %ymm0, %ymm3, %ymm239678; AVX512DQ-FCP-NEXT:    vpshufb {{.*#+}} ymm0 = ymm1[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,ymm1[18],zero,zero,zero,zero,ymm1[21],zero,ymm1[19],zero,zero,zero,zero,ymm1[22],zero,ymm1[20]9679; AVX512DQ-FCP-NEXT:    vpshufb {{.*#+}} ymm3 = ymm4[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,18],zero,ymm4[18,19,20,21],zero,ymm4[19],zero,ymm4[25,26,27,22],zero,ymm4[20],zero9680; AVX512DQ-FCP-NEXT:    vporq %ymm0, %ymm3, %ymm229681; AVX512DQ-FCP-NEXT:    vmovdqa64 %ymm20, %ymm19682; AVX512DQ-FCP-NEXT:    vpshufb {{.*#+}} ymm0 = ymm1[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,zero,zero,ymm1[25],zero,ymm1[23],zero,zero,zero,zero,ymm1[26],zero,ymm1[24],zero,zero9683; AVX512DQ-FCP-NEXT:    vpshufb {{.*#+}} ymm3 = ymm1[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,ymm1[20],zero,ymm1[18],zero,zero,zero,zero,ymm1[21],zero,ymm1[19],zero,zero,zero,zero,ymm1[22]9684; AVX512DQ-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm20 = zmm3[2,3,2,3],zmm0[2,3,2,3]9685; AVX512DQ-FCP-NEXT:    vpshufb {{.*#+}} ymm0 = ymm14[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,24,25,24,25],zero,ymm14[23],zero,ymm14[23,24,25,26],zero,ymm14[24],zero,ymm14[30,31]9686; AVX512DQ-FCP-NEXT:    vpshufb {{.*#+}} ymm3 = ymm14[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,20],zero,ymm14[18],zero,ymm14[20,21,20,21],zero,ymm14[19],zero,ymm14[19,20,21,22],zero9687; AVX512DQ-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm19 = zmm3[2,3,2,3],zmm0[2,3,2,3]9688; AVX512DQ-FCP-NEXT:    vpshufhw {{.*#+}} xmm0 = xmm10[0,1,2,3,4,5,5,6]9689; AVX512DQ-FCP-NEXT:    vbroadcasti128 {{.*#+}} ymm3 = [2,2,3,3,2,2,3,3]9690; AVX512DQ-FCP-NEXT:    # ymm3 = mem[0,1,0,1]9691; AVX512DQ-FCP-NEXT:    vpermd %ymm0, %ymm3, %ymm09692; AVX512DQ-FCP-NEXT:    vpand {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm0, %ymm09693; AVX512DQ-FCP-NEXT:    vmovdqa {{.*#+}} ymm1 = [128,13,128,128,128,128,128,128,14,128,128,128,128,128,128,15,128,128,128,128,128,128,16,128,128,128,128,128,128,17,128,128]9694; AVX512DQ-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm13 # 32-byte Reload9695; AVX512DQ-FCP-NEXT:    vpshufb %ymm1, %ymm13, %ymm39696; AVX512DQ-FCP-NEXT:    vmovdqa64 %ymm1, %ymm299697; AVX512DQ-FCP-NEXT:    vinserti64x4 $1, %ymm3, %zmm0, %zmm149698; AVX512DQ-FCP-NEXT:    vmovdqa64 %xmm28, %xmm29699; AVX512DQ-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm0 = xmm2[0],xmm15[0],xmm2[1],xmm15[1],xmm2[2],xmm15[2],xmm2[3],xmm15[3],xmm2[4],xmm15[4],xmm2[5],xmm15[5],xmm2[6],xmm15[6],xmm2[7],xmm15[7]9700; AVX512DQ-FCP-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[0,1,u,u,u,6,7,2,3,u,u,u,8,9,4,5]9701; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload9702; AVX512DQ-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm21 = zmm1[2,3,2,3],zmm0[0,1,0,1]9703; AVX512DQ-FCP-NEXT:    vmovdqa64 %xmm30, %xmm49704; AVX512DQ-FCP-NEXT:    vmovdqa64 %xmm16, %xmm109705; AVX512DQ-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm0 = xmm4[0],xmm10[0],xmm4[1],xmm10[1],xmm4[2],xmm10[2],xmm4[3],xmm10[3],xmm4[4],xmm10[4],xmm4[5],xmm10[5],xmm4[6],xmm10[6],xmm4[7],xmm10[7]9706; AVX512DQ-FCP-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[4,5,0,1,u,u,u,6,7,2,3,u,u,u,8,9]9707; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload9708; AVX512DQ-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm16 = zmm1[2,3,2,3],zmm0[0,1,0,1]9709; AVX512DQ-FCP-NEXT:    vmovdqa64 %xmm31, %xmm19710; AVX512DQ-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm3 = xmm9[0],xmm1[0],xmm9[1],xmm1[1],xmm9[2],xmm1[2],xmm9[3],xmm1[3],xmm9[4],xmm1[4],xmm9[5],xmm1[5],xmm9[6],xmm1[6],xmm9[7],xmm1[7]9711; AVX512DQ-FCP-NEXT:    vmovdqa {{.*#+}} xmm0 = [u,u,4,5,0,1,u,u,u,6,7,2,3,u,u,u]9712; AVX512DQ-FCP-NEXT:    vpshufb %xmm0, %xmm3, %xmm39713; AVX512DQ-FCP-NEXT:    vmovdqa64 %xmm0, %xmm279714; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload9715; AVX512DQ-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm30 = zmm0[2,3,2,3],zmm3[0,1,0,1]9716; AVX512DQ-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm3 = xmm10[8],xmm4[8],xmm10[9],xmm4[9],xmm10[10],xmm4[10],xmm10[11],xmm4[11],xmm10[12],xmm4[12],xmm10[13],xmm4[13],xmm10[14],xmm4[14],xmm10[15],xmm4[15]9717; AVX512DQ-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm4 = xmm11[8],xmm6[8],xmm11[9],xmm6[9],xmm11[10],xmm6[10],xmm11[11],xmm6[11],xmm11[12],xmm6[12],xmm11[13],xmm6[13],xmm11[14],xmm6[14],xmm11[15],xmm6[15]9718; AVX512DQ-FCP-NEXT:    vmovdqa {{.*#+}} xmm0 = [6,3,2,u,u,u,9,8,5,4,u,u,u,11,10,7]9719; AVX512DQ-FCP-NEXT:    vpshufb %xmm0, %xmm4, %xmm109720; AVX512DQ-FCP-NEXT:    vpshufb %xmm0, %xmm3, %xmm09721; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload9722; AVX512DQ-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm17 = zmm3[0,1,0,1],zmm0[0,1,0,1]9723; AVX512DQ-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm3 = xmm15[8],xmm2[8],xmm15[9],xmm2[9],xmm15[10],xmm2[10],xmm15[11],xmm2[11],xmm15[12],xmm2[12],xmm15[13],xmm2[13],xmm15[14],xmm2[14],xmm15[15],xmm2[15]9724; AVX512DQ-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm4 = xmm12[8],xmm8[8],xmm12[9],xmm8[9],xmm12[10],xmm8[10],xmm12[11],xmm8[11],xmm12[12],xmm8[12],xmm12[13],xmm8[13],xmm12[14],xmm8[14],xmm12[15],xmm8[15]9725; AVX512DQ-FCP-NEXT:    vmovdqa {{.*#+}} xmm15 = [2,u,u,u,9,8,5,4,u,u,u,11,10,7,6,u]9726; AVX512DQ-FCP-NEXT:    vpshufb %xmm15, %xmm4, %xmm49727; AVX512DQ-FCP-NEXT:    vpshufb %xmm15, %xmm3, %xmm39728; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload9729; AVX512DQ-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm31 = zmm0[0,1,0,1],zmm3[0,1,0,1]9730; AVX512DQ-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm9 = xmm9[8],xmm1[8],xmm9[9],xmm1[9],xmm9[10],xmm1[10],xmm9[11],xmm1[11],xmm9[12],xmm1[12],xmm9[13],xmm1[13],xmm9[14],xmm1[14],xmm9[15],xmm1[15]9731; AVX512DQ-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm3 = xmm5[8],xmm7[8],xmm5[9],xmm7[9],xmm5[10],xmm7[10],xmm5[11],xmm7[11],xmm5[12],xmm7[12],xmm5[13],xmm7[13],xmm5[14],xmm7[14],xmm5[15],xmm7[15]9732; AVX512DQ-FCP-NEXT:    vmovdqa {{.*#+}} xmm0 = [u,6,7,2,3,u,u,u,8,9,4,5,u,u,u,10]9733; AVX512DQ-FCP-NEXT:    vpshufb %xmm0, %xmm3, %xmm39734; AVX512DQ-FCP-NEXT:    vpshufb %xmm0, %xmm9, %xmm09735; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload9736; AVX512DQ-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm9 = zmm2[0,1,0,1],zmm0[0,1,0,1]9737; AVX512DQ-FCP-NEXT:    vpshufb {{.*#+}} ymm0 = ymm13[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,22,23,26,27,24,25,22,23,24,25,26,27,26,27,24,25]9738; AVX512DQ-FCP-NEXT:    vpshuflw {{.*#+}} ymm15 = ymm13[2,1,1,2,4,5,6,7,10,9,9,10,12,13,14,15]9739; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm28 = [0,5,4,0,5,0,4,0,20,21,0,23,0,21,0,23]9740; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm28, %zmm159741; AVX512DQ-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm13 # 32-byte Reload9742; AVX512DQ-FCP-NEXT:    vmovdqa64 %ymm29, %ymm09743; AVX512DQ-FCP-NEXT:    vpshufb %ymm0, %ymm13, %ymm09744; AVX512DQ-FCP-NEXT:    vpshuflw {{.*#+}} ymm13 = ymm13[2,1,1,2,4,5,6,7,10,9,9,10,12,13,14,15]9745; AVX512DQ-FCP-NEXT:    vpermd %ymm13, %ymm28, %ymm139746; AVX512DQ-FCP-NEXT:    vpand {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm13, %ymm139747; AVX512DQ-FCP-NEXT:    vinserti64x4 $1, %ymm13, %zmm0, %zmm09748; AVX512DQ-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm8 = xmm8[0],xmm12[0],xmm8[1],xmm12[1],xmm8[2],xmm12[2],xmm8[3],xmm12[3],xmm8[4],xmm12[4],xmm8[5],xmm12[5],xmm8[6],xmm12[6],xmm8[7],xmm12[7]9749; AVX512DQ-FCP-NEXT:    vpshufb {{.*#+}} xmm8 = xmm8[0,1,u,u,u,6,7,2,3,u,u,u,8,9,4,5]9750; AVX512DQ-FCP-NEXT:    vshufi64x2 $0, {{[-0-9]+}}(%r{{[sb]}}p), %zmm8, %zmm8 # 64-byte Folded Reload9751; AVX512DQ-FCP-NEXT:    # zmm8 = zmm8[0,1,0,1],mem[0,1,0,1]9752; AVX512DQ-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm6 = xmm6[0],xmm11[0],xmm6[1],xmm11[1],xmm6[2],xmm11[2],xmm6[3],xmm11[3],xmm6[4],xmm11[4],xmm6[5],xmm11[5],xmm6[6],xmm11[6],xmm6[7],xmm11[7]9753; AVX512DQ-FCP-NEXT:    vpshufb {{.*#+}} xmm6 = xmm6[4,5,0,1,u,u,u,6,7,2,3,u,u,u,8,9]9754; AVX512DQ-FCP-NEXT:    vshufi64x2 $0, {{[-0-9]+}}(%r{{[sb]}}p), %zmm6, %zmm6 # 64-byte Folded Reload9755; AVX512DQ-FCP-NEXT:    # zmm6 = zmm6[0,1,0,1],mem[0,1,0,1]9756; AVX512DQ-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm2 = xmm5[0],xmm7[0],xmm5[1],xmm7[1],xmm5[2],xmm7[2],xmm5[3],xmm7[3],xmm5[4],xmm7[4],xmm5[5],xmm7[5],xmm5[6],xmm7[6],xmm5[7],xmm7[7]9757; AVX512DQ-FCP-NEXT:    vmovdqa64 %xmm27, %xmm19758; AVX512DQ-FCP-NEXT:    vpshufb %xmm1, %xmm2, %xmm29759; AVX512DQ-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm2 = zmm2[0,1,0,1],zmm26[0,1,0,1]9760; AVX512DQ-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm5 = zmm24[2,3,2,3],zmm25[2,3,2,3]9761; AVX512DQ-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm7 = zmm22[2,3,2,3],zmm23[2,3,2,3]9762; AVX512DQ-FCP-NEXT:    vmovdqa64 {{.*#+}} zmm12 = [255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0,0,255]9763; AVX512DQ-FCP-NEXT:    vpternlogq {{.*#+}} zmm7 = zmm5 ^ (zmm12 & (zmm7 ^ zmm5))9764; AVX512DQ-FCP-NEXT:    vporq %zmm20, %zmm19, %zmm59765; AVX512DQ-FCP-NEXT:    vpternlogq {{.*#+}} zmm15 = zmm15 ^ (mem & (zmm15 ^ zmm5))9766; AVX512DQ-FCP-NEXT:    vpternlogq {{.*#+}} zmm15 = zmm15 ^ (mem & (zmm15 ^ zmm7))9767; AVX512DQ-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax9768; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm15, 128(%rax)9769; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload9770; AVX512DQ-FCP-NEXT:    vshufi64x2 $85, {{[-0-9]+}}(%r{{[sb]}}p), %zmm5, %zmm5 # 64-byte Folded Reload9771; AVX512DQ-FCP-NEXT:    # zmm5 = zmm5[2,3,2,3],mem[2,3,2,3]9772; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload9773; AVX512DQ-FCP-NEXT:    vshufi64x2 $85, {{[-0-9]+}}(%r{{[sb]}}p), %zmm7, %zmm7 # 64-byte Folded Reload9774; AVX512DQ-FCP-NEXT:    # zmm7 = zmm7[2,3,2,3],mem[2,3,2,3]9775; AVX512DQ-FCP-NEXT:    vpermq {{.*#+}} ymm4 = ymm4[0,1,0,1]9776; AVX512DQ-FCP-NEXT:    vpermq {{.*#+}} ymm10 = ymm10[0,1,0,1]9777; AVX512DQ-FCP-NEXT:    vpermq {{.*#+}} ymm3 = ymm3[0,1,0,1]9778; AVX512DQ-FCP-NEXT:    vpternlogq {{.*#+}} zmm7 = zmm7 ^ (mem & (zmm7 ^ zmm5))9779; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload9780; AVX512DQ-FCP-NEXT:    vshufi64x2 $85, {{[-0-9]+}}(%r{{[sb]}}p), %zmm5, %zmm5 # 64-byte Folded Reload9781; AVX512DQ-FCP-NEXT:    # zmm5 = zmm5[2,3,2,3],mem[2,3,2,3]9782; AVX512DQ-FCP-NEXT:    vpternlogq {{.*#+}} zmm5 = zmm5 ^ (zmm12 & (zmm5 ^ zmm7))9783; AVX512DQ-FCP-NEXT:    vpternlogq {{.*#+}} zmm31 = zmm17 ^ (zmm12 & (zmm31 ^ zmm17))9784; AVX512DQ-FCP-NEXT:    vmovdqa64 {{.*#+}} zmm7 = [255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255]9785; AVX512DQ-FCP-NEXT:    vpternlogq {{.*#+}} zmm16 = zmm21 ^ (zmm7 & (zmm16 ^ zmm21))9786; AVX512DQ-FCP-NEXT:    vpermq $238, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Folded Reload9787; AVX512DQ-FCP-NEXT:    # ymm11 = mem[2,3,2,3]9788; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload9789; AVX512DQ-FCP-NEXT:    vinserti64x4 $1, %ymm11, %zmm12, %zmm119790; AVX512DQ-FCP-NEXT:    vpermq $238, {{[-0-9]+}}(%r{{[sb]}}p), %ymm12 # 32-byte Folded Reload9791; AVX512DQ-FCP-NEXT:    # ymm12 = mem[2,3,2,3]9792; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm13 # 64-byte Reload9793; AVX512DQ-FCP-NEXT:    vinserti64x4 $1, %ymm12, %zmm13, %zmm129794; AVX512DQ-FCP-NEXT:    vpternlogq {{.*#+}} zmm12 = zmm11 ^ (zmm7 & (zmm12 ^ zmm11))9795; AVX512DQ-FCP-NEXT:    vinserti64x4 $1, {{[-0-9]+}}(%r{{[sb]}}p), %zmm4, %zmm4 # 32-byte Folded Reload9796; AVX512DQ-FCP-NEXT:    vinserti64x4 $1, {{[-0-9]+}}(%r{{[sb]}}p), %zmm10, %zmm7 # 32-byte Folded Reload9797; AVX512DQ-FCP-NEXT:    vpternlogq {{.*#+}} zmm7 = zmm7 ^ (mem & (zmm7 ^ zmm4))9798; AVX512DQ-FCP-NEXT:    vinserti64x4 $1, (%rsp), %zmm3, %zmm3 # 32-byte Folded Reload9799; AVX512DQ-FCP-NEXT:    vpternlogq {{.*#+}} zmm14 = zmm14 | (zmm3 & mem)9800; AVX512DQ-FCP-NEXT:    vpternlogq {{.*#+}} zmm14 = zmm14 ^ (mem & (zmm14 ^ zmm7))9801; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload9802; AVX512DQ-FCP-NEXT:    vpternlogq {{.*#+}} zmm3 = zmm3 ^ (mem & (zmm3 ^ zmm5))9803; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload9804; AVX512DQ-FCP-NEXT:    vpternlogq {{.*#+}} zmm30 = zmm4 ^ (mem & (zmm30 ^ zmm4))9805; AVX512DQ-FCP-NEXT:    vpternlogq {{.*#+}} zmm30 = zmm30 ^ (mem & (zmm30 ^ zmm16))9806; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload9807; AVX512DQ-FCP-NEXT:    vpternlogq {{.*#+}} zmm9 = zmm1 ^ (mem & (zmm9 ^ zmm1))9808; AVX512DQ-FCP-NEXT:    vpternlogq {{.*#+}} zmm9 = zmm9 ^ (mem & (zmm9 ^ zmm31))9809; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload9810; AVX512DQ-FCP-NEXT:    vshufi64x2 $84, {{[-0-9]+}}(%r{{[sb]}}p), %zmm1, %zmm1 # 64-byte Folded Reload9811; AVX512DQ-FCP-NEXT:    # zmm1 = zmm1[0,1,2,3],mem[2,3,2,3]9812; AVX512DQ-FCP-NEXT:    vpternlogq {{.*#+}} zmm0 = zmm0 | (zmm1 & mem)9813; AVX512DQ-FCP-NEXT:    vpternlogq {{.*#+}} zmm0 = zmm0 ^ (mem & (zmm0 ^ zmm12))9814; AVX512DQ-FCP-NEXT:    vpternlogq {{.*#+}} zmm6 = zmm6 ^ (mem & (zmm6 ^ zmm8))9815; AVX512DQ-FCP-NEXT:    vpternlogq {{.*#+}} zmm2 = zmm18 ^ (mem & (zmm2 ^ zmm18))9816; AVX512DQ-FCP-NEXT:    vpternlogq {{.*#+}} zmm2 = zmm2 ^ (mem & (zmm2 ^ zmm6))9817; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm2, (%rax)9818; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, 320(%rax)9819; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm9, 256(%rax)9820; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm30, 192(%rax)9821; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm3, 384(%rax)9822; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm14, 64(%rax)9823; AVX512DQ-FCP-NEXT:    addq $1448, %rsp # imm = 0x5A89824; AVX512DQ-FCP-NEXT:    vzeroupper9825; AVX512DQ-FCP-NEXT:    retq9826;9827; AVX512BW-LABEL: store_i8_stride7_vf64:9828; AVX512BW:       # %bb.0:9829; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax9830; AVX512BW-NEXT:    vmovdqa64 (%rax), %zmm149831; AVX512BW-NEXT:    vmovdqa64 32(%rdx), %ymm169832; AVX512BW-NEXT:    vmovdqa {{.*#+}} ymm2 = [0,1,0,1,14,128,14,15,0,1,14,15,128,13,14,15,16,17,16,128,30,31,30,31,16,17,128,31,28,29,30,31]9833; AVX512BW-NEXT:    vpshufb %ymm2, %ymm16, %ymm19834; AVX512BW-NEXT:    vmovdqa64 32(%rcx), %ymm189835; AVX512BW-NEXT:    vmovdqa {{.*#+}} ymm3 = [128,128,128,128,128,14,128,128,128,128,128,128,15,128,128,128,128,128,128,16,128,128,128,128,128,128,17,128,128,128,128,128]9836; AVX512BW-NEXT:    vpshufb %ymm3, %ymm18, %ymm49837; AVX512BW-NEXT:    vpor %ymm1, %ymm4, %ymm19838; AVX512BW-NEXT:    vmovdqa64 {{.*#+}} zmm0 = [128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,18,128,18,19,20,21,128,19,128,25,26,27,22,128,20,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,24,25,128,23,128,21,22,23,26,128,24,128,28,29,26,27]9839; AVX512BW-NEXT:    vpshufb %ymm0, %ymm16, %ymm49840; AVX512BW-NEXT:    vmovdqa64 {{.*#+}} zmm0 = [u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,128,18,128,128,128,128,21,128,19,128,128,128,128,22,128,20,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,128,128,25,128,23,128,128,128,128,26,128,24,128,128,128,128]9841; AVX512BW-NEXT:    vpshufb %ymm0, %ymm18, %ymm59842; AVX512BW-NEXT:    vpor %ymm4, %ymm5, %ymm49843; AVX512BW-NEXT:    vpermq {{.*#+}} ymm4 = ymm4[2,3,2,3]9844; AVX512BW-NEXT:    vinserti64x4 $1, %ymm4, %zmm1, %zmm49845; AVX512BW-NEXT:    vmovdqa64 32(%rsi), %ymm249846; AVX512BW-NEXT:    vmovdqa64 32(%rdi), %ymm239847; AVX512BW-NEXT:    vpshuflw {{.*#+}} ymm1 = ymm23[1,2,2,3,4,5,6,7,9,10,10,11,12,13,14,15]9848; AVX512BW-NEXT:    vpshufd {{.*#+}} ymm1 = ymm1[0,0,1,1,4,4,5,5]9849; AVX512BW-NEXT:    movl $676341840, %r10d # imm = 0x285028509850; AVX512BW-NEXT:    kmovd %r10d, %k19851; AVX512BW-NEXT:    vpshufb {{.*#+}} ymm1 {%k1} = ymm24[u,u,u,u,5,u,3,u,u,u,u,6,u,4,u,u,u,u,u,u,21,u,19,u,u,u,u,22,u,20,u,u]9852; AVX512BW-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[2,3,2,3]9853; AVX512BW-NEXT:    vmovdqa {{.*#+}} ymm8 = [0,1,14,128,12,13,0,1,14,15,128,3,12,13,2,3,16,128,30,31,28,29,16,17,128,31,18,19,28,29,18,128]9854; AVX512BW-NEXT:    vpshufb %ymm8, %ymm23, %ymm59855; AVX512BW-NEXT:    vmovdqa {{.*#+}} ymm10 = [128,128,128,14,128,128,128,128,128,128,15,128,128,128,128,128,128,16,128,128,128,128,128,128,17,128,128,128,128,128,128,18]9856; AVX512BW-NEXT:    vpshufb %ymm10, %ymm24, %ymm69857; AVX512BW-NEXT:    vpor %ymm5, %ymm6, %ymm59858; AVX512BW-NEXT:    vinserti64x4 $1, %ymm1, %zmm5, %zmm69859; AVX512BW-NEXT:    movabsq $3485998880071096368, %r10 # imm = 0x3060C183060C18309860; AVX512BW-NEXT:    kmovq %r10, %k29861; AVX512BW-NEXT:    vmovdqu8 %zmm4, %zmm6 {%k2}9862; AVX512BW-NEXT:    vmovdqa 32(%r9), %ymm49863; AVX512BW-NEXT:    vmovdqa {{.*#+}} ymm5 = [13,128,128,128,128,128,128,14,128,128,128,128,128,128,15,128,128,128,128,128,128,16,128,128,128,128,128,128,17,128,128,128]9864; AVX512BW-NEXT:    vpshufb %ymm5, %ymm4, %ymm79865; AVX512BW-NEXT:    vmovdqa 32(%r8), %ymm99866; AVX512BW-NEXT:    vmovdqa {{.*#+}} ymm1 = [128,128,128,128,128,128,14,128,128,128,128,128,128,15,128,128,128,128,128,128,16,128,128,128,128,128,128,17,128,128,128,128]9867; AVX512BW-NEXT:    vpshufb %ymm1, %ymm9, %ymm119868; AVX512BW-NEXT:    vpor %ymm7, %ymm11, %ymm119869; AVX512BW-NEXT:    vmovdqa64 {{.*#+}} zmm0 = [128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,20,128,18,128,20,21,20,21,128,19,128,19,20,21,22,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,24,25,24,25,128,23,128,23,24,25,26,128,24,128,30,31]9870; AVX512BW-NEXT:    vpshufb %ymm0, %ymm9, %ymm99871; AVX512BW-NEXT:    vmovdqa64 {{.*#+}} zmm0 = [u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,128,20,128,18,128,128,128,128,21,128,19,128,128,128,128,22,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,128,128,128,128,25,128,23,128,128,128,128,26,128,24,128,128]9872; AVX512BW-NEXT:    vpshufb %ymm0, %ymm4, %ymm49873; AVX512BW-NEXT:    vpor %ymm4, %ymm9, %ymm49874; AVX512BW-NEXT:    vpermq {{.*#+}} ymm4 = ymm4[2,3,2,3]9875; AVX512BW-NEXT:    vinserti64x4 $1, %ymm4, %zmm11, %zmm49876; AVX512BW-NEXT:    vmovdqa 32(%rax), %ymm119877; AVX512BW-NEXT:    vpmovsxbw {{.*#+}} zmm0 = [10,9,9,10,10,9,9,10,9,10,14,15,10,9,9,10,11,13,12,11,12,13,13,12,11,13,12,11,12,13,13,12]9878; AVX512BW-NEXT:    vpermw %ymm11, %ymm0, %ymm129879; AVX512BW-NEXT:    vpshufb {{.*#+}} ymm11 = ymm11[12,13,2,3,12,13,0,1,14,15,2,3,0,1,14,15,28,29,18,19,28,29,16,17,30,31,18,19,16,17,30,31]9880; AVX512BW-NEXT:    vinserti64x4 $1, %ymm12, %zmm11, %zmm119881; AVX512BW-NEXT:    movabsq $145249953336295682, %rax # imm = 0x2040810204081029882; AVX512BW-NEXT:    kmovq %rax, %k39883; AVX512BW-NEXT:    vmovdqu8 %zmm11, %zmm4 {%k3}9884; AVX512BW-NEXT:    movabsq $-4357498600088870461, %rax # imm = 0xC3870E1C3870E1C39885; AVX512BW-NEXT:    kmovq %rax, %k39886; AVX512BW-NEXT:    vmovdqu8 %zmm4, %zmm6 {%k3}9887; AVX512BW-NEXT:    vmovdqa (%rdi), %ymm139888; AVX512BW-NEXT:    vpshufb %ymm8, %ymm13, %ymm49889; AVX512BW-NEXT:    vmovdqa (%rsi), %ymm159890; AVX512BW-NEXT:    vpshufb %ymm10, %ymm15, %ymm89891; AVX512BW-NEXT:    vpor %ymm4, %ymm8, %ymm49892; AVX512BW-NEXT:    vmovdqa64 (%rdi), %xmm259893; AVX512BW-NEXT:    vmovdqa 32(%rdi), %xmm89894; AVX512BW-NEXT:    vmovdqa64 (%rsi), %xmm269895; AVX512BW-NEXT:    vmovdqa 32(%rsi), %xmm109896; AVX512BW-NEXT:    vpunpckhbw {{.*#+}} xmm12 = xmm26[8],xmm25[8],xmm26[9],xmm25[9],xmm26[10],xmm25[10],xmm26[11],xmm25[11],xmm26[12],xmm25[12],xmm26[13],xmm25[13],xmm26[14],xmm25[14],xmm26[15],xmm25[15]9897; AVX512BW-NEXT:    vmovdqa {{.*#+}} xmm11 = [2,u,u,u,9,8,5,4,u,u,u,11,10,7,6,u]9898; AVX512BW-NEXT:    vpshufb %xmm11, %xmm12, %xmm129899; AVX512BW-NEXT:    vpermq {{.*#+}} ymm12 = ymm12[0,1,0,1]9900; AVX512BW-NEXT:    vinserti64x4 $1, %ymm4, %zmm12, %zmm49901; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm17 = mem[0,1,2,3,0,1,2,3]9902; AVX512BW-NEXT:    vpshufb %ymm2, %ymm17, %ymm29903; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm19 = mem[0,1,2,3,0,1,2,3]9904; AVX512BW-NEXT:    vpshufb %ymm3, %ymm19, %ymm39905; AVX512BW-NEXT:    vpor %ymm2, %ymm3, %ymm29906; AVX512BW-NEXT:    vpunpckhbw {{.*#+}} xmm3 = xmm19[8],xmm17[8],xmm19[9],xmm17[9],xmm19[10],xmm17[10],xmm19[11],xmm17[11],xmm19[12],xmm17[12],xmm19[13],xmm17[13],xmm19[14],xmm17[14],xmm19[15],xmm17[15]9907; AVX512BW-NEXT:    vmovdqa {{.*#+}} xmm12 = [6,3,2,u,u,u,9,8,5,4,u,u,u,11,10,7]9908; AVX512BW-NEXT:    vpshufb %xmm12, %xmm3, %xmm39909; AVX512BW-NEXT:    vpermq {{.*#+}} ymm3 = ymm3[0,1,0,1]9910; AVX512BW-NEXT:    vinserti64x4 $1, %ymm2, %zmm3, %zmm29911; AVX512BW-NEXT:    movabsq $435749860008887046, %rax # imm = 0x60C183060C183069912; AVX512BW-NEXT:    kmovq %rax, %k39913; AVX512BW-NEXT:    vmovdqu8 %zmm2, %zmm4 {%k3}9914; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm20 = mem[0,1,2,3,0,1,2,3]9915; AVX512BW-NEXT:    vpshufb %ymm5, %ymm20, %ymm29916; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm22 = mem[0,1,2,3,0,1,2,3]9917; AVX512BW-NEXT:    vpshufb %ymm1, %ymm22, %ymm39918; AVX512BW-NEXT:    vpor %ymm2, %ymm3, %ymm29919; AVX512BW-NEXT:    vpunpckhbw {{.*#+}} xmm3 = xmm22[8],xmm20[8],xmm22[9],xmm20[9],xmm22[10],xmm20[10],xmm22[11],xmm20[11],xmm22[12],xmm20[12],xmm22[13],xmm20[13],xmm22[14],xmm20[14],xmm22[15],xmm20[15]9920; AVX512BW-NEXT:    vmovdqa {{.*#+}} xmm9 = [u,6,7,2,3,u,u,u,8,9,4,5,u,u,u,10]9921; AVX512BW-NEXT:    vpshufb %xmm9, %xmm3, %xmm39922; AVX512BW-NEXT:    vpermq {{.*#+}} ymm3 = ymm3[0,1,0,1]9923; AVX512BW-NEXT:    vinserti64x4 $1, %ymm2, %zmm3, %zmm29924; AVX512BW-NEXT:    vpmovsxbw {{.*#+}} zmm3 = [4,5,4,5,5,6,5,6,4,5,4,5,5,6,5,6,6,1,6,0,7,1,0,7,14,9,14,8,15,9,8,15]9925; AVX512BW-NEXT:    vpermw %zmm14, %zmm3, %zmm39926; AVX512BW-NEXT:    movabsq $2323999253380730912, %rax # imm = 0x20408102040810209927; AVX512BW-NEXT:    kmovq %rax, %k39928; AVX512BW-NEXT:    vmovdqu8 %zmm3, %zmm2 {%k3}9929; AVX512BW-NEXT:    movabsq $4066998693416279096, %rax # imm = 0x3870E1C3870E1C389930; AVX512BW-NEXT:    kmovq %rax, %k39931; AVX512BW-NEXT:    vmovdqu8 %zmm2, %zmm4 {%k3}9932; AVX512BW-NEXT:    vpshufhw {{.*#+}} ymm2 = ymm13[0,1,2,3,6,7,7,6,8,9,10,11,14,15,15,14]9933; AVX512BW-NEXT:    vpshufd {{.*#+}} ymm2 = ymm2[2,2,3,3,6,6,7,7]9934; AVX512BW-NEXT:    vpbroadcastd {{.*#+}} ymm3 = [13,12,15,14,13,12,15,14,13,12,15,14,13,12,15,14,13,12,15,14,13,12,15,14,13,12,15,14,13,12,15,14]9935; AVX512BW-NEXT:    movl $338170920, %eax # imm = 0x142814289936; AVX512BW-NEXT:    kmovd %eax, %k39937; AVX512BW-NEXT:    vpshufb %ymm3, %ymm15, %ymm2 {%k3}9938; AVX512BW-NEXT:    vpunpcklbw {{.*#+}} xmm5 = xmm8[0],xmm10[0],xmm8[1],xmm10[1],xmm8[2],xmm10[2],xmm8[3],xmm10[3],xmm8[4],xmm10[4],xmm8[5],xmm10[5],xmm8[6],xmm10[6],xmm8[7],xmm10[7]9939; AVX512BW-NEXT:    vmovdqa64 {{.*#+}} xmm31 = [0,1,u,u,u,6,7,2,3,u,u,u,8,9,4,5]9940; AVX512BW-NEXT:    vpshufb %xmm31, %xmm5, %xmm59941; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm2 = zmm2[2,3,2,3],zmm5[0,1,0,1]9942; AVX512BW-NEXT:    vpbroadcastq {{.*#+}} ymm1 = [11,0,0,0,15,14,13,12,11,0,0,0,15,14,13,12,11,0,0,0,15,14,13,12,11,0,0,0,15,14,13,12]9943; AVX512BW-NEXT:    vpshufb %ymm1, %ymm19, %ymm59944; AVX512BW-NEXT:    vpshufhw {{.*#+}} ymm7 = ymm17[0,1,2,3,7,6,6,7,8,9,10,11,15,14,14,15]9945; AVX512BW-NEXT:    vpshufd {{.*#+}} ymm7 = ymm7[0,2,3,3,4,6,7,7]9946; AVX512BW-NEXT:    vmovdqu8 %ymm7, %ymm5 {%k1}9947; AVX512BW-NEXT:    vmovdqa64 32(%rcx), %xmm279948; AVX512BW-NEXT:    vmovdqa64 32(%rdx), %xmm299949; AVX512BW-NEXT:    vpunpcklbw {{.*#+}} xmm21 = xmm29[0],xmm27[0],xmm29[1],xmm27[1],xmm29[2],xmm27[2],xmm29[3],xmm27[3],xmm29[4],xmm27[4],xmm29[5],xmm27[5],xmm29[6],xmm27[6],xmm29[7],xmm27[7]9950; AVX512BW-NEXT:    vmovdqa {{.*#+}} xmm7 = [4,5,0,1,u,u,u,6,7,2,3,u,u,u,8,9]9951; AVX512BW-NEXT:    vpshufb %xmm7, %xmm21, %xmm219952; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm21 = zmm5[2,3,2,3],zmm21[0,1,0,1]9953; AVX512BW-NEXT:    vmovdqu8 %zmm2, %zmm21 {%k2}9954; AVX512BW-NEXT:    vpshufb {{.*#+}} ymm2 = ymm20[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,29],zero,ymm20[27],zero,zero,zero,zero,ymm20[30],zero,ymm20[28],zero,zero,zero,zero,ymm20[31],zero9955; AVX512BW-NEXT:    vpshufb {{.*#+}} ymm5 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm22[27],zero,zero,zero,zero,ymm22[30],zero,ymm22[28],zero,zero,zero,zero,ymm22[31],zero,ymm22[29]9956; AVX512BW-NEXT:    vpor %ymm2, %ymm5, %ymm29957; AVX512BW-NEXT:    vmovdqa64 32(%r9), %xmm289958; AVX512BW-NEXT:    vmovdqa64 32(%r8), %xmm309959; AVX512BW-NEXT:    vpunpcklbw {{.*#+}} xmm0 = xmm30[0],xmm28[0],xmm30[1],xmm28[1],xmm30[2],xmm28[2],xmm30[3],xmm28[3],xmm30[4],xmm28[4],xmm30[5],xmm28[5],xmm30[6],xmm28[6],xmm30[7],xmm28[7]9960; AVX512BW-NEXT:    vmovdqa {{.*#+}} xmm5 = [u,u,4,5,0,1,u,u,u,6,7,2,3,u,u,u]9961; AVX512BW-NEXT:    vpshufb %xmm5, %xmm0, %xmm09962; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm0 = zmm2[2,3,2,3],zmm0[0,1,0,1]9963; AVX512BW-NEXT:    vpmovsxbw {{.*#+}} zmm2 = [14,13,14,15,15,14,14,15,14,13,14,15,15,14,14,15,17,17,16,16,17,17,16,16,20,21,17,17,17,17,16,16]9964; AVX512BW-NEXT:    vpermw %zmm14, %zmm2, %zmm29965; AVX512BW-NEXT:    movabsq $580999813345182728, %rax # imm = 0x8102040810204089966; AVX512BW-NEXT:    kmovq %rax, %k29967; AVX512BW-NEXT:    vmovdqu8 %zmm2, %zmm0 {%k2}9968; AVX512BW-NEXT:    movabsq $1016749673354069774, %rax # imm = 0xE1C3870E1C3870E9969; AVX512BW-NEXT:    kmovq %rax, %k29970; AVX512BW-NEXT:    vmovdqu8 %zmm0, %zmm21 {%k2}9971; AVX512BW-NEXT:    vpshufhw {{.*#+}} ymm0 = ymm23[0,1,2,3,6,7,7,6,8,9,10,11,14,15,15,14]9972; AVX512BW-NEXT:    vpshufd {{.*#+}} ymm0 = ymm0[2,2,3,3,6,6,7,7]9973; AVX512BW-NEXT:    vpshufb %ymm3, %ymm24, %ymm0 {%k3}9974; AVX512BW-NEXT:    vbroadcasti128 {{.*#+}} ymm3 = [25,128,23,128,128,128,128,26,128,24,128,128,128,128,27,128,25,128,23,128,128,128,128,26,128,24,128,128,128,128,27,128]9975; AVX512BW-NEXT:    # ymm3 = mem[0,1,0,1]9976; AVX512BW-NEXT:    vpshufb %ymm3, %ymm24, %ymm29977; AVX512BW-NEXT:    vmovdqa64 {{.*#+}} ymm24 = [128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,23,128,128,128,128,26,128,24,128,128,128,128,27,128,25]9978; AVX512BW-NEXT:    vpshufb %ymm24, %ymm23, %ymm239979; AVX512BW-NEXT:    vporq %ymm2, %ymm23, %ymm29980; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm23 = zmm2[2,3,2,3],zmm0[2,3,2,3]9981; AVX512BW-NEXT:    vpshufb {{.*#+}} ymm0 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm16[24,25],zero,ymm16[23],zero,ymm16[21,22,23,26],zero,ymm16[24],zero,ymm16[28,29,26,27]9982; AVX512BW-NEXT:    vpshufb {{.*#+}} ymm2 = ymm18[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,ymm18[25],zero,ymm18[23],zero,zero,zero,zero,ymm18[26],zero,ymm18[24],zero,zero,zero,zero9983; AVX512BW-NEXT:    vpor %ymm0, %ymm2, %ymm09984; AVX512BW-NEXT:    vpshufb %ymm1, %ymm18, %ymm19985; AVX512BW-NEXT:    vpshufhw {{.*#+}} ymm2 = ymm16[0,1,2,3,7,6,6,7,8,9,10,11,15,14,14,15]9986; AVX512BW-NEXT:    vpshufd {{.*#+}} ymm2 = ymm2[0,2,3,3,4,6,7,7]9987; AVX512BW-NEXT:    vmovdqu8 %ymm2, %ymm1 {%k1}9988; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm0 = zmm0[2,3,2,3],zmm1[2,3,2,3]9989; AVX512BW-NEXT:    movabsq $1742999440035548184, %rax # imm = 0x183060C183060C189990; AVX512BW-NEXT:    kmovq %rax, %k29991; AVX512BW-NEXT:    vmovdqu8 %zmm0, %zmm23 {%k2}9992; AVX512BW-NEXT:    vmovdqa64 (%r8), %zmm09993; AVX512BW-NEXT:    vmovdqa64 (%r9), %zmm19994; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm2 = zmm0[4,5,6,7],zmm1[4,5,6,7]9995; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm0 = zmm1[4,5,6,7],zmm0[4,5,6,7]9996; AVX512BW-NEXT:    vpshufb {{.*#+}} zmm1 = zmm2[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,24,25,24,25],zero,zmm2[23],zero,zmm2[23,24,25,26],zero,zmm2[24],zero,zmm2[30,31,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,61],zero,zmm2[59],zero,zero,zero,zero,zmm2[62],zero,zmm2[60],zero,zero,zero,zero,zmm2[63],zero9997; AVX512BW-NEXT:    vpshufb {{.*#+}} zmm0 = zmm0[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,zero,zero,zmm0[25],zero,zmm0[23],zero,zero,zero,zero,zmm0[26],zero,zmm0[24],zero,zero,zmm0[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zmm0[59],zero,zero,zero,zero,zmm0[62],zero,zmm0[60],zero,zero,zero,zero,zmm0[63],zero,zmm0[61]9998; AVX512BW-NEXT:    vporq %zmm1, %zmm0, %zmm09999; AVX512BW-NEXT:    vpermq {{.*#+}} zmm0 = zmm0[2,3,2,3,6,7,6,7]10000; AVX512BW-NEXT:    movabsq $6971997760142192736, %rax # imm = 0x60C183060C18306010001; AVX512BW-NEXT:    kmovq %rax, %k210002; AVX512BW-NEXT:    vmovdqu8 %zmm0, %zmm23 {%k2}10003; AVX512BW-NEXT:    vpmovsxbw {{.*#+}} zmm0 = [27,29,28,27,28,29,29,28,27,29,28,27,28,29,29,28,30,29,30,31,31,30,30,31,30,29,30,31,31,30,30,31]10004; AVX512BW-NEXT:    vpermw %zmm14, %zmm0, %zmm010005; AVX512BW-NEXT:    movabsq $-9150747060186627967, %rax # imm = 0x810204081020408110006; AVX512BW-NEXT:    kmovq %rax, %k310007; AVX512BW-NEXT:    vmovdqu8 %zmm0, %zmm23 {%k3}10008; AVX512BW-NEXT:    vmovdqa64 {{.*#+}} xmm18 = [u,128,7,128,5,u,u,u,128,8,128,6,u,u,u,128]10009; AVX512BW-NEXT:    vpshufb %xmm18, %xmm26, %xmm010010; AVX512BW-NEXT:    vmovdqa {{.*#+}} xmm2 = [u,7,128,5,128,u,u,u,8,128,6,128,u,u,u,9]10011; AVX512BW-NEXT:    vpshufb %xmm2, %xmm25, %xmm110012; AVX512BW-NEXT:    vpor %xmm0, %xmm1, %xmm010013; AVX512BW-NEXT:    vpunpcklbw {{.*#+}} xmm1 = xmm25[0],xmm26[0],xmm25[1],xmm26[1],xmm25[2],xmm26[2],xmm25[3],xmm26[3],xmm25[4],xmm26[4],xmm25[5],xmm26[5],xmm25[6],xmm26[6],xmm25[7],xmm26[7]10014; AVX512BW-NEXT:    vpshufb %xmm31, %xmm1, %xmm110015; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm16 = zmm1[0,1,0,1],zmm0[0,1,0,1]10016; AVX512BW-NEXT:    vmovdqa {{.*#+}} xmm0 = [u,u,u,128,7,128,5,u,u,u,128,8,128,6,u,u]10017; AVX512BW-NEXT:    vpshufb %xmm0, %xmm19, %xmm110018; AVX512BW-NEXT:    vmovdqa64 {{.*#+}} xmm26 = [u,u,u,7,128,5,128,u,u,u,8,128,6,128,u,u]10019; AVX512BW-NEXT:    vpshufb %xmm26, %xmm17, %xmm2510020; AVX512BW-NEXT:    vporq %xmm1, %xmm25, %xmm110021; AVX512BW-NEXT:    vpunpcklbw {{.*#+}} xmm25 = xmm17[0],xmm19[0],xmm17[1],xmm19[1],xmm17[2],xmm19[2],xmm17[3],xmm19[3],xmm17[4],xmm19[4],xmm17[5],xmm19[5],xmm17[6],xmm19[6],xmm17[7],xmm19[7]10022; AVX512BW-NEXT:    vpshufb %xmm7, %xmm25, %xmm710023; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm1 = zmm7[0,1,0,1],zmm1[0,1,0,1]10024; AVX512BW-NEXT:    movabsq $871499720017774092, %rax # imm = 0xC183060C183060C10025; AVX512BW-NEXT:    kmovq %rax, %k310026; AVX512BW-NEXT:    vmovdqu8 %zmm1, %zmm16 {%k3}10027; AVX512BW-NEXT:    vmovdqa {{.*#+}} xmm1 = [128,4,u,u,u,128,7,128,5,u,u,u,128,8,128,6]10028; AVX512BW-NEXT:    vpshufb %xmm1, %xmm20, %xmm710029; AVX512BW-NEXT:    vmovdqa64 {{.*#+}} xmm25 = [4,128,u,u,u,7,128,5,128,u,u,u,8,128,6,128]10030; AVX512BW-NEXT:    vpshufb %xmm25, %xmm22, %xmm3110031; AVX512BW-NEXT:    vporq %xmm7, %xmm31, %xmm710032; AVX512BW-NEXT:    vpunpcklbw {{.*#+}} xmm31 = xmm22[0],xmm20[0],xmm22[1],xmm20[1],xmm22[2],xmm20[2],xmm22[3],xmm20[3],xmm22[4],xmm20[4],xmm22[5],xmm20[5],xmm22[6],xmm20[6],xmm22[7],xmm20[7]10033; AVX512BW-NEXT:    vpshufb %xmm5, %xmm31, %xmm510034; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm5 = zmm5[0,1,0,1],zmm7[0,1,0,1]10035; AVX512BW-NEXT:    vpmovsxbw {{.*#+}} zmm7 = [1,1,0,0,1,1,0,0,4,5,1,1,1,1,0,0,2,2,2,4,2,2,2,4,3,3,3,3,2,2,2,4]10036; AVX512BW-NEXT:    vpermw %zmm14, %zmm7, %zmm710037; AVX512BW-NEXT:    movabsq $4647998506761461824, %rax # imm = 0x408102040810204010038; AVX512BW-NEXT:    kmovq %rax, %k310039; AVX512BW-NEXT:    vmovdqu8 %zmm7, %zmm5 {%k3}10040; AVX512BW-NEXT:    movabsq $8133997386832558192, %rax # imm = 0x70E1C3870E1C387010041; AVX512BW-NEXT:    kmovq %rax, %k310042; AVX512BW-NEXT:    vmovdqu8 %zmm5, %zmm16 {%k3}10043; AVX512BW-NEXT:    vpshuflw {{.*#+}} ymm5 = ymm13[1,2,2,3,4,5,6,7,9,10,10,11,12,13,14,15]10044; AVX512BW-NEXT:    vpshufd {{.*#+}} ymm5 = ymm5[0,0,1,1,4,4,5,5]10045; AVX512BW-NEXT:    vpshufb {{.*#+}} ymm5 {%k1} = ymm15[u,u,u,u,5,u,3,u,u,u,u,6,u,4,u,u,u,u,u,u,21,u,19,u,u,u,u,22,u,20,u,u]10046; AVX512BW-NEXT:    vpshufb %ymm3, %ymm15, %ymm310047; AVX512BW-NEXT:    vpshufb %ymm24, %ymm13, %ymm710048; AVX512BW-NEXT:    vpor %ymm3, %ymm7, %ymm310049; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm3 = zmm5[2,3,2,3],zmm3[2,3,2,3]10050; AVX512BW-NEXT:    vpshufb {{.*#+}} zmm5 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zmm17[18],zero,zmm17[18,19,20,21],zero,zmm17[19],zero,zmm17[25,26,27,22],zero,zmm17[20],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zmm17[56,57],zero,zmm17[55],zero,zmm17[53,54,55,58],zero,zmm17[56],zero,zmm17[60,61,58,59]10051; AVX512BW-NEXT:    vpshufb {{.*#+}} zmm7 = zmm19[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zmm19[18],zero,zero,zero,zero,zmm19[21],zero,zmm19[19],zero,zero,zero,zero,zmm19[22],zero,zmm19[20,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,zmm19[57],zero,zmm19[55],zero,zero,zero,zero,zmm19[58],zero,zmm19[56],zero,zero,zero,zero10052; AVX512BW-NEXT:    vporq %zmm5, %zmm7, %zmm510053; AVX512BW-NEXT:    vpermq {{.*#+}} zmm5 = zmm5[2,3,2,3,6,7,6,7]10054; AVX512BW-NEXT:    vmovdqu8 %zmm3, %zmm5 {%k2}10055; AVX512BW-NEXT:    vpshufb {{.*#+}} zmm3 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zmm22[20],zero,zmm22[18],zero,zmm22[20,21,20,21],zero,zmm22[19],zero,zmm22[19,20,21,22],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zmm22[56,57,56,57],zero,zmm22[55],zero,zmm22[55,56,57,58],zero,zmm22[56],zero,zmm22[62,63]10056; AVX512BW-NEXT:    vpshufb {{.*#+}} zmm7 = zmm20[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zmm20[20],zero,zmm20[18],zero,zero,zero,zero,zmm20[21],zero,zmm20[19],zero,zero,zero,zero,zmm20[22,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,zero,zero,zmm20[57],zero,zmm20[55],zero,zero,zero,zero,zmm20[58],zero,zmm20[56],zero,zero10057; AVX512BW-NEXT:    vporq %zmm3, %zmm7, %zmm310058; AVX512BW-NEXT:    vpermq {{.*#+}} zmm3 = zmm3[2,3,2,3,6,7,6,7]10059; AVX512BW-NEXT:    vpmovsxbw {{.*#+}} zmm7 = [10,9,9,10,10,9,9,10,9,10,14,15,10,9,9,10,11,13,12,11,12,13,13,12,11,13,12,11,12,13,13,12]10060; AVX512BW-NEXT:    vpermw %zmm14, %zmm7, %zmm710061; AVX512BW-NEXT:    movabsq $1161999626690365456, %rax # imm = 0x102040810204081010062; AVX512BW-NEXT:    kmovq %rax, %k110063; AVX512BW-NEXT:    vmovdqu8 %zmm7, %zmm3 {%k1}10064; AVX512BW-NEXT:    movabsq $2033499346708139548, %rax # imm = 0x1C3870E1C3870E1C10065; AVX512BW-NEXT:    kmovq %rax, %k110066; AVX512BW-NEXT:    vmovdqu8 %zmm3, %zmm5 {%k1}10067; AVX512BW-NEXT:    vpshufb %xmm0, %xmm27, %xmm010068; AVX512BW-NEXT:    vpshufb %xmm26, %xmm29, %xmm310069; AVX512BW-NEXT:    vpor %xmm0, %xmm3, %xmm010070; AVX512BW-NEXT:    vpunpckhbw {{.*#+}} xmm3 = xmm27[8],xmm29[8],xmm27[9],xmm29[9],xmm27[10],xmm29[10],xmm27[11],xmm29[11],xmm27[12],xmm29[12],xmm27[13],xmm29[13],xmm27[14],xmm29[14],xmm27[15],xmm29[15]10071; AVX512BW-NEXT:    vpshufb %xmm12, %xmm3, %xmm310072; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm0 = zmm0[0,1,0,1],zmm3[0,1,0,1]10073; AVX512BW-NEXT:    vpshufb %xmm18, %xmm10, %xmm310074; AVX512BW-NEXT:    vpshufb %xmm2, %xmm8, %xmm210075; AVX512BW-NEXT:    vpor %xmm3, %xmm2, %xmm210076; AVX512BW-NEXT:    vpunpckhbw {{.*#+}} xmm3 = xmm10[8],xmm8[8],xmm10[9],xmm8[9],xmm10[10],xmm8[10],xmm10[11],xmm8[11],xmm10[12],xmm8[12],xmm10[13],xmm8[13],xmm10[14],xmm8[14],xmm10[15],xmm8[15]10077; AVX512BW-NEXT:    vpshufb %xmm11, %xmm3, %xmm310078; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm2 = zmm2[0,1,0,1],zmm3[0,1,0,1]10079; AVX512BW-NEXT:    vmovdqu8 %zmm0, %zmm2 {%k2}10080; AVX512BW-NEXT:    vpshufb %xmm1, %xmm28, %xmm010081; AVX512BW-NEXT:    vpshufb %xmm25, %xmm30, %xmm110082; AVX512BW-NEXT:    vpor %xmm0, %xmm1, %xmm010083; AVX512BW-NEXT:    vpunpckhbw {{.*#+}} xmm1 = xmm30[8],xmm28[8],xmm30[9],xmm28[9],xmm30[10],xmm28[10],xmm30[11],xmm28[11],xmm30[12],xmm28[12],xmm30[13],xmm28[13],xmm30[14],xmm28[14],xmm30[15],xmm28[15]10084; AVX512BW-NEXT:    vpshufb %xmm9, %xmm1, %xmm110085; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm0 = zmm0[0,1,0,1],zmm1[0,1,0,1]10086; AVX512BW-NEXT:    vpmovsxbw {{.*#+}} zmm1 = [18,18,18,20,18,18,18,20,19,19,19,19,18,18,18,20,20,21,20,21,21,22,21,22,20,21,20,21,21,22,21,22]10087; AVX512BW-NEXT:    vpermw %zmm14, %zmm1, %zmm110088; AVX512BW-NEXT:    movabsq $290499906672591364, %rax # imm = 0x40810204081020410089; AVX512BW-NEXT:    kmovq %rax, %k110090; AVX512BW-NEXT:    vmovdqu8 %zmm1, %zmm0 {%k1}10091; AVX512BW-NEXT:    movabsq $-8714997200177740921, %rax # imm = 0x870E1C3870E1C38710092; AVX512BW-NEXT:    kmovq %rax, %k110093; AVX512BW-NEXT:    vmovdqu8 %zmm0, %zmm2 {%k1}10094; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax10095; AVX512BW-NEXT:    vmovdqa64 %zmm2, 256(%rax)10096; AVX512BW-NEXT:    vmovdqa64 %zmm5, 128(%rax)10097; AVX512BW-NEXT:    vmovdqa64 %zmm6, 320(%rax)10098; AVX512BW-NEXT:    vmovdqa64 %zmm16, (%rax)10099; AVX512BW-NEXT:    vmovdqa64 %zmm23, 384(%rax)10100; AVX512BW-NEXT:    vmovdqa64 %zmm21, 192(%rax)10101; AVX512BW-NEXT:    vmovdqa64 %zmm4, 64(%rax)10102; AVX512BW-NEXT:    vzeroupper10103; AVX512BW-NEXT:    retq10104;10105; AVX512BW-FCP-LABEL: store_i8_stride7_vf64:10106; AVX512BW-FCP:       # %bb.0:10107; AVX512BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax10108; AVX512BW-FCP-NEXT:    vmovdqa64 (%rax), %zmm1510109; AVX512BW-FCP-NEXT:    vmovdqa 32(%rdx), %ymm010110; AVX512BW-FCP-NEXT:    vmovdqa {{.*#+}} ymm12 = [0,1,0,1,14,128,14,15,0,1,14,15,128,13,14,15,16,17,16,128,30,31,30,31,16,17,128,31,28,29,30,31]10111; AVX512BW-FCP-NEXT:    vpshufb %ymm12, %ymm0, %ymm110112; AVX512BW-FCP-NEXT:    vmovdqa 32(%rcx), %ymm210113; AVX512BW-FCP-NEXT:    vmovdqa {{.*#+}} ymm13 = [128,128,128,128,128,14,128,128,128,128,128,128,15,128,128,128,128,128,128,16,128,128,128,128,128,128,17,128,128,128,128,128]10114; AVX512BW-FCP-NEXT:    vpshufb %ymm13, %ymm2, %ymm410115; AVX512BW-FCP-NEXT:    vpor %ymm1, %ymm4, %ymm110116; AVX512BW-FCP-NEXT:    vmovdqa64 {{.*#+}} zmm3 = [128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,18,128,18,19,20,21,128,19,128,25,26,27,22,128,20,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,24,25,128,23,128,21,22,23,26,128,24,128,28,29,26,27]10117; AVX512BW-FCP-NEXT:    vpshufb %ymm3, %ymm0, %ymm010118; AVX512BW-FCP-NEXT:    vmovdqa64 {{.*#+}} zmm3 = [u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,128,18,128,128,128,128,21,128,19,128,128,128,128,22,128,20,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,128,128,25,128,23,128,128,128,128,26,128,24,128,128,128,128]10119; AVX512BW-FCP-NEXT:    vpshufb %ymm3, %ymm2, %ymm210120; AVX512BW-FCP-NEXT:    vpor %ymm0, %ymm2, %ymm010121; AVX512BW-FCP-NEXT:    vpermq {{.*#+}} ymm0 = ymm0[2,3,2,3]10122; AVX512BW-FCP-NEXT:    vinserti64x4 $1, %ymm0, %zmm1, %zmm010123; AVX512BW-FCP-NEXT:    vmovdqa 32(%rdi), %ymm110124; AVX512BW-FCP-NEXT:    vmovdqa {{.*#+}} ymm2 = [0,1,14,128,12,13,0,1,14,15,128,3,12,13,2,3,16,128,30,31,28,29,16,17,128,31,18,19,28,29,18,128]10125; AVX512BW-FCP-NEXT:    vpshufb %ymm2, %ymm1, %ymm410126; AVX512BW-FCP-NEXT:    vmovdqa 32(%rsi), %ymm610127; AVX512BW-FCP-NEXT:    vmovdqa {{.*#+}} ymm8 = [128,128,128,14,128,128,128,128,128,128,15,128,128,128,128,128,128,16,128,128,128,128,128,128,17,128,128,128,128,128,128,18]10128; AVX512BW-FCP-NEXT:    vpshufb %ymm8, %ymm6, %ymm510129; AVX512BW-FCP-NEXT:    vpor %ymm4, %ymm5, %ymm410130; AVX512BW-FCP-NEXT:    vmovdqa64 {{.*#+}} zmm3 = [128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,18,19,20,21,128,19,128,21,20,21,22,128,20,128,22,23,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,25,128,23,128,128,128,128,26,128,24,128,128,128,128,27,128]10131; AVX512BW-FCP-NEXT:    vpshufb %ymm3, %ymm1, %ymm110132; AVX512BW-FCP-NEXT:    vmovdqa64 {{.*#+}} zmm3 = [u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,128,128,128,128,21,128,19,128,128,128,128,22,128,20,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,23,128,128,128,128,26,128,24,128,128,128,128,27,128,25]10133; AVX512BW-FCP-NEXT:    vpshufb %ymm3, %ymm6, %ymm610134; AVX512BW-FCP-NEXT:    vpor %ymm1, %ymm6, %ymm110135; AVX512BW-FCP-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[2,3,2,3]10136; AVX512BW-FCP-NEXT:    vinserti64x4 $1, %ymm1, %zmm4, %zmm410137; AVX512BW-FCP-NEXT:    movabsq $3485998880071096368, %r10 # imm = 0x3060C183060C183010138; AVX512BW-FCP-NEXT:    kmovq %r10, %k110139; AVX512BW-FCP-NEXT:    vmovdqu8 %zmm0, %zmm4 {%k1}10140; AVX512BW-FCP-NEXT:    vmovdqa 32(%r9), %ymm910141; AVX512BW-FCP-NEXT:    vmovdqa {{.*#+}} ymm0 = [13,128,128,128,128,128,128,14,128,128,128,128,128,128,15,128,128,128,128,128,128,16,128,128,128,128,128,128,17,128,128,128]10142; AVX512BW-FCP-NEXT:    vpshufb %ymm0, %ymm9, %ymm610143; AVX512BW-FCP-NEXT:    vmovdqa 32(%r8), %ymm710144; AVX512BW-FCP-NEXT:    vmovdqa {{.*#+}} ymm1 = [128,128,128,128,128,128,14,128,128,128,128,128,128,15,128,128,128,128,128,128,16,128,128,128,128,128,128,17,128,128,128,128]10145; AVX512BW-FCP-NEXT:    vpshufb %ymm1, %ymm7, %ymm1010146; AVX512BW-FCP-NEXT:    vpor %ymm6, %ymm10, %ymm1010147; AVX512BW-FCP-NEXT:    vmovdqa64 {{.*#+}} zmm3 = [128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,20,128,18,128,20,21,20,21,128,19,128,19,20,21,22,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,24,25,24,25,128,23,128,23,24,25,26,128,24,128,30,31]10148; AVX512BW-FCP-NEXT:    vpshufb %ymm3, %ymm7, %ymm1110149; AVX512BW-FCP-NEXT:    vmovdqa64 {{.*#+}} zmm3 = [u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,128,20,128,18,128,128,128,128,21,128,19,128,128,128,128,22,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,128,128,128,128,25,128,23,128,128,128,128,26,128,24,128,128]10150; AVX512BW-FCP-NEXT:    vpshufb %ymm3, %ymm9, %ymm910151; AVX512BW-FCP-NEXT:    vpor %ymm11, %ymm9, %ymm910152; AVX512BW-FCP-NEXT:    vpermq {{.*#+}} ymm9 = ymm9[2,3,2,3]10153; AVX512BW-FCP-NEXT:    vinserti64x4 $1, %ymm9, %zmm10, %zmm910154; AVX512BW-FCP-NEXT:    vmovdqa 32(%rax), %ymm1010155; AVX512BW-FCP-NEXT:    vpmovsxbw {{.*#+}} ymm11 = [10,9,9,10,10,9,9,10,9,10,14,15,10,9,9,10]10156; AVX512BW-FCP-NEXT:    vpermw %ymm10, %ymm11, %ymm1110157; AVX512BW-FCP-NEXT:    vpshufb {{.*#+}} ymm10 = ymm10[12,13,2,3,12,13,0,1,14,15,2,3,0,1,14,15,28,29,18,19,28,29,16,17,30,31,18,19,16,17,30,31]10158; AVX512BW-FCP-NEXT:    vinserti64x4 $1, %ymm11, %zmm10, %zmm1010159; AVX512BW-FCP-NEXT:    movabsq $145249953336295682, %rax # imm = 0x20408102040810210160; AVX512BW-FCP-NEXT:    kmovq %rax, %k210161; AVX512BW-FCP-NEXT:    vmovdqu8 %zmm10, %zmm9 {%k2}10162; AVX512BW-FCP-NEXT:    movabsq $-4357498600088870461, %rax # imm = 0xC3870E1C3870E1C310163; AVX512BW-FCP-NEXT:    kmovq %rax, %k210164; AVX512BW-FCP-NEXT:    vmovdqu8 %zmm9, %zmm4 {%k2}10165; AVX512BW-FCP-NEXT:    vmovdqa (%rdi), %ymm910166; AVX512BW-FCP-NEXT:    vpshufb %ymm2, %ymm9, %ymm210167; AVX512BW-FCP-NEXT:    vmovdqa (%rsi), %ymm1010168; AVX512BW-FCP-NEXT:    vpshufb %ymm8, %ymm10, %ymm810169; AVX512BW-FCP-NEXT:    vpor %ymm2, %ymm8, %ymm210170; AVX512BW-FCP-NEXT:    vmovdqa64 (%rdi), %xmm1810171; AVX512BW-FCP-NEXT:    vmovdqa 32(%rdi), %xmm710172; AVX512BW-FCP-NEXT:    vmovdqa64 (%rsi), %xmm2310173; AVX512BW-FCP-NEXT:    vmovdqa64 32(%rsi), %xmm1610174; AVX512BW-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm8 = xmm23[8],xmm18[8],xmm23[9],xmm18[9],xmm23[10],xmm18[10],xmm23[11],xmm18[11],xmm23[12],xmm18[12],xmm23[13],xmm18[13],xmm23[14],xmm18[14],xmm23[15],xmm18[15]10175; AVX512BW-FCP-NEXT:    vmovdqa64 {{.*#+}} xmm17 = [2,u,u,u,9,8,5,4,u,u,u,11,10,7,6,u]10176; AVX512BW-FCP-NEXT:    vpshufb %xmm17, %xmm8, %xmm810177; AVX512BW-FCP-NEXT:    vpermq {{.*#+}} ymm8 = ymm8[0,1,0,1]10178; AVX512BW-FCP-NEXT:    vinserti64x4 $1, %ymm2, %zmm8, %zmm810179; AVX512BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm11 = mem[0,1,2,3,0,1,2,3]10180; AVX512BW-FCP-NEXT:    vpshufb %ymm12, %ymm11, %ymm210181; AVX512BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm12 = mem[0,1,2,3,0,1,2,3]10182; AVX512BW-FCP-NEXT:    vpshufb %ymm13, %ymm12, %ymm1310183; AVX512BW-FCP-NEXT:    vpor %ymm2, %ymm13, %ymm210184; AVX512BW-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm13 = xmm12[8],xmm11[8],xmm12[9],xmm11[9],xmm12[10],xmm11[10],xmm12[11],xmm11[11],xmm12[12],xmm11[12],xmm12[13],xmm11[13],xmm12[14],xmm11[14],xmm12[15],xmm11[15]10185; AVX512BW-FCP-NEXT:    vmovdqa64 {{.*#+}} xmm19 = [6,3,2,u,u,u,9,8,5,4,u,u,u,11,10,7]10186; AVX512BW-FCP-NEXT:    vpshufb %xmm19, %xmm13, %xmm1310187; AVX512BW-FCP-NEXT:    vpermq {{.*#+}} ymm13 = ymm13[0,1,0,1]10188; AVX512BW-FCP-NEXT:    vinserti64x4 $1, %ymm2, %zmm13, %zmm210189; AVX512BW-FCP-NEXT:    movabsq $435749860008887046, %rax # imm = 0x60C183060C1830610190; AVX512BW-FCP-NEXT:    kmovq %rax, %k210191; AVX512BW-FCP-NEXT:    vmovdqu8 %zmm2, %zmm8 {%k2}10192; AVX512BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm13 = mem[0,1,2,3,0,1,2,3]10193; AVX512BW-FCP-NEXT:    vpshufb %ymm0, %ymm13, %ymm010194; AVX512BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm14 = mem[0,1,2,3,0,1,2,3]10195; AVX512BW-FCP-NEXT:    vpshufb %ymm1, %ymm14, %ymm110196; AVX512BW-FCP-NEXT:    vpor %ymm0, %ymm1, %ymm010197; AVX512BW-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm1 = xmm14[8],xmm13[8],xmm14[9],xmm13[9],xmm14[10],xmm13[10],xmm14[11],xmm13[11],xmm14[12],xmm13[12],xmm14[13],xmm13[13],xmm14[14],xmm13[14],xmm14[15],xmm13[15]10198; AVX512BW-FCP-NEXT:    vmovdqa64 {{.*#+}} xmm20 = [u,6,7,2,3,u,u,u,8,9,4,5,u,u,u,10]10199; AVX512BW-FCP-NEXT:    vpshufb %xmm20, %xmm1, %xmm110200; AVX512BW-FCP-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[0,1,0,1]10201; AVX512BW-FCP-NEXT:    vinserti64x4 $1, %ymm0, %zmm1, %zmm010202; AVX512BW-FCP-NEXT:    vpmovsxbw {{.*#+}} zmm1 = [4,5,4,5,5,6,5,6,4,5,4,5,5,6,5,6,6,1,6,0,7,1,0,7,14,9,14,8,15,9,8,15]10203; AVX512BW-FCP-NEXT:    vpermw %zmm15, %zmm1, %zmm110204; AVX512BW-FCP-NEXT:    movabsq $2323999253380730912, %rax # imm = 0x204081020408102010205; AVX512BW-FCP-NEXT:    kmovq %rax, %k210206; AVX512BW-FCP-NEXT:    vmovdqu8 %zmm1, %zmm0 {%k2}10207; AVX512BW-FCP-NEXT:    movabsq $4066998693416279096, %rax # imm = 0x3870E1C3870E1C3810208; AVX512BW-FCP-NEXT:    kmovq %rax, %k210209; AVX512BW-FCP-NEXT:    vmovdqu8 %zmm0, %zmm8 {%k2}10210; AVX512BW-FCP-NEXT:    vmovdqa64 {{.*#+}} xmm21 = [u,128,7,128,5,u,u,u,128,8,128,6,u,u,u,128]10211; AVX512BW-FCP-NEXT:    vpshufb %xmm21, %xmm23, %xmm010212; AVX512BW-FCP-NEXT:    vmovdqa64 {{.*#+}} xmm22 = [u,7,128,5,128,u,u,u,8,128,6,128,u,u,u,9]10213; AVX512BW-FCP-NEXT:    vpshufb %xmm22, %xmm18, %xmm110214; AVX512BW-FCP-NEXT:    vpor %xmm0, %xmm1, %xmm010215; AVX512BW-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm1 = xmm18[0],xmm23[0],xmm18[1],xmm23[1],xmm18[2],xmm23[2],xmm18[3],xmm23[3],xmm18[4],xmm23[4],xmm18[5],xmm23[5],xmm18[6],xmm23[6],xmm18[7],xmm23[7]10216; AVX512BW-FCP-NEXT:    vmovdqa {{.*#+}} xmm2 = [0,1,u,u,u,6,7,2,3,u,u,u,8,9,4,5]10217; AVX512BW-FCP-NEXT:    vpshufb %xmm2, %xmm1, %xmm110218; AVX512BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm18 = zmm1[0,1,0,1],zmm0[0,1,0,1]10219; AVX512BW-FCP-NEXT:    vmovdqa64 {{.*#+}} xmm26 = [u,u,u,128,7,128,5,u,u,u,128,8,128,6,u,u]10220; AVX512BW-FCP-NEXT:    vpshufb %xmm26, %xmm12, %xmm010221; AVX512BW-FCP-NEXT:    vmovdqa64 {{.*#+}} xmm27 = [u,u,u,7,128,5,128,u,u,u,8,128,6,128,u,u]10222; AVX512BW-FCP-NEXT:    vpshufb %xmm27, %xmm11, %xmm110223; AVX512BW-FCP-NEXT:    vpor %xmm0, %xmm1, %xmm010224; AVX512BW-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm1 = xmm11[0],xmm12[0],xmm11[1],xmm12[1],xmm11[2],xmm12[2],xmm11[3],xmm12[3],xmm11[4],xmm12[4],xmm11[5],xmm12[5],xmm11[6],xmm12[6],xmm11[7],xmm12[7]10225; AVX512BW-FCP-NEXT:    vmovdqa64 {{.*#+}} xmm23 = [4,5,0,1,u,u,u,6,7,2,3,u,u,u,8,9]10226; AVX512BW-FCP-NEXT:    vpshufb %xmm23, %xmm1, %xmm110227; AVX512BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm0 = zmm1[0,1,0,1],zmm0[0,1,0,1]10228; AVX512BW-FCP-NEXT:    movabsq $871499720017774092, %rax # imm = 0xC183060C183060C10229; AVX512BW-FCP-NEXT:    kmovq %rax, %k210230; AVX512BW-FCP-NEXT:    vmovdqu8 %zmm0, %zmm18 {%k2}10231; AVX512BW-FCP-NEXT:    vmovdqa64 {{.*#+}} xmm24 = [128,4,u,u,u,128,7,128,5,u,u,u,128,8,128,6]10232; AVX512BW-FCP-NEXT:    vpshufb %xmm24, %xmm13, %xmm010233; AVX512BW-FCP-NEXT:    vmovdqa64 {{.*#+}} xmm25 = [4,128,u,u,u,7,128,5,128,u,u,u,8,128,6,128]10234; AVX512BW-FCP-NEXT:    vpshufb %xmm25, %xmm14, %xmm110235; AVX512BW-FCP-NEXT:    vpor %xmm0, %xmm1, %xmm010236; AVX512BW-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm1 = xmm14[0],xmm13[0],xmm14[1],xmm13[1],xmm14[2],xmm13[2],xmm14[3],xmm13[3],xmm14[4],xmm13[4],xmm14[5],xmm13[5],xmm14[6],xmm13[6],xmm14[7],xmm13[7]10237; AVX512BW-FCP-NEXT:    vmovdqa64 {{.*#+}} xmm28 = [u,u,4,5,0,1,u,u,u,6,7,2,3,u,u,u]10238; AVX512BW-FCP-NEXT:    vpshufb %xmm28, %xmm1, %xmm110239; AVX512BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm0 = zmm1[0,1,0,1],zmm0[0,1,0,1]10240; AVX512BW-FCP-NEXT:    vpmovsxbw {{.*#+}} zmm1 = [1,1,0,0,1,1,0,0,4,5,1,1,1,1,0,0,2,2,2,4,2,2,2,4,3,3,3,3,2,2,2,4]10241; AVX512BW-FCP-NEXT:    vpermw %zmm15, %zmm1, %zmm110242; AVX512BW-FCP-NEXT:    movabsq $4647998506761461824, %rax # imm = 0x408102040810204010243; AVX512BW-FCP-NEXT:    kmovq %rax, %k210244; AVX512BW-FCP-NEXT:    vmovdqu8 %zmm1, %zmm0 {%k2}10245; AVX512BW-FCP-NEXT:    movabsq $8133997386832558192, %rax # imm = 0x70E1C3870E1C387010246; AVX512BW-FCP-NEXT:    kmovq %rax, %k210247; AVX512BW-FCP-NEXT:    vmovdqu8 %zmm0, %zmm18 {%k2}10248; AVX512BW-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm0 = xmm7[0],xmm16[0],xmm7[1],xmm16[1],xmm7[2],xmm16[2],xmm7[3],xmm16[3],xmm7[4],xmm16[4],xmm7[5],xmm16[5],xmm7[6],xmm16[6],xmm7[7],xmm16[7]10249; AVX512BW-FCP-NEXT:    vpshufb %xmm2, %xmm0, %xmm010250; AVX512BW-FCP-NEXT:    vpshufb {{.*#+}} ymm1 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm9[28,29,30],zero,ymm9[28],zero,ymm9[30,31,30,31],zero,ymm9[29],zero,ymm9[31,28,29]10251; AVX512BW-FCP-NEXT:    vpshufb {{.*#+}} ymm2 = ymm10[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,zero,ymm10[30],zero,ymm10[28],zero,zero,zero,zero,ymm10[31],zero,ymm10[29],zero,zero,zero10252; AVX512BW-FCP-NEXT:    vpor %ymm1, %ymm2, %ymm110253; AVX512BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm0 = zmm1[2,3,2,3],zmm0[0,1,0,1]10254; AVX512BW-FCP-NEXT:    vmovdqa64 32(%rcx), %xmm3110255; AVX512BW-FCP-NEXT:    vmovdqa 32(%rdx), %xmm310256; AVX512BW-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm1 = xmm3[0],xmm31[0],xmm3[1],xmm31[1],xmm3[2],xmm31[2],xmm3[3],xmm31[3],xmm3[4],xmm31[4],xmm3[5],xmm31[5],xmm3[6],xmm31[6],xmm3[7],xmm31[7]10257; AVX512BW-FCP-NEXT:    vpshufb %xmm23, %xmm1, %xmm110258; AVX512BW-FCP-NEXT:    vpshufb {{.*#+}} ymm23 = ymm12[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,27],zero,zero,zero,zero,ymm12[30],zero,ymm12[28],zero,zero,zero,zero,ymm12[31],zero,ymm12[29],zero10259; AVX512BW-FCP-NEXT:    vpshufb {{.*#+}} ymm29 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm11[30],zero,ymm11[28],zero,zero,zero,zero,ymm11[31],zero,ymm11[29],zero,zero10260; AVX512BW-FCP-NEXT:    vporq %ymm23, %ymm29, %ymm2310261; AVX512BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm23 = zmm23[2,3,2,3],zmm1[0,1,0,1]10262; AVX512BW-FCP-NEXT:    vmovdqu8 %zmm0, %zmm23 {%k1}10263; AVX512BW-FCP-NEXT:    vmovdqa64 32(%r9), %xmm2910264; AVX512BW-FCP-NEXT:    vmovdqa64 32(%r8), %xmm3010265; AVX512BW-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm0 = xmm30[0],xmm29[0],xmm30[1],xmm29[1],xmm30[2],xmm29[2],xmm30[3],xmm29[3],xmm30[4],xmm29[4],xmm30[5],xmm29[5],xmm30[6],xmm29[6],xmm30[7],xmm29[7]10266; AVX512BW-FCP-NEXT:    vpshufb %xmm28, %xmm0, %xmm010267; AVX512BW-FCP-NEXT:    vpshufb {{.*#+}} ymm1 = ymm13[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,29],zero,ymm13[27],zero,zero,zero,zero,ymm13[30],zero,ymm13[28],zero,zero,zero,zero,ymm13[31],zero10268; AVX512BW-FCP-NEXT:    vpshufb {{.*#+}} ymm28 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm14[27],zero,zero,zero,zero,ymm14[30],zero,ymm14[28],zero,zero,zero,zero,ymm14[31],zero,ymm14[29]10269; AVX512BW-FCP-NEXT:    vporq %ymm1, %ymm28, %ymm110270; AVX512BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm0 = zmm1[2,3,2,3],zmm0[0,1,0,1]10271; AVX512BW-FCP-NEXT:    vpmovsxbw {{.*#+}} zmm1 = [14,13,14,15,15,14,14,15,14,13,14,15,15,14,14,15,17,17,16,16,17,17,16,16,20,21,17,17,17,17,16,16]10272; AVX512BW-FCP-NEXT:    vpermw %zmm15, %zmm1, %zmm110273; AVX512BW-FCP-NEXT:    movabsq $580999813345182728, %rax # imm = 0x81020408102040810274; AVX512BW-FCP-NEXT:    kmovq %rax, %k110275; AVX512BW-FCP-NEXT:    vmovdqu8 %zmm1, %zmm0 {%k1}10276; AVX512BW-FCP-NEXT:    movabsq $1016749673354069774, %rax # imm = 0xE1C3870E1C3870E10277; AVX512BW-FCP-NEXT:    kmovq %rax, %k110278; AVX512BW-FCP-NEXT:    vmovdqu8 %zmm0, %zmm23 {%k1}10279; AVX512BW-FCP-NEXT:    vmovdqa64 (%rdx), %zmm010280; AVX512BW-FCP-NEXT:    vmovdqa64 (%rcx), %zmm110281; AVX512BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm28 = zmm0[4,5,6,7],zmm1[4,5,6,7]10282; AVX512BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm0 = zmm1[4,5,6,7],zmm0[4,5,6,7]10283; AVX512BW-FCP-NEXT:    vpshufb {{.*#+}} zmm1 = zmm28[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,24,25],zero,zmm28[23],zero,zmm28[21,22,23,26],zero,zmm28[24],zero,zmm28[28,29,26,27,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,59],zero,zero,zero,zero,zmm28[62],zero,zmm28[60],zero,zero,zero,zero,zmm28[63],zero,zmm28[61],zero10284; AVX512BW-FCP-NEXT:    vpshufb {{.*#+}} zmm0 = zmm0[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,zmm0[25],zero,zmm0[23],zero,zero,zero,zero,zmm0[26],zero,zmm0[24],zero,zero,zero,zero,zmm0[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,zero,zero,zmm0[62],zero,zmm0[60],zero,zero,zero,zero,zmm0[63],zero,zmm0[61],zero,zero10285; AVX512BW-FCP-NEXT:    vporq %zmm1, %zmm0, %zmm2810286; AVX512BW-FCP-NEXT:    vmovdqa64 (%rdi), %zmm110287; AVX512BW-FCP-NEXT:    vmovdqa64 (%rsi), %zmm210288; AVX512BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm5 = zmm2[4,5,6,7],zmm1[4,5,6,7]10289; AVX512BW-FCP-NEXT:    vpshufb {{.*#+}} zmm5 = zmm5[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,25],zero,zmm5[23],zero,zero,zero,zero,zmm5[26],zero,zmm5[24],zero,zero,zero,zero,zmm5[27],zero,zmm5[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,60,61,62],zero,zmm5[60],zero,zmm5[62,63,62,63],zero,zmm5[61],zero,zmm5[63,60,61]10290; AVX512BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm6 = zmm1[4,5,6,7],zmm2[4,5,6,7]10291; AVX512BW-FCP-NEXT:    vpshufb {{.*#+}} zmm6 = zmm6[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zmm6[23],zero,zero,zero,zero,zmm6[26],zero,zmm6[24],zero,zero,zero,zero,zmm6[27],zero,zmm6[25,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,zero,zmm6[62],zero,zmm6[60],zero,zero,zero,zero,zmm6[63],zero,zmm6[61],zero,zero,zero10292; AVX512BW-FCP-NEXT:    vporq %zmm5, %zmm6, %zmm510293; AVX512BW-FCP-NEXT:    vpermq {{.*#+}} zmm6 = zmm28[2,3,2,3,6,7,6,7]10294; AVX512BW-FCP-NEXT:    vpermq {{.*#+}} zmm28 = zmm5[2,3,2,3,6,7,6,7]10295; AVX512BW-FCP-NEXT:    movabsq $1742999440035548184, %rax # imm = 0x183060C183060C1810296; AVX512BW-FCP-NEXT:    kmovq %rax, %k110297; AVX512BW-FCP-NEXT:    vmovdqu8 %zmm6, %zmm28 {%k1}10298; AVX512BW-FCP-NEXT:    vmovdqa64 (%r8), %zmm510299; AVX512BW-FCP-NEXT:    vmovdqa64 (%r9), %zmm610300; AVX512BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm0 = zmm5[4,5,6,7],zmm6[4,5,6,7]10301; AVX512BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm5 = zmm6[4,5,6,7],zmm5[4,5,6,7]10302; AVX512BW-FCP-NEXT:    vpshufb {{.*#+}} zmm0 = zmm0[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,24,25,24,25],zero,zmm0[23],zero,zmm0[23,24,25,26],zero,zmm0[24],zero,zmm0[30,31,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,61],zero,zmm0[59],zero,zero,zero,zero,zmm0[62],zero,zmm0[60],zero,zero,zero,zero,zmm0[63],zero10303; AVX512BW-FCP-NEXT:    vpshufb {{.*#+}} zmm5 = zmm5[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,zero,zero,zmm5[25],zero,zmm5[23],zero,zero,zero,zero,zmm5[26],zero,zmm5[24],zero,zero,zmm5[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zmm5[59],zero,zero,zero,zero,zmm5[62],zero,zmm5[60],zero,zero,zero,zero,zmm5[63],zero,zmm5[61]10304; AVX512BW-FCP-NEXT:    vporq %zmm0, %zmm5, %zmm010305; AVX512BW-FCP-NEXT:    vpermq {{.*#+}} zmm0 = zmm0[2,3,2,3,6,7,6,7]10306; AVX512BW-FCP-NEXT:    movabsq $6971997760142192736, %rax # imm = 0x60C183060C18306010307; AVX512BW-FCP-NEXT:    kmovq %rax, %k110308; AVX512BW-FCP-NEXT:    vmovdqu8 %zmm0, %zmm28 {%k1}10309; AVX512BW-FCP-NEXT:    vpmovsxbw {{.*#+}} zmm0 = [27,29,28,27,28,29,29,28,27,29,28,27,28,29,29,28,30,29,30,31,31,30,30,31,30,29,30,31,31,30,30,31]10310; AVX512BW-FCP-NEXT:    vpermw %zmm15, %zmm0, %zmm010311; AVX512BW-FCP-NEXT:    movabsq $-9150747060186627967, %rax # imm = 0x810204081020408110312; AVX512BW-FCP-NEXT:    kmovq %rax, %k210313; AVX512BW-FCP-NEXT:    vmovdqu8 %zmm0, %zmm28 {%k2}10314; AVX512BW-FCP-NEXT:    vpshufb %xmm26, %xmm31, %xmm010315; AVX512BW-FCP-NEXT:    vpshufb %xmm27, %xmm3, %xmm510316; AVX512BW-FCP-NEXT:    vpor %xmm0, %xmm5, %xmm010317; AVX512BW-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm3 = xmm31[8],xmm3[8],xmm31[9],xmm3[9],xmm31[10],xmm3[10],xmm31[11],xmm3[11],xmm31[12],xmm3[12],xmm31[13],xmm3[13],xmm31[14],xmm3[14],xmm31[15],xmm3[15]10318; AVX512BW-FCP-NEXT:    vpshufb %xmm19, %xmm3, %xmm310319; AVX512BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm0 = zmm0[0,1,0,1],zmm3[0,1,0,1]10320; AVX512BW-FCP-NEXT:    vpshufb %xmm21, %xmm16, %xmm310321; AVX512BW-FCP-NEXT:    vpshufb %xmm22, %xmm7, %xmm510322; AVX512BW-FCP-NEXT:    vpor %xmm3, %xmm5, %xmm310323; AVX512BW-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm5 = xmm16[8],xmm7[8],xmm16[9],xmm7[9],xmm16[10],xmm7[10],xmm16[11],xmm7[11],xmm16[12],xmm7[12],xmm16[13],xmm7[13],xmm16[14],xmm7[14],xmm16[15],xmm7[15]10324; AVX512BW-FCP-NEXT:    vpshufb %xmm17, %xmm5, %xmm510325; AVX512BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm3 = zmm3[0,1,0,1],zmm5[0,1,0,1]10326; AVX512BW-FCP-NEXT:    vmovdqu8 %zmm0, %zmm3 {%k1}10327; AVX512BW-FCP-NEXT:    vpshufb %xmm24, %xmm29, %xmm010328; AVX512BW-FCP-NEXT:    vpshufb %xmm25, %xmm30, %xmm510329; AVX512BW-FCP-NEXT:    vpor %xmm0, %xmm5, %xmm010330; AVX512BW-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm5 = xmm30[8],xmm29[8],xmm30[9],xmm29[9],xmm30[10],xmm29[10],xmm30[11],xmm29[11],xmm30[12],xmm29[12],xmm30[13],xmm29[13],xmm30[14],xmm29[14],xmm30[15],xmm29[15]10331; AVX512BW-FCP-NEXT:    vpshufb %xmm20, %xmm5, %xmm510332; AVX512BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm0 = zmm0[0,1,0,1],zmm5[0,1,0,1]10333; AVX512BW-FCP-NEXT:    vpmovsxbw {{.*#+}} zmm5 = [18,18,18,20,18,18,18,20,19,19,19,19,18,18,18,20,20,21,20,21,21,22,21,22,20,21,20,21,21,22,21,22]10334; AVX512BW-FCP-NEXT:    vpermw %zmm15, %zmm5, %zmm510335; AVX512BW-FCP-NEXT:    movabsq $290499906672591364, %rax # imm = 0x40810204081020410336; AVX512BW-FCP-NEXT:    kmovq %rax, %k210337; AVX512BW-FCP-NEXT:    vmovdqu8 %zmm5, %zmm0 {%k2}10338; AVX512BW-FCP-NEXT:    movabsq $-8714997200177740921, %rax # imm = 0x870E1C3870E1C38710339; AVX512BW-FCP-NEXT:    kmovq %rax, %k210340; AVX512BW-FCP-NEXT:    vmovdqu8 %zmm0, %zmm3 {%k2}10341; AVX512BW-FCP-NEXT:    vpshufb {{.*#+}} zmm0 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zmm11[18],zero,zmm11[18,19,20,21],zero,zmm11[19],zero,zmm11[25,26,27,22],zero,zmm11[20],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zmm11[56,57],zero,zmm11[55],zero,zmm11[53,54,55,58],zero,zmm11[56],zero,zmm11[60,61,58,59]10342; AVX512BW-FCP-NEXT:    vpshufb {{.*#+}} zmm5 = zmm12[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zmm12[18],zero,zero,zero,zero,zmm12[21],zero,zmm12[19],zero,zero,zero,zero,zmm12[22],zero,zmm12[20,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,zmm12[57],zero,zmm12[55],zero,zero,zero,zero,zmm12[58],zero,zmm12[56],zero,zero,zero,zero10343; AVX512BW-FCP-NEXT:    vporq %zmm0, %zmm5, %zmm010344; AVX512BW-FCP-NEXT:    vinserti64x4 $1, %ymm10, %zmm1, %zmm110345; AVX512BW-FCP-NEXT:    vpshufb {{.*#+}} zmm1 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zmm1[18,19,20,21],zero,zmm1[19],zero,zmm1[21,20,21,22],zero,zmm1[20],zero,zmm1[22,23,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,57],zero,zmm1[55],zero,zero,zero,zero,zmm1[58],zero,zmm1[56],zero,zero,zero,zero,zmm1[59],zero10346; AVX512BW-FCP-NEXT:    vinserti64x4 $1, %ymm9, %zmm2, %zmm210347; AVX512BW-FCP-NEXT:    vpshufb {{.*#+}} zmm2 = zmm2[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,zero,zero,zmm2[21],zero,zmm2[19],zero,zero,zero,zero,zmm2[22],zero,zmm2[20],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zmm2[55],zero,zero,zero,zero,zmm2[58],zero,zmm2[56],zero,zero,zero,zero,zmm2[59],zero,zmm2[57]10348; AVX512BW-FCP-NEXT:    vporq %zmm1, %zmm2, %zmm110349; AVX512BW-FCP-NEXT:    vpermq {{.*#+}} zmm0 = zmm0[2,3,2,3,6,7,6,7]10350; AVX512BW-FCP-NEXT:    vpermq {{.*#+}} zmm1 = zmm1[2,3,2,3,6,7,6,7]10351; AVX512BW-FCP-NEXT:    vmovdqu8 %zmm1, %zmm0 {%k1}10352; AVX512BW-FCP-NEXT:    vpshufb {{.*#+}} zmm1 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zmm14[20],zero,zmm14[18],zero,zmm14[20,21,20,21],zero,zmm14[19],zero,zmm14[19,20,21,22],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zmm14[56,57,56,57],zero,zmm14[55],zero,zmm14[55,56,57,58],zero,zmm14[56],zero,zmm14[62,63]10353; AVX512BW-FCP-NEXT:    vpshufb {{.*#+}} zmm2 = zmm13[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zmm13[20],zero,zmm13[18],zero,zero,zero,zero,zmm13[21],zero,zmm13[19],zero,zero,zero,zero,zmm13[22,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,zero,zero,zmm13[57],zero,zmm13[55],zero,zero,zero,zero,zmm13[58],zero,zmm13[56],zero,zero10354; AVX512BW-FCP-NEXT:    vporq %zmm1, %zmm2, %zmm110355; AVX512BW-FCP-NEXT:    vpmovsxbw {{.*#+}} zmm2 = [10,9,9,10,10,9,9,10,9,10,14,15,10,9,9,10,11,13,12,11,12,13,13,12,11,13,12,11,12,13,13,12]10356; AVX512BW-FCP-NEXT:    vpermw %zmm15, %zmm2, %zmm210357; AVX512BW-FCP-NEXT:    vpermq {{.*#+}} zmm1 = zmm1[2,3,2,3,6,7,6,7]10358; AVX512BW-FCP-NEXT:    movabsq $1161999626690365456, %rax # imm = 0x102040810204081010359; AVX512BW-FCP-NEXT:    kmovq %rax, %k110360; AVX512BW-FCP-NEXT:    vmovdqu8 %zmm2, %zmm1 {%k1}10361; AVX512BW-FCP-NEXT:    movabsq $2033499346708139548, %rax # imm = 0x1C3870E1C3870E1C10362; AVX512BW-FCP-NEXT:    kmovq %rax, %k110363; AVX512BW-FCP-NEXT:    vmovdqu8 %zmm1, %zmm0 {%k1}10364; AVX512BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax10365; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, 128(%rax)10366; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm4, 320(%rax)10367; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, 256(%rax)10368; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm28, 384(%rax)10369; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm23, 192(%rax)10370; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm18, (%rax)10371; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm8, 64(%rax)10372; AVX512BW-FCP-NEXT:    vzeroupper10373; AVX512BW-FCP-NEXT:    retq10374;10375; AVX512DQ-BW-LABEL: store_i8_stride7_vf64:10376; AVX512DQ-BW:       # %bb.0:10377; AVX512DQ-BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax10378; AVX512DQ-BW-NEXT:    vmovdqa64 (%rax), %zmm1410379; AVX512DQ-BW-NEXT:    vmovdqa64 32(%rdx), %ymm1610380; AVX512DQ-BW-NEXT:    vmovdqa {{.*#+}} ymm2 = [0,1,0,1,14,128,14,15,0,1,14,15,128,13,14,15,16,17,16,128,30,31,30,31,16,17,128,31,28,29,30,31]10381; AVX512DQ-BW-NEXT:    vpshufb %ymm2, %ymm16, %ymm110382; AVX512DQ-BW-NEXT:    vmovdqa64 32(%rcx), %ymm1810383; AVX512DQ-BW-NEXT:    vmovdqa {{.*#+}} ymm3 = [128,128,128,128,128,14,128,128,128,128,128,128,15,128,128,128,128,128,128,16,128,128,128,128,128,128,17,128,128,128,128,128]10384; AVX512DQ-BW-NEXT:    vpshufb %ymm3, %ymm18, %ymm410385; AVX512DQ-BW-NEXT:    vpor %ymm1, %ymm4, %ymm110386; AVX512DQ-BW-NEXT:    vmovdqa64 {{.*#+}} zmm0 = [128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,18,128,18,19,20,21,128,19,128,25,26,27,22,128,20,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,24,25,128,23,128,21,22,23,26,128,24,128,28,29,26,27]10387; AVX512DQ-BW-NEXT:    vpshufb %ymm0, %ymm16, %ymm410388; AVX512DQ-BW-NEXT:    vmovdqa64 {{.*#+}} zmm0 = [u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,128,18,128,128,128,128,21,128,19,128,128,128,128,22,128,20,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,128,128,25,128,23,128,128,128,128,26,128,24,128,128,128,128]10389; AVX512DQ-BW-NEXT:    vpshufb %ymm0, %ymm18, %ymm510390; AVX512DQ-BW-NEXT:    vpor %ymm4, %ymm5, %ymm410391; AVX512DQ-BW-NEXT:    vpermq {{.*#+}} ymm4 = ymm4[2,3,2,3]10392; AVX512DQ-BW-NEXT:    vinserti64x4 $1, %ymm4, %zmm1, %zmm410393; AVX512DQ-BW-NEXT:    vmovdqa64 32(%rsi), %ymm2410394; AVX512DQ-BW-NEXT:    vmovdqa64 32(%rdi), %ymm2310395; AVX512DQ-BW-NEXT:    vpshuflw {{.*#+}} ymm1 = ymm23[1,2,2,3,4,5,6,7,9,10,10,11,12,13,14,15]10396; AVX512DQ-BW-NEXT:    vpshufd {{.*#+}} ymm1 = ymm1[0,0,1,1,4,4,5,5]10397; AVX512DQ-BW-NEXT:    movl $676341840, %r10d # imm = 0x2850285010398; AVX512DQ-BW-NEXT:    kmovd %r10d, %k110399; AVX512DQ-BW-NEXT:    vpshufb {{.*#+}} ymm1 {%k1} = ymm24[u,u,u,u,5,u,3,u,u,u,u,6,u,4,u,u,u,u,u,u,21,u,19,u,u,u,u,22,u,20,u,u]10400; AVX512DQ-BW-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[2,3,2,3]10401; AVX512DQ-BW-NEXT:    vmovdqa {{.*#+}} ymm8 = [0,1,14,128,12,13,0,1,14,15,128,3,12,13,2,3,16,128,30,31,28,29,16,17,128,31,18,19,28,29,18,128]10402; AVX512DQ-BW-NEXT:    vpshufb %ymm8, %ymm23, %ymm510403; AVX512DQ-BW-NEXT:    vmovdqa {{.*#+}} ymm10 = [128,128,128,14,128,128,128,128,128,128,15,128,128,128,128,128,128,16,128,128,128,128,128,128,17,128,128,128,128,128,128,18]10404; AVX512DQ-BW-NEXT:    vpshufb %ymm10, %ymm24, %ymm610405; AVX512DQ-BW-NEXT:    vpor %ymm5, %ymm6, %ymm510406; AVX512DQ-BW-NEXT:    vinserti64x4 $1, %ymm1, %zmm5, %zmm610407; AVX512DQ-BW-NEXT:    movabsq $3485998880071096368, %r10 # imm = 0x3060C183060C183010408; AVX512DQ-BW-NEXT:    kmovq %r10, %k210409; AVX512DQ-BW-NEXT:    vmovdqu8 %zmm4, %zmm6 {%k2}10410; AVX512DQ-BW-NEXT:    vmovdqa 32(%r9), %ymm410411; AVX512DQ-BW-NEXT:    vmovdqa {{.*#+}} ymm5 = [13,128,128,128,128,128,128,14,128,128,128,128,128,128,15,128,128,128,128,128,128,16,128,128,128,128,128,128,17,128,128,128]10412; AVX512DQ-BW-NEXT:    vpshufb %ymm5, %ymm4, %ymm710413; AVX512DQ-BW-NEXT:    vmovdqa 32(%r8), %ymm910414; AVX512DQ-BW-NEXT:    vmovdqa {{.*#+}} ymm1 = [128,128,128,128,128,128,14,128,128,128,128,128,128,15,128,128,128,128,128,128,16,128,128,128,128,128,128,17,128,128,128,128]10415; AVX512DQ-BW-NEXT:    vpshufb %ymm1, %ymm9, %ymm1110416; AVX512DQ-BW-NEXT:    vpor %ymm7, %ymm11, %ymm1110417; AVX512DQ-BW-NEXT:    vmovdqa64 {{.*#+}} zmm0 = [128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,20,128,18,128,20,21,20,21,128,19,128,19,20,21,22,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,24,25,24,25,128,23,128,23,24,25,26,128,24,128,30,31]10418; AVX512DQ-BW-NEXT:    vpshufb %ymm0, %ymm9, %ymm910419; AVX512DQ-BW-NEXT:    vmovdqa64 {{.*#+}} zmm0 = [u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,128,20,128,18,128,128,128,128,21,128,19,128,128,128,128,22,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,128,128,128,128,25,128,23,128,128,128,128,26,128,24,128,128]10420; AVX512DQ-BW-NEXT:    vpshufb %ymm0, %ymm4, %ymm410421; AVX512DQ-BW-NEXT:    vpor %ymm4, %ymm9, %ymm410422; AVX512DQ-BW-NEXT:    vpermq {{.*#+}} ymm4 = ymm4[2,3,2,3]10423; AVX512DQ-BW-NEXT:    vinserti64x4 $1, %ymm4, %zmm11, %zmm410424; AVX512DQ-BW-NEXT:    vmovdqa 32(%rax), %ymm1110425; AVX512DQ-BW-NEXT:    vpmovsxbw {{.*#+}} zmm0 = [10,9,9,10,10,9,9,10,9,10,14,15,10,9,9,10,11,13,12,11,12,13,13,12,11,13,12,11,12,13,13,12]10426; AVX512DQ-BW-NEXT:    vpermw %ymm11, %ymm0, %ymm1210427; AVX512DQ-BW-NEXT:    vpshufb {{.*#+}} ymm11 = ymm11[12,13,2,3,12,13,0,1,14,15,2,3,0,1,14,15,28,29,18,19,28,29,16,17,30,31,18,19,16,17,30,31]10428; AVX512DQ-BW-NEXT:    vinserti64x4 $1, %ymm12, %zmm11, %zmm1110429; AVX512DQ-BW-NEXT:    movabsq $145249953336295682, %rax # imm = 0x20408102040810210430; AVX512DQ-BW-NEXT:    kmovq %rax, %k310431; AVX512DQ-BW-NEXT:    vmovdqu8 %zmm11, %zmm4 {%k3}10432; AVX512DQ-BW-NEXT:    movabsq $-4357498600088870461, %rax # imm = 0xC3870E1C3870E1C310433; AVX512DQ-BW-NEXT:    kmovq %rax, %k310434; AVX512DQ-BW-NEXT:    vmovdqu8 %zmm4, %zmm6 {%k3}10435; AVX512DQ-BW-NEXT:    vmovdqa (%rdi), %ymm1310436; AVX512DQ-BW-NEXT:    vpshufb %ymm8, %ymm13, %ymm410437; AVX512DQ-BW-NEXT:    vmovdqa (%rsi), %ymm1510438; AVX512DQ-BW-NEXT:    vpshufb %ymm10, %ymm15, %ymm810439; AVX512DQ-BW-NEXT:    vpor %ymm4, %ymm8, %ymm410440; AVX512DQ-BW-NEXT:    vmovdqa64 (%rdi), %xmm2510441; AVX512DQ-BW-NEXT:    vmovdqa 32(%rdi), %xmm810442; AVX512DQ-BW-NEXT:    vmovdqa64 (%rsi), %xmm2610443; AVX512DQ-BW-NEXT:    vmovdqa 32(%rsi), %xmm1010444; AVX512DQ-BW-NEXT:    vpunpckhbw {{.*#+}} xmm12 = xmm26[8],xmm25[8],xmm26[9],xmm25[9],xmm26[10],xmm25[10],xmm26[11],xmm25[11],xmm26[12],xmm25[12],xmm26[13],xmm25[13],xmm26[14],xmm25[14],xmm26[15],xmm25[15]10445; AVX512DQ-BW-NEXT:    vmovdqa {{.*#+}} xmm11 = [2,u,u,u,9,8,5,4,u,u,u,11,10,7,6,u]10446; AVX512DQ-BW-NEXT:    vpshufb %xmm11, %xmm12, %xmm1210447; AVX512DQ-BW-NEXT:    vpermq {{.*#+}} ymm12 = ymm12[0,1,0,1]10448; AVX512DQ-BW-NEXT:    vinserti64x4 $1, %ymm4, %zmm12, %zmm410449; AVX512DQ-BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm17 = mem[0,1,2,3,0,1,2,3]10450; AVX512DQ-BW-NEXT:    vpshufb %ymm2, %ymm17, %ymm210451; AVX512DQ-BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm19 = mem[0,1,2,3,0,1,2,3]10452; AVX512DQ-BW-NEXT:    vpshufb %ymm3, %ymm19, %ymm310453; AVX512DQ-BW-NEXT:    vpor %ymm2, %ymm3, %ymm210454; AVX512DQ-BW-NEXT:    vpunpckhbw {{.*#+}} xmm3 = xmm19[8],xmm17[8],xmm19[9],xmm17[9],xmm19[10],xmm17[10],xmm19[11],xmm17[11],xmm19[12],xmm17[12],xmm19[13],xmm17[13],xmm19[14],xmm17[14],xmm19[15],xmm17[15]10455; AVX512DQ-BW-NEXT:    vmovdqa {{.*#+}} xmm12 = [6,3,2,u,u,u,9,8,5,4,u,u,u,11,10,7]10456; AVX512DQ-BW-NEXT:    vpshufb %xmm12, %xmm3, %xmm310457; AVX512DQ-BW-NEXT:    vpermq {{.*#+}} ymm3 = ymm3[0,1,0,1]10458; AVX512DQ-BW-NEXT:    vinserti64x4 $1, %ymm2, %zmm3, %zmm210459; AVX512DQ-BW-NEXT:    movabsq $435749860008887046, %rax # imm = 0x60C183060C1830610460; AVX512DQ-BW-NEXT:    kmovq %rax, %k310461; AVX512DQ-BW-NEXT:    vmovdqu8 %zmm2, %zmm4 {%k3}10462; AVX512DQ-BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm20 = mem[0,1,2,3,0,1,2,3]10463; AVX512DQ-BW-NEXT:    vpshufb %ymm5, %ymm20, %ymm210464; AVX512DQ-BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm22 = mem[0,1,2,3,0,1,2,3]10465; AVX512DQ-BW-NEXT:    vpshufb %ymm1, %ymm22, %ymm310466; AVX512DQ-BW-NEXT:    vpor %ymm2, %ymm3, %ymm210467; AVX512DQ-BW-NEXT:    vpunpckhbw {{.*#+}} xmm3 = xmm22[8],xmm20[8],xmm22[9],xmm20[9],xmm22[10],xmm20[10],xmm22[11],xmm20[11],xmm22[12],xmm20[12],xmm22[13],xmm20[13],xmm22[14],xmm20[14],xmm22[15],xmm20[15]10468; AVX512DQ-BW-NEXT:    vmovdqa {{.*#+}} xmm9 = [u,6,7,2,3,u,u,u,8,9,4,5,u,u,u,10]10469; AVX512DQ-BW-NEXT:    vpshufb %xmm9, %xmm3, %xmm310470; AVX512DQ-BW-NEXT:    vpermq {{.*#+}} ymm3 = ymm3[0,1,0,1]10471; AVX512DQ-BW-NEXT:    vinserti64x4 $1, %ymm2, %zmm3, %zmm210472; AVX512DQ-BW-NEXT:    vpmovsxbw {{.*#+}} zmm3 = [4,5,4,5,5,6,5,6,4,5,4,5,5,6,5,6,6,1,6,0,7,1,0,7,14,9,14,8,15,9,8,15]10473; AVX512DQ-BW-NEXT:    vpermw %zmm14, %zmm3, %zmm310474; AVX512DQ-BW-NEXT:    movabsq $2323999253380730912, %rax # imm = 0x204081020408102010475; AVX512DQ-BW-NEXT:    kmovq %rax, %k310476; AVX512DQ-BW-NEXT:    vmovdqu8 %zmm3, %zmm2 {%k3}10477; AVX512DQ-BW-NEXT:    movabsq $4066998693416279096, %rax # imm = 0x3870E1C3870E1C3810478; AVX512DQ-BW-NEXT:    kmovq %rax, %k310479; AVX512DQ-BW-NEXT:    vmovdqu8 %zmm2, %zmm4 {%k3}10480; AVX512DQ-BW-NEXT:    vpshufhw {{.*#+}} ymm2 = ymm13[0,1,2,3,6,7,7,6,8,9,10,11,14,15,15,14]10481; AVX512DQ-BW-NEXT:    vpshufd {{.*#+}} ymm2 = ymm2[2,2,3,3,6,6,7,7]10482; AVX512DQ-BW-NEXT:    vpbroadcastd {{.*#+}} ymm3 = [13,12,15,14,13,12,15,14,13,12,15,14,13,12,15,14,13,12,15,14,13,12,15,14,13,12,15,14,13,12,15,14]10483; AVX512DQ-BW-NEXT:    movl $338170920, %eax # imm = 0x1428142810484; AVX512DQ-BW-NEXT:    kmovd %eax, %k310485; AVX512DQ-BW-NEXT:    vpshufb %ymm3, %ymm15, %ymm2 {%k3}10486; AVX512DQ-BW-NEXT:    vpunpcklbw {{.*#+}} xmm5 = xmm8[0],xmm10[0],xmm8[1],xmm10[1],xmm8[2],xmm10[2],xmm8[3],xmm10[3],xmm8[4],xmm10[4],xmm8[5],xmm10[5],xmm8[6],xmm10[6],xmm8[7],xmm10[7]10487; AVX512DQ-BW-NEXT:    vmovdqa64 {{.*#+}} xmm31 = [0,1,u,u,u,6,7,2,3,u,u,u,8,9,4,5]10488; AVX512DQ-BW-NEXT:    vpshufb %xmm31, %xmm5, %xmm510489; AVX512DQ-BW-NEXT:    vshufi64x2 {{.*#+}} zmm2 = zmm2[2,3,2,3],zmm5[0,1,0,1]10490; AVX512DQ-BW-NEXT:    vpbroadcastq {{.*#+}} ymm1 = [11,0,0,0,15,14,13,12,11,0,0,0,15,14,13,12,11,0,0,0,15,14,13,12,11,0,0,0,15,14,13,12]10491; AVX512DQ-BW-NEXT:    vpshufb %ymm1, %ymm19, %ymm510492; AVX512DQ-BW-NEXT:    vpshufhw {{.*#+}} ymm7 = ymm17[0,1,2,3,7,6,6,7,8,9,10,11,15,14,14,15]10493; AVX512DQ-BW-NEXT:    vpshufd {{.*#+}} ymm7 = ymm7[0,2,3,3,4,6,7,7]10494; AVX512DQ-BW-NEXT:    vmovdqu8 %ymm7, %ymm5 {%k1}10495; AVX512DQ-BW-NEXT:    vmovdqa64 32(%rcx), %xmm2710496; AVX512DQ-BW-NEXT:    vmovdqa64 32(%rdx), %xmm2910497; AVX512DQ-BW-NEXT:    vpunpcklbw {{.*#+}} xmm21 = xmm29[0],xmm27[0],xmm29[1],xmm27[1],xmm29[2],xmm27[2],xmm29[3],xmm27[3],xmm29[4],xmm27[4],xmm29[5],xmm27[5],xmm29[6],xmm27[6],xmm29[7],xmm27[7]10498; AVX512DQ-BW-NEXT:    vmovdqa {{.*#+}} xmm7 = [4,5,0,1,u,u,u,6,7,2,3,u,u,u,8,9]10499; AVX512DQ-BW-NEXT:    vpshufb %xmm7, %xmm21, %xmm2110500; AVX512DQ-BW-NEXT:    vshufi64x2 {{.*#+}} zmm21 = zmm5[2,3,2,3],zmm21[0,1,0,1]10501; AVX512DQ-BW-NEXT:    vmovdqu8 %zmm2, %zmm21 {%k2}10502; AVX512DQ-BW-NEXT:    vpshufb {{.*#+}} ymm2 = ymm20[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,29],zero,ymm20[27],zero,zero,zero,zero,ymm20[30],zero,ymm20[28],zero,zero,zero,zero,ymm20[31],zero10503; AVX512DQ-BW-NEXT:    vpshufb {{.*#+}} ymm5 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm22[27],zero,zero,zero,zero,ymm22[30],zero,ymm22[28],zero,zero,zero,zero,ymm22[31],zero,ymm22[29]10504; AVX512DQ-BW-NEXT:    vpor %ymm2, %ymm5, %ymm210505; AVX512DQ-BW-NEXT:    vmovdqa64 32(%r9), %xmm2810506; AVX512DQ-BW-NEXT:    vmovdqa64 32(%r8), %xmm3010507; AVX512DQ-BW-NEXT:    vpunpcklbw {{.*#+}} xmm0 = xmm30[0],xmm28[0],xmm30[1],xmm28[1],xmm30[2],xmm28[2],xmm30[3],xmm28[3],xmm30[4],xmm28[4],xmm30[5],xmm28[5],xmm30[6],xmm28[6],xmm30[7],xmm28[7]10508; AVX512DQ-BW-NEXT:    vmovdqa {{.*#+}} xmm5 = [u,u,4,5,0,1,u,u,u,6,7,2,3,u,u,u]10509; AVX512DQ-BW-NEXT:    vpshufb %xmm5, %xmm0, %xmm010510; AVX512DQ-BW-NEXT:    vshufi64x2 {{.*#+}} zmm0 = zmm2[2,3,2,3],zmm0[0,1,0,1]10511; AVX512DQ-BW-NEXT:    vpmovsxbw {{.*#+}} zmm2 = [14,13,14,15,15,14,14,15,14,13,14,15,15,14,14,15,17,17,16,16,17,17,16,16,20,21,17,17,17,17,16,16]10512; AVX512DQ-BW-NEXT:    vpermw %zmm14, %zmm2, %zmm210513; AVX512DQ-BW-NEXT:    movabsq $580999813345182728, %rax # imm = 0x81020408102040810514; AVX512DQ-BW-NEXT:    kmovq %rax, %k210515; AVX512DQ-BW-NEXT:    vmovdqu8 %zmm2, %zmm0 {%k2}10516; AVX512DQ-BW-NEXT:    movabsq $1016749673354069774, %rax # imm = 0xE1C3870E1C3870E10517; AVX512DQ-BW-NEXT:    kmovq %rax, %k210518; AVX512DQ-BW-NEXT:    vmovdqu8 %zmm0, %zmm21 {%k2}10519; AVX512DQ-BW-NEXT:    vpshufhw {{.*#+}} ymm0 = ymm23[0,1,2,3,6,7,7,6,8,9,10,11,14,15,15,14]10520; AVX512DQ-BW-NEXT:    vpshufd {{.*#+}} ymm0 = ymm0[2,2,3,3,6,6,7,7]10521; AVX512DQ-BW-NEXT:    vpshufb %ymm3, %ymm24, %ymm0 {%k3}10522; AVX512DQ-BW-NEXT:    vbroadcasti128 {{.*#+}} ymm3 = [25,128,23,128,128,128,128,26,128,24,128,128,128,128,27,128,25,128,23,128,128,128,128,26,128,24,128,128,128,128,27,128]10523; AVX512DQ-BW-NEXT:    # ymm3 = mem[0,1,0,1]10524; AVX512DQ-BW-NEXT:    vpshufb %ymm3, %ymm24, %ymm210525; AVX512DQ-BW-NEXT:    vmovdqa64 {{.*#+}} ymm24 = [128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,23,128,128,128,128,26,128,24,128,128,128,128,27,128,25]10526; AVX512DQ-BW-NEXT:    vpshufb %ymm24, %ymm23, %ymm2310527; AVX512DQ-BW-NEXT:    vporq %ymm2, %ymm23, %ymm210528; AVX512DQ-BW-NEXT:    vshufi64x2 {{.*#+}} zmm23 = zmm2[2,3,2,3],zmm0[2,3,2,3]10529; AVX512DQ-BW-NEXT:    vpshufb {{.*#+}} ymm0 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm16[24,25],zero,ymm16[23],zero,ymm16[21,22,23,26],zero,ymm16[24],zero,ymm16[28,29,26,27]10530; AVX512DQ-BW-NEXT:    vpshufb {{.*#+}} ymm2 = ymm18[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,ymm18[25],zero,ymm18[23],zero,zero,zero,zero,ymm18[26],zero,ymm18[24],zero,zero,zero,zero10531; AVX512DQ-BW-NEXT:    vpor %ymm0, %ymm2, %ymm010532; AVX512DQ-BW-NEXT:    vpshufb %ymm1, %ymm18, %ymm110533; AVX512DQ-BW-NEXT:    vpshufhw {{.*#+}} ymm2 = ymm16[0,1,2,3,7,6,6,7,8,9,10,11,15,14,14,15]10534; AVX512DQ-BW-NEXT:    vpshufd {{.*#+}} ymm2 = ymm2[0,2,3,3,4,6,7,7]10535; AVX512DQ-BW-NEXT:    vmovdqu8 %ymm2, %ymm1 {%k1}10536; AVX512DQ-BW-NEXT:    vshufi64x2 {{.*#+}} zmm0 = zmm0[2,3,2,3],zmm1[2,3,2,3]10537; AVX512DQ-BW-NEXT:    movabsq $1742999440035548184, %rax # imm = 0x183060C183060C1810538; AVX512DQ-BW-NEXT:    kmovq %rax, %k210539; AVX512DQ-BW-NEXT:    vmovdqu8 %zmm0, %zmm23 {%k2}10540; AVX512DQ-BW-NEXT:    vmovdqa64 (%r8), %zmm010541; AVX512DQ-BW-NEXT:    vmovdqa64 (%r9), %zmm110542; AVX512DQ-BW-NEXT:    vshufi64x2 {{.*#+}} zmm2 = zmm0[4,5,6,7],zmm1[4,5,6,7]10543; AVX512DQ-BW-NEXT:    vshufi64x2 {{.*#+}} zmm0 = zmm1[4,5,6,7],zmm0[4,5,6,7]10544; AVX512DQ-BW-NEXT:    vpshufb {{.*#+}} zmm1 = zmm2[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,24,25,24,25],zero,zmm2[23],zero,zmm2[23,24,25,26],zero,zmm2[24],zero,zmm2[30,31,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,61],zero,zmm2[59],zero,zero,zero,zero,zmm2[62],zero,zmm2[60],zero,zero,zero,zero,zmm2[63],zero10545; AVX512DQ-BW-NEXT:    vpshufb {{.*#+}} zmm0 = zmm0[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,zero,zero,zmm0[25],zero,zmm0[23],zero,zero,zero,zero,zmm0[26],zero,zmm0[24],zero,zero,zmm0[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zmm0[59],zero,zero,zero,zero,zmm0[62],zero,zmm0[60],zero,zero,zero,zero,zmm0[63],zero,zmm0[61]10546; AVX512DQ-BW-NEXT:    vporq %zmm1, %zmm0, %zmm010547; AVX512DQ-BW-NEXT:    vpermq {{.*#+}} zmm0 = zmm0[2,3,2,3,6,7,6,7]10548; AVX512DQ-BW-NEXT:    movabsq $6971997760142192736, %rax # imm = 0x60C183060C18306010549; AVX512DQ-BW-NEXT:    kmovq %rax, %k210550; AVX512DQ-BW-NEXT:    vmovdqu8 %zmm0, %zmm23 {%k2}10551; AVX512DQ-BW-NEXT:    vpmovsxbw {{.*#+}} zmm0 = [27,29,28,27,28,29,29,28,27,29,28,27,28,29,29,28,30,29,30,31,31,30,30,31,30,29,30,31,31,30,30,31]10552; AVX512DQ-BW-NEXT:    vpermw %zmm14, %zmm0, %zmm010553; AVX512DQ-BW-NEXT:    movabsq $-9150747060186627967, %rax # imm = 0x810204081020408110554; AVX512DQ-BW-NEXT:    kmovq %rax, %k310555; AVX512DQ-BW-NEXT:    vmovdqu8 %zmm0, %zmm23 {%k3}10556; AVX512DQ-BW-NEXT:    vmovdqa64 {{.*#+}} xmm18 = [u,128,7,128,5,u,u,u,128,8,128,6,u,u,u,128]10557; AVX512DQ-BW-NEXT:    vpshufb %xmm18, %xmm26, %xmm010558; AVX512DQ-BW-NEXT:    vmovdqa {{.*#+}} xmm2 = [u,7,128,5,128,u,u,u,8,128,6,128,u,u,u,9]10559; AVX512DQ-BW-NEXT:    vpshufb %xmm2, %xmm25, %xmm110560; AVX512DQ-BW-NEXT:    vpor %xmm0, %xmm1, %xmm010561; AVX512DQ-BW-NEXT:    vpunpcklbw {{.*#+}} xmm1 = xmm25[0],xmm26[0],xmm25[1],xmm26[1],xmm25[2],xmm26[2],xmm25[3],xmm26[3],xmm25[4],xmm26[4],xmm25[5],xmm26[5],xmm25[6],xmm26[6],xmm25[7],xmm26[7]10562; AVX512DQ-BW-NEXT:    vpshufb %xmm31, %xmm1, %xmm110563; AVX512DQ-BW-NEXT:    vshufi64x2 {{.*#+}} zmm16 = zmm1[0,1,0,1],zmm0[0,1,0,1]10564; AVX512DQ-BW-NEXT:    vmovdqa {{.*#+}} xmm0 = [u,u,u,128,7,128,5,u,u,u,128,8,128,6,u,u]10565; AVX512DQ-BW-NEXT:    vpshufb %xmm0, %xmm19, %xmm110566; AVX512DQ-BW-NEXT:    vmovdqa64 {{.*#+}} xmm26 = [u,u,u,7,128,5,128,u,u,u,8,128,6,128,u,u]10567; AVX512DQ-BW-NEXT:    vpshufb %xmm26, %xmm17, %xmm2510568; AVX512DQ-BW-NEXT:    vporq %xmm1, %xmm25, %xmm110569; AVX512DQ-BW-NEXT:    vpunpcklbw {{.*#+}} xmm25 = xmm17[0],xmm19[0],xmm17[1],xmm19[1],xmm17[2],xmm19[2],xmm17[3],xmm19[3],xmm17[4],xmm19[4],xmm17[5],xmm19[5],xmm17[6],xmm19[6],xmm17[7],xmm19[7]10570; AVX512DQ-BW-NEXT:    vpshufb %xmm7, %xmm25, %xmm710571; AVX512DQ-BW-NEXT:    vshufi64x2 {{.*#+}} zmm1 = zmm7[0,1,0,1],zmm1[0,1,0,1]10572; AVX512DQ-BW-NEXT:    movabsq $871499720017774092, %rax # imm = 0xC183060C183060C10573; AVX512DQ-BW-NEXT:    kmovq %rax, %k310574; AVX512DQ-BW-NEXT:    vmovdqu8 %zmm1, %zmm16 {%k3}10575; AVX512DQ-BW-NEXT:    vmovdqa {{.*#+}} xmm1 = [128,4,u,u,u,128,7,128,5,u,u,u,128,8,128,6]10576; AVX512DQ-BW-NEXT:    vpshufb %xmm1, %xmm20, %xmm710577; AVX512DQ-BW-NEXT:    vmovdqa64 {{.*#+}} xmm25 = [4,128,u,u,u,7,128,5,128,u,u,u,8,128,6,128]10578; AVX512DQ-BW-NEXT:    vpshufb %xmm25, %xmm22, %xmm3110579; AVX512DQ-BW-NEXT:    vporq %xmm7, %xmm31, %xmm710580; AVX512DQ-BW-NEXT:    vpunpcklbw {{.*#+}} xmm31 = xmm22[0],xmm20[0],xmm22[1],xmm20[1],xmm22[2],xmm20[2],xmm22[3],xmm20[3],xmm22[4],xmm20[4],xmm22[5],xmm20[5],xmm22[6],xmm20[6],xmm22[7],xmm20[7]10581; AVX512DQ-BW-NEXT:    vpshufb %xmm5, %xmm31, %xmm510582; AVX512DQ-BW-NEXT:    vshufi64x2 {{.*#+}} zmm5 = zmm5[0,1,0,1],zmm7[0,1,0,1]10583; AVX512DQ-BW-NEXT:    vpmovsxbw {{.*#+}} zmm7 = [1,1,0,0,1,1,0,0,4,5,1,1,1,1,0,0,2,2,2,4,2,2,2,4,3,3,3,3,2,2,2,4]10584; AVX512DQ-BW-NEXT:    vpermw %zmm14, %zmm7, %zmm710585; AVX512DQ-BW-NEXT:    movabsq $4647998506761461824, %rax # imm = 0x408102040810204010586; AVX512DQ-BW-NEXT:    kmovq %rax, %k310587; AVX512DQ-BW-NEXT:    vmovdqu8 %zmm7, %zmm5 {%k3}10588; AVX512DQ-BW-NEXT:    movabsq $8133997386832558192, %rax # imm = 0x70E1C3870E1C387010589; AVX512DQ-BW-NEXT:    kmovq %rax, %k310590; AVX512DQ-BW-NEXT:    vmovdqu8 %zmm5, %zmm16 {%k3}10591; AVX512DQ-BW-NEXT:    vpshuflw {{.*#+}} ymm5 = ymm13[1,2,2,3,4,5,6,7,9,10,10,11,12,13,14,15]10592; AVX512DQ-BW-NEXT:    vpshufd {{.*#+}} ymm5 = ymm5[0,0,1,1,4,4,5,5]10593; AVX512DQ-BW-NEXT:    vpshufb {{.*#+}} ymm5 {%k1} = ymm15[u,u,u,u,5,u,3,u,u,u,u,6,u,4,u,u,u,u,u,u,21,u,19,u,u,u,u,22,u,20,u,u]10594; AVX512DQ-BW-NEXT:    vpshufb %ymm3, %ymm15, %ymm310595; AVX512DQ-BW-NEXT:    vpshufb %ymm24, %ymm13, %ymm710596; AVX512DQ-BW-NEXT:    vpor %ymm3, %ymm7, %ymm310597; AVX512DQ-BW-NEXT:    vshufi64x2 {{.*#+}} zmm3 = zmm5[2,3,2,3],zmm3[2,3,2,3]10598; AVX512DQ-BW-NEXT:    vpshufb {{.*#+}} zmm5 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zmm17[18],zero,zmm17[18,19,20,21],zero,zmm17[19],zero,zmm17[25,26,27,22],zero,zmm17[20],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zmm17[56,57],zero,zmm17[55],zero,zmm17[53,54,55,58],zero,zmm17[56],zero,zmm17[60,61,58,59]10599; AVX512DQ-BW-NEXT:    vpshufb {{.*#+}} zmm7 = zmm19[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zmm19[18],zero,zero,zero,zero,zmm19[21],zero,zmm19[19],zero,zero,zero,zero,zmm19[22],zero,zmm19[20,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,zmm19[57],zero,zmm19[55],zero,zero,zero,zero,zmm19[58],zero,zmm19[56],zero,zero,zero,zero10600; AVX512DQ-BW-NEXT:    vporq %zmm5, %zmm7, %zmm510601; AVX512DQ-BW-NEXT:    vpermq {{.*#+}} zmm5 = zmm5[2,3,2,3,6,7,6,7]10602; AVX512DQ-BW-NEXT:    vmovdqu8 %zmm3, %zmm5 {%k2}10603; AVX512DQ-BW-NEXT:    vpshufb {{.*#+}} zmm3 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zmm22[20],zero,zmm22[18],zero,zmm22[20,21,20,21],zero,zmm22[19],zero,zmm22[19,20,21,22],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zmm22[56,57,56,57],zero,zmm22[55],zero,zmm22[55,56,57,58],zero,zmm22[56],zero,zmm22[62,63]10604; AVX512DQ-BW-NEXT:    vpshufb {{.*#+}} zmm7 = zmm20[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zmm20[20],zero,zmm20[18],zero,zero,zero,zero,zmm20[21],zero,zmm20[19],zero,zero,zero,zero,zmm20[22,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,zero,zero,zmm20[57],zero,zmm20[55],zero,zero,zero,zero,zmm20[58],zero,zmm20[56],zero,zero10605; AVX512DQ-BW-NEXT:    vporq %zmm3, %zmm7, %zmm310606; AVX512DQ-BW-NEXT:    vpermq {{.*#+}} zmm3 = zmm3[2,3,2,3,6,7,6,7]10607; AVX512DQ-BW-NEXT:    vpmovsxbw {{.*#+}} zmm7 = [10,9,9,10,10,9,9,10,9,10,14,15,10,9,9,10,11,13,12,11,12,13,13,12,11,13,12,11,12,13,13,12]10608; AVX512DQ-BW-NEXT:    vpermw %zmm14, %zmm7, %zmm710609; AVX512DQ-BW-NEXT:    movabsq $1161999626690365456, %rax # imm = 0x102040810204081010610; AVX512DQ-BW-NEXT:    kmovq %rax, %k110611; AVX512DQ-BW-NEXT:    vmovdqu8 %zmm7, %zmm3 {%k1}10612; AVX512DQ-BW-NEXT:    movabsq $2033499346708139548, %rax # imm = 0x1C3870E1C3870E1C10613; AVX512DQ-BW-NEXT:    kmovq %rax, %k110614; AVX512DQ-BW-NEXT:    vmovdqu8 %zmm3, %zmm5 {%k1}10615; AVX512DQ-BW-NEXT:    vpshufb %xmm0, %xmm27, %xmm010616; AVX512DQ-BW-NEXT:    vpshufb %xmm26, %xmm29, %xmm310617; AVX512DQ-BW-NEXT:    vpor %xmm0, %xmm3, %xmm010618; AVX512DQ-BW-NEXT:    vpunpckhbw {{.*#+}} xmm3 = xmm27[8],xmm29[8],xmm27[9],xmm29[9],xmm27[10],xmm29[10],xmm27[11],xmm29[11],xmm27[12],xmm29[12],xmm27[13],xmm29[13],xmm27[14],xmm29[14],xmm27[15],xmm29[15]10619; AVX512DQ-BW-NEXT:    vpshufb %xmm12, %xmm3, %xmm310620; AVX512DQ-BW-NEXT:    vshufi64x2 {{.*#+}} zmm0 = zmm0[0,1,0,1],zmm3[0,1,0,1]10621; AVX512DQ-BW-NEXT:    vpshufb %xmm18, %xmm10, %xmm310622; AVX512DQ-BW-NEXT:    vpshufb %xmm2, %xmm8, %xmm210623; AVX512DQ-BW-NEXT:    vpor %xmm3, %xmm2, %xmm210624; AVX512DQ-BW-NEXT:    vpunpckhbw {{.*#+}} xmm3 = xmm10[8],xmm8[8],xmm10[9],xmm8[9],xmm10[10],xmm8[10],xmm10[11],xmm8[11],xmm10[12],xmm8[12],xmm10[13],xmm8[13],xmm10[14],xmm8[14],xmm10[15],xmm8[15]10625; AVX512DQ-BW-NEXT:    vpshufb %xmm11, %xmm3, %xmm310626; AVX512DQ-BW-NEXT:    vshufi64x2 {{.*#+}} zmm2 = zmm2[0,1,0,1],zmm3[0,1,0,1]10627; AVX512DQ-BW-NEXT:    vmovdqu8 %zmm0, %zmm2 {%k2}10628; AVX512DQ-BW-NEXT:    vpshufb %xmm1, %xmm28, %xmm010629; AVX512DQ-BW-NEXT:    vpshufb %xmm25, %xmm30, %xmm110630; AVX512DQ-BW-NEXT:    vpor %xmm0, %xmm1, %xmm010631; AVX512DQ-BW-NEXT:    vpunpckhbw {{.*#+}} xmm1 = xmm30[8],xmm28[8],xmm30[9],xmm28[9],xmm30[10],xmm28[10],xmm30[11],xmm28[11],xmm30[12],xmm28[12],xmm30[13],xmm28[13],xmm30[14],xmm28[14],xmm30[15],xmm28[15]10632; AVX512DQ-BW-NEXT:    vpshufb %xmm9, %xmm1, %xmm110633; AVX512DQ-BW-NEXT:    vshufi64x2 {{.*#+}} zmm0 = zmm0[0,1,0,1],zmm1[0,1,0,1]10634; AVX512DQ-BW-NEXT:    vpmovsxbw {{.*#+}} zmm1 = [18,18,18,20,18,18,18,20,19,19,19,19,18,18,18,20,20,21,20,21,21,22,21,22,20,21,20,21,21,22,21,22]10635; AVX512DQ-BW-NEXT:    vpermw %zmm14, %zmm1, %zmm110636; AVX512DQ-BW-NEXT:    movabsq $290499906672591364, %rax # imm = 0x40810204081020410637; AVX512DQ-BW-NEXT:    kmovq %rax, %k110638; AVX512DQ-BW-NEXT:    vmovdqu8 %zmm1, %zmm0 {%k1}10639; AVX512DQ-BW-NEXT:    movabsq $-8714997200177740921, %rax # imm = 0x870E1C3870E1C38710640; AVX512DQ-BW-NEXT:    kmovq %rax, %k110641; AVX512DQ-BW-NEXT:    vmovdqu8 %zmm0, %zmm2 {%k1}10642; AVX512DQ-BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax10643; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm2, 256(%rax)10644; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm5, 128(%rax)10645; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm6, 320(%rax)10646; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm16, (%rax)10647; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm23, 384(%rax)10648; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm21, 192(%rax)10649; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm4, 64(%rax)10650; AVX512DQ-BW-NEXT:    vzeroupper10651; AVX512DQ-BW-NEXT:    retq10652;10653; AVX512DQ-BW-FCP-LABEL: store_i8_stride7_vf64:10654; AVX512DQ-BW-FCP:       # %bb.0:10655; AVX512DQ-BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax10656; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%rax), %zmm1510657; AVX512DQ-BW-FCP-NEXT:    vmovdqa 32(%rdx), %ymm010658; AVX512DQ-BW-FCP-NEXT:    vmovdqa {{.*#+}} ymm12 = [0,1,0,1,14,128,14,15,0,1,14,15,128,13,14,15,16,17,16,128,30,31,30,31,16,17,128,31,28,29,30,31]10659; AVX512DQ-BW-FCP-NEXT:    vpshufb %ymm12, %ymm0, %ymm110660; AVX512DQ-BW-FCP-NEXT:    vmovdqa 32(%rcx), %ymm210661; AVX512DQ-BW-FCP-NEXT:    vmovdqa {{.*#+}} ymm13 = [128,128,128,128,128,14,128,128,128,128,128,128,15,128,128,128,128,128,128,16,128,128,128,128,128,128,17,128,128,128,128,128]10662; AVX512DQ-BW-FCP-NEXT:    vpshufb %ymm13, %ymm2, %ymm410663; AVX512DQ-BW-FCP-NEXT:    vpor %ymm1, %ymm4, %ymm110664; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 {{.*#+}} zmm3 = [128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,18,128,18,19,20,21,128,19,128,25,26,27,22,128,20,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,24,25,128,23,128,21,22,23,26,128,24,128,28,29,26,27]10665; AVX512DQ-BW-FCP-NEXT:    vpshufb %ymm3, %ymm0, %ymm010666; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 {{.*#+}} zmm3 = [u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,128,18,128,128,128,128,21,128,19,128,128,128,128,22,128,20,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,128,128,25,128,23,128,128,128,128,26,128,24,128,128,128,128]10667; AVX512DQ-BW-FCP-NEXT:    vpshufb %ymm3, %ymm2, %ymm210668; AVX512DQ-BW-FCP-NEXT:    vpor %ymm0, %ymm2, %ymm010669; AVX512DQ-BW-FCP-NEXT:    vpermq {{.*#+}} ymm0 = ymm0[2,3,2,3]10670; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $1, %ymm0, %zmm1, %zmm010671; AVX512DQ-BW-FCP-NEXT:    vmovdqa 32(%rdi), %ymm110672; AVX512DQ-BW-FCP-NEXT:    vmovdqa {{.*#+}} ymm2 = [0,1,14,128,12,13,0,1,14,15,128,3,12,13,2,3,16,128,30,31,28,29,16,17,128,31,18,19,28,29,18,128]10673; AVX512DQ-BW-FCP-NEXT:    vpshufb %ymm2, %ymm1, %ymm410674; AVX512DQ-BW-FCP-NEXT:    vmovdqa 32(%rsi), %ymm610675; AVX512DQ-BW-FCP-NEXT:    vmovdqa {{.*#+}} ymm8 = [128,128,128,14,128,128,128,128,128,128,15,128,128,128,128,128,128,16,128,128,128,128,128,128,17,128,128,128,128,128,128,18]10676; AVX512DQ-BW-FCP-NEXT:    vpshufb %ymm8, %ymm6, %ymm510677; AVX512DQ-BW-FCP-NEXT:    vpor %ymm4, %ymm5, %ymm410678; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 {{.*#+}} zmm3 = [128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,18,19,20,21,128,19,128,21,20,21,22,128,20,128,22,23,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,25,128,23,128,128,128,128,26,128,24,128,128,128,128,27,128]10679; AVX512DQ-BW-FCP-NEXT:    vpshufb %ymm3, %ymm1, %ymm110680; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 {{.*#+}} zmm3 = [u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,128,128,128,128,21,128,19,128,128,128,128,22,128,20,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,23,128,128,128,128,26,128,24,128,128,128,128,27,128,25]10681; AVX512DQ-BW-FCP-NEXT:    vpshufb %ymm3, %ymm6, %ymm610682; AVX512DQ-BW-FCP-NEXT:    vpor %ymm1, %ymm6, %ymm110683; AVX512DQ-BW-FCP-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[2,3,2,3]10684; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $1, %ymm1, %zmm4, %zmm410685; AVX512DQ-BW-FCP-NEXT:    movabsq $3485998880071096368, %r10 # imm = 0x3060C183060C183010686; AVX512DQ-BW-FCP-NEXT:    kmovq %r10, %k110687; AVX512DQ-BW-FCP-NEXT:    vmovdqu8 %zmm0, %zmm4 {%k1}10688; AVX512DQ-BW-FCP-NEXT:    vmovdqa 32(%r9), %ymm910689; AVX512DQ-BW-FCP-NEXT:    vmovdqa {{.*#+}} ymm0 = [13,128,128,128,128,128,128,14,128,128,128,128,128,128,15,128,128,128,128,128,128,16,128,128,128,128,128,128,17,128,128,128]10690; AVX512DQ-BW-FCP-NEXT:    vpshufb %ymm0, %ymm9, %ymm610691; AVX512DQ-BW-FCP-NEXT:    vmovdqa 32(%r8), %ymm710692; AVX512DQ-BW-FCP-NEXT:    vmovdqa {{.*#+}} ymm1 = [128,128,128,128,128,128,14,128,128,128,128,128,128,15,128,128,128,128,128,128,16,128,128,128,128,128,128,17,128,128,128,128]10693; AVX512DQ-BW-FCP-NEXT:    vpshufb %ymm1, %ymm7, %ymm1010694; AVX512DQ-BW-FCP-NEXT:    vpor %ymm6, %ymm10, %ymm1010695; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 {{.*#+}} zmm3 = [128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,20,128,18,128,20,21,20,21,128,19,128,19,20,21,22,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,24,25,24,25,128,23,128,23,24,25,26,128,24,128,30,31]10696; AVX512DQ-BW-FCP-NEXT:    vpshufb %ymm3, %ymm7, %ymm1110697; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 {{.*#+}} zmm3 = [u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,128,20,128,18,128,128,128,128,21,128,19,128,128,128,128,22,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,128,128,128,128,25,128,23,128,128,128,128,26,128,24,128,128]10698; AVX512DQ-BW-FCP-NEXT:    vpshufb %ymm3, %ymm9, %ymm910699; AVX512DQ-BW-FCP-NEXT:    vpor %ymm11, %ymm9, %ymm910700; AVX512DQ-BW-FCP-NEXT:    vpermq {{.*#+}} ymm9 = ymm9[2,3,2,3]10701; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $1, %ymm9, %zmm10, %zmm910702; AVX512DQ-BW-FCP-NEXT:    vmovdqa 32(%rax), %ymm1010703; AVX512DQ-BW-FCP-NEXT:    vpmovsxbw {{.*#+}} ymm11 = [10,9,9,10,10,9,9,10,9,10,14,15,10,9,9,10]10704; AVX512DQ-BW-FCP-NEXT:    vpermw %ymm10, %ymm11, %ymm1110705; AVX512DQ-BW-FCP-NEXT:    vpshufb {{.*#+}} ymm10 = ymm10[12,13,2,3,12,13,0,1,14,15,2,3,0,1,14,15,28,29,18,19,28,29,16,17,30,31,18,19,16,17,30,31]10706; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $1, %ymm11, %zmm10, %zmm1010707; AVX512DQ-BW-FCP-NEXT:    movabsq $145249953336295682, %rax # imm = 0x20408102040810210708; AVX512DQ-BW-FCP-NEXT:    kmovq %rax, %k210709; AVX512DQ-BW-FCP-NEXT:    vmovdqu8 %zmm10, %zmm9 {%k2}10710; AVX512DQ-BW-FCP-NEXT:    movabsq $-4357498600088870461, %rax # imm = 0xC3870E1C3870E1C310711; AVX512DQ-BW-FCP-NEXT:    kmovq %rax, %k210712; AVX512DQ-BW-FCP-NEXT:    vmovdqu8 %zmm9, %zmm4 {%k2}10713; AVX512DQ-BW-FCP-NEXT:    vmovdqa (%rdi), %ymm910714; AVX512DQ-BW-FCP-NEXT:    vpshufb %ymm2, %ymm9, %ymm210715; AVX512DQ-BW-FCP-NEXT:    vmovdqa (%rsi), %ymm1010716; AVX512DQ-BW-FCP-NEXT:    vpshufb %ymm8, %ymm10, %ymm810717; AVX512DQ-BW-FCP-NEXT:    vpor %ymm2, %ymm8, %ymm210718; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%rdi), %xmm1810719; AVX512DQ-BW-FCP-NEXT:    vmovdqa 32(%rdi), %xmm710720; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%rsi), %xmm2310721; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 32(%rsi), %xmm1610722; AVX512DQ-BW-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm8 = xmm23[8],xmm18[8],xmm23[9],xmm18[9],xmm23[10],xmm18[10],xmm23[11],xmm18[11],xmm23[12],xmm18[12],xmm23[13],xmm18[13],xmm23[14],xmm18[14],xmm23[15],xmm18[15]10723; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 {{.*#+}} xmm17 = [2,u,u,u,9,8,5,4,u,u,u,11,10,7,6,u]10724; AVX512DQ-BW-FCP-NEXT:    vpshufb %xmm17, %xmm8, %xmm810725; AVX512DQ-BW-FCP-NEXT:    vpermq {{.*#+}} ymm8 = ymm8[0,1,0,1]10726; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $1, %ymm2, %zmm8, %zmm810727; AVX512DQ-BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm11 = mem[0,1,2,3,0,1,2,3]10728; AVX512DQ-BW-FCP-NEXT:    vpshufb %ymm12, %ymm11, %ymm210729; AVX512DQ-BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm12 = mem[0,1,2,3,0,1,2,3]10730; AVX512DQ-BW-FCP-NEXT:    vpshufb %ymm13, %ymm12, %ymm1310731; AVX512DQ-BW-FCP-NEXT:    vpor %ymm2, %ymm13, %ymm210732; AVX512DQ-BW-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm13 = xmm12[8],xmm11[8],xmm12[9],xmm11[9],xmm12[10],xmm11[10],xmm12[11],xmm11[11],xmm12[12],xmm11[12],xmm12[13],xmm11[13],xmm12[14],xmm11[14],xmm12[15],xmm11[15]10733; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 {{.*#+}} xmm19 = [6,3,2,u,u,u,9,8,5,4,u,u,u,11,10,7]10734; AVX512DQ-BW-FCP-NEXT:    vpshufb %xmm19, %xmm13, %xmm1310735; AVX512DQ-BW-FCP-NEXT:    vpermq {{.*#+}} ymm13 = ymm13[0,1,0,1]10736; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $1, %ymm2, %zmm13, %zmm210737; AVX512DQ-BW-FCP-NEXT:    movabsq $435749860008887046, %rax # imm = 0x60C183060C1830610738; AVX512DQ-BW-FCP-NEXT:    kmovq %rax, %k210739; AVX512DQ-BW-FCP-NEXT:    vmovdqu8 %zmm2, %zmm8 {%k2}10740; AVX512DQ-BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm13 = mem[0,1,2,3,0,1,2,3]10741; AVX512DQ-BW-FCP-NEXT:    vpshufb %ymm0, %ymm13, %ymm010742; AVX512DQ-BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm14 = mem[0,1,2,3,0,1,2,3]10743; AVX512DQ-BW-FCP-NEXT:    vpshufb %ymm1, %ymm14, %ymm110744; AVX512DQ-BW-FCP-NEXT:    vpor %ymm0, %ymm1, %ymm010745; AVX512DQ-BW-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm1 = xmm14[8],xmm13[8],xmm14[9],xmm13[9],xmm14[10],xmm13[10],xmm14[11],xmm13[11],xmm14[12],xmm13[12],xmm14[13],xmm13[13],xmm14[14],xmm13[14],xmm14[15],xmm13[15]10746; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 {{.*#+}} xmm20 = [u,6,7,2,3,u,u,u,8,9,4,5,u,u,u,10]10747; AVX512DQ-BW-FCP-NEXT:    vpshufb %xmm20, %xmm1, %xmm110748; AVX512DQ-BW-FCP-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[0,1,0,1]10749; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $1, %ymm0, %zmm1, %zmm010750; AVX512DQ-BW-FCP-NEXT:    vpmovsxbw {{.*#+}} zmm1 = [4,5,4,5,5,6,5,6,4,5,4,5,5,6,5,6,6,1,6,0,7,1,0,7,14,9,14,8,15,9,8,15]10751; AVX512DQ-BW-FCP-NEXT:    vpermw %zmm15, %zmm1, %zmm110752; AVX512DQ-BW-FCP-NEXT:    movabsq $2323999253380730912, %rax # imm = 0x204081020408102010753; AVX512DQ-BW-FCP-NEXT:    kmovq %rax, %k210754; AVX512DQ-BW-FCP-NEXT:    vmovdqu8 %zmm1, %zmm0 {%k2}10755; AVX512DQ-BW-FCP-NEXT:    movabsq $4066998693416279096, %rax # imm = 0x3870E1C3870E1C3810756; AVX512DQ-BW-FCP-NEXT:    kmovq %rax, %k210757; AVX512DQ-BW-FCP-NEXT:    vmovdqu8 %zmm0, %zmm8 {%k2}10758; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 {{.*#+}} xmm21 = [u,128,7,128,5,u,u,u,128,8,128,6,u,u,u,128]10759; AVX512DQ-BW-FCP-NEXT:    vpshufb %xmm21, %xmm23, %xmm010760; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 {{.*#+}} xmm22 = [u,7,128,5,128,u,u,u,8,128,6,128,u,u,u,9]10761; AVX512DQ-BW-FCP-NEXT:    vpshufb %xmm22, %xmm18, %xmm110762; AVX512DQ-BW-FCP-NEXT:    vpor %xmm0, %xmm1, %xmm010763; AVX512DQ-BW-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm1 = xmm18[0],xmm23[0],xmm18[1],xmm23[1],xmm18[2],xmm23[2],xmm18[3],xmm23[3],xmm18[4],xmm23[4],xmm18[5],xmm23[5],xmm18[6],xmm23[6],xmm18[7],xmm23[7]10764; AVX512DQ-BW-FCP-NEXT:    vmovdqa {{.*#+}} xmm2 = [0,1,u,u,u,6,7,2,3,u,u,u,8,9,4,5]10765; AVX512DQ-BW-FCP-NEXT:    vpshufb %xmm2, %xmm1, %xmm110766; AVX512DQ-BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm18 = zmm1[0,1,0,1],zmm0[0,1,0,1]10767; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 {{.*#+}} xmm26 = [u,u,u,128,7,128,5,u,u,u,128,8,128,6,u,u]10768; AVX512DQ-BW-FCP-NEXT:    vpshufb %xmm26, %xmm12, %xmm010769; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 {{.*#+}} xmm27 = [u,u,u,7,128,5,128,u,u,u,8,128,6,128,u,u]10770; AVX512DQ-BW-FCP-NEXT:    vpshufb %xmm27, %xmm11, %xmm110771; AVX512DQ-BW-FCP-NEXT:    vpor %xmm0, %xmm1, %xmm010772; AVX512DQ-BW-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm1 = xmm11[0],xmm12[0],xmm11[1],xmm12[1],xmm11[2],xmm12[2],xmm11[3],xmm12[3],xmm11[4],xmm12[4],xmm11[5],xmm12[5],xmm11[6],xmm12[6],xmm11[7],xmm12[7]10773; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 {{.*#+}} xmm23 = [4,5,0,1,u,u,u,6,7,2,3,u,u,u,8,9]10774; AVX512DQ-BW-FCP-NEXT:    vpshufb %xmm23, %xmm1, %xmm110775; AVX512DQ-BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm0 = zmm1[0,1,0,1],zmm0[0,1,0,1]10776; AVX512DQ-BW-FCP-NEXT:    movabsq $871499720017774092, %rax # imm = 0xC183060C183060C10777; AVX512DQ-BW-FCP-NEXT:    kmovq %rax, %k210778; AVX512DQ-BW-FCP-NEXT:    vmovdqu8 %zmm0, %zmm18 {%k2}10779; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 {{.*#+}} xmm24 = [128,4,u,u,u,128,7,128,5,u,u,u,128,8,128,6]10780; AVX512DQ-BW-FCP-NEXT:    vpshufb %xmm24, %xmm13, %xmm010781; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 {{.*#+}} xmm25 = [4,128,u,u,u,7,128,5,128,u,u,u,8,128,6,128]10782; AVX512DQ-BW-FCP-NEXT:    vpshufb %xmm25, %xmm14, %xmm110783; AVX512DQ-BW-FCP-NEXT:    vpor %xmm0, %xmm1, %xmm010784; AVX512DQ-BW-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm1 = xmm14[0],xmm13[0],xmm14[1],xmm13[1],xmm14[2],xmm13[2],xmm14[3],xmm13[3],xmm14[4],xmm13[4],xmm14[5],xmm13[5],xmm14[6],xmm13[6],xmm14[7],xmm13[7]10785; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 {{.*#+}} xmm28 = [u,u,4,5,0,1,u,u,u,6,7,2,3,u,u,u]10786; AVX512DQ-BW-FCP-NEXT:    vpshufb %xmm28, %xmm1, %xmm110787; AVX512DQ-BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm0 = zmm1[0,1,0,1],zmm0[0,1,0,1]10788; AVX512DQ-BW-FCP-NEXT:    vpmovsxbw {{.*#+}} zmm1 = [1,1,0,0,1,1,0,0,4,5,1,1,1,1,0,0,2,2,2,4,2,2,2,4,3,3,3,3,2,2,2,4]10789; AVX512DQ-BW-FCP-NEXT:    vpermw %zmm15, %zmm1, %zmm110790; AVX512DQ-BW-FCP-NEXT:    movabsq $4647998506761461824, %rax # imm = 0x408102040810204010791; AVX512DQ-BW-FCP-NEXT:    kmovq %rax, %k210792; AVX512DQ-BW-FCP-NEXT:    vmovdqu8 %zmm1, %zmm0 {%k2}10793; AVX512DQ-BW-FCP-NEXT:    movabsq $8133997386832558192, %rax # imm = 0x70E1C3870E1C387010794; AVX512DQ-BW-FCP-NEXT:    kmovq %rax, %k210795; AVX512DQ-BW-FCP-NEXT:    vmovdqu8 %zmm0, %zmm18 {%k2}10796; AVX512DQ-BW-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm0 = xmm7[0],xmm16[0],xmm7[1],xmm16[1],xmm7[2],xmm16[2],xmm7[3],xmm16[3],xmm7[4],xmm16[4],xmm7[5],xmm16[5],xmm7[6],xmm16[6],xmm7[7],xmm16[7]10797; AVX512DQ-BW-FCP-NEXT:    vpshufb %xmm2, %xmm0, %xmm010798; AVX512DQ-BW-FCP-NEXT:    vpshufb {{.*#+}} ymm1 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm9[28,29,30],zero,ymm9[28],zero,ymm9[30,31,30,31],zero,ymm9[29],zero,ymm9[31,28,29]10799; AVX512DQ-BW-FCP-NEXT:    vpshufb {{.*#+}} ymm2 = ymm10[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,zero,ymm10[30],zero,ymm10[28],zero,zero,zero,zero,ymm10[31],zero,ymm10[29],zero,zero,zero10800; AVX512DQ-BW-FCP-NEXT:    vpor %ymm1, %ymm2, %ymm110801; AVX512DQ-BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm0 = zmm1[2,3,2,3],zmm0[0,1,0,1]10802; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 32(%rcx), %xmm3110803; AVX512DQ-BW-FCP-NEXT:    vmovdqa 32(%rdx), %xmm310804; AVX512DQ-BW-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm1 = xmm3[0],xmm31[0],xmm3[1],xmm31[1],xmm3[2],xmm31[2],xmm3[3],xmm31[3],xmm3[4],xmm31[4],xmm3[5],xmm31[5],xmm3[6],xmm31[6],xmm3[7],xmm31[7]10805; AVX512DQ-BW-FCP-NEXT:    vpshufb %xmm23, %xmm1, %xmm110806; AVX512DQ-BW-FCP-NEXT:    vpshufb {{.*#+}} ymm23 = ymm12[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,27],zero,zero,zero,zero,ymm12[30],zero,ymm12[28],zero,zero,zero,zero,ymm12[31],zero,ymm12[29],zero10807; AVX512DQ-BW-FCP-NEXT:    vpshufb {{.*#+}} ymm29 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm11[30],zero,ymm11[28],zero,zero,zero,zero,ymm11[31],zero,ymm11[29],zero,zero10808; AVX512DQ-BW-FCP-NEXT:    vporq %ymm23, %ymm29, %ymm2310809; AVX512DQ-BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm23 = zmm23[2,3,2,3],zmm1[0,1,0,1]10810; AVX512DQ-BW-FCP-NEXT:    vmovdqu8 %zmm0, %zmm23 {%k1}10811; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 32(%r9), %xmm2910812; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 32(%r8), %xmm3010813; AVX512DQ-BW-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm0 = xmm30[0],xmm29[0],xmm30[1],xmm29[1],xmm30[2],xmm29[2],xmm30[3],xmm29[3],xmm30[4],xmm29[4],xmm30[5],xmm29[5],xmm30[6],xmm29[6],xmm30[7],xmm29[7]10814; AVX512DQ-BW-FCP-NEXT:    vpshufb %xmm28, %xmm0, %xmm010815; AVX512DQ-BW-FCP-NEXT:    vpshufb {{.*#+}} ymm1 = ymm13[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,29],zero,ymm13[27],zero,zero,zero,zero,ymm13[30],zero,ymm13[28],zero,zero,zero,zero,ymm13[31],zero10816; AVX512DQ-BW-FCP-NEXT:    vpshufb {{.*#+}} ymm28 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm14[27],zero,zero,zero,zero,ymm14[30],zero,ymm14[28],zero,zero,zero,zero,ymm14[31],zero,ymm14[29]10817; AVX512DQ-BW-FCP-NEXT:    vporq %ymm1, %ymm28, %ymm110818; AVX512DQ-BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm0 = zmm1[2,3,2,3],zmm0[0,1,0,1]10819; AVX512DQ-BW-FCP-NEXT:    vpmovsxbw {{.*#+}} zmm1 = [14,13,14,15,15,14,14,15,14,13,14,15,15,14,14,15,17,17,16,16,17,17,16,16,20,21,17,17,17,17,16,16]10820; AVX512DQ-BW-FCP-NEXT:    vpermw %zmm15, %zmm1, %zmm110821; AVX512DQ-BW-FCP-NEXT:    movabsq $580999813345182728, %rax # imm = 0x81020408102040810822; AVX512DQ-BW-FCP-NEXT:    kmovq %rax, %k110823; AVX512DQ-BW-FCP-NEXT:    vmovdqu8 %zmm1, %zmm0 {%k1}10824; AVX512DQ-BW-FCP-NEXT:    movabsq $1016749673354069774, %rax # imm = 0xE1C3870E1C3870E10825; AVX512DQ-BW-FCP-NEXT:    kmovq %rax, %k110826; AVX512DQ-BW-FCP-NEXT:    vmovdqu8 %zmm0, %zmm23 {%k1}10827; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%rdx), %zmm010828; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%rcx), %zmm110829; AVX512DQ-BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm28 = zmm0[4,5,6,7],zmm1[4,5,6,7]10830; AVX512DQ-BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm0 = zmm1[4,5,6,7],zmm0[4,5,6,7]10831; AVX512DQ-BW-FCP-NEXT:    vpshufb {{.*#+}} zmm1 = zmm28[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,24,25],zero,zmm28[23],zero,zmm28[21,22,23,26],zero,zmm28[24],zero,zmm28[28,29,26,27,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,59],zero,zero,zero,zero,zmm28[62],zero,zmm28[60],zero,zero,zero,zero,zmm28[63],zero,zmm28[61],zero10832; AVX512DQ-BW-FCP-NEXT:    vpshufb {{.*#+}} zmm0 = zmm0[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,zmm0[25],zero,zmm0[23],zero,zero,zero,zero,zmm0[26],zero,zmm0[24],zero,zero,zero,zero,zmm0[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,zero,zero,zmm0[62],zero,zmm0[60],zero,zero,zero,zero,zmm0[63],zero,zmm0[61],zero,zero10833; AVX512DQ-BW-FCP-NEXT:    vporq %zmm1, %zmm0, %zmm2810834; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%rdi), %zmm110835; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%rsi), %zmm210836; AVX512DQ-BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm5 = zmm2[4,5,6,7],zmm1[4,5,6,7]10837; AVX512DQ-BW-FCP-NEXT:    vpshufb {{.*#+}} zmm5 = zmm5[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,25],zero,zmm5[23],zero,zero,zero,zero,zmm5[26],zero,zmm5[24],zero,zero,zero,zero,zmm5[27],zero,zmm5[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,60,61,62],zero,zmm5[60],zero,zmm5[62,63,62,63],zero,zmm5[61],zero,zmm5[63,60,61]10838; AVX512DQ-BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm6 = zmm1[4,5,6,7],zmm2[4,5,6,7]10839; AVX512DQ-BW-FCP-NEXT:    vpshufb {{.*#+}} zmm6 = zmm6[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zmm6[23],zero,zero,zero,zero,zmm6[26],zero,zmm6[24],zero,zero,zero,zero,zmm6[27],zero,zmm6[25,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,zero,zmm6[62],zero,zmm6[60],zero,zero,zero,zero,zmm6[63],zero,zmm6[61],zero,zero,zero10840; AVX512DQ-BW-FCP-NEXT:    vporq %zmm5, %zmm6, %zmm510841; AVX512DQ-BW-FCP-NEXT:    vpermq {{.*#+}} zmm6 = zmm28[2,3,2,3,6,7,6,7]10842; AVX512DQ-BW-FCP-NEXT:    vpermq {{.*#+}} zmm28 = zmm5[2,3,2,3,6,7,6,7]10843; AVX512DQ-BW-FCP-NEXT:    movabsq $1742999440035548184, %rax # imm = 0x183060C183060C1810844; AVX512DQ-BW-FCP-NEXT:    kmovq %rax, %k110845; AVX512DQ-BW-FCP-NEXT:    vmovdqu8 %zmm6, %zmm28 {%k1}10846; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%r8), %zmm510847; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%r9), %zmm610848; AVX512DQ-BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm0 = zmm5[4,5,6,7],zmm6[4,5,6,7]10849; AVX512DQ-BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm5 = zmm6[4,5,6,7],zmm5[4,5,6,7]10850; AVX512DQ-BW-FCP-NEXT:    vpshufb {{.*#+}} zmm0 = zmm0[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,24,25,24,25],zero,zmm0[23],zero,zmm0[23,24,25,26],zero,zmm0[24],zero,zmm0[30,31,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,61],zero,zmm0[59],zero,zero,zero,zero,zmm0[62],zero,zmm0[60],zero,zero,zero,zero,zmm0[63],zero10851; AVX512DQ-BW-FCP-NEXT:    vpshufb {{.*#+}} zmm5 = zmm5[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,zero,zero,zmm5[25],zero,zmm5[23],zero,zero,zero,zero,zmm5[26],zero,zmm5[24],zero,zero,zmm5[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zmm5[59],zero,zero,zero,zero,zmm5[62],zero,zmm5[60],zero,zero,zero,zero,zmm5[63],zero,zmm5[61]10852; AVX512DQ-BW-FCP-NEXT:    vporq %zmm0, %zmm5, %zmm010853; AVX512DQ-BW-FCP-NEXT:    vpermq {{.*#+}} zmm0 = zmm0[2,3,2,3,6,7,6,7]10854; AVX512DQ-BW-FCP-NEXT:    movabsq $6971997760142192736, %rax # imm = 0x60C183060C18306010855; AVX512DQ-BW-FCP-NEXT:    kmovq %rax, %k110856; AVX512DQ-BW-FCP-NEXT:    vmovdqu8 %zmm0, %zmm28 {%k1}10857; AVX512DQ-BW-FCP-NEXT:    vpmovsxbw {{.*#+}} zmm0 = [27,29,28,27,28,29,29,28,27,29,28,27,28,29,29,28,30,29,30,31,31,30,30,31,30,29,30,31,31,30,30,31]10858; AVX512DQ-BW-FCP-NEXT:    vpermw %zmm15, %zmm0, %zmm010859; AVX512DQ-BW-FCP-NEXT:    movabsq $-9150747060186627967, %rax # imm = 0x810204081020408110860; AVX512DQ-BW-FCP-NEXT:    kmovq %rax, %k210861; AVX512DQ-BW-FCP-NEXT:    vmovdqu8 %zmm0, %zmm28 {%k2}10862; AVX512DQ-BW-FCP-NEXT:    vpshufb %xmm26, %xmm31, %xmm010863; AVX512DQ-BW-FCP-NEXT:    vpshufb %xmm27, %xmm3, %xmm510864; AVX512DQ-BW-FCP-NEXT:    vpor %xmm0, %xmm5, %xmm010865; AVX512DQ-BW-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm3 = xmm31[8],xmm3[8],xmm31[9],xmm3[9],xmm31[10],xmm3[10],xmm31[11],xmm3[11],xmm31[12],xmm3[12],xmm31[13],xmm3[13],xmm31[14],xmm3[14],xmm31[15],xmm3[15]10866; AVX512DQ-BW-FCP-NEXT:    vpshufb %xmm19, %xmm3, %xmm310867; AVX512DQ-BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm0 = zmm0[0,1,0,1],zmm3[0,1,0,1]10868; AVX512DQ-BW-FCP-NEXT:    vpshufb %xmm21, %xmm16, %xmm310869; AVX512DQ-BW-FCP-NEXT:    vpshufb %xmm22, %xmm7, %xmm510870; AVX512DQ-BW-FCP-NEXT:    vpor %xmm3, %xmm5, %xmm310871; AVX512DQ-BW-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm5 = xmm16[8],xmm7[8],xmm16[9],xmm7[9],xmm16[10],xmm7[10],xmm16[11],xmm7[11],xmm16[12],xmm7[12],xmm16[13],xmm7[13],xmm16[14],xmm7[14],xmm16[15],xmm7[15]10872; AVX512DQ-BW-FCP-NEXT:    vpshufb %xmm17, %xmm5, %xmm510873; AVX512DQ-BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm3 = zmm3[0,1,0,1],zmm5[0,1,0,1]10874; AVX512DQ-BW-FCP-NEXT:    vmovdqu8 %zmm0, %zmm3 {%k1}10875; AVX512DQ-BW-FCP-NEXT:    vpshufb %xmm24, %xmm29, %xmm010876; AVX512DQ-BW-FCP-NEXT:    vpshufb %xmm25, %xmm30, %xmm510877; AVX512DQ-BW-FCP-NEXT:    vpor %xmm0, %xmm5, %xmm010878; AVX512DQ-BW-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm5 = xmm30[8],xmm29[8],xmm30[9],xmm29[9],xmm30[10],xmm29[10],xmm30[11],xmm29[11],xmm30[12],xmm29[12],xmm30[13],xmm29[13],xmm30[14],xmm29[14],xmm30[15],xmm29[15]10879; AVX512DQ-BW-FCP-NEXT:    vpshufb %xmm20, %xmm5, %xmm510880; AVX512DQ-BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm0 = zmm0[0,1,0,1],zmm5[0,1,0,1]10881; AVX512DQ-BW-FCP-NEXT:    vpmovsxbw {{.*#+}} zmm5 = [18,18,18,20,18,18,18,20,19,19,19,19,18,18,18,20,20,21,20,21,21,22,21,22,20,21,20,21,21,22,21,22]10882; AVX512DQ-BW-FCP-NEXT:    vpermw %zmm15, %zmm5, %zmm510883; AVX512DQ-BW-FCP-NEXT:    movabsq $290499906672591364, %rax # imm = 0x40810204081020410884; AVX512DQ-BW-FCP-NEXT:    kmovq %rax, %k210885; AVX512DQ-BW-FCP-NEXT:    vmovdqu8 %zmm5, %zmm0 {%k2}10886; AVX512DQ-BW-FCP-NEXT:    movabsq $-8714997200177740921, %rax # imm = 0x870E1C3870E1C38710887; AVX512DQ-BW-FCP-NEXT:    kmovq %rax, %k210888; AVX512DQ-BW-FCP-NEXT:    vmovdqu8 %zmm0, %zmm3 {%k2}10889; AVX512DQ-BW-FCP-NEXT:    vpshufb {{.*#+}} zmm0 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zmm11[18],zero,zmm11[18,19,20,21],zero,zmm11[19],zero,zmm11[25,26,27,22],zero,zmm11[20],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zmm11[56,57],zero,zmm11[55],zero,zmm11[53,54,55,58],zero,zmm11[56],zero,zmm11[60,61,58,59]10890; AVX512DQ-BW-FCP-NEXT:    vpshufb {{.*#+}} zmm5 = zmm12[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zmm12[18],zero,zero,zero,zero,zmm12[21],zero,zmm12[19],zero,zero,zero,zero,zmm12[22],zero,zmm12[20,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,zmm12[57],zero,zmm12[55],zero,zero,zero,zero,zmm12[58],zero,zmm12[56],zero,zero,zero,zero10891; AVX512DQ-BW-FCP-NEXT:    vporq %zmm0, %zmm5, %zmm010892; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $1, %ymm10, %zmm1, %zmm110893; AVX512DQ-BW-FCP-NEXT:    vpshufb {{.*#+}} zmm1 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zmm1[18,19,20,21],zero,zmm1[19],zero,zmm1[21,20,21,22],zero,zmm1[20],zero,zmm1[22,23,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,57],zero,zmm1[55],zero,zero,zero,zero,zmm1[58],zero,zmm1[56],zero,zero,zero,zero,zmm1[59],zero10894; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $1, %ymm9, %zmm2, %zmm210895; AVX512DQ-BW-FCP-NEXT:    vpshufb {{.*#+}} zmm2 = zmm2[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,zero,zero,zmm2[21],zero,zmm2[19],zero,zero,zero,zero,zmm2[22],zero,zmm2[20],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zmm2[55],zero,zero,zero,zero,zmm2[58],zero,zmm2[56],zero,zero,zero,zero,zmm2[59],zero,zmm2[57]10896; AVX512DQ-BW-FCP-NEXT:    vporq %zmm1, %zmm2, %zmm110897; AVX512DQ-BW-FCP-NEXT:    vpermq {{.*#+}} zmm0 = zmm0[2,3,2,3,6,7,6,7]10898; AVX512DQ-BW-FCP-NEXT:    vpermq {{.*#+}} zmm1 = zmm1[2,3,2,3,6,7,6,7]10899; AVX512DQ-BW-FCP-NEXT:    vmovdqu8 %zmm1, %zmm0 {%k1}10900; AVX512DQ-BW-FCP-NEXT:    vpshufb {{.*#+}} zmm1 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zmm14[20],zero,zmm14[18],zero,zmm14[20,21,20,21],zero,zmm14[19],zero,zmm14[19,20,21,22],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zmm14[56,57,56,57],zero,zmm14[55],zero,zmm14[55,56,57,58],zero,zmm14[56],zero,zmm14[62,63]10901; AVX512DQ-BW-FCP-NEXT:    vpshufb {{.*#+}} zmm2 = zmm13[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zmm13[20],zero,zmm13[18],zero,zero,zero,zero,zmm13[21],zero,zmm13[19],zero,zero,zero,zero,zmm13[22,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u],zero,zero,zero,zero,zmm13[57],zero,zmm13[55],zero,zero,zero,zero,zmm13[58],zero,zmm13[56],zero,zero10902; AVX512DQ-BW-FCP-NEXT:    vporq %zmm1, %zmm2, %zmm110903; AVX512DQ-BW-FCP-NEXT:    vpmovsxbw {{.*#+}} zmm2 = [10,9,9,10,10,9,9,10,9,10,14,15,10,9,9,10,11,13,12,11,12,13,13,12,11,13,12,11,12,13,13,12]10904; AVX512DQ-BW-FCP-NEXT:    vpermw %zmm15, %zmm2, %zmm210905; AVX512DQ-BW-FCP-NEXT:    vpermq {{.*#+}} zmm1 = zmm1[2,3,2,3,6,7,6,7]10906; AVX512DQ-BW-FCP-NEXT:    movabsq $1161999626690365456, %rax # imm = 0x102040810204081010907; AVX512DQ-BW-FCP-NEXT:    kmovq %rax, %k110908; AVX512DQ-BW-FCP-NEXT:    vmovdqu8 %zmm2, %zmm1 {%k1}10909; AVX512DQ-BW-FCP-NEXT:    movabsq $2033499346708139548, %rax # imm = 0x1C3870E1C3870E1C10910; AVX512DQ-BW-FCP-NEXT:    kmovq %rax, %k110911; AVX512DQ-BW-FCP-NEXT:    vmovdqu8 %zmm1, %zmm0 {%k1}10912; AVX512DQ-BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax10913; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, 128(%rax)10914; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm4, 320(%rax)10915; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm3, 256(%rax)10916; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm28, 384(%rax)10917; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm23, 192(%rax)10918; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm18, (%rax)10919; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm8, 64(%rax)10920; AVX512DQ-BW-FCP-NEXT:    vzeroupper10921; AVX512DQ-BW-FCP-NEXT:    retq10922  %in.vec0 = load <64 x i8>, ptr %in.vecptr0, align 6410923  %in.vec1 = load <64 x i8>, ptr %in.vecptr1, align 6410924  %in.vec2 = load <64 x i8>, ptr %in.vecptr2, align 6410925  %in.vec3 = load <64 x i8>, ptr %in.vecptr3, align 6410926  %in.vec4 = load <64 x i8>, ptr %in.vecptr4, align 6410927  %in.vec5 = load <64 x i8>, ptr %in.vecptr5, align 6410928  %in.vec6 = load <64 x i8>, ptr %in.vecptr6, align 6410929  %1 = shufflevector <64 x i8> %in.vec0, <64 x i8> %in.vec1, <128 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 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 88, i32 89, i32 90, i32 91, i32 92, i32 93, i32 94, i32 95, i32 96, i32 97, i32 98, i32 99, i32 100, i32 101, i32 102, i32 103, i32 104, i32 105, i32 106, i32 107, i32 108, i32 109, i32 110, i32 111, i32 112, i32 113, i32 114, i32 115, i32 116, i32 117, i32 118, i32 119, i32 120, i32 121, i32 122, i32 123, i32 124, i32 125, i32 126, i32 127>10930  %2 = shufflevector <64 x i8> %in.vec2, <64 x i8> %in.vec3, <128 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 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 88, i32 89, i32 90, i32 91, i32 92, i32 93, i32 94, i32 95, i32 96, i32 97, i32 98, i32 99, i32 100, i32 101, i32 102, i32 103, i32 104, i32 105, i32 106, i32 107, i32 108, i32 109, i32 110, i32 111, i32 112, i32 113, i32 114, i32 115, i32 116, i32 117, i32 118, i32 119, i32 120, i32 121, i32 122, i32 123, i32 124, i32 125, i32 126, i32 127>10931  %3 = shufflevector <64 x i8> %in.vec4, <64 x i8> %in.vec5, <128 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 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 88, i32 89, i32 90, i32 91, i32 92, i32 93, i32 94, i32 95, i32 96, i32 97, i32 98, i32 99, i32 100, i32 101, i32 102, i32 103, i32 104, i32 105, i32 106, i32 107, i32 108, i32 109, i32 110, i32 111, i32 112, i32 113, i32 114, i32 115, i32 116, i32 117, i32 118, i32 119, i32 120, i32 121, i32 122, i32 123, i32 124, i32 125, i32 126, i32 127>10932  %4 = shufflevector <128 x i8> %1, <128 x i8> %2, <256 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 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 88, i32 89, i32 90, i32 91, i32 92, i32 93, i32 94, i32 95, i32 96, i32 97, i32 98, i32 99, i32 100, i32 101, i32 102, i32 103, i32 104, i32 105, i32 106, i32 107, i32 108, i32 109, i32 110, i32 111, i32 112, i32 113, i32 114, i32 115, i32 116, i32 117, i32 118, i32 119, i32 120, i32 121, i32 122, i32 123, i32 124, i32 125, i32 126, i32 127, i32 128, i32 129, i32 130, i32 131, i32 132, i32 133, i32 134, i32 135, i32 136, i32 137, i32 138, i32 139, i32 140, i32 141, i32 142, i32 143, i32 144, i32 145, i32 146, i32 147, i32 148, i32 149, i32 150, i32 151, i32 152, i32 153, i32 154, i32 155, i32 156, i32 157, i32 158, i32 159, i32 160, i32 161, i32 162, i32 163, i32 164, i32 165, i32 166, i32 167, i32 168, i32 169, i32 170, i32 171, i32 172, i32 173, i32 174, i32 175, i32 176, i32 177, i32 178, i32 179, i32 180, i32 181, i32 182, i32 183, i32 184, i32 185, i32 186, i32 187, i32 188, i32 189, i32 190, i32 191, i32 192, i32 193, i32 194, i32 195, i32 196, i32 197, i32 198, i32 199, i32 200, i32 201, i32 202, i32 203, i32 204, i32 205, i32 206, i32 207, i32 208, i32 209, i32 210, i32 211, i32 212, i32 213, i32 214, i32 215, i32 216, i32 217, i32 218, i32 219, i32 220, i32 221, i32 222, i32 223, i32 224, i32 225, i32 226, i32 227, i32 228, i32 229, i32 230, i32 231, i32 232, i32 233, i32 234, i32 235, i32 236, i32 237, i32 238, i32 239, i32 240, i32 241, i32 242, i32 243, i32 244, i32 245, i32 246, i32 247, i32 248, i32 249, i32 250, i32 251, i32 252, i32 253, i32 254, i32 255>10933  %5 = shufflevector <64 x i8> %in.vec6, <64 x i8> poison, <128 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 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>10934  %6 = shufflevector <128 x i8> %3, <128 x i8> %5, <192 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 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 88, i32 89, i32 90, i32 91, i32 92, i32 93, i32 94, i32 95, i32 96, i32 97, i32 98, i32 99, i32 100, i32 101, i32 102, i32 103, i32 104, i32 105, i32 106, i32 107, i32 108, i32 109, i32 110, i32 111, i32 112, i32 113, i32 114, i32 115, i32 116, i32 117, i32 118, i32 119, i32 120, i32 121, i32 122, i32 123, i32 124, i32 125, i32 126, i32 127, i32 128, i32 129, i32 130, i32 131, i32 132, i32 133, i32 134, i32 135, i32 136, i32 137, i32 138, i32 139, i32 140, i32 141, i32 142, i32 143, i32 144, i32 145, i32 146, i32 147, i32 148, i32 149, i32 150, i32 151, i32 152, i32 153, i32 154, i32 155, i32 156, i32 157, i32 158, i32 159, i32 160, i32 161, i32 162, i32 163, i32 164, i32 165, i32 166, i32 167, i32 168, i32 169, i32 170, i32 171, i32 172, i32 173, i32 174, i32 175, i32 176, i32 177, i32 178, i32 179, i32 180, i32 181, i32 182, i32 183, i32 184, i32 185, i32 186, i32 187, i32 188, i32 189, i32 190, i32 191>10935  %7 = shufflevector <192 x i8> %6, <192 x i8> poison, <256 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 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 88, i32 89, i32 90, i32 91, i32 92, i32 93, i32 94, i32 95, i32 96, i32 97, i32 98, i32 99, i32 100, i32 101, i32 102, i32 103, i32 104, i32 105, i32 106, i32 107, i32 108, i32 109, i32 110, i32 111, i32 112, i32 113, i32 114, i32 115, i32 116, i32 117, i32 118, i32 119, i32 120, i32 121, i32 122, i32 123, i32 124, i32 125, i32 126, i32 127, i32 128, i32 129, i32 130, i32 131, i32 132, i32 133, i32 134, i32 135, i32 136, i32 137, i32 138, i32 139, i32 140, i32 141, i32 142, i32 143, i32 144, i32 145, i32 146, i32 147, i32 148, i32 149, i32 150, i32 151, i32 152, i32 153, i32 154, i32 155, i32 156, i32 157, i32 158, i32 159, i32 160, i32 161, i32 162, i32 163, i32 164, i32 165, i32 166, i32 167, i32 168, i32 169, i32 170, i32 171, i32 172, i32 173, i32 174, i32 175, i32 176, i32 177, i32 178, i32 179, i32 180, i32 181, i32 182, i32 183, i32 184, i32 185, i32 186, i32 187, i32 188, i32 189, i32 190, i32 191, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>10936  %8 = shufflevector <256 x i8> %4, <256 x i8> %7, <448 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 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 88, i32 89, i32 90, i32 91, i32 92, i32 93, i32 94, i32 95, i32 96, i32 97, i32 98, i32 99, i32 100, i32 101, i32 102, i32 103, i32 104, i32 105, i32 106, i32 107, i32 108, i32 109, i32 110, i32 111, i32 112, i32 113, i32 114, i32 115, i32 116, i32 117, i32 118, i32 119, i32 120, i32 121, i32 122, i32 123, i32 124, i32 125, i32 126, i32 127, i32 128, i32 129, i32 130, i32 131, i32 132, i32 133, i32 134, i32 135, i32 136, i32 137, i32 138, i32 139, i32 140, i32 141, i32 142, i32 143, i32 144, i32 145, i32 146, i32 147, i32 148, i32 149, i32 150, i32 151, i32 152, i32 153, i32 154, i32 155, i32 156, i32 157, i32 158, i32 159, i32 160, i32 161, i32 162, i32 163, i32 164, i32 165, i32 166, i32 167, i32 168, i32 169, i32 170, i32 171, i32 172, i32 173, i32 174, i32 175, i32 176, i32 177, i32 178, i32 179, i32 180, i32 181, i32 182, i32 183, i32 184, i32 185, i32 186, i32 187, i32 188, i32 189, i32 190, i32 191, i32 192, i32 193, i32 194, i32 195, i32 196, i32 197, i32 198, i32 199, i32 200, i32 201, i32 202, i32 203, i32 204, i32 205, i32 206, i32 207, i32 208, i32 209, i32 210, i32 211, i32 212, i32 213, i32 214, i32 215, i32 216, i32 217, i32 218, i32 219, i32 220, i32 221, i32 222, i32 223, i32 224, i32 225, i32 226, i32 227, i32 228, i32 229, i32 230, i32 231, i32 232, i32 233, i32 234, i32 235, i32 236, i32 237, i32 238, i32 239, i32 240, i32 241, i32 242, i32 243, i32 244, i32 245, i32 246, i32 247, i32 248, i32 249, i32 250, i32 251, i32 252, i32 253, i32 254, i32 255, i32 256, i32 257, i32 258, i32 259, i32 260, i32 261, i32 262, i32 263, i32 264, i32 265, i32 266, i32 267, i32 268, i32 269, i32 270, i32 271, i32 272, i32 273, i32 274, i32 275, i32 276, i32 277, i32 278, i32 279, i32 280, i32 281, i32 282, i32 283, i32 284, i32 285, i32 286, i32 287, i32 288, i32 289, i32 290, i32 291, i32 292, i32 293, i32 294, i32 295, i32 296, i32 297, i32 298, i32 299, i32 300, i32 301, i32 302, i32 303, i32 304, i32 305, i32 306, i32 307, i32 308, i32 309, i32 310, i32 311, i32 312, i32 313, i32 314, i32 315, i32 316, i32 317, i32 318, i32 319, i32 320, i32 321, i32 322, i32 323, i32 324, i32 325, i32 326, i32 327, i32 328, i32 329, i32 330, i32 331, i32 332, i32 333, i32 334, i32 335, i32 336, i32 337, i32 338, i32 339, i32 340, i32 341, i32 342, i32 343, i32 344, i32 345, i32 346, i32 347, i32 348, i32 349, i32 350, i32 351, i32 352, i32 353, i32 354, i32 355, i32 356, i32 357, i32 358, i32 359, i32 360, i32 361, i32 362, i32 363, i32 364, i32 365, i32 366, i32 367, i32 368, i32 369, i32 370, i32 371, i32 372, i32 373, i32 374, i32 375, i32 376, i32 377, i32 378, i32 379, i32 380, i32 381, i32 382, i32 383, i32 384, i32 385, i32 386, i32 387, i32 388, i32 389, i32 390, i32 391, i32 392, i32 393, i32 394, i32 395, i32 396, i32 397, i32 398, i32 399, i32 400, i32 401, i32 402, i32 403, i32 404, i32 405, i32 406, i32 407, i32 408, i32 409, i32 410, i32 411, i32 412, i32 413, i32 414, i32 415, i32 416, i32 417, i32 418, i32 419, i32 420, i32 421, i32 422, i32 423, i32 424, i32 425, i32 426, i32 427, i32 428, i32 429, i32 430, i32 431, i32 432, i32 433, i32 434, i32 435, i32 436, i32 437, i32 438, i32 439, i32 440, i32 441, i32 442, i32 443, i32 444, i32 445, i32 446, i32 447>10937  %interleaved.vec = shufflevector <448 x i8> %8, <448 x i8> poison, <448 x i32> <i32 0, i32 64, i32 128, i32 192, i32 256, i32 320, i32 384, i32 1, i32 65, i32 129, i32 193, i32 257, i32 321, i32 385, i32 2, i32 66, i32 130, i32 194, i32 258, i32 322, i32 386, i32 3, i32 67, i32 131, i32 195, i32 259, i32 323, i32 387, i32 4, i32 68, i32 132, i32 196, i32 260, i32 324, i32 388, i32 5, i32 69, i32 133, i32 197, i32 261, i32 325, i32 389, i32 6, i32 70, i32 134, i32 198, i32 262, i32 326, i32 390, i32 7, i32 71, i32 135, i32 199, i32 263, i32 327, i32 391, i32 8, i32 72, i32 136, i32 200, i32 264, i32 328, i32 392, i32 9, i32 73, i32 137, i32 201, i32 265, i32 329, i32 393, i32 10, i32 74, i32 138, i32 202, i32 266, i32 330, i32 394, i32 11, i32 75, i32 139, i32 203, i32 267, i32 331, i32 395, i32 12, i32 76, i32 140, i32 204, i32 268, i32 332, i32 396, i32 13, i32 77, i32 141, i32 205, i32 269, i32 333, i32 397, i32 14, i32 78, i32 142, i32 206, i32 270, i32 334, i32 398, i32 15, i32 79, i32 143, i32 207, i32 271, i32 335, i32 399, i32 16, i32 80, i32 144, i32 208, i32 272, i32 336, i32 400, i32 17, i32 81, i32 145, i32 209, i32 273, i32 337, i32 401, i32 18, i32 82, i32 146, i32 210, i32 274, i32 338, i32 402, i32 19, i32 83, i32 147, i32 211, i32 275, i32 339, i32 403, i32 20, i32 84, i32 148, i32 212, i32 276, i32 340, i32 404, i32 21, i32 85, i32 149, i32 213, i32 277, i32 341, i32 405, i32 22, i32 86, i32 150, i32 214, i32 278, i32 342, i32 406, i32 23, i32 87, i32 151, i32 215, i32 279, i32 343, i32 407, i32 24, i32 88, i32 152, i32 216, i32 280, i32 344, i32 408, i32 25, i32 89, i32 153, i32 217, i32 281, i32 345, i32 409, i32 26, i32 90, i32 154, i32 218, i32 282, i32 346, i32 410, i32 27, i32 91, i32 155, i32 219, i32 283, i32 347, i32 411, i32 28, i32 92, i32 156, i32 220, i32 284, i32 348, i32 412, i32 29, i32 93, i32 157, i32 221, i32 285, i32 349, i32 413, i32 30, i32 94, i32 158, i32 222, i32 286, i32 350, i32 414, i32 31, i32 95, i32 159, i32 223, i32 287, i32 351, i32 415, i32 32, i32 96, i32 160, i32 224, i32 288, i32 352, i32 416, i32 33, i32 97, i32 161, i32 225, i32 289, i32 353, i32 417, i32 34, i32 98, i32 162, i32 226, i32 290, i32 354, i32 418, i32 35, i32 99, i32 163, i32 227, i32 291, i32 355, i32 419, i32 36, i32 100, i32 164, i32 228, i32 292, i32 356, i32 420, i32 37, i32 101, i32 165, i32 229, i32 293, i32 357, i32 421, i32 38, i32 102, i32 166, i32 230, i32 294, i32 358, i32 422, i32 39, i32 103, i32 167, i32 231, i32 295, i32 359, i32 423, i32 40, i32 104, i32 168, i32 232, i32 296, i32 360, i32 424, i32 41, i32 105, i32 169, i32 233, i32 297, i32 361, i32 425, i32 42, i32 106, i32 170, i32 234, i32 298, i32 362, i32 426, i32 43, i32 107, i32 171, i32 235, i32 299, i32 363, i32 427, i32 44, i32 108, i32 172, i32 236, i32 300, i32 364, i32 428, i32 45, i32 109, i32 173, i32 237, i32 301, i32 365, i32 429, i32 46, i32 110, i32 174, i32 238, i32 302, i32 366, i32 430, i32 47, i32 111, i32 175, i32 239, i32 303, i32 367, i32 431, i32 48, i32 112, i32 176, i32 240, i32 304, i32 368, i32 432, i32 49, i32 113, i32 177, i32 241, i32 305, i32 369, i32 433, i32 50, i32 114, i32 178, i32 242, i32 306, i32 370, i32 434, i32 51, i32 115, i32 179, i32 243, i32 307, i32 371, i32 435, i32 52, i32 116, i32 180, i32 244, i32 308, i32 372, i32 436, i32 53, i32 117, i32 181, i32 245, i32 309, i32 373, i32 437, i32 54, i32 118, i32 182, i32 246, i32 310, i32 374, i32 438, i32 55, i32 119, i32 183, i32 247, i32 311, i32 375, i32 439, i32 56, i32 120, i32 184, i32 248, i32 312, i32 376, i32 440, i32 57, i32 121, i32 185, i32 249, i32 313, i32 377, i32 441, i32 58, i32 122, i32 186, i32 250, i32 314, i32 378, i32 442, i32 59, i32 123, i32 187, i32 251, i32 315, i32 379, i32 443, i32 60, i32 124, i32 188, i32 252, i32 316, i32 380, i32 444, i32 61, i32 125, i32 189, i32 253, i32 317, i32 381, i32 445, i32 62, i32 126, i32 190, i32 254, i32 318, i32 382, i32 446, i32 63, i32 127, i32 191, i32 255, i32 319, i32 383, i32 447>10938  store <448 x i8> %interleaved.vec, ptr %out.vec, align 6410939  ret void10940}10941