brintos

brintos / llvm-project-archived public Read only

0
0
Text · 630.2 KiB · 3acc94d Raw
8623 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_stride8_vf2(ptr %in.vecptr0, ptr %in.vecptr1, ptr %in.vecptr2, ptr %in.vecptr3, ptr %in.vecptr4, ptr %in.vecptr5, ptr %in.vecptr6, ptr %in.vecptr7, ptr %out.vec) nounwind {19; SSE-LABEL: store_i8_stride8_vf2:20; SSE:       # %bb.0:21; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %rax22; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %r1023; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %r1124; SSE-NEXT:    movdqa (%rdi), %xmm025; SSE-NEXT:    movdqa (%rdx), %xmm126; SSE-NEXT:    movdqa (%r8), %xmm227; SSE-NEXT:    movdqa (%r11), %xmm328; SSE-NEXT:    punpcklwd {{.*#+}} xmm0 = xmm0[0],mem[0],xmm0[1],mem[1],xmm0[2],mem[2],xmm0[3],mem[3]29; SSE-NEXT:    punpcklwd {{.*#+}} xmm1 = xmm1[0],mem[0],xmm1[1],mem[1],xmm1[2],mem[2],xmm1[3],mem[3]30; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]31; SSE-NEXT:    punpcklwd {{.*#+}} xmm2 = xmm2[0],mem[0],xmm2[1],mem[1],xmm2[2],mem[2],xmm2[3],mem[3]32; SSE-NEXT:    punpcklwd {{.*#+}} xmm3 = xmm3[0],mem[0],xmm3[1],mem[1],xmm3[2],mem[2],xmm3[3],mem[3]33; SSE-NEXT:    punpckldq {{.*#+}} xmm2 = xmm2[0],xmm3[0],xmm2[1],xmm3[1]34; SSE-NEXT:    pxor %xmm1, %xmm135; 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]36; SSE-NEXT:    pshuflw {{.*#+}} xmm3 = xmm2[0,2,2,3,4,5,6,7]37; SSE-NEXT:    pshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,4,6,6,7]38; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm3[0,1,0,2]39; SSE-NEXT:    pshuflw {{.*#+}} xmm2 = xmm2[3,1,2,3,4,5,6,7]40; SSE-NEXT:    pshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,7,5,6,7]41; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm2[0,1,2,0]42; SSE-NEXT:    pshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,7,6,5,4]43; SSE-NEXT:    packuswb %xmm2, %xmm344; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm3[1,3,2,3]45; 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]46; SSE-NEXT:    pshuflw {{.*#+}} xmm1 = xmm0[0,2,2,3,4,5,6,7]47; SSE-NEXT:    pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,6,6,7]48; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm1[0,2,2,3]49; SSE-NEXT:    pshuflw {{.*#+}} xmm0 = xmm0[3,1,2,3,4,5,6,7]50; SSE-NEXT:    pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,7,5,6,7]51; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,2,2,3]52; SSE-NEXT:    pshuflw {{.*#+}} xmm0 = xmm0[1,0,3,2,4,5,6,7]53; SSE-NEXT:    packuswb %xmm0, %xmm154; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm1[0,2,2,3]55; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1]56; SSE-NEXT:    movdqa %xmm0, (%rax)57; SSE-NEXT:    retq58;59; AVX-LABEL: store_i8_stride8_vf2:60; AVX:       # %bb.0:61; AVX-NEXT:    movq {{[0-9]+}}(%rsp), %rax62; AVX-NEXT:    movq {{[0-9]+}}(%rsp), %r1063; AVX-NEXT:    movq {{[0-9]+}}(%rsp), %r1164; AVX-NEXT:    vmovdqa (%rdi), %xmm065; AVX-NEXT:    vmovdqa (%rdx), %xmm166; AVX-NEXT:    vmovdqa (%r8), %xmm267; AVX-NEXT:    vmovdqa (%r11), %xmm368; AVX-NEXT:    vpunpcklwd {{.*#+}} xmm0 = xmm0[0],mem[0],xmm0[1],mem[1],xmm0[2],mem[2],xmm0[3],mem[3]69; AVX-NEXT:    vpunpcklwd {{.*#+}} xmm1 = xmm1[0],mem[0],xmm1[1],mem[1],xmm1[2],mem[2],xmm1[3],mem[3]70; AVX-NEXT:    vpunpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]71; AVX-NEXT:    vpunpcklwd {{.*#+}} xmm1 = xmm2[0],mem[0],xmm2[1],mem[1],xmm2[2],mem[2],xmm2[3],mem[3]72; AVX-NEXT:    vpunpcklwd {{.*#+}} xmm2 = xmm3[0],mem[0],xmm3[1],mem[1],xmm3[2],mem[2],xmm3[3],mem[3]73; AVX-NEXT:    vpunpckldq {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]74; 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]75; AVX-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[0,4,8,12,1,5,9,13,2,6,10,14,3,7,11,15]76; AVX-NEXT:    vmovdqa %xmm0, (%rax)77; AVX-NEXT:    retq78;79; AVX2-LABEL: store_i8_stride8_vf2:80; AVX2:       # %bb.0:81; AVX2-NEXT:    movq {{[0-9]+}}(%rsp), %rax82; AVX2-NEXT:    movq {{[0-9]+}}(%rsp), %r1083; AVX2-NEXT:    movq {{[0-9]+}}(%rsp), %r1184; AVX2-NEXT:    vmovdqa (%rdi), %xmm085; AVX2-NEXT:    vmovdqa (%rdx), %xmm186; AVX2-NEXT:    vmovdqa (%r8), %xmm287; AVX2-NEXT:    vmovdqa (%r11), %xmm388; AVX2-NEXT:    vpunpcklwd {{.*#+}} xmm0 = xmm0[0],mem[0],xmm0[1],mem[1],xmm0[2],mem[2],xmm0[3],mem[3]89; AVX2-NEXT:    vpunpcklwd {{.*#+}} xmm1 = xmm1[0],mem[0],xmm1[1],mem[1],xmm1[2],mem[2],xmm1[3],mem[3]90; AVX2-NEXT:    vpunpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]91; AVX2-NEXT:    vpunpcklwd {{.*#+}} xmm1 = xmm2[0],mem[0],xmm2[1],mem[1],xmm2[2],mem[2],xmm2[3],mem[3]92; AVX2-NEXT:    vpunpcklwd {{.*#+}} xmm2 = xmm3[0],mem[0],xmm3[1],mem[1],xmm3[2],mem[2],xmm3[3],mem[3]93; AVX2-NEXT:    vpunpckldq {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]94; 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]95; AVX2-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[0,4,8,12,1,5,9,13,2,6,10,14,3,7,11,15]96; AVX2-NEXT:    vmovdqa %xmm0, (%rax)97; AVX2-NEXT:    retq98;99; AVX2-FP-LABEL: store_i8_stride8_vf2:100; AVX2-FP:       # %bb.0:101; AVX2-FP-NEXT:    movq {{[0-9]+}}(%rsp), %rax102; AVX2-FP-NEXT:    movq {{[0-9]+}}(%rsp), %r10103; AVX2-FP-NEXT:    movq {{[0-9]+}}(%rsp), %r11104; AVX2-FP-NEXT:    vmovdqa (%rdi), %xmm0105; AVX2-FP-NEXT:    vmovdqa (%rdx), %xmm1106; AVX2-FP-NEXT:    vmovdqa (%r8), %xmm2107; AVX2-FP-NEXT:    vmovdqa (%r11), %xmm3108; AVX2-FP-NEXT:    vpunpcklwd {{.*#+}} xmm0 = xmm0[0],mem[0],xmm0[1],mem[1],xmm0[2],mem[2],xmm0[3],mem[3]109; AVX2-FP-NEXT:    vpunpcklwd {{.*#+}} xmm1 = xmm1[0],mem[0],xmm1[1],mem[1],xmm1[2],mem[2],xmm1[3],mem[3]110; AVX2-FP-NEXT:    vpunpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]111; AVX2-FP-NEXT:    vpunpcklwd {{.*#+}} xmm1 = xmm2[0],mem[0],xmm2[1],mem[1],xmm2[2],mem[2],xmm2[3],mem[3]112; AVX2-FP-NEXT:    vpunpcklwd {{.*#+}} xmm2 = xmm3[0],mem[0],xmm3[1],mem[1],xmm3[2],mem[2],xmm3[3],mem[3]113; AVX2-FP-NEXT:    vpunpckldq {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]114; 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]115; AVX2-FP-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[0,4,8,12,1,5,9,13,2,6,10,14,3,7,11,15]116; AVX2-FP-NEXT:    vmovdqa %xmm0, (%rax)117; AVX2-FP-NEXT:    retq118;119; AVX2-FCP-LABEL: store_i8_stride8_vf2:120; AVX2-FCP:       # %bb.0:121; AVX2-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax122; AVX2-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r10123; AVX2-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r11124; AVX2-FCP-NEXT:    vmovdqa (%rdi), %xmm0125; AVX2-FCP-NEXT:    vmovdqa (%rdx), %xmm1126; AVX2-FCP-NEXT:    vmovdqa (%r8), %xmm2127; AVX2-FCP-NEXT:    vmovdqa (%r11), %xmm3128; AVX2-FCP-NEXT:    vpunpcklwd {{.*#+}} xmm0 = xmm0[0],mem[0],xmm0[1],mem[1],xmm0[2],mem[2],xmm0[3],mem[3]129; AVX2-FCP-NEXT:    vpunpcklwd {{.*#+}} xmm1 = xmm1[0],mem[0],xmm1[1],mem[1],xmm1[2],mem[2],xmm1[3],mem[3]130; AVX2-FCP-NEXT:    vpunpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]131; AVX2-FCP-NEXT:    vpunpcklwd {{.*#+}} xmm1 = xmm2[0],mem[0],xmm2[1],mem[1],xmm2[2],mem[2],xmm2[3],mem[3]132; AVX2-FCP-NEXT:    vpunpcklwd {{.*#+}} xmm2 = xmm3[0],mem[0],xmm3[1],mem[1],xmm3[2],mem[2],xmm3[3],mem[3]133; AVX2-FCP-NEXT:    vpunpckldq {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]134; 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]135; AVX2-FCP-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[0,4,8,12,1,5,9,13,2,6,10,14,3,7,11,15]136; AVX2-FCP-NEXT:    vmovdqa %xmm0, (%rax)137; AVX2-FCP-NEXT:    retq138;139; AVX512-LABEL: store_i8_stride8_vf2:140; AVX512:       # %bb.0:141; AVX512-NEXT:    movq {{[0-9]+}}(%rsp), %rax142; AVX512-NEXT:    movq {{[0-9]+}}(%rsp), %r10143; AVX512-NEXT:    movq {{[0-9]+}}(%rsp), %r11144; AVX512-NEXT:    vmovdqa (%rdi), %xmm0145; AVX512-NEXT:    vmovdqa (%rdx), %xmm1146; AVX512-NEXT:    vmovdqa (%r8), %xmm2147; AVX512-NEXT:    vmovdqa (%r11), %xmm3148; AVX512-NEXT:    vpunpcklwd {{.*#+}} xmm0 = xmm0[0],mem[0],xmm0[1],mem[1],xmm0[2],mem[2],xmm0[3],mem[3]149; AVX512-NEXT:    vpunpcklwd {{.*#+}} xmm1 = xmm1[0],mem[0],xmm1[1],mem[1],xmm1[2],mem[2],xmm1[3],mem[3]150; AVX512-NEXT:    vpunpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]151; AVX512-NEXT:    vpunpcklwd {{.*#+}} xmm1 = xmm2[0],mem[0],xmm2[1],mem[1],xmm2[2],mem[2],xmm2[3],mem[3]152; AVX512-NEXT:    vpunpcklwd {{.*#+}} xmm2 = xmm3[0],mem[0],xmm3[1],mem[1],xmm3[2],mem[2],xmm3[3],mem[3]153; AVX512-NEXT:    vpunpckldq {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]154; 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]155; AVX512-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[0,4,8,12,1,5,9,13,2,6,10,14,3,7,11,15]156; AVX512-NEXT:    vmovdqa %xmm0, (%rax)157; AVX512-NEXT:    retq158;159; AVX512-FCP-LABEL: store_i8_stride8_vf2:160; AVX512-FCP:       # %bb.0:161; AVX512-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax162; AVX512-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r10163; AVX512-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r11164; AVX512-FCP-NEXT:    vmovdqa (%rdi), %xmm0165; AVX512-FCP-NEXT:    vmovdqa (%rdx), %xmm1166; AVX512-FCP-NEXT:    vmovdqa (%r8), %xmm2167; AVX512-FCP-NEXT:    vmovdqa (%r11), %xmm3168; AVX512-FCP-NEXT:    vpunpcklwd {{.*#+}} xmm0 = xmm0[0],mem[0],xmm0[1],mem[1],xmm0[2],mem[2],xmm0[3],mem[3]169; AVX512-FCP-NEXT:    vpunpcklwd {{.*#+}} xmm1 = xmm1[0],mem[0],xmm1[1],mem[1],xmm1[2],mem[2],xmm1[3],mem[3]170; AVX512-FCP-NEXT:    vpunpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]171; AVX512-FCP-NEXT:    vpunpcklwd {{.*#+}} xmm1 = xmm2[0],mem[0],xmm2[1],mem[1],xmm2[2],mem[2],xmm2[3],mem[3]172; AVX512-FCP-NEXT:    vpunpcklwd {{.*#+}} xmm2 = xmm3[0],mem[0],xmm3[1],mem[1],xmm3[2],mem[2],xmm3[3],mem[3]173; AVX512-FCP-NEXT:    vpunpckldq {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]174; 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]175; AVX512-FCP-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[0,4,8,12,1,5,9,13,2,6,10,14,3,7,11,15]176; AVX512-FCP-NEXT:    vmovdqa %xmm0, (%rax)177; AVX512-FCP-NEXT:    retq178;179; AVX512DQ-LABEL: store_i8_stride8_vf2:180; AVX512DQ:       # %bb.0:181; AVX512DQ-NEXT:    movq {{[0-9]+}}(%rsp), %rax182; AVX512DQ-NEXT:    movq {{[0-9]+}}(%rsp), %r10183; AVX512DQ-NEXT:    movq {{[0-9]+}}(%rsp), %r11184; AVX512DQ-NEXT:    vmovdqa (%rdi), %xmm0185; AVX512DQ-NEXT:    vmovdqa (%rdx), %xmm1186; AVX512DQ-NEXT:    vmovdqa (%r8), %xmm2187; AVX512DQ-NEXT:    vmovdqa (%r11), %xmm3188; AVX512DQ-NEXT:    vpunpcklwd {{.*#+}} xmm0 = xmm0[0],mem[0],xmm0[1],mem[1],xmm0[2],mem[2],xmm0[3],mem[3]189; AVX512DQ-NEXT:    vpunpcklwd {{.*#+}} xmm1 = xmm1[0],mem[0],xmm1[1],mem[1],xmm1[2],mem[2],xmm1[3],mem[3]190; AVX512DQ-NEXT:    vpunpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]191; AVX512DQ-NEXT:    vpunpcklwd {{.*#+}} xmm1 = xmm2[0],mem[0],xmm2[1],mem[1],xmm2[2],mem[2],xmm2[3],mem[3]192; AVX512DQ-NEXT:    vpunpcklwd {{.*#+}} xmm2 = xmm3[0],mem[0],xmm3[1],mem[1],xmm3[2],mem[2],xmm3[3],mem[3]193; AVX512DQ-NEXT:    vpunpckldq {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]194; 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]195; AVX512DQ-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[0,4,8,12,1,5,9,13,2,6,10,14,3,7,11,15]196; AVX512DQ-NEXT:    vmovdqa %xmm0, (%rax)197; AVX512DQ-NEXT:    retq198;199; AVX512DQ-FCP-LABEL: store_i8_stride8_vf2:200; AVX512DQ-FCP:       # %bb.0:201; AVX512DQ-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax202; AVX512DQ-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r10203; AVX512DQ-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r11204; AVX512DQ-FCP-NEXT:    vmovdqa (%rdi), %xmm0205; AVX512DQ-FCP-NEXT:    vmovdqa (%rdx), %xmm1206; AVX512DQ-FCP-NEXT:    vmovdqa (%r8), %xmm2207; AVX512DQ-FCP-NEXT:    vmovdqa (%r11), %xmm3208; AVX512DQ-FCP-NEXT:    vpunpcklwd {{.*#+}} xmm0 = xmm0[0],mem[0],xmm0[1],mem[1],xmm0[2],mem[2],xmm0[3],mem[3]209; AVX512DQ-FCP-NEXT:    vpunpcklwd {{.*#+}} xmm1 = xmm1[0],mem[0],xmm1[1],mem[1],xmm1[2],mem[2],xmm1[3],mem[3]210; AVX512DQ-FCP-NEXT:    vpunpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]211; AVX512DQ-FCP-NEXT:    vpunpcklwd {{.*#+}} xmm1 = xmm2[0],mem[0],xmm2[1],mem[1],xmm2[2],mem[2],xmm2[3],mem[3]212; AVX512DQ-FCP-NEXT:    vpunpcklwd {{.*#+}} xmm2 = xmm3[0],mem[0],xmm3[1],mem[1],xmm3[2],mem[2],xmm3[3],mem[3]213; AVX512DQ-FCP-NEXT:    vpunpckldq {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]214; 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]215; AVX512DQ-FCP-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[0,4,8,12,1,5,9,13,2,6,10,14,3,7,11,15]216; AVX512DQ-FCP-NEXT:    vmovdqa %xmm0, (%rax)217; AVX512DQ-FCP-NEXT:    retq218;219; AVX512BW-LABEL: store_i8_stride8_vf2:220; AVX512BW:       # %bb.0:221; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax222; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %r10223; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %r11224; AVX512BW-NEXT:    vmovdqa (%rdi), %xmm0225; AVX512BW-NEXT:    vmovdqa (%rdx), %xmm1226; AVX512BW-NEXT:    vmovdqa (%r8), %xmm2227; AVX512BW-NEXT:    vmovdqa (%r11), %xmm3228; AVX512BW-NEXT:    vpunpcklwd {{.*#+}} xmm0 = xmm0[0],mem[0],xmm0[1],mem[1],xmm0[2],mem[2],xmm0[3],mem[3]229; AVX512BW-NEXT:    vpunpcklwd {{.*#+}} xmm1 = xmm1[0],mem[0],xmm1[1],mem[1],xmm1[2],mem[2],xmm1[3],mem[3]230; AVX512BW-NEXT:    vpunpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]231; AVX512BW-NEXT:    vpunpcklwd {{.*#+}} xmm1 = xmm2[0],mem[0],xmm2[1],mem[1],xmm2[2],mem[2],xmm2[3],mem[3]232; AVX512BW-NEXT:    vpunpcklwd {{.*#+}} xmm2 = xmm3[0],mem[0],xmm3[1],mem[1],xmm3[2],mem[2],xmm3[3],mem[3]233; AVX512BW-NEXT:    vpunpckldq {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]234; 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]235; AVX512BW-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[0,4,8,12,1,5,9,13,2,6,10,14,3,7,11,15]236; AVX512BW-NEXT:    vmovdqa %xmm0, (%rax)237; AVX512BW-NEXT:    retq238;239; AVX512BW-FCP-LABEL: store_i8_stride8_vf2:240; AVX512BW-FCP:       # %bb.0:241; AVX512BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax242; AVX512BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r10243; AVX512BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r11244; AVX512BW-FCP-NEXT:    vmovdqa (%rdi), %xmm0245; AVX512BW-FCP-NEXT:    vmovdqa (%rdx), %xmm1246; AVX512BW-FCP-NEXT:    vmovdqa (%r8), %xmm2247; AVX512BW-FCP-NEXT:    vmovdqa (%r11), %xmm3248; AVX512BW-FCP-NEXT:    vpunpcklwd {{.*#+}} xmm0 = xmm0[0],mem[0],xmm0[1],mem[1],xmm0[2],mem[2],xmm0[3],mem[3]249; AVX512BW-FCP-NEXT:    vpunpcklwd {{.*#+}} xmm1 = xmm1[0],mem[0],xmm1[1],mem[1],xmm1[2],mem[2],xmm1[3],mem[3]250; AVX512BW-FCP-NEXT:    vpunpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]251; AVX512BW-FCP-NEXT:    vpunpcklwd {{.*#+}} xmm1 = xmm2[0],mem[0],xmm2[1],mem[1],xmm2[2],mem[2],xmm2[3],mem[3]252; AVX512BW-FCP-NEXT:    vpunpcklwd {{.*#+}} xmm2 = xmm3[0],mem[0],xmm3[1],mem[1],xmm3[2],mem[2],xmm3[3],mem[3]253; AVX512BW-FCP-NEXT:    vpunpckldq {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]254; 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]255; AVX512BW-FCP-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[0,4,8,12,1,5,9,13,2,6,10,14,3,7,11,15]256; AVX512BW-FCP-NEXT:    vmovdqa %xmm0, (%rax)257; AVX512BW-FCP-NEXT:    retq258;259; AVX512DQ-BW-LABEL: store_i8_stride8_vf2:260; AVX512DQ-BW:       # %bb.0:261; AVX512DQ-BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax262; AVX512DQ-BW-NEXT:    movq {{[0-9]+}}(%rsp), %r10263; AVX512DQ-BW-NEXT:    movq {{[0-9]+}}(%rsp), %r11264; AVX512DQ-BW-NEXT:    vmovdqa (%rdi), %xmm0265; AVX512DQ-BW-NEXT:    vmovdqa (%rdx), %xmm1266; AVX512DQ-BW-NEXT:    vmovdqa (%r8), %xmm2267; AVX512DQ-BW-NEXT:    vmovdqa (%r11), %xmm3268; AVX512DQ-BW-NEXT:    vpunpcklwd {{.*#+}} xmm0 = xmm0[0],mem[0],xmm0[1],mem[1],xmm0[2],mem[2],xmm0[3],mem[3]269; AVX512DQ-BW-NEXT:    vpunpcklwd {{.*#+}} xmm1 = xmm1[0],mem[0],xmm1[1],mem[1],xmm1[2],mem[2],xmm1[3],mem[3]270; AVX512DQ-BW-NEXT:    vpunpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]271; AVX512DQ-BW-NEXT:    vpunpcklwd {{.*#+}} xmm1 = xmm2[0],mem[0],xmm2[1],mem[1],xmm2[2],mem[2],xmm2[3],mem[3]272; AVX512DQ-BW-NEXT:    vpunpcklwd {{.*#+}} xmm2 = xmm3[0],mem[0],xmm3[1],mem[1],xmm3[2],mem[2],xmm3[3],mem[3]273; AVX512DQ-BW-NEXT:    vpunpckldq {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]274; 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]275; AVX512DQ-BW-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[0,4,8,12,1,5,9,13,2,6,10,14,3,7,11,15]276; AVX512DQ-BW-NEXT:    vmovdqa %xmm0, (%rax)277; AVX512DQ-BW-NEXT:    retq278;279; AVX512DQ-BW-FCP-LABEL: store_i8_stride8_vf2:280; AVX512DQ-BW-FCP:       # %bb.0:281; AVX512DQ-BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax282; AVX512DQ-BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r10283; AVX512DQ-BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r11284; AVX512DQ-BW-FCP-NEXT:    vmovdqa (%rdi), %xmm0285; AVX512DQ-BW-FCP-NEXT:    vmovdqa (%rdx), %xmm1286; AVX512DQ-BW-FCP-NEXT:    vmovdqa (%r8), %xmm2287; AVX512DQ-BW-FCP-NEXT:    vmovdqa (%r11), %xmm3288; AVX512DQ-BW-FCP-NEXT:    vpunpcklwd {{.*#+}} xmm0 = xmm0[0],mem[0],xmm0[1],mem[1],xmm0[2],mem[2],xmm0[3],mem[3]289; AVX512DQ-BW-FCP-NEXT:    vpunpcklwd {{.*#+}} xmm1 = xmm1[0],mem[0],xmm1[1],mem[1],xmm1[2],mem[2],xmm1[3],mem[3]290; AVX512DQ-BW-FCP-NEXT:    vpunpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]291; AVX512DQ-BW-FCP-NEXT:    vpunpcklwd {{.*#+}} xmm1 = xmm2[0],mem[0],xmm2[1],mem[1],xmm2[2],mem[2],xmm2[3],mem[3]292; AVX512DQ-BW-FCP-NEXT:    vpunpcklwd {{.*#+}} xmm2 = xmm3[0],mem[0],xmm3[1],mem[1],xmm3[2],mem[2],xmm3[3],mem[3]293; AVX512DQ-BW-FCP-NEXT:    vpunpckldq {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]294; 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]295; AVX512DQ-BW-FCP-NEXT:    vpshufb {{.*#+}} xmm0 = xmm0[0,4,8,12,1,5,9,13,2,6,10,14,3,7,11,15]296; AVX512DQ-BW-FCP-NEXT:    vmovdqa %xmm0, (%rax)297; AVX512DQ-BW-FCP-NEXT:    retq298  %in.vec0 = load <2 x i8>, ptr %in.vecptr0, align 64299  %in.vec1 = load <2 x i8>, ptr %in.vecptr1, align 64300  %in.vec2 = load <2 x i8>, ptr %in.vecptr2, align 64301  %in.vec3 = load <2 x i8>, ptr %in.vecptr3, align 64302  %in.vec4 = load <2 x i8>, ptr %in.vecptr4, align 64303  %in.vec5 = load <2 x i8>, ptr %in.vecptr5, align 64304  %in.vec6 = load <2 x i8>, ptr %in.vecptr6, align 64305  %in.vec7 = load <2 x i8>, ptr %in.vecptr7, align 64306  %1 = shufflevector <2 x i8> %in.vec0, <2 x i8> %in.vec1, <4 x i32> <i32 0, i32 1, i32 2, i32 3>307  %2 = shufflevector <2 x i8> %in.vec2, <2 x i8> %in.vec3, <4 x i32> <i32 0, i32 1, i32 2, i32 3>308  %3 = shufflevector <2 x i8> %in.vec4, <2 x i8> %in.vec5, <4 x i32> <i32 0, i32 1, i32 2, i32 3>309  %4 = shufflevector <2 x i8> %in.vec6, <2 x i8> %in.vec7, <4 x i32> <i32 0, i32 1, i32 2, i32 3>310  %5 = 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>311  %6 = shufflevector <4 x i8> %3, <4 x i8> %4, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>312  %7 = shufflevector <8 x i8> %5, <8 x i8> %6, <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>313  %interleaved.vec = shufflevector <16 x i8> %7, <16 x i8> poison, <16 x i32> <i32 0, i32 2, i32 4, i32 6, i32 8, i32 10, i32 12, i32 14, i32 1, i32 3, i32 5, i32 7, i32 9, i32 11, i32 13, i32 15>314  store <16 x i8> %interleaved.vec, ptr %out.vec, align 64315  ret void316}317 318define void @store_i8_stride8_vf4(ptr %in.vecptr0, ptr %in.vecptr1, ptr %in.vecptr2, ptr %in.vecptr3, ptr %in.vecptr4, ptr %in.vecptr5, ptr %in.vecptr6, ptr %in.vecptr7, ptr %out.vec) nounwind {319; SSE-LABEL: store_i8_stride8_vf4:320; SSE:       # %bb.0:321; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %rax322; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %r10323; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %r11324; SSE-NEXT:    movdqa (%rdi), %xmm0325; SSE-NEXT:    movdqa (%rdx), %xmm1326; SSE-NEXT:    movdqa (%r8), %xmm2327; SSE-NEXT:    movdqa (%r11), %xmm3328; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],mem[0],xmm0[1],mem[1]329; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]330; SSE-NEXT:    punpckldq {{.*#+}} xmm2 = xmm2[0],mem[0],xmm2[1],mem[1]331; SSE-NEXT:    punpckldq {{.*#+}} xmm3 = xmm3[0],mem[0],xmm3[1],mem[1]332; SSE-NEXT:    pxor %xmm6, %xmm6333; SSE-NEXT:    punpcklbw {{.*#+}} xmm3 = 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]334; SSE-NEXT:    pshufd {{.*#+}} xmm4 = xmm3[0,1,2,0]335; SSE-NEXT:    pshufhw {{.*#+}} xmm5 = xmm4[0,1,2,3,4,5,7,5]336; SSE-NEXT:    pshufhw {{.*#+}} xmm7 = xmm4[0,1,2,3,4,5,6,4]337; SSE-NEXT:    packuswb %xmm5, %xmm7338; SSE-NEXT:    movdqa {{.*#+}} xmm4 = [65535,65535,65535,0,65535,65535,65535,0]339; SSE-NEXT:    movdqa %xmm4, %xmm5340; SSE-NEXT:    pandn %xmm7, %xmm5341; SSE-NEXT:    punpcklbw {{.*#+}} xmm2 = xmm2[0],xmm6[0],xmm2[1],xmm6[1],xmm2[2],xmm6[2],xmm2[3],xmm6[3],xmm2[4],xmm6[4],xmm2[5],xmm6[5],xmm2[6],xmm6[6],xmm2[7],xmm6[7]342; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm2[0,1,2,0]343; SSE-NEXT:    pshufhw {{.*#+}} xmm8 = xmm7[0,1,2,3,7,5,6,7]344; SSE-NEXT:    pshufhw {{.*#+}} xmm7 = xmm7[0,1,2,3,6,4,6,7]345; SSE-NEXT:    packuswb %xmm8, %xmm7346; SSE-NEXT:    pand %xmm4, %xmm7347; SSE-NEXT:    por %xmm5, %xmm7348; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm7[1,3,2,3]349; SSE-NEXT:    punpcklbw {{.*#+}} xmm1 = xmm1[0],xmm6[0],xmm1[1],xmm6[1],xmm1[2],xmm6[2],xmm1[3],xmm6[3],xmm1[4],xmm6[4],xmm1[5],xmm6[5],xmm1[6],xmm6[6],xmm1[7],xmm6[7]350; SSE-NEXT:    pshufd {{.*#+}} xmm5 = xmm1[0,2,2,3]351; SSE-NEXT:    pshuflw {{.*#+}} xmm8 = xmm5[0,1,1,3,4,5,6,7]352; SSE-NEXT:    pshuflw {{.*#+}} xmm9 = xmm5[0,1,0,2,4,5,6,7]353; SSE-NEXT:    packuswb %xmm8, %xmm9354; SSE-NEXT:    movdqa {{.*#+}} xmm5 = [65535,0,65535,65535,65535,0,65535,65535]355; SSE-NEXT:    movdqa %xmm5, %xmm8356; SSE-NEXT:    pandn %xmm9, %xmm8357; SSE-NEXT:    punpcklbw {{.*#+}} xmm0 = xmm0[0],xmm6[0],xmm0[1],xmm6[1],xmm0[2],xmm6[2],xmm0[3],xmm6[3],xmm0[4],xmm6[4],xmm0[5],xmm6[5],xmm0[6],xmm6[6],xmm0[7],xmm6[7]358; SSE-NEXT:    pshufd {{.*#+}} xmm6 = xmm0[0,2,2,3]359; SSE-NEXT:    pshuflw {{.*#+}} xmm9 = xmm6[1,3,2,3,4,5,6,7]360; SSE-NEXT:    pshuflw {{.*#+}} xmm6 = xmm6[0,2,2,3,4,5,6,7]361; SSE-NEXT:    packuswb %xmm9, %xmm6362; SSE-NEXT:    pand %xmm5, %xmm6363; SSE-NEXT:    por %xmm8, %xmm6364; SSE-NEXT:    pshufd {{.*#+}} xmm6 = xmm6[0,2,2,3]365; SSE-NEXT:    punpckldq {{.*#+}} xmm6 = xmm6[0],xmm7[0],xmm6[1],xmm7[1]366; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm3[0,1,1,3]367; SSE-NEXT:    pshufhw {{.*#+}} xmm7 = xmm3[0,1,2,3,4,5,5,7]368; SSE-NEXT:    pshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,4,5,4,6]369; SSE-NEXT:    packuswb %xmm7, %xmm3370; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm2[0,1,1,3]371; SSE-NEXT:    pshufhw {{.*#+}} xmm7 = xmm2[0,1,2,3,5,7,6,7]372; SSE-NEXT:    pshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,6,6,7]373; SSE-NEXT:    packuswb %xmm7, %xmm2374; SSE-NEXT:    pand %xmm4, %xmm2375; SSE-NEXT:    pandn %xmm3, %xmm4376; SSE-NEXT:    por %xmm2, %xmm4377; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm4[1,3,2,3]378; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm1[3,1,2,3]379; SSE-NEXT:    pshuflw {{.*#+}} xmm3 = xmm1[0,1,3,1,4,5,6,7]380; SSE-NEXT:    pshuflw {{.*#+}} xmm1 = xmm1[0,1,2,0,4,5,6,7]381; SSE-NEXT:    packuswb %xmm3, %xmm1382; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[3,1,2,3]383; SSE-NEXT:    pshuflw {{.*#+}} xmm3 = xmm0[3,1,2,3,4,5,6,7]384; SSE-NEXT:    pshuflw {{.*#+}} xmm0 = xmm0[2,0,2,3,4,5,6,7]385; SSE-NEXT:    packuswb %xmm3, %xmm0386; SSE-NEXT:    pand %xmm5, %xmm0387; SSE-NEXT:    pandn %xmm1, %xmm5388; SSE-NEXT:    por %xmm0, %xmm5389; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm5[0,2,2,3]390; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1]391; SSE-NEXT:    movdqa %xmm0, 16(%rax)392; SSE-NEXT:    movdqa %xmm6, (%rax)393; SSE-NEXT:    retq394;395; AVX-LABEL: store_i8_stride8_vf4:396; AVX:       # %bb.0:397; AVX-NEXT:    movq {{[0-9]+}}(%rsp), %rax398; AVX-NEXT:    movq {{[0-9]+}}(%rsp), %r10399; AVX-NEXT:    movq {{[0-9]+}}(%rsp), %r11400; AVX-NEXT:    vmovdqa (%rdi), %xmm0401; AVX-NEXT:    vmovdqa (%rdx), %xmm1402; AVX-NEXT:    vmovdqa (%r8), %xmm2403; AVX-NEXT:    vmovdqa (%r11), %xmm3404; AVX-NEXT:    vpunpckldq {{.*#+}} xmm0 = xmm0[0],mem[0],xmm0[1],mem[1]405; AVX-NEXT:    vpunpckldq {{.*#+}} xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]406; AVX-NEXT:    vpunpcklqdq {{.*#+}} xmm0 = xmm0[0],xmm1[0]407; AVX-NEXT:    vpunpckldq {{.*#+}} xmm1 = xmm2[0],mem[0],xmm2[1],mem[1]408; AVX-NEXT:    vpunpckldq {{.*#+}} xmm2 = xmm3[0],mem[0],xmm3[1],mem[1]409; AVX-NEXT:    vpunpcklqdq {{.*#+}} xmm1 = xmm1[0],xmm2[0]410; AVX-NEXT:    vmovq {{.*#+}} xmm2 = [2,6,10,14,3,7,11,15,0,0,0,0,0,0,0,0]411; AVX-NEXT:    vpshufb %xmm2, %xmm1, %xmm3412; AVX-NEXT:    vpshufb %xmm2, %xmm0, %xmm2413; AVX-NEXT:    vpunpckldq {{.*#+}} xmm2 = xmm2[0],xmm3[0],xmm2[1],xmm3[1]414; AVX-NEXT:    vmovq {{.*#+}} xmm3 = [0,4,8,12,1,5,9,13,0,0,0,0,0,0,0,0]415; AVX-NEXT:    vpshufb %xmm3, %xmm1, %xmm1416; AVX-NEXT:    vpshufb %xmm3, %xmm0, %xmm0417; AVX-NEXT:    vpunpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]418; AVX-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0419; AVX-NEXT:    vmovaps %ymm0, (%rax)420; AVX-NEXT:    vzeroupper421; AVX-NEXT:    retq422;423; AVX2-LABEL: store_i8_stride8_vf4:424; AVX2:       # %bb.0:425; AVX2-NEXT:    movq {{[0-9]+}}(%rsp), %rax426; AVX2-NEXT:    movq {{[0-9]+}}(%rsp), %r10427; AVX2-NEXT:    movq {{[0-9]+}}(%rsp), %r11428; AVX2-NEXT:    vmovdqa (%rdi), %xmm0429; AVX2-NEXT:    vmovdqa (%rdx), %xmm1430; AVX2-NEXT:    vmovdqa (%r8), %xmm2431; AVX2-NEXT:    vmovdqa (%r11), %xmm3432; AVX2-NEXT:    vpunpckldq {{.*#+}} xmm0 = xmm0[0],mem[0],xmm0[1],mem[1]433; AVX2-NEXT:    vpunpckldq {{.*#+}} xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]434; AVX2-NEXT:    vpunpckldq {{.*#+}} xmm2 = xmm2[0],mem[0],xmm2[1],mem[1]435; AVX2-NEXT:    vpunpckldq {{.*#+}} xmm3 = xmm3[0],mem[0],xmm3[1],mem[1]436; AVX2-NEXT:    vinserti128 $1, %xmm3, %ymm1, %ymm1437; AVX2-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm0438; AVX2-NEXT:    vpunpcklqdq {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]439; AVX2-NEXT:    vpshufb {{.*#+}} ymm0 = ymm0[0,4,8,12,1,5,9,13,2,6,10,14,3,7,11,15,16,20,24,28,17,21,25,29,18,22,26,30,19,23,27,31]440; AVX2-NEXT:    vpmovsxbd {{.*#+}} ymm1 = [0,4,1,5,2,6,3,7]441; AVX2-NEXT:    vpermd %ymm0, %ymm1, %ymm0442; AVX2-NEXT:    vmovdqa %ymm0, (%rax)443; AVX2-NEXT:    vzeroupper444; AVX2-NEXT:    retq445;446; AVX2-FP-LABEL: store_i8_stride8_vf4:447; AVX2-FP:       # %bb.0:448; AVX2-FP-NEXT:    movq {{[0-9]+}}(%rsp), %rax449; AVX2-FP-NEXT:    movq {{[0-9]+}}(%rsp), %r10450; AVX2-FP-NEXT:    movq {{[0-9]+}}(%rsp), %r11451; AVX2-FP-NEXT:    vmovdqa (%rdi), %xmm0452; AVX2-FP-NEXT:    vmovdqa (%rdx), %xmm1453; AVX2-FP-NEXT:    vmovdqa (%r8), %xmm2454; AVX2-FP-NEXT:    vmovdqa (%r11), %xmm3455; AVX2-FP-NEXT:    vpunpckldq {{.*#+}} xmm0 = xmm0[0],mem[0],xmm0[1],mem[1]456; AVX2-FP-NEXT:    vpunpckldq {{.*#+}} xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]457; AVX2-FP-NEXT:    vpunpckldq {{.*#+}} xmm2 = xmm2[0],mem[0],xmm2[1],mem[1]458; AVX2-FP-NEXT:    vpunpckldq {{.*#+}} xmm3 = xmm3[0],mem[0],xmm3[1],mem[1]459; AVX2-FP-NEXT:    vinserti128 $1, %xmm3, %ymm1, %ymm1460; AVX2-FP-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm0461; AVX2-FP-NEXT:    vpunpcklqdq {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]462; AVX2-FP-NEXT:    vpshufb {{.*#+}} ymm0 = ymm0[0,4,8,12,1,5,9,13,2,6,10,14,3,7,11,15,16,20,24,28,17,21,25,29,18,22,26,30,19,23,27,31]463; AVX2-FP-NEXT:    vpmovsxbd {{.*#+}} ymm1 = [0,4,1,5,2,6,3,7]464; AVX2-FP-NEXT:    vpermd %ymm0, %ymm1, %ymm0465; AVX2-FP-NEXT:    vmovdqa %ymm0, (%rax)466; AVX2-FP-NEXT:    vzeroupper467; AVX2-FP-NEXT:    retq468;469; AVX2-FCP-LABEL: store_i8_stride8_vf4:470; AVX2-FCP:       # %bb.0:471; AVX2-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax472; AVX2-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r10473; AVX2-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r11474; AVX2-FCP-NEXT:    vmovdqa (%rdi), %xmm0475; AVX2-FCP-NEXT:    vmovdqa (%rdx), %xmm1476; AVX2-FCP-NEXT:    vmovdqa (%r8), %xmm2477; AVX2-FCP-NEXT:    vmovdqa (%r11), %xmm3478; AVX2-FCP-NEXT:    vpunpckldq {{.*#+}} xmm0 = xmm0[0],mem[0],xmm0[1],mem[1]479; AVX2-FCP-NEXT:    vpunpckldq {{.*#+}} xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]480; AVX2-FCP-NEXT:    vpunpckldq {{.*#+}} xmm2 = xmm2[0],mem[0],xmm2[1],mem[1]481; AVX2-FCP-NEXT:    vpunpckldq {{.*#+}} xmm3 = xmm3[0],mem[0],xmm3[1],mem[1]482; AVX2-FCP-NEXT:    vinserti128 $1, %xmm3, %ymm1, %ymm1483; AVX2-FCP-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm0484; AVX2-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]485; AVX2-FCP-NEXT:    vpshufb {{.*#+}} ymm0 = ymm0[0,4,8,12,1,5,9,13,2,6,10,14,3,7,11,15,16,20,24,28,17,21,25,29,18,22,26,30,19,23,27,31]486; AVX2-FCP-NEXT:    vpmovsxbd {{.*#+}} ymm1 = [0,4,1,5,2,6,3,7]487; AVX2-FCP-NEXT:    vpermd %ymm0, %ymm1, %ymm0488; AVX2-FCP-NEXT:    vmovdqa %ymm0, (%rax)489; AVX2-FCP-NEXT:    vzeroupper490; AVX2-FCP-NEXT:    retq491;492; AVX512-LABEL: store_i8_stride8_vf4:493; AVX512:       # %bb.0:494; AVX512-NEXT:    movq {{[0-9]+}}(%rsp), %rax495; AVX512-NEXT:    movq {{[0-9]+}}(%rsp), %r10496; AVX512-NEXT:    movq {{[0-9]+}}(%rsp), %r11497; AVX512-NEXT:    vmovdqa (%rdi), %xmm0498; AVX512-NEXT:    vmovdqa (%rdx), %xmm1499; AVX512-NEXT:    vmovdqa (%r8), %xmm2500; AVX512-NEXT:    vmovdqa (%r11), %xmm3501; AVX512-NEXT:    vpunpckldq {{.*#+}} xmm0 = xmm0[0],mem[0],xmm0[1],mem[1]502; AVX512-NEXT:    vpunpckldq {{.*#+}} xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]503; AVX512-NEXT:    vpunpckldq {{.*#+}} xmm2 = xmm2[0],mem[0],xmm2[1],mem[1]504; AVX512-NEXT:    vpunpckldq {{.*#+}} xmm3 = xmm3[0],mem[0],xmm3[1],mem[1]505; AVX512-NEXT:    vinserti128 $1, %xmm3, %ymm1, %ymm1506; AVX512-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm0507; AVX512-NEXT:    vpunpcklqdq {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]508; AVX512-NEXT:    vpshufb {{.*#+}} ymm0 = ymm0[0,4,8,12,1,5,9,13,2,6,10,14,3,7,11,15,16,20,24,28,17,21,25,29,18,22,26,30,19,23,27,31]509; AVX512-NEXT:    vpmovsxbd {{.*#+}} ymm1 = [0,4,1,5,2,6,3,7]510; AVX512-NEXT:    vpermd %ymm0, %ymm1, %ymm0511; AVX512-NEXT:    vmovdqa %ymm0, (%rax)512; AVX512-NEXT:    vzeroupper513; AVX512-NEXT:    retq514;515; AVX512-FCP-LABEL: store_i8_stride8_vf4:516; AVX512-FCP:       # %bb.0:517; AVX512-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax518; AVX512-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r10519; AVX512-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r11520; AVX512-FCP-NEXT:    vmovdqa (%rdi), %xmm0521; AVX512-FCP-NEXT:    vmovdqa (%rdx), %xmm1522; AVX512-FCP-NEXT:    vmovdqa (%r8), %xmm2523; AVX512-FCP-NEXT:    vmovdqa (%r11), %xmm3524; AVX512-FCP-NEXT:    vpunpckldq {{.*#+}} xmm0 = xmm0[0],mem[0],xmm0[1],mem[1]525; AVX512-FCP-NEXT:    vpunpckldq {{.*#+}} xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]526; AVX512-FCP-NEXT:    vpunpckldq {{.*#+}} xmm2 = xmm2[0],mem[0],xmm2[1],mem[1]527; AVX512-FCP-NEXT:    vpunpckldq {{.*#+}} xmm3 = xmm3[0],mem[0],xmm3[1],mem[1]528; AVX512-FCP-NEXT:    vinserti128 $1, %xmm3, %ymm1, %ymm1529; AVX512-FCP-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm0530; AVX512-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]531; AVX512-FCP-NEXT:    vpshufb {{.*#+}} ymm0 = ymm0[0,4,8,12,1,5,9,13,2,6,10,14,3,7,11,15,16,20,24,28,17,21,25,29,18,22,26,30,19,23,27,31]532; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} ymm1 = [0,4,1,5,2,6,3,7]533; AVX512-FCP-NEXT:    vpermd %ymm0, %ymm1, %ymm0534; AVX512-FCP-NEXT:    vmovdqa %ymm0, (%rax)535; AVX512-FCP-NEXT:    vzeroupper536; AVX512-FCP-NEXT:    retq537;538; AVX512DQ-LABEL: store_i8_stride8_vf4:539; AVX512DQ:       # %bb.0:540; AVX512DQ-NEXT:    movq {{[0-9]+}}(%rsp), %rax541; AVX512DQ-NEXT:    movq {{[0-9]+}}(%rsp), %r10542; AVX512DQ-NEXT:    movq {{[0-9]+}}(%rsp), %r11543; AVX512DQ-NEXT:    vmovdqa (%rdi), %xmm0544; AVX512DQ-NEXT:    vmovdqa (%rdx), %xmm1545; AVX512DQ-NEXT:    vmovdqa (%r8), %xmm2546; AVX512DQ-NEXT:    vmovdqa (%r11), %xmm3547; AVX512DQ-NEXT:    vpunpckldq {{.*#+}} xmm0 = xmm0[0],mem[0],xmm0[1],mem[1]548; AVX512DQ-NEXT:    vpunpckldq {{.*#+}} xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]549; AVX512DQ-NEXT:    vpunpckldq {{.*#+}} xmm2 = xmm2[0],mem[0],xmm2[1],mem[1]550; AVX512DQ-NEXT:    vpunpckldq {{.*#+}} xmm3 = xmm3[0],mem[0],xmm3[1],mem[1]551; AVX512DQ-NEXT:    vinserti128 $1, %xmm3, %ymm1, %ymm1552; AVX512DQ-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm0553; AVX512DQ-NEXT:    vpunpcklqdq {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]554; AVX512DQ-NEXT:    vpshufb {{.*#+}} ymm0 = ymm0[0,4,8,12,1,5,9,13,2,6,10,14,3,7,11,15,16,20,24,28,17,21,25,29,18,22,26,30,19,23,27,31]555; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} ymm1 = [0,4,1,5,2,6,3,7]556; AVX512DQ-NEXT:    vpermd %ymm0, %ymm1, %ymm0557; AVX512DQ-NEXT:    vmovdqa %ymm0, (%rax)558; AVX512DQ-NEXT:    vzeroupper559; AVX512DQ-NEXT:    retq560;561; AVX512DQ-FCP-LABEL: store_i8_stride8_vf4:562; AVX512DQ-FCP:       # %bb.0:563; AVX512DQ-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax564; AVX512DQ-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r10565; AVX512DQ-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r11566; AVX512DQ-FCP-NEXT:    vmovdqa (%rdi), %xmm0567; AVX512DQ-FCP-NEXT:    vmovdqa (%rdx), %xmm1568; AVX512DQ-FCP-NEXT:    vmovdqa (%r8), %xmm2569; AVX512DQ-FCP-NEXT:    vmovdqa (%r11), %xmm3570; AVX512DQ-FCP-NEXT:    vpunpckldq {{.*#+}} xmm0 = xmm0[0],mem[0],xmm0[1],mem[1]571; AVX512DQ-FCP-NEXT:    vpunpckldq {{.*#+}} xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]572; AVX512DQ-FCP-NEXT:    vpunpckldq {{.*#+}} xmm2 = xmm2[0],mem[0],xmm2[1],mem[1]573; AVX512DQ-FCP-NEXT:    vpunpckldq {{.*#+}} xmm3 = xmm3[0],mem[0],xmm3[1],mem[1]574; AVX512DQ-FCP-NEXT:    vinserti128 $1, %xmm3, %ymm1, %ymm1575; AVX512DQ-FCP-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm0576; AVX512DQ-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]577; AVX512DQ-FCP-NEXT:    vpshufb {{.*#+}} ymm0 = ymm0[0,4,8,12,1,5,9,13,2,6,10,14,3,7,11,15,16,20,24,28,17,21,25,29,18,22,26,30,19,23,27,31]578; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} ymm1 = [0,4,1,5,2,6,3,7]579; AVX512DQ-FCP-NEXT:    vpermd %ymm0, %ymm1, %ymm0580; AVX512DQ-FCP-NEXT:    vmovdqa %ymm0, (%rax)581; AVX512DQ-FCP-NEXT:    vzeroupper582; AVX512DQ-FCP-NEXT:    retq583;584; AVX512BW-LABEL: store_i8_stride8_vf4:585; AVX512BW:       # %bb.0:586; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax587; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %r10588; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %r11589; AVX512BW-NEXT:    vmovdqa (%rdi), %xmm0590; AVX512BW-NEXT:    vmovdqa (%rdx), %xmm1591; AVX512BW-NEXT:    vmovdqa (%r8), %xmm2592; AVX512BW-NEXT:    vmovdqa (%r11), %xmm3593; AVX512BW-NEXT:    vpunpckldq {{.*#+}} xmm0 = xmm0[0],mem[0],xmm0[1],mem[1]594; AVX512BW-NEXT:    vpunpckldq {{.*#+}} xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]595; AVX512BW-NEXT:    vpunpckldq {{.*#+}} xmm2 = xmm2[0],mem[0],xmm2[1],mem[1]596; AVX512BW-NEXT:    vpunpckldq {{.*#+}} xmm3 = xmm3[0],mem[0],xmm3[1],mem[1]597; AVX512BW-NEXT:    vinserti128 $1, %xmm3, %ymm1, %ymm1598; AVX512BW-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm0599; AVX512BW-NEXT:    vpunpcklqdq {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]600; AVX512BW-NEXT:    vpshufb {{.*#+}} ymm0 = ymm0[0,4,8,12,1,5,9,13,2,6,10,14,3,7,11,15,16,20,24,28,17,21,25,29,18,22,26,30,19,23,27,31]601; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} ymm1 = [0,4,1,5,2,6,3,7]602; AVX512BW-NEXT:    vpermd %ymm0, %ymm1, %ymm0603; AVX512BW-NEXT:    vmovdqa %ymm0, (%rax)604; AVX512BW-NEXT:    vzeroupper605; AVX512BW-NEXT:    retq606;607; AVX512BW-FCP-LABEL: store_i8_stride8_vf4:608; AVX512BW-FCP:       # %bb.0:609; AVX512BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax610; AVX512BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r10611; AVX512BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r11612; AVX512BW-FCP-NEXT:    vmovdqa (%rdi), %xmm0613; AVX512BW-FCP-NEXT:    vmovdqa (%rdx), %xmm1614; AVX512BW-FCP-NEXT:    vmovdqa (%r8), %xmm2615; AVX512BW-FCP-NEXT:    vmovdqa (%r11), %xmm3616; AVX512BW-FCP-NEXT:    vpunpckldq {{.*#+}} xmm0 = xmm0[0],mem[0],xmm0[1],mem[1]617; AVX512BW-FCP-NEXT:    vpunpckldq {{.*#+}} xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]618; AVX512BW-FCP-NEXT:    vpunpckldq {{.*#+}} xmm2 = xmm2[0],mem[0],xmm2[1],mem[1]619; AVX512BW-FCP-NEXT:    vpunpckldq {{.*#+}} xmm3 = xmm3[0],mem[0],xmm3[1],mem[1]620; AVX512BW-FCP-NEXT:    vinserti128 $1, %xmm3, %ymm1, %ymm1621; AVX512BW-FCP-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm0622; AVX512BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]623; AVX512BW-FCP-NEXT:    vpshufb {{.*#+}} ymm0 = ymm0[0,4,8,12,1,5,9,13,2,6,10,14,3,7,11,15,16,20,24,28,17,21,25,29,18,22,26,30,19,23,27,31]624; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} ymm1 = [0,4,1,5,2,6,3,7]625; AVX512BW-FCP-NEXT:    vpermd %ymm0, %ymm1, %ymm0626; AVX512BW-FCP-NEXT:    vmovdqa %ymm0, (%rax)627; AVX512BW-FCP-NEXT:    vzeroupper628; AVX512BW-FCP-NEXT:    retq629;630; AVX512DQ-BW-LABEL: store_i8_stride8_vf4:631; AVX512DQ-BW:       # %bb.0:632; AVX512DQ-BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax633; AVX512DQ-BW-NEXT:    movq {{[0-9]+}}(%rsp), %r10634; AVX512DQ-BW-NEXT:    movq {{[0-9]+}}(%rsp), %r11635; AVX512DQ-BW-NEXT:    vmovdqa (%rdi), %xmm0636; AVX512DQ-BW-NEXT:    vmovdqa (%rdx), %xmm1637; AVX512DQ-BW-NEXT:    vmovdqa (%r8), %xmm2638; AVX512DQ-BW-NEXT:    vmovdqa (%r11), %xmm3639; AVX512DQ-BW-NEXT:    vpunpckldq {{.*#+}} xmm0 = xmm0[0],mem[0],xmm0[1],mem[1]640; AVX512DQ-BW-NEXT:    vpunpckldq {{.*#+}} xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]641; AVX512DQ-BW-NEXT:    vpunpckldq {{.*#+}} xmm2 = xmm2[0],mem[0],xmm2[1],mem[1]642; AVX512DQ-BW-NEXT:    vpunpckldq {{.*#+}} xmm3 = xmm3[0],mem[0],xmm3[1],mem[1]643; AVX512DQ-BW-NEXT:    vinserti128 $1, %xmm3, %ymm1, %ymm1644; AVX512DQ-BW-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm0645; AVX512DQ-BW-NEXT:    vpunpcklqdq {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]646; AVX512DQ-BW-NEXT:    vpshufb {{.*#+}} ymm0 = ymm0[0,4,8,12,1,5,9,13,2,6,10,14,3,7,11,15,16,20,24,28,17,21,25,29,18,22,26,30,19,23,27,31]647; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} ymm1 = [0,4,1,5,2,6,3,7]648; AVX512DQ-BW-NEXT:    vpermd %ymm0, %ymm1, %ymm0649; AVX512DQ-BW-NEXT:    vmovdqa %ymm0, (%rax)650; AVX512DQ-BW-NEXT:    vzeroupper651; AVX512DQ-BW-NEXT:    retq652;653; AVX512DQ-BW-FCP-LABEL: store_i8_stride8_vf4:654; AVX512DQ-BW-FCP:       # %bb.0:655; AVX512DQ-BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax656; AVX512DQ-BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r10657; AVX512DQ-BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r11658; AVX512DQ-BW-FCP-NEXT:    vmovdqa (%rdi), %xmm0659; AVX512DQ-BW-FCP-NEXT:    vmovdqa (%rdx), %xmm1660; AVX512DQ-BW-FCP-NEXT:    vmovdqa (%r8), %xmm2661; AVX512DQ-BW-FCP-NEXT:    vmovdqa (%r11), %xmm3662; AVX512DQ-BW-FCP-NEXT:    vpunpckldq {{.*#+}} xmm0 = xmm0[0],mem[0],xmm0[1],mem[1]663; AVX512DQ-BW-FCP-NEXT:    vpunpckldq {{.*#+}} xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]664; AVX512DQ-BW-FCP-NEXT:    vpunpckldq {{.*#+}} xmm2 = xmm2[0],mem[0],xmm2[1],mem[1]665; AVX512DQ-BW-FCP-NEXT:    vpunpckldq {{.*#+}} xmm3 = xmm3[0],mem[0],xmm3[1],mem[1]666; AVX512DQ-BW-FCP-NEXT:    vinserti128 $1, %xmm3, %ymm1, %ymm1667; AVX512DQ-BW-FCP-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm0668; AVX512DQ-BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]669; AVX512DQ-BW-FCP-NEXT:    vpshufb {{.*#+}} ymm0 = ymm0[0,4,8,12,1,5,9,13,2,6,10,14,3,7,11,15,16,20,24,28,17,21,25,29,18,22,26,30,19,23,27,31]670; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} ymm1 = [0,4,1,5,2,6,3,7]671; AVX512DQ-BW-FCP-NEXT:    vpermd %ymm0, %ymm1, %ymm0672; AVX512DQ-BW-FCP-NEXT:    vmovdqa %ymm0, (%rax)673; AVX512DQ-BW-FCP-NEXT:    vzeroupper674; AVX512DQ-BW-FCP-NEXT:    retq675  %in.vec0 = load <4 x i8>, ptr %in.vecptr0, align 64676  %in.vec1 = load <4 x i8>, ptr %in.vecptr1, align 64677  %in.vec2 = load <4 x i8>, ptr %in.vecptr2, align 64678  %in.vec3 = load <4 x i8>, ptr %in.vecptr3, align 64679  %in.vec4 = load <4 x i8>, ptr %in.vecptr4, align 64680  %in.vec5 = load <4 x i8>, ptr %in.vecptr5, align 64681  %in.vec6 = load <4 x i8>, ptr %in.vecptr6, align 64682  %in.vec7 = load <4 x i8>, ptr %in.vecptr7, align 64683  %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>684  %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>685  %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>686  %4 = shufflevector <4 x i8> %in.vec6, <4 x i8> %in.vec7, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>687  %5 = 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>688  %6 = shufflevector <8 x i8> %3, <8 x i8> %4, <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>689  %7 = shufflevector <16 x i8> %5, <16 x i8> %6, <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>690  %interleaved.vec = shufflevector <32 x i8> %7, <32 x i8> poison, <32 x i32> <i32 0, i32 4, i32 8, i32 12, i32 16, i32 20, i32 24, i32 28, i32 1, i32 5, i32 9, i32 13, i32 17, i32 21, i32 25, i32 29, i32 2, i32 6, i32 10, i32 14, i32 18, i32 22, i32 26, i32 30, i32 3, i32 7, i32 11, i32 15, i32 19, i32 23, i32 27, i32 31>691  store <32 x i8> %interleaved.vec, ptr %out.vec, align 64692  ret void693}694 695define void @store_i8_stride8_vf8(ptr %in.vecptr0, ptr %in.vecptr1, ptr %in.vecptr2, ptr %in.vecptr3, ptr %in.vecptr4, ptr %in.vecptr5, ptr %in.vecptr6, ptr %in.vecptr7, ptr %out.vec) nounwind {696; SSE-LABEL: store_i8_stride8_vf8:697; SSE:       # %bb.0:698; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %rax699; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %r10700; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %r11701; SSE-NEXT:    movq {{.*#+}} xmm0 = mem[0],zero702; SSE-NEXT:    movq {{.*#+}} xmm1 = mem[0],zero703; 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]704; SSE-NEXT:    movq {{.*#+}} xmm1 = mem[0],zero705; SSE-NEXT:    movq {{.*#+}} xmm2 = mem[0],zero706; SSE-NEXT:    punpcklbw {{.*#+}} 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]707; SSE-NEXT:    movq {{.*#+}} xmm2 = mem[0],zero708; SSE-NEXT:    movq {{.*#+}} xmm3 = mem[0],zero709; SSE-NEXT:    punpcklbw {{.*#+}} xmm2 = xmm2[0],xmm3[0],xmm2[1],xmm3[1],xmm2[2],xmm3[2],xmm2[3],xmm3[3],xmm2[4],xmm3[4],xmm2[5],xmm3[5],xmm2[6],xmm3[6],xmm2[7],xmm3[7]710; SSE-NEXT:    movq {{.*#+}} xmm5 = mem[0],zero711; SSE-NEXT:    movq {{.*#+}} xmm3 = mem[0],zero712; SSE-NEXT:    punpcklbw {{.*#+}} xmm5 = 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]713; SSE-NEXT:    pshuflw {{.*#+}} xmm3 = xmm5[0,0,2,1,4,5,6,7]714; SSE-NEXT:    pshufd {{.*#+}} xmm4 = xmm3[0,0,2,1]715; SSE-NEXT:    movdqa {{.*#+}} xmm3 = [65535,65535,65535,0,65535,65535,65535,0]716; SSE-NEXT:    movdqa %xmm3, %xmm6717; SSE-NEXT:    pandn %xmm4, %xmm6718; SSE-NEXT:    pshuflw {{.*#+}} xmm4 = xmm2[0,1,1,3,4,5,6,7]719; SSE-NEXT:    pshufd {{.*#+}} xmm4 = xmm4[0,0,2,1]720; SSE-NEXT:    pand %xmm3, %xmm4721; SSE-NEXT:    por %xmm6, %xmm4722; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm4[1,3,2,3]723; SSE-NEXT:    pshuflw {{.*#+}} xmm4 = xmm1[0,0,2,1,4,5,6,7]724; SSE-NEXT:    pshufd {{.*#+}} xmm6 = xmm4[0,1,1,3]725; SSE-NEXT:    movdqa {{.*#+}} xmm4 = [65535,0,65535,65535,65535,0,65535,65535]726; SSE-NEXT:    movdqa %xmm4, %xmm8727; SSE-NEXT:    pandn %xmm6, %xmm8728; SSE-NEXT:    pshufd {{.*#+}} xmm6 = xmm0[0,0,0,0]729; SSE-NEXT:    pshufhw {{.*#+}} xmm6 = xmm6[0,1,2,3,5,5,5,5]730; SSE-NEXT:    pand %xmm4, %xmm6731; SSE-NEXT:    por %xmm8, %xmm6732; SSE-NEXT:    pshufd {{.*#+}} xmm6 = xmm6[0,2,2,3]733; SSE-NEXT:    punpckldq {{.*#+}} xmm6 = xmm6[0],xmm7[0],xmm6[1],xmm7[1]734; SSE-NEXT:    pshuflw {{.*#+}} xmm7 = xmm5[0,2,2,3,4,5,6,7]735; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm7[0,0,2,1]736; SSE-NEXT:    movdqa %xmm3, %xmm8737; SSE-NEXT:    pandn %xmm7, %xmm8738; SSE-NEXT:    pshuflw {{.*#+}} xmm7 = xmm2[2,1,3,3,4,5,6,7]739; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm7[0,0,2,1]740; SSE-NEXT:    pand %xmm3, %xmm7741; SSE-NEXT:    por %xmm8, %xmm7742; SSE-NEXT:    pshufd {{.*#+}} xmm8 = xmm7[1,3,2,3]743; SSE-NEXT:    pshuflw {{.*#+}} xmm7 = xmm1[0,2,2,3,4,5,6,7]744; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm7[0,1,1,3]745; SSE-NEXT:    movdqa %xmm4, %xmm9746; SSE-NEXT:    pandn %xmm7, %xmm9747; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm0[1,1,1,1]748; SSE-NEXT:    pshufhw {{.*#+}} xmm7 = xmm7[0,1,2,3,5,5,5,5]749; SSE-NEXT:    pand %xmm4, %xmm7750; SSE-NEXT:    por %xmm9, %xmm7751; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm7[0,2,2,3]752; SSE-NEXT:    punpckldq {{.*#+}} xmm7 = xmm7[0],xmm8[0],xmm7[1],xmm8[1]753; SSE-NEXT:    pshufhw {{.*#+}} xmm8 = xmm5[0,1,2,3,4,4,6,5]754; SSE-NEXT:    pshufd {{.*#+}} xmm8 = xmm8[0,2,2,3]755; SSE-NEXT:    movdqa %xmm3, %xmm9756; SSE-NEXT:    pandn %xmm8, %xmm9757; SSE-NEXT:    pshufhw {{.*#+}} xmm8 = xmm2[0,1,2,3,4,5,5,7]758; SSE-NEXT:    pshufd {{.*#+}} xmm8 = xmm8[0,2,2,3]759; SSE-NEXT:    pand %xmm3, %xmm8760; SSE-NEXT:    por %xmm9, %xmm8761; SSE-NEXT:    pshufd {{.*#+}} xmm8 = xmm8[1,3,2,3]762; SSE-NEXT:    pshufhw {{.*#+}} xmm9 = xmm1[0,1,2,3,4,4,6,5]763; SSE-NEXT:    pshufd {{.*#+}} xmm9 = xmm9[2,1,3,3]764; SSE-NEXT:    movdqa %xmm4, %xmm10765; SSE-NEXT:    pandn %xmm9, %xmm10766; SSE-NEXT:    pshufd {{.*#+}} xmm9 = xmm0[2,2,2,2]767; SSE-NEXT:    pshufhw {{.*#+}} xmm9 = xmm9[0,1,2,3,5,5,5,5]768; SSE-NEXT:    pand %xmm4, %xmm9769; SSE-NEXT:    por %xmm10, %xmm9770; SSE-NEXT:    pshufd {{.*#+}} xmm9 = xmm9[0,2,2,3]771; SSE-NEXT:    punpckldq {{.*#+}} xmm9 = xmm9[0],xmm8[0],xmm9[1],xmm8[1]772; SSE-NEXT:    pshufhw {{.*#+}} xmm5 = xmm5[0,1,2,3,4,6,6,7]773; SSE-NEXT:    pshufd {{.*#+}} xmm5 = xmm5[0,2,2,3]774; SSE-NEXT:    pshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,6,5,7,7]775; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm2[0,2,2,3]776; SSE-NEXT:    pand %xmm3, %xmm2777; SSE-NEXT:    pandn %xmm5, %xmm3778; SSE-NEXT:    por %xmm2, %xmm3779; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm3[1,3,2,3]780; SSE-NEXT:    pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,6,6,7]781; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm1[2,1,3,3]782; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[3,3,3,3]783; SSE-NEXT:    pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,5,5,5,5]784; SSE-NEXT:    pand %xmm4, %xmm0785; SSE-NEXT:    pandn %xmm1, %xmm4786; SSE-NEXT:    por %xmm0, %xmm4787; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm4[0,2,2,3]788; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1]789; SSE-NEXT:    movdqa %xmm0, 48(%rax)790; SSE-NEXT:    movdqa %xmm9, 32(%rax)791; SSE-NEXT:    movdqa %xmm7, 16(%rax)792; SSE-NEXT:    movdqa %xmm6, (%rax)793; SSE-NEXT:    retq794;795; AVX-LABEL: store_i8_stride8_vf8:796; AVX:       # %bb.0:797; AVX-NEXT:    movq {{[0-9]+}}(%rsp), %rax798; AVX-NEXT:    movq {{[0-9]+}}(%rsp), %r10799; AVX-NEXT:    movq {{[0-9]+}}(%rsp), %r11800; AVX-NEXT:    vmovq {{.*#+}} xmm0 = mem[0],zero801; AVX-NEXT:    vmovq {{.*#+}} xmm1 = mem[0],zero802; AVX-NEXT:    vpunpcklqdq {{.*#+}} xmm0 = xmm1[0],xmm0[0]803; AVX-NEXT:    vmovq {{.*#+}} xmm1 = mem[0],zero804; AVX-NEXT:    vmovq {{.*#+}} xmm2 = mem[0],zero805; AVX-NEXT:    vpunpcklqdq {{.*#+}} xmm1 = xmm2[0],xmm1[0]806; AVX-NEXT:    vmovq {{.*#+}} xmm2 = mem[0],zero807; AVX-NEXT:    vmovq {{.*#+}} xmm3 = mem[0],zero808; AVX-NEXT:    vpunpcklqdq {{.*#+}} xmm2 = xmm3[0],xmm2[0]809; AVX-NEXT:    vmovq {{.*#+}} xmm3 = mem[0],zero810; AVX-NEXT:    vmovq {{.*#+}} xmm4 = mem[0],zero811; AVX-NEXT:    vpunpcklqdq {{.*#+}} xmm3 = xmm4[0],xmm3[0]812; AVX-NEXT:    vmovq {{.*#+}} xmm4 = [0,0,2,10,0,0,3,11,0,0,0,0,0,0,0,0]813; AVX-NEXT:    vpshufb %xmm4, %xmm3, %xmm5814; AVX-NEXT:    vpshufb %xmm4, %xmm2, %xmm4815; AVX-NEXT:    vpunpcklwd {{.*#+}} xmm4 = xmm4[0],xmm5[0],xmm4[1],xmm5[1],xmm4[2],xmm5[2],xmm4[3],xmm5[3]816; AVX-NEXT:    vmovq {{.*#+}} xmm5 = [2,10,0,0,3,11,0,0,0,0,0,0,0,0,0,0]817; AVX-NEXT:    vpshufb %xmm5, %xmm1, %xmm6818; AVX-NEXT:    vpshufb %xmm5, %xmm0, %xmm5819; AVX-NEXT:    vpunpcklwd {{.*#+}} xmm5 = xmm5[0],xmm6[0],xmm5[1],xmm6[1],xmm5[2],xmm6[2],xmm5[3],xmm6[3]820; AVX-NEXT:    vpblendw {{.*#+}} xmm4 = xmm5[0,1],xmm4[2,3],xmm5[4,5],xmm4[6,7]821; AVX-NEXT:    vmovq {{.*#+}} xmm5 = [0,0,0,8,0,0,1,9,0,0,0,0,0,0,0,0]822; AVX-NEXT:    vpshufb %xmm5, %xmm3, %xmm6823; AVX-NEXT:    vpshufb %xmm5, %xmm2, %xmm5824; AVX-NEXT:    vpunpcklwd {{.*#+}} xmm5 = xmm5[0],xmm6[0],xmm5[1],xmm6[1],xmm5[2],xmm6[2],xmm5[3],xmm6[3]825; AVX-NEXT:    vmovq {{.*#+}} xmm6 = [0,8,0,0,1,9,0,0,0,0,0,0,0,0,0,0]826; AVX-NEXT:    vpshufb %xmm6, %xmm1, %xmm7827; AVX-NEXT:    vpshufb %xmm6, %xmm0, %xmm6828; AVX-NEXT:    vpunpcklwd {{.*#+}} xmm6 = xmm6[0],xmm7[0],xmm6[1],xmm7[1],xmm6[2],xmm7[2],xmm6[3],xmm7[3]829; AVX-NEXT:    vpblendw {{.*#+}} xmm5 = xmm6[0,1],xmm5[2,3],xmm6[4,5],xmm5[6,7]830; AVX-NEXT:    vinsertf128 $1, %xmm4, %ymm5, %ymm4831; AVX-NEXT:    vmovq {{.*#+}} xmm5 = [0,0,6,14,0,0,7,15,0,0,0,0,0,0,0,0]832; AVX-NEXT:    vpshufb %xmm5, %xmm3, %xmm6833; AVX-NEXT:    vpshufb %xmm5, %xmm2, %xmm5834; AVX-NEXT:    vpunpcklwd {{.*#+}} xmm5 = xmm5[0],xmm6[0],xmm5[1],xmm6[1],xmm5[2],xmm6[2],xmm5[3],xmm6[3]835; AVX-NEXT:    vmovq {{.*#+}} xmm6 = [6,14,0,0,7,15,0,0,0,0,0,0,0,0,0,0]836; AVX-NEXT:    vpshufb %xmm6, %xmm1, %xmm7837; AVX-NEXT:    vpshufb %xmm6, %xmm0, %xmm6838; AVX-NEXT:    vpunpcklwd {{.*#+}} xmm6 = xmm6[0],xmm7[0],xmm6[1],xmm7[1],xmm6[2],xmm7[2],xmm6[3],xmm7[3]839; AVX-NEXT:    vpblendw {{.*#+}} xmm5 = xmm6[0,1],xmm5[2,3],xmm6[4,5],xmm5[6,7]840; AVX-NEXT:    vmovq {{.*#+}} xmm6 = [0,0,4,12,0,0,5,13,0,0,0,0,0,0,0,0]841; AVX-NEXT:    vpshufb %xmm6, %xmm3, %xmm3842; AVX-NEXT:    vpshufb %xmm6, %xmm2, %xmm2843; AVX-NEXT:    vpunpcklwd {{.*#+}} xmm2 = xmm2[0],xmm3[0],xmm2[1],xmm3[1],xmm2[2],xmm3[2],xmm2[3],xmm3[3]844; AVX-NEXT:    vmovq {{.*#+}} xmm3 = [4,12,0,0,5,13,0,0,0,0,0,0,0,0,0,0]845; AVX-NEXT:    vpshufb %xmm3, %xmm1, %xmm1846; AVX-NEXT:    vpshufb %xmm3, %xmm0, %xmm0847; AVX-NEXT:    vpunpcklwd {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3]848; AVX-NEXT:    vpblendw {{.*#+}} xmm0 = xmm0[0,1],xmm2[2,3],xmm0[4,5],xmm2[6,7]849; AVX-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm0850; AVX-NEXT:    vmovaps %ymm0, 32(%rax)851; AVX-NEXT:    vmovaps %ymm4, (%rax)852; AVX-NEXT:    vzeroupper853; AVX-NEXT:    retq854;855; AVX2-LABEL: store_i8_stride8_vf8:856; AVX2:       # %bb.0:857; AVX2-NEXT:    movq {{[0-9]+}}(%rsp), %rax858; AVX2-NEXT:    movq {{[0-9]+}}(%rsp), %r10859; AVX2-NEXT:    movq {{[0-9]+}}(%rsp), %r11860; AVX2-NEXT:    vmovq {{.*#+}} xmm0 = mem[0],zero861; AVX2-NEXT:    vmovq {{.*#+}} xmm1 = mem[0],zero862; AVX2-NEXT:    vpunpcklqdq {{.*#+}} xmm0 = xmm1[0],xmm0[0]863; AVX2-NEXT:    vmovq {{.*#+}} xmm1 = mem[0],zero864; AVX2-NEXT:    vmovq {{.*#+}} xmm2 = mem[0],zero865; AVX2-NEXT:    vpunpcklqdq {{.*#+}} xmm1 = xmm2[0],xmm1[0]866; AVX2-NEXT:    vmovq {{.*#+}} xmm2 = mem[0],zero867; AVX2-NEXT:    vmovq {{.*#+}} xmm3 = mem[0],zero868; AVX2-NEXT:    vpunpcklqdq {{.*#+}} xmm2 = xmm3[0],xmm2[0]869; AVX2-NEXT:    vmovq {{.*#+}} xmm3 = mem[0],zero870; AVX2-NEXT:    vmovq {{.*#+}} xmm4 = mem[0],zero871; AVX2-NEXT:    vpunpcklqdq {{.*#+}} xmm3 = xmm4[0],xmm3[0]872; AVX2-NEXT:    vinserti128 $1, %xmm1, %ymm0, %ymm4873; AVX2-NEXT:    vinserti128 $1, %xmm3, %ymm2, %ymm5874; AVX2-NEXT:    vinserti128 $1, %xmm2, %ymm3, %ymm2875; AVX2-NEXT:    vpshufb {{.*#+}} ymm3 = zero,zero,zero,zero,zero,zero,ymm2[0,8],zero,zero,zero,zero,zero,zero,ymm2[1,9],zero,zero,zero,zero,ymm2[18,26],zero,zero,zero,zero,zero,zero,ymm2[19,27],zero,zero876; AVX2-NEXT:    vpshufb {{.*#+}} ymm6 = zero,zero,zero,zero,ymm5[0,8],zero,zero,zero,zero,zero,zero,ymm5[1,9],zero,zero,zero,zero,zero,zero,zero,zero,ymm5[18,26],zero,zero,zero,zero,zero,zero,ymm5[19,27]877; AVX2-NEXT:    vpor %ymm3, %ymm6, %ymm3878; AVX2-NEXT:    vinserti128 $1, %xmm0, %ymm1, %ymm0879; AVX2-NEXT:    vpshufb {{.*#+}} ymm1 = zero,zero,ymm0[0,8],zero,zero,zero,zero,zero,zero,ymm0[1,9],zero,zero,zero,zero,ymm0[18,26],zero,zero,zero,zero,zero,zero,ymm0[19,27],zero,zero,zero,zero,zero,zero880; AVX2-NEXT:    vpshufb {{.*#+}} ymm6 = ymm4[0,8],zero,zero,zero,zero,zero,zero,ymm4[1,9],zero,zero,zero,zero,zero,zero,zero,zero,ymm4[18,26],zero,zero,zero,zero,zero,zero,ymm4[19,27],zero,zero,zero,zero881; AVX2-NEXT:    vpor %ymm1, %ymm6, %ymm1882; AVX2-NEXT:    vpor %ymm3, %ymm1, %ymm1883; AVX2-NEXT:    vpshufb {{.*#+}} ymm2 = zero,zero,zero,zero,zero,zero,ymm2[4,12],zero,zero,zero,zero,zero,zero,ymm2[5,13],zero,zero,zero,zero,ymm2[22,30],zero,zero,zero,zero,zero,zero,ymm2[23,31],zero,zero884; AVX2-NEXT:    vpshufb {{.*#+}} ymm3 = zero,zero,zero,zero,ymm5[4,12],zero,zero,zero,zero,zero,zero,ymm5[5,13],zero,zero,zero,zero,zero,zero,zero,zero,ymm5[22,30],zero,zero,zero,zero,zero,zero,ymm5[23,31]885; AVX2-NEXT:    vpor %ymm2, %ymm3, %ymm2886; AVX2-NEXT:    vpshufb {{.*#+}} ymm0 = zero,zero,ymm0[4,12],zero,zero,zero,zero,zero,zero,ymm0[5,13],zero,zero,zero,zero,ymm0[22,30],zero,zero,zero,zero,zero,zero,ymm0[23,31],zero,zero,zero,zero,zero,zero887; AVX2-NEXT:    vpshufb {{.*#+}} ymm3 = ymm4[4,12],zero,zero,zero,zero,zero,zero,ymm4[5,13],zero,zero,zero,zero,zero,zero,zero,zero,ymm4[22,30],zero,zero,zero,zero,zero,zero,ymm4[23,31],zero,zero,zero,zero888; AVX2-NEXT:    vpor %ymm0, %ymm3, %ymm0889; AVX2-NEXT:    vpor %ymm2, %ymm0, %ymm0890; AVX2-NEXT:    vmovdqa %ymm0, 32(%rax)891; AVX2-NEXT:    vmovdqa %ymm1, (%rax)892; AVX2-NEXT:    vzeroupper893; AVX2-NEXT:    retq894;895; AVX2-FP-LABEL: store_i8_stride8_vf8:896; AVX2-FP:       # %bb.0:897; AVX2-FP-NEXT:    movq {{[0-9]+}}(%rsp), %rax898; AVX2-FP-NEXT:    movq {{[0-9]+}}(%rsp), %r10899; AVX2-FP-NEXT:    movq {{[0-9]+}}(%rsp), %r11900; AVX2-FP-NEXT:    vmovq {{.*#+}} xmm0 = mem[0],zero901; AVX2-FP-NEXT:    vmovq {{.*#+}} xmm1 = mem[0],zero902; AVX2-FP-NEXT:    vpunpcklqdq {{.*#+}} xmm0 = xmm1[0],xmm0[0]903; AVX2-FP-NEXT:    vmovq {{.*#+}} xmm1 = mem[0],zero904; AVX2-FP-NEXT:    vmovq {{.*#+}} xmm2 = mem[0],zero905; AVX2-FP-NEXT:    vpunpcklqdq {{.*#+}} xmm1 = xmm2[0],xmm1[0]906; AVX2-FP-NEXT:    vmovq {{.*#+}} xmm2 = mem[0],zero907; AVX2-FP-NEXT:    vmovq {{.*#+}} xmm3 = mem[0],zero908; AVX2-FP-NEXT:    vpunpcklqdq {{.*#+}} xmm2 = xmm3[0],xmm2[0]909; AVX2-FP-NEXT:    vmovq {{.*#+}} xmm3 = mem[0],zero910; AVX2-FP-NEXT:    vmovq {{.*#+}} xmm4 = mem[0],zero911; AVX2-FP-NEXT:    vpunpcklqdq {{.*#+}} xmm3 = xmm4[0],xmm3[0]912; AVX2-FP-NEXT:    vinserti128 $1, %xmm1, %ymm0, %ymm4913; AVX2-FP-NEXT:    vinserti128 $1, %xmm3, %ymm2, %ymm5914; AVX2-FP-NEXT:    vinserti128 $1, %xmm2, %ymm3, %ymm2915; AVX2-FP-NEXT:    vpshufb {{.*#+}} ymm3 = zero,zero,zero,zero,zero,zero,ymm2[0,8],zero,zero,zero,zero,zero,zero,ymm2[1,9],zero,zero,zero,zero,ymm2[18,26],zero,zero,zero,zero,zero,zero,ymm2[19,27],zero,zero916; AVX2-FP-NEXT:    vpshufb {{.*#+}} ymm6 = zero,zero,zero,zero,ymm5[0,8],zero,zero,zero,zero,zero,zero,ymm5[1,9],zero,zero,zero,zero,zero,zero,zero,zero,ymm5[18,26],zero,zero,zero,zero,zero,zero,ymm5[19,27]917; AVX2-FP-NEXT:    vpor %ymm3, %ymm6, %ymm3918; AVX2-FP-NEXT:    vinserti128 $1, %xmm0, %ymm1, %ymm0919; AVX2-FP-NEXT:    vpshufb {{.*#+}} ymm1 = zero,zero,ymm0[0,8],zero,zero,zero,zero,zero,zero,ymm0[1,9],zero,zero,zero,zero,ymm0[18,26],zero,zero,zero,zero,zero,zero,ymm0[19,27],zero,zero,zero,zero,zero,zero920; AVX2-FP-NEXT:    vpshufb {{.*#+}} ymm6 = ymm4[0,8],zero,zero,zero,zero,zero,zero,ymm4[1,9],zero,zero,zero,zero,zero,zero,zero,zero,ymm4[18,26],zero,zero,zero,zero,zero,zero,ymm4[19,27],zero,zero,zero,zero921; AVX2-FP-NEXT:    vpor %ymm1, %ymm6, %ymm1922; AVX2-FP-NEXT:    vpor %ymm3, %ymm1, %ymm1923; AVX2-FP-NEXT:    vpshufb {{.*#+}} ymm2 = zero,zero,zero,zero,zero,zero,ymm2[4,12],zero,zero,zero,zero,zero,zero,ymm2[5,13],zero,zero,zero,zero,ymm2[22,30],zero,zero,zero,zero,zero,zero,ymm2[23,31],zero,zero924; AVX2-FP-NEXT:    vpshufb {{.*#+}} ymm3 = zero,zero,zero,zero,ymm5[4,12],zero,zero,zero,zero,zero,zero,ymm5[5,13],zero,zero,zero,zero,zero,zero,zero,zero,ymm5[22,30],zero,zero,zero,zero,zero,zero,ymm5[23,31]925; AVX2-FP-NEXT:    vpor %ymm2, %ymm3, %ymm2926; AVX2-FP-NEXT:    vpshufb {{.*#+}} ymm0 = zero,zero,ymm0[4,12],zero,zero,zero,zero,zero,zero,ymm0[5,13],zero,zero,zero,zero,ymm0[22,30],zero,zero,zero,zero,zero,zero,ymm0[23,31],zero,zero,zero,zero,zero,zero927; AVX2-FP-NEXT:    vpshufb {{.*#+}} ymm3 = ymm4[4,12],zero,zero,zero,zero,zero,zero,ymm4[5,13],zero,zero,zero,zero,zero,zero,zero,zero,ymm4[22,30],zero,zero,zero,zero,zero,zero,ymm4[23,31],zero,zero,zero,zero928; AVX2-FP-NEXT:    vpor %ymm0, %ymm3, %ymm0929; AVX2-FP-NEXT:    vpor %ymm2, %ymm0, %ymm0930; AVX2-FP-NEXT:    vmovdqa %ymm0, 32(%rax)931; AVX2-FP-NEXT:    vmovdqa %ymm1, (%rax)932; AVX2-FP-NEXT:    vzeroupper933; AVX2-FP-NEXT:    retq934;935; AVX2-FCP-LABEL: store_i8_stride8_vf8:936; AVX2-FCP:       # %bb.0:937; AVX2-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax938; AVX2-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r10939; AVX2-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r11940; AVX2-FCP-NEXT:    vmovq {{.*#+}} xmm0 = mem[0],zero941; AVX2-FCP-NEXT:    vmovq {{.*#+}} xmm1 = mem[0],zero942; AVX2-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm0 = xmm1[0],xmm0[0]943; AVX2-FCP-NEXT:    vmovq {{.*#+}} xmm1 = mem[0],zero944; AVX2-FCP-NEXT:    vmovq {{.*#+}} xmm2 = mem[0],zero945; AVX2-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm1 = xmm2[0],xmm1[0]946; AVX2-FCP-NEXT:    vmovq {{.*#+}} xmm2 = mem[0],zero947; AVX2-FCP-NEXT:    vmovq {{.*#+}} xmm3 = mem[0],zero948; AVX2-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm2 = xmm3[0],xmm2[0]949; AVX2-FCP-NEXT:    vmovq {{.*#+}} xmm3 = mem[0],zero950; AVX2-FCP-NEXT:    vmovq {{.*#+}} xmm4 = mem[0],zero951; AVX2-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm3 = xmm4[0],xmm3[0]952; AVX2-FCP-NEXT:    vinserti128 $1, %xmm1, %ymm0, %ymm0953; AVX2-FCP-NEXT:    vinserti128 $1, %xmm3, %ymm2, %ymm1954; AVX2-FCP-NEXT:    vbroadcasti128 {{.*#+}} ymm2 = [0,2,4,6,0,2,4,6]955; AVX2-FCP-NEXT:    # ymm2 = mem[0,1,0,1]956; AVX2-FCP-NEXT:    vpermd %ymm1, %ymm2, %ymm3957; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} ymm4 = [u,u,u,u,0,4,8,12,u,u,u,u,1,5,9,13,u,u,u,u,2,6,10,14,u,u,u,u,3,7,11,15]958; AVX2-FCP-NEXT:    vpshufb %ymm4, %ymm3, %ymm3959; AVX2-FCP-NEXT:    vpermd %ymm0, %ymm2, %ymm2960; AVX2-FCP-NEXT:    vpmovsxdq {{.*#+}} ymm5 = [201851904,218694913,235537922,252380931]961; AVX2-FCP-NEXT:    vpshufb %ymm5, %ymm2, %ymm2962; AVX2-FCP-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0],ymm3[1],ymm2[2],ymm3[3],ymm2[4],ymm3[5],ymm2[6],ymm3[7]963; AVX2-FCP-NEXT:    vbroadcasti128 {{.*#+}} ymm3 = [1,3,5,7,1,3,5,7]964; AVX2-FCP-NEXT:    # ymm3 = mem[0,1,0,1]965; AVX2-FCP-NEXT:    vpermd %ymm1, %ymm3, %ymm1966; AVX2-FCP-NEXT:    vpshufb %ymm4, %ymm1, %ymm1967; AVX2-FCP-NEXT:    vpermd %ymm0, %ymm3, %ymm0968; AVX2-FCP-NEXT:    vpshufb %ymm5, %ymm0, %ymm0969; AVX2-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2],ymm1[3],ymm0[4],ymm1[5],ymm0[6],ymm1[7]970; AVX2-FCP-NEXT:    vmovdqa %ymm0, 32(%rax)971; AVX2-FCP-NEXT:    vmovdqa %ymm2, (%rax)972; AVX2-FCP-NEXT:    vzeroupper973; AVX2-FCP-NEXT:    retq974;975; AVX512-LABEL: store_i8_stride8_vf8:976; AVX512:       # %bb.0:977; AVX512-NEXT:    movq {{[0-9]+}}(%rsp), %rax978; AVX512-NEXT:    movq {{[0-9]+}}(%rsp), %r10979; AVX512-NEXT:    movq {{[0-9]+}}(%rsp), %r11980; AVX512-NEXT:    vmovq {{.*#+}} xmm0 = mem[0],zero981; AVX512-NEXT:    vmovq {{.*#+}} xmm1 = mem[0],zero982; AVX512-NEXT:    vpunpcklqdq {{.*#+}} xmm0 = xmm1[0],xmm0[0]983; AVX512-NEXT:    vmovq {{.*#+}} xmm1 = mem[0],zero984; AVX512-NEXT:    vmovq {{.*#+}} xmm2 = mem[0],zero985; AVX512-NEXT:    vpunpcklqdq {{.*#+}} xmm1 = xmm2[0],xmm1[0]986; AVX512-NEXT:    vmovq {{.*#+}} xmm2 = mem[0],zero987; AVX512-NEXT:    vmovq {{.*#+}} xmm3 = mem[0],zero988; AVX512-NEXT:    vpunpcklqdq {{.*#+}} xmm2 = xmm3[0],xmm2[0]989; AVX512-NEXT:    vmovq {{.*#+}} xmm3 = mem[0],zero990; AVX512-NEXT:    vmovq {{.*#+}} xmm4 = mem[0],zero991; AVX512-NEXT:    vpunpcklqdq {{.*#+}} xmm3 = xmm4[0],xmm3[0]992; AVX512-NEXT:    vinserti128 $1, %xmm2, %ymm3, %ymm4993; AVX512-NEXT:    vmovdqa {{.*#+}} ymm5 = [128,128,4,12,128,128,4,12,128,128,5,13,128,128,5,13,22,30,128,128,22,30,128,128,23,31,128,128,23,31,128,128]994; AVX512-NEXT:    vpshufb %ymm5, %ymm4, %ymm6995; AVX512-NEXT:    vinserti128 $1, %xmm0, %ymm1, %ymm7996; AVX512-NEXT:    vpshufb %ymm5, %ymm7, %ymm5997; AVX512-NEXT:    vpblendd {{.*#+}} ymm5 = ymm5[0],ymm6[1],ymm5[2],ymm6[3],ymm5[4],ymm6[5],ymm5[6],ymm6[7]998; AVX512-NEXT:    vmovdqa {{.*#+}} ymm6 = [128,128,0,8,128,128,0,8,128,128,1,9,128,128,1,9,18,26,128,128,18,26,128,128,19,27,128,128,19,27,128,128]999; AVX512-NEXT:    vpshufb %ymm6, %ymm4, %ymm41000; AVX512-NEXT:    vpshufb %ymm6, %ymm7, %ymm61001; AVX512-NEXT:    vpblendd {{.*#+}} ymm4 = ymm6[0],ymm4[1],ymm6[2],ymm4[3],ymm6[4],ymm4[5],ymm6[6],ymm4[7]1002; AVX512-NEXT:    vinserti64x4 $1, %ymm5, %zmm4, %zmm41003; AVX512-NEXT:    vinserti128 $1, %xmm3, %ymm2, %ymm21004; AVX512-NEXT:    vmovdqa {{.*#+}} ymm3 = [4,12,128,128,4,12,128,128,5,13,128,128,5,13,128,128,128,128,22,30,128,128,22,30,128,128,23,31,128,128,23,31]1005; AVX512-NEXT:    vpshufb %ymm3, %ymm2, %ymm51006; AVX512-NEXT:    vinserti128 $1, %xmm1, %ymm0, %ymm01007; AVX512-NEXT:    vpshufb %ymm3, %ymm0, %ymm11008; AVX512-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0],ymm5[1],ymm1[2],ymm5[3],ymm1[4],ymm5[5],ymm1[6],ymm5[7]1009; AVX512-NEXT:    vmovdqa {{.*#+}} ymm3 = [0,8,128,128,0,8,128,128,1,9,128,128,1,9,128,128,128,128,18,26,128,128,18,26,128,128,19,27,128,128,19,27]1010; AVX512-NEXT:    vpshufb %ymm3, %ymm2, %ymm21011; AVX512-NEXT:    vpshufb %ymm3, %ymm0, %ymm01012; AVX512-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0],ymm2[1],ymm0[2],ymm2[3],ymm0[4],ymm2[5],ymm0[6],ymm2[7]1013; AVX512-NEXT:    vinserti64x4 $1, %ymm1, %zmm0, %zmm01014; AVX512-NEXT:    vpord %zmm4, %zmm0, %zmm01015; AVX512-NEXT:    vmovdqa64 %zmm0, (%rax)1016; AVX512-NEXT:    vzeroupper1017; AVX512-NEXT:    retq1018;1019; AVX512-FCP-LABEL: store_i8_stride8_vf8:1020; AVX512-FCP:       # %bb.0:1021; AVX512-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax1022; AVX512-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r101023; AVX512-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r111024; AVX512-FCP-NEXT:    vmovq {{.*#+}} xmm0 = mem[0],zero1025; AVX512-FCP-NEXT:    vmovq {{.*#+}} xmm1 = mem[0],zero1026; AVX512-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm0 = xmm1[0],xmm0[0]1027; AVX512-FCP-NEXT:    vmovq {{.*#+}} xmm1 = mem[0],zero1028; AVX512-FCP-NEXT:    vmovq {{.*#+}} xmm2 = mem[0],zero1029; AVX512-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm1 = xmm2[0],xmm1[0]1030; AVX512-FCP-NEXT:    vmovq {{.*#+}} xmm2 = mem[0],zero1031; AVX512-FCP-NEXT:    vmovq {{.*#+}} xmm3 = mem[0],zero1032; AVX512-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm2 = xmm3[0],xmm2[0]1033; AVX512-FCP-NEXT:    vmovq {{.*#+}} xmm3 = mem[0],zero1034; AVX512-FCP-NEXT:    vmovq {{.*#+}} xmm4 = mem[0],zero1035; AVX512-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm3 = xmm4[0],xmm3[0]1036; AVX512-FCP-NEXT:    vbroadcasti128 {{.*#+}} ymm4 = [1,3,9,11,1,3,9,11]1037; AVX512-FCP-NEXT:    # ymm4 = mem[0,1,0,1]1038; AVX512-FCP-NEXT:    vmovdqa %ymm2, %ymm51039; AVX512-FCP-NEXT:    vpermt2d %ymm3, %ymm4, %ymm51040; AVX512-FCP-NEXT:    vmovdqa {{.*#+}} ymm6 = [u,u,u,u,0,4,8,12,u,u,u,u,1,5,9,13,u,u,u,u,2,6,10,14,u,u,u,u,3,7,11,15]1041; AVX512-FCP-NEXT:    vpshufb %ymm6, %ymm5, %ymm51042; AVX512-FCP-NEXT:    vpermi2d %ymm1, %ymm0, %ymm41043; AVX512-FCP-NEXT:    vpmovsxdq {{.*#+}} ymm7 = [201851904,218694913,235537922,252380931]1044; AVX512-FCP-NEXT:    vpshufb %ymm7, %ymm4, %ymm41045; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm4 = ymm4[0],ymm5[1],ymm4[2],ymm5[3],ymm4[4],ymm5[5],ymm4[6],ymm5[7]1046; AVX512-FCP-NEXT:    vbroadcasti128 {{.*#+}} ymm5 = [0,2,8,10,0,2,8,10]1047; AVX512-FCP-NEXT:    # ymm5 = mem[0,1,0,1]1048; AVX512-FCP-NEXT:    vpermt2d %ymm3, %ymm5, %ymm21049; AVX512-FCP-NEXT:    vpshufb %ymm6, %ymm2, %ymm21050; AVX512-FCP-NEXT:    vpermt2d %ymm1, %ymm5, %ymm01051; AVX512-FCP-NEXT:    vpshufb %ymm7, %ymm0, %ymm01052; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0],ymm2[1],ymm0[2],ymm2[3],ymm0[4],ymm2[5],ymm0[6],ymm2[7]1053; AVX512-FCP-NEXT:    vinserti64x4 $1, %ymm4, %zmm0, %zmm01054; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, (%rax)1055; AVX512-FCP-NEXT:    vzeroupper1056; AVX512-FCP-NEXT:    retq1057;1058; AVX512DQ-LABEL: store_i8_stride8_vf8:1059; AVX512DQ:       # %bb.0:1060; AVX512DQ-NEXT:    movq {{[0-9]+}}(%rsp), %rax1061; AVX512DQ-NEXT:    movq {{[0-9]+}}(%rsp), %r101062; AVX512DQ-NEXT:    movq {{[0-9]+}}(%rsp), %r111063; AVX512DQ-NEXT:    vmovq {{.*#+}} xmm0 = mem[0],zero1064; AVX512DQ-NEXT:    vmovq {{.*#+}} xmm1 = mem[0],zero1065; AVX512DQ-NEXT:    vpunpcklqdq {{.*#+}} xmm0 = xmm1[0],xmm0[0]1066; AVX512DQ-NEXT:    vmovq {{.*#+}} xmm1 = mem[0],zero1067; AVX512DQ-NEXT:    vmovq {{.*#+}} xmm2 = mem[0],zero1068; AVX512DQ-NEXT:    vpunpcklqdq {{.*#+}} xmm1 = xmm2[0],xmm1[0]1069; AVX512DQ-NEXT:    vmovq {{.*#+}} xmm2 = mem[0],zero1070; AVX512DQ-NEXT:    vmovq {{.*#+}} xmm3 = mem[0],zero1071; AVX512DQ-NEXT:    vpunpcklqdq {{.*#+}} xmm2 = xmm3[0],xmm2[0]1072; AVX512DQ-NEXT:    vmovq {{.*#+}} xmm3 = mem[0],zero1073; AVX512DQ-NEXT:    vmovq {{.*#+}} xmm4 = mem[0],zero1074; AVX512DQ-NEXT:    vpunpcklqdq {{.*#+}} xmm3 = xmm4[0],xmm3[0]1075; AVX512DQ-NEXT:    vinserti128 $1, %xmm2, %ymm3, %ymm41076; AVX512DQ-NEXT:    vmovdqa {{.*#+}} ymm5 = [128,128,4,12,128,128,4,12,128,128,5,13,128,128,5,13,22,30,128,128,22,30,128,128,23,31,128,128,23,31,128,128]1077; AVX512DQ-NEXT:    vpshufb %ymm5, %ymm4, %ymm61078; AVX512DQ-NEXT:    vinserti128 $1, %xmm0, %ymm1, %ymm71079; AVX512DQ-NEXT:    vpshufb %ymm5, %ymm7, %ymm51080; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm5 = ymm5[0],ymm6[1],ymm5[2],ymm6[3],ymm5[4],ymm6[5],ymm5[6],ymm6[7]1081; AVX512DQ-NEXT:    vmovdqa {{.*#+}} ymm6 = [128,128,0,8,128,128,0,8,128,128,1,9,128,128,1,9,18,26,128,128,18,26,128,128,19,27,128,128,19,27,128,128]1082; AVX512DQ-NEXT:    vpshufb %ymm6, %ymm4, %ymm41083; AVX512DQ-NEXT:    vpshufb %ymm6, %ymm7, %ymm61084; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm4 = ymm6[0],ymm4[1],ymm6[2],ymm4[3],ymm6[4],ymm4[5],ymm6[6],ymm4[7]1085; AVX512DQ-NEXT:    vinserti64x4 $1, %ymm5, %zmm4, %zmm41086; AVX512DQ-NEXT:    vinserti128 $1, %xmm3, %ymm2, %ymm21087; AVX512DQ-NEXT:    vmovdqa {{.*#+}} ymm3 = [4,12,128,128,4,12,128,128,5,13,128,128,5,13,128,128,128,128,22,30,128,128,22,30,128,128,23,31,128,128,23,31]1088; AVX512DQ-NEXT:    vpshufb %ymm3, %ymm2, %ymm51089; AVX512DQ-NEXT:    vinserti128 $1, %xmm1, %ymm0, %ymm01090; AVX512DQ-NEXT:    vpshufb %ymm3, %ymm0, %ymm11091; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0],ymm5[1],ymm1[2],ymm5[3],ymm1[4],ymm5[5],ymm1[6],ymm5[7]1092; AVX512DQ-NEXT:    vmovdqa {{.*#+}} ymm3 = [0,8,128,128,0,8,128,128,1,9,128,128,1,9,128,128,128,128,18,26,128,128,18,26,128,128,19,27,128,128,19,27]1093; AVX512DQ-NEXT:    vpshufb %ymm3, %ymm2, %ymm21094; AVX512DQ-NEXT:    vpshufb %ymm3, %ymm0, %ymm01095; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0],ymm2[1],ymm0[2],ymm2[3],ymm0[4],ymm2[5],ymm0[6],ymm2[7]1096; AVX512DQ-NEXT:    vinserti64x4 $1, %ymm1, %zmm0, %zmm01097; AVX512DQ-NEXT:    vpord %zmm4, %zmm0, %zmm01098; AVX512DQ-NEXT:    vmovdqa64 %zmm0, (%rax)1099; AVX512DQ-NEXT:    vzeroupper1100; AVX512DQ-NEXT:    retq1101;1102; AVX512DQ-FCP-LABEL: store_i8_stride8_vf8:1103; AVX512DQ-FCP:       # %bb.0:1104; AVX512DQ-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax1105; AVX512DQ-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r101106; AVX512DQ-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r111107; AVX512DQ-FCP-NEXT:    vmovq {{.*#+}} xmm0 = mem[0],zero1108; AVX512DQ-FCP-NEXT:    vmovq {{.*#+}} xmm1 = mem[0],zero1109; AVX512DQ-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm0 = xmm1[0],xmm0[0]1110; AVX512DQ-FCP-NEXT:    vmovq {{.*#+}} xmm1 = mem[0],zero1111; AVX512DQ-FCP-NEXT:    vmovq {{.*#+}} xmm2 = mem[0],zero1112; AVX512DQ-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm1 = xmm2[0],xmm1[0]1113; AVX512DQ-FCP-NEXT:    vmovq {{.*#+}} xmm2 = mem[0],zero1114; AVX512DQ-FCP-NEXT:    vmovq {{.*#+}} xmm3 = mem[0],zero1115; AVX512DQ-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm2 = xmm3[0],xmm2[0]1116; AVX512DQ-FCP-NEXT:    vmovq {{.*#+}} xmm3 = mem[0],zero1117; AVX512DQ-FCP-NEXT:    vmovq {{.*#+}} xmm4 = mem[0],zero1118; AVX512DQ-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm3 = xmm4[0],xmm3[0]1119; AVX512DQ-FCP-NEXT:    vbroadcasti128 {{.*#+}} ymm4 = [1,3,9,11,1,3,9,11]1120; AVX512DQ-FCP-NEXT:    # ymm4 = mem[0,1,0,1]1121; AVX512DQ-FCP-NEXT:    vmovdqa %ymm2, %ymm51122; AVX512DQ-FCP-NEXT:    vpermt2d %ymm3, %ymm4, %ymm51123; AVX512DQ-FCP-NEXT:    vmovdqa {{.*#+}} ymm6 = [u,u,u,u,0,4,8,12,u,u,u,u,1,5,9,13,u,u,u,u,2,6,10,14,u,u,u,u,3,7,11,15]1124; AVX512DQ-FCP-NEXT:    vpshufb %ymm6, %ymm5, %ymm51125; AVX512DQ-FCP-NEXT:    vpermi2d %ymm1, %ymm0, %ymm41126; AVX512DQ-FCP-NEXT:    vpmovsxdq {{.*#+}} ymm7 = [201851904,218694913,235537922,252380931]1127; AVX512DQ-FCP-NEXT:    vpshufb %ymm7, %ymm4, %ymm41128; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm4 = ymm4[0],ymm5[1],ymm4[2],ymm5[3],ymm4[4],ymm5[5],ymm4[6],ymm5[7]1129; AVX512DQ-FCP-NEXT:    vbroadcasti128 {{.*#+}} ymm5 = [0,2,8,10,0,2,8,10]1130; AVX512DQ-FCP-NEXT:    # ymm5 = mem[0,1,0,1]1131; AVX512DQ-FCP-NEXT:    vpermt2d %ymm3, %ymm5, %ymm21132; AVX512DQ-FCP-NEXT:    vpshufb %ymm6, %ymm2, %ymm21133; AVX512DQ-FCP-NEXT:    vpermt2d %ymm1, %ymm5, %ymm01134; AVX512DQ-FCP-NEXT:    vpshufb %ymm7, %ymm0, %ymm01135; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0],ymm2[1],ymm0[2],ymm2[3],ymm0[4],ymm2[5],ymm0[6],ymm2[7]1136; AVX512DQ-FCP-NEXT:    vinserti64x4 $1, %ymm4, %zmm0, %zmm01137; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, (%rax)1138; AVX512DQ-FCP-NEXT:    vzeroupper1139; AVX512DQ-FCP-NEXT:    retq1140;1141; AVX512BW-LABEL: store_i8_stride8_vf8:1142; AVX512BW:       # %bb.0:1143; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax1144; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %r101145; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %r111146; AVX512BW-NEXT:    vmovq {{.*#+}} xmm0 = mem[0],zero1147; AVX512BW-NEXT:    vmovq {{.*#+}} xmm1 = mem[0],zero1148; AVX512BW-NEXT:    vpunpcklqdq {{.*#+}} xmm0 = xmm1[0],xmm0[0]1149; AVX512BW-NEXT:    vmovq {{.*#+}} xmm1 = mem[0],zero1150; AVX512BW-NEXT:    vmovq {{.*#+}} xmm2 = mem[0],zero1151; AVX512BW-NEXT:    vpunpcklqdq {{.*#+}} xmm1 = xmm2[0],xmm1[0]1152; AVX512BW-NEXT:    vmovq {{.*#+}} xmm2 = mem[0],zero1153; AVX512BW-NEXT:    vmovq {{.*#+}} xmm3 = mem[0],zero1154; AVX512BW-NEXT:    vpunpcklqdq {{.*#+}} xmm2 = xmm3[0],xmm2[0]1155; AVX512BW-NEXT:    vmovq {{.*#+}} xmm3 = mem[0],zero1156; AVX512BW-NEXT:    vmovq {{.*#+}} xmm4 = mem[0],zero1157; AVX512BW-NEXT:    vpunpcklqdq {{.*#+}} xmm3 = xmm4[0],xmm3[0]1158; AVX512BW-NEXT:    vinserti128 $1, %xmm1, %ymm0, %ymm41159; AVX512BW-NEXT:    vinserti64x4 $1, %ymm4, %zmm4, %zmm41160; AVX512BW-NEXT:    vpshufb {{.*#+}} zmm4 = zmm4[0,8],zero,zero,zero,zero,zero,zero,zmm4[1,9],zero,zero,zero,zero,zero,zero,zero,zero,zmm4[18,26],zero,zero,zero,zero,zero,zero,zmm4[19,27],zero,zero,zero,zero,zmm4[36,44],zero,zero,zero,zero,zero,zero,zmm4[37,45],zero,zero,zero,zero,zero,zero,zero,zero,zmm4[54,62],zero,zero,zero,zero,zero,zero,zmm4[55,63],zero,zero,zero,zero1161; AVX512BW-NEXT:    vinserti128 $1, %xmm0, %ymm1, %ymm01162; AVX512BW-NEXT:    vinserti64x4 $1, %ymm0, %zmm0, %zmm01163; AVX512BW-NEXT:    vpshufb {{.*#+}} zmm0 = zero,zero,zmm0[0,8],zero,zero,zero,zero,zero,zero,zmm0[1,9],zero,zero,zero,zero,zmm0[18,26],zero,zero,zero,zero,zero,zero,zmm0[19,27],zero,zero,zero,zero,zero,zero,zero,zero,zmm0[36,44],zero,zero,zero,zero,zero,zero,zmm0[37,45],zero,zero,zero,zero,zmm0[54,62],zero,zero,zero,zero,zero,zero,zmm0[55,63],zero,zero,zero,zero,zero,zero1164; AVX512BW-NEXT:    vporq %zmm4, %zmm0, %zmm01165; AVX512BW-NEXT:    vinserti128 $1, %xmm3, %ymm2, %ymm11166; AVX512BW-NEXT:    vinserti64x4 $1, %ymm1, %zmm1, %zmm11167; AVX512BW-NEXT:    vpshufb {{.*#+}} zmm1 = zero,zero,zero,zero,zmm1[0,8],zero,zero,zero,zero,zero,zero,zmm1[1,9],zero,zero,zero,zero,zero,zero,zero,zero,zmm1[18,26],zero,zero,zero,zero,zero,zero,zmm1[19,27],zero,zero,zero,zero,zmm1[36,44],zero,zero,zero,zero,zero,zero,zmm1[37,45],zero,zero,zero,zero,zero,zero,zero,zero,zmm1[54,62],zero,zero,zero,zero,zero,zero,zmm1[55,63]1168; AVX512BW-NEXT:    vinserti128 $1, %xmm2, %ymm3, %ymm21169; AVX512BW-NEXT:    vinserti64x4 $1, %ymm2, %zmm2, %zmm21170; AVX512BW-NEXT:    vpshufb {{.*#+}} zmm2 = zero,zero,zero,zero,zero,zero,zmm2[0,8],zero,zero,zero,zero,zero,zero,zmm2[1,9],zero,zero,zero,zero,zmm2[18,26],zero,zero,zero,zero,zero,zero,zmm2[19,27],zero,zero,zero,zero,zero,zero,zero,zero,zmm2[36,44],zero,zero,zero,zero,zero,zero,zmm2[37,45],zero,zero,zero,zero,zmm2[54,62],zero,zero,zero,zero,zero,zero,zmm2[55,63],zero,zero1171; AVX512BW-NEXT:    vpternlogq {{.*#+}} zmm2 = zmm2 | zmm0 | zmm11172; AVX512BW-NEXT:    vmovdqa64 %zmm2, (%rax)1173; AVX512BW-NEXT:    vzeroupper1174; AVX512BW-NEXT:    retq1175;1176; AVX512BW-FCP-LABEL: store_i8_stride8_vf8:1177; AVX512BW-FCP:       # %bb.0:1178; AVX512BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax1179; AVX512BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r101180; AVX512BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r111181; AVX512BW-FCP-NEXT:    vmovq {{.*#+}} xmm0 = mem[0],zero1182; AVX512BW-FCP-NEXT:    vmovq {{.*#+}} xmm1 = mem[0],zero1183; AVX512BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm0 = xmm1[0],xmm0[0]1184; AVX512BW-FCP-NEXT:    vmovq {{.*#+}} xmm1 = mem[0],zero1185; AVX512BW-FCP-NEXT:    vmovq {{.*#+}} xmm2 = mem[0],zero1186; AVX512BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm1 = xmm2[0],xmm1[0]1187; AVX512BW-FCP-NEXT:    vmovq {{.*#+}} xmm2 = mem[0],zero1188; AVX512BW-FCP-NEXT:    vmovq {{.*#+}} xmm3 = mem[0],zero1189; AVX512BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm2 = xmm3[0],xmm2[0]1190; AVX512BW-FCP-NEXT:    vmovq {{.*#+}} xmm3 = mem[0],zero1191; AVX512BW-FCP-NEXT:    vmovq {{.*#+}} xmm4 = mem[0],zero1192; AVX512BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm3 = xmm4[0],xmm3[0]1193; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm4 = [0,2,16,18,0,2,16,18,1,3,17,19,1,3,17,19]1194; AVX512BW-FCP-NEXT:    vpermt2d %zmm1, %zmm4, %zmm01195; AVX512BW-FCP-NEXT:    vpshufb {{.*#+}} zmm0 = zmm0[0,4,8,12],zero,zero,zero,zero,zmm0[1,5,9,13],zero,zero,zero,zero,zmm0[18,22,26,30],zero,zero,zero,zero,zmm0[19,23,27,31],zero,zero,zero,zero,zmm0[32,36,40,44],zero,zero,zero,zero,zmm0[33,37,41,45],zero,zero,zero,zero,zmm0[50,54,58,62],zero,zero,zero,zero,zmm0[51,55,59,63],zero,zero,zero,zero1196; AVX512BW-FCP-NEXT:    vpermt2d %zmm3, %zmm4, %zmm21197; AVX512BW-FCP-NEXT:    vpshufb {{.*#+}} zmm1 = zero,zero,zero,zero,zmm2[0,4,8,12],zero,zero,zero,zero,zmm2[1,5,9,13],zero,zero,zero,zero,zmm2[18,22,26,30],zero,zero,zero,zero,zmm2[19,23,27,31],zero,zero,zero,zero,zmm2[32,36,40,44],zero,zero,zero,zero,zmm2[33,37,41,45],zero,zero,zero,zero,zmm2[50,54,58,62],zero,zero,zero,zero,zmm2[51,55,59,63]1198; AVX512BW-FCP-NEXT:    vporq %zmm0, %zmm1, %zmm01199; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, (%rax)1200; AVX512BW-FCP-NEXT:    vzeroupper1201; AVX512BW-FCP-NEXT:    retq1202;1203; AVX512DQ-BW-LABEL: store_i8_stride8_vf8:1204; AVX512DQ-BW:       # %bb.0:1205; AVX512DQ-BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax1206; AVX512DQ-BW-NEXT:    movq {{[0-9]+}}(%rsp), %r101207; AVX512DQ-BW-NEXT:    movq {{[0-9]+}}(%rsp), %r111208; AVX512DQ-BW-NEXT:    vmovq {{.*#+}} xmm0 = mem[0],zero1209; AVX512DQ-BW-NEXT:    vmovq {{.*#+}} xmm1 = mem[0],zero1210; AVX512DQ-BW-NEXT:    vpunpcklqdq {{.*#+}} xmm0 = xmm1[0],xmm0[0]1211; AVX512DQ-BW-NEXT:    vmovq {{.*#+}} xmm1 = mem[0],zero1212; AVX512DQ-BW-NEXT:    vmovq {{.*#+}} xmm2 = mem[0],zero1213; AVX512DQ-BW-NEXT:    vpunpcklqdq {{.*#+}} xmm1 = xmm2[0],xmm1[0]1214; AVX512DQ-BW-NEXT:    vmovq {{.*#+}} xmm2 = mem[0],zero1215; AVX512DQ-BW-NEXT:    vmovq {{.*#+}} xmm3 = mem[0],zero1216; AVX512DQ-BW-NEXT:    vpunpcklqdq {{.*#+}} xmm2 = xmm3[0],xmm2[0]1217; AVX512DQ-BW-NEXT:    vmovq {{.*#+}} xmm3 = mem[0],zero1218; AVX512DQ-BW-NEXT:    vmovq {{.*#+}} xmm4 = mem[0],zero1219; AVX512DQ-BW-NEXT:    vpunpcklqdq {{.*#+}} xmm3 = xmm4[0],xmm3[0]1220; AVX512DQ-BW-NEXT:    vinserti128 $1, %xmm1, %ymm0, %ymm41221; AVX512DQ-BW-NEXT:    vinserti64x4 $1, %ymm4, %zmm4, %zmm41222; AVX512DQ-BW-NEXT:    vpshufb {{.*#+}} zmm4 = zmm4[0,8],zero,zero,zero,zero,zero,zero,zmm4[1,9],zero,zero,zero,zero,zero,zero,zero,zero,zmm4[18,26],zero,zero,zero,zero,zero,zero,zmm4[19,27],zero,zero,zero,zero,zmm4[36,44],zero,zero,zero,zero,zero,zero,zmm4[37,45],zero,zero,zero,zero,zero,zero,zero,zero,zmm4[54,62],zero,zero,zero,zero,zero,zero,zmm4[55,63],zero,zero,zero,zero1223; AVX512DQ-BW-NEXT:    vinserti128 $1, %xmm0, %ymm1, %ymm01224; AVX512DQ-BW-NEXT:    vinserti64x4 $1, %ymm0, %zmm0, %zmm01225; AVX512DQ-BW-NEXT:    vpshufb {{.*#+}} zmm0 = zero,zero,zmm0[0,8],zero,zero,zero,zero,zero,zero,zmm0[1,9],zero,zero,zero,zero,zmm0[18,26],zero,zero,zero,zero,zero,zero,zmm0[19,27],zero,zero,zero,zero,zero,zero,zero,zero,zmm0[36,44],zero,zero,zero,zero,zero,zero,zmm0[37,45],zero,zero,zero,zero,zmm0[54,62],zero,zero,zero,zero,zero,zero,zmm0[55,63],zero,zero,zero,zero,zero,zero1226; AVX512DQ-BW-NEXT:    vporq %zmm4, %zmm0, %zmm01227; AVX512DQ-BW-NEXT:    vinserti128 $1, %xmm3, %ymm2, %ymm11228; AVX512DQ-BW-NEXT:    vinserti64x4 $1, %ymm1, %zmm1, %zmm11229; AVX512DQ-BW-NEXT:    vpshufb {{.*#+}} zmm1 = zero,zero,zero,zero,zmm1[0,8],zero,zero,zero,zero,zero,zero,zmm1[1,9],zero,zero,zero,zero,zero,zero,zero,zero,zmm1[18,26],zero,zero,zero,zero,zero,zero,zmm1[19,27],zero,zero,zero,zero,zmm1[36,44],zero,zero,zero,zero,zero,zero,zmm1[37,45],zero,zero,zero,zero,zero,zero,zero,zero,zmm1[54,62],zero,zero,zero,zero,zero,zero,zmm1[55,63]1230; AVX512DQ-BW-NEXT:    vinserti128 $1, %xmm2, %ymm3, %ymm21231; AVX512DQ-BW-NEXT:    vinserti64x4 $1, %ymm2, %zmm2, %zmm21232; AVX512DQ-BW-NEXT:    vpshufb {{.*#+}} zmm2 = zero,zero,zero,zero,zero,zero,zmm2[0,8],zero,zero,zero,zero,zero,zero,zmm2[1,9],zero,zero,zero,zero,zmm2[18,26],zero,zero,zero,zero,zero,zero,zmm2[19,27],zero,zero,zero,zero,zero,zero,zero,zero,zmm2[36,44],zero,zero,zero,zero,zero,zero,zmm2[37,45],zero,zero,zero,zero,zmm2[54,62],zero,zero,zero,zero,zero,zero,zmm2[55,63],zero,zero1233; AVX512DQ-BW-NEXT:    vpternlogq {{.*#+}} zmm2 = zmm2 | zmm0 | zmm11234; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm2, (%rax)1235; AVX512DQ-BW-NEXT:    vzeroupper1236; AVX512DQ-BW-NEXT:    retq1237;1238; AVX512DQ-BW-FCP-LABEL: store_i8_stride8_vf8:1239; AVX512DQ-BW-FCP:       # %bb.0:1240; AVX512DQ-BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax1241; AVX512DQ-BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r101242; AVX512DQ-BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r111243; AVX512DQ-BW-FCP-NEXT:    vmovq {{.*#+}} xmm0 = mem[0],zero1244; AVX512DQ-BW-FCP-NEXT:    vmovq {{.*#+}} xmm1 = mem[0],zero1245; AVX512DQ-BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm0 = xmm1[0],xmm0[0]1246; AVX512DQ-BW-FCP-NEXT:    vmovq {{.*#+}} xmm1 = mem[0],zero1247; AVX512DQ-BW-FCP-NEXT:    vmovq {{.*#+}} xmm2 = mem[0],zero1248; AVX512DQ-BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm1 = xmm2[0],xmm1[0]1249; AVX512DQ-BW-FCP-NEXT:    vmovq {{.*#+}} xmm2 = mem[0],zero1250; AVX512DQ-BW-FCP-NEXT:    vmovq {{.*#+}} xmm3 = mem[0],zero1251; AVX512DQ-BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm2 = xmm3[0],xmm2[0]1252; AVX512DQ-BW-FCP-NEXT:    vmovq {{.*#+}} xmm3 = mem[0],zero1253; AVX512DQ-BW-FCP-NEXT:    vmovq {{.*#+}} xmm4 = mem[0],zero1254; AVX512DQ-BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm3 = xmm4[0],xmm3[0]1255; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm4 = [0,2,16,18,0,2,16,18,1,3,17,19,1,3,17,19]1256; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm1, %zmm4, %zmm01257; AVX512DQ-BW-FCP-NEXT:    vpshufb {{.*#+}} zmm0 = zmm0[0,4,8,12],zero,zero,zero,zero,zmm0[1,5,9,13],zero,zero,zero,zero,zmm0[18,22,26,30],zero,zero,zero,zero,zmm0[19,23,27,31],zero,zero,zero,zero,zmm0[32,36,40,44],zero,zero,zero,zero,zmm0[33,37,41,45],zero,zero,zero,zero,zmm0[50,54,58,62],zero,zero,zero,zero,zmm0[51,55,59,63],zero,zero,zero,zero1258; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm3, %zmm4, %zmm21259; AVX512DQ-BW-FCP-NEXT:    vpshufb {{.*#+}} zmm1 = zero,zero,zero,zero,zmm2[0,4,8,12],zero,zero,zero,zero,zmm2[1,5,9,13],zero,zero,zero,zero,zmm2[18,22,26,30],zero,zero,zero,zero,zmm2[19,23,27,31],zero,zero,zero,zero,zmm2[32,36,40,44],zero,zero,zero,zero,zmm2[33,37,41,45],zero,zero,zero,zero,zmm2[50,54,58,62],zero,zero,zero,zero,zmm2[51,55,59,63]1260; AVX512DQ-BW-FCP-NEXT:    vporq %zmm0, %zmm1, %zmm01261; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, (%rax)1262; AVX512DQ-BW-FCP-NEXT:    vzeroupper1263; AVX512DQ-BW-FCP-NEXT:    retq1264  %in.vec0 = load <8 x i8>, ptr %in.vecptr0, align 641265  %in.vec1 = load <8 x i8>, ptr %in.vecptr1, align 641266  %in.vec2 = load <8 x i8>, ptr %in.vecptr2, align 641267  %in.vec3 = load <8 x i8>, ptr %in.vecptr3, align 641268  %in.vec4 = load <8 x i8>, ptr %in.vecptr4, align 641269  %in.vec5 = load <8 x i8>, ptr %in.vecptr5, align 641270  %in.vec6 = load <8 x i8>, ptr %in.vecptr6, align 641271  %in.vec7 = load <8 x i8>, ptr %in.vecptr7, align 641272  %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>1273  %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>1274  %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>1275  %4 = shufflevector <8 x i8> %in.vec6, <8 x i8> %in.vec7, <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>1276  %5 = 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>1277  %6 = shufflevector <16 x i8> %3, <16 x i8> %4, <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>1278  %7 = shufflevector <32 x i8> %5, <32 x i8> %6, <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>1279  %interleaved.vec = shufflevector <64 x i8> %7, <64 x i8> poison, <64 x i32> <i32 0, i32 8, i32 16, i32 24, i32 32, i32 40, i32 48, i32 56, i32 1, i32 9, i32 17, i32 25, i32 33, i32 41, i32 49, i32 57, i32 2, i32 10, i32 18, i32 26, i32 34, i32 42, i32 50, i32 58, i32 3, i32 11, i32 19, i32 27, i32 35, i32 43, i32 51, i32 59, i32 4, i32 12, i32 20, i32 28, i32 36, i32 44, i32 52, i32 60, i32 5, i32 13, i32 21, i32 29, i32 37, i32 45, i32 53, i32 61, i32 6, i32 14, i32 22, i32 30, i32 38, i32 46, i32 54, i32 62, i32 7, i32 15, i32 23, i32 31, i32 39, i32 47, i32 55, i32 63>1280  store <64 x i8> %interleaved.vec, ptr %out.vec, align 641281  ret void1282}1283 1284define void @store_i8_stride8_vf16(ptr %in.vecptr0, ptr %in.vecptr1, ptr %in.vecptr2, ptr %in.vecptr3, ptr %in.vecptr4, ptr %in.vecptr5, ptr %in.vecptr6, ptr %in.vecptr7, ptr %out.vec) nounwind {1285; SSE-LABEL: store_i8_stride8_vf16:1286; SSE:       # %bb.0:1287; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %rax1288; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %r101289; SSE-NEXT:    movdqa (%rdi), %xmm101290; SSE-NEXT:    movdqa (%rsi), %xmm91291; SSE-NEXT:    movdqa %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1292; SSE-NEXT:    movdqa (%rdx), %xmm11293; SSE-NEXT:    movdqa (%rcx), %xmm61294; SSE-NEXT:    movdqa %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1295; SSE-NEXT:    movdqa (%r8), %xmm31296; SSE-NEXT:    movdqa (%r9), %xmm111297; SSE-NEXT:    movdqa (%r10), %xmm41298; SSE-NEXT:    movdqa (%rax), %xmm131299; SSE-NEXT:    movdqa %xmm4, %xmm121300; SSE-NEXT:    punpcklbw {{.*#+}} xmm12 = xmm12[0],xmm13[0],xmm12[1],xmm13[1],xmm12[2],xmm13[2],xmm12[3],xmm13[3],xmm12[4],xmm13[4],xmm12[5],xmm13[5],xmm12[6],xmm13[6],xmm12[7],xmm13[7]1301; SSE-NEXT:    pshuflw {{.*#+}} xmm0 = xmm12[0,0,2,1,4,5,6,7]1302; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,0,2,1]1303; SSE-NEXT:    movdqa {{.*#+}} xmm2 = [65535,65535,65535,0,65535,65535,65535,0]1304; SSE-NEXT:    movdqa %xmm2, %xmm51305; SSE-NEXT:    pandn %xmm0, %xmm51306; SSE-NEXT:    movdqa %xmm3, %xmm141307; SSE-NEXT:    punpcklbw {{.*#+}} xmm14 = xmm14[0],xmm11[0],xmm14[1],xmm11[1],xmm14[2],xmm11[2],xmm14[3],xmm11[3],xmm14[4],xmm11[4],xmm14[5],xmm11[5],xmm14[6],xmm11[6],xmm14[7],xmm11[7]1308; SSE-NEXT:    pshuflw {{.*#+}} xmm0 = xmm14[0,1,1,3,4,5,6,7]1309; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm0[0,0,2,1]1310; SSE-NEXT:    pand %xmm2, %xmm71311; SSE-NEXT:    por %xmm5, %xmm71312; SSE-NEXT:    movdqa %xmm1, %xmm151313; SSE-NEXT:    punpcklbw {{.*#+}} xmm15 = xmm15[0],xmm6[0],xmm15[1],xmm6[1],xmm15[2],xmm6[2],xmm15[3],xmm6[3],xmm15[4],xmm6[4],xmm15[5],xmm6[5],xmm15[6],xmm6[6],xmm15[7],xmm6[7]1314; SSE-NEXT:    pshuflw {{.*#+}} xmm0 = xmm15[0,0,2,1,4,5,6,7]1315; SSE-NEXT:    pshufd {{.*#+}} xmm5 = xmm0[0,1,1,3]1316; SSE-NEXT:    movdqa {{.*#+}} xmm0 = [65535,0,65535,65535,65535,0,65535,65535]1317; SSE-NEXT:    movdqa %xmm0, %xmm81318; SSE-NEXT:    pandn %xmm5, %xmm81319; SSE-NEXT:    movdqa %xmm10, %xmm61320; SSE-NEXT:    punpcklbw {{.*#+}} xmm6 = xmm6[0],xmm9[0],xmm6[1],xmm9[1],xmm6[2],xmm9[2],xmm6[3],xmm9[3],xmm6[4],xmm9[4],xmm6[5],xmm9[5],xmm6[6],xmm9[6],xmm6[7],xmm9[7]1321; SSE-NEXT:    pshufd {{.*#+}} xmm9 = xmm6[0,0,0,0]1322; SSE-NEXT:    pshufhw {{.*#+}} xmm9 = xmm9[0,1,2,3,5,5,5,5]1323; SSE-NEXT:    pand %xmm0, %xmm91324; SSE-NEXT:    por %xmm8, %xmm91325; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm7[1,3,2,3]1326; SSE-NEXT:    pshufd {{.*#+}} xmm5 = xmm9[0,2,2,3]1327; SSE-NEXT:    punpckldq {{.*#+}} xmm5 = xmm5[0],xmm7[0],xmm5[1],xmm7[1]1328; SSE-NEXT:    movdqa %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1329; SSE-NEXT:    pshuflw {{.*#+}} xmm7 = xmm12[0,2,2,3,4,5,6,7]1330; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm7[0,0,2,1]1331; SSE-NEXT:    movdqa %xmm2, %xmm81332; SSE-NEXT:    pandn %xmm7, %xmm81333; SSE-NEXT:    pshuflw {{.*#+}} xmm7 = xmm14[2,1,3,3,4,5,6,7]1334; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm7[0,0,2,1]1335; SSE-NEXT:    pand %xmm2, %xmm71336; SSE-NEXT:    por %xmm8, %xmm71337; SSE-NEXT:    pshuflw {{.*#+}} xmm8 = xmm15[0,2,2,3,4,5,6,7]1338; SSE-NEXT:    pshufd {{.*#+}} xmm8 = xmm8[0,1,1,3]1339; SSE-NEXT:    movdqa %xmm0, %xmm91340; SSE-NEXT:    pandn %xmm8, %xmm91341; SSE-NEXT:    pshufd {{.*#+}} xmm8 = xmm6[1,1,1,1]1342; SSE-NEXT:    pshufhw {{.*#+}} xmm8 = xmm8[0,1,2,3,5,5,5,5]1343; SSE-NEXT:    pand %xmm0, %xmm81344; SSE-NEXT:    por %xmm9, %xmm81345; SSE-NEXT:    pshufd {{.*#+}} xmm9 = xmm7[1,3,2,3]1346; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm8[0,2,2,3]1347; SSE-NEXT:    punpckldq {{.*#+}} xmm7 = xmm7[0],xmm9[0],xmm7[1],xmm9[1]1348; SSE-NEXT:    pshufhw {{.*#+}} xmm8 = xmm12[0,1,2,3,4,6,6,7]1349; SSE-NEXT:    pshufd {{.*#+}} xmm8 = xmm8[0,2,2,3]1350; SSE-NEXT:    movdqa %xmm2, %xmm91351; SSE-NEXT:    pandn %xmm8, %xmm91352; SSE-NEXT:    pshufhw {{.*#+}} xmm8 = xmm14[0,1,2,3,6,5,7,7]1353; SSE-NEXT:    pshufd {{.*#+}} xmm8 = xmm8[0,2,2,3]1354; SSE-NEXT:    pand %xmm2, %xmm81355; SSE-NEXT:    por %xmm9, %xmm81356; SSE-NEXT:    pshufhw {{.*#+}} xmm9 = xmm15[0,1,2,3,4,6,6,7]1357; SSE-NEXT:    pshufd {{.*#+}} xmm9 = xmm9[2,1,3,3]1358; SSE-NEXT:    movdqa %xmm0, %xmm51359; SSE-NEXT:    pandn %xmm9, %xmm51360; SSE-NEXT:    pshufd {{.*#+}} xmm9 = xmm6[3,3,3,3]1361; SSE-NEXT:    pshufhw {{.*#+}} xmm9 = xmm9[0,1,2,3,5,5,5,5]1362; SSE-NEXT:    pand %xmm0, %xmm91363; SSE-NEXT:    por %xmm5, %xmm91364; SSE-NEXT:    pshufd {{.*#+}} xmm5 = xmm8[1,3,2,3]1365; SSE-NEXT:    pshufd {{.*#+}} xmm8 = xmm9[0,2,2,3]1366; SSE-NEXT:    punpckldq {{.*#+}} xmm8 = xmm8[0],xmm5[0],xmm8[1],xmm5[1]1367; SSE-NEXT:    pshufhw {{.*#+}} xmm5 = xmm12[0,1,2,3,4,4,6,5]1368; SSE-NEXT:    pshufd {{.*#+}} xmm5 = xmm5[0,2,2,3]1369; SSE-NEXT:    movdqa %xmm2, %xmm91370; SSE-NEXT:    pandn %xmm5, %xmm91371; SSE-NEXT:    pshufhw {{.*#+}} xmm5 = xmm14[0,1,2,3,4,5,5,7]1372; SSE-NEXT:    pshufd {{.*#+}} xmm5 = xmm5[0,2,2,3]1373; SSE-NEXT:    pand %xmm2, %xmm51374; SSE-NEXT:    por %xmm9, %xmm51375; SSE-NEXT:    pshufhw {{.*#+}} xmm9 = xmm15[0,1,2,3,4,4,6,5]1376; SSE-NEXT:    pshufd {{.*#+}} xmm9 = xmm9[2,1,3,3]1377; SSE-NEXT:    movdqa %xmm0, %xmm121378; SSE-NEXT:    pandn %xmm9, %xmm121379; SSE-NEXT:    pshufd {{.*#+}} xmm6 = xmm6[2,2,2,2]1380; SSE-NEXT:    pshufhw {{.*#+}} xmm6 = xmm6[0,1,2,3,5,5,5,5]1381; SSE-NEXT:    pand %xmm0, %xmm61382; SSE-NEXT:    por %xmm12, %xmm61383; SSE-NEXT:    pshufd {{.*#+}} xmm5 = xmm5[1,3,2,3]1384; SSE-NEXT:    pshufd {{.*#+}} xmm12 = xmm6[0,2,2,3]1385; SSE-NEXT:    punpckldq {{.*#+}} xmm12 = xmm12[0],xmm5[0],xmm12[1],xmm5[1]1386; SSE-NEXT:    punpckhbw {{.*#+}} xmm4 = xmm4[8],xmm13[8],xmm4[9],xmm13[9],xmm4[10],xmm13[10],xmm4[11],xmm13[11],xmm4[12],xmm13[12],xmm4[13],xmm13[13],xmm4[14],xmm13[14],xmm4[15],xmm13[15]1387; SSE-NEXT:    pshuflw {{.*#+}} xmm5 = xmm4[0,0,2,1,4,5,6,7]1388; SSE-NEXT:    pshufd {{.*#+}} xmm5 = xmm5[0,0,2,1]1389; SSE-NEXT:    movdqa %xmm2, %xmm61390; SSE-NEXT:    pandn %xmm5, %xmm61391; SSE-NEXT:    punpckhbw {{.*#+}} xmm3 = xmm3[8],xmm11[8],xmm3[9],xmm11[9],xmm3[10],xmm11[10],xmm3[11],xmm11[11],xmm3[12],xmm11[12],xmm3[13],xmm11[13],xmm3[14],xmm11[14],xmm3[15],xmm11[15]1392; SSE-NEXT:    pshuflw {{.*#+}} xmm5 = xmm3[0,1,1,3,4,5,6,7]1393; SSE-NEXT:    pshufd {{.*#+}} xmm5 = xmm5[0,0,2,1]1394; SSE-NEXT:    pand %xmm2, %xmm51395; SSE-NEXT:    por %xmm6, %xmm51396; SSE-NEXT:    pshufd {{.*#+}} xmm5 = xmm5[1,3,2,3]1397; SSE-NEXT:    punpckhbw {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload1398; SSE-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]1399; SSE-NEXT:    pshuflw {{.*#+}} xmm6 = xmm1[0,0,2,1,4,5,6,7]1400; SSE-NEXT:    pshufd {{.*#+}} xmm6 = xmm6[0,1,1,3]1401; SSE-NEXT:    movdqa %xmm0, %xmm91402; SSE-NEXT:    pandn %xmm6, %xmm91403; SSE-NEXT:    punpckhbw {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Folded Reload1404; SSE-NEXT:    # xmm10 = xmm10[8],mem[8],xmm10[9],mem[9],xmm10[10],mem[10],xmm10[11],mem[11],xmm10[12],mem[12],xmm10[13],mem[13],xmm10[14],mem[14],xmm10[15],mem[15]1405; SSE-NEXT:    pshufd {{.*#+}} xmm6 = xmm10[0,0,0,0]1406; SSE-NEXT:    pshufhw {{.*#+}} xmm6 = xmm6[0,1,2,3,5,5,5,5]1407; SSE-NEXT:    pand %xmm0, %xmm61408; SSE-NEXT:    por %xmm9, %xmm61409; SSE-NEXT:    pshufd {{.*#+}} xmm9 = xmm6[0,2,2,3]1410; SSE-NEXT:    punpckldq {{.*#+}} xmm9 = xmm9[0],xmm5[0],xmm9[1],xmm5[1]1411; SSE-NEXT:    pshuflw {{.*#+}} xmm5 = xmm4[0,2,2,3,4,5,6,7]1412; SSE-NEXT:    pshufd {{.*#+}} xmm5 = xmm5[0,0,2,1]1413; SSE-NEXT:    movdqa %xmm2, %xmm61414; SSE-NEXT:    pandn %xmm5, %xmm61415; SSE-NEXT:    pshuflw {{.*#+}} xmm5 = xmm3[2,1,3,3,4,5,6,7]1416; SSE-NEXT:    pshufd {{.*#+}} xmm5 = xmm5[0,0,2,1]1417; SSE-NEXT:    pand %xmm2, %xmm51418; SSE-NEXT:    por %xmm6, %xmm51419; SSE-NEXT:    pshufd {{.*#+}} xmm6 = xmm5[1,3,2,3]1420; SSE-NEXT:    pshuflw {{.*#+}} xmm5 = xmm1[0,2,2,3,4,5,6,7]1421; SSE-NEXT:    pshufd {{.*#+}} xmm5 = xmm5[0,1,1,3]1422; SSE-NEXT:    movdqa %xmm0, %xmm111423; SSE-NEXT:    pandn %xmm5, %xmm111424; SSE-NEXT:    pshufd {{.*#+}} xmm5 = xmm10[1,1,1,1]1425; SSE-NEXT:    pshufhw {{.*#+}} xmm5 = xmm5[0,1,2,3,5,5,5,5]1426; SSE-NEXT:    pand %xmm0, %xmm51427; SSE-NEXT:    por %xmm11, %xmm51428; SSE-NEXT:    pshufd {{.*#+}} xmm5 = xmm5[0,2,2,3]1429; SSE-NEXT:    punpckldq {{.*#+}} xmm5 = xmm5[0],xmm6[0],xmm5[1],xmm6[1]1430; SSE-NEXT:    pshufhw {{.*#+}} xmm6 = xmm4[0,1,2,3,4,6,6,7]1431; SSE-NEXT:    pshufd {{.*#+}} xmm6 = xmm6[0,2,2,3]1432; SSE-NEXT:    movdqa %xmm2, %xmm111433; SSE-NEXT:    pandn %xmm6, %xmm111434; SSE-NEXT:    pshufhw {{.*#+}} xmm6 = xmm3[0,1,2,3,6,5,7,7]1435; SSE-NEXT:    pshufd {{.*#+}} xmm6 = xmm6[0,2,2,3]1436; SSE-NEXT:    pand %xmm2, %xmm61437; SSE-NEXT:    por %xmm11, %xmm61438; SSE-NEXT:    pshufhw {{.*#+}} xmm11 = xmm1[0,1,2,3,4,6,6,7]1439; SSE-NEXT:    pshufd {{.*#+}} xmm11 = xmm11[2,1,3,3]1440; SSE-NEXT:    movdqa %xmm0, %xmm131441; SSE-NEXT:    pandn %xmm11, %xmm131442; SSE-NEXT:    pshufd {{.*#+}} xmm11 = xmm10[3,3,3,3]1443; SSE-NEXT:    pshufhw {{.*#+}} xmm11 = xmm11[0,1,2,3,5,5,5,5]1444; SSE-NEXT:    pand %xmm0, %xmm111445; SSE-NEXT:    por %xmm13, %xmm111446; SSE-NEXT:    pshufd {{.*#+}} xmm6 = xmm6[1,3,2,3]1447; SSE-NEXT:    pshufd {{.*#+}} xmm11 = xmm11[0,2,2,3]1448; SSE-NEXT:    punpckldq {{.*#+}} xmm11 = xmm11[0],xmm6[0],xmm11[1],xmm6[1]1449; SSE-NEXT:    pshufhw {{.*#+}} xmm4 = xmm4[0,1,2,3,4,4,6,5]1450; SSE-NEXT:    pshufd {{.*#+}} xmm4 = xmm4[0,2,2,3]1451; SSE-NEXT:    pshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,4,5,5,7]1452; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm3[0,2,2,3]1453; SSE-NEXT:    pand %xmm2, %xmm31454; SSE-NEXT:    pandn %xmm4, %xmm21455; SSE-NEXT:    por %xmm3, %xmm21456; SSE-NEXT:    pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,4,6,5]1457; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm1[2,1,3,3]1458; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm10[2,2,2,2]1459; SSE-NEXT:    pshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,5,5,5,5]1460; SSE-NEXT:    pand %xmm0, %xmm31461; SSE-NEXT:    pandn %xmm1, %xmm01462; SSE-NEXT:    por %xmm3, %xmm01463; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm2[1,3,2,3]1464; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,2,2,3]1465; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]1466; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %rax1467; SSE-NEXT:    movdqa %xmm0, 96(%rax)1468; SSE-NEXT:    movdqa %xmm11, 112(%rax)1469; SSE-NEXT:    movdqa %xmm5, 80(%rax)1470; SSE-NEXT:    movdqa %xmm9, 64(%rax)1471; SSE-NEXT:    movdqa %xmm12, 32(%rax)1472; SSE-NEXT:    movdqa %xmm8, 48(%rax)1473; SSE-NEXT:    movdqa %xmm7, 16(%rax)1474; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload1475; SSE-NEXT:    movaps %xmm0, (%rax)1476; SSE-NEXT:    retq1477;1478; AVX-LABEL: store_i8_stride8_vf16:1479; AVX:       # %bb.0:1480; AVX-NEXT:    movq {{[0-9]+}}(%rsp), %rax1481; AVX-NEXT:    movq {{[0-9]+}}(%rsp), %r101482; AVX-NEXT:    movq {{[0-9]+}}(%rsp), %r111483; AVX-NEXT:    vmovdqa (%rdi), %xmm11484; AVX-NEXT:    vmovdqa (%rsi), %xmm21485; AVX-NEXT:    vmovdqa (%rdx), %xmm31486; AVX-NEXT:    vmovdqa (%rcx), %xmm41487; AVX-NEXT:    vmovdqa (%r8), %xmm51488; AVX-NEXT:    vmovdqa (%r9), %xmm61489; AVX-NEXT:    vmovdqa (%r11), %xmm81490; AVX-NEXT:    vmovdqa (%r10), %xmm91491; AVX-NEXT:    vpunpcklbw {{.*#+}} xmm7 = 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]1492; AVX-NEXT:    vpshuflw {{.*#+}} xmm0 = xmm7[0,2,2,3,4,5,6,7]1493; AVX-NEXT:    vpshufd {{.*#+}} xmm0 = xmm0[0,0,2,1]1494; AVX-NEXT:    vpunpcklbw {{.*#+}} xmm10 = xmm5[0],xmm6[0],xmm5[1],xmm6[1],xmm5[2],xmm6[2],xmm5[3],xmm6[3],xmm5[4],xmm6[4],xmm5[5],xmm6[5],xmm5[6],xmm6[6],xmm5[7],xmm6[7]1495; AVX-NEXT:    vpshuflw {{.*#+}} xmm11 = xmm10[2,1,3,3,4,5,6,7]1496; AVX-NEXT:    vpshufd {{.*#+}} xmm11 = xmm11[0,0,2,1]1497; AVX-NEXT:    vpblendw {{.*#+}} xmm0 = xmm11[0,1,2],xmm0[3],xmm11[4,5,6],xmm0[7]1498; AVX-NEXT:    vpshuflw {{.*#+}} xmm11 = xmm7[0,0,2,1,4,5,6,7]1499; AVX-NEXT:    vpshufd {{.*#+}} xmm11 = xmm11[0,0,2,1]1500; AVX-NEXT:    vpshuflw {{.*#+}} xmm12 = xmm10[0,1,1,3,4,5,6,7]1501; AVX-NEXT:    vpshufd {{.*#+}} xmm12 = xmm12[0,0,2,1]1502; AVX-NEXT:    vpblendw {{.*#+}} xmm11 = xmm12[0,1,2],xmm11[3],xmm12[4,5,6],xmm11[7]1503; AVX-NEXT:    vinsertf128 $1, %xmm0, %ymm11, %ymm01504; AVX-NEXT:    vpunpcklbw {{.*#+}} xmm11 = 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]1505; AVX-NEXT:    vpshuflw {{.*#+}} xmm12 = xmm11[0,2,2,3,4,5,6,7]1506; AVX-NEXT:    vpmovzxdq {{.*#+}} xmm12 = xmm12[0],zero,xmm12[1],zero1507; AVX-NEXT:    vpunpcklbw {{.*#+}} xmm13 = 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]1508; AVX-NEXT:    vpshufd {{.*#+}} xmm14 = xmm13[1,1,1,1]1509; AVX-NEXT:    vpmovzxwq {{.*#+}} xmm14 = xmm14[0],zero,zero,zero,xmm14[1],zero,zero,zero1510; AVX-NEXT:    vpblendw {{.*#+}} xmm12 = xmm14[0],xmm12[1],xmm14[2,3,4],xmm12[5],xmm14[6,7]1511; AVX-NEXT:    vpmovzxwq {{.*#+}} xmm14 = xmm13[0],zero,zero,zero,xmm13[1],zero,zero,zero1512; AVX-NEXT:    vpshuflw {{.*#+}} xmm15 = xmm11[0,0,2,1,4,5,6,7]1513; AVX-NEXT:    vpmovzxdq {{.*#+}} xmm15 = xmm15[0],zero,xmm15[1],zero1514; AVX-NEXT:    vpblendw {{.*#+}} xmm14 = xmm14[0],xmm15[1],xmm14[2,3,4],xmm15[5],xmm14[6,7]1515; AVX-NEXT:    vinsertf128 $1, %xmm12, %ymm14, %ymm121516; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm12[0],ymm0[1],ymm12[2],ymm0[3],ymm12[4],ymm0[5],ymm12[6],ymm0[7]1517; AVX-NEXT:    vpshufhw {{.*#+}} xmm12 = xmm7[0,1,2,3,4,6,6,7]1518; AVX-NEXT:    vpshufd {{.*#+}} xmm12 = xmm12[0,2,2,3]1519; AVX-NEXT:    vpshufhw {{.*#+}} xmm14 = xmm10[0,1,2,3,6,5,7,7]1520; AVX-NEXT:    vpshufd {{.*#+}} xmm14 = xmm14[0,2,2,3]1521; AVX-NEXT:    vpblendw {{.*#+}} xmm12 = xmm14[0,1,2],xmm12[3],xmm14[4,5,6],xmm12[7]1522; AVX-NEXT:    vpshufhw {{.*#+}} xmm7 = xmm7[0,1,2,3,4,4,6,5]1523; AVX-NEXT:    vpshufd {{.*#+}} xmm7 = xmm7[0,2,2,3]1524; AVX-NEXT:    vpshufhw {{.*#+}} xmm10 = xmm10[0,1,2,3,4,5,5,7]1525; AVX-NEXT:    vpshufd {{.*#+}} xmm10 = xmm10[0,2,2,3]1526; AVX-NEXT:    vpblendw {{.*#+}} xmm7 = xmm10[0,1,2],xmm7[3],xmm10[4,5,6],xmm7[7]1527; AVX-NEXT:    vinsertf128 $1, %xmm12, %ymm7, %ymm71528; AVX-NEXT:    vpshufhw {{.*#+}} xmm10 = xmm11[0,1,2,3,4,6,6,7]1529; AVX-NEXT:    vpshufd {{.*#+}} xmm10 = xmm10[2,1,3,3]1530; AVX-NEXT:    vpshufd {{.*#+}} xmm12 = xmm13[3,3,3,3]1531; AVX-NEXT:    vpmovzxwq {{.*#+}} xmm12 = xmm12[0],zero,zero,zero,xmm12[1],zero,zero,zero1532; AVX-NEXT:    vpblendw {{.*#+}} xmm10 = xmm12[0],xmm10[1],xmm12[2,3,4],xmm10[5],xmm12[6,7]1533; AVX-NEXT:    vpshufhw {{.*#+}} xmm11 = xmm11[0,1,2,3,4,4,6,5]1534; AVX-NEXT:    vpshufd {{.*#+}} xmm11 = xmm11[2,1,3,3]1535; AVX-NEXT:    vpshufd {{.*#+}} xmm12 = xmm13[2,3,2,3]1536; AVX-NEXT:    vpmovzxwq {{.*#+}} xmm12 = xmm12[0],zero,zero,zero,xmm12[1],zero,zero,zero1537; AVX-NEXT:    vpblendw {{.*#+}} xmm11 = xmm12[0],xmm11[1],xmm12[2,3,4],xmm11[5],xmm12[6,7]1538; AVX-NEXT:    vinsertf128 $1, %xmm10, %ymm11, %ymm101539; AVX-NEXT:    vblendps {{.*#+}} ymm7 = ymm10[0],ymm7[1],ymm10[2],ymm7[3],ymm10[4],ymm7[5],ymm10[6],ymm7[7]1540; AVX-NEXT:    vpunpckhbw {{.*#+}} xmm8 = xmm8[8],xmm9[8],xmm8[9],xmm9[9],xmm8[10],xmm9[10],xmm8[11],xmm9[11],xmm8[12],xmm9[12],xmm8[13],xmm9[13],xmm8[14],xmm9[14],xmm8[15],xmm9[15]1541; AVX-NEXT:    vpshuflw {{.*#+}} xmm9 = xmm8[0,2,2,3,4,5,6,7]1542; AVX-NEXT:    vpshufd {{.*#+}} xmm9 = xmm9[0,0,2,1]1543; AVX-NEXT:    vpunpckhbw {{.*#+}} xmm5 = xmm5[8],xmm6[8],xmm5[9],xmm6[9],xmm5[10],xmm6[10],xmm5[11],xmm6[11],xmm5[12],xmm6[12],xmm5[13],xmm6[13],xmm5[14],xmm6[14],xmm5[15],xmm6[15]1544; AVX-NEXT:    vpshuflw {{.*#+}} xmm6 = xmm5[2,1,3,3,4,5,6,7]1545; AVX-NEXT:    vpshufd {{.*#+}} xmm6 = xmm6[0,0,2,1]1546; AVX-NEXT:    vpblendw {{.*#+}} xmm6 = xmm6[0,1,2],xmm9[3],xmm6[4,5,6],xmm9[7]1547; AVX-NEXT:    vpshuflw {{.*#+}} xmm9 = xmm8[0,0,2,1,4,5,6,7]1548; AVX-NEXT:    vpshufd {{.*#+}} xmm9 = xmm9[0,0,2,1]1549; AVX-NEXT:    vpshuflw {{.*#+}} xmm10 = xmm5[0,1,1,3,4,5,6,7]1550; AVX-NEXT:    vpshufd {{.*#+}} xmm10 = xmm10[0,0,2,1]1551; AVX-NEXT:    vpblendw {{.*#+}} xmm9 = xmm10[0,1,2],xmm9[3],xmm10[4,5,6],xmm9[7]1552; AVX-NEXT:    vinsertf128 $1, %xmm6, %ymm9, %ymm61553; AVX-NEXT:    vpunpckhbw {{.*#+}} xmm3 = xmm3[8],xmm4[8],xmm3[9],xmm4[9],xmm3[10],xmm4[10],xmm3[11],xmm4[11],xmm3[12],xmm4[12],xmm3[13],xmm4[13],xmm3[14],xmm4[14],xmm3[15],xmm4[15]1554; AVX-NEXT:    vpshuflw {{.*#+}} xmm4 = xmm3[0,2,2,3,4,5,6,7]1555; AVX-NEXT:    vpmovzxdq {{.*#+}} xmm4 = xmm4[0],zero,xmm4[1],zero1556; AVX-NEXT:    vpunpckhbw {{.*#+}} xmm1 = 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]1557; AVX-NEXT:    vpshufd {{.*#+}} xmm2 = xmm1[1,1,1,1]1558; AVX-NEXT:    vpmovzxwq {{.*#+}} xmm2 = xmm2[0],zero,zero,zero,xmm2[1],zero,zero,zero1559; AVX-NEXT:    vpblendw {{.*#+}} xmm2 = xmm2[0],xmm4[1],xmm2[2,3,4],xmm4[5],xmm2[6,7]1560; AVX-NEXT:    vpmovzxwq {{.*#+}} xmm4 = xmm1[0],zero,zero,zero,xmm1[1],zero,zero,zero1561; AVX-NEXT:    vpshuflw {{.*#+}} xmm9 = xmm3[0,0,2,1,4,5,6,7]1562; AVX-NEXT:    vpmovzxdq {{.*#+}} xmm9 = xmm9[0],zero,xmm9[1],zero1563; AVX-NEXT:    vpblendw {{.*#+}} xmm4 = xmm4[0],xmm9[1],xmm4[2,3,4],xmm9[5],xmm4[6,7]1564; AVX-NEXT:    vinsertf128 $1, %xmm2, %ymm4, %ymm21565; AVX-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0],ymm6[1],ymm2[2],ymm6[3],ymm2[4],ymm6[5],ymm2[6],ymm6[7]1566; AVX-NEXT:    vpshufhw {{.*#+}} xmm4 = xmm8[0,1,2,3,4,6,6,7]1567; AVX-NEXT:    vpshufd {{.*#+}} xmm4 = xmm4[0,2,2,3]1568; AVX-NEXT:    vpshufhw {{.*#+}} xmm6 = xmm5[0,1,2,3,6,5,7,7]1569; AVX-NEXT:    vpshufd {{.*#+}} xmm6 = xmm6[0,2,2,3]1570; AVX-NEXT:    vpblendw {{.*#+}} xmm4 = xmm6[0,1,2],xmm4[3],xmm6[4,5,6],xmm4[7]1571; AVX-NEXT:    vpshufhw {{.*#+}} xmm6 = xmm8[0,1,2,3,4,4,6,5]1572; AVX-NEXT:    vpshufd {{.*#+}} xmm6 = xmm6[0,2,2,3]1573; AVX-NEXT:    vpshufhw {{.*#+}} xmm5 = xmm5[0,1,2,3,4,5,5,7]1574; AVX-NEXT:    vpshufd {{.*#+}} xmm5 = xmm5[0,2,2,3]1575; AVX-NEXT:    vpblendw {{.*#+}} xmm5 = xmm5[0,1,2],xmm6[3],xmm5[4,5,6],xmm6[7]1576; AVX-NEXT:    vinsertf128 $1, %xmm4, %ymm5, %ymm41577; AVX-NEXT:    vpshufhw {{.*#+}} xmm5 = xmm3[0,1,2,3,4,6,6,7]1578; AVX-NEXT:    vpshufd {{.*#+}} xmm5 = xmm5[2,1,3,3]1579; AVX-NEXT:    vpshufd {{.*#+}} xmm6 = xmm1[3,3,3,3]1580; AVX-NEXT:    vpmovzxwq {{.*#+}} xmm6 = xmm6[0],zero,zero,zero,xmm6[1],zero,zero,zero1581; AVX-NEXT:    vpblendw {{.*#+}} xmm5 = xmm6[0],xmm5[1],xmm6[2,3,4],xmm5[5],xmm6[6,7]1582; AVX-NEXT:    vpshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,4,4,6,5]1583; AVX-NEXT:    vpshufd {{.*#+}} xmm3 = xmm3[2,1,3,3]1584; AVX-NEXT:    vpshufd {{.*#+}} xmm1 = xmm1[2,3,2,3]1585; AVX-NEXT:    vpmovzxwq {{.*#+}} xmm1 = xmm1[0],zero,zero,zero,xmm1[1],zero,zero,zero1586; AVX-NEXT:    vpblendw {{.*#+}} xmm1 = xmm1[0],xmm3[1],xmm1[2,3,4],xmm3[5],xmm1[6,7]1587; AVX-NEXT:    vinsertf128 $1, %xmm5, %ymm1, %ymm11588; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0],ymm4[1],ymm1[2],ymm4[3],ymm1[4],ymm4[5],ymm1[6],ymm4[7]1589; AVX-NEXT:    vmovaps %ymm1, 96(%rax)1590; AVX-NEXT:    vmovaps %ymm2, 64(%rax)1591; AVX-NEXT:    vmovaps %ymm7, 32(%rax)1592; AVX-NEXT:    vmovaps %ymm0, (%rax)1593; AVX-NEXT:    vzeroupper1594; AVX-NEXT:    retq1595;1596; AVX2-LABEL: store_i8_stride8_vf16:1597; AVX2:       # %bb.0:1598; AVX2-NEXT:    movq {{[0-9]+}}(%rsp), %rax1599; AVX2-NEXT:    movq {{[0-9]+}}(%rsp), %r101600; AVX2-NEXT:    movq {{[0-9]+}}(%rsp), %r111601; AVX2-NEXT:    vmovdqa (%rdi), %xmm01602; AVX2-NEXT:    vmovdqa (%rdx), %xmm11603; AVX2-NEXT:    vmovdqa (%r8), %xmm21604; AVX2-NEXT:    vmovdqa (%r11), %xmm31605; AVX2-NEXT:    vinserti128 $1, (%rsi), %ymm0, %ymm01606; AVX2-NEXT:    vinserti128 $1, (%rcx), %ymm1, %ymm11607; AVX2-NEXT:    vinserti128 $1, (%r9), %ymm2, %ymm41608; AVX2-NEXT:    vinserti128 $1, (%r10), %ymm3, %ymm31609; AVX2-NEXT:    vpermq {{.*#+}} ymm5 = ymm3[0,2,0,2]1610; AVX2-NEXT:    vmovdqa {{.*#+}} ymm6 = [u,u,u,u,u,u,0,8,u,u,u,u,u,u,1,9,u,u,u,u,u,u,2,10,u,u,u,u,u,u,3,11]1611; AVX2-NEXT:    vpshufb %ymm6, %ymm5, %ymm21612; AVX2-NEXT:    vpermq {{.*#+}} ymm7 = ymm4[0,2,0,2]1613; AVX2-NEXT:    vpmovsxwd {{.*#+}} ymm8 = [0,2048,0,2305,0,2562,0,2819]1614; AVX2-NEXT:    vpshufb %ymm8, %ymm7, %ymm91615; AVX2-NEXT:    vpblendw {{.*#+}} ymm2 = ymm9[0,1,2],ymm2[3],ymm9[4,5,6],ymm2[7],ymm9[8,9,10],ymm2[11],ymm9[12,13,14],ymm2[15]1616; AVX2-NEXT:    vpermq {{.*#+}} ymm9 = ymm1[0,2,0,2]1617; AVX2-NEXT:    vpmovsxdq {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm101618; AVX2-NEXT:    vpshufb %ymm10, %ymm9, %ymm111619; AVX2-NEXT:    vpermq {{.*#+}} ymm12 = ymm0[0,2,0,2]1620; AVX2-NEXT:    vpmovsxwq {{.*#+}} ymm13 = [2048,2305,2562,2819]1621; AVX2-NEXT:    vpshufb %ymm13, %ymm12, %ymm141622; AVX2-NEXT:    vpblendw {{.*#+}} ymm11 = ymm14[0],ymm11[1],ymm14[2,3,4],ymm11[5],ymm14[6,7,8],ymm11[9],ymm14[10,11,12],ymm11[13],ymm14[14,15]1623; AVX2-NEXT:    vpblendd {{.*#+}} ymm2 = ymm11[0],ymm2[1],ymm11[2],ymm2[3],ymm11[4],ymm2[5],ymm11[6],ymm2[7]1624; AVX2-NEXT:    vmovdqa {{.*#+}} ymm11 = [u,u,u,u,u,u,4,12,u,u,u,u,u,u,5,13,u,u,u,u,u,u,6,14,u,u,u,u,u,u,7,15]1625; AVX2-NEXT:    vpshufb %ymm11, %ymm5, %ymm51626; AVX2-NEXT:    vpmovsxwd {{.*#+}} ymm14 = [0,3076,0,3333,0,3590,0,3847]1627; AVX2-NEXT:    vpshufb %ymm14, %ymm7, %ymm71628; AVX2-NEXT:    vpblendw {{.*#+}} ymm5 = ymm7[0,1,2],ymm5[3],ymm7[4,5,6],ymm5[7],ymm7[8,9,10],ymm5[11],ymm7[12,13,14],ymm5[15]1629; AVX2-NEXT:    vpmovsxdq {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm71630; AVX2-NEXT:    vpshufb %ymm7, %ymm9, %ymm91631; AVX2-NEXT:    vpmovsxwq {{.*#+}} ymm15 = [3076,3333,3590,3847]1632; AVX2-NEXT:    vpshufb %ymm15, %ymm12, %ymm121633; AVX2-NEXT:    vpblendw {{.*#+}} ymm9 = ymm12[0],ymm9[1],ymm12[2,3,4],ymm9[5],ymm12[6,7,8],ymm9[9],ymm12[10,11,12],ymm9[13],ymm12[14,15]1634; AVX2-NEXT:    vpblendd {{.*#+}} ymm5 = ymm9[0],ymm5[1],ymm9[2],ymm5[3],ymm9[4],ymm5[5],ymm9[6],ymm5[7]1635; AVX2-NEXT:    vpermq {{.*#+}} ymm3 = ymm3[1,3,1,3]1636; AVX2-NEXT:    vpshufb %ymm6, %ymm3, %ymm61637; AVX2-NEXT:    vpermq {{.*#+}} ymm4 = ymm4[1,3,1,3]1638; AVX2-NEXT:    vpshufb %ymm8, %ymm4, %ymm81639; AVX2-NEXT:    vpblendw {{.*#+}} ymm6 = ymm8[0,1,2],ymm6[3],ymm8[4,5,6],ymm6[7],ymm8[8,9,10],ymm6[11],ymm8[12,13,14],ymm6[15]1640; AVX2-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[1,3,1,3]1641; AVX2-NEXT:    vpshufb %ymm10, %ymm1, %ymm81642; AVX2-NEXT:    vpermq {{.*#+}} ymm0 = ymm0[1,3,1,3]1643; AVX2-NEXT:    vpshufb %ymm13, %ymm0, %ymm91644; AVX2-NEXT:    vpblendw {{.*#+}} ymm8 = ymm9[0],ymm8[1],ymm9[2,3,4],ymm8[5],ymm9[6,7,8],ymm8[9],ymm9[10,11,12],ymm8[13],ymm9[14,15]1645; AVX2-NEXT:    vpblendd {{.*#+}} ymm6 = ymm8[0],ymm6[1],ymm8[2],ymm6[3],ymm8[4],ymm6[5],ymm8[6],ymm6[7]1646; AVX2-NEXT:    vpshufb %ymm11, %ymm3, %ymm31647; AVX2-NEXT:    vpshufb %ymm14, %ymm4, %ymm41648; AVX2-NEXT:    vpblendw {{.*#+}} ymm3 = ymm4[0,1,2],ymm3[3],ymm4[4,5,6],ymm3[7],ymm4[8,9,10],ymm3[11],ymm4[12,13,14],ymm3[15]1649; AVX2-NEXT:    vpshufb %ymm7, %ymm1, %ymm11650; AVX2-NEXT:    vpshufb %ymm15, %ymm0, %ymm01651; AVX2-NEXT:    vpblendw {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2,3,4],ymm1[5],ymm0[6,7,8],ymm1[9],ymm0[10,11,12],ymm1[13],ymm0[14,15]1652; AVX2-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0],ymm3[1],ymm0[2],ymm3[3],ymm0[4],ymm3[5],ymm0[6],ymm3[7]1653; AVX2-NEXT:    vmovdqa %ymm0, 96(%rax)1654; AVX2-NEXT:    vmovdqa %ymm6, 64(%rax)1655; AVX2-NEXT:    vmovdqa %ymm5, 32(%rax)1656; AVX2-NEXT:    vmovdqa %ymm2, (%rax)1657; AVX2-NEXT:    vzeroupper1658; AVX2-NEXT:    retq1659;1660; AVX2-FP-LABEL: store_i8_stride8_vf16:1661; AVX2-FP:       # %bb.0:1662; AVX2-FP-NEXT:    movq {{[0-9]+}}(%rsp), %rax1663; AVX2-FP-NEXT:    movq {{[0-9]+}}(%rsp), %r101664; AVX2-FP-NEXT:    movq {{[0-9]+}}(%rsp), %r111665; AVX2-FP-NEXT:    vmovdqa (%rdi), %xmm01666; AVX2-FP-NEXT:    vmovdqa (%rdx), %xmm11667; AVX2-FP-NEXT:    vmovdqa (%r8), %xmm21668; AVX2-FP-NEXT:    vmovdqa (%r11), %xmm31669; AVX2-FP-NEXT:    vinserti128 $1, (%rsi), %ymm0, %ymm01670; AVX2-FP-NEXT:    vinserti128 $1, (%rcx), %ymm1, %ymm11671; AVX2-FP-NEXT:    vinserti128 $1, (%r9), %ymm2, %ymm41672; AVX2-FP-NEXT:    vinserti128 $1, (%r10), %ymm3, %ymm31673; AVX2-FP-NEXT:    vpermq {{.*#+}} ymm5 = ymm3[0,2,0,2]1674; AVX2-FP-NEXT:    vmovdqa {{.*#+}} ymm6 = [u,u,u,u,u,u,0,8,u,u,u,u,u,u,1,9,u,u,u,u,u,u,2,10,u,u,u,u,u,u,3,11]1675; AVX2-FP-NEXT:    vpshufb %ymm6, %ymm5, %ymm21676; AVX2-FP-NEXT:    vpermq {{.*#+}} ymm7 = ymm4[0,2,0,2]1677; AVX2-FP-NEXT:    vpmovsxwd {{.*#+}} ymm8 = [0,2048,0,2305,0,2562,0,2819]1678; AVX2-FP-NEXT:    vpshufb %ymm8, %ymm7, %ymm91679; AVX2-FP-NEXT:    vpblendw {{.*#+}} ymm2 = ymm9[0,1,2],ymm2[3],ymm9[4,5,6],ymm2[7],ymm9[8,9,10],ymm2[11],ymm9[12,13,14],ymm2[15]1680; AVX2-FP-NEXT:    vpermq {{.*#+}} ymm9 = ymm1[0,2,0,2]1681; AVX2-FP-NEXT:    vpmovsxdq {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm101682; AVX2-FP-NEXT:    vpshufb %ymm10, %ymm9, %ymm111683; AVX2-FP-NEXT:    vpermq {{.*#+}} ymm12 = ymm0[0,2,0,2]1684; AVX2-FP-NEXT:    vpmovsxwq {{.*#+}} ymm13 = [2048,2305,2562,2819]1685; AVX2-FP-NEXT:    vpshufb %ymm13, %ymm12, %ymm141686; AVX2-FP-NEXT:    vpblendw {{.*#+}} ymm11 = ymm14[0],ymm11[1],ymm14[2,3,4],ymm11[5],ymm14[6,7,8],ymm11[9],ymm14[10,11,12],ymm11[13],ymm14[14,15]1687; AVX2-FP-NEXT:    vpblendd {{.*#+}} ymm2 = ymm11[0],ymm2[1],ymm11[2],ymm2[3],ymm11[4],ymm2[5],ymm11[6],ymm2[7]1688; AVX2-FP-NEXT:    vmovdqa {{.*#+}} ymm11 = [u,u,u,u,u,u,4,12,u,u,u,u,u,u,5,13,u,u,u,u,u,u,6,14,u,u,u,u,u,u,7,15]1689; AVX2-FP-NEXT:    vpshufb %ymm11, %ymm5, %ymm51690; AVX2-FP-NEXT:    vpmovsxwd {{.*#+}} ymm14 = [0,3076,0,3333,0,3590,0,3847]1691; AVX2-FP-NEXT:    vpshufb %ymm14, %ymm7, %ymm71692; AVX2-FP-NEXT:    vpblendw {{.*#+}} ymm5 = ymm7[0,1,2],ymm5[3],ymm7[4,5,6],ymm5[7],ymm7[8,9,10],ymm5[11],ymm7[12,13,14],ymm5[15]1693; AVX2-FP-NEXT:    vpmovsxdq {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm71694; AVX2-FP-NEXT:    vpshufb %ymm7, %ymm9, %ymm91695; AVX2-FP-NEXT:    vpmovsxwq {{.*#+}} ymm15 = [3076,3333,3590,3847]1696; AVX2-FP-NEXT:    vpshufb %ymm15, %ymm12, %ymm121697; AVX2-FP-NEXT:    vpblendw {{.*#+}} ymm9 = ymm12[0],ymm9[1],ymm12[2,3,4],ymm9[5],ymm12[6,7,8],ymm9[9],ymm12[10,11,12],ymm9[13],ymm12[14,15]1698; AVX2-FP-NEXT:    vpblendd {{.*#+}} ymm5 = ymm9[0],ymm5[1],ymm9[2],ymm5[3],ymm9[4],ymm5[5],ymm9[6],ymm5[7]1699; AVX2-FP-NEXT:    vpermq {{.*#+}} ymm3 = ymm3[1,3,1,3]1700; AVX2-FP-NEXT:    vpshufb %ymm6, %ymm3, %ymm61701; AVX2-FP-NEXT:    vpermq {{.*#+}} ymm4 = ymm4[1,3,1,3]1702; AVX2-FP-NEXT:    vpshufb %ymm8, %ymm4, %ymm81703; AVX2-FP-NEXT:    vpblendw {{.*#+}} ymm6 = ymm8[0,1,2],ymm6[3],ymm8[4,5,6],ymm6[7],ymm8[8,9,10],ymm6[11],ymm8[12,13,14],ymm6[15]1704; AVX2-FP-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[1,3,1,3]1705; AVX2-FP-NEXT:    vpshufb %ymm10, %ymm1, %ymm81706; AVX2-FP-NEXT:    vpermq {{.*#+}} ymm0 = ymm0[1,3,1,3]1707; AVX2-FP-NEXT:    vpshufb %ymm13, %ymm0, %ymm91708; AVX2-FP-NEXT:    vpblendw {{.*#+}} ymm8 = ymm9[0],ymm8[1],ymm9[2,3,4],ymm8[5],ymm9[6,7,8],ymm8[9],ymm9[10,11,12],ymm8[13],ymm9[14,15]1709; AVX2-FP-NEXT:    vpblendd {{.*#+}} ymm6 = ymm8[0],ymm6[1],ymm8[2],ymm6[3],ymm8[4],ymm6[5],ymm8[6],ymm6[7]1710; AVX2-FP-NEXT:    vpshufb %ymm11, %ymm3, %ymm31711; AVX2-FP-NEXT:    vpshufb %ymm14, %ymm4, %ymm41712; AVX2-FP-NEXT:    vpblendw {{.*#+}} ymm3 = ymm4[0,1,2],ymm3[3],ymm4[4,5,6],ymm3[7],ymm4[8,9,10],ymm3[11],ymm4[12,13,14],ymm3[15]1713; AVX2-FP-NEXT:    vpshufb %ymm7, %ymm1, %ymm11714; AVX2-FP-NEXT:    vpshufb %ymm15, %ymm0, %ymm01715; AVX2-FP-NEXT:    vpblendw {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2,3,4],ymm1[5],ymm0[6,7,8],ymm1[9],ymm0[10,11,12],ymm1[13],ymm0[14,15]1716; AVX2-FP-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0],ymm3[1],ymm0[2],ymm3[3],ymm0[4],ymm3[5],ymm0[6],ymm3[7]1717; AVX2-FP-NEXT:    vmovdqa %ymm0, 96(%rax)1718; AVX2-FP-NEXT:    vmovdqa %ymm6, 64(%rax)1719; AVX2-FP-NEXT:    vmovdqa %ymm5, 32(%rax)1720; AVX2-FP-NEXT:    vmovdqa %ymm2, (%rax)1721; AVX2-FP-NEXT:    vzeroupper1722; AVX2-FP-NEXT:    retq1723;1724; AVX2-FCP-LABEL: store_i8_stride8_vf16:1725; AVX2-FCP:       # %bb.0:1726; AVX2-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax1727; AVX2-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r101728; AVX2-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r111729; AVX2-FCP-NEXT:    vmovdqa (%rdi), %xmm01730; AVX2-FCP-NEXT:    vmovdqa (%rdx), %xmm11731; AVX2-FCP-NEXT:    vmovdqa (%r8), %xmm21732; AVX2-FCP-NEXT:    vmovdqa (%r11), %xmm31733; AVX2-FCP-NEXT:    vinserti128 $1, (%rsi), %ymm0, %ymm01734; AVX2-FCP-NEXT:    vinserti128 $1, (%rcx), %ymm1, %ymm11735; AVX2-FCP-NEXT:    vinserti128 $1, (%r9), %ymm2, %ymm41736; AVX2-FCP-NEXT:    vinserti128 $1, (%r10), %ymm3, %ymm31737; AVX2-FCP-NEXT:    vpermq {{.*#+}} ymm5 = ymm3[0,2,0,2]1738; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} ymm6 = [u,u,u,u,u,u,0,8,u,u,u,u,u,u,1,9,u,u,u,u,u,u,2,10,u,u,u,u,u,u,3,11]1739; AVX2-FCP-NEXT:    vpshufb %ymm6, %ymm5, %ymm21740; AVX2-FCP-NEXT:    vpermq {{.*#+}} ymm7 = ymm4[0,2,0,2]1741; AVX2-FCP-NEXT:    vpmovsxwd {{.*#+}} ymm8 = [0,2048,0,2305,0,2562,0,2819]1742; AVX2-FCP-NEXT:    vpshufb %ymm8, %ymm7, %ymm91743; AVX2-FCP-NEXT:    vpblendw {{.*#+}} ymm2 = ymm9[0,1,2],ymm2[3],ymm9[4,5,6],ymm2[7],ymm9[8,9,10],ymm2[11],ymm9[12,13,14],ymm2[15]1744; AVX2-FCP-NEXT:    vpermq {{.*#+}} ymm9 = ymm1[0,2,0,2]1745; AVX2-FCP-NEXT:    vpmovsxdq {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm101746; AVX2-FCP-NEXT:    vpshufb %ymm10, %ymm9, %ymm111747; AVX2-FCP-NEXT:    vpermq {{.*#+}} ymm12 = ymm0[0,2,0,2]1748; AVX2-FCP-NEXT:    vpmovsxwq {{.*#+}} ymm13 = [2048,2305,2562,2819]1749; AVX2-FCP-NEXT:    vpshufb %ymm13, %ymm12, %ymm141750; AVX2-FCP-NEXT:    vpblendw {{.*#+}} ymm11 = ymm14[0],ymm11[1],ymm14[2,3,4],ymm11[5],ymm14[6,7,8],ymm11[9],ymm14[10,11,12],ymm11[13],ymm14[14,15]1751; AVX2-FCP-NEXT:    vpblendd {{.*#+}} ymm2 = ymm11[0],ymm2[1],ymm11[2],ymm2[3],ymm11[4],ymm2[5],ymm11[6],ymm2[7]1752; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} ymm11 = [u,u,u,u,u,u,4,12,u,u,u,u,u,u,5,13,u,u,u,u,u,u,6,14,u,u,u,u,u,u,7,15]1753; AVX2-FCP-NEXT:    vpshufb %ymm11, %ymm5, %ymm51754; AVX2-FCP-NEXT:    vpmovsxwd {{.*#+}} ymm14 = [0,3076,0,3333,0,3590,0,3847]1755; AVX2-FCP-NEXT:    vpshufb %ymm14, %ymm7, %ymm71756; AVX2-FCP-NEXT:    vpblendw {{.*#+}} ymm5 = ymm7[0,1,2],ymm5[3],ymm7[4,5,6],ymm5[7],ymm7[8,9,10],ymm5[11],ymm7[12,13,14],ymm5[15]1757; AVX2-FCP-NEXT:    vpmovsxdq {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm71758; AVX2-FCP-NEXT:    vpshufb %ymm7, %ymm9, %ymm91759; AVX2-FCP-NEXT:    vpmovsxwq {{.*#+}} ymm15 = [3076,3333,3590,3847]1760; AVX2-FCP-NEXT:    vpshufb %ymm15, %ymm12, %ymm121761; AVX2-FCP-NEXT:    vpblendw {{.*#+}} ymm9 = ymm12[0],ymm9[1],ymm12[2,3,4],ymm9[5],ymm12[6,7,8],ymm9[9],ymm12[10,11,12],ymm9[13],ymm12[14,15]1762; AVX2-FCP-NEXT:    vpblendd {{.*#+}} ymm5 = ymm9[0],ymm5[1],ymm9[2],ymm5[3],ymm9[4],ymm5[5],ymm9[6],ymm5[7]1763; AVX2-FCP-NEXT:    vpermq {{.*#+}} ymm3 = ymm3[1,3,1,3]1764; AVX2-FCP-NEXT:    vpshufb %ymm6, %ymm3, %ymm61765; AVX2-FCP-NEXT:    vpermq {{.*#+}} ymm4 = ymm4[1,3,1,3]1766; AVX2-FCP-NEXT:    vpshufb %ymm8, %ymm4, %ymm81767; AVX2-FCP-NEXT:    vpblendw {{.*#+}} ymm6 = ymm8[0,1,2],ymm6[3],ymm8[4,5,6],ymm6[7],ymm8[8,9,10],ymm6[11],ymm8[12,13,14],ymm6[15]1768; AVX2-FCP-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[1,3,1,3]1769; AVX2-FCP-NEXT:    vpshufb %ymm10, %ymm1, %ymm81770; AVX2-FCP-NEXT:    vpermq {{.*#+}} ymm0 = ymm0[1,3,1,3]1771; AVX2-FCP-NEXT:    vpshufb %ymm13, %ymm0, %ymm91772; AVX2-FCP-NEXT:    vpblendw {{.*#+}} ymm8 = ymm9[0],ymm8[1],ymm9[2,3,4],ymm8[5],ymm9[6,7,8],ymm8[9],ymm9[10,11,12],ymm8[13],ymm9[14,15]1773; AVX2-FCP-NEXT:    vpblendd {{.*#+}} ymm6 = ymm8[0],ymm6[1],ymm8[2],ymm6[3],ymm8[4],ymm6[5],ymm8[6],ymm6[7]1774; AVX2-FCP-NEXT:    vpshufb %ymm11, %ymm3, %ymm31775; AVX2-FCP-NEXT:    vpshufb %ymm14, %ymm4, %ymm41776; AVX2-FCP-NEXT:    vpblendw {{.*#+}} ymm3 = ymm4[0,1,2],ymm3[3],ymm4[4,5,6],ymm3[7],ymm4[8,9,10],ymm3[11],ymm4[12,13,14],ymm3[15]1777; AVX2-FCP-NEXT:    vpshufb %ymm7, %ymm1, %ymm11778; AVX2-FCP-NEXT:    vpshufb %ymm15, %ymm0, %ymm01779; AVX2-FCP-NEXT:    vpblendw {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2,3,4],ymm1[5],ymm0[6,7,8],ymm1[9],ymm0[10,11,12],ymm1[13],ymm0[14,15]1780; AVX2-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0],ymm3[1],ymm0[2],ymm3[3],ymm0[4],ymm3[5],ymm0[6],ymm3[7]1781; AVX2-FCP-NEXT:    vmovdqa %ymm0, 96(%rax)1782; AVX2-FCP-NEXT:    vmovdqa %ymm6, 64(%rax)1783; AVX2-FCP-NEXT:    vmovdqa %ymm5, 32(%rax)1784; AVX2-FCP-NEXT:    vmovdqa %ymm2, (%rax)1785; AVX2-FCP-NEXT:    vzeroupper1786; AVX2-FCP-NEXT:    retq1787;1788; AVX512-LABEL: store_i8_stride8_vf16:1789; AVX512:       # %bb.0:1790; AVX512-NEXT:    movq {{[0-9]+}}(%rsp), %rax1791; AVX512-NEXT:    movq {{[0-9]+}}(%rsp), %r101792; AVX512-NEXT:    movq {{[0-9]+}}(%rsp), %r111793; AVX512-NEXT:    vmovdqa (%rdi), %xmm11794; AVX512-NEXT:    vmovdqa (%rdx), %xmm21795; AVX512-NEXT:    vmovdqa (%r8), %xmm31796; AVX512-NEXT:    vmovdqa (%r11), %xmm01797; AVX512-NEXT:    vinserti128 $1, (%r10), %ymm0, %ymm41798; AVX512-NEXT:    vpermq {{.*#+}} ymm5 = ymm4[0,2,0,2]1799; AVX512-NEXT:    vmovdqa {{.*#+}} ymm0 = [u,u,u,u,u,u,4,12,u,u,u,u,u,u,5,13,u,u,u,u,u,u,6,14,u,u,u,u,u,u,7,15]1800; AVX512-NEXT:    vpshufb %ymm0, %ymm5, %ymm61801; AVX512-NEXT:    vinserti128 $1, (%r9), %ymm3, %ymm31802; AVX512-NEXT:    vpermq {{.*#+}} ymm7 = ymm3[0,2,0,2]1803; AVX512-NEXT:    vpmovsxwd {{.*#+}} ymm8 = [0,3076,0,3333,0,3590,0,3847]1804; AVX512-NEXT:    vpshufb %ymm8, %ymm7, %ymm91805; AVX512-NEXT:    vpblendw {{.*#+}} ymm6 = ymm9[0,1,2],ymm6[3],ymm9[4,5,6],ymm6[7],ymm9[8,9,10],ymm6[11],ymm9[12,13,14],ymm6[15]1806; AVX512-NEXT:    vinserti128 $1, (%rcx), %ymm2, %ymm21807; AVX512-NEXT:    vpermq {{.*#+}} ymm9 = ymm2[0,2,0,2]1808; AVX512-NEXT:    vpmovsxdq {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm101809; AVX512-NEXT:    vpshufb %ymm10, %ymm9, %ymm111810; AVX512-NEXT:    vinserti128 $1, (%rsi), %ymm1, %ymm11811; AVX512-NEXT:    vpermq {{.*#+}} ymm12 = ymm1[0,2,0,2]1812; AVX512-NEXT:    vpmovsxwq {{.*#+}} ymm13 = [3076,3333,3590,3847]1813; AVX512-NEXT:    vpshufb %ymm13, %ymm12, %ymm141814; AVX512-NEXT:    vpblendw {{.*#+}} ymm11 = ymm14[0],ymm11[1],ymm14[2,3,4],ymm11[5],ymm14[6,7,8],ymm11[9],ymm14[10,11,12],ymm11[13],ymm14[14,15]1815; AVX512-NEXT:    vpblendd {{.*#+}} ymm6 = ymm11[0],ymm6[1],ymm11[2],ymm6[3],ymm11[4],ymm6[5],ymm11[6],ymm6[7]1816; AVX512-NEXT:    vmovdqa {{.*#+}} ymm11 = [u,u,u,u,u,u,0,8,u,u,u,u,u,u,1,9,u,u,u,u,u,u,2,10,u,u,u,u,u,u,3,11]1817; AVX512-NEXT:    vpshufb %ymm11, %ymm5, %ymm51818; AVX512-NEXT:    vpmovsxwd {{.*#+}} ymm14 = [0,2048,0,2305,0,2562,0,2819]1819; AVX512-NEXT:    vpshufb %ymm14, %ymm7, %ymm71820; AVX512-NEXT:    vpblendw {{.*#+}} ymm5 = ymm7[0,1,2],ymm5[3],ymm7[4,5,6],ymm5[7],ymm7[8,9,10],ymm5[11],ymm7[12,13,14],ymm5[15]1821; AVX512-NEXT:    vpmovsxdq {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm71822; AVX512-NEXT:    vpshufb %ymm7, %ymm9, %ymm91823; AVX512-NEXT:    vpmovsxwq {{.*#+}} ymm15 = [2048,2305,2562,2819]1824; AVX512-NEXT:    vpshufb %ymm15, %ymm12, %ymm121825; AVX512-NEXT:    vpblendw {{.*#+}} ymm9 = ymm12[0],ymm9[1],ymm12[2,3,4],ymm9[5],ymm12[6,7,8],ymm9[9],ymm12[10,11,12],ymm9[13],ymm12[14,15]1826; AVX512-NEXT:    vpblendd {{.*#+}} ymm5 = ymm9[0],ymm5[1],ymm9[2],ymm5[3],ymm9[4],ymm5[5],ymm9[6],ymm5[7]1827; AVX512-NEXT:    vinserti64x4 $1, %ymm6, %zmm5, %zmm51828; AVX512-NEXT:    vpermq {{.*#+}} ymm4 = ymm4[1,3,1,3]1829; AVX512-NEXT:    vpshufb %ymm0, %ymm4, %ymm01830; AVX512-NEXT:    vpermq {{.*#+}} ymm3 = ymm3[1,3,1,3]1831; AVX512-NEXT:    vpshufb %ymm8, %ymm3, %ymm61832; AVX512-NEXT:    vpblendw {{.*#+}} ymm0 = ymm6[0,1,2],ymm0[3],ymm6[4,5,6],ymm0[7],ymm6[8,9,10],ymm0[11],ymm6[12,13,14],ymm0[15]1833; AVX512-NEXT:    vpermq {{.*#+}} ymm2 = ymm2[1,3,1,3]1834; AVX512-NEXT:    vpshufb %ymm10, %ymm2, %ymm61835; AVX512-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[1,3,1,3]1836; AVX512-NEXT:    vpshufb %ymm13, %ymm1, %ymm81837; AVX512-NEXT:    vpblendw {{.*#+}} ymm6 = ymm8[0],ymm6[1],ymm8[2,3,4],ymm6[5],ymm8[6,7,8],ymm6[9],ymm8[10,11,12],ymm6[13],ymm8[14,15]1838; AVX512-NEXT:    vpblendd {{.*#+}} ymm0 = ymm6[0],ymm0[1],ymm6[2],ymm0[3],ymm6[4],ymm0[5],ymm6[6],ymm0[7]1839; AVX512-NEXT:    vpshufb %ymm11, %ymm4, %ymm41840; AVX512-NEXT:    vpshufb %ymm14, %ymm3, %ymm31841; AVX512-NEXT:    vpblendw {{.*#+}} ymm3 = ymm3[0,1,2],ymm4[3],ymm3[4,5,6],ymm4[7],ymm3[8,9,10],ymm4[11],ymm3[12,13,14],ymm4[15]1842; AVX512-NEXT:    vpshufb %ymm7, %ymm2, %ymm21843; AVX512-NEXT:    vpshufb %ymm15, %ymm1, %ymm11844; AVX512-NEXT:    vpblendw {{.*#+}} ymm1 = ymm1[0],ymm2[1],ymm1[2,3,4],ymm2[5],ymm1[6,7,8],ymm2[9],ymm1[10,11,12],ymm2[13],ymm1[14,15]1845; AVX512-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0],ymm3[1],ymm1[2],ymm3[3],ymm1[4],ymm3[5],ymm1[6],ymm3[7]1846; AVX512-NEXT:    vinserti64x4 $1, %ymm0, %zmm1, %zmm01847; AVX512-NEXT:    vmovdqa64 %zmm0, 64(%rax)1848; AVX512-NEXT:    vmovdqa64 %zmm5, (%rax)1849; AVX512-NEXT:    vzeroupper1850; AVX512-NEXT:    retq1851;1852; AVX512-FCP-LABEL: store_i8_stride8_vf16:1853; AVX512-FCP:       # %bb.0:1854; AVX512-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax1855; AVX512-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r101856; AVX512-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r111857; AVX512-FCP-NEXT:    vmovdqa (%rdi), %xmm11858; AVX512-FCP-NEXT:    vmovdqa (%rdx), %xmm21859; AVX512-FCP-NEXT:    vmovdqa (%r8), %xmm31860; AVX512-FCP-NEXT:    vmovdqa (%r11), %xmm01861; AVX512-FCP-NEXT:    vinserti128 $1, (%r10), %ymm0, %ymm41862; AVX512-FCP-NEXT:    vpermq {{.*#+}} ymm5 = ymm4[0,2,0,2]1863; AVX512-FCP-NEXT:    vmovdqa {{.*#+}} ymm0 = [u,u,u,u,u,u,4,12,u,u,u,u,u,u,5,13,u,u,u,u,u,u,6,14,u,u,u,u,u,u,7,15]1864; AVX512-FCP-NEXT:    vpshufb %ymm0, %ymm5, %ymm61865; AVX512-FCP-NEXT:    vinserti128 $1, (%r9), %ymm3, %ymm31866; AVX512-FCP-NEXT:    vpermq {{.*#+}} ymm7 = ymm3[0,2,0,2]1867; AVX512-FCP-NEXT:    vpmovsxwd {{.*#+}} ymm8 = [0,3076,0,3333,0,3590,0,3847]1868; AVX512-FCP-NEXT:    vpshufb %ymm8, %ymm7, %ymm91869; AVX512-FCP-NEXT:    vpblendw {{.*#+}} ymm6 = ymm9[0,1,2],ymm6[3],ymm9[4,5,6],ymm6[7],ymm9[8,9,10],ymm6[11],ymm9[12,13,14],ymm6[15]1870; AVX512-FCP-NEXT:    vinserti128 $1, (%rcx), %ymm2, %ymm21871; AVX512-FCP-NEXT:    vpermq {{.*#+}} ymm9 = ymm2[0,2,0,2]1872; AVX512-FCP-NEXT:    vpmovsxdq {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm101873; AVX512-FCP-NEXT:    vpshufb %ymm10, %ymm9, %ymm111874; AVX512-FCP-NEXT:    vinserti128 $1, (%rsi), %ymm1, %ymm11875; AVX512-FCP-NEXT:    vpermq {{.*#+}} ymm12 = ymm1[0,2,0,2]1876; AVX512-FCP-NEXT:    vpmovsxwq {{.*#+}} ymm13 = [3076,3333,3590,3847]1877; AVX512-FCP-NEXT:    vpshufb %ymm13, %ymm12, %ymm141878; AVX512-FCP-NEXT:    vpblendw {{.*#+}} ymm11 = ymm14[0],ymm11[1],ymm14[2,3,4],ymm11[5],ymm14[6,7,8],ymm11[9],ymm14[10,11,12],ymm11[13],ymm14[14,15]1879; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm6 = ymm11[0],ymm6[1],ymm11[2],ymm6[3],ymm11[4],ymm6[5],ymm11[6],ymm6[7]1880; AVX512-FCP-NEXT:    vmovdqa {{.*#+}} ymm11 = [u,u,u,u,u,u,0,8,u,u,u,u,u,u,1,9,u,u,u,u,u,u,2,10,u,u,u,u,u,u,3,11]1881; AVX512-FCP-NEXT:    vpshufb %ymm11, %ymm5, %ymm51882; AVX512-FCP-NEXT:    vpmovsxwd {{.*#+}} ymm14 = [0,2048,0,2305,0,2562,0,2819]1883; AVX512-FCP-NEXT:    vpshufb %ymm14, %ymm7, %ymm71884; AVX512-FCP-NEXT:    vpblendw {{.*#+}} ymm5 = ymm7[0,1,2],ymm5[3],ymm7[4,5,6],ymm5[7],ymm7[8,9,10],ymm5[11],ymm7[12,13,14],ymm5[15]1885; AVX512-FCP-NEXT:    vpmovsxdq {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm71886; AVX512-FCP-NEXT:    vpshufb %ymm7, %ymm9, %ymm91887; AVX512-FCP-NEXT:    vpmovsxwq {{.*#+}} ymm15 = [2048,2305,2562,2819]1888; AVX512-FCP-NEXT:    vpshufb %ymm15, %ymm12, %ymm121889; AVX512-FCP-NEXT:    vpblendw {{.*#+}} ymm9 = ymm12[0],ymm9[1],ymm12[2,3,4],ymm9[5],ymm12[6,7,8],ymm9[9],ymm12[10,11,12],ymm9[13],ymm12[14,15]1890; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm5 = ymm9[0],ymm5[1],ymm9[2],ymm5[3],ymm9[4],ymm5[5],ymm9[6],ymm5[7]1891; AVX512-FCP-NEXT:    vinserti64x4 $1, %ymm6, %zmm5, %zmm51892; AVX512-FCP-NEXT:    vpermq {{.*#+}} ymm4 = ymm4[1,3,1,3]1893; AVX512-FCP-NEXT:    vpshufb %ymm0, %ymm4, %ymm01894; AVX512-FCP-NEXT:    vpermq {{.*#+}} ymm3 = ymm3[1,3,1,3]1895; AVX512-FCP-NEXT:    vpshufb %ymm8, %ymm3, %ymm61896; AVX512-FCP-NEXT:    vpblendw {{.*#+}} ymm0 = ymm6[0,1,2],ymm0[3],ymm6[4,5,6],ymm0[7],ymm6[8,9,10],ymm0[11],ymm6[12,13,14],ymm0[15]1897; AVX512-FCP-NEXT:    vpermq {{.*#+}} ymm2 = ymm2[1,3,1,3]1898; AVX512-FCP-NEXT:    vpshufb %ymm10, %ymm2, %ymm61899; AVX512-FCP-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[1,3,1,3]1900; AVX512-FCP-NEXT:    vpshufb %ymm13, %ymm1, %ymm81901; AVX512-FCP-NEXT:    vpblendw {{.*#+}} ymm6 = ymm8[0],ymm6[1],ymm8[2,3,4],ymm6[5],ymm8[6,7,8],ymm6[9],ymm8[10,11,12],ymm6[13],ymm8[14,15]1902; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = ymm6[0],ymm0[1],ymm6[2],ymm0[3],ymm6[4],ymm0[5],ymm6[6],ymm0[7]1903; AVX512-FCP-NEXT:    vpshufb %ymm11, %ymm4, %ymm41904; AVX512-FCP-NEXT:    vpshufb %ymm14, %ymm3, %ymm31905; AVX512-FCP-NEXT:    vpblendw {{.*#+}} ymm3 = ymm3[0,1,2],ymm4[3],ymm3[4,5,6],ymm4[7],ymm3[8,9,10],ymm4[11],ymm3[12,13,14],ymm4[15]1906; AVX512-FCP-NEXT:    vpshufb %ymm7, %ymm2, %ymm21907; AVX512-FCP-NEXT:    vpshufb %ymm15, %ymm1, %ymm11908; AVX512-FCP-NEXT:    vpblendw {{.*#+}} ymm1 = ymm1[0],ymm2[1],ymm1[2,3,4],ymm2[5],ymm1[6,7,8],ymm2[9],ymm1[10,11,12],ymm2[13],ymm1[14,15]1909; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0],ymm3[1],ymm1[2],ymm3[3],ymm1[4],ymm3[5],ymm1[6],ymm3[7]1910; AVX512-FCP-NEXT:    vinserti64x4 $1, %ymm0, %zmm1, %zmm01911; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, 64(%rax)1912; AVX512-FCP-NEXT:    vmovdqa64 %zmm5, (%rax)1913; AVX512-FCP-NEXT:    vzeroupper1914; AVX512-FCP-NEXT:    retq1915;1916; AVX512DQ-LABEL: store_i8_stride8_vf16:1917; AVX512DQ:       # %bb.0:1918; AVX512DQ-NEXT:    movq {{[0-9]+}}(%rsp), %rax1919; AVX512DQ-NEXT:    movq {{[0-9]+}}(%rsp), %r101920; AVX512DQ-NEXT:    movq {{[0-9]+}}(%rsp), %r111921; AVX512DQ-NEXT:    vmovdqa (%rdi), %xmm11922; AVX512DQ-NEXT:    vmovdqa (%rdx), %xmm21923; AVX512DQ-NEXT:    vmovdqa (%r8), %xmm31924; AVX512DQ-NEXT:    vmovdqa (%r11), %xmm01925; AVX512DQ-NEXT:    vinserti128 $1, (%r10), %ymm0, %ymm41926; AVX512DQ-NEXT:    vpermq {{.*#+}} ymm5 = ymm4[0,2,0,2]1927; AVX512DQ-NEXT:    vmovdqa {{.*#+}} ymm0 = [u,u,u,u,u,u,4,12,u,u,u,u,u,u,5,13,u,u,u,u,u,u,6,14,u,u,u,u,u,u,7,15]1928; AVX512DQ-NEXT:    vpshufb %ymm0, %ymm5, %ymm61929; AVX512DQ-NEXT:    vinserti128 $1, (%r9), %ymm3, %ymm31930; AVX512DQ-NEXT:    vpermq {{.*#+}} ymm7 = ymm3[0,2,0,2]1931; AVX512DQ-NEXT:    vpmovsxwd {{.*#+}} ymm8 = [0,3076,0,3333,0,3590,0,3847]1932; AVX512DQ-NEXT:    vpshufb %ymm8, %ymm7, %ymm91933; AVX512DQ-NEXT:    vpblendw {{.*#+}} ymm6 = ymm9[0,1,2],ymm6[3],ymm9[4,5,6],ymm6[7],ymm9[8,9,10],ymm6[11],ymm9[12,13,14],ymm6[15]1934; AVX512DQ-NEXT:    vinserti128 $1, (%rcx), %ymm2, %ymm21935; AVX512DQ-NEXT:    vpermq {{.*#+}} ymm9 = ymm2[0,2,0,2]1936; AVX512DQ-NEXT:    vpmovsxdq {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm101937; AVX512DQ-NEXT:    vpshufb %ymm10, %ymm9, %ymm111938; AVX512DQ-NEXT:    vinserti128 $1, (%rsi), %ymm1, %ymm11939; AVX512DQ-NEXT:    vpermq {{.*#+}} ymm12 = ymm1[0,2,0,2]1940; AVX512DQ-NEXT:    vpmovsxwq {{.*#+}} ymm13 = [3076,3333,3590,3847]1941; AVX512DQ-NEXT:    vpshufb %ymm13, %ymm12, %ymm141942; AVX512DQ-NEXT:    vpblendw {{.*#+}} ymm11 = ymm14[0],ymm11[1],ymm14[2,3,4],ymm11[5],ymm14[6,7,8],ymm11[9],ymm14[10,11,12],ymm11[13],ymm14[14,15]1943; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm6 = ymm11[0],ymm6[1],ymm11[2],ymm6[3],ymm11[4],ymm6[5],ymm11[6],ymm6[7]1944; AVX512DQ-NEXT:    vmovdqa {{.*#+}} ymm11 = [u,u,u,u,u,u,0,8,u,u,u,u,u,u,1,9,u,u,u,u,u,u,2,10,u,u,u,u,u,u,3,11]1945; AVX512DQ-NEXT:    vpshufb %ymm11, %ymm5, %ymm51946; AVX512DQ-NEXT:    vpmovsxwd {{.*#+}} ymm14 = [0,2048,0,2305,0,2562,0,2819]1947; AVX512DQ-NEXT:    vpshufb %ymm14, %ymm7, %ymm71948; AVX512DQ-NEXT:    vpblendw {{.*#+}} ymm5 = ymm7[0,1,2],ymm5[3],ymm7[4,5,6],ymm5[7],ymm7[8,9,10],ymm5[11],ymm7[12,13,14],ymm5[15]1949; AVX512DQ-NEXT:    vpmovsxdq {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm71950; AVX512DQ-NEXT:    vpshufb %ymm7, %ymm9, %ymm91951; AVX512DQ-NEXT:    vpmovsxwq {{.*#+}} ymm15 = [2048,2305,2562,2819]1952; AVX512DQ-NEXT:    vpshufb %ymm15, %ymm12, %ymm121953; AVX512DQ-NEXT:    vpblendw {{.*#+}} ymm9 = ymm12[0],ymm9[1],ymm12[2,3,4],ymm9[5],ymm12[6,7,8],ymm9[9],ymm12[10,11,12],ymm9[13],ymm12[14,15]1954; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm5 = ymm9[0],ymm5[1],ymm9[2],ymm5[3],ymm9[4],ymm5[5],ymm9[6],ymm5[7]1955; AVX512DQ-NEXT:    vinserti64x4 $1, %ymm6, %zmm5, %zmm51956; AVX512DQ-NEXT:    vpermq {{.*#+}} ymm4 = ymm4[1,3,1,3]1957; AVX512DQ-NEXT:    vpshufb %ymm0, %ymm4, %ymm01958; AVX512DQ-NEXT:    vpermq {{.*#+}} ymm3 = ymm3[1,3,1,3]1959; AVX512DQ-NEXT:    vpshufb %ymm8, %ymm3, %ymm61960; AVX512DQ-NEXT:    vpblendw {{.*#+}} ymm0 = ymm6[0,1,2],ymm0[3],ymm6[4,5,6],ymm0[7],ymm6[8,9,10],ymm0[11],ymm6[12,13,14],ymm0[15]1961; AVX512DQ-NEXT:    vpermq {{.*#+}} ymm2 = ymm2[1,3,1,3]1962; AVX512DQ-NEXT:    vpshufb %ymm10, %ymm2, %ymm61963; AVX512DQ-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[1,3,1,3]1964; AVX512DQ-NEXT:    vpshufb %ymm13, %ymm1, %ymm81965; AVX512DQ-NEXT:    vpblendw {{.*#+}} ymm6 = ymm8[0],ymm6[1],ymm8[2,3,4],ymm6[5],ymm8[6,7,8],ymm6[9],ymm8[10,11,12],ymm6[13],ymm8[14,15]1966; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm0 = ymm6[0],ymm0[1],ymm6[2],ymm0[3],ymm6[4],ymm0[5],ymm6[6],ymm0[7]1967; AVX512DQ-NEXT:    vpshufb %ymm11, %ymm4, %ymm41968; AVX512DQ-NEXT:    vpshufb %ymm14, %ymm3, %ymm31969; AVX512DQ-NEXT:    vpblendw {{.*#+}} ymm3 = ymm3[0,1,2],ymm4[3],ymm3[4,5,6],ymm4[7],ymm3[8,9,10],ymm4[11],ymm3[12,13,14],ymm4[15]1970; AVX512DQ-NEXT:    vpshufb %ymm7, %ymm2, %ymm21971; AVX512DQ-NEXT:    vpshufb %ymm15, %ymm1, %ymm11972; AVX512DQ-NEXT:    vpblendw {{.*#+}} ymm1 = ymm1[0],ymm2[1],ymm1[2,3,4],ymm2[5],ymm1[6,7,8],ymm2[9],ymm1[10,11,12],ymm2[13],ymm1[14,15]1973; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0],ymm3[1],ymm1[2],ymm3[3],ymm1[4],ymm3[5],ymm1[6],ymm3[7]1974; AVX512DQ-NEXT:    vinserti64x4 $1, %ymm0, %zmm1, %zmm01975; AVX512DQ-NEXT:    vmovdqa64 %zmm0, 64(%rax)1976; AVX512DQ-NEXT:    vmovdqa64 %zmm5, (%rax)1977; AVX512DQ-NEXT:    vzeroupper1978; AVX512DQ-NEXT:    retq1979;1980; AVX512DQ-FCP-LABEL: store_i8_stride8_vf16:1981; AVX512DQ-FCP:       # %bb.0:1982; AVX512DQ-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax1983; AVX512DQ-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r101984; AVX512DQ-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r111985; AVX512DQ-FCP-NEXT:    vmovdqa (%rdi), %xmm11986; AVX512DQ-FCP-NEXT:    vmovdqa (%rdx), %xmm21987; AVX512DQ-FCP-NEXT:    vmovdqa (%r8), %xmm31988; AVX512DQ-FCP-NEXT:    vmovdqa (%r11), %xmm01989; AVX512DQ-FCP-NEXT:    vinserti128 $1, (%r10), %ymm0, %ymm41990; AVX512DQ-FCP-NEXT:    vpermq {{.*#+}} ymm5 = ymm4[0,2,0,2]1991; AVX512DQ-FCP-NEXT:    vmovdqa {{.*#+}} ymm0 = [u,u,u,u,u,u,4,12,u,u,u,u,u,u,5,13,u,u,u,u,u,u,6,14,u,u,u,u,u,u,7,15]1992; AVX512DQ-FCP-NEXT:    vpshufb %ymm0, %ymm5, %ymm61993; AVX512DQ-FCP-NEXT:    vinserti128 $1, (%r9), %ymm3, %ymm31994; AVX512DQ-FCP-NEXT:    vpermq {{.*#+}} ymm7 = ymm3[0,2,0,2]1995; AVX512DQ-FCP-NEXT:    vpmovsxwd {{.*#+}} ymm8 = [0,3076,0,3333,0,3590,0,3847]1996; AVX512DQ-FCP-NEXT:    vpshufb %ymm8, %ymm7, %ymm91997; AVX512DQ-FCP-NEXT:    vpblendw {{.*#+}} ymm6 = ymm9[0,1,2],ymm6[3],ymm9[4,5,6],ymm6[7],ymm9[8,9,10],ymm6[11],ymm9[12,13,14],ymm6[15]1998; AVX512DQ-FCP-NEXT:    vinserti128 $1, (%rcx), %ymm2, %ymm21999; AVX512DQ-FCP-NEXT:    vpermq {{.*#+}} ymm9 = ymm2[0,2,0,2]2000; AVX512DQ-FCP-NEXT:    vpmovsxdq {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm102001; AVX512DQ-FCP-NEXT:    vpshufb %ymm10, %ymm9, %ymm112002; AVX512DQ-FCP-NEXT:    vinserti128 $1, (%rsi), %ymm1, %ymm12003; AVX512DQ-FCP-NEXT:    vpermq {{.*#+}} ymm12 = ymm1[0,2,0,2]2004; AVX512DQ-FCP-NEXT:    vpmovsxwq {{.*#+}} ymm13 = [3076,3333,3590,3847]2005; AVX512DQ-FCP-NEXT:    vpshufb %ymm13, %ymm12, %ymm142006; AVX512DQ-FCP-NEXT:    vpblendw {{.*#+}} ymm11 = ymm14[0],ymm11[1],ymm14[2,3,4],ymm11[5],ymm14[6,7,8],ymm11[9],ymm14[10,11,12],ymm11[13],ymm14[14,15]2007; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm6 = ymm11[0],ymm6[1],ymm11[2],ymm6[3],ymm11[4],ymm6[5],ymm11[6],ymm6[7]2008; AVX512DQ-FCP-NEXT:    vmovdqa {{.*#+}} ymm11 = [u,u,u,u,u,u,0,8,u,u,u,u,u,u,1,9,u,u,u,u,u,u,2,10,u,u,u,u,u,u,3,11]2009; AVX512DQ-FCP-NEXT:    vpshufb %ymm11, %ymm5, %ymm52010; AVX512DQ-FCP-NEXT:    vpmovsxwd {{.*#+}} ymm14 = [0,2048,0,2305,0,2562,0,2819]2011; AVX512DQ-FCP-NEXT:    vpshufb %ymm14, %ymm7, %ymm72012; AVX512DQ-FCP-NEXT:    vpblendw {{.*#+}} ymm5 = ymm7[0,1,2],ymm5[3],ymm7[4,5,6],ymm5[7],ymm7[8,9,10],ymm5[11],ymm7[12,13,14],ymm5[15]2013; AVX512DQ-FCP-NEXT:    vpmovsxdq {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm72014; AVX512DQ-FCP-NEXT:    vpshufb %ymm7, %ymm9, %ymm92015; AVX512DQ-FCP-NEXT:    vpmovsxwq {{.*#+}} ymm15 = [2048,2305,2562,2819]2016; AVX512DQ-FCP-NEXT:    vpshufb %ymm15, %ymm12, %ymm122017; AVX512DQ-FCP-NEXT:    vpblendw {{.*#+}} ymm9 = ymm12[0],ymm9[1],ymm12[2,3,4],ymm9[5],ymm12[6,7,8],ymm9[9],ymm12[10,11,12],ymm9[13],ymm12[14,15]2018; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm5 = ymm9[0],ymm5[1],ymm9[2],ymm5[3],ymm9[4],ymm5[5],ymm9[6],ymm5[7]2019; AVX512DQ-FCP-NEXT:    vinserti64x4 $1, %ymm6, %zmm5, %zmm52020; AVX512DQ-FCP-NEXT:    vpermq {{.*#+}} ymm4 = ymm4[1,3,1,3]2021; AVX512DQ-FCP-NEXT:    vpshufb %ymm0, %ymm4, %ymm02022; AVX512DQ-FCP-NEXT:    vpermq {{.*#+}} ymm3 = ymm3[1,3,1,3]2023; AVX512DQ-FCP-NEXT:    vpshufb %ymm8, %ymm3, %ymm62024; AVX512DQ-FCP-NEXT:    vpblendw {{.*#+}} ymm0 = ymm6[0,1,2],ymm0[3],ymm6[4,5,6],ymm0[7],ymm6[8,9,10],ymm0[11],ymm6[12,13,14],ymm0[15]2025; AVX512DQ-FCP-NEXT:    vpermq {{.*#+}} ymm2 = ymm2[1,3,1,3]2026; AVX512DQ-FCP-NEXT:    vpshufb %ymm10, %ymm2, %ymm62027; AVX512DQ-FCP-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[1,3,1,3]2028; AVX512DQ-FCP-NEXT:    vpshufb %ymm13, %ymm1, %ymm82029; AVX512DQ-FCP-NEXT:    vpblendw {{.*#+}} ymm6 = ymm8[0],ymm6[1],ymm8[2,3,4],ymm6[5],ymm8[6,7,8],ymm6[9],ymm8[10,11,12],ymm6[13],ymm8[14,15]2030; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = ymm6[0],ymm0[1],ymm6[2],ymm0[3],ymm6[4],ymm0[5],ymm6[6],ymm0[7]2031; AVX512DQ-FCP-NEXT:    vpshufb %ymm11, %ymm4, %ymm42032; AVX512DQ-FCP-NEXT:    vpshufb %ymm14, %ymm3, %ymm32033; AVX512DQ-FCP-NEXT:    vpblendw {{.*#+}} ymm3 = ymm3[0,1,2],ymm4[3],ymm3[4,5,6],ymm4[7],ymm3[8,9,10],ymm4[11],ymm3[12,13,14],ymm4[15]2034; AVX512DQ-FCP-NEXT:    vpshufb %ymm7, %ymm2, %ymm22035; AVX512DQ-FCP-NEXT:    vpshufb %ymm15, %ymm1, %ymm12036; AVX512DQ-FCP-NEXT:    vpblendw {{.*#+}} ymm1 = ymm1[0],ymm2[1],ymm1[2,3,4],ymm2[5],ymm1[6,7,8],ymm2[9],ymm1[10,11,12],ymm2[13],ymm1[14,15]2037; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0],ymm3[1],ymm1[2],ymm3[3],ymm1[4],ymm3[5],ymm1[6],ymm3[7]2038; AVX512DQ-FCP-NEXT:    vinserti64x4 $1, %ymm0, %zmm1, %zmm02039; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, 64(%rax)2040; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm5, (%rax)2041; AVX512DQ-FCP-NEXT:    vzeroupper2042; AVX512DQ-FCP-NEXT:    retq2043;2044; AVX512BW-LABEL: store_i8_stride8_vf16:2045; AVX512BW:       # %bb.0:2046; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax2047; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %r102048; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %r112049; AVX512BW-NEXT:    vmovdqa (%rdi), %xmm02050; AVX512BW-NEXT:    vmovdqa (%rdx), %xmm12051; AVX512BW-NEXT:    vmovdqa (%r8), %xmm22052; AVX512BW-NEXT:    vmovdqa (%r11), %xmm32053; AVX512BW-NEXT:    vinserti128 $1, (%rsi), %ymm0, %ymm02054; AVX512BW-NEXT:    vinserti64x4 $1, %ymm0, %zmm0, %zmm02055; AVX512BW-NEXT:    vpermq {{.*#+}} zmm4 = zmm0[0,2,0,2,4,6,4,6]2056; AVX512BW-NEXT:    vmovdqa64 {{.*#+}} zmm5 = [0,8,128,128,128,128,128,128,1,9,128,128,128,128,128,128,18,26,128,128,128,128,128,128,19,27,128,128,128,128,128,128,36,44,128,128,128,128,128,128,37,45,128,128,128,128,128,128,54,62,128,128,128,128,128,128,55,63,128,128,128,128,128,128]2057; AVX512BW-NEXT:    vpshufb %zmm5, %zmm4, %zmm42058; AVX512BW-NEXT:    vinserti128 $1, (%rcx), %ymm1, %ymm12059; AVX512BW-NEXT:    vinserti64x4 $1, %ymm1, %zmm1, %zmm12060; AVX512BW-NEXT:    vpermq {{.*#+}} zmm6 = zmm1[0,2,0,2,4,6,4,6]2061; AVX512BW-NEXT:    vmovdqa64 {{.*#+}} zmm7 = [128,128,0,8,128,128,128,128,128,128,1,9,128,128,128,128,128,128,18,26,128,128,128,128,128,128,19,27,128,128,128,128,128,128,36,44,128,128,128,128,128,128,37,45,128,128,128,128,128,128,54,62,128,128,128,128,128,128,55,63,128,128,128,128]2062; AVX512BW-NEXT:    vpshufb %zmm7, %zmm6, %zmm62063; AVX512BW-NEXT:    vporq %zmm4, %zmm6, %zmm42064; AVX512BW-NEXT:    vinserti128 $1, (%r9), %ymm2, %ymm22065; AVX512BW-NEXT:    vinserti64x4 $1, %ymm2, %zmm2, %zmm22066; AVX512BW-NEXT:    vpermq {{.*#+}} zmm6 = zmm2[0,2,0,2,4,6,4,6]2067; AVX512BW-NEXT:    vmovdqa64 {{.*#+}} zmm8 = [128,128,128,128,0,8,128,128,128,128,128,128,1,9,128,128,128,128,128,128,18,26,128,128,128,128,128,128,19,27,128,128,128,128,128,128,36,44,128,128,128,128,128,128,37,45,128,128,128,128,128,128,54,62,128,128,128,128,128,128,55,63,128,128]2068; AVX512BW-NEXT:    vpshufb %zmm8, %zmm6, %zmm62069; AVX512BW-NEXT:    vinserti128 $1, (%r10), %ymm3, %ymm32070; AVX512BW-NEXT:    vinserti64x4 $1, %ymm3, %zmm3, %zmm32071; AVX512BW-NEXT:    vpermq {{.*#+}} zmm9 = zmm3[0,2,0,2,4,6,4,6]2072; AVX512BW-NEXT:    vmovdqa64 {{.*#+}} zmm10 = [128,128,128,128,128,128,0,8,128,128,128,128,128,128,1,9,128,128,128,128,128,128,18,26,128,128,128,128,128,128,19,27,128,128,128,128,128,128,36,44,128,128,128,128,128,128,37,45,128,128,128,128,128,128,54,62,128,128,128,128,128,128,55,63]2073; AVX512BW-NEXT:    vpshufb %zmm10, %zmm9, %zmm92074; AVX512BW-NEXT:    vpternlogq {{.*#+}} zmm9 = zmm9 | zmm4 | zmm62075; AVX512BW-NEXT:    vpermq {{.*#+}} zmm0 = zmm0[1,3,1,3,5,7,5,7]2076; AVX512BW-NEXT:    vpshufb %zmm5, %zmm0, %zmm02077; AVX512BW-NEXT:    vpermq {{.*#+}} zmm1 = zmm1[1,3,1,3,5,7,5,7]2078; AVX512BW-NEXT:    vpshufb %zmm7, %zmm1, %zmm12079; AVX512BW-NEXT:    vporq %zmm0, %zmm1, %zmm02080; AVX512BW-NEXT:    vpermq {{.*#+}} zmm1 = zmm2[1,3,1,3,5,7,5,7]2081; AVX512BW-NEXT:    vpshufb %zmm8, %zmm1, %zmm12082; AVX512BW-NEXT:    vpermq {{.*#+}} zmm2 = zmm3[1,3,1,3,5,7,5,7]2083; AVX512BW-NEXT:    vpshufb %zmm10, %zmm2, %zmm22084; AVX512BW-NEXT:    vpternlogq {{.*#+}} zmm2 = zmm2 | zmm0 | zmm12085; AVX512BW-NEXT:    vmovdqa64 %zmm2, 64(%rax)2086; AVX512BW-NEXT:    vmovdqa64 %zmm9, (%rax)2087; AVX512BW-NEXT:    vzeroupper2088; AVX512BW-NEXT:    retq2089;2090; AVX512BW-FCP-LABEL: store_i8_stride8_vf16:2091; AVX512BW-FCP:       # %bb.0:2092; AVX512BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax2093; AVX512BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r102094; AVX512BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r112095; AVX512BW-FCP-NEXT:    vmovdqa (%rdi), %xmm02096; AVX512BW-FCP-NEXT:    vmovdqa (%rdx), %xmm12097; AVX512BW-FCP-NEXT:    vmovdqa (%r8), %xmm22098; AVX512BW-FCP-NEXT:    vmovdqa (%r11), %xmm32099; AVX512BW-FCP-NEXT:    vinserti128 $1, (%rsi), %ymm0, %ymm02100; AVX512BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm4 = [0,2,0,2,0,2,0,2]2101; AVX512BW-FCP-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]2102; AVX512BW-FCP-NEXT:    vpermq %zmm0, %zmm4, %zmm52103; AVX512BW-FCP-NEXT:    vmovdqa64 {{.*#+}} zmm6 = [0,8,128,128,128,128,128,128,1,9,128,128,128,128,128,128,18,26,128,128,128,128,128,128,19,27,128,128,128,128,128,128,36,44,128,128,128,128,128,128,37,45,128,128,128,128,128,128,54,62,128,128,128,128,128,128,55,63,128,128,128,128,128,128]2104; AVX512BW-FCP-NEXT:    vpshufb %zmm6, %zmm5, %zmm52105; AVX512BW-FCP-NEXT:    vinserti128 $1, (%rcx), %ymm1, %ymm12106; AVX512BW-FCP-NEXT:    vpermq %zmm1, %zmm4, %zmm72107; AVX512BW-FCP-NEXT:    vmovdqa64 {{.*#+}} zmm8 = [128,128,0,8,128,128,128,128,128,128,1,9,128,128,128,128,128,128,18,26,128,128,128,128,128,128,19,27,128,128,128,128,128,128,36,44,128,128,128,128,128,128,37,45,128,128,128,128,128,128,54,62,128,128,128,128,128,128,55,63,128,128,128,128]2108; AVX512BW-FCP-NEXT:    vpshufb %zmm8, %zmm7, %zmm72109; AVX512BW-FCP-NEXT:    vporq %zmm5, %zmm7, %zmm52110; AVX512BW-FCP-NEXT:    vinserti128 $1, (%r9), %ymm2, %ymm22111; AVX512BW-FCP-NEXT:    vpermq %zmm2, %zmm4, %zmm72112; AVX512BW-FCP-NEXT:    vmovdqa64 {{.*#+}} zmm9 = [128,128,128,128,0,8,128,128,128,128,128,128,1,9,128,128,128,128,128,128,18,26,128,128,128,128,128,128,19,27,128,128,128,128,128,128,36,44,128,128,128,128,128,128,37,45,128,128,128,128,128,128,54,62,128,128,128,128,128,128,55,63,128,128]2113; AVX512BW-FCP-NEXT:    vpshufb %zmm9, %zmm7, %zmm72114; AVX512BW-FCP-NEXT:    vinserti128 $1, (%r10), %ymm3, %ymm32115; AVX512BW-FCP-NEXT:    vpermq %zmm3, %zmm4, %zmm42116; AVX512BW-FCP-NEXT:    vmovdqa64 {{.*#+}} zmm10 = [128,128,128,128,128,128,0,8,128,128,128,128,128,128,1,9,128,128,128,128,128,128,18,26,128,128,128,128,128,128,19,27,128,128,128,128,128,128,36,44,128,128,128,128,128,128,37,45,128,128,128,128,128,128,54,62,128,128,128,128,128,128,55,63]2117; AVX512BW-FCP-NEXT:    vpshufb %zmm10, %zmm4, %zmm42118; AVX512BW-FCP-NEXT:    vpternlogq {{.*#+}} zmm4 = zmm4 | zmm5 | zmm72119; AVX512BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm5 = [1,3,1,3,1,3,1,3]2120; AVX512BW-FCP-NEXT:    # zmm5 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]2121; AVX512BW-FCP-NEXT:    vpermq %zmm0, %zmm5, %zmm02122; AVX512BW-FCP-NEXT:    vpshufb %zmm6, %zmm0, %zmm02123; AVX512BW-FCP-NEXT:    vpermq %zmm1, %zmm5, %zmm12124; AVX512BW-FCP-NEXT:    vpshufb %zmm8, %zmm1, %zmm12125; AVX512BW-FCP-NEXT:    vporq %zmm0, %zmm1, %zmm02126; AVX512BW-FCP-NEXT:    vpermq %zmm2, %zmm5, %zmm12127; AVX512BW-FCP-NEXT:    vpshufb %zmm9, %zmm1, %zmm12128; AVX512BW-FCP-NEXT:    vpermq %zmm3, %zmm5, %zmm22129; AVX512BW-FCP-NEXT:    vpshufb %zmm10, %zmm2, %zmm22130; AVX512BW-FCP-NEXT:    vpternlogq {{.*#+}} zmm2 = zmm2 | zmm0 | zmm12131; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm2, 64(%rax)2132; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm4, (%rax)2133; AVX512BW-FCP-NEXT:    vzeroupper2134; AVX512BW-FCP-NEXT:    retq2135;2136; AVX512DQ-BW-LABEL: store_i8_stride8_vf16:2137; AVX512DQ-BW:       # %bb.0:2138; AVX512DQ-BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax2139; AVX512DQ-BW-NEXT:    movq {{[0-9]+}}(%rsp), %r102140; AVX512DQ-BW-NEXT:    movq {{[0-9]+}}(%rsp), %r112141; AVX512DQ-BW-NEXT:    vmovdqa (%rdi), %xmm02142; AVX512DQ-BW-NEXT:    vmovdqa (%rdx), %xmm12143; AVX512DQ-BW-NEXT:    vmovdqa (%r8), %xmm22144; AVX512DQ-BW-NEXT:    vmovdqa (%r11), %xmm32145; AVX512DQ-BW-NEXT:    vinserti128 $1, (%rsi), %ymm0, %ymm02146; AVX512DQ-BW-NEXT:    vinserti64x4 $1, %ymm0, %zmm0, %zmm02147; AVX512DQ-BW-NEXT:    vpermq {{.*#+}} zmm4 = zmm0[0,2,0,2,4,6,4,6]2148; AVX512DQ-BW-NEXT:    vmovdqa64 {{.*#+}} zmm5 = [0,8,128,128,128,128,128,128,1,9,128,128,128,128,128,128,18,26,128,128,128,128,128,128,19,27,128,128,128,128,128,128,36,44,128,128,128,128,128,128,37,45,128,128,128,128,128,128,54,62,128,128,128,128,128,128,55,63,128,128,128,128,128,128]2149; AVX512DQ-BW-NEXT:    vpshufb %zmm5, %zmm4, %zmm42150; AVX512DQ-BW-NEXT:    vinserti128 $1, (%rcx), %ymm1, %ymm12151; AVX512DQ-BW-NEXT:    vinserti64x4 $1, %ymm1, %zmm1, %zmm12152; AVX512DQ-BW-NEXT:    vpermq {{.*#+}} zmm6 = zmm1[0,2,0,2,4,6,4,6]2153; AVX512DQ-BW-NEXT:    vmovdqa64 {{.*#+}} zmm7 = [128,128,0,8,128,128,128,128,128,128,1,9,128,128,128,128,128,128,18,26,128,128,128,128,128,128,19,27,128,128,128,128,128,128,36,44,128,128,128,128,128,128,37,45,128,128,128,128,128,128,54,62,128,128,128,128,128,128,55,63,128,128,128,128]2154; AVX512DQ-BW-NEXT:    vpshufb %zmm7, %zmm6, %zmm62155; AVX512DQ-BW-NEXT:    vporq %zmm4, %zmm6, %zmm42156; AVX512DQ-BW-NEXT:    vinserti128 $1, (%r9), %ymm2, %ymm22157; AVX512DQ-BW-NEXT:    vinserti64x4 $1, %ymm2, %zmm2, %zmm22158; AVX512DQ-BW-NEXT:    vpermq {{.*#+}} zmm6 = zmm2[0,2,0,2,4,6,4,6]2159; AVX512DQ-BW-NEXT:    vmovdqa64 {{.*#+}} zmm8 = [128,128,128,128,0,8,128,128,128,128,128,128,1,9,128,128,128,128,128,128,18,26,128,128,128,128,128,128,19,27,128,128,128,128,128,128,36,44,128,128,128,128,128,128,37,45,128,128,128,128,128,128,54,62,128,128,128,128,128,128,55,63,128,128]2160; AVX512DQ-BW-NEXT:    vpshufb %zmm8, %zmm6, %zmm62161; AVX512DQ-BW-NEXT:    vinserti128 $1, (%r10), %ymm3, %ymm32162; AVX512DQ-BW-NEXT:    vinserti64x4 $1, %ymm3, %zmm3, %zmm32163; AVX512DQ-BW-NEXT:    vpermq {{.*#+}} zmm9 = zmm3[0,2,0,2,4,6,4,6]2164; AVX512DQ-BW-NEXT:    vmovdqa64 {{.*#+}} zmm10 = [128,128,128,128,128,128,0,8,128,128,128,128,128,128,1,9,128,128,128,128,128,128,18,26,128,128,128,128,128,128,19,27,128,128,128,128,128,128,36,44,128,128,128,128,128,128,37,45,128,128,128,128,128,128,54,62,128,128,128,128,128,128,55,63]2165; AVX512DQ-BW-NEXT:    vpshufb %zmm10, %zmm9, %zmm92166; AVX512DQ-BW-NEXT:    vpternlogq {{.*#+}} zmm9 = zmm9 | zmm4 | zmm62167; AVX512DQ-BW-NEXT:    vpermq {{.*#+}} zmm0 = zmm0[1,3,1,3,5,7,5,7]2168; AVX512DQ-BW-NEXT:    vpshufb %zmm5, %zmm0, %zmm02169; AVX512DQ-BW-NEXT:    vpermq {{.*#+}} zmm1 = zmm1[1,3,1,3,5,7,5,7]2170; AVX512DQ-BW-NEXT:    vpshufb %zmm7, %zmm1, %zmm12171; AVX512DQ-BW-NEXT:    vporq %zmm0, %zmm1, %zmm02172; AVX512DQ-BW-NEXT:    vpermq {{.*#+}} zmm1 = zmm2[1,3,1,3,5,7,5,7]2173; AVX512DQ-BW-NEXT:    vpshufb %zmm8, %zmm1, %zmm12174; AVX512DQ-BW-NEXT:    vpermq {{.*#+}} zmm2 = zmm3[1,3,1,3,5,7,5,7]2175; AVX512DQ-BW-NEXT:    vpshufb %zmm10, %zmm2, %zmm22176; AVX512DQ-BW-NEXT:    vpternlogq {{.*#+}} zmm2 = zmm2 | zmm0 | zmm12177; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm2, 64(%rax)2178; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm9, (%rax)2179; AVX512DQ-BW-NEXT:    vzeroupper2180; AVX512DQ-BW-NEXT:    retq2181;2182; AVX512DQ-BW-FCP-LABEL: store_i8_stride8_vf16:2183; AVX512DQ-BW-FCP:       # %bb.0:2184; AVX512DQ-BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax2185; AVX512DQ-BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r102186; AVX512DQ-BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r112187; AVX512DQ-BW-FCP-NEXT:    vmovdqa (%rdi), %xmm02188; AVX512DQ-BW-FCP-NEXT:    vmovdqa (%rdx), %xmm12189; AVX512DQ-BW-FCP-NEXT:    vmovdqa (%r8), %xmm22190; AVX512DQ-BW-FCP-NEXT:    vmovdqa (%r11), %xmm32191; AVX512DQ-BW-FCP-NEXT:    vinserti128 $1, (%rsi), %ymm0, %ymm02192; AVX512DQ-BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm4 = [0,2,0,2,0,2,0,2]2193; AVX512DQ-BW-FCP-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]2194; AVX512DQ-BW-FCP-NEXT:    vpermq %zmm0, %zmm4, %zmm52195; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 {{.*#+}} zmm6 = [0,8,128,128,128,128,128,128,1,9,128,128,128,128,128,128,18,26,128,128,128,128,128,128,19,27,128,128,128,128,128,128,36,44,128,128,128,128,128,128,37,45,128,128,128,128,128,128,54,62,128,128,128,128,128,128,55,63,128,128,128,128,128,128]2196; AVX512DQ-BW-FCP-NEXT:    vpshufb %zmm6, %zmm5, %zmm52197; AVX512DQ-BW-FCP-NEXT:    vinserti128 $1, (%rcx), %ymm1, %ymm12198; AVX512DQ-BW-FCP-NEXT:    vpermq %zmm1, %zmm4, %zmm72199; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 {{.*#+}} zmm8 = [128,128,0,8,128,128,128,128,128,128,1,9,128,128,128,128,128,128,18,26,128,128,128,128,128,128,19,27,128,128,128,128,128,128,36,44,128,128,128,128,128,128,37,45,128,128,128,128,128,128,54,62,128,128,128,128,128,128,55,63,128,128,128,128]2200; AVX512DQ-BW-FCP-NEXT:    vpshufb %zmm8, %zmm7, %zmm72201; AVX512DQ-BW-FCP-NEXT:    vporq %zmm5, %zmm7, %zmm52202; AVX512DQ-BW-FCP-NEXT:    vinserti128 $1, (%r9), %ymm2, %ymm22203; AVX512DQ-BW-FCP-NEXT:    vpermq %zmm2, %zmm4, %zmm72204; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 {{.*#+}} zmm9 = [128,128,128,128,0,8,128,128,128,128,128,128,1,9,128,128,128,128,128,128,18,26,128,128,128,128,128,128,19,27,128,128,128,128,128,128,36,44,128,128,128,128,128,128,37,45,128,128,128,128,128,128,54,62,128,128,128,128,128,128,55,63,128,128]2205; AVX512DQ-BW-FCP-NEXT:    vpshufb %zmm9, %zmm7, %zmm72206; AVX512DQ-BW-FCP-NEXT:    vinserti128 $1, (%r10), %ymm3, %ymm32207; AVX512DQ-BW-FCP-NEXT:    vpermq %zmm3, %zmm4, %zmm42208; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 {{.*#+}} zmm10 = [128,128,128,128,128,128,0,8,128,128,128,128,128,128,1,9,128,128,128,128,128,128,18,26,128,128,128,128,128,128,19,27,128,128,128,128,128,128,36,44,128,128,128,128,128,128,37,45,128,128,128,128,128,128,54,62,128,128,128,128,128,128,55,63]2209; AVX512DQ-BW-FCP-NEXT:    vpshufb %zmm10, %zmm4, %zmm42210; AVX512DQ-BW-FCP-NEXT:    vpternlogq {{.*#+}} zmm4 = zmm4 | zmm5 | zmm72211; AVX512DQ-BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm5 = [1,3,1,3,1,3,1,3]2212; AVX512DQ-BW-FCP-NEXT:    # zmm5 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]2213; AVX512DQ-BW-FCP-NEXT:    vpermq %zmm0, %zmm5, %zmm02214; AVX512DQ-BW-FCP-NEXT:    vpshufb %zmm6, %zmm0, %zmm02215; AVX512DQ-BW-FCP-NEXT:    vpermq %zmm1, %zmm5, %zmm12216; AVX512DQ-BW-FCP-NEXT:    vpshufb %zmm8, %zmm1, %zmm12217; AVX512DQ-BW-FCP-NEXT:    vporq %zmm0, %zmm1, %zmm02218; AVX512DQ-BW-FCP-NEXT:    vpermq %zmm2, %zmm5, %zmm12219; AVX512DQ-BW-FCP-NEXT:    vpshufb %zmm9, %zmm1, %zmm12220; AVX512DQ-BW-FCP-NEXT:    vpermq %zmm3, %zmm5, %zmm22221; AVX512DQ-BW-FCP-NEXT:    vpshufb %zmm10, %zmm2, %zmm22222; AVX512DQ-BW-FCP-NEXT:    vpternlogq {{.*#+}} zmm2 = zmm2 | zmm0 | zmm12223; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm2, 64(%rax)2224; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm4, (%rax)2225; AVX512DQ-BW-FCP-NEXT:    vzeroupper2226; AVX512DQ-BW-FCP-NEXT:    retq2227  %in.vec0 = load <16 x i8>, ptr %in.vecptr0, align 642228  %in.vec1 = load <16 x i8>, ptr %in.vecptr1, align 642229  %in.vec2 = load <16 x i8>, ptr %in.vecptr2, align 642230  %in.vec3 = load <16 x i8>, ptr %in.vecptr3, align 642231  %in.vec4 = load <16 x i8>, ptr %in.vecptr4, align 642232  %in.vec5 = load <16 x i8>, ptr %in.vecptr5, align 642233  %in.vec6 = load <16 x i8>, ptr %in.vecptr6, align 642234  %in.vec7 = load <16 x i8>, ptr %in.vecptr7, align 642235  %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>2236  %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>2237  %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>2238  %4 = shufflevector <16 x i8> %in.vec6, <16 x i8> %in.vec7, <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>2239  %5 = 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>2240  %6 = shufflevector <32 x i8> %3, <32 x i8> %4, <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>2241  %7 = shufflevector <64 x i8> %5, <64 x i8> %6, <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>2242  %interleaved.vec = shufflevector <128 x i8> %7, <128 x i8> poison, <128 x i32> <i32 0, i32 16, i32 32, i32 48, i32 64, i32 80, i32 96, i32 112, i32 1, i32 17, i32 33, i32 49, i32 65, i32 81, i32 97, i32 113, i32 2, i32 18, i32 34, i32 50, i32 66, i32 82, i32 98, i32 114, i32 3, i32 19, i32 35, i32 51, i32 67, i32 83, i32 99, i32 115, i32 4, i32 20, i32 36, i32 52, i32 68, i32 84, i32 100, i32 116, i32 5, i32 21, i32 37, i32 53, i32 69, i32 85, i32 101, i32 117, i32 6, i32 22, i32 38, i32 54, i32 70, i32 86, i32 102, i32 118, i32 7, i32 23, i32 39, i32 55, i32 71, i32 87, i32 103, i32 119, i32 8, i32 24, i32 40, i32 56, i32 72, i32 88, i32 104, i32 120, i32 9, i32 25, i32 41, i32 57, i32 73, i32 89, i32 105, i32 121, i32 10, i32 26, i32 42, i32 58, i32 74, i32 90, i32 106, i32 122, i32 11, i32 27, i32 43, i32 59, i32 75, i32 91, i32 107, i32 123, i32 12, i32 28, i32 44, i32 60, i32 76, i32 92, i32 108, i32 124, i32 13, i32 29, i32 45, i32 61, i32 77, i32 93, i32 109, i32 125, i32 14, i32 30, i32 46, i32 62, i32 78, i32 94, i32 110, i32 126, i32 15, i32 31, i32 47, i32 63, i32 79, i32 95, i32 111, i32 127>2243  store <128 x i8> %interleaved.vec, ptr %out.vec, align 642244  ret void2245}2246 2247define void @store_i8_stride8_vf32(ptr %in.vecptr0, ptr %in.vecptr1, ptr %in.vecptr2, ptr %in.vecptr3, ptr %in.vecptr4, ptr %in.vecptr5, ptr %in.vecptr6, ptr %in.vecptr7, ptr %out.vec) nounwind {2248; SSE-LABEL: store_i8_stride8_vf32:2249; SSE:       # %bb.0:2250; SSE-NEXT:    subq $232, %rsp2251; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %rax2252; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %r102253; SSE-NEXT:    movdqa (%rdi), %xmm52254; SSE-NEXT:    movdqa %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2255; SSE-NEXT:    movdqa (%rsi), %xmm42256; SSE-NEXT:    movdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2257; SSE-NEXT:    movdqa (%rdx), %xmm12258; SSE-NEXT:    movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2259; SSE-NEXT:    movdqa (%rcx), %xmm82260; SSE-NEXT:    movdqa %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2261; SSE-NEXT:    movdqa (%r8), %xmm132262; SSE-NEXT:    movdqa (%r9), %xmm122263; SSE-NEXT:    movdqa (%r10), %xmm142264; SSE-NEXT:    movdqa (%rax), %xmm112265; SSE-NEXT:    movdqa %xmm14, %xmm22266; SSE-NEXT:    punpcklbw {{.*#+}} xmm2 = xmm2[0],xmm11[0],xmm2[1],xmm11[1],xmm2[2],xmm11[2],xmm2[3],xmm11[3],xmm2[4],xmm11[4],xmm2[5],xmm11[5],xmm2[6],xmm11[6],xmm2[7],xmm11[7]2267; SSE-NEXT:    pshuflw {{.*#+}} xmm0 = xmm2[0,2,2,3,4,5,6,7]2268; SSE-NEXT:    movdqa %xmm2, %xmm152269; SSE-NEXT:    movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2270; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm0[0,0,2,1]2271; SSE-NEXT:    movdqa {{.*#+}} xmm9 = [65535,65535,65535,0,65535,65535,65535,0]2272; SSE-NEXT:    movdqa %xmm9, %xmm62273; SSE-NEXT:    pandn %xmm2, %xmm62274; SSE-NEXT:    movdqa %xmm13, %xmm32275; SSE-NEXT:    punpcklbw {{.*#+}} xmm3 = xmm3[0],xmm12[0],xmm3[1],xmm12[1],xmm3[2],xmm12[2],xmm3[3],xmm12[3],xmm3[4],xmm12[4],xmm3[5],xmm12[5],xmm3[6],xmm12[6],xmm3[7],xmm12[7]2276; SSE-NEXT:    pshuflw {{.*#+}} xmm2 = xmm3[2,1,3,3,4,5,6,7]2277; SSE-NEXT:    movdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2278; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm2[0,0,2,1]2279; SSE-NEXT:    pand %xmm9, %xmm72280; SSE-NEXT:    por %xmm6, %xmm72281; SSE-NEXT:    punpcklbw {{.*#+}} xmm1 = xmm1[0],xmm8[0],xmm1[1],xmm8[1],xmm1[2],xmm8[2],xmm1[3],xmm8[3],xmm1[4],xmm8[4],xmm1[5],xmm8[5],xmm1[6],xmm8[6],xmm1[7],xmm8[7]2282; SSE-NEXT:    pshuflw {{.*#+}} xmm2 = xmm1[0,2,2,3,4,5,6,7]2283; SSE-NEXT:    movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2284; SSE-NEXT:    pshufd {{.*#+}} xmm6 = xmm2[0,1,1,3]2285; SSE-NEXT:    movdqa {{.*#+}} xmm8 = [65535,0,65535,65535,65535,0,65535,65535]2286; SSE-NEXT:    movdqa %xmm8, %xmm102287; SSE-NEXT:    pandn %xmm6, %xmm102288; SSE-NEXT:    punpcklbw {{.*#+}} xmm5 = xmm5[0],xmm4[0],xmm5[1],xmm4[1],xmm5[2],xmm4[2],xmm5[3],xmm4[3],xmm5[4],xmm4[4],xmm5[5],xmm4[5],xmm5[6],xmm4[6],xmm5[7],xmm4[7]2289; SSE-NEXT:    pshufd {{.*#+}} xmm6 = xmm5[1,1,1,1]2290; SSE-NEXT:    movdqa %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2291; SSE-NEXT:    pshufhw {{.*#+}} xmm6 = xmm6[0,1,2,3,5,5,5,5]2292; SSE-NEXT:    pand %xmm8, %xmm62293; SSE-NEXT:    por %xmm10, %xmm62294; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm7[1,3,2,3]2295; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm6[0,2,2,3]2296; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm7[0],xmm0[1],xmm7[1]2297; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2298; SSE-NEXT:    pshuflw {{.*#+}} xmm6 = xmm15[0,0,2,1,4,5,6,7]2299; SSE-NEXT:    pshufd {{.*#+}} xmm6 = xmm6[0,0,2,1]2300; SSE-NEXT:    movdqa %xmm9, %xmm72301; SSE-NEXT:    pandn %xmm6, %xmm72302; SSE-NEXT:    pshuflw {{.*#+}} xmm6 = xmm3[0,1,1,3,4,5,6,7]2303; SSE-NEXT:    pshufd {{.*#+}} xmm6 = xmm6[0,0,2,1]2304; SSE-NEXT:    pand %xmm9, %xmm62305; SSE-NEXT:    por %xmm7, %xmm62306; SSE-NEXT:    pshuflw {{.*#+}} xmm7 = xmm1[0,0,2,1,4,5,6,7]2307; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm7[0,1,1,3]2308; SSE-NEXT:    movdqa %xmm8, %xmm102309; SSE-NEXT:    pandn %xmm7, %xmm102310; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm5[0,0,0,0]2311; SSE-NEXT:    pshufhw {{.*#+}} xmm7 = xmm7[0,1,2,3,5,5,5,5]2312; SSE-NEXT:    pand %xmm8, %xmm72313; SSE-NEXT:    por %xmm10, %xmm72314; SSE-NEXT:    pshufd {{.*#+}} xmm6 = xmm6[1,3,2,3]2315; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm7[0,2,2,3]2316; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm6[0],xmm0[1],xmm6[1]2317; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2318; SSE-NEXT:    punpckhbw {{.*#+}} xmm14 = xmm14[8],xmm11[8],xmm14[9],xmm11[9],xmm14[10],xmm11[10],xmm14[11],xmm11[11],xmm14[12],xmm11[12],xmm14[13],xmm11[13],xmm14[14],xmm11[14],xmm14[15],xmm11[15]2319; SSE-NEXT:    pshuflw {{.*#+}} xmm5 = xmm14[0,2,2,3,4,5,6,7]2320; SSE-NEXT:    movdqa %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2321; SSE-NEXT:    pshufd {{.*#+}} xmm5 = xmm5[0,0,2,1]2322; SSE-NEXT:    movdqa %xmm9, %xmm62323; SSE-NEXT:    pandn %xmm5, %xmm62324; SSE-NEXT:    punpckhbw {{.*#+}} xmm13 = 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]2325; SSE-NEXT:    pshuflw {{.*#+}} xmm4 = xmm13[2,1,3,3,4,5,6,7]2326; SSE-NEXT:    movdqa %xmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2327; SSE-NEXT:    pshufd {{.*#+}} xmm4 = xmm4[0,0,2,1]2328; SSE-NEXT:    pand %xmm9, %xmm42329; SSE-NEXT:    por %xmm6, %xmm42330; SSE-NEXT:    pshufd {{.*#+}} xmm4 = xmm4[1,3,2,3]2331; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Reload2332; SSE-NEXT:    punpckhbw {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Folded Reload2333; SSE-NEXT:    # xmm12 = 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]2334; SSE-NEXT:    pshuflw {{.*#+}} xmm3 = xmm12[0,2,2,3,4,5,6,7]2335; SSE-NEXT:    movdqa %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2336; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm3[0,1,1,3]2337; SSE-NEXT:    movdqa %xmm8, %xmm52338; SSE-NEXT:    pandn %xmm3, %xmm52339; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Reload2340; SSE-NEXT:    punpckhbw {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Folded Reload2341; SSE-NEXT:    # xmm11 = xmm11[8],mem[8],xmm11[9],mem[9],xmm11[10],mem[10],xmm11[11],mem[11],xmm11[12],mem[12],xmm11[13],mem[13],xmm11[14],mem[14],xmm11[15],mem[15]2342; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm11[1,1,1,1]2343; SSE-NEXT:    movdqa %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2344; SSE-NEXT:    pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,5,5,5,5]2345; SSE-NEXT:    pand %xmm8, %xmm12346; SSE-NEXT:    por %xmm5, %xmm12347; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm1[0,2,2,3]2348; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm4[0],xmm0[1],xmm4[1]2349; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2350; SSE-NEXT:    pshuflw {{.*#+}} xmm1 = xmm14[0,0,2,1,4,5,6,7]2351; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm1[0,0,2,1]2352; SSE-NEXT:    movdqa %xmm9, %xmm32353; SSE-NEXT:    pandn %xmm1, %xmm32354; SSE-NEXT:    pshuflw {{.*#+}} xmm1 = xmm13[0,1,1,3,4,5,6,7]2355; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm1[0,0,2,1]2356; SSE-NEXT:    pand %xmm9, %xmm12357; SSE-NEXT:    por %xmm3, %xmm12358; SSE-NEXT:    pshuflw {{.*#+}} xmm3 = xmm12[0,0,2,1,4,5,6,7]2359; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm3[0,1,1,3]2360; SSE-NEXT:    movdqa %xmm8, %xmm42361; SSE-NEXT:    pandn %xmm3, %xmm42362; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm11[0,0,0,0]2363; SSE-NEXT:    pshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,5,5,5,5]2364; SSE-NEXT:    pand %xmm8, %xmm32365; SSE-NEXT:    por %xmm4, %xmm32366; SSE-NEXT:    movdqa 16(%r10), %xmm102367; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm1[1,3,2,3]2368; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm3[0,2,2,3]2369; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]2370; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2371; SSE-NEXT:    movdqa 16(%rax), %xmm12372; SSE-NEXT:    movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2373; SSE-NEXT:    movdqa %xmm10, %xmm52374; SSE-NEXT:    punpcklbw {{.*#+}} xmm5 = xmm5[0],xmm1[0],xmm5[1],xmm1[1],xmm5[2],xmm1[2],xmm5[3],xmm1[3],xmm5[4],xmm1[4],xmm5[5],xmm1[5],xmm5[6],xmm1[6],xmm5[7],xmm1[7]2375; SSE-NEXT:    pshuflw {{.*#+}} xmm1 = xmm5[0,2,2,3,4,5,6,7]2376; SSE-NEXT:    movdqa %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2377; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm1[0,0,2,1]2378; SSE-NEXT:    movdqa %xmm9, %xmm32379; SSE-NEXT:    pandn %xmm1, %xmm32380; SSE-NEXT:    movdqa 16(%r8), %xmm122381; SSE-NEXT:    movdqa 16(%r9), %xmm112382; SSE-NEXT:    movdqa %xmm12, %xmm42383; SSE-NEXT:    punpcklbw {{.*#+}} xmm4 = xmm4[0],xmm11[0],xmm4[1],xmm11[1],xmm4[2],xmm11[2],xmm4[3],xmm11[3],xmm4[4],xmm11[4],xmm4[5],xmm11[5],xmm4[6],xmm11[6],xmm4[7],xmm11[7]2384; SSE-NEXT:    pshuflw {{.*#+}} xmm1 = xmm4[2,1,3,3,4,5,6,7]2385; SSE-NEXT:    movdqa %xmm4, (%rsp) # 16-byte Spill2386; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm1[0,0,2,1]2387; SSE-NEXT:    pand %xmm9, %xmm02388; SSE-NEXT:    por %xmm3, %xmm02389; SSE-NEXT:    movdqa 16(%rdx), %xmm132390; SSE-NEXT:    movdqa 16(%rcx), %xmm72391; SSE-NEXT:    movdqa %xmm13, %xmm32392; 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]2393; SSE-NEXT:    pshuflw {{.*#+}} xmm1 = xmm3[0,2,2,3,4,5,6,7]2394; SSE-NEXT:    movdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2395; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm1[0,1,1,3]2396; SSE-NEXT:    movdqa %xmm8, %xmm22397; SSE-NEXT:    pandn %xmm1, %xmm22398; SSE-NEXT:    movdqa 16(%rdi), %xmm142399; SSE-NEXT:    movdqa 16(%rsi), %xmm62400; SSE-NEXT:    movdqa %xmm14, %xmm12401; SSE-NEXT:    punpcklbw {{.*#+}} xmm1 = xmm1[0],xmm6[0],xmm1[1],xmm6[1],xmm1[2],xmm6[2],xmm1[3],xmm6[3],xmm1[4],xmm6[4],xmm1[5],xmm6[5],xmm1[6],xmm6[6],xmm1[7],xmm6[7]2402; SSE-NEXT:    pshufd {{.*#+}} xmm15 = xmm1[1,1,1,1]2403; SSE-NEXT:    movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2404; SSE-NEXT:    pshufhw {{.*#+}} xmm15 = xmm15[0,1,2,3,5,5,5,5]2405; SSE-NEXT:    pand %xmm8, %xmm152406; SSE-NEXT:    por %xmm2, %xmm152407; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[1,3,2,3]2408; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm15[0,2,2,3]2409; SSE-NEXT:    punpckldq {{.*#+}} xmm2 = xmm2[0],xmm0[0],xmm2[1],xmm0[1]2410; SSE-NEXT:    movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2411; SSE-NEXT:    pshuflw {{.*#+}} xmm0 = xmm5[0,0,2,1,4,5,6,7]2412; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,0,2,1]2413; SSE-NEXT:    movdqa %xmm9, %xmm22414; SSE-NEXT:    pandn %xmm0, %xmm22415; SSE-NEXT:    pshuflw {{.*#+}} xmm0 = xmm4[0,1,1,3,4,5,6,7]2416; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,0,2,1]2417; SSE-NEXT:    pand %xmm9, %xmm02418; SSE-NEXT:    por %xmm2, %xmm02419; SSE-NEXT:    pshuflw {{.*#+}} xmm2 = xmm3[0,0,2,1,4,5,6,7]2420; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm2[0,1,1,3]2421; SSE-NEXT:    movdqa %xmm8, %xmm152422; SSE-NEXT:    pandn %xmm2, %xmm152423; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm1[0,0,0,0]2424; SSE-NEXT:    pshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,5,5,5,5]2425; SSE-NEXT:    pand %xmm8, %xmm22426; SSE-NEXT:    por %xmm15, %xmm22427; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[1,3,2,3]2428; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm2[0,2,2,3]2429; SSE-NEXT:    punpckldq {{.*#+}} xmm2 = xmm2[0],xmm0[0],xmm2[1],xmm0[1]2430; SSE-NEXT:    movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2431; SSE-NEXT:    punpckhbw {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Folded Reload2432; SSE-NEXT:    # xmm10 = xmm10[8],mem[8],xmm10[9],mem[9],xmm10[10],mem[10],xmm10[11],mem[11],xmm10[12],mem[12],xmm10[13],mem[13],xmm10[14],mem[14],xmm10[15],mem[15]2433; SSE-NEXT:    pshuflw {{.*#+}} xmm0 = xmm10[0,2,2,3,4,5,6,7]2434; SSE-NEXT:    movdqa %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2435; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,0,2,1]2436; SSE-NEXT:    movdqa %xmm9, %xmm22437; SSE-NEXT:    pandn %xmm0, %xmm22438; SSE-NEXT:    movdqa %xmm12, %xmm152439; SSE-NEXT:    punpckhbw {{.*#+}} xmm15 = xmm15[8],xmm11[8],xmm15[9],xmm11[9],xmm15[10],xmm11[10],xmm15[11],xmm11[11],xmm15[12],xmm11[12],xmm15[13],xmm11[13],xmm15[14],xmm11[14],xmm15[15],xmm11[15]2440; SSE-NEXT:    pshuflw {{.*#+}} xmm0 = xmm15[2,1,3,3,4,5,6,7]2441; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,0,2,1]2442; SSE-NEXT:    pand %xmm9, %xmm02443; SSE-NEXT:    por %xmm2, %xmm02444; SSE-NEXT:    punpckhbw {{.*#+}} xmm13 = xmm13[8],xmm7[8],xmm13[9],xmm7[9],xmm13[10],xmm7[10],xmm13[11],xmm7[11],xmm13[12],xmm7[12],xmm13[13],xmm7[13],xmm13[14],xmm7[14],xmm13[15],xmm7[15]2445; SSE-NEXT:    pshuflw {{.*#+}} xmm2 = xmm13[0,2,2,3,4,5,6,7]2446; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm2[0,1,1,3]2447; SSE-NEXT:    movdqa %xmm8, %xmm32448; SSE-NEXT:    pandn %xmm2, %xmm32449; SSE-NEXT:    punpckhbw {{.*#+}} xmm14 = xmm14[8],xmm6[8],xmm14[9],xmm6[9],xmm14[10],xmm6[10],xmm14[11],xmm6[11],xmm14[12],xmm6[12],xmm14[13],xmm6[13],xmm14[14],xmm6[14],xmm14[15],xmm6[15]2450; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm14[1,1,1,1]2451; SSE-NEXT:    pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,5,5,5,5]2452; SSE-NEXT:    pand %xmm8, %xmm12453; SSE-NEXT:    por %xmm3, %xmm12454; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[1,3,2,3]2455; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm1[0,2,2,3]2456; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]2457; SSE-NEXT:    movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2458; SSE-NEXT:    pshuflw {{.*#+}} xmm0 = xmm10[0,0,2,1,4,5,6,7]2459; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,0,2,1]2460; SSE-NEXT:    movdqa %xmm9, %xmm12461; SSE-NEXT:    pandn %xmm0, %xmm12462; SSE-NEXT:    pshuflw {{.*#+}} xmm0 = xmm15[0,1,1,3,4,5,6,7]2463; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,0,2,1]2464; SSE-NEXT:    pand %xmm9, %xmm02465; SSE-NEXT:    por %xmm1, %xmm02466; SSE-NEXT:    pshuflw {{.*#+}} xmm1 = xmm13[0,0,2,1,4,5,6,7]2467; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm1[0,1,1,3]2468; SSE-NEXT:    movdqa %xmm8, %xmm22469; SSE-NEXT:    pandn %xmm1, %xmm22470; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm14[0,0,0,0]2471; SSE-NEXT:    pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,5,5,5,5]2472; SSE-NEXT:    pand %xmm8, %xmm12473; SSE-NEXT:    por %xmm2, %xmm12474; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[1,3,2,3]2475; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm1[0,2,2,3]2476; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]2477; SSE-NEXT:    movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2478; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload2479; SSE-NEXT:    pshufhw {{.*#+}} xmm0 = xmm3[0,1,2,3,4,6,6,7]2480; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,2,2,3]2481; SSE-NEXT:    movdqa %xmm9, %xmm12482; SSE-NEXT:    pandn %xmm0, %xmm12483; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload2484; SSE-NEXT:    pshufhw {{.*#+}} xmm0 = xmm4[0,1,2,3,6,5,7,7]2485; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,2,2,3]2486; SSE-NEXT:    pand %xmm9, %xmm02487; SSE-NEXT:    por %xmm1, %xmm02488; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload2489; SSE-NEXT:    pshufhw {{.*#+}} xmm1 = xmm5[0,1,2,3,4,6,6,7]2490; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm1[2,1,3,3]2491; SSE-NEXT:    movdqa %xmm8, %xmm22492; SSE-NEXT:    pandn %xmm1, %xmm22493; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload2494; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm10[3,3,3,3]2495; SSE-NEXT:    pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,5,5,5,5]2496; SSE-NEXT:    pand %xmm8, %xmm12497; SSE-NEXT:    por %xmm2, %xmm12498; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[1,3,2,3]2499; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm1[0,2,2,3]2500; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]2501; SSE-NEXT:    movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2502; SSE-NEXT:    pshufhw {{.*#+}} xmm0 = xmm3[0,1,2,3,4,4,6,5]2503; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,2,2,3]2504; SSE-NEXT:    movdqa %xmm9, %xmm12505; SSE-NEXT:    pandn %xmm0, %xmm12506; SSE-NEXT:    pshufhw {{.*#+}} xmm0 = xmm4[0,1,2,3,4,5,5,7]2507; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,2,2,3]2508; SSE-NEXT:    pand %xmm9, %xmm02509; SSE-NEXT:    por %xmm1, %xmm02510; SSE-NEXT:    pshufhw {{.*#+}} xmm1 = xmm5[0,1,2,3,4,4,6,5]2511; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm1[2,1,3,3]2512; SSE-NEXT:    movdqa %xmm8, %xmm22513; SSE-NEXT:    pandn %xmm1, %xmm22514; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm10[2,2,2,2]2515; SSE-NEXT:    pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,5,5,5,5]2516; SSE-NEXT:    pand %xmm8, %xmm12517; SSE-NEXT:    por %xmm2, %xmm12518; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[1,3,2,3]2519; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm1[0,2,2,3]2520; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]2521; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload2522; SSE-NEXT:    pshufhw {{.*#+}} xmm0 = xmm4[0,1,2,3,4,6,6,7]2523; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,2,2,3]2524; SSE-NEXT:    movdqa %xmm9, %xmm22525; SSE-NEXT:    pandn %xmm0, %xmm22526; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload2527; SSE-NEXT:    pshufhw {{.*#+}} xmm0 = xmm5[0,1,2,3,6,5,7,7]2528; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,2,2,3]2529; SSE-NEXT:    pand %xmm9, %xmm02530; SSE-NEXT:    por %xmm2, %xmm02531; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload2532; SSE-NEXT:    pshufhw {{.*#+}} xmm2 = xmm10[0,1,2,3,4,6,6,7]2533; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm2[2,1,3,3]2534; SSE-NEXT:    movdqa %xmm8, %xmm32535; SSE-NEXT:    pandn %xmm2, %xmm32536; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Reload2537; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm12[3,3,3,3]2538; SSE-NEXT:    pshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,5,5,5,5]2539; SSE-NEXT:    pand %xmm8, %xmm22540; SSE-NEXT:    por %xmm3, %xmm22541; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[1,3,2,3]2542; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm2[0,2,2,3]2543; SSE-NEXT:    punpckldq {{.*#+}} xmm3 = xmm3[0],xmm0[0],xmm3[1],xmm0[1]2544; SSE-NEXT:    pshufhw {{.*#+}} xmm0 = xmm4[0,1,2,3,4,4,6,5]2545; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,2,2,3]2546; SSE-NEXT:    movdqa %xmm9, %xmm22547; SSE-NEXT:    pandn %xmm0, %xmm22548; SSE-NEXT:    pshufhw {{.*#+}} xmm0 = xmm5[0,1,2,3,4,5,5,7]2549; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,2,2,3]2550; SSE-NEXT:    pand %xmm9, %xmm02551; SSE-NEXT:    por %xmm2, %xmm02552; SSE-NEXT:    pshufhw {{.*#+}} xmm2 = xmm10[0,1,2,3,4,4,6,5]2553; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm2[2,1,3,3]2554; SSE-NEXT:    movdqa %xmm8, %xmm42555; SSE-NEXT:    pandn %xmm2, %xmm42556; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm12[2,2,2,2]2557; SSE-NEXT:    pshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,5,5,5,5]2558; SSE-NEXT:    pand %xmm8, %xmm22559; SSE-NEXT:    por %xmm4, %xmm22560; SSE-NEXT:    pshufd {{.*#+}} xmm4 = xmm0[1,3,2,3]2561; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm2[0,2,2,3]2562; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm4[0],xmm0[1],xmm4[1]2563; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload2564; SSE-NEXT:    pshufhw {{.*#+}} xmm2 = xmm10[0,1,2,3,4,6,6,7]2565; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm2[0,2,2,3]2566; SSE-NEXT:    movdqa %xmm9, %xmm42567; SSE-NEXT:    pandn %xmm2, %xmm42568; SSE-NEXT:    movdqa (%rsp), %xmm6 # 16-byte Reload2569; SSE-NEXT:    pshufhw {{.*#+}} xmm2 = xmm6[0,1,2,3,6,5,7,7]2570; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm2[0,2,2,3]2571; SSE-NEXT:    pand %xmm9, %xmm22572; SSE-NEXT:    por %xmm4, %xmm22573; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload2574; SSE-NEXT:    pshufhw {{.*#+}} xmm4 = xmm7[0,1,2,3,4,6,6,7]2575; SSE-NEXT:    pshufd {{.*#+}} xmm4 = xmm4[2,1,3,3]2576; SSE-NEXT:    movdqa %xmm8, %xmm52577; SSE-NEXT:    pandn %xmm4, %xmm52578; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Reload2579; SSE-NEXT:    pshufd {{.*#+}} xmm4 = xmm11[3,3,3,3]2580; SSE-NEXT:    pshufhw {{.*#+}} xmm4 = xmm4[0,1,2,3,5,5,5,5]2581; SSE-NEXT:    pand %xmm8, %xmm42582; SSE-NEXT:    por %xmm5, %xmm42583; SSE-NEXT:    pshufd {{.*#+}} xmm5 = xmm2[1,3,2,3]2584; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm4[0,2,2,3]2585; SSE-NEXT:    punpckldq {{.*#+}} xmm2 = xmm2[0],xmm5[0],xmm2[1],xmm5[1]2586; SSE-NEXT:    pshufhw {{.*#+}} xmm4 = xmm10[0,1,2,3,4,4,6,5]2587; SSE-NEXT:    pshufd {{.*#+}} xmm4 = xmm4[0,2,2,3]2588; SSE-NEXT:    movdqa %xmm9, %xmm52589; SSE-NEXT:    pandn %xmm4, %xmm52590; SSE-NEXT:    pshufhw {{.*#+}} xmm4 = xmm6[0,1,2,3,4,5,5,7]2591; SSE-NEXT:    pshufd {{.*#+}} xmm4 = xmm4[0,2,2,3]2592; SSE-NEXT:    pand %xmm9, %xmm42593; SSE-NEXT:    por %xmm5, %xmm42594; SSE-NEXT:    pshufhw {{.*#+}} xmm5 = xmm7[0,1,2,3,4,4,6,5]2595; SSE-NEXT:    pshufd {{.*#+}} xmm5 = xmm5[2,1,3,3]2596; SSE-NEXT:    movdqa %xmm8, %xmm102597; SSE-NEXT:    pandn %xmm5, %xmm102598; SSE-NEXT:    pshufd {{.*#+}} xmm5 = xmm11[2,2,2,2]2599; SSE-NEXT:    pshufhw {{.*#+}} xmm5 = xmm5[0,1,2,3,5,5,5,5]2600; SSE-NEXT:    pand %xmm8, %xmm52601; SSE-NEXT:    por %xmm10, %xmm52602; SSE-NEXT:    pshufd {{.*#+}} xmm10 = xmm4[1,3,2,3]2603; SSE-NEXT:    pshufd {{.*#+}} xmm4 = xmm5[0,2,2,3]2604; SSE-NEXT:    punpckldq {{.*#+}} xmm4 = xmm4[0],xmm10[0],xmm4[1],xmm10[1]2605; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload2606; SSE-NEXT:    pshufhw {{.*#+}} xmm5 = xmm6[0,1,2,3,4,6,6,7]2607; SSE-NEXT:    pshufd {{.*#+}} xmm5 = xmm5[0,2,2,3]2608; SSE-NEXT:    movdqa %xmm9, %xmm102609; SSE-NEXT:    pandn %xmm5, %xmm102610; SSE-NEXT:    pshufhw {{.*#+}} xmm5 = xmm15[0,1,2,3,6,5,7,7]2611; SSE-NEXT:    pshufd {{.*#+}} xmm5 = xmm5[0,2,2,3]2612; SSE-NEXT:    pand %xmm9, %xmm52613; SSE-NEXT:    por %xmm10, %xmm52614; SSE-NEXT:    pshufhw {{.*#+}} xmm10 = xmm13[0,1,2,3,4,6,6,7]2615; SSE-NEXT:    pshufd {{.*#+}} xmm10 = xmm10[2,1,3,3]2616; SSE-NEXT:    movdqa %xmm8, %xmm122617; SSE-NEXT:    pandn %xmm10, %xmm122618; SSE-NEXT:    pshufd {{.*#+}} xmm10 = xmm14[3,3,3,3]2619; SSE-NEXT:    pshufhw {{.*#+}} xmm10 = xmm10[0,1,2,3,5,5,5,5]2620; SSE-NEXT:    pand %xmm8, %xmm102621; SSE-NEXT:    por %xmm12, %xmm102622; SSE-NEXT:    pshufd {{.*#+}} xmm5 = xmm5[1,3,2,3]2623; SSE-NEXT:    pshufd {{.*#+}} xmm10 = xmm10[0,2,2,3]2624; SSE-NEXT:    punpckldq {{.*#+}} xmm10 = xmm10[0],xmm5[0],xmm10[1],xmm5[1]2625; SSE-NEXT:    pshufhw {{.*#+}} xmm5 = xmm6[0,1,2,3,4,4,6,5]2626; SSE-NEXT:    pshufd {{.*#+}} xmm5 = xmm5[0,2,2,3]2627; SSE-NEXT:    pshufhw {{.*#+}} xmm11 = xmm15[0,1,2,3,4,5,5,7]2628; SSE-NEXT:    pshufd {{.*#+}} xmm11 = xmm11[0,2,2,3]2629; SSE-NEXT:    pand %xmm9, %xmm112630; SSE-NEXT:    pandn %xmm5, %xmm92631; SSE-NEXT:    por %xmm11, %xmm92632; SSE-NEXT:    pshufhw {{.*#+}} xmm5 = xmm13[0,1,2,3,4,4,6,5]2633; SSE-NEXT:    pshufd {{.*#+}} xmm5 = xmm5[2,1,3,3]2634; SSE-NEXT:    pshufd {{.*#+}} xmm6 = xmm14[2,2,2,2]2635; SSE-NEXT:    pshufhw {{.*#+}} xmm6 = xmm6[0,1,2,3,5,5,5,5]2636; SSE-NEXT:    pand %xmm8, %xmm62637; SSE-NEXT:    pandn %xmm5, %xmm82638; SSE-NEXT:    por %xmm6, %xmm82639; SSE-NEXT:    pshufd {{.*#+}} xmm5 = xmm9[1,3,2,3]2640; SSE-NEXT:    pshufd {{.*#+}} xmm6 = xmm8[0,2,2,3]2641; SSE-NEXT:    punpckldq {{.*#+}} xmm6 = xmm6[0],xmm5[0],xmm6[1],xmm5[1]2642; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %rax2643; SSE-NEXT:    movdqa %xmm6, 224(%rax)2644; SSE-NEXT:    movdqa %xmm10, 240(%rax)2645; SSE-NEXT:    movdqa %xmm4, 160(%rax)2646; SSE-NEXT:    movdqa %xmm2, 176(%rax)2647; SSE-NEXT:    movdqa %xmm0, 96(%rax)2648; SSE-NEXT:    movdqa %xmm3, 112(%rax)2649; SSE-NEXT:    movdqa %xmm1, 32(%rax)2650; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2651; SSE-NEXT:    movaps %xmm0, 48(%rax)2652; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2653; SSE-NEXT:    movaps %xmm0, 192(%rax)2654; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2655; SSE-NEXT:    movaps %xmm0, 208(%rax)2656; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2657; SSE-NEXT:    movaps %xmm0, 128(%rax)2658; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2659; SSE-NEXT:    movaps %xmm0, 144(%rax)2660; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2661; SSE-NEXT:    movaps %xmm0, 64(%rax)2662; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2663; SSE-NEXT:    movaps %xmm0, 80(%rax)2664; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2665; SSE-NEXT:    movaps %xmm0, (%rax)2666; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2667; SSE-NEXT:    movaps %xmm0, 16(%rax)2668; SSE-NEXT:    addq $232, %rsp2669; SSE-NEXT:    retq2670;2671; AVX-LABEL: store_i8_stride8_vf32:2672; AVX:       # %bb.0:2673; AVX-NEXT:    subq $56, %rsp2674; AVX-NEXT:    movq {{[0-9]+}}(%rsp), %rax2675; AVX-NEXT:    movq {{[0-9]+}}(%rsp), %r102676; AVX-NEXT:    vmovdqa (%r10), %xmm02677; AVX-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2678; AVX-NEXT:    vmovdqa (%rax), %xmm22679; AVX-NEXT:    vpunpcklbw {{.*#+}} xmm0 = 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]2680; AVX-NEXT:    vpshuflw {{.*#+}} xmm1 = xmm0[0,0,2,1,4,5,6,7]2681; AVX-NEXT:    vpshuflw {{.*#+}} xmm3 = xmm0[0,2,2,3,4,5,6,7]2682; AVX-NEXT:    vinsertf128 $1, %xmm3, %ymm1, %ymm12683; AVX-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[0,0,2,1,4,4,6,5]2684; AVX-NEXT:    vbroadcastsd {{.*#+}} ymm9 = [65535,65535,65535,0,65535,65535,65535,0,65535,65535,65535,0,65535,65535,65535,0]2685; AVX-NEXT:    vandnps %ymm1, %ymm9, %ymm12686; AVX-NEXT:    vmovdqa (%r9), %xmm52687; AVX-NEXT:    vmovdqa (%r8), %xmm72688; AVX-NEXT:    vpunpcklbw {{.*#+}} xmm12 = xmm7[0],xmm5[0],xmm7[1],xmm5[1],xmm7[2],xmm5[2],xmm7[3],xmm5[3],xmm7[4],xmm5[4],xmm7[5],xmm5[5],xmm7[6],xmm5[6],xmm7[7],xmm5[7]2689; AVX-NEXT:    vpshuflw {{.*#+}} xmm3 = xmm12[0,1,1,3,4,5,6,7]2690; AVX-NEXT:    vpshuflw {{.*#+}} xmm4 = xmm12[2,1,3,3,4,5,6,7]2691; AVX-NEXT:    vinsertf128 $1, %xmm4, %ymm3, %ymm32692; AVX-NEXT:    vshufps {{.*#+}} ymm3 = ymm3[0,0,2,1,4,4,6,5]2693; AVX-NEXT:    vandps %ymm3, %ymm9, %ymm32694; AVX-NEXT:    vorps %ymm1, %ymm3, %ymm82695; AVX-NEXT:    vmovdqa (%rsi), %xmm32696; AVX-NEXT:    vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2697; AVX-NEXT:    vmovdqa (%rdi), %xmm12698; AVX-NEXT:    vpunpcklbw {{.*#+}} xmm3 = xmm1[0],xmm3[0],xmm1[1],xmm3[1],xmm1[2],xmm3[2],xmm1[3],xmm3[3],xmm1[4],xmm3[4],xmm1[5],xmm3[5],xmm1[6],xmm3[6],xmm1[7],xmm3[7]2699; AVX-NEXT:    vpmovzxwq {{.*#+}} xmm4 = xmm3[0],zero,zero,zero,xmm3[1],zero,zero,zero2700; AVX-NEXT:    vpshufd {{.*#+}} xmm10 = xmm3[1,1,1,1]2701; AVX-NEXT:    vpmovzxwq {{.*#+}} xmm10 = xmm10[0],zero,zero,zero,xmm10[1],zero,zero,zero2702; AVX-NEXT:    vinsertf128 $1, %xmm10, %ymm4, %ymm132703; AVX-NEXT:    vmovdqa (%rcx), %xmm102704; AVX-NEXT:    vmovdqa (%rdx), %xmm112705; AVX-NEXT:    vpunpcklbw {{.*#+}} xmm15 = 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]2706; AVX-NEXT:    vpshuflw {{.*#+}} xmm4 = xmm15[0,0,2,1,4,5,6,7]2707; AVX-NEXT:    vpmovzxdq {{.*#+}} xmm4 = xmm4[0],zero,xmm4[1],zero2708; AVX-NEXT:    vpshuflw {{.*#+}} xmm14 = xmm15[0,2,2,3,4,5,6,7]2709; AVX-NEXT:    vpmovzxdq {{.*#+}} xmm14 = xmm14[0],zero,xmm14[1],zero2710; AVX-NEXT:    vinsertf128 $1, %xmm14, %ymm4, %ymm142711; AVX-NEXT:    vbroadcastsd {{.*#+}} ymm6 = [65535,0,65535,65535,65535,0,65535,65535,65535,0,65535,65535,65535,0,65535,65535]2712; AVX-NEXT:    vandps %ymm6, %ymm13, %ymm132713; AVX-NEXT:    vandnps %ymm14, %ymm6, %ymm142714; AVX-NEXT:    vorps %ymm14, %ymm13, %ymm132715; AVX-NEXT:    vblendps {{.*#+}} ymm4 = ymm13[0],ymm8[1],ymm13[2],ymm8[3],ymm13[4],ymm8[5],ymm13[6],ymm8[7]2716; AVX-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2717; AVX-NEXT:    vpshufhw {{.*#+}} xmm8 = xmm0[0,1,2,3,4,4,6,5]2718; AVX-NEXT:    vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,6,6,7]2719; AVX-NEXT:    vinsertf128 $1, %xmm0, %ymm8, %ymm02720; AVX-NEXT:    vpshufhw {{.*#+}} xmm8 = xmm12[0,1,2,3,4,5,5,7]2721; AVX-NEXT:    vpshufhw {{.*#+}} xmm12 = xmm12[0,1,2,3,6,5,7,7]2722; AVX-NEXT:    vinsertf128 $1, %xmm12, %ymm8, %ymm82723; AVX-NEXT:    vmovdqa 16(%r10), %xmm42724; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[0,2,2,3,4,6,6,7]2725; AVX-NEXT:    vandnps %ymm0, %ymm9, %ymm02726; AVX-NEXT:    vshufps {{.*#+}} ymm8 = ymm8[0,2,2,3,4,6,6,7]2727; AVX-NEXT:    vandps %ymm9, %ymm8, %ymm82728; AVX-NEXT:    vorps %ymm0, %ymm8, %ymm02729; AVX-NEXT:    vpshufhw {{.*#+}} xmm8 = xmm15[0,1,2,3,4,4,6,5]2730; AVX-NEXT:    vpshufhw {{.*#+}} xmm12 = xmm15[0,1,2,3,4,6,6,7]2731; AVX-NEXT:    vinsertf128 $1, %xmm12, %ymm8, %ymm122732; AVX-NEXT:    vpshufd {{.*#+}} xmm8 = xmm3[2,3,2,3]2733; AVX-NEXT:    vpmovzxwq {{.*#+}} xmm8 = xmm8[0],zero,zero,zero,xmm8[1],zero,zero,zero2734; AVX-NEXT:    vpshufd {{.*#+}} xmm3 = xmm3[3,3,3,3]2735; AVX-NEXT:    vpmovzxwq {{.*#+}} xmm3 = xmm3[0],zero,zero,zero,xmm3[1],zero,zero,zero2736; AVX-NEXT:    vinsertf128 $1, %xmm3, %ymm8, %ymm32737; AVX-NEXT:    vmovdqa 16(%rax), %xmm82738; AVX-NEXT:    vmovdqa %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2739; AVX-NEXT:    vshufps {{.*#+}} ymm12 = ymm12[2,1,3,3,6,5,7,7]2740; AVX-NEXT:    vandnps %ymm12, %ymm6, %ymm122741; AVX-NEXT:    vandps %ymm6, %ymm3, %ymm32742; AVX-NEXT:    vorps %ymm3, %ymm12, %ymm32743; AVX-NEXT:    vmovdqa 16(%r9), %xmm132744; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm3[0],ymm0[1],ymm3[2],ymm0[3],ymm3[4],ymm0[5],ymm3[6],ymm0[7]2745; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2746; AVX-NEXT:    vpunpckhbw {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm2 # 16-byte Folded Reload2747; AVX-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]2748; AVX-NEXT:    vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2749; AVX-NEXT:    vpshufhw {{.*#+}} xmm0 = xmm2[0,1,2,3,4,4,6,5]2750; AVX-NEXT:    vpshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,6,6,7]2751; AVX-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm02752; AVX-NEXT:    vpunpckhbw {{.*#+}} xmm3 = xmm7[8],xmm5[8],xmm7[9],xmm5[9],xmm7[10],xmm5[10],xmm7[11],xmm5[11],xmm7[12],xmm5[12],xmm7[13],xmm5[13],xmm7[14],xmm5[14],xmm7[15],xmm5[15]2753; AVX-NEXT:    vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2754; AVX-NEXT:    vpshufhw {{.*#+}} xmm2 = xmm3[0,1,2,3,4,5,5,7]2755; AVX-NEXT:    vpshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,6,5,7,7]2756; AVX-NEXT:    vinsertf128 $1, %xmm3, %ymm2, %ymm22757; AVX-NEXT:    vmovdqa 16(%r8), %xmm72758; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[0,2,2,3,4,6,6,7]2759; AVX-NEXT:    vandnps %ymm0, %ymm9, %ymm02760; AVX-NEXT:    vshufps {{.*#+}} ymm2 = ymm2[0,2,2,3,4,6,6,7]2761; AVX-NEXT:    vandps %ymm2, %ymm9, %ymm22762; AVX-NEXT:    vmovaps %ymm9, %ymm52763; AVX-NEXT:    vorps %ymm0, %ymm2, %ymm02764; AVX-NEXT:    vpunpckhbw {{.*#+}} xmm3 = 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]2765; AVX-NEXT:    vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2766; AVX-NEXT:    vpshufhw {{.*#+}} xmm2 = xmm3[0,1,2,3,4,4,6,5]2767; AVX-NEXT:    vpshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,4,6,6,7]2768; AVX-NEXT:    vinsertf128 $1, %xmm3, %ymm2, %ymm22769; AVX-NEXT:    vshufps {{.*#+}} ymm2 = ymm2[2,1,3,3,6,5,7,7]2770; AVX-NEXT:    vandnps %ymm2, %ymm6, %ymm22771; AVX-NEXT:    vpunpckhbw {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm3 # 16-byte Folded Reload2772; AVX-NEXT:    # xmm3 = 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]2773; AVX-NEXT:    vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2774; AVX-NEXT:    vpshufd {{.*#+}} xmm1 = xmm3[2,3,2,3]2775; AVX-NEXT:    vpmovzxwq {{.*#+}} xmm1 = xmm1[0],zero,zero,zero,xmm1[1],zero,zero,zero2776; AVX-NEXT:    vpshufd {{.*#+}} xmm3 = xmm3[3,3,3,3]2777; AVX-NEXT:    vpmovzxwq {{.*#+}} xmm3 = xmm3[0],zero,zero,zero,xmm3[1],zero,zero,zero2778; AVX-NEXT:    vinsertf128 $1, %xmm3, %ymm1, %ymm12779; AVX-NEXT:    vandps %ymm6, %ymm1, %ymm12780; AVX-NEXT:    vorps %ymm2, %ymm1, %ymm12781; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0],ymm0[1],ymm1[2],ymm0[3],ymm1[4],ymm0[5],ymm1[6],ymm0[7]2782; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2783; AVX-NEXT:    vpunpcklbw {{.*#+}} xmm11 = xmm8[0],xmm4[0],xmm8[1],xmm4[1],xmm8[2],xmm4[2],xmm8[3],xmm4[3],xmm8[4],xmm4[4],xmm8[5],xmm4[5],xmm8[6],xmm4[6],xmm8[7],xmm4[7]2784; AVX-NEXT:    vmovdqa %xmm4, %xmm82785; AVX-NEXT:    vpshufhw {{.*#+}} xmm0 = xmm11[0,1,2,3,4,4,6,5]2786; AVX-NEXT:    vpshufhw {{.*#+}} xmm1 = xmm11[0,1,2,3,4,6,6,7]2787; AVX-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm02788; AVX-NEXT:    vpunpcklbw {{.*#+}} xmm12 = xmm7[0],xmm13[0],xmm7[1],xmm13[1],xmm7[2],xmm13[2],xmm7[3],xmm13[3],xmm7[4],xmm13[4],xmm7[5],xmm13[5],xmm7[6],xmm13[6],xmm7[7],xmm13[7]2789; AVX-NEXT:    vmovdqa %xmm13, %xmm92790; AVX-NEXT:    vpshufhw {{.*#+}} xmm1 = xmm12[0,1,2,3,4,5,5,7]2791; AVX-NEXT:    vpshufhw {{.*#+}} xmm2 = xmm12[0,1,2,3,6,5,7,7]2792; AVX-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm12793; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[0,2,2,3,4,6,6,7]2794; AVX-NEXT:    vandnps %ymm0, %ymm5, %ymm02795; AVX-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[0,2,2,3,4,6,6,7]2796; AVX-NEXT:    vandps %ymm5, %ymm1, %ymm12797; AVX-NEXT:    vorps %ymm0, %ymm1, %ymm52798; AVX-NEXT:    vmovdqa 16(%rcx), %xmm42799; AVX-NEXT:    vmovdqa 16(%rdx), %xmm32800; AVX-NEXT:    vpunpcklbw {{.*#+}} xmm10 = 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]2801; AVX-NEXT:    vpshufhw {{.*#+}} xmm1 = xmm10[0,1,2,3,4,4,6,5]2802; AVX-NEXT:    vpshufhw {{.*#+}} xmm2 = xmm10[0,1,2,3,4,6,6,7]2803; AVX-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm02804; AVX-NEXT:    vmovdqa 16(%rsi), %xmm22805; AVX-NEXT:    vmovdqa 16(%rdi), %xmm12806; AVX-NEXT:    vpunpcklbw {{.*#+}} xmm14 = 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]2807; AVX-NEXT:    vpshufd {{.*#+}} xmm13 = xmm14[2,3,2,3]2808; AVX-NEXT:    vpmovzxwq {{.*#+}} xmm13 = xmm13[0],zero,zero,zero,xmm13[1],zero,zero,zero2809; AVX-NEXT:    vpshufd {{.*#+}} xmm15 = xmm14[3,3,3,3]2810; AVX-NEXT:    vpmovzxwq {{.*#+}} xmm15 = xmm15[0],zero,zero,zero,xmm15[1],zero,zero,zero2811; AVX-NEXT:    vinsertf128 $1, %xmm15, %ymm13, %ymm132812; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[2,1,3,3,6,5,7,7]2813; AVX-NEXT:    vandnps %ymm0, %ymm6, %ymm02814; AVX-NEXT:    vandps %ymm6, %ymm13, %ymm132815; AVX-NEXT:    vorps %ymm0, %ymm13, %ymm02816; AVX-NEXT:    vblendps {{.*#+}} ymm15 = ymm0[0],ymm5[1],ymm0[2],ymm5[3],ymm0[4],ymm5[5],ymm0[6],ymm5[7]2817; AVX-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2818; AVX-NEXT:    vpunpckhbw {{.*#+}} xmm8 = 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]2819; AVX-NEXT:    vpshufhw {{.*#+}} xmm0 = xmm8[0,1,2,3,4,4,6,5]2820; AVX-NEXT:    vpshufhw {{.*#+}} xmm5 = xmm8[0,1,2,3,4,6,6,7]2821; AVX-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm02822; AVX-NEXT:    vpunpckhbw {{.*#+}} xmm5 = xmm7[8],xmm9[8],xmm7[9],xmm9[9],xmm7[10],xmm9[10],xmm7[11],xmm9[11],xmm7[12],xmm9[12],xmm7[13],xmm9[13],xmm7[14],xmm9[14],xmm7[15],xmm9[15]2823; AVX-NEXT:    vpshufhw {{.*#+}} xmm7 = xmm5[0,1,2,3,4,5,5,7]2824; AVX-NEXT:    vpshufhw {{.*#+}} xmm13 = xmm5[0,1,2,3,6,5,7,7]2825; AVX-NEXT:    vinsertf128 $1, %xmm13, %ymm7, %ymm72826; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[0,2,2,3,4,6,6,7]2827; AVX-NEXT:    vbroadcastsd {{.*#+}} ymm9 = [65535,65535,65535,0,65535,65535,65535,0,65535,65535,65535,0,65535,65535,65535,0]2828; AVX-NEXT:    vandnps %ymm0, %ymm9, %ymm02829; AVX-NEXT:    vshufps {{.*#+}} ymm7 = ymm7[0,2,2,3,4,6,6,7]2830; AVX-NEXT:    vandps %ymm7, %ymm9, %ymm72831; AVX-NEXT:    vorps %ymm0, %ymm7, %ymm72832; AVX-NEXT:    vpunpckhbw {{.*#+}} xmm0 = xmm3[8],xmm4[8],xmm3[9],xmm4[9],xmm3[10],xmm4[10],xmm3[11],xmm4[11],xmm3[12],xmm4[12],xmm3[13],xmm4[13],xmm3[14],xmm4[14],xmm3[15],xmm4[15]2833; AVX-NEXT:    vpshufhw {{.*#+}} xmm3 = xmm0[0,1,2,3,4,4,6,5]2834; AVX-NEXT:    vpshufhw {{.*#+}} xmm4 = xmm0[0,1,2,3,4,6,6,7]2835; AVX-NEXT:    vinsertf128 $1, %xmm4, %ymm3, %ymm32836; AVX-NEXT:    vpunpckhbw {{.*#+}} xmm2 = 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]2837; AVX-NEXT:    vpshufd {{.*#+}} xmm1 = xmm2[2,3,2,3]2838; AVX-NEXT:    vpmovzxwq {{.*#+}} xmm1 = xmm1[0],zero,zero,zero,xmm1[1],zero,zero,zero2839; AVX-NEXT:    vpshufd {{.*#+}} xmm4 = xmm2[3,3,3,3]2840; AVX-NEXT:    vpmovzxwq {{.*#+}} xmm4 = xmm4[0],zero,zero,zero,xmm4[1],zero,zero,zero2841; AVX-NEXT:    vinsertf128 $1, %xmm4, %ymm1, %ymm12842; AVX-NEXT:    vshufps {{.*#+}} ymm3 = ymm3[2,1,3,3,6,5,7,7]2843; AVX-NEXT:    vandnps %ymm3, %ymm6, %ymm32844; AVX-NEXT:    vandps %ymm6, %ymm1, %ymm12845; AVX-NEXT:    vorps %ymm3, %ymm1, %ymm12846; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0],ymm7[1],ymm1[2],ymm7[3],ymm1[4],ymm7[5],ymm1[6],ymm7[7]2847; AVX-NEXT:    vpshuflw {{.*#+}} xmm3 = xmm8[0,0,2,1,4,5,6,7]2848; AVX-NEXT:    vpshuflw {{.*#+}} xmm4 = xmm8[0,2,2,3,4,5,6,7]2849; AVX-NEXT:    vinsertf128 $1, %xmm4, %ymm3, %ymm32850; AVX-NEXT:    vpshuflw {{.*#+}} xmm4 = xmm5[0,1,1,3,4,5,6,7]2851; AVX-NEXT:    vpshuflw {{.*#+}} xmm5 = xmm5[2,1,3,3,4,5,6,7]2852; AVX-NEXT:    vinsertf128 $1, %xmm5, %ymm4, %ymm42853; AVX-NEXT:    vshufps {{.*#+}} ymm3 = ymm3[0,0,2,1,4,4,6,5]2854; AVX-NEXT:    vandnps %ymm3, %ymm9, %ymm32855; AVX-NEXT:    vshufps {{.*#+}} ymm4 = ymm4[0,0,2,1,4,4,6,5]2856; AVX-NEXT:    vandps %ymm4, %ymm9, %ymm42857; AVX-NEXT:    vorps %ymm3, %ymm4, %ymm32858; AVX-NEXT:    vpmovzxwq {{.*#+}} xmm4 = xmm2[0],zero,zero,zero,xmm2[1],zero,zero,zero2859; AVX-NEXT:    vpshufd {{.*#+}} xmm2 = xmm2[1,1,1,1]2860; AVX-NEXT:    vpmovzxwq {{.*#+}} xmm2 = xmm2[0],zero,zero,zero,xmm2[1],zero,zero,zero2861; AVX-NEXT:    vinsertf128 $1, %xmm2, %ymm4, %ymm22862; AVX-NEXT:    vpshuflw {{.*#+}} xmm4 = xmm0[0,0,2,1,4,5,6,7]2863; AVX-NEXT:    vpmovzxdq {{.*#+}} xmm4 = xmm4[0],zero,xmm4[1],zero2864; AVX-NEXT:    vpshuflw {{.*#+}} xmm0 = xmm0[0,2,2,3,4,5,6,7]2865; AVX-NEXT:    vpmovzxdq {{.*#+}} xmm0 = xmm0[0],zero,xmm0[1],zero2866; AVX-NEXT:    vinsertf128 $1, %xmm0, %ymm4, %ymm02867; AVX-NEXT:    vandps %ymm6, %ymm2, %ymm22868; AVX-NEXT:    vandnps %ymm0, %ymm6, %ymm02869; AVX-NEXT:    vorps %ymm0, %ymm2, %ymm02870; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm3[1],ymm0[2],ymm3[3],ymm0[4],ymm3[5],ymm0[6],ymm3[7]2871; AVX-NEXT:    vpshuflw {{.*#+}} xmm2 = xmm11[0,0,2,1,4,5,6,7]2872; AVX-NEXT:    vpshuflw {{.*#+}} xmm3 = xmm11[0,2,2,3,4,5,6,7]2873; AVX-NEXT:    vinsertf128 $1, %xmm3, %ymm2, %ymm22874; AVX-NEXT:    vpshuflw {{.*#+}} xmm3 = xmm12[0,1,1,3,4,5,6,7]2875; AVX-NEXT:    vpshuflw {{.*#+}} xmm4 = xmm12[2,1,3,3,4,5,6,7]2876; AVX-NEXT:    vinsertf128 $1, %xmm4, %ymm3, %ymm32877; AVX-NEXT:    vshufps {{.*#+}} ymm2 = ymm2[0,0,2,1,4,4,6,5]2878; AVX-NEXT:    vandnps %ymm2, %ymm9, %ymm22879; AVX-NEXT:    vshufps {{.*#+}} ymm3 = ymm3[0,0,2,1,4,4,6,5]2880; AVX-NEXT:    vandps %ymm3, %ymm9, %ymm32881; AVX-NEXT:    vorps %ymm2, %ymm3, %ymm22882; AVX-NEXT:    vpmovzxwq {{.*#+}} xmm3 = xmm14[0],zero,zero,zero,xmm14[1],zero,zero,zero2883; AVX-NEXT:    vpshufd {{.*#+}} xmm4 = xmm14[1,1,1,1]2884; AVX-NEXT:    vpmovzxwq {{.*#+}} xmm4 = xmm4[0],zero,zero,zero,xmm4[1],zero,zero,zero2885; AVX-NEXT:    vinsertf128 $1, %xmm4, %ymm3, %ymm32886; AVX-NEXT:    vpshuflw {{.*#+}} xmm4 = xmm10[0,0,2,1,4,5,6,7]2887; AVX-NEXT:    vpmovzxdq {{.*#+}} xmm4 = xmm4[0],zero,xmm4[1],zero2888; AVX-NEXT:    vpshuflw {{.*#+}} xmm5 = xmm10[0,2,2,3,4,5,6,7]2889; AVX-NEXT:    vpmovzxdq {{.*#+}} xmm5 = xmm5[0],zero,xmm5[1],zero2890; AVX-NEXT:    vinsertf128 $1, %xmm5, %ymm4, %ymm42891; AVX-NEXT:    vandps %ymm6, %ymm3, %ymm32892; AVX-NEXT:    vandnps %ymm4, %ymm6, %ymm42893; AVX-NEXT:    vorps %ymm4, %ymm3, %ymm32894; AVX-NEXT:    vblendps {{.*#+}} ymm2 = ymm3[0],ymm2[1],ymm3[2],ymm2[3],ymm3[4],ymm2[5],ymm3[6],ymm2[7]2895; AVX-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload2896; AVX-NEXT:    vpshuflw {{.*#+}} xmm3 = xmm4[0,0,2,1,4,5,6,7]2897; AVX-NEXT:    vpshuflw {{.*#+}} xmm4 = xmm4[0,2,2,3,4,5,6,7]2898; AVX-NEXT:    vinsertf128 $1, %xmm4, %ymm3, %ymm32899; AVX-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload2900; AVX-NEXT:    vpshuflw {{.*#+}} xmm4 = xmm5[0,1,1,3,4,5,6,7]2901; AVX-NEXT:    vpshuflw {{.*#+}} xmm5 = xmm5[2,1,3,3,4,5,6,7]2902; AVX-NEXT:    vinsertf128 $1, %xmm5, %ymm4, %ymm42903; AVX-NEXT:    vshufps {{.*#+}} ymm3 = ymm3[0,0,2,1,4,4,6,5]2904; AVX-NEXT:    vandnps %ymm3, %ymm9, %ymm32905; AVX-NEXT:    vshufps {{.*#+}} ymm4 = ymm4[0,0,2,1,4,4,6,5]2906; AVX-NEXT:    vandps %ymm4, %ymm9, %ymm42907; AVX-NEXT:    vorps %ymm3, %ymm4, %ymm32908; AVX-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload2909; AVX-NEXT:    vpmovzxwq {{.*#+}} xmm4 = xmm5[0],zero,zero,zero,xmm5[1],zero,zero,zero2910; AVX-NEXT:    vpshufd {{.*#+}} xmm5 = xmm5[1,1,1,1]2911; AVX-NEXT:    vpmovzxwq {{.*#+}} xmm5 = xmm5[0],zero,zero,zero,xmm5[1],zero,zero,zero2912; AVX-NEXT:    vinsertf128 $1, %xmm5, %ymm4, %ymm42913; AVX-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload2914; AVX-NEXT:    vpshuflw {{.*#+}} xmm5 = xmm7[0,0,2,1,4,5,6,7]2915; AVX-NEXT:    vpmovzxdq {{.*#+}} xmm5 = xmm5[0],zero,xmm5[1],zero2916; AVX-NEXT:    vpshuflw {{.*#+}} xmm7 = xmm7[0,2,2,3,4,5,6,7]2917; AVX-NEXT:    vpmovzxdq {{.*#+}} xmm7 = xmm7[0],zero,xmm7[1],zero2918; AVX-NEXT:    vinsertf128 $1, %xmm7, %ymm5, %ymm52919; AVX-NEXT:    vandps %ymm6, %ymm4, %ymm42920; AVX-NEXT:    vandnps %ymm5, %ymm6, %ymm52921; AVX-NEXT:    vorps %ymm5, %ymm4, %ymm42922; AVX-NEXT:    vblendps {{.*#+}} ymm3 = ymm4[0],ymm3[1],ymm4[2],ymm3[3],ymm4[4],ymm3[5],ymm4[6],ymm3[7]2923; AVX-NEXT:    movq {{[0-9]+}}(%rsp), %rax2924; AVX-NEXT:    vmovaps %ymm3, 64(%rax)2925; AVX-NEXT:    vmovaps %ymm2, 128(%rax)2926; AVX-NEXT:    vmovaps %ymm0, 192(%rax)2927; AVX-NEXT:    vmovaps %ymm1, 224(%rax)2928; AVX-NEXT:    vmovaps %ymm15, 160(%rax)2929; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload2930; AVX-NEXT:    vmovaps %ymm0, 96(%rax)2931; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload2932; AVX-NEXT:    vmovaps %ymm0, 32(%rax)2933; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload2934; AVX-NEXT:    vmovaps %ymm0, (%rax)2935; AVX-NEXT:    addq $56, %rsp2936; AVX-NEXT:    vzeroupper2937; AVX-NEXT:    retq2938;2939; AVX2-LABEL: store_i8_stride8_vf32:2940; AVX2:       # %bb.0:2941; AVX2-NEXT:    subq $40, %rsp2942; AVX2-NEXT:    movq {{[0-9]+}}(%rsp), %rax2943; AVX2-NEXT:    movq {{[0-9]+}}(%rsp), %r102944; AVX2-NEXT:    vmovdqa (%r10), %xmm32945; AVX2-NEXT:    vmovdqa (%rax), %xmm42946; AVX2-NEXT:    vpunpcklbw {{.*#+}} xmm2 = 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]2947; AVX2-NEXT:    vpshuflw {{.*#+}} xmm0 = xmm2[0,0,2,1,4,5,6,7]2948; AVX2-NEXT:    vpshuflw {{.*#+}} xmm1 = xmm2[0,2,2,3,4,5,6,7]2949; AVX2-NEXT:    vinserti128 $1, %xmm1, %ymm0, %ymm12950; AVX2-NEXT:    vmovdqa (%r9), %xmm62951; AVX2-NEXT:    vmovdqa (%r8), %xmm02952; AVX2-NEXT:    vpunpcklbw {{.*#+}} xmm11 = xmm0[0],xmm6[0],xmm0[1],xmm6[1],xmm0[2],xmm6[2],xmm0[3],xmm6[3],xmm0[4],xmm6[4],xmm0[5],xmm6[5],xmm0[6],xmm6[6],xmm0[7],xmm6[7]2953; AVX2-NEXT:    vpshuflw {{.*#+}} xmm5 = xmm11[0,1,1,3,4,5,6,7]2954; AVX2-NEXT:    vpshuflw {{.*#+}} xmm7 = xmm11[2,1,3,3,4,5,6,7]2955; AVX2-NEXT:    vinserti128 $1, %xmm7, %ymm5, %ymm52956; AVX2-NEXT:    vpblendw {{.*#+}} ymm12 = ymm5[0],ymm1[1],ymm5[2],ymm1[3],ymm5[4,5,6,7,8],ymm1[9],ymm5[10],ymm1[11],ymm5[12,13,14,15]2957; AVX2-NEXT:    vmovdqa (%rsi), %xmm52958; AVX2-NEXT:    vmovdqa (%rdi), %xmm12959; AVX2-NEXT:    vpunpcklbw {{.*#+}} xmm13 = xmm1[0],xmm5[0],xmm1[1],xmm5[1],xmm1[2],xmm5[2],xmm1[3],xmm5[3],xmm1[4],xmm5[4],xmm1[5],xmm5[5],xmm1[6],xmm5[6],xmm1[7],xmm5[7]2960; AVX2-NEXT:    vpmovzxwq {{.*#+}} ymm9 = xmm13[0],zero,zero,zero,xmm13[1],zero,zero,zero,xmm13[2],zero,zero,zero,xmm13[3],zero,zero,zero2961; AVX2-NEXT:    vmovdqa (%rcx), %xmm82962; AVX2-NEXT:    vmovdqa (%rdx), %xmm102963; AVX2-NEXT:    vpunpcklbw {{.*#+}} xmm14 = xmm10[0],xmm8[0],xmm10[1],xmm8[1],xmm10[2],xmm8[2],xmm10[3],xmm8[3],xmm10[4],xmm8[4],xmm10[5],xmm8[5],xmm10[6],xmm8[6],xmm10[7],xmm8[7]2964; AVX2-NEXT:    vpshufb {{.*#+}} xmm15 = xmm14[0,1,0,1,4,5,2,3,0,1,4,5,4,5,6,7]2965; AVX2-NEXT:    vpmovzxdq {{.*#+}} ymm15 = xmm15[0],zero,xmm15[1],zero,xmm15[2],zero,xmm15[3],zero2966; AVX2-NEXT:    vpblendw {{.*#+}} ymm15 = ymm9[0],ymm15[1],ymm9[2,3,4],ymm15[5],ymm9[6,7,8],ymm15[9],ymm9[10,11,12],ymm15[13],ymm9[14,15]2967; AVX2-NEXT:    vmovaps 16(%r10), %xmm72968; AVX2-NEXT:    vmovaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2969; AVX2-NEXT:    vpshufd {{.*#+}} ymm12 = ymm12[0,0,2,1,4,4,6,5]2970; AVX2-NEXT:    vpblendd {{.*#+}} ymm7 = ymm15[0],ymm12[1],ymm15[2],ymm12[3],ymm15[4],ymm12[5],ymm15[6],ymm12[7]2971; AVX2-NEXT:    vmovdqu %ymm7, (%rsp) # 32-byte Spill2972; AVX2-NEXT:    vpshufhw {{.*#+}} xmm12 = xmm2[0,1,2,3,4,4,6,5]2973; AVX2-NEXT:    vpshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,6,6,7]2974; AVX2-NEXT:    vinserti128 $1, %xmm2, %ymm12, %ymm22975; AVX2-NEXT:    vpshufhw {{.*#+}} xmm12 = xmm11[0,1,2,3,4,5,5,7]2976; AVX2-NEXT:    vpshufhw {{.*#+}} xmm11 = xmm11[0,1,2,3,6,5,7,7]2977; AVX2-NEXT:    vinserti128 $1, %xmm11, %ymm12, %ymm112978; AVX2-NEXT:    vmovdqa 16(%rax), %xmm122979; AVX2-NEXT:    vpblendw {{.*#+}} ymm2 = ymm11[0,1,2,3,4],ymm2[5],ymm11[6],ymm2[7],ymm11[8,9,10,11,12],ymm2[13],ymm11[14],ymm2[15]2980; AVX2-NEXT:    vpshufhw {{.*#+}} xmm11 = xmm14[0,1,2,3,4,4,6,5]2981; AVX2-NEXT:    vpshufhw {{.*#+}} xmm14 = xmm14[0,1,2,3,4,6,6,7]2982; AVX2-NEXT:    vinserti128 $1, %xmm14, %ymm11, %ymm112983; AVX2-NEXT:    vmovdqa 16(%r9), %xmm142984; AVX2-NEXT:    vpshufd {{.*#+}} ymm11 = ymm11[2,1,3,3,6,5,7,7]2985; AVX2-NEXT:    vpshufd {{.*#+}} xmm13 = xmm13[2,3,2,3]2986; AVX2-NEXT:    vpmovzxwq {{.*#+}} ymm13 = xmm13[0],zero,zero,zero,xmm13[1],zero,zero,zero,xmm13[2],zero,zero,zero,xmm13[3],zero,zero,zero2987; AVX2-NEXT:    vpblendw {{.*#+}} ymm11 = ymm13[0],ymm11[1],ymm13[2,3,4],ymm11[5],ymm13[6,7,8],ymm11[9],ymm13[10,11,12],ymm11[13],ymm13[14,15]2988; AVX2-NEXT:    vmovdqa 16(%r8), %xmm152989; AVX2-NEXT:    vpshufd {{.*#+}} ymm2 = ymm2[0,2,2,3,4,6,6,7]2990; AVX2-NEXT:    vpblendd {{.*#+}} ymm2 = ymm11[0],ymm2[1],ymm11[2],ymm2[3],ymm11[4],ymm2[5],ymm11[6],ymm2[7]2991; AVX2-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2992; AVX2-NEXT:    vpunpckhbw {{.*#+}} xmm2 = 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]2993; AVX2-NEXT:    vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2994; AVX2-NEXT:    vpshufhw {{.*#+}} xmm4 = xmm2[0,1,2,3,4,4,6,5]2995; AVX2-NEXT:    vpshufhw {{.*#+}} xmm11 = xmm2[0,1,2,3,4,6,6,7]2996; AVX2-NEXT:    vinserti128 $1, %xmm11, %ymm4, %ymm112997; AVX2-NEXT:    vpunpckhbw {{.*#+}} xmm9 = 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]2998; AVX2-NEXT:    vpshufhw {{.*#+}} xmm0 = xmm9[0,1,2,3,4,5,5,7]2999; AVX2-NEXT:    vpshufhw {{.*#+}} xmm6 = xmm9[0,1,2,3,6,5,7,7]3000; AVX2-NEXT:    vinserti128 $1, %xmm6, %ymm0, %ymm03001; AVX2-NEXT:    vpblendw {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm11[5],ymm0[6],ymm11[7],ymm0[8,9,10,11,12],ymm11[13],ymm0[14],ymm11[15]3002; AVX2-NEXT:    vpshufd {{.*#+}} ymm0 = ymm0[0,2,2,3,4,6,6,7]3003; AVX2-NEXT:    vpunpckhbw {{.*#+}} xmm2 = 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]3004; AVX2-NEXT:    vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3005; AVX2-NEXT:    vpshufhw {{.*#+}} xmm8 = xmm2[0,1,2,3,4,4,6,5]3006; AVX2-NEXT:    vpshufhw {{.*#+}} xmm10 = xmm2[0,1,2,3,4,6,6,7]3007; AVX2-NEXT:    vinserti128 $1, %xmm10, %ymm8, %ymm83008; AVX2-NEXT:    vpshufd {{.*#+}} ymm8 = ymm8[2,1,3,3,6,5,7,7]3009; AVX2-NEXT:    vpunpckhbw {{.*#+}} 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]3010; AVX2-NEXT:    vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3011; AVX2-NEXT:    vpshufd {{.*#+}} xmm5 = xmm1[2,3,2,3]3012; AVX2-NEXT:    vpmovzxwq {{.*#+}} ymm5 = xmm5[0],zero,zero,zero,xmm5[1],zero,zero,zero,xmm5[2],zero,zero,zero,xmm5[3],zero,zero,zero3013; AVX2-NEXT:    vpblendw {{.*#+}} ymm5 = ymm5[0],ymm8[1],ymm5[2,3,4],ymm8[5],ymm5[6,7,8],ymm8[9],ymm5[10,11,12],ymm8[13],ymm5[14,15]3014; AVX2-NEXT:    vpblendd {{.*#+}} ymm0 = ymm5[0],ymm0[1],ymm5[2],ymm0[3],ymm5[4],ymm0[5],ymm5[6],ymm0[7]3015; AVX2-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3016; AVX2-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload3017; AVX2-NEXT:    vpunpcklbw {{.*#+}} xmm10 = xmm12[0],xmm3[0],xmm12[1],xmm3[1],xmm12[2],xmm3[2],xmm12[3],xmm3[3],xmm12[4],xmm3[4],xmm12[5],xmm3[5],xmm12[6],xmm3[6],xmm12[7],xmm3[7]3018; AVX2-NEXT:    vpshufhw {{.*#+}} xmm0 = xmm10[0,1,2,3,4,4,6,5]3019; AVX2-NEXT:    vpshufhw {{.*#+}} xmm8 = xmm10[0,1,2,3,4,6,6,7]3020; AVX2-NEXT:    vinserti128 $1, %xmm8, %ymm0, %ymm03021; AVX2-NEXT:    vpunpcklbw {{.*#+}} xmm11 = xmm15[0],xmm14[0],xmm15[1],xmm14[1],xmm15[2],xmm14[2],xmm15[3],xmm14[3],xmm15[4],xmm14[4],xmm15[5],xmm14[5],xmm15[6],xmm14[6],xmm15[7],xmm14[7]3022; AVX2-NEXT:    vpshufhw {{.*#+}} xmm8 = xmm11[0,1,2,3,4,5,5,7]3023; AVX2-NEXT:    vpshufhw {{.*#+}} xmm13 = xmm11[0,1,2,3,6,5,7,7]3024; AVX2-NEXT:    vinserti128 $1, %xmm13, %ymm8, %ymm83025; AVX2-NEXT:    vpblendw {{.*#+}} ymm8 = ymm8[0,1,2,3,4],ymm0[5],ymm8[6],ymm0[7],ymm8[8,9,10,11,12],ymm0[13],ymm8[14],ymm0[15]3026; AVX2-NEXT:    vmovdqa 16(%rcx), %xmm73027; AVX2-NEXT:    vmovdqa 16(%rdx), %xmm43028; AVX2-NEXT:    vpunpcklbw {{.*#+}} xmm13 = xmm4[0],xmm7[0],xmm4[1],xmm7[1],xmm4[2],xmm7[2],xmm4[3],xmm7[3],xmm4[4],xmm7[4],xmm4[5],xmm7[5],xmm4[6],xmm7[6],xmm4[7],xmm7[7]3029; AVX2-NEXT:    vpshufhw {{.*#+}} xmm2 = xmm13[0,1,2,3,4,4,6,5]3030; AVX2-NEXT:    vpshufhw {{.*#+}} xmm5 = xmm13[0,1,2,3,4,6,6,7]3031; AVX2-NEXT:    vinserti128 $1, %xmm5, %ymm2, %ymm23032; AVX2-NEXT:    vpshufd {{.*#+}} ymm5 = ymm2[2,1,3,3,6,5,7,7]3033; AVX2-NEXT:    vmovdqa 16(%rsi), %xmm13034; AVX2-NEXT:    vmovdqa 16(%rdi), %xmm03035; AVX2-NEXT:    vpunpcklbw {{.*#+}} xmm2 = 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]3036; AVX2-NEXT:    vpshufd {{.*#+}} xmm6 = xmm2[2,3,2,3]3037; AVX2-NEXT:    vpmovzxwq {{.*#+}} ymm6 = xmm6[0],zero,zero,zero,xmm6[1],zero,zero,zero,xmm6[2],zero,zero,zero,xmm6[3],zero,zero,zero3038; AVX2-NEXT:    vpblendw {{.*#+}} ymm5 = ymm6[0],ymm5[1],ymm6[2,3,4],ymm5[5],ymm6[6,7,8],ymm5[9],ymm6[10,11,12],ymm5[13],ymm6[14,15]3039; AVX2-NEXT:    vpshufd {{.*#+}} ymm6 = ymm8[0,2,2,3,4,6,6,7]3040; AVX2-NEXT:    vpblendd {{.*#+}} ymm8 = ymm5[0],ymm6[1],ymm5[2],ymm6[3],ymm5[4],ymm6[5],ymm5[6],ymm6[7]3041; AVX2-NEXT:    vpunpckhbw {{.*#+}} xmm5 = xmm12[8],xmm3[8],xmm12[9],xmm3[9],xmm12[10],xmm3[10],xmm12[11],xmm3[11],xmm12[12],xmm3[12],xmm12[13],xmm3[13],xmm12[14],xmm3[14],xmm12[15],xmm3[15]3042; AVX2-NEXT:    vpshufhw {{.*#+}} xmm6 = xmm5[0,1,2,3,4,4,6,5]3043; AVX2-NEXT:    vpshufhw {{.*#+}} xmm12 = xmm5[0,1,2,3,4,6,6,7]3044; AVX2-NEXT:    vinserti128 $1, %xmm12, %ymm6, %ymm63045; AVX2-NEXT:    vpunpckhbw {{.*#+}} xmm12 = xmm15[8],xmm14[8],xmm15[9],xmm14[9],xmm15[10],xmm14[10],xmm15[11],xmm14[11],xmm15[12],xmm14[12],xmm15[13],xmm14[13],xmm15[14],xmm14[14],xmm15[15],xmm14[15]3046; AVX2-NEXT:    vpshufhw {{.*#+}} xmm14 = xmm12[0,1,2,3,4,5,5,7]3047; AVX2-NEXT:    vpshufhw {{.*#+}} xmm15 = xmm12[0,1,2,3,6,5,7,7]3048; AVX2-NEXT:    vinserti128 $1, %xmm15, %ymm14, %ymm143049; AVX2-NEXT:    vpblendw {{.*#+}} ymm6 = ymm14[0,1,2,3,4],ymm6[5],ymm14[6],ymm6[7],ymm14[8,9,10,11,12],ymm6[13],ymm14[14],ymm6[15]3050; AVX2-NEXT:    vpunpckhbw {{.*#+}} xmm3 = xmm4[8],xmm7[8],xmm4[9],xmm7[9],xmm4[10],xmm7[10],xmm4[11],xmm7[11],xmm4[12],xmm7[12],xmm4[13],xmm7[13],xmm4[14],xmm7[14],xmm4[15],xmm7[15]3051; AVX2-NEXT:    vpshufhw {{.*#+}} xmm4 = xmm3[0,1,2,3,4,4,6,5]3052; AVX2-NEXT:    vpshufhw {{.*#+}} xmm14 = xmm3[0,1,2,3,4,6,6,7]3053; AVX2-NEXT:    vinserti128 $1, %xmm14, %ymm4, %ymm43054; AVX2-NEXT:    vpunpckhbw {{.*#+}} xmm1 = xmm0[8],xmm1[8],xmm0[9],xmm1[9],xmm0[10],xmm1[10],xmm0[11],xmm1[11],xmm0[12],xmm1[12],xmm0[13],xmm1[13],xmm0[14],xmm1[14],xmm0[15],xmm1[15]3055; AVX2-NEXT:    vpshufd {{.*#+}} ymm0 = ymm4[2,1,3,3,6,5,7,7]3056; AVX2-NEXT:    vpshufd {{.*#+}} xmm4 = xmm1[2,3,2,3]3057; AVX2-NEXT:    vpmovzxwq {{.*#+}} ymm4 = xmm4[0],zero,zero,zero,xmm4[1],zero,zero,zero,xmm4[2],zero,zero,zero,xmm4[3],zero,zero,zero3058; AVX2-NEXT:    vpblendw {{.*#+}} ymm0 = ymm4[0],ymm0[1],ymm4[2,3,4],ymm0[5],ymm4[6,7,8],ymm0[9],ymm4[10,11,12],ymm0[13],ymm4[14,15]3059; AVX2-NEXT:    vpshufd {{.*#+}} ymm4 = ymm6[0,2,2,3,4,6,6,7]3060; AVX2-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0],ymm4[1],ymm0[2],ymm4[3],ymm0[4],ymm4[5],ymm0[6],ymm4[7]3061; AVX2-NEXT:    vpshuflw {{.*#+}} xmm4 = xmm5[0,0,2,1,4,5,6,7]3062; AVX2-NEXT:    vpshuflw {{.*#+}} xmm5 = xmm5[0,2,2,3,4,5,6,7]3063; AVX2-NEXT:    vinserti128 $1, %xmm5, %ymm4, %ymm43064; AVX2-NEXT:    vpshuflw {{.*#+}} xmm5 = xmm12[0,1,1,3,4,5,6,7]3065; AVX2-NEXT:    vpshuflw {{.*#+}} xmm6 = xmm12[2,1,3,3,4,5,6,7]3066; AVX2-NEXT:    vinserti128 $1, %xmm6, %ymm5, %ymm53067; AVX2-NEXT:    vpblendw {{.*#+}} ymm4 = ymm5[0],ymm4[1],ymm5[2],ymm4[3],ymm5[4,5,6,7,8],ymm4[9],ymm5[10],ymm4[11],ymm5[12,13,14,15]3068; AVX2-NEXT:    vpmovzxwq {{.*#+}} ymm1 = xmm1[0],zero,zero,zero,xmm1[1],zero,zero,zero,xmm1[2],zero,zero,zero,xmm1[3],zero,zero,zero3069; AVX2-NEXT:    vmovdqa {{.*#+}} xmm5 = [0,1,0,1,4,5,2,3,0,1,4,5,4,5,6,7]3070; AVX2-NEXT:    vpshufb %xmm5, %xmm3, %xmm33071; AVX2-NEXT:    vpmovzxdq {{.*#+}} ymm3 = xmm3[0],zero,xmm3[1],zero,xmm3[2],zero,xmm3[3],zero3072; AVX2-NEXT:    vpblendw {{.*#+}} ymm1 = ymm1[0],ymm3[1],ymm1[2,3,4],ymm3[5],ymm1[6,7,8],ymm3[9],ymm1[10,11,12],ymm3[13],ymm1[14,15]3073; AVX2-NEXT:    vpshufd {{.*#+}} ymm3 = ymm4[0,0,2,1,4,4,6,5]3074; AVX2-NEXT:    vpblendd {{.*#+}} ymm12 = ymm1[0],ymm3[1],ymm1[2],ymm3[3],ymm1[4],ymm3[5],ymm1[6],ymm3[7]3075; AVX2-NEXT:    vpshuflw {{.*#+}} xmm1 = xmm10[0,0,2,1,4,5,6,7]3076; AVX2-NEXT:    vpshuflw {{.*#+}} xmm3 = xmm10[0,2,2,3,4,5,6,7]3077; AVX2-NEXT:    vinserti128 $1, %xmm3, %ymm1, %ymm13078; AVX2-NEXT:    vpshuflw {{.*#+}} xmm3 = xmm11[0,1,1,3,4,5,6,7]3079; AVX2-NEXT:    vpshuflw {{.*#+}} xmm4 = xmm11[2,1,3,3,4,5,6,7]3080; AVX2-NEXT:    vinserti128 $1, %xmm4, %ymm3, %ymm33081; AVX2-NEXT:    vpblendw {{.*#+}} ymm1 = ymm3[0],ymm1[1],ymm3[2],ymm1[3],ymm3[4,5,6,7,8],ymm1[9],ymm3[10],ymm1[11],ymm3[12,13,14,15]3082; AVX2-NEXT:    vpmovzxwq {{.*#+}} ymm2 = xmm2[0],zero,zero,zero,xmm2[1],zero,zero,zero,xmm2[2],zero,zero,zero,xmm2[3],zero,zero,zero3083; AVX2-NEXT:    vpshufb %xmm5, %xmm13, %xmm33084; AVX2-NEXT:    vpmovzxdq {{.*#+}} ymm3 = xmm3[0],zero,xmm3[1],zero,xmm3[2],zero,xmm3[3],zero3085; AVX2-NEXT:    vpblendw {{.*#+}} ymm2 = ymm2[0],ymm3[1],ymm2[2,3,4],ymm3[5],ymm2[6,7,8],ymm3[9],ymm2[10,11,12],ymm3[13],ymm2[14,15]3086; AVX2-NEXT:    vpshufd {{.*#+}} ymm1 = ymm1[0,0,2,1,4,4,6,5]3087; AVX2-NEXT:    vpblendd {{.*#+}} ymm1 = ymm2[0],ymm1[1],ymm2[2],ymm1[3],ymm2[4],ymm1[5],ymm2[6],ymm1[7]3088; AVX2-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload3089; AVX2-NEXT:    vpshuflw {{.*#+}} xmm2 = xmm3[0,0,2,1,4,5,6,7]3090; AVX2-NEXT:    vpshuflw {{.*#+}} xmm3 = xmm3[0,2,2,3,4,5,6,7]3091; AVX2-NEXT:    vinserti128 $1, %xmm3, %ymm2, %ymm23092; AVX2-NEXT:    vpshuflw {{.*#+}} xmm3 = xmm9[0,1,1,3,4,5,6,7]3093; AVX2-NEXT:    vpshuflw {{.*#+}} xmm4 = xmm9[2,1,3,3,4,5,6,7]3094; AVX2-NEXT:    vinserti128 $1, %xmm4, %ymm3, %ymm33095; AVX2-NEXT:    vpblendw {{.*#+}} ymm2 = ymm3[0],ymm2[1],ymm3[2],ymm2[3],ymm3[4,5,6,7,8],ymm2[9],ymm3[10],ymm2[11],ymm3[12,13,14,15]3096; AVX2-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload3097; AVX2-NEXT:    vpshufb %xmm5, %xmm3, %xmm33098; AVX2-NEXT:    vpmovzxwq {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 16-byte Folded Reload3099; AVX2-NEXT:    # ymm4 = mem[0],zero,zero,zero,mem[1],zero,zero,zero,mem[2],zero,zero,zero,mem[3],zero,zero,zero3100; AVX2-NEXT:    vpmovzxdq {{.*#+}} ymm3 = xmm3[0],zero,xmm3[1],zero,xmm3[2],zero,xmm3[3],zero3101; AVX2-NEXT:    vpblendw {{.*#+}} ymm3 = ymm4[0],ymm3[1],ymm4[2,3,4],ymm3[5],ymm4[6,7,8],ymm3[9],ymm4[10,11,12],ymm3[13],ymm4[14,15]3102; AVX2-NEXT:    vpshufd {{.*#+}} ymm2 = ymm2[0,0,2,1,4,4,6,5]3103; AVX2-NEXT:    vpblendd {{.*#+}} ymm2 = ymm3[0],ymm2[1],ymm3[2],ymm2[3],ymm3[4],ymm2[5],ymm3[6],ymm2[7]3104; AVX2-NEXT:    movq {{[0-9]+}}(%rsp), %rax3105; AVX2-NEXT:    vmovdqa %ymm2, 64(%rax)3106; AVX2-NEXT:    vmovdqa %ymm1, 128(%rax)3107; AVX2-NEXT:    vmovdqa %ymm12, 192(%rax)3108; AVX2-NEXT:    vmovdqa %ymm0, 224(%rax)3109; AVX2-NEXT:    vmovdqa %ymm8, 160(%rax)3110; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3111; AVX2-NEXT:    vmovaps %ymm0, 96(%rax)3112; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3113; AVX2-NEXT:    vmovaps %ymm0, 32(%rax)3114; AVX2-NEXT:    vmovups (%rsp), %ymm0 # 32-byte Reload3115; AVX2-NEXT:    vmovaps %ymm0, (%rax)3116; AVX2-NEXT:    addq $40, %rsp3117; AVX2-NEXT:    vzeroupper3118; AVX2-NEXT:    retq3119;3120; AVX2-FP-LABEL: store_i8_stride8_vf32:3121; AVX2-FP:       # %bb.0:3122; AVX2-FP-NEXT:    subq $72, %rsp3123; AVX2-FP-NEXT:    movq {{[0-9]+}}(%rsp), %rax3124; AVX2-FP-NEXT:    movq {{[0-9]+}}(%rsp), %r103125; AVX2-FP-NEXT:    vmovdqa (%r10), %xmm53126; AVX2-FP-NEXT:    vmovdqa (%rax), %xmm63127; AVX2-FP-NEXT:    vpunpcklbw {{.*#+}} xmm1 = xmm6[0],xmm5[0],xmm6[1],xmm5[1],xmm6[2],xmm5[2],xmm6[3],xmm5[3],xmm6[4],xmm5[4],xmm6[5],xmm5[5],xmm6[6],xmm5[6],xmm6[7],xmm5[7]3128; AVX2-FP-NEXT:    vinserti128 $1, %xmm1, %ymm1, %ymm83129; AVX2-FP-NEXT:    vpshufb {{.*#+}} ymm3 = ymm8[0,1,0,1,0,1,0,1,8,9,10,11,4,5,2,3,16,17,20,21,16,17,20,21,24,25,26,27,20,21,22,23]3130; AVX2-FP-NEXT:    vmovdqa (%r9), %xmm13131; AVX2-FP-NEXT:    vmovdqa (%r8), %xmm23132; AVX2-FP-NEXT:    vpunpcklbw {{.*#+}} xmm4 = 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]3133; AVX2-FP-NEXT:    vinserti128 $1, %xmm4, %ymm4, %ymm93134; AVX2-FP-NEXT:    vpshufb {{.*#+}} ymm4 = ymm9[0,1,2,3,0,1,2,3,8,9,10,11,2,3,6,7,20,21,18,19,20,21,18,19,24,25,26,27,22,23,22,23]3135; AVX2-FP-NEXT:    vpblendw {{.*#+}} ymm11 = ymm4[0,1,2],ymm3[3],ymm4[4,5,6],ymm3[7],ymm4[8,9,10],ymm3[11],ymm4[12,13,14],ymm3[15]3136; AVX2-FP-NEXT:    vmovdqa (%rcx), %xmm73137; AVX2-FP-NEXT:    vmovdqa (%rsi), %xmm33138; AVX2-FP-NEXT:    vmovdqa (%rdi), %xmm103139; AVX2-FP-NEXT:    vpunpcklbw {{.*#+}} xmm12 = xmm10[0],xmm3[0],xmm10[1],xmm3[1],xmm10[2],xmm3[2],xmm10[3],xmm3[3],xmm10[4],xmm3[4],xmm10[5],xmm3[5],xmm10[6],xmm3[6],xmm10[7],xmm3[7]3140; AVX2-FP-NEXT:    vpshufb {{.*#+}} xmm4 = xmm12[4,5,u,u,u,u,u,u,6,7,u,u,u,u,u,u]3141; AVX2-FP-NEXT:    vpmovzxwq {{.*#+}} xmm13 = xmm12[0],zero,zero,zero,xmm12[1],zero,zero,zero3142; AVX2-FP-NEXT:    vinserti128 $1, %xmm4, %ymm13, %ymm133143; AVX2-FP-NEXT:    vmovdqa (%rdx), %xmm153144; AVX2-FP-NEXT:    vpunpcklbw {{.*#+}} xmm4 = xmm15[0],xmm7[0],xmm15[1],xmm7[1],xmm15[2],xmm7[2],xmm15[3],xmm7[3],xmm15[4],xmm7[4],xmm15[5],xmm7[5],xmm15[6],xmm7[6],xmm15[7],xmm7[7]3145; AVX2-FP-NEXT:    vinserti128 $1, %xmm4, %ymm4, %ymm03146; AVX2-FP-NEXT:    vpshufb {{.*#+}} ymm14 = ymm0[0,1,0,1,4,5,2,3,4,5,2,3,12,13,14,15,16,17,20,21,20,21,22,23,20,21,22,23,28,29,30,31]3147; AVX2-FP-NEXT:    vpblendw {{.*#+}} ymm13 = ymm13[0],ymm14[1],ymm13[2,3,4],ymm14[5],ymm13[6,7,8],ymm14[9],ymm13[10,11,12],ymm14[13],ymm13[14,15]3148; AVX2-FP-NEXT:    vpblendd {{.*#+}} ymm4 = ymm13[0],ymm11[1],ymm13[2],ymm11[3],ymm13[4],ymm11[5],ymm13[6],ymm11[7]3149; AVX2-FP-NEXT:    vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3150; AVX2-FP-NEXT:    vmovdqa {{.*#+}} ymm14 = [0,1,2,3,8,9,8,9,8,9,8,9,12,13,10,11,0,1,2,3,8,9,12,13,8,9,12,13,12,13,14,15]3151; AVX2-FP-NEXT:    vpshufb %ymm14, %ymm8, %ymm83152; AVX2-FP-NEXT:    vmovdqa {{.*#+}} ymm13 = [0,1,2,3,8,9,10,11,8,9,10,11,10,11,14,15,0,1,2,3,12,13,10,11,12,13,10,11,14,15,14,15]3153; AVX2-FP-NEXT:    vpshufb %ymm13, %ymm9, %ymm93154; AVX2-FP-NEXT:    vpblendw {{.*#+}} ymm8 = ymm9[0,1,2],ymm8[3],ymm9[4,5,6],ymm8[7],ymm9[8,9,10],ymm8[11],ymm9[12,13,14],ymm8[15]3155; AVX2-FP-NEXT:    vmovdqa {{.*#+}} ymm4 = [8,9,8,9,4,5,6,7,12,13,10,11,12,13,10,11,8,9,12,13,4,5,6,7,12,13,14,15,12,13,14,15]3156; AVX2-FP-NEXT:    vpshufb %ymm4, %ymm0, %ymm03157; AVX2-FP-NEXT:    vinserti128 $1, %xmm12, %ymm12, %ymm93158; AVX2-FP-NEXT:    vpmovsxwq {{.*#+}} ymm12 = [2312,2826,3340,3854]3159; AVX2-FP-NEXT:    vpshufb %ymm12, %ymm9, %ymm93160; AVX2-FP-NEXT:    vpblendw {{.*#+}} ymm0 = ymm9[0],ymm0[1],ymm9[2,3,4],ymm0[5],ymm9[6,7,8],ymm0[9],ymm9[10,11,12],ymm0[13],ymm9[14,15]3161; AVX2-FP-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0],ymm8[1],ymm0[2],ymm8[3],ymm0[4],ymm8[5],ymm0[6],ymm8[7]3162; AVX2-FP-NEXT:    vmovdqu %ymm0, (%rsp) # 32-byte Spill3163; AVX2-FP-NEXT:    vpunpckhbw {{.*#+}} xmm0 = xmm6[8],xmm5[8],xmm6[9],xmm5[9],xmm6[10],xmm5[10],xmm6[11],xmm5[11],xmm6[12],xmm5[12],xmm6[13],xmm5[13],xmm6[14],xmm5[14],xmm6[15],xmm5[15]3164; AVX2-FP-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]3165; AVX2-FP-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm03166; AVX2-FP-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3167; AVX2-FP-NEXT:    vinserti128 $1, %xmm1, %ymm1, %ymm13168; AVX2-FP-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3169; AVX2-FP-NEXT:    vpshufb %ymm14, %ymm0, %ymm03170; AVX2-FP-NEXT:    vpshufb %ymm13, %ymm1, %ymm13171; AVX2-FP-NEXT:    vpblendw {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3],ymm1[4,5,6],ymm0[7],ymm1[8,9,10],ymm0[11],ymm1[12,13,14],ymm0[15]3172; AVX2-FP-NEXT:    vpunpckhbw {{.*#+}} xmm1 = xmm15[8],xmm7[8],xmm15[9],xmm7[9],xmm15[10],xmm7[10],xmm15[11],xmm7[11],xmm15[12],xmm7[12],xmm15[13],xmm7[13],xmm15[14],xmm7[14],xmm15[15],xmm7[15]3173; AVX2-FP-NEXT:    vinserti128 $1, %xmm1, %ymm1, %ymm23174; AVX2-FP-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3175; AVX2-FP-NEXT:    vpunpckhbw {{.*#+}} xmm11 = xmm10[8],xmm3[8],xmm10[9],xmm3[9],xmm10[10],xmm3[10],xmm10[11],xmm3[11],xmm10[12],xmm3[12],xmm10[13],xmm3[13],xmm10[14],xmm3[14],xmm10[15],xmm3[15]3176; AVX2-FP-NEXT:    vinserti128 $1, %xmm11, %ymm11, %ymm13177; AVX2-FP-NEXT:    vpshufb %ymm12, %ymm1, %ymm13178; AVX2-FP-NEXT:    vpshufb %ymm4, %ymm2, %ymm23179; AVX2-FP-NEXT:    vpblendw {{.*#+}} ymm1 = ymm1[0],ymm2[1],ymm1[2,3,4],ymm2[5],ymm1[6,7,8],ymm2[9],ymm1[10,11,12],ymm2[13],ymm1[14,15]3180; AVX2-FP-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0],ymm0[1],ymm1[2],ymm0[3],ymm1[4],ymm0[5],ymm1[6],ymm0[7]3181; AVX2-FP-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3182; AVX2-FP-NEXT:    vmovdqa 16(%r10), %xmm83183; AVX2-FP-NEXT:    vmovdqa 16(%rax), %xmm63184; AVX2-FP-NEXT:    vpunpcklbw {{.*#+}} xmm1 = xmm6[0],xmm8[0],xmm6[1],xmm8[1],xmm6[2],xmm8[2],xmm6[3],xmm8[3],xmm6[4],xmm8[4],xmm6[5],xmm8[5],xmm6[6],xmm8[6],xmm6[7],xmm8[7]3185; AVX2-FP-NEXT:    vinserti128 $1, %xmm1, %ymm1, %ymm123186; AVX2-FP-NEXT:    vmovdqa 16(%r9), %xmm73187; AVX2-FP-NEXT:    vmovdqa 16(%r8), %xmm53188; AVX2-FP-NEXT:    vpunpcklbw {{.*#+}} xmm3 = 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]3189; AVX2-FP-NEXT:    vinserti128 $1, %xmm3, %ymm3, %ymm103190; AVX2-FP-NEXT:    vpshufb %ymm14, %ymm12, %ymm33191; AVX2-FP-NEXT:    vpshufb %ymm13, %ymm10, %ymm43192; AVX2-FP-NEXT:    vpblendw {{.*#+}} ymm15 = ymm4[0,1,2],ymm3[3],ymm4[4,5,6],ymm3[7],ymm4[8,9,10],ymm3[11],ymm4[12,13,14],ymm3[15]3193; AVX2-FP-NEXT:    vmovdqa 16(%rcx), %xmm43194; AVX2-FP-NEXT:    vmovdqa 16(%rdx), %xmm23195; AVX2-FP-NEXT:    vpunpcklbw {{.*#+}} xmm3 = xmm2[0],xmm4[0],xmm2[1],xmm4[1],xmm2[2],xmm4[2],xmm2[3],xmm4[3],xmm2[4],xmm4[4],xmm2[5],xmm4[5],xmm2[6],xmm4[6],xmm2[7],xmm4[7]3196; AVX2-FP-NEXT:    vinserti128 $1, %xmm3, %ymm3, %ymm93197; AVX2-FP-NEXT:    vmovdqa 16(%rsi), %xmm13198; AVX2-FP-NEXT:    vmovdqa 16(%rdi), %xmm03199; AVX2-FP-NEXT:    vpunpcklbw {{.*#+}} xmm3 = 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]3200; AVX2-FP-NEXT:    vinserti128 $1, %xmm3, %ymm3, %ymm143201; AVX2-FP-NEXT:    vpshufb {{.*#+}} ymm14 = ymm14[8,9,u,u,u,u,u,u,10,11,u,u,u,u,u,u,28,29,u,u,u,u,u,u,30,31,u,u,u,u,u,u]3202; AVX2-FP-NEXT:    vpshufb {{.*#+}} ymm13 = ymm9[8,9,8,9,4,5,6,7,12,13,10,11,12,13,10,11,24,25,28,29,20,21,22,23,28,29,30,31,28,29,30,31]3203; AVX2-FP-NEXT:    vpblendw {{.*#+}} ymm13 = ymm14[0],ymm13[1],ymm14[2,3,4],ymm13[5],ymm14[6,7,8],ymm13[9],ymm14[10,11,12],ymm13[13],ymm14[14,15]3204; AVX2-FP-NEXT:    vpblendd {{.*#+}} ymm15 = ymm13[0],ymm15[1],ymm13[2],ymm15[3],ymm13[4],ymm15[5],ymm13[6],ymm15[7]3205; AVX2-FP-NEXT:    vpunpckhbw {{.*#+}} xmm6 = xmm6[8],xmm8[8],xmm6[9],xmm8[9],xmm6[10],xmm8[10],xmm6[11],xmm8[11],xmm6[12],xmm8[12],xmm6[13],xmm8[13],xmm6[14],xmm8[14],xmm6[15],xmm8[15]3206; AVX2-FP-NEXT:    vpunpckhbw {{.*#+}} xmm5 = 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]3207; AVX2-FP-NEXT:    vinserti128 $1, %xmm6, %ymm6, %ymm63208; AVX2-FP-NEXT:    vpshufb {{.*#+}} ymm7 = ymm6[0,1,2,3,8,9,8,9,8,9,8,9,12,13,10,11,16,17,18,19,24,25,28,29,24,25,28,29,28,29,30,31]3209; AVX2-FP-NEXT:    vinserti128 $1, %xmm5, %ymm5, %ymm53210; AVX2-FP-NEXT:    vpshufb {{.*#+}} ymm8 = ymm5[0,1,2,3,8,9,10,11,8,9,10,11,10,11,14,15,16,17,18,19,28,29,26,27,28,29,26,27,30,31,30,31]3211; AVX2-FP-NEXT:    vpblendw {{.*#+}} ymm7 = ymm8[0,1,2],ymm7[3],ymm8[4,5,6],ymm7[7],ymm8[8,9,10],ymm7[11],ymm8[12,13,14],ymm7[15]3212; AVX2-FP-NEXT:    vpunpckhbw {{.*#+}} xmm2 = xmm2[8],xmm4[8],xmm2[9],xmm4[9],xmm2[10],xmm4[10],xmm2[11],xmm4[11],xmm2[12],xmm4[12],xmm2[13],xmm4[13],xmm2[14],xmm4[14],xmm2[15],xmm4[15]3213; AVX2-FP-NEXT:    vpunpckhbw {{.*#+}} xmm1 = xmm0[8],xmm1[8],xmm0[9],xmm1[9],xmm0[10],xmm1[10],xmm0[11],xmm1[11],xmm0[12],xmm1[12],xmm0[13],xmm1[13],xmm0[14],xmm1[14],xmm0[15],xmm1[15]3214; AVX2-FP-NEXT:    vinserti128 $1, %xmm1, %ymm1, %ymm03215; AVX2-FP-NEXT:    vpshufb {{.*#+}} ymm0 = ymm0[8,9,u,u,u,u,u,u,10,11,u,u,u,u,u,u,28,29,u,u,u,u,u,u,30,31,u,u,u,u,u,u]3216; AVX2-FP-NEXT:    vinserti128 $1, %xmm2, %ymm2, %ymm23217; AVX2-FP-NEXT:    vpshufb {{.*#+}} ymm4 = ymm2[8,9,8,9,4,5,6,7,12,13,10,11,12,13,10,11,24,25,28,29,20,21,22,23,28,29,30,31,28,29,30,31]3218; AVX2-FP-NEXT:    vpblendw {{.*#+}} ymm0 = ymm0[0],ymm4[1],ymm0[2,3,4],ymm4[5],ymm0[6,7,8],ymm4[9],ymm0[10,11,12],ymm4[13],ymm0[14,15]3219; AVX2-FP-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0],ymm7[1],ymm0[2],ymm7[3],ymm0[4],ymm7[5],ymm0[6],ymm7[7]3220; AVX2-FP-NEXT:    vmovdqa {{.*#+}} ymm7 = [0,1,0,1,0,1,0,1,8,9,10,11,4,5,2,3,0,1,4,5,0,1,4,5,8,9,10,11,4,5,6,7]3221; AVX2-FP-NEXT:    vpshufb %ymm7, %ymm6, %ymm43222; AVX2-FP-NEXT:    vmovdqa {{.*#+}} ymm6 = [0,1,2,3,0,1,2,3,8,9,10,11,2,3,6,7,4,5,2,3,4,5,2,3,8,9,10,11,6,7,6,7]3223; AVX2-FP-NEXT:    vpshufb %ymm6, %ymm5, %ymm53224; AVX2-FP-NEXT:    vpblendw {{.*#+}} ymm4 = ymm5[0,1,2],ymm4[3],ymm5[4,5,6],ymm4[7],ymm5[8,9,10],ymm4[11],ymm5[12,13,14],ymm4[15]3225; AVX2-FP-NEXT:    vpmovsxwq {{.*#+}} xmm8 = [1284,1798]3226; AVX2-FP-NEXT:    vpshufb %xmm8, %xmm1, %xmm53227; AVX2-FP-NEXT:    vpmovzxwq {{.*#+}} xmm1 = xmm1[0],zero,zero,zero,xmm1[1],zero,zero,zero3228; AVX2-FP-NEXT:    vinserti128 $1, %xmm5, %ymm1, %ymm13229; AVX2-FP-NEXT:    vmovdqa {{.*#+}} ymm5 = [0,1,0,1,4,5,2,3,4,5,2,3,12,13,14,15,0,1,4,5,4,5,6,7,4,5,6,7,12,13,14,15]3230; AVX2-FP-NEXT:    vpshufb %ymm5, %ymm2, %ymm23231; AVX2-FP-NEXT:    vpblendw {{.*#+}} ymm1 = ymm1[0],ymm2[1],ymm1[2,3,4],ymm2[5],ymm1[6,7,8],ymm2[9],ymm1[10,11,12],ymm2[13],ymm1[14,15]3232; AVX2-FP-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0],ymm4[1],ymm1[2],ymm4[3],ymm1[4],ymm4[5],ymm1[6],ymm4[7]3233; AVX2-FP-NEXT:    vpshufb %ymm7, %ymm12, %ymm23234; AVX2-FP-NEXT:    vpshufb %ymm6, %ymm10, %ymm43235; AVX2-FP-NEXT:    vpblendw {{.*#+}} ymm2 = ymm4[0,1,2],ymm2[3],ymm4[4,5,6],ymm2[7],ymm4[8,9,10],ymm2[11],ymm4[12,13,14],ymm2[15]3236; AVX2-FP-NEXT:    vpshufb %xmm8, %xmm3, %xmm43237; AVX2-FP-NEXT:    vpmovzxwq {{.*#+}} xmm3 = xmm3[0],zero,zero,zero,xmm3[1],zero,zero,zero3238; AVX2-FP-NEXT:    vinserti128 $1, %xmm4, %ymm3, %ymm33239; AVX2-FP-NEXT:    vpshufb %ymm5, %ymm9, %ymm43240; AVX2-FP-NEXT:    vpblendw {{.*#+}} ymm3 = ymm3[0],ymm4[1],ymm3[2,3,4],ymm4[5],ymm3[6,7,8],ymm4[9],ymm3[10,11,12],ymm4[13],ymm3[14,15]3241; AVX2-FP-NEXT:    vpblendd {{.*#+}} ymm2 = ymm3[0],ymm2[1],ymm3[2],ymm2[3],ymm3[4],ymm2[5],ymm3[6],ymm2[7]3242; AVX2-FP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload3243; AVX2-FP-NEXT:    vpshufb %ymm7, %ymm3, %ymm33244; AVX2-FP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload3245; AVX2-FP-NEXT:    vpshufb %ymm6, %ymm4, %ymm43246; AVX2-FP-NEXT:    vpblendw {{.*#+}} ymm3 = ymm4[0,1,2],ymm3[3],ymm4[4,5,6],ymm3[7],ymm4[8,9,10],ymm3[11],ymm4[12,13,14],ymm3[15]3247; AVX2-FP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload3248; AVX2-FP-NEXT:    vpshufb %ymm5, %ymm4, %ymm43249; AVX2-FP-NEXT:    vpshufb %xmm8, %xmm11, %xmm53250; AVX2-FP-NEXT:    vpmovzxwq {{.*#+}} xmm6 = xmm11[0],zero,zero,zero,xmm11[1],zero,zero,zero3251; AVX2-FP-NEXT:    vinserti128 $1, %xmm5, %ymm6, %ymm53252; AVX2-FP-NEXT:    vpblendw {{.*#+}} ymm4 = ymm5[0],ymm4[1],ymm5[2,3,4],ymm4[5],ymm5[6,7,8],ymm4[9],ymm5[10,11,12],ymm4[13],ymm5[14,15]3253; AVX2-FP-NEXT:    vpblendd {{.*#+}} ymm3 = ymm4[0],ymm3[1],ymm4[2],ymm3[3],ymm4[4],ymm3[5],ymm4[6],ymm3[7]3254; AVX2-FP-NEXT:    movq {{[0-9]+}}(%rsp), %rax3255; AVX2-FP-NEXT:    vmovdqa %ymm3, 64(%rax)3256; AVX2-FP-NEXT:    vmovdqa %ymm2, 128(%rax)3257; AVX2-FP-NEXT:    vmovdqa %ymm1, 192(%rax)3258; AVX2-FP-NEXT:    vmovdqa %ymm0, 224(%rax)3259; AVX2-FP-NEXT:    vmovdqa %ymm15, 160(%rax)3260; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3261; AVX2-FP-NEXT:    vmovaps %ymm0, 96(%rax)3262; AVX2-FP-NEXT:    vmovups (%rsp), %ymm0 # 32-byte Reload3263; AVX2-FP-NEXT:    vmovaps %ymm0, 32(%rax)3264; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3265; AVX2-FP-NEXT:    vmovaps %ymm0, (%rax)3266; AVX2-FP-NEXT:    addq $72, %rsp3267; AVX2-FP-NEXT:    vzeroupper3268; AVX2-FP-NEXT:    retq3269;3270; AVX2-FCP-LABEL: store_i8_stride8_vf32:3271; AVX2-FCP:       # %bb.0:3272; AVX2-FCP-NEXT:    subq $72, %rsp3273; AVX2-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax3274; AVX2-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r103275; AVX2-FCP-NEXT:    vmovdqa (%r10), %xmm53276; AVX2-FCP-NEXT:    vmovdqa (%rax), %xmm63277; AVX2-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm1 = xmm6[0],xmm5[0],xmm6[1],xmm5[1],xmm6[2],xmm5[2],xmm6[3],xmm5[3],xmm6[4],xmm5[4],xmm6[5],xmm5[5],xmm6[6],xmm5[6],xmm6[7],xmm5[7]3278; AVX2-FCP-NEXT:    vinserti128 $1, %xmm1, %ymm1, %ymm83279; AVX2-FCP-NEXT:    vpshufb {{.*#+}} ymm3 = ymm8[0,1,0,1,0,1,0,1,8,9,10,11,4,5,2,3,16,17,20,21,16,17,20,21,24,25,26,27,20,21,22,23]3280; AVX2-FCP-NEXT:    vmovdqa (%r9), %xmm13281; AVX2-FCP-NEXT:    vmovdqa (%r8), %xmm23282; AVX2-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm4 = 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]3283; AVX2-FCP-NEXT:    vinserti128 $1, %xmm4, %ymm4, %ymm93284; AVX2-FCP-NEXT:    vpshufb {{.*#+}} ymm4 = ymm9[0,1,2,3,0,1,2,3,8,9,10,11,2,3,6,7,20,21,18,19,20,21,18,19,24,25,26,27,22,23,22,23]3285; AVX2-FCP-NEXT:    vpblendw {{.*#+}} ymm11 = ymm4[0,1,2],ymm3[3],ymm4[4,5,6],ymm3[7],ymm4[8,9,10],ymm3[11],ymm4[12,13,14],ymm3[15]3286; AVX2-FCP-NEXT:    vmovdqa (%rcx), %xmm73287; AVX2-FCP-NEXT:    vmovdqa (%rsi), %xmm33288; AVX2-FCP-NEXT:    vmovdqa (%rdi), %xmm103289; AVX2-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm12 = xmm10[0],xmm3[0],xmm10[1],xmm3[1],xmm10[2],xmm3[2],xmm10[3],xmm3[3],xmm10[4],xmm3[4],xmm10[5],xmm3[5],xmm10[6],xmm3[6],xmm10[7],xmm3[7]3290; AVX2-FCP-NEXT:    vpshufb {{.*#+}} xmm4 = xmm12[4,5,u,u,u,u,u,u,6,7,u,u,u,u,u,u]3291; AVX2-FCP-NEXT:    vpmovzxwq {{.*#+}} xmm13 = xmm12[0],zero,zero,zero,xmm12[1],zero,zero,zero3292; AVX2-FCP-NEXT:    vinserti128 $1, %xmm4, %ymm13, %ymm133293; AVX2-FCP-NEXT:    vmovdqa (%rdx), %xmm153294; AVX2-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm4 = xmm15[0],xmm7[0],xmm15[1],xmm7[1],xmm15[2],xmm7[2],xmm15[3],xmm7[3],xmm15[4],xmm7[4],xmm15[5],xmm7[5],xmm15[6],xmm7[6],xmm15[7],xmm7[7]3295; AVX2-FCP-NEXT:    vinserti128 $1, %xmm4, %ymm4, %ymm03296; AVX2-FCP-NEXT:    vpshufb {{.*#+}} ymm14 = ymm0[0,1,0,1,4,5,2,3,4,5,2,3,12,13,14,15,16,17,20,21,20,21,22,23,20,21,22,23,28,29,30,31]3297; AVX2-FCP-NEXT:    vpblendw {{.*#+}} ymm13 = ymm13[0],ymm14[1],ymm13[2,3,4],ymm14[5],ymm13[6,7,8],ymm14[9],ymm13[10,11,12],ymm14[13],ymm13[14,15]3298; AVX2-FCP-NEXT:    vpblendd {{.*#+}} ymm4 = ymm13[0],ymm11[1],ymm13[2],ymm11[3],ymm13[4],ymm11[5],ymm13[6],ymm11[7]3299; AVX2-FCP-NEXT:    vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3300; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} ymm14 = [0,1,2,3,8,9,8,9,8,9,8,9,12,13,10,11,0,1,2,3,8,9,12,13,8,9,12,13,12,13,14,15]3301; AVX2-FCP-NEXT:    vpshufb %ymm14, %ymm8, %ymm83302; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} ymm13 = [0,1,2,3,8,9,10,11,8,9,10,11,10,11,14,15,0,1,2,3,12,13,10,11,12,13,10,11,14,15,14,15]3303; AVX2-FCP-NEXT:    vpshufb %ymm13, %ymm9, %ymm93304; AVX2-FCP-NEXT:    vpblendw {{.*#+}} ymm8 = ymm9[0,1,2],ymm8[3],ymm9[4,5,6],ymm8[7],ymm9[8,9,10],ymm8[11],ymm9[12,13,14],ymm8[15]3305; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} ymm4 = [8,9,8,9,4,5,6,7,12,13,10,11,12,13,10,11,8,9,12,13,4,5,6,7,12,13,14,15,12,13,14,15]3306; AVX2-FCP-NEXT:    vpshufb %ymm4, %ymm0, %ymm03307; AVX2-FCP-NEXT:    vinserti128 $1, %xmm12, %ymm12, %ymm93308; AVX2-FCP-NEXT:    vpmovsxwq {{.*#+}} ymm12 = [2312,2826,3340,3854]3309; AVX2-FCP-NEXT:    vpshufb %ymm12, %ymm9, %ymm93310; AVX2-FCP-NEXT:    vpblendw {{.*#+}} ymm0 = ymm9[0],ymm0[1],ymm9[2,3,4],ymm0[5],ymm9[6,7,8],ymm0[9],ymm9[10,11,12],ymm0[13],ymm9[14,15]3311; AVX2-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0],ymm8[1],ymm0[2],ymm8[3],ymm0[4],ymm8[5],ymm0[6],ymm8[7]3312; AVX2-FCP-NEXT:    vmovdqu %ymm0, (%rsp) # 32-byte Spill3313; AVX2-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm0 = xmm6[8],xmm5[8],xmm6[9],xmm5[9],xmm6[10],xmm5[10],xmm6[11],xmm5[11],xmm6[12],xmm5[12],xmm6[13],xmm5[13],xmm6[14],xmm5[14],xmm6[15],xmm5[15]3314; 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]3315; AVX2-FCP-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm03316; AVX2-FCP-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3317; AVX2-FCP-NEXT:    vinserti128 $1, %xmm1, %ymm1, %ymm13318; AVX2-FCP-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3319; AVX2-FCP-NEXT:    vpshufb %ymm14, %ymm0, %ymm03320; AVX2-FCP-NEXT:    vpshufb %ymm13, %ymm1, %ymm13321; AVX2-FCP-NEXT:    vpblendw {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3],ymm1[4,5,6],ymm0[7],ymm1[8,9,10],ymm0[11],ymm1[12,13,14],ymm0[15]3322; AVX2-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm1 = xmm15[8],xmm7[8],xmm15[9],xmm7[9],xmm15[10],xmm7[10],xmm15[11],xmm7[11],xmm15[12],xmm7[12],xmm15[13],xmm7[13],xmm15[14],xmm7[14],xmm15[15],xmm7[15]3323; AVX2-FCP-NEXT:    vinserti128 $1, %xmm1, %ymm1, %ymm23324; AVX2-FCP-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3325; AVX2-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm11 = xmm10[8],xmm3[8],xmm10[9],xmm3[9],xmm10[10],xmm3[10],xmm10[11],xmm3[11],xmm10[12],xmm3[12],xmm10[13],xmm3[13],xmm10[14],xmm3[14],xmm10[15],xmm3[15]3326; AVX2-FCP-NEXT:    vinserti128 $1, %xmm11, %ymm11, %ymm13327; AVX2-FCP-NEXT:    vpshufb %ymm12, %ymm1, %ymm13328; AVX2-FCP-NEXT:    vpshufb %ymm4, %ymm2, %ymm23329; AVX2-FCP-NEXT:    vpblendw {{.*#+}} ymm1 = ymm1[0],ymm2[1],ymm1[2,3,4],ymm2[5],ymm1[6,7,8],ymm2[9],ymm1[10,11,12],ymm2[13],ymm1[14,15]3330; AVX2-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0],ymm0[1],ymm1[2],ymm0[3],ymm1[4],ymm0[5],ymm1[6],ymm0[7]3331; AVX2-FCP-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3332; AVX2-FCP-NEXT:    vmovdqa 16(%r10), %xmm83333; AVX2-FCP-NEXT:    vmovdqa 16(%rax), %xmm63334; AVX2-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm1 = xmm6[0],xmm8[0],xmm6[1],xmm8[1],xmm6[2],xmm8[2],xmm6[3],xmm8[3],xmm6[4],xmm8[4],xmm6[5],xmm8[5],xmm6[6],xmm8[6],xmm6[7],xmm8[7]3335; AVX2-FCP-NEXT:    vinserti128 $1, %xmm1, %ymm1, %ymm123336; AVX2-FCP-NEXT:    vmovdqa 16(%r9), %xmm73337; AVX2-FCP-NEXT:    vmovdqa 16(%r8), %xmm53338; AVX2-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm3 = 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]3339; AVX2-FCP-NEXT:    vinserti128 $1, %xmm3, %ymm3, %ymm103340; AVX2-FCP-NEXT:    vpshufb %ymm14, %ymm12, %ymm33341; AVX2-FCP-NEXT:    vpshufb %ymm13, %ymm10, %ymm43342; AVX2-FCP-NEXT:    vpblendw {{.*#+}} ymm15 = ymm4[0,1,2],ymm3[3],ymm4[4,5,6],ymm3[7],ymm4[8,9,10],ymm3[11],ymm4[12,13,14],ymm3[15]3343; AVX2-FCP-NEXT:    vmovdqa 16(%rcx), %xmm43344; AVX2-FCP-NEXT:    vmovdqa 16(%rdx), %xmm23345; AVX2-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm3 = xmm2[0],xmm4[0],xmm2[1],xmm4[1],xmm2[2],xmm4[2],xmm2[3],xmm4[3],xmm2[4],xmm4[4],xmm2[5],xmm4[5],xmm2[6],xmm4[6],xmm2[7],xmm4[7]3346; AVX2-FCP-NEXT:    vinserti128 $1, %xmm3, %ymm3, %ymm93347; AVX2-FCP-NEXT:    vmovdqa 16(%rsi), %xmm13348; AVX2-FCP-NEXT:    vmovdqa 16(%rdi), %xmm03349; AVX2-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm3 = 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]3350; AVX2-FCP-NEXT:    vinserti128 $1, %xmm3, %ymm3, %ymm143351; AVX2-FCP-NEXT:    vpshufb {{.*#+}} ymm14 = ymm14[8,9,u,u,u,u,u,u,10,11,u,u,u,u,u,u,28,29,u,u,u,u,u,u,30,31,u,u,u,u,u,u]3352; AVX2-FCP-NEXT:    vpshufb {{.*#+}} ymm13 = ymm9[8,9,8,9,4,5,6,7,12,13,10,11,12,13,10,11,24,25,28,29,20,21,22,23,28,29,30,31,28,29,30,31]3353; AVX2-FCP-NEXT:    vpblendw {{.*#+}} ymm13 = ymm14[0],ymm13[1],ymm14[2,3,4],ymm13[5],ymm14[6,7,8],ymm13[9],ymm14[10,11,12],ymm13[13],ymm14[14,15]3354; AVX2-FCP-NEXT:    vpblendd {{.*#+}} ymm15 = ymm13[0],ymm15[1],ymm13[2],ymm15[3],ymm13[4],ymm15[5],ymm13[6],ymm15[7]3355; AVX2-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm6 = xmm6[8],xmm8[8],xmm6[9],xmm8[9],xmm6[10],xmm8[10],xmm6[11],xmm8[11],xmm6[12],xmm8[12],xmm6[13],xmm8[13],xmm6[14],xmm8[14],xmm6[15],xmm8[15]3356; AVX2-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm5 = 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]3357; AVX2-FCP-NEXT:    vinserti128 $1, %xmm6, %ymm6, %ymm63358; AVX2-FCP-NEXT:    vpshufb {{.*#+}} ymm7 = ymm6[0,1,2,3,8,9,8,9,8,9,8,9,12,13,10,11,16,17,18,19,24,25,28,29,24,25,28,29,28,29,30,31]3359; AVX2-FCP-NEXT:    vinserti128 $1, %xmm5, %ymm5, %ymm53360; AVX2-FCP-NEXT:    vpshufb {{.*#+}} ymm8 = ymm5[0,1,2,3,8,9,10,11,8,9,10,11,10,11,14,15,16,17,18,19,28,29,26,27,28,29,26,27,30,31,30,31]3361; AVX2-FCP-NEXT:    vpblendw {{.*#+}} ymm7 = ymm8[0,1,2],ymm7[3],ymm8[4,5,6],ymm7[7],ymm8[8,9,10],ymm7[11],ymm8[12,13,14],ymm7[15]3362; AVX2-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm2 = xmm2[8],xmm4[8],xmm2[9],xmm4[9],xmm2[10],xmm4[10],xmm2[11],xmm4[11],xmm2[12],xmm4[12],xmm2[13],xmm4[13],xmm2[14],xmm4[14],xmm2[15],xmm4[15]3363; AVX2-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm1 = xmm0[8],xmm1[8],xmm0[9],xmm1[9],xmm0[10],xmm1[10],xmm0[11],xmm1[11],xmm0[12],xmm1[12],xmm0[13],xmm1[13],xmm0[14],xmm1[14],xmm0[15],xmm1[15]3364; AVX2-FCP-NEXT:    vinserti128 $1, %xmm1, %ymm1, %ymm03365; AVX2-FCP-NEXT:    vpshufb {{.*#+}} ymm0 = ymm0[8,9,u,u,u,u,u,u,10,11,u,u,u,u,u,u,28,29,u,u,u,u,u,u,30,31,u,u,u,u,u,u]3366; AVX2-FCP-NEXT:    vinserti128 $1, %xmm2, %ymm2, %ymm23367; AVX2-FCP-NEXT:    vpshufb {{.*#+}} ymm4 = ymm2[8,9,8,9,4,5,6,7,12,13,10,11,12,13,10,11,24,25,28,29,20,21,22,23,28,29,30,31,28,29,30,31]3368; AVX2-FCP-NEXT:    vpblendw {{.*#+}} ymm0 = ymm0[0],ymm4[1],ymm0[2,3,4],ymm4[5],ymm0[6,7,8],ymm4[9],ymm0[10,11,12],ymm4[13],ymm0[14,15]3369; AVX2-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0],ymm7[1],ymm0[2],ymm7[3],ymm0[4],ymm7[5],ymm0[6],ymm7[7]3370; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} ymm7 = [0,1,0,1,0,1,0,1,8,9,10,11,4,5,2,3,0,1,4,5,0,1,4,5,8,9,10,11,4,5,6,7]3371; AVX2-FCP-NEXT:    vpshufb %ymm7, %ymm6, %ymm43372; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} ymm6 = [0,1,2,3,0,1,2,3,8,9,10,11,2,3,6,7,4,5,2,3,4,5,2,3,8,9,10,11,6,7,6,7]3373; AVX2-FCP-NEXT:    vpshufb %ymm6, %ymm5, %ymm53374; AVX2-FCP-NEXT:    vpblendw {{.*#+}} ymm4 = ymm5[0,1,2],ymm4[3],ymm5[4,5,6],ymm4[7],ymm5[8,9,10],ymm4[11],ymm5[12,13,14],ymm4[15]3375; AVX2-FCP-NEXT:    vpmovsxwq {{.*#+}} xmm8 = [1284,1798]3376; AVX2-FCP-NEXT:    vpshufb %xmm8, %xmm1, %xmm53377; AVX2-FCP-NEXT:    vpmovzxwq {{.*#+}} xmm1 = xmm1[0],zero,zero,zero,xmm1[1],zero,zero,zero3378; AVX2-FCP-NEXT:    vinserti128 $1, %xmm5, %ymm1, %ymm13379; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} ymm5 = [0,1,0,1,4,5,2,3,4,5,2,3,12,13,14,15,0,1,4,5,4,5,6,7,4,5,6,7,12,13,14,15]3380; AVX2-FCP-NEXT:    vpshufb %ymm5, %ymm2, %ymm23381; AVX2-FCP-NEXT:    vpblendw {{.*#+}} ymm1 = ymm1[0],ymm2[1],ymm1[2,3,4],ymm2[5],ymm1[6,7,8],ymm2[9],ymm1[10,11,12],ymm2[13],ymm1[14,15]3382; AVX2-FCP-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0],ymm4[1],ymm1[2],ymm4[3],ymm1[4],ymm4[5],ymm1[6],ymm4[7]3383; AVX2-FCP-NEXT:    vpshufb %ymm7, %ymm12, %ymm23384; AVX2-FCP-NEXT:    vpshufb %ymm6, %ymm10, %ymm43385; AVX2-FCP-NEXT:    vpblendw {{.*#+}} ymm2 = ymm4[0,1,2],ymm2[3],ymm4[4,5,6],ymm2[7],ymm4[8,9,10],ymm2[11],ymm4[12,13,14],ymm2[15]3386; AVX2-FCP-NEXT:    vpshufb %xmm8, %xmm3, %xmm43387; AVX2-FCP-NEXT:    vpmovzxwq {{.*#+}} xmm3 = xmm3[0],zero,zero,zero,xmm3[1],zero,zero,zero3388; AVX2-FCP-NEXT:    vinserti128 $1, %xmm4, %ymm3, %ymm33389; AVX2-FCP-NEXT:    vpshufb %ymm5, %ymm9, %ymm43390; AVX2-FCP-NEXT:    vpblendw {{.*#+}} ymm3 = ymm3[0],ymm4[1],ymm3[2,3,4],ymm4[5],ymm3[6,7,8],ymm4[9],ymm3[10,11,12],ymm4[13],ymm3[14,15]3391; AVX2-FCP-NEXT:    vpblendd {{.*#+}} ymm2 = ymm3[0],ymm2[1],ymm3[2],ymm2[3],ymm3[4],ymm2[5],ymm3[6],ymm2[7]3392; AVX2-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload3393; AVX2-FCP-NEXT:    vpshufb %ymm7, %ymm3, %ymm33394; AVX2-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload3395; AVX2-FCP-NEXT:    vpshufb %ymm6, %ymm4, %ymm43396; AVX2-FCP-NEXT:    vpblendw {{.*#+}} ymm3 = ymm4[0,1,2],ymm3[3],ymm4[4,5,6],ymm3[7],ymm4[8,9,10],ymm3[11],ymm4[12,13,14],ymm3[15]3397; AVX2-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload3398; AVX2-FCP-NEXT:    vpshufb %ymm5, %ymm4, %ymm43399; AVX2-FCP-NEXT:    vpshufb %xmm8, %xmm11, %xmm53400; AVX2-FCP-NEXT:    vpmovzxwq {{.*#+}} xmm6 = xmm11[0],zero,zero,zero,xmm11[1],zero,zero,zero3401; AVX2-FCP-NEXT:    vinserti128 $1, %xmm5, %ymm6, %ymm53402; AVX2-FCP-NEXT:    vpblendw {{.*#+}} ymm4 = ymm5[0],ymm4[1],ymm5[2,3,4],ymm4[5],ymm5[6,7,8],ymm4[9],ymm5[10,11,12],ymm4[13],ymm5[14,15]3403; AVX2-FCP-NEXT:    vpblendd {{.*#+}} ymm3 = ymm4[0],ymm3[1],ymm4[2],ymm3[3],ymm4[4],ymm3[5],ymm4[6],ymm3[7]3404; AVX2-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax3405; AVX2-FCP-NEXT:    vmovdqa %ymm3, 64(%rax)3406; AVX2-FCP-NEXT:    vmovdqa %ymm2, 128(%rax)3407; AVX2-FCP-NEXT:    vmovdqa %ymm1, 192(%rax)3408; AVX2-FCP-NEXT:    vmovdqa %ymm0, 224(%rax)3409; AVX2-FCP-NEXT:    vmovdqa %ymm15, 160(%rax)3410; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3411; AVX2-FCP-NEXT:    vmovaps %ymm0, 96(%rax)3412; AVX2-FCP-NEXT:    vmovups (%rsp), %ymm0 # 32-byte Reload3413; AVX2-FCP-NEXT:    vmovaps %ymm0, 32(%rax)3414; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3415; AVX2-FCP-NEXT:    vmovaps %ymm0, (%rax)3416; AVX2-FCP-NEXT:    addq $72, %rsp3417; AVX2-FCP-NEXT:    vzeroupper3418; AVX2-FCP-NEXT:    retq3419;3420; AVX512-LABEL: store_i8_stride8_vf32:3421; AVX512:       # %bb.0:3422; AVX512-NEXT:    movq {{[0-9]+}}(%rsp), %rax3423; AVX512-NEXT:    movq {{[0-9]+}}(%rsp), %r103424; AVX512-NEXT:    vmovdqa (%r10), %xmm13425; AVX512-NEXT:    vmovdqa 16(%r10), %xmm113426; AVX512-NEXT:    vmovdqa (%rax), %xmm53427; AVX512-NEXT:    vmovdqa 16(%rax), %xmm123428; AVX512-NEXT:    vpunpckhbw {{.*#+}} xmm0 = xmm5[8],xmm1[8],xmm5[9],xmm1[9],xmm5[10],xmm1[10],xmm5[11],xmm1[11],xmm5[12],xmm1[12],xmm5[13],xmm1[13],xmm5[14],xmm1[14],xmm5[15],xmm1[15]3429; AVX512-NEXT:    vmovdqa64 %xmm1, %xmm223430; AVX512-NEXT:    vpshufhw {{.*#+}} xmm1 = xmm0[0,1,2,3,4,4,6,5]3431; AVX512-NEXT:    vpshufhw {{.*#+}} xmm2 = xmm0[0,1,2,3,4,6,6,7]3432; AVX512-NEXT:    vinserti128 $1, %xmm2, %ymm1, %ymm13433; AVX512-NEXT:    vpshufd {{.*#+}} ymm1 = ymm1[0,2,2,3,4,6,6,7]3434; AVX512-NEXT:    vmovdqa (%r9), %xmm63435; AVX512-NEXT:    vmovdqa 16(%r9), %xmm143436; AVX512-NEXT:    vmovdqa (%r8), %xmm73437; AVX512-NEXT:    vmovdqa 16(%r8), %xmm153438; AVX512-NEXT:    vpunpckhbw {{.*#+}} xmm2 = 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]3439; AVX512-NEXT:    vpshufhw {{.*#+}} xmm3 = xmm2[0,1,2,3,4,5,5,7]3440; AVX512-NEXT:    vpshufhw {{.*#+}} xmm8 = xmm2[0,1,2,3,6,5,7,7]3441; AVX512-NEXT:    vinserti128 $1, %xmm8, %ymm3, %ymm33442; AVX512-NEXT:    vpshufd {{.*#+}} ymm3 = ymm3[0,2,2,3,4,6,6,7]3443; AVX512-NEXT:    vpblendw {{.*#+}} ymm1 = ymm3[0,1,2],ymm1[3],ymm3[4,5,6],ymm1[7],ymm3[8,9,10],ymm1[11],ymm3[12,13,14],ymm1[15]3444; AVX512-NEXT:    vpshuflw {{.*#+}} xmm3 = xmm0[0,0,2,1,4,5,6,7]3445; AVX512-NEXT:    vpshuflw {{.*#+}} xmm0 = xmm0[0,2,2,3,4,5,6,7]3446; AVX512-NEXT:    vinserti128 $1, %xmm0, %ymm3, %ymm03447; AVX512-NEXT:    vpshufd {{.*#+}} ymm0 = ymm0[0,0,2,1,4,4,6,5]3448; AVX512-NEXT:    vpshuflw {{.*#+}} xmm3 = xmm2[0,1,1,3,4,5,6,7]3449; AVX512-NEXT:    vpshuflw {{.*#+}} xmm2 = xmm2[2,1,3,3,4,5,6,7]3450; AVX512-NEXT:    vinserti128 $1, %xmm2, %ymm3, %ymm23451; AVX512-NEXT:    vpshufd {{.*#+}} ymm2 = ymm2[0,0,2,1,4,4,6,5]3452; AVX512-NEXT:    vpblendw {{.*#+}} ymm0 = ymm2[0,1,2],ymm0[3],ymm2[4,5,6],ymm0[7],ymm2[8,9,10],ymm0[11],ymm2[12,13,14],ymm0[15]3453; AVX512-NEXT:    vinserti64x4 $1, %ymm1, %zmm0, %zmm163454; AVX512-NEXT:    vmovdqa (%rsi), %xmm13455; AVX512-NEXT:    vmovdqa (%rdi), %xmm23456; AVX512-NEXT:    vpunpckhbw {{.*#+}} xmm0 = 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]3457; AVX512-NEXT:    vmovdqa64 %xmm2, %xmm203458; AVX512-NEXT:    vmovdqa64 %xmm1, %xmm213459; AVX512-NEXT:    vpmovzxwq {{.*#+}} ymm3 = xmm0[0],zero,zero,zero,xmm0[1],zero,zero,zero,xmm0[2],zero,zero,zero,xmm0[3],zero,zero,zero3460; AVX512-NEXT:    vmovdqa (%rcx), %xmm83461; AVX512-NEXT:    vmovdqa (%rdx), %xmm93462; AVX512-NEXT:    vpunpckhbw {{.*#+}} xmm10 = 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]3463; AVX512-NEXT:    vpunpcklwd {{.*#+}} xmm13 = xmm10[0,0,1,1,2,2,3,3]3464; AVX512-NEXT:    vpmovzxdq {{.*#+}} ymm13 = xmm13[0],zero,xmm13[1],zero,xmm13[2],zero,xmm13[3],zero3465; AVX512-NEXT:    vpblendw {{.*#+}} ymm3 = ymm3[0],ymm13[1],ymm3[2,3,4],ymm13[5],ymm3[6,7,8],ymm13[9],ymm3[10,11,12],ymm13[13],ymm3[14,15]3466; AVX512-NEXT:    vpshufhw {{.*#+}} xmm13 = xmm10[0,1,2,3,4,4,6,5]3467; AVX512-NEXT:    vpshufhw {{.*#+}} xmm10 = xmm10[0,1,2,3,4,6,6,7]3468; AVX512-NEXT:    vinserti128 $1, %xmm10, %ymm13, %ymm103469; AVX512-NEXT:    vpshufd {{.*#+}} ymm10 = ymm10[2,1,3,3,6,5,7,7]3470; AVX512-NEXT:    vpshufd {{.*#+}} xmm0 = xmm0[2,3,2,3]3471; AVX512-NEXT:    vpmovzxwq {{.*#+}} ymm0 = xmm0[0],zero,zero,zero,xmm0[1],zero,zero,zero,xmm0[2],zero,zero,zero,xmm0[3],zero,zero,zero3472; AVX512-NEXT:    vpblendw {{.*#+}} ymm0 = ymm0[0],ymm10[1],ymm0[2,3,4],ymm10[5],ymm0[6,7,8],ymm10[9],ymm0[10,11,12],ymm10[13],ymm0[14,15]3473; AVX512-NEXT:    vinserti64x4 $1, %ymm0, %zmm3, %zmm183474; AVX512-NEXT:    vpunpcklbw {{.*#+}} xmm3 = 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]3475; AVX512-NEXT:    vpshufhw {{.*#+}} xmm0 = xmm3[0,1,2,3,4,4,6,5]3476; AVX512-NEXT:    vpshufhw {{.*#+}} xmm10 = xmm3[0,1,2,3,4,6,6,7]3477; AVX512-NEXT:    vinserti128 $1, %xmm10, %ymm0, %ymm103478; AVX512-NEXT:    vpunpcklbw {{.*#+}} xmm13 = xmm15[0],xmm14[0],xmm15[1],xmm14[1],xmm15[2],xmm14[2],xmm15[3],xmm14[3],xmm15[4],xmm14[4],xmm15[5],xmm14[5],xmm15[6],xmm14[6],xmm15[7],xmm14[7]3479; AVX512-NEXT:    vpshufhw {{.*#+}} xmm0 = xmm13[0,1,2,3,4,5,5,7]3480; AVX512-NEXT:    vpshufhw {{.*#+}} xmm1 = xmm13[0,1,2,3,6,5,7,7]3481; AVX512-NEXT:    vinserti128 $1, %xmm1, %ymm0, %ymm13482; AVX512-NEXT:    vmovdqa 16(%rcx), %xmm23483; AVX512-NEXT:    vpshuflw {{.*#+}} xmm0 = xmm3[0,0,2,1,4,5,6,7]3484; AVX512-NEXT:    vpshuflw {{.*#+}} xmm3 = xmm3[0,2,2,3,4,5,6,7]3485; AVX512-NEXT:    vinserti128 $1, %xmm3, %ymm0, %ymm03486; AVX512-NEXT:    vpshufd {{.*#+}} ymm3 = ymm10[0,2,2,3,4,6,6,7]3487; AVX512-NEXT:    vpshufd {{.*#+}} ymm1 = ymm1[0,2,2,3,4,6,6,7]3488; AVX512-NEXT:    vpblendw {{.*#+}} ymm1 = ymm1[0,1,2],ymm3[3],ymm1[4,5,6],ymm3[7],ymm1[8,9,10],ymm3[11],ymm1[12,13,14],ymm3[15]3489; AVX512-NEXT:    vpshuflw {{.*#+}} xmm3 = xmm13[0,1,1,3,4,5,6,7]3490; AVX512-NEXT:    vpshuflw {{.*#+}} xmm10 = xmm13[2,1,3,3,4,5,6,7]3491; AVX512-NEXT:    vinserti128 $1, %xmm10, %ymm3, %ymm33492; AVX512-NEXT:    vpshufd {{.*#+}} ymm0 = ymm0[0,0,2,1,4,4,6,5]3493; AVX512-NEXT:    vpshufd {{.*#+}} ymm3 = ymm3[0,0,2,1,4,4,6,5]3494; AVX512-NEXT:    vpblendw {{.*#+}} ymm0 = ymm3[0,1,2],ymm0[3],ymm3[4,5,6],ymm0[7],ymm3[8,9,10],ymm0[11],ymm3[12,13,14],ymm0[15]3495; AVX512-NEXT:    vmovdqa 16(%rdx), %xmm103496; AVX512-NEXT:    vinserti64x4 $1, %ymm1, %zmm0, %zmm173497; AVX512-NEXT:    vpunpcklbw {{.*#+}} xmm0 = xmm10[0],xmm2[0],xmm10[1],xmm2[1],xmm10[2],xmm2[2],xmm10[3],xmm2[3],xmm10[4],xmm2[4],xmm10[5],xmm2[5],xmm10[6],xmm2[6],xmm10[7],xmm2[7]3498; AVX512-NEXT:    vpshufhw {{.*#+}} xmm1 = xmm0[0,1,2,3,4,4,6,5]3499; AVX512-NEXT:    vpshufhw {{.*#+}} xmm3 = xmm0[0,1,2,3,4,6,6,7]3500; AVX512-NEXT:    vinserti32x4 $1, %xmm3, %ymm1, %ymm193501; AVX512-NEXT:    vmovdqa 16(%rsi), %xmm33502; AVX512-NEXT:    vpunpcklwd {{.*#+}} xmm0 = xmm0[0,0,1,1,2,2,3,3]3503; AVX512-NEXT:    vpmovzxdq {{.*#+}} ymm0 = xmm0[0],zero,xmm0[1],zero,xmm0[2],zero,xmm0[3],zero3504; AVX512-NEXT:    vmovdqa 16(%rdi), %xmm133505; AVX512-NEXT:    vpunpcklbw {{.*#+}} xmm1 = 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]3506; AVX512-NEXT:    vpmovzxwq {{.*#+}} ymm4 = xmm1[0],zero,zero,zero,xmm1[1],zero,zero,zero,xmm1[2],zero,zero,zero,xmm1[3],zero,zero,zero3507; AVX512-NEXT:    vpblendw {{.*#+}} ymm0 = ymm4[0],ymm0[1],ymm4[2,3,4],ymm0[5],ymm4[6,7,8],ymm0[9],ymm4[10,11,12],ymm0[13],ymm4[14,15]3508; AVX512-NEXT:    vpshufd {{.*#+}} xmm1 = xmm1[2,3,2,3]3509; AVX512-NEXT:    vpshufd {{.*#+}} ymm4 = ymm19[2,1,3,3,6,5,7,7]3510; AVX512-NEXT:    vpmovzxwq {{.*#+}} ymm1 = xmm1[0],zero,zero,zero,xmm1[1],zero,zero,zero,xmm1[2],zero,zero,zero,xmm1[3],zero,zero,zero3511; AVX512-NEXT:    vpblendw {{.*#+}} ymm1 = ymm1[0],ymm4[1],ymm1[2,3,4],ymm4[5],ymm1[6,7,8],ymm4[9],ymm1[10,11,12],ymm4[13],ymm1[14,15]3512; AVX512-NEXT:    vinserti64x4 $1, %ymm1, %zmm0, %zmm193513; AVX512-NEXT:    vpunpckhbw {{.*#+}} xmm0 = 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]3514; AVX512-NEXT:    vpshufhw {{.*#+}} xmm1 = xmm0[0,1,2,3,4,4,6,5]3515; AVX512-NEXT:    vpshufhw {{.*#+}} xmm4 = xmm0[0,1,2,3,4,6,6,7]3516; AVX512-NEXT:    vinserti128 $1, %xmm4, %ymm1, %ymm13517; AVX512-NEXT:    vpunpckhbw {{.*#+}} xmm4 = xmm15[8],xmm14[8],xmm15[9],xmm14[9],xmm15[10],xmm14[10],xmm15[11],xmm14[11],xmm15[12],xmm14[12],xmm15[13],xmm14[13],xmm15[14],xmm14[14],xmm15[15],xmm14[15]3518; AVX512-NEXT:    vpshufhw {{.*#+}} xmm11 = xmm4[0,1,2,3,4,5,5,7]3519; AVX512-NEXT:    vpshufhw {{.*#+}} xmm12 = xmm4[0,1,2,3,6,5,7,7]3520; AVX512-NEXT:    vinserti128 $1, %xmm12, %ymm11, %ymm113521; AVX512-NEXT:    vpshuflw {{.*#+}} xmm12 = xmm0[0,0,2,1,4,5,6,7]3522; AVX512-NEXT:    vpshuflw {{.*#+}} xmm0 = xmm0[0,2,2,3,4,5,6,7]3523; AVX512-NEXT:    vinserti128 $1, %xmm0, %ymm12, %ymm03524; AVX512-NEXT:    vpshufd {{.*#+}} ymm1 = ymm1[0,2,2,3,4,6,6,7]3525; AVX512-NEXT:    vpshufd {{.*#+}} ymm11 = ymm11[0,2,2,3,4,6,6,7]3526; AVX512-NEXT:    vpblendw {{.*#+}} ymm1 = ymm11[0,1,2],ymm1[3],ymm11[4,5,6],ymm1[7],ymm11[8,9,10],ymm1[11],ymm11[12,13,14],ymm1[15]3527; AVX512-NEXT:    vpshuflw {{.*#+}} xmm11 = xmm4[0,1,1,3,4,5,6,7]3528; AVX512-NEXT:    vpshuflw {{.*#+}} xmm4 = xmm4[2,1,3,3,4,5,6,7]3529; AVX512-NEXT:    vinserti128 $1, %xmm4, %ymm11, %ymm43530; AVX512-NEXT:    vpshufd {{.*#+}} ymm0 = ymm0[0,0,2,1,4,4,6,5]3531; AVX512-NEXT:    vpshufd {{.*#+}} ymm4 = ymm4[0,0,2,1,4,4,6,5]3532; AVX512-NEXT:    vpblendw {{.*#+}} ymm0 = ymm4[0,1,2],ymm0[3],ymm4[4,5,6],ymm0[7],ymm4[8,9,10],ymm0[11],ymm4[12,13,14],ymm0[15]3533; AVX512-NEXT:    vinserti64x4 $1, %ymm1, %zmm0, %zmm113534; AVX512-NEXT:    vpunpckhbw {{.*#+}} xmm0 = xmm10[8],xmm2[8],xmm10[9],xmm2[9],xmm10[10],xmm2[10],xmm10[11],xmm2[11],xmm10[12],xmm2[12],xmm10[13],xmm2[13],xmm10[14],xmm2[14],xmm10[15],xmm2[15]3535; AVX512-NEXT:    vpshufhw {{.*#+}} xmm1 = xmm0[0,1,2,3,4,4,6,5]3536; AVX512-NEXT:    vpshufhw {{.*#+}} xmm2 = xmm0[0,1,2,3,4,6,6,7]3537; AVX512-NEXT:    vinserti128 $1, %xmm2, %ymm1, %ymm13538; AVX512-NEXT:    vpunpckhbw {{.*#+}} xmm2 = 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]3539; AVX512-NEXT:    vpmovzxwq {{.*#+}} ymm3 = xmm2[0],zero,zero,zero,xmm2[1],zero,zero,zero,xmm2[2],zero,zero,zero,xmm2[3],zero,zero,zero3540; AVX512-NEXT:    vpunpcklwd {{.*#+}} xmm0 = xmm0[0,0,1,1,2,2,3,3]3541; AVX512-NEXT:    vpmovzxdq {{.*#+}} ymm0 = xmm0[0],zero,xmm0[1],zero,xmm0[2],zero,xmm0[3],zero3542; AVX512-NEXT:    vpblendw {{.*#+}} ymm0 = ymm3[0],ymm0[1],ymm3[2,3,4],ymm0[5],ymm3[6,7,8],ymm0[9],ymm3[10,11,12],ymm0[13],ymm3[14,15]3543; AVX512-NEXT:    vpshufd {{.*#+}} ymm1 = ymm1[2,1,3,3,6,5,7,7]3544; AVX512-NEXT:    vpshufd {{.*#+}} xmm2 = xmm2[2,3,2,3]3545; AVX512-NEXT:    vpmovzxwq {{.*#+}} ymm2 = xmm2[0],zero,zero,zero,xmm2[1],zero,zero,zero,xmm2[2],zero,zero,zero,xmm2[3],zero,zero,zero3546; AVX512-NEXT:    vpblendw {{.*#+}} ymm1 = ymm2[0],ymm1[1],ymm2[2,3,4],ymm1[5],ymm2[6,7,8],ymm1[9],ymm2[10,11,12],ymm1[13],ymm2[14,15]3547; AVX512-NEXT:    vinserti64x4 $1, %ymm1, %zmm0, %zmm03548; AVX512-NEXT:    vmovdqa64 %xmm22, %xmm13549; AVX512-NEXT:    vpunpcklbw {{.*#+}} xmm1 = xmm5[0],xmm1[0],xmm5[1],xmm1[1],xmm5[2],xmm1[2],xmm5[3],xmm1[3],xmm5[4],xmm1[4],xmm5[5],xmm1[5],xmm5[6],xmm1[6],xmm5[7],xmm1[7]3550; AVX512-NEXT:    vpshufhw {{.*#+}} xmm2 = xmm1[0,1,2,3,4,4,6,5]3551; AVX512-NEXT:    vpshufhw {{.*#+}} xmm3 = xmm1[0,1,2,3,4,6,6,7]3552; AVX512-NEXT:    vinserti128 $1, %xmm3, %ymm2, %ymm23553; AVX512-NEXT:    vpunpcklbw {{.*#+}} xmm3 = xmm7[0],xmm6[0],xmm7[1],xmm6[1],xmm7[2],xmm6[2],xmm7[3],xmm6[3],xmm7[4],xmm6[4],xmm7[5],xmm6[5],xmm7[6],xmm6[6],xmm7[7],xmm6[7]3554; AVX512-NEXT:    vpshufhw {{.*#+}} xmm4 = xmm3[0,1,2,3,4,5,5,7]3555; AVX512-NEXT:    vpshufhw {{.*#+}} xmm5 = xmm3[0,1,2,3,6,5,7,7]3556; AVX512-NEXT:    vinserti128 $1, %xmm5, %ymm4, %ymm43557; AVX512-NEXT:    vpshuflw {{.*#+}} xmm5 = xmm1[0,0,2,1,4,5,6,7]3558; AVX512-NEXT:    vpshuflw {{.*#+}} xmm1 = xmm1[0,2,2,3,4,5,6,7]3559; AVX512-NEXT:    vinserti128 $1, %xmm1, %ymm5, %ymm13560; AVX512-NEXT:    vpshufd {{.*#+}} ymm2 = ymm2[0,2,2,3,4,6,6,7]3561; AVX512-NEXT:    vpshufd {{.*#+}} ymm4 = ymm4[0,2,2,3,4,6,6,7]3562; AVX512-NEXT:    vpblendw {{.*#+}} ymm2 = ymm4[0,1,2],ymm2[3],ymm4[4,5,6],ymm2[7],ymm4[8,9,10],ymm2[11],ymm4[12,13,14],ymm2[15]3563; AVX512-NEXT:    vpshuflw {{.*#+}} xmm4 = xmm3[0,1,1,3,4,5,6,7]3564; AVX512-NEXT:    vpshuflw {{.*#+}} xmm3 = xmm3[2,1,3,3,4,5,6,7]3565; AVX512-NEXT:    vinserti128 $1, %xmm3, %ymm4, %ymm33566; AVX512-NEXT:    vpshufd {{.*#+}} ymm1 = ymm1[0,0,2,1,4,4,6,5]3567; AVX512-NEXT:    vpshufd {{.*#+}} ymm3 = ymm3[0,0,2,1,4,4,6,5]3568; AVX512-NEXT:    vpblendw {{.*#+}} ymm1 = ymm3[0,1,2],ymm1[3],ymm3[4,5,6],ymm1[7],ymm3[8,9,10],ymm1[11],ymm3[12,13,14],ymm1[15]3569; AVX512-NEXT:    vinserti64x4 $1, %ymm2, %zmm1, %zmm13570; AVX512-NEXT:    vpunpcklbw {{.*#+}} xmm2 = xmm9[0],xmm8[0],xmm9[1],xmm8[1],xmm9[2],xmm8[2],xmm9[3],xmm8[3],xmm9[4],xmm8[4],xmm9[5],xmm8[5],xmm9[6],xmm8[6],xmm9[7],xmm8[7]3571; AVX512-NEXT:    vpshufhw {{.*#+}} xmm3 = xmm2[0,1,2,3,4,4,6,5]3572; AVX512-NEXT:    vpshufhw {{.*#+}} xmm4 = xmm2[0,1,2,3,4,6,6,7]3573; AVX512-NEXT:    vinserti128 $1, %xmm4, %ymm3, %ymm33574; AVX512-NEXT:    vmovdqa64 %xmm20, %xmm43575; AVX512-NEXT:    vmovdqa64 %xmm21, %xmm53576; AVX512-NEXT:    vpunpcklbw {{.*#+}} xmm4 = xmm4[0],xmm5[0],xmm4[1],xmm5[1],xmm4[2],xmm5[2],xmm4[3],xmm5[3],xmm4[4],xmm5[4],xmm4[5],xmm5[5],xmm4[6],xmm5[6],xmm4[7],xmm5[7]3577; AVX512-NEXT:    vpmovzxwq {{.*#+}} ymm5 = xmm4[0],zero,zero,zero,xmm4[1],zero,zero,zero,xmm4[2],zero,zero,zero,xmm4[3],zero,zero,zero3578; AVX512-NEXT:    vpunpcklwd {{.*#+}} xmm2 = xmm2[0,0,1,1,2,2,3,3]3579; AVX512-NEXT:    vpmovzxdq {{.*#+}} ymm2 = xmm2[0],zero,xmm2[1],zero,xmm2[2],zero,xmm2[3],zero3580; AVX512-NEXT:    vpblendw {{.*#+}} ymm2 = ymm5[0],ymm2[1],ymm5[2,3,4],ymm2[5],ymm5[6,7,8],ymm2[9],ymm5[10,11,12],ymm2[13],ymm5[14,15]3581; AVX512-NEXT:    vpshufd {{.*#+}} ymm3 = ymm3[2,1,3,3,6,5,7,7]3582; AVX512-NEXT:    vpshufd {{.*#+}} xmm4 = xmm4[2,3,2,3]3583; AVX512-NEXT:    vpmovzxwq {{.*#+}} ymm4 = xmm4[0],zero,zero,zero,xmm4[1],zero,zero,zero,xmm4[2],zero,zero,zero,xmm4[3],zero,zero,zero3584; AVX512-NEXT:    vpblendw {{.*#+}} ymm3 = ymm4[0],ymm3[1],ymm4[2,3,4],ymm3[5],ymm4[6,7,8],ymm3[9],ymm4[10,11,12],ymm3[13],ymm4[14,15]3585; AVX512-NEXT:    vinserti64x4 $1, %ymm3, %zmm2, %zmm23586; AVX512-NEXT:    movq {{[0-9]+}}(%rsp), %rax3587; AVX512-NEXT:    movw $-21846, %cx # imm = 0xAAAA3588; AVX512-NEXT:    kmovw %ecx, %k13589; AVX512-NEXT:    vmovdqa32 %zmm16, %zmm18 {%k1}3590; AVX512-NEXT:    vmovdqa32 %zmm17, %zmm19 {%k1}3591; AVX512-NEXT:    vmovdqa32 %zmm11, %zmm0 {%k1}3592; AVX512-NEXT:    vmovdqa32 %zmm1, %zmm2 {%k1}3593; AVX512-NEXT:    vmovdqa64 %zmm2, (%rax)3594; AVX512-NEXT:    vmovdqa64 %zmm0, 192(%rax)3595; AVX512-NEXT:    vmovdqa64 %zmm19, 128(%rax)3596; AVX512-NEXT:    vmovdqa64 %zmm18, 64(%rax)3597; AVX512-NEXT:    vzeroupper3598; AVX512-NEXT:    retq3599;3600; AVX512-FCP-LABEL: store_i8_stride8_vf32:3601; AVX512-FCP:       # %bb.0:3602; AVX512-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax3603; AVX512-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r103604; AVX512-FCP-NEXT:    vmovdqa (%r10), %xmm13605; AVX512-FCP-NEXT:    vmovdqa (%rax), %xmm23606; AVX512-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm0 = 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]3607; AVX512-FCP-NEXT:    vmovdqa64 %xmm2, %xmm213608; AVX512-FCP-NEXT:    vmovdqa64 %xmm1, %xmm223609; AVX512-FCP-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm03610; AVX512-FCP-NEXT:    vpshufb {{.*#+}} ymm1 = ymm0[0,1,2,3,8,9,8,9,8,9,8,9,12,13,10,11,16,17,18,19,24,25,28,29,24,25,28,29,28,29,30,31]3611; AVX512-FCP-NEXT:    vmovdqa (%r9), %xmm33612; AVX512-FCP-NEXT:    vmovdqa (%r8), %xmm43613; AVX512-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm2 = 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]3614; AVX512-FCP-NEXT:    vmovdqa64 %xmm4, %xmm243615; AVX512-FCP-NEXT:    vmovdqa64 %xmm3, %xmm253616; AVX512-FCP-NEXT:    vinserti128 $1, %xmm2, %ymm2, %ymm23617; AVX512-FCP-NEXT:    vmovdqa {{.*#+}} ymm4 = [0,1,2,3,8,9,10,11,8,9,10,11,10,11,14,15,0,1,2,3,12,13,10,11,12,13,10,11,14,15,14,15]3618; AVX512-FCP-NEXT:    vpshufb %ymm4, %ymm2, %ymm33619; AVX512-FCP-NEXT:    vmovdqa64 %ymm4, %ymm203620; AVX512-FCP-NEXT:    vpblendw {{.*#+}} ymm1 = ymm3[0,1,2],ymm1[3],ymm3[4,5,6],ymm1[7],ymm3[8,9,10],ymm1[11],ymm3[12,13,14],ymm1[15]3621; AVX512-FCP-NEXT:    vmovdqa {{.*#+}} ymm3 = [0,1,0,1,0,1,0,1,8,9,10,11,4,5,2,3,0,1,4,5,0,1,4,5,8,9,10,11,4,5,6,7]3622; AVX512-FCP-NEXT:    vpshufb %ymm3, %ymm0, %ymm03623; AVX512-FCP-NEXT:    vmovdqa64 %ymm3, %ymm263624; AVX512-FCP-NEXT:    vmovdqa {{.*#+}} ymm3 = [0,1,2,3,0,1,2,3,8,9,10,11,2,3,6,7,4,5,2,3,4,5,2,3,8,9,10,11,6,7,6,7]3625; AVX512-FCP-NEXT:    vpshufb %ymm3, %ymm2, %ymm23626; AVX512-FCP-NEXT:    vmovdqa64 %ymm3, %ymm273627; AVX512-FCP-NEXT:    vpblendw {{.*#+}} ymm0 = ymm2[0,1,2],ymm0[3],ymm2[4,5,6],ymm0[7],ymm2[8,9,10],ymm0[11],ymm2[12,13,14],ymm0[15]3628; AVX512-FCP-NEXT:    vinserti64x4 $1, %ymm1, %zmm0, %zmm233629; AVX512-FCP-NEXT:    vmovdqa (%rcx), %xmm13630; AVX512-FCP-NEXT:    vmovdqa (%rdx), %xmm103631; AVX512-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm0 = xmm10[8],xmm1[8],xmm10[9],xmm1[9],xmm10[10],xmm1[10],xmm10[11],xmm1[11],xmm10[12],xmm1[12],xmm10[13],xmm1[13],xmm10[14],xmm1[14],xmm10[15],xmm1[15]3632; AVX512-FCP-NEXT:    vmovdqa64 %xmm1, %xmm303633; AVX512-FCP-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm03634; AVX512-FCP-NEXT:    vmovdqa (%rsi), %xmm123635; AVX512-FCP-NEXT:    vmovdqa (%rdi), %xmm133636; AVX512-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm1 = 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]3637; AVX512-FCP-NEXT:    vinserti128 $1, %xmm1, %ymm1, %ymm23638; AVX512-FCP-NEXT:    vpmovsxwq {{.*#+}} ymm14 = [2312,2826,3340,3854]3639; AVX512-FCP-NEXT:    vpshufb %ymm14, %ymm2, %ymm23640; AVX512-FCP-NEXT:    vmovdqa {{.*#+}} ymm4 = [8,9,8,9,4,5,6,7,12,13,10,11,12,13,10,11,8,9,12,13,4,5,6,7,12,13,14,15,12,13,14,15]3641; AVX512-FCP-NEXT:    vpshufb %ymm4, %ymm0, %ymm33642; AVX512-FCP-NEXT:    vmovdqa64 %ymm4, %ymm283643; AVX512-FCP-NEXT:    vpblendw {{.*#+}} ymm2 = ymm2[0],ymm3[1],ymm2[2,3,4],ymm3[5],ymm2[6,7,8],ymm3[9],ymm2[10,11,12],ymm3[13],ymm2[14,15]3644; AVX512-FCP-NEXT:    vmovdqa {{.*#+}} ymm3 = [0,1,0,1,4,5,2,3,4,5,2,3,12,13,14,15,0,1,4,5,4,5,6,7,4,5,6,7,12,13,14,15]3645; AVX512-FCP-NEXT:    vpshufb %ymm3, %ymm0, %ymm03646; AVX512-FCP-NEXT:    vmovdqa64 %ymm3, %ymm293647; AVX512-FCP-NEXT:    vpmovzxwq {{.*#+}} xmm3 = xmm1[0],zero,zero,zero,xmm1[1],zero,zero,zero3648; AVX512-FCP-NEXT:    vpmovsxwq {{.*#+}} xmm9 = [1284,1798]3649; AVX512-FCP-NEXT:    vpshufb %xmm9, %xmm1, %xmm13650; AVX512-FCP-NEXT:    vinserti128 $1, %xmm1, %ymm3, %ymm13651; AVX512-FCP-NEXT:    vpblendw {{.*#+}} ymm0 = ymm1[0],ymm0[1],ymm1[2,3,4],ymm0[5],ymm1[6,7,8],ymm0[9],ymm1[10,11,12],ymm0[13],ymm1[14,15]3652; AVX512-FCP-NEXT:    vinserti64x4 $1, %ymm2, %zmm0, %zmm193653; AVX512-FCP-NEXT:    vmovdqa 16(%r10), %xmm83654; AVX512-FCP-NEXT:    vmovdqa 16(%rax), %xmm113655; AVX512-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm0 = 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]3656; AVX512-FCP-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm03657; AVX512-FCP-NEXT:    vmovdqa 16(%r9), %xmm73658; AVX512-FCP-NEXT:    vmovdqa 16(%r8), %xmm63659; AVX512-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm1 = 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]3660; AVX512-FCP-NEXT:    vinserti128 $1, %xmm1, %ymm1, %ymm13661; AVX512-FCP-NEXT:    vmovdqa {{.*#+}} ymm2 = [0,1,2,3,8,9,8,9,8,9,10,11,10,11,10,11,0,1,2,3,12,13,12,13,12,13,10,11,14,15,14,15]3662; AVX512-FCP-NEXT:    vpshufb %ymm2, %ymm0, %ymm33663; AVX512-FCP-NEXT:    vpshufb %ymm2, %ymm1, %ymm23664; AVX512-FCP-NEXT:    vpblendw {{.*#+}} ymm2 = ymm2[0,1,2],ymm3[3],ymm2[4,5,6],ymm3[7],ymm2[8,9,10],ymm3[11],ymm2[12,13,14],ymm3[15]3665; AVX512-FCP-NEXT:    vmovdqa {{.*#+}} ymm3 = [0,1,2,3,0,1,0,1,8,9,10,11,2,3,2,3,4,5,2,3,4,5,4,5,8,9,10,11,6,7,6,7]3666; AVX512-FCP-NEXT:    vpshufb %ymm3, %ymm0, %ymm03667; AVX512-FCP-NEXT:    vpshufb %ymm3, %ymm1, %ymm13668; AVX512-FCP-NEXT:    vpblendw {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3],ymm1[4,5,6],ymm0[7],ymm1[8,9,10],ymm0[11],ymm1[12,13,14],ymm0[15]3669; AVX512-FCP-NEXT:    vinserti64x4 $1, %ymm2, %zmm0, %zmm173670; AVX512-FCP-NEXT:    vmovdqa 16(%rsi), %xmm53671; AVX512-FCP-NEXT:    vmovdqa 16(%rdi), %xmm43672; AVX512-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm0 = xmm4[0],xmm5[0],xmm4[1],xmm5[1],xmm4[2],xmm5[2],xmm4[3],xmm5[3],xmm4[4],xmm5[4],xmm4[5],xmm5[5],xmm4[6],xmm5[6],xmm4[7],xmm5[7]3673; AVX512-FCP-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm13674; AVX512-FCP-NEXT:    vpshufb %ymm14, %ymm1, %ymm13675; AVX512-FCP-NEXT:    vmovdqa64 %ymm14, %ymm163676; AVX512-FCP-NEXT:    vmovdqa 16(%rcx), %xmm33677; AVX512-FCP-NEXT:    vmovdqa 16(%rdx), %xmm23678; AVX512-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm15 = xmm2[0],xmm3[0],xmm2[1],xmm3[1],xmm2[2],xmm3[2],xmm2[3],xmm3[3],xmm2[4],xmm3[4],xmm2[5],xmm3[5],xmm2[6],xmm3[6],xmm2[7],xmm3[7]3679; AVX512-FCP-NEXT:    vinserti128 $1, %xmm15, %ymm15, %ymm153680; AVX512-FCP-NEXT:    vpshufb {{.*#+}} ymm14 = ymm15[u,u,8,9,u,u,u,u,u,u,10,11,u,u,u,u,u,u,28,29,u,u,u,u,u,u,30,31,u,u,u,u]3681; AVX512-FCP-NEXT:    vpblendw {{.*#+}} ymm1 = ymm1[0],ymm14[1],ymm1[2,3,4],ymm14[5],ymm1[6,7,8],ymm14[9],ymm1[10,11,12],ymm14[13],ymm1[14,15]3682; AVX512-FCP-NEXT:    vpmovzxwq {{.*#+}} xmm14 = xmm0[0],zero,zero,zero,xmm0[1],zero,zero,zero3683; AVX512-FCP-NEXT:    vpshufb %xmm9, %xmm0, %xmm03684; AVX512-FCP-NEXT:    vmovdqa64 %xmm9, %xmm313685; AVX512-FCP-NEXT:    vinserti128 $1, %xmm0, %ymm14, %ymm03686; AVX512-FCP-NEXT:    vpshufb {{.*#+}} ymm14 = ymm15[u,u,0,1,u,u,u,u,u,u,2,3,u,u,u,u,u,u,20,21,u,u,u,u,u,u,22,23,u,u,u,u]3687; AVX512-FCP-NEXT:    vpblendw {{.*#+}} ymm0 = ymm0[0],ymm14[1],ymm0[2,3,4],ymm14[5],ymm0[6,7,8],ymm14[9],ymm0[10,11,12],ymm14[13],ymm0[14,15]3688; AVX512-FCP-NEXT:    vinserti64x4 $1, %ymm1, %zmm0, %zmm183689; AVX512-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm0 = 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]3690; AVX512-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm1 = 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]3691; AVX512-FCP-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm03692; AVX512-FCP-NEXT:    vinserti128 $1, %xmm1, %ymm1, %ymm13693; AVX512-FCP-NEXT:    vmovdqa {{.*#+}} ymm8 = [0,1,2,3,8,9,8,9,8,9,8,9,12,13,10,11,0,1,2,3,8,9,12,13,8,9,12,13,12,13,14,15]3694; AVX512-FCP-NEXT:    vpshufb %ymm8, %ymm0, %ymm63695; AVX512-FCP-NEXT:    vmovdqa64 %ymm20, %ymm113696; AVX512-FCP-NEXT:    vpshufb %ymm11, %ymm1, %ymm73697; AVX512-FCP-NEXT:    vpblendw {{.*#+}} ymm6 = ymm7[0,1,2],ymm6[3],ymm7[4,5,6],ymm6[7],ymm7[8,9,10],ymm6[11],ymm7[12,13,14],ymm6[15]3698; AVX512-FCP-NEXT:    vmovdqa64 %ymm26, %ymm73699; AVX512-FCP-NEXT:    vpshufb %ymm7, %ymm0, %ymm03700; AVX512-FCP-NEXT:    vmovdqa64 %ymm27, %ymm143701; AVX512-FCP-NEXT:    vpshufb %ymm14, %ymm1, %ymm13702; AVX512-FCP-NEXT:    vpblendw {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3],ymm1[4,5,6],ymm0[7],ymm1[8,9,10],ymm0[11],ymm1[12,13,14],ymm0[15]3703; AVX512-FCP-NEXT:    vinserti64x4 $1, %ymm6, %zmm0, %zmm203704; AVX512-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm1 = xmm2[8],xmm3[8],xmm2[9],xmm3[9],xmm2[10],xmm3[10],xmm2[11],xmm3[11],xmm2[12],xmm3[12],xmm2[13],xmm3[13],xmm2[14],xmm3[14],xmm2[15],xmm3[15]3705; AVX512-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm2 = xmm4[8],xmm5[8],xmm4[9],xmm5[9],xmm4[10],xmm5[10],xmm4[11],xmm5[11],xmm4[12],xmm5[12],xmm4[13],xmm5[13],xmm4[14],xmm5[14],xmm4[15],xmm5[15]3706; AVX512-FCP-NEXT:    vinserti128 $1, %xmm1, %ymm1, %ymm13707; AVX512-FCP-NEXT:    vinserti128 $1, %xmm2, %ymm2, %ymm33708; AVX512-FCP-NEXT:    vmovdqa64 %ymm16, %ymm153709; AVX512-FCP-NEXT:    vpshufb %ymm15, %ymm3, %ymm33710; AVX512-FCP-NEXT:    vmovdqa64 %ymm28, %ymm63711; AVX512-FCP-NEXT:    vpshufb %ymm6, %ymm1, %ymm43712; AVX512-FCP-NEXT:    vpblendw {{.*#+}} ymm3 = ymm3[0],ymm4[1],ymm3[2,3,4],ymm4[5],ymm3[6,7,8],ymm4[9],ymm3[10,11,12],ymm4[13],ymm3[14,15]3713; AVX512-FCP-NEXT:    vmovdqa64 %ymm29, %ymm93714; AVX512-FCP-NEXT:    vpshufb %ymm9, %ymm1, %ymm13715; AVX512-FCP-NEXT:    vpmovzxwq {{.*#+}} xmm4 = xmm2[0],zero,zero,zero,xmm2[1],zero,zero,zero3716; AVX512-FCP-NEXT:    vmovdqa64 %xmm31, %xmm03717; AVX512-FCP-NEXT:    vpshufb %xmm0, %xmm2, %xmm23718; AVX512-FCP-NEXT:    vinserti128 $1, %xmm2, %ymm4, %ymm23719; AVX512-FCP-NEXT:    vpblendw {{.*#+}} ymm1 = ymm2[0],ymm1[1],ymm2[2,3,4],ymm1[5],ymm2[6,7,8],ymm1[9],ymm2[10,11,12],ymm1[13],ymm2[14,15]3720; AVX512-FCP-NEXT:    vinserti64x4 $1, %ymm3, %zmm1, %zmm13721; AVX512-FCP-NEXT:    vmovdqa64 %xmm21, %xmm23722; AVX512-FCP-NEXT:    vmovdqa64 %xmm22, %xmm33723; AVX512-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm2 = xmm2[0],xmm3[0],xmm2[1],xmm3[1],xmm2[2],xmm3[2],xmm2[3],xmm3[3],xmm2[4],xmm3[4],xmm2[5],xmm3[5],xmm2[6],xmm3[6],xmm2[7],xmm3[7]3724; AVX512-FCP-NEXT:    vmovdqa64 %xmm24, %xmm33725; AVX512-FCP-NEXT:    vmovdqa64 %xmm25, %xmm43726; AVX512-FCP-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]3727; AVX512-FCP-NEXT:    vinserti128 $1, %xmm2, %ymm2, %ymm23728; AVX512-FCP-NEXT:    vpshufb %ymm8, %ymm2, %ymm43729; AVX512-FCP-NEXT:    vinserti128 $1, %xmm3, %ymm3, %ymm33730; AVX512-FCP-NEXT:    vpshufb %ymm11, %ymm3, %ymm53731; AVX512-FCP-NEXT:    vpblendw {{.*#+}} ymm4 = ymm5[0,1,2],ymm4[3],ymm5[4,5,6],ymm4[7],ymm5[8,9,10],ymm4[11],ymm5[12,13,14],ymm4[15]3732; AVX512-FCP-NEXT:    vpshufb %ymm7, %ymm2, %ymm23733; AVX512-FCP-NEXT:    vpshufb %ymm14, %ymm3, %ymm33734; AVX512-FCP-NEXT:    vpblendw {{.*#+}} ymm2 = ymm3[0,1,2],ymm2[3],ymm3[4,5,6],ymm2[7],ymm3[8,9,10],ymm2[11],ymm3[12,13,14],ymm2[15]3735; AVX512-FCP-NEXT:    vinserti64x4 $1, %ymm4, %zmm2, %zmm23736; AVX512-FCP-NEXT:    vmovdqa64 %xmm30, %xmm33737; AVX512-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm3 = xmm10[0],xmm3[0],xmm10[1],xmm3[1],xmm10[2],xmm3[2],xmm10[3],xmm3[3],xmm10[4],xmm3[4],xmm10[5],xmm3[5],xmm10[6],xmm3[6],xmm10[7],xmm3[7]3738; AVX512-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm4 = 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]3739; AVX512-FCP-NEXT:    vinserti128 $1, %xmm4, %ymm4, %ymm53740; AVX512-FCP-NEXT:    vpshufb %ymm15, %ymm5, %ymm53741; AVX512-FCP-NEXT:    vinserti128 $1, %xmm3, %ymm3, %ymm33742; AVX512-FCP-NEXT:    vpshufb %ymm6, %ymm3, %ymm63743; AVX512-FCP-NEXT:    vpblendw {{.*#+}} ymm5 = ymm5[0],ymm6[1],ymm5[2,3,4],ymm6[5],ymm5[6,7,8],ymm6[9],ymm5[10,11,12],ymm6[13],ymm5[14,15]3744; AVX512-FCP-NEXT:    vpshufb %ymm9, %ymm3, %ymm33745; AVX512-FCP-NEXT:    vpshufb %xmm0, %xmm4, %xmm63746; AVX512-FCP-NEXT:    vpmovzxwq {{.*#+}} xmm4 = xmm4[0],zero,zero,zero,xmm4[1],zero,zero,zero3747; AVX512-FCP-NEXT:    vinserti128 $1, %xmm6, %ymm4, %ymm43748; AVX512-FCP-NEXT:    vpblendw {{.*#+}} ymm3 = ymm4[0],ymm3[1],ymm4[2,3,4],ymm3[5],ymm4[6,7,8],ymm3[9],ymm4[10,11,12],ymm3[13],ymm4[14,15]3749; AVX512-FCP-NEXT:    vinserti64x4 $1, %ymm5, %zmm3, %zmm33750; AVX512-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax3751; AVX512-FCP-NEXT:    movw $-21846, %cx # imm = 0xAAAA3752; AVX512-FCP-NEXT:    kmovw %ecx, %k13753; AVX512-FCP-NEXT:    vmovdqa32 %zmm23, %zmm19 {%k1}3754; AVX512-FCP-NEXT:    vmovdqa32 %zmm17, %zmm18 {%k1}3755; AVX512-FCP-NEXT:    vmovdqa32 %zmm20, %zmm1 {%k1}3756; AVX512-FCP-NEXT:    vmovdqa32 %zmm2, %zmm3 {%k1}3757; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, (%rax)3758; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, 192(%rax)3759; AVX512-FCP-NEXT:    vmovdqa64 %zmm18, 128(%rax)3760; AVX512-FCP-NEXT:    vmovdqa64 %zmm19, 64(%rax)3761; AVX512-FCP-NEXT:    vzeroupper3762; AVX512-FCP-NEXT:    retq3763;3764; AVX512DQ-LABEL: store_i8_stride8_vf32:3765; AVX512DQ:       # %bb.0:3766; AVX512DQ-NEXT:    movq {{[0-9]+}}(%rsp), %rax3767; AVX512DQ-NEXT:    movq {{[0-9]+}}(%rsp), %r103768; AVX512DQ-NEXT:    vmovdqa (%r10), %xmm03769; AVX512DQ-NEXT:    vmovdqa 16(%r10), %xmm93770; AVX512DQ-NEXT:    vmovdqa (%rax), %xmm23771; AVX512DQ-NEXT:    vmovdqa 16(%rax), %xmm103772; AVX512DQ-NEXT:    vpunpckhbw {{.*#+}} xmm1 = 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]3773; AVX512DQ-NEXT:    vmovdqa64 %xmm2, %xmm223774; AVX512DQ-NEXT:    vmovdqa64 %xmm0, %xmm233775; AVX512DQ-NEXT:    vpshufhw {{.*#+}} xmm0 = xmm1[0,1,2,3,4,4,6,5]3776; AVX512DQ-NEXT:    vpshufhw {{.*#+}} xmm4 = xmm1[0,1,2,3,4,6,6,7]3777; AVX512DQ-NEXT:    vinserti128 $1, %xmm4, %ymm0, %ymm03778; AVX512DQ-NEXT:    vpshufd {{.*#+}} ymm0 = ymm0[0,2,2,3,4,6,6,7]3779; AVX512DQ-NEXT:    vmovdqa (%r9), %xmm43780; AVX512DQ-NEXT:    vmovdqa 16(%r9), %xmm113781; AVX512DQ-NEXT:    vmovdqa (%r8), %xmm63782; AVX512DQ-NEXT:    vpunpckhbw {{.*#+}} xmm5 = xmm6[8],xmm4[8],xmm6[9],xmm4[9],xmm6[10],xmm4[10],xmm6[11],xmm4[11],xmm6[12],xmm4[12],xmm6[13],xmm4[13],xmm6[14],xmm4[14],xmm6[15],xmm4[15]3783; AVX512DQ-NEXT:    vpshufhw {{.*#+}} xmm7 = xmm5[0,1,2,3,4,5,5,7]3784; AVX512DQ-NEXT:    vpshufhw {{.*#+}} xmm8 = xmm5[0,1,2,3,6,5,7,7]3785; AVX512DQ-NEXT:    vinserti128 $1, %xmm8, %ymm7, %ymm73786; AVX512DQ-NEXT:    vpshufd {{.*#+}} ymm7 = ymm7[0,2,2,3,4,6,6,7]3787; AVX512DQ-NEXT:    vpblendw {{.*#+}} ymm0 = ymm7[0,1,2],ymm0[3],ymm7[4,5,6],ymm0[7],ymm7[8,9,10],ymm0[11],ymm7[12,13,14],ymm0[15]3788; AVX512DQ-NEXT:    vpshuflw {{.*#+}} xmm7 = xmm1[0,0,2,1,4,5,6,7]3789; AVX512DQ-NEXT:    vpshuflw {{.*#+}} xmm1 = xmm1[0,2,2,3,4,5,6,7]3790; AVX512DQ-NEXT:    vinserti128 $1, %xmm1, %ymm7, %ymm13791; AVX512DQ-NEXT:    vpshufd {{.*#+}} ymm1 = ymm1[0,0,2,1,4,4,6,5]3792; AVX512DQ-NEXT:    vpshuflw {{.*#+}} xmm7 = xmm5[0,1,1,3,4,5,6,7]3793; AVX512DQ-NEXT:    vpshuflw {{.*#+}} xmm5 = xmm5[2,1,3,3,4,5,6,7]3794; AVX512DQ-NEXT:    vinserti128 $1, %xmm5, %ymm7, %ymm53795; AVX512DQ-NEXT:    vpshufd {{.*#+}} ymm5 = ymm5[0,0,2,1,4,4,6,5]3796; AVX512DQ-NEXT:    vpblendw {{.*#+}} ymm5 = ymm5[0,1,2],ymm1[3],ymm5[4,5,6],ymm1[7],ymm5[8,9,10],ymm1[11],ymm5[12,13,14],ymm1[15]3797; AVX512DQ-NEXT:    vmovdqa (%rsi), %xmm13798; AVX512DQ-NEXT:    vmovdqa (%rdi), %xmm23799; AVX512DQ-NEXT:    vmovdqa (%rcx), %xmm73800; AVX512DQ-NEXT:    vmovdqa (%rdx), %xmm83801; AVX512DQ-NEXT:    vpunpckhbw {{.*#+}} xmm12 = 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]3802; AVX512DQ-NEXT:    vpshufhw {{.*#+}} xmm13 = xmm12[0,1,2,3,4,4,6,5]3803; AVX512DQ-NEXT:    vpshufhw {{.*#+}} xmm14 = xmm12[0,1,2,3,4,6,6,7]3804; AVX512DQ-NEXT:    vinserti128 $1, %xmm14, %ymm13, %ymm133805; AVX512DQ-NEXT:    vpunpckhbw {{.*#+}} xmm14 = 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]3806; AVX512DQ-NEXT:    vmovdqa64 %xmm2, %xmm243807; AVX512DQ-NEXT:    vmovdqa64 %xmm1, %xmm253808; AVX512DQ-NEXT:    vpmovzxwq {{.*#+}} ymm15 = xmm14[0],zero,zero,zero,xmm14[1],zero,zero,zero,xmm14[2],zero,zero,zero,xmm14[3],zero,zero,zero3809; AVX512DQ-NEXT:    vpunpcklwd {{.*#+}} xmm12 = xmm12[0,0,1,1,2,2,3,3]3810; AVX512DQ-NEXT:    vpmovzxdq {{.*#+}} ymm12 = xmm12[0],zero,xmm12[1],zero,xmm12[2],zero,xmm12[3],zero3811; AVX512DQ-NEXT:    vpblendw {{.*#+}} ymm12 = ymm15[0],ymm12[1],ymm15[2,3,4],ymm12[5],ymm15[6,7,8],ymm12[9],ymm15[10,11,12],ymm12[13],ymm15[14,15]3812; AVX512DQ-NEXT:    vpshufd {{.*#+}} ymm13 = ymm13[2,1,3,3,6,5,7,7]3813; AVX512DQ-NEXT:    vpshufd {{.*#+}} xmm14 = xmm14[2,3,2,3]3814; AVX512DQ-NEXT:    vpmovzxwq {{.*#+}} ymm14 = xmm14[0],zero,zero,zero,xmm14[1],zero,zero,zero,xmm14[2],zero,zero,zero,xmm14[3],zero,zero,zero3815; AVX512DQ-NEXT:    vpblendw {{.*#+}} ymm13 = ymm14[0],ymm13[1],ymm14[2,3,4],ymm13[5],ymm14[6,7,8],ymm13[9],ymm14[10,11,12],ymm13[13],ymm14[14,15]3816; AVX512DQ-NEXT:    vmovdqa 16(%r8), %xmm143817; AVX512DQ-NEXT:    vinserti64x4 $1, %ymm13, %zmm12, %zmm163818; AVX512DQ-NEXT:    movw $-21846, %ax # imm = 0xAAAA3819; AVX512DQ-NEXT:    kmovw %eax, %k13820; AVX512DQ-NEXT:    vinserti32x8 $1, %ymm0, %zmm5, %zmm16 {%k1}3821; AVX512DQ-NEXT:    vpunpcklbw {{.*#+}} xmm0 = 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]3822; AVX512DQ-NEXT:    vpshufhw {{.*#+}} xmm5 = xmm0[0,1,2,3,4,4,6,5]3823; AVX512DQ-NEXT:    vpshufhw {{.*#+}} xmm12 = xmm0[0,1,2,3,4,6,6,7]3824; AVX512DQ-NEXT:    vinserti32x4 $1, %xmm12, %ymm5, %ymm173825; AVX512DQ-NEXT:    vpunpcklbw {{.*#+}} xmm5 = xmm14[0],xmm11[0],xmm14[1],xmm11[1],xmm14[2],xmm11[2],xmm14[3],xmm11[3],xmm14[4],xmm11[4],xmm14[5],xmm11[5],xmm14[6],xmm11[6],xmm14[7],xmm11[7]3826; AVX512DQ-NEXT:    vpshufhw {{.*#+}} xmm12 = xmm5[0,1,2,3,4,5,5,7]3827; AVX512DQ-NEXT:    vpshufhw {{.*#+}} xmm13 = xmm5[0,1,2,3,6,5,7,7]3828; AVX512DQ-NEXT:    vinserti32x4 $1, %xmm13, %ymm12, %ymm183829; AVX512DQ-NEXT:    vmovdqa 16(%rcx), %xmm133830; AVX512DQ-NEXT:    vpshuflw {{.*#+}} xmm12 = xmm0[0,0,2,1,4,5,6,7]3831; AVX512DQ-NEXT:    vpshuflw {{.*#+}} xmm0 = xmm0[0,2,2,3,4,5,6,7]3832; AVX512DQ-NEXT:    vinserti32x4 $1, %xmm0, %ymm12, %ymm193833; AVX512DQ-NEXT:    vmovdqa 16(%rdx), %xmm153834; AVX512DQ-NEXT:    vpshuflw {{.*#+}} xmm0 = xmm5[0,1,1,3,4,5,6,7]3835; AVX512DQ-NEXT:    vpshuflw {{.*#+}} xmm5 = xmm5[2,1,3,3,4,5,6,7]3836; AVX512DQ-NEXT:    vinserti32x4 $1, %xmm5, %ymm0, %ymm203837; AVX512DQ-NEXT:    vpunpcklbw {{.*#+}} xmm5 = 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]3838; AVX512DQ-NEXT:    vpshufhw {{.*#+}} xmm0 = xmm5[0,1,2,3,4,4,6,5]3839; AVX512DQ-NEXT:    vpshufhw {{.*#+}} xmm12 = xmm5[0,1,2,3,4,6,6,7]3840; AVX512DQ-NEXT:    vinserti32x4 $1, %xmm12, %ymm0, %ymm213841; AVX512DQ-NEXT:    vmovdqa 16(%rsi), %xmm13842; AVX512DQ-NEXT:    vpunpcklwd {{.*#+}} xmm5 = xmm5[0,0,1,1,2,2,3,3]3843; AVX512DQ-NEXT:    vpmovzxdq {{.*#+}} ymm0 = xmm5[0],zero,xmm5[1],zero,xmm5[2],zero,xmm5[3],zero3844; AVX512DQ-NEXT:    vmovdqa 16(%rdi), %xmm53845; AVX512DQ-NEXT:    vpunpcklbw {{.*#+}} xmm12 = xmm5[0],xmm1[0],xmm5[1],xmm1[1],xmm5[2],xmm1[2],xmm5[3],xmm1[3],xmm5[4],xmm1[4],xmm5[5],xmm1[5],xmm5[6],xmm1[6],xmm5[7],xmm1[7]3846; AVX512DQ-NEXT:    vpmovzxwq {{.*#+}} ymm2 = xmm12[0],zero,zero,zero,xmm12[1],zero,zero,zero,xmm12[2],zero,zero,zero,xmm12[3],zero,zero,zero3847; AVX512DQ-NEXT:    vpblendw {{.*#+}} ymm0 = ymm2[0],ymm0[1],ymm2[2,3,4],ymm0[5],ymm2[6,7,8],ymm0[9],ymm2[10,11,12],ymm0[13],ymm2[14,15]3848; AVX512DQ-NEXT:    vpshufd {{.*#+}} xmm2 = xmm12[2,3,2,3]3849; AVX512DQ-NEXT:    vpshufd {{.*#+}} ymm12 = ymm21[2,1,3,3,6,5,7,7]3850; AVX512DQ-NEXT:    vpmovzxwq {{.*#+}} ymm2 = xmm2[0],zero,zero,zero,xmm2[1],zero,zero,zero,xmm2[2],zero,zero,zero,xmm2[3],zero,zero,zero3851; AVX512DQ-NEXT:    vpblendw {{.*#+}} ymm2 = ymm2[0],ymm12[1],ymm2[2,3,4],ymm12[5],ymm2[6,7,8],ymm12[9],ymm2[10,11,12],ymm12[13],ymm2[14,15]3852; AVX512DQ-NEXT:    vinserti64x4 $1, %ymm2, %zmm0, %zmm123853; AVX512DQ-NEXT:    vpshufd {{.*#+}} ymm0 = ymm17[0,2,2,3,4,6,6,7]3854; AVX512DQ-NEXT:    vpshufd {{.*#+}} ymm2 = ymm18[0,2,2,3,4,6,6,7]3855; AVX512DQ-NEXT:    vpblendw {{.*#+}} ymm0 = ymm2[0,1,2],ymm0[3],ymm2[4,5,6],ymm0[7],ymm2[8,9,10],ymm0[11],ymm2[12,13,14],ymm0[15]3856; AVX512DQ-NEXT:    vpshufd {{.*#+}} ymm2 = ymm19[0,0,2,1,4,4,6,5]3857; AVX512DQ-NEXT:    vpshufd {{.*#+}} ymm3 = ymm20[0,0,2,1,4,4,6,5]3858; AVX512DQ-NEXT:    vpblendw {{.*#+}} ymm2 = ymm3[0,1,2],ymm2[3],ymm3[4,5,6],ymm2[7],ymm3[8,9,10],ymm2[11],ymm3[12,13,14],ymm2[15]3859; AVX512DQ-NEXT:    vinserti32x8 $1, %ymm0, %zmm2, %zmm12 {%k1}3860; AVX512DQ-NEXT:    vpunpckhbw {{.*#+}} xmm0 = 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]3861; AVX512DQ-NEXT:    vpshufhw {{.*#+}} xmm2 = xmm0[0,1,2,3,4,4,6,5]3862; AVX512DQ-NEXT:    vpshufhw {{.*#+}} xmm3 = xmm0[0,1,2,3,4,6,6,7]3863; AVX512DQ-NEXT:    vinserti128 $1, %xmm3, %ymm2, %ymm23864; AVX512DQ-NEXT:    vpunpckhbw {{.*#+}} xmm3 = xmm14[8],xmm11[8],xmm14[9],xmm11[9],xmm14[10],xmm11[10],xmm14[11],xmm11[11],xmm14[12],xmm11[12],xmm14[13],xmm11[13],xmm14[14],xmm11[14],xmm14[15],xmm11[15]3865; AVX512DQ-NEXT:    vpshufhw {{.*#+}} xmm9 = xmm3[0,1,2,3,4,5,5,7]3866; AVX512DQ-NEXT:    vpshufhw {{.*#+}} xmm10 = xmm3[0,1,2,3,6,5,7,7]3867; AVX512DQ-NEXT:    vinserti128 $1, %xmm10, %ymm9, %ymm93868; AVX512DQ-NEXT:    vpshuflw {{.*#+}} xmm10 = xmm0[0,0,2,1,4,5,6,7]3869; AVX512DQ-NEXT:    vpshuflw {{.*#+}} xmm0 = xmm0[0,2,2,3,4,5,6,7]3870; AVX512DQ-NEXT:    vinserti128 $1, %xmm0, %ymm10, %ymm03871; AVX512DQ-NEXT:    vpshuflw {{.*#+}} xmm10 = xmm3[0,1,1,3,4,5,6,7]3872; AVX512DQ-NEXT:    vpshuflw {{.*#+}} xmm3 = xmm3[2,1,3,3,4,5,6,7]3873; AVX512DQ-NEXT:    vinserti128 $1, %xmm3, %ymm10, %ymm33874; AVX512DQ-NEXT:    vpunpckhbw {{.*#+}} xmm10 = 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]3875; AVX512DQ-NEXT:    vpshufhw {{.*#+}} xmm11 = xmm10[0,1,2,3,4,4,6,5]3876; AVX512DQ-NEXT:    vpshufhw {{.*#+}} xmm13 = xmm10[0,1,2,3,4,6,6,7]3877; AVX512DQ-NEXT:    vinserti128 $1, %xmm13, %ymm11, %ymm113878; AVX512DQ-NEXT:    vpshufd {{.*#+}} ymm2 = ymm2[0,2,2,3,4,6,6,7]3879; AVX512DQ-NEXT:    vpshufd {{.*#+}} ymm9 = ymm9[0,2,2,3,4,6,6,7]3880; AVX512DQ-NEXT:    vpblendw {{.*#+}} ymm2 = ymm9[0,1,2],ymm2[3],ymm9[4,5,6],ymm2[7],ymm9[8,9,10],ymm2[11],ymm9[12,13,14],ymm2[15]3881; AVX512DQ-NEXT:    vpunpckhbw {{.*#+}} xmm1 = xmm5[8],xmm1[8],xmm5[9],xmm1[9],xmm5[10],xmm1[10],xmm5[11],xmm1[11],xmm5[12],xmm1[12],xmm5[13],xmm1[13],xmm5[14],xmm1[14],xmm5[15],xmm1[15]3882; AVX512DQ-NEXT:    vpmovzxwq {{.*#+}} ymm5 = xmm1[0],zero,zero,zero,xmm1[1],zero,zero,zero,xmm1[2],zero,zero,zero,xmm1[3],zero,zero,zero3883; AVX512DQ-NEXT:    vpunpcklwd {{.*#+}} xmm9 = xmm10[0,0,1,1,2,2,3,3]3884; AVX512DQ-NEXT:    vpmovzxdq {{.*#+}} ymm9 = xmm9[0],zero,xmm9[1],zero,xmm9[2],zero,xmm9[3],zero3885; AVX512DQ-NEXT:    vpblendw {{.*#+}} ymm5 = ymm5[0],ymm9[1],ymm5[2,3,4],ymm9[5],ymm5[6,7,8],ymm9[9],ymm5[10,11,12],ymm9[13],ymm5[14,15]3886; AVX512DQ-NEXT:    vpshufd {{.*#+}} ymm9 = ymm11[2,1,3,3,6,5,7,7]3887; AVX512DQ-NEXT:    vpshufd {{.*#+}} xmm1 = xmm1[2,3,2,3]3888; AVX512DQ-NEXT:    vpmovzxwq {{.*#+}} ymm1 = xmm1[0],zero,zero,zero,xmm1[1],zero,zero,zero,xmm1[2],zero,zero,zero,xmm1[3],zero,zero,zero3889; AVX512DQ-NEXT:    vpblendw {{.*#+}} ymm1 = ymm1[0],ymm9[1],ymm1[2,3,4],ymm9[5],ymm1[6,7,8],ymm9[9],ymm1[10,11,12],ymm9[13],ymm1[14,15]3890; AVX512DQ-NEXT:    vinserti64x4 $1, %ymm1, %zmm5, %zmm13891; AVX512DQ-NEXT:    vpshufd {{.*#+}} ymm0 = ymm0[0,0,2,1,4,4,6,5]3892; AVX512DQ-NEXT:    vpshufd {{.*#+}} ymm3 = ymm3[0,0,2,1,4,4,6,5]3893; AVX512DQ-NEXT:    vpblendw {{.*#+}} ymm0 = ymm3[0,1,2],ymm0[3],ymm3[4,5,6],ymm0[7],ymm3[8,9,10],ymm0[11],ymm3[12,13,14],ymm0[15]3894; AVX512DQ-NEXT:    vinserti32x8 $1, %ymm2, %zmm0, %zmm1 {%k1}3895; AVX512DQ-NEXT:    vmovdqa64 %xmm22, %xmm03896; AVX512DQ-NEXT:    vmovdqa64 %xmm23, %xmm23897; AVX512DQ-NEXT:    vpunpcklbw {{.*#+}} xmm0 = 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]3898; AVX512DQ-NEXT:    vpshufhw {{.*#+}} xmm2 = xmm0[0,1,2,3,4,4,6,5]3899; AVX512DQ-NEXT:    vpshufhw {{.*#+}} xmm3 = xmm0[0,1,2,3,4,6,6,7]3900; AVX512DQ-NEXT:    vinserti128 $1, %xmm3, %ymm2, %ymm23901; AVX512DQ-NEXT:    vpunpcklbw {{.*#+}} xmm3 = xmm6[0],xmm4[0],xmm6[1],xmm4[1],xmm6[2],xmm4[2],xmm6[3],xmm4[3],xmm6[4],xmm4[4],xmm6[5],xmm4[5],xmm6[6],xmm4[6],xmm6[7],xmm4[7]3902; AVX512DQ-NEXT:    vpshufhw {{.*#+}} xmm4 = xmm3[0,1,2,3,4,5,5,7]3903; AVX512DQ-NEXT:    vpshufhw {{.*#+}} xmm5 = xmm3[0,1,2,3,6,5,7,7]3904; AVX512DQ-NEXT:    vinserti128 $1, %xmm5, %ymm4, %ymm43905; AVX512DQ-NEXT:    vpshuflw {{.*#+}} xmm5 = xmm0[0,0,2,1,4,5,6,7]3906; AVX512DQ-NEXT:    vpshuflw {{.*#+}} xmm0 = xmm0[0,2,2,3,4,5,6,7]3907; AVX512DQ-NEXT:    vinserti128 $1, %xmm0, %ymm5, %ymm03908; AVX512DQ-NEXT:    vpshuflw {{.*#+}} xmm5 = xmm3[0,1,1,3,4,5,6,7]3909; AVX512DQ-NEXT:    vpshuflw {{.*#+}} xmm3 = xmm3[2,1,3,3,4,5,6,7]3910; AVX512DQ-NEXT:    vinserti128 $1, %xmm3, %ymm5, %ymm33911; AVX512DQ-NEXT:    vpunpcklbw {{.*#+}} xmm5 = 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]3912; AVX512DQ-NEXT:    vpshufhw {{.*#+}} xmm6 = xmm5[0,1,2,3,4,4,6,5]3913; AVX512DQ-NEXT:    vpshufhw {{.*#+}} xmm7 = xmm5[0,1,2,3,4,6,6,7]3914; AVX512DQ-NEXT:    vinserti128 $1, %xmm7, %ymm6, %ymm63915; AVX512DQ-NEXT:    vpshufd {{.*#+}} ymm2 = ymm2[0,2,2,3,4,6,6,7]3916; AVX512DQ-NEXT:    vpshufd {{.*#+}} ymm4 = ymm4[0,2,2,3,4,6,6,7]3917; AVX512DQ-NEXT:    vpblendw {{.*#+}} ymm2 = ymm4[0,1,2],ymm2[3],ymm4[4,5,6],ymm2[7],ymm4[8,9,10],ymm2[11],ymm4[12,13,14],ymm2[15]3918; AVX512DQ-NEXT:    vmovdqa64 %xmm24, %xmm43919; AVX512DQ-NEXT:    vmovdqa64 %xmm25, %xmm73920; AVX512DQ-NEXT:    vpunpcklbw {{.*#+}} xmm4 = xmm4[0],xmm7[0],xmm4[1],xmm7[1],xmm4[2],xmm7[2],xmm4[3],xmm7[3],xmm4[4],xmm7[4],xmm4[5],xmm7[5],xmm4[6],xmm7[6],xmm4[7],xmm7[7]3921; AVX512DQ-NEXT:    vpmovzxwq {{.*#+}} ymm7 = xmm4[0],zero,zero,zero,xmm4[1],zero,zero,zero,xmm4[2],zero,zero,zero,xmm4[3],zero,zero,zero3922; AVX512DQ-NEXT:    vpunpcklwd {{.*#+}} xmm5 = xmm5[0,0,1,1,2,2,3,3]3923; AVX512DQ-NEXT:    vpmovzxdq {{.*#+}} ymm5 = xmm5[0],zero,xmm5[1],zero,xmm5[2],zero,xmm5[3],zero3924; AVX512DQ-NEXT:    vpblendw {{.*#+}} ymm5 = ymm7[0],ymm5[1],ymm7[2,3,4],ymm5[5],ymm7[6,7,8],ymm5[9],ymm7[10,11,12],ymm5[13],ymm7[14,15]3925; AVX512DQ-NEXT:    vpshufd {{.*#+}} ymm6 = ymm6[2,1,3,3,6,5,7,7]3926; AVX512DQ-NEXT:    vpshufd {{.*#+}} xmm4 = xmm4[2,3,2,3]3927; AVX512DQ-NEXT:    vpmovzxwq {{.*#+}} ymm4 = xmm4[0],zero,zero,zero,xmm4[1],zero,zero,zero,xmm4[2],zero,zero,zero,xmm4[3],zero,zero,zero3928; AVX512DQ-NEXT:    vpblendw {{.*#+}} ymm4 = ymm4[0],ymm6[1],ymm4[2,3,4],ymm6[5],ymm4[6,7,8],ymm6[9],ymm4[10,11,12],ymm6[13],ymm4[14,15]3929; AVX512DQ-NEXT:    vinserti64x4 $1, %ymm4, %zmm5, %zmm43930; AVX512DQ-NEXT:    vpshufd {{.*#+}} ymm0 = ymm0[0,0,2,1,4,4,6,5]3931; AVX512DQ-NEXT:    vpshufd {{.*#+}} ymm3 = ymm3[0,0,2,1,4,4,6,5]3932; AVX512DQ-NEXT:    vpblendw {{.*#+}} ymm0 = ymm3[0,1,2],ymm0[3],ymm3[4,5,6],ymm0[7],ymm3[8,9,10],ymm0[11],ymm3[12,13,14],ymm0[15]3933; AVX512DQ-NEXT:    vinserti32x8 $1, %ymm2, %zmm0, %zmm4 {%k1}3934; AVX512DQ-NEXT:    movq {{[0-9]+}}(%rsp), %rax3935; AVX512DQ-NEXT:    vmovdqa64 %zmm4, (%rax)3936; AVX512DQ-NEXT:    vmovdqa64 %zmm1, 192(%rax)3937; AVX512DQ-NEXT:    vmovdqa64 %zmm12, 128(%rax)3938; AVX512DQ-NEXT:    vmovdqa64 %zmm16, 64(%rax)3939; AVX512DQ-NEXT:    vzeroupper3940; AVX512DQ-NEXT:    retq3941;3942; AVX512DQ-FCP-LABEL: store_i8_stride8_vf32:3943; AVX512DQ-FCP:       # %bb.0:3944; AVX512DQ-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax3945; AVX512DQ-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r103946; AVX512DQ-FCP-NEXT:    vmovdqa (%rcx), %xmm13947; AVX512DQ-FCP-NEXT:    vmovdqa (%rdx), %xmm23948; AVX512DQ-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm0 = 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]3949; AVX512DQ-FCP-NEXT:    vmovdqa64 %xmm2, %xmm193950; AVX512DQ-FCP-NEXT:    vmovdqa64 %xmm1, %xmm203951; AVX512DQ-FCP-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm03952; AVX512DQ-FCP-NEXT:    vmovdqa {{.*#+}} ymm2 = [8,9,8,9,4,5,6,7,12,13,10,11,12,13,10,11,8,9,12,13,4,5,6,7,12,13,14,15,12,13,14,15]3953; AVX512DQ-FCP-NEXT:    vpshufb %ymm2, %ymm0, %ymm13954; AVX512DQ-FCP-NEXT:    vmovdqa64 %ymm2, %ymm183955; AVX512DQ-FCP-NEXT:    vmovdqa (%rsi), %xmm33956; AVX512DQ-FCP-NEXT:    vmovdqa (%rdi), %xmm43957; AVX512DQ-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm2 = 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]3958; AVX512DQ-FCP-NEXT:    vmovdqa64 %xmm4, %xmm213959; AVX512DQ-FCP-NEXT:    vmovdqa64 %xmm3, %xmm223960; AVX512DQ-FCP-NEXT:    vinserti128 $1, %xmm2, %ymm2, %ymm33961; AVX512DQ-FCP-NEXT:    vpmovsxwq {{.*#+}} ymm11 = [2312,2826,3340,3854]3962; AVX512DQ-FCP-NEXT:    vpshufb %ymm11, %ymm3, %ymm33963; AVX512DQ-FCP-NEXT:    vpblendw {{.*#+}} ymm1 = ymm3[0],ymm1[1],ymm3[2,3,4],ymm1[5],ymm3[6,7,8],ymm1[9],ymm3[10,11,12],ymm1[13],ymm3[14,15]3964; AVX512DQ-FCP-NEXT:    vmovdqa {{.*#+}} ymm3 = [0,1,0,1,4,5,2,3,4,5,2,3,12,13,14,15,0,1,4,5,4,5,6,7,4,5,6,7,12,13,14,15]3965; AVX512DQ-FCP-NEXT:    vpshufb %ymm3, %ymm0, %ymm03966; AVX512DQ-FCP-NEXT:    vmovdqa64 %ymm3, %ymm233967; AVX512DQ-FCP-NEXT:    vpmovsxwq {{.*#+}} xmm8 = [1284,1798]3968; AVX512DQ-FCP-NEXT:    vpshufb %xmm8, %xmm2, %xmm33969; AVX512DQ-FCP-NEXT:    vpmovzxwq {{.*#+}} xmm2 = xmm2[0],zero,zero,zero,xmm2[1],zero,zero,zero3970; AVX512DQ-FCP-NEXT:    vinserti128 $1, %xmm3, %ymm2, %ymm23971; AVX512DQ-FCP-NEXT:    vpblendw {{.*#+}} ymm0 = ymm2[0],ymm0[1],ymm2[2,3,4],ymm0[5],ymm2[6,7,8],ymm0[9],ymm2[10,11,12],ymm0[13],ymm2[14,15]3972; AVX512DQ-FCP-NEXT:    vinserti64x4 $1, %ymm1, %zmm0, %zmm173973; AVX512DQ-FCP-NEXT:    vmovdqa (%r10), %xmm13974; AVX512DQ-FCP-NEXT:    vmovdqa (%rax), %xmm143975; AVX512DQ-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm0 = xmm14[8],xmm1[8],xmm14[9],xmm1[9],xmm14[10],xmm1[10],xmm14[11],xmm1[11],xmm14[12],xmm1[12],xmm14[13],xmm1[13],xmm14[14],xmm1[14],xmm14[15],xmm1[15]3976; AVX512DQ-FCP-NEXT:    vmovdqa64 %xmm1, %xmm283977; AVX512DQ-FCP-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm03978; AVX512DQ-FCP-NEXT:    vmovdqa {{.*#+}} ymm2 = [0,1,2,3,8,9,8,9,8,9,8,9,12,13,10,11,0,1,2,3,8,9,12,13,8,9,12,13,12,13,14,15]3979; AVX512DQ-FCP-NEXT:    vpshufb %ymm2, %ymm0, %ymm13980; AVX512DQ-FCP-NEXT:    vmovdqa64 %ymm2, %ymm243981; AVX512DQ-FCP-NEXT:    vmovdqa (%r9), %xmm123982; AVX512DQ-FCP-NEXT:    vmovdqa (%r8), %xmm133983; AVX512DQ-FCP-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]3984; AVX512DQ-FCP-NEXT:    vinserti128 $1, %xmm2, %ymm2, %ymm23985; AVX512DQ-FCP-NEXT:    vmovdqa {{.*#+}} ymm4 = [0,1,2,3,8,9,10,11,8,9,10,11,10,11,14,15,0,1,2,3,12,13,10,11,12,13,10,11,14,15,14,15]3986; AVX512DQ-FCP-NEXT:    vpshufb %ymm4, %ymm2, %ymm33987; AVX512DQ-FCP-NEXT:    vmovdqa64 %ymm4, %ymm253988; AVX512DQ-FCP-NEXT:    vpblendw {{.*#+}} ymm1 = ymm3[0,1,2],ymm1[3],ymm3[4,5,6],ymm1[7],ymm3[8,9,10],ymm1[11],ymm3[12,13,14],ymm1[15]3989; AVX512DQ-FCP-NEXT:    vmovdqa {{.*#+}} ymm3 = [0,1,0,1,0,1,0,1,8,9,10,11,4,5,2,3,0,1,4,5,0,1,4,5,8,9,10,11,4,5,6,7]3990; AVX512DQ-FCP-NEXT:    vpshufb %ymm3, %ymm0, %ymm03991; AVX512DQ-FCP-NEXT:    vmovdqa64 %ymm3, %ymm263992; AVX512DQ-FCP-NEXT:    vmovdqa {{.*#+}} ymm3 = [0,1,2,3,0,1,2,3,8,9,10,11,2,3,6,7,4,5,2,3,4,5,2,3,8,9,10,11,6,7,6,7]3993; AVX512DQ-FCP-NEXT:    vpshufb %ymm3, %ymm2, %ymm23994; AVX512DQ-FCP-NEXT:    vmovdqa64 %ymm3, %ymm273995; AVX512DQ-FCP-NEXT:    vpblendw {{.*#+}} ymm0 = ymm2[0,1,2],ymm0[3],ymm2[4,5,6],ymm0[7],ymm2[8,9,10],ymm0[11],ymm2[12,13,14],ymm0[15]3996; AVX512DQ-FCP-NEXT:    movw $-21846, %r11w # imm = 0xAAAA3997; AVX512DQ-FCP-NEXT:    kmovw %r11d, %k13998; AVX512DQ-FCP-NEXT:    vinserti32x8 $1, %ymm1, %zmm0, %zmm17 {%k1}3999; AVX512DQ-FCP-NEXT:    vmovdqa 16(%rsi), %xmm104000; AVX512DQ-FCP-NEXT:    vmovdqa 16(%rdi), %xmm94001; AVX512DQ-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm2 = 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]4002; AVX512DQ-FCP-NEXT:    vinserti128 $1, %xmm2, %ymm2, %ymm04003; AVX512DQ-FCP-NEXT:    vpshufb %ymm11, %ymm0, %ymm34004; AVX512DQ-FCP-NEXT:    vmovdqa 16(%rcx), %xmm74005; AVX512DQ-FCP-NEXT:    vmovdqa 16(%rdx), %xmm64006; AVX512DQ-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm4 = 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]4007; AVX512DQ-FCP-NEXT:    vinserti128 $1, %xmm4, %ymm4, %ymm44008; AVX512DQ-FCP-NEXT:    vpshufb {{.*#+}} ymm5 = ymm4[u,u,8,9,u,u,u,u,u,u,10,11,u,u,u,u,u,u,28,29,u,u,u,u,u,u,30,31,u,u,u,u]4009; AVX512DQ-FCP-NEXT:    vpblendw {{.*#+}} ymm3 = ymm3[0],ymm5[1],ymm3[2,3,4],ymm5[5],ymm3[6,7,8],ymm5[9],ymm3[10,11,12],ymm5[13],ymm3[14,15]4010; AVX512DQ-FCP-NEXT:    vpmovzxwq {{.*#+}} xmm5 = xmm2[0],zero,zero,zero,xmm2[1],zero,zero,zero4011; AVX512DQ-FCP-NEXT:    vpshufb %xmm8, %xmm2, %xmm24012; AVX512DQ-FCP-NEXT:    vmovdqa64 %xmm8, %xmm294013; AVX512DQ-FCP-NEXT:    vinserti128 $1, %xmm2, %ymm5, %ymm24014; AVX512DQ-FCP-NEXT:    vpshufb {{.*#+}} ymm4 = ymm4[u,u,0,1,u,u,u,u,u,u,2,3,u,u,u,u,u,u,20,21,u,u,u,u,u,u,22,23,u,u,u,u]4015; AVX512DQ-FCP-NEXT:    vpblendw {{.*#+}} ymm2 = ymm2[0],ymm4[1],ymm2[2,3,4],ymm4[5],ymm2[6,7,8],ymm4[9],ymm2[10,11,12],ymm4[13],ymm2[14,15]4016; AVX512DQ-FCP-NEXT:    vinserti64x4 $1, %ymm3, %zmm2, %zmm164017; AVX512DQ-FCP-NEXT:    vmovdqa 16(%r10), %xmm84018; AVX512DQ-FCP-NEXT:    vmovdqa 16(%rax), %xmm44019; AVX512DQ-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm2 = xmm4[0],xmm8[0],xmm4[1],xmm8[1],xmm4[2],xmm8[2],xmm4[3],xmm8[3],xmm4[4],xmm8[4],xmm4[5],xmm8[5],xmm4[6],xmm8[6],xmm4[7],xmm8[7]4020; AVX512DQ-FCP-NEXT:    vinserti128 $1, %xmm2, %ymm2, %ymm04021; AVX512DQ-FCP-NEXT:    vmovdqa 16(%r9), %xmm54022; AVX512DQ-FCP-NEXT:    vmovdqa 16(%r8), %xmm34023; AVX512DQ-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm15 = 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]4024; AVX512DQ-FCP-NEXT:    vinserti128 $1, %xmm15, %ymm15, %ymm154025; AVX512DQ-FCP-NEXT:    vmovdqa {{.*#+}} ymm2 = [0,1,2,3,8,9,8,9,8,9,10,11,10,11,10,11,0,1,2,3,12,13,12,13,12,13,10,11,14,15,14,15]4026; AVX512DQ-FCP-NEXT:    vpshufb %ymm2, %ymm0, %ymm14027; AVX512DQ-FCP-NEXT:    vpshufb %ymm2, %ymm15, %ymm24028; AVX512DQ-FCP-NEXT:    vpblendw {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3],ymm2[4,5,6],ymm1[7],ymm2[8,9,10],ymm1[11],ymm2[12,13,14],ymm1[15]4029; AVX512DQ-FCP-NEXT:    vmovdqa {{.*#+}} ymm2 = [0,1,2,3,0,1,0,1,8,9,10,11,2,3,2,3,4,5,2,3,4,5,4,5,8,9,10,11,6,7,6,7]4030; AVX512DQ-FCP-NEXT:    vpshufb %ymm2, %ymm0, %ymm04031; AVX512DQ-FCP-NEXT:    vpshufb %ymm2, %ymm15, %ymm24032; AVX512DQ-FCP-NEXT:    vpblendw {{.*#+}} ymm0 = ymm2[0,1,2],ymm0[3],ymm2[4,5,6],ymm0[7],ymm2[8,9,10],ymm0[11],ymm2[12,13,14],ymm0[15]4033; AVX512DQ-FCP-NEXT:    vinserti32x8 $1, %ymm1, %zmm0, %zmm16 {%k1}4034; AVX512DQ-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm0 = 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]4035; AVX512DQ-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm1 = 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]4036; AVX512DQ-FCP-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm04037; AVX512DQ-FCP-NEXT:    vinserti128 $1, %xmm1, %ymm1, %ymm24038; AVX512DQ-FCP-NEXT:    vmovdqa %ymm11, %ymm104039; AVX512DQ-FCP-NEXT:    vpshufb %ymm11, %ymm2, %ymm24040; AVX512DQ-FCP-NEXT:    vmovdqa64 %ymm18, %ymm114041; AVX512DQ-FCP-NEXT:    vpshufb %ymm11, %ymm0, %ymm64042; AVX512DQ-FCP-NEXT:    vpblendw {{.*#+}} ymm2 = ymm2[0],ymm6[1],ymm2[2,3,4],ymm6[5],ymm2[6,7,8],ymm6[9],ymm2[10,11,12],ymm6[13],ymm2[14,15]4043; AVX512DQ-FCP-NEXT:    vmovdqa64 %ymm23, %ymm94044; AVX512DQ-FCP-NEXT:    vpshufb %ymm9, %ymm0, %ymm04045; AVX512DQ-FCP-NEXT:    vpmovzxwq {{.*#+}} xmm6 = xmm1[0],zero,zero,zero,xmm1[1],zero,zero,zero4046; AVX512DQ-FCP-NEXT:    vmovdqa64 %xmm29, %xmm154047; AVX512DQ-FCP-NEXT:    vpshufb %xmm15, %xmm1, %xmm14048; AVX512DQ-FCP-NEXT:    vinserti128 $1, %xmm1, %ymm6, %ymm14049; AVX512DQ-FCP-NEXT:    vpblendw {{.*#+}} ymm0 = ymm1[0],ymm0[1],ymm1[2,3,4],ymm0[5],ymm1[6,7,8],ymm0[9],ymm1[10,11,12],ymm0[13],ymm1[14,15]4050; AVX512DQ-FCP-NEXT:    vinserti64x4 $1, %ymm2, %zmm0, %zmm04051; AVX512DQ-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm1 = xmm4[8],xmm8[8],xmm4[9],xmm8[9],xmm4[10],xmm8[10],xmm4[11],xmm8[11],xmm4[12],xmm8[12],xmm4[13],xmm8[13],xmm4[14],xmm8[14],xmm4[15],xmm8[15]4052; AVX512DQ-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm2 = 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]4053; AVX512DQ-FCP-NEXT:    vinserti128 $1, %xmm1, %ymm1, %ymm14054; AVX512DQ-FCP-NEXT:    vinserti128 $1, %xmm2, %ymm2, %ymm24055; AVX512DQ-FCP-NEXT:    vmovdqa64 %ymm24, %ymm54056; AVX512DQ-FCP-NEXT:    vpshufb %ymm5, %ymm1, %ymm34057; AVX512DQ-FCP-NEXT:    vmovdqa64 %ymm25, %ymm64058; AVX512DQ-FCP-NEXT:    vpshufb %ymm6, %ymm2, %ymm44059; AVX512DQ-FCP-NEXT:    vpblendw {{.*#+}} ymm3 = ymm4[0,1,2],ymm3[3],ymm4[4,5,6],ymm3[7],ymm4[8,9,10],ymm3[11],ymm4[12,13,14],ymm3[15]4060; AVX512DQ-FCP-NEXT:    vmovdqa64 %ymm26, %ymm84061; AVX512DQ-FCP-NEXT:    vpshufb %ymm8, %ymm1, %ymm14062; AVX512DQ-FCP-NEXT:    vmovdqa64 %ymm27, %ymm74063; AVX512DQ-FCP-NEXT:    vpshufb %ymm7, %ymm2, %ymm24064; AVX512DQ-FCP-NEXT:    vpblendw {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3],ymm2[4,5,6],ymm1[7],ymm2[8,9,10],ymm1[11],ymm2[12,13,14],ymm1[15]4065; AVX512DQ-FCP-NEXT:    vinserti32x8 $1, %ymm3, %zmm1, %zmm0 {%k1}4066; AVX512DQ-FCP-NEXT:    vmovdqa64 %xmm19, %xmm14067; AVX512DQ-FCP-NEXT:    vmovdqa64 %xmm20, %xmm24068; AVX512DQ-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]4069; AVX512DQ-FCP-NEXT:    vmovdqa64 %xmm21, %xmm24070; AVX512DQ-FCP-NEXT:    vmovdqa64 %xmm22, %xmm34071; AVX512DQ-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm2 = xmm2[0],xmm3[0],xmm2[1],xmm3[1],xmm2[2],xmm3[2],xmm2[3],xmm3[3],xmm2[4],xmm3[4],xmm2[5],xmm3[5],xmm2[6],xmm3[6],xmm2[7],xmm3[7]4072; AVX512DQ-FCP-NEXT:    vinserti128 $1, %xmm2, %ymm2, %ymm34073; AVX512DQ-FCP-NEXT:    vpshufb %ymm10, %ymm3, %ymm34074; AVX512DQ-FCP-NEXT:    vinserti128 $1, %xmm1, %ymm1, %ymm14075; AVX512DQ-FCP-NEXT:    vpshufb %ymm11, %ymm1, %ymm44076; AVX512DQ-FCP-NEXT:    vpblendw {{.*#+}} ymm3 = ymm3[0],ymm4[1],ymm3[2,3,4],ymm4[5],ymm3[6,7,8],ymm4[9],ymm3[10,11,12],ymm4[13],ymm3[14,15]4077; AVX512DQ-FCP-NEXT:    vpshufb %ymm9, %ymm1, %ymm14078; AVX512DQ-FCP-NEXT:    vpshufb %xmm15, %xmm2, %xmm44079; AVX512DQ-FCP-NEXT:    vpmovzxwq {{.*#+}} xmm2 = xmm2[0],zero,zero,zero,xmm2[1],zero,zero,zero4080; AVX512DQ-FCP-NEXT:    vinserti128 $1, %xmm4, %ymm2, %ymm24081; AVX512DQ-FCP-NEXT:    vpblendw {{.*#+}} ymm1 = ymm2[0],ymm1[1],ymm2[2,3,4],ymm1[5],ymm2[6,7,8],ymm1[9],ymm2[10,11,12],ymm1[13],ymm2[14,15]4082; AVX512DQ-FCP-NEXT:    vinserti64x4 $1, %ymm3, %zmm1, %zmm14083; AVX512DQ-FCP-NEXT:    vmovdqa64 %xmm28, %xmm24084; AVX512DQ-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm2 = xmm14[0],xmm2[0],xmm14[1],xmm2[1],xmm14[2],xmm2[2],xmm14[3],xmm2[3],xmm14[4],xmm2[4],xmm14[5],xmm2[5],xmm14[6],xmm2[6],xmm14[7],xmm2[7]4085; AVX512DQ-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm3 = 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]4086; AVX512DQ-FCP-NEXT:    vinserti128 $1, %xmm2, %ymm2, %ymm24087; AVX512DQ-FCP-NEXT:    vpshufb %ymm5, %ymm2, %ymm44088; AVX512DQ-FCP-NEXT:    vinserti128 $1, %xmm3, %ymm3, %ymm34089; AVX512DQ-FCP-NEXT:    vpshufb %ymm6, %ymm3, %ymm54090; AVX512DQ-FCP-NEXT:    vpblendw {{.*#+}} ymm4 = ymm5[0,1,2],ymm4[3],ymm5[4,5,6],ymm4[7],ymm5[8,9,10],ymm4[11],ymm5[12,13,14],ymm4[15]4091; AVX512DQ-FCP-NEXT:    vpshufb %ymm8, %ymm2, %ymm24092; AVX512DQ-FCP-NEXT:    vpshufb %ymm7, %ymm3, %ymm34093; AVX512DQ-FCP-NEXT:    vpblendw {{.*#+}} ymm2 = ymm3[0,1,2],ymm2[3],ymm3[4,5,6],ymm2[7],ymm3[8,9,10],ymm2[11],ymm3[12,13,14],ymm2[15]4094; AVX512DQ-FCP-NEXT:    vinserti32x8 $1, %ymm4, %zmm2, %zmm1 {%k1}4095; AVX512DQ-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax4096; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, (%rax)4097; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, 192(%rax)4098; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm16, 128(%rax)4099; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm17, 64(%rax)4100; AVX512DQ-FCP-NEXT:    vzeroupper4101; AVX512DQ-FCP-NEXT:    retq4102;4103; AVX512BW-LABEL: store_i8_stride8_vf32:4104; AVX512BW:       # %bb.0:4105; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax4106; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %r104107; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %r114108; AVX512BW-NEXT:    vmovdqa (%r11), %xmm04109; AVX512BW-NEXT:    vmovdqa 16(%r11), %xmm14110; AVX512BW-NEXT:    vmovdqa (%r10), %xmm24111; AVX512BW-NEXT:    vmovdqa 16(%r10), %xmm34112; AVX512BW-NEXT:    vpunpckhbw {{.*#+}} xmm4 = 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]4113; AVX512BW-NEXT:    vmovdqa (%r9), %xmm54114; AVX512BW-NEXT:    vmovdqa 16(%r9), %xmm64115; AVX512BW-NEXT:    vmovdqa (%r8), %xmm74116; AVX512BW-NEXT:    vmovdqa 16(%r8), %xmm84117; AVX512BW-NEXT:    vpunpckhbw {{.*#+}} xmm9 = xmm7[8],xmm5[8],xmm7[9],xmm5[9],xmm7[10],xmm5[10],xmm7[11],xmm5[11],xmm7[12],xmm5[12],xmm7[13],xmm5[13],xmm7[14],xmm5[14],xmm7[15],xmm5[15]4118; AVX512BW-NEXT:    vpmovsxbw {{.*#+}} zmm10 = [0,1,0,32,4,5,1,33,2,1,2,34,4,5,3,35,0,1,4,36,4,5,5,37,0,1,6,38,6,5,7,39]4119; AVX512BW-NEXT:    vpermt2w %zmm4, %zmm10, %zmm94120; AVX512BW-NEXT:    vmovdqa (%rcx), %xmm44121; AVX512BW-NEXT:    vmovdqa 16(%rcx), %xmm114122; AVX512BW-NEXT:    vmovdqa (%rdx), %xmm124123; AVX512BW-NEXT:    vmovdqa 16(%rdx), %xmm134124; AVX512BW-NEXT:    vpunpckhbw {{.*#+}} xmm14 = xmm12[8],xmm4[8],xmm12[9],xmm4[9],xmm12[10],xmm4[10],xmm12[11],xmm4[11],xmm12[12],xmm4[12],xmm12[13],xmm4[13],xmm12[14],xmm4[14],xmm12[15],xmm4[15]4125; AVX512BW-NEXT:    vmovdqa (%rsi), %xmm154126; AVX512BW-NEXT:    vmovdqa64 16(%rsi), %xmm164127; AVX512BW-NEXT:    vmovdqa64 (%rdi), %xmm174128; AVX512BW-NEXT:    vmovdqa64 16(%rdi), %xmm184129; AVX512BW-NEXT:    vpunpckhbw {{.*#+}} xmm19 = xmm17[8],xmm15[8],xmm17[9],xmm15[9],xmm17[10],xmm15[10],xmm17[11],xmm15[11],xmm17[12],xmm15[12],xmm17[13],xmm15[13],xmm17[14],xmm15[14],xmm17[15],xmm15[15]4130; AVX512BW-NEXT:    vpmovsxbw {{.*#+}} zmm20 = [0,32,0,0,1,33,0,0,2,34,0,0,3,35,0,0,4,36,0,0,5,37,0,0,6,38,0,0,7,39,0,0]4131; AVX512BW-NEXT:    vpermt2w %zmm14, %zmm20, %zmm194132; AVX512BW-NEXT:    movw $-21846, %cx # imm = 0xAAAA4133; AVX512BW-NEXT:    kmovd %ecx, %k14134; AVX512BW-NEXT:    vmovdqa32 %zmm9, %zmm19 {%k1}4135; AVX512BW-NEXT:    vpunpcklbw {{.*#+}} xmm9 = 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]4136; AVX512BW-NEXT:    vpunpcklbw {{.*#+}} xmm14 = 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]4137; AVX512BW-NEXT:    vpermt2w %zmm9, %zmm10, %zmm144138; AVX512BW-NEXT:    vpunpcklbw {{.*#+}} xmm9 = 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]4139; AVX512BW-NEXT:    vpunpcklbw {{.*#+}} xmm21 = xmm18[0],xmm16[0],xmm18[1],xmm16[1],xmm18[2],xmm16[2],xmm18[3],xmm16[3],xmm18[4],xmm16[4],xmm18[5],xmm16[5],xmm18[6],xmm16[6],xmm18[7],xmm16[7]4140; AVX512BW-NEXT:    vpermt2w %zmm9, %zmm20, %zmm214141; AVX512BW-NEXT:    vmovdqa32 %zmm14, %zmm21 {%k1}4142; AVX512BW-NEXT:    vpunpckhbw {{.*#+}} xmm1 = 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]4143; AVX512BW-NEXT:    vpunpckhbw {{.*#+}} xmm3 = 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]4144; AVX512BW-NEXT:    vpermt2w %zmm1, %zmm10, %zmm34145; AVX512BW-NEXT:    vpunpckhbw {{.*#+}} xmm1 = 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]4146; AVX512BW-NEXT:    vpunpckhbw {{.*#+}} xmm6 = xmm18[8],xmm16[8],xmm18[9],xmm16[9],xmm18[10],xmm16[10],xmm18[11],xmm16[11],xmm18[12],xmm16[12],xmm18[13],xmm16[13],xmm18[14],xmm16[14],xmm18[15],xmm16[15]4147; AVX512BW-NEXT:    vpermt2w %zmm1, %zmm20, %zmm64148; AVX512BW-NEXT:    vmovdqa32 %zmm3, %zmm6 {%k1}4149; AVX512BW-NEXT:    vpunpcklbw {{.*#+}} xmm0 = 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]4150; AVX512BW-NEXT:    vpunpcklbw {{.*#+}} xmm1 = xmm7[0],xmm5[0],xmm7[1],xmm5[1],xmm7[2],xmm5[2],xmm7[3],xmm5[3],xmm7[4],xmm5[4],xmm7[5],xmm5[5],xmm7[6],xmm5[6],xmm7[7],xmm5[7]4151; AVX512BW-NEXT:    vpermt2w %zmm0, %zmm10, %zmm14152; AVX512BW-NEXT:    vpunpcklbw {{.*#+}} xmm0 = xmm12[0],xmm4[0],xmm12[1],xmm4[1],xmm12[2],xmm4[2],xmm12[3],xmm4[3],xmm12[4],xmm4[4],xmm12[5],xmm4[5],xmm12[6],xmm4[6],xmm12[7],xmm4[7]4153; AVX512BW-NEXT:    vpunpcklbw {{.*#+}} xmm2 = xmm17[0],xmm15[0],xmm17[1],xmm15[1],xmm17[2],xmm15[2],xmm17[3],xmm15[3],xmm17[4],xmm15[4],xmm17[5],xmm15[5],xmm17[6],xmm15[6],xmm17[7],xmm15[7]4154; AVX512BW-NEXT:    vpermt2w %zmm0, %zmm20, %zmm24155; AVX512BW-NEXT:    vmovdqa32 %zmm1, %zmm2 {%k1}4156; AVX512BW-NEXT:    vmovdqa64 %zmm2, (%rax)4157; AVX512BW-NEXT:    vmovdqa64 %zmm6, 192(%rax)4158; AVX512BW-NEXT:    vmovdqa64 %zmm21, 128(%rax)4159; AVX512BW-NEXT:    vmovdqa64 %zmm19, 64(%rax)4160; AVX512BW-NEXT:    vzeroupper4161; AVX512BW-NEXT:    retq4162;4163; AVX512BW-FCP-LABEL: store_i8_stride8_vf32:4164; AVX512BW-FCP:       # %bb.0:4165; AVX512BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax4166; AVX512BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r104167; AVX512BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r114168; AVX512BW-FCP-NEXT:    vmovdqa (%r11), %xmm04169; AVX512BW-FCP-NEXT:    vmovdqa 16(%r11), %xmm14170; AVX512BW-FCP-NEXT:    vmovdqa (%r10), %xmm24171; AVX512BW-FCP-NEXT:    vmovdqa 16(%r10), %xmm34172; AVX512BW-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm4 = 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]4173; AVX512BW-FCP-NEXT:    vmovdqa (%r9), %xmm54174; AVX512BW-FCP-NEXT:    vmovdqa 16(%r9), %xmm64175; AVX512BW-FCP-NEXT:    vmovdqa (%r8), %xmm74176; AVX512BW-FCP-NEXT:    vmovdqa 16(%r8), %xmm84177; AVX512BW-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm9 = xmm7[8],xmm5[8],xmm7[9],xmm5[9],xmm7[10],xmm5[10],xmm7[11],xmm5[11],xmm7[12],xmm5[12],xmm7[13],xmm5[13],xmm7[14],xmm5[14],xmm7[15],xmm5[15]4178; AVX512BW-FCP-NEXT:    vpmovsxbw {{.*#+}} zmm10 = [0,1,0,32,4,5,1,33,2,1,2,34,4,5,3,35,0,1,4,36,4,5,5,37,0,1,6,38,6,5,7,39]4179; AVX512BW-FCP-NEXT:    vpermt2w %zmm4, %zmm10, %zmm94180; AVX512BW-FCP-NEXT:    vmovdqa (%rcx), %xmm44181; AVX512BW-FCP-NEXT:    vmovdqa 16(%rcx), %xmm114182; AVX512BW-FCP-NEXT:    vmovdqa (%rdx), %xmm124183; AVX512BW-FCP-NEXT:    vmovdqa 16(%rdx), %xmm134184; AVX512BW-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm14 = xmm12[8],xmm4[8],xmm12[9],xmm4[9],xmm12[10],xmm4[10],xmm12[11],xmm4[11],xmm12[12],xmm4[12],xmm12[13],xmm4[13],xmm12[14],xmm4[14],xmm12[15],xmm4[15]4185; AVX512BW-FCP-NEXT:    vmovdqa (%rsi), %xmm154186; AVX512BW-FCP-NEXT:    vmovdqa64 16(%rsi), %xmm164187; AVX512BW-FCP-NEXT:    vmovdqa64 (%rdi), %xmm174188; AVX512BW-FCP-NEXT:    vmovdqa64 16(%rdi), %xmm184189; AVX512BW-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm19 = xmm17[8],xmm15[8],xmm17[9],xmm15[9],xmm17[10],xmm15[10],xmm17[11],xmm15[11],xmm17[12],xmm15[12],xmm17[13],xmm15[13],xmm17[14],xmm15[14],xmm17[15],xmm15[15]4190; AVX512BW-FCP-NEXT:    vpmovsxbw {{.*#+}} zmm20 = [0,32,0,0,1,33,0,0,2,34,0,0,3,35,0,0,4,36,0,0,5,37,0,0,6,38,0,0,7,39,0,0]4191; AVX512BW-FCP-NEXT:    vpermt2w %zmm14, %zmm20, %zmm194192; AVX512BW-FCP-NEXT:    movw $-21846, %cx # imm = 0xAAAA4193; AVX512BW-FCP-NEXT:    kmovd %ecx, %k14194; AVX512BW-FCP-NEXT:    vmovdqa32 %zmm9, %zmm19 {%k1}4195; AVX512BW-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm9 = 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]4196; AVX512BW-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm14 = 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]4197; AVX512BW-FCP-NEXT:    vpermt2w %zmm9, %zmm10, %zmm144198; AVX512BW-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm9 = 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]4199; AVX512BW-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm21 = xmm18[0],xmm16[0],xmm18[1],xmm16[1],xmm18[2],xmm16[2],xmm18[3],xmm16[3],xmm18[4],xmm16[4],xmm18[5],xmm16[5],xmm18[6],xmm16[6],xmm18[7],xmm16[7]4200; AVX512BW-FCP-NEXT:    vpermt2w %zmm9, %zmm20, %zmm214201; AVX512BW-FCP-NEXT:    vmovdqa32 %zmm14, %zmm21 {%k1}4202; AVX512BW-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm1 = 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]4203; AVX512BW-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm3 = 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]4204; AVX512BW-FCP-NEXT:    vpermt2w %zmm1, %zmm10, %zmm34205; AVX512BW-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm1 = 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]4206; AVX512BW-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm6 = xmm18[8],xmm16[8],xmm18[9],xmm16[9],xmm18[10],xmm16[10],xmm18[11],xmm16[11],xmm18[12],xmm16[12],xmm18[13],xmm16[13],xmm18[14],xmm16[14],xmm18[15],xmm16[15]4207; AVX512BW-FCP-NEXT:    vpermt2w %zmm1, %zmm20, %zmm64208; AVX512BW-FCP-NEXT:    vmovdqa32 %zmm3, %zmm6 {%k1}4209; AVX512BW-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm0 = 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]4210; AVX512BW-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm1 = xmm7[0],xmm5[0],xmm7[1],xmm5[1],xmm7[2],xmm5[2],xmm7[3],xmm5[3],xmm7[4],xmm5[4],xmm7[5],xmm5[5],xmm7[6],xmm5[6],xmm7[7],xmm5[7]4211; AVX512BW-FCP-NEXT:    vpermt2w %zmm0, %zmm10, %zmm14212; AVX512BW-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm0 = xmm12[0],xmm4[0],xmm12[1],xmm4[1],xmm12[2],xmm4[2],xmm12[3],xmm4[3],xmm12[4],xmm4[4],xmm12[5],xmm4[5],xmm12[6],xmm4[6],xmm12[7],xmm4[7]4213; AVX512BW-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm2 = xmm17[0],xmm15[0],xmm17[1],xmm15[1],xmm17[2],xmm15[2],xmm17[3],xmm15[3],xmm17[4],xmm15[4],xmm17[5],xmm15[5],xmm17[6],xmm15[6],xmm17[7],xmm15[7]4214; AVX512BW-FCP-NEXT:    vpermt2w %zmm0, %zmm20, %zmm24215; AVX512BW-FCP-NEXT:    vmovdqa32 %zmm1, %zmm2 {%k1}4216; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm2, (%rax)4217; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm6, 192(%rax)4218; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm21, 128(%rax)4219; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm19, 64(%rax)4220; AVX512BW-FCP-NEXT:    vzeroupper4221; AVX512BW-FCP-NEXT:    retq4222;4223; AVX512DQ-BW-LABEL: store_i8_stride8_vf32:4224; AVX512DQ-BW:       # %bb.0:4225; AVX512DQ-BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax4226; AVX512DQ-BW-NEXT:    movq {{[0-9]+}}(%rsp), %r104227; AVX512DQ-BW-NEXT:    movq {{[0-9]+}}(%rsp), %r114228; AVX512DQ-BW-NEXT:    vmovdqa (%r11), %xmm04229; AVX512DQ-BW-NEXT:    vmovdqa 16(%r11), %xmm14230; AVX512DQ-BW-NEXT:    vmovdqa (%r10), %xmm24231; AVX512DQ-BW-NEXT:    vmovdqa 16(%r10), %xmm34232; AVX512DQ-BW-NEXT:    vpunpckhbw {{.*#+}} xmm4 = 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]4233; AVX512DQ-BW-NEXT:    vmovdqa (%r9), %xmm54234; AVX512DQ-BW-NEXT:    vmovdqa 16(%r9), %xmm64235; AVX512DQ-BW-NEXT:    vmovdqa (%r8), %xmm74236; AVX512DQ-BW-NEXT:    vmovdqa 16(%r8), %xmm84237; AVX512DQ-BW-NEXT:    vpunpckhbw {{.*#+}} xmm9 = xmm7[8],xmm5[8],xmm7[9],xmm5[9],xmm7[10],xmm5[10],xmm7[11],xmm5[11],xmm7[12],xmm5[12],xmm7[13],xmm5[13],xmm7[14],xmm5[14],xmm7[15],xmm5[15]4238; AVX512DQ-BW-NEXT:    vpmovsxbw {{.*#+}} zmm10 = [0,1,0,32,4,5,1,33,2,1,2,34,4,5,3,35,0,1,4,36,4,5,5,37,0,1,6,38,6,5,7,39]4239; AVX512DQ-BW-NEXT:    vpermt2w %zmm4, %zmm10, %zmm94240; AVX512DQ-BW-NEXT:    vmovdqa (%rcx), %xmm44241; AVX512DQ-BW-NEXT:    vmovdqa 16(%rcx), %xmm114242; AVX512DQ-BW-NEXT:    vmovdqa (%rdx), %xmm124243; AVX512DQ-BW-NEXT:    vmovdqa 16(%rdx), %xmm134244; AVX512DQ-BW-NEXT:    vpunpckhbw {{.*#+}} xmm14 = xmm12[8],xmm4[8],xmm12[9],xmm4[9],xmm12[10],xmm4[10],xmm12[11],xmm4[11],xmm12[12],xmm4[12],xmm12[13],xmm4[13],xmm12[14],xmm4[14],xmm12[15],xmm4[15]4245; AVX512DQ-BW-NEXT:    vmovdqa (%rsi), %xmm154246; AVX512DQ-BW-NEXT:    vmovdqa64 16(%rsi), %xmm164247; AVX512DQ-BW-NEXT:    vmovdqa64 (%rdi), %xmm174248; AVX512DQ-BW-NEXT:    vmovdqa64 16(%rdi), %xmm184249; AVX512DQ-BW-NEXT:    vpunpckhbw {{.*#+}} xmm19 = xmm17[8],xmm15[8],xmm17[9],xmm15[9],xmm17[10],xmm15[10],xmm17[11],xmm15[11],xmm17[12],xmm15[12],xmm17[13],xmm15[13],xmm17[14],xmm15[14],xmm17[15],xmm15[15]4250; AVX512DQ-BW-NEXT:    vpmovsxbw {{.*#+}} zmm20 = [0,32,0,0,1,33,0,0,2,34,0,0,3,35,0,0,4,36,0,0,5,37,0,0,6,38,0,0,7,39,0,0]4251; AVX512DQ-BW-NEXT:    vpermt2w %zmm14, %zmm20, %zmm194252; AVX512DQ-BW-NEXT:    movw $-21846, %cx # imm = 0xAAAA4253; AVX512DQ-BW-NEXT:    kmovd %ecx, %k14254; AVX512DQ-BW-NEXT:    vmovdqa32 %zmm9, %zmm19 {%k1}4255; AVX512DQ-BW-NEXT:    vpunpcklbw {{.*#+}} xmm9 = 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]4256; AVX512DQ-BW-NEXT:    vpunpcklbw {{.*#+}} xmm14 = 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]4257; AVX512DQ-BW-NEXT:    vpermt2w %zmm9, %zmm10, %zmm144258; AVX512DQ-BW-NEXT:    vpunpcklbw {{.*#+}} xmm9 = 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]4259; AVX512DQ-BW-NEXT:    vpunpcklbw {{.*#+}} xmm21 = xmm18[0],xmm16[0],xmm18[1],xmm16[1],xmm18[2],xmm16[2],xmm18[3],xmm16[3],xmm18[4],xmm16[4],xmm18[5],xmm16[5],xmm18[6],xmm16[6],xmm18[7],xmm16[7]4260; AVX512DQ-BW-NEXT:    vpermt2w %zmm9, %zmm20, %zmm214261; AVX512DQ-BW-NEXT:    vmovdqa32 %zmm14, %zmm21 {%k1}4262; AVX512DQ-BW-NEXT:    vpunpckhbw {{.*#+}} xmm1 = 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]4263; AVX512DQ-BW-NEXT:    vpunpckhbw {{.*#+}} xmm3 = 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]4264; AVX512DQ-BW-NEXT:    vpermt2w %zmm1, %zmm10, %zmm34265; AVX512DQ-BW-NEXT:    vpunpckhbw {{.*#+}} xmm1 = 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]4266; AVX512DQ-BW-NEXT:    vpunpckhbw {{.*#+}} xmm6 = xmm18[8],xmm16[8],xmm18[9],xmm16[9],xmm18[10],xmm16[10],xmm18[11],xmm16[11],xmm18[12],xmm16[12],xmm18[13],xmm16[13],xmm18[14],xmm16[14],xmm18[15],xmm16[15]4267; AVX512DQ-BW-NEXT:    vpermt2w %zmm1, %zmm20, %zmm64268; AVX512DQ-BW-NEXT:    vmovdqa32 %zmm3, %zmm6 {%k1}4269; AVX512DQ-BW-NEXT:    vpunpcklbw {{.*#+}} xmm0 = 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]4270; AVX512DQ-BW-NEXT:    vpunpcklbw {{.*#+}} xmm1 = xmm7[0],xmm5[0],xmm7[1],xmm5[1],xmm7[2],xmm5[2],xmm7[3],xmm5[3],xmm7[4],xmm5[4],xmm7[5],xmm5[5],xmm7[6],xmm5[6],xmm7[7],xmm5[7]4271; AVX512DQ-BW-NEXT:    vpermt2w %zmm0, %zmm10, %zmm14272; AVX512DQ-BW-NEXT:    vpunpcklbw {{.*#+}} xmm0 = xmm12[0],xmm4[0],xmm12[1],xmm4[1],xmm12[2],xmm4[2],xmm12[3],xmm4[3],xmm12[4],xmm4[4],xmm12[5],xmm4[5],xmm12[6],xmm4[6],xmm12[7],xmm4[7]4273; AVX512DQ-BW-NEXT:    vpunpcklbw {{.*#+}} xmm2 = xmm17[0],xmm15[0],xmm17[1],xmm15[1],xmm17[2],xmm15[2],xmm17[3],xmm15[3],xmm17[4],xmm15[4],xmm17[5],xmm15[5],xmm17[6],xmm15[6],xmm17[7],xmm15[7]4274; AVX512DQ-BW-NEXT:    vpermt2w %zmm0, %zmm20, %zmm24275; AVX512DQ-BW-NEXT:    vmovdqa32 %zmm1, %zmm2 {%k1}4276; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm2, (%rax)4277; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm6, 192(%rax)4278; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm21, 128(%rax)4279; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm19, 64(%rax)4280; AVX512DQ-BW-NEXT:    vzeroupper4281; AVX512DQ-BW-NEXT:    retq4282;4283; AVX512DQ-BW-FCP-LABEL: store_i8_stride8_vf32:4284; AVX512DQ-BW-FCP:       # %bb.0:4285; AVX512DQ-BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax4286; AVX512DQ-BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r104287; AVX512DQ-BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r114288; AVX512DQ-BW-FCP-NEXT:    vmovdqa (%r11), %xmm04289; AVX512DQ-BW-FCP-NEXT:    vmovdqa 16(%r11), %xmm14290; AVX512DQ-BW-FCP-NEXT:    vmovdqa (%r10), %xmm24291; AVX512DQ-BW-FCP-NEXT:    vmovdqa 16(%r10), %xmm34292; AVX512DQ-BW-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm4 = 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]4293; AVX512DQ-BW-FCP-NEXT:    vmovdqa (%r9), %xmm54294; AVX512DQ-BW-FCP-NEXT:    vmovdqa 16(%r9), %xmm64295; AVX512DQ-BW-FCP-NEXT:    vmovdqa (%r8), %xmm74296; AVX512DQ-BW-FCP-NEXT:    vmovdqa 16(%r8), %xmm84297; AVX512DQ-BW-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm9 = xmm7[8],xmm5[8],xmm7[9],xmm5[9],xmm7[10],xmm5[10],xmm7[11],xmm5[11],xmm7[12],xmm5[12],xmm7[13],xmm5[13],xmm7[14],xmm5[14],xmm7[15],xmm5[15]4298; AVX512DQ-BW-FCP-NEXT:    vpmovsxbw {{.*#+}} zmm10 = [0,1,0,32,4,5,1,33,2,1,2,34,4,5,3,35,0,1,4,36,4,5,5,37,0,1,6,38,6,5,7,39]4299; AVX512DQ-BW-FCP-NEXT:    vpermt2w %zmm4, %zmm10, %zmm94300; AVX512DQ-BW-FCP-NEXT:    vmovdqa (%rcx), %xmm44301; AVX512DQ-BW-FCP-NEXT:    vmovdqa 16(%rcx), %xmm114302; AVX512DQ-BW-FCP-NEXT:    vmovdqa (%rdx), %xmm124303; AVX512DQ-BW-FCP-NEXT:    vmovdqa 16(%rdx), %xmm134304; AVX512DQ-BW-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm14 = xmm12[8],xmm4[8],xmm12[9],xmm4[9],xmm12[10],xmm4[10],xmm12[11],xmm4[11],xmm12[12],xmm4[12],xmm12[13],xmm4[13],xmm12[14],xmm4[14],xmm12[15],xmm4[15]4305; AVX512DQ-BW-FCP-NEXT:    vmovdqa (%rsi), %xmm154306; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 16(%rsi), %xmm164307; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%rdi), %xmm174308; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 16(%rdi), %xmm184309; AVX512DQ-BW-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm19 = xmm17[8],xmm15[8],xmm17[9],xmm15[9],xmm17[10],xmm15[10],xmm17[11],xmm15[11],xmm17[12],xmm15[12],xmm17[13],xmm15[13],xmm17[14],xmm15[14],xmm17[15],xmm15[15]4310; AVX512DQ-BW-FCP-NEXT:    vpmovsxbw {{.*#+}} zmm20 = [0,32,0,0,1,33,0,0,2,34,0,0,3,35,0,0,4,36,0,0,5,37,0,0,6,38,0,0,7,39,0,0]4311; AVX512DQ-BW-FCP-NEXT:    vpermt2w %zmm14, %zmm20, %zmm194312; AVX512DQ-BW-FCP-NEXT:    movw $-21846, %cx # imm = 0xAAAA4313; AVX512DQ-BW-FCP-NEXT:    kmovd %ecx, %k14314; AVX512DQ-BW-FCP-NEXT:    vmovdqa32 %zmm9, %zmm19 {%k1}4315; AVX512DQ-BW-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm9 = 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]4316; AVX512DQ-BW-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm14 = 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]4317; AVX512DQ-BW-FCP-NEXT:    vpermt2w %zmm9, %zmm10, %zmm144318; AVX512DQ-BW-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm9 = 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]4319; AVX512DQ-BW-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm21 = xmm18[0],xmm16[0],xmm18[1],xmm16[1],xmm18[2],xmm16[2],xmm18[3],xmm16[3],xmm18[4],xmm16[4],xmm18[5],xmm16[5],xmm18[6],xmm16[6],xmm18[7],xmm16[7]4320; AVX512DQ-BW-FCP-NEXT:    vpermt2w %zmm9, %zmm20, %zmm214321; AVX512DQ-BW-FCP-NEXT:    vmovdqa32 %zmm14, %zmm21 {%k1}4322; AVX512DQ-BW-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm1 = 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]4323; AVX512DQ-BW-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm3 = 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]4324; AVX512DQ-BW-FCP-NEXT:    vpermt2w %zmm1, %zmm10, %zmm34325; AVX512DQ-BW-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm1 = 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]4326; AVX512DQ-BW-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm6 = xmm18[8],xmm16[8],xmm18[9],xmm16[9],xmm18[10],xmm16[10],xmm18[11],xmm16[11],xmm18[12],xmm16[12],xmm18[13],xmm16[13],xmm18[14],xmm16[14],xmm18[15],xmm16[15]4327; AVX512DQ-BW-FCP-NEXT:    vpermt2w %zmm1, %zmm20, %zmm64328; AVX512DQ-BW-FCP-NEXT:    vmovdqa32 %zmm3, %zmm6 {%k1}4329; AVX512DQ-BW-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm0 = 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]4330; AVX512DQ-BW-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm1 = xmm7[0],xmm5[0],xmm7[1],xmm5[1],xmm7[2],xmm5[2],xmm7[3],xmm5[3],xmm7[4],xmm5[4],xmm7[5],xmm5[5],xmm7[6],xmm5[6],xmm7[7],xmm5[7]4331; AVX512DQ-BW-FCP-NEXT:    vpermt2w %zmm0, %zmm10, %zmm14332; AVX512DQ-BW-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm0 = xmm12[0],xmm4[0],xmm12[1],xmm4[1],xmm12[2],xmm4[2],xmm12[3],xmm4[3],xmm12[4],xmm4[4],xmm12[5],xmm4[5],xmm12[6],xmm4[6],xmm12[7],xmm4[7]4333; AVX512DQ-BW-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm2 = xmm17[0],xmm15[0],xmm17[1],xmm15[1],xmm17[2],xmm15[2],xmm17[3],xmm15[3],xmm17[4],xmm15[4],xmm17[5],xmm15[5],xmm17[6],xmm15[6],xmm17[7],xmm15[7]4334; AVX512DQ-BW-FCP-NEXT:    vpermt2w %zmm0, %zmm20, %zmm24335; AVX512DQ-BW-FCP-NEXT:    vmovdqa32 %zmm1, %zmm2 {%k1}4336; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm2, (%rax)4337; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm6, 192(%rax)4338; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm21, 128(%rax)4339; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm19, 64(%rax)4340; AVX512DQ-BW-FCP-NEXT:    vzeroupper4341; AVX512DQ-BW-FCP-NEXT:    retq4342  %in.vec0 = load <32 x i8>, ptr %in.vecptr0, align 644343  %in.vec1 = load <32 x i8>, ptr %in.vecptr1, align 644344  %in.vec2 = load <32 x i8>, ptr %in.vecptr2, align 644345  %in.vec3 = load <32 x i8>, ptr %in.vecptr3, align 644346  %in.vec4 = load <32 x i8>, ptr %in.vecptr4, align 644347  %in.vec5 = load <32 x i8>, ptr %in.vecptr5, align 644348  %in.vec6 = load <32 x i8>, ptr %in.vecptr6, align 644349  %in.vec7 = load <32 x i8>, ptr %in.vecptr7, align 644350  %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>4351  %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>4352  %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>4353  %4 = shufflevector <32 x i8> %in.vec6, <32 x i8> %in.vec7, <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>4354  %5 = 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>4355  %6 = shufflevector <64 x i8> %3, <64 x i8> %4, <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>4356  %7 = shufflevector <128 x i8> %5, <128 x i8> %6, <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>4357  %interleaved.vec = shufflevector <256 x i8> %7, <256 x i8> poison, <256 x i32> <i32 0, i32 32, i32 64, i32 96, i32 128, i32 160, i32 192, i32 224, i32 1, i32 33, i32 65, i32 97, i32 129, i32 161, i32 193, i32 225, i32 2, i32 34, i32 66, i32 98, i32 130, i32 162, i32 194, i32 226, i32 3, i32 35, i32 67, i32 99, i32 131, i32 163, i32 195, i32 227, i32 4, i32 36, i32 68, i32 100, i32 132, i32 164, i32 196, i32 228, i32 5, i32 37, i32 69, i32 101, i32 133, i32 165, i32 197, i32 229, i32 6, i32 38, i32 70, i32 102, i32 134, i32 166, i32 198, i32 230, i32 7, i32 39, i32 71, i32 103, i32 135, i32 167, i32 199, i32 231, i32 8, i32 40, i32 72, i32 104, i32 136, i32 168, i32 200, i32 232, i32 9, i32 41, i32 73, i32 105, i32 137, i32 169, i32 201, i32 233, i32 10, i32 42, i32 74, i32 106, i32 138, i32 170, i32 202, i32 234, i32 11, i32 43, i32 75, i32 107, i32 139, i32 171, i32 203, i32 235, i32 12, i32 44, i32 76, i32 108, i32 140, i32 172, i32 204, i32 236, i32 13, i32 45, i32 77, i32 109, i32 141, i32 173, i32 205, i32 237, i32 14, i32 46, i32 78, i32 110, i32 142, i32 174, i32 206, i32 238, i32 15, i32 47, i32 79, i32 111, i32 143, i32 175, i32 207, i32 239, i32 16, i32 48, i32 80, i32 112, i32 144, i32 176, i32 208, i32 240, i32 17, i32 49, i32 81, i32 113, i32 145, i32 177, i32 209, i32 241, i32 18, i32 50, i32 82, i32 114, i32 146, i32 178, i32 210, i32 242, i32 19, i32 51, i32 83, i32 115, i32 147, i32 179, i32 211, i32 243, i32 20, i32 52, i32 84, i32 116, i32 148, i32 180, i32 212, i32 244, i32 21, i32 53, i32 85, i32 117, i32 149, i32 181, i32 213, i32 245, i32 22, i32 54, i32 86, i32 118, i32 150, i32 182, i32 214, i32 246, i32 23, i32 55, i32 87, i32 119, i32 151, i32 183, i32 215, i32 247, i32 24, i32 56, i32 88, i32 120, i32 152, i32 184, i32 216, i32 248, i32 25, i32 57, i32 89, i32 121, i32 153, i32 185, i32 217, i32 249, i32 26, i32 58, i32 90, i32 122, i32 154, i32 186, i32 218, i32 250, i32 27, i32 59, i32 91, i32 123, i32 155, i32 187, i32 219, i32 251, i32 28, i32 60, i32 92, i32 124, i32 156, i32 188, i32 220, i32 252, i32 29, i32 61, i32 93, i32 125, i32 157, i32 189, i32 221, i32 253, i32 30, i32 62, i32 94, i32 126, i32 158, i32 190, i32 222, i32 254, i32 31, i32 63, i32 95, i32 127, i32 159, i32 191, i32 223, i32 255>4358  store <256 x i8> %interleaved.vec, ptr %out.vec, align 644359  ret void4360}4361 4362define void @store_i8_stride8_vf64(ptr %in.vecptr0, ptr %in.vecptr1, ptr %in.vecptr2, ptr %in.vecptr3, ptr %in.vecptr4, ptr %in.vecptr5, ptr %in.vecptr6, ptr %in.vecptr7, ptr %out.vec) nounwind {4363; SSE-LABEL: store_i8_stride8_vf64:4364; SSE:       # %bb.0:4365; SSE-NEXT:    subq $312, %rsp # imm = 0x1384366; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %rax4367; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %r104368; SSE-NEXT:    movdqa (%rdi), %xmm34369; SSE-NEXT:    movdqa (%rsi), %xmm54370; SSE-NEXT:    movdqa %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4371; SSE-NEXT:    movdqa (%rdx), %xmm44372; SSE-NEXT:    movdqa (%rcx), %xmm84373; SSE-NEXT:    movdqa (%r8), %xmm64374; SSE-NEXT:    movdqa (%r9), %xmm94375; SSE-NEXT:    movdqa (%r10), %xmm74376; SSE-NEXT:    movdqa (%rax), %xmm104377; SSE-NEXT:    movdqa %xmm7, %xmm04378; SSE-NEXT:    punpcklbw {{.*#+}} xmm0 = xmm0[0],xmm10[0],xmm0[1],xmm10[1],xmm0[2],xmm10[2],xmm0[3],xmm10[3],xmm0[4],xmm10[4],xmm0[5],xmm10[5],xmm0[6],xmm10[6],xmm0[7],xmm10[7]4379; SSE-NEXT:    pshuflw {{.*#+}} xmm1 = xmm0[0,0,2,1,4,5,6,7]4380; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm1[0,0,2,1]4381; SSE-NEXT:    movdqa {{.*#+}} xmm13 = [65535,65535,65535,0,65535,65535,65535,0]4382; SSE-NEXT:    movdqa %xmm13, %xmm124383; SSE-NEXT:    pandn %xmm2, %xmm124384; SSE-NEXT:    movdqa %xmm6, %xmm114385; SSE-NEXT:    punpcklbw {{.*#+}} xmm11 = 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]4386; SSE-NEXT:    pshuflw {{.*#+}} xmm2 = xmm11[0,1,1,3,4,5,6,7]4387; SSE-NEXT:    pshufd {{.*#+}} xmm14 = xmm2[0,0,2,1]4388; SSE-NEXT:    pand %xmm13, %xmm144389; SSE-NEXT:    por %xmm12, %xmm144390; SSE-NEXT:    movdqa %xmm4, %xmm124391; SSE-NEXT:    punpcklbw {{.*#+}} xmm12 = xmm12[0],xmm8[0],xmm12[1],xmm8[1],xmm12[2],xmm8[2],xmm12[3],xmm8[3],xmm12[4],xmm8[4],xmm12[5],xmm8[5],xmm12[6],xmm8[6],xmm12[7],xmm8[7]4392; SSE-NEXT:    pshuflw {{.*#+}} xmm2 = xmm12[0,0,2,1,4,5,6,7]4393; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm2[0,1,1,3]4394; SSE-NEXT:    movdqa {{.*#+}} xmm1 = [65535,0,65535,65535,65535,0,65535,65535]4395; SSE-NEXT:    movdqa %xmm1, %xmm154396; SSE-NEXT:    pandn %xmm2, %xmm154397; SSE-NEXT:    movdqa %xmm3, %xmm24398; SSE-NEXT:    punpcklbw {{.*#+}} xmm2 = xmm2[0],xmm5[0],xmm2[1],xmm5[1],xmm2[2],xmm5[2],xmm2[3],xmm5[3],xmm2[4],xmm5[4],xmm2[5],xmm5[5],xmm2[6],xmm5[6],xmm2[7],xmm5[7]4399; SSE-NEXT:    pshufd {{.*#+}} xmm5 = xmm2[0,0,0,0]4400; SSE-NEXT:    pshufhw {{.*#+}} xmm5 = xmm5[0,1,2,3,5,5,5,5]4401; SSE-NEXT:    pand %xmm1, %xmm54402; SSE-NEXT:    por %xmm15, %xmm54403; SSE-NEXT:    pshufd {{.*#+}} xmm14 = xmm14[1,3,2,3]4404; SSE-NEXT:    pshufd {{.*#+}} xmm5 = xmm5[0,2,2,3]4405; SSE-NEXT:    punpckldq {{.*#+}} xmm5 = xmm5[0],xmm14[0],xmm5[1],xmm14[1]4406; SSE-NEXT:    movdqa %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4407; SSE-NEXT:    pshuflw {{.*#+}} xmm5 = xmm0[0,2,2,3,4,5,6,7]4408; SSE-NEXT:    pshufd {{.*#+}} xmm5 = xmm5[0,0,2,1]4409; SSE-NEXT:    movdqa %xmm13, %xmm144410; SSE-NEXT:    pandn %xmm5, %xmm144411; SSE-NEXT:    pshuflw {{.*#+}} xmm5 = xmm11[2,1,3,3,4,5,6,7]4412; SSE-NEXT:    pshufd {{.*#+}} xmm5 = xmm5[0,0,2,1]4413; SSE-NEXT:    pand %xmm13, %xmm54414; SSE-NEXT:    por %xmm14, %xmm54415; SSE-NEXT:    pshuflw {{.*#+}} xmm14 = xmm12[0,2,2,3,4,5,6,7]4416; SSE-NEXT:    pshufd {{.*#+}} xmm14 = xmm14[0,1,1,3]4417; SSE-NEXT:    movdqa %xmm1, %xmm154418; SSE-NEXT:    pandn %xmm14, %xmm154419; SSE-NEXT:    pshufd {{.*#+}} xmm14 = xmm2[1,1,1,1]4420; SSE-NEXT:    pshufhw {{.*#+}} xmm14 = xmm14[0,1,2,3,5,5,5,5]4421; SSE-NEXT:    pand %xmm1, %xmm144422; SSE-NEXT:    por %xmm15, %xmm144423; SSE-NEXT:    pshufd {{.*#+}} xmm5 = xmm5[1,3,2,3]4424; SSE-NEXT:    pshufd {{.*#+}} xmm14 = xmm14[0,2,2,3]4425; SSE-NEXT:    punpckldq {{.*#+}} xmm14 = xmm14[0],xmm5[0],xmm14[1],xmm5[1]4426; SSE-NEXT:    movdqa %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4427; SSE-NEXT:    pshufhw {{.*#+}} xmm5 = xmm0[0,1,2,3,4,4,6,5]4428; SSE-NEXT:    pshufd {{.*#+}} xmm5 = xmm5[0,2,2,3]4429; SSE-NEXT:    movdqa %xmm13, %xmm144430; SSE-NEXT:    pandn %xmm5, %xmm144431; SSE-NEXT:    pshufhw {{.*#+}} xmm5 = xmm11[0,1,2,3,4,5,5,7]4432; SSE-NEXT:    pshufd {{.*#+}} xmm5 = xmm5[0,2,2,3]4433; SSE-NEXT:    pand %xmm13, %xmm54434; SSE-NEXT:    por %xmm14, %xmm54435; SSE-NEXT:    pshufhw {{.*#+}} xmm14 = xmm12[0,1,2,3,4,4,6,5]4436; SSE-NEXT:    pshufd {{.*#+}} xmm14 = xmm14[2,1,3,3]4437; SSE-NEXT:    movdqa %xmm1, %xmm154438; SSE-NEXT:    pandn %xmm14, %xmm154439; SSE-NEXT:    pshufd {{.*#+}} xmm14 = xmm2[2,2,2,2]4440; SSE-NEXT:    pshufhw {{.*#+}} xmm14 = xmm14[0,1,2,3,5,5,5,5]4441; SSE-NEXT:    pand %xmm1, %xmm144442; SSE-NEXT:    por %xmm15, %xmm144443; SSE-NEXT:    pshufd {{.*#+}} xmm5 = xmm5[1,3,2,3]4444; SSE-NEXT:    pshufd {{.*#+}} xmm14 = xmm14[0,2,2,3]4445; SSE-NEXT:    punpckldq {{.*#+}} xmm14 = xmm14[0],xmm5[0],xmm14[1],xmm5[1]4446; SSE-NEXT:    movdqa %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4447; SSE-NEXT:    pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,6,6,7]4448; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,2,2,3]4449; SSE-NEXT:    movdqa %xmm13, %xmm54450; SSE-NEXT:    pandn %xmm0, %xmm54451; SSE-NEXT:    pshufhw {{.*#+}} xmm0 = xmm11[0,1,2,3,6,5,7,7]4452; SSE-NEXT:    pshufd {{.*#+}} xmm11 = xmm0[0,2,2,3]4453; SSE-NEXT:    pand %xmm13, %xmm114454; SSE-NEXT:    por %xmm5, %xmm114455; SSE-NEXT:    pshufhw {{.*#+}} xmm0 = xmm12[0,1,2,3,4,6,6,7]4456; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[2,1,3,3]4457; SSE-NEXT:    movdqa %xmm1, %xmm54458; SSE-NEXT:    pandn %xmm0, %xmm54459; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm2[3,3,3,3]4460; SSE-NEXT:    pshufhw {{.*#+}} xmm12 = xmm0[0,1,2,3,5,5,5,5]4461; SSE-NEXT:    pand %xmm1, %xmm124462; SSE-NEXT:    por %xmm5, %xmm124463; SSE-NEXT:    movdqa 16(%r8), %xmm04464; SSE-NEXT:    pshufd {{.*#+}} xmm5 = xmm11[1,3,2,3]4465; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm12[0,2,2,3]4466; SSE-NEXT:    punpckldq {{.*#+}} xmm2 = xmm2[0],xmm5[0],xmm2[1],xmm5[1]4467; SSE-NEXT:    movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4468; SSE-NEXT:    punpckhbw {{.*#+}} xmm7 = xmm7[8],xmm10[8],xmm7[9],xmm10[9],xmm7[10],xmm10[10],xmm7[11],xmm10[11],xmm7[12],xmm10[12],xmm7[13],xmm10[13],xmm7[14],xmm10[14],xmm7[15],xmm10[15]4469; SSE-NEXT:    pshuflw {{.*#+}} xmm5 = xmm7[0,0,2,1,4,5,6,7]4470; SSE-NEXT:    pshufd {{.*#+}} xmm5 = xmm5[0,0,2,1]4471; SSE-NEXT:    movdqa %xmm13, %xmm104472; SSE-NEXT:    pandn %xmm5, %xmm104473; SSE-NEXT:    punpckhbw {{.*#+}} xmm6 = xmm6[8],xmm9[8],xmm6[9],xmm9[9],xmm6[10],xmm9[10],xmm6[11],xmm9[11],xmm6[12],xmm9[12],xmm6[13],xmm9[13],xmm6[14],xmm9[14],xmm6[15],xmm9[15]4474; SSE-NEXT:    pshuflw {{.*#+}} xmm5 = xmm6[0,1,1,3,4,5,6,7]4475; SSE-NEXT:    pshufd {{.*#+}} xmm5 = xmm5[0,0,2,1]4476; SSE-NEXT:    pand %xmm13, %xmm54477; SSE-NEXT:    por %xmm10, %xmm54478; SSE-NEXT:    pshufd {{.*#+}} xmm5 = xmm5[1,3,2,3]4479; SSE-NEXT:    punpckhbw {{.*#+}} xmm4 = xmm4[8],xmm8[8],xmm4[9],xmm8[9],xmm4[10],xmm8[10],xmm4[11],xmm8[11],xmm4[12],xmm8[12],xmm4[13],xmm8[13],xmm4[14],xmm8[14],xmm4[15],xmm8[15]4480; SSE-NEXT:    pshuflw {{.*#+}} xmm8 = xmm4[0,0,2,1,4,5,6,7]4481; SSE-NEXT:    pshufd {{.*#+}} xmm8 = xmm8[0,1,1,3]4482; SSE-NEXT:    movdqa %xmm1, %xmm94483; SSE-NEXT:    pandn %xmm8, %xmm94484; SSE-NEXT:    punpckhbw {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Folded Reload4485; SSE-NEXT:    # xmm3 = xmm3[8],mem[8],xmm3[9],mem[9],xmm3[10],mem[10],xmm3[11],mem[11],xmm3[12],mem[12],xmm3[13],mem[13],xmm3[14],mem[14],xmm3[15],mem[15]4486; SSE-NEXT:    pshufd {{.*#+}} xmm8 = xmm3[0,0,0,0]4487; SSE-NEXT:    pshufhw {{.*#+}} xmm8 = xmm8[0,1,2,3,5,5,5,5]4488; SSE-NEXT:    pand %xmm1, %xmm84489; SSE-NEXT:    por %xmm9, %xmm84490; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm8[0,2,2,3]4491; SSE-NEXT:    punpckldq {{.*#+}} xmm2 = xmm2[0],xmm5[0],xmm2[1],xmm5[1]4492; SSE-NEXT:    movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4493; SSE-NEXT:    pshuflw {{.*#+}} xmm5 = xmm7[0,2,2,3,4,5,6,7]4494; SSE-NEXT:    pshufd {{.*#+}} xmm5 = xmm5[0,0,2,1]4495; SSE-NEXT:    movdqa %xmm13, %xmm84496; SSE-NEXT:    pandn %xmm5, %xmm84497; SSE-NEXT:    pshuflw {{.*#+}} xmm5 = xmm6[2,1,3,3,4,5,6,7]4498; SSE-NEXT:    pshufd {{.*#+}} xmm5 = xmm5[0,0,2,1]4499; SSE-NEXT:    pand %xmm13, %xmm54500; SSE-NEXT:    por %xmm8, %xmm54501; SSE-NEXT:    pshufd {{.*#+}} xmm5 = xmm5[1,3,2,3]4502; SSE-NEXT:    pshuflw {{.*#+}} xmm8 = xmm4[0,2,2,3,4,5,6,7]4503; SSE-NEXT:    pshufd {{.*#+}} xmm8 = xmm8[0,1,1,3]4504; SSE-NEXT:    movdqa %xmm1, %xmm94505; SSE-NEXT:    pandn %xmm8, %xmm94506; SSE-NEXT:    pshufd {{.*#+}} xmm8 = xmm3[1,1,1,1]4507; SSE-NEXT:    pshufhw {{.*#+}} xmm8 = xmm8[0,1,2,3,5,5,5,5]4508; SSE-NEXT:    pand %xmm1, %xmm84509; SSE-NEXT:    por %xmm9, %xmm84510; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm8[0,2,2,3]4511; SSE-NEXT:    punpckldq {{.*#+}} xmm2 = xmm2[0],xmm5[0],xmm2[1],xmm5[1]4512; SSE-NEXT:    movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4513; SSE-NEXT:    pshufhw {{.*#+}} xmm5 = xmm7[0,1,2,3,4,4,6,5]4514; SSE-NEXT:    pshufd {{.*#+}} xmm5 = xmm5[0,2,2,3]4515; SSE-NEXT:    movdqa %xmm13, %xmm84516; SSE-NEXT:    pandn %xmm5, %xmm84517; SSE-NEXT:    pshufhw {{.*#+}} xmm5 = xmm6[0,1,2,3,4,5,5,7]4518; SSE-NEXT:    pshufd {{.*#+}} xmm9 = xmm5[0,2,2,3]4519; SSE-NEXT:    pand %xmm13, %xmm94520; SSE-NEXT:    por %xmm8, %xmm94521; SSE-NEXT:    pshufhw {{.*#+}} xmm5 = xmm4[0,1,2,3,4,4,6,5]4522; SSE-NEXT:    pshufd {{.*#+}} xmm5 = xmm5[2,1,3,3]4523; SSE-NEXT:    movdqa %xmm1, %xmm84524; SSE-NEXT:    pandn %xmm5, %xmm84525; SSE-NEXT:    pshufd {{.*#+}} xmm5 = xmm3[2,2,2,2]4526; SSE-NEXT:    pshufhw {{.*#+}} xmm10 = xmm5[0,1,2,3,5,5,5,5]4527; SSE-NEXT:    pand %xmm1, %xmm104528; SSE-NEXT:    por %xmm8, %xmm104529; SSE-NEXT:    movdqa 16(%r10), %xmm54530; SSE-NEXT:    pshufd {{.*#+}} xmm8 = xmm9[1,3,2,3]4531; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm10[0,2,2,3]4532; SSE-NEXT:    punpckldq {{.*#+}} xmm2 = xmm2[0],xmm8[0],xmm2[1],xmm8[1]4533; SSE-NEXT:    movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4534; SSE-NEXT:    pshufhw {{.*#+}} xmm7 = xmm7[0,1,2,3,4,6,6,7]4535; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm7[0,2,2,3]4536; SSE-NEXT:    movdqa %xmm13, %xmm84537; SSE-NEXT:    pandn %xmm7, %xmm84538; SSE-NEXT:    movdqa 16(%rax), %xmm74539; SSE-NEXT:    movdqa %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4540; SSE-NEXT:    pshufhw {{.*#+}} xmm6 = xmm6[0,1,2,3,6,5,7,7]4541; SSE-NEXT:    pshufd {{.*#+}} xmm6 = xmm6[0,2,2,3]4542; SSE-NEXT:    pand %xmm13, %xmm64543; SSE-NEXT:    por %xmm8, %xmm64544; SSE-NEXT:    pshufd {{.*#+}} xmm6 = xmm6[1,3,2,3]4545; SSE-NEXT:    pshufhw {{.*#+}} xmm4 = xmm4[0,1,2,3,4,6,6,7]4546; SSE-NEXT:    pshufd {{.*#+}} xmm4 = xmm4[2,1,3,3]4547; SSE-NEXT:    movdqa %xmm1, %xmm84548; SSE-NEXT:    pandn %xmm4, %xmm84549; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm3[3,3,3,3]4550; SSE-NEXT:    pshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,5,5,5,5]4551; SSE-NEXT:    pand %xmm1, %xmm34552; SSE-NEXT:    por %xmm8, %xmm34553; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm3[0,2,2,3]4554; SSE-NEXT:    punpckldq {{.*#+}} xmm2 = xmm2[0],xmm6[0],xmm2[1],xmm6[1]4555; SSE-NEXT:    movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4556; SSE-NEXT:    movdqa %xmm5, %xmm104557; SSE-NEXT:    punpcklbw {{.*#+}} xmm10 = xmm10[0],xmm7[0],xmm10[1],xmm7[1],xmm10[2],xmm7[2],xmm10[3],xmm7[3],xmm10[4],xmm7[4],xmm10[5],xmm7[5],xmm10[6],xmm7[6],xmm10[7],xmm7[7]4558; SSE-NEXT:    pshuflw {{.*#+}} xmm3 = xmm10[0,0,2,1,4,5,6,7]4559; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm3[0,0,2,1]4560; SSE-NEXT:    movdqa %xmm13, %xmm44561; SSE-NEXT:    pandn %xmm3, %xmm44562; SSE-NEXT:    movdqa 16(%r9), %xmm64563; SSE-NEXT:    movdqa %xmm0, %xmm114564; SSE-NEXT:    punpcklbw {{.*#+}} xmm11 = xmm11[0],xmm6[0],xmm11[1],xmm6[1],xmm11[2],xmm6[2],xmm11[3],xmm6[3],xmm11[4],xmm6[4],xmm11[5],xmm6[5],xmm11[6],xmm6[6],xmm11[7],xmm6[7]4565; SSE-NEXT:    pshuflw {{.*#+}} xmm3 = xmm11[0,1,1,3,4,5,6,7]4566; SSE-NEXT:    pshufd {{.*#+}} xmm14 = xmm3[0,0,2,1]4567; SSE-NEXT:    pand %xmm13, %xmm144568; SSE-NEXT:    por %xmm4, %xmm144569; SSE-NEXT:    movdqa 16(%rdx), %xmm34570; SSE-NEXT:    movdqa 16(%rcx), %xmm84571; SSE-NEXT:    movdqa %xmm3, %xmm124572; SSE-NEXT:    punpcklbw {{.*#+}} xmm12 = xmm12[0],xmm8[0],xmm12[1],xmm8[1],xmm12[2],xmm8[2],xmm12[3],xmm8[3],xmm12[4],xmm8[4],xmm12[5],xmm8[5],xmm12[6],xmm8[6],xmm12[7],xmm8[7]4573; SSE-NEXT:    pshuflw {{.*#+}} xmm4 = xmm12[0,0,2,1,4,5,6,7]4574; SSE-NEXT:    pshufd {{.*#+}} xmm4 = xmm4[0,1,1,3]4575; SSE-NEXT:    movdqa %xmm1, %xmm154576; SSE-NEXT:    pandn %xmm4, %xmm154577; SSE-NEXT:    movdqa 16(%rdi), %xmm44578; SSE-NEXT:    movdqa 16(%rsi), %xmm94579; SSE-NEXT:    movdqa %xmm4, %xmm24580; SSE-NEXT:    punpcklbw {{.*#+}} xmm2 = xmm2[0],xmm9[0],xmm2[1],xmm9[1],xmm2[2],xmm9[2],xmm2[3],xmm9[3],xmm2[4],xmm9[4],xmm2[5],xmm9[5],xmm2[6],xmm9[6],xmm2[7],xmm9[7]4581; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm2[0,0,0,0]4582; SSE-NEXT:    pshufhw {{.*#+}} xmm7 = xmm7[0,1,2,3,5,5,5,5]4583; SSE-NEXT:    pand %xmm1, %xmm74584; SSE-NEXT:    por %xmm15, %xmm74585; SSE-NEXT:    pshufd {{.*#+}} xmm14 = xmm14[1,3,2,3]4586; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm7[0,2,2,3]4587; SSE-NEXT:    punpckldq {{.*#+}} xmm7 = xmm7[0],xmm14[0],xmm7[1],xmm14[1]4588; SSE-NEXT:    movdqa %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4589; SSE-NEXT:    pshuflw {{.*#+}} xmm7 = xmm10[0,2,2,3,4,5,6,7]4590; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm7[0,0,2,1]4591; SSE-NEXT:    movdqa %xmm13, %xmm144592; SSE-NEXT:    pandn %xmm7, %xmm144593; SSE-NEXT:    pshuflw {{.*#+}} xmm7 = xmm11[2,1,3,3,4,5,6,7]4594; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm7[0,0,2,1]4595; SSE-NEXT:    pand %xmm13, %xmm74596; SSE-NEXT:    por %xmm14, %xmm74597; SSE-NEXT:    pshuflw {{.*#+}} xmm14 = xmm12[0,2,2,3,4,5,6,7]4598; SSE-NEXT:    pshufd {{.*#+}} xmm14 = xmm14[0,1,1,3]4599; SSE-NEXT:    movdqa %xmm1, %xmm154600; SSE-NEXT:    pandn %xmm14, %xmm154601; SSE-NEXT:    pshufd {{.*#+}} xmm14 = xmm2[1,1,1,1]4602; SSE-NEXT:    pshufhw {{.*#+}} xmm14 = xmm14[0,1,2,3,5,5,5,5]4603; SSE-NEXT:    pand %xmm1, %xmm144604; SSE-NEXT:    por %xmm15, %xmm144605; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm7[1,3,2,3]4606; SSE-NEXT:    pshufd {{.*#+}} xmm14 = xmm14[0,2,2,3]4607; SSE-NEXT:    punpckldq {{.*#+}} xmm14 = xmm14[0],xmm7[0],xmm14[1],xmm7[1]4608; SSE-NEXT:    movdqa %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4609; SSE-NEXT:    pshufhw {{.*#+}} xmm7 = xmm10[0,1,2,3,4,4,6,5]4610; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm7[0,2,2,3]4611; SSE-NEXT:    movdqa %xmm13, %xmm144612; SSE-NEXT:    pandn %xmm7, %xmm144613; SSE-NEXT:    pshufhw {{.*#+}} xmm7 = xmm11[0,1,2,3,4,5,5,7]4614; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm7[0,2,2,3]4615; SSE-NEXT:    pand %xmm13, %xmm74616; SSE-NEXT:    por %xmm14, %xmm74617; SSE-NEXT:    pshufhw {{.*#+}} xmm14 = xmm12[0,1,2,3,4,4,6,5]4618; SSE-NEXT:    pshufd {{.*#+}} xmm14 = xmm14[2,1,3,3]4619; SSE-NEXT:    movdqa %xmm1, %xmm154620; SSE-NEXT:    pandn %xmm14, %xmm154621; SSE-NEXT:    pshufd {{.*#+}} xmm14 = xmm2[2,2,2,2]4622; SSE-NEXT:    pshufhw {{.*#+}} xmm14 = xmm14[0,1,2,3,5,5,5,5]4623; SSE-NEXT:    pand %xmm1, %xmm144624; SSE-NEXT:    por %xmm15, %xmm144625; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm7[1,3,2,3]4626; SSE-NEXT:    pshufd {{.*#+}} xmm14 = xmm14[0,2,2,3]4627; SSE-NEXT:    punpckldq {{.*#+}} xmm14 = xmm14[0],xmm7[0],xmm14[1],xmm7[1]4628; SSE-NEXT:    movdqa %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4629; SSE-NEXT:    pshufhw {{.*#+}} xmm7 = xmm10[0,1,2,3,4,6,6,7]4630; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm7[0,2,2,3]4631; SSE-NEXT:    movdqa %xmm13, %xmm104632; SSE-NEXT:    pandn %xmm7, %xmm104633; SSE-NEXT:    pshufhw {{.*#+}} xmm7 = xmm11[0,1,2,3,6,5,7,7]4634; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm7[0,2,2,3]4635; SSE-NEXT:    pand %xmm13, %xmm74636; SSE-NEXT:    por %xmm10, %xmm74637; SSE-NEXT:    pshufhw {{.*#+}} xmm10 = xmm12[0,1,2,3,4,6,6,7]4638; SSE-NEXT:    pshufd {{.*#+}} xmm10 = xmm10[2,1,3,3]4639; SSE-NEXT:    movdqa %xmm1, %xmm114640; SSE-NEXT:    pandn %xmm10, %xmm114641; SSE-NEXT:    pshufd {{.*#+}} xmm10 = xmm2[3,3,3,3]4642; SSE-NEXT:    pshufhw {{.*#+}} xmm10 = xmm10[0,1,2,3,5,5,5,5]4643; SSE-NEXT:    pand %xmm1, %xmm104644; SSE-NEXT:    por %xmm11, %xmm104645; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm7[1,3,2,3]4646; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm10[0,2,2,3]4647; SSE-NEXT:    punpckldq {{.*#+}} xmm2 = xmm2[0],xmm7[0],xmm2[1],xmm7[1]4648; SSE-NEXT:    movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4649; SSE-NEXT:    punpckhbw {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Folded Reload4650; SSE-NEXT:    # xmm5 = 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]4651; SSE-NEXT:    pshuflw {{.*#+}} xmm7 = xmm5[0,0,2,1,4,5,6,7]4652; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm7[0,0,2,1]4653; SSE-NEXT:    movdqa %xmm13, %xmm104654; SSE-NEXT:    pandn %xmm7, %xmm104655; 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]4656; SSE-NEXT:    pshuflw {{.*#+}} xmm6 = xmm0[0,1,1,3,4,5,6,7]4657; SSE-NEXT:    pshufd {{.*#+}} xmm6 = xmm6[0,0,2,1]4658; SSE-NEXT:    pand %xmm13, %xmm64659; SSE-NEXT:    por %xmm10, %xmm64660; SSE-NEXT:    punpckhbw {{.*#+}} xmm3 = xmm3[8],xmm8[8],xmm3[9],xmm8[9],xmm3[10],xmm8[10],xmm3[11],xmm8[11],xmm3[12],xmm8[12],xmm3[13],xmm8[13],xmm3[14],xmm8[14],xmm3[15],xmm8[15]4661; SSE-NEXT:    pshuflw {{.*#+}} xmm7 = xmm3[0,0,2,1,4,5,6,7]4662; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm7[0,1,1,3]4663; SSE-NEXT:    movdqa %xmm1, %xmm84664; SSE-NEXT:    pandn %xmm7, %xmm84665; SSE-NEXT:    punpckhbw {{.*#+}} xmm4 = xmm4[8],xmm9[8],xmm4[9],xmm9[9],xmm4[10],xmm9[10],xmm4[11],xmm9[11],xmm4[12],xmm9[12],xmm4[13],xmm9[13],xmm4[14],xmm9[14],xmm4[15],xmm9[15]4666; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm4[0,0,0,0]4667; SSE-NEXT:    pshufhw {{.*#+}} xmm7 = xmm7[0,1,2,3,5,5,5,5]4668; SSE-NEXT:    pand %xmm1, %xmm74669; SSE-NEXT:    por %xmm8, %xmm74670; SSE-NEXT:    pshufd {{.*#+}} xmm6 = xmm6[1,3,2,3]4671; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm7[0,2,2,3]4672; SSE-NEXT:    punpckldq {{.*#+}} xmm2 = xmm2[0],xmm6[0],xmm2[1],xmm6[1]4673; SSE-NEXT:    movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4674; SSE-NEXT:    pshuflw {{.*#+}} xmm6 = xmm5[0,2,2,3,4,5,6,7]4675; SSE-NEXT:    pshufd {{.*#+}} xmm6 = xmm6[0,0,2,1]4676; SSE-NEXT:    movdqa %xmm13, %xmm74677; SSE-NEXT:    pandn %xmm6, %xmm74678; SSE-NEXT:    pshuflw {{.*#+}} xmm6 = xmm0[2,1,3,3,4,5,6,7]4679; SSE-NEXT:    pshufd {{.*#+}} xmm6 = xmm6[0,0,2,1]4680; SSE-NEXT:    pand %xmm13, %xmm64681; SSE-NEXT:    por %xmm7, %xmm64682; SSE-NEXT:    pshuflw {{.*#+}} xmm7 = xmm3[0,2,2,3,4,5,6,7]4683; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm7[0,1,1,3]4684; SSE-NEXT:    movdqa %xmm1, %xmm84685; SSE-NEXT:    pandn %xmm7, %xmm84686; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm4[1,1,1,1]4687; SSE-NEXT:    pshufhw {{.*#+}} xmm7 = xmm7[0,1,2,3,5,5,5,5]4688; SSE-NEXT:    pand %xmm1, %xmm74689; SSE-NEXT:    por %xmm8, %xmm74690; SSE-NEXT:    pshufd {{.*#+}} xmm6 = xmm6[1,3,2,3]4691; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm7[0,2,2,3]4692; SSE-NEXT:    punpckldq {{.*#+}} xmm2 = xmm2[0],xmm6[0],xmm2[1],xmm6[1]4693; SSE-NEXT:    movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4694; SSE-NEXT:    pshufhw {{.*#+}} xmm6 = xmm5[0,1,2,3,4,4,6,5]4695; SSE-NEXT:    pshufd {{.*#+}} xmm6 = xmm6[0,2,2,3]4696; SSE-NEXT:    movdqa %xmm13, %xmm74697; SSE-NEXT:    pandn %xmm6, %xmm74698; SSE-NEXT:    pshufhw {{.*#+}} xmm6 = xmm0[0,1,2,3,4,5,5,7]4699; SSE-NEXT:    pshufd {{.*#+}} xmm6 = xmm6[0,2,2,3]4700; SSE-NEXT:    pand %xmm13, %xmm64701; SSE-NEXT:    por %xmm7, %xmm64702; SSE-NEXT:    pshufhw {{.*#+}} xmm7 = xmm3[0,1,2,3,4,4,6,5]4703; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm7[2,1,3,3]4704; SSE-NEXT:    movdqa %xmm1, %xmm84705; SSE-NEXT:    pandn %xmm7, %xmm84706; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm4[2,2,2,2]4707; SSE-NEXT:    pshufhw {{.*#+}} xmm7 = xmm7[0,1,2,3,5,5,5,5]4708; SSE-NEXT:    pand %xmm1, %xmm74709; SSE-NEXT:    por %xmm8, %xmm74710; SSE-NEXT:    pshufd {{.*#+}} xmm6 = xmm6[1,3,2,3]4711; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm7[0,2,2,3]4712; SSE-NEXT:    punpckldq {{.*#+}} xmm2 = xmm2[0],xmm6[0],xmm2[1],xmm6[1]4713; SSE-NEXT:    movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4714; SSE-NEXT:    pshufhw {{.*#+}} xmm5 = xmm5[0,1,2,3,4,6,6,7]4715; SSE-NEXT:    pshufd {{.*#+}} xmm5 = xmm5[0,2,2,3]4716; SSE-NEXT:    movdqa %xmm13, %xmm64717; SSE-NEXT:    pandn %xmm5, %xmm64718; SSE-NEXT:    pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,6,5,7,7]4719; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,2,2,3]4720; SSE-NEXT:    pand %xmm13, %xmm04721; SSE-NEXT:    por %xmm6, %xmm04722; SSE-NEXT:    pshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,4,6,6,7]4723; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm3[2,1,3,3]4724; SSE-NEXT:    movdqa %xmm1, %xmm54725; SSE-NEXT:    pandn %xmm3, %xmm54726; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm4[3,3,3,3]4727; SSE-NEXT:    pshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,5,5,5,5]4728; SSE-NEXT:    pand %xmm1, %xmm34729; SSE-NEXT:    por %xmm5, %xmm34730; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[1,3,2,3]4731; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm3[0,2,2,3]4732; SSE-NEXT:    punpckldq {{.*#+}} xmm2 = xmm2[0],xmm0[0],xmm2[1],xmm0[1]4733; SSE-NEXT:    movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4734; SSE-NEXT:    movdqa 32(%r10), %xmm04735; SSE-NEXT:    movdqa 32(%rax), %xmm24736; SSE-NEXT:    movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4737; SSE-NEXT:    movdqa %xmm0, %xmm104738; SSE-NEXT:    punpcklbw {{.*#+}} xmm10 = xmm10[0],xmm2[0],xmm10[1],xmm2[1],xmm10[2],xmm2[2],xmm10[3],xmm2[3],xmm10[4],xmm2[4],xmm10[5],xmm2[5],xmm10[6],xmm2[6],xmm10[7],xmm2[7]4739; SSE-NEXT:    pshuflw {{.*#+}} xmm3 = xmm10[0,0,2,1,4,5,6,7]4740; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm3[0,0,2,1]4741; SSE-NEXT:    movdqa %xmm13, %xmm44742; SSE-NEXT:    pandn %xmm3, %xmm44743; SSE-NEXT:    movdqa 32(%r8), %xmm34744; SSE-NEXT:    movdqa 32(%r9), %xmm74745; SSE-NEXT:    movdqa %xmm3, %xmm114746; SSE-NEXT:    punpcklbw {{.*#+}} xmm11 = xmm11[0],xmm7[0],xmm11[1],xmm7[1],xmm11[2],xmm7[2],xmm11[3],xmm7[3],xmm11[4],xmm7[4],xmm11[5],xmm7[5],xmm11[6],xmm7[6],xmm11[7],xmm7[7]4747; SSE-NEXT:    pshuflw {{.*#+}} xmm5 = xmm11[0,1,1,3,4,5,6,7]4748; SSE-NEXT:    pshufd {{.*#+}} xmm14 = xmm5[0,0,2,1]4749; SSE-NEXT:    pand %xmm13, %xmm144750; SSE-NEXT:    por %xmm4, %xmm144751; SSE-NEXT:    movdqa 32(%rdx), %xmm44752; SSE-NEXT:    movdqa 32(%rcx), %xmm84753; SSE-NEXT:    movdqa %xmm4, %xmm124754; SSE-NEXT:    punpcklbw {{.*#+}} xmm12 = xmm12[0],xmm8[0],xmm12[1],xmm8[1],xmm12[2],xmm8[2],xmm12[3],xmm8[3],xmm12[4],xmm8[4],xmm12[5],xmm8[5],xmm12[6],xmm8[6],xmm12[7],xmm8[7]4755; SSE-NEXT:    pshuflw {{.*#+}} xmm5 = xmm12[0,0,2,1,4,5,6,7]4756; SSE-NEXT:    pshufd {{.*#+}} xmm5 = xmm5[0,1,1,3]4757; SSE-NEXT:    movdqa %xmm1, %xmm154758; SSE-NEXT:    pandn %xmm5, %xmm154759; SSE-NEXT:    movdqa 32(%rdi), %xmm54760; SSE-NEXT:    movdqa 32(%rsi), %xmm94761; SSE-NEXT:    movdqa %xmm5, %xmm24762; SSE-NEXT:    punpcklbw {{.*#+}} xmm2 = xmm2[0],xmm9[0],xmm2[1],xmm9[1],xmm2[2],xmm9[2],xmm2[3],xmm9[3],xmm2[4],xmm9[4],xmm2[5],xmm9[5],xmm2[6],xmm9[6],xmm2[7],xmm9[7]4763; SSE-NEXT:    pshufd {{.*#+}} xmm6 = xmm2[0,0,0,0]4764; SSE-NEXT:    pshufhw {{.*#+}} xmm6 = xmm6[0,1,2,3,5,5,5,5]4765; SSE-NEXT:    pand %xmm1, %xmm64766; SSE-NEXT:    por %xmm15, %xmm64767; SSE-NEXT:    pshufd {{.*#+}} xmm14 = xmm14[1,3,2,3]4768; SSE-NEXT:    pshufd {{.*#+}} xmm6 = xmm6[0,2,2,3]4769; SSE-NEXT:    punpckldq {{.*#+}} xmm6 = xmm6[0],xmm14[0],xmm6[1],xmm14[1]4770; SSE-NEXT:    movdqa %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4771; SSE-NEXT:    pshuflw {{.*#+}} xmm6 = xmm10[0,2,2,3,4,5,6,7]4772; SSE-NEXT:    pshufd {{.*#+}} xmm6 = xmm6[0,0,2,1]4773; SSE-NEXT:    movdqa %xmm13, %xmm144774; SSE-NEXT:    pandn %xmm6, %xmm144775; SSE-NEXT:    pshuflw {{.*#+}} xmm6 = xmm11[2,1,3,3,4,5,6,7]4776; SSE-NEXT:    pshufd {{.*#+}} xmm6 = xmm6[0,0,2,1]4777; SSE-NEXT:    pand %xmm13, %xmm64778; SSE-NEXT:    por %xmm14, %xmm64779; SSE-NEXT:    pshuflw {{.*#+}} xmm14 = xmm12[0,2,2,3,4,5,6,7]4780; SSE-NEXT:    pshufd {{.*#+}} xmm14 = xmm14[0,1,1,3]4781; SSE-NEXT:    movdqa %xmm1, %xmm154782; SSE-NEXT:    pandn %xmm14, %xmm154783; SSE-NEXT:    pshufd {{.*#+}} xmm14 = xmm2[1,1,1,1]4784; SSE-NEXT:    pshufhw {{.*#+}} xmm14 = xmm14[0,1,2,3,5,5,5,5]4785; SSE-NEXT:    pand %xmm1, %xmm144786; SSE-NEXT:    por %xmm15, %xmm144787; SSE-NEXT:    pshufd {{.*#+}} xmm6 = xmm6[1,3,2,3]4788; SSE-NEXT:    pshufd {{.*#+}} xmm14 = xmm14[0,2,2,3]4789; SSE-NEXT:    punpckldq {{.*#+}} xmm14 = xmm14[0],xmm6[0],xmm14[1],xmm6[1]4790; SSE-NEXT:    movdqa %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4791; SSE-NEXT:    pshufhw {{.*#+}} xmm6 = xmm10[0,1,2,3,4,4,6,5]4792; SSE-NEXT:    pshufd {{.*#+}} xmm6 = xmm6[0,2,2,3]4793; SSE-NEXT:    movdqa %xmm13, %xmm144794; SSE-NEXT:    pandn %xmm6, %xmm144795; SSE-NEXT:    pshufhw {{.*#+}} xmm6 = xmm11[0,1,2,3,4,5,5,7]4796; SSE-NEXT:    pshufd {{.*#+}} xmm6 = xmm6[0,2,2,3]4797; SSE-NEXT:    pand %xmm13, %xmm64798; SSE-NEXT:    por %xmm14, %xmm64799; SSE-NEXT:    pshufhw {{.*#+}} xmm14 = xmm12[0,1,2,3,4,4,6,5]4800; SSE-NEXT:    pshufd {{.*#+}} xmm14 = xmm14[2,1,3,3]4801; SSE-NEXT:    movdqa %xmm1, %xmm154802; SSE-NEXT:    pandn %xmm14, %xmm154803; SSE-NEXT:    pshufd {{.*#+}} xmm14 = xmm2[2,2,2,2]4804; SSE-NEXT:    pshufhw {{.*#+}} xmm14 = xmm14[0,1,2,3,5,5,5,5]4805; SSE-NEXT:    pand %xmm1, %xmm144806; SSE-NEXT:    por %xmm15, %xmm144807; SSE-NEXT:    pshufd {{.*#+}} xmm6 = xmm6[1,3,2,3]4808; SSE-NEXT:    pshufd {{.*#+}} xmm14 = xmm14[0,2,2,3]4809; SSE-NEXT:    punpckldq {{.*#+}} xmm14 = xmm14[0],xmm6[0],xmm14[1],xmm6[1]4810; SSE-NEXT:    movdqa %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4811; SSE-NEXT:    pshufhw {{.*#+}} xmm6 = xmm10[0,1,2,3,4,6,6,7]4812; SSE-NEXT:    pshufd {{.*#+}} xmm6 = xmm6[0,2,2,3]4813; SSE-NEXT:    movdqa %xmm13, %xmm104814; SSE-NEXT:    pandn %xmm6, %xmm104815; SSE-NEXT:    pshufhw {{.*#+}} xmm6 = xmm11[0,1,2,3,6,5,7,7]4816; SSE-NEXT:    pshufd {{.*#+}} xmm6 = xmm6[0,2,2,3]4817; SSE-NEXT:    pand %xmm13, %xmm64818; SSE-NEXT:    por %xmm10, %xmm64819; SSE-NEXT:    pshufhw {{.*#+}} xmm10 = xmm12[0,1,2,3,4,6,6,7]4820; SSE-NEXT:    pshufd {{.*#+}} xmm10 = xmm10[2,1,3,3]4821; SSE-NEXT:    movdqa %xmm1, %xmm114822; SSE-NEXT:    pandn %xmm10, %xmm114823; SSE-NEXT:    pshufd {{.*#+}} xmm10 = xmm2[3,3,3,3]4824; SSE-NEXT:    pshufhw {{.*#+}} xmm10 = xmm10[0,1,2,3,5,5,5,5]4825; SSE-NEXT:    pand %xmm1, %xmm104826; SSE-NEXT:    por %xmm11, %xmm104827; SSE-NEXT:    pshufd {{.*#+}} xmm6 = xmm6[1,3,2,3]4828; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm10[0,2,2,3]4829; SSE-NEXT:    punpckldq {{.*#+}} xmm2 = xmm2[0],xmm6[0],xmm2[1],xmm6[1]4830; SSE-NEXT:    movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4831; SSE-NEXT:    punpckhbw {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload4832; SSE-NEXT:    # xmm0 = 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]4833; SSE-NEXT:    pshuflw {{.*#+}} xmm6 = xmm0[0,0,2,1,4,5,6,7]4834; SSE-NEXT:    pshufd {{.*#+}} xmm6 = xmm6[0,0,2,1]4835; SSE-NEXT:    movdqa %xmm13, %xmm104836; SSE-NEXT:    pandn %xmm6, %xmm104837; SSE-NEXT:    punpckhbw {{.*#+}} xmm3 = xmm3[8],xmm7[8],xmm3[9],xmm7[9],xmm3[10],xmm7[10],xmm3[11],xmm7[11],xmm3[12],xmm7[12],xmm3[13],xmm7[13],xmm3[14],xmm7[14],xmm3[15],xmm7[15]4838; SSE-NEXT:    pshuflw {{.*#+}} xmm6 = xmm3[0,1,1,3,4,5,6,7]4839; SSE-NEXT:    pshufd {{.*#+}} xmm6 = xmm6[0,0,2,1]4840; SSE-NEXT:    pand %xmm13, %xmm64841; SSE-NEXT:    por %xmm10, %xmm64842; SSE-NEXT:    punpckhbw {{.*#+}} xmm4 = xmm4[8],xmm8[8],xmm4[9],xmm8[9],xmm4[10],xmm8[10],xmm4[11],xmm8[11],xmm4[12],xmm8[12],xmm4[13],xmm8[13],xmm4[14],xmm8[14],xmm4[15],xmm8[15]4843; SSE-NEXT:    pshuflw {{.*#+}} xmm7 = xmm4[0,0,2,1,4,5,6,7]4844; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm7[0,1,1,3]4845; SSE-NEXT:    movdqa %xmm1, %xmm84846; SSE-NEXT:    pandn %xmm7, %xmm84847; SSE-NEXT:    punpckhbw {{.*#+}} xmm5 = xmm5[8],xmm9[8],xmm5[9],xmm9[9],xmm5[10],xmm9[10],xmm5[11],xmm9[11],xmm5[12],xmm9[12],xmm5[13],xmm9[13],xmm5[14],xmm9[14],xmm5[15],xmm9[15]4848; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm5[0,0,0,0]4849; SSE-NEXT:    pshufhw {{.*#+}} xmm7 = xmm7[0,1,2,3,5,5,5,5]4850; SSE-NEXT:    pand %xmm1, %xmm74851; SSE-NEXT:    por %xmm8, %xmm74852; SSE-NEXT:    pshufd {{.*#+}} xmm6 = xmm6[1,3,2,3]4853; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm7[0,2,2,3]4854; SSE-NEXT:    punpckldq {{.*#+}} xmm2 = xmm2[0],xmm6[0],xmm2[1],xmm6[1]4855; SSE-NEXT:    movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4856; SSE-NEXT:    pshuflw {{.*#+}} xmm6 = xmm0[0,2,2,3,4,5,6,7]4857; SSE-NEXT:    pshufd {{.*#+}} xmm6 = xmm6[0,0,2,1]4858; SSE-NEXT:    movdqa %xmm13, %xmm74859; SSE-NEXT:    pandn %xmm6, %xmm74860; SSE-NEXT:    pshuflw {{.*#+}} xmm6 = xmm3[2,1,3,3,4,5,6,7]4861; SSE-NEXT:    pshufd {{.*#+}} xmm6 = xmm6[0,0,2,1]4862; SSE-NEXT:    pand %xmm13, %xmm64863; SSE-NEXT:    por %xmm7, %xmm64864; SSE-NEXT:    pshuflw {{.*#+}} xmm7 = xmm4[0,2,2,3,4,5,6,7]4865; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm7[0,1,1,3]4866; SSE-NEXT:    movdqa %xmm1, %xmm84867; SSE-NEXT:    pandn %xmm7, %xmm84868; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm5[1,1,1,1]4869; SSE-NEXT:    pshufhw {{.*#+}} xmm7 = xmm7[0,1,2,3,5,5,5,5]4870; SSE-NEXT:    pand %xmm1, %xmm74871; SSE-NEXT:    por %xmm8, %xmm74872; SSE-NEXT:    pshufd {{.*#+}} xmm6 = xmm6[1,3,2,3]4873; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm7[0,2,2,3]4874; SSE-NEXT:    punpckldq {{.*#+}} xmm2 = xmm2[0],xmm6[0],xmm2[1],xmm6[1]4875; SSE-NEXT:    movdqa %xmm2, (%rsp) # 16-byte Spill4876; SSE-NEXT:    pshufhw {{.*#+}} xmm6 = xmm0[0,1,2,3,4,4,6,5]4877; SSE-NEXT:    pshufd {{.*#+}} xmm6 = xmm6[0,2,2,3]4878; SSE-NEXT:    movdqa %xmm13, %xmm74879; SSE-NEXT:    pandn %xmm6, %xmm74880; SSE-NEXT:    pshufhw {{.*#+}} xmm6 = xmm3[0,1,2,3,4,5,5,7]4881; SSE-NEXT:    pshufd {{.*#+}} xmm6 = xmm6[0,2,2,3]4882; SSE-NEXT:    pand %xmm13, %xmm64883; SSE-NEXT:    por %xmm7, %xmm64884; SSE-NEXT:    pshufhw {{.*#+}} xmm7 = xmm4[0,1,2,3,4,4,6,5]4885; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm7[2,1,3,3]4886; SSE-NEXT:    movdqa %xmm1, %xmm84887; SSE-NEXT:    pandn %xmm7, %xmm84888; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm5[2,2,2,2]4889; SSE-NEXT:    pshufhw {{.*#+}} xmm7 = xmm7[0,1,2,3,5,5,5,5]4890; SSE-NEXT:    pand %xmm1, %xmm74891; SSE-NEXT:    por %xmm8, %xmm74892; SSE-NEXT:    pshufd {{.*#+}} xmm6 = xmm6[1,3,2,3]4893; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm7[0,2,2,3]4894; SSE-NEXT:    punpckldq {{.*#+}} xmm2 = xmm2[0],xmm6[0],xmm2[1],xmm6[1]4895; SSE-NEXT:    movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4896; SSE-NEXT:    pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,6,6,7]4897; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,2,2,3]4898; SSE-NEXT:    movdqa %xmm13, %xmm64899; SSE-NEXT:    pandn %xmm0, %xmm64900; SSE-NEXT:    pshufhw {{.*#+}} xmm0 = xmm3[0,1,2,3,6,5,7,7]4901; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,2,2,3]4902; SSE-NEXT:    pand %xmm13, %xmm04903; SSE-NEXT:    por %xmm6, %xmm04904; SSE-NEXT:    pshufhw {{.*#+}} xmm3 = xmm4[0,1,2,3,4,6,6,7]4905; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm3[2,1,3,3]4906; SSE-NEXT:    movdqa %xmm1, %xmm44907; SSE-NEXT:    pandn %xmm3, %xmm44908; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm5[3,3,3,3]4909; SSE-NEXT:    pshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,5,5,5,5]4910; SSE-NEXT:    pand %xmm1, %xmm34911; SSE-NEXT:    por %xmm4, %xmm34912; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[1,3,2,3]4913; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm3[0,2,2,3]4914; SSE-NEXT:    punpckldq {{.*#+}} xmm2 = xmm2[0],xmm0[0],xmm2[1],xmm0[1]4915; SSE-NEXT:    movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4916; SSE-NEXT:    movdqa 48(%r10), %xmm94917; SSE-NEXT:    movdqa 48(%rax), %xmm04918; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4919; SSE-NEXT:    movdqa %xmm9, %xmm64920; SSE-NEXT:    punpcklbw {{.*#+}} xmm6 = 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]4921; SSE-NEXT:    pshuflw {{.*#+}} xmm0 = xmm6[0,0,2,1,4,5,6,7]4922; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,0,2,1]4923; SSE-NEXT:    movdqa %xmm13, %xmm34924; SSE-NEXT:    pandn %xmm0, %xmm34925; SSE-NEXT:    movdqa 48(%r8), %xmm84926; SSE-NEXT:    movdqa 48(%r9), %xmm04927; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4928; SSE-NEXT:    movdqa %xmm8, %xmm44929; SSE-NEXT:    punpcklbw {{.*#+}} xmm4 = 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]4930; SSE-NEXT:    pshuflw {{.*#+}} xmm0 = xmm4[0,1,1,3,4,5,6,7]4931; SSE-NEXT:    pshufd {{.*#+}} xmm10 = xmm0[0,0,2,1]4932; SSE-NEXT:    pand %xmm13, %xmm104933; SSE-NEXT:    por %xmm3, %xmm104934; SSE-NEXT:    movdqa 48(%rdx), %xmm74935; SSE-NEXT:    movdqa 48(%rcx), %xmm124936; SSE-NEXT:    movdqa %xmm7, %xmm34937; SSE-NEXT:    punpcklbw {{.*#+}} xmm3 = xmm3[0],xmm12[0],xmm3[1],xmm12[1],xmm3[2],xmm12[2],xmm3[3],xmm12[3],xmm3[4],xmm12[4],xmm3[5],xmm12[5],xmm3[6],xmm12[6],xmm3[7],xmm12[7]4938; SSE-NEXT:    pshuflw {{.*#+}} xmm0 = xmm3[0,0,2,1,4,5,6,7]4939; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,1,1,3]4940; SSE-NEXT:    movdqa %xmm1, %xmm154941; SSE-NEXT:    pandn %xmm0, %xmm154942; SSE-NEXT:    movdqa 48(%rdi), %xmm54943; SSE-NEXT:    movdqa 48(%rsi), %xmm114944; SSE-NEXT:    movdqa %xmm5, %xmm04945; SSE-NEXT:    punpcklbw {{.*#+}} xmm0 = xmm0[0],xmm11[0],xmm0[1],xmm11[1],xmm0[2],xmm11[2],xmm0[3],xmm11[3],xmm0[4],xmm11[4],xmm0[5],xmm11[5],xmm0[6],xmm11[6],xmm0[7],xmm11[7]4946; SSE-NEXT:    pshufd {{.*#+}} xmm14 = xmm0[0,0,0,0]4947; SSE-NEXT:    pshufhw {{.*#+}} xmm14 = xmm14[0,1,2,3,5,5,5,5]4948; SSE-NEXT:    pand %xmm1, %xmm144949; SSE-NEXT:    por %xmm15, %xmm144950; SSE-NEXT:    pshufd {{.*#+}} xmm10 = xmm10[1,3,2,3]4951; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm14[0,2,2,3]4952; SSE-NEXT:    punpckldq {{.*#+}} xmm2 = xmm2[0],xmm10[0],xmm2[1],xmm10[1]4953; SSE-NEXT:    movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4954; SSE-NEXT:    pshuflw {{.*#+}} xmm10 = xmm6[0,2,2,3,4,5,6,7]4955; SSE-NEXT:    pshufd {{.*#+}} xmm10 = xmm10[0,0,2,1]4956; SSE-NEXT:    movdqa %xmm13, %xmm144957; SSE-NEXT:    pandn %xmm10, %xmm144958; SSE-NEXT:    pshuflw {{.*#+}} xmm10 = xmm4[2,1,3,3,4,5,6,7]4959; SSE-NEXT:    pshufd {{.*#+}} xmm10 = xmm10[0,0,2,1]4960; SSE-NEXT:    pand %xmm13, %xmm104961; SSE-NEXT:    por %xmm14, %xmm104962; SSE-NEXT:    pshuflw {{.*#+}} xmm14 = xmm3[0,2,2,3,4,5,6,7]4963; SSE-NEXT:    pshufd {{.*#+}} xmm14 = xmm14[0,1,1,3]4964; SSE-NEXT:    movdqa %xmm1, %xmm154965; SSE-NEXT:    pandn %xmm14, %xmm154966; SSE-NEXT:    pshufd {{.*#+}} xmm14 = xmm0[1,1,1,1]4967; SSE-NEXT:    pshufhw {{.*#+}} xmm14 = xmm14[0,1,2,3,5,5,5,5]4968; SSE-NEXT:    pand %xmm1, %xmm144969; SSE-NEXT:    por %xmm15, %xmm144970; SSE-NEXT:    pshufd {{.*#+}} xmm10 = xmm10[1,3,2,3]4971; SSE-NEXT:    pshufd {{.*#+}} xmm15 = xmm14[0,2,2,3]4972; SSE-NEXT:    punpckldq {{.*#+}} xmm15 = xmm15[0],xmm10[0],xmm15[1],xmm10[1]4973; SSE-NEXT:    pshufhw {{.*#+}} xmm10 = xmm6[0,1,2,3,4,4,6,5]4974; SSE-NEXT:    pshufd {{.*#+}} xmm10 = xmm10[0,2,2,3]4975; SSE-NEXT:    movdqa %xmm13, %xmm144976; SSE-NEXT:    pandn %xmm10, %xmm144977; SSE-NEXT:    pshufhw {{.*#+}} xmm10 = xmm4[0,1,2,3,4,5,5,7]4978; SSE-NEXT:    pshufd {{.*#+}} xmm10 = xmm10[0,2,2,3]4979; SSE-NEXT:    pand %xmm13, %xmm104980; SSE-NEXT:    por %xmm14, %xmm104981; SSE-NEXT:    pshufhw {{.*#+}} xmm14 = xmm3[0,1,2,3,4,4,6,5]4982; SSE-NEXT:    pshufd {{.*#+}} xmm14 = xmm14[2,1,3,3]4983; SSE-NEXT:    movdqa %xmm1, %xmm24984; SSE-NEXT:    pandn %xmm14, %xmm24985; SSE-NEXT:    pshufd {{.*#+}} xmm14 = xmm0[2,2,2,2]4986; SSE-NEXT:    pshufhw {{.*#+}} xmm14 = xmm14[0,1,2,3,5,5,5,5]4987; SSE-NEXT:    pand %xmm1, %xmm144988; SSE-NEXT:    por %xmm2, %xmm144989; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm10[1,3,2,3]4990; SSE-NEXT:    pshufd {{.*#+}} xmm10 = xmm14[0,2,2,3]4991; SSE-NEXT:    punpckldq {{.*#+}} xmm10 = xmm10[0],xmm2[0],xmm10[1],xmm2[1]4992; SSE-NEXT:    pshufhw {{.*#+}} xmm2 = xmm6[0,1,2,3,4,6,6,7]4993; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm2[0,2,2,3]4994; SSE-NEXT:    movdqa %xmm13, %xmm64995; SSE-NEXT:    pandn %xmm2, %xmm64996; SSE-NEXT:    pshufhw {{.*#+}} xmm2 = xmm4[0,1,2,3,6,5,7,7]4997; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm2[0,2,2,3]4998; SSE-NEXT:    pand %xmm13, %xmm24999; SSE-NEXT:    por %xmm6, %xmm25000; SSE-NEXT:    pshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,4,6,6,7]5001; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm3[2,1,3,3]5002; SSE-NEXT:    movdqa %xmm1, %xmm45003; SSE-NEXT:    pandn %xmm3, %xmm45004; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[3,3,3,3]5005; SSE-NEXT:    pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,5,5,5,5]5006; SSE-NEXT:    pand %xmm1, %xmm05007; SSE-NEXT:    por %xmm4, %xmm05008; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm2[1,3,2,3]5009; SSE-NEXT:    pshufd {{.*#+}} xmm6 = xmm0[0,2,2,3]5010; SSE-NEXT:    punpckldq {{.*#+}} xmm6 = xmm6[0],xmm2[0],xmm6[1],xmm2[1]5011; SSE-NEXT:    punpckhbw {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Folded Reload5012; SSE-NEXT:    # xmm9 = xmm9[8],mem[8],xmm9[9],mem[9],xmm9[10],mem[10],xmm9[11],mem[11],xmm9[12],mem[12],xmm9[13],mem[13],xmm9[14],mem[14],xmm9[15],mem[15]5013; SSE-NEXT:    pshuflw {{.*#+}} xmm0 = xmm9[0,0,2,1,4,5,6,7]5014; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,0,2,1]5015; SSE-NEXT:    movdqa %xmm13, %xmm25016; SSE-NEXT:    pandn %xmm0, %xmm25017; SSE-NEXT:    punpckhbw {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Folded Reload5018; SSE-NEXT:    # xmm8 = xmm8[8],mem[8],xmm8[9],mem[9],xmm8[10],mem[10],xmm8[11],mem[11],xmm8[12],mem[12],xmm8[13],mem[13],xmm8[14],mem[14],xmm8[15],mem[15]5019; SSE-NEXT:    pshuflw {{.*#+}} xmm0 = xmm8[0,1,1,3,4,5,6,7]5020; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,0,2,1]5021; SSE-NEXT:    pand %xmm13, %xmm05022; SSE-NEXT:    por %xmm2, %xmm05023; SSE-NEXT:    punpckhbw {{.*#+}} xmm7 = xmm7[8],xmm12[8],xmm7[9],xmm12[9],xmm7[10],xmm12[10],xmm7[11],xmm12[11],xmm7[12],xmm12[12],xmm7[13],xmm12[13],xmm7[14],xmm12[14],xmm7[15],xmm12[15]5024; SSE-NEXT:    pshuflw {{.*#+}} xmm2 = xmm7[0,0,2,1,4,5,6,7]5025; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm2[0,1,1,3]5026; SSE-NEXT:    movdqa %xmm1, %xmm35027; SSE-NEXT:    pandn %xmm2, %xmm35028; SSE-NEXT:    punpckhbw {{.*#+}} xmm5 = xmm5[8],xmm11[8],xmm5[9],xmm11[9],xmm5[10],xmm11[10],xmm5[11],xmm11[11],xmm5[12],xmm11[12],xmm5[13],xmm11[13],xmm5[14],xmm11[14],xmm5[15],xmm11[15]5029; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm5[0,0,0,0]5030; SSE-NEXT:    pshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,5,5,5,5]5031; SSE-NEXT:    pand %xmm1, %xmm25032; SSE-NEXT:    por %xmm3, %xmm25033; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[1,3,2,3]5034; SSE-NEXT:    pshufd {{.*#+}} xmm4 = xmm2[0,2,2,3]5035; SSE-NEXT:    punpckldq {{.*#+}} xmm4 = xmm4[0],xmm0[0],xmm4[1],xmm0[1]5036; SSE-NEXT:    pshuflw {{.*#+}} xmm0 = xmm9[0,2,2,3,4,5,6,7]5037; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,0,2,1]5038; SSE-NEXT:    movdqa %xmm13, %xmm25039; SSE-NEXT:    pandn %xmm0, %xmm25040; SSE-NEXT:    pshuflw {{.*#+}} xmm0 = xmm8[2,1,3,3,4,5,6,7]5041; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,0,2,1]5042; SSE-NEXT:    pand %xmm13, %xmm05043; SSE-NEXT:    por %xmm2, %xmm05044; SSE-NEXT:    pshuflw {{.*#+}} xmm2 = xmm7[0,2,2,3,4,5,6,7]5045; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm2[0,1,1,3]5046; SSE-NEXT:    movdqa %xmm1, %xmm35047; SSE-NEXT:    pandn %xmm2, %xmm35048; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm5[1,1,1,1]5049; SSE-NEXT:    pshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,5,5,5,5]5050; SSE-NEXT:    pand %xmm1, %xmm25051; SSE-NEXT:    por %xmm3, %xmm25052; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm0[1,3,2,3]5053; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm2[0,2,2,3]5054; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm3[0],xmm0[1],xmm3[1]5055; SSE-NEXT:    pshufhw {{.*#+}} xmm2 = xmm9[0,1,2,3,4,4,6,5]5056; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm2[0,2,2,3]5057; SSE-NEXT:    movdqa %xmm13, %xmm35058; SSE-NEXT:    pandn %xmm2, %xmm35059; SSE-NEXT:    pshufhw {{.*#+}} xmm2 = xmm8[0,1,2,3,4,5,5,7]5060; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm2[0,2,2,3]5061; SSE-NEXT:    pand %xmm13, %xmm25062; SSE-NEXT:    por %xmm3, %xmm25063; SSE-NEXT:    pshufhw {{.*#+}} xmm3 = xmm7[0,1,2,3,4,4,6,5]5064; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm3[2,1,3,3]5065; SSE-NEXT:    movdqa %xmm1, %xmm115066; SSE-NEXT:    pandn %xmm3, %xmm115067; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm5[2,2,2,2]5068; SSE-NEXT:    pshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,5,5,5,5]5069; SSE-NEXT:    pand %xmm1, %xmm35070; SSE-NEXT:    por %xmm11, %xmm35071; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm2[1,3,2,3]5072; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm3[0,2,2,3]5073; SSE-NEXT:    punpckldq {{.*#+}} xmm3 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]5074; SSE-NEXT:    pshufhw {{.*#+}} xmm2 = xmm9[0,1,2,3,4,6,6,7]5075; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm2[0,2,2,3]5076; SSE-NEXT:    pshufhw {{.*#+}} xmm8 = xmm8[0,1,2,3,6,5,7,7]5077; SSE-NEXT:    pshufd {{.*#+}} xmm8 = xmm8[0,2,2,3]5078; SSE-NEXT:    pand %xmm13, %xmm85079; SSE-NEXT:    pandn %xmm2, %xmm135080; SSE-NEXT:    por %xmm8, %xmm135081; SSE-NEXT:    pshufhw {{.*#+}} xmm2 = xmm7[0,1,2,3,4,6,6,7]5082; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm2[2,1,3,3]5083; SSE-NEXT:    pshufd {{.*#+}} xmm5 = xmm5[3,3,3,3]5084; SSE-NEXT:    pshufhw {{.*#+}} xmm5 = xmm5[0,1,2,3,5,5,5,5]5085; SSE-NEXT:    pand %xmm1, %xmm55086; SSE-NEXT:    pandn %xmm2, %xmm15087; SSE-NEXT:    por %xmm5, %xmm15088; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm13[1,3,2,3]5089; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm1[0,2,2,3]5090; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]5091; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %rax5092; SSE-NEXT:    movdqa %xmm1, 496(%rax)5093; SSE-NEXT:    movdqa %xmm3, 480(%rax)5094; SSE-NEXT:    movdqa %xmm0, 464(%rax)5095; SSE-NEXT:    movdqa %xmm4, 448(%rax)5096; SSE-NEXT:    movdqa %xmm6, 432(%rax)5097; SSE-NEXT:    movdqa %xmm10, 416(%rax)5098; SSE-NEXT:    movdqa %xmm15, 400(%rax)5099; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5100; SSE-NEXT:    movaps %xmm0, 384(%rax)5101; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5102; SSE-NEXT:    movaps %xmm0, 368(%rax)5103; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5104; SSE-NEXT:    movaps %xmm0, 352(%rax)5105; SSE-NEXT:    movaps (%rsp), %xmm0 # 16-byte Reload5106; SSE-NEXT:    movaps %xmm0, 336(%rax)5107; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5108; SSE-NEXT:    movaps %xmm0, 320(%rax)5109; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5110; SSE-NEXT:    movaps %xmm0, 304(%rax)5111; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5112; SSE-NEXT:    movaps %xmm0, 288(%rax)5113; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5114; SSE-NEXT:    movaps %xmm0, 272(%rax)5115; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5116; SSE-NEXT:    movaps %xmm0, 256(%rax)5117; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5118; SSE-NEXT:    movaps %xmm0, 240(%rax)5119; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5120; SSE-NEXT:    movaps %xmm0, 224(%rax)5121; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5122; SSE-NEXT:    movaps %xmm0, 208(%rax)5123; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5124; SSE-NEXT:    movaps %xmm0, 192(%rax)5125; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5126; SSE-NEXT:    movaps %xmm0, 176(%rax)5127; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5128; SSE-NEXT:    movaps %xmm0, 160(%rax)5129; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5130; SSE-NEXT:    movaps %xmm0, 144(%rax)5131; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5132; SSE-NEXT:    movaps %xmm0, 128(%rax)5133; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5134; SSE-NEXT:    movaps %xmm0, 112(%rax)5135; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5136; SSE-NEXT:    movaps %xmm0, 96(%rax)5137; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5138; SSE-NEXT:    movaps %xmm0, 80(%rax)5139; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5140; SSE-NEXT:    movaps %xmm0, 64(%rax)5141; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5142; SSE-NEXT:    movaps %xmm0, 48(%rax)5143; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5144; SSE-NEXT:    movaps %xmm0, 32(%rax)5145; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5146; SSE-NEXT:    movaps %xmm0, 16(%rax)5147; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5148; SSE-NEXT:    movaps %xmm0, (%rax)5149; SSE-NEXT:    addq $312, %rsp # imm = 0x1385150; SSE-NEXT:    retq5151;5152; AVX-LABEL: store_i8_stride8_vf64:5153; AVX:       # %bb.0:5154; AVX-NEXT:    subq $328, %rsp # imm = 0x1485155; AVX-NEXT:    movq {{[0-9]+}}(%rsp), %rax5156; AVX-NEXT:    movq {{[0-9]+}}(%rsp), %r105157; AVX-NEXT:    vmovdqa (%r10), %xmm15158; AVX-NEXT:    vmovdqa %xmm1, (%rsp) # 16-byte Spill5159; AVX-NEXT:    vmovdqa (%rax), %xmm05160; AVX-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5161; 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]5162; AVX-NEXT:    vpshufhw {{.*#+}} xmm1 = xmm0[0,1,2,3,4,4,6,5]5163; AVX-NEXT:    vpshufhw {{.*#+}} xmm2 = xmm0[0,1,2,3,4,6,6,7]5164; AVX-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm15165; AVX-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[0,2,2,3,4,6,6,7]5166; AVX-NEXT:    vbroadcastsd {{.*#+}} ymm9 = [65535,65535,65535,0,65535,65535,65535,0,65535,65535,65535,0,65535,65535,65535,0]5167; AVX-NEXT:    vandnps %ymm1, %ymm9, %ymm25168; AVX-NEXT:    vmovdqa (%r9), %xmm35169; AVX-NEXT:    vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5170; AVX-NEXT:    vmovdqa (%r8), %xmm15171; AVX-NEXT:    vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5172; AVX-NEXT:    vpunpcklbw {{.*#+}} xmm1 = xmm1[0],xmm3[0],xmm1[1],xmm3[1],xmm1[2],xmm3[2],xmm1[3],xmm3[3],xmm1[4],xmm3[4],xmm1[5],xmm3[5],xmm1[6],xmm3[6],xmm1[7],xmm3[7]5173; AVX-NEXT:    vpshufhw {{.*#+}} xmm3 = xmm1[0,1,2,3,4,5,5,7]5174; AVX-NEXT:    vpshufhw {{.*#+}} xmm4 = xmm1[0,1,2,3,6,5,7,7]5175; AVX-NEXT:    vinsertf128 $1, %xmm4, %ymm3, %ymm35176; AVX-NEXT:    vshufps {{.*#+}} ymm3 = ymm3[0,2,2,3,4,6,6,7]5177; AVX-NEXT:    vandps %ymm3, %ymm9, %ymm35178; AVX-NEXT:    vorps %ymm2, %ymm3, %ymm35179; AVX-NEXT:    vmovdqa (%rcx), %xmm45180; AVX-NEXT:    vmovdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5181; AVX-NEXT:    vmovdqa (%rdx), %xmm25182; AVX-NEXT:    vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5183; AVX-NEXT:    vpunpcklbw {{.*#+}} xmm2 = xmm2[0],xmm4[0],xmm2[1],xmm4[1],xmm2[2],xmm4[2],xmm2[3],xmm4[3],xmm2[4],xmm4[4],xmm2[5],xmm4[5],xmm2[6],xmm4[6],xmm2[7],xmm4[7]5184; AVX-NEXT:    vpshufhw {{.*#+}} xmm4 = xmm2[0,1,2,3,4,4,6,5]5185; AVX-NEXT:    vpshufhw {{.*#+}} xmm5 = xmm2[0,1,2,3,4,6,6,7]5186; AVX-NEXT:    vinsertf128 $1, %xmm5, %ymm4, %ymm45187; AVX-NEXT:    vmovdqa (%rsi), %xmm65188; AVX-NEXT:    vmovdqa %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5189; AVX-NEXT:    vmovdqa (%rdi), %xmm55190; AVX-NEXT:    vmovdqa %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5191; AVX-NEXT:    vpunpcklbw {{.*#+}} xmm5 = xmm5[0],xmm6[0],xmm5[1],xmm6[1],xmm5[2],xmm6[2],xmm5[3],xmm6[3],xmm5[4],xmm6[4],xmm5[5],xmm6[5],xmm5[6],xmm6[6],xmm5[7],xmm6[7]5192; AVX-NEXT:    vpshufd {{.*#+}} xmm6 = xmm5[2,3,2,3]5193; AVX-NEXT:    vpmovzxwq {{.*#+}} xmm6 = xmm6[0],zero,zero,zero,xmm6[1],zero,zero,zero5194; AVX-NEXT:    vpshufd {{.*#+}} xmm7 = xmm5[3,3,3,3]5195; AVX-NEXT:    vpmovzxwq {{.*#+}} xmm7 = xmm7[0],zero,zero,zero,xmm7[1],zero,zero,zero5196; AVX-NEXT:    vinsertf128 $1, %xmm7, %ymm6, %ymm65197; AVX-NEXT:    vshufps {{.*#+}} ymm4 = ymm4[2,1,3,3,6,5,7,7]5198; AVX-NEXT:    vbroadcastsd {{.*#+}} ymm14 = [65535,0,65535,65535,65535,0,65535,65535,65535,0,65535,65535,65535,0,65535,65535]5199; AVX-NEXT:    vandnps %ymm4, %ymm14, %ymm45200; AVX-NEXT:    vandps %ymm6, %ymm14, %ymm65201; AVX-NEXT:    vorps %ymm4, %ymm6, %ymm45202; AVX-NEXT:    vblendps {{.*#+}} ymm3 = ymm4[0],ymm3[1],ymm4[2],ymm3[3],ymm4[4],ymm3[5],ymm4[6],ymm3[7]5203; AVX-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5204; AVX-NEXT:    vpshuflw {{.*#+}} xmm3 = xmm0[0,0,2,1,4,5,6,7]5205; AVX-NEXT:    vpshuflw {{.*#+}} xmm0 = xmm0[0,2,2,3,4,5,6,7]5206; AVX-NEXT:    vinsertf128 $1, %xmm0, %ymm3, %ymm05207; AVX-NEXT:    vpshuflw {{.*#+}} xmm3 = xmm1[0,1,1,3,4,5,6,7]5208; AVX-NEXT:    vpshuflw {{.*#+}} xmm1 = xmm1[2,1,3,3,4,5,6,7]5209; AVX-NEXT:    vinsertf128 $1, %xmm1, %ymm3, %ymm35210; AVX-NEXT:    vmovdqa 48(%r10), %xmm15211; AVX-NEXT:    vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5212; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[0,0,2,1,4,4,6,5]5213; AVX-NEXT:    vandnps %ymm0, %ymm9, %ymm05214; AVX-NEXT:    vshufps {{.*#+}} ymm3 = ymm3[0,0,2,1,4,4,6,5]5215; AVX-NEXT:    vandps %ymm3, %ymm9, %ymm35216; AVX-NEXT:    vorps %ymm0, %ymm3, %ymm05217; AVX-NEXT:    vpmovzxwq {{.*#+}} xmm3 = xmm5[0],zero,zero,zero,xmm5[1],zero,zero,zero5218; AVX-NEXT:    vpshufd {{.*#+}} xmm4 = xmm5[1,1,1,1]5219; AVX-NEXT:    vpmovzxwq {{.*#+}} xmm4 = xmm4[0],zero,zero,zero,xmm4[1],zero,zero,zero5220; AVX-NEXT:    vinsertf128 $1, %xmm4, %ymm3, %ymm35221; AVX-NEXT:    vpshuflw {{.*#+}} xmm4 = xmm2[0,0,2,1,4,5,6,7]5222; AVX-NEXT:    vpmovzxdq {{.*#+}} xmm4 = xmm4[0],zero,xmm4[1],zero5223; AVX-NEXT:    vpshuflw {{.*#+}} xmm2 = xmm2[0,2,2,3,4,5,6,7]5224; AVX-NEXT:    vpmovzxdq {{.*#+}} xmm2 = xmm2[0],zero,xmm2[1],zero5225; AVX-NEXT:    vinsertf128 $1, %xmm2, %ymm4, %ymm45226; AVX-NEXT:    vmovdqa 48(%rax), %xmm25227; AVX-NEXT:    vandps %ymm3, %ymm14, %ymm35228; AVX-NEXT:    vandnps %ymm4, %ymm14, %ymm45229; AVX-NEXT:    vorps %ymm4, %ymm3, %ymm35230; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm3[0],ymm0[1],ymm3[2],ymm0[3],ymm3[4],ymm0[5],ymm3[6],ymm0[7]5231; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5232; AVX-NEXT:    vpunpckhbw {{.*#+}} xmm11 = 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]5233; AVX-NEXT:    vpshuflw {{.*#+}} xmm0 = xmm11[0,0,2,1,4,5,6,7]5234; AVX-NEXT:    vpshuflw {{.*#+}} xmm3 = xmm11[0,2,2,3,4,5,6,7]5235; AVX-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm45236; AVX-NEXT:    vmovdqa 48(%r9), %xmm125237; AVX-NEXT:    vmovdqa 48(%r8), %xmm35238; AVX-NEXT:    vpunpckhbw {{.*#+}} xmm8 = xmm3[8],xmm12[8],xmm3[9],xmm12[9],xmm3[10],xmm12[10],xmm3[11],xmm12[11],xmm3[12],xmm12[12],xmm3[13],xmm12[13],xmm3[14],xmm12[14],xmm3[15],xmm12[15]5239; AVX-NEXT:    vpshuflw {{.*#+}} xmm5 = xmm8[0,1,1,3,4,5,6,7]5240; AVX-NEXT:    vpshuflw {{.*#+}} xmm6 = xmm8[2,1,3,3,4,5,6,7]5241; AVX-NEXT:    vinsertf128 $1, %xmm6, %ymm5, %ymm55242; AVX-NEXT:    vshufps {{.*#+}} ymm4 = ymm4[0,0,2,1,4,4,6,5]5243; AVX-NEXT:    vandnps %ymm4, %ymm9, %ymm45244; AVX-NEXT:    vshufps {{.*#+}} ymm5 = ymm5[0,0,2,1,4,4,6,5]5245; AVX-NEXT:    vandps %ymm5, %ymm9, %ymm55246; AVX-NEXT:    vorps %ymm4, %ymm5, %ymm95247; AVX-NEXT:    vmovdqa 48(%rsi), %xmm45248; AVX-NEXT:    vmovdqa 48(%rdi), %xmm65249; AVX-NEXT:    vpunpckhbw {{.*#+}} xmm10 = xmm6[8],xmm4[8],xmm6[9],xmm4[9],xmm6[10],xmm4[10],xmm6[11],xmm4[11],xmm6[12],xmm4[12],xmm6[13],xmm4[13],xmm6[14],xmm4[14],xmm6[15],xmm4[15]5250; AVX-NEXT:    vpshufd {{.*#+}} xmm5 = xmm10[1,1,1,1]5251; AVX-NEXT:    vpmovzxwq {{.*#+}} xmm5 = xmm5[0],zero,zero,zero,xmm5[1],zero,zero,zero5252; AVX-NEXT:    vpmovzxwq {{.*#+}} xmm7 = xmm10[0],zero,zero,zero,xmm10[1],zero,zero,zero5253; AVX-NEXT:    vinsertf128 $1, %xmm5, %ymm7, %ymm05254; AVX-NEXT:    vmovdqa 48(%rcx), %xmm55255; AVX-NEXT:    vmovdqa 48(%rdx), %xmm75256; AVX-NEXT:    vpunpckhbw {{.*#+}} xmm15 = xmm7[8],xmm5[8],xmm7[9],xmm5[9],xmm7[10],xmm5[10],xmm7[11],xmm5[11],xmm7[12],xmm5[12],xmm7[13],xmm5[13],xmm7[14],xmm5[14],xmm7[15],xmm5[15]5257; AVX-NEXT:    vpshuflw {{.*#+}} xmm1 = xmm15[0,0,2,1,4,5,6,7]5258; AVX-NEXT:    vpmovzxdq {{.*#+}} xmm1 = xmm1[0],zero,xmm1[1],zero5259; AVX-NEXT:    vpshuflw {{.*#+}} xmm13 = xmm15[0,2,2,3,4,5,6,7]5260; AVX-NEXT:    vpmovzxdq {{.*#+}} xmm13 = xmm13[0],zero,xmm13[1],zero5261; AVX-NEXT:    vinsertf128 $1, %xmm13, %ymm1, %ymm15262; AVX-NEXT:    vandps %ymm0, %ymm14, %ymm135263; AVX-NEXT:    vandnps %ymm1, %ymm14, %ymm15264; AVX-NEXT:    vorps %ymm1, %ymm13, %ymm15265; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0],ymm9[1],ymm1[2],ymm9[3],ymm1[4],ymm9[5],ymm1[6],ymm9[7]5266; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5267; AVX-NEXT:    vpshufhw {{.*#+}} xmm1 = xmm11[0,1,2,3,4,4,6,5]5268; AVX-NEXT:    vpshufhw {{.*#+}} xmm9 = xmm11[0,1,2,3,4,6,6,7]5269; AVX-NEXT:    vinsertf128 $1, %xmm9, %ymm1, %ymm15270; AVX-NEXT:    vpshufhw {{.*#+}} xmm9 = xmm8[0,1,2,3,4,5,5,7]5271; AVX-NEXT:    vpshufhw {{.*#+}} xmm8 = xmm8[0,1,2,3,6,5,7,7]5272; AVX-NEXT:    vinsertf128 $1, %xmm8, %ymm9, %ymm85273; AVX-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[0,2,2,3,4,6,6,7]5274; AVX-NEXT:    vbroadcastsd {{.*#+}} ymm11 = [65535,65535,65535,0,65535,65535,65535,0,65535,65535,65535,0,65535,65535,65535,0]5275; AVX-NEXT:    vandnps %ymm1, %ymm11, %ymm15276; AVX-NEXT:    vshufps {{.*#+}} ymm8 = ymm8[0,2,2,3,4,6,6,7]5277; AVX-NEXT:    vandps %ymm11, %ymm8, %ymm85278; AVX-NEXT:    vorps %ymm1, %ymm8, %ymm15279; AVX-NEXT:    vpshufhw {{.*#+}} xmm8 = xmm15[0,1,2,3,4,4,6,5]5280; AVX-NEXT:    vpshufhw {{.*#+}} xmm9 = xmm15[0,1,2,3,4,6,6,7]5281; AVX-NEXT:    vinsertf128 $1, %xmm9, %ymm8, %ymm85282; AVX-NEXT:    vpshufd {{.*#+}} xmm9 = xmm10[2,3,2,3]5283; AVX-NEXT:    vpmovzxwq {{.*#+}} xmm9 = xmm9[0],zero,zero,zero,xmm9[1],zero,zero,zero5284; AVX-NEXT:    vpshufd {{.*#+}} xmm10 = xmm10[3,3,3,3]5285; AVX-NEXT:    vpmovzxwq {{.*#+}} xmm10 = xmm10[0],zero,zero,zero,xmm10[1],zero,zero,zero5286; AVX-NEXT:    vinsertf128 $1, %xmm10, %ymm9, %ymm95287; AVX-NEXT:    vshufps {{.*#+}} ymm8 = ymm8[2,1,3,3,6,5,7,7]5288; AVX-NEXT:    vandnps %ymm8, %ymm14, %ymm85289; AVX-NEXT:    vandps %ymm14, %ymm9, %ymm95290; AVX-NEXT:    vorps %ymm8, %ymm9, %ymm85291; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm8[0],ymm1[1],ymm8[2],ymm1[3],ymm8[4],ymm1[5],ymm8[6],ymm1[7]5292; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5293; AVX-NEXT:    vpunpcklbw {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm1 # 16-byte Folded Reload5294; AVX-NEXT:    # xmm1 = xmm2[0],mem[0],xmm2[1],mem[1],xmm2[2],mem[2],xmm2[3],mem[3],xmm2[4],mem[4],xmm2[5],mem[5],xmm2[6],mem[6],xmm2[7],mem[7]5295; AVX-NEXT:    vpshuflw {{.*#+}} xmm2 = xmm1[0,0,2,1,4,5,6,7]5296; AVX-NEXT:    vpshuflw {{.*#+}} xmm8 = xmm1[0,2,2,3,4,5,6,7]5297; AVX-NEXT:    vinsertf128 $1, %xmm8, %ymm2, %ymm85298; AVX-NEXT:    vpunpcklbw {{.*#+}} xmm2 = xmm3[0],xmm12[0],xmm3[1],xmm12[1],xmm3[2],xmm12[2],xmm3[3],xmm12[3],xmm3[4],xmm12[4],xmm3[5],xmm12[5],xmm3[6],xmm12[6],xmm3[7],xmm12[7]5299; AVX-NEXT:    vpshuflw {{.*#+}} xmm0 = xmm2[0,1,1,3,4,5,6,7]5300; AVX-NEXT:    vpshuflw {{.*#+}} xmm3 = xmm2[2,1,3,3,4,5,6,7]5301; AVX-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm05302; AVX-NEXT:    vshufps {{.*#+}} ymm3 = ymm8[0,0,2,1,4,4,6,5]5303; AVX-NEXT:    vmovaps %ymm11, %ymm125304; AVX-NEXT:    vandnps %ymm3, %ymm11, %ymm35305; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[0,0,2,1,4,4,6,5]5306; AVX-NEXT:    vandps %ymm0, %ymm11, %ymm05307; AVX-NEXT:    vorps %ymm3, %ymm0, %ymm35308; AVX-NEXT:    vpunpcklbw {{.*#+}} xmm0 = xmm6[0],xmm4[0],xmm6[1],xmm4[1],xmm6[2],xmm4[2],xmm6[3],xmm4[3],xmm6[4],xmm4[4],xmm6[5],xmm4[5],xmm6[6],xmm4[6],xmm6[7],xmm4[7]5309; AVX-NEXT:    vpshufd {{.*#+}} xmm4 = xmm0[1,1,1,1]5310; AVX-NEXT:    vpmovzxwq {{.*#+}} xmm4 = xmm4[0],zero,zero,zero,xmm4[1],zero,zero,zero5311; AVX-NEXT:    vpmovzxwq {{.*#+}} xmm6 = xmm0[0],zero,zero,zero,xmm0[1],zero,zero,zero5312; AVX-NEXT:    vinsertf128 $1, %xmm4, %ymm6, %ymm45313; AVX-NEXT:    vpunpcklbw {{.*#+}} xmm5 = xmm7[0],xmm5[0],xmm7[1],xmm5[1],xmm7[2],xmm5[2],xmm7[3],xmm5[3],xmm7[4],xmm5[4],xmm7[5],xmm5[5],xmm7[6],xmm5[6],xmm7[7],xmm5[7]5314; AVX-NEXT:    vpshuflw {{.*#+}} xmm6 = xmm5[0,0,2,1,4,5,6,7]5315; AVX-NEXT:    vpmovzxdq {{.*#+}} xmm6 = xmm6[0],zero,xmm6[1],zero5316; AVX-NEXT:    vpshuflw {{.*#+}} xmm7 = xmm5[0,2,2,3,4,5,6,7]5317; AVX-NEXT:    vpmovzxdq {{.*#+}} xmm7 = xmm7[0],zero,xmm7[1],zero5318; AVX-NEXT:    vinsertf128 $1, %xmm7, %ymm6, %ymm65319; AVX-NEXT:    vandps %ymm4, %ymm14, %ymm45320; AVX-NEXT:    vandnps %ymm6, %ymm14, %ymm65321; AVX-NEXT:    vorps %ymm6, %ymm4, %ymm45322; AVX-NEXT:    vblendps {{.*#+}} ymm3 = ymm4[0],ymm3[1],ymm4[2],ymm3[3],ymm4[4],ymm3[5],ymm4[6],ymm3[7]5323; AVX-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5324; AVX-NEXT:    vpshufhw {{.*#+}} xmm3 = xmm1[0,1,2,3,4,4,6,5]5325; AVX-NEXT:    vpshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,6,6,7]5326; AVX-NEXT:    vinsertf128 $1, %xmm1, %ymm3, %ymm15327; AVX-NEXT:    vpshufhw {{.*#+}} xmm3 = xmm2[0,1,2,3,4,5,5,7]5328; AVX-NEXT:    vpshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,6,5,7,7]5329; AVX-NEXT:    vinsertf128 $1, %xmm2, %ymm3, %ymm25330; AVX-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[0,2,2,3,4,6,6,7]5331; AVX-NEXT:    vandnps %ymm1, %ymm11, %ymm15332; AVX-NEXT:    vshufps {{.*#+}} ymm2 = ymm2[0,2,2,3,4,6,6,7]5333; AVX-NEXT:    vandps %ymm2, %ymm11, %ymm25334; AVX-NEXT:    vorps %ymm1, %ymm2, %ymm15335; AVX-NEXT:    vpshufhw {{.*#+}} xmm2 = xmm5[0,1,2,3,4,4,6,5]5336; AVX-NEXT:    vpshufhw {{.*#+}} xmm3 = xmm5[0,1,2,3,4,6,6,7]5337; AVX-NEXT:    vinsertf128 $1, %xmm3, %ymm2, %ymm25338; AVX-NEXT:    vpshufd {{.*#+}} xmm3 = xmm0[2,3,2,3]5339; AVX-NEXT:    vpmovzxwq {{.*#+}} xmm3 = xmm3[0],zero,zero,zero,xmm3[1],zero,zero,zero5340; AVX-NEXT:    vpshufd {{.*#+}} xmm0 = xmm0[3,3,3,3]5341; AVX-NEXT:    vpmovzxwq {{.*#+}} xmm0 = xmm0[0],zero,zero,zero,xmm0[1],zero,zero,zero5342; AVX-NEXT:    vinsertf128 $1, %xmm0, %ymm3, %ymm05343; AVX-NEXT:    vshufps {{.*#+}} ymm2 = ymm2[2,1,3,3,6,5,7,7]5344; AVX-NEXT:    vandnps %ymm2, %ymm14, %ymm25345; AVX-NEXT:    vandps %ymm0, %ymm14, %ymm05346; AVX-NEXT:    vorps %ymm2, %ymm0, %ymm05347; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2],ymm1[3],ymm0[4],ymm1[5],ymm0[6],ymm1[7]5348; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5349; AVX-NEXT:    vmovdqa 32(%r10), %xmm15350; AVX-NEXT:    vmovdqa 32(%rax), %xmm25351; AVX-NEXT:    vpunpckhbw {{.*#+}} xmm11 = 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]5352; AVX-NEXT:    vpshuflw {{.*#+}} xmm0 = xmm11[0,0,2,1,4,5,6,7]5353; AVX-NEXT:    vpshuflw {{.*#+}} xmm3 = xmm11[0,2,2,3,4,5,6,7]5354; AVX-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm45355; AVX-NEXT:    vmovdqa 32(%r9), %xmm05356; AVX-NEXT:    vmovdqa 32(%r8), %xmm35357; AVX-NEXT:    vpunpckhbw {{.*#+}} xmm8 = 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]5358; AVX-NEXT:    vpshuflw {{.*#+}} xmm5 = xmm8[0,1,1,3,4,5,6,7]5359; AVX-NEXT:    vpshuflw {{.*#+}} xmm6 = xmm8[2,1,3,3,4,5,6,7]5360; AVX-NEXT:    vinsertf128 $1, %xmm6, %ymm5, %ymm55361; AVX-NEXT:    vshufps {{.*#+}} ymm4 = ymm4[0,0,2,1,4,4,6,5]5362; AVX-NEXT:    vandnps %ymm4, %ymm12, %ymm45363; AVX-NEXT:    vshufps {{.*#+}} ymm5 = ymm5[0,0,2,1,4,4,6,5]5364; AVX-NEXT:    vandps %ymm5, %ymm12, %ymm55365; AVX-NEXT:    vorps %ymm4, %ymm5, %ymm95366; AVX-NEXT:    vmovdqa 32(%rsi), %xmm45367; AVX-NEXT:    vmovdqa 32(%rdi), %xmm65368; AVX-NEXT:    vpunpckhbw {{.*#+}} xmm10 = xmm6[8],xmm4[8],xmm6[9],xmm4[9],xmm6[10],xmm4[10],xmm6[11],xmm4[11],xmm6[12],xmm4[12],xmm6[13],xmm4[13],xmm6[14],xmm4[14],xmm6[15],xmm4[15]5369; AVX-NEXT:    vpshufd {{.*#+}} xmm5 = xmm10[1,1,1,1]5370; AVX-NEXT:    vpmovzxwq {{.*#+}} xmm5 = xmm5[0],zero,zero,zero,xmm5[1],zero,zero,zero5371; AVX-NEXT:    vpmovzxwq {{.*#+}} xmm7 = xmm10[0],zero,zero,zero,xmm10[1],zero,zero,zero5372; AVX-NEXT:    vinsertf128 $1, %xmm5, %ymm7, %ymm135373; AVX-NEXT:    vmovdqa 32(%rcx), %xmm55374; AVX-NEXT:    vmovdqa 32(%rdx), %xmm75375; AVX-NEXT:    vpunpckhbw {{.*#+}} xmm14 = xmm7[8],xmm5[8],xmm7[9],xmm5[9],xmm7[10],xmm5[10],xmm7[11],xmm5[11],xmm7[12],xmm5[12],xmm7[13],xmm5[13],xmm7[14],xmm5[14],xmm7[15],xmm5[15]5376; AVX-NEXT:    vpshuflw {{.*#+}} xmm15 = xmm14[0,0,2,1,4,5,6,7]5377; AVX-NEXT:    vpmovzxdq {{.*#+}} xmm15 = xmm15[0],zero,xmm15[1],zero5378; AVX-NEXT:    vpshuflw {{.*#+}} xmm12 = xmm14[0,2,2,3,4,5,6,7]5379; AVX-NEXT:    vpmovzxdq {{.*#+}} xmm12 = xmm12[0],zero,xmm12[1],zero5380; AVX-NEXT:    vinsertf128 $1, %xmm12, %ymm15, %ymm125381; AVX-NEXT:    vbroadcastsd {{.*#+}} ymm15 = [65535,0,65535,65535,65535,0,65535,65535,65535,0,65535,65535,65535,0,65535,65535]5382; AVX-NEXT:    vandps %ymm15, %ymm13, %ymm135383; AVX-NEXT:    vandnps %ymm12, %ymm15, %ymm125384; AVX-NEXT:    vorps %ymm12, %ymm13, %ymm125385; AVX-NEXT:    vblendps {{.*#+}} ymm9 = ymm12[0],ymm9[1],ymm12[2],ymm9[3],ymm12[4],ymm9[5],ymm12[6],ymm9[7]5386; AVX-NEXT:    vmovups %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5387; AVX-NEXT:    vpshufhw {{.*#+}} xmm9 = xmm11[0,1,2,3,4,4,6,5]5388; AVX-NEXT:    vpshufhw {{.*#+}} xmm11 = xmm11[0,1,2,3,4,6,6,7]5389; AVX-NEXT:    vinsertf128 $1, %xmm11, %ymm9, %ymm95390; AVX-NEXT:    vpshufhw {{.*#+}} xmm11 = xmm8[0,1,2,3,4,5,5,7]5391; AVX-NEXT:    vpshufhw {{.*#+}} xmm8 = xmm8[0,1,2,3,6,5,7,7]5392; AVX-NEXT:    vinsertf128 $1, %xmm8, %ymm11, %ymm85393; AVX-NEXT:    vshufps {{.*#+}} ymm9 = ymm9[0,2,2,3,4,6,6,7]5394; AVX-NEXT:    vbroadcastsd {{.*#+}} ymm12 = [65535,65535,65535,0,65535,65535,65535,0,65535,65535,65535,0,65535,65535,65535,0]5395; AVX-NEXT:    vandnps %ymm9, %ymm12, %ymm95396; AVX-NEXT:    vshufps {{.*#+}} ymm8 = ymm8[0,2,2,3,4,6,6,7]5397; AVX-NEXT:    vandps %ymm12, %ymm8, %ymm85398; AVX-NEXT:    vorps %ymm9, %ymm8, %ymm85399; AVX-NEXT:    vpshufhw {{.*#+}} xmm9 = xmm14[0,1,2,3,4,4,6,5]5400; AVX-NEXT:    vpshufhw {{.*#+}} xmm11 = xmm14[0,1,2,3,4,6,6,7]5401; AVX-NEXT:    vinsertf128 $1, %xmm11, %ymm9, %ymm95402; AVX-NEXT:    vpshufd {{.*#+}} xmm11 = xmm10[2,3,2,3]5403; AVX-NEXT:    vpmovzxwq {{.*#+}} xmm11 = xmm11[0],zero,zero,zero,xmm11[1],zero,zero,zero5404; AVX-NEXT:    vpshufd {{.*#+}} xmm10 = xmm10[3,3,3,3]5405; AVX-NEXT:    vpmovzxwq {{.*#+}} xmm10 = xmm10[0],zero,zero,zero,xmm10[1],zero,zero,zero5406; AVX-NEXT:    vinsertf128 $1, %xmm10, %ymm11, %ymm105407; AVX-NEXT:    vshufps {{.*#+}} ymm9 = ymm9[2,1,3,3,6,5,7,7]5408; AVX-NEXT:    vandnps %ymm9, %ymm15, %ymm95409; AVX-NEXT:    vandps %ymm15, %ymm10, %ymm105410; AVX-NEXT:    vorps %ymm9, %ymm10, %ymm95411; AVX-NEXT:    vblendps {{.*#+}} ymm8 = ymm9[0],ymm8[1],ymm9[2],ymm8[3],ymm9[4],ymm8[5],ymm9[6],ymm8[7]5412; AVX-NEXT:    vmovups %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5413; AVX-NEXT:    vpunpcklbw {{.*#+}} xmm1 = 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]5414; AVX-NEXT:    vpshuflw {{.*#+}} xmm2 = xmm1[0,0,2,1,4,5,6,7]5415; AVX-NEXT:    vpshuflw {{.*#+}} xmm8 = xmm1[0,2,2,3,4,5,6,7]5416; AVX-NEXT:    vinsertf128 $1, %xmm8, %ymm2, %ymm85417; AVX-NEXT:    vpunpcklbw {{.*#+}} xmm2 = xmm3[0],xmm0[0],xmm3[1],xmm0[1],xmm3[2],xmm0[2],xmm3[3],xmm0[3],xmm3[4],xmm0[4],xmm3[5],xmm0[5],xmm3[6],xmm0[6],xmm3[7],xmm0[7]5418; AVX-NEXT:    vpshuflw {{.*#+}} xmm0 = xmm2[0,1,1,3,4,5,6,7]5419; AVX-NEXT:    vpshuflw {{.*#+}} xmm3 = xmm2[2,1,3,3,4,5,6,7]5420; AVX-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm05421; AVX-NEXT:    vshufps {{.*#+}} ymm3 = ymm8[0,0,2,1,4,4,6,5]5422; AVX-NEXT:    vandnps %ymm3, %ymm12, %ymm35423; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[0,0,2,1,4,4,6,5]5424; AVX-NEXT:    vandps %ymm0, %ymm12, %ymm05425; AVX-NEXT:    vorps %ymm3, %ymm0, %ymm35426; AVX-NEXT:    vpunpcklbw {{.*#+}} xmm0 = xmm6[0],xmm4[0],xmm6[1],xmm4[1],xmm6[2],xmm4[2],xmm6[3],xmm4[3],xmm6[4],xmm4[4],xmm6[5],xmm4[5],xmm6[6],xmm4[6],xmm6[7],xmm4[7]5427; AVX-NEXT:    vpshufd {{.*#+}} xmm4 = xmm0[1,1,1,1]5428; AVX-NEXT:    vpmovzxwq {{.*#+}} xmm4 = xmm4[0],zero,zero,zero,xmm4[1],zero,zero,zero5429; AVX-NEXT:    vpmovzxwq {{.*#+}} xmm6 = xmm0[0],zero,zero,zero,xmm0[1],zero,zero,zero5430; AVX-NEXT:    vinsertf128 $1, %xmm4, %ymm6, %ymm45431; AVX-NEXT:    vpunpcklbw {{.*#+}} xmm5 = xmm7[0],xmm5[0],xmm7[1],xmm5[1],xmm7[2],xmm5[2],xmm7[3],xmm5[3],xmm7[4],xmm5[4],xmm7[5],xmm5[5],xmm7[6],xmm5[6],xmm7[7],xmm5[7]5432; AVX-NEXT:    vpshuflw {{.*#+}} xmm6 = xmm5[0,0,2,1,4,5,6,7]5433; AVX-NEXT:    vpmovzxdq {{.*#+}} xmm6 = xmm6[0],zero,xmm6[1],zero5434; AVX-NEXT:    vpshuflw {{.*#+}} xmm7 = xmm5[0,2,2,3,4,5,6,7]5435; AVX-NEXT:    vpmovzxdq {{.*#+}} xmm7 = xmm7[0],zero,xmm7[1],zero5436; AVX-NEXT:    vinsertf128 $1, %xmm7, %ymm6, %ymm65437; AVX-NEXT:    vandps %ymm4, %ymm15, %ymm45438; AVX-NEXT:    vandnps %ymm6, %ymm15, %ymm65439; AVX-NEXT:    vorps %ymm6, %ymm4, %ymm45440; AVX-NEXT:    vblendps {{.*#+}} ymm3 = ymm4[0],ymm3[1],ymm4[2],ymm3[3],ymm4[4],ymm3[5],ymm4[6],ymm3[7]5441; AVX-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5442; AVX-NEXT:    vpshufhw {{.*#+}} xmm3 = xmm1[0,1,2,3,4,4,6,5]5443; AVX-NEXT:    vpshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,6,6,7]5444; AVX-NEXT:    vinsertf128 $1, %xmm1, %ymm3, %ymm15445; AVX-NEXT:    vpshufhw {{.*#+}} xmm3 = xmm2[0,1,2,3,4,5,5,7]5446; AVX-NEXT:    vpshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,6,5,7,7]5447; AVX-NEXT:    vinsertf128 $1, %xmm2, %ymm3, %ymm25448; AVX-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[0,2,2,3,4,6,6,7]5449; AVX-NEXT:    vandnps %ymm1, %ymm12, %ymm15450; AVX-NEXT:    vshufps {{.*#+}} ymm2 = ymm2[0,2,2,3,4,6,6,7]5451; AVX-NEXT:    vandps %ymm2, %ymm12, %ymm25452; AVX-NEXT:    vorps %ymm1, %ymm2, %ymm15453; AVX-NEXT:    vpshufhw {{.*#+}} xmm2 = xmm5[0,1,2,3,4,4,6,5]5454; AVX-NEXT:    vpshufhw {{.*#+}} xmm3 = xmm5[0,1,2,3,4,6,6,7]5455; AVX-NEXT:    vinsertf128 $1, %xmm3, %ymm2, %ymm25456; AVX-NEXT:    vpshufd {{.*#+}} xmm3 = xmm0[2,3,2,3]5457; AVX-NEXT:    vpmovzxwq {{.*#+}} xmm3 = xmm3[0],zero,zero,zero,xmm3[1],zero,zero,zero5458; AVX-NEXT:    vpshufd {{.*#+}} xmm0 = xmm0[3,3,3,3]5459; AVX-NEXT:    vpmovzxwq {{.*#+}} xmm0 = xmm0[0],zero,zero,zero,xmm0[1],zero,zero,zero5460; AVX-NEXT:    vinsertf128 $1, %xmm0, %ymm3, %ymm05461; AVX-NEXT:    vshufps {{.*#+}} ymm2 = ymm2[2,1,3,3,6,5,7,7]5462; AVX-NEXT:    vandnps %ymm2, %ymm15, %ymm25463; AVX-NEXT:    vandps %ymm0, %ymm15, %ymm05464; AVX-NEXT:    vorps %ymm2, %ymm0, %ymm05465; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2],ymm1[3],ymm0[4],ymm1[5],ymm0[6],ymm1[7]5466; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5467; AVX-NEXT:    vmovdqa 16(%r10), %xmm95468; AVX-NEXT:    vmovdqa 16(%rax), %xmm65469; AVX-NEXT:    vpunpckhbw {{.*#+}} xmm1 = xmm6[8],xmm9[8],xmm6[9],xmm9[9],xmm6[10],xmm9[10],xmm6[11],xmm9[11],xmm6[12],xmm9[12],xmm6[13],xmm9[13],xmm6[14],xmm9[14],xmm6[15],xmm9[15]5470; AVX-NEXT:    vpshuflw {{.*#+}} xmm0 = xmm1[0,0,2,1,4,5,6,7]5471; AVX-NEXT:    vpshuflw {{.*#+}} xmm2 = xmm1[0,2,2,3,4,5,6,7]5472; AVX-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm25473; AVX-NEXT:    vmovdqa 16(%r9), %xmm85474; AVX-NEXT:    vmovdqa 16(%r8), %xmm75475; AVX-NEXT:    vpunpckhbw {{.*#+}} xmm0 = xmm7[8],xmm8[8],xmm7[9],xmm8[9],xmm7[10],xmm8[10],xmm7[11],xmm8[11],xmm7[12],xmm8[12],xmm7[13],xmm8[13],xmm7[14],xmm8[14],xmm7[15],xmm8[15]5476; AVX-NEXT:    vpshuflw {{.*#+}} xmm3 = xmm0[0,1,1,3,4,5,6,7]5477; AVX-NEXT:    vpshuflw {{.*#+}} xmm4 = xmm0[2,1,3,3,4,5,6,7]5478; AVX-NEXT:    vinsertf128 $1, %xmm4, %ymm3, %ymm35479; AVX-NEXT:    vshufps {{.*#+}} ymm2 = ymm2[0,0,2,1,4,4,6,5]5480; AVX-NEXT:    vandnps %ymm2, %ymm12, %ymm25481; AVX-NEXT:    vshufps {{.*#+}} ymm3 = ymm3[0,0,2,1,4,4,6,5]5482; AVX-NEXT:    vandps %ymm3, %ymm12, %ymm35483; AVX-NEXT:    vorps %ymm2, %ymm3, %ymm115484; AVX-NEXT:    vmovdqa 16(%rsi), %xmm55485; AVX-NEXT:    vmovdqa 16(%rdi), %xmm35486; 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]5487; AVX-NEXT:    vpshufd {{.*#+}} xmm2 = xmm10[1,1,1,1]5488; AVX-NEXT:    vpmovzxwq {{.*#+}} xmm2 = xmm2[0],zero,zero,zero,xmm2[1],zero,zero,zero5489; AVX-NEXT:    vpmovzxwq {{.*#+}} xmm4 = xmm10[0],zero,zero,zero,xmm10[1],zero,zero,zero5490; AVX-NEXT:    vinsertf128 $1, %xmm2, %ymm4, %ymm125491; AVX-NEXT:    vmovdqa 16(%rcx), %xmm45492; AVX-NEXT:    vmovdqa 16(%rdx), %xmm25493; AVX-NEXT:    vpunpckhbw {{.*#+}} xmm13 = xmm2[8],xmm4[8],xmm2[9],xmm4[9],xmm2[10],xmm4[10],xmm2[11],xmm4[11],xmm2[12],xmm4[12],xmm2[13],xmm4[13],xmm2[14],xmm4[14],xmm2[15],xmm4[15]5494; AVX-NEXT:    vpshuflw {{.*#+}} xmm15 = xmm13[0,0,2,1,4,5,6,7]5495; AVX-NEXT:    vpmovzxdq {{.*#+}} xmm15 = xmm15[0],zero,xmm15[1],zero5496; AVX-NEXT:    vpshuflw {{.*#+}} xmm14 = xmm13[0,2,2,3,4,5,6,7]5497; AVX-NEXT:    vpmovzxdq {{.*#+}} xmm14 = xmm14[0],zero,xmm14[1],zero5498; AVX-NEXT:    vinsertf128 $1, %xmm14, %ymm15, %ymm145499; AVX-NEXT:    vbroadcastsd {{.*#+}} ymm15 = [65535,0,65535,65535,65535,0,65535,65535,65535,0,65535,65535,65535,0,65535,65535]5500; AVX-NEXT:    vandps %ymm15, %ymm12, %ymm125501; AVX-NEXT:    vandnps %ymm14, %ymm15, %ymm145502; AVX-NEXT:    vorps %ymm14, %ymm12, %ymm125503; AVX-NEXT:    vblendps {{.*#+}} ymm11 = ymm12[0],ymm11[1],ymm12[2],ymm11[3],ymm12[4],ymm11[5],ymm12[6],ymm11[7]5504; AVX-NEXT:    vpshufhw {{.*#+}} xmm12 = xmm1[0,1,2,3,4,4,6,5]5505; AVX-NEXT:    vpshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,6,6,7]5506; AVX-NEXT:    vinsertf128 $1, %xmm1, %ymm12, %ymm15507; AVX-NEXT:    vpshufhw {{.*#+}} xmm12 = xmm0[0,1,2,3,4,5,5,7]5508; AVX-NEXT:    vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,6,5,7,7]5509; AVX-NEXT:    vinsertf128 $1, %xmm0, %ymm12, %ymm05510; AVX-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[0,2,2,3,4,6,6,7]5511; AVX-NEXT:    vbroadcastsd {{.*#+}} ymm14 = [65535,65535,65535,0,65535,65535,65535,0,65535,65535,65535,0,65535,65535,65535,0]5512; AVX-NEXT:    vandnps %ymm1, %ymm14, %ymm15513; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[0,2,2,3,4,6,6,7]5514; AVX-NEXT:    vandps %ymm0, %ymm14, %ymm05515; AVX-NEXT:    vorps %ymm1, %ymm0, %ymm05516; AVX-NEXT:    vpshufhw {{.*#+}} xmm1 = xmm13[0,1,2,3,4,4,6,5]5517; AVX-NEXT:    vpshufhw {{.*#+}} xmm12 = xmm13[0,1,2,3,4,6,6,7]5518; AVX-NEXT:    vinsertf128 $1, %xmm12, %ymm1, %ymm15519; AVX-NEXT:    vpshufd {{.*#+}} xmm12 = xmm10[2,3,2,3]5520; AVX-NEXT:    vpmovzxwq {{.*#+}} xmm12 = xmm12[0],zero,zero,zero,xmm12[1],zero,zero,zero5521; AVX-NEXT:    vpshufd {{.*#+}} xmm10 = xmm10[3,3,3,3]5522; AVX-NEXT:    vpmovzxwq {{.*#+}} xmm10 = xmm10[0],zero,zero,zero,xmm10[1],zero,zero,zero5523; AVX-NEXT:    vinsertf128 $1, %xmm10, %ymm12, %ymm105524; AVX-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[2,1,3,3,6,5,7,7]5525; AVX-NEXT:    vandnps %ymm1, %ymm15, %ymm15526; AVX-NEXT:    vandps %ymm15, %ymm10, %ymm105527; AVX-NEXT:    vorps %ymm1, %ymm10, %ymm15528; AVX-NEXT:    vblendps {{.*#+}} ymm10 = ymm1[0],ymm0[1],ymm1[2],ymm0[3],ymm1[4],ymm0[5],ymm1[6],ymm0[7]5529; AVX-NEXT:    vpunpcklbw {{.*#+}} xmm6 = xmm6[0],xmm9[0],xmm6[1],xmm9[1],xmm6[2],xmm9[2],xmm6[3],xmm9[3],xmm6[4],xmm9[4],xmm6[5],xmm9[5],xmm6[6],xmm9[6],xmm6[7],xmm9[7]5530; AVX-NEXT:    vpshuflw {{.*#+}} xmm0 = xmm6[0,0,2,1,4,5,6,7]5531; AVX-NEXT:    vpshuflw {{.*#+}} xmm1 = xmm6[0,2,2,3,4,5,6,7]5532; AVX-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm05533; AVX-NEXT:    vpunpcklbw {{.*#+}} xmm7 = 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]5534; AVX-NEXT:    vpshuflw {{.*#+}} xmm1 = xmm7[0,1,1,3,4,5,6,7]5535; AVX-NEXT:    vpshuflw {{.*#+}} xmm8 = xmm7[2,1,3,3,4,5,6,7]5536; AVX-NEXT:    vinsertf128 $1, %xmm8, %ymm1, %ymm15537; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[0,0,2,1,4,4,6,5]5538; AVX-NEXT:    vandnps %ymm0, %ymm14, %ymm05539; AVX-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[0,0,2,1,4,4,6,5]5540; AVX-NEXT:    vandps %ymm1, %ymm14, %ymm15541; AVX-NEXT:    vorps %ymm0, %ymm1, %ymm15542; AVX-NEXT:    vpunpcklbw {{.*#+}} xmm0 = 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]5543; AVX-NEXT:    vpshufd {{.*#+}} xmm3 = xmm0[1,1,1,1]5544; AVX-NEXT:    vpmovzxwq {{.*#+}} xmm3 = xmm3[0],zero,zero,zero,xmm3[1],zero,zero,zero5545; AVX-NEXT:    vpmovzxwq {{.*#+}} xmm5 = xmm0[0],zero,zero,zero,xmm0[1],zero,zero,zero5546; AVX-NEXT:    vinsertf128 $1, %xmm3, %ymm5, %ymm35547; AVX-NEXT:    vpunpcklbw {{.*#+}} xmm2 = xmm2[0],xmm4[0],xmm2[1],xmm4[1],xmm2[2],xmm4[2],xmm2[3],xmm4[3],xmm2[4],xmm4[4],xmm2[5],xmm4[5],xmm2[6],xmm4[6],xmm2[7],xmm4[7]5548; AVX-NEXT:    vpshuflw {{.*#+}} xmm4 = xmm2[0,0,2,1,4,5,6,7]5549; AVX-NEXT:    vpmovzxdq {{.*#+}} xmm4 = xmm4[0],zero,xmm4[1],zero5550; AVX-NEXT:    vpshuflw {{.*#+}} xmm5 = xmm2[0,2,2,3,4,5,6,7]5551; AVX-NEXT:    vpmovzxdq {{.*#+}} xmm5 = xmm5[0],zero,xmm5[1],zero5552; AVX-NEXT:    vinsertf128 $1, %xmm5, %ymm4, %ymm45553; AVX-NEXT:    vandps %ymm3, %ymm15, %ymm35554; AVX-NEXT:    vandnps %ymm4, %ymm15, %ymm45555; AVX-NEXT:    vorps %ymm4, %ymm3, %ymm35556; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm3[0],ymm1[1],ymm3[2],ymm1[3],ymm3[4],ymm1[5],ymm3[6],ymm1[7]5557; AVX-NEXT:    vpshufhw {{.*#+}} xmm3 = xmm6[0,1,2,3,4,4,6,5]5558; AVX-NEXT:    vpshufhw {{.*#+}} xmm4 = xmm6[0,1,2,3,4,6,6,7]5559; AVX-NEXT:    vinsertf128 $1, %xmm4, %ymm3, %ymm35560; AVX-NEXT:    vpshufhw {{.*#+}} xmm4 = xmm7[0,1,2,3,4,5,5,7]5561; AVX-NEXT:    vpshufhw {{.*#+}} xmm5 = xmm7[0,1,2,3,6,5,7,7]5562; AVX-NEXT:    vinsertf128 $1, %xmm5, %ymm4, %ymm45563; AVX-NEXT:    vshufps {{.*#+}} ymm3 = ymm3[0,2,2,3,4,6,6,7]5564; AVX-NEXT:    vandnps %ymm3, %ymm14, %ymm35565; AVX-NEXT:    vshufps {{.*#+}} ymm4 = ymm4[0,2,2,3,4,6,6,7]5566; AVX-NEXT:    vandps %ymm4, %ymm14, %ymm45567; AVX-NEXT:    vorps %ymm3, %ymm4, %ymm35568; AVX-NEXT:    vpshufhw {{.*#+}} xmm4 = xmm2[0,1,2,3,4,4,6,5]5569; AVX-NEXT:    vpshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,6,6,7]5570; AVX-NEXT:    vinsertf128 $1, %xmm2, %ymm4, %ymm25571; AVX-NEXT:    vpshufd {{.*#+}} xmm4 = xmm0[2,3,2,3]5572; AVX-NEXT:    vpmovzxwq {{.*#+}} xmm4 = xmm4[0],zero,zero,zero,xmm4[1],zero,zero,zero5573; AVX-NEXT:    vpshufd {{.*#+}} xmm0 = xmm0[3,3,3,3]5574; AVX-NEXT:    vpmovzxwq {{.*#+}} xmm0 = xmm0[0],zero,zero,zero,xmm0[1],zero,zero,zero5575; AVX-NEXT:    vinsertf128 $1, %xmm0, %ymm4, %ymm05576; AVX-NEXT:    vshufps {{.*#+}} ymm2 = ymm2[2,1,3,3,6,5,7,7]5577; AVX-NEXT:    vandnps %ymm2, %ymm15, %ymm25578; AVX-NEXT:    vandps %ymm0, %ymm15, %ymm05579; AVX-NEXT:    vorps %ymm2, %ymm0, %ymm05580; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm3[1],ymm0[2],ymm3[3],ymm0[4],ymm3[5],ymm0[6],ymm3[7]5581; AVX-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload5582; AVX-NEXT:    vpunpckhbw (%rsp), %xmm2, %xmm3 # 16-byte Folded Reload5583; AVX-NEXT:    # xmm3 = 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]5584; AVX-NEXT:    vpshuflw {{.*#+}} xmm2 = xmm3[0,0,2,1,4,5,6,7]5585; AVX-NEXT:    vpshuflw {{.*#+}} xmm4 = xmm3[0,2,2,3,4,5,6,7]5586; AVX-NEXT:    vinsertf128 $1, %xmm4, %ymm2, %ymm25587; AVX-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload5588; AVX-NEXT:    vpunpckhbw {{[-0-9]+}}(%r{{[sb]}}p), %xmm4, %xmm4 # 16-byte Folded Reload5589; AVX-NEXT:    # xmm4 = xmm4[8],mem[8],xmm4[9],mem[9],xmm4[10],mem[10],xmm4[11],mem[11],xmm4[12],mem[12],xmm4[13],mem[13],xmm4[14],mem[14],xmm4[15],mem[15]5590; AVX-NEXT:    vpshuflw {{.*#+}} xmm5 = xmm4[0,1,1,3,4,5,6,7]5591; AVX-NEXT:    vpshuflw {{.*#+}} xmm6 = xmm4[2,1,3,3,4,5,6,7]5592; AVX-NEXT:    vinsertf128 $1, %xmm6, %ymm5, %ymm55593; AVX-NEXT:    vshufps {{.*#+}} ymm2 = ymm2[0,0,2,1,4,4,6,5]5594; AVX-NEXT:    vandnps %ymm2, %ymm14, %ymm25595; AVX-NEXT:    vshufps {{.*#+}} ymm5 = ymm5[0,0,2,1,4,4,6,5]5596; AVX-NEXT:    vandps %ymm5, %ymm14, %ymm55597; AVX-NEXT:    vorps %ymm2, %ymm5, %ymm55598; AVX-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload5599; AVX-NEXT:    vpunpckhbw {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm2 # 16-byte Folded Reload5600; AVX-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]5601; AVX-NEXT:    vpshufd {{.*#+}} xmm6 = xmm2[1,1,1,1]5602; AVX-NEXT:    vpmovzxwq {{.*#+}} xmm6 = xmm6[0],zero,zero,zero,xmm6[1],zero,zero,zero5603; AVX-NEXT:    vpmovzxwq {{.*#+}} xmm7 = xmm2[0],zero,zero,zero,xmm2[1],zero,zero,zero5604; AVX-NEXT:    vinsertf128 $1, %xmm6, %ymm7, %ymm65605; AVX-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload5606; AVX-NEXT:    vpunpckhbw {{[-0-9]+}}(%r{{[sb]}}p), %xmm7, %xmm7 # 16-byte Folded Reload5607; AVX-NEXT:    # xmm7 = xmm7[8],mem[8],xmm7[9],mem[9],xmm7[10],mem[10],xmm7[11],mem[11],xmm7[12],mem[12],xmm7[13],mem[13],xmm7[14],mem[14],xmm7[15],mem[15]5608; AVX-NEXT:    vpshuflw {{.*#+}} xmm8 = xmm7[0,0,2,1,4,5,6,7]5609; AVX-NEXT:    vpmovzxdq {{.*#+}} xmm8 = xmm8[0],zero,xmm8[1],zero5610; AVX-NEXT:    vpshuflw {{.*#+}} xmm9 = xmm7[0,2,2,3,4,5,6,7]5611; AVX-NEXT:    vpmovzxdq {{.*#+}} xmm9 = xmm9[0],zero,xmm9[1],zero5612; AVX-NEXT:    vinsertf128 $1, %xmm9, %ymm8, %ymm85613; AVX-NEXT:    vandps %ymm6, %ymm15, %ymm65614; AVX-NEXT:    vandnps %ymm8, %ymm15, %ymm85615; AVX-NEXT:    vorps %ymm6, %ymm8, %ymm65616; AVX-NEXT:    vblendps {{.*#+}} ymm5 = ymm6[0],ymm5[1],ymm6[2],ymm5[3],ymm6[4],ymm5[5],ymm6[6],ymm5[7]5617; AVX-NEXT:    vpshufhw {{.*#+}} xmm6 = xmm3[0,1,2,3,4,4,6,5]5618; AVX-NEXT:    vpshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,4,6,6,7]5619; AVX-NEXT:    vinsertf128 $1, %xmm3, %ymm6, %ymm35620; AVX-NEXT:    vpshufhw {{.*#+}} xmm6 = xmm4[0,1,2,3,4,5,5,7]5621; AVX-NEXT:    vpshufhw {{.*#+}} xmm4 = xmm4[0,1,2,3,6,5,7,7]5622; AVX-NEXT:    vinsertf128 $1, %xmm4, %ymm6, %ymm45623; AVX-NEXT:    vshufps {{.*#+}} ymm3 = ymm3[0,2,2,3,4,6,6,7]5624; AVX-NEXT:    vandnps %ymm3, %ymm14, %ymm35625; AVX-NEXT:    vshufps {{.*#+}} ymm4 = ymm4[0,2,2,3,4,6,6,7]5626; AVX-NEXT:    vandps %ymm4, %ymm14, %ymm45627; AVX-NEXT:    vorps %ymm3, %ymm4, %ymm35628; AVX-NEXT:    vpshufhw {{.*#+}} xmm4 = xmm7[0,1,2,3,4,4,6,5]5629; AVX-NEXT:    vpshufhw {{.*#+}} xmm6 = xmm7[0,1,2,3,4,6,6,7]5630; AVX-NEXT:    vinsertf128 $1, %xmm6, %ymm4, %ymm45631; AVX-NEXT:    vpshufd {{.*#+}} xmm6 = xmm2[2,3,2,3]5632; AVX-NEXT:    vpmovzxwq {{.*#+}} xmm6 = xmm6[0],zero,zero,zero,xmm6[1],zero,zero,zero5633; AVX-NEXT:    vpshufd {{.*#+}} xmm2 = xmm2[3,3,3,3]5634; AVX-NEXT:    vpmovzxwq {{.*#+}} xmm2 = xmm2[0],zero,zero,zero,xmm2[1],zero,zero,zero5635; AVX-NEXT:    vinsertf128 $1, %xmm2, %ymm6, %ymm25636; AVX-NEXT:    vshufps {{.*#+}} ymm4 = ymm4[2,1,3,3,6,5,7,7]5637; AVX-NEXT:    vandnps %ymm4, %ymm15, %ymm45638; AVX-NEXT:    vandps %ymm2, %ymm15, %ymm25639; AVX-NEXT:    vorps %ymm4, %ymm2, %ymm25640; AVX-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0],ymm3[1],ymm2[2],ymm3[3],ymm2[4],ymm3[5],ymm2[6],ymm3[7]5641; AVX-NEXT:    movq {{[0-9]+}}(%rsp), %rax5642; AVX-NEXT:    vmovaps %ymm2, 96(%rax)5643; AVX-NEXT:    vmovaps %ymm5, 64(%rax)5644; AVX-NEXT:    vmovaps %ymm0, 160(%rax)5645; AVX-NEXT:    vmovaps %ymm1, 128(%rax)5646; AVX-NEXT:    vmovaps %ymm10, 224(%rax)5647; AVX-NEXT:    vmovaps %ymm11, 192(%rax)5648; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5649; AVX-NEXT:    vmovaps %ymm0, 288(%rax)5650; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5651; AVX-NEXT:    vmovaps %ymm0, 256(%rax)5652; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5653; AVX-NEXT:    vmovaps %ymm0, 352(%rax)5654; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5655; AVX-NEXT:    vmovaps %ymm0, 320(%rax)5656; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5657; AVX-NEXT:    vmovaps %ymm0, 416(%rax)5658; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5659; AVX-NEXT:    vmovaps %ymm0, 384(%rax)5660; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5661; AVX-NEXT:    vmovaps %ymm0, 480(%rax)5662; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5663; AVX-NEXT:    vmovaps %ymm0, 448(%rax)5664; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5665; AVX-NEXT:    vmovaps %ymm0, (%rax)5666; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5667; AVX-NEXT:    vmovaps %ymm0, 32(%rax)5668; AVX-NEXT:    addq $328, %rsp # imm = 0x1485669; AVX-NEXT:    vzeroupper5670; AVX-NEXT:    retq5671;5672; AVX2-LABEL: store_i8_stride8_vf64:5673; AVX2:       # %bb.0:5674; AVX2-NEXT:    subq $328, %rsp # imm = 0x1485675; AVX2-NEXT:    movq {{[0-9]+}}(%rsp), %rax5676; AVX2-NEXT:    movq {{[0-9]+}}(%rsp), %r105677; AVX2-NEXT:    vmovdqa (%r10), %xmm05678; AVX2-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5679; AVX2-NEXT:    vmovdqa 48(%r10), %xmm115680; AVX2-NEXT:    vmovdqa (%rax), %xmm15681; AVX2-NEXT:    vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5682; AVX2-NEXT:    vpunpcklbw {{.*#+}} xmm2 = xmm1[0],xmm0[0],xmm1[1],xmm0[1],xmm1[2],xmm0[2],xmm1[3],xmm0[3],xmm1[4],xmm0[4],xmm1[5],xmm0[5],xmm1[6],xmm0[6],xmm1[7],xmm0[7]5683; AVX2-NEXT:    vpshufhw {{.*#+}} xmm1 = xmm2[0,1,2,3,4,4,6,5]5684; AVX2-NEXT:    vpshufhw {{.*#+}} xmm3 = xmm2[0,1,2,3,4,6,6,7]5685; AVX2-NEXT:    vinserti128 $1, %xmm3, %ymm1, %ymm15686; AVX2-NEXT:    vmovdqa (%r9), %xmm05687; AVX2-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5688; AVX2-NEXT:    vmovdqa (%r8), %xmm35689; AVX2-NEXT:    vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5690; AVX2-NEXT:    vpunpcklbw {{.*#+}} xmm3 = xmm3[0],xmm0[0],xmm3[1],xmm0[1],xmm3[2],xmm0[2],xmm3[3],xmm0[3],xmm3[4],xmm0[4],xmm3[5],xmm0[5],xmm3[6],xmm0[6],xmm3[7],xmm0[7]5691; AVX2-NEXT:    vpshufhw {{.*#+}} xmm4 = xmm3[0,1,2,3,4,5,5,7]5692; AVX2-NEXT:    vpshufhw {{.*#+}} xmm5 = xmm3[0,1,2,3,6,5,7,7]5693; AVX2-NEXT:    vinserti128 $1, %xmm5, %ymm4, %ymm45694; AVX2-NEXT:    vpblendw {{.*#+}} ymm5 = ymm4[0,1,2,3,4],ymm1[5],ymm4[6],ymm1[7],ymm4[8,9,10,11,12],ymm1[13],ymm4[14],ymm1[15]5695; AVX2-NEXT:    vmovdqa (%rcx), %xmm05696; AVX2-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5697; AVX2-NEXT:    vmovdqa (%rdx), %xmm15698; AVX2-NEXT:    vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5699; AVX2-NEXT:    vpunpcklbw {{.*#+}} xmm4 = xmm1[0],xmm0[0],xmm1[1],xmm0[1],xmm1[2],xmm0[2],xmm1[3],xmm0[3],xmm1[4],xmm0[4],xmm1[5],xmm0[5],xmm1[6],xmm0[6],xmm1[7],xmm0[7]5700; AVX2-NEXT:    vpshufhw {{.*#+}} xmm1 = xmm4[0,1,2,3,4,4,6,5]5701; AVX2-NEXT:    vpshufhw {{.*#+}} xmm6 = xmm4[0,1,2,3,4,6,6,7]5702; AVX2-NEXT:    vinserti128 $1, %xmm6, %ymm1, %ymm15703; AVX2-NEXT:    vpshufd {{.*#+}} ymm1 = ymm1[2,1,3,3,6,5,7,7]5704; AVX2-NEXT:    vmovdqa (%rsi), %xmm05705; AVX2-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5706; AVX2-NEXT:    vmovdqa (%rdi), %xmm65707; AVX2-NEXT:    vmovdqa %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5708; AVX2-NEXT:    vpunpcklbw {{.*#+}} xmm6 = 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]5709; AVX2-NEXT:    vpshufd {{.*#+}} xmm7 = xmm6[2,3,2,3]5710; AVX2-NEXT:    vpmovzxwq {{.*#+}} ymm7 = xmm7[0],zero,zero,zero,xmm7[1],zero,zero,zero,xmm7[2],zero,zero,zero,xmm7[3],zero,zero,zero5711; AVX2-NEXT:    vpblendw {{.*#+}} ymm7 = ymm7[0],ymm1[1],ymm7[2,3,4],ymm1[5],ymm7[6,7,8],ymm1[9],ymm7[10,11,12],ymm1[13],ymm7[14,15]5712; AVX2-NEXT:    vmovdqa 48(%rax), %xmm15713; AVX2-NEXT:    vpshufd {{.*#+}} ymm5 = ymm5[0,2,2,3,4,6,6,7]5714; AVX2-NEXT:    vpblendd {{.*#+}} ymm0 = ymm7[0],ymm5[1],ymm7[2],ymm5[3],ymm7[4],ymm5[5],ymm7[6],ymm5[7]5715; AVX2-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5716; AVX2-NEXT:    vpshuflw {{.*#+}} xmm5 = xmm2[0,0,2,1,4,5,6,7]5717; AVX2-NEXT:    vpshuflw {{.*#+}} xmm2 = xmm2[0,2,2,3,4,5,6,7]5718; AVX2-NEXT:    vinserti128 $1, %xmm2, %ymm5, %ymm25719; AVX2-NEXT:    vpshuflw {{.*#+}} xmm5 = xmm3[0,1,1,3,4,5,6,7]5720; AVX2-NEXT:    vpshuflw {{.*#+}} xmm3 = xmm3[2,1,3,3,4,5,6,7]5721; AVX2-NEXT:    vinserti128 $1, %xmm3, %ymm5, %ymm35722; AVX2-NEXT:    vpblendw {{.*#+}} ymm2 = ymm3[0],ymm2[1],ymm3[2],ymm2[3],ymm3[4,5,6,7,8],ymm2[9],ymm3[10],ymm2[11],ymm3[12,13,14,15]5723; AVX2-NEXT:    vpshufd {{.*#+}} ymm2 = ymm2[0,0,2,1,4,4,6,5]5724; AVX2-NEXT:    vpmovzxwq {{.*#+}} ymm3 = xmm6[0],zero,zero,zero,xmm6[1],zero,zero,zero,xmm6[2],zero,zero,zero,xmm6[3],zero,zero,zero5725; AVX2-NEXT:    vmovdqa {{.*#+}} xmm14 = [0,1,0,1,4,5,2,3,0,1,4,5,4,5,6,7]5726; AVX2-NEXT:    vpshufb %xmm14, %xmm4, %xmm45727; AVX2-NEXT:    vpmovzxdq {{.*#+}} ymm4 = xmm4[0],zero,xmm4[1],zero,xmm4[2],zero,xmm4[3],zero5728; AVX2-NEXT:    vpblendw {{.*#+}} ymm3 = ymm3[0],ymm4[1],ymm3[2,3,4],ymm4[5],ymm3[6,7,8],ymm4[9],ymm3[10,11,12],ymm4[13],ymm3[14,15]5729; AVX2-NEXT:    vpblendd {{.*#+}} ymm0 = ymm3[0],ymm2[1],ymm3[2],ymm2[3],ymm3[4],ymm2[5],ymm3[6],ymm2[7]5730; AVX2-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5731; AVX2-NEXT:    vpunpckhbw {{.*#+}} xmm8 = xmm1[8],xmm11[8],xmm1[9],xmm11[9],xmm1[10],xmm11[10],xmm1[11],xmm11[11],xmm1[12],xmm11[12],xmm1[13],xmm11[13],xmm1[14],xmm11[14],xmm1[15],xmm11[15]5732; AVX2-NEXT:    vpshuflw {{.*#+}} xmm2 = xmm8[0,0,2,1,4,5,6,7]5733; AVX2-NEXT:    vpshuflw {{.*#+}} xmm3 = xmm8[0,2,2,3,4,5,6,7]5734; AVX2-NEXT:    vinserti128 $1, %xmm3, %ymm2, %ymm25735; AVX2-NEXT:    vmovdqa 48(%r9), %xmm35736; AVX2-NEXT:    vmovdqa 48(%r8), %xmm55737; AVX2-NEXT:    vpunpckhbw {{.*#+}} xmm9 = 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]5738; AVX2-NEXT:    vpshuflw {{.*#+}} xmm4 = xmm9[0,1,1,3,4,5,6,7]5739; AVX2-NEXT:    vpshuflw {{.*#+}} xmm6 = xmm9[2,1,3,3,4,5,6,7]5740; AVX2-NEXT:    vinserti128 $1, %xmm6, %ymm4, %ymm45741; AVX2-NEXT:    vpblendw {{.*#+}} ymm10 = ymm4[0],ymm2[1],ymm4[2],ymm2[3],ymm4[4,5,6,7,8],ymm2[9],ymm4[10],ymm2[11],ymm4[12,13,14,15]5742; AVX2-NEXT:    vmovdqa 48(%rcx), %xmm25743; AVX2-NEXT:    vmovdqa 48(%rdx), %xmm45744; AVX2-NEXT:    vpunpckhbw {{.*#+}} xmm12 = xmm4[8],xmm2[8],xmm4[9],xmm2[9],xmm4[10],xmm2[10],xmm4[11],xmm2[11],xmm4[12],xmm2[12],xmm4[13],xmm2[13],xmm4[14],xmm2[14],xmm4[15],xmm2[15]5745; AVX2-NEXT:    vpshufb %xmm14, %xmm12, %xmm65746; AVX2-NEXT:    vpmovzxdq {{.*#+}} ymm13 = xmm6[0],zero,xmm6[1],zero,xmm6[2],zero,xmm6[3],zero5747; AVX2-NEXT:    vmovdqa 48(%rsi), %xmm65748; AVX2-NEXT:    vmovdqa 48(%rdi), %xmm75749; AVX2-NEXT:    vpunpckhbw {{.*#+}} xmm0 = 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]5750; AVX2-NEXT:    vpmovzxwq {{.*#+}} ymm15 = xmm0[0],zero,zero,zero,xmm0[1],zero,zero,zero,xmm0[2],zero,zero,zero,xmm0[3],zero,zero,zero5751; AVX2-NEXT:    vpblendw {{.*#+}} ymm13 = ymm15[0],ymm13[1],ymm15[2,3,4],ymm13[5],ymm15[6,7,8],ymm13[9],ymm15[10,11,12],ymm13[13],ymm15[14,15]5752; AVX2-NEXT:    vpshufd {{.*#+}} ymm10 = ymm10[0,0,2,1,4,4,6,5]5753; AVX2-NEXT:    vpblendd {{.*#+}} ymm10 = ymm13[0],ymm10[1],ymm13[2],ymm10[3],ymm13[4],ymm10[5],ymm13[6],ymm10[7]5754; AVX2-NEXT:    vmovdqu %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5755; AVX2-NEXT:    vpshufhw {{.*#+}} xmm10 = xmm8[0,1,2,3,4,4,6,5]5756; AVX2-NEXT:    vpshufhw {{.*#+}} xmm8 = xmm8[0,1,2,3,4,6,6,7]5757; AVX2-NEXT:    vinserti128 $1, %xmm8, %ymm10, %ymm85758; AVX2-NEXT:    vpshufhw {{.*#+}} xmm10 = xmm9[0,1,2,3,4,5,5,7]5759; AVX2-NEXT:    vpshufhw {{.*#+}} xmm9 = xmm9[0,1,2,3,6,5,7,7]5760; AVX2-NEXT:    vinserti128 $1, %xmm9, %ymm10, %ymm95761; AVX2-NEXT:    vpblendw {{.*#+}} ymm8 = ymm9[0,1,2,3,4],ymm8[5],ymm9[6],ymm8[7],ymm9[8,9,10,11,12],ymm8[13],ymm9[14],ymm8[15]5762; AVX2-NEXT:    vpshufhw {{.*#+}} xmm9 = xmm12[0,1,2,3,4,4,6,5]5763; AVX2-NEXT:    vpshufhw {{.*#+}} xmm10 = xmm12[0,1,2,3,4,6,6,7]5764; AVX2-NEXT:    vinserti128 $1, %xmm10, %ymm9, %ymm95765; AVX2-NEXT:    vpshufd {{.*#+}} ymm9 = ymm9[2,1,3,3,6,5,7,7]5766; AVX2-NEXT:    vpshufd {{.*#+}} xmm0 = xmm0[2,3,2,3]5767; AVX2-NEXT:    vpmovzxwq {{.*#+}} ymm0 = xmm0[0],zero,zero,zero,xmm0[1],zero,zero,zero,xmm0[2],zero,zero,zero,xmm0[3],zero,zero,zero5768; AVX2-NEXT:    vpblendw {{.*#+}} ymm0 = ymm0[0],ymm9[1],ymm0[2,3,4],ymm9[5],ymm0[6,7,8],ymm9[9],ymm0[10,11,12],ymm9[13],ymm0[14,15]5769; AVX2-NEXT:    vpshufd {{.*#+}} ymm8 = ymm8[0,2,2,3,4,6,6,7]5770; AVX2-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0],ymm8[1],ymm0[2],ymm8[3],ymm0[4],ymm8[5],ymm0[6],ymm8[7]5771; AVX2-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5772; AVX2-NEXT:    vpunpcklbw {{.*#+}} xmm0 = xmm1[0],xmm11[0],xmm1[1],xmm11[1],xmm1[2],xmm11[2],xmm1[3],xmm11[3],xmm1[4],xmm11[4],xmm1[5],xmm11[5],xmm1[6],xmm11[6],xmm1[7],xmm11[7]5773; AVX2-NEXT:    vpshuflw {{.*#+}} xmm1 = xmm0[0,0,2,1,4,5,6,7]5774; AVX2-NEXT:    vpshuflw {{.*#+}} xmm8 = xmm0[0,2,2,3,4,5,6,7]5775; AVX2-NEXT:    vinserti128 $1, %xmm8, %ymm1, %ymm15776; AVX2-NEXT:    vpunpcklbw {{.*#+}} xmm3 = 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]5777; AVX2-NEXT:    vpshuflw {{.*#+}} xmm5 = xmm3[0,1,1,3,4,5,6,7]5778; AVX2-NEXT:    vpshuflw {{.*#+}} xmm8 = xmm3[2,1,3,3,4,5,6,7]5779; AVX2-NEXT:    vinserti128 $1, %xmm8, %ymm5, %ymm55780; AVX2-NEXT:    vpblendw {{.*#+}} ymm1 = ymm5[0],ymm1[1],ymm5[2],ymm1[3],ymm5[4,5,6,7,8],ymm1[9],ymm5[10],ymm1[11],ymm5[12,13,14,15]5781; AVX2-NEXT:    vpunpcklbw {{.*#+}} xmm5 = xmm7[0],xmm6[0],xmm7[1],xmm6[1],xmm7[2],xmm6[2],xmm7[3],xmm6[3],xmm7[4],xmm6[4],xmm7[5],xmm6[5],xmm7[6],xmm6[6],xmm7[7],xmm6[7]5782; AVX2-NEXT:    vpunpcklbw {{.*#+}} xmm2 = xmm4[0],xmm2[0],xmm4[1],xmm2[1],xmm4[2],xmm2[2],xmm4[3],xmm2[3],xmm4[4],xmm2[4],xmm4[5],xmm2[5],xmm4[6],xmm2[6],xmm4[7],xmm2[7]5783; AVX2-NEXT:    vpshufb %xmm14, %xmm2, %xmm45784; AVX2-NEXT:    vpmovzxdq {{.*#+}} ymm4 = xmm4[0],zero,xmm4[1],zero,xmm4[2],zero,xmm4[3],zero5785; AVX2-NEXT:    vpmovzxwq {{.*#+}} ymm6 = xmm5[0],zero,zero,zero,xmm5[1],zero,zero,zero,xmm5[2],zero,zero,zero,xmm5[3],zero,zero,zero5786; AVX2-NEXT:    vpblendw {{.*#+}} ymm4 = ymm6[0],ymm4[1],ymm6[2,3,4],ymm4[5],ymm6[6,7,8],ymm4[9],ymm6[10,11,12],ymm4[13],ymm6[14,15]5787; AVX2-NEXT:    vpshufd {{.*#+}} ymm1 = ymm1[0,0,2,1,4,4,6,5]5788; AVX2-NEXT:    vpblendd {{.*#+}} ymm1 = ymm4[0],ymm1[1],ymm4[2],ymm1[3],ymm4[4],ymm1[5],ymm4[6],ymm1[7]5789; AVX2-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5790; AVX2-NEXT:    vpshufhw {{.*#+}} xmm1 = xmm0[0,1,2,3,4,4,6,5]5791; AVX2-NEXT:    vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,6,6,7]5792; AVX2-NEXT:    vinserti128 $1, %xmm0, %ymm1, %ymm05793; AVX2-NEXT:    vpshufhw {{.*#+}} xmm1 = xmm3[0,1,2,3,4,5,5,7]5794; AVX2-NEXT:    vpshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,6,5,7,7]5795; AVX2-NEXT:    vinserti128 $1, %xmm3, %ymm1, %ymm15796; AVX2-NEXT:    vpblendw {{.*#+}} ymm0 = ymm1[0,1,2,3,4],ymm0[5],ymm1[6],ymm0[7],ymm1[8,9,10,11,12],ymm0[13],ymm1[14],ymm0[15]5797; AVX2-NEXT:    vpshufhw {{.*#+}} xmm1 = xmm2[0,1,2,3,4,4,6,5]5798; AVX2-NEXT:    vpshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,6,6,7]5799; AVX2-NEXT:    vinserti128 $1, %xmm2, %ymm1, %ymm15800; AVX2-NEXT:    vpshufd {{.*#+}} ymm1 = ymm1[2,1,3,3,6,5,7,7]5801; AVX2-NEXT:    vpshufd {{.*#+}} xmm2 = xmm5[2,3,2,3]5802; AVX2-NEXT:    vpmovzxwq {{.*#+}} ymm2 = xmm2[0],zero,zero,zero,xmm2[1],zero,zero,zero,xmm2[2],zero,zero,zero,xmm2[3],zero,zero,zero5803; AVX2-NEXT:    vpblendw {{.*#+}} ymm1 = ymm2[0],ymm1[1],ymm2[2,3,4],ymm1[5],ymm2[6,7,8],ymm1[9],ymm2[10,11,12],ymm1[13],ymm2[14,15]5804; AVX2-NEXT:    vpshufd {{.*#+}} ymm0 = ymm0[0,2,2,3,4,6,6,7]5805; AVX2-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0],ymm0[1],ymm1[2],ymm0[3],ymm1[4],ymm0[5],ymm1[6],ymm0[7]5806; AVX2-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5807; AVX2-NEXT:    vmovdqa 32(%r10), %xmm05808; AVX2-NEXT:    vmovdqa 32(%rax), %xmm15809; AVX2-NEXT:    vpunpckhbw {{.*#+}} xmm8 = 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]5810; AVX2-NEXT:    vpshuflw {{.*#+}} xmm2 = xmm8[0,0,2,1,4,5,6,7]5811; AVX2-NEXT:    vpshuflw {{.*#+}} xmm3 = xmm8[0,2,2,3,4,5,6,7]5812; AVX2-NEXT:    vinserti128 $1, %xmm3, %ymm2, %ymm25813; AVX2-NEXT:    vmovdqa 32(%r9), %xmm35814; AVX2-NEXT:    vmovdqa 32(%r8), %xmm55815; AVX2-NEXT:    vpunpckhbw {{.*#+}} xmm9 = 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]5816; AVX2-NEXT:    vpshuflw {{.*#+}} xmm4 = xmm9[0,1,1,3,4,5,6,7]5817; AVX2-NEXT:    vpshuflw {{.*#+}} xmm6 = xmm9[2,1,3,3,4,5,6,7]5818; AVX2-NEXT:    vinserti128 $1, %xmm6, %ymm4, %ymm45819; AVX2-NEXT:    vpblendw {{.*#+}} ymm10 = ymm4[0],ymm2[1],ymm4[2],ymm2[3],ymm4[4,5,6,7,8],ymm2[9],ymm4[10],ymm2[11],ymm4[12,13,14,15]5820; AVX2-NEXT:    vmovdqa 32(%rcx), %xmm25821; AVX2-NEXT:    vmovdqa 32(%rdx), %xmm45822; AVX2-NEXT:    vpunpckhbw {{.*#+}} xmm11 = xmm4[8],xmm2[8],xmm4[9],xmm2[9],xmm4[10],xmm2[10],xmm4[11],xmm2[11],xmm4[12],xmm2[12],xmm4[13],xmm2[13],xmm4[14],xmm2[14],xmm4[15],xmm2[15]5823; AVX2-NEXT:    vpshufb %xmm14, %xmm11, %xmm65824; AVX2-NEXT:    vpmovzxdq {{.*#+}} ymm12 = xmm6[0],zero,xmm6[1],zero,xmm6[2],zero,xmm6[3],zero5825; AVX2-NEXT:    vmovdqa 32(%rsi), %xmm65826; AVX2-NEXT:    vmovdqa 32(%rdi), %xmm75827; AVX2-NEXT:    vpunpckhbw {{.*#+}} xmm13 = 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]5828; AVX2-NEXT:    vpmovzxwq {{.*#+}} ymm15 = xmm13[0],zero,zero,zero,xmm13[1],zero,zero,zero,xmm13[2],zero,zero,zero,xmm13[3],zero,zero,zero5829; AVX2-NEXT:    vpblendw {{.*#+}} ymm12 = ymm15[0],ymm12[1],ymm15[2,3,4],ymm12[5],ymm15[6,7,8],ymm12[9],ymm15[10,11,12],ymm12[13],ymm15[14,15]5830; AVX2-NEXT:    vpshufd {{.*#+}} ymm10 = ymm10[0,0,2,1,4,4,6,5]5831; AVX2-NEXT:    vpblendd {{.*#+}} ymm10 = ymm12[0],ymm10[1],ymm12[2],ymm10[3],ymm12[4],ymm10[5],ymm12[6],ymm10[7]5832; AVX2-NEXT:    vmovdqu %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5833; AVX2-NEXT:    vpshufhw {{.*#+}} xmm10 = xmm8[0,1,2,3,4,4,6,5]5834; AVX2-NEXT:    vpshufhw {{.*#+}} xmm8 = xmm8[0,1,2,3,4,6,6,7]5835; AVX2-NEXT:    vinserti128 $1, %xmm8, %ymm10, %ymm85836; AVX2-NEXT:    vpshufhw {{.*#+}} xmm10 = xmm9[0,1,2,3,4,5,5,7]5837; AVX2-NEXT:    vpshufhw {{.*#+}} xmm9 = xmm9[0,1,2,3,6,5,7,7]5838; AVX2-NEXT:    vinserti128 $1, %xmm9, %ymm10, %ymm95839; AVX2-NEXT:    vpblendw {{.*#+}} ymm8 = ymm9[0,1,2,3,4],ymm8[5],ymm9[6],ymm8[7],ymm9[8,9,10,11,12],ymm8[13],ymm9[14],ymm8[15]5840; AVX2-NEXT:    vpshufhw {{.*#+}} xmm9 = xmm11[0,1,2,3,4,4,6,5]5841; AVX2-NEXT:    vpshufhw {{.*#+}} xmm10 = xmm11[0,1,2,3,4,6,6,7]5842; AVX2-NEXT:    vinserti128 $1, %xmm10, %ymm9, %ymm95843; AVX2-NEXT:    vpshufd {{.*#+}} ymm9 = ymm9[2,1,3,3,6,5,7,7]5844; AVX2-NEXT:    vpshufd {{.*#+}} xmm10 = xmm13[2,3,2,3]5845; AVX2-NEXT:    vpmovzxwq {{.*#+}} ymm10 = xmm10[0],zero,zero,zero,xmm10[1],zero,zero,zero,xmm10[2],zero,zero,zero,xmm10[3],zero,zero,zero5846; AVX2-NEXT:    vpblendw {{.*#+}} ymm9 = ymm10[0],ymm9[1],ymm10[2,3,4],ymm9[5],ymm10[6,7,8],ymm9[9],ymm10[10,11,12],ymm9[13],ymm10[14,15]5847; AVX2-NEXT:    vpshufd {{.*#+}} ymm8 = ymm8[0,2,2,3,4,6,6,7]5848; AVX2-NEXT:    vpblendd {{.*#+}} ymm8 = ymm9[0],ymm8[1],ymm9[2],ymm8[3],ymm9[4],ymm8[5],ymm9[6],ymm8[7]5849; AVX2-NEXT:    vmovdqu %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5850; AVX2-NEXT:    vpunpcklbw {{.*#+}} xmm0 = xmm1[0],xmm0[0],xmm1[1],xmm0[1],xmm1[2],xmm0[2],xmm1[3],xmm0[3],xmm1[4],xmm0[4],xmm1[5],xmm0[5],xmm1[6],xmm0[6],xmm1[7],xmm0[7]5851; AVX2-NEXT:    vpshuflw {{.*#+}} xmm1 = xmm0[0,0,2,1,4,5,6,7]5852; AVX2-NEXT:    vpshuflw {{.*#+}} xmm8 = xmm0[0,2,2,3,4,5,6,7]5853; AVX2-NEXT:    vinserti128 $1, %xmm8, %ymm1, %ymm15854; AVX2-NEXT:    vpunpcklbw {{.*#+}} xmm3 = 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]5855; AVX2-NEXT:    vpshuflw {{.*#+}} xmm5 = xmm3[0,1,1,3,4,5,6,7]5856; AVX2-NEXT:    vpshuflw {{.*#+}} xmm8 = xmm3[2,1,3,3,4,5,6,7]5857; AVX2-NEXT:    vinserti128 $1, %xmm8, %ymm5, %ymm55858; AVX2-NEXT:    vpblendw {{.*#+}} ymm1 = ymm5[0],ymm1[1],ymm5[2],ymm1[3],ymm5[4,5,6,7,8],ymm1[9],ymm5[10],ymm1[11],ymm5[12,13,14,15]5859; AVX2-NEXT:    vpunpcklbw {{.*#+}} xmm5 = xmm7[0],xmm6[0],xmm7[1],xmm6[1],xmm7[2],xmm6[2],xmm7[3],xmm6[3],xmm7[4],xmm6[4],xmm7[5],xmm6[5],xmm7[6],xmm6[6],xmm7[7],xmm6[7]5860; AVX2-NEXT:    vpunpcklbw {{.*#+}} xmm2 = xmm4[0],xmm2[0],xmm4[1],xmm2[1],xmm4[2],xmm2[2],xmm4[3],xmm2[3],xmm4[4],xmm2[4],xmm4[5],xmm2[5],xmm4[6],xmm2[6],xmm4[7],xmm2[7]5861; AVX2-NEXT:    vpshufb %xmm14, %xmm2, %xmm45862; AVX2-NEXT:    vpmovzxdq {{.*#+}} ymm4 = xmm4[0],zero,xmm4[1],zero,xmm4[2],zero,xmm4[3],zero5863; AVX2-NEXT:    vpmovzxwq {{.*#+}} ymm6 = xmm5[0],zero,zero,zero,xmm5[1],zero,zero,zero,xmm5[2],zero,zero,zero,xmm5[3],zero,zero,zero5864; AVX2-NEXT:    vpblendw {{.*#+}} ymm4 = ymm6[0],ymm4[1],ymm6[2,3,4],ymm4[5],ymm6[6,7,8],ymm4[9],ymm6[10,11,12],ymm4[13],ymm6[14,15]5865; AVX2-NEXT:    vpshufd {{.*#+}} ymm1 = ymm1[0,0,2,1,4,4,6,5]5866; AVX2-NEXT:    vpblendd {{.*#+}} ymm1 = ymm4[0],ymm1[1],ymm4[2],ymm1[3],ymm4[4],ymm1[5],ymm4[6],ymm1[7]5867; AVX2-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5868; AVX2-NEXT:    vpshufhw {{.*#+}} xmm1 = xmm0[0,1,2,3,4,4,6,5]5869; AVX2-NEXT:    vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,6,6,7]5870; AVX2-NEXT:    vinserti128 $1, %xmm0, %ymm1, %ymm05871; AVX2-NEXT:    vpshufhw {{.*#+}} xmm1 = xmm3[0,1,2,3,4,5,5,7]5872; AVX2-NEXT:    vpshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,6,5,7,7]5873; AVX2-NEXT:    vinserti128 $1, %xmm3, %ymm1, %ymm15874; AVX2-NEXT:    vpblendw {{.*#+}} ymm0 = ymm1[0,1,2,3,4],ymm0[5],ymm1[6],ymm0[7],ymm1[8,9,10,11,12],ymm0[13],ymm1[14],ymm0[15]5875; AVX2-NEXT:    vpshufhw {{.*#+}} xmm1 = xmm2[0,1,2,3,4,4,6,5]5876; AVX2-NEXT:    vpshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,6,6,7]5877; AVX2-NEXT:    vinserti128 $1, %xmm2, %ymm1, %ymm15878; AVX2-NEXT:    vpshufd {{.*#+}} ymm1 = ymm1[2,1,3,3,6,5,7,7]5879; AVX2-NEXT:    vpshufd {{.*#+}} xmm2 = xmm5[2,3,2,3]5880; AVX2-NEXT:    vpmovzxwq {{.*#+}} ymm2 = xmm2[0],zero,zero,zero,xmm2[1],zero,zero,zero,xmm2[2],zero,zero,zero,xmm2[3],zero,zero,zero5881; AVX2-NEXT:    vpblendw {{.*#+}} ymm1 = ymm2[0],ymm1[1],ymm2[2,3,4],ymm1[5],ymm2[6,7,8],ymm1[9],ymm2[10,11,12],ymm1[13],ymm2[14,15]5882; AVX2-NEXT:    vpshufd {{.*#+}} ymm0 = ymm0[0,2,2,3,4,6,6,7]5883; AVX2-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0],ymm0[1],ymm1[2],ymm0[3],ymm1[4],ymm0[5],ymm1[6],ymm0[7]5884; AVX2-NEXT:    vmovdqu %ymm0, (%rsp) # 32-byte Spill5885; AVX2-NEXT:    vmovdqa 16(%r10), %xmm125886; AVX2-NEXT:    vmovdqa 16(%rax), %xmm105887; AVX2-NEXT:    vpunpckhbw {{.*#+}} xmm8 = xmm10[8],xmm12[8],xmm10[9],xmm12[9],xmm10[10],xmm12[10],xmm10[11],xmm12[11],xmm10[12],xmm12[12],xmm10[13],xmm12[13],xmm10[14],xmm12[14],xmm10[15],xmm12[15]5888; AVX2-NEXT:    vpshuflw {{.*#+}} xmm0 = xmm8[0,0,2,1,4,5,6,7]5889; AVX2-NEXT:    vpshuflw {{.*#+}} xmm1 = xmm8[0,2,2,3,4,5,6,7]5890; AVX2-NEXT:    vinserti128 $1, %xmm1, %ymm0, %ymm05891; AVX2-NEXT:    vmovdqa 16(%r9), %xmm55892; AVX2-NEXT:    vmovdqa 16(%r8), %xmm45893; AVX2-NEXT:    vpunpckhbw {{.*#+}} xmm11 = xmm4[8],xmm5[8],xmm4[9],xmm5[9],xmm4[10],xmm5[10],xmm4[11],xmm5[11],xmm4[12],xmm5[12],xmm4[13],xmm5[13],xmm4[14],xmm5[14],xmm4[15],xmm5[15]5894; AVX2-NEXT:    vpshuflw {{.*#+}} xmm1 = xmm11[0,1,1,3,4,5,6,7]5895; AVX2-NEXT:    vpshuflw {{.*#+}} xmm3 = xmm11[2,1,3,3,4,5,6,7]5896; AVX2-NEXT:    vinserti128 $1, %xmm3, %ymm1, %ymm15897; AVX2-NEXT:    vpblendw {{.*#+}} ymm9 = ymm1[0],ymm0[1],ymm1[2],ymm0[3],ymm1[4,5,6,7,8],ymm0[9],ymm1[10],ymm0[11],ymm1[12,13,14,15]5898; AVX2-NEXT:    vmovdqa 16(%rcx), %xmm75899; AVX2-NEXT:    vmovdqa 16(%rdx), %xmm65900; AVX2-NEXT:    vpunpckhbw {{.*#+}} xmm15 = 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]5901; AVX2-NEXT:    vpshufb %xmm14, %xmm15, %xmm05902; AVX2-NEXT:    vpmovzxdq {{.*#+}} ymm0 = xmm0[0],zero,xmm0[1],zero,xmm0[2],zero,xmm0[3],zero5903; AVX2-NEXT:    vmovdqa 16(%rsi), %xmm35904; AVX2-NEXT:    vmovdqa 16(%rdi), %xmm25905; AVX2-NEXT:    vpunpckhbw {{.*#+}} xmm1 = xmm2[8],xmm3[8],xmm2[9],xmm3[9],xmm2[10],xmm3[10],xmm2[11],xmm3[11],xmm2[12],xmm3[12],xmm2[13],xmm3[13],xmm2[14],xmm3[14],xmm2[15],xmm3[15]5906; AVX2-NEXT:    vpmovzxwq {{.*#+}} ymm13 = xmm1[0],zero,zero,zero,xmm1[1],zero,zero,zero,xmm1[2],zero,zero,zero,xmm1[3],zero,zero,zero5907; AVX2-NEXT:    vpblendw {{.*#+}} ymm0 = ymm13[0],ymm0[1],ymm13[2,3,4],ymm0[5],ymm13[6,7,8],ymm0[9],ymm13[10,11,12],ymm0[13],ymm13[14,15]5908; AVX2-NEXT:    vpshufd {{.*#+}} ymm9 = ymm9[0,0,2,1,4,4,6,5]5909; AVX2-NEXT:    vpblendd {{.*#+}} ymm9 = ymm0[0],ymm9[1],ymm0[2],ymm9[3],ymm0[4],ymm9[5],ymm0[6],ymm9[7]5910; AVX2-NEXT:    vpshufhw {{.*#+}} xmm0 = xmm8[0,1,2,3,4,4,6,5]5911; AVX2-NEXT:    vpshufhw {{.*#+}} xmm8 = xmm8[0,1,2,3,4,6,6,7]5912; AVX2-NEXT:    vinserti128 $1, %xmm8, %ymm0, %ymm05913; AVX2-NEXT:    vpshufhw {{.*#+}} xmm8 = xmm11[0,1,2,3,4,5,5,7]5914; AVX2-NEXT:    vpshufhw {{.*#+}} xmm11 = xmm11[0,1,2,3,6,5,7,7]5915; AVX2-NEXT:    vinserti128 $1, %xmm11, %ymm8, %ymm85916; AVX2-NEXT:    vpblendw {{.*#+}} ymm0 = ymm8[0,1,2,3,4],ymm0[5],ymm8[6],ymm0[7],ymm8[8,9,10,11,12],ymm0[13],ymm8[14],ymm0[15]5917; AVX2-NEXT:    vpshufhw {{.*#+}} xmm8 = xmm15[0,1,2,3,4,4,6,5]5918; AVX2-NEXT:    vpshufhw {{.*#+}} xmm11 = xmm15[0,1,2,3,4,6,6,7]5919; AVX2-NEXT:    vinserti128 $1, %xmm11, %ymm8, %ymm85920; AVX2-NEXT:    vpshufd {{.*#+}} ymm8 = ymm8[2,1,3,3,6,5,7,7]5921; AVX2-NEXT:    vpshufd {{.*#+}} xmm1 = xmm1[2,3,2,3]5922; AVX2-NEXT:    vpmovzxwq {{.*#+}} ymm1 = xmm1[0],zero,zero,zero,xmm1[1],zero,zero,zero,xmm1[2],zero,zero,zero,xmm1[3],zero,zero,zero5923; AVX2-NEXT:    vpblendw {{.*#+}} ymm1 = ymm1[0],ymm8[1],ymm1[2,3,4],ymm8[5],ymm1[6,7,8],ymm8[9],ymm1[10,11,12],ymm8[13],ymm1[14,15]5924; AVX2-NEXT:    vpshufd {{.*#+}} ymm0 = ymm0[0,2,2,3,4,6,6,7]5925; AVX2-NEXT:    vpblendd {{.*#+}} ymm8 = ymm1[0],ymm0[1],ymm1[2],ymm0[3],ymm1[4],ymm0[5],ymm1[6],ymm0[7]5926; AVX2-NEXT:    vpunpcklbw {{.*#+}} xmm1 = 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]5927; AVX2-NEXT:    vpshuflw {{.*#+}} xmm0 = xmm1[0,0,2,1,4,5,6,7]5928; AVX2-NEXT:    vpshuflw {{.*#+}} xmm10 = xmm1[0,2,2,3,4,5,6,7]5929; AVX2-NEXT:    vinserti128 $1, %xmm10, %ymm0, %ymm05930; AVX2-NEXT:    vpunpcklbw {{.*#+}} xmm4 = xmm4[0],xmm5[0],xmm4[1],xmm5[1],xmm4[2],xmm5[2],xmm4[3],xmm5[3],xmm4[4],xmm5[4],xmm4[5],xmm5[5],xmm4[6],xmm5[6],xmm4[7],xmm5[7]5931; AVX2-NEXT:    vpshuflw {{.*#+}} xmm5 = xmm4[0,1,1,3,4,5,6,7]5932; AVX2-NEXT:    vpshuflw {{.*#+}} xmm10 = xmm4[2,1,3,3,4,5,6,7]5933; AVX2-NEXT:    vinserti128 $1, %xmm10, %ymm5, %ymm55934; AVX2-NEXT:    vpblendw {{.*#+}} ymm0 = ymm5[0],ymm0[1],ymm5[2],ymm0[3],ymm5[4,5,6,7,8],ymm0[9],ymm5[10],ymm0[11],ymm5[12,13,14,15]5935; AVX2-NEXT:    vpunpcklbw {{.*#+}} xmm2 = xmm2[0],xmm3[0],xmm2[1],xmm3[1],xmm2[2],xmm3[2],xmm2[3],xmm3[3],xmm2[4],xmm3[4],xmm2[5],xmm3[5],xmm2[6],xmm3[6],xmm2[7],xmm3[7]5936; AVX2-NEXT:    vpunpcklbw {{.*#+}} xmm3 = 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]5937; AVX2-NEXT:    vpshufb %xmm14, %xmm3, %xmm55938; AVX2-NEXT:    vpmovzxdq {{.*#+}} ymm5 = xmm5[0],zero,xmm5[1],zero,xmm5[2],zero,xmm5[3],zero5939; AVX2-NEXT:    vpmovzxwq {{.*#+}} ymm6 = xmm2[0],zero,zero,zero,xmm2[1],zero,zero,zero,xmm2[2],zero,zero,zero,xmm2[3],zero,zero,zero5940; AVX2-NEXT:    vpblendw {{.*#+}} ymm5 = ymm6[0],ymm5[1],ymm6[2,3,4],ymm5[5],ymm6[6,7,8],ymm5[9],ymm6[10,11,12],ymm5[13],ymm6[14,15]5941; AVX2-NEXT:    vpshufd {{.*#+}} ymm0 = ymm0[0,0,2,1,4,4,6,5]5942; AVX2-NEXT:    vpblendd {{.*#+}} ymm0 = ymm5[0],ymm0[1],ymm5[2],ymm0[3],ymm5[4],ymm0[5],ymm5[6],ymm0[7]5943; AVX2-NEXT:    vpshufhw {{.*#+}} xmm5 = xmm1[0,1,2,3,4,4,6,5]5944; AVX2-NEXT:    vpshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,6,6,7]5945; AVX2-NEXT:    vinserti128 $1, %xmm1, %ymm5, %ymm15946; AVX2-NEXT:    vpshufhw {{.*#+}} xmm5 = xmm4[0,1,2,3,4,5,5,7]5947; AVX2-NEXT:    vpshufhw {{.*#+}} xmm4 = xmm4[0,1,2,3,6,5,7,7]5948; AVX2-NEXT:    vinserti128 $1, %xmm4, %ymm5, %ymm45949; AVX2-NEXT:    vpblendw {{.*#+}} ymm1 = ymm4[0,1,2,3,4],ymm1[5],ymm4[6],ymm1[7],ymm4[8,9,10,11,12],ymm1[13],ymm4[14],ymm1[15]5950; AVX2-NEXT:    vpshufhw {{.*#+}} xmm4 = xmm3[0,1,2,3,4,4,6,5]5951; AVX2-NEXT:    vpshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,4,6,6,7]5952; AVX2-NEXT:    vinserti128 $1, %xmm3, %ymm4, %ymm35953; AVX2-NEXT:    vpshufd {{.*#+}} ymm3 = ymm3[2,1,3,3,6,5,7,7]5954; AVX2-NEXT:    vpshufd {{.*#+}} xmm2 = xmm2[2,3,2,3]5955; AVX2-NEXT:    vpmovzxwq {{.*#+}} ymm2 = xmm2[0],zero,zero,zero,xmm2[1],zero,zero,zero,xmm2[2],zero,zero,zero,xmm2[3],zero,zero,zero5956; AVX2-NEXT:    vpblendw {{.*#+}} ymm2 = ymm2[0],ymm3[1],ymm2[2,3,4],ymm3[5],ymm2[6,7,8],ymm3[9],ymm2[10,11,12],ymm3[13],ymm2[14,15]5957; AVX2-NEXT:    vpshufd {{.*#+}} ymm1 = ymm1[0,2,2,3,4,6,6,7]5958; AVX2-NEXT:    vpblendd {{.*#+}} ymm1 = ymm2[0],ymm1[1],ymm2[2],ymm1[3],ymm2[4],ymm1[5],ymm2[6],ymm1[7]5959; AVX2-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload5960; AVX2-NEXT:    vpunpckhbw {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm2 # 16-byte Folded Reload5961; 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]5962; AVX2-NEXT:    vpshuflw {{.*#+}} xmm3 = xmm2[0,0,2,1,4,5,6,7]5963; AVX2-NEXT:    vpshuflw {{.*#+}} xmm4 = xmm2[0,2,2,3,4,5,6,7]5964; AVX2-NEXT:    vinserti128 $1, %xmm4, %ymm3, %ymm35965; AVX2-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload5966; AVX2-NEXT:    vpunpckhbw {{[-0-9]+}}(%r{{[sb]}}p), %xmm4, %xmm4 # 16-byte Folded Reload5967; AVX2-NEXT:    # xmm4 = xmm4[8],mem[8],xmm4[9],mem[9],xmm4[10],mem[10],xmm4[11],mem[11],xmm4[12],mem[12],xmm4[13],mem[13],xmm4[14],mem[14],xmm4[15],mem[15]5968; AVX2-NEXT:    vpshuflw {{.*#+}} xmm5 = xmm4[0,1,1,3,4,5,6,7]5969; AVX2-NEXT:    vpshuflw {{.*#+}} xmm6 = xmm4[2,1,3,3,4,5,6,7]5970; AVX2-NEXT:    vinserti128 $1, %xmm6, %ymm5, %ymm55971; AVX2-NEXT:    vpblendw {{.*#+}} ymm3 = ymm5[0],ymm3[1],ymm5[2],ymm3[3],ymm5[4,5,6,7,8],ymm3[9],ymm5[10],ymm3[11],ymm5[12,13,14,15]5972; AVX2-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload5973; AVX2-NEXT:    vpunpckhbw {{[-0-9]+}}(%r{{[sb]}}p), %xmm5, %xmm5 # 16-byte Folded Reload5974; AVX2-NEXT:    # xmm5 = 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]5975; AVX2-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload5976; AVX2-NEXT:    vpunpckhbw {{[-0-9]+}}(%r{{[sb]}}p), %xmm6, %xmm6 # 16-byte Folded Reload5977; AVX2-NEXT:    # xmm6 = 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]5978; AVX2-NEXT:    vpshufb %xmm14, %xmm6, %xmm75979; AVX2-NEXT:    vpmovzxdq {{.*#+}} ymm7 = xmm7[0],zero,xmm7[1],zero,xmm7[2],zero,xmm7[3],zero5980; AVX2-NEXT:    vpmovzxwq {{.*#+}} ymm10 = xmm5[0],zero,zero,zero,xmm5[1],zero,zero,zero,xmm5[2],zero,zero,zero,xmm5[3],zero,zero,zero5981; AVX2-NEXT:    vpblendw {{.*#+}} ymm7 = ymm10[0],ymm7[1],ymm10[2,3,4],ymm7[5],ymm10[6,7,8],ymm7[9],ymm10[10,11,12],ymm7[13],ymm10[14,15]5982; AVX2-NEXT:    vpshufd {{.*#+}} ymm3 = ymm3[0,0,2,1,4,4,6,5]5983; AVX2-NEXT:    vpblendd {{.*#+}} ymm3 = ymm7[0],ymm3[1],ymm7[2],ymm3[3],ymm7[4],ymm3[5],ymm7[6],ymm3[7]5984; AVX2-NEXT:    vpshufhw {{.*#+}} xmm7 = xmm2[0,1,2,3,4,4,6,5]5985; AVX2-NEXT:    vpshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,6,6,7]5986; AVX2-NEXT:    vinserti128 $1, %xmm2, %ymm7, %ymm25987; AVX2-NEXT:    vpshufhw {{.*#+}} xmm7 = xmm4[0,1,2,3,4,5,5,7]5988; AVX2-NEXT:    vpshufhw {{.*#+}} xmm4 = xmm4[0,1,2,3,6,5,7,7]5989; AVX2-NEXT:    vinserti128 $1, %xmm4, %ymm7, %ymm45990; AVX2-NEXT:    vpblendw {{.*#+}} ymm2 = ymm4[0,1,2,3,4],ymm2[5],ymm4[6],ymm2[7],ymm4[8,9,10,11,12],ymm2[13],ymm4[14],ymm2[15]5991; AVX2-NEXT:    vpshufhw {{.*#+}} xmm4 = xmm6[0,1,2,3,4,4,6,5]5992; AVX2-NEXT:    vpshufhw {{.*#+}} xmm6 = xmm6[0,1,2,3,4,6,6,7]5993; AVX2-NEXT:    vinserti128 $1, %xmm6, %ymm4, %ymm45994; AVX2-NEXT:    vpshufd {{.*#+}} ymm4 = ymm4[2,1,3,3,6,5,7,7]5995; AVX2-NEXT:    vpshufd {{.*#+}} xmm5 = xmm5[2,3,2,3]5996; AVX2-NEXT:    vpmovzxwq {{.*#+}} ymm5 = xmm5[0],zero,zero,zero,xmm5[1],zero,zero,zero,xmm5[2],zero,zero,zero,xmm5[3],zero,zero,zero5997; AVX2-NEXT:    vpblendw {{.*#+}} ymm4 = ymm5[0],ymm4[1],ymm5[2,3,4],ymm4[5],ymm5[6,7,8],ymm4[9],ymm5[10,11,12],ymm4[13],ymm5[14,15]5998; AVX2-NEXT:    vpshufd {{.*#+}} ymm2 = ymm2[0,2,2,3,4,6,6,7]5999; AVX2-NEXT:    vpblendd {{.*#+}} ymm2 = ymm4[0],ymm2[1],ymm4[2],ymm2[3],ymm4[4],ymm2[5],ymm4[6],ymm2[7]6000; AVX2-NEXT:    movq {{[0-9]+}}(%rsp), %rax6001; AVX2-NEXT:    vmovdqa %ymm2, 96(%rax)6002; AVX2-NEXT:    vmovdqa %ymm3, 64(%rax)6003; AVX2-NEXT:    vmovdqa %ymm1, 160(%rax)6004; AVX2-NEXT:    vmovdqa %ymm0, 128(%rax)6005; AVX2-NEXT:    vmovdqa %ymm8, 224(%rax)6006; AVX2-NEXT:    vmovdqa %ymm9, 192(%rax)6007; AVX2-NEXT:    vmovups (%rsp), %ymm0 # 32-byte Reload6008; AVX2-NEXT:    vmovaps %ymm0, 288(%rax)6009; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6010; AVX2-NEXT:    vmovaps %ymm0, 256(%rax)6011; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6012; AVX2-NEXT:    vmovaps %ymm0, 352(%rax)6013; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6014; AVX2-NEXT:    vmovaps %ymm0, 320(%rax)6015; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6016; AVX2-NEXT:    vmovaps %ymm0, 416(%rax)6017; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6018; AVX2-NEXT:    vmovaps %ymm0, 384(%rax)6019; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6020; AVX2-NEXT:    vmovaps %ymm0, 480(%rax)6021; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6022; AVX2-NEXT:    vmovaps %ymm0, 448(%rax)6023; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6024; AVX2-NEXT:    vmovaps %ymm0, (%rax)6025; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6026; AVX2-NEXT:    vmovaps %ymm0, 32(%rax)6027; AVX2-NEXT:    addq $328, %rsp # imm = 0x1486028; AVX2-NEXT:    vzeroupper6029; AVX2-NEXT:    retq6030;6031; AVX2-FP-LABEL: store_i8_stride8_vf64:6032; AVX2-FP:       # %bb.0:6033; AVX2-FP-NEXT:    subq $392, %rsp # imm = 0x1886034; AVX2-FP-NEXT:    movq {{[0-9]+}}(%rsp), %rax6035; AVX2-FP-NEXT:    movq {{[0-9]+}}(%rsp), %r106036; AVX2-FP-NEXT:    vmovdqa (%r10), %xmm16037; AVX2-FP-NEXT:    vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6038; AVX2-FP-NEXT:    vmovdqa (%rax), %xmm06039; AVX2-FP-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6040; 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]6041; AVX2-FP-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm06042; AVX2-FP-NEXT:    vpshufb {{.*#+}} ymm2 = ymm0[0,1,2,3,8,9,8,9,8,9,8,9,12,13,10,11,16,17,18,19,24,25,28,29,24,25,28,29,28,29,30,31]6043; AVX2-FP-NEXT:    vmovdqa (%r9), %xmm36044; AVX2-FP-NEXT:    vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6045; AVX2-FP-NEXT:    vmovdqa (%r8), %xmm16046; AVX2-FP-NEXT:    vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6047; AVX2-FP-NEXT:    vpunpcklbw {{.*#+}} xmm1 = xmm1[0],xmm3[0],xmm1[1],xmm3[1],xmm1[2],xmm3[2],xmm1[3],xmm3[3],xmm1[4],xmm3[4],xmm1[5],xmm3[5],xmm1[6],xmm3[6],xmm1[7],xmm3[7]6048; AVX2-FP-NEXT:    vinserti128 $1, %xmm1, %ymm1, %ymm16049; AVX2-FP-NEXT:    vpshufb {{.*#+}} ymm3 = ymm1[0,1,2,3,8,9,10,11,8,9,10,11,10,11,14,15,16,17,18,19,28,29,26,27,28,29,26,27,30,31,30,31]6050; AVX2-FP-NEXT:    vpblendw {{.*#+}} ymm3 = ymm3[0,1,2],ymm2[3],ymm3[4,5,6],ymm2[7],ymm3[8,9,10],ymm2[11],ymm3[12,13,14],ymm2[15]6051; AVX2-FP-NEXT:    vmovdqa (%rcx), %xmm46052; AVX2-FP-NEXT:    vmovdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6053; AVX2-FP-NEXT:    vmovdqa (%rdx), %xmm26054; AVX2-FP-NEXT:    vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6055; AVX2-FP-NEXT:    vpunpcklbw {{.*#+}} xmm2 = xmm2[0],xmm4[0],xmm2[1],xmm4[1],xmm2[2],xmm4[2],xmm2[3],xmm4[3],xmm2[4],xmm4[4],xmm2[5],xmm4[5],xmm2[6],xmm4[6],xmm2[7],xmm4[7]6056; AVX2-FP-NEXT:    vinserti128 $1, %xmm2, %ymm2, %ymm26057; AVX2-FP-NEXT:    vmovdqa (%rsi), %xmm56058; AVX2-FP-NEXT:    vmovdqa %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6059; AVX2-FP-NEXT:    vmovdqa (%rdi), %xmm46060; AVX2-FP-NEXT:    vmovdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6061; AVX2-FP-NEXT:    vpunpcklbw {{.*#+}} xmm4 = xmm4[0],xmm5[0],xmm4[1],xmm5[1],xmm4[2],xmm5[2],xmm4[3],xmm5[3],xmm4[4],xmm5[4],xmm4[5],xmm5[5],xmm4[6],xmm5[6],xmm4[7],xmm5[7]6062; AVX2-FP-NEXT:    vinserti128 $1, %xmm4, %ymm4, %ymm56063; AVX2-FP-NEXT:    vpshufb {{.*#+}} ymm5 = ymm5[8,9,u,u,u,u,u,u,10,11,u,u,u,u,u,u,28,29,u,u,u,u,u,u,30,31,u,u,u,u,u,u]6064; AVX2-FP-NEXT:    vpshufb {{.*#+}} ymm6 = ymm2[8,9,8,9,4,5,6,7,12,13,10,11,12,13,10,11,24,25,28,29,20,21,22,23,28,29,30,31,28,29,30,31]6065; AVX2-FP-NEXT:    vpblendw {{.*#+}} ymm5 = ymm5[0],ymm6[1],ymm5[2,3,4],ymm6[5],ymm5[6,7,8],ymm6[9],ymm5[10,11,12],ymm6[13],ymm5[14,15]6066; AVX2-FP-NEXT:    vpblendd {{.*#+}} ymm3 = ymm5[0],ymm3[1],ymm5[2],ymm3[3],ymm5[4],ymm3[5],ymm5[6],ymm3[7]6067; AVX2-FP-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6068; AVX2-FP-NEXT:    vmovdqa {{.*#+}} ymm9 = [0,1,0,1,0,1,0,1,8,9,10,11,4,5,2,3,0,1,4,5,0,1,4,5,8,9,10,11,4,5,6,7]6069; AVX2-FP-NEXT:    vpshufb %ymm9, %ymm0, %ymm06070; AVX2-FP-NEXT:    vmovdqa {{.*#+}} ymm10 = [0,1,2,3,0,1,2,3,8,9,10,11,2,3,6,7,4,5,2,3,4,5,2,3,8,9,10,11,6,7,6,7]6071; AVX2-FP-NEXT:    vpshufb %ymm10, %ymm1, %ymm16072; AVX2-FP-NEXT:    vpblendw {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3],ymm1[4,5,6],ymm0[7],ymm1[8,9,10],ymm0[11],ymm1[12,13,14],ymm0[15]6073; AVX2-FP-NEXT:    vpmovsxwq {{.*#+}} xmm13 = [1284,1798]6074; AVX2-FP-NEXT:    vpshufb %xmm13, %xmm4, %xmm16075; AVX2-FP-NEXT:    vpmovzxwq {{.*#+}} xmm3 = xmm4[0],zero,zero,zero,xmm4[1],zero,zero,zero6076; AVX2-FP-NEXT:    vinserti128 $1, %xmm1, %ymm3, %ymm16077; AVX2-FP-NEXT:    vmovdqa {{.*#+}} ymm12 = [0,1,0,1,4,5,2,3,4,5,2,3,12,13,14,15,0,1,4,5,4,5,6,7,4,5,6,7,12,13,14,15]6078; AVX2-FP-NEXT:    vpshufb %ymm12, %ymm2, %ymm26079; AVX2-FP-NEXT:    vpblendw {{.*#+}} ymm1 = ymm1[0],ymm2[1],ymm1[2,3,4],ymm2[5],ymm1[6,7,8],ymm2[9],ymm1[10,11,12],ymm2[13],ymm1[14,15]6080; AVX2-FP-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0],ymm0[1],ymm1[2],ymm0[3],ymm1[4],ymm0[5],ymm1[6],ymm0[7]6081; AVX2-FP-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6082; AVX2-FP-NEXT:    vmovdqa 48(%r10), %xmm86083; AVX2-FP-NEXT:    vmovdqa 48(%rax), %xmm36084; AVX2-FP-NEXT:    vpunpckhbw {{.*#+}} xmm0 = xmm3[8],xmm8[8],xmm3[9],xmm8[9],xmm3[10],xmm8[10],xmm3[11],xmm8[11],xmm3[12],xmm8[12],xmm3[13],xmm8[13],xmm3[14],xmm8[14],xmm3[15],xmm8[15]6085; AVX2-FP-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm66086; AVX2-FP-NEXT:    vmovdqa 48(%r9), %xmm46087; AVX2-FP-NEXT:    vmovdqa 48(%r8), %xmm56088; AVX2-FP-NEXT:    vpunpckhbw {{.*#+}} xmm0 = 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]6089; AVX2-FP-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm76090; AVX2-FP-NEXT:    vpshufb %ymm9, %ymm6, %ymm06091; AVX2-FP-NEXT:    vpshufb %ymm10, %ymm7, %ymm26092; AVX2-FP-NEXT:    vpblendw {{.*#+}} ymm11 = ymm2[0,1,2],ymm0[3],ymm2[4,5,6],ymm0[7],ymm2[8,9,10],ymm0[11],ymm2[12,13,14],ymm0[15]6093; AVX2-FP-NEXT:    vmovdqa 48(%rsi), %xmm106094; AVX2-FP-NEXT:    vmovdqa 48(%rdi), %xmm96095; AVX2-FP-NEXT:    vpunpckhbw {{.*#+}} xmm0 = 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]6096; AVX2-FP-NEXT:    vpshufb %xmm13, %xmm0, %xmm16097; AVX2-FP-NEXT:    vpmovzxwq {{.*#+}} xmm13 = xmm0[0],zero,zero,zero,xmm0[1],zero,zero,zero6098; AVX2-FP-NEXT:    vinserti128 $1, %xmm1, %ymm13, %ymm16099; AVX2-FP-NEXT:    vmovdqa 48(%rcx), %xmm136100; AVX2-FP-NEXT:    vmovdqa 48(%rdx), %xmm26101; AVX2-FP-NEXT:    vpunpckhbw {{.*#+}} xmm15 = xmm2[8],xmm13[8],xmm2[9],xmm13[9],xmm2[10],xmm13[10],xmm2[11],xmm13[11],xmm2[12],xmm13[12],xmm2[13],xmm13[13],xmm2[14],xmm13[14],xmm2[15],xmm13[15]6102; AVX2-FP-NEXT:    vinserti128 $1, %xmm15, %ymm15, %ymm156103; AVX2-FP-NEXT:    vpshufb %ymm12, %ymm15, %ymm146104; AVX2-FP-NEXT:    vpblendw {{.*#+}} ymm1 = ymm1[0],ymm14[1],ymm1[2,3,4],ymm14[5],ymm1[6,7,8],ymm14[9],ymm1[10,11,12],ymm14[13],ymm1[14,15]6105; AVX2-FP-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0],ymm11[1],ymm1[2],ymm11[3],ymm1[4],ymm11[5],ymm1[6],ymm11[7]6106; AVX2-FP-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6107; AVX2-FP-NEXT:    vmovdqa {{.*#+}} ymm12 = [0,1,2,3,8,9,8,9,8,9,8,9,12,13,10,11,0,1,2,3,8,9,12,13,8,9,12,13,12,13,14,15]6108; AVX2-FP-NEXT:    vpshufb %ymm12, %ymm6, %ymm16109; AVX2-FP-NEXT:    vmovdqa {{.*#+}} ymm11 = [0,1,2,3,8,9,10,11,8,9,10,11,10,11,14,15,0,1,2,3,12,13,10,11,12,13,10,11,14,15,14,15]6110; AVX2-FP-NEXT:    vpshufb %ymm11, %ymm7, %ymm66111; AVX2-FP-NEXT:    vpblendw {{.*#+}} ymm1 = ymm6[0,1,2],ymm1[3],ymm6[4,5,6],ymm1[7],ymm6[8,9,10],ymm1[11],ymm6[12,13,14],ymm1[15]6112; AVX2-FP-NEXT:    vmovdqa {{.*#+}} ymm7 = [8,9,8,9,4,5,6,7,12,13,10,11,12,13,10,11,8,9,12,13,4,5,6,7,12,13,14,15,12,13,14,15]6113; AVX2-FP-NEXT:    vpshufb %ymm7, %ymm15, %ymm66114; AVX2-FP-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm06115; AVX2-FP-NEXT:    vpmovsxwq {{.*#+}} ymm14 = [2312,2826,3340,3854]6116; AVX2-FP-NEXT:    vpshufb %ymm14, %ymm0, %ymm06117; AVX2-FP-NEXT:    vpblendw {{.*#+}} ymm0 = ymm0[0],ymm6[1],ymm0[2,3,4],ymm6[5],ymm0[6,7,8],ymm6[9],ymm0[10,11,12],ymm6[13],ymm0[14,15]6118; AVX2-FP-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2],ymm1[3],ymm0[4],ymm1[5],ymm0[6],ymm1[7]6119; AVX2-FP-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6120; AVX2-FP-NEXT:    vpunpcklbw {{.*#+}} xmm0 = xmm3[0],xmm8[0],xmm3[1],xmm8[1],xmm3[2],xmm8[2],xmm3[3],xmm8[3],xmm3[4],xmm8[4],xmm3[5],xmm8[5],xmm3[6],xmm8[6],xmm3[7],xmm8[7]6121; AVX2-FP-NEXT:    vpunpcklbw {{.*#+}} xmm1 = xmm5[0],xmm4[0],xmm5[1],xmm4[1],xmm5[2],xmm4[2],xmm5[3],xmm4[3],xmm5[4],xmm4[4],xmm5[5],xmm4[5],xmm5[6],xmm4[6],xmm5[7],xmm4[7]6122; AVX2-FP-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm06123; AVX2-FP-NEXT:    vinserti128 $1, %xmm1, %ymm1, %ymm16124; AVX2-FP-NEXT:    vmovdqa {{.*#+}} ymm15 = [0,1,0,1,0,1,0,1,8,9,10,11,4,5,2,3,0,1,4,5,0,1,4,5,8,9,10,11,4,5,6,7]6125; AVX2-FP-NEXT:    vpshufb %ymm15, %ymm0, %ymm36126; AVX2-FP-NEXT:    vmovdqa {{.*#+}} ymm8 = [0,1,2,3,0,1,2,3,8,9,10,11,2,3,6,7,4,5,2,3,4,5,2,3,8,9,10,11,6,7,6,7]6127; AVX2-FP-NEXT:    vpshufb %ymm8, %ymm1, %ymm46128; AVX2-FP-NEXT:    vpblendw {{.*#+}} ymm3 = ymm4[0,1,2],ymm3[3],ymm4[4,5,6],ymm3[7],ymm4[8,9,10],ymm3[11],ymm4[12,13,14],ymm3[15]6129; AVX2-FP-NEXT:    vpunpcklbw {{.*#+}} xmm2 = xmm2[0],xmm13[0],xmm2[1],xmm13[1],xmm2[2],xmm13[2],xmm2[3],xmm13[3],xmm2[4],xmm13[4],xmm2[5],xmm13[5],xmm2[6],xmm13[6],xmm2[7],xmm13[7]6130; AVX2-FP-NEXT:    vpunpcklbw {{.*#+}} xmm4 = 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]6131; AVX2-FP-NEXT:    vpmovsxwq {{.*#+}} xmm10 = [1284,1798]6132; AVX2-FP-NEXT:    vpshufb %xmm10, %xmm4, %xmm56133; AVX2-FP-NEXT:    vpmovzxwq {{.*#+}} xmm6 = xmm4[0],zero,zero,zero,xmm4[1],zero,zero,zero6134; AVX2-FP-NEXT:    vinserti128 $1, %xmm5, %ymm6, %ymm56135; AVX2-FP-NEXT:    vinserti128 $1, %xmm2, %ymm2, %ymm26136; AVX2-FP-NEXT:    vpshufb {{.*#+}} ymm6 = ymm2[0,1,0,1,4,5,2,3,4,5,2,3,12,13,14,15,16,17,20,21,20,21,22,23,20,21,22,23,28,29,30,31]6137; AVX2-FP-NEXT:    vpblendw {{.*#+}} ymm5 = ymm5[0],ymm6[1],ymm5[2,3,4],ymm6[5],ymm5[6,7,8],ymm6[9],ymm5[10,11,12],ymm6[13],ymm5[14,15]6138; AVX2-FP-NEXT:    vpblendd {{.*#+}} ymm3 = ymm5[0],ymm3[1],ymm5[2],ymm3[3],ymm5[4],ymm3[5],ymm5[6],ymm3[7]6139; AVX2-FP-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6140; AVX2-FP-NEXT:    vpshufb %ymm12, %ymm0, %ymm06141; AVX2-FP-NEXT:    vpshufb %ymm11, %ymm1, %ymm16142; AVX2-FP-NEXT:    vpblendw {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3],ymm1[4,5,6],ymm0[7],ymm1[8,9,10],ymm0[11],ymm1[12,13,14],ymm0[15]6143; AVX2-FP-NEXT:    vpshufb %ymm7, %ymm2, %ymm16144; AVX2-FP-NEXT:    vinserti128 $1, %xmm4, %ymm4, %ymm26145; AVX2-FP-NEXT:    vpshufb %ymm14, %ymm2, %ymm26146; AVX2-FP-NEXT:    vpblendw {{.*#+}} ymm1 = ymm2[0],ymm1[1],ymm2[2,3,4],ymm1[5],ymm2[6,7,8],ymm1[9],ymm2[10,11,12],ymm1[13],ymm2[14,15]6147; AVX2-FP-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0],ymm0[1],ymm1[2],ymm0[3],ymm1[4],ymm0[5],ymm1[6],ymm0[7]6148; AVX2-FP-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6149; AVX2-FP-NEXT:    vmovdqa 32(%r10), %xmm16150; AVX2-FP-NEXT:    vmovdqa 32(%rax), %xmm36151; AVX2-FP-NEXT:    vpunpckhbw {{.*#+}} xmm0 = 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]6152; AVX2-FP-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm66153; AVX2-FP-NEXT:    vmovdqa 32(%r9), %xmm46154; AVX2-FP-NEXT:    vmovdqa 32(%r8), %xmm56155; AVX2-FP-NEXT:    vpunpckhbw {{.*#+}} xmm0 = 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]6156; AVX2-FP-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm76157; AVX2-FP-NEXT:    vpshufb %ymm15, %ymm6, %ymm06158; AVX2-FP-NEXT:    vpshufb %ymm8, %ymm7, %ymm26159; AVX2-FP-NEXT:    vpblendw {{.*#+}} ymm8 = ymm2[0,1,2],ymm0[3],ymm2[4,5,6],ymm0[7],ymm2[8,9,10],ymm0[11],ymm2[12,13,14],ymm0[15]6160; AVX2-FP-NEXT:    vmovdqa 32(%rsi), %xmm06161; AVX2-FP-NEXT:    vmovdqa 32(%rdi), %xmm26162; AVX2-FP-NEXT:    vpunpckhbw {{.*#+}} xmm9 = 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]6163; AVX2-FP-NEXT:    vpshufb %xmm10, %xmm9, %xmm106164; AVX2-FP-NEXT:    vpmovzxwq {{.*#+}} xmm11 = xmm9[0],zero,zero,zero,xmm9[1],zero,zero,zero6165; AVX2-FP-NEXT:    vinserti128 $1, %xmm10, %ymm11, %ymm106166; AVX2-FP-NEXT:    vmovdqa 32(%rcx), %xmm116167; AVX2-FP-NEXT:    vmovdqa 32(%rdx), %xmm136168; AVX2-FP-NEXT:    vpunpckhbw {{.*#+}} xmm14 = 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]6169; AVX2-FP-NEXT:    vinserti128 $1, %xmm14, %ymm14, %ymm146170; AVX2-FP-NEXT:    vpshufb {{.*#+}} ymm15 = ymm14[0,1,0,1,4,5,2,3,4,5,2,3,12,13,14,15,16,17,20,21,20,21,22,23,20,21,22,23,28,29,30,31]6171; AVX2-FP-NEXT:    vpblendw {{.*#+}} ymm10 = ymm10[0],ymm15[1],ymm10[2,3,4],ymm15[5],ymm10[6,7,8],ymm15[9],ymm10[10,11,12],ymm15[13],ymm10[14,15]6172; AVX2-FP-NEXT:    vpblendd {{.*#+}} ymm8 = ymm10[0],ymm8[1],ymm10[2],ymm8[3],ymm10[4],ymm8[5],ymm10[6],ymm8[7]6173; AVX2-FP-NEXT:    vmovdqu %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6174; AVX2-FP-NEXT:    vmovdqa %ymm12, %ymm106175; AVX2-FP-NEXT:    vpshufb %ymm12, %ymm6, %ymm66176; AVX2-FP-NEXT:    vmovdqa {{.*#+}} ymm15 = [0,1,2,3,8,9,10,11,8,9,10,11,10,11,14,15,0,1,2,3,12,13,10,11,12,13,10,11,14,15,14,15]6177; AVX2-FP-NEXT:    vpshufb %ymm15, %ymm7, %ymm76178; AVX2-FP-NEXT:    vpblendw {{.*#+}} ymm6 = ymm7[0,1,2],ymm6[3],ymm7[4,5,6],ymm6[7],ymm7[8,9,10],ymm6[11],ymm7[12,13,14],ymm6[15]6179; AVX2-FP-NEXT:    vmovdqa {{.*#+}} ymm12 = [8,9,8,9,4,5,6,7,12,13,10,11,12,13,10,11,8,9,12,13,4,5,6,7,12,13,14,15,12,13,14,15]6180; AVX2-FP-NEXT:    vpshufb %ymm12, %ymm14, %ymm76181; AVX2-FP-NEXT:    vinserti128 $1, %xmm9, %ymm9, %ymm86182; AVX2-FP-NEXT:    vpmovsxwq {{.*#+}} ymm14 = [2312,2826,3340,3854]6183; AVX2-FP-NEXT:    vpshufb %ymm14, %ymm8, %ymm86184; AVX2-FP-NEXT:    vpblendw {{.*#+}} ymm7 = ymm8[0],ymm7[1],ymm8[2,3,4],ymm7[5],ymm8[6,7,8],ymm7[9],ymm8[10,11,12],ymm7[13],ymm8[14,15]6185; AVX2-FP-NEXT:    vpblendd {{.*#+}} ymm6 = ymm7[0],ymm6[1],ymm7[2],ymm6[3],ymm7[4],ymm6[5],ymm7[6],ymm6[7]6186; AVX2-FP-NEXT:    vmovdqu %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6187; AVX2-FP-NEXT:    vpunpcklbw {{.*#+}} xmm1 = 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]6188; AVX2-FP-NEXT:    vpunpcklbw {{.*#+}} xmm3 = xmm5[0],xmm4[0],xmm5[1],xmm4[1],xmm5[2],xmm4[2],xmm5[3],xmm4[3],xmm5[4],xmm4[4],xmm5[5],xmm4[5],xmm5[6],xmm4[6],xmm5[7],xmm4[7]6189; AVX2-FP-NEXT:    vinserti128 $1, %xmm1, %ymm1, %ymm16190; AVX2-FP-NEXT:    vinserti128 $1, %xmm3, %ymm3, %ymm36191; AVX2-FP-NEXT:    vmovdqa {{.*#+}} ymm9 = [0,1,0,1,0,1,0,1,8,9,10,11,4,5,2,3,0,1,4,5,0,1,4,5,8,9,10,11,4,5,6,7]6192; AVX2-FP-NEXT:    vpshufb %ymm9, %ymm1, %ymm46193; AVX2-FP-NEXT:    vmovdqa {{.*#+}} ymm7 = [0,1,2,3,0,1,2,3,8,9,10,11,2,3,6,7,4,5,2,3,4,5,2,3,8,9,10,11,6,7,6,7]6194; AVX2-FP-NEXT:    vpshufb %ymm7, %ymm3, %ymm56195; AVX2-FP-NEXT:    vpblendw {{.*#+}} ymm4 = ymm5[0,1,2],ymm4[3],ymm5[4,5,6],ymm4[7],ymm5[8,9,10],ymm4[11],ymm5[12,13,14],ymm4[15]6196; AVX2-FP-NEXT:    vpunpcklbw {{.*#+}} xmm5 = 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]6197; AVX2-FP-NEXT:    vpunpcklbw {{.*#+}} xmm0 = 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]6198; AVX2-FP-NEXT:    vpmovsxwq {{.*#+}} xmm11 = [1284,1798]6199; AVX2-FP-NEXT:    vpshufb %xmm11, %xmm0, %xmm26200; AVX2-FP-NEXT:    vpmovzxwq {{.*#+}} xmm6 = xmm0[0],zero,zero,zero,xmm0[1],zero,zero,zero6201; AVX2-FP-NEXT:    vinserti128 $1, %xmm2, %ymm6, %ymm26202; AVX2-FP-NEXT:    vinserti128 $1, %xmm5, %ymm5, %ymm56203; AVX2-FP-NEXT:    vmovdqa {{.*#+}} ymm6 = [0,1,0,1,4,5,2,3,4,5,2,3,12,13,14,15,0,1,4,5,4,5,6,7,4,5,6,7,12,13,14,15]6204; AVX2-FP-NEXT:    vpshufb %ymm6, %ymm5, %ymm66205; AVX2-FP-NEXT:    vpblendw {{.*#+}} ymm2 = ymm2[0],ymm6[1],ymm2[2,3,4],ymm6[5],ymm2[6,7,8],ymm6[9],ymm2[10,11,12],ymm6[13],ymm2[14,15]6206; AVX2-FP-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0],ymm4[1],ymm2[2],ymm4[3],ymm2[4],ymm4[5],ymm2[6],ymm4[7]6207; AVX2-FP-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6208; AVX2-FP-NEXT:    vpshufb %ymm10, %ymm1, %ymm16209; AVX2-FP-NEXT:    vpshufb %ymm15, %ymm3, %ymm26210; AVX2-FP-NEXT:    vpblendw {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3],ymm2[4,5,6],ymm1[7],ymm2[8,9,10],ymm1[11],ymm2[12,13,14],ymm1[15]6211; AVX2-FP-NEXT:    vpshufb %ymm12, %ymm5, %ymm26212; AVX2-FP-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm06213; AVX2-FP-NEXT:    vpshufb %ymm14, %ymm0, %ymm06214; AVX2-FP-NEXT:    vpblendw {{.*#+}} ymm0 = ymm0[0],ymm2[1],ymm0[2,3,4],ymm2[5],ymm0[6,7,8],ymm2[9],ymm0[10,11,12],ymm2[13],ymm0[14,15]6215; AVX2-FP-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2],ymm1[3],ymm0[4],ymm1[5],ymm0[6],ymm1[7]6216; AVX2-FP-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6217; AVX2-FP-NEXT:    vmovdqa 16(%r10), %xmm46218; AVX2-FP-NEXT:    vmovdqa 16(%rax), %xmm26219; AVX2-FP-NEXT:    vpunpckhbw {{.*#+}} xmm0 = xmm2[8],xmm4[8],xmm2[9],xmm4[9],xmm2[10],xmm4[10],xmm2[11],xmm4[11],xmm2[12],xmm4[12],xmm2[13],xmm4[13],xmm2[14],xmm4[14],xmm2[15],xmm4[15]6220; AVX2-FP-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm66221; AVX2-FP-NEXT:    vmovdqa 16(%r9), %xmm16222; AVX2-FP-NEXT:    vmovdqa 16(%r8), %xmm06223; AVX2-FP-NEXT:    vpunpckhbw {{.*#+}} xmm3 = xmm0[8],xmm1[8],xmm0[9],xmm1[9],xmm0[10],xmm1[10],xmm0[11],xmm1[11],xmm0[12],xmm1[12],xmm0[13],xmm1[13],xmm0[14],xmm1[14],xmm0[15],xmm1[15]6224; AVX2-FP-NEXT:    vinserti128 $1, %xmm3, %ymm3, %ymm86225; AVX2-FP-NEXT:    vpshufb %ymm9, %ymm6, %ymm36226; AVX2-FP-NEXT:    vpshufb %ymm7, %ymm8, %ymm56227; AVX2-FP-NEXT:    vpblendw {{.*#+}} ymm7 = ymm5[0,1,2],ymm3[3],ymm5[4,5,6],ymm3[7],ymm5[8,9,10],ymm3[11],ymm5[12,13,14],ymm3[15]6228; AVX2-FP-NEXT:    vmovdqa 16(%rsi), %xmm56229; AVX2-FP-NEXT:    vmovdqa 16(%rdi), %xmm36230; AVX2-FP-NEXT:    vpunpckhbw {{.*#+}} xmm9 = 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]6231; AVX2-FP-NEXT:    vpshufb %xmm11, %xmm9, %xmm106232; AVX2-FP-NEXT:    vpmovzxwq {{.*#+}} xmm13 = xmm9[0],zero,zero,zero,xmm9[1],zero,zero,zero6233; AVX2-FP-NEXT:    vinserti128 $1, %xmm10, %ymm13, %ymm106234; AVX2-FP-NEXT:    vmovdqa 16(%rcx), %xmm136235; AVX2-FP-NEXT:    vmovdqa 16(%rdx), %xmm146236; AVX2-FP-NEXT:    vpunpckhbw {{.*#+}} xmm15 = 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]6237; AVX2-FP-NEXT:    vinserti128 $1, %xmm15, %ymm15, %ymm156238; AVX2-FP-NEXT:    vmovdqa {{.*#+}} ymm11 = [0,1,0,1,4,5,2,3,4,5,2,3,12,13,14,15,0,1,4,5,4,5,6,7,4,5,6,7,12,13,14,15]6239; AVX2-FP-NEXT:    vpshufb %ymm11, %ymm15, %ymm116240; AVX2-FP-NEXT:    vpblendw {{.*#+}} ymm10 = ymm10[0],ymm11[1],ymm10[2,3,4],ymm11[5],ymm10[6,7,8],ymm11[9],ymm10[10,11,12],ymm11[13],ymm10[14,15]6241; AVX2-FP-NEXT:    vpblendd {{.*#+}} ymm7 = ymm10[0],ymm7[1],ymm10[2],ymm7[3],ymm10[4],ymm7[5],ymm10[6],ymm7[7]6242; AVX2-FP-NEXT:    vmovdqu %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6243; AVX2-FP-NEXT:    vmovdqa {{.*#+}} ymm12 = [0,1,2,3,8,9,8,9,8,9,8,9,12,13,10,11,0,1,2,3,8,9,12,13,8,9,12,13,12,13,14,15]6244; AVX2-FP-NEXT:    vpshufb %ymm12, %ymm6, %ymm66245; AVX2-FP-NEXT:    vmovdqa {{.*#+}} ymm7 = [0,1,2,3,8,9,10,11,8,9,10,11,10,11,14,15,0,1,2,3,12,13,10,11,12,13,10,11,14,15,14,15]6246; AVX2-FP-NEXT:    vpshufb %ymm7, %ymm8, %ymm86247; AVX2-FP-NEXT:    vpblendw {{.*#+}} ymm6 = ymm8[0,1,2],ymm6[3],ymm8[4,5,6],ymm6[7],ymm8[8,9,10],ymm6[11],ymm8[12,13,14],ymm6[15]6248; AVX2-FP-NEXT:    vmovdqa {{.*#+}} ymm11 = [8,9,8,9,4,5,6,7,12,13,10,11,12,13,10,11,8,9,12,13,4,5,6,7,12,13,14,15,12,13,14,15]6249; AVX2-FP-NEXT:    vpshufb %ymm11, %ymm15, %ymm86250; AVX2-FP-NEXT:    vinserti128 $1, %xmm9, %ymm9, %ymm96251; AVX2-FP-NEXT:    vpmovsxwq {{.*#+}} ymm10 = [2312,2826,3340,3854]6252; AVX2-FP-NEXT:    vpshufb %ymm10, %ymm9, %ymm96253; AVX2-FP-NEXT:    vpblendw {{.*#+}} ymm8 = ymm9[0],ymm8[1],ymm9[2,3,4],ymm8[5],ymm9[6,7,8],ymm8[9],ymm9[10,11,12],ymm8[13],ymm9[14,15]6254; AVX2-FP-NEXT:    vpblendd {{.*#+}} ymm6 = ymm8[0],ymm6[1],ymm8[2],ymm6[3],ymm8[4],ymm6[5],ymm8[6],ymm6[7]6255; AVX2-FP-NEXT:    vmovdqu %ymm6, (%rsp) # 32-byte Spill6256; AVX2-FP-NEXT:    vpunpcklbw {{.*#+}} xmm2 = xmm2[0],xmm4[0],xmm2[1],xmm4[1],xmm2[2],xmm4[2],xmm2[3],xmm4[3],xmm2[4],xmm4[4],xmm2[5],xmm4[5],xmm2[6],xmm4[6],xmm2[7],xmm4[7]6257; 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]6258; AVX2-FP-NEXT:    vinserti128 $1, %xmm2, %ymm2, %ymm16259; AVX2-FP-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm26260; AVX2-FP-NEXT:    vmovdqa {{.*#+}} ymm6 = [0,1,0,1,0,1,0,1,8,9,10,11,4,5,2,3,0,1,4,5,0,1,4,5,8,9,10,11,4,5,6,7]6261; AVX2-FP-NEXT:    vpshufb %ymm6, %ymm1, %ymm06262; AVX2-FP-NEXT:    vmovdqa {{.*#+}} ymm9 = [0,1,2,3,0,1,2,3,8,9,10,11,2,3,6,7,4,5,2,3,4,5,2,3,8,9,10,11,6,7,6,7]6263; AVX2-FP-NEXT:    vpshufb %ymm9, %ymm2, %ymm46264; AVX2-FP-NEXT:    vpblendw {{.*#+}} ymm0 = ymm4[0,1,2],ymm0[3],ymm4[4,5,6],ymm0[7],ymm4[8,9,10],ymm0[11],ymm4[12,13,14],ymm0[15]6265; AVX2-FP-NEXT:    vpunpcklbw {{.*#+}} xmm4 = 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]6266; AVX2-FP-NEXT:    vpunpcklbw {{.*#+}} xmm3 = 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]6267; AVX2-FP-NEXT:    vpmovsxwq {{.*#+}} xmm14 = [1284,1798]6268; AVX2-FP-NEXT:    vpshufb %xmm14, %xmm3, %xmm56269; AVX2-FP-NEXT:    vpmovzxwq {{.*#+}} xmm8 = xmm3[0],zero,zero,zero,xmm3[1],zero,zero,zero6270; AVX2-FP-NEXT:    vinserti128 $1, %xmm5, %ymm8, %ymm56271; AVX2-FP-NEXT:    vinserti128 $1, %xmm4, %ymm4, %ymm46272; AVX2-FP-NEXT:    vmovdqa {{.*#+}} ymm13 = [0,1,0,1,4,5,2,3,4,5,2,3,12,13,14,15,0,1,4,5,4,5,6,7,4,5,6,7,12,13,14,15]6273; AVX2-FP-NEXT:    vpshufb %ymm13, %ymm4, %ymm86274; AVX2-FP-NEXT:    vpblendw {{.*#+}} ymm5 = ymm5[0],ymm8[1],ymm5[2,3,4],ymm8[5],ymm5[6,7,8],ymm8[9],ymm5[10,11,12],ymm8[13],ymm5[14,15]6275; AVX2-FP-NEXT:    vpblendd {{.*#+}} ymm0 = ymm5[0],ymm0[1],ymm5[2],ymm0[3],ymm5[4],ymm0[5],ymm5[6],ymm0[7]6276; AVX2-FP-NEXT:    vpshufb %ymm12, %ymm1, %ymm16277; AVX2-FP-NEXT:    vmovdqa %ymm7, %ymm156278; AVX2-FP-NEXT:    vpshufb %ymm7, %ymm2, %ymm26279; AVX2-FP-NEXT:    vpblendw {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3],ymm2[4,5,6],ymm1[7],ymm2[8,9,10],ymm1[11],ymm2[12,13,14],ymm1[15]6280; AVX2-FP-NEXT:    vpshufb %ymm11, %ymm4, %ymm26281; AVX2-FP-NEXT:    vmovdqa %ymm11, %ymm76282; AVX2-FP-NEXT:    vinserti128 $1, %xmm3, %ymm3, %ymm36283; AVX2-FP-NEXT:    vpshufb %ymm10, %ymm3, %ymm36284; AVX2-FP-NEXT:    vmovdqa %ymm10, %ymm116285; AVX2-FP-NEXT:    vpblendw {{.*#+}} ymm2 = ymm3[0],ymm2[1],ymm3[2,3,4],ymm2[5],ymm3[6,7,8],ymm2[9],ymm3[10,11,12],ymm2[13],ymm3[14,15]6286; AVX2-FP-NEXT:    vpblendd {{.*#+}} ymm1 = ymm2[0],ymm1[1],ymm2[2],ymm1[3],ymm2[4],ymm1[5],ymm2[6],ymm1[7]6287; AVX2-FP-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload6288; AVX2-FP-NEXT:    vpunpckhbw {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm2 # 16-byte Folded Reload6289; AVX2-FP-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]6290; AVX2-FP-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload6291; AVX2-FP-NEXT:    vpunpckhbw {{[-0-9]+}}(%r{{[sb]}}p), %xmm3, %xmm3 # 16-byte Folded Reload6292; AVX2-FP-NEXT:    # xmm3 = xmm3[8],mem[8],xmm3[9],mem[9],xmm3[10],mem[10],xmm3[11],mem[11],xmm3[12],mem[12],xmm3[13],mem[13],xmm3[14],mem[14],xmm3[15],mem[15]6293; AVX2-FP-NEXT:    vinserti128 $1, %xmm2, %ymm2, %ymm26294; AVX2-FP-NEXT:    vpshufb %ymm6, %ymm2, %ymm46295; AVX2-FP-NEXT:    vinserti128 $1, %xmm3, %ymm3, %ymm36296; AVX2-FP-NEXT:    vpshufb %ymm9, %ymm3, %ymm56297; AVX2-FP-NEXT:    vpblendw {{.*#+}} ymm4 = ymm5[0,1,2],ymm4[3],ymm5[4,5,6],ymm4[7],ymm5[8,9,10],ymm4[11],ymm5[12,13,14],ymm4[15]6298; AVX2-FP-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload6299; AVX2-FP-NEXT:    vpunpckhbw {{[-0-9]+}}(%r{{[sb]}}p), %xmm5, %xmm5 # 16-byte Folded Reload6300; AVX2-FP-NEXT:    # xmm5 = 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]6301; AVX2-FP-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload6302; AVX2-FP-NEXT:    vpunpckhbw {{[-0-9]+}}(%r{{[sb]}}p), %xmm8, %xmm8 # 16-byte Folded Reload6303; AVX2-FP-NEXT:    # xmm8 = xmm8[8],mem[8],xmm8[9],mem[9],xmm8[10],mem[10],xmm8[11],mem[11],xmm8[12],mem[12],xmm8[13],mem[13],xmm8[14],mem[14],xmm8[15],mem[15]6304; AVX2-FP-NEXT:    vpshufb %xmm14, %xmm8, %xmm96305; AVX2-FP-NEXT:    vpmovzxwq {{.*#+}} xmm10 = xmm8[0],zero,zero,zero,xmm8[1],zero,zero,zero6306; AVX2-FP-NEXT:    vinserti128 $1, %xmm9, %ymm10, %ymm96307; AVX2-FP-NEXT:    vinserti128 $1, %xmm5, %ymm5, %ymm56308; AVX2-FP-NEXT:    vpshufb %ymm13, %ymm5, %ymm106309; AVX2-FP-NEXT:    vpblendw {{.*#+}} ymm9 = ymm9[0],ymm10[1],ymm9[2,3,4],ymm10[5],ymm9[6,7,8],ymm10[9],ymm9[10,11,12],ymm10[13],ymm9[14,15]6310; AVX2-FP-NEXT:    vpblendd {{.*#+}} ymm4 = ymm9[0],ymm4[1],ymm9[2],ymm4[3],ymm9[4],ymm4[5],ymm9[6],ymm4[7]6311; AVX2-FP-NEXT:    vpshufb %ymm12, %ymm2, %ymm26312; AVX2-FP-NEXT:    vpshufb %ymm15, %ymm3, %ymm36313; AVX2-FP-NEXT:    vpblendw {{.*#+}} ymm2 = ymm3[0,1,2],ymm2[3],ymm3[4,5,6],ymm2[7],ymm3[8,9,10],ymm2[11],ymm3[12,13,14],ymm2[15]6314; AVX2-FP-NEXT:    vpshufb %ymm7, %ymm5, %ymm36315; AVX2-FP-NEXT:    vinserti128 $1, %xmm8, %ymm8, %ymm56316; AVX2-FP-NEXT:    vpshufb %ymm11, %ymm5, %ymm56317; AVX2-FP-NEXT:    vpblendw {{.*#+}} ymm3 = ymm5[0],ymm3[1],ymm5[2,3,4],ymm3[5],ymm5[6,7,8],ymm3[9],ymm5[10,11,12],ymm3[13],ymm5[14,15]6318; AVX2-FP-NEXT:    vpblendd {{.*#+}} ymm2 = ymm3[0],ymm2[1],ymm3[2],ymm2[3],ymm3[4],ymm2[5],ymm3[6],ymm2[7]6319; AVX2-FP-NEXT:    movq {{[0-9]+}}(%rsp), %rax6320; AVX2-FP-NEXT:    vmovdqa %ymm2, 96(%rax)6321; AVX2-FP-NEXT:    vmovdqa %ymm4, 64(%rax)6322; AVX2-FP-NEXT:    vmovdqa %ymm1, 160(%rax)6323; AVX2-FP-NEXT:    vmovdqa %ymm0, 128(%rax)6324; AVX2-FP-NEXT:    vmovups (%rsp), %ymm0 # 32-byte Reload6325; AVX2-FP-NEXT:    vmovaps %ymm0, 224(%rax)6326; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6327; AVX2-FP-NEXT:    vmovaps %ymm0, 192(%rax)6328; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6329; AVX2-FP-NEXT:    vmovaps %ymm0, 288(%rax)6330; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6331; AVX2-FP-NEXT:    vmovaps %ymm0, 256(%rax)6332; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6333; AVX2-FP-NEXT:    vmovaps %ymm0, 352(%rax)6334; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6335; AVX2-FP-NEXT:    vmovaps %ymm0, 320(%rax)6336; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6337; AVX2-FP-NEXT:    vmovaps %ymm0, 416(%rax)6338; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6339; AVX2-FP-NEXT:    vmovaps %ymm0, 384(%rax)6340; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6341; AVX2-FP-NEXT:    vmovaps %ymm0, 480(%rax)6342; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6343; AVX2-FP-NEXT:    vmovaps %ymm0, 448(%rax)6344; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6345; AVX2-FP-NEXT:    vmovaps %ymm0, (%rax)6346; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6347; AVX2-FP-NEXT:    vmovaps %ymm0, 32(%rax)6348; AVX2-FP-NEXT:    addq $392, %rsp # imm = 0x1886349; AVX2-FP-NEXT:    vzeroupper6350; AVX2-FP-NEXT:    retq6351;6352; AVX2-FCP-LABEL: store_i8_stride8_vf64:6353; AVX2-FCP:       # %bb.0:6354; AVX2-FCP-NEXT:    subq $392, %rsp # imm = 0x1886355; AVX2-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax6356; AVX2-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r106357; AVX2-FCP-NEXT:    vmovdqa (%r10), %xmm16358; AVX2-FCP-NEXT:    vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6359; AVX2-FCP-NEXT:    vmovdqa (%rax), %xmm06360; AVX2-FCP-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6361; 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]6362; AVX2-FCP-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm06363; AVX2-FCP-NEXT:    vpshufb {{.*#+}} ymm2 = ymm0[0,1,2,3,8,9,8,9,8,9,8,9,12,13,10,11,16,17,18,19,24,25,28,29,24,25,28,29,28,29,30,31]6364; AVX2-FCP-NEXT:    vmovdqa (%r9), %xmm36365; AVX2-FCP-NEXT:    vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6366; AVX2-FCP-NEXT:    vmovdqa (%r8), %xmm16367; AVX2-FCP-NEXT:    vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6368; AVX2-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm1 = xmm1[0],xmm3[0],xmm1[1],xmm3[1],xmm1[2],xmm3[2],xmm1[3],xmm3[3],xmm1[4],xmm3[4],xmm1[5],xmm3[5],xmm1[6],xmm3[6],xmm1[7],xmm3[7]6369; AVX2-FCP-NEXT:    vinserti128 $1, %xmm1, %ymm1, %ymm16370; AVX2-FCP-NEXT:    vpshufb {{.*#+}} ymm3 = ymm1[0,1,2,3,8,9,10,11,8,9,10,11,10,11,14,15,16,17,18,19,28,29,26,27,28,29,26,27,30,31,30,31]6371; AVX2-FCP-NEXT:    vpblendw {{.*#+}} ymm3 = ymm3[0,1,2],ymm2[3],ymm3[4,5,6],ymm2[7],ymm3[8,9,10],ymm2[11],ymm3[12,13,14],ymm2[15]6372; AVX2-FCP-NEXT:    vmovdqa (%rcx), %xmm46373; AVX2-FCP-NEXT:    vmovdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6374; AVX2-FCP-NEXT:    vmovdqa (%rdx), %xmm26375; AVX2-FCP-NEXT:    vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6376; AVX2-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm2 = xmm2[0],xmm4[0],xmm2[1],xmm4[1],xmm2[2],xmm4[2],xmm2[3],xmm4[3],xmm2[4],xmm4[4],xmm2[5],xmm4[5],xmm2[6],xmm4[6],xmm2[7],xmm4[7]6377; AVX2-FCP-NEXT:    vinserti128 $1, %xmm2, %ymm2, %ymm26378; AVX2-FCP-NEXT:    vmovdqa (%rsi), %xmm56379; AVX2-FCP-NEXT:    vmovdqa %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6380; AVX2-FCP-NEXT:    vmovdqa (%rdi), %xmm46381; AVX2-FCP-NEXT:    vmovdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6382; AVX2-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm4 = xmm4[0],xmm5[0],xmm4[1],xmm5[1],xmm4[2],xmm5[2],xmm4[3],xmm5[3],xmm4[4],xmm5[4],xmm4[5],xmm5[5],xmm4[6],xmm5[6],xmm4[7],xmm5[7]6383; AVX2-FCP-NEXT:    vinserti128 $1, %xmm4, %ymm4, %ymm56384; AVX2-FCP-NEXT:    vpshufb {{.*#+}} ymm5 = ymm5[8,9,u,u,u,u,u,u,10,11,u,u,u,u,u,u,28,29,u,u,u,u,u,u,30,31,u,u,u,u,u,u]6385; AVX2-FCP-NEXT:    vpshufb {{.*#+}} ymm6 = ymm2[8,9,8,9,4,5,6,7,12,13,10,11,12,13,10,11,24,25,28,29,20,21,22,23,28,29,30,31,28,29,30,31]6386; AVX2-FCP-NEXT:    vpblendw {{.*#+}} ymm5 = ymm5[0],ymm6[1],ymm5[2,3,4],ymm6[5],ymm5[6,7,8],ymm6[9],ymm5[10,11,12],ymm6[13],ymm5[14,15]6387; AVX2-FCP-NEXT:    vpblendd {{.*#+}} ymm3 = ymm5[0],ymm3[1],ymm5[2],ymm3[3],ymm5[4],ymm3[5],ymm5[6],ymm3[7]6388; AVX2-FCP-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6389; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} ymm9 = [0,1,0,1,0,1,0,1,8,9,10,11,4,5,2,3,0,1,4,5,0,1,4,5,8,9,10,11,4,5,6,7]6390; AVX2-FCP-NEXT:    vpshufb %ymm9, %ymm0, %ymm06391; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} ymm10 = [0,1,2,3,0,1,2,3,8,9,10,11,2,3,6,7,4,5,2,3,4,5,2,3,8,9,10,11,6,7,6,7]6392; AVX2-FCP-NEXT:    vpshufb %ymm10, %ymm1, %ymm16393; AVX2-FCP-NEXT:    vpblendw {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3],ymm1[4,5,6],ymm0[7],ymm1[8,9,10],ymm0[11],ymm1[12,13,14],ymm0[15]6394; AVX2-FCP-NEXT:    vpmovsxwq {{.*#+}} xmm13 = [1284,1798]6395; AVX2-FCP-NEXT:    vpshufb %xmm13, %xmm4, %xmm16396; AVX2-FCP-NEXT:    vpmovzxwq {{.*#+}} xmm3 = xmm4[0],zero,zero,zero,xmm4[1],zero,zero,zero6397; AVX2-FCP-NEXT:    vinserti128 $1, %xmm1, %ymm3, %ymm16398; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} ymm12 = [0,1,0,1,4,5,2,3,4,5,2,3,12,13,14,15,0,1,4,5,4,5,6,7,4,5,6,7,12,13,14,15]6399; AVX2-FCP-NEXT:    vpshufb %ymm12, %ymm2, %ymm26400; AVX2-FCP-NEXT:    vpblendw {{.*#+}} ymm1 = ymm1[0],ymm2[1],ymm1[2,3,4],ymm2[5],ymm1[6,7,8],ymm2[9],ymm1[10,11,12],ymm2[13],ymm1[14,15]6401; AVX2-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0],ymm0[1],ymm1[2],ymm0[3],ymm1[4],ymm0[5],ymm1[6],ymm0[7]6402; AVX2-FCP-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6403; AVX2-FCP-NEXT:    vmovdqa 48(%r10), %xmm86404; AVX2-FCP-NEXT:    vmovdqa 48(%rax), %xmm36405; AVX2-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm0 = xmm3[8],xmm8[8],xmm3[9],xmm8[9],xmm3[10],xmm8[10],xmm3[11],xmm8[11],xmm3[12],xmm8[12],xmm3[13],xmm8[13],xmm3[14],xmm8[14],xmm3[15],xmm8[15]6406; AVX2-FCP-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm66407; AVX2-FCP-NEXT:    vmovdqa 48(%r9), %xmm46408; AVX2-FCP-NEXT:    vmovdqa 48(%r8), %xmm56409; AVX2-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm0 = 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]6410; AVX2-FCP-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm76411; AVX2-FCP-NEXT:    vpshufb %ymm9, %ymm6, %ymm06412; AVX2-FCP-NEXT:    vpshufb %ymm10, %ymm7, %ymm26413; AVX2-FCP-NEXT:    vpblendw {{.*#+}} ymm11 = ymm2[0,1,2],ymm0[3],ymm2[4,5,6],ymm0[7],ymm2[8,9,10],ymm0[11],ymm2[12,13,14],ymm0[15]6414; AVX2-FCP-NEXT:    vmovdqa 48(%rsi), %xmm106415; AVX2-FCP-NEXT:    vmovdqa 48(%rdi), %xmm96416; AVX2-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm0 = 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]6417; AVX2-FCP-NEXT:    vpshufb %xmm13, %xmm0, %xmm16418; AVX2-FCP-NEXT:    vpmovzxwq {{.*#+}} xmm13 = xmm0[0],zero,zero,zero,xmm0[1],zero,zero,zero6419; AVX2-FCP-NEXT:    vinserti128 $1, %xmm1, %ymm13, %ymm16420; AVX2-FCP-NEXT:    vmovdqa 48(%rcx), %xmm136421; AVX2-FCP-NEXT:    vmovdqa 48(%rdx), %xmm26422; AVX2-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm15 = xmm2[8],xmm13[8],xmm2[9],xmm13[9],xmm2[10],xmm13[10],xmm2[11],xmm13[11],xmm2[12],xmm13[12],xmm2[13],xmm13[13],xmm2[14],xmm13[14],xmm2[15],xmm13[15]6423; AVX2-FCP-NEXT:    vinserti128 $1, %xmm15, %ymm15, %ymm156424; AVX2-FCP-NEXT:    vpshufb %ymm12, %ymm15, %ymm146425; AVX2-FCP-NEXT:    vpblendw {{.*#+}} ymm1 = ymm1[0],ymm14[1],ymm1[2,3,4],ymm14[5],ymm1[6,7,8],ymm14[9],ymm1[10,11,12],ymm14[13],ymm1[14,15]6426; AVX2-FCP-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0],ymm11[1],ymm1[2],ymm11[3],ymm1[4],ymm11[5],ymm1[6],ymm11[7]6427; AVX2-FCP-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6428; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} ymm12 = [0,1,2,3,8,9,8,9,8,9,8,9,12,13,10,11,0,1,2,3,8,9,12,13,8,9,12,13,12,13,14,15]6429; AVX2-FCP-NEXT:    vpshufb %ymm12, %ymm6, %ymm16430; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} ymm11 = [0,1,2,3,8,9,10,11,8,9,10,11,10,11,14,15,0,1,2,3,12,13,10,11,12,13,10,11,14,15,14,15]6431; AVX2-FCP-NEXT:    vpshufb %ymm11, %ymm7, %ymm66432; AVX2-FCP-NEXT:    vpblendw {{.*#+}} ymm1 = ymm6[0,1,2],ymm1[3],ymm6[4,5,6],ymm1[7],ymm6[8,9,10],ymm1[11],ymm6[12,13,14],ymm1[15]6433; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} ymm7 = [8,9,8,9,4,5,6,7,12,13,10,11,12,13,10,11,8,9,12,13,4,5,6,7,12,13,14,15,12,13,14,15]6434; AVX2-FCP-NEXT:    vpshufb %ymm7, %ymm15, %ymm66435; AVX2-FCP-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm06436; AVX2-FCP-NEXT:    vpmovsxwq {{.*#+}} ymm14 = [2312,2826,3340,3854]6437; AVX2-FCP-NEXT:    vpshufb %ymm14, %ymm0, %ymm06438; AVX2-FCP-NEXT:    vpblendw {{.*#+}} ymm0 = ymm0[0],ymm6[1],ymm0[2,3,4],ymm6[5],ymm0[6,7,8],ymm6[9],ymm0[10,11,12],ymm6[13],ymm0[14,15]6439; AVX2-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2],ymm1[3],ymm0[4],ymm1[5],ymm0[6],ymm1[7]6440; AVX2-FCP-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6441; AVX2-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm0 = xmm3[0],xmm8[0],xmm3[1],xmm8[1],xmm3[2],xmm8[2],xmm3[3],xmm8[3],xmm3[4],xmm8[4],xmm3[5],xmm8[5],xmm3[6],xmm8[6],xmm3[7],xmm8[7]6442; AVX2-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm1 = xmm5[0],xmm4[0],xmm5[1],xmm4[1],xmm5[2],xmm4[2],xmm5[3],xmm4[3],xmm5[4],xmm4[4],xmm5[5],xmm4[5],xmm5[6],xmm4[6],xmm5[7],xmm4[7]6443; AVX2-FCP-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm06444; AVX2-FCP-NEXT:    vinserti128 $1, %xmm1, %ymm1, %ymm16445; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} ymm15 = [0,1,0,1,0,1,0,1,8,9,10,11,4,5,2,3,0,1,4,5,0,1,4,5,8,9,10,11,4,5,6,7]6446; AVX2-FCP-NEXT:    vpshufb %ymm15, %ymm0, %ymm36447; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} ymm8 = [0,1,2,3,0,1,2,3,8,9,10,11,2,3,6,7,4,5,2,3,4,5,2,3,8,9,10,11,6,7,6,7]6448; AVX2-FCP-NEXT:    vpshufb %ymm8, %ymm1, %ymm46449; AVX2-FCP-NEXT:    vpblendw {{.*#+}} ymm3 = ymm4[0,1,2],ymm3[3],ymm4[4,5,6],ymm3[7],ymm4[8,9,10],ymm3[11],ymm4[12,13,14],ymm3[15]6450; AVX2-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm2 = xmm2[0],xmm13[0],xmm2[1],xmm13[1],xmm2[2],xmm13[2],xmm2[3],xmm13[3],xmm2[4],xmm13[4],xmm2[5],xmm13[5],xmm2[6],xmm13[6],xmm2[7],xmm13[7]6451; AVX2-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm4 = 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]6452; AVX2-FCP-NEXT:    vpmovsxwq {{.*#+}} xmm10 = [1284,1798]6453; AVX2-FCP-NEXT:    vpshufb %xmm10, %xmm4, %xmm56454; AVX2-FCP-NEXT:    vpmovzxwq {{.*#+}} xmm6 = xmm4[0],zero,zero,zero,xmm4[1],zero,zero,zero6455; AVX2-FCP-NEXT:    vinserti128 $1, %xmm5, %ymm6, %ymm56456; AVX2-FCP-NEXT:    vinserti128 $1, %xmm2, %ymm2, %ymm26457; AVX2-FCP-NEXT:    vpshufb {{.*#+}} ymm6 = ymm2[0,1,0,1,4,5,2,3,4,5,2,3,12,13,14,15,16,17,20,21,20,21,22,23,20,21,22,23,28,29,30,31]6458; AVX2-FCP-NEXT:    vpblendw {{.*#+}} ymm5 = ymm5[0],ymm6[1],ymm5[2,3,4],ymm6[5],ymm5[6,7,8],ymm6[9],ymm5[10,11,12],ymm6[13],ymm5[14,15]6459; AVX2-FCP-NEXT:    vpblendd {{.*#+}} ymm3 = ymm5[0],ymm3[1],ymm5[2],ymm3[3],ymm5[4],ymm3[5],ymm5[6],ymm3[7]6460; AVX2-FCP-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6461; AVX2-FCP-NEXT:    vpshufb %ymm12, %ymm0, %ymm06462; AVX2-FCP-NEXT:    vpshufb %ymm11, %ymm1, %ymm16463; AVX2-FCP-NEXT:    vpblendw {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3],ymm1[4,5,6],ymm0[7],ymm1[8,9,10],ymm0[11],ymm1[12,13,14],ymm0[15]6464; AVX2-FCP-NEXT:    vpshufb %ymm7, %ymm2, %ymm16465; AVX2-FCP-NEXT:    vinserti128 $1, %xmm4, %ymm4, %ymm26466; AVX2-FCP-NEXT:    vpshufb %ymm14, %ymm2, %ymm26467; AVX2-FCP-NEXT:    vpblendw {{.*#+}} ymm1 = ymm2[0],ymm1[1],ymm2[2,3,4],ymm1[5],ymm2[6,7,8],ymm1[9],ymm2[10,11,12],ymm1[13],ymm2[14,15]6468; AVX2-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0],ymm0[1],ymm1[2],ymm0[3],ymm1[4],ymm0[5],ymm1[6],ymm0[7]6469; AVX2-FCP-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6470; AVX2-FCP-NEXT:    vmovdqa 32(%r10), %xmm16471; AVX2-FCP-NEXT:    vmovdqa 32(%rax), %xmm36472; AVX2-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm0 = 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]6473; AVX2-FCP-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm66474; AVX2-FCP-NEXT:    vmovdqa 32(%r9), %xmm46475; AVX2-FCP-NEXT:    vmovdqa 32(%r8), %xmm56476; AVX2-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm0 = 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]6477; AVX2-FCP-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm76478; AVX2-FCP-NEXT:    vpshufb %ymm15, %ymm6, %ymm06479; AVX2-FCP-NEXT:    vpshufb %ymm8, %ymm7, %ymm26480; AVX2-FCP-NEXT:    vpblendw {{.*#+}} ymm8 = ymm2[0,1,2],ymm0[3],ymm2[4,5,6],ymm0[7],ymm2[8,9,10],ymm0[11],ymm2[12,13,14],ymm0[15]6481; AVX2-FCP-NEXT:    vmovdqa 32(%rsi), %xmm06482; AVX2-FCP-NEXT:    vmovdqa 32(%rdi), %xmm26483; AVX2-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm9 = 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]6484; AVX2-FCP-NEXT:    vpshufb %xmm10, %xmm9, %xmm106485; AVX2-FCP-NEXT:    vpmovzxwq {{.*#+}} xmm11 = xmm9[0],zero,zero,zero,xmm9[1],zero,zero,zero6486; AVX2-FCP-NEXT:    vinserti128 $1, %xmm10, %ymm11, %ymm106487; AVX2-FCP-NEXT:    vmovdqa 32(%rcx), %xmm116488; AVX2-FCP-NEXT:    vmovdqa 32(%rdx), %xmm136489; AVX2-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm14 = 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]6490; AVX2-FCP-NEXT:    vinserti128 $1, %xmm14, %ymm14, %ymm146491; AVX2-FCP-NEXT:    vpshufb {{.*#+}} ymm15 = ymm14[0,1,0,1,4,5,2,3,4,5,2,3,12,13,14,15,16,17,20,21,20,21,22,23,20,21,22,23,28,29,30,31]6492; AVX2-FCP-NEXT:    vpblendw {{.*#+}} ymm10 = ymm10[0],ymm15[1],ymm10[2,3,4],ymm15[5],ymm10[6,7,8],ymm15[9],ymm10[10,11,12],ymm15[13],ymm10[14,15]6493; AVX2-FCP-NEXT:    vpblendd {{.*#+}} ymm8 = ymm10[0],ymm8[1],ymm10[2],ymm8[3],ymm10[4],ymm8[5],ymm10[6],ymm8[7]6494; AVX2-FCP-NEXT:    vmovdqu %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6495; AVX2-FCP-NEXT:    vmovdqa %ymm12, %ymm106496; AVX2-FCP-NEXT:    vpshufb %ymm12, %ymm6, %ymm66497; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} ymm15 = [0,1,2,3,8,9,10,11,8,9,10,11,10,11,14,15,0,1,2,3,12,13,10,11,12,13,10,11,14,15,14,15]6498; AVX2-FCP-NEXT:    vpshufb %ymm15, %ymm7, %ymm76499; AVX2-FCP-NEXT:    vpblendw {{.*#+}} ymm6 = ymm7[0,1,2],ymm6[3],ymm7[4,5,6],ymm6[7],ymm7[8,9,10],ymm6[11],ymm7[12,13,14],ymm6[15]6500; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} ymm12 = [8,9,8,9,4,5,6,7,12,13,10,11,12,13,10,11,8,9,12,13,4,5,6,7,12,13,14,15,12,13,14,15]6501; AVX2-FCP-NEXT:    vpshufb %ymm12, %ymm14, %ymm76502; AVX2-FCP-NEXT:    vinserti128 $1, %xmm9, %ymm9, %ymm86503; AVX2-FCP-NEXT:    vpmovsxwq {{.*#+}} ymm14 = [2312,2826,3340,3854]6504; AVX2-FCP-NEXT:    vpshufb %ymm14, %ymm8, %ymm86505; AVX2-FCP-NEXT:    vpblendw {{.*#+}} ymm7 = ymm8[0],ymm7[1],ymm8[2,3,4],ymm7[5],ymm8[6,7,8],ymm7[9],ymm8[10,11,12],ymm7[13],ymm8[14,15]6506; AVX2-FCP-NEXT:    vpblendd {{.*#+}} ymm6 = ymm7[0],ymm6[1],ymm7[2],ymm6[3],ymm7[4],ymm6[5],ymm7[6],ymm6[7]6507; AVX2-FCP-NEXT:    vmovdqu %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6508; AVX2-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm1 = 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]6509; AVX2-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm3 = xmm5[0],xmm4[0],xmm5[1],xmm4[1],xmm5[2],xmm4[2],xmm5[3],xmm4[3],xmm5[4],xmm4[4],xmm5[5],xmm4[5],xmm5[6],xmm4[6],xmm5[7],xmm4[7]6510; AVX2-FCP-NEXT:    vinserti128 $1, %xmm1, %ymm1, %ymm16511; AVX2-FCP-NEXT:    vinserti128 $1, %xmm3, %ymm3, %ymm36512; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} ymm9 = [0,1,0,1,0,1,0,1,8,9,10,11,4,5,2,3,0,1,4,5,0,1,4,5,8,9,10,11,4,5,6,7]6513; AVX2-FCP-NEXT:    vpshufb %ymm9, %ymm1, %ymm46514; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} ymm7 = [0,1,2,3,0,1,2,3,8,9,10,11,2,3,6,7,4,5,2,3,4,5,2,3,8,9,10,11,6,7,6,7]6515; AVX2-FCP-NEXT:    vpshufb %ymm7, %ymm3, %ymm56516; AVX2-FCP-NEXT:    vpblendw {{.*#+}} ymm4 = ymm5[0,1,2],ymm4[3],ymm5[4,5,6],ymm4[7],ymm5[8,9,10],ymm4[11],ymm5[12,13,14],ymm4[15]6517; AVX2-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm5 = 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]6518; AVX2-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm0 = 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]6519; AVX2-FCP-NEXT:    vpmovsxwq {{.*#+}} xmm11 = [1284,1798]6520; AVX2-FCP-NEXT:    vpshufb %xmm11, %xmm0, %xmm26521; AVX2-FCP-NEXT:    vpmovzxwq {{.*#+}} xmm6 = xmm0[0],zero,zero,zero,xmm0[1],zero,zero,zero6522; AVX2-FCP-NEXT:    vinserti128 $1, %xmm2, %ymm6, %ymm26523; AVX2-FCP-NEXT:    vinserti128 $1, %xmm5, %ymm5, %ymm56524; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} ymm6 = [0,1,0,1,4,5,2,3,4,5,2,3,12,13,14,15,0,1,4,5,4,5,6,7,4,5,6,7,12,13,14,15]6525; AVX2-FCP-NEXT:    vpshufb %ymm6, %ymm5, %ymm66526; AVX2-FCP-NEXT:    vpblendw {{.*#+}} ymm2 = ymm2[0],ymm6[1],ymm2[2,3,4],ymm6[5],ymm2[6,7,8],ymm6[9],ymm2[10,11,12],ymm6[13],ymm2[14,15]6527; AVX2-FCP-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0],ymm4[1],ymm2[2],ymm4[3],ymm2[4],ymm4[5],ymm2[6],ymm4[7]6528; AVX2-FCP-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6529; AVX2-FCP-NEXT:    vpshufb %ymm10, %ymm1, %ymm16530; AVX2-FCP-NEXT:    vpshufb %ymm15, %ymm3, %ymm26531; AVX2-FCP-NEXT:    vpblendw {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3],ymm2[4,5,6],ymm1[7],ymm2[8,9,10],ymm1[11],ymm2[12,13,14],ymm1[15]6532; AVX2-FCP-NEXT:    vpshufb %ymm12, %ymm5, %ymm26533; AVX2-FCP-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm06534; AVX2-FCP-NEXT:    vpshufb %ymm14, %ymm0, %ymm06535; AVX2-FCP-NEXT:    vpblendw {{.*#+}} ymm0 = ymm0[0],ymm2[1],ymm0[2,3,4],ymm2[5],ymm0[6,7,8],ymm2[9],ymm0[10,11,12],ymm2[13],ymm0[14,15]6536; AVX2-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2],ymm1[3],ymm0[4],ymm1[5],ymm0[6],ymm1[7]6537; AVX2-FCP-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6538; AVX2-FCP-NEXT:    vmovdqa 16(%r10), %xmm46539; AVX2-FCP-NEXT:    vmovdqa 16(%rax), %xmm26540; AVX2-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm0 = xmm2[8],xmm4[8],xmm2[9],xmm4[9],xmm2[10],xmm4[10],xmm2[11],xmm4[11],xmm2[12],xmm4[12],xmm2[13],xmm4[13],xmm2[14],xmm4[14],xmm2[15],xmm4[15]6541; AVX2-FCP-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm66542; AVX2-FCP-NEXT:    vmovdqa 16(%r9), %xmm16543; AVX2-FCP-NEXT:    vmovdqa 16(%r8), %xmm06544; AVX2-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm3 = xmm0[8],xmm1[8],xmm0[9],xmm1[9],xmm0[10],xmm1[10],xmm0[11],xmm1[11],xmm0[12],xmm1[12],xmm0[13],xmm1[13],xmm0[14],xmm1[14],xmm0[15],xmm1[15]6545; AVX2-FCP-NEXT:    vinserti128 $1, %xmm3, %ymm3, %ymm86546; AVX2-FCP-NEXT:    vpshufb %ymm9, %ymm6, %ymm36547; AVX2-FCP-NEXT:    vpshufb %ymm7, %ymm8, %ymm56548; AVX2-FCP-NEXT:    vpblendw {{.*#+}} ymm7 = ymm5[0,1,2],ymm3[3],ymm5[4,5,6],ymm3[7],ymm5[8,9,10],ymm3[11],ymm5[12,13,14],ymm3[15]6549; AVX2-FCP-NEXT:    vmovdqa 16(%rsi), %xmm56550; AVX2-FCP-NEXT:    vmovdqa 16(%rdi), %xmm36551; AVX2-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm9 = 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]6552; AVX2-FCP-NEXT:    vpshufb %xmm11, %xmm9, %xmm106553; AVX2-FCP-NEXT:    vpmovzxwq {{.*#+}} xmm13 = xmm9[0],zero,zero,zero,xmm9[1],zero,zero,zero6554; AVX2-FCP-NEXT:    vinserti128 $1, %xmm10, %ymm13, %ymm106555; AVX2-FCP-NEXT:    vmovdqa 16(%rcx), %xmm136556; AVX2-FCP-NEXT:    vmovdqa 16(%rdx), %xmm146557; AVX2-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm15 = 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]6558; AVX2-FCP-NEXT:    vinserti128 $1, %xmm15, %ymm15, %ymm156559; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} ymm11 = [0,1,0,1,4,5,2,3,4,5,2,3,12,13,14,15,0,1,4,5,4,5,6,7,4,5,6,7,12,13,14,15]6560; AVX2-FCP-NEXT:    vpshufb %ymm11, %ymm15, %ymm116561; AVX2-FCP-NEXT:    vpblendw {{.*#+}} ymm10 = ymm10[0],ymm11[1],ymm10[2,3,4],ymm11[5],ymm10[6,7,8],ymm11[9],ymm10[10,11,12],ymm11[13],ymm10[14,15]6562; AVX2-FCP-NEXT:    vpblendd {{.*#+}} ymm7 = ymm10[0],ymm7[1],ymm10[2],ymm7[3],ymm10[4],ymm7[5],ymm10[6],ymm7[7]6563; AVX2-FCP-NEXT:    vmovdqu %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6564; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} ymm12 = [0,1,2,3,8,9,8,9,8,9,8,9,12,13,10,11,0,1,2,3,8,9,12,13,8,9,12,13,12,13,14,15]6565; AVX2-FCP-NEXT:    vpshufb %ymm12, %ymm6, %ymm66566; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} ymm7 = [0,1,2,3,8,9,10,11,8,9,10,11,10,11,14,15,0,1,2,3,12,13,10,11,12,13,10,11,14,15,14,15]6567; AVX2-FCP-NEXT:    vpshufb %ymm7, %ymm8, %ymm86568; AVX2-FCP-NEXT:    vpblendw {{.*#+}} ymm6 = ymm8[0,1,2],ymm6[3],ymm8[4,5,6],ymm6[7],ymm8[8,9,10],ymm6[11],ymm8[12,13,14],ymm6[15]6569; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} ymm11 = [8,9,8,9,4,5,6,7,12,13,10,11,12,13,10,11,8,9,12,13,4,5,6,7,12,13,14,15,12,13,14,15]6570; AVX2-FCP-NEXT:    vpshufb %ymm11, %ymm15, %ymm86571; AVX2-FCP-NEXT:    vinserti128 $1, %xmm9, %ymm9, %ymm96572; AVX2-FCP-NEXT:    vpmovsxwq {{.*#+}} ymm10 = [2312,2826,3340,3854]6573; AVX2-FCP-NEXT:    vpshufb %ymm10, %ymm9, %ymm96574; AVX2-FCP-NEXT:    vpblendw {{.*#+}} ymm8 = ymm9[0],ymm8[1],ymm9[2,3,4],ymm8[5],ymm9[6,7,8],ymm8[9],ymm9[10,11,12],ymm8[13],ymm9[14,15]6575; AVX2-FCP-NEXT:    vpblendd {{.*#+}} ymm6 = ymm8[0],ymm6[1],ymm8[2],ymm6[3],ymm8[4],ymm6[5],ymm8[6],ymm6[7]6576; AVX2-FCP-NEXT:    vmovdqu %ymm6, (%rsp) # 32-byte Spill6577; AVX2-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm2 = xmm2[0],xmm4[0],xmm2[1],xmm4[1],xmm2[2],xmm4[2],xmm2[3],xmm4[3],xmm2[4],xmm4[4],xmm2[5],xmm4[5],xmm2[6],xmm4[6],xmm2[7],xmm4[7]6578; 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]6579; AVX2-FCP-NEXT:    vinserti128 $1, %xmm2, %ymm2, %ymm16580; AVX2-FCP-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm26581; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} ymm6 = [0,1,0,1,0,1,0,1,8,9,10,11,4,5,2,3,0,1,4,5,0,1,4,5,8,9,10,11,4,5,6,7]6582; AVX2-FCP-NEXT:    vpshufb %ymm6, %ymm1, %ymm06583; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} ymm9 = [0,1,2,3,0,1,2,3,8,9,10,11,2,3,6,7,4,5,2,3,4,5,2,3,8,9,10,11,6,7,6,7]6584; AVX2-FCP-NEXT:    vpshufb %ymm9, %ymm2, %ymm46585; AVX2-FCP-NEXT:    vpblendw {{.*#+}} ymm0 = ymm4[0,1,2],ymm0[3],ymm4[4,5,6],ymm0[7],ymm4[8,9,10],ymm0[11],ymm4[12,13,14],ymm0[15]6586; AVX2-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm4 = 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]6587; AVX2-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm3 = 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]6588; AVX2-FCP-NEXT:    vpmovsxwq {{.*#+}} xmm14 = [1284,1798]6589; AVX2-FCP-NEXT:    vpshufb %xmm14, %xmm3, %xmm56590; AVX2-FCP-NEXT:    vpmovzxwq {{.*#+}} xmm8 = xmm3[0],zero,zero,zero,xmm3[1],zero,zero,zero6591; AVX2-FCP-NEXT:    vinserti128 $1, %xmm5, %ymm8, %ymm56592; AVX2-FCP-NEXT:    vinserti128 $1, %xmm4, %ymm4, %ymm46593; AVX2-FCP-NEXT:    vmovdqa {{.*#+}} ymm13 = [0,1,0,1,4,5,2,3,4,5,2,3,12,13,14,15,0,1,4,5,4,5,6,7,4,5,6,7,12,13,14,15]6594; AVX2-FCP-NEXT:    vpshufb %ymm13, %ymm4, %ymm86595; AVX2-FCP-NEXT:    vpblendw {{.*#+}} ymm5 = ymm5[0],ymm8[1],ymm5[2,3,4],ymm8[5],ymm5[6,7,8],ymm8[9],ymm5[10,11,12],ymm8[13],ymm5[14,15]6596; AVX2-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = ymm5[0],ymm0[1],ymm5[2],ymm0[3],ymm5[4],ymm0[5],ymm5[6],ymm0[7]6597; AVX2-FCP-NEXT:    vpshufb %ymm12, %ymm1, %ymm16598; AVX2-FCP-NEXT:    vmovdqa %ymm7, %ymm156599; AVX2-FCP-NEXT:    vpshufb %ymm7, %ymm2, %ymm26600; AVX2-FCP-NEXT:    vpblendw {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3],ymm2[4,5,6],ymm1[7],ymm2[8,9,10],ymm1[11],ymm2[12,13,14],ymm1[15]6601; AVX2-FCP-NEXT:    vpshufb %ymm11, %ymm4, %ymm26602; AVX2-FCP-NEXT:    vmovdqa %ymm11, %ymm76603; AVX2-FCP-NEXT:    vinserti128 $1, %xmm3, %ymm3, %ymm36604; AVX2-FCP-NEXT:    vpshufb %ymm10, %ymm3, %ymm36605; AVX2-FCP-NEXT:    vmovdqa %ymm10, %ymm116606; AVX2-FCP-NEXT:    vpblendw {{.*#+}} ymm2 = ymm3[0],ymm2[1],ymm3[2,3,4],ymm2[5],ymm3[6,7,8],ymm2[9],ymm3[10,11,12],ymm2[13],ymm3[14,15]6607; AVX2-FCP-NEXT:    vpblendd {{.*#+}} ymm1 = ymm2[0],ymm1[1],ymm2[2],ymm1[3],ymm2[4],ymm1[5],ymm2[6],ymm1[7]6608; AVX2-FCP-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload6609; AVX2-FCP-NEXT:    vpunpckhbw {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm2 # 16-byte Folded Reload6610; 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]6611; AVX2-FCP-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload6612; AVX2-FCP-NEXT:    vpunpckhbw {{[-0-9]+}}(%r{{[sb]}}p), %xmm3, %xmm3 # 16-byte Folded Reload6613; AVX2-FCP-NEXT:    # xmm3 = xmm3[8],mem[8],xmm3[9],mem[9],xmm3[10],mem[10],xmm3[11],mem[11],xmm3[12],mem[12],xmm3[13],mem[13],xmm3[14],mem[14],xmm3[15],mem[15]6614; AVX2-FCP-NEXT:    vinserti128 $1, %xmm2, %ymm2, %ymm26615; AVX2-FCP-NEXT:    vpshufb %ymm6, %ymm2, %ymm46616; AVX2-FCP-NEXT:    vinserti128 $1, %xmm3, %ymm3, %ymm36617; AVX2-FCP-NEXT:    vpshufb %ymm9, %ymm3, %ymm56618; AVX2-FCP-NEXT:    vpblendw {{.*#+}} ymm4 = ymm5[0,1,2],ymm4[3],ymm5[4,5,6],ymm4[7],ymm5[8,9,10],ymm4[11],ymm5[12,13,14],ymm4[15]6619; AVX2-FCP-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload6620; AVX2-FCP-NEXT:    vpunpckhbw {{[-0-9]+}}(%r{{[sb]}}p), %xmm5, %xmm5 # 16-byte Folded Reload6621; AVX2-FCP-NEXT:    # xmm5 = 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]6622; AVX2-FCP-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload6623; AVX2-FCP-NEXT:    vpunpckhbw {{[-0-9]+}}(%r{{[sb]}}p), %xmm8, %xmm8 # 16-byte Folded Reload6624; AVX2-FCP-NEXT:    # xmm8 = xmm8[8],mem[8],xmm8[9],mem[9],xmm8[10],mem[10],xmm8[11],mem[11],xmm8[12],mem[12],xmm8[13],mem[13],xmm8[14],mem[14],xmm8[15],mem[15]6625; AVX2-FCP-NEXT:    vpshufb %xmm14, %xmm8, %xmm96626; AVX2-FCP-NEXT:    vpmovzxwq {{.*#+}} xmm10 = xmm8[0],zero,zero,zero,xmm8[1],zero,zero,zero6627; AVX2-FCP-NEXT:    vinserti128 $1, %xmm9, %ymm10, %ymm96628; AVX2-FCP-NEXT:    vinserti128 $1, %xmm5, %ymm5, %ymm56629; AVX2-FCP-NEXT:    vpshufb %ymm13, %ymm5, %ymm106630; AVX2-FCP-NEXT:    vpblendw {{.*#+}} ymm9 = ymm9[0],ymm10[1],ymm9[2,3,4],ymm10[5],ymm9[6,7,8],ymm10[9],ymm9[10,11,12],ymm10[13],ymm9[14,15]6631; AVX2-FCP-NEXT:    vpblendd {{.*#+}} ymm4 = ymm9[0],ymm4[1],ymm9[2],ymm4[3],ymm9[4],ymm4[5],ymm9[6],ymm4[7]6632; AVX2-FCP-NEXT:    vpshufb %ymm12, %ymm2, %ymm26633; AVX2-FCP-NEXT:    vpshufb %ymm15, %ymm3, %ymm36634; AVX2-FCP-NEXT:    vpblendw {{.*#+}} ymm2 = ymm3[0,1,2],ymm2[3],ymm3[4,5,6],ymm2[7],ymm3[8,9,10],ymm2[11],ymm3[12,13,14],ymm2[15]6635; AVX2-FCP-NEXT:    vpshufb %ymm7, %ymm5, %ymm36636; AVX2-FCP-NEXT:    vinserti128 $1, %xmm8, %ymm8, %ymm56637; AVX2-FCP-NEXT:    vpshufb %ymm11, %ymm5, %ymm56638; AVX2-FCP-NEXT:    vpblendw {{.*#+}} ymm3 = ymm5[0],ymm3[1],ymm5[2,3,4],ymm3[5],ymm5[6,7,8],ymm3[9],ymm5[10,11,12],ymm3[13],ymm5[14,15]6639; AVX2-FCP-NEXT:    vpblendd {{.*#+}} ymm2 = ymm3[0],ymm2[1],ymm3[2],ymm2[3],ymm3[4],ymm2[5],ymm3[6],ymm2[7]6640; AVX2-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax6641; AVX2-FCP-NEXT:    vmovdqa %ymm2, 96(%rax)6642; AVX2-FCP-NEXT:    vmovdqa %ymm4, 64(%rax)6643; AVX2-FCP-NEXT:    vmovdqa %ymm1, 160(%rax)6644; AVX2-FCP-NEXT:    vmovdqa %ymm0, 128(%rax)6645; AVX2-FCP-NEXT:    vmovups (%rsp), %ymm0 # 32-byte Reload6646; AVX2-FCP-NEXT:    vmovaps %ymm0, 224(%rax)6647; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6648; AVX2-FCP-NEXT:    vmovaps %ymm0, 192(%rax)6649; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6650; AVX2-FCP-NEXT:    vmovaps %ymm0, 288(%rax)6651; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6652; AVX2-FCP-NEXT:    vmovaps %ymm0, 256(%rax)6653; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6654; AVX2-FCP-NEXT:    vmovaps %ymm0, 352(%rax)6655; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6656; AVX2-FCP-NEXT:    vmovaps %ymm0, 320(%rax)6657; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6658; AVX2-FCP-NEXT:    vmovaps %ymm0, 416(%rax)6659; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6660; AVX2-FCP-NEXT:    vmovaps %ymm0, 384(%rax)6661; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6662; AVX2-FCP-NEXT:    vmovaps %ymm0, 480(%rax)6663; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6664; AVX2-FCP-NEXT:    vmovaps %ymm0, 448(%rax)6665; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6666; AVX2-FCP-NEXT:    vmovaps %ymm0, (%rax)6667; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6668; AVX2-FCP-NEXT:    vmovaps %ymm0, 32(%rax)6669; AVX2-FCP-NEXT:    addq $392, %rsp # imm = 0x1886670; AVX2-FCP-NEXT:    vzeroupper6671; AVX2-FCP-NEXT:    retq6672;6673; AVX512-LABEL: store_i8_stride8_vf64:6674; AVX512:       # %bb.0:6675; AVX512-NEXT:    subq $552, %rsp # imm = 0x2286676; AVX512-NEXT:    movq {{[0-9]+}}(%rsp), %rax6677; AVX512-NEXT:    movq {{[0-9]+}}(%rsp), %r106678; AVX512-NEXT:    vmovdqa (%rcx), %xmm36679; AVX512-NEXT:    vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6680; AVX512-NEXT:    vmovdqa 32(%rcx), %xmm126681; AVX512-NEXT:    vmovdqa 48(%rcx), %xmm06682; AVX512-NEXT:    vmovdqa (%rdx), %xmm26683; AVX512-NEXT:    vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6684; AVX512-NEXT:    vmovdqa 48(%rdx), %xmm16685; AVX512-NEXT:    vpunpckhbw {{.*#+}} xmm2 = xmm2[8],xmm3[8],xmm2[9],xmm3[9],xmm2[10],xmm3[10],xmm2[11],xmm3[11],xmm2[12],xmm3[12],xmm2[13],xmm3[13],xmm2[14],xmm3[14],xmm2[15],xmm3[15]6686; AVX512-NEXT:    vpshuflw {{.*#+}} xmm3 = xmm2[0,0,2,1,4,5,6,7]6687; AVX512-NEXT:    vpshuflw {{.*#+}} xmm4 = xmm2[0,2,2,3,4,5,6,7]6688; AVX512-NEXT:    vinserti128 $1, %xmm4, %ymm3, %ymm106689; AVX512-NEXT:    vpshufhw {{.*#+}} xmm3 = xmm2[0,1,2,3,4,4,6,5]6690; AVX512-NEXT:    vpshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,6,6,7]6691; AVX512-NEXT:    vinserti128 $1, %xmm2, %ymm3, %ymm26692; AVX512-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6693; AVX512-NEXT:    vmovdqa (%r10), %xmm56694; AVX512-NEXT:    vmovdqa %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6695; AVX512-NEXT:    vmovdqa 48(%r10), %xmm36696; AVX512-NEXT:    vmovdqa (%rax), %xmm26697; AVX512-NEXT:    vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6698; AVX512-NEXT:    vmovdqa 48(%rax), %xmm46699; AVX512-NEXT:    vpunpckhbw {{.*#+}} xmm2 = xmm2[8],xmm5[8],xmm2[9],xmm5[9],xmm2[10],xmm5[10],xmm2[11],xmm5[11],xmm2[12],xmm5[12],xmm2[13],xmm5[13],xmm2[14],xmm5[14],xmm2[15],xmm5[15]6700; AVX512-NEXT:    vpshuflw {{.*#+}} xmm5 = xmm2[0,0,2,1,4,5,6,7]6701; AVX512-NEXT:    vpshuflw {{.*#+}} xmm6 = xmm2[0,2,2,3,4,5,6,7]6702; AVX512-NEXT:    vinserti128 $1, %xmm6, %ymm5, %ymm56703; AVX512-NEXT:    vmovdqu %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6704; AVX512-NEXT:    vpshufhw {{.*#+}} xmm5 = xmm2[0,1,2,3,4,4,6,5]6705; AVX512-NEXT:    vpshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,6,6,7]6706; AVX512-NEXT:    vinserti128 $1, %xmm2, %ymm5, %ymm26707; AVX512-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6708; AVX512-NEXT:    vmovdqa (%r9), %xmm56709; AVX512-NEXT:    vmovdqa %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6710; AVX512-NEXT:    vmovdqa 48(%r9), %xmm66711; AVX512-NEXT:    vmovdqa (%r8), %xmm26712; AVX512-NEXT:    vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6713; AVX512-NEXT:    vmovdqa 48(%r8), %xmm86714; AVX512-NEXT:    vpunpckhbw {{.*#+}} xmm2 = xmm2[8],xmm5[8],xmm2[9],xmm5[9],xmm2[10],xmm5[10],xmm2[11],xmm5[11],xmm2[12],xmm5[12],xmm2[13],xmm5[13],xmm2[14],xmm5[14],xmm2[15],xmm5[15]6715; AVX512-NEXT:    vpshuflw {{.*#+}} xmm5 = xmm2[0,1,1,3,4,5,6,7]6716; AVX512-NEXT:    vpshuflw {{.*#+}} xmm7 = xmm2[2,1,3,3,4,5,6,7]6717; AVX512-NEXT:    vinserti128 $1, %xmm7, %ymm5, %ymm56718; AVX512-NEXT:    vmovdqu %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6719; AVX512-NEXT:    vpshufhw {{.*#+}} xmm5 = xmm2[0,1,2,3,4,5,5,7]6720; AVX512-NEXT:    vpshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,6,5,7,7]6721; AVX512-NEXT:    vinserti128 $1, %xmm2, %ymm5, %ymm26722; AVX512-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6723; AVX512-NEXT:    vpunpcklbw {{.*#+}} xmm2 = xmm1[0],xmm0[0],xmm1[1],xmm0[1],xmm1[2],xmm0[2],xmm1[3],xmm0[3],xmm1[4],xmm0[4],xmm1[5],xmm0[5],xmm1[6],xmm0[6],xmm1[7],xmm0[7]6724; AVX512-NEXT:    vpshuflw {{.*#+}} xmm5 = xmm2[0,0,2,1,4,5,6,7]6725; AVX512-NEXT:    vpshuflw {{.*#+}} xmm9 = xmm2[0,2,2,3,4,5,6,7]6726; AVX512-NEXT:    vinserti128 $1, %xmm9, %ymm5, %ymm56727; AVX512-NEXT:    vmovdqu %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6728; AVX512-NEXT:    vpshufhw {{.*#+}} xmm5 = xmm2[0,1,2,3,4,4,6,5]6729; AVX512-NEXT:    vpshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,6,6,7]6730; AVX512-NEXT:    vinserti128 $1, %xmm2, %ymm5, %ymm26731; AVX512-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6732; AVX512-NEXT:    vpunpcklbw {{.*#+}} xmm2 = 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]6733; AVX512-NEXT:    vpshuflw {{.*#+}} xmm5 = xmm2[0,0,2,1,4,5,6,7]6734; AVX512-NEXT:    vpshuflw {{.*#+}} xmm9 = xmm2[0,2,2,3,4,5,6,7]6735; AVX512-NEXT:    vinserti128 $1, %xmm9, %ymm5, %ymm56736; AVX512-NEXT:    vmovdqu %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6737; AVX512-NEXT:    vpshufhw {{.*#+}} xmm5 = xmm2[0,1,2,3,4,4,6,5]6738; AVX512-NEXT:    vpshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,6,6,7]6739; AVX512-NEXT:    vinserti128 $1, %xmm2, %ymm5, %ymm26740; AVX512-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6741; AVX512-NEXT:    vpunpcklbw {{.*#+}} xmm2 = 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]6742; AVX512-NEXT:    vpshuflw {{.*#+}} xmm5 = xmm2[0,1,1,3,4,5,6,7]6743; AVX512-NEXT:    vpshuflw {{.*#+}} xmm9 = xmm2[2,1,3,3,4,5,6,7]6744; AVX512-NEXT:    vinserti128 $1, %xmm9, %ymm5, %ymm56745; AVX512-NEXT:    vmovdqu %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6746; AVX512-NEXT:    vmovdqa 32(%rdx), %xmm56747; AVX512-NEXT:    vpshufhw {{.*#+}} xmm9 = xmm2[0,1,2,3,4,5,5,7]6748; AVX512-NEXT:    vpshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,6,5,7,7]6749; AVX512-NEXT:    vinserti32x4 $1, %xmm2, %ymm9, %ymm266750; AVX512-NEXT:    vmovdqa 32(%r10), %xmm26751; AVX512-NEXT:    vpunpckhbw {{.*#+}} xmm1 = 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]6752; AVX512-NEXT:    vpshuflw {{.*#+}} xmm0 = xmm1[0,0,2,1,4,5,6,7]6753; AVX512-NEXT:    vpshuflw {{.*#+}} xmm9 = xmm1[0,2,2,3,4,5,6,7]6754; AVX512-NEXT:    vinserti32x4 $1, %xmm9, %ymm0, %ymm286755; AVX512-NEXT:    vmovdqa 32(%rax), %xmm06756; AVX512-NEXT:    vpshufhw {{.*#+}} xmm9 = xmm1[0,1,2,3,4,4,6,5]6757; AVX512-NEXT:    vpshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,6,6,7]6758; AVX512-NEXT:    vinserti32x4 $1, %xmm1, %ymm9, %ymm296759; AVX512-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]6760; AVX512-NEXT:    vpshuflw {{.*#+}} xmm3 = xmm1[0,0,2,1,4,5,6,7]6761; AVX512-NEXT:    vpshuflw {{.*#+}} xmm4 = xmm1[0,2,2,3,4,5,6,7]6762; AVX512-NEXT:    vinserti32x4 $1, %xmm4, %ymm3, %ymm256763; AVX512-NEXT:    vpshufhw {{.*#+}} xmm3 = xmm1[0,1,2,3,4,4,6,5]6764; AVX512-NEXT:    vpshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,6,6,7]6765; AVX512-NEXT:    vinserti32x4 $1, %xmm1, %ymm3, %ymm236766; AVX512-NEXT:    vpunpckhbw {{.*#+}} xmm1 = 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]6767; AVX512-NEXT:    vpshuflw {{.*#+}} xmm3 = xmm1[0,1,1,3,4,5,6,7]6768; AVX512-NEXT:    vpshuflw {{.*#+}} xmm4 = xmm1[2,1,3,3,4,5,6,7]6769; AVX512-NEXT:    vinserti32x4 $1, %xmm4, %ymm3, %ymm196770; AVX512-NEXT:    vpshufhw {{.*#+}} xmm3 = xmm1[0,1,2,3,4,5,5,7]6771; AVX512-NEXT:    vpshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,6,5,7,7]6772; AVX512-NEXT:    vinserti32x4 $1, %xmm1, %ymm3, %ymm176773; AVX512-NEXT:    vpunpcklbw {{.*#+}} xmm1 = xmm5[0],xmm12[0],xmm5[1],xmm12[1],xmm5[2],xmm12[2],xmm5[3],xmm12[3],xmm5[4],xmm12[4],xmm5[5],xmm12[5],xmm5[6],xmm12[6],xmm5[7],xmm12[7]6774; AVX512-NEXT:    vpshuflw {{.*#+}} xmm3 = xmm1[0,0,2,1,4,5,6,7]6775; AVX512-NEXT:    vpshuflw {{.*#+}} xmm4 = xmm1[0,2,2,3,4,5,6,7]6776; AVX512-NEXT:    vinserti32x4 $1, %xmm4, %ymm3, %ymm166777; AVX512-NEXT:    vpshufhw {{.*#+}} xmm3 = xmm1[0,1,2,3,4,4,6,5]6778; AVX512-NEXT:    vpshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,6,6,7]6779; AVX512-NEXT:    vinserti128 $1, %xmm1, %ymm3, %ymm146780; AVX512-NEXT:    vpunpcklbw {{.*#+}} xmm1 = 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]6781; AVX512-NEXT:    vpshuflw {{.*#+}} xmm3 = xmm1[0,0,2,1,4,5,6,7]6782; AVX512-NEXT:    vpshuflw {{.*#+}} xmm6 = xmm1[0,2,2,3,4,5,6,7]6783; AVX512-NEXT:    vinserti32x4 $1, %xmm6, %ymm3, %ymm206784; AVX512-NEXT:    vpshufhw {{.*#+}} xmm3 = xmm1[0,1,2,3,4,4,6,5]6785; AVX512-NEXT:    vpshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,6,6,7]6786; AVX512-NEXT:    vinserti32x4 $1, %xmm1, %ymm3, %ymm186787; AVX512-NEXT:    vmovdqa 32(%r9), %xmm16788; AVX512-NEXT:    vmovdqa 32(%r8), %xmm36789; AVX512-NEXT:    vpunpcklbw {{.*#+}} xmm6 = 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]6790; AVX512-NEXT:    vpshuflw {{.*#+}} xmm8 = xmm6[0,1,1,3,4,5,6,7]6791; AVX512-NEXT:    vpshuflw {{.*#+}} xmm9 = xmm6[2,1,3,3,4,5,6,7]6792; AVX512-NEXT:    vinserti128 $1, %xmm9, %ymm8, %ymm156793; AVX512-NEXT:    vpshufhw {{.*#+}} xmm8 = xmm6[0,1,2,3,4,5,5,7]6794; AVX512-NEXT:    vpshufhw {{.*#+}} xmm6 = xmm6[0,1,2,3,6,5,7,7]6795; AVX512-NEXT:    vinserti128 $1, %xmm6, %ymm8, %ymm136796; AVX512-NEXT:    vpunpckhbw {{.*#+}} xmm5 = xmm5[8],xmm12[8],xmm5[9],xmm12[9],xmm5[10],xmm12[10],xmm5[11],xmm12[11],xmm5[12],xmm12[12],xmm5[13],xmm12[13],xmm5[14],xmm12[14],xmm5[15],xmm12[15]6797; AVX512-NEXT:    vpshuflw {{.*#+}} xmm6 = xmm5[0,0,2,1,4,5,6,7]6798; AVX512-NEXT:    vpshuflw {{.*#+}} xmm8 = xmm5[0,2,2,3,4,5,6,7]6799; AVX512-NEXT:    vinserti128 $1, %xmm8, %ymm6, %ymm46800; AVX512-NEXT:    vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6801; AVX512-NEXT:    vpshufhw {{.*#+}} xmm6 = xmm5[0,1,2,3,4,4,6,5]6802; AVX512-NEXT:    vpshufhw {{.*#+}} xmm5 = xmm5[0,1,2,3,4,6,6,7]6803; AVX512-NEXT:    vinserti128 $1, %xmm5, %ymm6, %ymm46804; AVX512-NEXT:    vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6805; AVX512-NEXT:    vpunpckhbw {{.*#+}} xmm0 = 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]6806; AVX512-NEXT:    vpshuflw {{.*#+}} xmm2 = xmm0[0,0,2,1,4,5,6,7]6807; AVX512-NEXT:    vpshuflw {{.*#+}} xmm5 = xmm0[0,2,2,3,4,5,6,7]6808; AVX512-NEXT:    vinserti128 $1, %xmm5, %ymm2, %ymm26809; AVX512-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6810; AVX512-NEXT:    vpshufhw {{.*#+}} xmm2 = xmm0[0,1,2,3,4,4,6,5]6811; AVX512-NEXT:    vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,6,6,7]6812; AVX512-NEXT:    vinserti128 $1, %xmm0, %ymm2, %ymm06813; AVX512-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6814; AVX512-NEXT:    vpunpckhbw {{.*#+}} xmm0 = 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]6815; AVX512-NEXT:    vpshuflw {{.*#+}} xmm1 = xmm0[0,1,1,3,4,5,6,7]6816; AVX512-NEXT:    vpshuflw {{.*#+}} xmm2 = xmm0[2,1,3,3,4,5,6,7]6817; AVX512-NEXT:    vinserti128 $1, %xmm2, %ymm1, %ymm16818; AVX512-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6819; AVX512-NEXT:    vpshufhw {{.*#+}} xmm1 = xmm0[0,1,2,3,4,5,5,7]6820; AVX512-NEXT:    vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,6,5,7,7]6821; AVX512-NEXT:    vinserti128 $1, %xmm0, %ymm1, %ymm06822; AVX512-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6823; AVX512-NEXT:    vmovdqa 16(%rcx), %xmm46824; AVX512-NEXT:    vmovdqa 16(%rdx), %xmm36825; AVX512-NEXT:    vpunpcklbw {{.*#+}} xmm0 = 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]6826; AVX512-NEXT:    vpshuflw {{.*#+}} xmm1 = xmm0[0,0,2,1,4,5,6,7]6827; AVX512-NEXT:    vpshuflw {{.*#+}} xmm5 = xmm0[0,2,2,3,4,5,6,7]6828; AVX512-NEXT:    vinserti128 $1, %xmm5, %ymm1, %ymm16829; AVX512-NEXT:    vmovdqu %ymm1, (%rsp) # 32-byte Spill6830; AVX512-NEXT:    vpshufhw {{.*#+}} xmm1 = xmm0[0,1,2,3,4,4,6,5]6831; AVX512-NEXT:    vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,6,6,7]6832; AVX512-NEXT:    vinserti128 $1, %xmm0, %ymm1, %ymm06833; AVX512-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6834; AVX512-NEXT:    vmovdqa 16(%r10), %xmm96835; AVX512-NEXT:    vmovdqa 16(%rax), %xmm86836; AVX512-NEXT:    vpunpcklbw {{.*#+}} xmm0 = 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]6837; AVX512-NEXT:    vpshuflw {{.*#+}} xmm1 = xmm0[0,0,2,1,4,5,6,7]6838; AVX512-NEXT:    vpshuflw {{.*#+}} xmm5 = xmm0[0,2,2,3,4,5,6,7]6839; AVX512-NEXT:    vinserti32x4 $1, %xmm5, %ymm1, %ymm306840; AVX512-NEXT:    vpshufhw {{.*#+}} xmm1 = xmm0[0,1,2,3,4,4,6,5]6841; AVX512-NEXT:    vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,6,6,7]6842; AVX512-NEXT:    vinserti32x4 $1, %xmm0, %ymm1, %ymm316843; AVX512-NEXT:    vmovdqa 16(%r9), %xmm66844; AVX512-NEXT:    vmovdqa 16(%r8), %xmm56845; AVX512-NEXT:    vpunpcklbw {{.*#+}} xmm2 = xmm5[0],xmm6[0],xmm5[1],xmm6[1],xmm5[2],xmm6[2],xmm5[3],xmm6[3],xmm5[4],xmm6[4],xmm5[5],xmm6[5],xmm5[6],xmm6[6],xmm5[7],xmm6[7]6846; AVX512-NEXT:    vpshuflw {{.*#+}} xmm1 = xmm2[0,1,1,3,4,5,6,7]6847; AVX512-NEXT:    vpshuflw {{.*#+}} xmm11 = xmm2[2,1,3,3,4,5,6,7]6848; AVX512-NEXT:    vinserti32x4 $1, %xmm11, %ymm1, %ymm276849; AVX512-NEXT:    vmovdqa 48(%rsi), %xmm16850; AVX512-NEXT:    vmovdqa 48(%rdi), %xmm116851; AVX512-NEXT:    vpunpcklbw {{.*#+}} xmm0 = xmm11[0],xmm1[0],xmm11[1],xmm1[1],xmm11[2],xmm1[2],xmm11[3],xmm1[3],xmm11[4],xmm1[4],xmm11[5],xmm1[5],xmm11[6],xmm1[6],xmm11[7],xmm1[7]6852; AVX512-NEXT:    vpunpckhbw {{.*#+}} xmm1 = xmm11[8],xmm1[8],xmm11[9],xmm1[9],xmm11[10],xmm1[10],xmm11[11],xmm1[11],xmm11[12],xmm1[12],xmm11[13],xmm1[13],xmm11[14],xmm1[14],xmm11[15],xmm1[15]6853; AVX512-NEXT:    vmovdqa (%rsi), %xmm76854; AVX512-NEXT:    vmovdqa (%rdi), %xmm126855; AVX512-NEXT:    vpunpckhbw {{.*#+}} xmm11 = xmm12[8],xmm7[8],xmm12[9],xmm7[9],xmm12[10],xmm7[10],xmm12[11],xmm7[11],xmm12[12],xmm7[12],xmm12[13],xmm7[13],xmm12[14],xmm7[14],xmm12[15],xmm7[15]6856; AVX512-NEXT:    vmovdqa64 %xmm7, %xmm216857; AVX512-NEXT:    vpmovzxwq {{.*#+}} zmm22 = xmm11[0],zero,zero,zero,xmm11[1],zero,zero,zero,xmm11[2],zero,zero,zero,xmm11[3],zero,zero,zero,xmm11[4],zero,zero,zero,xmm11[5],zero,zero,zero,xmm11[6],zero,zero,zero,xmm11[7],zero,zero,zero6858; AVX512-NEXT:    vpmovzxwq {{.*#+}} zmm24 = xmm0[0],zero,zero,zero,xmm0[1],zero,zero,zero,xmm0[2],zero,zero,zero,xmm0[3],zero,zero,zero,xmm0[4],zero,zero,zero,xmm0[5],zero,zero,zero,xmm0[6],zero,zero,zero,xmm0[7],zero,zero,zero6859; AVX512-NEXT:    vpshufd {{.*#+}} ymm0 = ymm10[0,1,1,3,4,5,5,7]6860; AVX512-NEXT:    vpshufd $246, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Folded Reload6861; AVX512-NEXT:    # ymm11 = mem[2,1,3,3,6,5,7,7]6862; AVX512-NEXT:    vinserti64x4 $1, %ymm11, %zmm0, %zmm06863; AVX512-NEXT:    vpbroadcastq {{.*#+}} zmm11 = [65535,0,65535,65535,65535,0,65535,65535,65535,0,65535,65535,65535,0,65535,65535,65535,0,65535,65535,65535,0,65535,65535,65535,0,65535,65535,65535,0,65535,65535]6864; AVX512-NEXT:    vpternlogq {{.*#+}} zmm22 = zmm22 | (zmm0 & ~zmm11)6865; AVX512-NEXT:    vpshufd $96, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Folded Reload6866; AVX512-NEXT:    # ymm0 = mem[0,0,2,1,4,4,6,5]6867; AVX512-NEXT:    vpshufd $232, {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Folded Reload6868; AVX512-NEXT:    # ymm7 = mem[0,2,2,3,4,6,6,7]6869; AVX512-NEXT:    vinserti64x4 $1, %ymm7, %zmm0, %zmm06870; AVX512-NEXT:    vpshufd $96, {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Folded Reload6871; AVX512-NEXT:    # ymm7 = mem[0,0,2,1,4,4,6,5]6872; AVX512-NEXT:    vpshufd $232, {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Folded Reload6873; AVX512-NEXT:    # ymm10 = mem[0,2,2,3,4,6,6,7]6874; AVX512-NEXT:    vinserti64x4 $1, %ymm10, %zmm7, %zmm106875; AVX512-NEXT:    vpbroadcastq {{.*#+}} zmm7 = [65535,65535,65535,0,65535,65535,65535,0,65535,65535,65535,0,65535,65535,65535,0,65535,65535,65535,0,65535,65535,65535,0,65535,65535,65535,0,65535,65535,65535,0]6876; AVX512-NEXT:    vpandnq %zmm0, %zmm7, %zmm06877; AVX512-NEXT:    vpandq %zmm7, %zmm10, %zmm106878; AVX512-NEXT:    movw $-21846, %ax # imm = 0xAAAA6879; AVX512-NEXT:    kmovw %eax, %k16880; AVX512-NEXT:    vpord %zmm0, %zmm10, %zmm22 {%k1}6881; AVX512-NEXT:    vpshufd $212, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Folded Reload6882; AVX512-NEXT:    # ymm0 = mem[0,1,1,3,4,5,5,7]6883; AVX512-NEXT:    vpshufd $246, {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Folded Reload6884; AVX512-NEXT:    # ymm10 = mem[2,1,3,3,6,5,7,7]6885; AVX512-NEXT:    vinserti64x4 $1, %ymm10, %zmm0, %zmm06886; AVX512-NEXT:    vpternlogq {{.*#+}} zmm24 = zmm24 | (zmm0 & ~zmm11)6887; AVX512-NEXT:    vpshufd $96, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Folded Reload6888; AVX512-NEXT:    # ymm0 = mem[0,0,2,1,4,4,6,5]6889; AVX512-NEXT:    vpshufd $232, {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Folded Reload6890; AVX512-NEXT:    # ymm10 = mem[0,2,2,3,4,6,6,7]6891; AVX512-NEXT:    vinserti64x4 $1, %ymm10, %zmm0, %zmm06892; AVX512-NEXT:    vpshufd $96, {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Folded Reload6893; AVX512-NEXT:    # ymm10 = mem[0,0,2,1,4,4,6,5]6894; AVX512-NEXT:    vpshufd {{.*#+}} ymm26 = ymm26[0,2,2,3,4,6,6,7]6895; AVX512-NEXT:    vinserti64x4 $1, %ymm26, %zmm10, %zmm106896; AVX512-NEXT:    vpandnq %zmm0, %zmm7, %zmm06897; AVX512-NEXT:    vpandq %zmm7, %zmm10, %zmm106898; AVX512-NEXT:    vpord %zmm0, %zmm10, %zmm24 {%k1}6899; AVX512-NEXT:    vpshufd {{.*#+}} ymm0 = ymm28[0,1,1,3,4,5,5,7]6900; AVX512-NEXT:    vpshufd {{.*#+}} ymm10 = ymm29[2,1,3,3,6,5,7,7]6901; AVX512-NEXT:    vinserti64x4 $1, %ymm10, %zmm0, %zmm06902; AVX512-NEXT:    vpmovzxwq {{.*#+}} zmm10 = xmm1[0],zero,zero,zero,xmm1[1],zero,zero,zero,xmm1[2],zero,zero,zero,xmm1[3],zero,zero,zero,xmm1[4],zero,zero,zero,xmm1[5],zero,zero,zero,xmm1[6],zero,zero,zero,xmm1[7],zero,zero,zero6903; AVX512-NEXT:    vpternlogq {{.*#+}} zmm10 = zmm10 | (zmm0 & ~zmm11)6904; AVX512-NEXT:    vpshufd {{.*#+}} ymm0 = ymm25[0,0,2,1,4,4,6,5]6905; AVX512-NEXT:    vpshufd {{.*#+}} ymm1 = ymm23[0,2,2,3,4,6,6,7]6906; AVX512-NEXT:    vinserti64x4 $1, %ymm1, %zmm0, %zmm06907; AVX512-NEXT:    vpshufd {{.*#+}} ymm1 = ymm19[0,0,2,1,4,4,6,5]6908; AVX512-NEXT:    vpshufd {{.*#+}} ymm17 = ymm17[0,2,2,3,4,6,6,7]6909; AVX512-NEXT:    vinserti64x4 $1, %ymm17, %zmm1, %zmm16910; AVX512-NEXT:    vpandnq %zmm0, %zmm7, %zmm06911; AVX512-NEXT:    vpandq %zmm7, %zmm1, %zmm16912; AVX512-NEXT:    vpord %zmm0, %zmm1, %zmm10 {%k1}6913; AVX512-NEXT:    vpshufd {{.*#+}} ymm0 = ymm16[0,1,1,3,4,5,5,7]6914; AVX512-NEXT:    vpshufd {{.*#+}} ymm1 = ymm14[2,1,3,3,6,5,7,7]6915; AVX512-NEXT:    vinserti64x4 $1, %ymm1, %zmm0, %zmm16916; AVX512-NEXT:    vpshufhw {{.*#+}} xmm0 = xmm2[0,1,2,3,4,5,5,7]6917; AVX512-NEXT:    vpshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,6,5,7,7]6918; AVX512-NEXT:    vinserti32x4 $1, %xmm2, %ymm0, %ymm176919; AVX512-NEXT:    vpunpckhbw {{.*#+}} xmm2 = xmm3[8],xmm4[8],xmm3[9],xmm4[9],xmm3[10],xmm4[10],xmm3[11],xmm4[11],xmm3[12],xmm4[12],xmm3[13],xmm4[13],xmm3[14],xmm4[14],xmm3[15],xmm4[15]6920; AVX512-NEXT:    vpshuflw {{.*#+}} xmm0 = xmm2[0,0,2,1,4,5,6,7]6921; AVX512-NEXT:    vpshuflw {{.*#+}} xmm3 = xmm2[0,2,2,3,4,5,6,7]6922; AVX512-NEXT:    vinserti32x4 $1, %xmm3, %ymm0, %ymm196923; AVX512-NEXT:    vmovdqa 32(%rsi), %xmm146924; AVX512-NEXT:    vmovdqa 32(%rdi), %xmm06925; AVX512-NEXT:    vpunpcklbw {{.*#+}} xmm3 = 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]6926; AVX512-NEXT:    vpmovzxwq {{.*#+}} zmm4 = xmm3[0],zero,zero,zero,xmm3[1],zero,zero,zero,xmm3[2],zero,zero,zero,xmm3[3],zero,zero,zero,xmm3[4],zero,zero,zero,xmm3[5],zero,zero,zero,xmm3[6],zero,zero,zero,xmm3[7],zero,zero,zero6927; AVX512-NEXT:    vpternlogq {{.*#+}} zmm4 = zmm4 | (zmm1 & ~zmm11)6928; AVX512-NEXT:    vpshufd {{.*#+}} ymm1 = ymm20[0,0,2,1,4,4,6,5]6929; AVX512-NEXT:    vpshufd {{.*#+}} ymm3 = ymm18[0,2,2,3,4,6,6,7]6930; AVX512-NEXT:    vinserti64x4 $1, %ymm3, %zmm1, %zmm16931; AVX512-NEXT:    vpshufd {{.*#+}} ymm3 = ymm15[0,0,2,1,4,4,6,5]6932; AVX512-NEXT:    vpshufd {{.*#+}} ymm13 = ymm13[0,2,2,3,4,6,6,7]6933; AVX512-NEXT:    vinserti64x4 $1, %ymm13, %zmm3, %zmm36934; AVX512-NEXT:    vpandnq %zmm1, %zmm7, %zmm16935; AVX512-NEXT:    vpandq %zmm7, %zmm3, %zmm36936; AVX512-NEXT:    vpord %zmm1, %zmm3, %zmm4 {%k1}6937; AVX512-NEXT:    vpshufhw {{.*#+}} xmm1 = xmm2[0,1,2,3,4,4,6,5]6938; AVX512-NEXT:    vpshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,6,6,7]6939; AVX512-NEXT:    vinserti32x4 $1, %xmm2, %ymm1, %ymm206940; AVX512-NEXT:    vpunpckhbw {{.*#+}} xmm2 = xmm8[8],xmm9[8],xmm8[9],xmm9[9],xmm8[10],xmm9[10],xmm8[11],xmm9[11],xmm8[12],xmm9[12],xmm8[13],xmm9[13],xmm8[14],xmm9[14],xmm8[15],xmm9[15]6941; AVX512-NEXT:    vpshuflw {{.*#+}} xmm3 = xmm2[0,0,2,1,4,5,6,7]6942; AVX512-NEXT:    vpshuflw {{.*#+}} xmm8 = xmm2[0,2,2,3,4,5,6,7]6943; AVX512-NEXT:    vinserti32x4 $1, %xmm8, %ymm3, %ymm236944; AVX512-NEXT:    vpshufhw {{.*#+}} xmm3 = xmm2[0,1,2,3,4,4,6,5]6945; AVX512-NEXT:    vpshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,6,6,7]6946; AVX512-NEXT:    vinserti128 $1, %xmm2, %ymm3, %ymm96947; AVX512-NEXT:    vpunpckhbw {{.*#+}} xmm3 = xmm5[8],xmm6[8],xmm5[9],xmm6[9],xmm5[10],xmm6[10],xmm5[11],xmm6[11],xmm5[12],xmm6[12],xmm5[13],xmm6[13],xmm5[14],xmm6[14],xmm5[15],xmm6[15]6948; AVX512-NEXT:    vpshuflw {{.*#+}} xmm2 = xmm3[0,1,1,3,4,5,6,7]6949; AVX512-NEXT:    vpshuflw {{.*#+}} xmm5 = xmm3[2,1,3,3,4,5,6,7]6950; AVX512-NEXT:    vinserti128 $1, %xmm5, %ymm2, %ymm26951; AVX512-NEXT:    vpshufhw {{.*#+}} xmm5 = xmm3[0,1,2,3,4,5,5,7]6952; AVX512-NEXT:    vpshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,6,5,7,7]6953; AVX512-NEXT:    vinserti128 $1, %xmm3, %ymm5, %ymm36954; AVX512-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload6955; AVX512-NEXT:    vpunpcklbw {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm5 # 16-byte Folded Reload6956; AVX512-NEXT:    # xmm5 = 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]6957; AVX512-NEXT:    vpshuflw {{.*#+}} xmm6 = xmm5[0,0,2,1,4,5,6,7]6958; AVX512-NEXT:    vpshuflw {{.*#+}} xmm13 = xmm5[0,2,2,3,4,5,6,7]6959; AVX512-NEXT:    vinserti128 $1, %xmm13, %ymm6, %ymm136960; AVX512-NEXT:    vpshufhw {{.*#+}} xmm6 = xmm5[0,1,2,3,4,4,6,5]6961; AVX512-NEXT:    vpshufhw {{.*#+}} xmm5 = xmm5[0,1,2,3,4,6,6,7]6962; AVX512-NEXT:    vinserti128 $1, %xmm5, %ymm6, %ymm156963; AVX512-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload6964; AVX512-NEXT:    vpunpcklbw {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm5 # 16-byte Folded Reload6965; AVX512-NEXT:    # xmm5 = 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]6966; AVX512-NEXT:    vpshuflw {{.*#+}} xmm6 = xmm5[0,0,2,1,4,5,6,7]6967; AVX512-NEXT:    vpshuflw {{.*#+}} xmm1 = xmm5[0,2,2,3,4,5,6,7]6968; AVX512-NEXT:    vinserti32x4 $1, %xmm1, %ymm6, %ymm166969; AVX512-NEXT:    vpshufhw {{.*#+}} xmm1 = xmm5[0,1,2,3,4,4,6,5]6970; AVX512-NEXT:    vpshufhw {{.*#+}} xmm5 = xmm5[0,1,2,3,4,6,6,7]6971; AVX512-NEXT:    vinserti32x4 $1, %xmm5, %ymm1, %ymm186972; AVX512-NEXT:    vpunpckhbw {{.*#+}} 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]6973; AVX512-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload6974; AVX512-NEXT:    vpunpcklbw {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload6975; AVX512-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]6976; AVX512-NEXT:    vpshuflw {{.*#+}} xmm5 = xmm1[0,1,1,3,4,5,6,7]6977; AVX512-NEXT:    vpshuflw {{.*#+}} xmm6 = xmm1[2,1,3,3,4,5,6,7]6978; AVX512-NEXT:    vinserti128 $1, %xmm6, %ymm5, %ymm56979; AVX512-NEXT:    vpshufhw {{.*#+}} xmm6 = xmm1[0,1,2,3,4,5,5,7]6980; AVX512-NEXT:    vpshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,6,5,7,7]6981; AVX512-NEXT:    vinserti128 $1, %xmm1, %ymm6, %ymm16982; AVX512-NEXT:    vmovdqa 16(%rsi), %xmm66983; AVX512-NEXT:    vmovdqa 16(%rdi), %xmm146984; AVX512-NEXT:    vpunpcklbw {{.*#+}} xmm8 = xmm14[0],xmm6[0],xmm14[1],xmm6[1],xmm14[2],xmm6[2],xmm14[3],xmm6[3],xmm14[4],xmm6[4],xmm14[5],xmm6[5],xmm14[6],xmm6[6],xmm14[7],xmm6[7]6985; AVX512-NEXT:    vpunpckhbw {{.*#+}} xmm6 = xmm14[8],xmm6[8],xmm14[9],xmm6[9],xmm14[10],xmm6[10],xmm14[11],xmm6[11],xmm14[12],xmm6[12],xmm14[13],xmm6[13],xmm14[14],xmm6[14],xmm14[15],xmm6[15]6986; AVX512-NEXT:    vmovdqa64 %xmm21, %xmm146987; AVX512-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]6988; AVX512-NEXT:    vpshufd $212, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Folded Reload6989; AVX512-NEXT:    # ymm14 = mem[0,1,1,3,4,5,5,7]6990; AVX512-NEXT:    vpshufd $246, {{[-0-9]+}}(%r{{[sb]}}p), %ymm25 # 32-byte Folded Reload6991; AVX512-NEXT:    # ymm25 = mem[2,1,3,3,6,5,7,7]6992; AVX512-NEXT:    vinserti64x4 $1, %ymm25, %zmm14, %zmm146993; AVX512-NEXT:    vpmovzxwq {{.*#+}} zmm0 = xmm0[0],zero,zero,zero,xmm0[1],zero,zero,zero,xmm0[2],zero,zero,zero,xmm0[3],zero,zero,zero,xmm0[4],zero,zero,zero,xmm0[5],zero,zero,zero,xmm0[6],zero,zero,zero,xmm0[7],zero,zero,zero6994; AVX512-NEXT:    vpternlogq {{.*#+}} zmm0 = zmm0 | (zmm14 & ~zmm11)6995; AVX512-NEXT:    vpmovzxwq {{.*#+}} zmm8 = xmm8[0],zero,zero,zero,xmm8[1],zero,zero,zero,xmm8[2],zero,zero,zero,xmm8[3],zero,zero,zero,xmm8[4],zero,zero,zero,xmm8[5],zero,zero,zero,xmm8[6],zero,zero,zero,xmm8[7],zero,zero,zero6996; AVX512-NEXT:    vpmovzxwq {{.*#+}} zmm6 = xmm6[0],zero,zero,zero,xmm6[1],zero,zero,zero,xmm6[2],zero,zero,zero,xmm6[3],zero,zero,zero,xmm6[4],zero,zero,zero,xmm6[5],zero,zero,zero,xmm6[6],zero,zero,zero,xmm6[7],zero,zero,zero6997; AVX512-NEXT:    vpmovzxwq {{.*#+}} zmm12 = xmm12[0],zero,zero,zero,xmm12[1],zero,zero,zero,xmm12[2],zero,zero,zero,xmm12[3],zero,zero,zero,xmm12[4],zero,zero,zero,xmm12[5],zero,zero,zero,xmm12[6],zero,zero,zero,xmm12[7],zero,zero,zero6998; AVX512-NEXT:    vpshufd $96, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Folded Reload6999; AVX512-NEXT:    # ymm14 = mem[0,0,2,1,4,4,6,5]7000; AVX512-NEXT:    vpshufd $232, {{[-0-9]+}}(%r{{[sb]}}p), %ymm25 # 32-byte Folded Reload7001; AVX512-NEXT:    # ymm25 = mem[0,2,2,3,4,6,6,7]7002; AVX512-NEXT:    vinserti64x4 $1, %ymm25, %zmm14, %zmm147003; AVX512-NEXT:    vpshufd $96, {{[-0-9]+}}(%r{{[sb]}}p), %ymm25 # 32-byte Folded Reload7004; AVX512-NEXT:    # ymm25 = mem[0,0,2,1,4,4,6,5]7005; AVX512-NEXT:    vpshufd $232, {{[-0-9]+}}(%r{{[sb]}}p), %ymm26 # 32-byte Folded Reload7006; AVX512-NEXT:    # ymm26 = mem[0,2,2,3,4,6,6,7]7007; AVX512-NEXT:    vinserti64x4 $1, %ymm26, %zmm25, %zmm257008; AVX512-NEXT:    vpandnq %zmm14, %zmm7, %zmm147009; AVX512-NEXT:    vpandq %zmm7, %zmm25, %zmm257010; AVX512-NEXT:    vpord %zmm14, %zmm25, %zmm0 {%k1}7011; AVX512-NEXT:    vpshufd $212, (%rsp), %ymm14 # 32-byte Folded Reload7012; AVX512-NEXT:    # ymm14 = mem[0,1,1,3,4,5,5,7]7013; AVX512-NEXT:    vpshufd $246, {{[-0-9]+}}(%r{{[sb]}}p), %ymm25 # 32-byte Folded Reload7014; AVX512-NEXT:    # ymm25 = mem[2,1,3,3,6,5,7,7]7015; AVX512-NEXT:    vinserti64x4 $1, %ymm25, %zmm14, %zmm147016; AVX512-NEXT:    vpternlogq {{.*#+}} zmm8 = zmm8 | (zmm14 & ~zmm11)7017; AVX512-NEXT:    vpshufd {{.*#+}} ymm14 = ymm30[0,0,2,1,4,4,6,5]7018; AVX512-NEXT:    vpshufd {{.*#+}} ymm25 = ymm31[0,2,2,3,4,6,6,7]7019; AVX512-NEXT:    vinserti64x4 $1, %ymm25, %zmm14, %zmm147020; AVX512-NEXT:    vpshufd {{.*#+}} ymm21 = ymm27[0,0,2,1,4,4,6,5]7021; AVX512-NEXT:    vpshufd {{.*#+}} ymm17 = ymm17[0,2,2,3,4,6,6,7]7022; AVX512-NEXT:    vinserti64x4 $1, %ymm17, %zmm21, %zmm177023; AVX512-NEXT:    vpandnq %zmm14, %zmm7, %zmm147024; AVX512-NEXT:    vpandq %zmm7, %zmm17, %zmm177025; AVX512-NEXT:    vpord %zmm14, %zmm17, %zmm8 {%k1}7026; AVX512-NEXT:    vpshufd {{.*#+}} ymm14 = ymm19[0,1,1,3,4,5,5,7]7027; AVX512-NEXT:    vpshufd {{.*#+}} ymm17 = ymm20[2,1,3,3,6,5,7,7]7028; AVX512-NEXT:    vinserti64x4 $1, %ymm17, %zmm14, %zmm147029; AVX512-NEXT:    vpternlogq {{.*#+}} zmm6 = zmm6 | (zmm14 & ~zmm11)7030; AVX512-NEXT:    vpshufd {{.*#+}} ymm14 = ymm23[0,0,2,1,4,4,6,5]7031; AVX512-NEXT:    vpshufd {{.*#+}} ymm9 = ymm9[0,2,2,3,4,6,6,7]7032; AVX512-NEXT:    vinserti64x4 $1, %ymm9, %zmm14, %zmm97033; AVX512-NEXT:    vpshufd {{.*#+}} ymm2 = ymm2[0,0,2,1,4,4,6,5]7034; AVX512-NEXT:    vpshufd {{.*#+}} ymm3 = ymm3[0,2,2,3,4,6,6,7]7035; AVX512-NEXT:    vinserti64x4 $1, %ymm3, %zmm2, %zmm27036; AVX512-NEXT:    vpandnq %zmm9, %zmm7, %zmm37037; AVX512-NEXT:    vpandq %zmm7, %zmm2, %zmm27038; AVX512-NEXT:    vpord %zmm3, %zmm2, %zmm6 {%k1}7039; AVX512-NEXT:    vpshufd {{.*#+}} ymm2 = ymm13[0,1,1,3,4,5,5,7]7040; AVX512-NEXT:    vpshufd {{.*#+}} ymm3 = ymm15[2,1,3,3,6,5,7,7]7041; AVX512-NEXT:    vinserti64x4 $1, %ymm3, %zmm2, %zmm27042; AVX512-NEXT:    vpternlogq {{.*#+}} zmm12 = zmm12 | (zmm2 & ~zmm11)7043; AVX512-NEXT:    vpshufd {{.*#+}} ymm2 = ymm16[0,0,2,1,4,4,6,5]7044; AVX512-NEXT:    vpshufd {{.*#+}} ymm3 = ymm18[0,2,2,3,4,6,6,7]7045; AVX512-NEXT:    vinserti64x4 $1, %ymm3, %zmm2, %zmm27046; AVX512-NEXT:    vpshufd {{.*#+}} ymm3 = ymm5[0,0,2,1,4,4,6,5]7047; AVX512-NEXT:    vpshufd {{.*#+}} ymm1 = ymm1[0,2,2,3,4,6,6,7]7048; AVX512-NEXT:    vinserti64x4 $1, %ymm1, %zmm3, %zmm17049; AVX512-NEXT:    vpandnq %zmm2, %zmm7, %zmm27050; AVX512-NEXT:    vpandq %zmm7, %zmm1, %zmm17051; AVX512-NEXT:    vpord %zmm2, %zmm1, %zmm12 {%k1}7052; AVX512-NEXT:    movq {{[0-9]+}}(%rsp), %rax7053; AVX512-NEXT:    vmovdqa64 %zmm12, (%rax)7054; AVX512-NEXT:    vmovdqa64 %zmm6, 192(%rax)7055; AVX512-NEXT:    vmovdqa64 %zmm8, 128(%rax)7056; AVX512-NEXT:    vmovdqa64 %zmm0, 320(%rax)7057; AVX512-NEXT:    vmovdqa64 %zmm4, 256(%rax)7058; AVX512-NEXT:    vmovdqa64 %zmm10, 448(%rax)7059; AVX512-NEXT:    vmovdqa64 %zmm24, 384(%rax)7060; AVX512-NEXT:    vmovdqa64 %zmm22, 64(%rax)7061; AVX512-NEXT:    addq $552, %rsp # imm = 0x2287062; AVX512-NEXT:    vzeroupper7063; AVX512-NEXT:    retq7064;7065; AVX512-FCP-LABEL: store_i8_stride8_vf64:7066; AVX512-FCP:       # %bb.0:7067; AVX512-FCP-NEXT:    subq $392, %rsp # imm = 0x1887068; AVX512-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax7069; AVX512-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r107070; AVX512-FCP-NEXT:    vmovdqa (%rcx), %xmm27071; AVX512-FCP-NEXT:    vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7072; AVX512-FCP-NEXT:    vmovdqa 48(%rcx), %xmm07073; AVX512-FCP-NEXT:    vmovdqa (%rdx), %xmm157074; AVX512-FCP-NEXT:    vmovdqa 48(%rdx), %xmm17075; AVX512-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm2 = 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]7076; AVX512-FCP-NEXT:    vinserti128 $1, %xmm2, %ymm2, %ymm27077; AVX512-FCP-NEXT:    vmovdqa {{.*#+}} ymm6 = [8,9,8,9,4,5,6,7,12,13,10,11,12,13,10,11,8,9,12,13,4,5,6,7,12,13,14,15,12,13,14,15]7078; AVX512-FCP-NEXT:    vpshufb %ymm6, %ymm2, %ymm37079; AVX512-FCP-NEXT:    vmovdqa {{.*#+}} ymm8 = [0,1,0,1,4,5,2,3,4,5,2,3,12,13,14,15,0,1,4,5,4,5,6,7,4,5,6,7,12,13,14,15]7080; AVX512-FCP-NEXT:    vpshufb %ymm8, %ymm2, %ymm27081; AVX512-FCP-NEXT:    vinserti64x4 $1, %ymm3, %zmm2, %zmm27082; AVX512-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7083; AVX512-FCP-NEXT:    vmovdqa (%r10), %xmm27084; AVX512-FCP-NEXT:    vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7085; AVX512-FCP-NEXT:    vmovdqa (%rax), %xmm147086; AVX512-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm2 = 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]7087; AVX512-FCP-NEXT:    vinserti128 $1, %xmm2, %ymm2, %ymm27088; AVX512-FCP-NEXT:    vmovdqa {{.*#+}} ymm11 = [0,1,2,3,8,9,8,9,8,9,8,9,12,13,10,11,0,1,2,3,8,9,12,13,8,9,12,13,12,13,14,15]7089; AVX512-FCP-NEXT:    vpshufb %ymm11, %ymm2, %ymm37090; AVX512-FCP-NEXT:    vmovdqa {{.*#+}} ymm10 = [0,1,0,1,0,1,0,1,8,9,10,11,4,5,2,3,0,1,4,5,0,1,4,5,8,9,10,11,4,5,6,7]7091; AVX512-FCP-NEXT:    vpshufb %ymm10, %ymm2, %ymm27092; AVX512-FCP-NEXT:    vinserti64x4 $1, %ymm3, %zmm2, %zmm197093; AVX512-FCP-NEXT:    vmovdqa (%r9), %xmm37094; AVX512-FCP-NEXT:    vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7095; AVX512-FCP-NEXT:    vmovdqa (%r8), %xmm27096; AVX512-FCP-NEXT:    vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7097; AVX512-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm2 = xmm2[8],xmm3[8],xmm2[9],xmm3[9],xmm2[10],xmm3[10],xmm2[11],xmm3[11],xmm2[12],xmm3[12],xmm2[13],xmm3[13],xmm2[14],xmm3[14],xmm2[15],xmm3[15]7098; AVX512-FCP-NEXT:    vinserti128 $1, %xmm2, %ymm2, %ymm27099; AVX512-FCP-NEXT:    vmovdqa {{.*#+}} ymm9 = [0,1,2,3,8,9,10,11,8,9,10,11,10,11,14,15,0,1,2,3,12,13,10,11,12,13,10,11,14,15,14,15]7100; AVX512-FCP-NEXT:    vpshufb %ymm9, %ymm2, %ymm37101; AVX512-FCP-NEXT:    vmovdqa {{.*#+}} ymm12 = [0,1,2,3,0,1,2,3,8,9,10,11,2,3,6,7,4,5,2,3,4,5,2,3,8,9,10,11,6,7,6,7]7102; AVX512-FCP-NEXT:    vpshufb %ymm12, %ymm2, %ymm27103; AVX512-FCP-NEXT:    vinserti64x4 $1, %ymm3, %zmm2, %zmm217104; AVX512-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm2 = xmm1[0],xmm0[0],xmm1[1],xmm0[1],xmm1[2],xmm0[2],xmm1[3],xmm0[3],xmm1[4],xmm0[4],xmm1[5],xmm0[5],xmm1[6],xmm0[6],xmm1[7],xmm0[7]7105; AVX512-FCP-NEXT:    vinserti128 $1, %xmm2, %ymm2, %ymm27106; AVX512-FCP-NEXT:    vpshufb %ymm6, %ymm2, %ymm37107; AVX512-FCP-NEXT:    vpshufb %ymm8, %ymm2, %ymm27108; AVX512-FCP-NEXT:    vinserti64x4 $1, %ymm3, %zmm2, %zmm27109; AVX512-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7110; AVX512-FCP-NEXT:    vmovdqa 48(%r10), %xmm27111; AVX512-FCP-NEXT:    vmovdqa 48(%rax), %xmm37112; AVX512-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm4 = xmm3[0],xmm2[0],xmm3[1],xmm2[1],xmm3[2],xmm2[2],xmm3[3],xmm2[3],xmm3[4],xmm2[4],xmm3[5],xmm2[5],xmm3[6],xmm2[6],xmm3[7],xmm2[7]7113; AVX512-FCP-NEXT:    vinserti128 $1, %xmm4, %ymm4, %ymm47114; AVX512-FCP-NEXT:    vpshufb %ymm11, %ymm4, %ymm57115; AVX512-FCP-NEXT:    vpshufb %ymm10, %ymm4, %ymm47116; AVX512-FCP-NEXT:    vinserti64x4 $1, %ymm5, %zmm4, %zmm47117; AVX512-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7118; AVX512-FCP-NEXT:    vmovdqa 48(%r9), %xmm47119; AVX512-FCP-NEXT:    vmovdqa 48(%r8), %xmm57120; AVX512-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm7 = xmm5[0],xmm4[0],xmm5[1],xmm4[1],xmm5[2],xmm4[2],xmm5[3],xmm4[3],xmm5[4],xmm4[4],xmm5[5],xmm4[5],xmm5[6],xmm4[6],xmm5[7],xmm4[7]7121; AVX512-FCP-NEXT:    vinserti128 $1, %xmm7, %ymm7, %ymm77122; AVX512-FCP-NEXT:    vpshufb %ymm9, %ymm7, %ymm137123; AVX512-FCP-NEXT:    vpshufb %ymm12, %ymm7, %ymm77124; AVX512-FCP-NEXT:    vinserti64x4 $1, %ymm13, %zmm7, %zmm77125; AVX512-FCP-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7126; AVX512-FCP-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]7127; AVX512-FCP-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm07128; AVX512-FCP-NEXT:    vpshufb %ymm6, %ymm0, %ymm17129; AVX512-FCP-NEXT:    vpshufb %ymm8, %ymm0, %ymm07130; AVX512-FCP-NEXT:    vinserti64x4 $1, %ymm1, %zmm0, %zmm07131; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7132; AVX512-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm0 = 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]7133; AVX512-FCP-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm07134; AVX512-FCP-NEXT:    vpshufb %ymm11, %ymm0, %ymm17135; AVX512-FCP-NEXT:    vpshufb %ymm10, %ymm0, %ymm07136; AVX512-FCP-NEXT:    vinserti64x4 $1, %ymm1, %zmm0, %zmm07137; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, (%rsp) # 64-byte Spill7138; AVX512-FCP-NEXT:    vmovdqa 32(%rcx), %xmm07139; AVX512-FCP-NEXT:    vmovdqa 32(%rdx), %xmm17140; AVX512-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm2 = 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]7141; AVX512-FCP-NEXT:    vinserti128 $1, %xmm2, %ymm2, %ymm27142; AVX512-FCP-NEXT:    vpshufb %ymm9, %ymm2, %ymm37143; AVX512-FCP-NEXT:    vpshufb %ymm12, %ymm2, %ymm27144; AVX512-FCP-NEXT:    vinserti64x4 $1, %ymm3, %zmm2, %zmm27145; AVX512-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7146; AVX512-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm2 = xmm1[0],xmm0[0],xmm1[1],xmm0[1],xmm1[2],xmm0[2],xmm1[3],xmm0[3],xmm1[4],xmm0[4],xmm1[5],xmm0[5],xmm1[6],xmm0[6],xmm1[7],xmm0[7]7147; AVX512-FCP-NEXT:    vinserti128 $1, %xmm2, %ymm2, %ymm27148; AVX512-FCP-NEXT:    vpshufb %ymm6, %ymm2, %ymm37149; AVX512-FCP-NEXT:    vpshufb %ymm8, %ymm2, %ymm27150; AVX512-FCP-NEXT:    vinserti64x4 $1, %ymm3, %zmm2, %zmm207151; AVX512-FCP-NEXT:    vmovdqa 32(%r10), %xmm27152; AVX512-FCP-NEXT:    vmovdqa 32(%rax), %xmm37153; AVX512-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm4 = xmm3[0],xmm2[0],xmm3[1],xmm2[1],xmm3[2],xmm2[2],xmm3[3],xmm2[3],xmm3[4],xmm2[4],xmm3[5],xmm2[5],xmm3[6],xmm2[6],xmm3[7],xmm2[7]7154; AVX512-FCP-NEXT:    vinserti128 $1, %xmm4, %ymm4, %ymm47155; AVX512-FCP-NEXT:    vpshufb %ymm11, %ymm4, %ymm57156; AVX512-FCP-NEXT:    vpshufb %ymm10, %ymm4, %ymm47157; AVX512-FCP-NEXT:    vinserti64x4 $1, %ymm5, %zmm4, %zmm227158; AVX512-FCP-NEXT:    vmovdqa 32(%r9), %xmm47159; AVX512-FCP-NEXT:    vmovdqa 32(%r8), %xmm57160; AVX512-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm7 = xmm5[0],xmm4[0],xmm5[1],xmm4[1],xmm5[2],xmm4[2],xmm5[3],xmm4[3],xmm5[4],xmm4[4],xmm5[5],xmm4[5],xmm5[6],xmm4[6],xmm5[7],xmm4[7]7161; AVX512-FCP-NEXT:    vinserti128 $1, %xmm7, %ymm7, %ymm77162; AVX512-FCP-NEXT:    vpshufb %ymm9, %ymm7, %ymm137163; AVX512-FCP-NEXT:    vpshufb %ymm12, %ymm7, %ymm77164; AVX512-FCP-NEXT:    vinserti64x4 $1, %ymm13, %zmm7, %zmm237165; AVX512-FCP-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]7166; AVX512-FCP-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm07167; AVX512-FCP-NEXT:    vpshufb %ymm6, %ymm0, %ymm17168; AVX512-FCP-NEXT:    vpshufb %ymm8, %ymm0, %ymm07169; AVX512-FCP-NEXT:    vinserti64x4 $1, %ymm1, %zmm0, %zmm247170; AVX512-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm0 = 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]7171; AVX512-FCP-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm07172; AVX512-FCP-NEXT:    vpshufb %ymm11, %ymm0, %ymm17173; AVX512-FCP-NEXT:    vpshufb %ymm10, %ymm0, %ymm07174; AVX512-FCP-NEXT:    vinserti64x4 $1, %ymm1, %zmm0, %zmm257175; AVX512-FCP-NEXT:    vmovdqa 16(%rcx), %xmm07176; AVX512-FCP-NEXT:    vmovdqa 16(%rdx), %xmm17177; AVX512-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm2 = 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]7178; AVX512-FCP-NEXT:    vinserti128 $1, %xmm2, %ymm2, %ymm27179; AVX512-FCP-NEXT:    vpshufb %ymm9, %ymm2, %ymm37180; AVX512-FCP-NEXT:    vpshufb %ymm12, %ymm2, %ymm27181; AVX512-FCP-NEXT:    vinserti64x4 $1, %ymm3, %zmm2, %zmm267182; AVX512-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm2 = xmm1[0],xmm0[0],xmm1[1],xmm0[1],xmm1[2],xmm0[2],xmm1[3],xmm0[3],xmm1[4],xmm0[4],xmm1[5],xmm0[5],xmm1[6],xmm0[6],xmm1[7],xmm0[7]7183; AVX512-FCP-NEXT:    vinserti128 $1, %xmm2, %ymm2, %ymm27184; AVX512-FCP-NEXT:    vpshufb %ymm6, %ymm2, %ymm37185; AVX512-FCP-NEXT:    vpshufb %ymm8, %ymm2, %ymm27186; AVX512-FCP-NEXT:    vinserti64x4 $1, %ymm3, %zmm2, %zmm277187; AVX512-FCP-NEXT:    vmovdqa 16(%r10), %xmm27188; AVX512-FCP-NEXT:    vmovdqa 16(%rax), %xmm37189; AVX512-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm4 = xmm3[0],xmm2[0],xmm3[1],xmm2[1],xmm3[2],xmm2[2],xmm3[3],xmm2[3],xmm3[4],xmm2[4],xmm3[5],xmm2[5],xmm3[6],xmm2[6],xmm3[7],xmm2[7]7190; AVX512-FCP-NEXT:    vinserti128 $1, %xmm4, %ymm4, %ymm47191; AVX512-FCP-NEXT:    vpshufb %ymm11, %ymm4, %ymm57192; AVX512-FCP-NEXT:    vpshufb %ymm10, %ymm4, %ymm47193; AVX512-FCP-NEXT:    vinserti64x4 $1, %ymm5, %zmm4, %zmm287194; AVX512-FCP-NEXT:    vmovdqa 16(%r9), %xmm47195; AVX512-FCP-NEXT:    vmovdqa 16(%r8), %xmm57196; AVX512-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm7 = xmm5[0],xmm4[0],xmm5[1],xmm4[1],xmm5[2],xmm4[2],xmm5[3],xmm4[3],xmm5[4],xmm4[4],xmm5[5],xmm4[5],xmm5[6],xmm4[6],xmm5[7],xmm4[7]7197; AVX512-FCP-NEXT:    vinserti128 $1, %xmm7, %ymm7, %ymm77198; AVX512-FCP-NEXT:    vpshufb %ymm9, %ymm7, %ymm137199; AVX512-FCP-NEXT:    vpshufb %ymm12, %ymm7, %ymm77200; AVX512-FCP-NEXT:    vinserti64x4 $1, %ymm13, %zmm7, %zmm297201; AVX512-FCP-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]7202; AVX512-FCP-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm07203; AVX512-FCP-NEXT:    vpshufb %ymm6, %ymm0, %ymm17204; AVX512-FCP-NEXT:    vpshufb %ymm8, %ymm0, %ymm07205; AVX512-FCP-NEXT:    vinserti64x4 $1, %ymm1, %zmm0, %zmm307206; AVX512-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm0 = 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]7207; AVX512-FCP-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm07208; AVX512-FCP-NEXT:    vpshufb %ymm11, %ymm0, %ymm17209; AVX512-FCP-NEXT:    vpshufb %ymm10, %ymm0, %ymm07210; AVX512-FCP-NEXT:    vinserti64x4 $1, %ymm1, %zmm0, %zmm317211; AVX512-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm0 = 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]7212; AVX512-FCP-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm07213; AVX512-FCP-NEXT:    vpshufb %ymm9, %ymm0, %ymm17214; AVX512-FCP-NEXT:    vmovdqa64 %ymm9, %ymm177215; AVX512-FCP-NEXT:    vpshufb %ymm12, %ymm0, %ymm07216; AVX512-FCP-NEXT:    vmovdqa64 %ymm12, %ymm187217; AVX512-FCP-NEXT:    vinserti64x4 $1, %ymm1, %zmm0, %zmm167218; AVX512-FCP-NEXT:    vmovdqa (%rsi), %xmm127219; AVX512-FCP-NEXT:    vmovdqa (%rdi), %xmm97220; AVX512-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm0 = 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]7221; AVX512-FCP-NEXT:    vpmovsxwq {{.*#+}} xmm5 = [1284,1798]7222; AVX512-FCP-NEXT:    vpmovzxwq {{.*#+}} xmm1 = xmm0[0],zero,zero,zero,xmm0[1],zero,zero,zero7223; AVX512-FCP-NEXT:    vpshufb %xmm5, %xmm0, %xmm27224; AVX512-FCP-NEXT:    vinserti128 $1, %xmm2, %ymm1, %ymm17225; AVX512-FCP-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm07226; AVX512-FCP-NEXT:    vpmovsxwq {{.*#+}} ymm4 = [2312,2826,3340,3854]7227; AVX512-FCP-NEXT:    vpshufb %ymm4, %ymm0, %ymm07228; AVX512-FCP-NEXT:    vinserti64x4 $1, %ymm0, %zmm1, %zmm37229; AVX512-FCP-NEXT:    vpbroadcastq {{.*#+}} zmm7 = [65535,0,65535,65535,65535,0,65535,65535,65535,0,65535,65535,65535,0,65535,65535,65535,0,65535,65535,65535,0,65535,65535,65535,0,65535,65535,65535,0,65535,65535]7230; AVX512-FCP-NEXT:    vpternlogq $226, {{[-0-9]+}}(%r{{[sb]}}p), %zmm7, %zmm3 # 64-byte Folded Reload7231; AVX512-FCP-NEXT:    # zmm3 = mem ^ (zmm7 & (zmm3 ^ mem))7232; AVX512-FCP-NEXT:    vpbroadcastq {{.*#+}} zmm2 = [65535,65535,65535,0,65535,65535,65535,0,65535,65535,65535,0,65535,65535,65535,0,65535,65535,65535,0,65535,65535,65535,0,65535,65535,65535,0,65535,65535,65535,0]7233; AVX512-FCP-NEXT:    vpandnq %zmm19, %zmm2, %zmm197234; AVX512-FCP-NEXT:    vpandq %zmm2, %zmm21, %zmm217235; AVX512-FCP-NEXT:    movw $-21846, %ax # imm = 0xAAAA7236; AVX512-FCP-NEXT:    kmovw %eax, %k17237; AVX512-FCP-NEXT:    vpord %zmm19, %zmm21, %zmm3 {%k1}7238; AVX512-FCP-NEXT:    vpunpcklbw {{[-0-9]+}}(%r{{[sb]}}p), %xmm15, %xmm15 # 16-byte Folded Reload7239; AVX512-FCP-NEXT:    # xmm15 = xmm15[0],mem[0],xmm15[1],mem[1],xmm15[2],mem[2],xmm15[3],mem[3],xmm15[4],mem[4],xmm15[5],mem[5],xmm15[6],mem[6],xmm15[7],mem[7]7240; AVX512-FCP-NEXT:    vinserti128 $1, %xmm15, %ymm15, %ymm157241; AVX512-FCP-NEXT:    vpshufb %ymm6, %ymm15, %ymm67242; AVX512-FCP-NEXT:    vpshufb %ymm8, %ymm15, %ymm87243; AVX512-FCP-NEXT:    vinserti64x4 $1, %ymm6, %zmm8, %zmm197244; AVX512-FCP-NEXT:    vmovdqa 48(%rsi), %xmm157245; AVX512-FCP-NEXT:    vmovdqa 48(%rdi), %xmm87246; AVX512-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm6 = xmm8[0],xmm15[0],xmm8[1],xmm15[1],xmm8[2],xmm15[2],xmm8[3],xmm15[3],xmm8[4],xmm15[4],xmm8[5],xmm15[5],xmm8[6],xmm15[6],xmm8[7],xmm15[7]7247; AVX512-FCP-NEXT:    vpshufb %xmm5, %xmm6, %xmm07248; AVX512-FCP-NEXT:    vpmovzxwq {{.*#+}} xmm21 = xmm6[0],zero,zero,zero,xmm6[1],zero,zero,zero7249; AVX512-FCP-NEXT:    vinserti32x4 $1, %xmm0, %ymm21, %ymm07250; AVX512-FCP-NEXT:    vinserti128 $1, %xmm6, %ymm6, %ymm67251; AVX512-FCP-NEXT:    vpshufb %ymm4, %ymm6, %ymm67252; AVX512-FCP-NEXT:    vinserti64x4 $1, %ymm6, %zmm0, %zmm67253; AVX512-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm0 = xmm8[8],xmm15[8],xmm8[9],xmm15[9],xmm8[10],xmm15[10],xmm8[11],xmm15[11],xmm8[12],xmm15[12],xmm8[13],xmm15[13],xmm8[14],xmm15[14],xmm8[15],xmm15[15]7254; AVX512-FCP-NEXT:    vpshufb %xmm5, %xmm0, %xmm87255; AVX512-FCP-NEXT:    vpmovzxwq {{.*#+}} xmm15 = xmm0[0],zero,zero,zero,xmm0[1],zero,zero,zero7256; AVX512-FCP-NEXT:    vinserti128 $1, %xmm8, %ymm15, %ymm87257; AVX512-FCP-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm07258; AVX512-FCP-NEXT:    vpshufb %ymm4, %ymm0, %ymm07259; AVX512-FCP-NEXT:    vinserti64x4 $1, %ymm0, %zmm8, %zmm157260; AVX512-FCP-NEXT:    vpunpcklbw {{[-0-9]+}}(%r{{[sb]}}p), %xmm14, %xmm0 # 16-byte Folded Reload7261; AVX512-FCP-NEXT:    # xmm0 = xmm14[0],mem[0],xmm14[1],mem[1],xmm14[2],mem[2],xmm14[3],mem[3],xmm14[4],mem[4],xmm14[5],mem[5],xmm14[6],mem[6],xmm14[7],mem[7]7262; AVX512-FCP-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm07263; AVX512-FCP-NEXT:    vpshufb %ymm11, %ymm0, %ymm87264; AVX512-FCP-NEXT:    vpshufb %ymm10, %ymm0, %ymm07265; AVX512-FCP-NEXT:    vinserti64x4 $1, %ymm8, %zmm0, %zmm137266; AVX512-FCP-NEXT:    vmovdqa 32(%rsi), %xmm07267; AVX512-FCP-NEXT:    vmovdqa 32(%rdi), %xmm87268; AVX512-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm11 = 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]7269; AVX512-FCP-NEXT:    vpshufb %xmm5, %xmm11, %xmm147270; AVX512-FCP-NEXT:    vpmovzxwq {{.*#+}} xmm21 = xmm11[0],zero,zero,zero,xmm11[1],zero,zero,zero7271; AVX512-FCP-NEXT:    vinserti32x4 $1, %xmm14, %ymm21, %ymm147272; AVX512-FCP-NEXT:    vinserti128 $1, %xmm11, %ymm11, %ymm117273; AVX512-FCP-NEXT:    vpshufb %ymm4, %ymm11, %ymm117274; AVX512-FCP-NEXT:    vinserti64x4 $1, %ymm11, %zmm14, %zmm117275; AVX512-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm0 = xmm8[8],xmm0[8],xmm8[9],xmm0[9],xmm8[10],xmm0[10],xmm8[11],xmm0[11],xmm8[12],xmm0[12],xmm8[13],xmm0[13],xmm8[14],xmm0[14],xmm8[15],xmm0[15]7276; AVX512-FCP-NEXT:    vpshufb %xmm5, %xmm0, %xmm87277; AVX512-FCP-NEXT:    vpmovzxwq {{.*#+}} xmm14 = xmm0[0],zero,zero,zero,xmm0[1],zero,zero,zero7278; AVX512-FCP-NEXT:    vinserti128 $1, %xmm8, %ymm14, %ymm87279; AVX512-FCP-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm07280; AVX512-FCP-NEXT:    vpshufb %ymm4, %ymm0, %ymm07281; AVX512-FCP-NEXT:    vinserti64x4 $1, %ymm0, %zmm8, %zmm147282; AVX512-FCP-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload7283; AVX512-FCP-NEXT:    vpunpcklbw {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload7284; AVX512-FCP-NEXT:    # xmm0 = 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]7285; AVX512-FCP-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm07286; AVX512-FCP-NEXT:    vmovdqa64 %ymm17, %ymm17287; AVX512-FCP-NEXT:    vpshufb %ymm1, %ymm0, %ymm87288; AVX512-FCP-NEXT:    vmovdqa64 %ymm18, %ymm17289; AVX512-FCP-NEXT:    vpshufb %ymm1, %ymm0, %ymm07290; AVX512-FCP-NEXT:    vinserti64x4 $1, %ymm8, %zmm0, %zmm217291; AVX512-FCP-NEXT:    vmovdqa 16(%rsi), %xmm87292; AVX512-FCP-NEXT:    vmovdqa 16(%rdi), %xmm107293; AVX512-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm0 = xmm10[0],xmm8[0],xmm10[1],xmm8[1],xmm10[2],xmm8[2],xmm10[3],xmm8[3],xmm10[4],xmm8[4],xmm10[5],xmm8[5],xmm10[6],xmm8[6],xmm10[7],xmm8[7]7294; AVX512-FCP-NEXT:    vpshufb %xmm5, %xmm0, %xmm17295; AVX512-FCP-NEXT:    vpmovzxwq {{.*#+}} xmm17 = xmm0[0],zero,zero,zero,xmm0[1],zero,zero,zero7296; AVX512-FCP-NEXT:    vinserti32x4 $1, %xmm1, %ymm17, %ymm17297; AVX512-FCP-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm07298; AVX512-FCP-NEXT:    vpshufb %ymm4, %ymm0, %ymm07299; AVX512-FCP-NEXT:    vinserti64x4 $1, %ymm0, %zmm1, %zmm07300; AVX512-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm1 = 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]7301; AVX512-FCP-NEXT:    vpshufb %xmm5, %xmm1, %xmm87302; AVX512-FCP-NEXT:    vpmovzxwq {{.*#+}} xmm10 = xmm1[0],zero,zero,zero,xmm1[1],zero,zero,zero7303; AVX512-FCP-NEXT:    vinserti128 $1, %xmm8, %ymm10, %ymm87304; AVX512-FCP-NEXT:    vinserti128 $1, %xmm1, %ymm1, %ymm17305; AVX512-FCP-NEXT:    vpshufb %ymm4, %ymm1, %ymm17306; AVX512-FCP-NEXT:    vinserti64x4 $1, %ymm1, %zmm8, %zmm17307; AVX512-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm8 = xmm9[0],xmm12[0],xmm9[1],xmm12[1],xmm9[2],xmm12[2],xmm9[3],xmm12[3],xmm9[4],xmm12[4],xmm9[5],xmm12[5],xmm9[6],xmm12[6],xmm9[7],xmm12[7]7308; AVX512-FCP-NEXT:    vinserti128 $1, %xmm8, %ymm8, %ymm97309; AVX512-FCP-NEXT:    vpshufb %ymm4, %ymm9, %ymm47310; AVX512-FCP-NEXT:    vpshufb %xmm5, %xmm8, %xmm57311; AVX512-FCP-NEXT:    vpmovzxwq {{.*#+}} xmm8 = xmm8[0],zero,zero,zero,xmm8[1],zero,zero,zero7312; AVX512-FCP-NEXT:    vinserti128 $1, %xmm5, %ymm8, %ymm57313; AVX512-FCP-NEXT:    vinserti64x4 $1, %ymm4, %zmm5, %zmm47314; AVX512-FCP-NEXT:    vpternlogq $226, {{[-0-9]+}}(%r{{[sb]}}p), %zmm7, %zmm6 # 64-byte Folded Reload7315; AVX512-FCP-NEXT:    # zmm6 = mem ^ (zmm7 & (zmm6 ^ mem))7316; AVX512-FCP-NEXT:    vpandnq {{[-0-9]+}}(%r{{[sb]}}p), %zmm2, %zmm5 # 64-byte Folded Reload7317; AVX512-FCP-NEXT:    vpandq {{[-0-9]+}}(%r{{[sb]}}p), %zmm2, %zmm8 # 64-byte Folded Reload7318; AVX512-FCP-NEXT:    vpord %zmm5, %zmm8, %zmm6 {%k1}7319; AVX512-FCP-NEXT:    vpternlogq $226, {{[-0-9]+}}(%r{{[sb]}}p), %zmm7, %zmm15 # 64-byte Folded Reload7320; AVX512-FCP-NEXT:    # zmm15 = mem ^ (zmm7 & (zmm15 ^ mem))7321; AVX512-FCP-NEXT:    vpandnq (%rsp), %zmm2, %zmm5 # 64-byte Folded Reload7322; AVX512-FCP-NEXT:    vpandq {{[-0-9]+}}(%r{{[sb]}}p), %zmm2, %zmm8 # 64-byte Folded Reload7323; AVX512-FCP-NEXT:    vpord %zmm5, %zmm8, %zmm15 {%k1}7324; AVX512-FCP-NEXT:    vpternlogq {{.*#+}} zmm11 = zmm20 ^ (zmm7 & (zmm11 ^ zmm20))7325; AVX512-FCP-NEXT:    vpandnq %zmm22, %zmm2, %zmm57326; AVX512-FCP-NEXT:    vpandq %zmm2, %zmm23, %zmm87327; AVX512-FCP-NEXT:    vpord %zmm5, %zmm8, %zmm11 {%k1}7328; AVX512-FCP-NEXT:    vpternlogq {{.*#+}} zmm14 = zmm24 ^ (zmm7 & (zmm14 ^ zmm24))7329; AVX512-FCP-NEXT:    vpandnq %zmm25, %zmm2, %zmm57330; AVX512-FCP-NEXT:    vpandq %zmm2, %zmm26, %zmm87331; AVX512-FCP-NEXT:    vpord %zmm5, %zmm8, %zmm14 {%k1}7332; AVX512-FCP-NEXT:    vpternlogq {{.*#+}} zmm0 = zmm27 ^ (zmm7 & (zmm0 ^ zmm27))7333; AVX512-FCP-NEXT:    vpandnq %zmm28, %zmm2, %zmm57334; AVX512-FCP-NEXT:    vpandq %zmm2, %zmm29, %zmm87335; AVX512-FCP-NEXT:    vpord %zmm5, %zmm8, %zmm0 {%k1}7336; AVX512-FCP-NEXT:    vpternlogq {{.*#+}} zmm1 = zmm30 ^ (zmm7 & (zmm1 ^ zmm30))7337; AVX512-FCP-NEXT:    vpandnq %zmm31, %zmm2, %zmm57338; AVX512-FCP-NEXT:    vpandq %zmm2, %zmm16, %zmm87339; AVX512-FCP-NEXT:    vpord %zmm5, %zmm8, %zmm1 {%k1}7340; AVX512-FCP-NEXT:    vpternlogq {{.*#+}} zmm4 = zmm19 ^ (zmm7 & (zmm4 ^ zmm19))7341; AVX512-FCP-NEXT:    vpandnq %zmm13, %zmm2, %zmm57342; AVX512-FCP-NEXT:    vpandq %zmm2, %zmm21, %zmm27343; AVX512-FCP-NEXT:    vpord %zmm5, %zmm2, %zmm4 {%k1}7344; AVX512-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax7345; AVX512-FCP-NEXT:    vmovdqa64 %zmm4, (%rax)7346; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, 192(%rax)7347; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, 128(%rax)7348; AVX512-FCP-NEXT:    vmovdqa64 %zmm14, 320(%rax)7349; AVX512-FCP-NEXT:    vmovdqa64 %zmm11, 256(%rax)7350; AVX512-FCP-NEXT:    vmovdqa64 %zmm15, 448(%rax)7351; AVX512-FCP-NEXT:    vmovdqa64 %zmm6, 384(%rax)7352; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, 64(%rax)7353; AVX512-FCP-NEXT:    addq $392, %rsp # imm = 0x1887354; AVX512-FCP-NEXT:    vzeroupper7355; AVX512-FCP-NEXT:    retq7356;7357; AVX512DQ-LABEL: store_i8_stride8_vf64:7358; AVX512DQ:       # %bb.0:7359; AVX512DQ-NEXT:    subq $552, %rsp # imm = 0x2287360; AVX512DQ-NEXT:    movq {{[0-9]+}}(%rsp), %rax7361; AVX512DQ-NEXT:    movq {{[0-9]+}}(%rsp), %r107362; AVX512DQ-NEXT:    vmovdqa (%rcx), %xmm37363; AVX512DQ-NEXT:    vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7364; AVX512DQ-NEXT:    vmovdqa 32(%rcx), %xmm127365; AVX512DQ-NEXT:    vmovdqa 48(%rcx), %xmm07366; AVX512DQ-NEXT:    vmovdqa (%rdx), %xmm27367; AVX512DQ-NEXT:    vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7368; AVX512DQ-NEXT:    vmovdqa 48(%rdx), %xmm17369; AVX512DQ-NEXT:    vpunpckhbw {{.*#+}} xmm2 = xmm2[8],xmm3[8],xmm2[9],xmm3[9],xmm2[10],xmm3[10],xmm2[11],xmm3[11],xmm2[12],xmm3[12],xmm2[13],xmm3[13],xmm2[14],xmm3[14],xmm2[15],xmm3[15]7370; AVX512DQ-NEXT:    vpshuflw {{.*#+}} xmm3 = xmm2[0,0,2,1,4,5,6,7]7371; AVX512DQ-NEXT:    vpshuflw {{.*#+}} xmm4 = xmm2[0,2,2,3,4,5,6,7]7372; AVX512DQ-NEXT:    vinserti128 $1, %xmm4, %ymm3, %ymm107373; AVX512DQ-NEXT:    vpshufhw {{.*#+}} xmm3 = xmm2[0,1,2,3,4,4,6,5]7374; AVX512DQ-NEXT:    vpshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,6,6,7]7375; AVX512DQ-NEXT:    vinserti128 $1, %xmm2, %ymm3, %ymm27376; AVX512DQ-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7377; AVX512DQ-NEXT:    vmovdqa (%r10), %xmm57378; AVX512DQ-NEXT:    vmovdqa %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7379; AVX512DQ-NEXT:    vmovdqa 48(%r10), %xmm37380; AVX512DQ-NEXT:    vmovdqa (%rax), %xmm27381; AVX512DQ-NEXT:    vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7382; AVX512DQ-NEXT:    vmovdqa 48(%rax), %xmm47383; AVX512DQ-NEXT:    vpunpckhbw {{.*#+}} xmm2 = xmm2[8],xmm5[8],xmm2[9],xmm5[9],xmm2[10],xmm5[10],xmm2[11],xmm5[11],xmm2[12],xmm5[12],xmm2[13],xmm5[13],xmm2[14],xmm5[14],xmm2[15],xmm5[15]7384; AVX512DQ-NEXT:    vpshuflw {{.*#+}} xmm5 = xmm2[0,0,2,1,4,5,6,7]7385; AVX512DQ-NEXT:    vpshuflw {{.*#+}} xmm6 = xmm2[0,2,2,3,4,5,6,7]7386; AVX512DQ-NEXT:    vinserti128 $1, %xmm6, %ymm5, %ymm57387; AVX512DQ-NEXT:    vmovdqu %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7388; AVX512DQ-NEXT:    vpshufhw {{.*#+}} xmm5 = xmm2[0,1,2,3,4,4,6,5]7389; AVX512DQ-NEXT:    vpshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,6,6,7]7390; AVX512DQ-NEXT:    vinserti128 $1, %xmm2, %ymm5, %ymm27391; AVX512DQ-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7392; AVX512DQ-NEXT:    vmovdqa (%r9), %xmm57393; AVX512DQ-NEXT:    vmovdqa %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7394; AVX512DQ-NEXT:    vmovdqa 48(%r9), %xmm67395; AVX512DQ-NEXT:    vmovdqa (%r8), %xmm27396; AVX512DQ-NEXT:    vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7397; AVX512DQ-NEXT:    vmovdqa 48(%r8), %xmm87398; AVX512DQ-NEXT:    vpunpckhbw {{.*#+}} xmm2 = xmm2[8],xmm5[8],xmm2[9],xmm5[9],xmm2[10],xmm5[10],xmm2[11],xmm5[11],xmm2[12],xmm5[12],xmm2[13],xmm5[13],xmm2[14],xmm5[14],xmm2[15],xmm5[15]7399; AVX512DQ-NEXT:    vpshuflw {{.*#+}} xmm5 = xmm2[0,1,1,3,4,5,6,7]7400; AVX512DQ-NEXT:    vpshuflw {{.*#+}} xmm7 = xmm2[2,1,3,3,4,5,6,7]7401; AVX512DQ-NEXT:    vinserti128 $1, %xmm7, %ymm5, %ymm57402; AVX512DQ-NEXT:    vmovdqu %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7403; AVX512DQ-NEXT:    vpshufhw {{.*#+}} xmm5 = xmm2[0,1,2,3,4,5,5,7]7404; AVX512DQ-NEXT:    vpshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,6,5,7,7]7405; AVX512DQ-NEXT:    vinserti128 $1, %xmm2, %ymm5, %ymm27406; AVX512DQ-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7407; AVX512DQ-NEXT:    vpunpcklbw {{.*#+}} xmm2 = xmm1[0],xmm0[0],xmm1[1],xmm0[1],xmm1[2],xmm0[2],xmm1[3],xmm0[3],xmm1[4],xmm0[4],xmm1[5],xmm0[5],xmm1[6],xmm0[6],xmm1[7],xmm0[7]7408; AVX512DQ-NEXT:    vpshuflw {{.*#+}} xmm5 = xmm2[0,0,2,1,4,5,6,7]7409; AVX512DQ-NEXT:    vpshuflw {{.*#+}} xmm9 = xmm2[0,2,2,3,4,5,6,7]7410; AVX512DQ-NEXT:    vinserti128 $1, %xmm9, %ymm5, %ymm57411; AVX512DQ-NEXT:    vmovdqu %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7412; AVX512DQ-NEXT:    vpshufhw {{.*#+}} xmm5 = xmm2[0,1,2,3,4,4,6,5]7413; AVX512DQ-NEXT:    vpshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,6,6,7]7414; AVX512DQ-NEXT:    vinserti128 $1, %xmm2, %ymm5, %ymm27415; AVX512DQ-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7416; AVX512DQ-NEXT:    vpunpcklbw {{.*#+}} xmm2 = 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]7417; AVX512DQ-NEXT:    vpshuflw {{.*#+}} xmm5 = xmm2[0,0,2,1,4,5,6,7]7418; AVX512DQ-NEXT:    vpshuflw {{.*#+}} xmm9 = xmm2[0,2,2,3,4,5,6,7]7419; AVX512DQ-NEXT:    vinserti128 $1, %xmm9, %ymm5, %ymm57420; AVX512DQ-NEXT:    vmovdqu %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7421; AVX512DQ-NEXT:    vpshufhw {{.*#+}} xmm5 = xmm2[0,1,2,3,4,4,6,5]7422; AVX512DQ-NEXT:    vpshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,6,6,7]7423; AVX512DQ-NEXT:    vinserti128 $1, %xmm2, %ymm5, %ymm27424; AVX512DQ-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7425; AVX512DQ-NEXT:    vpunpcklbw {{.*#+}} xmm2 = 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]7426; AVX512DQ-NEXT:    vpshuflw {{.*#+}} xmm5 = xmm2[0,1,1,3,4,5,6,7]7427; AVX512DQ-NEXT:    vpshuflw {{.*#+}} xmm9 = xmm2[2,1,3,3,4,5,6,7]7428; AVX512DQ-NEXT:    vinserti128 $1, %xmm9, %ymm5, %ymm57429; AVX512DQ-NEXT:    vmovdqu %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7430; AVX512DQ-NEXT:    vmovdqa 32(%rdx), %xmm57431; AVX512DQ-NEXT:    vpshufhw {{.*#+}} xmm9 = xmm2[0,1,2,3,4,5,5,7]7432; AVX512DQ-NEXT:    vpshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,6,5,7,7]7433; AVX512DQ-NEXT:    vinserti32x4 $1, %xmm2, %ymm9, %ymm267434; AVX512DQ-NEXT:    vmovdqa 32(%r10), %xmm27435; AVX512DQ-NEXT:    vpunpckhbw {{.*#+}} xmm1 = 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]7436; AVX512DQ-NEXT:    vpshuflw {{.*#+}} xmm0 = xmm1[0,0,2,1,4,5,6,7]7437; AVX512DQ-NEXT:    vpshuflw {{.*#+}} xmm9 = xmm1[0,2,2,3,4,5,6,7]7438; AVX512DQ-NEXT:    vinserti32x4 $1, %xmm9, %ymm0, %ymm287439; AVX512DQ-NEXT:    vmovdqa 32(%rax), %xmm07440; AVX512DQ-NEXT:    vpshufhw {{.*#+}} xmm9 = xmm1[0,1,2,3,4,4,6,5]7441; AVX512DQ-NEXT:    vpshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,6,6,7]7442; AVX512DQ-NEXT:    vinserti32x4 $1, %xmm1, %ymm9, %ymm297443; AVX512DQ-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]7444; AVX512DQ-NEXT:    vpshuflw {{.*#+}} xmm3 = xmm1[0,0,2,1,4,5,6,7]7445; AVX512DQ-NEXT:    vpshuflw {{.*#+}} xmm4 = xmm1[0,2,2,3,4,5,6,7]7446; AVX512DQ-NEXT:    vinserti32x4 $1, %xmm4, %ymm3, %ymm257447; AVX512DQ-NEXT:    vpshufhw {{.*#+}} xmm3 = xmm1[0,1,2,3,4,4,6,5]7448; AVX512DQ-NEXT:    vpshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,6,6,7]7449; AVX512DQ-NEXT:    vinserti32x4 $1, %xmm1, %ymm3, %ymm237450; AVX512DQ-NEXT:    vpunpckhbw {{.*#+}} xmm1 = 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]7451; AVX512DQ-NEXT:    vpshuflw {{.*#+}} xmm3 = xmm1[0,1,1,3,4,5,6,7]7452; AVX512DQ-NEXT:    vpshuflw {{.*#+}} xmm4 = xmm1[2,1,3,3,4,5,6,7]7453; AVX512DQ-NEXT:    vinserti32x4 $1, %xmm4, %ymm3, %ymm197454; AVX512DQ-NEXT:    vpshufhw {{.*#+}} xmm3 = xmm1[0,1,2,3,4,5,5,7]7455; AVX512DQ-NEXT:    vpshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,6,5,7,7]7456; AVX512DQ-NEXT:    vinserti32x4 $1, %xmm1, %ymm3, %ymm177457; AVX512DQ-NEXT:    vpunpcklbw {{.*#+}} xmm1 = xmm5[0],xmm12[0],xmm5[1],xmm12[1],xmm5[2],xmm12[2],xmm5[3],xmm12[3],xmm5[4],xmm12[4],xmm5[5],xmm12[5],xmm5[6],xmm12[6],xmm5[7],xmm12[7]7458; AVX512DQ-NEXT:    vpshuflw {{.*#+}} xmm3 = xmm1[0,0,2,1,4,5,6,7]7459; AVX512DQ-NEXT:    vpshuflw {{.*#+}} xmm4 = xmm1[0,2,2,3,4,5,6,7]7460; AVX512DQ-NEXT:    vinserti32x4 $1, %xmm4, %ymm3, %ymm167461; AVX512DQ-NEXT:    vpshufhw {{.*#+}} xmm3 = xmm1[0,1,2,3,4,4,6,5]7462; AVX512DQ-NEXT:    vpshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,6,6,7]7463; AVX512DQ-NEXT:    vinserti128 $1, %xmm1, %ymm3, %ymm147464; AVX512DQ-NEXT:    vpunpcklbw {{.*#+}} xmm1 = 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]7465; AVX512DQ-NEXT:    vpshuflw {{.*#+}} xmm3 = xmm1[0,0,2,1,4,5,6,7]7466; AVX512DQ-NEXT:    vpshuflw {{.*#+}} xmm6 = xmm1[0,2,2,3,4,5,6,7]7467; AVX512DQ-NEXT:    vinserti32x4 $1, %xmm6, %ymm3, %ymm207468; AVX512DQ-NEXT:    vpshufhw {{.*#+}} xmm3 = xmm1[0,1,2,3,4,4,6,5]7469; AVX512DQ-NEXT:    vpshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,6,6,7]7470; AVX512DQ-NEXT:    vinserti32x4 $1, %xmm1, %ymm3, %ymm187471; AVX512DQ-NEXT:    vmovdqa 32(%r9), %xmm17472; AVX512DQ-NEXT:    vmovdqa 32(%r8), %xmm37473; AVX512DQ-NEXT:    vpunpcklbw {{.*#+}} xmm6 = 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]7474; AVX512DQ-NEXT:    vpshuflw {{.*#+}} xmm8 = xmm6[0,1,1,3,4,5,6,7]7475; AVX512DQ-NEXT:    vpshuflw {{.*#+}} xmm9 = xmm6[2,1,3,3,4,5,6,7]7476; AVX512DQ-NEXT:    vinserti128 $1, %xmm9, %ymm8, %ymm157477; AVX512DQ-NEXT:    vpshufhw {{.*#+}} xmm8 = xmm6[0,1,2,3,4,5,5,7]7478; AVX512DQ-NEXT:    vpshufhw {{.*#+}} xmm6 = xmm6[0,1,2,3,6,5,7,7]7479; AVX512DQ-NEXT:    vinserti128 $1, %xmm6, %ymm8, %ymm137480; AVX512DQ-NEXT:    vpunpckhbw {{.*#+}} xmm5 = xmm5[8],xmm12[8],xmm5[9],xmm12[9],xmm5[10],xmm12[10],xmm5[11],xmm12[11],xmm5[12],xmm12[12],xmm5[13],xmm12[13],xmm5[14],xmm12[14],xmm5[15],xmm12[15]7481; AVX512DQ-NEXT:    vpshuflw {{.*#+}} xmm6 = xmm5[0,0,2,1,4,5,6,7]7482; AVX512DQ-NEXT:    vpshuflw {{.*#+}} xmm8 = xmm5[0,2,2,3,4,5,6,7]7483; AVX512DQ-NEXT:    vinserti128 $1, %xmm8, %ymm6, %ymm47484; AVX512DQ-NEXT:    vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7485; AVX512DQ-NEXT:    vpshufhw {{.*#+}} xmm6 = xmm5[0,1,2,3,4,4,6,5]7486; AVX512DQ-NEXT:    vpshufhw {{.*#+}} xmm5 = xmm5[0,1,2,3,4,6,6,7]7487; AVX512DQ-NEXT:    vinserti128 $1, %xmm5, %ymm6, %ymm47488; AVX512DQ-NEXT:    vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7489; AVX512DQ-NEXT:    vpunpckhbw {{.*#+}} xmm0 = 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]7490; AVX512DQ-NEXT:    vpshuflw {{.*#+}} xmm2 = xmm0[0,0,2,1,4,5,6,7]7491; AVX512DQ-NEXT:    vpshuflw {{.*#+}} xmm5 = xmm0[0,2,2,3,4,5,6,7]7492; AVX512DQ-NEXT:    vinserti128 $1, %xmm5, %ymm2, %ymm27493; AVX512DQ-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7494; AVX512DQ-NEXT:    vpshufhw {{.*#+}} xmm2 = xmm0[0,1,2,3,4,4,6,5]7495; AVX512DQ-NEXT:    vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,6,6,7]7496; AVX512DQ-NEXT:    vinserti128 $1, %xmm0, %ymm2, %ymm07497; AVX512DQ-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7498; AVX512DQ-NEXT:    vpunpckhbw {{.*#+}} xmm0 = 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]7499; AVX512DQ-NEXT:    vpshuflw {{.*#+}} xmm1 = xmm0[0,1,1,3,4,5,6,7]7500; AVX512DQ-NEXT:    vpshuflw {{.*#+}} xmm2 = xmm0[2,1,3,3,4,5,6,7]7501; AVX512DQ-NEXT:    vinserti128 $1, %xmm2, %ymm1, %ymm17502; AVX512DQ-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7503; AVX512DQ-NEXT:    vpshufhw {{.*#+}} xmm1 = xmm0[0,1,2,3,4,5,5,7]7504; AVX512DQ-NEXT:    vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,6,5,7,7]7505; AVX512DQ-NEXT:    vinserti128 $1, %xmm0, %ymm1, %ymm07506; AVX512DQ-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7507; AVX512DQ-NEXT:    vmovdqa 16(%rcx), %xmm47508; AVX512DQ-NEXT:    vmovdqa 16(%rdx), %xmm37509; AVX512DQ-NEXT:    vpunpcklbw {{.*#+}} xmm0 = 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]7510; AVX512DQ-NEXT:    vpshuflw {{.*#+}} xmm1 = xmm0[0,0,2,1,4,5,6,7]7511; AVX512DQ-NEXT:    vpshuflw {{.*#+}} xmm5 = xmm0[0,2,2,3,4,5,6,7]7512; AVX512DQ-NEXT:    vinserti128 $1, %xmm5, %ymm1, %ymm17513; AVX512DQ-NEXT:    vmovdqu %ymm1, (%rsp) # 32-byte Spill7514; AVX512DQ-NEXT:    vpshufhw {{.*#+}} xmm1 = xmm0[0,1,2,3,4,4,6,5]7515; AVX512DQ-NEXT:    vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,6,6,7]7516; AVX512DQ-NEXT:    vinserti128 $1, %xmm0, %ymm1, %ymm07517; AVX512DQ-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7518; AVX512DQ-NEXT:    vmovdqa 16(%r10), %xmm97519; AVX512DQ-NEXT:    vmovdqa 16(%rax), %xmm87520; AVX512DQ-NEXT:    vpunpcklbw {{.*#+}} xmm0 = 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]7521; AVX512DQ-NEXT:    vpshuflw {{.*#+}} xmm1 = xmm0[0,0,2,1,4,5,6,7]7522; AVX512DQ-NEXT:    vpshuflw {{.*#+}} xmm5 = xmm0[0,2,2,3,4,5,6,7]7523; AVX512DQ-NEXT:    vinserti32x4 $1, %xmm5, %ymm1, %ymm307524; AVX512DQ-NEXT:    vpshufhw {{.*#+}} xmm1 = xmm0[0,1,2,3,4,4,6,5]7525; AVX512DQ-NEXT:    vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,6,6,7]7526; AVX512DQ-NEXT:    vinserti32x4 $1, %xmm0, %ymm1, %ymm317527; AVX512DQ-NEXT:    vmovdqa 16(%r9), %xmm67528; AVX512DQ-NEXT:    vmovdqa 16(%r8), %xmm57529; AVX512DQ-NEXT:    vpunpcklbw {{.*#+}} xmm2 = xmm5[0],xmm6[0],xmm5[1],xmm6[1],xmm5[2],xmm6[2],xmm5[3],xmm6[3],xmm5[4],xmm6[4],xmm5[5],xmm6[5],xmm5[6],xmm6[6],xmm5[7],xmm6[7]7530; AVX512DQ-NEXT:    vpshuflw {{.*#+}} xmm1 = xmm2[0,1,1,3,4,5,6,7]7531; AVX512DQ-NEXT:    vpshuflw {{.*#+}} xmm11 = xmm2[2,1,3,3,4,5,6,7]7532; AVX512DQ-NEXT:    vinserti32x4 $1, %xmm11, %ymm1, %ymm277533; AVX512DQ-NEXT:    vmovdqa 48(%rsi), %xmm17534; AVX512DQ-NEXT:    vmovdqa 48(%rdi), %xmm117535; AVX512DQ-NEXT:    vpunpcklbw {{.*#+}} xmm0 = xmm11[0],xmm1[0],xmm11[1],xmm1[1],xmm11[2],xmm1[2],xmm11[3],xmm1[3],xmm11[4],xmm1[4],xmm11[5],xmm1[5],xmm11[6],xmm1[6],xmm11[7],xmm1[7]7536; AVX512DQ-NEXT:    vpunpckhbw {{.*#+}} xmm1 = xmm11[8],xmm1[8],xmm11[9],xmm1[9],xmm11[10],xmm1[10],xmm11[11],xmm1[11],xmm11[12],xmm1[12],xmm11[13],xmm1[13],xmm11[14],xmm1[14],xmm11[15],xmm1[15]7537; AVX512DQ-NEXT:    vmovdqa (%rsi), %xmm77538; AVX512DQ-NEXT:    vmovdqa (%rdi), %xmm127539; AVX512DQ-NEXT:    vpunpckhbw {{.*#+}} xmm11 = xmm12[8],xmm7[8],xmm12[9],xmm7[9],xmm12[10],xmm7[10],xmm12[11],xmm7[11],xmm12[12],xmm7[12],xmm12[13],xmm7[13],xmm12[14],xmm7[14],xmm12[15],xmm7[15]7540; AVX512DQ-NEXT:    vmovdqa64 %xmm7, %xmm217541; AVX512DQ-NEXT:    vpmovzxwq {{.*#+}} zmm22 = xmm11[0],zero,zero,zero,xmm11[1],zero,zero,zero,xmm11[2],zero,zero,zero,xmm11[3],zero,zero,zero,xmm11[4],zero,zero,zero,xmm11[5],zero,zero,zero,xmm11[6],zero,zero,zero,xmm11[7],zero,zero,zero7542; AVX512DQ-NEXT:    vpmovzxwq {{.*#+}} zmm24 = xmm0[0],zero,zero,zero,xmm0[1],zero,zero,zero,xmm0[2],zero,zero,zero,xmm0[3],zero,zero,zero,xmm0[4],zero,zero,zero,xmm0[5],zero,zero,zero,xmm0[6],zero,zero,zero,xmm0[7],zero,zero,zero7543; AVX512DQ-NEXT:    vpshufd {{.*#+}} ymm0 = ymm10[0,1,1,3,4,5,5,7]7544; AVX512DQ-NEXT:    vpshufd $246, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Folded Reload7545; AVX512DQ-NEXT:    # ymm11 = mem[2,1,3,3,6,5,7,7]7546; AVX512DQ-NEXT:    vinserti64x4 $1, %ymm11, %zmm0, %zmm07547; AVX512DQ-NEXT:    vpbroadcastq {{.*#+}} zmm11 = [65535,0,65535,65535,65535,0,65535,65535,65535,0,65535,65535,65535,0,65535,65535,65535,0,65535,65535,65535,0,65535,65535,65535,0,65535,65535,65535,0,65535,65535]7548; AVX512DQ-NEXT:    vpternlogq {{.*#+}} zmm22 = zmm22 | (zmm0 & ~zmm11)7549; AVX512DQ-NEXT:    vpshufd $96, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Folded Reload7550; AVX512DQ-NEXT:    # ymm0 = mem[0,0,2,1,4,4,6,5]7551; AVX512DQ-NEXT:    vpshufd $232, {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Folded Reload7552; AVX512DQ-NEXT:    # ymm7 = mem[0,2,2,3,4,6,6,7]7553; AVX512DQ-NEXT:    vinserti64x4 $1, %ymm7, %zmm0, %zmm07554; AVX512DQ-NEXT:    vpshufd $96, {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Folded Reload7555; AVX512DQ-NEXT:    # ymm7 = mem[0,0,2,1,4,4,6,5]7556; AVX512DQ-NEXT:    vpshufd $232, {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Folded Reload7557; AVX512DQ-NEXT:    # ymm10 = mem[0,2,2,3,4,6,6,7]7558; AVX512DQ-NEXT:    vinserti64x4 $1, %ymm10, %zmm7, %zmm107559; AVX512DQ-NEXT:    vpbroadcastq {{.*#+}} zmm7 = [65535,65535,65535,0,65535,65535,65535,0,65535,65535,65535,0,65535,65535,65535,0,65535,65535,65535,0,65535,65535,65535,0,65535,65535,65535,0,65535,65535,65535,0]7560; AVX512DQ-NEXT:    vpandnq %zmm0, %zmm7, %zmm07561; AVX512DQ-NEXT:    vpandq %zmm7, %zmm10, %zmm107562; AVX512DQ-NEXT:    movw $-21846, %ax # imm = 0xAAAA7563; AVX512DQ-NEXT:    kmovw %eax, %k17564; AVX512DQ-NEXT:    vpord %zmm0, %zmm10, %zmm22 {%k1}7565; AVX512DQ-NEXT:    vpshufd $212, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Folded Reload7566; AVX512DQ-NEXT:    # ymm0 = mem[0,1,1,3,4,5,5,7]7567; AVX512DQ-NEXT:    vpshufd $246, {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Folded Reload7568; AVX512DQ-NEXT:    # ymm10 = mem[2,1,3,3,6,5,7,7]7569; AVX512DQ-NEXT:    vinserti64x4 $1, %ymm10, %zmm0, %zmm07570; AVX512DQ-NEXT:    vpternlogq {{.*#+}} zmm24 = zmm24 | (zmm0 & ~zmm11)7571; AVX512DQ-NEXT:    vpshufd $96, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Folded Reload7572; AVX512DQ-NEXT:    # ymm0 = mem[0,0,2,1,4,4,6,5]7573; AVX512DQ-NEXT:    vpshufd $232, {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Folded Reload7574; AVX512DQ-NEXT:    # ymm10 = mem[0,2,2,3,4,6,6,7]7575; AVX512DQ-NEXT:    vinserti64x4 $1, %ymm10, %zmm0, %zmm07576; AVX512DQ-NEXT:    vpshufd $96, {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Folded Reload7577; AVX512DQ-NEXT:    # ymm10 = mem[0,0,2,1,4,4,6,5]7578; AVX512DQ-NEXT:    vpshufd {{.*#+}} ymm26 = ymm26[0,2,2,3,4,6,6,7]7579; AVX512DQ-NEXT:    vinserti64x4 $1, %ymm26, %zmm10, %zmm107580; AVX512DQ-NEXT:    vpandnq %zmm0, %zmm7, %zmm07581; AVX512DQ-NEXT:    vpandq %zmm7, %zmm10, %zmm107582; AVX512DQ-NEXT:    vpord %zmm0, %zmm10, %zmm24 {%k1}7583; AVX512DQ-NEXT:    vpshufd {{.*#+}} ymm0 = ymm28[0,1,1,3,4,5,5,7]7584; AVX512DQ-NEXT:    vpshufd {{.*#+}} ymm10 = ymm29[2,1,3,3,6,5,7,7]7585; AVX512DQ-NEXT:    vinserti64x4 $1, %ymm10, %zmm0, %zmm07586; AVX512DQ-NEXT:    vpmovzxwq {{.*#+}} zmm10 = xmm1[0],zero,zero,zero,xmm1[1],zero,zero,zero,xmm1[2],zero,zero,zero,xmm1[3],zero,zero,zero,xmm1[4],zero,zero,zero,xmm1[5],zero,zero,zero,xmm1[6],zero,zero,zero,xmm1[7],zero,zero,zero7587; AVX512DQ-NEXT:    vpternlogq {{.*#+}} zmm10 = zmm10 | (zmm0 & ~zmm11)7588; AVX512DQ-NEXT:    vpshufd {{.*#+}} ymm0 = ymm25[0,0,2,1,4,4,6,5]7589; AVX512DQ-NEXT:    vpshufd {{.*#+}} ymm1 = ymm23[0,2,2,3,4,6,6,7]7590; AVX512DQ-NEXT:    vinserti64x4 $1, %ymm1, %zmm0, %zmm07591; AVX512DQ-NEXT:    vpshufd {{.*#+}} ymm1 = ymm19[0,0,2,1,4,4,6,5]7592; AVX512DQ-NEXT:    vpshufd {{.*#+}} ymm17 = ymm17[0,2,2,3,4,6,6,7]7593; AVX512DQ-NEXT:    vinserti64x4 $1, %ymm17, %zmm1, %zmm17594; AVX512DQ-NEXT:    vpandnq %zmm0, %zmm7, %zmm07595; AVX512DQ-NEXT:    vpandq %zmm7, %zmm1, %zmm17596; AVX512DQ-NEXT:    vpord %zmm0, %zmm1, %zmm10 {%k1}7597; AVX512DQ-NEXT:    vpshufd {{.*#+}} ymm0 = ymm16[0,1,1,3,4,5,5,7]7598; AVX512DQ-NEXT:    vpshufd {{.*#+}} ymm1 = ymm14[2,1,3,3,6,5,7,7]7599; AVX512DQ-NEXT:    vinserti64x4 $1, %ymm1, %zmm0, %zmm17600; AVX512DQ-NEXT:    vpshufhw {{.*#+}} xmm0 = xmm2[0,1,2,3,4,5,5,7]7601; AVX512DQ-NEXT:    vpshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,6,5,7,7]7602; AVX512DQ-NEXT:    vinserti32x4 $1, %xmm2, %ymm0, %ymm177603; AVX512DQ-NEXT:    vpunpckhbw {{.*#+}} xmm2 = xmm3[8],xmm4[8],xmm3[9],xmm4[9],xmm3[10],xmm4[10],xmm3[11],xmm4[11],xmm3[12],xmm4[12],xmm3[13],xmm4[13],xmm3[14],xmm4[14],xmm3[15],xmm4[15]7604; AVX512DQ-NEXT:    vpshuflw {{.*#+}} xmm0 = xmm2[0,0,2,1,4,5,6,7]7605; AVX512DQ-NEXT:    vpshuflw {{.*#+}} xmm3 = xmm2[0,2,2,3,4,5,6,7]7606; AVX512DQ-NEXT:    vinserti32x4 $1, %xmm3, %ymm0, %ymm197607; AVX512DQ-NEXT:    vmovdqa 32(%rsi), %xmm147608; AVX512DQ-NEXT:    vmovdqa 32(%rdi), %xmm07609; AVX512DQ-NEXT:    vpunpcklbw {{.*#+}} xmm3 = 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]7610; AVX512DQ-NEXT:    vpmovzxwq {{.*#+}} zmm4 = xmm3[0],zero,zero,zero,xmm3[1],zero,zero,zero,xmm3[2],zero,zero,zero,xmm3[3],zero,zero,zero,xmm3[4],zero,zero,zero,xmm3[5],zero,zero,zero,xmm3[6],zero,zero,zero,xmm3[7],zero,zero,zero7611; AVX512DQ-NEXT:    vpternlogq {{.*#+}} zmm4 = zmm4 | (zmm1 & ~zmm11)7612; AVX512DQ-NEXT:    vpshufd {{.*#+}} ymm1 = ymm20[0,0,2,1,4,4,6,5]7613; AVX512DQ-NEXT:    vpshufd {{.*#+}} ymm3 = ymm18[0,2,2,3,4,6,6,7]7614; AVX512DQ-NEXT:    vinserti64x4 $1, %ymm3, %zmm1, %zmm17615; AVX512DQ-NEXT:    vpshufd {{.*#+}} ymm3 = ymm15[0,0,2,1,4,4,6,5]7616; AVX512DQ-NEXT:    vpshufd {{.*#+}} ymm13 = ymm13[0,2,2,3,4,6,6,7]7617; AVX512DQ-NEXT:    vinserti64x4 $1, %ymm13, %zmm3, %zmm37618; AVX512DQ-NEXT:    vpandnq %zmm1, %zmm7, %zmm17619; AVX512DQ-NEXT:    vpandq %zmm7, %zmm3, %zmm37620; AVX512DQ-NEXT:    vpord %zmm1, %zmm3, %zmm4 {%k1}7621; AVX512DQ-NEXT:    vpshufhw {{.*#+}} xmm1 = xmm2[0,1,2,3,4,4,6,5]7622; AVX512DQ-NEXT:    vpshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,6,6,7]7623; AVX512DQ-NEXT:    vinserti32x4 $1, %xmm2, %ymm1, %ymm207624; AVX512DQ-NEXT:    vpunpckhbw {{.*#+}} xmm2 = xmm8[8],xmm9[8],xmm8[9],xmm9[9],xmm8[10],xmm9[10],xmm8[11],xmm9[11],xmm8[12],xmm9[12],xmm8[13],xmm9[13],xmm8[14],xmm9[14],xmm8[15],xmm9[15]7625; AVX512DQ-NEXT:    vpshuflw {{.*#+}} xmm3 = xmm2[0,0,2,1,4,5,6,7]7626; AVX512DQ-NEXT:    vpshuflw {{.*#+}} xmm8 = xmm2[0,2,2,3,4,5,6,7]7627; AVX512DQ-NEXT:    vinserti32x4 $1, %xmm8, %ymm3, %ymm237628; AVX512DQ-NEXT:    vpshufhw {{.*#+}} xmm3 = xmm2[0,1,2,3,4,4,6,5]7629; AVX512DQ-NEXT:    vpshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,6,6,7]7630; AVX512DQ-NEXT:    vinserti128 $1, %xmm2, %ymm3, %ymm97631; AVX512DQ-NEXT:    vpunpckhbw {{.*#+}} xmm3 = xmm5[8],xmm6[8],xmm5[9],xmm6[9],xmm5[10],xmm6[10],xmm5[11],xmm6[11],xmm5[12],xmm6[12],xmm5[13],xmm6[13],xmm5[14],xmm6[14],xmm5[15],xmm6[15]7632; AVX512DQ-NEXT:    vpshuflw {{.*#+}} xmm2 = xmm3[0,1,1,3,4,5,6,7]7633; AVX512DQ-NEXT:    vpshuflw {{.*#+}} xmm5 = xmm3[2,1,3,3,4,5,6,7]7634; AVX512DQ-NEXT:    vinserti128 $1, %xmm5, %ymm2, %ymm27635; AVX512DQ-NEXT:    vpshufhw {{.*#+}} xmm5 = xmm3[0,1,2,3,4,5,5,7]7636; AVX512DQ-NEXT:    vpshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,6,5,7,7]7637; AVX512DQ-NEXT:    vinserti128 $1, %xmm3, %ymm5, %ymm37638; AVX512DQ-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload7639; AVX512DQ-NEXT:    vpunpcklbw {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm5 # 16-byte Folded Reload7640; AVX512DQ-NEXT:    # xmm5 = 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]7641; AVX512DQ-NEXT:    vpshuflw {{.*#+}} xmm6 = xmm5[0,0,2,1,4,5,6,7]7642; AVX512DQ-NEXT:    vpshuflw {{.*#+}} xmm13 = xmm5[0,2,2,3,4,5,6,7]7643; AVX512DQ-NEXT:    vinserti128 $1, %xmm13, %ymm6, %ymm137644; AVX512DQ-NEXT:    vpshufhw {{.*#+}} xmm6 = xmm5[0,1,2,3,4,4,6,5]7645; AVX512DQ-NEXT:    vpshufhw {{.*#+}} xmm5 = xmm5[0,1,2,3,4,6,6,7]7646; AVX512DQ-NEXT:    vinserti128 $1, %xmm5, %ymm6, %ymm157647; AVX512DQ-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload7648; AVX512DQ-NEXT:    vpunpcklbw {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm5 # 16-byte Folded Reload7649; AVX512DQ-NEXT:    # xmm5 = 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]7650; AVX512DQ-NEXT:    vpshuflw {{.*#+}} xmm6 = xmm5[0,0,2,1,4,5,6,7]7651; AVX512DQ-NEXT:    vpshuflw {{.*#+}} xmm1 = xmm5[0,2,2,3,4,5,6,7]7652; AVX512DQ-NEXT:    vinserti32x4 $1, %xmm1, %ymm6, %ymm167653; AVX512DQ-NEXT:    vpshufhw {{.*#+}} xmm1 = xmm5[0,1,2,3,4,4,6,5]7654; AVX512DQ-NEXT:    vpshufhw {{.*#+}} xmm5 = xmm5[0,1,2,3,4,6,6,7]7655; AVX512DQ-NEXT:    vinserti32x4 $1, %xmm5, %ymm1, %ymm187656; AVX512DQ-NEXT:    vpunpckhbw {{.*#+}} 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]7657; AVX512DQ-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload7658; AVX512DQ-NEXT:    vpunpcklbw {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload7659; AVX512DQ-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]7660; AVX512DQ-NEXT:    vpshuflw {{.*#+}} xmm5 = xmm1[0,1,1,3,4,5,6,7]7661; AVX512DQ-NEXT:    vpshuflw {{.*#+}} xmm6 = xmm1[2,1,3,3,4,5,6,7]7662; AVX512DQ-NEXT:    vinserti128 $1, %xmm6, %ymm5, %ymm57663; AVX512DQ-NEXT:    vpshufhw {{.*#+}} xmm6 = xmm1[0,1,2,3,4,5,5,7]7664; AVX512DQ-NEXT:    vpshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,6,5,7,7]7665; AVX512DQ-NEXT:    vinserti128 $1, %xmm1, %ymm6, %ymm17666; AVX512DQ-NEXT:    vmovdqa 16(%rsi), %xmm67667; AVX512DQ-NEXT:    vmovdqa 16(%rdi), %xmm147668; AVX512DQ-NEXT:    vpunpcklbw {{.*#+}} xmm8 = xmm14[0],xmm6[0],xmm14[1],xmm6[1],xmm14[2],xmm6[2],xmm14[3],xmm6[3],xmm14[4],xmm6[4],xmm14[5],xmm6[5],xmm14[6],xmm6[6],xmm14[7],xmm6[7]7669; AVX512DQ-NEXT:    vpunpckhbw {{.*#+}} xmm6 = xmm14[8],xmm6[8],xmm14[9],xmm6[9],xmm14[10],xmm6[10],xmm14[11],xmm6[11],xmm14[12],xmm6[12],xmm14[13],xmm6[13],xmm14[14],xmm6[14],xmm14[15],xmm6[15]7670; AVX512DQ-NEXT:    vmovdqa64 %xmm21, %xmm147671; AVX512DQ-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]7672; AVX512DQ-NEXT:    vpshufd $212, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Folded Reload7673; AVX512DQ-NEXT:    # ymm14 = mem[0,1,1,3,4,5,5,7]7674; AVX512DQ-NEXT:    vpshufd $246, {{[-0-9]+}}(%r{{[sb]}}p), %ymm25 # 32-byte Folded Reload7675; AVX512DQ-NEXT:    # ymm25 = mem[2,1,3,3,6,5,7,7]7676; AVX512DQ-NEXT:    vinserti64x4 $1, %ymm25, %zmm14, %zmm147677; AVX512DQ-NEXT:    vpmovzxwq {{.*#+}} zmm0 = xmm0[0],zero,zero,zero,xmm0[1],zero,zero,zero,xmm0[2],zero,zero,zero,xmm0[3],zero,zero,zero,xmm0[4],zero,zero,zero,xmm0[5],zero,zero,zero,xmm0[6],zero,zero,zero,xmm0[7],zero,zero,zero7678; AVX512DQ-NEXT:    vpternlogq {{.*#+}} zmm0 = zmm0 | (zmm14 & ~zmm11)7679; AVX512DQ-NEXT:    vpmovzxwq {{.*#+}} zmm8 = xmm8[0],zero,zero,zero,xmm8[1],zero,zero,zero,xmm8[2],zero,zero,zero,xmm8[3],zero,zero,zero,xmm8[4],zero,zero,zero,xmm8[5],zero,zero,zero,xmm8[6],zero,zero,zero,xmm8[7],zero,zero,zero7680; AVX512DQ-NEXT:    vpmovzxwq {{.*#+}} zmm6 = xmm6[0],zero,zero,zero,xmm6[1],zero,zero,zero,xmm6[2],zero,zero,zero,xmm6[3],zero,zero,zero,xmm6[4],zero,zero,zero,xmm6[5],zero,zero,zero,xmm6[6],zero,zero,zero,xmm6[7],zero,zero,zero7681; AVX512DQ-NEXT:    vpmovzxwq {{.*#+}} zmm12 = xmm12[0],zero,zero,zero,xmm12[1],zero,zero,zero,xmm12[2],zero,zero,zero,xmm12[3],zero,zero,zero,xmm12[4],zero,zero,zero,xmm12[5],zero,zero,zero,xmm12[6],zero,zero,zero,xmm12[7],zero,zero,zero7682; AVX512DQ-NEXT:    vpshufd $96, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Folded Reload7683; AVX512DQ-NEXT:    # ymm14 = mem[0,0,2,1,4,4,6,5]7684; AVX512DQ-NEXT:    vpshufd $232, {{[-0-9]+}}(%r{{[sb]}}p), %ymm25 # 32-byte Folded Reload7685; AVX512DQ-NEXT:    # ymm25 = mem[0,2,2,3,4,6,6,7]7686; AVX512DQ-NEXT:    vinserti64x4 $1, %ymm25, %zmm14, %zmm147687; AVX512DQ-NEXT:    vpshufd $96, {{[-0-9]+}}(%r{{[sb]}}p), %ymm25 # 32-byte Folded Reload7688; AVX512DQ-NEXT:    # ymm25 = mem[0,0,2,1,4,4,6,5]7689; AVX512DQ-NEXT:    vpshufd $232, {{[-0-9]+}}(%r{{[sb]}}p), %ymm26 # 32-byte Folded Reload7690; AVX512DQ-NEXT:    # ymm26 = mem[0,2,2,3,4,6,6,7]7691; AVX512DQ-NEXT:    vinserti64x4 $1, %ymm26, %zmm25, %zmm257692; AVX512DQ-NEXT:    vpandnq %zmm14, %zmm7, %zmm147693; AVX512DQ-NEXT:    vpandq %zmm7, %zmm25, %zmm257694; AVX512DQ-NEXT:    vpord %zmm14, %zmm25, %zmm0 {%k1}7695; AVX512DQ-NEXT:    vpshufd $212, (%rsp), %ymm14 # 32-byte Folded Reload7696; AVX512DQ-NEXT:    # ymm14 = mem[0,1,1,3,4,5,5,7]7697; AVX512DQ-NEXT:    vpshufd $246, {{[-0-9]+}}(%r{{[sb]}}p), %ymm25 # 32-byte Folded Reload7698; AVX512DQ-NEXT:    # ymm25 = mem[2,1,3,3,6,5,7,7]7699; AVX512DQ-NEXT:    vinserti64x4 $1, %ymm25, %zmm14, %zmm147700; AVX512DQ-NEXT:    vpternlogq {{.*#+}} zmm8 = zmm8 | (zmm14 & ~zmm11)7701; AVX512DQ-NEXT:    vpshufd {{.*#+}} ymm14 = ymm30[0,0,2,1,4,4,6,5]7702; AVX512DQ-NEXT:    vpshufd {{.*#+}} ymm25 = ymm31[0,2,2,3,4,6,6,7]7703; AVX512DQ-NEXT:    vinserti64x4 $1, %ymm25, %zmm14, %zmm147704; AVX512DQ-NEXT:    vpshufd {{.*#+}} ymm21 = ymm27[0,0,2,1,4,4,6,5]7705; AVX512DQ-NEXT:    vpshufd {{.*#+}} ymm17 = ymm17[0,2,2,3,4,6,6,7]7706; AVX512DQ-NEXT:    vinserti64x4 $1, %ymm17, %zmm21, %zmm177707; AVX512DQ-NEXT:    vpandnq %zmm14, %zmm7, %zmm147708; AVX512DQ-NEXT:    vpandq %zmm7, %zmm17, %zmm177709; AVX512DQ-NEXT:    vpord %zmm14, %zmm17, %zmm8 {%k1}7710; AVX512DQ-NEXT:    vpshufd {{.*#+}} ymm14 = ymm19[0,1,1,3,4,5,5,7]7711; AVX512DQ-NEXT:    vpshufd {{.*#+}} ymm17 = ymm20[2,1,3,3,6,5,7,7]7712; AVX512DQ-NEXT:    vinserti64x4 $1, %ymm17, %zmm14, %zmm147713; AVX512DQ-NEXT:    vpternlogq {{.*#+}} zmm6 = zmm6 | (zmm14 & ~zmm11)7714; AVX512DQ-NEXT:    vpshufd {{.*#+}} ymm14 = ymm23[0,0,2,1,4,4,6,5]7715; AVX512DQ-NEXT:    vpshufd {{.*#+}} ymm9 = ymm9[0,2,2,3,4,6,6,7]7716; AVX512DQ-NEXT:    vinserti64x4 $1, %ymm9, %zmm14, %zmm97717; AVX512DQ-NEXT:    vpshufd {{.*#+}} ymm2 = ymm2[0,0,2,1,4,4,6,5]7718; AVX512DQ-NEXT:    vpshufd {{.*#+}} ymm3 = ymm3[0,2,2,3,4,6,6,7]7719; AVX512DQ-NEXT:    vinserti64x4 $1, %ymm3, %zmm2, %zmm27720; AVX512DQ-NEXT:    vpandnq %zmm9, %zmm7, %zmm37721; AVX512DQ-NEXT:    vpandq %zmm7, %zmm2, %zmm27722; AVX512DQ-NEXT:    vpord %zmm3, %zmm2, %zmm6 {%k1}7723; AVX512DQ-NEXT:    vpshufd {{.*#+}} ymm2 = ymm13[0,1,1,3,4,5,5,7]7724; AVX512DQ-NEXT:    vpshufd {{.*#+}} ymm3 = ymm15[2,1,3,3,6,5,7,7]7725; AVX512DQ-NEXT:    vinserti64x4 $1, %ymm3, %zmm2, %zmm27726; AVX512DQ-NEXT:    vpternlogq {{.*#+}} zmm12 = zmm12 | (zmm2 & ~zmm11)7727; AVX512DQ-NEXT:    vpshufd {{.*#+}} ymm2 = ymm16[0,0,2,1,4,4,6,5]7728; AVX512DQ-NEXT:    vpshufd {{.*#+}} ymm3 = ymm18[0,2,2,3,4,6,6,7]7729; AVX512DQ-NEXT:    vinserti64x4 $1, %ymm3, %zmm2, %zmm27730; AVX512DQ-NEXT:    vpshufd {{.*#+}} ymm3 = ymm5[0,0,2,1,4,4,6,5]7731; AVX512DQ-NEXT:    vpshufd {{.*#+}} ymm1 = ymm1[0,2,2,3,4,6,6,7]7732; AVX512DQ-NEXT:    vinserti64x4 $1, %ymm1, %zmm3, %zmm17733; AVX512DQ-NEXT:    vpandnq %zmm2, %zmm7, %zmm27734; AVX512DQ-NEXT:    vpandq %zmm7, %zmm1, %zmm17735; AVX512DQ-NEXT:    vpord %zmm2, %zmm1, %zmm12 {%k1}7736; AVX512DQ-NEXT:    movq {{[0-9]+}}(%rsp), %rax7737; AVX512DQ-NEXT:    vmovdqa64 %zmm12, (%rax)7738; AVX512DQ-NEXT:    vmovdqa64 %zmm6, 192(%rax)7739; AVX512DQ-NEXT:    vmovdqa64 %zmm8, 128(%rax)7740; AVX512DQ-NEXT:    vmovdqa64 %zmm0, 320(%rax)7741; AVX512DQ-NEXT:    vmovdqa64 %zmm4, 256(%rax)7742; AVX512DQ-NEXT:    vmovdqa64 %zmm10, 448(%rax)7743; AVX512DQ-NEXT:    vmovdqa64 %zmm24, 384(%rax)7744; AVX512DQ-NEXT:    vmovdqa64 %zmm22, 64(%rax)7745; AVX512DQ-NEXT:    addq $552, %rsp # imm = 0x2287746; AVX512DQ-NEXT:    vzeroupper7747; AVX512DQ-NEXT:    retq7748;7749; AVX512DQ-FCP-LABEL: store_i8_stride8_vf64:7750; AVX512DQ-FCP:       # %bb.0:7751; AVX512DQ-FCP-NEXT:    subq $392, %rsp # imm = 0x1887752; AVX512DQ-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax7753; AVX512DQ-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r107754; AVX512DQ-FCP-NEXT:    vmovdqa (%rcx), %xmm27755; AVX512DQ-FCP-NEXT:    vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7756; AVX512DQ-FCP-NEXT:    vmovdqa 48(%rcx), %xmm07757; AVX512DQ-FCP-NEXT:    vmovdqa (%rdx), %xmm157758; AVX512DQ-FCP-NEXT:    vmovdqa 48(%rdx), %xmm17759; AVX512DQ-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm2 = 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]7760; AVX512DQ-FCP-NEXT:    vinserti128 $1, %xmm2, %ymm2, %ymm27761; AVX512DQ-FCP-NEXT:    vmovdqa {{.*#+}} ymm6 = [8,9,8,9,4,5,6,7,12,13,10,11,12,13,10,11,8,9,12,13,4,5,6,7,12,13,14,15,12,13,14,15]7762; AVX512DQ-FCP-NEXT:    vpshufb %ymm6, %ymm2, %ymm37763; AVX512DQ-FCP-NEXT:    vmovdqa {{.*#+}} ymm8 = [0,1,0,1,4,5,2,3,4,5,2,3,12,13,14,15,0,1,4,5,4,5,6,7,4,5,6,7,12,13,14,15]7764; AVX512DQ-FCP-NEXT:    vpshufb %ymm8, %ymm2, %ymm27765; AVX512DQ-FCP-NEXT:    vinserti64x4 $1, %ymm3, %zmm2, %zmm27766; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7767; AVX512DQ-FCP-NEXT:    vmovdqa (%r10), %xmm27768; AVX512DQ-FCP-NEXT:    vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7769; AVX512DQ-FCP-NEXT:    vmovdqa (%rax), %xmm147770; AVX512DQ-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm2 = 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]7771; AVX512DQ-FCP-NEXT:    vinserti128 $1, %xmm2, %ymm2, %ymm27772; AVX512DQ-FCP-NEXT:    vmovdqa {{.*#+}} ymm11 = [0,1,2,3,8,9,8,9,8,9,8,9,12,13,10,11,0,1,2,3,8,9,12,13,8,9,12,13,12,13,14,15]7773; AVX512DQ-FCP-NEXT:    vpshufb %ymm11, %ymm2, %ymm37774; AVX512DQ-FCP-NEXT:    vmovdqa {{.*#+}} ymm10 = [0,1,0,1,0,1,0,1,8,9,10,11,4,5,2,3,0,1,4,5,0,1,4,5,8,9,10,11,4,5,6,7]7775; AVX512DQ-FCP-NEXT:    vpshufb %ymm10, %ymm2, %ymm27776; AVX512DQ-FCP-NEXT:    vinserti64x4 $1, %ymm3, %zmm2, %zmm197777; AVX512DQ-FCP-NEXT:    vmovdqa (%r9), %xmm37778; AVX512DQ-FCP-NEXT:    vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7779; AVX512DQ-FCP-NEXT:    vmovdqa (%r8), %xmm27780; AVX512DQ-FCP-NEXT:    vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7781; AVX512DQ-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm2 = xmm2[8],xmm3[8],xmm2[9],xmm3[9],xmm2[10],xmm3[10],xmm2[11],xmm3[11],xmm2[12],xmm3[12],xmm2[13],xmm3[13],xmm2[14],xmm3[14],xmm2[15],xmm3[15]7782; AVX512DQ-FCP-NEXT:    vinserti128 $1, %xmm2, %ymm2, %ymm27783; AVX512DQ-FCP-NEXT:    vmovdqa {{.*#+}} ymm9 = [0,1,2,3,8,9,10,11,8,9,10,11,10,11,14,15,0,1,2,3,12,13,10,11,12,13,10,11,14,15,14,15]7784; AVX512DQ-FCP-NEXT:    vpshufb %ymm9, %ymm2, %ymm37785; AVX512DQ-FCP-NEXT:    vmovdqa {{.*#+}} ymm12 = [0,1,2,3,0,1,2,3,8,9,10,11,2,3,6,7,4,5,2,3,4,5,2,3,8,9,10,11,6,7,6,7]7786; AVX512DQ-FCP-NEXT:    vpshufb %ymm12, %ymm2, %ymm27787; AVX512DQ-FCP-NEXT:    vinserti64x4 $1, %ymm3, %zmm2, %zmm217788; AVX512DQ-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm2 = xmm1[0],xmm0[0],xmm1[1],xmm0[1],xmm1[2],xmm0[2],xmm1[3],xmm0[3],xmm1[4],xmm0[4],xmm1[5],xmm0[5],xmm1[6],xmm0[6],xmm1[7],xmm0[7]7789; AVX512DQ-FCP-NEXT:    vinserti128 $1, %xmm2, %ymm2, %ymm27790; AVX512DQ-FCP-NEXT:    vpshufb %ymm6, %ymm2, %ymm37791; AVX512DQ-FCP-NEXT:    vpshufb %ymm8, %ymm2, %ymm27792; AVX512DQ-FCP-NEXT:    vinserti64x4 $1, %ymm3, %zmm2, %zmm27793; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7794; AVX512DQ-FCP-NEXT:    vmovdqa 48(%r10), %xmm27795; AVX512DQ-FCP-NEXT:    vmovdqa 48(%rax), %xmm37796; AVX512DQ-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm4 = xmm3[0],xmm2[0],xmm3[1],xmm2[1],xmm3[2],xmm2[2],xmm3[3],xmm2[3],xmm3[4],xmm2[4],xmm3[5],xmm2[5],xmm3[6],xmm2[6],xmm3[7],xmm2[7]7797; AVX512DQ-FCP-NEXT:    vinserti128 $1, %xmm4, %ymm4, %ymm47798; AVX512DQ-FCP-NEXT:    vpshufb %ymm11, %ymm4, %ymm57799; AVX512DQ-FCP-NEXT:    vpshufb %ymm10, %ymm4, %ymm47800; AVX512DQ-FCP-NEXT:    vinserti64x4 $1, %ymm5, %zmm4, %zmm47801; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7802; AVX512DQ-FCP-NEXT:    vmovdqa 48(%r9), %xmm47803; AVX512DQ-FCP-NEXT:    vmovdqa 48(%r8), %xmm57804; AVX512DQ-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm7 = xmm5[0],xmm4[0],xmm5[1],xmm4[1],xmm5[2],xmm4[2],xmm5[3],xmm4[3],xmm5[4],xmm4[4],xmm5[5],xmm4[5],xmm5[6],xmm4[6],xmm5[7],xmm4[7]7805; AVX512DQ-FCP-NEXT:    vinserti128 $1, %xmm7, %ymm7, %ymm77806; AVX512DQ-FCP-NEXT:    vpshufb %ymm9, %ymm7, %ymm137807; AVX512DQ-FCP-NEXT:    vpshufb %ymm12, %ymm7, %ymm77808; AVX512DQ-FCP-NEXT:    vinserti64x4 $1, %ymm13, %zmm7, %zmm77809; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7810; AVX512DQ-FCP-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]7811; AVX512DQ-FCP-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm07812; AVX512DQ-FCP-NEXT:    vpshufb %ymm6, %ymm0, %ymm17813; AVX512DQ-FCP-NEXT:    vpshufb %ymm8, %ymm0, %ymm07814; AVX512DQ-FCP-NEXT:    vinserti64x4 $1, %ymm1, %zmm0, %zmm07815; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7816; AVX512DQ-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm0 = 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]7817; AVX512DQ-FCP-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm07818; AVX512DQ-FCP-NEXT:    vpshufb %ymm11, %ymm0, %ymm17819; AVX512DQ-FCP-NEXT:    vpshufb %ymm10, %ymm0, %ymm07820; AVX512DQ-FCP-NEXT:    vinserti64x4 $1, %ymm1, %zmm0, %zmm07821; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, (%rsp) # 64-byte Spill7822; AVX512DQ-FCP-NEXT:    vmovdqa 32(%rcx), %xmm07823; AVX512DQ-FCP-NEXT:    vmovdqa 32(%rdx), %xmm17824; AVX512DQ-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm2 = 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]7825; AVX512DQ-FCP-NEXT:    vinserti128 $1, %xmm2, %ymm2, %ymm27826; AVX512DQ-FCP-NEXT:    vpshufb %ymm9, %ymm2, %ymm37827; AVX512DQ-FCP-NEXT:    vpshufb %ymm12, %ymm2, %ymm27828; AVX512DQ-FCP-NEXT:    vinserti64x4 $1, %ymm3, %zmm2, %zmm27829; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7830; AVX512DQ-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm2 = xmm1[0],xmm0[0],xmm1[1],xmm0[1],xmm1[2],xmm0[2],xmm1[3],xmm0[3],xmm1[4],xmm0[4],xmm1[5],xmm0[5],xmm1[6],xmm0[6],xmm1[7],xmm0[7]7831; AVX512DQ-FCP-NEXT:    vinserti128 $1, %xmm2, %ymm2, %ymm27832; AVX512DQ-FCP-NEXT:    vpshufb %ymm6, %ymm2, %ymm37833; AVX512DQ-FCP-NEXT:    vpshufb %ymm8, %ymm2, %ymm27834; AVX512DQ-FCP-NEXT:    vinserti64x4 $1, %ymm3, %zmm2, %zmm207835; AVX512DQ-FCP-NEXT:    vmovdqa 32(%r10), %xmm27836; AVX512DQ-FCP-NEXT:    vmovdqa 32(%rax), %xmm37837; AVX512DQ-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm4 = xmm3[0],xmm2[0],xmm3[1],xmm2[1],xmm3[2],xmm2[2],xmm3[3],xmm2[3],xmm3[4],xmm2[4],xmm3[5],xmm2[5],xmm3[6],xmm2[6],xmm3[7],xmm2[7]7838; AVX512DQ-FCP-NEXT:    vinserti128 $1, %xmm4, %ymm4, %ymm47839; AVX512DQ-FCP-NEXT:    vpshufb %ymm11, %ymm4, %ymm57840; AVX512DQ-FCP-NEXT:    vpshufb %ymm10, %ymm4, %ymm47841; AVX512DQ-FCP-NEXT:    vinserti64x4 $1, %ymm5, %zmm4, %zmm227842; AVX512DQ-FCP-NEXT:    vmovdqa 32(%r9), %xmm47843; AVX512DQ-FCP-NEXT:    vmovdqa 32(%r8), %xmm57844; AVX512DQ-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm7 = xmm5[0],xmm4[0],xmm5[1],xmm4[1],xmm5[2],xmm4[2],xmm5[3],xmm4[3],xmm5[4],xmm4[4],xmm5[5],xmm4[5],xmm5[6],xmm4[6],xmm5[7],xmm4[7]7845; AVX512DQ-FCP-NEXT:    vinserti128 $1, %xmm7, %ymm7, %ymm77846; AVX512DQ-FCP-NEXT:    vpshufb %ymm9, %ymm7, %ymm137847; AVX512DQ-FCP-NEXT:    vpshufb %ymm12, %ymm7, %ymm77848; AVX512DQ-FCP-NEXT:    vinserti64x4 $1, %ymm13, %zmm7, %zmm237849; AVX512DQ-FCP-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]7850; AVX512DQ-FCP-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm07851; AVX512DQ-FCP-NEXT:    vpshufb %ymm6, %ymm0, %ymm17852; AVX512DQ-FCP-NEXT:    vpshufb %ymm8, %ymm0, %ymm07853; AVX512DQ-FCP-NEXT:    vinserti64x4 $1, %ymm1, %zmm0, %zmm247854; AVX512DQ-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm0 = 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]7855; AVX512DQ-FCP-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm07856; AVX512DQ-FCP-NEXT:    vpshufb %ymm11, %ymm0, %ymm17857; AVX512DQ-FCP-NEXT:    vpshufb %ymm10, %ymm0, %ymm07858; AVX512DQ-FCP-NEXT:    vinserti64x4 $1, %ymm1, %zmm0, %zmm257859; AVX512DQ-FCP-NEXT:    vmovdqa 16(%rcx), %xmm07860; AVX512DQ-FCP-NEXT:    vmovdqa 16(%rdx), %xmm17861; AVX512DQ-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm2 = 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]7862; AVX512DQ-FCP-NEXT:    vinserti128 $1, %xmm2, %ymm2, %ymm27863; AVX512DQ-FCP-NEXT:    vpshufb %ymm9, %ymm2, %ymm37864; AVX512DQ-FCP-NEXT:    vpshufb %ymm12, %ymm2, %ymm27865; AVX512DQ-FCP-NEXT:    vinserti64x4 $1, %ymm3, %zmm2, %zmm267866; AVX512DQ-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm2 = xmm1[0],xmm0[0],xmm1[1],xmm0[1],xmm1[2],xmm0[2],xmm1[3],xmm0[3],xmm1[4],xmm0[4],xmm1[5],xmm0[5],xmm1[6],xmm0[6],xmm1[7],xmm0[7]7867; AVX512DQ-FCP-NEXT:    vinserti128 $1, %xmm2, %ymm2, %ymm27868; AVX512DQ-FCP-NEXT:    vpshufb %ymm6, %ymm2, %ymm37869; AVX512DQ-FCP-NEXT:    vpshufb %ymm8, %ymm2, %ymm27870; AVX512DQ-FCP-NEXT:    vinserti64x4 $1, %ymm3, %zmm2, %zmm277871; AVX512DQ-FCP-NEXT:    vmovdqa 16(%r10), %xmm27872; AVX512DQ-FCP-NEXT:    vmovdqa 16(%rax), %xmm37873; AVX512DQ-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm4 = xmm3[0],xmm2[0],xmm3[1],xmm2[1],xmm3[2],xmm2[2],xmm3[3],xmm2[3],xmm3[4],xmm2[4],xmm3[5],xmm2[5],xmm3[6],xmm2[6],xmm3[7],xmm2[7]7874; AVX512DQ-FCP-NEXT:    vinserti128 $1, %xmm4, %ymm4, %ymm47875; AVX512DQ-FCP-NEXT:    vpshufb %ymm11, %ymm4, %ymm57876; AVX512DQ-FCP-NEXT:    vpshufb %ymm10, %ymm4, %ymm47877; AVX512DQ-FCP-NEXT:    vinserti64x4 $1, %ymm5, %zmm4, %zmm287878; AVX512DQ-FCP-NEXT:    vmovdqa 16(%r9), %xmm47879; AVX512DQ-FCP-NEXT:    vmovdqa 16(%r8), %xmm57880; AVX512DQ-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm7 = xmm5[0],xmm4[0],xmm5[1],xmm4[1],xmm5[2],xmm4[2],xmm5[3],xmm4[3],xmm5[4],xmm4[4],xmm5[5],xmm4[5],xmm5[6],xmm4[6],xmm5[7],xmm4[7]7881; AVX512DQ-FCP-NEXT:    vinserti128 $1, %xmm7, %ymm7, %ymm77882; AVX512DQ-FCP-NEXT:    vpshufb %ymm9, %ymm7, %ymm137883; AVX512DQ-FCP-NEXT:    vpshufb %ymm12, %ymm7, %ymm77884; AVX512DQ-FCP-NEXT:    vinserti64x4 $1, %ymm13, %zmm7, %zmm297885; AVX512DQ-FCP-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]7886; AVX512DQ-FCP-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm07887; AVX512DQ-FCP-NEXT:    vpshufb %ymm6, %ymm0, %ymm17888; AVX512DQ-FCP-NEXT:    vpshufb %ymm8, %ymm0, %ymm07889; AVX512DQ-FCP-NEXT:    vinserti64x4 $1, %ymm1, %zmm0, %zmm307890; AVX512DQ-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm0 = 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]7891; AVX512DQ-FCP-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm07892; AVX512DQ-FCP-NEXT:    vpshufb %ymm11, %ymm0, %ymm17893; AVX512DQ-FCP-NEXT:    vpshufb %ymm10, %ymm0, %ymm07894; AVX512DQ-FCP-NEXT:    vinserti64x4 $1, %ymm1, %zmm0, %zmm317895; AVX512DQ-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm0 = 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]7896; AVX512DQ-FCP-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm07897; AVX512DQ-FCP-NEXT:    vpshufb %ymm9, %ymm0, %ymm17898; AVX512DQ-FCP-NEXT:    vmovdqa64 %ymm9, %ymm177899; AVX512DQ-FCP-NEXT:    vpshufb %ymm12, %ymm0, %ymm07900; AVX512DQ-FCP-NEXT:    vmovdqa64 %ymm12, %ymm187901; AVX512DQ-FCP-NEXT:    vinserti64x4 $1, %ymm1, %zmm0, %zmm167902; AVX512DQ-FCP-NEXT:    vmovdqa (%rsi), %xmm127903; AVX512DQ-FCP-NEXT:    vmovdqa (%rdi), %xmm97904; AVX512DQ-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm0 = 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]7905; AVX512DQ-FCP-NEXT:    vpmovsxwq {{.*#+}} xmm5 = [1284,1798]7906; AVX512DQ-FCP-NEXT:    vpmovzxwq {{.*#+}} xmm1 = xmm0[0],zero,zero,zero,xmm0[1],zero,zero,zero7907; AVX512DQ-FCP-NEXT:    vpshufb %xmm5, %xmm0, %xmm27908; AVX512DQ-FCP-NEXT:    vinserti128 $1, %xmm2, %ymm1, %ymm17909; AVX512DQ-FCP-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm07910; AVX512DQ-FCP-NEXT:    vpmovsxwq {{.*#+}} ymm4 = [2312,2826,3340,3854]7911; AVX512DQ-FCP-NEXT:    vpshufb %ymm4, %ymm0, %ymm07912; AVX512DQ-FCP-NEXT:    vinserti64x4 $1, %ymm0, %zmm1, %zmm37913; AVX512DQ-FCP-NEXT:    vpbroadcastq {{.*#+}} zmm7 = [65535,0,65535,65535,65535,0,65535,65535,65535,0,65535,65535,65535,0,65535,65535,65535,0,65535,65535,65535,0,65535,65535,65535,0,65535,65535,65535,0,65535,65535]7914; AVX512DQ-FCP-NEXT:    vpternlogq $226, {{[-0-9]+}}(%r{{[sb]}}p), %zmm7, %zmm3 # 64-byte Folded Reload7915; AVX512DQ-FCP-NEXT:    # zmm3 = mem ^ (zmm7 & (zmm3 ^ mem))7916; AVX512DQ-FCP-NEXT:    vpbroadcastq {{.*#+}} zmm2 = [65535,65535,65535,0,65535,65535,65535,0,65535,65535,65535,0,65535,65535,65535,0,65535,65535,65535,0,65535,65535,65535,0,65535,65535,65535,0,65535,65535,65535,0]7917; AVX512DQ-FCP-NEXT:    vpandnq %zmm19, %zmm2, %zmm197918; AVX512DQ-FCP-NEXT:    vpandq %zmm2, %zmm21, %zmm217919; AVX512DQ-FCP-NEXT:    movw $-21846, %ax # imm = 0xAAAA7920; AVX512DQ-FCP-NEXT:    kmovw %eax, %k17921; AVX512DQ-FCP-NEXT:    vpord %zmm19, %zmm21, %zmm3 {%k1}7922; AVX512DQ-FCP-NEXT:    vpunpcklbw {{[-0-9]+}}(%r{{[sb]}}p), %xmm15, %xmm15 # 16-byte Folded Reload7923; AVX512DQ-FCP-NEXT:    # xmm15 = xmm15[0],mem[0],xmm15[1],mem[1],xmm15[2],mem[2],xmm15[3],mem[3],xmm15[4],mem[4],xmm15[5],mem[5],xmm15[6],mem[6],xmm15[7],mem[7]7924; AVX512DQ-FCP-NEXT:    vinserti128 $1, %xmm15, %ymm15, %ymm157925; AVX512DQ-FCP-NEXT:    vpshufb %ymm6, %ymm15, %ymm67926; AVX512DQ-FCP-NEXT:    vpshufb %ymm8, %ymm15, %ymm87927; AVX512DQ-FCP-NEXT:    vinserti64x4 $1, %ymm6, %zmm8, %zmm197928; AVX512DQ-FCP-NEXT:    vmovdqa 48(%rsi), %xmm157929; AVX512DQ-FCP-NEXT:    vmovdqa 48(%rdi), %xmm87930; AVX512DQ-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm6 = xmm8[0],xmm15[0],xmm8[1],xmm15[1],xmm8[2],xmm15[2],xmm8[3],xmm15[3],xmm8[4],xmm15[4],xmm8[5],xmm15[5],xmm8[6],xmm15[6],xmm8[7],xmm15[7]7931; AVX512DQ-FCP-NEXT:    vpshufb %xmm5, %xmm6, %xmm07932; AVX512DQ-FCP-NEXT:    vpmovzxwq {{.*#+}} xmm21 = xmm6[0],zero,zero,zero,xmm6[1],zero,zero,zero7933; AVX512DQ-FCP-NEXT:    vinserti32x4 $1, %xmm0, %ymm21, %ymm07934; AVX512DQ-FCP-NEXT:    vinserti128 $1, %xmm6, %ymm6, %ymm67935; AVX512DQ-FCP-NEXT:    vpshufb %ymm4, %ymm6, %ymm67936; AVX512DQ-FCP-NEXT:    vinserti64x4 $1, %ymm6, %zmm0, %zmm67937; AVX512DQ-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm0 = xmm8[8],xmm15[8],xmm8[9],xmm15[9],xmm8[10],xmm15[10],xmm8[11],xmm15[11],xmm8[12],xmm15[12],xmm8[13],xmm15[13],xmm8[14],xmm15[14],xmm8[15],xmm15[15]7938; AVX512DQ-FCP-NEXT:    vpshufb %xmm5, %xmm0, %xmm87939; AVX512DQ-FCP-NEXT:    vpmovzxwq {{.*#+}} xmm15 = xmm0[0],zero,zero,zero,xmm0[1],zero,zero,zero7940; AVX512DQ-FCP-NEXT:    vinserti128 $1, %xmm8, %ymm15, %ymm87941; AVX512DQ-FCP-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm07942; AVX512DQ-FCP-NEXT:    vpshufb %ymm4, %ymm0, %ymm07943; AVX512DQ-FCP-NEXT:    vinserti64x4 $1, %ymm0, %zmm8, %zmm157944; AVX512DQ-FCP-NEXT:    vpunpcklbw {{[-0-9]+}}(%r{{[sb]}}p), %xmm14, %xmm0 # 16-byte Folded Reload7945; AVX512DQ-FCP-NEXT:    # xmm0 = xmm14[0],mem[0],xmm14[1],mem[1],xmm14[2],mem[2],xmm14[3],mem[3],xmm14[4],mem[4],xmm14[5],mem[5],xmm14[6],mem[6],xmm14[7],mem[7]7946; AVX512DQ-FCP-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm07947; AVX512DQ-FCP-NEXT:    vpshufb %ymm11, %ymm0, %ymm87948; AVX512DQ-FCP-NEXT:    vpshufb %ymm10, %ymm0, %ymm07949; AVX512DQ-FCP-NEXT:    vinserti64x4 $1, %ymm8, %zmm0, %zmm137950; AVX512DQ-FCP-NEXT:    vmovdqa 32(%rsi), %xmm07951; AVX512DQ-FCP-NEXT:    vmovdqa 32(%rdi), %xmm87952; AVX512DQ-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm11 = 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]7953; AVX512DQ-FCP-NEXT:    vpshufb %xmm5, %xmm11, %xmm147954; AVX512DQ-FCP-NEXT:    vpmovzxwq {{.*#+}} xmm21 = xmm11[0],zero,zero,zero,xmm11[1],zero,zero,zero7955; AVX512DQ-FCP-NEXT:    vinserti32x4 $1, %xmm14, %ymm21, %ymm147956; AVX512DQ-FCP-NEXT:    vinserti128 $1, %xmm11, %ymm11, %ymm117957; AVX512DQ-FCP-NEXT:    vpshufb %ymm4, %ymm11, %ymm117958; AVX512DQ-FCP-NEXT:    vinserti64x4 $1, %ymm11, %zmm14, %zmm117959; AVX512DQ-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm0 = xmm8[8],xmm0[8],xmm8[9],xmm0[9],xmm8[10],xmm0[10],xmm8[11],xmm0[11],xmm8[12],xmm0[12],xmm8[13],xmm0[13],xmm8[14],xmm0[14],xmm8[15],xmm0[15]7960; AVX512DQ-FCP-NEXT:    vpshufb %xmm5, %xmm0, %xmm87961; AVX512DQ-FCP-NEXT:    vpmovzxwq {{.*#+}} xmm14 = xmm0[0],zero,zero,zero,xmm0[1],zero,zero,zero7962; AVX512DQ-FCP-NEXT:    vinserti128 $1, %xmm8, %ymm14, %ymm87963; AVX512DQ-FCP-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm07964; AVX512DQ-FCP-NEXT:    vpshufb %ymm4, %ymm0, %ymm07965; AVX512DQ-FCP-NEXT:    vinserti64x4 $1, %ymm0, %zmm8, %zmm147966; AVX512DQ-FCP-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload7967; AVX512DQ-FCP-NEXT:    vpunpcklbw {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload7968; AVX512DQ-FCP-NEXT:    # xmm0 = 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]7969; AVX512DQ-FCP-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm07970; AVX512DQ-FCP-NEXT:    vmovdqa64 %ymm17, %ymm17971; AVX512DQ-FCP-NEXT:    vpshufb %ymm1, %ymm0, %ymm87972; AVX512DQ-FCP-NEXT:    vmovdqa64 %ymm18, %ymm17973; AVX512DQ-FCP-NEXT:    vpshufb %ymm1, %ymm0, %ymm07974; AVX512DQ-FCP-NEXT:    vinserti64x4 $1, %ymm8, %zmm0, %zmm217975; AVX512DQ-FCP-NEXT:    vmovdqa 16(%rsi), %xmm87976; AVX512DQ-FCP-NEXT:    vmovdqa 16(%rdi), %xmm107977; AVX512DQ-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm0 = xmm10[0],xmm8[0],xmm10[1],xmm8[1],xmm10[2],xmm8[2],xmm10[3],xmm8[3],xmm10[4],xmm8[4],xmm10[5],xmm8[5],xmm10[6],xmm8[6],xmm10[7],xmm8[7]7978; AVX512DQ-FCP-NEXT:    vpshufb %xmm5, %xmm0, %xmm17979; AVX512DQ-FCP-NEXT:    vpmovzxwq {{.*#+}} xmm17 = xmm0[0],zero,zero,zero,xmm0[1],zero,zero,zero7980; AVX512DQ-FCP-NEXT:    vinserti32x4 $1, %xmm1, %ymm17, %ymm17981; AVX512DQ-FCP-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm07982; AVX512DQ-FCP-NEXT:    vpshufb %ymm4, %ymm0, %ymm07983; AVX512DQ-FCP-NEXT:    vinserti64x4 $1, %ymm0, %zmm1, %zmm07984; AVX512DQ-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm1 = 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]7985; AVX512DQ-FCP-NEXT:    vpshufb %xmm5, %xmm1, %xmm87986; AVX512DQ-FCP-NEXT:    vpmovzxwq {{.*#+}} xmm10 = xmm1[0],zero,zero,zero,xmm1[1],zero,zero,zero7987; AVX512DQ-FCP-NEXT:    vinserti128 $1, %xmm8, %ymm10, %ymm87988; AVX512DQ-FCP-NEXT:    vinserti128 $1, %xmm1, %ymm1, %ymm17989; AVX512DQ-FCP-NEXT:    vpshufb %ymm4, %ymm1, %ymm17990; AVX512DQ-FCP-NEXT:    vinserti64x4 $1, %ymm1, %zmm8, %zmm17991; AVX512DQ-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm8 = xmm9[0],xmm12[0],xmm9[1],xmm12[1],xmm9[2],xmm12[2],xmm9[3],xmm12[3],xmm9[4],xmm12[4],xmm9[5],xmm12[5],xmm9[6],xmm12[6],xmm9[7],xmm12[7]7992; AVX512DQ-FCP-NEXT:    vinserti128 $1, %xmm8, %ymm8, %ymm97993; AVX512DQ-FCP-NEXT:    vpshufb %ymm4, %ymm9, %ymm47994; AVX512DQ-FCP-NEXT:    vpshufb %xmm5, %xmm8, %xmm57995; AVX512DQ-FCP-NEXT:    vpmovzxwq {{.*#+}} xmm8 = xmm8[0],zero,zero,zero,xmm8[1],zero,zero,zero7996; AVX512DQ-FCP-NEXT:    vinserti128 $1, %xmm5, %ymm8, %ymm57997; AVX512DQ-FCP-NEXT:    vinserti64x4 $1, %ymm4, %zmm5, %zmm47998; AVX512DQ-FCP-NEXT:    vpternlogq $226, {{[-0-9]+}}(%r{{[sb]}}p), %zmm7, %zmm6 # 64-byte Folded Reload7999; AVX512DQ-FCP-NEXT:    # zmm6 = mem ^ (zmm7 & (zmm6 ^ mem))8000; AVX512DQ-FCP-NEXT:    vpandnq {{[-0-9]+}}(%r{{[sb]}}p), %zmm2, %zmm5 # 64-byte Folded Reload8001; AVX512DQ-FCP-NEXT:    vpandq {{[-0-9]+}}(%r{{[sb]}}p), %zmm2, %zmm8 # 64-byte Folded Reload8002; AVX512DQ-FCP-NEXT:    vpord %zmm5, %zmm8, %zmm6 {%k1}8003; AVX512DQ-FCP-NEXT:    vpternlogq $226, {{[-0-9]+}}(%r{{[sb]}}p), %zmm7, %zmm15 # 64-byte Folded Reload8004; AVX512DQ-FCP-NEXT:    # zmm15 = mem ^ (zmm7 & (zmm15 ^ mem))8005; AVX512DQ-FCP-NEXT:    vpandnq (%rsp), %zmm2, %zmm5 # 64-byte Folded Reload8006; AVX512DQ-FCP-NEXT:    vpandq {{[-0-9]+}}(%r{{[sb]}}p), %zmm2, %zmm8 # 64-byte Folded Reload8007; AVX512DQ-FCP-NEXT:    vpord %zmm5, %zmm8, %zmm15 {%k1}8008; AVX512DQ-FCP-NEXT:    vpternlogq {{.*#+}} zmm11 = zmm20 ^ (zmm7 & (zmm11 ^ zmm20))8009; AVX512DQ-FCP-NEXT:    vpandnq %zmm22, %zmm2, %zmm58010; AVX512DQ-FCP-NEXT:    vpandq %zmm2, %zmm23, %zmm88011; AVX512DQ-FCP-NEXT:    vpord %zmm5, %zmm8, %zmm11 {%k1}8012; AVX512DQ-FCP-NEXT:    vpternlogq {{.*#+}} zmm14 = zmm24 ^ (zmm7 & (zmm14 ^ zmm24))8013; AVX512DQ-FCP-NEXT:    vpandnq %zmm25, %zmm2, %zmm58014; AVX512DQ-FCP-NEXT:    vpandq %zmm2, %zmm26, %zmm88015; AVX512DQ-FCP-NEXT:    vpord %zmm5, %zmm8, %zmm14 {%k1}8016; AVX512DQ-FCP-NEXT:    vpternlogq {{.*#+}} zmm0 = zmm27 ^ (zmm7 & (zmm0 ^ zmm27))8017; AVX512DQ-FCP-NEXT:    vpandnq %zmm28, %zmm2, %zmm58018; AVX512DQ-FCP-NEXT:    vpandq %zmm2, %zmm29, %zmm88019; AVX512DQ-FCP-NEXT:    vpord %zmm5, %zmm8, %zmm0 {%k1}8020; AVX512DQ-FCP-NEXT:    vpternlogq {{.*#+}} zmm1 = zmm30 ^ (zmm7 & (zmm1 ^ zmm30))8021; AVX512DQ-FCP-NEXT:    vpandnq %zmm31, %zmm2, %zmm58022; AVX512DQ-FCP-NEXT:    vpandq %zmm2, %zmm16, %zmm88023; AVX512DQ-FCP-NEXT:    vpord %zmm5, %zmm8, %zmm1 {%k1}8024; AVX512DQ-FCP-NEXT:    vpternlogq {{.*#+}} zmm4 = zmm19 ^ (zmm7 & (zmm4 ^ zmm19))8025; AVX512DQ-FCP-NEXT:    vpandnq %zmm13, %zmm2, %zmm58026; AVX512DQ-FCP-NEXT:    vpandq %zmm2, %zmm21, %zmm28027; AVX512DQ-FCP-NEXT:    vpord %zmm5, %zmm2, %zmm4 {%k1}8028; AVX512DQ-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax8029; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm4, (%rax)8030; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, 192(%rax)8031; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, 128(%rax)8032; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm14, 320(%rax)8033; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm11, 256(%rax)8034; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm15, 448(%rax)8035; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm6, 384(%rax)8036; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm3, 64(%rax)8037; AVX512DQ-FCP-NEXT:    addq $392, %rsp # imm = 0x1888038; AVX512DQ-FCP-NEXT:    vzeroupper8039; AVX512DQ-FCP-NEXT:    retq8040;8041; AVX512BW-LABEL: store_i8_stride8_vf64:8042; AVX512BW:       # %bb.0:8043; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax8044; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %r108045; AVX512BW-NEXT:    vmovdqa (%r10), %xmm18046; AVX512BW-NEXT:    vmovdqa64 32(%r10), %xmm168047; AVX512BW-NEXT:    vmovdqa 48(%r10), %xmm148048; AVX512BW-NEXT:    vmovdqa (%rax), %xmm38049; AVX512BW-NEXT:    vmovdqa64 32(%rax), %xmm178050; AVX512BW-NEXT:    vmovdqa 48(%rax), %xmm158051; AVX512BW-NEXT:    vpunpckhbw {{.*#+}} xmm2 = 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]8052; AVX512BW-NEXT:    vmovdqa (%r9), %xmm48053; AVX512BW-NEXT:    vmovdqa64 32(%r9), %xmm198054; AVX512BW-NEXT:    vmovdqa64 48(%r9), %xmm188055; AVX512BW-NEXT:    vmovdqa (%r8), %xmm68056; AVX512BW-NEXT:    vmovdqa64 32(%r8), %xmm218057; AVX512BW-NEXT:    vmovdqa64 48(%r8), %xmm208058; AVX512BW-NEXT:    vpunpckhbw {{.*#+}} xmm0 = xmm6[8],xmm4[8],xmm6[9],xmm4[9],xmm6[10],xmm4[10],xmm6[11],xmm4[11],xmm6[12],xmm4[12],xmm6[13],xmm4[13],xmm6[14],xmm4[14],xmm6[15],xmm4[15]8059; AVX512BW-NEXT:    vpmovsxbw {{.*#+}} zmm7 = [0,1,0,32,4,5,1,33,2,1,2,34,4,5,3,35,0,1,4,36,4,5,5,37,0,1,6,38,6,5,7,39]8060; AVX512BW-NEXT:    vpermt2w %zmm2, %zmm7, %zmm08061; AVX512BW-NEXT:    vmovdqa (%rcx), %xmm58062; AVX512BW-NEXT:    vmovdqa64 48(%rcx), %xmm228063; AVX512BW-NEXT:    vmovdqa (%rdx), %xmm88064; AVX512BW-NEXT:    vmovdqa64 48(%rdx), %xmm238065; AVX512BW-NEXT:    vpunpckhbw {{.*#+}} xmm11 = xmm8[8],xmm5[8],xmm8[9],xmm5[9],xmm8[10],xmm5[10],xmm8[11],xmm5[11],xmm8[12],xmm5[12],xmm8[13],xmm5[13],xmm8[14],xmm5[14],xmm8[15],xmm5[15]8066; AVX512BW-NEXT:    vmovdqa (%rsi), %xmm98067; AVX512BW-NEXT:    vmovdqa64 48(%rsi), %xmm248068; AVX512BW-NEXT:    vmovdqa (%rdi), %xmm108069; AVX512BW-NEXT:    vmovdqa64 48(%rdi), %xmm258070; AVX512BW-NEXT:    vpunpckhbw {{.*#+}} xmm2 = 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]8071; AVX512BW-NEXT:    vpmovsxbw {{.*#+}} zmm12 = [0,32,0,0,1,33,0,0,2,34,0,0,3,35,0,0,4,36,0,0,5,37,0,0,6,38,0,0,7,39,0,0]8072; AVX512BW-NEXT:    vpermt2w %zmm11, %zmm12, %zmm28073; AVX512BW-NEXT:    vpunpcklbw {{.*#+}} xmm11 = xmm15[0],xmm14[0],xmm15[1],xmm14[1],xmm15[2],xmm14[2],xmm15[3],xmm14[3],xmm15[4],xmm14[4],xmm15[5],xmm14[5],xmm15[6],xmm14[6],xmm15[7],xmm14[7]8074; AVX512BW-NEXT:    vpunpcklbw {{.*#+}} xmm13 = xmm20[0],xmm18[0],xmm20[1],xmm18[1],xmm20[2],xmm18[2],xmm20[3],xmm18[3],xmm20[4],xmm18[4],xmm20[5],xmm18[5],xmm20[6],xmm18[6],xmm20[7],xmm18[7]8075; AVX512BW-NEXT:    vpermt2w %zmm11, %zmm7, %zmm138076; AVX512BW-NEXT:    vpunpcklbw {{.*#+}} xmm26 = xmm23[0],xmm22[0],xmm23[1],xmm22[1],xmm23[2],xmm22[2],xmm23[3],xmm22[3],xmm23[4],xmm22[4],xmm23[5],xmm22[5],xmm23[6],xmm22[6],xmm23[7],xmm22[7]8077; AVX512BW-NEXT:    vpunpcklbw {{.*#+}} xmm11 = xmm25[0],xmm24[0],xmm25[1],xmm24[1],xmm25[2],xmm24[2],xmm25[3],xmm24[3],xmm25[4],xmm24[4],xmm25[5],xmm24[5],xmm25[6],xmm24[6],xmm25[7],xmm24[7]8078; AVX512BW-NEXT:    vpermt2w %zmm26, %zmm12, %zmm118079; AVX512BW-NEXT:    vmovdqa64 32(%rcx), %xmm268080; AVX512BW-NEXT:    vpunpckhbw {{.*#+}} xmm14 = xmm15[8],xmm14[8],xmm15[9],xmm14[9],xmm15[10],xmm14[10],xmm15[11],xmm14[11],xmm15[12],xmm14[12],xmm15[13],xmm14[13],xmm15[14],xmm14[14],xmm15[15],xmm14[15]8081; AVX512BW-NEXT:    vmovdqa64 32(%rdx), %xmm278082; AVX512BW-NEXT:    vpunpckhbw {{.*#+}} xmm15 = xmm20[8],xmm18[8],xmm20[9],xmm18[9],xmm20[10],xmm18[10],xmm20[11],xmm18[11],xmm20[12],xmm18[12],xmm20[13],xmm18[13],xmm20[14],xmm18[14],xmm20[15],xmm18[15]8083; AVX512BW-NEXT:    vmovdqa64 32(%rsi), %xmm288084; AVX512BW-NEXT:    vpermt2w %zmm14, %zmm7, %zmm158085; AVX512BW-NEXT:    vmovdqa64 32(%rdi), %xmm298086; AVX512BW-NEXT:    vpunpckhbw {{.*#+}} xmm18 = xmm23[8],xmm22[8],xmm23[9],xmm22[9],xmm23[10],xmm22[10],xmm23[11],xmm22[11],xmm23[12],xmm22[12],xmm23[13],xmm22[13],xmm23[14],xmm22[14],xmm23[15],xmm22[15]8087; AVX512BW-NEXT:    vpunpckhbw {{.*#+}} xmm14 = xmm25[8],xmm24[8],xmm25[9],xmm24[9],xmm25[10],xmm24[10],xmm25[11],xmm24[11],xmm25[12],xmm24[12],xmm25[13],xmm24[13],xmm25[14],xmm24[14],xmm25[15],xmm24[15]8088; AVX512BW-NEXT:    vpermt2w %zmm18, %zmm12, %zmm148089; AVX512BW-NEXT:    vpunpcklbw {{.*#+}} xmm18 = xmm17[0],xmm16[0],xmm17[1],xmm16[1],xmm17[2],xmm16[2],xmm17[3],xmm16[3],xmm17[4],xmm16[4],xmm17[5],xmm16[5],xmm17[6],xmm16[6],xmm17[7],xmm16[7]8090; AVX512BW-NEXT:    vpunpcklbw {{.*#+}} xmm20 = xmm21[0],xmm19[0],xmm21[1],xmm19[1],xmm21[2],xmm19[2],xmm21[3],xmm19[3],xmm21[4],xmm19[4],xmm21[5],xmm19[5],xmm21[6],xmm19[6],xmm21[7],xmm19[7]8091; AVX512BW-NEXT:    vpermt2w %zmm18, %zmm7, %zmm208092; AVX512BW-NEXT:    vpunpcklbw {{.*#+}} xmm22 = xmm27[0],xmm26[0],xmm27[1],xmm26[1],xmm27[2],xmm26[2],xmm27[3],xmm26[3],xmm27[4],xmm26[4],xmm27[5],xmm26[5],xmm27[6],xmm26[6],xmm27[7],xmm26[7]8093; AVX512BW-NEXT:    vpunpcklbw {{.*#+}} xmm18 = xmm29[0],xmm28[0],xmm29[1],xmm28[1],xmm29[2],xmm28[2],xmm29[3],xmm28[3],xmm29[4],xmm28[4],xmm29[5],xmm28[5],xmm29[6],xmm28[6],xmm29[7],xmm28[7]8094; AVX512BW-NEXT:    vpermt2w %zmm22, %zmm12, %zmm188095; AVX512BW-NEXT:    vpunpckhbw {{.*#+}} xmm17 = xmm17[8],xmm16[8],xmm17[9],xmm16[9],xmm17[10],xmm16[10],xmm17[11],xmm16[11],xmm17[12],xmm16[12],xmm17[13],xmm16[13],xmm17[14],xmm16[14],xmm17[15],xmm16[15]8096; AVX512BW-NEXT:    vmovdqa64 16(%r10), %xmm228097; AVX512BW-NEXT:    vpunpckhbw {{.*#+}} xmm16 = xmm21[8],xmm19[8],xmm21[9],xmm19[9],xmm21[10],xmm19[10],xmm21[11],xmm19[11],xmm21[12],xmm19[12],xmm21[13],xmm19[13],xmm21[14],xmm19[14],xmm21[15],xmm19[15]8098; AVX512BW-NEXT:    vmovdqa64 16(%rax), %xmm198099; AVX512BW-NEXT:    vpermt2w %zmm17, %zmm7, %zmm168100; AVX512BW-NEXT:    vmovdqa64 16(%r9), %xmm218101; AVX512BW-NEXT:    vpunpckhbw {{.*#+}} xmm23 = xmm27[8],xmm26[8],xmm27[9],xmm26[9],xmm27[10],xmm26[10],xmm27[11],xmm26[11],xmm27[12],xmm26[12],xmm27[13],xmm26[13],xmm27[14],xmm26[14],xmm27[15],xmm26[15]8102; AVX512BW-NEXT:    vmovdqa64 16(%r8), %xmm248103; AVX512BW-NEXT:    vpunpckhbw {{.*#+}} xmm17 = xmm29[8],xmm28[8],xmm29[9],xmm28[9],xmm29[10],xmm28[10],xmm29[11],xmm28[11],xmm29[12],xmm28[12],xmm29[13],xmm28[13],xmm29[14],xmm28[14],xmm29[15],xmm28[15]8104; AVX512BW-NEXT:    vpermt2w %zmm23, %zmm12, %zmm178105; AVX512BW-NEXT:    vpunpcklbw {{.*#+}} xmm23 = xmm19[0],xmm22[0],xmm19[1],xmm22[1],xmm19[2],xmm22[2],xmm19[3],xmm22[3],xmm19[4],xmm22[4],xmm19[5],xmm22[5],xmm19[6],xmm22[6],xmm19[7],xmm22[7]8106; AVX512BW-NEXT:    vpunpcklbw {{.*#+}} xmm25 = xmm24[0],xmm21[0],xmm24[1],xmm21[1],xmm24[2],xmm21[2],xmm24[3],xmm21[3],xmm24[4],xmm21[4],xmm24[5],xmm21[5],xmm24[6],xmm21[6],xmm24[7],xmm21[7]8107; AVX512BW-NEXT:    vpermt2w %zmm23, %zmm7, %zmm258108; AVX512BW-NEXT:    vpunpckhbw {{.*#+}} xmm19 = xmm19[8],xmm22[8],xmm19[9],xmm22[9],xmm19[10],xmm22[10],xmm19[11],xmm22[11],xmm19[12],xmm22[12],xmm19[13],xmm22[13],xmm19[14],xmm22[14],xmm19[15],xmm22[15]8109; AVX512BW-NEXT:    vpunpckhbw {{.*#+}} xmm21 = xmm24[8],xmm21[8],xmm24[9],xmm21[9],xmm24[10],xmm21[10],xmm24[11],xmm21[11],xmm24[12],xmm21[12],xmm24[13],xmm21[13],xmm24[14],xmm21[14],xmm24[15],xmm21[15]8110; AVX512BW-NEXT:    vmovdqa64 16(%rcx), %xmm228111; AVX512BW-NEXT:    vpermt2w %zmm19, %zmm7, %zmm218112; AVX512BW-NEXT:    vmovdqa64 16(%rdx), %xmm198113; AVX512BW-NEXT:    vpunpcklbw {{.*#+}} xmm1 = 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]8114; AVX512BW-NEXT:    vmovdqa 16(%rsi), %xmm38115; AVX512BW-NEXT:    vpunpcklbw {{.*#+}} xmm4 = xmm6[0],xmm4[0],xmm6[1],xmm4[1],xmm6[2],xmm4[2],xmm6[3],xmm4[3],xmm6[4],xmm4[4],xmm6[5],xmm4[5],xmm6[6],xmm4[6],xmm6[7],xmm4[7]8116; AVX512BW-NEXT:    vmovdqa 16(%rdi), %xmm68117; AVX512BW-NEXT:    vpermt2w %zmm1, %zmm7, %zmm48118; AVX512BW-NEXT:    vpunpcklbw {{.*#+}} xmm1 = xmm19[0],xmm22[0],xmm19[1],xmm22[1],xmm19[2],xmm22[2],xmm19[3],xmm22[3],xmm19[4],xmm22[4],xmm19[5],xmm22[5],xmm19[6],xmm22[6],xmm19[7],xmm22[7]8119; AVX512BW-NEXT:    vpunpcklbw {{.*#+}} xmm7 = xmm6[0],xmm3[0],xmm6[1],xmm3[1],xmm6[2],xmm3[2],xmm6[3],xmm3[3],xmm6[4],xmm3[4],xmm6[5],xmm3[5],xmm6[6],xmm3[6],xmm6[7],xmm3[7]8120; AVX512BW-NEXT:    vpermt2w %zmm1, %zmm12, %zmm78121; AVX512BW-NEXT:    vpunpckhbw {{.*#+}} xmm1 = xmm19[8],xmm22[8],xmm19[9],xmm22[9],xmm19[10],xmm22[10],xmm19[11],xmm22[11],xmm19[12],xmm22[12],xmm19[13],xmm22[13],xmm19[14],xmm22[14],xmm19[15],xmm22[15]8122; AVX512BW-NEXT:    vpunpckhbw {{.*#+}} xmm3 = 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]8123; AVX512BW-NEXT:    vpermt2w %zmm1, %zmm12, %zmm38124; AVX512BW-NEXT:    vpunpcklbw {{.*#+}} xmm1 = 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]8125; AVX512BW-NEXT:    vpunpcklbw {{.*#+}} xmm5 = 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]8126; AVX512BW-NEXT:    vpermt2w %zmm1, %zmm12, %zmm58127; AVX512BW-NEXT:    movw $-21846, %ax # imm = 0xAAAA8128; AVX512BW-NEXT:    kmovd %eax, %k18129; AVX512BW-NEXT:    vmovdqa32 %zmm0, %zmm2 {%k1}8130; AVX512BW-NEXT:    vmovdqa32 %zmm13, %zmm11 {%k1}8131; AVX512BW-NEXT:    vmovdqa32 %zmm15, %zmm14 {%k1}8132; AVX512BW-NEXT:    vmovdqa32 %zmm20, %zmm18 {%k1}8133; AVX512BW-NEXT:    vmovdqa32 %zmm16, %zmm17 {%k1}8134; AVX512BW-NEXT:    vmovdqa32 %zmm25, %zmm7 {%k1}8135; AVX512BW-NEXT:    vmovdqa32 %zmm21, %zmm3 {%k1}8136; AVX512BW-NEXT:    vmovdqa32 %zmm4, %zmm5 {%k1}8137; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax8138; AVX512BW-NEXT:    vmovdqa64 %zmm5, (%rax)8139; AVX512BW-NEXT:    vmovdqa64 %zmm3, 192(%rax)8140; AVX512BW-NEXT:    vmovdqa64 %zmm7, 128(%rax)8141; AVX512BW-NEXT:    vmovdqa64 %zmm17, 320(%rax)8142; AVX512BW-NEXT:    vmovdqa64 %zmm18, 256(%rax)8143; AVX512BW-NEXT:    vmovdqa64 %zmm14, 448(%rax)8144; AVX512BW-NEXT:    vmovdqa64 %zmm11, 384(%rax)8145; AVX512BW-NEXT:    vmovdqa64 %zmm2, 64(%rax)8146; AVX512BW-NEXT:    vzeroupper8147; AVX512BW-NEXT:    retq8148;8149; AVX512BW-FCP-LABEL: store_i8_stride8_vf64:8150; AVX512BW-FCP:       # %bb.0:8151; AVX512BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax8152; AVX512BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r108153; AVX512BW-FCP-NEXT:    vmovdqa (%rsi), %xmm18154; AVX512BW-FCP-NEXT:    vmovdqa64 32(%rsi), %xmm198155; AVX512BW-FCP-NEXT:    vmovdqa64 48(%rsi), %xmm168156; AVX512BW-FCP-NEXT:    vmovdqa (%rdi), %xmm28157; AVX512BW-FCP-NEXT:    vmovdqa64 32(%rdi), %xmm208158; AVX512BW-FCP-NEXT:    vmovdqa64 48(%rdi), %xmm178159; AVX512BW-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm0 = 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]8160; AVX512BW-FCP-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm38161; AVX512BW-FCP-NEXT:    vpmovsxwq {{.*#+}} ymm5 = [2312,2826,3340,3854]8162; AVX512BW-FCP-NEXT:    vpshufb %ymm5, %ymm3, %ymm38163; AVX512BW-FCP-NEXT:    vpmovsxwq {{.*#+}} xmm6 = [1284,1798]8164; AVX512BW-FCP-NEXT:    vpshufb %xmm6, %xmm0, %xmm48165; AVX512BW-FCP-NEXT:    vpmovzxwq {{.*#+}} xmm0 = xmm0[0],zero,zero,zero,xmm0[1],zero,zero,zero8166; AVX512BW-FCP-NEXT:    vinserti128 $1, %xmm4, %ymm0, %ymm08167; AVX512BW-FCP-NEXT:    vinserti64x4 $1, %ymm3, %zmm0, %zmm08168; AVX512BW-FCP-NEXT:    vmovdqa (%rcx), %xmm38169; AVX512BW-FCP-NEXT:    vmovdqa64 32(%rcx), %xmm218170; AVX512BW-FCP-NEXT:    vmovdqa64 48(%rcx), %xmm188171; AVX512BW-FCP-NEXT:    vmovdqa (%rdx), %xmm78172; AVX512BW-FCP-NEXT:    vmovdqa64 32(%rdx), %xmm228173; AVX512BW-FCP-NEXT:    vmovdqa64 48(%rdx), %xmm238174; AVX512BW-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm4 = xmm7[8],xmm3[8],xmm7[9],xmm3[9],xmm7[10],xmm3[10],xmm7[11],xmm3[11],xmm7[12],xmm3[12],xmm7[13],xmm3[13],xmm7[14],xmm3[14],xmm7[15],xmm3[15]8175; AVX512BW-FCP-NEXT:    vinserti128 $1, %xmm4, %ymm4, %ymm48176; AVX512BW-FCP-NEXT:    vpmovsxbw {{.*#+}} zmm9 = [0,32,2,3,4,33,6,7,8,42,10,11,12,43,14,15,16,36,18,19,20,37,22,23,24,46,26,27,28,47,30,31]8177; AVX512BW-FCP-NEXT:    vpermt2w %zmm4, %zmm9, %zmm08178; AVX512BW-FCP-NEXT:    vmovdqa (%r10), %xmm48179; AVX512BW-FCP-NEXT:    vmovdqa64 48(%r10), %xmm248180; AVX512BW-FCP-NEXT:    vmovdqa (%rax), %xmm88181; AVX512BW-FCP-NEXT:    vmovdqa64 48(%rax), %xmm268182; AVX512BW-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm10 = 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]8183; AVX512BW-FCP-NEXT:    vinserti128 $1, %xmm10, %ymm10, %ymm138184; AVX512BW-FCP-NEXT:    vmovdqa (%r9), %xmm108185; AVX512BW-FCP-NEXT:    vmovdqa64 48(%r9), %xmm288186; AVX512BW-FCP-NEXT:    vmovdqa (%r8), %xmm128187; AVX512BW-FCP-NEXT:    vmovdqa64 48(%r8), %xmm308188; AVX512BW-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm11 = 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]8189; AVX512BW-FCP-NEXT:    vpmovsxbw {{.*#+}} zmm14 = [0,1,0,32,4,5,1,33,2,1,2,42,4,5,3,43,0,1,4,36,4,5,5,37,0,1,6,46,6,5,7,47]8190; AVX512BW-FCP-NEXT:    vpermt2w %zmm13, %zmm14, %zmm118191; AVX512BW-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm13 = xmm17[0],xmm16[0],xmm17[1],xmm16[1],xmm17[2],xmm16[2],xmm17[3],xmm16[3],xmm17[4],xmm16[4],xmm17[5],xmm16[5],xmm17[6],xmm16[6],xmm17[7],xmm16[7]8192; AVX512BW-FCP-NEXT:    vinserti128 $1, %xmm13, %ymm13, %ymm158193; AVX512BW-FCP-NEXT:    vpshufb %ymm5, %ymm15, %ymm158194; AVX512BW-FCP-NEXT:    vpshufb %xmm6, %xmm13, %xmm258195; AVX512BW-FCP-NEXT:    vpmovzxwq {{.*#+}} xmm13 = xmm13[0],zero,zero,zero,xmm13[1],zero,zero,zero8196; AVX512BW-FCP-NEXT:    vinserti32x4 $1, %xmm25, %ymm13, %ymm138197; AVX512BW-FCP-NEXT:    vinserti64x4 $1, %ymm15, %zmm13, %zmm138198; AVX512BW-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm15 = xmm23[0],xmm18[0],xmm23[1],xmm18[1],xmm23[2],xmm18[2],xmm23[3],xmm18[3],xmm23[4],xmm18[4],xmm23[5],xmm18[5],xmm23[6],xmm18[6],xmm23[7],xmm18[7]8199; AVX512BW-FCP-NEXT:    vinserti128 $1, %xmm15, %ymm15, %ymm158200; AVX512BW-FCP-NEXT:    vpermt2w %zmm15, %zmm9, %zmm138201; AVX512BW-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm15 = xmm26[0],xmm24[0],xmm26[1],xmm24[1],xmm26[2],xmm24[2],xmm26[3],xmm24[3],xmm26[4],xmm24[4],xmm26[5],xmm24[5],xmm26[6],xmm24[6],xmm26[7],xmm24[7]8202; AVX512BW-FCP-NEXT:    vinserti32x4 $1, %xmm15, %ymm15, %ymm258203; AVX512BW-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm15 = 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]8204; AVX512BW-FCP-NEXT:    vpermt2w %zmm25, %zmm14, %zmm158205; AVX512BW-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm16 = xmm17[8],xmm16[8],xmm17[9],xmm16[9],xmm17[10],xmm16[10],xmm17[11],xmm16[11],xmm17[12],xmm16[12],xmm17[13],xmm16[13],xmm17[14],xmm16[14],xmm17[15],xmm16[15]8206; AVX512BW-FCP-NEXT:    vpshufb %xmm6, %xmm16, %xmm178207; AVX512BW-FCP-NEXT:    vpmovzxwq {{.*#+}} xmm25 = xmm16[0],zero,zero,zero,xmm16[1],zero,zero,zero8208; AVX512BW-FCP-NEXT:    vinserti32x4 $1, %xmm17, %ymm25, %ymm178209; AVX512BW-FCP-NEXT:    vmovdqa64 32(%r10), %xmm258210; AVX512BW-FCP-NEXT:    vinserti32x4 $1, %xmm16, %ymm16, %ymm168211; AVX512BW-FCP-NEXT:    vpshufb %ymm5, %ymm16, %ymm168212; AVX512BW-FCP-NEXT:    vinserti64x4 $1, %ymm16, %zmm17, %zmm168213; AVX512BW-FCP-NEXT:    vmovdqa64 32(%rax), %xmm298214; AVX512BW-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm17 = 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]8215; AVX512BW-FCP-NEXT:    vmovdqa64 32(%r9), %xmm278216; AVX512BW-FCP-NEXT:    vinserti32x4 $1, %xmm17, %ymm17, %ymm178217; AVX512BW-FCP-NEXT:    vpermt2w %zmm17, %zmm9, %zmm168218; AVX512BW-FCP-NEXT:    vmovdqa64 32(%r8), %xmm318219; AVX512BW-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm17 = xmm26[8],xmm24[8],xmm26[9],xmm24[9],xmm26[10],xmm24[10],xmm26[11],xmm24[11],xmm26[12],xmm24[12],xmm26[13],xmm24[13],xmm26[14],xmm24[14],xmm26[15],xmm24[15]8220; AVX512BW-FCP-NEXT:    vinserti32x4 $1, %xmm17, %ymm17, %ymm188221; AVX512BW-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm17 = 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]8222; AVX512BW-FCP-NEXT:    vpermt2w %zmm18, %zmm14, %zmm178223; AVX512BW-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm18 = xmm20[0],xmm19[0],xmm20[1],xmm19[1],xmm20[2],xmm19[2],xmm20[3],xmm19[3],xmm20[4],xmm19[4],xmm20[5],xmm19[5],xmm20[6],xmm19[6],xmm20[7],xmm19[7]8224; AVX512BW-FCP-NEXT:    vinserti32x4 $1, %xmm18, %ymm18, %ymm238225; AVX512BW-FCP-NEXT:    vpshufb %ymm5, %ymm23, %ymm238226; AVX512BW-FCP-NEXT:    vpshufb %xmm6, %xmm18, %xmm248227; AVX512BW-FCP-NEXT:    vpmovzxwq {{.*#+}} xmm18 = xmm18[0],zero,zero,zero,xmm18[1],zero,zero,zero8228; AVX512BW-FCP-NEXT:    vinserti32x4 $1, %xmm24, %ymm18, %ymm188229; AVX512BW-FCP-NEXT:    vinserti64x4 $1, %ymm23, %zmm18, %zmm188230; AVX512BW-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm23 = xmm22[0],xmm21[0],xmm22[1],xmm21[1],xmm22[2],xmm21[2],xmm22[3],xmm21[3],xmm22[4],xmm21[4],xmm22[5],xmm21[5],xmm22[6],xmm21[6],xmm22[7],xmm21[7]8231; AVX512BW-FCP-NEXT:    vinserti32x4 $1, %xmm23, %ymm23, %ymm238232; AVX512BW-FCP-NEXT:    vpermt2w %zmm23, %zmm9, %zmm188233; AVX512BW-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm23 = xmm29[0],xmm25[0],xmm29[1],xmm25[1],xmm29[2],xmm25[2],xmm29[3],xmm25[3],xmm29[4],xmm25[4],xmm29[5],xmm25[5],xmm29[6],xmm25[6],xmm29[7],xmm25[7]8234; AVX512BW-FCP-NEXT:    vinserti32x4 $1, %xmm23, %ymm23, %ymm248235; AVX512BW-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm23 = xmm31[0],xmm27[0],xmm31[1],xmm27[1],xmm31[2],xmm27[2],xmm31[3],xmm27[3],xmm31[4],xmm27[4],xmm31[5],xmm27[5],xmm31[6],xmm27[6],xmm31[7],xmm27[7]8236; AVX512BW-FCP-NEXT:    vpermt2w %zmm24, %zmm14, %zmm238237; AVX512BW-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm19 = xmm20[8],xmm19[8],xmm20[9],xmm19[9],xmm20[10],xmm19[10],xmm20[11],xmm19[11],xmm20[12],xmm19[12],xmm20[13],xmm19[13],xmm20[14],xmm19[14],xmm20[15],xmm19[15]8238; AVX512BW-FCP-NEXT:    vpshufb %xmm6, %xmm19, %xmm208239; AVX512BW-FCP-NEXT:    vpmovzxwq {{.*#+}} xmm24 = xmm19[0],zero,zero,zero,xmm19[1],zero,zero,zero8240; AVX512BW-FCP-NEXT:    vinserti32x4 $1, %xmm20, %ymm24, %ymm208241; AVX512BW-FCP-NEXT:    vinserti32x4 $1, %xmm19, %ymm19, %ymm198242; AVX512BW-FCP-NEXT:    vpshufb %ymm5, %ymm19, %ymm198243; AVX512BW-FCP-NEXT:    vinserti64x4 $1, %ymm19, %zmm20, %zmm198244; AVX512BW-FCP-NEXT:    vmovdqa64 16(%rsi), %xmm248245; AVX512BW-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm20 = xmm22[8],xmm21[8],xmm22[9],xmm21[9],xmm22[10],xmm21[10],xmm22[11],xmm21[11],xmm22[12],xmm21[12],xmm22[13],xmm21[13],xmm22[14],xmm21[14],xmm22[15],xmm21[15]8246; AVX512BW-FCP-NEXT:    vmovdqa64 16(%rdi), %xmm228247; AVX512BW-FCP-NEXT:    vinserti32x4 $1, %xmm20, %ymm20, %ymm208248; AVX512BW-FCP-NEXT:    vpermt2w %zmm20, %zmm9, %zmm198249; AVX512BW-FCP-NEXT:    vmovdqa64 16(%rcx), %xmm268250; AVX512BW-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm20 = xmm29[8],xmm25[8],xmm29[9],xmm25[9],xmm29[10],xmm25[10],xmm29[11],xmm25[11],xmm29[12],xmm25[12],xmm29[13],xmm25[13],xmm29[14],xmm25[14],xmm29[15],xmm25[15]8251; AVX512BW-FCP-NEXT:    vinserti32x4 $1, %xmm20, %ymm20, %ymm218252; AVX512BW-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm20 = xmm31[8],xmm27[8],xmm31[9],xmm27[9],xmm31[10],xmm27[10],xmm31[11],xmm27[11],xmm31[12],xmm27[12],xmm31[13],xmm27[13],xmm31[14],xmm27[14],xmm31[15],xmm27[15]8253; AVX512BW-FCP-NEXT:    vpermt2w %zmm21, %zmm14, %zmm208254; AVX512BW-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm21 = xmm22[0],xmm24[0],xmm22[1],xmm24[1],xmm22[2],xmm24[2],xmm22[3],xmm24[3],xmm22[4],xmm24[4],xmm22[5],xmm24[5],xmm22[6],xmm24[6],xmm22[7],xmm24[7]8255; AVX512BW-FCP-NEXT:    vpshufb %xmm6, %xmm21, %xmm258256; AVX512BW-FCP-NEXT:    vpmovzxwq {{.*#+}} xmm27 = xmm21[0],zero,zero,zero,xmm21[1],zero,zero,zero8257; AVX512BW-FCP-NEXT:    vinserti32x4 $1, %xmm25, %ymm27, %ymm258258; AVX512BW-FCP-NEXT:    vmovdqa64 16(%rdx), %xmm278259; AVX512BW-FCP-NEXT:    vinserti32x4 $1, %xmm21, %ymm21, %ymm218260; AVX512BW-FCP-NEXT:    vpshufb %ymm5, %ymm21, %ymm218261; AVX512BW-FCP-NEXT:    vinserti64x4 $1, %ymm21, %zmm25, %zmm218262; AVX512BW-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm25 = xmm27[0],xmm26[0],xmm27[1],xmm26[1],xmm27[2],xmm26[2],xmm27[3],xmm26[3],xmm27[4],xmm26[4],xmm27[5],xmm26[5],xmm27[6],xmm26[6],xmm27[7],xmm26[7]8263; AVX512BW-FCP-NEXT:    vinserti32x4 $1, %xmm25, %ymm25, %ymm258264; AVX512BW-FCP-NEXT:    vpermt2w %zmm25, %zmm9, %zmm218265; AVX512BW-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm22 = xmm22[8],xmm24[8],xmm22[9],xmm24[9],xmm22[10],xmm24[10],xmm22[11],xmm24[11],xmm22[12],xmm24[12],xmm22[13],xmm24[13],xmm22[14],xmm24[14],xmm22[15],xmm24[15]8266; AVX512BW-FCP-NEXT:    vpshufb %xmm6, %xmm22, %xmm248267; AVX512BW-FCP-NEXT:    vpmovzxwq {{.*#+}} xmm25 = xmm22[0],zero,zero,zero,xmm22[1],zero,zero,zero8268; AVX512BW-FCP-NEXT:    vinserti32x4 $1, %xmm24, %ymm25, %ymm248269; AVX512BW-FCP-NEXT:    vinserti32x4 $1, %xmm22, %ymm22, %ymm228270; AVX512BW-FCP-NEXT:    vpshufb %ymm5, %ymm22, %ymm228271; AVX512BW-FCP-NEXT:    vinserti64x4 $1, %ymm22, %zmm24, %zmm228272; AVX512BW-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm24 = xmm27[8],xmm26[8],xmm27[9],xmm26[9],xmm27[10],xmm26[10],xmm27[11],xmm26[11],xmm27[12],xmm26[12],xmm27[13],xmm26[13],xmm27[14],xmm26[14],xmm27[15],xmm26[15]8273; AVX512BW-FCP-NEXT:    vinserti32x4 $1, %xmm24, %ymm24, %ymm248274; AVX512BW-FCP-NEXT:    vpermt2w %zmm24, %zmm9, %zmm228275; AVX512BW-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm1 = 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]8276; AVX512BW-FCP-NEXT:    vinserti128 $1, %xmm1, %ymm1, %ymm28277; AVX512BW-FCP-NEXT:    vpshufb %ymm5, %ymm2, %ymm28278; AVX512BW-FCP-NEXT:    vmovdqa 16(%r10), %xmm58279; AVX512BW-FCP-NEXT:    vpshufb %xmm6, %xmm1, %xmm68280; AVX512BW-FCP-NEXT:    vpmovzxwq {{.*#+}} xmm1 = xmm1[0],zero,zero,zero,xmm1[1],zero,zero,zero8281; AVX512BW-FCP-NEXT:    vinserti128 $1, %xmm6, %ymm1, %ymm18282; AVX512BW-FCP-NEXT:    vmovdqa 16(%rax), %xmm68283; AVX512BW-FCP-NEXT:    vinserti64x4 $1, %ymm2, %zmm1, %zmm18284; AVX512BW-FCP-NEXT:    vmovdqa 16(%r9), %xmm28285; AVX512BW-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm3 = xmm7[0],xmm3[0],xmm7[1],xmm3[1],xmm7[2],xmm3[2],xmm7[3],xmm3[3],xmm7[4],xmm3[4],xmm7[5],xmm3[5],xmm7[6],xmm3[6],xmm7[7],xmm3[7]8286; AVX512BW-FCP-NEXT:    vmovdqa 16(%r8), %xmm78287; AVX512BW-FCP-NEXT:    vinserti128 $1, %xmm3, %ymm3, %ymm38288; AVX512BW-FCP-NEXT:    vpermt2w %zmm3, %zmm9, %zmm18289; AVX512BW-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm3 = xmm6[0],xmm5[0],xmm6[1],xmm5[1],xmm6[2],xmm5[2],xmm6[3],xmm5[3],xmm6[4],xmm5[4],xmm6[5],xmm5[5],xmm6[6],xmm5[6],xmm6[7],xmm5[7]8290; AVX512BW-FCP-NEXT:    vinserti128 $1, %xmm3, %ymm3, %ymm38291; AVX512BW-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm9 = xmm7[0],xmm2[0],xmm7[1],xmm2[1],xmm7[2],xmm2[2],xmm7[3],xmm2[3],xmm7[4],xmm2[4],xmm7[5],xmm2[5],xmm7[6],xmm2[6],xmm7[7],xmm2[7]8292; AVX512BW-FCP-NEXT:    vpermt2w %zmm3, %zmm14, %zmm98293; AVX512BW-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm3 = xmm6[8],xmm5[8],xmm6[9],xmm5[9],xmm6[10],xmm5[10],xmm6[11],xmm5[11],xmm6[12],xmm5[12],xmm6[13],xmm5[13],xmm6[14],xmm5[14],xmm6[15],xmm5[15]8294; AVX512BW-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm2 = xmm7[8],xmm2[8],xmm7[9],xmm2[9],xmm7[10],xmm2[10],xmm7[11],xmm2[11],xmm7[12],xmm2[12],xmm7[13],xmm2[13],xmm7[14],xmm2[14],xmm7[15],xmm2[15]8295; AVX512BW-FCP-NEXT:    vinserti128 $1, %xmm3, %ymm3, %ymm38296; AVX512BW-FCP-NEXT:    vpermt2w %zmm3, %zmm14, %zmm28297; AVX512BW-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm3 = xmm8[0],xmm4[0],xmm8[1],xmm4[1],xmm8[2],xmm4[2],xmm8[3],xmm4[3],xmm8[4],xmm4[4],xmm8[5],xmm4[5],xmm8[6],xmm4[6],xmm8[7],xmm4[7]8298; AVX512BW-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm4 = xmm12[0],xmm10[0],xmm12[1],xmm10[1],xmm12[2],xmm10[2],xmm12[3],xmm10[3],xmm12[4],xmm10[4],xmm12[5],xmm10[5],xmm12[6],xmm10[6],xmm12[7],xmm10[7]8299; AVX512BW-FCP-NEXT:    vinserti128 $1, %xmm3, %ymm3, %ymm38300; AVX512BW-FCP-NEXT:    vpermt2w %zmm3, %zmm14, %zmm48301; AVX512BW-FCP-NEXT:    movw $-21846, %ax # imm = 0xAAAA8302; AVX512BW-FCP-NEXT:    kmovd %eax, %k18303; AVX512BW-FCP-NEXT:    vmovdqa32 %zmm11, %zmm0 {%k1}8304; AVX512BW-FCP-NEXT:    vmovdqa32 %zmm15, %zmm13 {%k1}8305; AVX512BW-FCP-NEXT:    vmovdqa32 %zmm17, %zmm16 {%k1}8306; AVX512BW-FCP-NEXT:    vmovdqa32 %zmm23, %zmm18 {%k1}8307; AVX512BW-FCP-NEXT:    vmovdqa32 %zmm20, %zmm19 {%k1}8308; AVX512BW-FCP-NEXT:    vmovdqa32 %zmm9, %zmm21 {%k1}8309; AVX512BW-FCP-NEXT:    vmovdqa32 %zmm2, %zmm22 {%k1}8310; AVX512BW-FCP-NEXT:    vmovdqa32 %zmm4, %zmm1 {%k1}8311; AVX512BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax8312; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, (%rax)8313; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm22, 192(%rax)8314; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm21, 128(%rax)8315; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm19, 320(%rax)8316; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm18, 256(%rax)8317; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm16, 448(%rax)8318; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm13, 384(%rax)8319; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, 64(%rax)8320; AVX512BW-FCP-NEXT:    vzeroupper8321; AVX512BW-FCP-NEXT:    retq8322;8323; AVX512DQ-BW-LABEL: store_i8_stride8_vf64:8324; AVX512DQ-BW:       # %bb.0:8325; AVX512DQ-BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax8326; AVX512DQ-BW-NEXT:    movq {{[0-9]+}}(%rsp), %r108327; AVX512DQ-BW-NEXT:    vmovdqa (%r10), %xmm18328; AVX512DQ-BW-NEXT:    vmovdqa64 32(%r10), %xmm168329; AVX512DQ-BW-NEXT:    vmovdqa 48(%r10), %xmm148330; AVX512DQ-BW-NEXT:    vmovdqa (%rax), %xmm38331; AVX512DQ-BW-NEXT:    vmovdqa64 32(%rax), %xmm178332; AVX512DQ-BW-NEXT:    vmovdqa 48(%rax), %xmm158333; AVX512DQ-BW-NEXT:    vpunpckhbw {{.*#+}} xmm2 = 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]8334; AVX512DQ-BW-NEXT:    vmovdqa (%r9), %xmm48335; AVX512DQ-BW-NEXT:    vmovdqa64 32(%r9), %xmm198336; AVX512DQ-BW-NEXT:    vmovdqa64 48(%r9), %xmm188337; AVX512DQ-BW-NEXT:    vmovdqa (%r8), %xmm68338; AVX512DQ-BW-NEXT:    vmovdqa64 32(%r8), %xmm218339; AVX512DQ-BW-NEXT:    vmovdqa64 48(%r8), %xmm208340; AVX512DQ-BW-NEXT:    vpunpckhbw {{.*#+}} xmm0 = xmm6[8],xmm4[8],xmm6[9],xmm4[9],xmm6[10],xmm4[10],xmm6[11],xmm4[11],xmm6[12],xmm4[12],xmm6[13],xmm4[13],xmm6[14],xmm4[14],xmm6[15],xmm4[15]8341; AVX512DQ-BW-NEXT:    vpmovsxbw {{.*#+}} zmm7 = [0,1,0,32,4,5,1,33,2,1,2,34,4,5,3,35,0,1,4,36,4,5,5,37,0,1,6,38,6,5,7,39]8342; AVX512DQ-BW-NEXT:    vpermt2w %zmm2, %zmm7, %zmm08343; AVX512DQ-BW-NEXT:    vmovdqa (%rcx), %xmm58344; AVX512DQ-BW-NEXT:    vmovdqa64 48(%rcx), %xmm228345; AVX512DQ-BW-NEXT:    vmovdqa (%rdx), %xmm88346; AVX512DQ-BW-NEXT:    vmovdqa64 48(%rdx), %xmm238347; AVX512DQ-BW-NEXT:    vpunpckhbw {{.*#+}} xmm11 = xmm8[8],xmm5[8],xmm8[9],xmm5[9],xmm8[10],xmm5[10],xmm8[11],xmm5[11],xmm8[12],xmm5[12],xmm8[13],xmm5[13],xmm8[14],xmm5[14],xmm8[15],xmm5[15]8348; AVX512DQ-BW-NEXT:    vmovdqa (%rsi), %xmm98349; AVX512DQ-BW-NEXT:    vmovdqa64 48(%rsi), %xmm248350; AVX512DQ-BW-NEXT:    vmovdqa (%rdi), %xmm108351; AVX512DQ-BW-NEXT:    vmovdqa64 48(%rdi), %xmm258352; AVX512DQ-BW-NEXT:    vpunpckhbw {{.*#+}} xmm2 = 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]8353; AVX512DQ-BW-NEXT:    vpmovsxbw {{.*#+}} zmm12 = [0,32,0,0,1,33,0,0,2,34,0,0,3,35,0,0,4,36,0,0,5,37,0,0,6,38,0,0,7,39,0,0]8354; AVX512DQ-BW-NEXT:    vpermt2w %zmm11, %zmm12, %zmm28355; AVX512DQ-BW-NEXT:    vpunpcklbw {{.*#+}} xmm11 = xmm15[0],xmm14[0],xmm15[1],xmm14[1],xmm15[2],xmm14[2],xmm15[3],xmm14[3],xmm15[4],xmm14[4],xmm15[5],xmm14[5],xmm15[6],xmm14[6],xmm15[7],xmm14[7]8356; AVX512DQ-BW-NEXT:    vpunpcklbw {{.*#+}} xmm13 = xmm20[0],xmm18[0],xmm20[1],xmm18[1],xmm20[2],xmm18[2],xmm20[3],xmm18[3],xmm20[4],xmm18[4],xmm20[5],xmm18[5],xmm20[6],xmm18[6],xmm20[7],xmm18[7]8357; AVX512DQ-BW-NEXT:    vpermt2w %zmm11, %zmm7, %zmm138358; AVX512DQ-BW-NEXT:    vpunpcklbw {{.*#+}} xmm26 = xmm23[0],xmm22[0],xmm23[1],xmm22[1],xmm23[2],xmm22[2],xmm23[3],xmm22[3],xmm23[4],xmm22[4],xmm23[5],xmm22[5],xmm23[6],xmm22[6],xmm23[7],xmm22[7]8359; AVX512DQ-BW-NEXT:    vpunpcklbw {{.*#+}} xmm11 = xmm25[0],xmm24[0],xmm25[1],xmm24[1],xmm25[2],xmm24[2],xmm25[3],xmm24[3],xmm25[4],xmm24[4],xmm25[5],xmm24[5],xmm25[6],xmm24[6],xmm25[7],xmm24[7]8360; AVX512DQ-BW-NEXT:    vpermt2w %zmm26, %zmm12, %zmm118361; AVX512DQ-BW-NEXT:    vmovdqa64 32(%rcx), %xmm268362; AVX512DQ-BW-NEXT:    vpunpckhbw {{.*#+}} xmm14 = xmm15[8],xmm14[8],xmm15[9],xmm14[9],xmm15[10],xmm14[10],xmm15[11],xmm14[11],xmm15[12],xmm14[12],xmm15[13],xmm14[13],xmm15[14],xmm14[14],xmm15[15],xmm14[15]8363; AVX512DQ-BW-NEXT:    vmovdqa64 32(%rdx), %xmm278364; AVX512DQ-BW-NEXT:    vpunpckhbw {{.*#+}} xmm15 = xmm20[8],xmm18[8],xmm20[9],xmm18[9],xmm20[10],xmm18[10],xmm20[11],xmm18[11],xmm20[12],xmm18[12],xmm20[13],xmm18[13],xmm20[14],xmm18[14],xmm20[15],xmm18[15]8365; AVX512DQ-BW-NEXT:    vmovdqa64 32(%rsi), %xmm288366; AVX512DQ-BW-NEXT:    vpermt2w %zmm14, %zmm7, %zmm158367; AVX512DQ-BW-NEXT:    vmovdqa64 32(%rdi), %xmm298368; AVX512DQ-BW-NEXT:    vpunpckhbw {{.*#+}} xmm18 = xmm23[8],xmm22[8],xmm23[9],xmm22[9],xmm23[10],xmm22[10],xmm23[11],xmm22[11],xmm23[12],xmm22[12],xmm23[13],xmm22[13],xmm23[14],xmm22[14],xmm23[15],xmm22[15]8369; AVX512DQ-BW-NEXT:    vpunpckhbw {{.*#+}} xmm14 = xmm25[8],xmm24[8],xmm25[9],xmm24[9],xmm25[10],xmm24[10],xmm25[11],xmm24[11],xmm25[12],xmm24[12],xmm25[13],xmm24[13],xmm25[14],xmm24[14],xmm25[15],xmm24[15]8370; AVX512DQ-BW-NEXT:    vpermt2w %zmm18, %zmm12, %zmm148371; AVX512DQ-BW-NEXT:    vpunpcklbw {{.*#+}} xmm18 = xmm17[0],xmm16[0],xmm17[1],xmm16[1],xmm17[2],xmm16[2],xmm17[3],xmm16[3],xmm17[4],xmm16[4],xmm17[5],xmm16[5],xmm17[6],xmm16[6],xmm17[7],xmm16[7]8372; AVX512DQ-BW-NEXT:    vpunpcklbw {{.*#+}} xmm20 = xmm21[0],xmm19[0],xmm21[1],xmm19[1],xmm21[2],xmm19[2],xmm21[3],xmm19[3],xmm21[4],xmm19[4],xmm21[5],xmm19[5],xmm21[6],xmm19[6],xmm21[7],xmm19[7]8373; AVX512DQ-BW-NEXT:    vpermt2w %zmm18, %zmm7, %zmm208374; AVX512DQ-BW-NEXT:    vpunpcklbw {{.*#+}} xmm22 = xmm27[0],xmm26[0],xmm27[1],xmm26[1],xmm27[2],xmm26[2],xmm27[3],xmm26[3],xmm27[4],xmm26[4],xmm27[5],xmm26[5],xmm27[6],xmm26[6],xmm27[7],xmm26[7]8375; AVX512DQ-BW-NEXT:    vpunpcklbw {{.*#+}} xmm18 = xmm29[0],xmm28[0],xmm29[1],xmm28[1],xmm29[2],xmm28[2],xmm29[3],xmm28[3],xmm29[4],xmm28[4],xmm29[5],xmm28[5],xmm29[6],xmm28[6],xmm29[7],xmm28[7]8376; AVX512DQ-BW-NEXT:    vpermt2w %zmm22, %zmm12, %zmm188377; AVX512DQ-BW-NEXT:    vpunpckhbw {{.*#+}} xmm17 = xmm17[8],xmm16[8],xmm17[9],xmm16[9],xmm17[10],xmm16[10],xmm17[11],xmm16[11],xmm17[12],xmm16[12],xmm17[13],xmm16[13],xmm17[14],xmm16[14],xmm17[15],xmm16[15]8378; AVX512DQ-BW-NEXT:    vmovdqa64 16(%r10), %xmm228379; AVX512DQ-BW-NEXT:    vpunpckhbw {{.*#+}} xmm16 = xmm21[8],xmm19[8],xmm21[9],xmm19[9],xmm21[10],xmm19[10],xmm21[11],xmm19[11],xmm21[12],xmm19[12],xmm21[13],xmm19[13],xmm21[14],xmm19[14],xmm21[15],xmm19[15]8380; AVX512DQ-BW-NEXT:    vmovdqa64 16(%rax), %xmm198381; AVX512DQ-BW-NEXT:    vpermt2w %zmm17, %zmm7, %zmm168382; AVX512DQ-BW-NEXT:    vmovdqa64 16(%r9), %xmm218383; AVX512DQ-BW-NEXT:    vpunpckhbw {{.*#+}} xmm23 = xmm27[8],xmm26[8],xmm27[9],xmm26[9],xmm27[10],xmm26[10],xmm27[11],xmm26[11],xmm27[12],xmm26[12],xmm27[13],xmm26[13],xmm27[14],xmm26[14],xmm27[15],xmm26[15]8384; AVX512DQ-BW-NEXT:    vmovdqa64 16(%r8), %xmm248385; AVX512DQ-BW-NEXT:    vpunpckhbw {{.*#+}} xmm17 = xmm29[8],xmm28[8],xmm29[9],xmm28[9],xmm29[10],xmm28[10],xmm29[11],xmm28[11],xmm29[12],xmm28[12],xmm29[13],xmm28[13],xmm29[14],xmm28[14],xmm29[15],xmm28[15]8386; AVX512DQ-BW-NEXT:    vpermt2w %zmm23, %zmm12, %zmm178387; AVX512DQ-BW-NEXT:    vpunpcklbw {{.*#+}} xmm23 = xmm19[0],xmm22[0],xmm19[1],xmm22[1],xmm19[2],xmm22[2],xmm19[3],xmm22[3],xmm19[4],xmm22[4],xmm19[5],xmm22[5],xmm19[6],xmm22[6],xmm19[7],xmm22[7]8388; AVX512DQ-BW-NEXT:    vpunpcklbw {{.*#+}} xmm25 = xmm24[0],xmm21[0],xmm24[1],xmm21[1],xmm24[2],xmm21[2],xmm24[3],xmm21[3],xmm24[4],xmm21[4],xmm24[5],xmm21[5],xmm24[6],xmm21[6],xmm24[7],xmm21[7]8389; AVX512DQ-BW-NEXT:    vpermt2w %zmm23, %zmm7, %zmm258390; AVX512DQ-BW-NEXT:    vpunpckhbw {{.*#+}} xmm19 = xmm19[8],xmm22[8],xmm19[9],xmm22[9],xmm19[10],xmm22[10],xmm19[11],xmm22[11],xmm19[12],xmm22[12],xmm19[13],xmm22[13],xmm19[14],xmm22[14],xmm19[15],xmm22[15]8391; AVX512DQ-BW-NEXT:    vpunpckhbw {{.*#+}} xmm21 = xmm24[8],xmm21[8],xmm24[9],xmm21[9],xmm24[10],xmm21[10],xmm24[11],xmm21[11],xmm24[12],xmm21[12],xmm24[13],xmm21[13],xmm24[14],xmm21[14],xmm24[15],xmm21[15]8392; AVX512DQ-BW-NEXT:    vmovdqa64 16(%rcx), %xmm228393; AVX512DQ-BW-NEXT:    vpermt2w %zmm19, %zmm7, %zmm218394; AVX512DQ-BW-NEXT:    vmovdqa64 16(%rdx), %xmm198395; AVX512DQ-BW-NEXT:    vpunpcklbw {{.*#+}} xmm1 = 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]8396; AVX512DQ-BW-NEXT:    vmovdqa 16(%rsi), %xmm38397; AVX512DQ-BW-NEXT:    vpunpcklbw {{.*#+}} xmm4 = xmm6[0],xmm4[0],xmm6[1],xmm4[1],xmm6[2],xmm4[2],xmm6[3],xmm4[3],xmm6[4],xmm4[4],xmm6[5],xmm4[5],xmm6[6],xmm4[6],xmm6[7],xmm4[7]8398; AVX512DQ-BW-NEXT:    vmovdqa 16(%rdi), %xmm68399; AVX512DQ-BW-NEXT:    vpermt2w %zmm1, %zmm7, %zmm48400; AVX512DQ-BW-NEXT:    vpunpcklbw {{.*#+}} xmm1 = xmm19[0],xmm22[0],xmm19[1],xmm22[1],xmm19[2],xmm22[2],xmm19[3],xmm22[3],xmm19[4],xmm22[4],xmm19[5],xmm22[5],xmm19[6],xmm22[6],xmm19[7],xmm22[7]8401; AVX512DQ-BW-NEXT:    vpunpcklbw {{.*#+}} xmm7 = xmm6[0],xmm3[0],xmm6[1],xmm3[1],xmm6[2],xmm3[2],xmm6[3],xmm3[3],xmm6[4],xmm3[4],xmm6[5],xmm3[5],xmm6[6],xmm3[6],xmm6[7],xmm3[7]8402; AVX512DQ-BW-NEXT:    vpermt2w %zmm1, %zmm12, %zmm78403; AVX512DQ-BW-NEXT:    vpunpckhbw {{.*#+}} xmm1 = xmm19[8],xmm22[8],xmm19[9],xmm22[9],xmm19[10],xmm22[10],xmm19[11],xmm22[11],xmm19[12],xmm22[12],xmm19[13],xmm22[13],xmm19[14],xmm22[14],xmm19[15],xmm22[15]8404; AVX512DQ-BW-NEXT:    vpunpckhbw {{.*#+}} xmm3 = 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]8405; AVX512DQ-BW-NEXT:    vpermt2w %zmm1, %zmm12, %zmm38406; AVX512DQ-BW-NEXT:    vpunpcklbw {{.*#+}} xmm1 = 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]8407; AVX512DQ-BW-NEXT:    vpunpcklbw {{.*#+}} xmm5 = 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]8408; AVX512DQ-BW-NEXT:    vpermt2w %zmm1, %zmm12, %zmm58409; AVX512DQ-BW-NEXT:    movw $-21846, %ax # imm = 0xAAAA8410; AVX512DQ-BW-NEXT:    kmovd %eax, %k18411; AVX512DQ-BW-NEXT:    vmovdqa32 %zmm0, %zmm2 {%k1}8412; AVX512DQ-BW-NEXT:    vmovdqa32 %zmm13, %zmm11 {%k1}8413; AVX512DQ-BW-NEXT:    vmovdqa32 %zmm15, %zmm14 {%k1}8414; AVX512DQ-BW-NEXT:    vmovdqa32 %zmm20, %zmm18 {%k1}8415; AVX512DQ-BW-NEXT:    vmovdqa32 %zmm16, %zmm17 {%k1}8416; AVX512DQ-BW-NEXT:    vmovdqa32 %zmm25, %zmm7 {%k1}8417; AVX512DQ-BW-NEXT:    vmovdqa32 %zmm21, %zmm3 {%k1}8418; AVX512DQ-BW-NEXT:    vmovdqa32 %zmm4, %zmm5 {%k1}8419; AVX512DQ-BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax8420; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm5, (%rax)8421; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm3, 192(%rax)8422; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm7, 128(%rax)8423; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm17, 320(%rax)8424; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm18, 256(%rax)8425; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm14, 448(%rax)8426; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm11, 384(%rax)8427; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm2, 64(%rax)8428; AVX512DQ-BW-NEXT:    vzeroupper8429; AVX512DQ-BW-NEXT:    retq8430;8431; AVX512DQ-BW-FCP-LABEL: store_i8_stride8_vf64:8432; AVX512DQ-BW-FCP:       # %bb.0:8433; AVX512DQ-BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax8434; AVX512DQ-BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r108435; AVX512DQ-BW-FCP-NEXT:    vmovdqa (%rsi), %xmm18436; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 32(%rsi), %xmm198437; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 48(%rsi), %xmm168438; AVX512DQ-BW-FCP-NEXT:    vmovdqa (%rdi), %xmm28439; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 32(%rdi), %xmm208440; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 48(%rdi), %xmm178441; AVX512DQ-BW-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm0 = 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]8442; AVX512DQ-BW-FCP-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm38443; AVX512DQ-BW-FCP-NEXT:    vpmovsxwq {{.*#+}} ymm5 = [2312,2826,3340,3854]8444; AVX512DQ-BW-FCP-NEXT:    vpshufb %ymm5, %ymm3, %ymm38445; AVX512DQ-BW-FCP-NEXT:    vpmovsxwq {{.*#+}} xmm6 = [1284,1798]8446; AVX512DQ-BW-FCP-NEXT:    vpshufb %xmm6, %xmm0, %xmm48447; AVX512DQ-BW-FCP-NEXT:    vpmovzxwq {{.*#+}} xmm0 = xmm0[0],zero,zero,zero,xmm0[1],zero,zero,zero8448; AVX512DQ-BW-FCP-NEXT:    vinserti128 $1, %xmm4, %ymm0, %ymm08449; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $1, %ymm3, %zmm0, %zmm08450; AVX512DQ-BW-FCP-NEXT:    vmovdqa (%rcx), %xmm38451; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 32(%rcx), %xmm218452; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 48(%rcx), %xmm188453; AVX512DQ-BW-FCP-NEXT:    vmovdqa (%rdx), %xmm78454; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 32(%rdx), %xmm228455; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 48(%rdx), %xmm238456; AVX512DQ-BW-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm4 = xmm7[8],xmm3[8],xmm7[9],xmm3[9],xmm7[10],xmm3[10],xmm7[11],xmm3[11],xmm7[12],xmm3[12],xmm7[13],xmm3[13],xmm7[14],xmm3[14],xmm7[15],xmm3[15]8457; AVX512DQ-BW-FCP-NEXT:    vinserti128 $1, %xmm4, %ymm4, %ymm48458; AVX512DQ-BW-FCP-NEXT:    vpmovsxbw {{.*#+}} zmm9 = [0,32,2,3,4,33,6,7,8,42,10,11,12,43,14,15,16,36,18,19,20,37,22,23,24,46,26,27,28,47,30,31]8459; AVX512DQ-BW-FCP-NEXT:    vpermt2w %zmm4, %zmm9, %zmm08460; AVX512DQ-BW-FCP-NEXT:    vmovdqa (%r10), %xmm48461; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 48(%r10), %xmm248462; AVX512DQ-BW-FCP-NEXT:    vmovdqa (%rax), %xmm88463; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 48(%rax), %xmm268464; AVX512DQ-BW-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm10 = 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]8465; AVX512DQ-BW-FCP-NEXT:    vinserti128 $1, %xmm10, %ymm10, %ymm138466; AVX512DQ-BW-FCP-NEXT:    vmovdqa (%r9), %xmm108467; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 48(%r9), %xmm288468; AVX512DQ-BW-FCP-NEXT:    vmovdqa (%r8), %xmm128469; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 48(%r8), %xmm308470; AVX512DQ-BW-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm11 = 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]8471; AVX512DQ-BW-FCP-NEXT:    vpmovsxbw {{.*#+}} zmm14 = [0,1,0,32,4,5,1,33,2,1,2,42,4,5,3,43,0,1,4,36,4,5,5,37,0,1,6,46,6,5,7,47]8472; AVX512DQ-BW-FCP-NEXT:    vpermt2w %zmm13, %zmm14, %zmm118473; AVX512DQ-BW-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm13 = xmm17[0],xmm16[0],xmm17[1],xmm16[1],xmm17[2],xmm16[2],xmm17[3],xmm16[3],xmm17[4],xmm16[4],xmm17[5],xmm16[5],xmm17[6],xmm16[6],xmm17[7],xmm16[7]8474; AVX512DQ-BW-FCP-NEXT:    vinserti128 $1, %xmm13, %ymm13, %ymm158475; AVX512DQ-BW-FCP-NEXT:    vpshufb %ymm5, %ymm15, %ymm158476; AVX512DQ-BW-FCP-NEXT:    vpshufb %xmm6, %xmm13, %xmm258477; AVX512DQ-BW-FCP-NEXT:    vpmovzxwq {{.*#+}} xmm13 = xmm13[0],zero,zero,zero,xmm13[1],zero,zero,zero8478; AVX512DQ-BW-FCP-NEXT:    vinserti32x4 $1, %xmm25, %ymm13, %ymm138479; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $1, %ymm15, %zmm13, %zmm138480; AVX512DQ-BW-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm15 = xmm23[0],xmm18[0],xmm23[1],xmm18[1],xmm23[2],xmm18[2],xmm23[3],xmm18[3],xmm23[4],xmm18[4],xmm23[5],xmm18[5],xmm23[6],xmm18[6],xmm23[7],xmm18[7]8481; AVX512DQ-BW-FCP-NEXT:    vinserti128 $1, %xmm15, %ymm15, %ymm158482; AVX512DQ-BW-FCP-NEXT:    vpermt2w %zmm15, %zmm9, %zmm138483; AVX512DQ-BW-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm15 = xmm26[0],xmm24[0],xmm26[1],xmm24[1],xmm26[2],xmm24[2],xmm26[3],xmm24[3],xmm26[4],xmm24[4],xmm26[5],xmm24[5],xmm26[6],xmm24[6],xmm26[7],xmm24[7]8484; AVX512DQ-BW-FCP-NEXT:    vinserti32x4 $1, %xmm15, %ymm15, %ymm258485; AVX512DQ-BW-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm15 = 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]8486; AVX512DQ-BW-FCP-NEXT:    vpermt2w %zmm25, %zmm14, %zmm158487; AVX512DQ-BW-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm16 = xmm17[8],xmm16[8],xmm17[9],xmm16[9],xmm17[10],xmm16[10],xmm17[11],xmm16[11],xmm17[12],xmm16[12],xmm17[13],xmm16[13],xmm17[14],xmm16[14],xmm17[15],xmm16[15]8488; AVX512DQ-BW-FCP-NEXT:    vpshufb %xmm6, %xmm16, %xmm178489; AVX512DQ-BW-FCP-NEXT:    vpmovzxwq {{.*#+}} xmm25 = xmm16[0],zero,zero,zero,xmm16[1],zero,zero,zero8490; AVX512DQ-BW-FCP-NEXT:    vinserti32x4 $1, %xmm17, %ymm25, %ymm178491; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 32(%r10), %xmm258492; AVX512DQ-BW-FCP-NEXT:    vinserti32x4 $1, %xmm16, %ymm16, %ymm168493; AVX512DQ-BW-FCP-NEXT:    vpshufb %ymm5, %ymm16, %ymm168494; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $1, %ymm16, %zmm17, %zmm168495; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 32(%rax), %xmm298496; AVX512DQ-BW-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm17 = 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]8497; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 32(%r9), %xmm278498; AVX512DQ-BW-FCP-NEXT:    vinserti32x4 $1, %xmm17, %ymm17, %ymm178499; AVX512DQ-BW-FCP-NEXT:    vpermt2w %zmm17, %zmm9, %zmm168500; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 32(%r8), %xmm318501; AVX512DQ-BW-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm17 = xmm26[8],xmm24[8],xmm26[9],xmm24[9],xmm26[10],xmm24[10],xmm26[11],xmm24[11],xmm26[12],xmm24[12],xmm26[13],xmm24[13],xmm26[14],xmm24[14],xmm26[15],xmm24[15]8502; AVX512DQ-BW-FCP-NEXT:    vinserti32x4 $1, %xmm17, %ymm17, %ymm188503; AVX512DQ-BW-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm17 = 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]8504; AVX512DQ-BW-FCP-NEXT:    vpermt2w %zmm18, %zmm14, %zmm178505; AVX512DQ-BW-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm18 = xmm20[0],xmm19[0],xmm20[1],xmm19[1],xmm20[2],xmm19[2],xmm20[3],xmm19[3],xmm20[4],xmm19[4],xmm20[5],xmm19[5],xmm20[6],xmm19[6],xmm20[7],xmm19[7]8506; AVX512DQ-BW-FCP-NEXT:    vinserti32x4 $1, %xmm18, %ymm18, %ymm238507; AVX512DQ-BW-FCP-NEXT:    vpshufb %ymm5, %ymm23, %ymm238508; AVX512DQ-BW-FCP-NEXT:    vpshufb %xmm6, %xmm18, %xmm248509; AVX512DQ-BW-FCP-NEXT:    vpmovzxwq {{.*#+}} xmm18 = xmm18[0],zero,zero,zero,xmm18[1],zero,zero,zero8510; AVX512DQ-BW-FCP-NEXT:    vinserti32x4 $1, %xmm24, %ymm18, %ymm188511; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $1, %ymm23, %zmm18, %zmm188512; AVX512DQ-BW-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm23 = xmm22[0],xmm21[0],xmm22[1],xmm21[1],xmm22[2],xmm21[2],xmm22[3],xmm21[3],xmm22[4],xmm21[4],xmm22[5],xmm21[5],xmm22[6],xmm21[6],xmm22[7],xmm21[7]8513; AVX512DQ-BW-FCP-NEXT:    vinserti32x4 $1, %xmm23, %ymm23, %ymm238514; AVX512DQ-BW-FCP-NEXT:    vpermt2w %zmm23, %zmm9, %zmm188515; AVX512DQ-BW-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm23 = xmm29[0],xmm25[0],xmm29[1],xmm25[1],xmm29[2],xmm25[2],xmm29[3],xmm25[3],xmm29[4],xmm25[4],xmm29[5],xmm25[5],xmm29[6],xmm25[6],xmm29[7],xmm25[7]8516; AVX512DQ-BW-FCP-NEXT:    vinserti32x4 $1, %xmm23, %ymm23, %ymm248517; AVX512DQ-BW-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm23 = xmm31[0],xmm27[0],xmm31[1],xmm27[1],xmm31[2],xmm27[2],xmm31[3],xmm27[3],xmm31[4],xmm27[4],xmm31[5],xmm27[5],xmm31[6],xmm27[6],xmm31[7],xmm27[7]8518; AVX512DQ-BW-FCP-NEXT:    vpermt2w %zmm24, %zmm14, %zmm238519; AVX512DQ-BW-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm19 = xmm20[8],xmm19[8],xmm20[9],xmm19[9],xmm20[10],xmm19[10],xmm20[11],xmm19[11],xmm20[12],xmm19[12],xmm20[13],xmm19[13],xmm20[14],xmm19[14],xmm20[15],xmm19[15]8520; AVX512DQ-BW-FCP-NEXT:    vpshufb %xmm6, %xmm19, %xmm208521; AVX512DQ-BW-FCP-NEXT:    vpmovzxwq {{.*#+}} xmm24 = xmm19[0],zero,zero,zero,xmm19[1],zero,zero,zero8522; AVX512DQ-BW-FCP-NEXT:    vinserti32x4 $1, %xmm20, %ymm24, %ymm208523; AVX512DQ-BW-FCP-NEXT:    vinserti32x4 $1, %xmm19, %ymm19, %ymm198524; AVX512DQ-BW-FCP-NEXT:    vpshufb %ymm5, %ymm19, %ymm198525; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $1, %ymm19, %zmm20, %zmm198526; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 16(%rsi), %xmm248527; AVX512DQ-BW-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm20 = xmm22[8],xmm21[8],xmm22[9],xmm21[9],xmm22[10],xmm21[10],xmm22[11],xmm21[11],xmm22[12],xmm21[12],xmm22[13],xmm21[13],xmm22[14],xmm21[14],xmm22[15],xmm21[15]8528; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 16(%rdi), %xmm228529; AVX512DQ-BW-FCP-NEXT:    vinserti32x4 $1, %xmm20, %ymm20, %ymm208530; AVX512DQ-BW-FCP-NEXT:    vpermt2w %zmm20, %zmm9, %zmm198531; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 16(%rcx), %xmm268532; AVX512DQ-BW-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm20 = xmm29[8],xmm25[8],xmm29[9],xmm25[9],xmm29[10],xmm25[10],xmm29[11],xmm25[11],xmm29[12],xmm25[12],xmm29[13],xmm25[13],xmm29[14],xmm25[14],xmm29[15],xmm25[15]8533; AVX512DQ-BW-FCP-NEXT:    vinserti32x4 $1, %xmm20, %ymm20, %ymm218534; AVX512DQ-BW-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm20 = xmm31[8],xmm27[8],xmm31[9],xmm27[9],xmm31[10],xmm27[10],xmm31[11],xmm27[11],xmm31[12],xmm27[12],xmm31[13],xmm27[13],xmm31[14],xmm27[14],xmm31[15],xmm27[15]8535; AVX512DQ-BW-FCP-NEXT:    vpermt2w %zmm21, %zmm14, %zmm208536; AVX512DQ-BW-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm21 = xmm22[0],xmm24[0],xmm22[1],xmm24[1],xmm22[2],xmm24[2],xmm22[3],xmm24[3],xmm22[4],xmm24[4],xmm22[5],xmm24[5],xmm22[6],xmm24[6],xmm22[7],xmm24[7]8537; AVX512DQ-BW-FCP-NEXT:    vpshufb %xmm6, %xmm21, %xmm258538; AVX512DQ-BW-FCP-NEXT:    vpmovzxwq {{.*#+}} xmm27 = xmm21[0],zero,zero,zero,xmm21[1],zero,zero,zero8539; AVX512DQ-BW-FCP-NEXT:    vinserti32x4 $1, %xmm25, %ymm27, %ymm258540; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 16(%rdx), %xmm278541; AVX512DQ-BW-FCP-NEXT:    vinserti32x4 $1, %xmm21, %ymm21, %ymm218542; AVX512DQ-BW-FCP-NEXT:    vpshufb %ymm5, %ymm21, %ymm218543; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $1, %ymm21, %zmm25, %zmm218544; AVX512DQ-BW-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm25 = xmm27[0],xmm26[0],xmm27[1],xmm26[1],xmm27[2],xmm26[2],xmm27[3],xmm26[3],xmm27[4],xmm26[4],xmm27[5],xmm26[5],xmm27[6],xmm26[6],xmm27[7],xmm26[7]8545; AVX512DQ-BW-FCP-NEXT:    vinserti32x4 $1, %xmm25, %ymm25, %ymm258546; AVX512DQ-BW-FCP-NEXT:    vpermt2w %zmm25, %zmm9, %zmm218547; AVX512DQ-BW-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm22 = xmm22[8],xmm24[8],xmm22[9],xmm24[9],xmm22[10],xmm24[10],xmm22[11],xmm24[11],xmm22[12],xmm24[12],xmm22[13],xmm24[13],xmm22[14],xmm24[14],xmm22[15],xmm24[15]8548; AVX512DQ-BW-FCP-NEXT:    vpshufb %xmm6, %xmm22, %xmm248549; AVX512DQ-BW-FCP-NEXT:    vpmovzxwq {{.*#+}} xmm25 = xmm22[0],zero,zero,zero,xmm22[1],zero,zero,zero8550; AVX512DQ-BW-FCP-NEXT:    vinserti32x4 $1, %xmm24, %ymm25, %ymm248551; AVX512DQ-BW-FCP-NEXT:    vinserti32x4 $1, %xmm22, %ymm22, %ymm228552; AVX512DQ-BW-FCP-NEXT:    vpshufb %ymm5, %ymm22, %ymm228553; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $1, %ymm22, %zmm24, %zmm228554; AVX512DQ-BW-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm24 = xmm27[8],xmm26[8],xmm27[9],xmm26[9],xmm27[10],xmm26[10],xmm27[11],xmm26[11],xmm27[12],xmm26[12],xmm27[13],xmm26[13],xmm27[14],xmm26[14],xmm27[15],xmm26[15]8555; AVX512DQ-BW-FCP-NEXT:    vinserti32x4 $1, %xmm24, %ymm24, %ymm248556; AVX512DQ-BW-FCP-NEXT:    vpermt2w %zmm24, %zmm9, %zmm228557; AVX512DQ-BW-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm1 = 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]8558; AVX512DQ-BW-FCP-NEXT:    vinserti128 $1, %xmm1, %ymm1, %ymm28559; AVX512DQ-BW-FCP-NEXT:    vpshufb %ymm5, %ymm2, %ymm28560; AVX512DQ-BW-FCP-NEXT:    vmovdqa 16(%r10), %xmm58561; AVX512DQ-BW-FCP-NEXT:    vpshufb %xmm6, %xmm1, %xmm68562; AVX512DQ-BW-FCP-NEXT:    vpmovzxwq {{.*#+}} xmm1 = xmm1[0],zero,zero,zero,xmm1[1],zero,zero,zero8563; AVX512DQ-BW-FCP-NEXT:    vinserti128 $1, %xmm6, %ymm1, %ymm18564; AVX512DQ-BW-FCP-NEXT:    vmovdqa 16(%rax), %xmm68565; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $1, %ymm2, %zmm1, %zmm18566; AVX512DQ-BW-FCP-NEXT:    vmovdqa 16(%r9), %xmm28567; AVX512DQ-BW-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm3 = xmm7[0],xmm3[0],xmm7[1],xmm3[1],xmm7[2],xmm3[2],xmm7[3],xmm3[3],xmm7[4],xmm3[4],xmm7[5],xmm3[5],xmm7[6],xmm3[6],xmm7[7],xmm3[7]8568; AVX512DQ-BW-FCP-NEXT:    vmovdqa 16(%r8), %xmm78569; AVX512DQ-BW-FCP-NEXT:    vinserti128 $1, %xmm3, %ymm3, %ymm38570; AVX512DQ-BW-FCP-NEXT:    vpermt2w %zmm3, %zmm9, %zmm18571; AVX512DQ-BW-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm3 = xmm6[0],xmm5[0],xmm6[1],xmm5[1],xmm6[2],xmm5[2],xmm6[3],xmm5[3],xmm6[4],xmm5[4],xmm6[5],xmm5[5],xmm6[6],xmm5[6],xmm6[7],xmm5[7]8572; AVX512DQ-BW-FCP-NEXT:    vinserti128 $1, %xmm3, %ymm3, %ymm38573; AVX512DQ-BW-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm9 = xmm7[0],xmm2[0],xmm7[1],xmm2[1],xmm7[2],xmm2[2],xmm7[3],xmm2[3],xmm7[4],xmm2[4],xmm7[5],xmm2[5],xmm7[6],xmm2[6],xmm7[7],xmm2[7]8574; AVX512DQ-BW-FCP-NEXT:    vpermt2w %zmm3, %zmm14, %zmm98575; AVX512DQ-BW-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm3 = xmm6[8],xmm5[8],xmm6[9],xmm5[9],xmm6[10],xmm5[10],xmm6[11],xmm5[11],xmm6[12],xmm5[12],xmm6[13],xmm5[13],xmm6[14],xmm5[14],xmm6[15],xmm5[15]8576; AVX512DQ-BW-FCP-NEXT:    vpunpckhbw {{.*#+}} xmm2 = xmm7[8],xmm2[8],xmm7[9],xmm2[9],xmm7[10],xmm2[10],xmm7[11],xmm2[11],xmm7[12],xmm2[12],xmm7[13],xmm2[13],xmm7[14],xmm2[14],xmm7[15],xmm2[15]8577; AVX512DQ-BW-FCP-NEXT:    vinserti128 $1, %xmm3, %ymm3, %ymm38578; AVX512DQ-BW-FCP-NEXT:    vpermt2w %zmm3, %zmm14, %zmm28579; AVX512DQ-BW-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm3 = xmm8[0],xmm4[0],xmm8[1],xmm4[1],xmm8[2],xmm4[2],xmm8[3],xmm4[3],xmm8[4],xmm4[4],xmm8[5],xmm4[5],xmm8[6],xmm4[6],xmm8[7],xmm4[7]8580; AVX512DQ-BW-FCP-NEXT:    vpunpcklbw {{.*#+}} xmm4 = xmm12[0],xmm10[0],xmm12[1],xmm10[1],xmm12[2],xmm10[2],xmm12[3],xmm10[3],xmm12[4],xmm10[4],xmm12[5],xmm10[5],xmm12[6],xmm10[6],xmm12[7],xmm10[7]8581; AVX512DQ-BW-FCP-NEXT:    vinserti128 $1, %xmm3, %ymm3, %ymm38582; AVX512DQ-BW-FCP-NEXT:    vpermt2w %zmm3, %zmm14, %zmm48583; AVX512DQ-BW-FCP-NEXT:    movw $-21846, %ax # imm = 0xAAAA8584; AVX512DQ-BW-FCP-NEXT:    kmovd %eax, %k18585; AVX512DQ-BW-FCP-NEXT:    vmovdqa32 %zmm11, %zmm0 {%k1}8586; AVX512DQ-BW-FCP-NEXT:    vmovdqa32 %zmm15, %zmm13 {%k1}8587; AVX512DQ-BW-FCP-NEXT:    vmovdqa32 %zmm17, %zmm16 {%k1}8588; AVX512DQ-BW-FCP-NEXT:    vmovdqa32 %zmm23, %zmm18 {%k1}8589; AVX512DQ-BW-FCP-NEXT:    vmovdqa32 %zmm20, %zmm19 {%k1}8590; AVX512DQ-BW-FCP-NEXT:    vmovdqa32 %zmm9, %zmm21 {%k1}8591; AVX512DQ-BW-FCP-NEXT:    vmovdqa32 %zmm2, %zmm22 {%k1}8592; AVX512DQ-BW-FCP-NEXT:    vmovdqa32 %zmm4, %zmm1 {%k1}8593; AVX512DQ-BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax8594; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, (%rax)8595; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm22, 192(%rax)8596; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm21, 128(%rax)8597; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm19, 320(%rax)8598; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm18, 256(%rax)8599; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm16, 448(%rax)8600; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm13, 384(%rax)8601; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, 64(%rax)8602; AVX512DQ-BW-FCP-NEXT:    vzeroupper8603; AVX512DQ-BW-FCP-NEXT:    retq8604  %in.vec0 = load <64 x i8>, ptr %in.vecptr0, align 648605  %in.vec1 = load <64 x i8>, ptr %in.vecptr1, align 648606  %in.vec2 = load <64 x i8>, ptr %in.vecptr2, align 648607  %in.vec3 = load <64 x i8>, ptr %in.vecptr3, align 648608  %in.vec4 = load <64 x i8>, ptr %in.vecptr4, align 648609  %in.vec5 = load <64 x i8>, ptr %in.vecptr5, align 648610  %in.vec6 = load <64 x i8>, ptr %in.vecptr6, align 648611  %in.vec7 = load <64 x i8>, ptr %in.vecptr7, align 648612  %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>8613  %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>8614  %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>8615  %4 = shufflevector <64 x i8> %in.vec6, <64 x i8> %in.vec7, <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>8616  %5 = 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>8617  %6 = shufflevector <128 x i8> %3, <128 x i8> %4, <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>8618  %7 = shufflevector <256 x i8> %5, <256 x i8> %6, <512 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, i32 448, i32 449, i32 450, i32 451, i32 452, i32 453, i32 454, i32 455, i32 456, i32 457, i32 458, i32 459, i32 460, i32 461, i32 462, i32 463, i32 464, i32 465, i32 466, i32 467, i32 468, i32 469, i32 470, i32 471, i32 472, i32 473, i32 474, i32 475, i32 476, i32 477, i32 478, i32 479, i32 480, i32 481, i32 482, i32 483, i32 484, i32 485, i32 486, i32 487, i32 488, i32 489, i32 490, i32 491, i32 492, i32 493, i32 494, i32 495, i32 496, i32 497, i32 498, i32 499, i32 500, i32 501, i32 502, i32 503, i32 504, i32 505, i32 506, i32 507, i32 508, i32 509, i32 510, i32 511>8619  %interleaved.vec = shufflevector <512 x i8> %7, <512 x i8> poison, <512 x i32> <i32 0, i32 64, i32 128, i32 192, i32 256, i32 320, i32 384, i32 448, i32 1, i32 65, i32 129, i32 193, i32 257, i32 321, i32 385, i32 449, i32 2, i32 66, i32 130, i32 194, i32 258, i32 322, i32 386, i32 450, i32 3, i32 67, i32 131, i32 195, i32 259, i32 323, i32 387, i32 451, i32 4, i32 68, i32 132, i32 196, i32 260, i32 324, i32 388, i32 452, i32 5, i32 69, i32 133, i32 197, i32 261, i32 325, i32 389, i32 453, i32 6, i32 70, i32 134, i32 198, i32 262, i32 326, i32 390, i32 454, i32 7, i32 71, i32 135, i32 199, i32 263, i32 327, i32 391, i32 455, i32 8, i32 72, i32 136, i32 200, i32 264, i32 328, i32 392, i32 456, i32 9, i32 73, i32 137, i32 201, i32 265, i32 329, i32 393, i32 457, i32 10, i32 74, i32 138, i32 202, i32 266, i32 330, i32 394, i32 458, i32 11, i32 75, i32 139, i32 203, i32 267, i32 331, i32 395, i32 459, i32 12, i32 76, i32 140, i32 204, i32 268, i32 332, i32 396, i32 460, i32 13, i32 77, i32 141, i32 205, i32 269, i32 333, i32 397, i32 461, i32 14, i32 78, i32 142, i32 206, i32 270, i32 334, i32 398, i32 462, i32 15, i32 79, i32 143, i32 207, i32 271, i32 335, i32 399, i32 463, i32 16, i32 80, i32 144, i32 208, i32 272, i32 336, i32 400, i32 464, i32 17, i32 81, i32 145, i32 209, i32 273, i32 337, i32 401, i32 465, i32 18, i32 82, i32 146, i32 210, i32 274, i32 338, i32 402, i32 466, i32 19, i32 83, i32 147, i32 211, i32 275, i32 339, i32 403, i32 467, i32 20, i32 84, i32 148, i32 212, i32 276, i32 340, i32 404, i32 468, i32 21, i32 85, i32 149, i32 213, i32 277, i32 341, i32 405, i32 469, i32 22, i32 86, i32 150, i32 214, i32 278, i32 342, i32 406, i32 470, i32 23, i32 87, i32 151, i32 215, i32 279, i32 343, i32 407, i32 471, i32 24, i32 88, i32 152, i32 216, i32 280, i32 344, i32 408, i32 472, i32 25, i32 89, i32 153, i32 217, i32 281, i32 345, i32 409, i32 473, i32 26, i32 90, i32 154, i32 218, i32 282, i32 346, i32 410, i32 474, i32 27, i32 91, i32 155, i32 219, i32 283, i32 347, i32 411, i32 475, i32 28, i32 92, i32 156, i32 220, i32 284, i32 348, i32 412, i32 476, i32 29, i32 93, i32 157, i32 221, i32 285, i32 349, i32 413, i32 477, i32 30, i32 94, i32 158, i32 222, i32 286, i32 350, i32 414, i32 478, i32 31, i32 95, i32 159, i32 223, i32 287, i32 351, i32 415, i32 479, i32 32, i32 96, i32 160, i32 224, i32 288, i32 352, i32 416, i32 480, i32 33, i32 97, i32 161, i32 225, i32 289, i32 353, i32 417, i32 481, i32 34, i32 98, i32 162, i32 226, i32 290, i32 354, i32 418, i32 482, i32 35, i32 99, i32 163, i32 227, i32 291, i32 355, i32 419, i32 483, i32 36, i32 100, i32 164, i32 228, i32 292, i32 356, i32 420, i32 484, i32 37, i32 101, i32 165, i32 229, i32 293, i32 357, i32 421, i32 485, i32 38, i32 102, i32 166, i32 230, i32 294, i32 358, i32 422, i32 486, i32 39, i32 103, i32 167, i32 231, i32 295, i32 359, i32 423, i32 487, i32 40, i32 104, i32 168, i32 232, i32 296, i32 360, i32 424, i32 488, i32 41, i32 105, i32 169, i32 233, i32 297, i32 361, i32 425, i32 489, i32 42, i32 106, i32 170, i32 234, i32 298, i32 362, i32 426, i32 490, i32 43, i32 107, i32 171, i32 235, i32 299, i32 363, i32 427, i32 491, i32 44, i32 108, i32 172, i32 236, i32 300, i32 364, i32 428, i32 492, i32 45, i32 109, i32 173, i32 237, i32 301, i32 365, i32 429, i32 493, i32 46, i32 110, i32 174, i32 238, i32 302, i32 366, i32 430, i32 494, i32 47, i32 111, i32 175, i32 239, i32 303, i32 367, i32 431, i32 495, i32 48, i32 112, i32 176, i32 240, i32 304, i32 368, i32 432, i32 496, i32 49, i32 113, i32 177, i32 241, i32 305, i32 369, i32 433, i32 497, i32 50, i32 114, i32 178, i32 242, i32 306, i32 370, i32 434, i32 498, i32 51, i32 115, i32 179, i32 243, i32 307, i32 371, i32 435, i32 499, i32 52, i32 116, i32 180, i32 244, i32 308, i32 372, i32 436, i32 500, i32 53, i32 117, i32 181, i32 245, i32 309, i32 373, i32 437, i32 501, i32 54, i32 118, i32 182, i32 246, i32 310, i32 374, i32 438, i32 502, i32 55, i32 119, i32 183, i32 247, i32 311, i32 375, i32 439, i32 503, i32 56, i32 120, i32 184, i32 248, i32 312, i32 376, i32 440, i32 504, i32 57, i32 121, i32 185, i32 249, i32 313, i32 377, i32 441, i32 505, i32 58, i32 122, i32 186, i32 250, i32 314, i32 378, i32 442, i32 506, i32 59, i32 123, i32 187, i32 251, i32 315, i32 379, i32 443, i32 507, i32 60, i32 124, i32 188, i32 252, i32 316, i32 380, i32 444, i32 508, i32 61, i32 125, i32 189, i32 253, i32 317, i32 381, i32 445, i32 509, i32 62, i32 126, i32 190, i32 254, i32 318, i32 382, i32 446, i32 510, i32 63, i32 127, i32 191, i32 255, i32 319, i32 383, i32 447, i32 511>8620  store <512 x i8> %interleaved.vec, ptr %out.vec, align 648621  ret void8622}8623