9328 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 loads.17 18define void @load_i8_stride6_vf2(ptr %in.vec, ptr %out.vec0, ptr %out.vec1, ptr %out.vec2, ptr %out.vec3, ptr %out.vec4, ptr %out.vec5) nounwind {19; SSE-LABEL: load_i8_stride6_vf2:20; SSE: # %bb.0:21; SSE-NEXT: movq {{[0-9]+}}(%rsp), %rax22; SSE-NEXT: movdqa (%rdi), %xmm123; SSE-NEXT: movdqa {{.*#+}} xmm3 = [255,255,255,255,255,255,255,255]24; SSE-NEXT: pand %xmm1, %xmm325; SSE-NEXT: pshuflw {{.*#+}} xmm2 = xmm3[0,3,2,3,4,5,6,7]26; SSE-NEXT: packuswb %xmm2, %xmm227; SSE-NEXT: pxor %xmm4, %xmm428; SSE-NEXT: movdqa %xmm1, %xmm029; SSE-NEXT: punpcklbw {{.*#+}} xmm0 = xmm0[0],xmm4[0],xmm0[1],xmm4[1],xmm0[2],xmm4[2],xmm0[3],xmm4[3],xmm0[4],xmm4[4],xmm0[5],xmm4[5],xmm0[6],xmm4[6],xmm0[7],xmm4[7]30; SSE-NEXT: pshufd {{.*#+}} xmm5 = xmm0[0,3,2,3]31; SSE-NEXT: pshuflw {{.*#+}} xmm5 = xmm5[1,3,2,3,4,5,6,7]32; SSE-NEXT: packuswb %xmm5, %xmm533; SSE-NEXT: pshufd {{.*#+}} xmm6 = xmm3[0,2,2,3]34; SSE-NEXT: pshuflw {{.*#+}} xmm6 = xmm6[1,2,2,3,4,5,6,7]35; SSE-NEXT: packuswb %xmm6, %xmm636; SSE-NEXT: punpckhbw {{.*#+}} xmm1 = xmm1[8],xmm4[8],xmm1[9],xmm4[9],xmm1[10],xmm4[10],xmm1[11],xmm4[11],xmm1[12],xmm4[12],xmm1[13],xmm4[13],xmm1[14],xmm4[14],xmm1[15],xmm4[15]37; SSE-NEXT: movdqa %xmm0, %xmm438; SSE-NEXT: punpcklwd {{.*#+}} xmm4 = xmm4[0],xmm1[0],xmm4[1],xmm1[1],xmm4[2],xmm1[2],xmm4[3],xmm1[3]39; SSE-NEXT: pshufd {{.*#+}} xmm4 = xmm4[3,1,2,3]40; SSE-NEXT: pshuflw {{.*#+}} xmm4 = xmm4[0,3,2,3,4,5,6,7]41; SSE-NEXT: packuswb %xmm4, %xmm442; SSE-NEXT: pshufd {{.*#+}} xmm3 = xmm3[2,1,2,3]43; SSE-NEXT: pshuflw {{.*#+}} xmm3 = xmm3[2,1,2,3,4,5,6,7]44; SSE-NEXT: packuswb %xmm3, %xmm345; SSE-NEXT: psrlq $48, %xmm146; SSE-NEXT: psrldq {{.*#+}} xmm0 = xmm0[10,11,12,13,14,15],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero47; SSE-NEXT: punpcklwd {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3]48; SSE-NEXT: packuswb %xmm0, %xmm049; SSE-NEXT: movd %xmm2, %edi50; SSE-NEXT: movw %di, (%rsi)51; SSE-NEXT: movd %xmm5, %esi52; SSE-NEXT: movw %si, (%rdx)53; SSE-NEXT: movd %xmm6, %edx54; SSE-NEXT: movw %dx, (%rcx)55; SSE-NEXT: movd %xmm4, %ecx56; SSE-NEXT: movw %cx, (%r8)57; SSE-NEXT: movd %xmm3, %ecx58; SSE-NEXT: movw %cx, (%r9)59; SSE-NEXT: movd %xmm0, %ecx60; SSE-NEXT: movw %cx, (%rax)61; SSE-NEXT: retq62;63; AVX-LABEL: load_i8_stride6_vf2:64; AVX: # %bb.0:65; AVX-NEXT: movq {{[0-9]+}}(%rsp), %rax66; AVX-NEXT: vmovdqa (%rdi), %xmm067; AVX-NEXT: vpshufb {{.*#+}} xmm1 = xmm0[0,6,u,u,u,u,u,u,u,u,u,u,u,u,u,u]68; AVX-NEXT: vpshufb {{.*#+}} xmm2 = xmm0[1,7,u,u,u,u,u,u,u,u,u,u,u,u,u,u]69; AVX-NEXT: vpshufb {{.*#+}} xmm3 = xmm0[2,8,u,u,u,u,u,u,u,u,u,u,u,u,u,u]70; AVX-NEXT: vpshufb {{.*#+}} xmm4 = xmm0[3,9,u,u,u,u,u,u,u,u,u,u,u,u,u,u]71; AVX-NEXT: vpshufb {{.*#+}} xmm5 = xmm0[4,10,u,u,u,u,u,u,u,u,u,u,u,u,u,u]72; AVX-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[5,11,u,u,u,u,u,u,u,u,u,u,u,u,u,u]73; AVX-NEXT: vpextrw $0, %xmm1, (%rsi)74; AVX-NEXT: vpextrw $0, %xmm2, (%rdx)75; AVX-NEXT: vpextrw $0, %xmm3, (%rcx)76; AVX-NEXT: vpextrw $0, %xmm4, (%r8)77; AVX-NEXT: vpextrw $0, %xmm5, (%r9)78; AVX-NEXT: vpextrw $0, %xmm0, (%rax)79; AVX-NEXT: retq80;81; AVX2-LABEL: load_i8_stride6_vf2:82; AVX2: # %bb.0:83; AVX2-NEXT: movq {{[0-9]+}}(%rsp), %rax84; AVX2-NEXT: vmovdqa (%rdi), %xmm085; AVX2-NEXT: vpshufb {{.*#+}} xmm1 = xmm0[0,6,u,u,u,u,u,u,u,u,u,u,u,u,u,u]86; AVX2-NEXT: vpshufb {{.*#+}} xmm2 = xmm0[1,7,u,u,u,u,u,u,u,u,u,u,u,u,u,u]87; AVX2-NEXT: vpshufb {{.*#+}} xmm3 = xmm0[2,8,u,u,u,u,u,u,u,u,u,u,u,u,u,u]88; AVX2-NEXT: vpshufb {{.*#+}} xmm4 = xmm0[3,9,u,u,u,u,u,u,u,u,u,u,u,u,u,u]89; AVX2-NEXT: vpshufb {{.*#+}} xmm5 = xmm0[4,10,u,u,u,u,u,u,u,u,u,u,u,u,u,u]90; AVX2-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[5,11,u,u,u,u,u,u,u,u,u,u,u,u,u,u]91; AVX2-NEXT: vpextrw $0, %xmm1, (%rsi)92; AVX2-NEXT: vpextrw $0, %xmm2, (%rdx)93; AVX2-NEXT: vpextrw $0, %xmm3, (%rcx)94; AVX2-NEXT: vpextrw $0, %xmm4, (%r8)95; AVX2-NEXT: vpextrw $0, %xmm5, (%r9)96; AVX2-NEXT: vpextrw $0, %xmm0, (%rax)97; AVX2-NEXT: retq98;99; AVX2-FP-LABEL: load_i8_stride6_vf2:100; AVX2-FP: # %bb.0:101; AVX2-FP-NEXT: movq {{[0-9]+}}(%rsp), %rax102; AVX2-FP-NEXT: vmovdqa (%rdi), %xmm0103; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm1 = xmm0[0,6,u,u,u,u,u,u,u,u,u,u,u,u,u,u]104; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm2 = xmm0[1,7,u,u,u,u,u,u,u,u,u,u,u,u,u,u]105; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm3 = xmm0[2,8,u,u,u,u,u,u,u,u,u,u,u,u,u,u]106; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm4 = xmm0[3,9,u,u,u,u,u,u,u,u,u,u,u,u,u,u]107; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm5 = xmm0[4,10,u,u,u,u,u,u,u,u,u,u,u,u,u,u]108; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[5,11,u,u,u,u,u,u,u,u,u,u,u,u,u,u]109; AVX2-FP-NEXT: vpextrw $0, %xmm1, (%rsi)110; AVX2-FP-NEXT: vpextrw $0, %xmm2, (%rdx)111; AVX2-FP-NEXT: vpextrw $0, %xmm3, (%rcx)112; AVX2-FP-NEXT: vpextrw $0, %xmm4, (%r8)113; AVX2-FP-NEXT: vpextrw $0, %xmm5, (%r9)114; AVX2-FP-NEXT: vpextrw $0, %xmm0, (%rax)115; AVX2-FP-NEXT: retq116;117; AVX2-FCP-LABEL: load_i8_stride6_vf2:118; AVX2-FCP: # %bb.0:119; AVX2-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax120; AVX2-FCP-NEXT: vmovdqa (%rdi), %xmm0121; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm1 = xmm0[0,6,u,u,u,u,u,u,u,u,u,u,u,u,u,u]122; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm2 = xmm0[1,7,u,u,u,u,u,u,u,u,u,u,u,u,u,u]123; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm3 = xmm0[2,8,u,u,u,u,u,u,u,u,u,u,u,u,u,u]124; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm4 = xmm0[3,9,u,u,u,u,u,u,u,u,u,u,u,u,u,u]125; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm5 = xmm0[4,10,u,u,u,u,u,u,u,u,u,u,u,u,u,u]126; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[5,11,u,u,u,u,u,u,u,u,u,u,u,u,u,u]127; AVX2-FCP-NEXT: vpextrw $0, %xmm1, (%rsi)128; AVX2-FCP-NEXT: vpextrw $0, %xmm2, (%rdx)129; AVX2-FCP-NEXT: vpextrw $0, %xmm3, (%rcx)130; AVX2-FCP-NEXT: vpextrw $0, %xmm4, (%r8)131; AVX2-FCP-NEXT: vpextrw $0, %xmm5, (%r9)132; AVX2-FCP-NEXT: vpextrw $0, %xmm0, (%rax)133; AVX2-FCP-NEXT: retq134;135; AVX512-LABEL: load_i8_stride6_vf2:136; AVX512: # %bb.0:137; AVX512-NEXT: movq {{[0-9]+}}(%rsp), %rax138; AVX512-NEXT: vmovdqa (%rdi), %xmm0139; AVX512-NEXT: vpshufb {{.*#+}} xmm1 = xmm0[0,6,u,u,u,u,u,u,u,u,u,u,u,u,u,u]140; AVX512-NEXT: vpshufb {{.*#+}} xmm2 = xmm0[1,7,u,u,u,u,u,u,u,u,u,u,u,u,u,u]141; AVX512-NEXT: vpshufb {{.*#+}} xmm3 = xmm0[2,8,u,u,u,u,u,u,u,u,u,u,u,u,u,u]142; AVX512-NEXT: vpshufb {{.*#+}} xmm4 = xmm0[3,9,u,u,u,u,u,u,u,u,u,u,u,u,u,u]143; AVX512-NEXT: vpshufb {{.*#+}} xmm5 = xmm0[4,10,u,u,u,u,u,u,u,u,u,u,u,u,u,u]144; AVX512-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[5,11,u,u,u,u,u,u,u,u,u,u,u,u,u,u]145; AVX512-NEXT: vpextrw $0, %xmm1, (%rsi)146; AVX512-NEXT: vpextrw $0, %xmm2, (%rdx)147; AVX512-NEXT: vpextrw $0, %xmm3, (%rcx)148; AVX512-NEXT: vpextrw $0, %xmm4, (%r8)149; AVX512-NEXT: vpextrw $0, %xmm5, (%r9)150; AVX512-NEXT: vpextrw $0, %xmm0, (%rax)151; AVX512-NEXT: retq152;153; AVX512-FCP-LABEL: load_i8_stride6_vf2:154; AVX512-FCP: # %bb.0:155; AVX512-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax156; AVX512-FCP-NEXT: vmovdqa (%rdi), %xmm0157; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm1 = xmm0[0,6,u,u,u,u,u,u,u,u,u,u,u,u,u,u]158; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm2 = xmm0[1,7,u,u,u,u,u,u,u,u,u,u,u,u,u,u]159; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm3 = xmm0[2,8,u,u,u,u,u,u,u,u,u,u,u,u,u,u]160; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm4 = xmm0[3,9,u,u,u,u,u,u,u,u,u,u,u,u,u,u]161; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm5 = xmm0[4,10,u,u,u,u,u,u,u,u,u,u,u,u,u,u]162; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[5,11,u,u,u,u,u,u,u,u,u,u,u,u,u,u]163; AVX512-FCP-NEXT: vpextrw $0, %xmm1, (%rsi)164; AVX512-FCP-NEXT: vpextrw $0, %xmm2, (%rdx)165; AVX512-FCP-NEXT: vpextrw $0, %xmm3, (%rcx)166; AVX512-FCP-NEXT: vpextrw $0, %xmm4, (%r8)167; AVX512-FCP-NEXT: vpextrw $0, %xmm5, (%r9)168; AVX512-FCP-NEXT: vpextrw $0, %xmm0, (%rax)169; AVX512-FCP-NEXT: retq170;171; AVX512DQ-LABEL: load_i8_stride6_vf2:172; AVX512DQ: # %bb.0:173; AVX512DQ-NEXT: movq {{[0-9]+}}(%rsp), %rax174; AVX512DQ-NEXT: vmovdqa (%rdi), %xmm0175; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm1 = xmm0[0,6,u,u,u,u,u,u,u,u,u,u,u,u,u,u]176; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm2 = xmm0[1,7,u,u,u,u,u,u,u,u,u,u,u,u,u,u]177; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm3 = xmm0[2,8,u,u,u,u,u,u,u,u,u,u,u,u,u,u]178; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm4 = xmm0[3,9,u,u,u,u,u,u,u,u,u,u,u,u,u,u]179; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm5 = xmm0[4,10,u,u,u,u,u,u,u,u,u,u,u,u,u,u]180; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[5,11,u,u,u,u,u,u,u,u,u,u,u,u,u,u]181; AVX512DQ-NEXT: vpextrw $0, %xmm1, (%rsi)182; AVX512DQ-NEXT: vpextrw $0, %xmm2, (%rdx)183; AVX512DQ-NEXT: vpextrw $0, %xmm3, (%rcx)184; AVX512DQ-NEXT: vpextrw $0, %xmm4, (%r8)185; AVX512DQ-NEXT: vpextrw $0, %xmm5, (%r9)186; AVX512DQ-NEXT: vpextrw $0, %xmm0, (%rax)187; AVX512DQ-NEXT: retq188;189; AVX512DQ-FCP-LABEL: load_i8_stride6_vf2:190; AVX512DQ-FCP: # %bb.0:191; AVX512DQ-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax192; AVX512DQ-FCP-NEXT: vmovdqa (%rdi), %xmm0193; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm1 = xmm0[0,6,u,u,u,u,u,u,u,u,u,u,u,u,u,u]194; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm2 = xmm0[1,7,u,u,u,u,u,u,u,u,u,u,u,u,u,u]195; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm3 = xmm0[2,8,u,u,u,u,u,u,u,u,u,u,u,u,u,u]196; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm4 = xmm0[3,9,u,u,u,u,u,u,u,u,u,u,u,u,u,u]197; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm5 = xmm0[4,10,u,u,u,u,u,u,u,u,u,u,u,u,u,u]198; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[5,11,u,u,u,u,u,u,u,u,u,u,u,u,u,u]199; AVX512DQ-FCP-NEXT: vpextrw $0, %xmm1, (%rsi)200; AVX512DQ-FCP-NEXT: vpextrw $0, %xmm2, (%rdx)201; AVX512DQ-FCP-NEXT: vpextrw $0, %xmm3, (%rcx)202; AVX512DQ-FCP-NEXT: vpextrw $0, %xmm4, (%r8)203; AVX512DQ-FCP-NEXT: vpextrw $0, %xmm5, (%r9)204; AVX512DQ-FCP-NEXT: vpextrw $0, %xmm0, (%rax)205; AVX512DQ-FCP-NEXT: retq206;207; AVX512BW-LABEL: load_i8_stride6_vf2:208; AVX512BW: # %bb.0:209; AVX512BW-NEXT: movq {{[0-9]+}}(%rsp), %rax210; AVX512BW-NEXT: vmovdqa (%rdi), %xmm0211; AVX512BW-NEXT: vpshufb {{.*#+}} xmm1 = xmm0[0,6,u,u,u,u,u,u,u,u,u,u,u,u,u,u]212; AVX512BW-NEXT: vpshufb {{.*#+}} xmm2 = xmm0[1,7,u,u,u,u,u,u,u,u,u,u,u,u,u,u]213; AVX512BW-NEXT: vpshufb {{.*#+}} xmm3 = xmm0[2,8,u,u,u,u,u,u,u,u,u,u,u,u,u,u]214; AVX512BW-NEXT: vpshufb {{.*#+}} xmm4 = xmm0[3,9,u,u,u,u,u,u,u,u,u,u,u,u,u,u]215; AVX512BW-NEXT: vpshufb {{.*#+}} xmm5 = xmm0[4,10,u,u,u,u,u,u,u,u,u,u,u,u,u,u]216; AVX512BW-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[5,11,u,u,u,u,u,u,u,u,u,u,u,u,u,u]217; AVX512BW-NEXT: vpextrw $0, %xmm1, (%rsi)218; AVX512BW-NEXT: vpextrw $0, %xmm2, (%rdx)219; AVX512BW-NEXT: vpextrw $0, %xmm3, (%rcx)220; AVX512BW-NEXT: vpextrw $0, %xmm4, (%r8)221; AVX512BW-NEXT: vpextrw $0, %xmm5, (%r9)222; AVX512BW-NEXT: vpextrw $0, %xmm0, (%rax)223; AVX512BW-NEXT: retq224;225; AVX512BW-FCP-LABEL: load_i8_stride6_vf2:226; AVX512BW-FCP: # %bb.0:227; AVX512BW-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax228; AVX512BW-FCP-NEXT: vmovdqa (%rdi), %xmm0229; AVX512BW-FCP-NEXT: vpshufb {{.*#+}} xmm1 = xmm0[0,6,u,u,u,u,u,u,u,u,u,u,u,u,u,u]230; AVX512BW-FCP-NEXT: vpshufb {{.*#+}} xmm2 = xmm0[1,7,u,u,u,u,u,u,u,u,u,u,u,u,u,u]231; AVX512BW-FCP-NEXT: vpshufb {{.*#+}} xmm3 = xmm0[2,8,u,u,u,u,u,u,u,u,u,u,u,u,u,u]232; AVX512BW-FCP-NEXT: vpshufb {{.*#+}} xmm4 = xmm0[3,9,u,u,u,u,u,u,u,u,u,u,u,u,u,u]233; AVX512BW-FCP-NEXT: vpshufb {{.*#+}} xmm5 = xmm0[4,10,u,u,u,u,u,u,u,u,u,u,u,u,u,u]234; AVX512BW-FCP-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[5,11,u,u,u,u,u,u,u,u,u,u,u,u,u,u]235; AVX512BW-FCP-NEXT: vpextrw $0, %xmm1, (%rsi)236; AVX512BW-FCP-NEXT: vpextrw $0, %xmm2, (%rdx)237; AVX512BW-FCP-NEXT: vpextrw $0, %xmm3, (%rcx)238; AVX512BW-FCP-NEXT: vpextrw $0, %xmm4, (%r8)239; AVX512BW-FCP-NEXT: vpextrw $0, %xmm5, (%r9)240; AVX512BW-FCP-NEXT: vpextrw $0, %xmm0, (%rax)241; AVX512BW-FCP-NEXT: retq242;243; AVX512DQ-BW-LABEL: load_i8_stride6_vf2:244; AVX512DQ-BW: # %bb.0:245; AVX512DQ-BW-NEXT: movq {{[0-9]+}}(%rsp), %rax246; AVX512DQ-BW-NEXT: vmovdqa (%rdi), %xmm0247; AVX512DQ-BW-NEXT: vpshufb {{.*#+}} xmm1 = xmm0[0,6,u,u,u,u,u,u,u,u,u,u,u,u,u,u]248; AVX512DQ-BW-NEXT: vpshufb {{.*#+}} xmm2 = xmm0[1,7,u,u,u,u,u,u,u,u,u,u,u,u,u,u]249; AVX512DQ-BW-NEXT: vpshufb {{.*#+}} xmm3 = xmm0[2,8,u,u,u,u,u,u,u,u,u,u,u,u,u,u]250; AVX512DQ-BW-NEXT: vpshufb {{.*#+}} xmm4 = xmm0[3,9,u,u,u,u,u,u,u,u,u,u,u,u,u,u]251; AVX512DQ-BW-NEXT: vpshufb {{.*#+}} xmm5 = xmm0[4,10,u,u,u,u,u,u,u,u,u,u,u,u,u,u]252; AVX512DQ-BW-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[5,11,u,u,u,u,u,u,u,u,u,u,u,u,u,u]253; AVX512DQ-BW-NEXT: vpextrw $0, %xmm1, (%rsi)254; AVX512DQ-BW-NEXT: vpextrw $0, %xmm2, (%rdx)255; AVX512DQ-BW-NEXT: vpextrw $0, %xmm3, (%rcx)256; AVX512DQ-BW-NEXT: vpextrw $0, %xmm4, (%r8)257; AVX512DQ-BW-NEXT: vpextrw $0, %xmm5, (%r9)258; AVX512DQ-BW-NEXT: vpextrw $0, %xmm0, (%rax)259; AVX512DQ-BW-NEXT: retq260;261; AVX512DQ-BW-FCP-LABEL: load_i8_stride6_vf2:262; AVX512DQ-BW-FCP: # %bb.0:263; AVX512DQ-BW-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax264; AVX512DQ-BW-FCP-NEXT: vmovdqa (%rdi), %xmm0265; AVX512DQ-BW-FCP-NEXT: vpshufb {{.*#+}} xmm1 = xmm0[0,6,u,u,u,u,u,u,u,u,u,u,u,u,u,u]266; AVX512DQ-BW-FCP-NEXT: vpshufb {{.*#+}} xmm2 = xmm0[1,7,u,u,u,u,u,u,u,u,u,u,u,u,u,u]267; AVX512DQ-BW-FCP-NEXT: vpshufb {{.*#+}} xmm3 = xmm0[2,8,u,u,u,u,u,u,u,u,u,u,u,u,u,u]268; AVX512DQ-BW-FCP-NEXT: vpshufb {{.*#+}} xmm4 = xmm0[3,9,u,u,u,u,u,u,u,u,u,u,u,u,u,u]269; AVX512DQ-BW-FCP-NEXT: vpshufb {{.*#+}} xmm5 = xmm0[4,10,u,u,u,u,u,u,u,u,u,u,u,u,u,u]270; AVX512DQ-BW-FCP-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[5,11,u,u,u,u,u,u,u,u,u,u,u,u,u,u]271; AVX512DQ-BW-FCP-NEXT: vpextrw $0, %xmm1, (%rsi)272; AVX512DQ-BW-FCP-NEXT: vpextrw $0, %xmm2, (%rdx)273; AVX512DQ-BW-FCP-NEXT: vpextrw $0, %xmm3, (%rcx)274; AVX512DQ-BW-FCP-NEXT: vpextrw $0, %xmm4, (%r8)275; AVX512DQ-BW-FCP-NEXT: vpextrw $0, %xmm5, (%r9)276; AVX512DQ-BW-FCP-NEXT: vpextrw $0, %xmm0, (%rax)277; AVX512DQ-BW-FCP-NEXT: retq278 %wide.vec = load <12 x i8>, ptr %in.vec, align 64279 %strided.vec0 = shufflevector <12 x i8> %wide.vec, <12 x i8> poison, <2 x i32> <i32 0, i32 6>280 %strided.vec1 = shufflevector <12 x i8> %wide.vec, <12 x i8> poison, <2 x i32> <i32 1, i32 7>281 %strided.vec2 = shufflevector <12 x i8> %wide.vec, <12 x i8> poison, <2 x i32> <i32 2, i32 8>282 %strided.vec3 = shufflevector <12 x i8> %wide.vec, <12 x i8> poison, <2 x i32> <i32 3, i32 9>283 %strided.vec4 = shufflevector <12 x i8> %wide.vec, <12 x i8> poison, <2 x i32> <i32 4, i32 10>284 %strided.vec5 = shufflevector <12 x i8> %wide.vec, <12 x i8> poison, <2 x i32> <i32 5, i32 11>285 store <2 x i8> %strided.vec0, ptr %out.vec0, align 64286 store <2 x i8> %strided.vec1, ptr %out.vec1, align 64287 store <2 x i8> %strided.vec2, ptr %out.vec2, align 64288 store <2 x i8> %strided.vec3, ptr %out.vec3, align 64289 store <2 x i8> %strided.vec4, ptr %out.vec4, align 64290 store <2 x i8> %strided.vec5, ptr %out.vec5, align 64291 ret void292}293 294define void @load_i8_stride6_vf4(ptr %in.vec, ptr %out.vec0, ptr %out.vec1, ptr %out.vec2, ptr %out.vec3, ptr %out.vec4, ptr %out.vec5) nounwind {295; SSE-LABEL: load_i8_stride6_vf4:296; SSE: # %bb.0:297; SSE-NEXT: movq {{[0-9]+}}(%rsp), %rax298; SSE-NEXT: movdqa (%rdi), %xmm5299; SSE-NEXT: movdqa 16(%rdi), %xmm1300; SSE-NEXT: movdqa {{.*#+}} xmm0 = [65535,0,65535,65535,65535,65535,65535,65535]301; SSE-NEXT: movdqa %xmm5, %xmm2302; SSE-NEXT: pand %xmm0, %xmm2303; SSE-NEXT: pandn %xmm1, %xmm0304; SSE-NEXT: por %xmm2, %xmm0305; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,2,1,3]306; SSE-NEXT: movdqa {{.*#+}} xmm2 = [16711935,16711935,16711935,16711935]307; SSE-NEXT: pand %xmm2, %xmm0308; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,6,5,6,7]309; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,2,2,3]310; SSE-NEXT: pshuflw {{.*#+}} xmm0 = xmm0[0,3,2,1,4,5,6,7]311; SSE-NEXT: packuswb %xmm0, %xmm0312; SSE-NEXT: pxor %xmm3, %xmm3313; SSE-NEXT: movdqa %xmm5, %xmm7314; SSE-NEXT: movdqa {{.*#+}} xmm4 = [255,255,255,0,255,255,255,255,255,255,255,255,255,255,255,255]315; SSE-NEXT: pandn %xmm1, %xmm4316; SSE-NEXT: movdqa %xmm1, %xmm6317; SSE-NEXT: shufps {{.*#+}} xmm6 = xmm6[1,0],xmm5[0,0]318; SSE-NEXT: shufps {{.*#+}} xmm6 = xmm6[2,0],xmm5[2,3]319; SSE-NEXT: movdqa {{.*#+}} xmm8 = [65535,65535,0,65535,65535,0,65535,65535]320; SSE-NEXT: pand %xmm8, %xmm1321; SSE-NEXT: pandn %xmm5, %xmm8322; SSE-NEXT: punpckhbw {{.*#+}} xmm5 = 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]323; SSE-NEXT: movdqa %xmm5, %xmm9324; SSE-NEXT: psrld $16, %xmm9325; SSE-NEXT: punpcklbw {{.*#+}} xmm7 = 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]326; SSE-NEXT: pshufd {{.*#+}} xmm7 = xmm7[0,1,0,3]327; SSE-NEXT: pshufhw {{.*#+}} xmm7 = xmm7[0,1,2,3,5,7,6,7]328; SSE-NEXT: punpckhdq {{.*#+}} xmm7 = xmm7[2],xmm9[2],xmm7[3],xmm9[3]329; SSE-NEXT: packuswb %xmm7, %xmm7330; SSE-NEXT: por %xmm7, %xmm4331; SSE-NEXT: pshuflw {{.*#+}} xmm7 = xmm6[2,1,2,3,4,5,6,7]332; SSE-NEXT: pshufhw {{.*#+}} xmm7 = xmm7[0,1,2,3,4,7,6,7]333; SSE-NEXT: pand {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm7334; SSE-NEXT: pshufd {{.*#+}} xmm7 = xmm7[0,2,2,3]335; SSE-NEXT: pshuflw {{.*#+}} xmm7 = xmm7[1,2,3,0,4,5,6,7]336; SSE-NEXT: packuswb %xmm7, %xmm7337; SSE-NEXT: punpcklbw {{.*#+}} xmm6 = 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]338; SSE-NEXT: shufps {{.*#+}} xmm6 = xmm6[1,2],xmm5[0,3]339; SSE-NEXT: shufps {{.*#+}} xmm6 = xmm6[2,0,1,3]340; SSE-NEXT: pshuflw {{.*#+}} xmm6 = xmm6[3,1,2,3,4,5,6,7]341; SSE-NEXT: pshufhw {{.*#+}} xmm6 = xmm6[0,1,2,3,7,5,6,7]342; SSE-NEXT: pshufd {{.*#+}} xmm6 = xmm6[0,2,2,3]343; SSE-NEXT: packuswb %xmm6, %xmm6344; SSE-NEXT: por %xmm1, %xmm8345; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm8[3,1,2,0]346; SSE-NEXT: pand %xmm2, %xmm1347; SSE-NEXT: pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,6,5,6,7]348; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[2,1,2,3]349; SSE-NEXT: pshuflw {{.*#+}} xmm1 = xmm1[2,1,0,3,4,5,6,7]350; SSE-NEXT: packuswb %xmm1, %xmm1351; SSE-NEXT: punpcklbw {{.*#+}} xmm8 = xmm8[0],xmm3[0],xmm8[1],xmm3[1],xmm8[2],xmm3[2],xmm8[3],xmm3[3],xmm8[4],xmm3[4],xmm8[5],xmm3[5],xmm8[6],xmm3[6],xmm8[7],xmm3[7]352; SSE-NEXT: shufps {{.*#+}} xmm5 = xmm5[1,0],xmm8[0,0]353; SSE-NEXT: shufps {{.*#+}} xmm5 = xmm5[2,0],xmm8[2,3]354; SSE-NEXT: pshuflw {{.*#+}} xmm2 = xmm5[3,1,2,3,4,5,6,7]355; SSE-NEXT: pshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,7,5,6,7]356; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm2[0,2,2,3]357; SSE-NEXT: pshuflw {{.*#+}} xmm2 = xmm2[3,0,1,2,4,5,6,7]358; SSE-NEXT: packuswb %xmm2, %xmm2359; SSE-NEXT: movd %xmm0, (%rsi)360; SSE-NEXT: movd %xmm4, (%rdx)361; SSE-NEXT: movd %xmm7, (%rcx)362; SSE-NEXT: movd %xmm6, (%r8)363; SSE-NEXT: movd %xmm1, (%r9)364; SSE-NEXT: movd %xmm2, (%rax)365; SSE-NEXT: retq366;367; AVX-LABEL: load_i8_stride6_vf4:368; AVX: # %bb.0:369; AVX-NEXT: movq {{[0-9]+}}(%rsp), %rax370; AVX-NEXT: vmovdqa (%rdi), %xmm0371; AVX-NEXT: vmovdqa 16(%rdi), %xmm1372; AVX-NEXT: vpshufb {{.*#+}} xmm2 = zero,zero,zero,xmm1[2,u,u,u,u,u,u,u,u,u,u,u,u]373; AVX-NEXT: vpshufb {{.*#+}} xmm3 = xmm0[0,6,12],zero,xmm0[u,u,u,u,u,u,u,u,u,u,u,u]374; AVX-NEXT: vpor %xmm2, %xmm3, %xmm2375; AVX-NEXT: vpshufb {{.*#+}} xmm3 = zero,zero,zero,xmm1[3,u,u,u,u,u,u,u,u,u,u,u,u]376; AVX-NEXT: vpshufb {{.*#+}} xmm4 = xmm0[1,7,13],zero,xmm0[u,u,u,u,u,u,u,u,u,u,u,u]377; AVX-NEXT: vpor %xmm3, %xmm4, %xmm3378; AVX-NEXT: vpshufb {{.*#+}} xmm4 = zero,zero,zero,xmm1[4,u,u,u,u,u,u,u,u,u,u,u,u]379; AVX-NEXT: vpshufb {{.*#+}} xmm5 = xmm0[2,8,14],zero,xmm0[u,u,u,u,u,u,u,u,u,u,u,u]380; AVX-NEXT: vpor %xmm4, %xmm5, %xmm4381; AVX-NEXT: vpshufb {{.*#+}} xmm5 = zero,zero,zero,xmm1[5,u,u,u,u,u,u,u,u,u,u,u,u]382; AVX-NEXT: vpshufb {{.*#+}} xmm6 = xmm0[3,9,15],zero,xmm0[u,u,u,u,u,u,u,u,u,u,u,u]383; AVX-NEXT: vpor %xmm5, %xmm6, %xmm5384; AVX-NEXT: vpshufb {{.*#+}} xmm6 = xmm1[0,6,u,u,u,u,u,u,u,u,u,u,u,u,u,u]385; AVX-NEXT: vpshufb {{.*#+}} xmm7 = xmm0[4,10,u,u,u,u,u,u,u,u,u,u,u,u,u,u]386; AVX-NEXT: vpunpcklwd {{.*#+}} xmm6 = xmm7[0],xmm6[0],xmm7[1],xmm6[1],xmm7[2],xmm6[2],xmm7[3],xmm6[3]387; AVX-NEXT: vpshufb {{.*#+}} xmm1 = xmm1[1,7,u,u,u,u,u,u,u,u,u,u,u,u,u,u]388; AVX-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[5,11,u,u,u,u,u,u,u,u,u,u,u,u,u,u]389; AVX-NEXT: vpunpcklwd {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3]390; AVX-NEXT: vmovd %xmm2, (%rsi)391; AVX-NEXT: vmovd %xmm3, (%rdx)392; AVX-NEXT: vmovd %xmm4, (%rcx)393; AVX-NEXT: vmovd %xmm5, (%r8)394; AVX-NEXT: vmovd %xmm6, (%r9)395; AVX-NEXT: vmovd %xmm0, (%rax)396; AVX-NEXT: retq397;398; AVX2-LABEL: load_i8_stride6_vf4:399; AVX2: # %bb.0:400; AVX2-NEXT: movq {{[0-9]+}}(%rsp), %rax401; AVX2-NEXT: vmovdqa (%rdi), %xmm0402; AVX2-NEXT: vmovdqa 16(%rdi), %xmm1403; AVX2-NEXT: vpshufb {{.*#+}} xmm2 = zero,zero,zero,xmm1[2,u,u,u,u,u,u,u,u,u,u,u,u]404; AVX2-NEXT: vpshufb {{.*#+}} xmm3 = xmm0[0,6,12],zero,xmm0[u,u,u,u,u,u,u,u,u,u,u,u]405; AVX2-NEXT: vpor %xmm2, %xmm3, %xmm2406; AVX2-NEXT: vpshufb {{.*#+}} xmm3 = zero,zero,zero,xmm1[3,u,u,u,u,u,u,u,u,u,u,u,u]407; AVX2-NEXT: vpshufb {{.*#+}} xmm4 = xmm0[1,7,13],zero,xmm0[u,u,u,u,u,u,u,u,u,u,u,u]408; AVX2-NEXT: vpor %xmm3, %xmm4, %xmm3409; AVX2-NEXT: vpshufb {{.*#+}} xmm4 = zero,zero,zero,xmm1[4,u,u,u,u,u,u,u,u,u,u,u,u]410; AVX2-NEXT: vpshufb {{.*#+}} xmm5 = xmm0[2,8,14],zero,xmm0[u,u,u,u,u,u,u,u,u,u,u,u]411; AVX2-NEXT: vpor %xmm4, %xmm5, %xmm4412; AVX2-NEXT: vpshufb {{.*#+}} xmm5 = zero,zero,zero,xmm1[5,u,u,u,u,u,u,u,u,u,u,u,u]413; AVX2-NEXT: vpshufb {{.*#+}} xmm6 = xmm0[3,9,15],zero,xmm0[u,u,u,u,u,u,u,u,u,u,u,u]414; AVX2-NEXT: vpor %xmm5, %xmm6, %xmm5415; AVX2-NEXT: vpshufb {{.*#+}} xmm6 = xmm1[0,6,u,u,u,u,u,u,u,u,u,u,u,u,u,u]416; AVX2-NEXT: vpshufb {{.*#+}} xmm7 = xmm0[4,10,u,u,u,u,u,u,u,u,u,u,u,u,u,u]417; AVX2-NEXT: vpunpcklwd {{.*#+}} xmm6 = xmm7[0],xmm6[0],xmm7[1],xmm6[1],xmm7[2],xmm6[2],xmm7[3],xmm6[3]418; AVX2-NEXT: vpshufb {{.*#+}} xmm1 = xmm1[1,7,u,u,u,u,u,u,u,u,u,u,u,u,u,u]419; AVX2-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[5,11,u,u,u,u,u,u,u,u,u,u,u,u,u,u]420; AVX2-NEXT: vpunpcklwd {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3]421; AVX2-NEXT: vmovd %xmm2, (%rsi)422; AVX2-NEXT: vmovd %xmm3, (%rdx)423; AVX2-NEXT: vmovd %xmm4, (%rcx)424; AVX2-NEXT: vmovd %xmm5, (%r8)425; AVX2-NEXT: vmovd %xmm6, (%r9)426; AVX2-NEXT: vmovd %xmm0, (%rax)427; AVX2-NEXT: retq428;429; AVX2-FP-LABEL: load_i8_stride6_vf4:430; AVX2-FP: # %bb.0:431; AVX2-FP-NEXT: movq {{[0-9]+}}(%rsp), %rax432; AVX2-FP-NEXT: vmovdqa (%rdi), %xmm0433; AVX2-FP-NEXT: vmovdqa 16(%rdi), %xmm1434; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm2 = zero,zero,zero,xmm1[2,u,u,u,u,u,u,u,u,u,u,u,u]435; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm3 = xmm0[0,6,12],zero,xmm0[u,u,u,u,u,u,u,u,u,u,u,u]436; AVX2-FP-NEXT: vpor %xmm2, %xmm3, %xmm2437; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm3 = zero,zero,zero,xmm1[3,u,u,u,u,u,u,u,u,u,u,u,u]438; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm4 = xmm0[1,7,13],zero,xmm0[u,u,u,u,u,u,u,u,u,u,u,u]439; AVX2-FP-NEXT: vpor %xmm3, %xmm4, %xmm3440; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm4 = zero,zero,zero,xmm1[4,u,u,u,u,u,u,u,u,u,u,u,u]441; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm5 = xmm0[2,8,14],zero,xmm0[u,u,u,u,u,u,u,u,u,u,u,u]442; AVX2-FP-NEXT: vpor %xmm4, %xmm5, %xmm4443; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm5 = zero,zero,zero,xmm1[5,u,u,u,u,u,u,u,u,u,u,u,u]444; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm6 = xmm0[3,9,15],zero,xmm0[u,u,u,u,u,u,u,u,u,u,u,u]445; AVX2-FP-NEXT: vpor %xmm5, %xmm6, %xmm5446; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm6 = xmm1[0,6,u,u,u,u,u,u,u,u,u,u,u,u,u,u]447; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm7 = xmm0[4,10,u,u,u,u,u,u,u,u,u,u,u,u,u,u]448; AVX2-FP-NEXT: vpunpcklwd {{.*#+}} xmm6 = xmm7[0],xmm6[0],xmm7[1],xmm6[1],xmm7[2],xmm6[2],xmm7[3],xmm6[3]449; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm1 = xmm1[1,7,u,u,u,u,u,u,u,u,u,u,u,u,u,u]450; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[5,11,u,u,u,u,u,u,u,u,u,u,u,u,u,u]451; AVX2-FP-NEXT: vpunpcklwd {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3]452; AVX2-FP-NEXT: vmovd %xmm2, (%rsi)453; AVX2-FP-NEXT: vmovd %xmm3, (%rdx)454; AVX2-FP-NEXT: vmovd %xmm4, (%rcx)455; AVX2-FP-NEXT: vmovd %xmm5, (%r8)456; AVX2-FP-NEXT: vmovd %xmm6, (%r9)457; AVX2-FP-NEXT: vmovd %xmm0, (%rax)458; AVX2-FP-NEXT: retq459;460; AVX2-FCP-LABEL: load_i8_stride6_vf4:461; AVX2-FCP: # %bb.0:462; AVX2-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax463; AVX2-FCP-NEXT: vmovdqa (%rdi), %xmm0464; AVX2-FCP-NEXT: vmovdqa 16(%rdi), %xmm1465; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm2 = zero,zero,zero,xmm1[2,u,u,u,u,u,u,u,u,u,u,u,u]466; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm3 = xmm0[0,6,12],zero,xmm0[u,u,u,u,u,u,u,u,u,u,u,u]467; AVX2-FCP-NEXT: vpor %xmm2, %xmm3, %xmm2468; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm3 = zero,zero,zero,xmm1[3,u,u,u,u,u,u,u,u,u,u,u,u]469; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm4 = xmm0[1,7,13],zero,xmm0[u,u,u,u,u,u,u,u,u,u,u,u]470; AVX2-FCP-NEXT: vpor %xmm3, %xmm4, %xmm3471; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm4 = zero,zero,zero,xmm1[4,u,u,u,u,u,u,u,u,u,u,u,u]472; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm5 = xmm0[2,8,14],zero,xmm0[u,u,u,u,u,u,u,u,u,u,u,u]473; AVX2-FCP-NEXT: vpor %xmm4, %xmm5, %xmm4474; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm5 = zero,zero,zero,xmm1[5,u,u,u,u,u,u,u,u,u,u,u,u]475; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm6 = xmm0[3,9,15],zero,xmm0[u,u,u,u,u,u,u,u,u,u,u,u]476; AVX2-FCP-NEXT: vpor %xmm5, %xmm6, %xmm5477; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm6 = xmm1[0,6,u,u,u,u,u,u,u,u,u,u,u,u,u,u]478; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm7 = xmm0[4,10,u,u,u,u,u,u,u,u,u,u,u,u,u,u]479; AVX2-FCP-NEXT: vpunpcklwd {{.*#+}} xmm6 = xmm7[0],xmm6[0],xmm7[1],xmm6[1],xmm7[2],xmm6[2],xmm7[3],xmm6[3]480; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm1 = xmm1[1,7,u,u,u,u,u,u,u,u,u,u,u,u,u,u]481; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[5,11,u,u,u,u,u,u,u,u,u,u,u,u,u,u]482; AVX2-FCP-NEXT: vpunpcklwd {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3]483; AVX2-FCP-NEXT: vmovd %xmm2, (%rsi)484; AVX2-FCP-NEXT: vmovd %xmm3, (%rdx)485; AVX2-FCP-NEXT: vmovd %xmm4, (%rcx)486; AVX2-FCP-NEXT: vmovd %xmm5, (%r8)487; AVX2-FCP-NEXT: vmovd %xmm6, (%r9)488; AVX2-FCP-NEXT: vmovd %xmm0, (%rax)489; AVX2-FCP-NEXT: retq490;491; AVX512-LABEL: load_i8_stride6_vf4:492; AVX512: # %bb.0:493; AVX512-NEXT: movq {{[0-9]+}}(%rsp), %rax494; AVX512-NEXT: vmovdqa (%rdi), %xmm0495; AVX512-NEXT: vmovdqa 16(%rdi), %xmm1496; AVX512-NEXT: vpshufb {{.*#+}} xmm2 = zero,zero,zero,xmm1[2,u,u,u,u,u,u,u,u,u,u,u,u]497; AVX512-NEXT: vpshufb {{.*#+}} xmm3 = xmm0[0,6,12],zero,xmm0[u,u,u,u,u,u,u,u,u,u,u,u]498; AVX512-NEXT: vpor %xmm2, %xmm3, %xmm2499; AVX512-NEXT: vpshufb {{.*#+}} xmm3 = zero,zero,zero,xmm1[3,u,u,u,u,u,u,u,u,u,u,u,u]500; AVX512-NEXT: vpshufb {{.*#+}} xmm4 = xmm0[1,7,13],zero,xmm0[u,u,u,u,u,u,u,u,u,u,u,u]501; AVX512-NEXT: vpor %xmm3, %xmm4, %xmm3502; AVX512-NEXT: vpshufb {{.*#+}} xmm4 = zero,zero,zero,xmm1[4,u,u,u,u,u,u,u,u,u,u,u,u]503; AVX512-NEXT: vpshufb {{.*#+}} xmm5 = xmm0[2,8,14],zero,xmm0[u,u,u,u,u,u,u,u,u,u,u,u]504; AVX512-NEXT: vpor %xmm4, %xmm5, %xmm4505; AVX512-NEXT: vpshufb {{.*#+}} xmm5 = zero,zero,zero,xmm1[5,u,u,u,u,u,u,u,u,u,u,u,u]506; AVX512-NEXT: vpshufb {{.*#+}} xmm6 = xmm0[3,9,15],zero,xmm0[u,u,u,u,u,u,u,u,u,u,u,u]507; AVX512-NEXT: vpor %xmm5, %xmm6, %xmm5508; AVX512-NEXT: vpshufb {{.*#+}} xmm6 = xmm1[0,6,u,u,u,u,u,u,u,u,u,u,u,u,u,u]509; AVX512-NEXT: vpshufb {{.*#+}} xmm7 = xmm0[4,10,u,u,u,u,u,u,u,u,u,u,u,u,u,u]510; AVX512-NEXT: vpunpcklwd {{.*#+}} xmm6 = xmm7[0],xmm6[0],xmm7[1],xmm6[1],xmm7[2],xmm6[2],xmm7[3],xmm6[3]511; AVX512-NEXT: vpshufb {{.*#+}} xmm1 = xmm1[1,7,u,u,u,u,u,u,u,u,u,u,u,u,u,u]512; AVX512-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[5,11,u,u,u,u,u,u,u,u,u,u,u,u,u,u]513; AVX512-NEXT: vpunpcklwd {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3]514; AVX512-NEXT: vmovd %xmm2, (%rsi)515; AVX512-NEXT: vmovd %xmm3, (%rdx)516; AVX512-NEXT: vmovd %xmm4, (%rcx)517; AVX512-NEXT: vmovd %xmm5, (%r8)518; AVX512-NEXT: vmovd %xmm6, (%r9)519; AVX512-NEXT: vmovd %xmm0, (%rax)520; AVX512-NEXT: retq521;522; AVX512-FCP-LABEL: load_i8_stride6_vf4:523; AVX512-FCP: # %bb.0:524; AVX512-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax525; AVX512-FCP-NEXT: vmovdqa (%rdi), %xmm0526; AVX512-FCP-NEXT: vmovdqa 16(%rdi), %xmm1527; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm2 = zero,zero,zero,xmm1[2,u,u,u,u,u,u,u,u,u,u,u,u]528; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm3 = xmm0[0,6,12],zero,xmm0[u,u,u,u,u,u,u,u,u,u,u,u]529; AVX512-FCP-NEXT: vpor %xmm2, %xmm3, %xmm2530; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm3 = zero,zero,zero,xmm1[3,u,u,u,u,u,u,u,u,u,u,u,u]531; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm4 = xmm0[1,7,13],zero,xmm0[u,u,u,u,u,u,u,u,u,u,u,u]532; AVX512-FCP-NEXT: vpor %xmm3, %xmm4, %xmm3533; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm4 = zero,zero,zero,xmm1[4,u,u,u,u,u,u,u,u,u,u,u,u]534; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm5 = xmm0[2,8,14],zero,xmm0[u,u,u,u,u,u,u,u,u,u,u,u]535; AVX512-FCP-NEXT: vpor %xmm4, %xmm5, %xmm4536; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm5 = zero,zero,zero,xmm1[5,u,u,u,u,u,u,u,u,u,u,u,u]537; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm6 = xmm0[3,9,15],zero,xmm0[u,u,u,u,u,u,u,u,u,u,u,u]538; AVX512-FCP-NEXT: vpor %xmm5, %xmm6, %xmm5539; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm6 = xmm1[0,6,u,u,u,u,u,u,u,u,u,u,u,u,u,u]540; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm7 = xmm0[4,10,u,u,u,u,u,u,u,u,u,u,u,u,u,u]541; AVX512-FCP-NEXT: vpunpcklwd {{.*#+}} xmm6 = xmm7[0],xmm6[0],xmm7[1],xmm6[1],xmm7[2],xmm6[2],xmm7[3],xmm6[3]542; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm1 = xmm1[1,7,u,u,u,u,u,u,u,u,u,u,u,u,u,u]543; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[5,11,u,u,u,u,u,u,u,u,u,u,u,u,u,u]544; AVX512-FCP-NEXT: vpunpcklwd {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3]545; AVX512-FCP-NEXT: vmovd %xmm2, (%rsi)546; AVX512-FCP-NEXT: vmovd %xmm3, (%rdx)547; AVX512-FCP-NEXT: vmovd %xmm4, (%rcx)548; AVX512-FCP-NEXT: vmovd %xmm5, (%r8)549; AVX512-FCP-NEXT: vmovd %xmm6, (%r9)550; AVX512-FCP-NEXT: vmovd %xmm0, (%rax)551; AVX512-FCP-NEXT: retq552;553; AVX512DQ-LABEL: load_i8_stride6_vf4:554; AVX512DQ: # %bb.0:555; AVX512DQ-NEXT: movq {{[0-9]+}}(%rsp), %rax556; AVX512DQ-NEXT: vmovdqa (%rdi), %xmm0557; AVX512DQ-NEXT: vmovdqa 16(%rdi), %xmm1558; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm2 = zero,zero,zero,xmm1[2,u,u,u,u,u,u,u,u,u,u,u,u]559; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm3 = xmm0[0,6,12],zero,xmm0[u,u,u,u,u,u,u,u,u,u,u,u]560; AVX512DQ-NEXT: vpor %xmm2, %xmm3, %xmm2561; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm3 = zero,zero,zero,xmm1[3,u,u,u,u,u,u,u,u,u,u,u,u]562; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm4 = xmm0[1,7,13],zero,xmm0[u,u,u,u,u,u,u,u,u,u,u,u]563; AVX512DQ-NEXT: vpor %xmm3, %xmm4, %xmm3564; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm4 = zero,zero,zero,xmm1[4,u,u,u,u,u,u,u,u,u,u,u,u]565; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm5 = xmm0[2,8,14],zero,xmm0[u,u,u,u,u,u,u,u,u,u,u,u]566; AVX512DQ-NEXT: vpor %xmm4, %xmm5, %xmm4567; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm5 = zero,zero,zero,xmm1[5,u,u,u,u,u,u,u,u,u,u,u,u]568; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm6 = xmm0[3,9,15],zero,xmm0[u,u,u,u,u,u,u,u,u,u,u,u]569; AVX512DQ-NEXT: vpor %xmm5, %xmm6, %xmm5570; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm6 = xmm1[0,6,u,u,u,u,u,u,u,u,u,u,u,u,u,u]571; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm7 = xmm0[4,10,u,u,u,u,u,u,u,u,u,u,u,u,u,u]572; AVX512DQ-NEXT: vpunpcklwd {{.*#+}} xmm6 = xmm7[0],xmm6[0],xmm7[1],xmm6[1],xmm7[2],xmm6[2],xmm7[3],xmm6[3]573; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm1 = xmm1[1,7,u,u,u,u,u,u,u,u,u,u,u,u,u,u]574; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[5,11,u,u,u,u,u,u,u,u,u,u,u,u,u,u]575; AVX512DQ-NEXT: vpunpcklwd {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3]576; AVX512DQ-NEXT: vmovd %xmm2, (%rsi)577; AVX512DQ-NEXT: vmovd %xmm3, (%rdx)578; AVX512DQ-NEXT: vmovd %xmm4, (%rcx)579; AVX512DQ-NEXT: vmovd %xmm5, (%r8)580; AVX512DQ-NEXT: vmovd %xmm6, (%r9)581; AVX512DQ-NEXT: vmovd %xmm0, (%rax)582; AVX512DQ-NEXT: retq583;584; AVX512DQ-FCP-LABEL: load_i8_stride6_vf4:585; AVX512DQ-FCP: # %bb.0:586; AVX512DQ-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax587; AVX512DQ-FCP-NEXT: vmovdqa (%rdi), %xmm0588; AVX512DQ-FCP-NEXT: vmovdqa 16(%rdi), %xmm1589; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm2 = zero,zero,zero,xmm1[2,u,u,u,u,u,u,u,u,u,u,u,u]590; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm3 = xmm0[0,6,12],zero,xmm0[u,u,u,u,u,u,u,u,u,u,u,u]591; AVX512DQ-FCP-NEXT: vpor %xmm2, %xmm3, %xmm2592; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm3 = zero,zero,zero,xmm1[3,u,u,u,u,u,u,u,u,u,u,u,u]593; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm4 = xmm0[1,7,13],zero,xmm0[u,u,u,u,u,u,u,u,u,u,u,u]594; AVX512DQ-FCP-NEXT: vpor %xmm3, %xmm4, %xmm3595; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm4 = zero,zero,zero,xmm1[4,u,u,u,u,u,u,u,u,u,u,u,u]596; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm5 = xmm0[2,8,14],zero,xmm0[u,u,u,u,u,u,u,u,u,u,u,u]597; AVX512DQ-FCP-NEXT: vpor %xmm4, %xmm5, %xmm4598; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm5 = zero,zero,zero,xmm1[5,u,u,u,u,u,u,u,u,u,u,u,u]599; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm6 = xmm0[3,9,15],zero,xmm0[u,u,u,u,u,u,u,u,u,u,u,u]600; AVX512DQ-FCP-NEXT: vpor %xmm5, %xmm6, %xmm5601; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm6 = xmm1[0,6,u,u,u,u,u,u,u,u,u,u,u,u,u,u]602; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm7 = xmm0[4,10,u,u,u,u,u,u,u,u,u,u,u,u,u,u]603; AVX512DQ-FCP-NEXT: vpunpcklwd {{.*#+}} xmm6 = xmm7[0],xmm6[0],xmm7[1],xmm6[1],xmm7[2],xmm6[2],xmm7[3],xmm6[3]604; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm1 = xmm1[1,7,u,u,u,u,u,u,u,u,u,u,u,u,u,u]605; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[5,11,u,u,u,u,u,u,u,u,u,u,u,u,u,u]606; AVX512DQ-FCP-NEXT: vpunpcklwd {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3]607; AVX512DQ-FCP-NEXT: vmovd %xmm2, (%rsi)608; AVX512DQ-FCP-NEXT: vmovd %xmm3, (%rdx)609; AVX512DQ-FCP-NEXT: vmovd %xmm4, (%rcx)610; AVX512DQ-FCP-NEXT: vmovd %xmm5, (%r8)611; AVX512DQ-FCP-NEXT: vmovd %xmm6, (%r9)612; AVX512DQ-FCP-NEXT: vmovd %xmm0, (%rax)613; AVX512DQ-FCP-NEXT: retq614;615; AVX512BW-LABEL: load_i8_stride6_vf4:616; AVX512BW: # %bb.0:617; AVX512BW-NEXT: movq {{[0-9]+}}(%rsp), %rax618; AVX512BW-NEXT: vmovdqa (%rdi), %xmm0619; AVX512BW-NEXT: vmovdqa 16(%rdi), %xmm1620; AVX512BW-NEXT: vpshufb {{.*#+}} xmm2 = zero,zero,zero,xmm1[2,u,u,u,u,u,u,u,u,u,u,u,u]621; AVX512BW-NEXT: vpshufb {{.*#+}} xmm3 = xmm0[0,6,12],zero,xmm0[u,u,u,u,u,u,u,u,u,u,u,u]622; AVX512BW-NEXT: vpor %xmm2, %xmm3, %xmm2623; AVX512BW-NEXT: vpshufb {{.*#+}} xmm3 = zero,zero,zero,xmm1[3,u,u,u,u,u,u,u,u,u,u,u,u]624; AVX512BW-NEXT: vpshufb {{.*#+}} xmm4 = xmm0[1,7,13],zero,xmm0[u,u,u,u,u,u,u,u,u,u,u,u]625; AVX512BW-NEXT: vpor %xmm3, %xmm4, %xmm3626; AVX512BW-NEXT: vpshufb {{.*#+}} xmm4 = zero,zero,zero,xmm1[4,u,u,u,u,u,u,u,u,u,u,u,u]627; AVX512BW-NEXT: vpshufb {{.*#+}} xmm5 = xmm0[2,8,14],zero,xmm0[u,u,u,u,u,u,u,u,u,u,u,u]628; AVX512BW-NEXT: vpor %xmm4, %xmm5, %xmm4629; AVX512BW-NEXT: vpshufb {{.*#+}} xmm5 = zero,zero,zero,xmm1[5,u,u,u,u,u,u,u,u,u,u,u,u]630; AVX512BW-NEXT: vpshufb {{.*#+}} xmm6 = xmm0[3,9,15],zero,xmm0[u,u,u,u,u,u,u,u,u,u,u,u]631; AVX512BW-NEXT: vpor %xmm5, %xmm6, %xmm5632; AVX512BW-NEXT: vpshufb {{.*#+}} xmm6 = xmm1[0,6,u,u,u,u,u,u,u,u,u,u,u,u,u,u]633; AVX512BW-NEXT: vpshufb {{.*#+}} xmm7 = xmm0[4,10,u,u,u,u,u,u,u,u,u,u,u,u,u,u]634; AVX512BW-NEXT: vpunpcklwd {{.*#+}} xmm6 = xmm7[0],xmm6[0],xmm7[1],xmm6[1],xmm7[2],xmm6[2],xmm7[3],xmm6[3]635; AVX512BW-NEXT: vpshufb {{.*#+}} xmm1 = xmm1[1,7,u,u,u,u,u,u,u,u,u,u,u,u,u,u]636; AVX512BW-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[5,11,u,u,u,u,u,u,u,u,u,u,u,u,u,u]637; AVX512BW-NEXT: vpunpcklwd {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3]638; AVX512BW-NEXT: vmovd %xmm2, (%rsi)639; AVX512BW-NEXT: vmovd %xmm3, (%rdx)640; AVX512BW-NEXT: vmovd %xmm4, (%rcx)641; AVX512BW-NEXT: vmovd %xmm5, (%r8)642; AVX512BW-NEXT: vmovd %xmm6, (%r9)643; AVX512BW-NEXT: vmovd %xmm0, (%rax)644; AVX512BW-NEXT: retq645;646; AVX512BW-FCP-LABEL: load_i8_stride6_vf4:647; AVX512BW-FCP: # %bb.0:648; AVX512BW-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax649; AVX512BW-FCP-NEXT: vmovdqa (%rdi), %xmm0650; AVX512BW-FCP-NEXT: vmovdqa 16(%rdi), %xmm1651; AVX512BW-FCP-NEXT: vpshufb {{.*#+}} xmm2 = zero,zero,zero,xmm1[2,u,u,u,u,u,u,u,u,u,u,u,u]652; AVX512BW-FCP-NEXT: vpshufb {{.*#+}} xmm3 = xmm0[0,6,12],zero,xmm0[u,u,u,u,u,u,u,u,u,u,u,u]653; AVX512BW-FCP-NEXT: vpor %xmm2, %xmm3, %xmm2654; AVX512BW-FCP-NEXT: vpshufb {{.*#+}} xmm3 = zero,zero,zero,xmm1[3,u,u,u,u,u,u,u,u,u,u,u,u]655; AVX512BW-FCP-NEXT: vpshufb {{.*#+}} xmm4 = xmm0[1,7,13],zero,xmm0[u,u,u,u,u,u,u,u,u,u,u,u]656; AVX512BW-FCP-NEXT: vpor %xmm3, %xmm4, %xmm3657; AVX512BW-FCP-NEXT: vpshufb {{.*#+}} xmm4 = zero,zero,zero,xmm1[4,u,u,u,u,u,u,u,u,u,u,u,u]658; AVX512BW-FCP-NEXT: vpshufb {{.*#+}} xmm5 = xmm0[2,8,14],zero,xmm0[u,u,u,u,u,u,u,u,u,u,u,u]659; AVX512BW-FCP-NEXT: vpor %xmm4, %xmm5, %xmm4660; AVX512BW-FCP-NEXT: vpshufb {{.*#+}} xmm5 = zero,zero,zero,xmm1[5,u,u,u,u,u,u,u,u,u,u,u,u]661; AVX512BW-FCP-NEXT: vpshufb {{.*#+}} xmm6 = xmm0[3,9,15],zero,xmm0[u,u,u,u,u,u,u,u,u,u,u,u]662; AVX512BW-FCP-NEXT: vpor %xmm5, %xmm6, %xmm5663; AVX512BW-FCP-NEXT: vpshufb {{.*#+}} xmm6 = xmm1[0,6,u,u,u,u,u,u,u,u,u,u,u,u,u,u]664; AVX512BW-FCP-NEXT: vpshufb {{.*#+}} xmm7 = xmm0[4,10,u,u,u,u,u,u,u,u,u,u,u,u,u,u]665; AVX512BW-FCP-NEXT: vpunpcklwd {{.*#+}} xmm6 = xmm7[0],xmm6[0],xmm7[1],xmm6[1],xmm7[2],xmm6[2],xmm7[3],xmm6[3]666; AVX512BW-FCP-NEXT: vpshufb {{.*#+}} xmm1 = xmm1[1,7,u,u,u,u,u,u,u,u,u,u,u,u,u,u]667; AVX512BW-FCP-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[5,11,u,u,u,u,u,u,u,u,u,u,u,u,u,u]668; AVX512BW-FCP-NEXT: vpunpcklwd {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3]669; AVX512BW-FCP-NEXT: vmovd %xmm2, (%rsi)670; AVX512BW-FCP-NEXT: vmovd %xmm3, (%rdx)671; AVX512BW-FCP-NEXT: vmovd %xmm4, (%rcx)672; AVX512BW-FCP-NEXT: vmovd %xmm5, (%r8)673; AVX512BW-FCP-NEXT: vmovd %xmm6, (%r9)674; AVX512BW-FCP-NEXT: vmovd %xmm0, (%rax)675; AVX512BW-FCP-NEXT: retq676;677; AVX512DQ-BW-LABEL: load_i8_stride6_vf4:678; AVX512DQ-BW: # %bb.0:679; AVX512DQ-BW-NEXT: movq {{[0-9]+}}(%rsp), %rax680; AVX512DQ-BW-NEXT: vmovdqa (%rdi), %xmm0681; AVX512DQ-BW-NEXT: vmovdqa 16(%rdi), %xmm1682; AVX512DQ-BW-NEXT: vpshufb {{.*#+}} xmm2 = zero,zero,zero,xmm1[2,u,u,u,u,u,u,u,u,u,u,u,u]683; AVX512DQ-BW-NEXT: vpshufb {{.*#+}} xmm3 = xmm0[0,6,12],zero,xmm0[u,u,u,u,u,u,u,u,u,u,u,u]684; AVX512DQ-BW-NEXT: vpor %xmm2, %xmm3, %xmm2685; AVX512DQ-BW-NEXT: vpshufb {{.*#+}} xmm3 = zero,zero,zero,xmm1[3,u,u,u,u,u,u,u,u,u,u,u,u]686; AVX512DQ-BW-NEXT: vpshufb {{.*#+}} xmm4 = xmm0[1,7,13],zero,xmm0[u,u,u,u,u,u,u,u,u,u,u,u]687; AVX512DQ-BW-NEXT: vpor %xmm3, %xmm4, %xmm3688; AVX512DQ-BW-NEXT: vpshufb {{.*#+}} xmm4 = zero,zero,zero,xmm1[4,u,u,u,u,u,u,u,u,u,u,u,u]689; AVX512DQ-BW-NEXT: vpshufb {{.*#+}} xmm5 = xmm0[2,8,14],zero,xmm0[u,u,u,u,u,u,u,u,u,u,u,u]690; AVX512DQ-BW-NEXT: vpor %xmm4, %xmm5, %xmm4691; AVX512DQ-BW-NEXT: vpshufb {{.*#+}} xmm5 = zero,zero,zero,xmm1[5,u,u,u,u,u,u,u,u,u,u,u,u]692; AVX512DQ-BW-NEXT: vpshufb {{.*#+}} xmm6 = xmm0[3,9,15],zero,xmm0[u,u,u,u,u,u,u,u,u,u,u,u]693; AVX512DQ-BW-NEXT: vpor %xmm5, %xmm6, %xmm5694; AVX512DQ-BW-NEXT: vpshufb {{.*#+}} xmm6 = xmm1[0,6,u,u,u,u,u,u,u,u,u,u,u,u,u,u]695; AVX512DQ-BW-NEXT: vpshufb {{.*#+}} xmm7 = xmm0[4,10,u,u,u,u,u,u,u,u,u,u,u,u,u,u]696; AVX512DQ-BW-NEXT: vpunpcklwd {{.*#+}} xmm6 = xmm7[0],xmm6[0],xmm7[1],xmm6[1],xmm7[2],xmm6[2],xmm7[3],xmm6[3]697; AVX512DQ-BW-NEXT: vpshufb {{.*#+}} xmm1 = xmm1[1,7,u,u,u,u,u,u,u,u,u,u,u,u,u,u]698; AVX512DQ-BW-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[5,11,u,u,u,u,u,u,u,u,u,u,u,u,u,u]699; AVX512DQ-BW-NEXT: vpunpcklwd {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3]700; AVX512DQ-BW-NEXT: vmovd %xmm2, (%rsi)701; AVX512DQ-BW-NEXT: vmovd %xmm3, (%rdx)702; AVX512DQ-BW-NEXT: vmovd %xmm4, (%rcx)703; AVX512DQ-BW-NEXT: vmovd %xmm5, (%r8)704; AVX512DQ-BW-NEXT: vmovd %xmm6, (%r9)705; AVX512DQ-BW-NEXT: vmovd %xmm0, (%rax)706; AVX512DQ-BW-NEXT: retq707;708; AVX512DQ-BW-FCP-LABEL: load_i8_stride6_vf4:709; AVX512DQ-BW-FCP: # %bb.0:710; AVX512DQ-BW-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax711; AVX512DQ-BW-FCP-NEXT: vmovdqa (%rdi), %xmm0712; AVX512DQ-BW-FCP-NEXT: vmovdqa 16(%rdi), %xmm1713; AVX512DQ-BW-FCP-NEXT: vpshufb {{.*#+}} xmm2 = zero,zero,zero,xmm1[2,u,u,u,u,u,u,u,u,u,u,u,u]714; AVX512DQ-BW-FCP-NEXT: vpshufb {{.*#+}} xmm3 = xmm0[0,6,12],zero,xmm0[u,u,u,u,u,u,u,u,u,u,u,u]715; AVX512DQ-BW-FCP-NEXT: vpor %xmm2, %xmm3, %xmm2716; AVX512DQ-BW-FCP-NEXT: vpshufb {{.*#+}} xmm3 = zero,zero,zero,xmm1[3,u,u,u,u,u,u,u,u,u,u,u,u]717; AVX512DQ-BW-FCP-NEXT: vpshufb {{.*#+}} xmm4 = xmm0[1,7,13],zero,xmm0[u,u,u,u,u,u,u,u,u,u,u,u]718; AVX512DQ-BW-FCP-NEXT: vpor %xmm3, %xmm4, %xmm3719; AVX512DQ-BW-FCP-NEXT: vpshufb {{.*#+}} xmm4 = zero,zero,zero,xmm1[4,u,u,u,u,u,u,u,u,u,u,u,u]720; AVX512DQ-BW-FCP-NEXT: vpshufb {{.*#+}} xmm5 = xmm0[2,8,14],zero,xmm0[u,u,u,u,u,u,u,u,u,u,u,u]721; AVX512DQ-BW-FCP-NEXT: vpor %xmm4, %xmm5, %xmm4722; AVX512DQ-BW-FCP-NEXT: vpshufb {{.*#+}} xmm5 = zero,zero,zero,xmm1[5,u,u,u,u,u,u,u,u,u,u,u,u]723; AVX512DQ-BW-FCP-NEXT: vpshufb {{.*#+}} xmm6 = xmm0[3,9,15],zero,xmm0[u,u,u,u,u,u,u,u,u,u,u,u]724; AVX512DQ-BW-FCP-NEXT: vpor %xmm5, %xmm6, %xmm5725; AVX512DQ-BW-FCP-NEXT: vpshufb {{.*#+}} xmm6 = xmm1[0,6,u,u,u,u,u,u,u,u,u,u,u,u,u,u]726; AVX512DQ-BW-FCP-NEXT: vpshufb {{.*#+}} xmm7 = xmm0[4,10,u,u,u,u,u,u,u,u,u,u,u,u,u,u]727; AVX512DQ-BW-FCP-NEXT: vpunpcklwd {{.*#+}} xmm6 = xmm7[0],xmm6[0],xmm7[1],xmm6[1],xmm7[2],xmm6[2],xmm7[3],xmm6[3]728; AVX512DQ-BW-FCP-NEXT: vpshufb {{.*#+}} xmm1 = xmm1[1,7,u,u,u,u,u,u,u,u,u,u,u,u,u,u]729; AVX512DQ-BW-FCP-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[5,11,u,u,u,u,u,u,u,u,u,u,u,u,u,u]730; AVX512DQ-BW-FCP-NEXT: vpunpcklwd {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3]731; AVX512DQ-BW-FCP-NEXT: vmovd %xmm2, (%rsi)732; AVX512DQ-BW-FCP-NEXT: vmovd %xmm3, (%rdx)733; AVX512DQ-BW-FCP-NEXT: vmovd %xmm4, (%rcx)734; AVX512DQ-BW-FCP-NEXT: vmovd %xmm5, (%r8)735; AVX512DQ-BW-FCP-NEXT: vmovd %xmm6, (%r9)736; AVX512DQ-BW-FCP-NEXT: vmovd %xmm0, (%rax)737; AVX512DQ-BW-FCP-NEXT: retq738 %wide.vec = load <24 x i8>, ptr %in.vec, align 64739 %strided.vec0 = shufflevector <24 x i8> %wide.vec, <24 x i8> poison, <4 x i32> <i32 0, i32 6, i32 12, i32 18>740 %strided.vec1 = shufflevector <24 x i8> %wide.vec, <24 x i8> poison, <4 x i32> <i32 1, i32 7, i32 13, i32 19>741 %strided.vec2 = shufflevector <24 x i8> %wide.vec, <24 x i8> poison, <4 x i32> <i32 2, i32 8, i32 14, i32 20>742 %strided.vec3 = shufflevector <24 x i8> %wide.vec, <24 x i8> poison, <4 x i32> <i32 3, i32 9, i32 15, i32 21>743 %strided.vec4 = shufflevector <24 x i8> %wide.vec, <24 x i8> poison, <4 x i32> <i32 4, i32 10, i32 16, i32 22>744 %strided.vec5 = shufflevector <24 x i8> %wide.vec, <24 x i8> poison, <4 x i32> <i32 5, i32 11, i32 17, i32 23>745 store <4 x i8> %strided.vec0, ptr %out.vec0, align 64746 store <4 x i8> %strided.vec1, ptr %out.vec1, align 64747 store <4 x i8> %strided.vec2, ptr %out.vec2, align 64748 store <4 x i8> %strided.vec3, ptr %out.vec3, align 64749 store <4 x i8> %strided.vec4, ptr %out.vec4, align 64750 store <4 x i8> %strided.vec5, ptr %out.vec5, align 64751 ret void752}753 754define void @load_i8_stride6_vf8(ptr %in.vec, ptr %out.vec0, ptr %out.vec1, ptr %out.vec2, ptr %out.vec3, ptr %out.vec4, ptr %out.vec5) nounwind {755; SSE-LABEL: load_i8_stride6_vf8:756; SSE: # %bb.0:757; SSE-NEXT: movq {{[0-9]+}}(%rsp), %rax758; SSE-NEXT: movdqa (%rdi), %xmm2759; SSE-NEXT: movdqa 16(%rdi), %xmm1760; SSE-NEXT: movdqa 32(%rdi), %xmm0761; SSE-NEXT: movdqa {{.*#+}} xmm6 = [65535,0,65535,65535,0,65535,65535,0]762; SSE-NEXT: movdqa %xmm2, %xmm3763; SSE-NEXT: pand %xmm6, %xmm3764; SSE-NEXT: pandn %xmm1, %xmm6765; SSE-NEXT: por %xmm3, %xmm6766; SSE-NEXT: pshufd {{.*#+}} xmm4 = xmm6[0,2,1,3]767; SSE-NEXT: movdqa {{.*#+}} xmm3 = [16711935,16711935,16711935,16711935]768; SSE-NEXT: pand %xmm3, %xmm4769; SSE-NEXT: pshufhw {{.*#+}} xmm4 = xmm4[0,1,2,3,6,5,6,7]770; SSE-NEXT: pshufd {{.*#+}} xmm4 = xmm4[0,2,1,3]771; SSE-NEXT: pshuflw {{.*#+}} xmm4 = xmm4[0,3,2,1,4,5,6,7]772; SSE-NEXT: pshufhw {{.*#+}} xmm4 = xmm4[0,1,2,3,4,7,6,7]773; SSE-NEXT: packuswb %xmm4, %xmm4774; SSE-NEXT: movdqa {{.*#+}} xmm7 = [65535,65535,65535,0,65535,65535,65535,65535]775; SSE-NEXT: pand %xmm7, %xmm4776; SSE-NEXT: movdqa %xmm0, %xmm5777; SSE-NEXT: pand %xmm3, %xmm5778; SSE-NEXT: pshufd {{.*#+}} xmm8 = xmm5[0,1,2,1]779; SSE-NEXT: pshufhw {{.*#+}} xmm8 = xmm8[0,1,2,3,4,5,6,5]780; SSE-NEXT: packuswb %xmm8, %xmm8781; SSE-NEXT: movdqa %xmm7, %xmm9782; SSE-NEXT: pandn %xmm8, %xmm9783; SSE-NEXT: por %xmm4, %xmm9784; SSE-NEXT: movq %xmm9, (%rsi)785; SSE-NEXT: pxor %xmm4, %xmm4786; SSE-NEXT: movdqa %xmm6, %xmm8787; SSE-NEXT: punpckhbw {{.*#+}} xmm8 = xmm8[8],xmm4[8],xmm8[9],xmm4[9],xmm8[10],xmm4[10],xmm8[11],xmm4[11],xmm8[12],xmm4[12],xmm8[13],xmm4[13],xmm8[14],xmm4[14],xmm8[15],xmm4[15]788; SSE-NEXT: pshufd {{.*#+}} xmm8 = xmm8[2,1,0,3]789; SSE-NEXT: pshuflw {{.*#+}} xmm8 = xmm8[1,1,1,1,4,5,6,7]790; SSE-NEXT: pshufhw {{.*#+}} xmm8 = xmm8[0,1,2,3,5,7,6,7]791; SSE-NEXT: movdqa {{.*#+}} xmm9 = [65535,65535,0,65535,0,0,65535,65535]792; SSE-NEXT: punpcklbw {{.*#+}} xmm6 = 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]793; SSE-NEXT: pshuflw {{.*#+}} xmm6 = xmm6[3,1,2,3,4,5,6,7]794; SSE-NEXT: pshufd {{.*#+}} xmm6 = xmm6[0,3,2,3]795; SSE-NEXT: pshuflw {{.*#+}} xmm6 = xmm6[1,3,2,0,4,5,6,7]796; SSE-NEXT: pand %xmm9, %xmm6797; SSE-NEXT: pandn %xmm8, %xmm9798; SSE-NEXT: por %xmm6, %xmm9799; SSE-NEXT: packuswb %xmm9, %xmm9800; SSE-NEXT: pand %xmm7, %xmm9801; SSE-NEXT: movdqa %xmm0, %xmm6802; SSE-NEXT: punpckhbw {{.*#+}} xmm6 = 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]803; SSE-NEXT: punpcklbw {{.*#+}} xmm0 = xmm0[0],xmm4[0],xmm0[1],xmm4[1],xmm0[2],xmm4[2],xmm0[3],xmm4[3],xmm0[4],xmm4[4],xmm0[5],xmm4[5],xmm0[6],xmm4[6],xmm0[7],xmm4[7]804; SSE-NEXT: pshufd {{.*#+}} xmm8 = xmm0[2,2,3,3]805; SSE-NEXT: punpcklwd {{.*#+}} xmm8 = xmm8[0],xmm6[0],xmm8[1],xmm6[1],xmm8[2],xmm6[2],xmm8[3],xmm6[3]806; SSE-NEXT: packuswb %xmm8, %xmm8807; SSE-NEXT: pandn %xmm8, %xmm7808; SSE-NEXT: por %xmm9, %xmm7809; SSE-NEXT: movq %xmm7, (%rdx)810; SSE-NEXT: movdqa {{.*#+}} xmm8 = [65535,65535,0,65535,65535,0,65535,65535]811; SSE-NEXT: movdqa %xmm8, %xmm7812; SSE-NEXT: pandn %xmm1, %xmm7813; SSE-NEXT: movdqa %xmm2, %xmm9814; SSE-NEXT: pand %xmm8, %xmm9815; SSE-NEXT: por %xmm7, %xmm9816; SSE-NEXT: pshuflw {{.*#+}} xmm7 = xmm9[2,1,2,3,4,5,6,7]817; SSE-NEXT: pshufhw {{.*#+}} xmm7 = xmm7[0,1,2,3,4,5,4,7]818; SSE-NEXT: pand %xmm3, %xmm7819; SSE-NEXT: pshufd {{.*#+}} xmm7 = xmm7[0,3,2,3]820; SSE-NEXT: pshuflw {{.*#+}} xmm7 = xmm7[1,2,3,0,4,5,6,7]821; SSE-NEXT: pshufhw {{.*#+}} xmm10 = xmm7[0,1,2,3,5,5,5,5]822; SSE-NEXT: packuswb %xmm10, %xmm10823; SSE-NEXT: movdqa {{.*#+}} xmm7 = [255,255,255,255,255,0,0,0,255,255,255,255,255,255,255,255]824; SSE-NEXT: pand %xmm7, %xmm10825; SSE-NEXT: pshuflw {{.*#+}} xmm11 = xmm5[0,3,2,3,4,5,6,7]826; SSE-NEXT: pshufd {{.*#+}} xmm11 = xmm11[0,1,0,3]827; SSE-NEXT: pshufhw {{.*#+}} xmm11 = xmm11[0,1,2,3,4,4,5,6]828; SSE-NEXT: packuswb %xmm11, %xmm11829; SSE-NEXT: movdqa %xmm7, %xmm12830; SSE-NEXT: pandn %xmm11, %xmm12831; SSE-NEXT: por %xmm10, %xmm12832; SSE-NEXT: movq %xmm12, (%rcx)833; SSE-NEXT: movdqa %xmm9, %xmm10834; SSE-NEXT: punpcklbw {{.*#+}} xmm10 = xmm10[0],xmm4[0],xmm10[1],xmm4[1],xmm10[2],xmm4[2],xmm10[3],xmm4[3],xmm10[4],xmm4[4],xmm10[5],xmm4[5],xmm10[6],xmm4[6],xmm10[7],xmm4[7]835; SSE-NEXT: pshufd {{.*#+}} xmm10 = xmm10[2,1,2,3]836; SSE-NEXT: pshuflw {{.*#+}} xmm10 = xmm10[3,1,2,1,4,5,6,7]837; SSE-NEXT: movdqa {{.*#+}} xmm11 = [0,65535,65535,0,65535,65535,65535,65535]838; SSE-NEXT: punpckhbw {{.*#+}} xmm9 = xmm9[8],xmm4[8],xmm9[9],xmm4[9],xmm9[10],xmm4[10],xmm9[11],xmm4[11],xmm9[12],xmm4[12],xmm9[13],xmm4[13],xmm9[14],xmm4[14],xmm9[15],xmm4[15]839; SSE-NEXT: pshufd {{.*#+}} xmm9 = xmm9[0,3,2,1]840; SSE-NEXT: pshuflw {{.*#+}} xmm9 = xmm9[0,1,3,3,4,5,6,7]841; SSE-NEXT: pshufhw {{.*#+}} xmm9 = xmm9[0,1,2,3,7,7,7,7]842; SSE-NEXT: pand %xmm11, %xmm9843; SSE-NEXT: pandn %xmm10, %xmm11844; SSE-NEXT: por %xmm9, %xmm11845; SSE-NEXT: packuswb %xmm11, %xmm11846; SSE-NEXT: pand %xmm7, %xmm11847; SSE-NEXT: movdqa %xmm6, %xmm9848; SSE-NEXT: shufps {{.*#+}} xmm9 = xmm9[2,0],xmm0[3,0]849; SSE-NEXT: movaps %xmm0, %xmm10850; SSE-NEXT: shufps {{.*#+}} xmm10 = xmm10[0,1],xmm9[0,2]851; SSE-NEXT: pshufhw {{.*#+}} xmm9 = xmm10[0,1,2,3,7,5,6,7]852; SSE-NEXT: pshufd {{.*#+}} xmm9 = xmm9[0,1,0,2]853; SSE-NEXT: packuswb %xmm9, %xmm9854; SSE-NEXT: movdqa %xmm7, %xmm10855; SSE-NEXT: pandn %xmm9, %xmm10856; SSE-NEXT: por %xmm11, %xmm10857; SSE-NEXT: movq %xmm10, (%r8)858; SSE-NEXT: pand %xmm8, %xmm1859; SSE-NEXT: pandn %xmm2, %xmm8860; SSE-NEXT: por %xmm1, %xmm8861; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm8[3,1,2,0]862; SSE-NEXT: pand %xmm3, %xmm1863; SSE-NEXT: pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,6,5,6,7]864; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[2,1,0,3]865; SSE-NEXT: pshuflw {{.*#+}} xmm1 = xmm1[2,1,0,3,4,5,6,7]866; SSE-NEXT: packuswb %xmm1, %xmm1867; SSE-NEXT: pand %xmm7, %xmm1868; SSE-NEXT: pshufhw {{.*#+}} xmm2 = xmm5[0,1,2,3,4,7,6,7]869; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm2[0,1,0,2]870; SSE-NEXT: packuswb %xmm2, %xmm2871; SSE-NEXT: movdqa %xmm7, %xmm3872; SSE-NEXT: pandn %xmm2, %xmm3873; SSE-NEXT: por %xmm1, %xmm3874; SSE-NEXT: movq %xmm3, (%r9)875; SSE-NEXT: movdqa %xmm8, %xmm1876; SSE-NEXT: punpckhbw {{.*#+}} xmm1 = xmm1[8],xmm4[8],xmm1[9],xmm4[9],xmm1[10],xmm4[10],xmm1[11],xmm4[11],xmm1[12],xmm4[12],xmm1[13],xmm4[13],xmm1[14],xmm4[14],xmm1[15],xmm4[15]877; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[1,1,2,3]878; SSE-NEXT: pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,5,5,5,5]879; SSE-NEXT: movdqa {{.*#+}} xmm2 = [65535,0,65535,65535,0,65535,65535,65535]880; SSE-NEXT: punpcklbw {{.*#+}} xmm8 = 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]881; SSE-NEXT: pshufhw {{.*#+}} xmm3 = xmm8[0,1,2,3,7,5,6,7]882; SSE-NEXT: pshufd {{.*#+}} xmm3 = xmm3[0,2,2,3]883; SSE-NEXT: pshuflw {{.*#+}} xmm3 = xmm3[3,1,1,2,4,5,6,7]884; SSE-NEXT: pand %xmm2, %xmm3885; SSE-NEXT: pandn %xmm1, %xmm2886; SSE-NEXT: por %xmm3, %xmm2887; SSE-NEXT: packuswb %xmm2, %xmm2888; SSE-NEXT: pand %xmm7, %xmm2889; SSE-NEXT: shufps {{.*#+}} xmm0 = xmm0[1,0],xmm6[0,0]890; SSE-NEXT: shufps {{.*#+}} xmm0 = xmm0[2,0],xmm6[2,3]891; SSE-NEXT: pshuflw {{.*#+}} xmm0 = xmm0[3,1,2,3,4,5,6,7]892; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,1,0,3]893; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,4,5,7]894; SSE-NEXT: packuswb %xmm0, %xmm0895; SSE-NEXT: pandn %xmm0, %xmm7896; SSE-NEXT: por %xmm2, %xmm7897; SSE-NEXT: movq %xmm7, (%rax)898; SSE-NEXT: retq899;900; AVX-LABEL: load_i8_stride6_vf8:901; AVX: # %bb.0:902; AVX-NEXT: movq {{[0-9]+}}(%rsp), %rax903; AVX-NEXT: vmovdqa (%rdi), %xmm1904; AVX-NEXT: vmovdqa 16(%rdi), %xmm2905; AVX-NEXT: vmovdqa 32(%rdi), %xmm0906; AVX-NEXT: vpshufb {{.*#+}} xmm3 = zero,zero,zero,xmm2[2,8,14,u,u,u,u,u,u,u,u,u,u]907; AVX-NEXT: vpshufb {{.*#+}} xmm4 = xmm1[0,6,12],zero,zero,zero,xmm1[u,u,u,u,u,u,u,u,u,u]908; AVX-NEXT: vpor %xmm3, %xmm4, %xmm3909; AVX-NEXT: vpxor %xmm4, %xmm4, %xmm4910; AVX-NEXT: vpblendw {{.*#+}} xmm3 = xmm3[0,1,2],xmm4[3],xmm3[4,5,6,7]911; AVX-NEXT: vpshufb {{.*#+}} xmm5 = zero,zero,zero,zero,zero,zero,xmm0[4,10,u,u,u,u,u,u,u,u]912; AVX-NEXT: vpor %xmm5, %xmm3, %xmm3913; AVX-NEXT: vmovq %xmm3, (%rsi)914; AVX-NEXT: vpshufb {{.*#+}} xmm3 = zero,zero,zero,xmm2[3,9,15,u,u,u,u,u,u,u,u,u,u]915; AVX-NEXT: vpshufb {{.*#+}} xmm5 = xmm1[1,7,13],zero,zero,zero,xmm1[u,u,u,u,u,u,u,u,u,u]916; AVX-NEXT: vpor %xmm3, %xmm5, %xmm3917; AVX-NEXT: vpblendw {{.*#+}} xmm3 = xmm3[0,1,2],xmm4[3],xmm3[4,5,6,7]918; AVX-NEXT: vpshufb {{.*#+}} xmm4 = zero,zero,zero,zero,zero,zero,xmm0[5,11,u,u,u,u,u,u,u,u]919; AVX-NEXT: vpor %xmm4, %xmm3, %xmm3920; AVX-NEXT: vmovq %xmm3, (%rdx)921; AVX-NEXT: vpshufb {{.*#+}} xmm3 = zero,zero,zero,xmm2[4,10,u,u,u,u,u,u,u,u,u,u,u]922; AVX-NEXT: vpshufb {{.*#+}} xmm4 = xmm1[2,8,14],zero,zero,xmm1[u,u,u,u,u,u,u,u,u,u,u]923; AVX-NEXT: vpor %xmm3, %xmm4, %xmm3924; AVX-NEXT: vmovq {{.*#+}} xmm4 = [0,1,2,3,4,128,128,128,0,0,0,0,0,0,0,0]925; AVX-NEXT: vpshufb %xmm4, %xmm3, %xmm3926; AVX-NEXT: vpshufb {{.*#+}} xmm5 = zero,zero,zero,zero,zero,xmm0[0,6,12,u,u,u,u,u,u,u,u]927; AVX-NEXT: vpor %xmm5, %xmm3, %xmm3928; AVX-NEXT: vmovq %xmm3, (%rcx)929; AVX-NEXT: vpshufb {{.*#+}} xmm3 = zero,zero,zero,xmm2[5,11,u,u,u,u,u,u,u,u,u,u,u]930; AVX-NEXT: vpshufb {{.*#+}} xmm5 = xmm1[3,9,15],zero,zero,xmm1[u,u,u,u,u,u,u,u,u,u,u]931; AVX-NEXT: vpor %xmm3, %xmm5, %xmm3932; AVX-NEXT: vpshufb %xmm4, %xmm3, %xmm3933; AVX-NEXT: vpshufb {{.*#+}} xmm5 = zero,zero,zero,zero,zero,xmm0[1,7,13,u,u,u,u,u,u,u,u]934; AVX-NEXT: vpor %xmm5, %xmm3, %xmm3935; AVX-NEXT: vmovq %xmm3, (%r8)936; AVX-NEXT: vpshufb {{.*#+}} xmm3 = xmm1[4,10],zero,zero,zero,xmm1[u,u,u,u,u,u,u,u,u,u,u]937; AVX-NEXT: vpshufb {{.*#+}} xmm5 = zero,zero,xmm2[0,6,12,u,u,u,u,u,u,u,u,u,u,u]938; AVX-NEXT: vpor %xmm3, %xmm5, %xmm3939; AVX-NEXT: vpshufb %xmm4, %xmm3, %xmm3940; AVX-NEXT: vpshufb {{.*#+}} xmm5 = zero,zero,zero,zero,zero,xmm0[2,8,14,u,u,u,u,u,u,u,u]941; AVX-NEXT: vpor %xmm5, %xmm3, %xmm3942; AVX-NEXT: vmovq %xmm3, (%r9)943; AVX-NEXT: vpshufb {{.*#+}} xmm1 = xmm1[5,11],zero,zero,zero,xmm1[u,u,u,u,u,u,u,u,u,u,u]944; AVX-NEXT: vpshufb {{.*#+}} xmm2 = zero,zero,xmm2[1,7,13,u,u,u,u,u,u,u,u,u,u,u]945; AVX-NEXT: vpor %xmm1, %xmm2, %xmm1946; AVX-NEXT: vpshufb %xmm4, %xmm1, %xmm1947; AVX-NEXT: vpshufb {{.*#+}} xmm0 = zero,zero,zero,zero,zero,xmm0[3,9,15,u,u,u,u,u,u,u,u]948; AVX-NEXT: vpor %xmm0, %xmm1, %xmm0949; AVX-NEXT: vmovq %xmm0, (%rax)950; AVX-NEXT: retq951;952; AVX2-LABEL: load_i8_stride6_vf8:953; AVX2: # %bb.0:954; AVX2-NEXT: movq {{[0-9]+}}(%rsp), %rax955; AVX2-NEXT: vmovdqa (%rdi), %ymm0956; AVX2-NEXT: vmovdqa 32(%rdi), %ymm1957; AVX2-NEXT: vpblendw {{.*#+}} ymm2 = ymm0[0,1],ymm1[2],ymm0[3,4],ymm1[5],ymm0[6,7,8,9],ymm1[10],ymm0[11,12],ymm1[13],ymm0[14,15]958; AVX2-NEXT: vextracti128 $1, %ymm2, %xmm3959; AVX2-NEXT: vpshufb {{.*#+}} xmm4 = zero,zero,zero,xmm3[2,8,14],zero,zero,xmm3[u,u,u,u,u,u,u,u]960; AVX2-NEXT: vpshufb {{.*#+}} xmm5 = xmm2[0,6,12],zero,zero,zero,xmm2[4,10,u,u,u,u,u,u,u,u]961; AVX2-NEXT: vpor %xmm4, %xmm5, %xmm4962; AVX2-NEXT: vmovq %xmm4, (%rsi)963; AVX2-NEXT: vpshufb {{.*#+}} xmm3 = zero,zero,zero,xmm3[3,9,15],zero,zero,xmm3[u,u,u,u,u,u,u,u]964; AVX2-NEXT: vpshufb {{.*#+}} xmm2 = xmm2[1,7,13],zero,zero,zero,xmm2[5,11,u,u,u,u,u,u,u,u]965; AVX2-NEXT: vpor %xmm3, %xmm2, %xmm2966; AVX2-NEXT: vmovq %xmm2, (%rdx)967; AVX2-NEXT: vpblendw {{.*#+}} ymm2 = ymm1[0],ymm0[1,2],ymm1[3],ymm0[4,5],ymm1[6],ymm0[7],ymm1[8],ymm0[9,10],ymm1[11],ymm0[12,13],ymm1[14],ymm0[15]968; AVX2-NEXT: vextracti128 $1, %ymm2, %xmm3969; AVX2-NEXT: vpshufb {{.*#+}} xmm4 = zero,zero,zero,xmm3[4,10],zero,zero,zero,xmm3[u,u,u,u,u,u,u,u]970; AVX2-NEXT: vpshufb {{.*#+}} xmm5 = xmm2[2,8,14],zero,zero,xmm2[0,6,12,u,u,u,u,u,u,u,u]971; AVX2-NEXT: vpor %xmm4, %xmm5, %xmm4972; AVX2-NEXT: vmovq %xmm4, (%rcx)973; AVX2-NEXT: vpshufb {{.*#+}} xmm3 = zero,zero,zero,xmm3[5,11],zero,zero,zero,xmm3[u,u,u,u,u,u,u,u]974; AVX2-NEXT: vpshufb {{.*#+}} xmm2 = xmm2[3,9,15],zero,zero,xmm2[1,7,13,u,u,u,u,u,u,u,u]975; AVX2-NEXT: vpor %xmm3, %xmm2, %xmm2976; AVX2-NEXT: vmovq %xmm2, (%r8)977; AVX2-NEXT: vpblendw {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2,3],ymm1[4],ymm0[5,6],ymm1[7],ymm0[8],ymm1[9],ymm0[10,11],ymm1[12],ymm0[13,14],ymm1[15]978; AVX2-NEXT: vextracti128 $1, %ymm0, %xmm1979; AVX2-NEXT: vpshufb {{.*#+}} xmm2 = zero,zero,xmm1[0,6,12],zero,zero,zero,xmm1[u,u,u,u,u,u,u,u]980; AVX2-NEXT: vpshufb {{.*#+}} xmm3 = xmm0[4,10],zero,zero,zero,xmm0[2,8,14,u,u,u,u,u,u,u,u]981; AVX2-NEXT: vpor %xmm2, %xmm3, %xmm2982; AVX2-NEXT: vmovq %xmm2, (%r9)983; AVX2-NEXT: vpshufb {{.*#+}} xmm1 = zero,zero,xmm1[1,7,13],zero,zero,zero,xmm1[u,u,u,u,u,u,u,u]984; AVX2-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[5,11],zero,zero,zero,xmm0[3,9,15,u,u,u,u,u,u,u,u]985; AVX2-NEXT: vpor %xmm1, %xmm0, %xmm0986; AVX2-NEXT: vmovq %xmm0, (%rax)987; AVX2-NEXT: vzeroupper988; AVX2-NEXT: retq989;990; AVX2-FP-LABEL: load_i8_stride6_vf8:991; AVX2-FP: # %bb.0:992; AVX2-FP-NEXT: movq {{[0-9]+}}(%rsp), %rax993; AVX2-FP-NEXT: vmovdqa (%rdi), %ymm0994; AVX2-FP-NEXT: vmovdqa 32(%rdi), %ymm1995; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm2 = ymm0[0,1],ymm1[2],ymm0[3,4],ymm1[5],ymm0[6,7,8,9],ymm1[10],ymm0[11,12],ymm1[13],ymm0[14,15]996; AVX2-FP-NEXT: vextracti128 $1, %ymm2, %xmm3997; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm4 = zero,zero,zero,xmm3[2,8,14],zero,zero,xmm3[u,u,u,u,u,u,u,u]998; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm5 = xmm2[0,6,12],zero,zero,zero,xmm2[4,10,u,u,u,u,u,u,u,u]999; AVX2-FP-NEXT: vpor %xmm4, %xmm5, %xmm41000; AVX2-FP-NEXT: vmovq %xmm4, (%rsi)1001; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm3 = zero,zero,zero,xmm3[3,9,15],zero,zero,xmm3[u,u,u,u,u,u,u,u]1002; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm2 = xmm2[1,7,13],zero,zero,zero,xmm2[5,11,u,u,u,u,u,u,u,u]1003; AVX2-FP-NEXT: vpor %xmm3, %xmm2, %xmm21004; AVX2-FP-NEXT: vmovq %xmm2, (%rdx)1005; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm2 = ymm1[0],ymm0[1,2],ymm1[3],ymm0[4,5],ymm1[6],ymm0[7],ymm1[8],ymm0[9,10],ymm1[11],ymm0[12,13],ymm1[14],ymm0[15]1006; AVX2-FP-NEXT: vextracti128 $1, %ymm2, %xmm31007; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm4 = zero,zero,zero,xmm3[4,10],zero,zero,zero,xmm3[u,u,u,u,u,u,u,u]1008; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm5 = xmm2[2,8,14],zero,zero,xmm2[0,6,12,u,u,u,u,u,u,u,u]1009; AVX2-FP-NEXT: vpor %xmm4, %xmm5, %xmm41010; AVX2-FP-NEXT: vmovq %xmm4, (%rcx)1011; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm3 = zero,zero,zero,xmm3[5,11],zero,zero,zero,xmm3[u,u,u,u,u,u,u,u]1012; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm2 = xmm2[3,9,15],zero,zero,xmm2[1,7,13,u,u,u,u,u,u,u,u]1013; AVX2-FP-NEXT: vpor %xmm3, %xmm2, %xmm21014; AVX2-FP-NEXT: vmovq %xmm2, (%r8)1015; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2,3],ymm1[4],ymm0[5,6],ymm1[7],ymm0[8],ymm1[9],ymm0[10,11],ymm1[12],ymm0[13,14],ymm1[15]1016; AVX2-FP-NEXT: vextracti128 $1, %ymm0, %xmm11017; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm2 = zero,zero,xmm1[0,6,12],zero,zero,zero,xmm1[u,u,u,u,u,u,u,u]1018; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm3 = xmm0[4,10],zero,zero,zero,xmm0[2,8,14,u,u,u,u,u,u,u,u]1019; AVX2-FP-NEXT: vpor %xmm2, %xmm3, %xmm21020; AVX2-FP-NEXT: vmovq %xmm2, (%r9)1021; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm1 = zero,zero,xmm1[1,7,13],zero,zero,zero,xmm1[u,u,u,u,u,u,u,u]1022; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[5,11],zero,zero,zero,xmm0[3,9,15,u,u,u,u,u,u,u,u]1023; AVX2-FP-NEXT: vpor %xmm1, %xmm0, %xmm01024; AVX2-FP-NEXT: vmovq %xmm0, (%rax)1025; AVX2-FP-NEXT: vzeroupper1026; AVX2-FP-NEXT: retq1027;1028; AVX2-FCP-LABEL: load_i8_stride6_vf8:1029; AVX2-FCP: # %bb.0:1030; AVX2-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax1031; AVX2-FCP-NEXT: vmovdqa (%rdi), %ymm01032; AVX2-FCP-NEXT: vmovdqa 32(%rdi), %ymm11033; AVX2-FCP-NEXT: vpblendw {{.*#+}} ymm2 = ymm0[0,1],ymm1[2],ymm0[3,4],ymm1[5],ymm0[6,7,8,9],ymm1[10],ymm0[11,12],ymm1[13],ymm0[14,15]1034; AVX2-FCP-NEXT: vextracti128 $1, %ymm2, %xmm31035; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm4 = zero,zero,zero,xmm3[2,8,14],zero,zero,xmm3[u,u,u,u,u,u,u,u]1036; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm5 = xmm2[0,6,12],zero,zero,zero,xmm2[4,10,u,u,u,u,u,u,u,u]1037; AVX2-FCP-NEXT: vpor %xmm4, %xmm5, %xmm41038; AVX2-FCP-NEXT: vmovq %xmm4, (%rsi)1039; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm3 = zero,zero,zero,xmm3[3,9,15],zero,zero,xmm3[u,u,u,u,u,u,u,u]1040; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm2 = xmm2[1,7,13],zero,zero,zero,xmm2[5,11,u,u,u,u,u,u,u,u]1041; AVX2-FCP-NEXT: vpor %xmm3, %xmm2, %xmm21042; AVX2-FCP-NEXT: vmovq %xmm2, (%rdx)1043; AVX2-FCP-NEXT: vpblendw {{.*#+}} ymm2 = ymm1[0],ymm0[1,2],ymm1[3],ymm0[4,5],ymm1[6],ymm0[7],ymm1[8],ymm0[9,10],ymm1[11],ymm0[12,13],ymm1[14],ymm0[15]1044; AVX2-FCP-NEXT: vextracti128 $1, %ymm2, %xmm31045; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm4 = zero,zero,zero,xmm3[4,10],zero,zero,zero,xmm3[u,u,u,u,u,u,u,u]1046; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm5 = xmm2[2,8,14],zero,zero,xmm2[0,6,12,u,u,u,u,u,u,u,u]1047; AVX2-FCP-NEXT: vpor %xmm4, %xmm5, %xmm41048; AVX2-FCP-NEXT: vmovq %xmm4, (%rcx)1049; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm3 = zero,zero,zero,xmm3[5,11],zero,zero,zero,xmm3[u,u,u,u,u,u,u,u]1050; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm2 = xmm2[3,9,15],zero,zero,xmm2[1,7,13,u,u,u,u,u,u,u,u]1051; AVX2-FCP-NEXT: vpor %xmm3, %xmm2, %xmm21052; AVX2-FCP-NEXT: vmovq %xmm2, (%r8)1053; AVX2-FCP-NEXT: vpblendw {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2,3],ymm1[4],ymm0[5,6],ymm1[7],ymm0[8],ymm1[9],ymm0[10,11],ymm1[12],ymm0[13,14],ymm1[15]1054; AVX2-FCP-NEXT: vextracti128 $1, %ymm0, %xmm11055; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm2 = zero,zero,xmm1[0,6,12],zero,zero,zero,xmm1[u,u,u,u,u,u,u,u]1056; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm3 = xmm0[4,10],zero,zero,zero,xmm0[2,8,14,u,u,u,u,u,u,u,u]1057; AVX2-FCP-NEXT: vpor %xmm2, %xmm3, %xmm21058; AVX2-FCP-NEXT: vmovq %xmm2, (%r9)1059; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm1 = zero,zero,xmm1[1,7,13],zero,zero,zero,xmm1[u,u,u,u,u,u,u,u]1060; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[5,11],zero,zero,zero,xmm0[3,9,15,u,u,u,u,u,u,u,u]1061; AVX2-FCP-NEXT: vpor %xmm1, %xmm0, %xmm01062; AVX2-FCP-NEXT: vmovq %xmm0, (%rax)1063; AVX2-FCP-NEXT: vzeroupper1064; AVX2-FCP-NEXT: retq1065;1066; AVX512-LABEL: load_i8_stride6_vf8:1067; AVX512: # %bb.0:1068; AVX512-NEXT: movq {{[0-9]+}}(%rsp), %rax1069; AVX512-NEXT: vmovdqa (%rdi), %ymm01070; AVX512-NEXT: vmovdqa 32(%rdi), %ymm11071; AVX512-NEXT: vpblendw {{.*#+}} ymm2 = ymm0[0,1],ymm1[2],ymm0[3,4],ymm1[5],ymm0[6,7,8,9],ymm1[10],ymm0[11,12],ymm1[13],ymm0[14,15]1072; AVX512-NEXT: vextracti128 $1, %ymm2, %xmm31073; AVX512-NEXT: vpshufb {{.*#+}} xmm4 = zero,zero,zero,xmm3[2,8,14],zero,zero,xmm3[u,u,u,u,u,u,u,u]1074; AVX512-NEXT: vpshufb {{.*#+}} xmm5 = xmm2[0,6,12],zero,zero,zero,xmm2[4,10,u,u,u,u,u,u,u,u]1075; AVX512-NEXT: vpor %xmm4, %xmm5, %xmm41076; AVX512-NEXT: vmovq %xmm4, (%rsi)1077; AVX512-NEXT: vpshufb {{.*#+}} xmm3 = zero,zero,zero,xmm3[3,9,15],zero,zero,xmm3[u,u,u,u,u,u,u,u]1078; AVX512-NEXT: vpshufb {{.*#+}} xmm2 = xmm2[1,7,13],zero,zero,zero,xmm2[5,11,u,u,u,u,u,u,u,u]1079; AVX512-NEXT: vpor %xmm3, %xmm2, %xmm21080; AVX512-NEXT: vmovq %xmm2, (%rdx)1081; AVX512-NEXT: vpblendw {{.*#+}} ymm2 = ymm1[0],ymm0[1,2],ymm1[3],ymm0[4,5],ymm1[6],ymm0[7],ymm1[8],ymm0[9,10],ymm1[11],ymm0[12,13],ymm1[14],ymm0[15]1082; AVX512-NEXT: vextracti128 $1, %ymm2, %xmm31083; AVX512-NEXT: vpshufb {{.*#+}} xmm4 = zero,zero,zero,xmm3[4,10],zero,zero,zero,xmm3[u,u,u,u,u,u,u,u]1084; AVX512-NEXT: vpshufb {{.*#+}} xmm5 = xmm2[2,8,14],zero,zero,xmm2[0,6,12,u,u,u,u,u,u,u,u]1085; AVX512-NEXT: vpor %xmm4, %xmm5, %xmm41086; AVX512-NEXT: vmovq %xmm4, (%rcx)1087; AVX512-NEXT: vpshufb {{.*#+}} xmm3 = zero,zero,zero,xmm3[5,11],zero,zero,zero,xmm3[u,u,u,u,u,u,u,u]1088; AVX512-NEXT: vpshufb {{.*#+}} xmm2 = xmm2[3,9,15],zero,zero,xmm2[1,7,13,u,u,u,u,u,u,u,u]1089; AVX512-NEXT: vpor %xmm3, %xmm2, %xmm21090; AVX512-NEXT: vmovq %xmm2, (%r8)1091; AVX512-NEXT: vpblendw {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2,3],ymm1[4],ymm0[5,6],ymm1[7],ymm0[8],ymm1[9],ymm0[10,11],ymm1[12],ymm0[13,14],ymm1[15]1092; AVX512-NEXT: vextracti128 $1, %ymm0, %xmm11093; AVX512-NEXT: vpshufb {{.*#+}} xmm2 = zero,zero,xmm1[0,6,12],zero,zero,zero,xmm1[u,u,u,u,u,u,u,u]1094; AVX512-NEXT: vpshufb {{.*#+}} xmm3 = xmm0[4,10],zero,zero,zero,xmm0[2,8,14,u,u,u,u,u,u,u,u]1095; AVX512-NEXT: vpor %xmm2, %xmm3, %xmm21096; AVX512-NEXT: vmovq %xmm2, (%r9)1097; AVX512-NEXT: vpshufb {{.*#+}} xmm1 = zero,zero,xmm1[1,7,13],zero,zero,zero,xmm1[u,u,u,u,u,u,u,u]1098; AVX512-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[5,11],zero,zero,zero,xmm0[3,9,15,u,u,u,u,u,u,u,u]1099; AVX512-NEXT: vpor %xmm1, %xmm0, %xmm01100; AVX512-NEXT: vmovq %xmm0, (%rax)1101; AVX512-NEXT: vzeroupper1102; AVX512-NEXT: retq1103;1104; AVX512-FCP-LABEL: load_i8_stride6_vf8:1105; AVX512-FCP: # %bb.0:1106; AVX512-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax1107; AVX512-FCP-NEXT: vmovdqa (%rdi), %ymm01108; AVX512-FCP-NEXT: vmovdqa 32(%rdi), %ymm11109; AVX512-FCP-NEXT: vpblendw {{.*#+}} ymm2 = ymm0[0,1],ymm1[2],ymm0[3,4],ymm1[5],ymm0[6,7,8,9],ymm1[10],ymm0[11,12],ymm1[13],ymm0[14,15]1110; AVX512-FCP-NEXT: vextracti128 $1, %ymm2, %xmm31111; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm4 = zero,zero,zero,xmm3[2,8,14],zero,zero,xmm3[u,u,u,u,u,u,u,u]1112; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm5 = xmm2[0,6,12],zero,zero,zero,xmm2[4,10,u,u,u,u,u,u,u,u]1113; AVX512-FCP-NEXT: vpor %xmm4, %xmm5, %xmm41114; AVX512-FCP-NEXT: vmovq %xmm4, (%rsi)1115; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm3 = zero,zero,zero,xmm3[3,9,15],zero,zero,xmm3[u,u,u,u,u,u,u,u]1116; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm2 = xmm2[1,7,13],zero,zero,zero,xmm2[5,11,u,u,u,u,u,u,u,u]1117; AVX512-FCP-NEXT: vpor %xmm3, %xmm2, %xmm21118; AVX512-FCP-NEXT: vmovq %xmm2, (%rdx)1119; AVX512-FCP-NEXT: vpblendw {{.*#+}} ymm2 = ymm1[0],ymm0[1,2],ymm1[3],ymm0[4,5],ymm1[6],ymm0[7],ymm1[8],ymm0[9,10],ymm1[11],ymm0[12,13],ymm1[14],ymm0[15]1120; AVX512-FCP-NEXT: vextracti128 $1, %ymm2, %xmm31121; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm4 = zero,zero,zero,xmm3[4,10],zero,zero,zero,xmm3[u,u,u,u,u,u,u,u]1122; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm5 = xmm2[2,8,14],zero,zero,xmm2[0,6,12,u,u,u,u,u,u,u,u]1123; AVX512-FCP-NEXT: vpor %xmm4, %xmm5, %xmm41124; AVX512-FCP-NEXT: vmovq %xmm4, (%rcx)1125; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm3 = zero,zero,zero,xmm3[5,11],zero,zero,zero,xmm3[u,u,u,u,u,u,u,u]1126; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm2 = xmm2[3,9,15],zero,zero,xmm2[1,7,13,u,u,u,u,u,u,u,u]1127; AVX512-FCP-NEXT: vpor %xmm3, %xmm2, %xmm21128; AVX512-FCP-NEXT: vmovq %xmm2, (%r8)1129; AVX512-FCP-NEXT: vpblendw {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2,3],ymm1[4],ymm0[5,6],ymm1[7],ymm0[8],ymm1[9],ymm0[10,11],ymm1[12],ymm0[13,14],ymm1[15]1130; AVX512-FCP-NEXT: vextracti128 $1, %ymm0, %xmm11131; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm2 = zero,zero,xmm1[0,6,12],zero,zero,zero,xmm1[u,u,u,u,u,u,u,u]1132; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm3 = xmm0[4,10],zero,zero,zero,xmm0[2,8,14,u,u,u,u,u,u,u,u]1133; AVX512-FCP-NEXT: vpor %xmm2, %xmm3, %xmm21134; AVX512-FCP-NEXT: vmovq %xmm2, (%r9)1135; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm1 = zero,zero,xmm1[1,7,13],zero,zero,zero,xmm1[u,u,u,u,u,u,u,u]1136; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[5,11],zero,zero,zero,xmm0[3,9,15,u,u,u,u,u,u,u,u]1137; AVX512-FCP-NEXT: vpor %xmm1, %xmm0, %xmm01138; AVX512-FCP-NEXT: vmovq %xmm0, (%rax)1139; AVX512-FCP-NEXT: vzeroupper1140; AVX512-FCP-NEXT: retq1141;1142; AVX512DQ-LABEL: load_i8_stride6_vf8:1143; AVX512DQ: # %bb.0:1144; AVX512DQ-NEXT: movq {{[0-9]+}}(%rsp), %rax1145; AVX512DQ-NEXT: vmovdqa (%rdi), %ymm01146; AVX512DQ-NEXT: vmovdqa 32(%rdi), %ymm11147; AVX512DQ-NEXT: vpblendw {{.*#+}} ymm2 = ymm0[0,1],ymm1[2],ymm0[3,4],ymm1[5],ymm0[6,7,8,9],ymm1[10],ymm0[11,12],ymm1[13],ymm0[14,15]1148; AVX512DQ-NEXT: vextracti128 $1, %ymm2, %xmm31149; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm4 = zero,zero,zero,xmm3[2,8,14],zero,zero,xmm3[u,u,u,u,u,u,u,u]1150; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm5 = xmm2[0,6,12],zero,zero,zero,xmm2[4,10,u,u,u,u,u,u,u,u]1151; AVX512DQ-NEXT: vpor %xmm4, %xmm5, %xmm41152; AVX512DQ-NEXT: vmovq %xmm4, (%rsi)1153; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm3 = zero,zero,zero,xmm3[3,9,15],zero,zero,xmm3[u,u,u,u,u,u,u,u]1154; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm2 = xmm2[1,7,13],zero,zero,zero,xmm2[5,11,u,u,u,u,u,u,u,u]1155; AVX512DQ-NEXT: vpor %xmm3, %xmm2, %xmm21156; AVX512DQ-NEXT: vmovq %xmm2, (%rdx)1157; AVX512DQ-NEXT: vpblendw {{.*#+}} ymm2 = ymm1[0],ymm0[1,2],ymm1[3],ymm0[4,5],ymm1[6],ymm0[7],ymm1[8],ymm0[9,10],ymm1[11],ymm0[12,13],ymm1[14],ymm0[15]1158; AVX512DQ-NEXT: vextracti128 $1, %ymm2, %xmm31159; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm4 = zero,zero,zero,xmm3[4,10],zero,zero,zero,xmm3[u,u,u,u,u,u,u,u]1160; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm5 = xmm2[2,8,14],zero,zero,xmm2[0,6,12,u,u,u,u,u,u,u,u]1161; AVX512DQ-NEXT: vpor %xmm4, %xmm5, %xmm41162; AVX512DQ-NEXT: vmovq %xmm4, (%rcx)1163; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm3 = zero,zero,zero,xmm3[5,11],zero,zero,zero,xmm3[u,u,u,u,u,u,u,u]1164; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm2 = xmm2[3,9,15],zero,zero,xmm2[1,7,13,u,u,u,u,u,u,u,u]1165; AVX512DQ-NEXT: vpor %xmm3, %xmm2, %xmm21166; AVX512DQ-NEXT: vmovq %xmm2, (%r8)1167; AVX512DQ-NEXT: vpblendw {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2,3],ymm1[4],ymm0[5,6],ymm1[7],ymm0[8],ymm1[9],ymm0[10,11],ymm1[12],ymm0[13,14],ymm1[15]1168; AVX512DQ-NEXT: vextracti128 $1, %ymm0, %xmm11169; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm2 = zero,zero,xmm1[0,6,12],zero,zero,zero,xmm1[u,u,u,u,u,u,u,u]1170; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm3 = xmm0[4,10],zero,zero,zero,xmm0[2,8,14,u,u,u,u,u,u,u,u]1171; AVX512DQ-NEXT: vpor %xmm2, %xmm3, %xmm21172; AVX512DQ-NEXT: vmovq %xmm2, (%r9)1173; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm1 = zero,zero,xmm1[1,7,13],zero,zero,zero,xmm1[u,u,u,u,u,u,u,u]1174; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[5,11],zero,zero,zero,xmm0[3,9,15,u,u,u,u,u,u,u,u]1175; AVX512DQ-NEXT: vpor %xmm1, %xmm0, %xmm01176; AVX512DQ-NEXT: vmovq %xmm0, (%rax)1177; AVX512DQ-NEXT: vzeroupper1178; AVX512DQ-NEXT: retq1179;1180; AVX512DQ-FCP-LABEL: load_i8_stride6_vf8:1181; AVX512DQ-FCP: # %bb.0:1182; AVX512DQ-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax1183; AVX512DQ-FCP-NEXT: vmovdqa (%rdi), %ymm01184; AVX512DQ-FCP-NEXT: vmovdqa 32(%rdi), %ymm11185; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} ymm2 = ymm0[0,1],ymm1[2],ymm0[3,4],ymm1[5],ymm0[6,7,8,9],ymm1[10],ymm0[11,12],ymm1[13],ymm0[14,15]1186; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm2, %xmm31187; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm4 = zero,zero,zero,xmm3[2,8,14],zero,zero,xmm3[u,u,u,u,u,u,u,u]1188; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm5 = xmm2[0,6,12],zero,zero,zero,xmm2[4,10,u,u,u,u,u,u,u,u]1189; AVX512DQ-FCP-NEXT: vpor %xmm4, %xmm5, %xmm41190; AVX512DQ-FCP-NEXT: vmovq %xmm4, (%rsi)1191; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm3 = zero,zero,zero,xmm3[3,9,15],zero,zero,xmm3[u,u,u,u,u,u,u,u]1192; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm2 = xmm2[1,7,13],zero,zero,zero,xmm2[5,11,u,u,u,u,u,u,u,u]1193; AVX512DQ-FCP-NEXT: vpor %xmm3, %xmm2, %xmm21194; AVX512DQ-FCP-NEXT: vmovq %xmm2, (%rdx)1195; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} ymm2 = ymm1[0],ymm0[1,2],ymm1[3],ymm0[4,5],ymm1[6],ymm0[7],ymm1[8],ymm0[9,10],ymm1[11],ymm0[12,13],ymm1[14],ymm0[15]1196; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm2, %xmm31197; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm4 = zero,zero,zero,xmm3[4,10],zero,zero,zero,xmm3[u,u,u,u,u,u,u,u]1198; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm5 = xmm2[2,8,14],zero,zero,xmm2[0,6,12,u,u,u,u,u,u,u,u]1199; AVX512DQ-FCP-NEXT: vpor %xmm4, %xmm5, %xmm41200; AVX512DQ-FCP-NEXT: vmovq %xmm4, (%rcx)1201; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm3 = zero,zero,zero,xmm3[5,11],zero,zero,zero,xmm3[u,u,u,u,u,u,u,u]1202; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm2 = xmm2[3,9,15],zero,zero,xmm2[1,7,13,u,u,u,u,u,u,u,u]1203; AVX512DQ-FCP-NEXT: vpor %xmm3, %xmm2, %xmm21204; AVX512DQ-FCP-NEXT: vmovq %xmm2, (%r8)1205; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2,3],ymm1[4],ymm0[5,6],ymm1[7],ymm0[8],ymm1[9],ymm0[10,11],ymm1[12],ymm0[13,14],ymm1[15]1206; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm0, %xmm11207; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm2 = zero,zero,xmm1[0,6,12],zero,zero,zero,xmm1[u,u,u,u,u,u,u,u]1208; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm3 = xmm0[4,10],zero,zero,zero,xmm0[2,8,14,u,u,u,u,u,u,u,u]1209; AVX512DQ-FCP-NEXT: vpor %xmm2, %xmm3, %xmm21210; AVX512DQ-FCP-NEXT: vmovq %xmm2, (%r9)1211; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm1 = zero,zero,xmm1[1,7,13],zero,zero,zero,xmm1[u,u,u,u,u,u,u,u]1212; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[5,11],zero,zero,zero,xmm0[3,9,15,u,u,u,u,u,u,u,u]1213; AVX512DQ-FCP-NEXT: vpor %xmm1, %xmm0, %xmm01214; AVX512DQ-FCP-NEXT: vmovq %xmm0, (%rax)1215; AVX512DQ-FCP-NEXT: vzeroupper1216; AVX512DQ-FCP-NEXT: retq1217;1218; AVX512BW-LABEL: load_i8_stride6_vf8:1219; AVX512BW: # %bb.0:1220; AVX512BW-NEXT: movq {{[0-9]+}}(%rsp), %rax1221; AVX512BW-NEXT: vmovdqa (%rdi), %ymm01222; AVX512BW-NEXT: vmovdqa 32(%rdi), %ymm11223; AVX512BW-NEXT: vpblendw {{.*#+}} ymm2 = ymm0[0,1],ymm1[2],ymm0[3,4],ymm1[5],ymm0[6,7,8,9],ymm1[10],ymm0[11,12],ymm1[13],ymm0[14,15]1224; AVX512BW-NEXT: vextracti128 $1, %ymm2, %xmm31225; AVX512BW-NEXT: vpshufb {{.*#+}} xmm4 = zero,zero,zero,xmm3[2,8,14],zero,zero,xmm3[u,u,u,u,u,u,u,u]1226; AVX512BW-NEXT: vpshufb {{.*#+}} xmm5 = xmm2[0,6,12],zero,zero,zero,xmm2[4,10,u,u,u,u,u,u,u,u]1227; AVX512BW-NEXT: vpor %xmm4, %xmm5, %xmm41228; AVX512BW-NEXT: vmovq %xmm4, (%rsi)1229; AVX512BW-NEXT: vpshufb {{.*#+}} xmm3 = zero,zero,zero,xmm3[3,9,15],zero,zero,xmm3[u,u,u,u,u,u,u,u]1230; AVX512BW-NEXT: vpshufb {{.*#+}} xmm2 = xmm2[1,7,13],zero,zero,zero,xmm2[5,11,u,u,u,u,u,u,u,u]1231; AVX512BW-NEXT: vpor %xmm3, %xmm2, %xmm21232; AVX512BW-NEXT: vmovq %xmm2, (%rdx)1233; AVX512BW-NEXT: vpblendw {{.*#+}} ymm2 = ymm1[0],ymm0[1,2],ymm1[3],ymm0[4,5],ymm1[6],ymm0[7],ymm1[8],ymm0[9,10],ymm1[11],ymm0[12,13],ymm1[14],ymm0[15]1234; AVX512BW-NEXT: vextracti128 $1, %ymm2, %xmm31235; AVX512BW-NEXT: vpshufb {{.*#+}} xmm4 = zero,zero,zero,xmm3[4,10],zero,zero,zero,xmm3[u,u,u,u,u,u,u,u]1236; AVX512BW-NEXT: vpshufb {{.*#+}} xmm5 = xmm2[2,8,14],zero,zero,xmm2[0,6,12,u,u,u,u,u,u,u,u]1237; AVX512BW-NEXT: vpor %xmm4, %xmm5, %xmm41238; AVX512BW-NEXT: vmovq %xmm4, (%rcx)1239; AVX512BW-NEXT: vpshufb {{.*#+}} xmm3 = zero,zero,zero,xmm3[5,11],zero,zero,zero,xmm3[u,u,u,u,u,u,u,u]1240; AVX512BW-NEXT: vpshufb {{.*#+}} xmm2 = xmm2[3,9,15],zero,zero,xmm2[1,7,13,u,u,u,u,u,u,u,u]1241; AVX512BW-NEXT: vpor %xmm3, %xmm2, %xmm21242; AVX512BW-NEXT: vmovq %xmm2, (%r8)1243; AVX512BW-NEXT: vpblendw {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2,3],ymm1[4],ymm0[5,6],ymm1[7],ymm0[8],ymm1[9],ymm0[10,11],ymm1[12],ymm0[13,14],ymm1[15]1244; AVX512BW-NEXT: vextracti128 $1, %ymm0, %xmm11245; AVX512BW-NEXT: vpshufb {{.*#+}} xmm2 = zero,zero,xmm1[0,6,12],zero,zero,zero,xmm1[u,u,u,u,u,u,u,u]1246; AVX512BW-NEXT: vpshufb {{.*#+}} xmm3 = xmm0[4,10],zero,zero,zero,xmm0[2,8,14,u,u,u,u,u,u,u,u]1247; AVX512BW-NEXT: vpor %xmm2, %xmm3, %xmm21248; AVX512BW-NEXT: vmovq %xmm2, (%r9)1249; AVX512BW-NEXT: vpshufb {{.*#+}} xmm1 = zero,zero,xmm1[1,7,13],zero,zero,zero,xmm1[u,u,u,u,u,u,u,u]1250; AVX512BW-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[5,11],zero,zero,zero,xmm0[3,9,15,u,u,u,u,u,u,u,u]1251; AVX512BW-NEXT: vpor %xmm1, %xmm0, %xmm01252; AVX512BW-NEXT: vmovq %xmm0, (%rax)1253; AVX512BW-NEXT: vzeroupper1254; AVX512BW-NEXT: retq1255;1256; AVX512BW-FCP-LABEL: load_i8_stride6_vf8:1257; AVX512BW-FCP: # %bb.0:1258; AVX512BW-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax1259; AVX512BW-FCP-NEXT: vmovdqa (%rdi), %ymm01260; AVX512BW-FCP-NEXT: vmovdqa 32(%rdi), %ymm11261; AVX512BW-FCP-NEXT: vpblendw {{.*#+}} ymm2 = ymm0[0,1],ymm1[2],ymm0[3,4],ymm1[5],ymm0[6,7,8,9],ymm1[10],ymm0[11,12],ymm1[13],ymm0[14,15]1262; AVX512BW-FCP-NEXT: vextracti128 $1, %ymm2, %xmm31263; AVX512BW-FCP-NEXT: vpshufb {{.*#+}} xmm4 = zero,zero,zero,xmm3[2,8,14],zero,zero,xmm3[u,u,u,u,u,u,u,u]1264; AVX512BW-FCP-NEXT: vpshufb {{.*#+}} xmm5 = xmm2[0,6,12],zero,zero,zero,xmm2[4,10,u,u,u,u,u,u,u,u]1265; AVX512BW-FCP-NEXT: vpor %xmm4, %xmm5, %xmm41266; AVX512BW-FCP-NEXT: vmovq %xmm4, (%rsi)1267; AVX512BW-FCP-NEXT: vpshufb {{.*#+}} xmm3 = zero,zero,zero,xmm3[3,9,15],zero,zero,xmm3[u,u,u,u,u,u,u,u]1268; AVX512BW-FCP-NEXT: vpshufb {{.*#+}} xmm2 = xmm2[1,7,13],zero,zero,zero,xmm2[5,11,u,u,u,u,u,u,u,u]1269; AVX512BW-FCP-NEXT: vpor %xmm3, %xmm2, %xmm21270; AVX512BW-FCP-NEXT: vmovq %xmm2, (%rdx)1271; AVX512BW-FCP-NEXT: vpblendw {{.*#+}} ymm2 = ymm1[0],ymm0[1,2],ymm1[3],ymm0[4,5],ymm1[6],ymm0[7],ymm1[8],ymm0[9,10],ymm1[11],ymm0[12,13],ymm1[14],ymm0[15]1272; AVX512BW-FCP-NEXT: vextracti128 $1, %ymm2, %xmm31273; AVX512BW-FCP-NEXT: vpshufb {{.*#+}} xmm4 = zero,zero,zero,xmm3[4,10],zero,zero,zero,xmm3[u,u,u,u,u,u,u,u]1274; AVX512BW-FCP-NEXT: vpshufb {{.*#+}} xmm5 = xmm2[2,8,14],zero,zero,xmm2[0,6,12,u,u,u,u,u,u,u,u]1275; AVX512BW-FCP-NEXT: vpor %xmm4, %xmm5, %xmm41276; AVX512BW-FCP-NEXT: vmovq %xmm4, (%rcx)1277; AVX512BW-FCP-NEXT: vpshufb {{.*#+}} xmm3 = zero,zero,zero,xmm3[5,11],zero,zero,zero,xmm3[u,u,u,u,u,u,u,u]1278; AVX512BW-FCP-NEXT: vpshufb {{.*#+}} xmm2 = xmm2[3,9,15],zero,zero,xmm2[1,7,13,u,u,u,u,u,u,u,u]1279; AVX512BW-FCP-NEXT: vpor %xmm3, %xmm2, %xmm21280; AVX512BW-FCP-NEXT: vmovq %xmm2, (%r8)1281; AVX512BW-FCP-NEXT: vpblendw {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2,3],ymm1[4],ymm0[5,6],ymm1[7],ymm0[8],ymm1[9],ymm0[10,11],ymm1[12],ymm0[13,14],ymm1[15]1282; AVX512BW-FCP-NEXT: vextracti128 $1, %ymm0, %xmm11283; AVX512BW-FCP-NEXT: vpshufb {{.*#+}} xmm2 = zero,zero,xmm1[0,6,12],zero,zero,zero,xmm1[u,u,u,u,u,u,u,u]1284; AVX512BW-FCP-NEXT: vpshufb {{.*#+}} xmm3 = xmm0[4,10],zero,zero,zero,xmm0[2,8,14,u,u,u,u,u,u,u,u]1285; AVX512BW-FCP-NEXT: vpor %xmm2, %xmm3, %xmm21286; AVX512BW-FCP-NEXT: vmovq %xmm2, (%r9)1287; AVX512BW-FCP-NEXT: vpshufb {{.*#+}} xmm1 = zero,zero,xmm1[1,7,13],zero,zero,zero,xmm1[u,u,u,u,u,u,u,u]1288; AVX512BW-FCP-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[5,11],zero,zero,zero,xmm0[3,9,15,u,u,u,u,u,u,u,u]1289; AVX512BW-FCP-NEXT: vpor %xmm1, %xmm0, %xmm01290; AVX512BW-FCP-NEXT: vmovq %xmm0, (%rax)1291; AVX512BW-FCP-NEXT: vzeroupper1292; AVX512BW-FCP-NEXT: retq1293;1294; AVX512DQ-BW-LABEL: load_i8_stride6_vf8:1295; AVX512DQ-BW: # %bb.0:1296; AVX512DQ-BW-NEXT: movq {{[0-9]+}}(%rsp), %rax1297; AVX512DQ-BW-NEXT: vmovdqa (%rdi), %ymm01298; AVX512DQ-BW-NEXT: vmovdqa 32(%rdi), %ymm11299; AVX512DQ-BW-NEXT: vpblendw {{.*#+}} ymm2 = ymm0[0,1],ymm1[2],ymm0[3,4],ymm1[5],ymm0[6,7,8,9],ymm1[10],ymm0[11,12],ymm1[13],ymm0[14,15]1300; AVX512DQ-BW-NEXT: vextracti128 $1, %ymm2, %xmm31301; AVX512DQ-BW-NEXT: vpshufb {{.*#+}} xmm4 = zero,zero,zero,xmm3[2,8,14],zero,zero,xmm3[u,u,u,u,u,u,u,u]1302; AVX512DQ-BW-NEXT: vpshufb {{.*#+}} xmm5 = xmm2[0,6,12],zero,zero,zero,xmm2[4,10,u,u,u,u,u,u,u,u]1303; AVX512DQ-BW-NEXT: vpor %xmm4, %xmm5, %xmm41304; AVX512DQ-BW-NEXT: vmovq %xmm4, (%rsi)1305; AVX512DQ-BW-NEXT: vpshufb {{.*#+}} xmm3 = zero,zero,zero,xmm3[3,9,15],zero,zero,xmm3[u,u,u,u,u,u,u,u]1306; AVX512DQ-BW-NEXT: vpshufb {{.*#+}} xmm2 = xmm2[1,7,13],zero,zero,zero,xmm2[5,11,u,u,u,u,u,u,u,u]1307; AVX512DQ-BW-NEXT: vpor %xmm3, %xmm2, %xmm21308; AVX512DQ-BW-NEXT: vmovq %xmm2, (%rdx)1309; AVX512DQ-BW-NEXT: vpblendw {{.*#+}} ymm2 = ymm1[0],ymm0[1,2],ymm1[3],ymm0[4,5],ymm1[6],ymm0[7],ymm1[8],ymm0[9,10],ymm1[11],ymm0[12,13],ymm1[14],ymm0[15]1310; AVX512DQ-BW-NEXT: vextracti128 $1, %ymm2, %xmm31311; AVX512DQ-BW-NEXT: vpshufb {{.*#+}} xmm4 = zero,zero,zero,xmm3[4,10],zero,zero,zero,xmm3[u,u,u,u,u,u,u,u]1312; AVX512DQ-BW-NEXT: vpshufb {{.*#+}} xmm5 = xmm2[2,8,14],zero,zero,xmm2[0,6,12,u,u,u,u,u,u,u,u]1313; AVX512DQ-BW-NEXT: vpor %xmm4, %xmm5, %xmm41314; AVX512DQ-BW-NEXT: vmovq %xmm4, (%rcx)1315; AVX512DQ-BW-NEXT: vpshufb {{.*#+}} xmm3 = zero,zero,zero,xmm3[5,11],zero,zero,zero,xmm3[u,u,u,u,u,u,u,u]1316; AVX512DQ-BW-NEXT: vpshufb {{.*#+}} xmm2 = xmm2[3,9,15],zero,zero,xmm2[1,7,13,u,u,u,u,u,u,u,u]1317; AVX512DQ-BW-NEXT: vpor %xmm3, %xmm2, %xmm21318; AVX512DQ-BW-NEXT: vmovq %xmm2, (%r8)1319; AVX512DQ-BW-NEXT: vpblendw {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2,3],ymm1[4],ymm0[5,6],ymm1[7],ymm0[8],ymm1[9],ymm0[10,11],ymm1[12],ymm0[13,14],ymm1[15]1320; AVX512DQ-BW-NEXT: vextracti128 $1, %ymm0, %xmm11321; AVX512DQ-BW-NEXT: vpshufb {{.*#+}} xmm2 = zero,zero,xmm1[0,6,12],zero,zero,zero,xmm1[u,u,u,u,u,u,u,u]1322; AVX512DQ-BW-NEXT: vpshufb {{.*#+}} xmm3 = xmm0[4,10],zero,zero,zero,xmm0[2,8,14,u,u,u,u,u,u,u,u]1323; AVX512DQ-BW-NEXT: vpor %xmm2, %xmm3, %xmm21324; AVX512DQ-BW-NEXT: vmovq %xmm2, (%r9)1325; AVX512DQ-BW-NEXT: vpshufb {{.*#+}} xmm1 = zero,zero,xmm1[1,7,13],zero,zero,zero,xmm1[u,u,u,u,u,u,u,u]1326; AVX512DQ-BW-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[5,11],zero,zero,zero,xmm0[3,9,15,u,u,u,u,u,u,u,u]1327; AVX512DQ-BW-NEXT: vpor %xmm1, %xmm0, %xmm01328; AVX512DQ-BW-NEXT: vmovq %xmm0, (%rax)1329; AVX512DQ-BW-NEXT: vzeroupper1330; AVX512DQ-BW-NEXT: retq1331;1332; AVX512DQ-BW-FCP-LABEL: load_i8_stride6_vf8:1333; AVX512DQ-BW-FCP: # %bb.0:1334; AVX512DQ-BW-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax1335; AVX512DQ-BW-FCP-NEXT: vmovdqa (%rdi), %ymm01336; AVX512DQ-BW-FCP-NEXT: vmovdqa 32(%rdi), %ymm11337; AVX512DQ-BW-FCP-NEXT: vpblendw {{.*#+}} ymm2 = ymm0[0,1],ymm1[2],ymm0[3,4],ymm1[5],ymm0[6,7,8,9],ymm1[10],ymm0[11,12],ymm1[13],ymm0[14,15]1338; AVX512DQ-BW-FCP-NEXT: vextracti128 $1, %ymm2, %xmm31339; AVX512DQ-BW-FCP-NEXT: vpshufb {{.*#+}} xmm4 = zero,zero,zero,xmm3[2,8,14],zero,zero,xmm3[u,u,u,u,u,u,u,u]1340; AVX512DQ-BW-FCP-NEXT: vpshufb {{.*#+}} xmm5 = xmm2[0,6,12],zero,zero,zero,xmm2[4,10,u,u,u,u,u,u,u,u]1341; AVX512DQ-BW-FCP-NEXT: vpor %xmm4, %xmm5, %xmm41342; AVX512DQ-BW-FCP-NEXT: vmovq %xmm4, (%rsi)1343; AVX512DQ-BW-FCP-NEXT: vpshufb {{.*#+}} xmm3 = zero,zero,zero,xmm3[3,9,15],zero,zero,xmm3[u,u,u,u,u,u,u,u]1344; AVX512DQ-BW-FCP-NEXT: vpshufb {{.*#+}} xmm2 = xmm2[1,7,13],zero,zero,zero,xmm2[5,11,u,u,u,u,u,u,u,u]1345; AVX512DQ-BW-FCP-NEXT: vpor %xmm3, %xmm2, %xmm21346; AVX512DQ-BW-FCP-NEXT: vmovq %xmm2, (%rdx)1347; AVX512DQ-BW-FCP-NEXT: vpblendw {{.*#+}} ymm2 = ymm1[0],ymm0[1,2],ymm1[3],ymm0[4,5],ymm1[6],ymm0[7],ymm1[8],ymm0[9,10],ymm1[11],ymm0[12,13],ymm1[14],ymm0[15]1348; AVX512DQ-BW-FCP-NEXT: vextracti128 $1, %ymm2, %xmm31349; AVX512DQ-BW-FCP-NEXT: vpshufb {{.*#+}} xmm4 = zero,zero,zero,xmm3[4,10],zero,zero,zero,xmm3[u,u,u,u,u,u,u,u]1350; AVX512DQ-BW-FCP-NEXT: vpshufb {{.*#+}} xmm5 = xmm2[2,8,14],zero,zero,xmm2[0,6,12,u,u,u,u,u,u,u,u]1351; AVX512DQ-BW-FCP-NEXT: vpor %xmm4, %xmm5, %xmm41352; AVX512DQ-BW-FCP-NEXT: vmovq %xmm4, (%rcx)1353; AVX512DQ-BW-FCP-NEXT: vpshufb {{.*#+}} xmm3 = zero,zero,zero,xmm3[5,11],zero,zero,zero,xmm3[u,u,u,u,u,u,u,u]1354; AVX512DQ-BW-FCP-NEXT: vpshufb {{.*#+}} xmm2 = xmm2[3,9,15],zero,zero,xmm2[1,7,13,u,u,u,u,u,u,u,u]1355; AVX512DQ-BW-FCP-NEXT: vpor %xmm3, %xmm2, %xmm21356; AVX512DQ-BW-FCP-NEXT: vmovq %xmm2, (%r8)1357; AVX512DQ-BW-FCP-NEXT: vpblendw {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2,3],ymm1[4],ymm0[5,6],ymm1[7],ymm0[8],ymm1[9],ymm0[10,11],ymm1[12],ymm0[13,14],ymm1[15]1358; AVX512DQ-BW-FCP-NEXT: vextracti128 $1, %ymm0, %xmm11359; AVX512DQ-BW-FCP-NEXT: vpshufb {{.*#+}} xmm2 = zero,zero,xmm1[0,6,12],zero,zero,zero,xmm1[u,u,u,u,u,u,u,u]1360; AVX512DQ-BW-FCP-NEXT: vpshufb {{.*#+}} xmm3 = xmm0[4,10],zero,zero,zero,xmm0[2,8,14,u,u,u,u,u,u,u,u]1361; AVX512DQ-BW-FCP-NEXT: vpor %xmm2, %xmm3, %xmm21362; AVX512DQ-BW-FCP-NEXT: vmovq %xmm2, (%r9)1363; AVX512DQ-BW-FCP-NEXT: vpshufb {{.*#+}} xmm1 = zero,zero,xmm1[1,7,13],zero,zero,zero,xmm1[u,u,u,u,u,u,u,u]1364; AVX512DQ-BW-FCP-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[5,11],zero,zero,zero,xmm0[3,9,15,u,u,u,u,u,u,u,u]1365; AVX512DQ-BW-FCP-NEXT: vpor %xmm1, %xmm0, %xmm01366; AVX512DQ-BW-FCP-NEXT: vmovq %xmm0, (%rax)1367; AVX512DQ-BW-FCP-NEXT: vzeroupper1368; AVX512DQ-BW-FCP-NEXT: retq1369 %wide.vec = load <48 x i8>, ptr %in.vec, align 641370 %strided.vec0 = shufflevector <48 x i8> %wide.vec, <48 x i8> poison, <8 x i32> <i32 0, i32 6, i32 12, i32 18, i32 24, i32 30, i32 36, i32 42>1371 %strided.vec1 = shufflevector <48 x i8> %wide.vec, <48 x i8> poison, <8 x i32> <i32 1, i32 7, i32 13, i32 19, i32 25, i32 31, i32 37, i32 43>1372 %strided.vec2 = shufflevector <48 x i8> %wide.vec, <48 x i8> poison, <8 x i32> <i32 2, i32 8, i32 14, i32 20, i32 26, i32 32, i32 38, i32 44>1373 %strided.vec3 = shufflevector <48 x i8> %wide.vec, <48 x i8> poison, <8 x i32> <i32 3, i32 9, i32 15, i32 21, i32 27, i32 33, i32 39, i32 45>1374 %strided.vec4 = shufflevector <48 x i8> %wide.vec, <48 x i8> poison, <8 x i32> <i32 4, i32 10, i32 16, i32 22, i32 28, i32 34, i32 40, i32 46>1375 %strided.vec5 = shufflevector <48 x i8> %wide.vec, <48 x i8> poison, <8 x i32> <i32 5, i32 11, i32 17, i32 23, i32 29, i32 35, i32 41, i32 47>1376 store <8 x i8> %strided.vec0, ptr %out.vec0, align 641377 store <8 x i8> %strided.vec1, ptr %out.vec1, align 641378 store <8 x i8> %strided.vec2, ptr %out.vec2, align 641379 store <8 x i8> %strided.vec3, ptr %out.vec3, align 641380 store <8 x i8> %strided.vec4, ptr %out.vec4, align 641381 store <8 x i8> %strided.vec5, ptr %out.vec5, align 641382 ret void1383}1384 1385define void @load_i8_stride6_vf16(ptr %in.vec, ptr %out.vec0, ptr %out.vec1, ptr %out.vec2, ptr %out.vec3, ptr %out.vec4, ptr %out.vec5) nounwind {1386; SSE-LABEL: load_i8_stride6_vf16:1387; SSE: # %bb.0:1388; SSE-NEXT: movdqa 64(%rdi), %xmm101389; SSE-NEXT: movdqa %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1390; SSE-NEXT: movdqa (%rdi), %xmm51391; SSE-NEXT: movdqa 16(%rdi), %xmm11392; SSE-NEXT: movdqa 32(%rdi), %xmm71393; SSE-NEXT: movdqa 48(%rdi), %xmm61394; SSE-NEXT: movdqa {{.*#+}} xmm4 = [65535,65535,0,65535,65535,0,65535,65535]1395; SSE-NEXT: movdqa %xmm4, %xmm01396; SSE-NEXT: pandn %xmm7, %xmm01397; SSE-NEXT: movdqa {{.*#+}} xmm2 = [65535,0,65535,65535,0,65535,65535,0]1398; SSE-NEXT: movdqa %xmm2, %xmm31399; SSE-NEXT: pandn %xmm6, %xmm31400; SSE-NEXT: movdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1401; SSE-NEXT: movdqa %xmm4, %xmm31402; SSE-NEXT: pandn %xmm6, %xmm31403; SSE-NEXT: movdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1404; SSE-NEXT: pand %xmm4, %xmm61405; SSE-NEXT: por %xmm0, %xmm61406; SSE-NEXT: movdqa %xmm6, %xmm01407; SSE-NEXT: pand {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm01408; SSE-NEXT: pshuflw {{.*#+}} xmm3 = xmm0[0,3,2,3,4,5,6,7]1409; SSE-NEXT: pshufd {{.*#+}} xmm3 = xmm3[0,3,2,3]1410; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,1,2,1]1411; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,5,6,5]1412; SSE-NEXT: packuswb %xmm3, %xmm01413; SSE-NEXT: movdqa {{.*#+}} xmm8 = [65535,65535,65535,0,0,0,65535,65535]1414; SSE-NEXT: movdqa %xmm8, %xmm91415; SSE-NEXT: pandn %xmm0, %xmm91416; SSE-NEXT: movdqa %xmm2, %xmm01417; SSE-NEXT: movdqa %xmm2, %xmm111418; SSE-NEXT: pandn %xmm1, %xmm111419; SSE-NEXT: pand %xmm4, %xmm101420; SSE-NEXT: movdqa %xmm4, %xmm21421; SSE-NEXT: pandn %xmm1, %xmm21422; SSE-NEXT: movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1423; SSE-NEXT: movdqa %xmm1, %xmm21424; SSE-NEXT: movdqa %xmm5, %xmm141425; SSE-NEXT: pand %xmm4, %xmm141426; SSE-NEXT: movdqa 80(%rdi), %xmm31427; SSE-NEXT: movdqa %xmm3, %xmm131428; SSE-NEXT: movdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1429; SSE-NEXT: pand %xmm4, %xmm131430; SSE-NEXT: movdqa %xmm7, %xmm151431; SSE-NEXT: pand %xmm4, %xmm71432; SSE-NEXT: pand %xmm4, %xmm21433; SSE-NEXT: movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1434; SSE-NEXT: movdqa %xmm4, %xmm121435; SSE-NEXT: movdqa %xmm4, %xmm21436; SSE-NEXT: pandn %xmm5, %xmm41437; SSE-NEXT: pand %xmm0, %xmm51438; SSE-NEXT: por %xmm11, %xmm51439; SSE-NEXT: pshufd {{.*#+}} xmm11 = xmm5[0,2,1,3]1440; SSE-NEXT: movdqa {{.*#+}} xmm1 = [255,255,255,255,255,255,255,255]1441; SSE-NEXT: pand %xmm1, %xmm111442; SSE-NEXT: pshufhw {{.*#+}} xmm11 = xmm11[0,1,2,3,6,5,6,7]1443; SSE-NEXT: pshufd {{.*#+}} xmm11 = xmm11[0,2,1,3]1444; SSE-NEXT: pshuflw {{.*#+}} xmm11 = xmm11[0,3,2,1,4,5,6,7]1445; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm11[0,1,2,3,4,7,6,7]1446; SSE-NEXT: packuswb %xmm0, %xmm01447; SSE-NEXT: pand %xmm8, %xmm01448; SSE-NEXT: por %xmm9, %xmm01449; SSE-NEXT: pandn %xmm3, %xmm121450; SSE-NEXT: por %xmm12, %xmm101451; SSE-NEXT: pshufd {{.*#+}} xmm9 = xmm10[3,1,2,0]1452; SSE-NEXT: pand %xmm1, %xmm91453; SSE-NEXT: movdqa %xmm1, %xmm31454; SSE-NEXT: pshuflw {{.*#+}} xmm9 = xmm9[2,1,2,3,4,5,6,7]1455; SSE-NEXT: pshufd {{.*#+}} xmm9 = xmm9[0,3,2,0]1456; SSE-NEXT: pshufhw {{.*#+}} xmm9 = xmm9[0,1,2,3,4,7,6,5]1457; SSE-NEXT: packuswb %xmm9, %xmm91458; SSE-NEXT: movdqa {{.*#+}} xmm11 = [255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0]1459; SSE-NEXT: movdqa %xmm11, %xmm121460; SSE-NEXT: pandn %xmm9, %xmm121461; SSE-NEXT: pand %xmm11, %xmm01462; SSE-NEXT: por %xmm0, %xmm121463; SSE-NEXT: pxor %xmm9, %xmm91464; SSE-NEXT: movdqa %xmm6, %xmm01465; SSE-NEXT: punpckhbw {{.*#+}} xmm0 = xmm0[8],xmm9[8],xmm0[9],xmm9[9],xmm0[10],xmm9[10],xmm0[11],xmm9[11],xmm0[12],xmm9[12],xmm0[13],xmm9[13],xmm0[14],xmm9[14],xmm0[15],xmm9[15]1466; 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]1467; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm6[2,2,3,3]1468; SSE-NEXT: punpcklwd {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1],xmm1[2],xmm0[2],xmm1[3],xmm0[3]1469; SSE-NEXT: psrld $16, %xmm01470; SSE-NEXT: pshufd {{.*#+}} xmm6 = xmm6[0,1,0,3]1471; SSE-NEXT: pshufhw {{.*#+}} xmm6 = xmm6[0,1,2,3,5,7,6,7]1472; SSE-NEXT: punpckhdq {{.*#+}} xmm6 = xmm6[2],xmm0[2],xmm6[3],xmm0[3]1473; SSE-NEXT: packuswb %xmm6, %xmm11474; SSE-NEXT: movdqa %xmm5, %xmm01475; SSE-NEXT: punpckhbw {{.*#+}} xmm0 = xmm0[8],xmm9[8],xmm0[9],xmm9[9],xmm0[10],xmm9[10],xmm0[11],xmm9[11],xmm0[12],xmm9[12],xmm0[13],xmm9[13],xmm0[14],xmm9[14],xmm0[15],xmm9[15]1476; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[2,1,0,3]1477; SSE-NEXT: pshuflw {{.*#+}} xmm0 = xmm0[1,1,1,1,4,5,6,7]1478; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,5,7,6,7]1479; SSE-NEXT: punpcklbw {{.*#+}} xmm5 = xmm5[0],xmm9[0],xmm5[1],xmm9[1],xmm5[2],xmm9[2],xmm5[3],xmm9[3],xmm5[4],xmm9[4],xmm5[5],xmm9[5],xmm5[6],xmm9[6],xmm5[7],xmm9[7]1480; SSE-NEXT: pshuflw {{.*#+}} xmm5 = xmm5[3,1,2,3,4,5,6,7]1481; SSE-NEXT: pshufd {{.*#+}} xmm5 = xmm5[0,3,2,3]1482; SSE-NEXT: pshuflw {{.*#+}} xmm5 = xmm5[1,3,2,0,4,5,6,7]1483; SSE-NEXT: movdqa {{.*#+}} xmm6 = [65535,65535,0,65535,0,0,65535,65535]1484; SSE-NEXT: pand %xmm6, %xmm51485; SSE-NEXT: pandn %xmm0, %xmm61486; SSE-NEXT: por %xmm5, %xmm61487; SSE-NEXT: packuswb %xmm6, %xmm61488; SSE-NEXT: pand %xmm8, %xmm61489; SSE-NEXT: pandn %xmm1, %xmm81490; SSE-NEXT: por %xmm8, %xmm61491; SSE-NEXT: movdqa %xmm10, %xmm01492; SSE-NEXT: punpcklbw {{.*#+}} xmm0 = xmm0[0],xmm9[0],xmm0[1],xmm9[1],xmm0[2],xmm9[2],xmm0[3],xmm9[3],xmm0[4],xmm9[4],xmm0[5],xmm9[5],xmm0[6],xmm9[6],xmm0[7],xmm9[7]1493; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,5,5,5,5]1494; SSE-NEXT: punpckhbw {{.*#+}} xmm10 = 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]1495; SSE-NEXT: pshuflw {{.*#+}} xmm1 = xmm10[3,1,2,3,4,5,6,7]1496; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[0,1,0,3]1497; SSE-NEXT: pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,5,7,6,4]1498; SSE-NEXT: movdqa {{.*#+}} xmm5 = [65535,65535,65535,0,65535,65535,0,65535]1499; SSE-NEXT: pand %xmm5, %xmm11500; SSE-NEXT: pandn %xmm0, %xmm51501; SSE-NEXT: por %xmm1, %xmm51502; SSE-NEXT: packuswb %xmm5, %xmm01503; SSE-NEXT: movdqa %xmm11, %xmm101504; SSE-NEXT: pandn %xmm0, %xmm101505; SSE-NEXT: pand %xmm11, %xmm61506; SSE-NEXT: por %xmm6, %xmm101507; SSE-NEXT: pand {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm151508; SSE-NEXT: por {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Folded Reload1509; SSE-NEXT: movdqa %xmm15, %xmm01510; SSE-NEXT: pand %xmm3, %xmm01511; SSE-NEXT: pshufhw {{.*#+}} xmm1 = xmm0[0,1,2,3,4,7,6,7]1512; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[0,2,2,3]1513; SSE-NEXT: pshuflw {{.*#+}} xmm1 = xmm1[1,2,3,3,4,5,6,7]1514; SSE-NEXT: pshuflw {{.*#+}} xmm0 = xmm0[0,3,2,3,4,5,6,7]1515; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,1,0,3]1516; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,4,5,6]1517; SSE-NEXT: packuswb %xmm1, %xmm01518; SSE-NEXT: por {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Folded Reload1519; SSE-NEXT: pshuflw {{.*#+}} xmm1 = xmm14[2,1,2,3,4,5,6,7]1520; SSE-NEXT: pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,5,4,7]1521; SSE-NEXT: pand %xmm3, %xmm11522; SSE-NEXT: movdqa %xmm3, %xmm81523; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[0,3,2,3]1524; SSE-NEXT: pshuflw {{.*#+}} xmm1 = xmm1[1,2,3,0,4,5,6,7]1525; SSE-NEXT: pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,5,5,5,5]1526; SSE-NEXT: packuswb %xmm1, %xmm11527; SSE-NEXT: movdqa {{.*#+}} xmm3 = [0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255]1528; SSE-NEXT: movdqa %xmm3, %xmm51529; SSE-NEXT: pandn %xmm1, %xmm51530; SSE-NEXT: pand %xmm3, %xmm01531; SSE-NEXT: por %xmm0, %xmm51532; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload1533; SSE-NEXT: pandn %xmm6, %xmm21534; SSE-NEXT: por %xmm2, %xmm131535; SSE-NEXT: pshuflw {{.*#+}} xmm0 = xmm13[0,3,2,3,4,5,6,7]1536; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,6,5,6,7]1537; SSE-NEXT: pand %xmm8, %xmm01538; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,1,2,0]1539; SSE-NEXT: pshuflw {{.*#+}} xmm0 = xmm0[2,2,2,2,4,5,6,7]1540; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,5,6,7,4]1541; SSE-NEXT: packuswb %xmm0, %xmm01542; SSE-NEXT: movdqa %xmm11, %xmm81543; SSE-NEXT: pandn %xmm0, %xmm81544; SSE-NEXT: pand %xmm11, %xmm51545; SSE-NEXT: por %xmm5, %xmm81546; SSE-NEXT: movdqa %xmm15, %xmm01547; SSE-NEXT: punpcklbw {{.*#+}} xmm0 = xmm0[0],xmm9[0],xmm0[1],xmm9[1],xmm0[2],xmm9[2],xmm0[3],xmm9[3],xmm0[4],xmm9[4],xmm0[5],xmm9[5],xmm0[6],xmm9[6],xmm0[7],xmm9[7]1548; SSE-NEXT: punpckhbw {{.*#+}} xmm15 = xmm15[8],xmm9[8],xmm15[9],xmm9[9],xmm15[10],xmm9[10],xmm15[11],xmm9[11],xmm15[12],xmm9[12],xmm15[13],xmm9[13],xmm15[14],xmm9[14],xmm15[15],xmm9[15]1549; SSE-NEXT: movdqa %xmm15, %xmm11550; SSE-NEXT: shufps {{.*#+}} xmm1 = xmm1[2,0],xmm0[3,0]1551; SSE-NEXT: movaps %xmm0, %xmm21552; SSE-NEXT: shufps {{.*#+}} xmm2 = xmm2[0,1],xmm1[0,2]1553; SSE-NEXT: shufps {{.*#+}} xmm0 = xmm0[1,0],xmm15[0,0]1554; SSE-NEXT: shufps {{.*#+}} xmm0 = xmm0[2,0],xmm15[2,3]1555; SSE-NEXT: pshufhw {{.*#+}} xmm1 = xmm2[0,1,2,3,7,5,6,7]1556; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[0,1,0,2]1557; SSE-NEXT: pshuflw {{.*#+}} xmm0 = xmm0[3,1,2,3,4,5,6,7]1558; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,3,2,3]1559; SSE-NEXT: pshuflw {{.*#+}} xmm0 = xmm0[0,1,3,3,4,5,6,7]1560; SSE-NEXT: packuswb %xmm0, %xmm11561; SSE-NEXT: movdqa %xmm14, %xmm01562; SSE-NEXT: punpcklbw {{.*#+}} xmm0 = xmm0[0],xmm9[0],xmm0[1],xmm9[1],xmm0[2],xmm9[2],xmm0[3],xmm9[3],xmm0[4],xmm9[4],xmm0[5],xmm9[5],xmm0[6],xmm9[6],xmm0[7],xmm9[7]1563; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[2,1,2,3]1564; SSE-NEXT: pshuflw {{.*#+}} xmm0 = xmm0[3,1,2,1,4,5,6,7]1565; SSE-NEXT: punpckhbw {{.*#+}} xmm14 = xmm14[8],xmm9[8],xmm14[9],xmm9[9],xmm14[10],xmm9[10],xmm14[11],xmm9[11],xmm14[12],xmm9[12],xmm14[13],xmm9[13],xmm14[14],xmm9[14],xmm14[15],xmm9[15]1566; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm14[0,3,2,1]1567; SSE-NEXT: pshuflw {{.*#+}} xmm2 = xmm2[0,1,3,3,4,5,6,7]1568; SSE-NEXT: pshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,7,7,7,7]1569; SSE-NEXT: movdqa {{.*#+}} xmm5 = [0,65535,65535,0,65535,65535,65535,65535]1570; SSE-NEXT: pand %xmm5, %xmm21571; SSE-NEXT: pandn %xmm0, %xmm51572; SSE-NEXT: por %xmm2, %xmm51573; SSE-NEXT: pand %xmm3, %xmm11574; SSE-NEXT: packuswb %xmm5, %xmm51575; SSE-NEXT: pandn %xmm5, %xmm31576; SSE-NEXT: por %xmm1, %xmm31577; SSE-NEXT: movdqa %xmm13, %xmm01578; SSE-NEXT: punpckhbw {{.*#+}} xmm0 = xmm0[8],xmm9[8],xmm0[9],xmm9[9],xmm0[10],xmm9[10],xmm0[11],xmm9[11],xmm0[12],xmm9[12],xmm0[13],xmm9[13],xmm0[14],xmm9[14],xmm0[15],xmm9[15]1579; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,1,2,1]1580; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,7,5,6,5]1581; SSE-NEXT: punpcklbw {{.*#+}} xmm13 = xmm13[0],xmm9[0],xmm13[1],xmm9[1],xmm13[2],xmm9[2],xmm13[3],xmm9[3],xmm13[4],xmm9[4],xmm13[5],xmm9[5],xmm13[6],xmm9[6],xmm13[7],xmm9[7]1582; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm13[0,2,0,3]1583; SSE-NEXT: pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,5,7,7]1584; SSE-NEXT: movdqa {{.*#+}} xmm2 = [65535,65535,65535,65535,0,65535,65535,0]1585; SSE-NEXT: pand %xmm2, %xmm11586; SSE-NEXT: pandn %xmm0, %xmm21587; SSE-NEXT: por %xmm1, %xmm21588; SSE-NEXT: pand %xmm11, %xmm31589; SSE-NEXT: packuswb %xmm2, %xmm01590; SSE-NEXT: pandn %xmm0, %xmm111591; SSE-NEXT: por %xmm3, %xmm111592; SSE-NEXT: por {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Folded Reload1593; SSE-NEXT: movdqa %xmm7, %xmm01594; SSE-NEXT: movdqa {{.*#+}} xmm5 = [255,255,255,255,255,255,255,255]1595; SSE-NEXT: pand %xmm5, %xmm01596; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm0[2,1,2,3]1597; SSE-NEXT: pshuflw {{.*#+}} xmm1 = xmm1[2,1,2,3,4,5,6,7]1598; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,7,6,7]1599; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,1,0,2]1600; SSE-NEXT: packuswb %xmm1, %xmm01601; SSE-NEXT: movdqa {{.*#+}} xmm3 = [255,255,255,255,255,0,0,0,0,0,255,255,255,255,255,255]1602; SSE-NEXT: movdqa %xmm3, %xmm11603; SSE-NEXT: pandn %xmm0, %xmm11604; SSE-NEXT: por {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload1605; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm4[3,1,2,0]1606; SSE-NEXT: pand %xmm5, %xmm01607; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,6,5,6,7]1608; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[2,1,0,3]1609; SSE-NEXT: pshuflw {{.*#+}} xmm2 = xmm0[2,1,0,3,4,5,6,7]1610; SSE-NEXT: packuswb %xmm2, %xmm21611; SSE-NEXT: pand %xmm3, %xmm21612; SSE-NEXT: por %xmm1, %xmm21613; SSE-NEXT: movdqa {{.*#+}} xmm13 = [65535,0,65535,65535,0,65535,65535,0]1614; SSE-NEXT: movdqa %xmm6, %xmm11615; SSE-NEXT: pand %xmm13, %xmm11616; SSE-NEXT: pandn {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Folded Reload1617; SSE-NEXT: movdqa {{.*#+}} xmm0 = [65535,65535,65535,65535,65535,0,0,0]1618; SSE-NEXT: pand %xmm0, %xmm21619; SSE-NEXT: por %xmm1, %xmm131620; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm13[0,2,1,3]1621; SSE-NEXT: pand %xmm5, %xmm11622; SSE-NEXT: pshuflw {{.*#+}} xmm1 = xmm1[0,1,2,1,4,5,6,7]1623; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[0,2,1,3]1624; SSE-NEXT: pshuflw {{.*#+}} xmm1 = xmm1[0,1,0,3,4,5,6,7]1625; SSE-NEXT: pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,6,5,4,7]1626; SSE-NEXT: packuswb %xmm1, %xmm11627; SSE-NEXT: movdqa %xmm0, %xmm61628; SSE-NEXT: pandn %xmm1, %xmm61629; SSE-NEXT: por %xmm2, %xmm61630; SSE-NEXT: movdqa %xmm7, %xmm11631; SSE-NEXT: punpckhbw {{.*#+}} xmm1 = xmm1[8],xmm9[8],xmm1[9],xmm9[9],xmm1[10],xmm9[10],xmm1[11],xmm9[11],xmm1[12],xmm9[12],xmm1[13],xmm9[13],xmm1[14],xmm9[14],xmm1[15],xmm9[15]1632; SSE-NEXT: punpcklbw {{.*#+}} xmm7 = xmm7[0],xmm9[0],xmm7[1],xmm9[1],xmm7[2],xmm9[2],xmm7[3],xmm9[3],xmm7[4],xmm9[4],xmm7[5],xmm9[5],xmm7[6],xmm9[6],xmm7[7],xmm9[7]1633; SSE-NEXT: movdqa %xmm7, %xmm21634; SSE-NEXT: shufps {{.*#+}} xmm7 = xmm7[1,0],xmm1[0,0]1635; SSE-NEXT: shufps {{.*#+}} xmm7 = xmm7[2,0],xmm1[2,3]1636; SSE-NEXT: psrlq $48, %xmm11637; SSE-NEXT: psrldq {{.*#+}} xmm2 = xmm2[10,11,12,13,14,15],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero1638; SSE-NEXT: punpcklwd {{.*#+}} xmm2 = xmm2[0],xmm1[0],xmm2[1],xmm1[1],xmm2[2],xmm1[2],xmm2[3],xmm1[3]1639; SSE-NEXT: pshuflw {{.*#+}} xmm1 = xmm7[3,1,2,3,4,5,6,7]1640; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[0,1,0,3]1641; SSE-NEXT: pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,4,5,7]1642; SSE-NEXT: packuswb %xmm2, %xmm11643; SSE-NEXT: movdqa %xmm4, %xmm21644; SSE-NEXT: punpckhbw {{.*#+}} xmm2 = xmm2[8],xmm9[8],xmm2[9],xmm9[9],xmm2[10],xmm9[10],xmm2[11],xmm9[11],xmm2[12],xmm9[12],xmm2[13],xmm9[13],xmm2[14],xmm9[14],xmm2[15],xmm9[15]1645; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm2[1,1,2,3]1646; SSE-NEXT: pshufhw {{.*#+}} xmm5 = xmm2[0,1,2,3,5,5,5,5]1647; SSE-NEXT: movdqa {{.*#+}} xmm2 = [65535,0,65535,65535,0,65535,65535,65535]1648; SSE-NEXT: punpcklbw {{.*#+}} xmm4 = xmm4[0],xmm9[0],xmm4[1],xmm9[1],xmm4[2],xmm9[2],xmm4[3],xmm9[3],xmm4[4],xmm9[4],xmm4[5],xmm9[5],xmm4[6],xmm9[6],xmm4[7],xmm9[7]1649; SSE-NEXT: pshufhw {{.*#+}} xmm4 = xmm4[0,1,2,3,7,5,6,7]1650; SSE-NEXT: pshufd {{.*#+}} xmm4 = xmm4[0,2,2,3]1651; SSE-NEXT: pshuflw {{.*#+}} xmm4 = xmm4[3,1,1,2,4,5,6,7]1652; SSE-NEXT: pand %xmm2, %xmm41653; SSE-NEXT: pandn %xmm5, %xmm21654; SSE-NEXT: por %xmm4, %xmm21655; SSE-NEXT: packuswb %xmm2, %xmm21656; SSE-NEXT: pand %xmm3, %xmm21657; SSE-NEXT: pandn %xmm1, %xmm31658; SSE-NEXT: por %xmm3, %xmm21659; SSE-NEXT: movdqa %xmm13, %xmm11660; SSE-NEXT: punpcklbw {{.*#+}} xmm1 = xmm1[0],xmm9[0],xmm1[1],xmm9[1],xmm1[2],xmm9[2],xmm1[3],xmm9[3],xmm1[4],xmm9[4],xmm1[5],xmm9[5],xmm1[6],xmm9[6],xmm1[7],xmm9[7]1661; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[0,3,1,1]1662; SSE-NEXT: pshuflw {{.*#+}} xmm1 = xmm1[0,1,1,3,4,5,6,7]1663; SSE-NEXT: punpckhbw {{.*#+}} xmm13 = xmm13[8],xmm9[8],xmm13[9],xmm9[9],xmm13[10],xmm9[10],xmm13[11],xmm9[11],xmm13[12],xmm9[12],xmm13[13],xmm9[13],xmm13[14],xmm9[14],xmm13[15],xmm9[15]1664; SSE-NEXT: movdqa {{.*#+}} xmm3 = [65535,65535,65535,65535,0,65535,0,0]1665; SSE-NEXT: pand %xmm3, %xmm11666; SSE-NEXT: pshufhw {{.*#+}} xmm4 = xmm13[0,1,2,3,7,5,6,7]1667; SSE-NEXT: pshufd {{.*#+}} xmm4 = xmm4[0,1,2,0]1668; SSE-NEXT: pshufhw {{.*#+}} xmm4 = xmm4[0,1,2,3,5,5,7,4]1669; SSE-NEXT: pandn %xmm4, %xmm31670; SSE-NEXT: por %xmm1, %xmm31671; SSE-NEXT: pand %xmm0, %xmm21672; SSE-NEXT: packuswb %xmm3, %xmm11673; SSE-NEXT: pandn %xmm1, %xmm01674; SSE-NEXT: por %xmm2, %xmm01675; SSE-NEXT: movdqa %xmm12, (%rsi)1676; SSE-NEXT: movdqa %xmm10, (%rdx)1677; SSE-NEXT: movdqa %xmm8, (%rcx)1678; SSE-NEXT: movdqa %xmm11, (%r8)1679; SSE-NEXT: movdqa %xmm6, (%r9)1680; SSE-NEXT: movq {{[0-9]+}}(%rsp), %rax1681; SSE-NEXT: movdqa %xmm0, (%rax)1682; SSE-NEXT: retq1683;1684; AVX-LABEL: load_i8_stride6_vf16:1685; AVX: # %bb.0:1686; AVX-NEXT: movq {{[0-9]+}}(%rsp), %rax1687; AVX-NEXT: vmovdqa (%rdi), %xmm11688; AVX-NEXT: vmovdqa 16(%rdi), %xmm21689; AVX-NEXT: vmovdqa 32(%rdi), %xmm01690; AVX-NEXT: vmovdqa 48(%rdi), %xmm31691; AVX-NEXT: vpshufb {{.*#+}} xmm4 = xmm0[u,u,4,10,u,u,u,u,u,u,u,u,u,u,u,u]1692; AVX-NEXT: vpshufb {{.*#+}} xmm5 = xmm3[u,u,u,u,0,6,12,u,u,u,u,u,u,u,u,u]1693; AVX-NEXT: vpunpckldq {{.*#+}} xmm4 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]1694; AVX-NEXT: vpshufb {{.*#+}} xmm5 = zero,zero,zero,xmm2[2,8,14,u,u,u,u,u,u,u,u,u,u]1695; AVX-NEXT: vpshufb {{.*#+}} xmm6 = xmm1[0,6,12],zero,zero,zero,xmm1[u,u,u,u,u,u,u,u,u,u]1696; AVX-NEXT: vpor %xmm5, %xmm6, %xmm51697; AVX-NEXT: vpblendw {{.*#+}} xmm6 = xmm5[0,1,2],xmm4[3,4,5],xmm5[6,7]1698; AVX-NEXT: vmovdqa 80(%rdi), %xmm41699; AVX-NEXT: vpshufb {{.*#+}} xmm7 = xmm4[u,u,u,u,u,u,u,u,u,u,u],zero,zero,zero,xmm4[4,10]1700; AVX-NEXT: vmovdqa 64(%rdi), %xmm51701; AVX-NEXT: vpshufb {{.*#+}} xmm8 = xmm5[u,u,u,u,u,u,u,u,u,u,u,2,8,14],zero,zero1702; AVX-NEXT: vpor %xmm7, %xmm8, %xmm71703; AVX-NEXT: vpmovsxdq {{.*#+}} xmm9 = [18446744073709551615,16777215]1704; AVX-NEXT: vpblendvb %xmm9, %xmm6, %xmm7, %xmm61705; AVX-NEXT: vpshufb {{.*#+}} xmm7 = xmm0[u,u,5,11,u,u,u,u,u,u,u,u,u,u,u,u]1706; AVX-NEXT: vpshufb {{.*#+}} xmm8 = xmm3[u,u,u,u,1,7,13,u,u,u,u,u,u,u,u,u]1707; AVX-NEXT: vpunpckldq {{.*#+}} xmm7 = xmm8[0],xmm7[0],xmm8[1],xmm7[1]1708; AVX-NEXT: vpshufb {{.*#+}} xmm8 = zero,zero,zero,xmm2[3,9,15,u,u,u,u,u,u,u,u,u,u]1709; AVX-NEXT: vpshufb {{.*#+}} xmm10 = xmm1[1,7,13],zero,zero,zero,xmm1[u,u,u,u,u,u,u,u,u,u]1710; AVX-NEXT: vpor %xmm8, %xmm10, %xmm81711; AVX-NEXT: vpblendw {{.*#+}} xmm7 = xmm8[0,1,2],xmm7[3,4,5],xmm8[6,7]1712; AVX-NEXT: vpshufb {{.*#+}} xmm8 = xmm4[u,u,u,u,u,u,u,u,u,u,u],zero,zero,zero,xmm4[5,11]1713; AVX-NEXT: vpshufb {{.*#+}} xmm10 = xmm5[u,u,u,u,u,u,u,u,u,u,u,3,9,15],zero,zero1714; AVX-NEXT: vpor %xmm8, %xmm10, %xmm81715; AVX-NEXT: vpblendvb %xmm9, %xmm7, %xmm8, %xmm71716; AVX-NEXT: vpshufb {{.*#+}} xmm8 = xmm3[2,8,14,u,u,u,u,u,u,u,u,u,u,u,u,u]1717; AVX-NEXT: vpshufb {{.*#+}} xmm10 = xmm0[u,u,u,u,u,0,6,12,u,u,u,u,u,u,u,u]1718; AVX-NEXT: vpunpcklqdq {{.*#+}} xmm8 = xmm10[0],xmm8[0]1719; AVX-NEXT: vpshufb {{.*#+}} xmm10 = zero,zero,zero,xmm2[4,10,u,u,u,u,u,u,u,u,u,u,u]1720; AVX-NEXT: vpshufb {{.*#+}} xmm11 = xmm1[2,8,14],zero,zero,xmm1[u,u,u,u,u,u,u,u,u,u,u]1721; AVX-NEXT: vpor %xmm10, %xmm11, %xmm101722; AVX-NEXT: vmovdqa {{.*#+}} xmm11 = [0,0,0,0,0,255,255,255,255,255,255,u,u,u,u,u]1723; AVX-NEXT: vpblendvb %xmm11, %xmm8, %xmm10, %xmm81724; AVX-NEXT: vpshufb {{.*#+}} xmm10 = xmm5[u,u,u,u,u,u,u,u,u,u,u,4,10],zero,zero,zero1725; AVX-NEXT: vpshufb {{.*#+}} xmm12 = xmm4[u,u,u,u,u,u,u,u,u,u,u],zero,zero,xmm4[0,6,12]1726; AVX-NEXT: vpor %xmm10, %xmm12, %xmm101727; AVX-NEXT: vpblendvb %xmm9, %xmm8, %xmm10, %xmm81728; AVX-NEXT: vpshufb {{.*#+}} xmm10 = xmm3[3,9,15,u,u,u,u,u,u,u,u,u,u,u,u,u]1729; AVX-NEXT: vpshufb {{.*#+}} xmm12 = xmm0[u,u,u,u,u,1,7,13,u,u,u,u,u,u,u,u]1730; AVX-NEXT: vpunpcklqdq {{.*#+}} xmm10 = xmm12[0],xmm10[0]1731; AVX-NEXT: vpshufb {{.*#+}} xmm12 = zero,zero,zero,xmm2[5,11,u,u,u,u,u,u,u,u,u,u,u]1732; AVX-NEXT: vpshufb {{.*#+}} xmm13 = xmm1[3,9,15],zero,zero,xmm1[u,u,u,u,u,u,u,u,u,u,u]1733; AVX-NEXT: vpor %xmm12, %xmm13, %xmm121734; AVX-NEXT: vpblendvb %xmm11, %xmm10, %xmm12, %xmm101735; AVX-NEXT: vpshufb {{.*#+}} xmm11 = xmm5[u,u,u,u,u,u,u,u,u,u,u,5,11],zero,zero,zero1736; AVX-NEXT: vpshufb {{.*#+}} xmm12 = xmm4[u,u,u,u,u,u,u,u,u,u,u],zero,zero,xmm4[1,7,13]1737; AVX-NEXT: vpor %xmm11, %xmm12, %xmm111738; AVX-NEXT: vpblendvb %xmm9, %xmm10, %xmm11, %xmm91739; AVX-NEXT: vpshufb {{.*#+}} xmm10 = xmm1[4,10],zero,zero,zero,xmm1[u,u,u,u,u,u,u,u,u,u,u]1740; AVX-NEXT: vpshufb {{.*#+}} xmm11 = zero,zero,xmm2[0,6,12,u,u,u,u,u,u,u,u,u,u,u]1741; AVX-NEXT: vpor %xmm10, %xmm11, %xmm101742; AVX-NEXT: vpshufb {{.*#+}} xmm11 = xmm3[u,u,u,u,u,u,u,u,4,10,u,u,u,u,u,u]1743; AVX-NEXT: vpshufb {{.*#+}} xmm12 = xmm0[u,u,u,u,u,u,u,u,u,u,u,u,u,2,8,14]1744; AVX-NEXT: vpunpckhqdq {{.*#+}} xmm11 = xmm12[1],xmm11[1]1745; AVX-NEXT: vmovq {{.*#+}} xmm12 = [255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0]1746; AVX-NEXT: vpblendvb %xmm12, %xmm10, %xmm11, %xmm101747; AVX-NEXT: vpshufb {{.*#+}} xmm11 = xmm4[u,u,u,u,u,u,u,u,u,u],zero,zero,zero,xmm4[2,8,14]1748; AVX-NEXT: vpshufb {{.*#+}} xmm13 = xmm5[u,u,u,u,u,u,u,u,u,u,0,6,12],zero,zero,zero1749; AVX-NEXT: vpor %xmm11, %xmm13, %xmm111750; AVX-NEXT: vpblendw {{.*#+}} xmm10 = xmm10[0,1,2,3,4],xmm11[5,6,7]1751; AVX-NEXT: vpshufb {{.*#+}} xmm1 = xmm1[5,11],zero,zero,zero,xmm1[u,u,u,u,u,u,u,u,u,u,u]1752; AVX-NEXT: vpshufb {{.*#+}} xmm2 = zero,zero,xmm2[1,7,13,u,u,u,u,u,u,u,u,u,u,u]1753; AVX-NEXT: vpor %xmm1, %xmm2, %xmm11754; AVX-NEXT: vpshufb {{.*#+}} xmm2 = xmm3[u,u,u,u,u,u,u,u,5,11,u,u,u,u,u,u]1755; AVX-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[u,u,u,u,u,u,u,u,u,u,u,u,u,3,9,15]1756; AVX-NEXT: vpunpckhqdq {{.*#+}} xmm0 = xmm0[1],xmm2[1]1757; AVX-NEXT: vpblendvb %xmm12, %xmm1, %xmm0, %xmm01758; AVX-NEXT: vpshufb {{.*#+}} xmm1 = xmm4[u,u,u,u,u,u,u,u,u,u],zero,zero,zero,xmm4[3,9,15]1759; AVX-NEXT: vpshufb {{.*#+}} xmm2 = xmm5[u,u,u,u,u,u,u,u,u,u,1,7,13],zero,zero,zero1760; AVX-NEXT: vpor %xmm1, %xmm2, %xmm11761; AVX-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2,3,4],xmm1[5,6,7]1762; AVX-NEXT: vmovdqa %xmm6, (%rsi)1763; AVX-NEXT: vmovdqa %xmm7, (%rdx)1764; AVX-NEXT: vmovdqa %xmm8, (%rcx)1765; AVX-NEXT: vmovdqa %xmm9, (%r8)1766; AVX-NEXT: vmovdqa %xmm10, (%r9)1767; AVX-NEXT: vmovdqa %xmm0, (%rax)1768; AVX-NEXT: retq1769;1770; AVX2-LABEL: load_i8_stride6_vf16:1771; AVX2: # %bb.0:1772; AVX2-NEXT: movq {{[0-9]+}}(%rsp), %rax1773; AVX2-NEXT: vmovdqa (%rdi), %ymm31774; AVX2-NEXT: vmovdqa 32(%rdi), %ymm41775; AVX2-NEXT: vpmovsxbw {{.*#+}} ymm0 = [65535,0,0,65535,0,0,65535,0,0,65535,0,0,65535,0,0,65535]1776; AVX2-NEXT: vpblendvb %ymm0, %ymm3, %ymm4, %ymm51777; AVX2-NEXT: vpshufb {{.*#+}} xmm0 = xmm5[0,6,12],zero,zero,zero,xmm5[4,10],zero,zero,zero,xmm5[u,u,u,u,u]1778; AVX2-NEXT: vextracti128 $1, %ymm5, %xmm61779; AVX2-NEXT: vpshufb {{.*#+}} xmm1 = zero,zero,zero,xmm6[2,8,14],zero,zero,xmm6[0,6,12,u,u,u,u,u]1780; AVX2-NEXT: vpor %xmm0, %xmm1, %xmm21781; AVX2-NEXT: vmovdqa 80(%rdi), %xmm01782; AVX2-NEXT: vpshufb {{.*#+}} xmm7 = xmm0[u,u,u,u,u,u,u,u,u,u,u],zero,zero,zero,xmm0[4,10]1783; AVX2-NEXT: vmovdqa 64(%rdi), %xmm11784; AVX2-NEXT: vpshufb {{.*#+}} xmm8 = xmm1[u,u,u,u,u,u,u,u,u,u,u,2,8,14],zero,zero1785; AVX2-NEXT: vpor %xmm7, %xmm8, %xmm71786; AVX2-NEXT: vpmovsxdq {{.*#+}} xmm8 = [18446744073709551615,16777215]1787; AVX2-NEXT: vpblendvb %xmm8, %xmm2, %xmm7, %xmm21788; AVX2-NEXT: vpshufb {{.*#+}} xmm5 = xmm5[1,7,13],zero,zero,zero,xmm5[5,11],zero,zero,zero,xmm5[u,u,u,u,u]1789; AVX2-NEXT: vpshufb {{.*#+}} xmm6 = zero,zero,zero,xmm6[3,9,15],zero,zero,xmm6[1,7,13,u,u,u,u,u]1790; AVX2-NEXT: vpor %xmm5, %xmm6, %xmm51791; AVX2-NEXT: vpshufb {{.*#+}} xmm6 = xmm0[u,u,u,u,u,u,u,u,u,u,u],zero,zero,zero,xmm0[5,11]1792; AVX2-NEXT: vpshufb {{.*#+}} xmm7 = xmm1[u,u,u,u,u,u,u,u,u,u,u,3,9,15],zero,zero1793; AVX2-NEXT: vpor %xmm6, %xmm7, %xmm61794; AVX2-NEXT: vpblendvb %xmm8, %xmm5, %xmm6, %xmm51795; AVX2-NEXT: vpmovsxbw {{.*#+}} ymm6 = [65535,0,0,65535,0,0,65535,0,0,65535,0,0,65535,0,0,65535]1796; AVX2-NEXT: vpblendvb %ymm6, %ymm4, %ymm3, %ymm61797; AVX2-NEXT: vextracti128 $1, %ymm6, %xmm71798; AVX2-NEXT: vpshufb {{.*#+}} xmm9 = zero,zero,zero,xmm7[4,10],zero,zero,zero,xmm7[2,8,14,u,u,u,u,u]1799; AVX2-NEXT: vpshufb {{.*#+}} xmm10 = xmm6[2,8,14],zero,zero,xmm6[0,6,12],zero,zero,zero,xmm6[u,u,u,u,u]1800; AVX2-NEXT: vpor %xmm9, %xmm10, %xmm91801; AVX2-NEXT: vpshufb {{.*#+}} xmm10 = xmm1[u,u,u,u,u,u,u,u,u,u,u,4,10],zero,zero,zero1802; AVX2-NEXT: vpshufb {{.*#+}} xmm11 = xmm0[u,u,u,u,u,u,u,u,u,u,u],zero,zero,xmm0[0,6,12]1803; AVX2-NEXT: vpor %xmm10, %xmm11, %xmm101804; AVX2-NEXT: vpblendvb %xmm8, %xmm9, %xmm10, %xmm91805; AVX2-NEXT: vpshufb {{.*#+}} xmm7 = zero,zero,zero,xmm7[5,11],zero,zero,zero,xmm7[3,9,15,u,u,u,u,u]1806; AVX2-NEXT: vpshufb {{.*#+}} xmm6 = xmm6[3,9,15],zero,zero,xmm6[1,7,13],zero,zero,zero,xmm6[u,u,u,u,u]1807; AVX2-NEXT: vpor %xmm7, %xmm6, %xmm61808; AVX2-NEXT: vpshufb {{.*#+}} xmm7 = xmm1[u,u,u,u,u,u,u,u,u,u,u,5,11],zero,zero,zero1809; AVX2-NEXT: vpshufb {{.*#+}} xmm10 = xmm0[u,u,u,u,u,u,u,u,u,u,u],zero,zero,xmm0[1,7,13]1810; AVX2-NEXT: vpor %xmm7, %xmm10, %xmm71811; AVX2-NEXT: vpblendvb %xmm8, %xmm6, %xmm7, %xmm61812; AVX2-NEXT: vpmovsxbw {{.*#+}} ymm7 = [0,65535,0,0,65535,0,0,65535,0,0,65535,0,0,65535,0,0]1813; AVX2-NEXT: vpblendvb %ymm7, %ymm4, %ymm3, %ymm31814; AVX2-NEXT: vextracti128 $1, %ymm3, %xmm41815; AVX2-NEXT: vpshufb {{.*#+}} xmm7 = zero,zero,xmm4[0,6,12],zero,zero,zero,xmm4[4,10,u,u,u,u,u,u]1816; AVX2-NEXT: vpshufb {{.*#+}} xmm8 = xmm3[4,10],zero,zero,zero,xmm3[2,8,14],zero,zero,xmm3[u,u,u,u,u,u]1817; AVX2-NEXT: vpor %xmm7, %xmm8, %xmm71818; AVX2-NEXT: vpshufb {{.*#+}} xmm8 = xmm0[u,u,u,u,u,u,u,u,u,u],zero,zero,zero,xmm0[2,8,14]1819; AVX2-NEXT: vpshufb {{.*#+}} xmm10 = xmm1[u,u,u,u,u,u,u,u,u,u,0,6,12],zero,zero,zero1820; AVX2-NEXT: vpor %xmm8, %xmm10, %xmm81821; AVX2-NEXT: vpblendw {{.*#+}} xmm7 = xmm7[0,1,2,3,4],xmm8[5,6,7]1822; AVX2-NEXT: vpshufb {{.*#+}} xmm4 = zero,zero,xmm4[1,7,13],zero,zero,zero,xmm4[5,11,u,u,u,u,u,u]1823; AVX2-NEXT: vpshufb {{.*#+}} xmm3 = xmm3[5,11],zero,zero,zero,xmm3[3,9,15],zero,zero,xmm3[u,u,u,u,u,u]1824; AVX2-NEXT: vpor %xmm4, %xmm3, %xmm31825; AVX2-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[u,u,u,u,u,u,u,u,u,u],zero,zero,zero,xmm0[3,9,15]1826; AVX2-NEXT: vpshufb {{.*#+}} xmm1 = xmm1[u,u,u,u,u,u,u,u,u,u,1,7,13],zero,zero,zero1827; AVX2-NEXT: vpor %xmm0, %xmm1, %xmm01828; AVX2-NEXT: vpblendw {{.*#+}} xmm0 = xmm3[0,1,2,3,4],xmm0[5,6,7]1829; AVX2-NEXT: vmovdqa %xmm2, (%rsi)1830; AVX2-NEXT: vmovdqa %xmm5, (%rdx)1831; AVX2-NEXT: vmovdqa %xmm9, (%rcx)1832; AVX2-NEXT: vmovdqa %xmm6, (%r8)1833; AVX2-NEXT: vmovdqa %xmm7, (%r9)1834; AVX2-NEXT: vmovdqa %xmm0, (%rax)1835; AVX2-NEXT: vzeroupper1836; AVX2-NEXT: retq1837;1838; AVX2-FP-LABEL: load_i8_stride6_vf16:1839; AVX2-FP: # %bb.0:1840; AVX2-FP-NEXT: movq {{[0-9]+}}(%rsp), %rax1841; AVX2-FP-NEXT: vmovdqa (%rdi), %ymm31842; AVX2-FP-NEXT: vmovdqa 32(%rdi), %ymm41843; AVX2-FP-NEXT: vpmovsxbw {{.*#+}} ymm0 = [65535,0,0,65535,0,0,65535,0,0,65535,0,0,65535,0,0,65535]1844; AVX2-FP-NEXT: vpblendvb %ymm0, %ymm3, %ymm4, %ymm51845; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm0 = xmm5[0,6,12],zero,zero,zero,xmm5[4,10],zero,zero,zero,xmm5[u,u,u,u,u]1846; AVX2-FP-NEXT: vextracti128 $1, %ymm5, %xmm61847; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm1 = zero,zero,zero,xmm6[2,8,14],zero,zero,xmm6[0,6,12,u,u,u,u,u]1848; AVX2-FP-NEXT: vpor %xmm0, %xmm1, %xmm21849; AVX2-FP-NEXT: vmovdqa 80(%rdi), %xmm01850; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm7 = xmm0[u,u,u,u,u,u,u,u,u,u,u],zero,zero,zero,xmm0[4,10]1851; AVX2-FP-NEXT: vmovdqa 64(%rdi), %xmm11852; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm8 = xmm1[u,u,u,u,u,u,u,u,u,u,u,2,8,14],zero,zero1853; AVX2-FP-NEXT: vpor %xmm7, %xmm8, %xmm71854; AVX2-FP-NEXT: vpmovsxdq {{.*#+}} xmm8 = [18446744073709551615,16777215]1855; AVX2-FP-NEXT: vpblendvb %xmm8, %xmm2, %xmm7, %xmm21856; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm5 = xmm5[1,7,13],zero,zero,zero,xmm5[5,11],zero,zero,zero,xmm5[u,u,u,u,u]1857; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm6 = zero,zero,zero,xmm6[3,9,15],zero,zero,xmm6[1,7,13,u,u,u,u,u]1858; AVX2-FP-NEXT: vpor %xmm5, %xmm6, %xmm51859; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm6 = xmm0[u,u,u,u,u,u,u,u,u,u,u],zero,zero,zero,xmm0[5,11]1860; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm7 = xmm1[u,u,u,u,u,u,u,u,u,u,u,3,9,15],zero,zero1861; AVX2-FP-NEXT: vpor %xmm6, %xmm7, %xmm61862; AVX2-FP-NEXT: vpblendvb %xmm8, %xmm5, %xmm6, %xmm51863; AVX2-FP-NEXT: vpmovsxbw {{.*#+}} ymm6 = [65535,0,0,65535,0,0,65535,0,0,65535,0,0,65535,0,0,65535]1864; AVX2-FP-NEXT: vpblendvb %ymm6, %ymm4, %ymm3, %ymm61865; AVX2-FP-NEXT: vextracti128 $1, %ymm6, %xmm71866; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm9 = zero,zero,zero,xmm7[4,10],zero,zero,zero,xmm7[2,8,14,u,u,u,u,u]1867; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm10 = xmm6[2,8,14],zero,zero,xmm6[0,6,12],zero,zero,zero,xmm6[u,u,u,u,u]1868; AVX2-FP-NEXT: vpor %xmm9, %xmm10, %xmm91869; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm10 = xmm1[u,u,u,u,u,u,u,u,u,u,u,4,10],zero,zero,zero1870; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm11 = xmm0[u,u,u,u,u,u,u,u,u,u,u],zero,zero,xmm0[0,6,12]1871; AVX2-FP-NEXT: vpor %xmm10, %xmm11, %xmm101872; AVX2-FP-NEXT: vpblendvb %xmm8, %xmm9, %xmm10, %xmm91873; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm7 = zero,zero,zero,xmm7[5,11],zero,zero,zero,xmm7[3,9,15,u,u,u,u,u]1874; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm6 = xmm6[3,9,15],zero,zero,xmm6[1,7,13],zero,zero,zero,xmm6[u,u,u,u,u]1875; AVX2-FP-NEXT: vpor %xmm7, %xmm6, %xmm61876; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm7 = xmm1[u,u,u,u,u,u,u,u,u,u,u,5,11],zero,zero,zero1877; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm10 = xmm0[u,u,u,u,u,u,u,u,u,u,u],zero,zero,xmm0[1,7,13]1878; AVX2-FP-NEXT: vpor %xmm7, %xmm10, %xmm71879; AVX2-FP-NEXT: vpblendvb %xmm8, %xmm6, %xmm7, %xmm61880; AVX2-FP-NEXT: vpmovsxbw {{.*#+}} ymm7 = [0,65535,0,0,65535,0,0,65535,0,0,65535,0,0,65535,0,0]1881; AVX2-FP-NEXT: vpblendvb %ymm7, %ymm4, %ymm3, %ymm31882; AVX2-FP-NEXT: vextracti128 $1, %ymm3, %xmm41883; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm7 = zero,zero,xmm4[0,6,12],zero,zero,zero,xmm4[4,10,u,u,u,u,u,u]1884; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm8 = xmm3[4,10],zero,zero,zero,xmm3[2,8,14],zero,zero,xmm3[u,u,u,u,u,u]1885; AVX2-FP-NEXT: vpor %xmm7, %xmm8, %xmm71886; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm8 = xmm0[u,u,u,u,u,u,u,u,u,u],zero,zero,zero,xmm0[2,8,14]1887; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm10 = xmm1[u,u,u,u,u,u,u,u,u,u,0,6,12],zero,zero,zero1888; AVX2-FP-NEXT: vpor %xmm8, %xmm10, %xmm81889; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm7 = xmm7[0,1,2,3,4],xmm8[5,6,7]1890; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm4 = zero,zero,xmm4[1,7,13],zero,zero,zero,xmm4[5,11,u,u,u,u,u,u]1891; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm3 = xmm3[5,11],zero,zero,zero,xmm3[3,9,15],zero,zero,xmm3[u,u,u,u,u,u]1892; AVX2-FP-NEXT: vpor %xmm4, %xmm3, %xmm31893; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[u,u,u,u,u,u,u,u,u,u],zero,zero,zero,xmm0[3,9,15]1894; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm1 = xmm1[u,u,u,u,u,u,u,u,u,u,1,7,13],zero,zero,zero1895; AVX2-FP-NEXT: vpor %xmm0, %xmm1, %xmm01896; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm0 = xmm3[0,1,2,3,4],xmm0[5,6,7]1897; AVX2-FP-NEXT: vmovdqa %xmm2, (%rsi)1898; AVX2-FP-NEXT: vmovdqa %xmm5, (%rdx)1899; AVX2-FP-NEXT: vmovdqa %xmm9, (%rcx)1900; AVX2-FP-NEXT: vmovdqa %xmm6, (%r8)1901; AVX2-FP-NEXT: vmovdqa %xmm7, (%r9)1902; AVX2-FP-NEXT: vmovdqa %xmm0, (%rax)1903; AVX2-FP-NEXT: vzeroupper1904; AVX2-FP-NEXT: retq1905;1906; AVX2-FCP-LABEL: load_i8_stride6_vf16:1907; AVX2-FCP: # %bb.0:1908; AVX2-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax1909; AVX2-FCP-NEXT: vmovdqa (%rdi), %ymm31910; AVX2-FCP-NEXT: vmovdqa 32(%rdi), %ymm41911; AVX2-FCP-NEXT: vpmovsxbw {{.*#+}} ymm0 = [65535,0,0,65535,0,0,65535,0,0,65535,0,0,65535,0,0,65535]1912; AVX2-FCP-NEXT: vpblendvb %ymm0, %ymm3, %ymm4, %ymm51913; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm0 = xmm5[0,6,12],zero,zero,zero,xmm5[4,10],zero,zero,zero,xmm5[u,u,u,u,u]1914; AVX2-FCP-NEXT: vextracti128 $1, %ymm5, %xmm61915; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm1 = zero,zero,zero,xmm6[2,8,14],zero,zero,xmm6[0,6,12,u,u,u,u,u]1916; AVX2-FCP-NEXT: vpor %xmm0, %xmm1, %xmm21917; AVX2-FCP-NEXT: vmovdqa 80(%rdi), %xmm01918; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm7 = xmm0[u,u,u,u,u,u,u,u,u,u,u],zero,zero,zero,xmm0[4,10]1919; AVX2-FCP-NEXT: vmovdqa 64(%rdi), %xmm11920; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm8 = xmm1[u,u,u,u,u,u,u,u,u,u,u,2,8,14],zero,zero1921; AVX2-FCP-NEXT: vpor %xmm7, %xmm8, %xmm71922; AVX2-FCP-NEXT: vpmovsxdq {{.*#+}} xmm8 = [18446744073709551615,16777215]1923; AVX2-FCP-NEXT: vpblendvb %xmm8, %xmm2, %xmm7, %xmm21924; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm5 = xmm5[1,7,13],zero,zero,zero,xmm5[5,11],zero,zero,zero,xmm5[u,u,u,u,u]1925; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm6 = zero,zero,zero,xmm6[3,9,15],zero,zero,xmm6[1,7,13,u,u,u,u,u]1926; AVX2-FCP-NEXT: vpor %xmm5, %xmm6, %xmm51927; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm6 = xmm0[u,u,u,u,u,u,u,u,u,u,u],zero,zero,zero,xmm0[5,11]1928; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm7 = xmm1[u,u,u,u,u,u,u,u,u,u,u,3,9,15],zero,zero1929; AVX2-FCP-NEXT: vpor %xmm6, %xmm7, %xmm61930; AVX2-FCP-NEXT: vpblendvb %xmm8, %xmm5, %xmm6, %xmm51931; AVX2-FCP-NEXT: vpmovsxbw {{.*#+}} ymm6 = [65535,0,0,65535,0,0,65535,0,0,65535,0,0,65535,0,0,65535]1932; AVX2-FCP-NEXT: vpblendvb %ymm6, %ymm4, %ymm3, %ymm61933; AVX2-FCP-NEXT: vextracti128 $1, %ymm6, %xmm71934; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm9 = zero,zero,zero,xmm7[4,10],zero,zero,zero,xmm7[2,8,14,u,u,u,u,u]1935; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm10 = xmm6[2,8,14],zero,zero,xmm6[0,6,12],zero,zero,zero,xmm6[u,u,u,u,u]1936; AVX2-FCP-NEXT: vpor %xmm9, %xmm10, %xmm91937; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm10 = xmm1[u,u,u,u,u,u,u,u,u,u,u,4,10],zero,zero,zero1938; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm11 = xmm0[u,u,u,u,u,u,u,u,u,u,u],zero,zero,xmm0[0,6,12]1939; AVX2-FCP-NEXT: vpor %xmm10, %xmm11, %xmm101940; AVX2-FCP-NEXT: vpblendvb %xmm8, %xmm9, %xmm10, %xmm91941; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm7 = zero,zero,zero,xmm7[5,11],zero,zero,zero,xmm7[3,9,15,u,u,u,u,u]1942; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm6 = xmm6[3,9,15],zero,zero,xmm6[1,7,13],zero,zero,zero,xmm6[u,u,u,u,u]1943; AVX2-FCP-NEXT: vpor %xmm7, %xmm6, %xmm61944; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm7 = xmm1[u,u,u,u,u,u,u,u,u,u,u,5,11],zero,zero,zero1945; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm10 = xmm0[u,u,u,u,u,u,u,u,u,u,u],zero,zero,xmm0[1,7,13]1946; AVX2-FCP-NEXT: vpor %xmm7, %xmm10, %xmm71947; AVX2-FCP-NEXT: vpblendvb %xmm8, %xmm6, %xmm7, %xmm61948; AVX2-FCP-NEXT: vpmovsxbw {{.*#+}} ymm7 = [0,65535,0,0,65535,0,0,65535,0,0,65535,0,0,65535,0,0]1949; AVX2-FCP-NEXT: vpblendvb %ymm7, %ymm4, %ymm3, %ymm31950; AVX2-FCP-NEXT: vextracti128 $1, %ymm3, %xmm41951; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm7 = zero,zero,xmm4[0,6,12],zero,zero,zero,xmm4[4,10,u,u,u,u,u,u]1952; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm8 = xmm3[4,10],zero,zero,zero,xmm3[2,8,14],zero,zero,xmm3[u,u,u,u,u,u]1953; AVX2-FCP-NEXT: vpor %xmm7, %xmm8, %xmm71954; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm8 = xmm0[u,u,u,u,u,u,u,u,u,u],zero,zero,zero,xmm0[2,8,14]1955; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm10 = xmm1[u,u,u,u,u,u,u,u,u,u,0,6,12],zero,zero,zero1956; AVX2-FCP-NEXT: vpor %xmm8, %xmm10, %xmm81957; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm7 = xmm7[0,1,2,3,4],xmm8[5,6,7]1958; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm4 = zero,zero,xmm4[1,7,13],zero,zero,zero,xmm4[5,11,u,u,u,u,u,u]1959; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm3 = xmm3[5,11],zero,zero,zero,xmm3[3,9,15],zero,zero,xmm3[u,u,u,u,u,u]1960; AVX2-FCP-NEXT: vpor %xmm4, %xmm3, %xmm31961; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[u,u,u,u,u,u,u,u,u,u],zero,zero,zero,xmm0[3,9,15]1962; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm1 = xmm1[u,u,u,u,u,u,u,u,u,u,1,7,13],zero,zero,zero1963; AVX2-FCP-NEXT: vpor %xmm0, %xmm1, %xmm01964; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm0 = xmm3[0,1,2,3,4],xmm0[5,6,7]1965; AVX2-FCP-NEXT: vmovdqa %xmm2, (%rsi)1966; AVX2-FCP-NEXT: vmovdqa %xmm5, (%rdx)1967; AVX2-FCP-NEXT: vmovdqa %xmm9, (%rcx)1968; AVX2-FCP-NEXT: vmovdqa %xmm6, (%r8)1969; AVX2-FCP-NEXT: vmovdqa %xmm7, (%r9)1970; AVX2-FCP-NEXT: vmovdqa %xmm0, (%rax)1971; AVX2-FCP-NEXT: vzeroupper1972; AVX2-FCP-NEXT: retq1973;1974; AVX512-LABEL: load_i8_stride6_vf16:1975; AVX512: # %bb.0:1976; AVX512-NEXT: movq {{[0-9]+}}(%rsp), %rax1977; AVX512-NEXT: vmovdqa {{.*#+}} ymm0 = [65535,65535,0,65535,65535,0,65535,65535,0,65535,65535,0,65535,65535,0,65535]1978; AVX512-NEXT: vmovdqa (%rdi), %ymm31979; AVX512-NEXT: vmovdqa 32(%rdi), %ymm41980; AVX512-NEXT: vmovdqa %ymm0, %ymm51981; AVX512-NEXT: vpternlogq {{.*#+}} ymm5 = ymm4 ^ (ymm5 & (ymm3 ^ ymm4))1982; AVX512-NEXT: vpshufb {{.*#+}} xmm1 = xmm5[0,6,12],zero,zero,zero,xmm5[4,10],zero,zero,zero,xmm5[u,u,u,u,u]1983; AVX512-NEXT: vextracti128 $1, %ymm5, %xmm61984; AVX512-NEXT: vpshufb {{.*#+}} xmm2 = zero,zero,zero,xmm6[2,8,14],zero,zero,xmm6[0,6,12,u,u,u,u,u]1985; AVX512-NEXT: vpor %xmm1, %xmm2, %xmm71986; AVX512-NEXT: vmovdqa 80(%rdi), %xmm21987; AVX512-NEXT: vpshufb {{.*#+}} xmm8 = xmm2[u,u,u,u,u,u,u,u,u,u,u],zero,zero,zero,xmm2[4,10]1988; AVX512-NEXT: vmovdqa 64(%rdi), %xmm11989; AVX512-NEXT: vpshufb {{.*#+}} xmm9 = xmm1[u,u,u,u,u,u,u,u,u,u,u,2,8,14],zero,zero1990; AVX512-NEXT: vpor %xmm8, %xmm9, %xmm81991; AVX512-NEXT: vpmovsxdq {{.*#+}} xmm9 = [18446744073709551615,16777215]1992; AVX512-NEXT: vpternlogq {{.*#+}} xmm8 = xmm8 ^ (xmm9 & (xmm8 ^ xmm7))1993; AVX512-NEXT: vpshufb {{.*#+}} xmm5 = xmm5[1,7,13],zero,zero,zero,xmm5[5,11],zero,zero,zero,xmm5[u,u,u,u,u]1994; AVX512-NEXT: vpshufb {{.*#+}} xmm6 = zero,zero,zero,xmm6[3,9,15],zero,zero,xmm6[1,7,13,u,u,u,u,u]1995; AVX512-NEXT: vpor %xmm5, %xmm6, %xmm51996; AVX512-NEXT: vpshufb {{.*#+}} xmm6 = xmm2[u,u,u,u,u,u,u,u,u,u,u],zero,zero,zero,xmm2[5,11]1997; AVX512-NEXT: vpshufb {{.*#+}} xmm7 = xmm1[u,u,u,u,u,u,u,u,u,u,u,3,9,15],zero,zero1998; AVX512-NEXT: vpor %xmm6, %xmm7, %xmm61999; AVX512-NEXT: vpternlogq {{.*#+}} xmm6 = xmm6 ^ (xmm9 & (xmm6 ^ xmm5))2000; AVX512-NEXT: vpshufb {{.*#+}} xmm5 = xmm1[u,u,u,u,u,u,u,u,u,u,u,4,10],zero,zero,zero2001; AVX512-NEXT: vpshufb {{.*#+}} xmm7 = xmm2[u,u,u,u,u,u,u,u,u,u,u],zero,zero,xmm2[0,6,12]2002; AVX512-NEXT: vpor %xmm5, %xmm7, %xmm52003; AVX512-NEXT: vmovdqa {{.*#+}} ymm7 = [65535,0,65535,65535,0,65535,65535,0,65535,65535,0,65535,65535,0,65535,65535]2004; AVX512-NEXT: vpternlogq {{.*#+}} ymm7 = ymm3 ^ (ymm7 & (ymm4 ^ ymm3))2005; AVX512-NEXT: vextracti128 $1, %ymm7, %xmm102006; AVX512-NEXT: vpshufb {{.*#+}} xmm11 = zero,zero,zero,xmm10[4,10],zero,zero,zero,xmm10[2,8,14,u,u,u,u,u]2007; AVX512-NEXT: vpshufb {{.*#+}} xmm12 = xmm7[2,8,14],zero,zero,xmm7[0,6,12],zero,zero,zero,xmm7[u,u,u,u,u]2008; AVX512-NEXT: vpor %xmm11, %xmm12, %xmm112009; AVX512-NEXT: vpternlogq {{.*#+}} xmm11 = xmm5 ^ (xmm9 & (xmm11 ^ xmm5))2010; AVX512-NEXT: vpshufb {{.*#+}} xmm5 = xmm1[u,u,u,u,u,u,u,u,u,u,u,5,11],zero,zero,zero2011; AVX512-NEXT: vpshufb {{.*#+}} xmm12 = xmm2[u,u,u,u,u,u,u,u,u,u,u],zero,zero,xmm2[1,7,13]2012; AVX512-NEXT: vpor %xmm5, %xmm12, %xmm52013; AVX512-NEXT: vpshufb {{.*#+}} xmm10 = zero,zero,zero,xmm10[5,11],zero,zero,zero,xmm10[3,9,15,u,u,u,u,u]2014; AVX512-NEXT: vpshufb {{.*#+}} xmm7 = xmm7[3,9,15],zero,zero,xmm7[1,7,13],zero,zero,zero,xmm7[u,u,u,u,u]2015; AVX512-NEXT: vpor %xmm7, %xmm10, %xmm72016; AVX512-NEXT: vpternlogq {{.*#+}} xmm7 = xmm5 ^ (xmm9 & (xmm7 ^ xmm5))2017; AVX512-NEXT: vmovdqa {{.*#+}} xmm5 = [128,128,0,6,12,128,128,128,4,10,128,128,128,2,8,14]2018; AVX512-NEXT: vpshufb %xmm5, %xmm2, %xmm92019; AVX512-NEXT: vpternlogq {{.*#+}} ymm0 = ymm3 ^ (ymm0 & (ymm4 ^ ymm3))2020; AVX512-NEXT: vextracti128 $1, %ymm0, %xmm32021; AVX512-NEXT: vpshufb %xmm5, %xmm3, %xmm42022; AVX512-NEXT: vpblendw {{.*#+}} xmm4 = xmm4[0,1,2,3,4],xmm9[5,6,7]2023; AVX512-NEXT: vmovdqa {{.*#+}} xmm5 = [4,10,128,128,128,2,8,14,128,128,0,6,12,128,128,128]2024; AVX512-NEXT: vpshufb %xmm5, %xmm1, %xmm92025; AVX512-NEXT: vpshufb %xmm5, %xmm0, %xmm52026; AVX512-NEXT: vpblendw {{.*#+}} xmm5 = xmm5[0,1,2,3,4],xmm9[5,6,7]2027; AVX512-NEXT: vpor %xmm4, %xmm5, %xmm42028; AVX512-NEXT: vmovdqa {{.*#+}} xmm5 = [128,128,1,7,13,128,128,128,5,11,128,128,128,3,9,15]2029; AVX512-NEXT: vpshufb %xmm5, %xmm2, %xmm22030; AVX512-NEXT: vpshufb %xmm5, %xmm3, %xmm32031; AVX512-NEXT: vpblendw {{.*#+}} xmm2 = xmm3[0,1,2,3,4],xmm2[5,6,7]2032; AVX512-NEXT: vmovdqa {{.*#+}} xmm3 = [5,11,128,128,128,3,9,15,128,128,1,7,13,128,128,128]2033; AVX512-NEXT: vpshufb %xmm3, %xmm1, %xmm12034; AVX512-NEXT: vpshufb %xmm3, %xmm0, %xmm02035; AVX512-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2,3,4],xmm1[5,6,7]2036; AVX512-NEXT: vpor %xmm2, %xmm0, %xmm02037; AVX512-NEXT: vmovdqa %xmm8, (%rsi)2038; AVX512-NEXT: vmovdqa %xmm6, (%rdx)2039; AVX512-NEXT: vmovdqa %xmm11, (%rcx)2040; AVX512-NEXT: vmovdqa %xmm7, (%r8)2041; AVX512-NEXT: vmovdqa %xmm4, (%r9)2042; AVX512-NEXT: vmovdqa %xmm0, (%rax)2043; AVX512-NEXT: vzeroupper2044; AVX512-NEXT: retq2045;2046; AVX512-FCP-LABEL: load_i8_stride6_vf16:2047; AVX512-FCP: # %bb.0:2048; AVX512-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax2049; AVX512-FCP-NEXT: vmovdqa {{.*#+}} ymm0 = [65535,65535,0,65535,65535,0,65535,65535,0,65535,65535,0,65535,65535,0,65535]2050; AVX512-FCP-NEXT: vmovdqa (%rdi), %ymm32051; AVX512-FCP-NEXT: vmovdqa 32(%rdi), %ymm42052; AVX512-FCP-NEXT: vmovdqa %ymm0, %ymm52053; AVX512-FCP-NEXT: vpternlogq {{.*#+}} ymm5 = ymm4 ^ (ymm5 & (ymm3 ^ ymm4))2054; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm1 = xmm5[0,6,12],zero,zero,zero,xmm5[4,10],zero,zero,zero,xmm5[u,u,u,u,u]2055; AVX512-FCP-NEXT: vextracti128 $1, %ymm5, %xmm62056; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm2 = zero,zero,zero,xmm6[2,8,14],zero,zero,xmm6[0,6,12,u,u,u,u,u]2057; AVX512-FCP-NEXT: vpor %xmm1, %xmm2, %xmm72058; AVX512-FCP-NEXT: vmovdqa 80(%rdi), %xmm22059; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm8 = xmm2[u,u,u,u,u,u,u,u,u,u,u],zero,zero,zero,xmm2[4,10]2060; AVX512-FCP-NEXT: vmovdqa 64(%rdi), %xmm12061; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm9 = xmm1[u,u,u,u,u,u,u,u,u,u,u,2,8,14],zero,zero2062; AVX512-FCP-NEXT: vpor %xmm8, %xmm9, %xmm82063; AVX512-FCP-NEXT: vpmovsxdq {{.*#+}} xmm9 = [18446744073709551615,16777215]2064; AVX512-FCP-NEXT: vpternlogq {{.*#+}} xmm8 = xmm8 ^ (xmm9 & (xmm8 ^ xmm7))2065; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm5 = xmm5[1,7,13],zero,zero,zero,xmm5[5,11],zero,zero,zero,xmm5[u,u,u,u,u]2066; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm6 = zero,zero,zero,xmm6[3,9,15],zero,zero,xmm6[1,7,13,u,u,u,u,u]2067; AVX512-FCP-NEXT: vpor %xmm5, %xmm6, %xmm52068; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm6 = xmm2[u,u,u,u,u,u,u,u,u,u,u],zero,zero,zero,xmm2[5,11]2069; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm7 = xmm1[u,u,u,u,u,u,u,u,u,u,u,3,9,15],zero,zero2070; AVX512-FCP-NEXT: vpor %xmm6, %xmm7, %xmm62071; AVX512-FCP-NEXT: vpternlogq {{.*#+}} xmm6 = xmm6 ^ (xmm9 & (xmm6 ^ xmm5))2072; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm5 = xmm1[u,u,u,u,u,u,u,u,u,u,u,4,10],zero,zero,zero2073; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm7 = xmm2[u,u,u,u,u,u,u,u,u,u,u],zero,zero,xmm2[0,6,12]2074; AVX512-FCP-NEXT: vpor %xmm5, %xmm7, %xmm52075; AVX512-FCP-NEXT: vmovdqa {{.*#+}} ymm7 = [65535,0,65535,65535,0,65535,65535,0,65535,65535,0,65535,65535,0,65535,65535]2076; AVX512-FCP-NEXT: vpternlogq {{.*#+}} ymm7 = ymm3 ^ (ymm7 & (ymm4 ^ ymm3))2077; AVX512-FCP-NEXT: vextracti128 $1, %ymm7, %xmm102078; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm11 = zero,zero,zero,xmm10[4,10],zero,zero,zero,xmm10[2,8,14,u,u,u,u,u]2079; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm12 = xmm7[2,8,14],zero,zero,xmm7[0,6,12],zero,zero,zero,xmm7[u,u,u,u,u]2080; AVX512-FCP-NEXT: vpor %xmm11, %xmm12, %xmm112081; AVX512-FCP-NEXT: vpternlogq {{.*#+}} xmm11 = xmm5 ^ (xmm9 & (xmm11 ^ xmm5))2082; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm5 = xmm1[u,u,u,u,u,u,u,u,u,u,u,5,11],zero,zero,zero2083; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm12 = xmm2[u,u,u,u,u,u,u,u,u,u,u],zero,zero,xmm2[1,7,13]2084; AVX512-FCP-NEXT: vpor %xmm5, %xmm12, %xmm52085; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm10 = zero,zero,zero,xmm10[5,11],zero,zero,zero,xmm10[3,9,15,u,u,u,u,u]2086; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm7 = xmm7[3,9,15],zero,zero,xmm7[1,7,13],zero,zero,zero,xmm7[u,u,u,u,u]2087; AVX512-FCP-NEXT: vpor %xmm7, %xmm10, %xmm72088; AVX512-FCP-NEXT: vpternlogq {{.*#+}} xmm7 = xmm5 ^ (xmm9 & (xmm7 ^ xmm5))2089; AVX512-FCP-NEXT: vmovdqa {{.*#+}} xmm5 = [128,128,0,6,12,128,128,128,4,10,128,128,128,2,8,14]2090; AVX512-FCP-NEXT: vpshufb %xmm5, %xmm2, %xmm92091; AVX512-FCP-NEXT: vpternlogq {{.*#+}} ymm0 = ymm3 ^ (ymm0 & (ymm4 ^ ymm3))2092; AVX512-FCP-NEXT: vextracti128 $1, %ymm0, %xmm32093; AVX512-FCP-NEXT: vpshufb %xmm5, %xmm3, %xmm42094; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm4 = xmm4[0,1,2,3,4],xmm9[5,6,7]2095; AVX512-FCP-NEXT: vmovdqa {{.*#+}} xmm5 = [4,10,128,128,128,2,8,14,128,128,0,6,12,128,128,128]2096; AVX512-FCP-NEXT: vpshufb %xmm5, %xmm1, %xmm92097; AVX512-FCP-NEXT: vpshufb %xmm5, %xmm0, %xmm52098; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm5 = xmm5[0,1,2,3,4],xmm9[5,6,7]2099; AVX512-FCP-NEXT: vpor %xmm4, %xmm5, %xmm42100; AVX512-FCP-NEXT: vmovdqa {{.*#+}} xmm5 = [128,128,1,7,13,128,128,128,5,11,128,128,128,3,9,15]2101; AVX512-FCP-NEXT: vpshufb %xmm5, %xmm2, %xmm22102; AVX512-FCP-NEXT: vpshufb %xmm5, %xmm3, %xmm32103; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm2 = xmm3[0,1,2,3,4],xmm2[5,6,7]2104; AVX512-FCP-NEXT: vmovdqa {{.*#+}} xmm3 = [5,11,128,128,128,3,9,15,128,128,1,7,13,128,128,128]2105; AVX512-FCP-NEXT: vpshufb %xmm3, %xmm1, %xmm12106; AVX512-FCP-NEXT: vpshufb %xmm3, %xmm0, %xmm02107; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2,3,4],xmm1[5,6,7]2108; AVX512-FCP-NEXT: vpor %xmm2, %xmm0, %xmm02109; AVX512-FCP-NEXT: vmovdqa %xmm8, (%rsi)2110; AVX512-FCP-NEXT: vmovdqa %xmm6, (%rdx)2111; AVX512-FCP-NEXT: vmovdqa %xmm11, (%rcx)2112; AVX512-FCP-NEXT: vmovdqa %xmm7, (%r8)2113; AVX512-FCP-NEXT: vmovdqa %xmm4, (%r9)2114; AVX512-FCP-NEXT: vmovdqa %xmm0, (%rax)2115; AVX512-FCP-NEXT: vzeroupper2116; AVX512-FCP-NEXT: retq2117;2118; AVX512DQ-LABEL: load_i8_stride6_vf16:2119; AVX512DQ: # %bb.0:2120; AVX512DQ-NEXT: movq {{[0-9]+}}(%rsp), %rax2121; AVX512DQ-NEXT: vmovdqa {{.*#+}} ymm0 = [65535,65535,0,65535,65535,0,65535,65535,0,65535,65535,0,65535,65535,0,65535]2122; AVX512DQ-NEXT: vmovdqa (%rdi), %ymm32123; AVX512DQ-NEXT: vmovdqa 32(%rdi), %ymm42124; AVX512DQ-NEXT: vmovdqa %ymm0, %ymm52125; AVX512DQ-NEXT: vpternlogq {{.*#+}} ymm5 = ymm4 ^ (ymm5 & (ymm3 ^ ymm4))2126; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm1 = xmm5[0,6,12],zero,zero,zero,xmm5[4,10],zero,zero,zero,xmm5[u,u,u,u,u]2127; AVX512DQ-NEXT: vextracti128 $1, %ymm5, %xmm62128; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm2 = zero,zero,zero,xmm6[2,8,14],zero,zero,xmm6[0,6,12,u,u,u,u,u]2129; AVX512DQ-NEXT: vpor %xmm1, %xmm2, %xmm72130; AVX512DQ-NEXT: vmovdqa 80(%rdi), %xmm22131; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm8 = xmm2[u,u,u,u,u,u,u,u,u,u,u],zero,zero,zero,xmm2[4,10]2132; AVX512DQ-NEXT: vmovdqa 64(%rdi), %xmm12133; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm9 = xmm1[u,u,u,u,u,u,u,u,u,u,u,2,8,14],zero,zero2134; AVX512DQ-NEXT: vpor %xmm8, %xmm9, %xmm82135; AVX512DQ-NEXT: vpmovsxdq {{.*#+}} xmm9 = [18446744073709551615,16777215]2136; AVX512DQ-NEXT: vpternlogq {{.*#+}} xmm8 = xmm8 ^ (xmm9 & (xmm8 ^ xmm7))2137; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm5 = xmm5[1,7,13],zero,zero,zero,xmm5[5,11],zero,zero,zero,xmm5[u,u,u,u,u]2138; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm6 = zero,zero,zero,xmm6[3,9,15],zero,zero,xmm6[1,7,13,u,u,u,u,u]2139; AVX512DQ-NEXT: vpor %xmm5, %xmm6, %xmm52140; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm6 = xmm2[u,u,u,u,u,u,u,u,u,u,u],zero,zero,zero,xmm2[5,11]2141; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm7 = xmm1[u,u,u,u,u,u,u,u,u,u,u,3,9,15],zero,zero2142; AVX512DQ-NEXT: vpor %xmm6, %xmm7, %xmm62143; AVX512DQ-NEXT: vpternlogq {{.*#+}} xmm6 = xmm6 ^ (xmm9 & (xmm6 ^ xmm5))2144; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm5 = xmm1[u,u,u,u,u,u,u,u,u,u,u,4,10],zero,zero,zero2145; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm7 = xmm2[u,u,u,u,u,u,u,u,u,u,u],zero,zero,xmm2[0,6,12]2146; AVX512DQ-NEXT: vpor %xmm5, %xmm7, %xmm52147; AVX512DQ-NEXT: vmovdqa {{.*#+}} ymm7 = [65535,0,65535,65535,0,65535,65535,0,65535,65535,0,65535,65535,0,65535,65535]2148; AVX512DQ-NEXT: vpternlogq {{.*#+}} ymm7 = ymm3 ^ (ymm7 & (ymm4 ^ ymm3))2149; AVX512DQ-NEXT: vextracti128 $1, %ymm7, %xmm102150; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm11 = zero,zero,zero,xmm10[4,10],zero,zero,zero,xmm10[2,8,14,u,u,u,u,u]2151; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm12 = xmm7[2,8,14],zero,zero,xmm7[0,6,12],zero,zero,zero,xmm7[u,u,u,u,u]2152; AVX512DQ-NEXT: vpor %xmm11, %xmm12, %xmm112153; AVX512DQ-NEXT: vpternlogq {{.*#+}} xmm11 = xmm5 ^ (xmm9 & (xmm11 ^ xmm5))2154; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm5 = xmm1[u,u,u,u,u,u,u,u,u,u,u,5,11],zero,zero,zero2155; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm12 = xmm2[u,u,u,u,u,u,u,u,u,u,u],zero,zero,xmm2[1,7,13]2156; AVX512DQ-NEXT: vpor %xmm5, %xmm12, %xmm52157; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm10 = zero,zero,zero,xmm10[5,11],zero,zero,zero,xmm10[3,9,15,u,u,u,u,u]2158; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm7 = xmm7[3,9,15],zero,zero,xmm7[1,7,13],zero,zero,zero,xmm7[u,u,u,u,u]2159; AVX512DQ-NEXT: vpor %xmm7, %xmm10, %xmm72160; AVX512DQ-NEXT: vpternlogq {{.*#+}} xmm7 = xmm5 ^ (xmm9 & (xmm7 ^ xmm5))2161; AVX512DQ-NEXT: vmovdqa {{.*#+}} xmm5 = [128,128,0,6,12,128,128,128,4,10,128,128,128,2,8,14]2162; AVX512DQ-NEXT: vpshufb %xmm5, %xmm2, %xmm92163; AVX512DQ-NEXT: vpternlogq {{.*#+}} ymm0 = ymm3 ^ (ymm0 & (ymm4 ^ ymm3))2164; AVX512DQ-NEXT: vextracti128 $1, %ymm0, %xmm32165; AVX512DQ-NEXT: vpshufb %xmm5, %xmm3, %xmm42166; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm4 = xmm4[0,1,2,3,4],xmm9[5,6,7]2167; AVX512DQ-NEXT: vmovdqa {{.*#+}} xmm5 = [4,10,128,128,128,2,8,14,128,128,0,6,12,128,128,128]2168; AVX512DQ-NEXT: vpshufb %xmm5, %xmm1, %xmm92169; AVX512DQ-NEXT: vpshufb %xmm5, %xmm0, %xmm52170; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm5 = xmm5[0,1,2,3,4],xmm9[5,6,7]2171; AVX512DQ-NEXT: vpor %xmm4, %xmm5, %xmm42172; AVX512DQ-NEXT: vmovdqa {{.*#+}} xmm5 = [128,128,1,7,13,128,128,128,5,11,128,128,128,3,9,15]2173; AVX512DQ-NEXT: vpshufb %xmm5, %xmm2, %xmm22174; AVX512DQ-NEXT: vpshufb %xmm5, %xmm3, %xmm32175; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm2 = xmm3[0,1,2,3,4],xmm2[5,6,7]2176; AVX512DQ-NEXT: vmovdqa {{.*#+}} xmm3 = [5,11,128,128,128,3,9,15,128,128,1,7,13,128,128,128]2177; AVX512DQ-NEXT: vpshufb %xmm3, %xmm1, %xmm12178; AVX512DQ-NEXT: vpshufb %xmm3, %xmm0, %xmm02179; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2,3,4],xmm1[5,6,7]2180; AVX512DQ-NEXT: vpor %xmm2, %xmm0, %xmm02181; AVX512DQ-NEXT: vmovdqa %xmm8, (%rsi)2182; AVX512DQ-NEXT: vmovdqa %xmm6, (%rdx)2183; AVX512DQ-NEXT: vmovdqa %xmm11, (%rcx)2184; AVX512DQ-NEXT: vmovdqa %xmm7, (%r8)2185; AVX512DQ-NEXT: vmovdqa %xmm4, (%r9)2186; AVX512DQ-NEXT: vmovdqa %xmm0, (%rax)2187; AVX512DQ-NEXT: vzeroupper2188; AVX512DQ-NEXT: retq2189;2190; AVX512DQ-FCP-LABEL: load_i8_stride6_vf16:2191; AVX512DQ-FCP: # %bb.0:2192; AVX512DQ-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax2193; AVX512DQ-FCP-NEXT: vmovdqa {{.*#+}} ymm0 = [65535,65535,0,65535,65535,0,65535,65535,0,65535,65535,0,65535,65535,0,65535]2194; AVX512DQ-FCP-NEXT: vmovdqa (%rdi), %ymm32195; AVX512DQ-FCP-NEXT: vmovdqa 32(%rdi), %ymm42196; AVX512DQ-FCP-NEXT: vmovdqa %ymm0, %ymm52197; AVX512DQ-FCP-NEXT: vpternlogq {{.*#+}} ymm5 = ymm4 ^ (ymm5 & (ymm3 ^ ymm4))2198; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm1 = xmm5[0,6,12],zero,zero,zero,xmm5[4,10],zero,zero,zero,xmm5[u,u,u,u,u]2199; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm5, %xmm62200; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm2 = zero,zero,zero,xmm6[2,8,14],zero,zero,xmm6[0,6,12,u,u,u,u,u]2201; AVX512DQ-FCP-NEXT: vpor %xmm1, %xmm2, %xmm72202; AVX512DQ-FCP-NEXT: vmovdqa 80(%rdi), %xmm22203; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm8 = xmm2[u,u,u,u,u,u,u,u,u,u,u],zero,zero,zero,xmm2[4,10]2204; AVX512DQ-FCP-NEXT: vmovdqa 64(%rdi), %xmm12205; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm9 = xmm1[u,u,u,u,u,u,u,u,u,u,u,2,8,14],zero,zero2206; AVX512DQ-FCP-NEXT: vpor %xmm8, %xmm9, %xmm82207; AVX512DQ-FCP-NEXT: vpmovsxdq {{.*#+}} xmm9 = [18446744073709551615,16777215]2208; AVX512DQ-FCP-NEXT: vpternlogq {{.*#+}} xmm8 = xmm8 ^ (xmm9 & (xmm8 ^ xmm7))2209; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm5 = xmm5[1,7,13],zero,zero,zero,xmm5[5,11],zero,zero,zero,xmm5[u,u,u,u,u]2210; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm6 = zero,zero,zero,xmm6[3,9,15],zero,zero,xmm6[1,7,13,u,u,u,u,u]2211; AVX512DQ-FCP-NEXT: vpor %xmm5, %xmm6, %xmm52212; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm6 = xmm2[u,u,u,u,u,u,u,u,u,u,u],zero,zero,zero,xmm2[5,11]2213; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm7 = xmm1[u,u,u,u,u,u,u,u,u,u,u,3,9,15],zero,zero2214; AVX512DQ-FCP-NEXT: vpor %xmm6, %xmm7, %xmm62215; AVX512DQ-FCP-NEXT: vpternlogq {{.*#+}} xmm6 = xmm6 ^ (xmm9 & (xmm6 ^ xmm5))2216; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm5 = xmm1[u,u,u,u,u,u,u,u,u,u,u,4,10],zero,zero,zero2217; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm7 = xmm2[u,u,u,u,u,u,u,u,u,u,u],zero,zero,xmm2[0,6,12]2218; AVX512DQ-FCP-NEXT: vpor %xmm5, %xmm7, %xmm52219; AVX512DQ-FCP-NEXT: vmovdqa {{.*#+}} ymm7 = [65535,0,65535,65535,0,65535,65535,0,65535,65535,0,65535,65535,0,65535,65535]2220; AVX512DQ-FCP-NEXT: vpternlogq {{.*#+}} ymm7 = ymm3 ^ (ymm7 & (ymm4 ^ ymm3))2221; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm7, %xmm102222; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm11 = zero,zero,zero,xmm10[4,10],zero,zero,zero,xmm10[2,8,14,u,u,u,u,u]2223; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm12 = xmm7[2,8,14],zero,zero,xmm7[0,6,12],zero,zero,zero,xmm7[u,u,u,u,u]2224; AVX512DQ-FCP-NEXT: vpor %xmm11, %xmm12, %xmm112225; AVX512DQ-FCP-NEXT: vpternlogq {{.*#+}} xmm11 = xmm5 ^ (xmm9 & (xmm11 ^ xmm5))2226; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm5 = xmm1[u,u,u,u,u,u,u,u,u,u,u,5,11],zero,zero,zero2227; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm12 = xmm2[u,u,u,u,u,u,u,u,u,u,u],zero,zero,xmm2[1,7,13]2228; AVX512DQ-FCP-NEXT: vpor %xmm5, %xmm12, %xmm52229; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm10 = zero,zero,zero,xmm10[5,11],zero,zero,zero,xmm10[3,9,15,u,u,u,u,u]2230; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm7 = xmm7[3,9,15],zero,zero,xmm7[1,7,13],zero,zero,zero,xmm7[u,u,u,u,u]2231; AVX512DQ-FCP-NEXT: vpor %xmm7, %xmm10, %xmm72232; AVX512DQ-FCP-NEXT: vpternlogq {{.*#+}} xmm7 = xmm5 ^ (xmm9 & (xmm7 ^ xmm5))2233; AVX512DQ-FCP-NEXT: vmovdqa {{.*#+}} xmm5 = [128,128,0,6,12,128,128,128,4,10,128,128,128,2,8,14]2234; AVX512DQ-FCP-NEXT: vpshufb %xmm5, %xmm2, %xmm92235; AVX512DQ-FCP-NEXT: vpternlogq {{.*#+}} ymm0 = ymm3 ^ (ymm0 & (ymm4 ^ ymm3))2236; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm0, %xmm32237; AVX512DQ-FCP-NEXT: vpshufb %xmm5, %xmm3, %xmm42238; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm4 = xmm4[0,1,2,3,4],xmm9[5,6,7]2239; AVX512DQ-FCP-NEXT: vmovdqa {{.*#+}} xmm5 = [4,10,128,128,128,2,8,14,128,128,0,6,12,128,128,128]2240; AVX512DQ-FCP-NEXT: vpshufb %xmm5, %xmm1, %xmm92241; AVX512DQ-FCP-NEXT: vpshufb %xmm5, %xmm0, %xmm52242; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm5 = xmm5[0,1,2,3,4],xmm9[5,6,7]2243; AVX512DQ-FCP-NEXT: vpor %xmm4, %xmm5, %xmm42244; AVX512DQ-FCP-NEXT: vmovdqa {{.*#+}} xmm5 = [128,128,1,7,13,128,128,128,5,11,128,128,128,3,9,15]2245; AVX512DQ-FCP-NEXT: vpshufb %xmm5, %xmm2, %xmm22246; AVX512DQ-FCP-NEXT: vpshufb %xmm5, %xmm3, %xmm32247; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm2 = xmm3[0,1,2,3,4],xmm2[5,6,7]2248; AVX512DQ-FCP-NEXT: vmovdqa {{.*#+}} xmm3 = [5,11,128,128,128,3,9,15,128,128,1,7,13,128,128,128]2249; AVX512DQ-FCP-NEXT: vpshufb %xmm3, %xmm1, %xmm12250; AVX512DQ-FCP-NEXT: vpshufb %xmm3, %xmm0, %xmm02251; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2,3,4],xmm1[5,6,7]2252; AVX512DQ-FCP-NEXT: vpor %xmm2, %xmm0, %xmm02253; AVX512DQ-FCP-NEXT: vmovdqa %xmm8, (%rsi)2254; AVX512DQ-FCP-NEXT: vmovdqa %xmm6, (%rdx)2255; AVX512DQ-FCP-NEXT: vmovdqa %xmm11, (%rcx)2256; AVX512DQ-FCP-NEXT: vmovdqa %xmm7, (%r8)2257; AVX512DQ-FCP-NEXT: vmovdqa %xmm4, (%r9)2258; AVX512DQ-FCP-NEXT: vmovdqa %xmm0, (%rax)2259; AVX512DQ-FCP-NEXT: vzeroupper2260; AVX512DQ-FCP-NEXT: retq2261;2262; AVX512BW-LABEL: load_i8_stride6_vf16:2263; AVX512BW: # %bb.0:2264; AVX512BW-NEXT: movq {{[0-9]+}}(%rsp), %rax2265; AVX512BW-NEXT: vmovdqa (%rdi), %ymm12266; AVX512BW-NEXT: vmovdqa 32(%rdi), %ymm02267; AVX512BW-NEXT: movw $18724, %r10w # imm = 0x49242268; AVX512BW-NEXT: kmovd %r10d, %k12269; AVX512BW-NEXT: vpblendmw %ymm0, %ymm1, %ymm2 {%k1}2270; AVX512BW-NEXT: vpshufb {{.*#+}} xmm3 = xmm2[0,6,12],zero,zero,zero,xmm2[4,10],zero,zero,zero,xmm2[u,u,u,u,u]2271; AVX512BW-NEXT: vextracti128 $1, %ymm2, %xmm42272; AVX512BW-NEXT: vpshufb {{.*#+}} xmm5 = zero,zero,zero,xmm4[2,8,14],zero,zero,xmm4[0,6,12,u,u,u,u,u]2273; AVX512BW-NEXT: vpor %xmm3, %xmm5, %xmm32274; AVX512BW-NEXT: vmovdqa 80(%rdi), %xmm52275; AVX512BW-NEXT: vpshufb {{.*#+}} xmm6 = xmm5[u,u,u,u,u,u,u,u,u,u,u],zero,zero,zero,xmm5[4,10]2276; AVX512BW-NEXT: vmovdqa 64(%rdi), %xmm72277; AVX512BW-NEXT: vpshufb {{.*#+}} xmm8 = xmm7[u,u,u,u,u,u,u,u,u,u,u,2,8,14],zero,zero2278; AVX512BW-NEXT: vpor %xmm6, %xmm8, %xmm62279; AVX512BW-NEXT: movw $-2048, %di # imm = 0xF8002280; AVX512BW-NEXT: kmovd %edi, %k22281; AVX512BW-NEXT: vmovdqu8 %xmm6, %xmm3 {%k2}2282; AVX512BW-NEXT: vpshufb {{.*#+}} xmm2 = xmm2[1,7,13],zero,zero,zero,xmm2[5,11],zero,zero,zero,xmm2[u,u,u,u,u]2283; AVX512BW-NEXT: vpshufb {{.*#+}} xmm4 = zero,zero,zero,xmm4[3,9,15],zero,zero,xmm4[1,7,13,u,u,u,u,u]2284; AVX512BW-NEXT: vpor %xmm2, %xmm4, %xmm22285; AVX512BW-NEXT: vpshufb {{.*#+}} xmm4 = xmm5[u,u,u,u,u,u,u,u,u,u,u],zero,zero,zero,xmm5[5,11]2286; AVX512BW-NEXT: vpshufb {{.*#+}} xmm6 = xmm7[u,u,u,u,u,u,u,u,u,u,u,3,9,15],zero,zero2287; AVX512BW-NEXT: vpor %xmm4, %xmm6, %xmm42288; AVX512BW-NEXT: vmovdqu8 %xmm4, %xmm2 {%k2}2289; AVX512BW-NEXT: movw $9362, %di # imm = 0x24922290; AVX512BW-NEXT: kmovd %edi, %k32291; AVX512BW-NEXT: vpblendmw %ymm1, %ymm0, %ymm4 {%k3}2292; AVX512BW-NEXT: vextracti128 $1, %ymm4, %xmm62293; AVX512BW-NEXT: vpshufb {{.*#+}} xmm8 = zero,zero,zero,xmm6[4,10],zero,zero,zero,xmm6[2,8,14,u,u,u,u,u]2294; AVX512BW-NEXT: vpshufb {{.*#+}} xmm9 = xmm4[2,8,14],zero,zero,xmm4[0,6,12],zero,zero,zero,xmm4[u,u,u,u,u]2295; AVX512BW-NEXT: vpor %xmm8, %xmm9, %xmm82296; AVX512BW-NEXT: vpshufb {{.*#+}} xmm9 = xmm7[u,u,u,u,u,u,u,u,u,u,u,4,10],zero,zero,zero2297; AVX512BW-NEXT: vpshufb {{.*#+}} xmm10 = xmm5[u,u,u,u,u,u,u,u,u,u,u],zero,zero,xmm5[0,6,12]2298; AVX512BW-NEXT: vpor %xmm9, %xmm10, %xmm92299; AVX512BW-NEXT: vmovdqu8 %xmm9, %xmm8 {%k2}2300; AVX512BW-NEXT: vpshufb {{.*#+}} xmm6 = zero,zero,zero,xmm6[5,11],zero,zero,zero,xmm6[3,9,15,u,u,u,u,u]2301; AVX512BW-NEXT: vpshufb {{.*#+}} xmm4 = xmm4[3,9,15],zero,zero,xmm4[1,7,13],zero,zero,zero,xmm4[u,u,u,u,u]2302; AVX512BW-NEXT: vpor %xmm6, %xmm4, %xmm42303; AVX512BW-NEXT: vpshufb {{.*#+}} xmm6 = xmm7[u,u,u,u,u,u,u,u,u,u,u,5,11],zero,zero,zero2304; AVX512BW-NEXT: vpshufb {{.*#+}} xmm9 = xmm5[u,u,u,u,u,u,u,u,u,u,u],zero,zero,xmm5[1,7,13]2305; AVX512BW-NEXT: vpor %xmm6, %xmm9, %xmm62306; AVX512BW-NEXT: vmovdqu8 %xmm6, %xmm4 {%k2}2307; AVX512BW-NEXT: vmovdqa {{.*#+}} xmm6 = [128,128,0,6,12,128,128,128,4,10,128,128,128,2,8,14]2308; AVX512BW-NEXT: vpshufb %xmm6, %xmm5, %xmm92309; AVX512BW-NEXT: vmovdqu16 %ymm1, %ymm0 {%k1}2310; AVX512BW-NEXT: vextracti128 $1, %ymm0, %xmm12311; AVX512BW-NEXT: vpshufb %xmm6, %xmm1, %xmm62312; AVX512BW-NEXT: vpblendw {{.*#+}} xmm6 = xmm6[0,1,2,3,4],xmm9[5,6,7]2313; AVX512BW-NEXT: vmovdqa {{.*#+}} xmm9 = [4,10,128,128,128,2,8,14,128,128,0,6,12,128,128,128]2314; AVX512BW-NEXT: vpshufb %xmm9, %xmm7, %xmm102315; AVX512BW-NEXT: vpshufb %xmm9, %xmm0, %xmm92316; AVX512BW-NEXT: vpblendw {{.*#+}} xmm9 = xmm9[0,1,2,3,4],xmm10[5,6,7]2317; AVX512BW-NEXT: vpor %xmm6, %xmm9, %xmm62318; AVX512BW-NEXT: vmovdqa {{.*#+}} xmm9 = [128,128,1,7,13,128,128,128,5,11,128,128,128,3,9,15]2319; AVX512BW-NEXT: vpshufb %xmm9, %xmm5, %xmm52320; AVX512BW-NEXT: vpshufb %xmm9, %xmm1, %xmm12321; AVX512BW-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1,2,3,4],xmm5[5,6,7]2322; AVX512BW-NEXT: vmovdqa {{.*#+}} xmm5 = [5,11,128,128,128,3,9,15,128,128,1,7,13,128,128,128]2323; AVX512BW-NEXT: vpshufb %xmm5, %xmm7, %xmm72324; AVX512BW-NEXT: vpshufb %xmm5, %xmm0, %xmm02325; AVX512BW-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2,3,4],xmm7[5,6,7]2326; AVX512BW-NEXT: vpor %xmm1, %xmm0, %xmm02327; AVX512BW-NEXT: vmovdqa %xmm3, (%rsi)2328; AVX512BW-NEXT: vmovdqa %xmm2, (%rdx)2329; AVX512BW-NEXT: vmovdqa %xmm8, (%rcx)2330; AVX512BW-NEXT: vmovdqa %xmm4, (%r8)2331; AVX512BW-NEXT: vmovdqa %xmm6, (%r9)2332; AVX512BW-NEXT: vmovdqa %xmm0, (%rax)2333; AVX512BW-NEXT: vzeroupper2334; AVX512BW-NEXT: retq2335;2336; AVX512BW-FCP-LABEL: load_i8_stride6_vf16:2337; AVX512BW-FCP: # %bb.0:2338; AVX512BW-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax2339; AVX512BW-FCP-NEXT: vmovdqa (%rdi), %ymm12340; AVX512BW-FCP-NEXT: vmovdqa 32(%rdi), %ymm02341; AVX512BW-FCP-NEXT: movw $18724, %r10w # imm = 0x49242342; AVX512BW-FCP-NEXT: kmovd %r10d, %k12343; AVX512BW-FCP-NEXT: vpblendmw %ymm0, %ymm1, %ymm2 {%k1}2344; AVX512BW-FCP-NEXT: vpshufb {{.*#+}} xmm3 = xmm2[0,6,12],zero,zero,zero,xmm2[4,10],zero,zero,zero,xmm2[u,u,u,u,u]2345; AVX512BW-FCP-NEXT: vextracti128 $1, %ymm2, %xmm42346; AVX512BW-FCP-NEXT: vpshufb {{.*#+}} xmm5 = zero,zero,zero,xmm4[2,8,14],zero,zero,xmm4[0,6,12,u,u,u,u,u]2347; AVX512BW-FCP-NEXT: vpor %xmm3, %xmm5, %xmm32348; AVX512BW-FCP-NEXT: vmovdqa 80(%rdi), %xmm52349; AVX512BW-FCP-NEXT: vpshufb {{.*#+}} xmm6 = xmm5[u,u,u,u,u,u,u,u,u,u,u],zero,zero,zero,xmm5[4,10]2350; AVX512BW-FCP-NEXT: vmovdqa 64(%rdi), %xmm72351; AVX512BW-FCP-NEXT: vpshufb {{.*#+}} xmm8 = xmm7[u,u,u,u,u,u,u,u,u,u,u,2,8,14],zero,zero2352; AVX512BW-FCP-NEXT: vpor %xmm6, %xmm8, %xmm62353; AVX512BW-FCP-NEXT: movw $-2048, %di # imm = 0xF8002354; AVX512BW-FCP-NEXT: kmovd %edi, %k22355; AVX512BW-FCP-NEXT: vmovdqu8 %xmm6, %xmm3 {%k2}2356; AVX512BW-FCP-NEXT: vpshufb {{.*#+}} xmm2 = xmm2[1,7,13],zero,zero,zero,xmm2[5,11],zero,zero,zero,xmm2[u,u,u,u,u]2357; AVX512BW-FCP-NEXT: vpshufb {{.*#+}} xmm4 = zero,zero,zero,xmm4[3,9,15],zero,zero,xmm4[1,7,13,u,u,u,u,u]2358; AVX512BW-FCP-NEXT: vpor %xmm2, %xmm4, %xmm22359; AVX512BW-FCP-NEXT: vpshufb {{.*#+}} xmm4 = xmm5[u,u,u,u,u,u,u,u,u,u,u],zero,zero,zero,xmm5[5,11]2360; AVX512BW-FCP-NEXT: vpshufb {{.*#+}} xmm6 = xmm7[u,u,u,u,u,u,u,u,u,u,u,3,9,15],zero,zero2361; AVX512BW-FCP-NEXT: vpor %xmm4, %xmm6, %xmm42362; AVX512BW-FCP-NEXT: vmovdqu8 %xmm4, %xmm2 {%k2}2363; AVX512BW-FCP-NEXT: movw $9362, %di # imm = 0x24922364; AVX512BW-FCP-NEXT: kmovd %edi, %k32365; AVX512BW-FCP-NEXT: vpblendmw %ymm1, %ymm0, %ymm4 {%k3}2366; AVX512BW-FCP-NEXT: vextracti128 $1, %ymm4, %xmm62367; AVX512BW-FCP-NEXT: vpshufb {{.*#+}} xmm8 = zero,zero,zero,xmm6[4,10],zero,zero,zero,xmm6[2,8,14,u,u,u,u,u]2368; AVX512BW-FCP-NEXT: vpshufb {{.*#+}} xmm9 = xmm4[2,8,14],zero,zero,xmm4[0,6,12],zero,zero,zero,xmm4[u,u,u,u,u]2369; AVX512BW-FCP-NEXT: vpor %xmm8, %xmm9, %xmm82370; AVX512BW-FCP-NEXT: vpshufb {{.*#+}} xmm9 = xmm7[u,u,u,u,u,u,u,u,u,u,u,4,10],zero,zero,zero2371; AVX512BW-FCP-NEXT: vpshufb {{.*#+}} xmm10 = xmm5[u,u,u,u,u,u,u,u,u,u,u],zero,zero,xmm5[0,6,12]2372; AVX512BW-FCP-NEXT: vpor %xmm9, %xmm10, %xmm92373; AVX512BW-FCP-NEXT: vmovdqu8 %xmm9, %xmm8 {%k2}2374; AVX512BW-FCP-NEXT: vpshufb {{.*#+}} xmm6 = zero,zero,zero,xmm6[5,11],zero,zero,zero,xmm6[3,9,15,u,u,u,u,u]2375; AVX512BW-FCP-NEXT: vpshufb {{.*#+}} xmm4 = xmm4[3,9,15],zero,zero,xmm4[1,7,13],zero,zero,zero,xmm4[u,u,u,u,u]2376; AVX512BW-FCP-NEXT: vpor %xmm6, %xmm4, %xmm42377; AVX512BW-FCP-NEXT: vpshufb {{.*#+}} xmm6 = xmm7[u,u,u,u,u,u,u,u,u,u,u,5,11],zero,zero,zero2378; AVX512BW-FCP-NEXT: vpshufb {{.*#+}} xmm9 = xmm5[u,u,u,u,u,u,u,u,u,u,u],zero,zero,xmm5[1,7,13]2379; AVX512BW-FCP-NEXT: vpor %xmm6, %xmm9, %xmm62380; AVX512BW-FCP-NEXT: vmovdqu8 %xmm6, %xmm4 {%k2}2381; AVX512BW-FCP-NEXT: vmovdqa {{.*#+}} xmm6 = [128,128,0,6,12,128,128,128,4,10,128,128,128,2,8,14]2382; AVX512BW-FCP-NEXT: vpshufb %xmm6, %xmm5, %xmm92383; AVX512BW-FCP-NEXT: vmovdqu16 %ymm1, %ymm0 {%k1}2384; AVX512BW-FCP-NEXT: vextracti128 $1, %ymm0, %xmm12385; AVX512BW-FCP-NEXT: vpshufb %xmm6, %xmm1, %xmm62386; AVX512BW-FCP-NEXT: vpblendw {{.*#+}} xmm6 = xmm6[0,1,2,3,4],xmm9[5,6,7]2387; AVX512BW-FCP-NEXT: vmovdqa {{.*#+}} xmm9 = [4,10,128,128,128,2,8,14,128,128,0,6,12,128,128,128]2388; AVX512BW-FCP-NEXT: vpshufb %xmm9, %xmm7, %xmm102389; AVX512BW-FCP-NEXT: vpshufb %xmm9, %xmm0, %xmm92390; AVX512BW-FCP-NEXT: vpblendw {{.*#+}} xmm9 = xmm9[0,1,2,3,4],xmm10[5,6,7]2391; AVX512BW-FCP-NEXT: vpor %xmm6, %xmm9, %xmm62392; AVX512BW-FCP-NEXT: vmovdqa {{.*#+}} xmm9 = [128,128,1,7,13,128,128,128,5,11,128,128,128,3,9,15]2393; AVX512BW-FCP-NEXT: vpshufb %xmm9, %xmm5, %xmm52394; AVX512BW-FCP-NEXT: vpshufb %xmm9, %xmm1, %xmm12395; AVX512BW-FCP-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1,2,3,4],xmm5[5,6,7]2396; AVX512BW-FCP-NEXT: vmovdqa {{.*#+}} xmm5 = [5,11,128,128,128,3,9,15,128,128,1,7,13,128,128,128]2397; AVX512BW-FCP-NEXT: vpshufb %xmm5, %xmm7, %xmm72398; AVX512BW-FCP-NEXT: vpshufb %xmm5, %xmm0, %xmm02399; AVX512BW-FCP-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2,3,4],xmm7[5,6,7]2400; AVX512BW-FCP-NEXT: vpor %xmm1, %xmm0, %xmm02401; AVX512BW-FCP-NEXT: vmovdqa %xmm3, (%rsi)2402; AVX512BW-FCP-NEXT: vmovdqa %xmm2, (%rdx)2403; AVX512BW-FCP-NEXT: vmovdqa %xmm8, (%rcx)2404; AVX512BW-FCP-NEXT: vmovdqa %xmm4, (%r8)2405; AVX512BW-FCP-NEXT: vmovdqa %xmm6, (%r9)2406; AVX512BW-FCP-NEXT: vmovdqa %xmm0, (%rax)2407; AVX512BW-FCP-NEXT: vzeroupper2408; AVX512BW-FCP-NEXT: retq2409;2410; AVX512DQ-BW-LABEL: load_i8_stride6_vf16:2411; AVX512DQ-BW: # %bb.0:2412; AVX512DQ-BW-NEXT: movq {{[0-9]+}}(%rsp), %rax2413; AVX512DQ-BW-NEXT: vmovdqa (%rdi), %ymm12414; AVX512DQ-BW-NEXT: vmovdqa 32(%rdi), %ymm02415; AVX512DQ-BW-NEXT: movw $18724, %r10w # imm = 0x49242416; AVX512DQ-BW-NEXT: kmovd %r10d, %k12417; AVX512DQ-BW-NEXT: vpblendmw %ymm0, %ymm1, %ymm2 {%k1}2418; AVX512DQ-BW-NEXT: vpshufb {{.*#+}} xmm3 = xmm2[0,6,12],zero,zero,zero,xmm2[4,10],zero,zero,zero,xmm2[u,u,u,u,u]2419; AVX512DQ-BW-NEXT: vextracti128 $1, %ymm2, %xmm42420; AVX512DQ-BW-NEXT: vpshufb {{.*#+}} xmm5 = zero,zero,zero,xmm4[2,8,14],zero,zero,xmm4[0,6,12,u,u,u,u,u]2421; AVX512DQ-BW-NEXT: vpor %xmm3, %xmm5, %xmm32422; AVX512DQ-BW-NEXT: vmovdqa 80(%rdi), %xmm52423; AVX512DQ-BW-NEXT: vpshufb {{.*#+}} xmm6 = xmm5[u,u,u,u,u,u,u,u,u,u,u],zero,zero,zero,xmm5[4,10]2424; AVX512DQ-BW-NEXT: vmovdqa 64(%rdi), %xmm72425; AVX512DQ-BW-NEXT: vpshufb {{.*#+}} xmm8 = xmm7[u,u,u,u,u,u,u,u,u,u,u,2,8,14],zero,zero2426; AVX512DQ-BW-NEXT: vpor %xmm6, %xmm8, %xmm62427; AVX512DQ-BW-NEXT: movw $-2048, %di # imm = 0xF8002428; AVX512DQ-BW-NEXT: kmovd %edi, %k22429; AVX512DQ-BW-NEXT: vmovdqu8 %xmm6, %xmm3 {%k2}2430; AVX512DQ-BW-NEXT: vpshufb {{.*#+}} xmm2 = xmm2[1,7,13],zero,zero,zero,xmm2[5,11],zero,zero,zero,xmm2[u,u,u,u,u]2431; AVX512DQ-BW-NEXT: vpshufb {{.*#+}} xmm4 = zero,zero,zero,xmm4[3,9,15],zero,zero,xmm4[1,7,13,u,u,u,u,u]2432; AVX512DQ-BW-NEXT: vpor %xmm2, %xmm4, %xmm22433; AVX512DQ-BW-NEXT: vpshufb {{.*#+}} xmm4 = xmm5[u,u,u,u,u,u,u,u,u,u,u],zero,zero,zero,xmm5[5,11]2434; AVX512DQ-BW-NEXT: vpshufb {{.*#+}} xmm6 = xmm7[u,u,u,u,u,u,u,u,u,u,u,3,9,15],zero,zero2435; AVX512DQ-BW-NEXT: vpor %xmm4, %xmm6, %xmm42436; AVX512DQ-BW-NEXT: vmovdqu8 %xmm4, %xmm2 {%k2}2437; AVX512DQ-BW-NEXT: movw $9362, %di # imm = 0x24922438; AVX512DQ-BW-NEXT: kmovd %edi, %k32439; AVX512DQ-BW-NEXT: vpblendmw %ymm1, %ymm0, %ymm4 {%k3}2440; AVX512DQ-BW-NEXT: vextracti128 $1, %ymm4, %xmm62441; AVX512DQ-BW-NEXT: vpshufb {{.*#+}} xmm8 = zero,zero,zero,xmm6[4,10],zero,zero,zero,xmm6[2,8,14,u,u,u,u,u]2442; AVX512DQ-BW-NEXT: vpshufb {{.*#+}} xmm9 = xmm4[2,8,14],zero,zero,xmm4[0,6,12],zero,zero,zero,xmm4[u,u,u,u,u]2443; AVX512DQ-BW-NEXT: vpor %xmm8, %xmm9, %xmm82444; AVX512DQ-BW-NEXT: vpshufb {{.*#+}} xmm9 = xmm7[u,u,u,u,u,u,u,u,u,u,u,4,10],zero,zero,zero2445; AVX512DQ-BW-NEXT: vpshufb {{.*#+}} xmm10 = xmm5[u,u,u,u,u,u,u,u,u,u,u],zero,zero,xmm5[0,6,12]2446; AVX512DQ-BW-NEXT: vpor %xmm9, %xmm10, %xmm92447; AVX512DQ-BW-NEXT: vmovdqu8 %xmm9, %xmm8 {%k2}2448; AVX512DQ-BW-NEXT: vpshufb {{.*#+}} xmm6 = zero,zero,zero,xmm6[5,11],zero,zero,zero,xmm6[3,9,15,u,u,u,u,u]2449; AVX512DQ-BW-NEXT: vpshufb {{.*#+}} xmm4 = xmm4[3,9,15],zero,zero,xmm4[1,7,13],zero,zero,zero,xmm4[u,u,u,u,u]2450; AVX512DQ-BW-NEXT: vpor %xmm6, %xmm4, %xmm42451; AVX512DQ-BW-NEXT: vpshufb {{.*#+}} xmm6 = xmm7[u,u,u,u,u,u,u,u,u,u,u,5,11],zero,zero,zero2452; AVX512DQ-BW-NEXT: vpshufb {{.*#+}} xmm9 = xmm5[u,u,u,u,u,u,u,u,u,u,u],zero,zero,xmm5[1,7,13]2453; AVX512DQ-BW-NEXT: vpor %xmm6, %xmm9, %xmm62454; AVX512DQ-BW-NEXT: vmovdqu8 %xmm6, %xmm4 {%k2}2455; AVX512DQ-BW-NEXT: vmovdqa {{.*#+}} xmm6 = [128,128,0,6,12,128,128,128,4,10,128,128,128,2,8,14]2456; AVX512DQ-BW-NEXT: vpshufb %xmm6, %xmm5, %xmm92457; AVX512DQ-BW-NEXT: vmovdqu16 %ymm1, %ymm0 {%k1}2458; AVX512DQ-BW-NEXT: vextracti128 $1, %ymm0, %xmm12459; AVX512DQ-BW-NEXT: vpshufb %xmm6, %xmm1, %xmm62460; AVX512DQ-BW-NEXT: vpblendw {{.*#+}} xmm6 = xmm6[0,1,2,3,4],xmm9[5,6,7]2461; AVX512DQ-BW-NEXT: vmovdqa {{.*#+}} xmm9 = [4,10,128,128,128,2,8,14,128,128,0,6,12,128,128,128]2462; AVX512DQ-BW-NEXT: vpshufb %xmm9, %xmm7, %xmm102463; AVX512DQ-BW-NEXT: vpshufb %xmm9, %xmm0, %xmm92464; AVX512DQ-BW-NEXT: vpblendw {{.*#+}} xmm9 = xmm9[0,1,2,3,4],xmm10[5,6,7]2465; AVX512DQ-BW-NEXT: vpor %xmm6, %xmm9, %xmm62466; AVX512DQ-BW-NEXT: vmovdqa {{.*#+}} xmm9 = [128,128,1,7,13,128,128,128,5,11,128,128,128,3,9,15]2467; AVX512DQ-BW-NEXT: vpshufb %xmm9, %xmm5, %xmm52468; AVX512DQ-BW-NEXT: vpshufb %xmm9, %xmm1, %xmm12469; AVX512DQ-BW-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1,2,3,4],xmm5[5,6,7]2470; AVX512DQ-BW-NEXT: vmovdqa {{.*#+}} xmm5 = [5,11,128,128,128,3,9,15,128,128,1,7,13,128,128,128]2471; AVX512DQ-BW-NEXT: vpshufb %xmm5, %xmm7, %xmm72472; AVX512DQ-BW-NEXT: vpshufb %xmm5, %xmm0, %xmm02473; AVX512DQ-BW-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2,3,4],xmm7[5,6,7]2474; AVX512DQ-BW-NEXT: vpor %xmm1, %xmm0, %xmm02475; AVX512DQ-BW-NEXT: vmovdqa %xmm3, (%rsi)2476; AVX512DQ-BW-NEXT: vmovdqa %xmm2, (%rdx)2477; AVX512DQ-BW-NEXT: vmovdqa %xmm8, (%rcx)2478; AVX512DQ-BW-NEXT: vmovdqa %xmm4, (%r8)2479; AVX512DQ-BW-NEXT: vmovdqa %xmm6, (%r9)2480; AVX512DQ-BW-NEXT: vmovdqa %xmm0, (%rax)2481; AVX512DQ-BW-NEXT: vzeroupper2482; AVX512DQ-BW-NEXT: retq2483;2484; AVX512DQ-BW-FCP-LABEL: load_i8_stride6_vf16:2485; AVX512DQ-BW-FCP: # %bb.0:2486; AVX512DQ-BW-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax2487; AVX512DQ-BW-FCP-NEXT: vmovdqa (%rdi), %ymm12488; AVX512DQ-BW-FCP-NEXT: vmovdqa 32(%rdi), %ymm02489; AVX512DQ-BW-FCP-NEXT: movw $18724, %r10w # imm = 0x49242490; AVX512DQ-BW-FCP-NEXT: kmovd %r10d, %k12491; AVX512DQ-BW-FCP-NEXT: vpblendmw %ymm0, %ymm1, %ymm2 {%k1}2492; AVX512DQ-BW-FCP-NEXT: vpshufb {{.*#+}} xmm3 = xmm2[0,6,12],zero,zero,zero,xmm2[4,10],zero,zero,zero,xmm2[u,u,u,u,u]2493; AVX512DQ-BW-FCP-NEXT: vextracti128 $1, %ymm2, %xmm42494; AVX512DQ-BW-FCP-NEXT: vpshufb {{.*#+}} xmm5 = zero,zero,zero,xmm4[2,8,14],zero,zero,xmm4[0,6,12,u,u,u,u,u]2495; AVX512DQ-BW-FCP-NEXT: vpor %xmm3, %xmm5, %xmm32496; AVX512DQ-BW-FCP-NEXT: vmovdqa 80(%rdi), %xmm52497; AVX512DQ-BW-FCP-NEXT: vpshufb {{.*#+}} xmm6 = xmm5[u,u,u,u,u,u,u,u,u,u,u],zero,zero,zero,xmm5[4,10]2498; AVX512DQ-BW-FCP-NEXT: vmovdqa 64(%rdi), %xmm72499; AVX512DQ-BW-FCP-NEXT: vpshufb {{.*#+}} xmm8 = xmm7[u,u,u,u,u,u,u,u,u,u,u,2,8,14],zero,zero2500; AVX512DQ-BW-FCP-NEXT: vpor %xmm6, %xmm8, %xmm62501; AVX512DQ-BW-FCP-NEXT: movw $-2048, %di # imm = 0xF8002502; AVX512DQ-BW-FCP-NEXT: kmovd %edi, %k22503; AVX512DQ-BW-FCP-NEXT: vmovdqu8 %xmm6, %xmm3 {%k2}2504; AVX512DQ-BW-FCP-NEXT: vpshufb {{.*#+}} xmm2 = xmm2[1,7,13],zero,zero,zero,xmm2[5,11],zero,zero,zero,xmm2[u,u,u,u,u]2505; AVX512DQ-BW-FCP-NEXT: vpshufb {{.*#+}} xmm4 = zero,zero,zero,xmm4[3,9,15],zero,zero,xmm4[1,7,13,u,u,u,u,u]2506; AVX512DQ-BW-FCP-NEXT: vpor %xmm2, %xmm4, %xmm22507; AVX512DQ-BW-FCP-NEXT: vpshufb {{.*#+}} xmm4 = xmm5[u,u,u,u,u,u,u,u,u,u,u],zero,zero,zero,xmm5[5,11]2508; AVX512DQ-BW-FCP-NEXT: vpshufb {{.*#+}} xmm6 = xmm7[u,u,u,u,u,u,u,u,u,u,u,3,9,15],zero,zero2509; AVX512DQ-BW-FCP-NEXT: vpor %xmm4, %xmm6, %xmm42510; AVX512DQ-BW-FCP-NEXT: vmovdqu8 %xmm4, %xmm2 {%k2}2511; AVX512DQ-BW-FCP-NEXT: movw $9362, %di # imm = 0x24922512; AVX512DQ-BW-FCP-NEXT: kmovd %edi, %k32513; AVX512DQ-BW-FCP-NEXT: vpblendmw %ymm1, %ymm0, %ymm4 {%k3}2514; AVX512DQ-BW-FCP-NEXT: vextracti128 $1, %ymm4, %xmm62515; AVX512DQ-BW-FCP-NEXT: vpshufb {{.*#+}} xmm8 = zero,zero,zero,xmm6[4,10],zero,zero,zero,xmm6[2,8,14,u,u,u,u,u]2516; AVX512DQ-BW-FCP-NEXT: vpshufb {{.*#+}} xmm9 = xmm4[2,8,14],zero,zero,xmm4[0,6,12],zero,zero,zero,xmm4[u,u,u,u,u]2517; AVX512DQ-BW-FCP-NEXT: vpor %xmm8, %xmm9, %xmm82518; AVX512DQ-BW-FCP-NEXT: vpshufb {{.*#+}} xmm9 = xmm7[u,u,u,u,u,u,u,u,u,u,u,4,10],zero,zero,zero2519; AVX512DQ-BW-FCP-NEXT: vpshufb {{.*#+}} xmm10 = xmm5[u,u,u,u,u,u,u,u,u,u,u],zero,zero,xmm5[0,6,12]2520; AVX512DQ-BW-FCP-NEXT: vpor %xmm9, %xmm10, %xmm92521; AVX512DQ-BW-FCP-NEXT: vmovdqu8 %xmm9, %xmm8 {%k2}2522; AVX512DQ-BW-FCP-NEXT: vpshufb {{.*#+}} xmm6 = zero,zero,zero,xmm6[5,11],zero,zero,zero,xmm6[3,9,15,u,u,u,u,u]2523; AVX512DQ-BW-FCP-NEXT: vpshufb {{.*#+}} xmm4 = xmm4[3,9,15],zero,zero,xmm4[1,7,13],zero,zero,zero,xmm4[u,u,u,u,u]2524; AVX512DQ-BW-FCP-NEXT: vpor %xmm6, %xmm4, %xmm42525; AVX512DQ-BW-FCP-NEXT: vpshufb {{.*#+}} xmm6 = xmm7[u,u,u,u,u,u,u,u,u,u,u,5,11],zero,zero,zero2526; AVX512DQ-BW-FCP-NEXT: vpshufb {{.*#+}} xmm9 = xmm5[u,u,u,u,u,u,u,u,u,u,u],zero,zero,xmm5[1,7,13]2527; AVX512DQ-BW-FCP-NEXT: vpor %xmm6, %xmm9, %xmm62528; AVX512DQ-BW-FCP-NEXT: vmovdqu8 %xmm6, %xmm4 {%k2}2529; AVX512DQ-BW-FCP-NEXT: vmovdqa {{.*#+}} xmm6 = [128,128,0,6,12,128,128,128,4,10,128,128,128,2,8,14]2530; AVX512DQ-BW-FCP-NEXT: vpshufb %xmm6, %xmm5, %xmm92531; AVX512DQ-BW-FCP-NEXT: vmovdqu16 %ymm1, %ymm0 {%k1}2532; AVX512DQ-BW-FCP-NEXT: vextracti128 $1, %ymm0, %xmm12533; AVX512DQ-BW-FCP-NEXT: vpshufb %xmm6, %xmm1, %xmm62534; AVX512DQ-BW-FCP-NEXT: vpblendw {{.*#+}} xmm6 = xmm6[0,1,2,3,4],xmm9[5,6,7]2535; AVX512DQ-BW-FCP-NEXT: vmovdqa {{.*#+}} xmm9 = [4,10,128,128,128,2,8,14,128,128,0,6,12,128,128,128]2536; AVX512DQ-BW-FCP-NEXT: vpshufb %xmm9, %xmm7, %xmm102537; AVX512DQ-BW-FCP-NEXT: vpshufb %xmm9, %xmm0, %xmm92538; AVX512DQ-BW-FCP-NEXT: vpblendw {{.*#+}} xmm9 = xmm9[0,1,2,3,4],xmm10[5,6,7]2539; AVX512DQ-BW-FCP-NEXT: vpor %xmm6, %xmm9, %xmm62540; AVX512DQ-BW-FCP-NEXT: vmovdqa {{.*#+}} xmm9 = [128,128,1,7,13,128,128,128,5,11,128,128,128,3,9,15]2541; AVX512DQ-BW-FCP-NEXT: vpshufb %xmm9, %xmm5, %xmm52542; AVX512DQ-BW-FCP-NEXT: vpshufb %xmm9, %xmm1, %xmm12543; AVX512DQ-BW-FCP-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1,2,3,4],xmm5[5,6,7]2544; AVX512DQ-BW-FCP-NEXT: vmovdqa {{.*#+}} xmm5 = [5,11,128,128,128,3,9,15,128,128,1,7,13,128,128,128]2545; AVX512DQ-BW-FCP-NEXT: vpshufb %xmm5, %xmm7, %xmm72546; AVX512DQ-BW-FCP-NEXT: vpshufb %xmm5, %xmm0, %xmm02547; AVX512DQ-BW-FCP-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2,3,4],xmm7[5,6,7]2548; AVX512DQ-BW-FCP-NEXT: vpor %xmm1, %xmm0, %xmm02549; AVX512DQ-BW-FCP-NEXT: vmovdqa %xmm3, (%rsi)2550; AVX512DQ-BW-FCP-NEXT: vmovdqa %xmm2, (%rdx)2551; AVX512DQ-BW-FCP-NEXT: vmovdqa %xmm8, (%rcx)2552; AVX512DQ-BW-FCP-NEXT: vmovdqa %xmm4, (%r8)2553; AVX512DQ-BW-FCP-NEXT: vmovdqa %xmm6, (%r9)2554; AVX512DQ-BW-FCP-NEXT: vmovdqa %xmm0, (%rax)2555; AVX512DQ-BW-FCP-NEXT: vzeroupper2556; AVX512DQ-BW-FCP-NEXT: retq2557 %wide.vec = load <96 x i8>, ptr %in.vec, align 642558 %strided.vec0 = shufflevector <96 x i8> %wide.vec, <96 x i8> poison, <16 x i32> <i32 0, i32 6, i32 12, i32 18, i32 24, i32 30, i32 36, i32 42, i32 48, i32 54, i32 60, i32 66, i32 72, i32 78, i32 84, i32 90>2559 %strided.vec1 = shufflevector <96 x i8> %wide.vec, <96 x i8> poison, <16 x i32> <i32 1, i32 7, i32 13, i32 19, i32 25, i32 31, i32 37, i32 43, i32 49, i32 55, i32 61, i32 67, i32 73, i32 79, i32 85, i32 91>2560 %strided.vec2 = shufflevector <96 x i8> %wide.vec, <96 x i8> poison, <16 x i32> <i32 2, i32 8, i32 14, i32 20, i32 26, i32 32, i32 38, i32 44, i32 50, i32 56, i32 62, i32 68, i32 74, i32 80, i32 86, i32 92>2561 %strided.vec3 = shufflevector <96 x i8> %wide.vec, <96 x i8> poison, <16 x i32> <i32 3, i32 9, i32 15, i32 21, i32 27, i32 33, i32 39, i32 45, i32 51, i32 57, i32 63, i32 69, i32 75, i32 81, i32 87, i32 93>2562 %strided.vec4 = shufflevector <96 x i8> %wide.vec, <96 x i8> poison, <16 x i32> <i32 4, i32 10, i32 16, i32 22, i32 28, i32 34, i32 40, i32 46, i32 52, i32 58, i32 64, i32 70, i32 76, i32 82, i32 88, i32 94>2563 %strided.vec5 = shufflevector <96 x i8> %wide.vec, <96 x i8> poison, <16 x i32> <i32 5, i32 11, i32 17, i32 23, i32 29, i32 35, i32 41, i32 47, i32 53, i32 59, i32 65, i32 71, i32 77, i32 83, i32 89, i32 95>2564 store <16 x i8> %strided.vec0, ptr %out.vec0, align 642565 store <16 x i8> %strided.vec1, ptr %out.vec1, align 642566 store <16 x i8> %strided.vec2, ptr %out.vec2, align 642567 store <16 x i8> %strided.vec3, ptr %out.vec3, align 642568 store <16 x i8> %strided.vec4, ptr %out.vec4, align 642569 store <16 x i8> %strided.vec5, ptr %out.vec5, align 642570 ret void2571}2572 2573define void @load_i8_stride6_vf32(ptr %in.vec, ptr %out.vec0, ptr %out.vec1, ptr %out.vec2, ptr %out.vec3, ptr %out.vec4, ptr %out.vec5) nounwind {2574; SSE-LABEL: load_i8_stride6_vf32:2575; SSE: # %bb.0:2576; SSE-NEXT: subq $264, %rsp # imm = 0x1082577; SSE-NEXT: movdqa 64(%rdi), %xmm72578; SSE-NEXT: movdqa %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2579; SSE-NEXT: movdqa 80(%rdi), %xmm92580; SSE-NEXT: movdqa (%rdi), %xmm122581; SSE-NEXT: movdqa 16(%rdi), %xmm142582; SSE-NEXT: movdqa 32(%rdi), %xmm12583; SSE-NEXT: movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2584; SSE-NEXT: movdqa 48(%rdi), %xmm152585; SSE-NEXT: movdqa {{.*#+}} xmm10 = [65535,65535,0,65535,65535,0,65535,65535]2586; SSE-NEXT: movdqa %xmm10, %xmm02587; SSE-NEXT: pandn %xmm1, %xmm02588; SSE-NEXT: movdqa {{.*#+}} xmm11 = [65535,0,65535,65535,0,65535,65535,0]2589; SSE-NEXT: movdqa %xmm11, %xmm12590; SSE-NEXT: pandn %xmm15, %xmm12591; SSE-NEXT: movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2592; SSE-NEXT: movdqa %xmm10, %xmm12593; SSE-NEXT: pandn %xmm15, %xmm12594; SSE-NEXT: movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2595; SSE-NEXT: pand %xmm10, %xmm152596; SSE-NEXT: por %xmm0, %xmm152597; SSE-NEXT: movdqa {{.*#+}} xmm6 = [255,255,255,255,255,255,255,255]2598; SSE-NEXT: movdqa %xmm15, %xmm02599; SSE-NEXT: pand %xmm6, %xmm02600; SSE-NEXT: pshuflw {{.*#+}} xmm1 = xmm0[0,3,2,3,4,5,6,7]2601; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[0,3,2,3]2602; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,1,2,1]2603; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,5,6,5]2604; SSE-NEXT: packuswb %xmm1, %xmm02605; SSE-NEXT: movdqa {{.*#+}} xmm2 = [65535,65535,65535,0,0,0,65535,65535]2606; SSE-NEXT: movdqa %xmm11, %xmm12607; SSE-NEXT: pandn %xmm14, %xmm12608; SSE-NEXT: movdqa %xmm12, %xmm82609; SSE-NEXT: pand %xmm11, %xmm82610; SSE-NEXT: por %xmm1, %xmm82611; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm8[0,2,1,3]2612; SSE-NEXT: pand %xmm6, %xmm12613; SSE-NEXT: pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,6,5,6,7]2614; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[0,2,1,3]2615; SSE-NEXT: pshuflw {{.*#+}} xmm1 = xmm1[0,3,2,1,4,5,6,7]2616; SSE-NEXT: pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,7,6,7]2617; SSE-NEXT: packuswb %xmm1, %xmm12618; SSE-NEXT: pand %xmm2, %xmm12619; SSE-NEXT: movdqa %xmm2, %xmm32620; SSE-NEXT: movdqa %xmm2, %xmm52621; SSE-NEXT: pandn %xmm0, %xmm32622; SSE-NEXT: por %xmm3, %xmm12623; SSE-NEXT: movdqa %xmm10, %xmm02624; SSE-NEXT: pandn %xmm9, %xmm02625; SSE-NEXT: pand %xmm10, %xmm72626; SSE-NEXT: por %xmm0, %xmm72627; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm7[3,1,2,0]2628; SSE-NEXT: pand %xmm6, %xmm02629; SSE-NEXT: pshuflw {{.*#+}} xmm0 = xmm0[2,1,2,3,4,5,6,7]2630; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,3,2,0]2631; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,7,6,5]2632; SSE-NEXT: packuswb %xmm0, %xmm02633; SSE-NEXT: movdqa {{.*#+}} xmm3 = [255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0]2634; SSE-NEXT: movdqa %xmm3, %xmm22635; SSE-NEXT: pandn %xmm0, %xmm22636; SSE-NEXT: pand %xmm3, %xmm12637; SSE-NEXT: por %xmm1, %xmm22638; SSE-NEXT: movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2639; SSE-NEXT: movdqa 128(%rdi), %xmm12640; SSE-NEXT: movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2641; SSE-NEXT: movdqa %xmm10, %xmm02642; SSE-NEXT: pandn %xmm1, %xmm02643; SSE-NEXT: movdqa 144(%rdi), %xmm12644; SSE-NEXT: movdqa %xmm11, %xmm22645; SSE-NEXT: pandn %xmm1, %xmm22646; SSE-NEXT: movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2647; SSE-NEXT: movdqa %xmm10, %xmm22648; SSE-NEXT: pandn %xmm1, %xmm22649; SSE-NEXT: movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2650; SSE-NEXT: movdqa %xmm1, %xmm22651; SSE-NEXT: pand %xmm10, %xmm22652; SSE-NEXT: por %xmm0, %xmm22653; SSE-NEXT: movdqa %xmm2, %xmm02654; SSE-NEXT: pand %xmm6, %xmm02655; SSE-NEXT: pshuflw {{.*#+}} xmm3 = xmm0[0,3,2,3,4,5,6,7]2656; SSE-NEXT: pshufd {{.*#+}} xmm3 = xmm3[0,3,2,3]2657; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,1,2,1]2658; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,5,6,5]2659; SSE-NEXT: packuswb %xmm3, %xmm02660; SSE-NEXT: movdqa %xmm5, %xmm62661; SSE-NEXT: pandn %xmm0, %xmm62662; SSE-NEXT: movdqa %xmm10, %xmm12663; SSE-NEXT: movdqa %xmm10, %xmm02664; SSE-NEXT: pandn %xmm12, %xmm02665; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2666; SSE-NEXT: movdqa 112(%rdi), %xmm02667; SSE-NEXT: movdqa %xmm11, %xmm32668; SSE-NEXT: pandn %xmm0, %xmm32669; SSE-NEXT: movdqa 160(%rdi), %xmm52670; SSE-NEXT: movdqa %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2671; SSE-NEXT: pand %xmm10, %xmm52672; SSE-NEXT: movdqa %xmm10, %xmm42673; SSE-NEXT: pandn %xmm14, %xmm42674; SSE-NEXT: movdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2675; SSE-NEXT: pand %xmm10, %xmm122676; SSE-NEXT: movdqa %xmm11, %xmm42677; SSE-NEXT: pandn %xmm9, %xmm42678; SSE-NEXT: movdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2679; SSE-NEXT: movdqa %xmm9, %xmm112680; SSE-NEXT: pand %xmm10, %xmm112681; SSE-NEXT: movdqa %xmm10, %xmm42682; SSE-NEXT: pandn %xmm0, %xmm42683; SSE-NEXT: movdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2684; SSE-NEXT: movdqa 96(%rdi), %xmm132685; SSE-NEXT: movdqa %xmm13, %xmm42686; SSE-NEXT: pand %xmm10, %xmm42687; SSE-NEXT: movdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2688; SSE-NEXT: movdqa 176(%rdi), %xmm42689; SSE-NEXT: movdqa %xmm4, %xmm102690; SSE-NEXT: movdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2691; SSE-NEXT: pand %xmm1, %xmm102692; SSE-NEXT: movdqa %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2693; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Reload2694; SSE-NEXT: movdqa %xmm9, %xmm102695; SSE-NEXT: pand %xmm1, %xmm92696; SSE-NEXT: movdqa %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2697; SSE-NEXT: pand %xmm1, %xmm142698; SSE-NEXT: movdqa %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2699; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload2700; SSE-NEXT: movdqa %xmm14, %xmm92701; SSE-NEXT: pand %xmm1, %xmm142702; SSE-NEXT: movdqa %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2703; SSE-NEXT: pand %xmm1, %xmm02704; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2705; SSE-NEXT: movdqa %xmm1, %xmm142706; SSE-NEXT: movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2707; SSE-NEXT: movdqa %xmm1, (%rsp) # 16-byte Spill2708; SSE-NEXT: pandn %xmm13, %xmm12709; SSE-NEXT: movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2710; SSE-NEXT: movdqa %xmm13, %xmm12711; SSE-NEXT: pand {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm12712; SSE-NEXT: por %xmm3, %xmm12713; SSE-NEXT: pshufd {{.*#+}} xmm3 = xmm1[0,2,1,3]2714; SSE-NEXT: movdqa {{.*#+}} xmm0 = [255,255,255,255,255,255,255,255]2715; SSE-NEXT: pand %xmm0, %xmm32716; SSE-NEXT: pshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,6,5,6,7]2717; SSE-NEXT: pshufd {{.*#+}} xmm3 = xmm3[0,2,1,3]2718; SSE-NEXT: pshuflw {{.*#+}} xmm3 = xmm3[0,3,2,1,4,5,6,7]2719; SSE-NEXT: pshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,4,7,6,7]2720; SSE-NEXT: packuswb %xmm3, %xmm32721; SSE-NEXT: pand {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm32722; SSE-NEXT: por %xmm6, %xmm32723; SSE-NEXT: pandn %xmm4, %xmm142724; SSE-NEXT: por %xmm14, %xmm52725; SSE-NEXT: pshufd {{.*#+}} xmm4 = xmm5[3,1,2,0]2726; SSE-NEXT: pand %xmm0, %xmm42727; SSE-NEXT: pshuflw {{.*#+}} xmm4 = xmm4[2,1,2,3,4,5,6,7]2728; SSE-NEXT: pshufd {{.*#+}} xmm4 = xmm4[0,3,2,0]2729; SSE-NEXT: pshufhw {{.*#+}} xmm4 = xmm4[0,1,2,3,4,7,6,5]2730; SSE-NEXT: packuswb %xmm4, %xmm42731; SSE-NEXT: movdqa {{.*#+}} xmm13 = [255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0]2732; SSE-NEXT: movdqa %xmm13, %xmm02733; SSE-NEXT: pandn %xmm4, %xmm02734; SSE-NEXT: pand %xmm13, %xmm32735; SSE-NEXT: por %xmm3, %xmm02736; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2737; SSE-NEXT: pxor %xmm4, %xmm42738; SSE-NEXT: movdqa %xmm15, %xmm32739; SSE-NEXT: punpckhbw {{.*#+}} 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]2740; SSE-NEXT: punpcklbw {{.*#+}} xmm15 = xmm15[0],xmm4[0],xmm15[1],xmm4[1],xmm15[2],xmm4[2],xmm15[3],xmm4[3],xmm15[4],xmm4[4],xmm15[5],xmm4[5],xmm15[6],xmm4[6],xmm15[7],xmm4[7]2741; SSE-NEXT: pshufd {{.*#+}} xmm14 = xmm15[2,2,3,3]2742; SSE-NEXT: punpcklwd {{.*#+}} xmm14 = xmm14[0],xmm3[0],xmm14[1],xmm3[1],xmm14[2],xmm3[2],xmm14[3],xmm3[3]2743; SSE-NEXT: psrld $16, %xmm32744; SSE-NEXT: pshufd {{.*#+}} xmm15 = xmm15[0,1,0,3]2745; SSE-NEXT: pshufhw {{.*#+}} xmm15 = xmm15[0,1,2,3,5,7,6,7]2746; SSE-NEXT: punpckhdq {{.*#+}} xmm15 = xmm15[2],xmm3[2],xmm15[3],xmm3[3]2747; SSE-NEXT: packuswb %xmm15, %xmm142748; SSE-NEXT: movdqa {{.*#+}} xmm6 = [65535,65535,65535,0,0,0,65535,65535]2749; SSE-NEXT: movdqa %xmm6, %xmm32750; SSE-NEXT: pandn %xmm14, %xmm32751; SSE-NEXT: movdqa %xmm8, %xmm142752; SSE-NEXT: punpckhbw {{.*#+}} xmm14 = xmm14[8],xmm4[8],xmm14[9],xmm4[9],xmm14[10],xmm4[10],xmm14[11],xmm4[11],xmm14[12],xmm4[12],xmm14[13],xmm4[13],xmm14[14],xmm4[14],xmm14[15],xmm4[15]2753; SSE-NEXT: pshufd {{.*#+}} xmm14 = xmm14[2,1,0,3]2754; SSE-NEXT: pshuflw {{.*#+}} xmm14 = xmm14[1,1,1,1,4,5,6,7]2755; SSE-NEXT: pshufhw {{.*#+}} xmm14 = xmm14[0,1,2,3,5,7,6,7]2756; SSE-NEXT: movdqa {{.*#+}} xmm15 = [65535,65535,0,65535,0,0,65535,65535]2757; SSE-NEXT: movdqa %xmm15, %xmm02758; SSE-NEXT: pandn %xmm14, %xmm02759; SSE-NEXT: punpcklbw {{.*#+}} xmm8 = 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]2760; SSE-NEXT: pshuflw {{.*#+}} xmm8 = xmm8[3,1,2,3,4,5,6,7]2761; SSE-NEXT: pshufd {{.*#+}} xmm8 = xmm8[0,3,2,3]2762; SSE-NEXT: pshuflw {{.*#+}} xmm14 = xmm8[1,3,2,0,4,5,6,7]2763; SSE-NEXT: pand %xmm15, %xmm142764; SSE-NEXT: por %xmm0, %xmm142765; SSE-NEXT: packuswb %xmm14, %xmm142766; SSE-NEXT: pand %xmm6, %xmm142767; SSE-NEXT: por %xmm3, %xmm142768; SSE-NEXT: movdqa %xmm7, %xmm02769; SSE-NEXT: punpcklbw {{.*#+}} xmm0 = xmm0[0],xmm4[0],xmm0[1],xmm4[1],xmm0[2],xmm4[2],xmm0[3],xmm4[3],xmm0[4],xmm4[4],xmm0[5],xmm4[5],xmm0[6],xmm4[6],xmm0[7],xmm4[7]2770; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,5,5,5,5]2771; SSE-NEXT: movdqa {{.*#+}} xmm8 = [65535,65535,65535,0,65535,65535,0,65535]2772; SSE-NEXT: movdqa %xmm8, %xmm32773; SSE-NEXT: pandn %xmm0, %xmm32774; SSE-NEXT: punpckhbw {{.*#+}} xmm7 = xmm7[8],xmm4[8],xmm7[9],xmm4[9],xmm7[10],xmm4[10],xmm7[11],xmm4[11],xmm7[12],xmm4[12],xmm7[13],xmm4[13],xmm7[14],xmm4[14],xmm7[15],xmm4[15]2775; SSE-NEXT: pshuflw {{.*#+}} xmm0 = xmm7[3,1,2,3,4,5,6,7]2776; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,1,0,3]2777; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,5,7,6,4]2778; SSE-NEXT: pand %xmm8, %xmm02779; SSE-NEXT: por %xmm3, %xmm02780; SSE-NEXT: packuswb %xmm0, %xmm02781; SSE-NEXT: movdqa %xmm13, %xmm32782; SSE-NEXT: pandn %xmm0, %xmm32783; SSE-NEXT: pand %xmm13, %xmm142784; SSE-NEXT: por %xmm14, %xmm32785; SSE-NEXT: movdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2786; SSE-NEXT: movdqa %xmm2, %xmm02787; SSE-NEXT: punpckhbw {{.*#+}} xmm0 = xmm0[8],xmm4[8],xmm0[9],xmm4[9],xmm0[10],xmm4[10],xmm0[11],xmm4[11],xmm0[12],xmm4[12],xmm0[13],xmm4[13],xmm0[14],xmm4[14],xmm0[15],xmm4[15]2788; SSE-NEXT: punpcklbw {{.*#+}} 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]2789; SSE-NEXT: pshufd {{.*#+}} xmm3 = xmm2[2,2,3,3]2790; SSE-NEXT: punpcklwd {{.*#+}} xmm3 = xmm3[0],xmm0[0],xmm3[1],xmm0[1],xmm3[2],xmm0[2],xmm3[3],xmm0[3]2791; SSE-NEXT: psrld $16, %xmm02792; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm2[0,1,0,3]2793; SSE-NEXT: pshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,5,7,6,7]2794; SSE-NEXT: punpckhdq {{.*#+}} xmm2 = xmm2[2],xmm0[2],xmm2[3],xmm0[3]2795; SSE-NEXT: packuswb %xmm2, %xmm32796; SSE-NEXT: movdqa %xmm1, %xmm02797; SSE-NEXT: punpckhbw {{.*#+}} xmm0 = xmm0[8],xmm4[8],xmm0[9],xmm4[9],xmm0[10],xmm4[10],xmm0[11],xmm4[11],xmm0[12],xmm4[12],xmm0[13],xmm4[13],xmm0[14],xmm4[14],xmm0[15],xmm4[15]2798; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[2,1,0,3]2799; SSE-NEXT: pshuflw {{.*#+}} xmm0 = xmm0[1,1,1,1,4,5,6,7]2800; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,5,7,6,7]2801; SSE-NEXT: punpcklbw {{.*#+}} xmm1 = xmm1[0],xmm4[0],xmm1[1],xmm4[1],xmm1[2],xmm4[2],xmm1[3],xmm4[3],xmm1[4],xmm4[4],xmm1[5],xmm4[5],xmm1[6],xmm4[6],xmm1[7],xmm4[7]2802; SSE-NEXT: pshuflw {{.*#+}} xmm1 = xmm1[3,1,2,3,4,5,6,7]2803; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[0,3,2,3]2804; SSE-NEXT: pshuflw {{.*#+}} xmm1 = xmm1[1,3,2,0,4,5,6,7]2805; SSE-NEXT: pand %xmm15, %xmm12806; SSE-NEXT: pandn %xmm0, %xmm152807; SSE-NEXT: por %xmm1, %xmm152808; SSE-NEXT: packuswb %xmm15, %xmm152809; SSE-NEXT: pand %xmm6, %xmm152810; SSE-NEXT: pandn %xmm3, %xmm62811; SSE-NEXT: por %xmm6, %xmm152812; SSE-NEXT: movdqa %xmm5, %xmm02813; SSE-NEXT: punpcklbw {{.*#+}} xmm0 = xmm0[0],xmm4[0],xmm0[1],xmm4[1],xmm0[2],xmm4[2],xmm0[3],xmm4[3],xmm0[4],xmm4[4],xmm0[5],xmm4[5],xmm0[6],xmm4[6],xmm0[7],xmm4[7]2814; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,5,5,5,5]2815; SSE-NEXT: punpckhbw {{.*#+}} xmm5 = 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]2816; SSE-NEXT: pshuflw {{.*#+}} xmm1 = xmm5[3,1,2,3,4,5,6,7]2817; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[0,1,0,3]2818; SSE-NEXT: pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,5,7,6,4]2819; SSE-NEXT: pand %xmm8, %xmm12820; SSE-NEXT: pandn %xmm0, %xmm82821; SSE-NEXT: por %xmm1, %xmm82822; SSE-NEXT: packuswb %xmm8, %xmm02823; SSE-NEXT: movdqa %xmm13, %xmm12824; SSE-NEXT: pandn %xmm0, %xmm12825; SSE-NEXT: pand %xmm13, %xmm152826; SSE-NEXT: movdqa %xmm13, %xmm72827; SSE-NEXT: por %xmm15, %xmm12828; SSE-NEXT: movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2829; SSE-NEXT: movdqa {{.*#+}} xmm5 = [65535,0,65535,65535,0,65535,65535,0]2830; SSE-NEXT: pand %xmm5, %xmm102831; SSE-NEXT: por {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Folded Reload2832; SSE-NEXT: movdqa %xmm10, %xmm02833; SSE-NEXT: movdqa {{.*#+}} xmm15 = [255,255,255,255,255,255,255,255]2834; SSE-NEXT: pand %xmm15, %xmm02835; SSE-NEXT: pshufhw {{.*#+}} xmm1 = xmm0[0,1,2,3,4,7,6,7]2836; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[0,2,2,3]2837; SSE-NEXT: pshuflw {{.*#+}} xmm1 = xmm1[1,2,3,3,4,5,6,7]2838; SSE-NEXT: pshuflw {{.*#+}} xmm0 = xmm0[0,3,2,3,4,5,6,7]2839; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,1,0,3]2840; SSE-NEXT: pshufhw {{.*#+}} xmm2 = xmm0[0,1,2,3,4,4,5,6]2841; SSE-NEXT: packuswb %xmm1, %xmm22842; SSE-NEXT: por {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Folded Reload2843; SSE-NEXT: pshuflw {{.*#+}} xmm0 = xmm12[2,1,2,3,4,5,6,7]2844; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,5,4,7]2845; SSE-NEXT: pand %xmm15, %xmm02846; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,3,2,3]2847; SSE-NEXT: pshuflw {{.*#+}} xmm0 = xmm0[1,2,3,0,4,5,6,7]2848; SSE-NEXT: pshufhw {{.*#+}} xmm1 = xmm0[0,1,2,3,5,5,5,5]2849; SSE-NEXT: packuswb %xmm1, %xmm12850; SSE-NEXT: movdqa {{.*#+}} xmm0 = [0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255]2851; SSE-NEXT: movdqa %xmm0, %xmm32852; SSE-NEXT: pandn %xmm1, %xmm32853; SSE-NEXT: pand %xmm0, %xmm22854; SSE-NEXT: por %xmm2, %xmm32855; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload2856; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload2857; SSE-NEXT: pandn %xmm14, %xmm12858; SSE-NEXT: por %xmm1, %xmm112859; SSE-NEXT: pshuflw {{.*#+}} xmm1 = xmm11[0,3,2,3,4,5,6,7]2860; SSE-NEXT: pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,6,5,6,7]2861; SSE-NEXT: pand %xmm15, %xmm12862; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[0,1,2,0]2863; SSE-NEXT: pshuflw {{.*#+}} xmm1 = xmm1[2,2,2,2,4,5,6,7]2864; SSE-NEXT: pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,5,6,7,4]2865; SSE-NEXT: packuswb %xmm1, %xmm12866; SSE-NEXT: movdqa %xmm13, %xmm22867; SSE-NEXT: pandn %xmm1, %xmm22868; SSE-NEXT: pand %xmm13, %xmm32869; SSE-NEXT: por %xmm3, %xmm22870; SSE-NEXT: movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2871; SSE-NEXT: pand %xmm5, %xmm92872; SSE-NEXT: por {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Folded Reload2873; SSE-NEXT: movdqa %xmm9, %xmm12874; SSE-NEXT: pand %xmm15, %xmm12875; SSE-NEXT: pshufhw {{.*#+}} xmm2 = xmm1[0,1,2,3,4,7,6,7]2876; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm2[0,2,2,3]2877; SSE-NEXT: pshuflw {{.*#+}} xmm2 = xmm2[1,2,3,3,4,5,6,7]2878; SSE-NEXT: pshuflw {{.*#+}} xmm1 = xmm1[0,3,2,3,4,5,6,7]2879; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[0,1,0,3]2880; SSE-NEXT: pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,4,5,6]2881; SSE-NEXT: packuswb %xmm2, %xmm12882; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload2883; SSE-NEXT: por {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Folded Reload2884; SSE-NEXT: pshuflw {{.*#+}} xmm2 = xmm13[2,1,2,3,4,5,6,7]2885; SSE-NEXT: pshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,5,4,7]2886; SSE-NEXT: pand %xmm15, %xmm22887; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm2[0,3,2,3]2888; SSE-NEXT: pshuflw {{.*#+}} xmm2 = xmm2[1,2,3,0,4,5,6,7]2889; SSE-NEXT: pshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,5,5,5,5]2890; SSE-NEXT: packuswb %xmm2, %xmm22891; SSE-NEXT: movdqa %xmm0, %xmm32892; SSE-NEXT: pandn %xmm2, %xmm32893; SSE-NEXT: pand %xmm0, %xmm12894; SSE-NEXT: por %xmm1, %xmm32895; SSE-NEXT: movdqa (%rsp), %xmm1 # 16-byte Reload2896; SSE-NEXT: pandn {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload2897; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload2898; SSE-NEXT: por %xmm1, %xmm82899; SSE-NEXT: pshuflw {{.*#+}} xmm1 = xmm8[0,3,2,3,4,5,6,7]2900; SSE-NEXT: pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,6,5,6,7]2901; SSE-NEXT: pand %xmm15, %xmm12902; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[0,1,2,0]2903; SSE-NEXT: pshuflw {{.*#+}} xmm1 = xmm1[2,2,2,2,4,5,6,7]2904; SSE-NEXT: pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,5,6,7,4]2905; SSE-NEXT: packuswb %xmm1, %xmm12906; SSE-NEXT: movdqa %xmm7, %xmm22907; SSE-NEXT: pandn %xmm1, %xmm22908; SSE-NEXT: pand %xmm7, %xmm32909; SSE-NEXT: por %xmm3, %xmm22910; SSE-NEXT: movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2911; SSE-NEXT: movdqa %xmm10, %xmm12912; SSE-NEXT: punpcklbw {{.*#+}} xmm1 = xmm1[0],xmm4[0],xmm1[1],xmm4[1],xmm1[2],xmm4[2],xmm1[3],xmm4[3],xmm1[4],xmm4[4],xmm1[5],xmm4[5],xmm1[6],xmm4[6],xmm1[7],xmm4[7]2913; SSE-NEXT: punpckhbw {{.*#+}} xmm10 = xmm10[8],xmm4[8],xmm10[9],xmm4[9],xmm10[10],xmm4[10],xmm10[11],xmm4[11],xmm10[12],xmm4[12],xmm10[13],xmm4[13],xmm10[14],xmm4[14],xmm10[15],xmm4[15]2914; SSE-NEXT: movdqa %xmm10, %xmm22915; SSE-NEXT: shufps {{.*#+}} xmm2 = xmm2[2,0],xmm1[3,0]2916; SSE-NEXT: movaps %xmm1, %xmm32917; SSE-NEXT: shufps {{.*#+}} xmm3 = xmm3[0,1],xmm2[0,2]2918; SSE-NEXT: shufps {{.*#+}} xmm1 = xmm1[1,0],xmm10[0,0]2919; SSE-NEXT: shufps {{.*#+}} xmm1 = xmm1[2,0],xmm10[2,3]2920; SSE-NEXT: pshufhw {{.*#+}} xmm2 = xmm3[0,1,2,3,7,5,6,7]2921; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm2[0,1,0,2]2922; SSE-NEXT: pshuflw {{.*#+}} xmm1 = xmm1[3,1,2,3,4,5,6,7]2923; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[0,3,2,3]2924; SSE-NEXT: pshuflw {{.*#+}} xmm1 = xmm1[0,1,3,3,4,5,6,7]2925; SSE-NEXT: packuswb %xmm1, %xmm22926; SSE-NEXT: movdqa %xmm12, %xmm12927; SSE-NEXT: punpcklbw {{.*#+}} xmm1 = xmm1[0],xmm4[0],xmm1[1],xmm4[1],xmm1[2],xmm4[2],xmm1[3],xmm4[3],xmm1[4],xmm4[4],xmm1[5],xmm4[5],xmm1[6],xmm4[6],xmm1[7],xmm4[7]2928; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[2,1,2,3]2929; SSE-NEXT: pshuflw {{.*#+}} xmm3 = xmm1[3,1,2,1,4,5,6,7]2930; SSE-NEXT: movdqa {{.*#+}} xmm1 = [0,65535,65535,0,65535,65535,65535,65535]2931; SSE-NEXT: movdqa %xmm1, %xmm52932; SSE-NEXT: pandn %xmm3, %xmm52933; SSE-NEXT: punpckhbw {{.*#+}} xmm12 = 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]2934; SSE-NEXT: pshufd {{.*#+}} xmm3 = xmm12[0,3,2,1]2935; SSE-NEXT: pshuflw {{.*#+}} xmm3 = xmm3[0,1,3,3,4,5,6,7]2936; SSE-NEXT: pshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,7,7,7,7]2937; SSE-NEXT: pand %xmm1, %xmm32938; SSE-NEXT: por %xmm5, %xmm32939; SSE-NEXT: packuswb %xmm3, %xmm32940; SSE-NEXT: movdqa %xmm0, %xmm52941; SSE-NEXT: pandn %xmm3, %xmm52942; SSE-NEXT: pand %xmm0, %xmm22943; SSE-NEXT: por %xmm2, %xmm52944; SSE-NEXT: movdqa %xmm11, %xmm22945; SSE-NEXT: punpckhbw {{.*#+}} 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]2946; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm2[0,1,2,1]2947; SSE-NEXT: pshufhw {{.*#+}} xmm3 = xmm2[0,1,2,3,7,5,6,5]2948; SSE-NEXT: movdqa {{.*#+}} xmm2 = [65535,65535,65535,65535,0,65535,65535,0]2949; SSE-NEXT: movdqa %xmm2, %xmm62950; SSE-NEXT: pandn %xmm3, %xmm62951; SSE-NEXT: punpcklbw {{.*#+}} xmm11 = xmm11[0],xmm4[0],xmm11[1],xmm4[1],xmm11[2],xmm4[2],xmm11[3],xmm4[3],xmm11[4],xmm4[4],xmm11[5],xmm4[5],xmm11[6],xmm4[6],xmm11[7],xmm4[7]2952; SSE-NEXT: pshufd {{.*#+}} xmm3 = xmm11[0,2,0,3]2953; SSE-NEXT: pshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,4,5,7,7]2954; SSE-NEXT: pand %xmm2, %xmm32955; SSE-NEXT: por %xmm6, %xmm32956; SSE-NEXT: packuswb %xmm3, %xmm32957; SSE-NEXT: movdqa %xmm7, %xmm62958; SSE-NEXT: pandn %xmm3, %xmm62959; SSE-NEXT: pand %xmm7, %xmm52960; SSE-NEXT: por %xmm5, %xmm62961; SSE-NEXT: movdqa %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2962; SSE-NEXT: movdqa %xmm9, %xmm32963; SSE-NEXT: punpcklbw {{.*#+}} 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]2964; SSE-NEXT: punpckhbw {{.*#+}} xmm9 = xmm9[8],xmm4[8],xmm9[9],xmm4[9],xmm9[10],xmm4[10],xmm9[11],xmm4[11],xmm9[12],xmm4[12],xmm9[13],xmm4[13],xmm9[14],xmm4[14],xmm9[15],xmm4[15]2965; SSE-NEXT: movdqa %xmm9, %xmm52966; SSE-NEXT: shufps {{.*#+}} xmm5 = xmm5[2,0],xmm3[3,0]2967; SSE-NEXT: movaps %xmm3, %xmm62968; SSE-NEXT: shufps {{.*#+}} xmm6 = xmm6[0,1],xmm5[0,2]2969; SSE-NEXT: shufps {{.*#+}} xmm3 = xmm3[1,0],xmm9[0,0]2970; SSE-NEXT: shufps {{.*#+}} xmm3 = xmm3[2,0],xmm9[2,3]2971; SSE-NEXT: pshufhw {{.*#+}} xmm5 = xmm6[0,1,2,3,7,5,6,7]2972; SSE-NEXT: pshufd {{.*#+}} xmm5 = xmm5[0,1,0,2]2973; SSE-NEXT: pshuflw {{.*#+}} xmm3 = xmm3[3,1,2,3,4,5,6,7]2974; SSE-NEXT: pshufd {{.*#+}} xmm3 = xmm3[0,3,2,3]2975; SSE-NEXT: pshuflw {{.*#+}} xmm3 = xmm3[0,1,3,3,4,5,6,7]2976; SSE-NEXT: packuswb %xmm3, %xmm52977; SSE-NEXT: movdqa %xmm13, %xmm32978; SSE-NEXT: punpcklbw {{.*#+}} 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]2979; SSE-NEXT: pshufd {{.*#+}} xmm3 = xmm3[2,1,2,3]2980; SSE-NEXT: pshuflw {{.*#+}} xmm3 = xmm3[3,1,2,1,4,5,6,7]2981; SSE-NEXT: punpckhbw {{.*#+}} xmm13 = xmm13[8],xmm4[8],xmm13[9],xmm4[9],xmm13[10],xmm4[10],xmm13[11],xmm4[11],xmm13[12],xmm4[12],xmm13[13],xmm4[13],xmm13[14],xmm4[14],xmm13[15],xmm4[15]2982; SSE-NEXT: pshufd {{.*#+}} xmm6 = xmm13[0,3,2,1]2983; SSE-NEXT: pshuflw {{.*#+}} xmm6 = xmm6[0,1,3,3,4,5,6,7]2984; SSE-NEXT: pshufhw {{.*#+}} xmm6 = xmm6[0,1,2,3,7,7,7,7]2985; SSE-NEXT: pand %xmm1, %xmm62986; SSE-NEXT: pandn %xmm3, %xmm12987; SSE-NEXT: por %xmm6, %xmm12988; SSE-NEXT: pand %xmm0, %xmm52989; SSE-NEXT: packuswb %xmm1, %xmm12990; SSE-NEXT: pandn %xmm1, %xmm02991; SSE-NEXT: por %xmm5, %xmm02992; SSE-NEXT: movdqa %xmm8, %xmm12993; SSE-NEXT: punpckhbw {{.*#+}} xmm1 = xmm1[8],xmm4[8],xmm1[9],xmm4[9],xmm1[10],xmm4[10],xmm1[11],xmm4[11],xmm1[12],xmm4[12],xmm1[13],xmm4[13],xmm1[14],xmm4[14],xmm1[15],xmm4[15]2994; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[0,1,2,1]2995; SSE-NEXT: pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,7,5,6,5]2996; SSE-NEXT: punpcklbw {{.*#+}} xmm8 = 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]2997; SSE-NEXT: pshufd {{.*#+}} xmm3 = xmm8[0,2,0,3]2998; SSE-NEXT: pshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,4,5,7,7]2999; SSE-NEXT: pand %xmm2, %xmm33000; SSE-NEXT: pandn %xmm1, %xmm23001; SSE-NEXT: por %xmm3, %xmm23002; SSE-NEXT: movdqa %xmm7, %xmm133003; SSE-NEXT: pand %xmm7, %xmm03004; SSE-NEXT: packuswb %xmm2, %xmm13005; SSE-NEXT: pandn %xmm1, %xmm133006; SSE-NEXT: por %xmm0, %xmm133007; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload3008; SSE-NEXT: por {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Folded Reload3009; SSE-NEXT: movdqa %xmm7, %xmm03010; SSE-NEXT: pand %xmm15, %xmm03011; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm0[2,1,2,3]3012; SSE-NEXT: pshuflw {{.*#+}} xmm1 = xmm1[2,1,2,3,4,5,6,7]3013; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,7,6,7]3014; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,1,0,2]3015; SSE-NEXT: packuswb %xmm1, %xmm03016; SSE-NEXT: movdqa {{.*#+}} xmm2 = [255,255,255,255,255,0,0,0,0,0,255,255,255,255,255,255]3017; SSE-NEXT: movdqa %xmm2, %xmm13018; SSE-NEXT: pandn %xmm0, %xmm13019; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Reload3020; SSE-NEXT: por {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Folded Reload3021; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm9[3,1,2,0]3022; SSE-NEXT: pand %xmm15, %xmm03023; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,6,5,6,7]3024; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[2,1,0,3]3025; SSE-NEXT: pshuflw {{.*#+}} xmm3 = xmm0[2,1,0,3,4,5,6,7]3026; SSE-NEXT: packuswb %xmm3, %xmm33027; SSE-NEXT: pand %xmm2, %xmm33028; SSE-NEXT: por %xmm1, %xmm33029; SSE-NEXT: movdqa %xmm14, %xmm113030; SSE-NEXT: movdqa {{.*#+}} xmm12 = [65535,0,65535,65535,0,65535,65535,0]3031; SSE-NEXT: pand %xmm12, %xmm113032; SSE-NEXT: por {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Folded Reload3033; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm11[0,2,1,3]3034; SSE-NEXT: pand %xmm15, %xmm03035; SSE-NEXT: pshuflw {{.*#+}} xmm0 = xmm0[0,1,2,1,4,5,6,7]3036; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,2,1,3]3037; SSE-NEXT: pshuflw {{.*#+}} xmm0 = xmm0[0,1,0,3,4,5,6,7]3038; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,6,5,4,7]3039; SSE-NEXT: packuswb %xmm0, %xmm53040; SSE-NEXT: movdqa {{.*#+}} xmm0 = [65535,65535,65535,65535,65535,0,0,0]3041; SSE-NEXT: movdqa %xmm0, %xmm83042; SSE-NEXT: pandn %xmm5, %xmm83043; SSE-NEXT: pand %xmm0, %xmm33044; SSE-NEXT: por %xmm3, %xmm83045; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload3046; SSE-NEXT: por {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Folded Reload3047; SSE-NEXT: movdqa %xmm14, %xmm33048; SSE-NEXT: pand %xmm15, %xmm33049; SSE-NEXT: pshufd {{.*#+}} xmm5 = xmm3[2,1,2,3]3050; SSE-NEXT: pshuflw {{.*#+}} xmm5 = xmm5[2,1,2,3,4,5,6,7]3051; SSE-NEXT: pshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,4,7,6,7]3052; SSE-NEXT: pshufd {{.*#+}} xmm3 = xmm3[0,1,0,2]3053; SSE-NEXT: packuswb %xmm5, %xmm33054; SSE-NEXT: movdqa %xmm2, %xmm53055; SSE-NEXT: pandn %xmm3, %xmm53056; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload3057; SSE-NEXT: por {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload3058; SSE-NEXT: pshufd {{.*#+}} xmm3 = xmm1[3,1,2,0]3059; SSE-NEXT: pand %xmm15, %xmm33060; SSE-NEXT: pshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,6,5,6,7]3061; SSE-NEXT: pshufd {{.*#+}} xmm3 = xmm3[2,1,0,3]3062; SSE-NEXT: pshuflw {{.*#+}} xmm6 = xmm3[2,1,0,3,4,5,6,7]3063; SSE-NEXT: packuswb %xmm6, %xmm63064; SSE-NEXT: pand %xmm2, %xmm63065; SSE-NEXT: por %xmm5, %xmm63066; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload3067; SSE-NEXT: pand %xmm12, %xmm33068; SSE-NEXT: pandn {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Folded Reload3069; SSE-NEXT: por %xmm3, %xmm123070; SSE-NEXT: pshufd {{.*#+}} xmm3 = xmm12[0,2,1,3]3071; SSE-NEXT: pand %xmm15, %xmm33072; SSE-NEXT: pshuflw {{.*#+}} xmm3 = xmm3[0,1,2,1,4,5,6,7]3073; SSE-NEXT: pshufd {{.*#+}} xmm3 = xmm3[0,2,1,3]3074; SSE-NEXT: pshuflw {{.*#+}} xmm3 = xmm3[0,1,0,3,4,5,6,7]3075; SSE-NEXT: pshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,6,5,4,7]3076; SSE-NEXT: packuswb %xmm3, %xmm53077; SSE-NEXT: movdqa %xmm0, %xmm33078; SSE-NEXT: pandn %xmm5, %xmm33079; SSE-NEXT: pand %xmm0, %xmm63080; SSE-NEXT: por %xmm6, %xmm33081; SSE-NEXT: movdqa %xmm7, %xmm53082; SSE-NEXT: punpckhbw {{.*#+}} xmm5 = 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]3083; SSE-NEXT: punpcklbw {{.*#+}} xmm7 = xmm7[0],xmm4[0],xmm7[1],xmm4[1],xmm7[2],xmm4[2],xmm7[3],xmm4[3],xmm7[4],xmm4[4],xmm7[5],xmm4[5],xmm7[6],xmm4[6],xmm7[7],xmm4[7]3084; SSE-NEXT: movdqa %xmm7, %xmm63085; SSE-NEXT: shufps {{.*#+}} xmm7 = xmm7[1,0],xmm5[0,0]3086; SSE-NEXT: shufps {{.*#+}} xmm7 = xmm7[2,0],xmm5[2,3]3087; SSE-NEXT: psrlq $48, %xmm53088; SSE-NEXT: psrldq {{.*#+}} xmm6 = xmm6[10,11,12,13,14,15],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero3089; SSE-NEXT: punpcklwd {{.*#+}} xmm6 = xmm6[0],xmm5[0],xmm6[1],xmm5[1],xmm6[2],xmm5[2],xmm6[3],xmm5[3]3090; SSE-NEXT: pshuflw {{.*#+}} xmm5 = xmm7[3,1,2,3,4,5,6,7]3091; SSE-NEXT: pshufd {{.*#+}} xmm5 = xmm5[0,1,0,3]3092; SSE-NEXT: pshufhw {{.*#+}} xmm5 = xmm5[0,1,2,3,4,4,5,7]3093; SSE-NEXT: packuswb %xmm6, %xmm53094; SSE-NEXT: movdqa %xmm2, %xmm63095; SSE-NEXT: pandn %xmm5, %xmm63096; SSE-NEXT: movdqa %xmm9, %xmm53097; SSE-NEXT: punpckhbw {{.*#+}} xmm5 = 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]3098; SSE-NEXT: pshufd {{.*#+}} xmm5 = xmm5[1,1,2,3]3099; SSE-NEXT: pshufhw {{.*#+}} xmm7 = xmm5[0,1,2,3,5,5,5,5]3100; SSE-NEXT: movdqa {{.*#+}} xmm5 = [65535,0,65535,65535,0,65535,65535,65535]3101; SSE-NEXT: movdqa %xmm5, %xmm103102; SSE-NEXT: pandn %xmm7, %xmm103103; SSE-NEXT: punpcklbw {{.*#+}} xmm9 = xmm9[0],xmm4[0],xmm9[1],xmm4[1],xmm9[2],xmm4[2],xmm9[3],xmm4[3],xmm9[4],xmm4[4],xmm9[5],xmm4[5],xmm9[6],xmm4[6],xmm9[7],xmm4[7]3104; SSE-NEXT: pshufhw {{.*#+}} xmm7 = xmm9[0,1,2,3,7,5,6,7]3105; SSE-NEXT: pshufd {{.*#+}} xmm7 = xmm7[0,2,2,3]3106; SSE-NEXT: pshuflw {{.*#+}} xmm9 = xmm7[3,1,1,2,4,5,6,7]3107; SSE-NEXT: pand %xmm5, %xmm93108; SSE-NEXT: por %xmm10, %xmm93109; SSE-NEXT: packuswb %xmm9, %xmm93110; SSE-NEXT: pand %xmm2, %xmm93111; SSE-NEXT: por %xmm6, %xmm93112; SSE-NEXT: movdqa %xmm11, %xmm63113; SSE-NEXT: punpckhbw {{.*#+}} xmm11 = xmm11[8],xmm4[8],xmm11[9],xmm4[9],xmm11[10],xmm4[10],xmm11[11],xmm4[11],xmm11[12],xmm4[12],xmm11[13],xmm4[13],xmm11[14],xmm4[14],xmm11[15],xmm4[15]3114; SSE-NEXT: pshufhw {{.*#+}} xmm7 = xmm11[0,1,2,3,7,5,6,7]3115; SSE-NEXT: pshufd {{.*#+}} xmm7 = xmm7[0,1,2,0]3116; SSE-NEXT: pshufhw {{.*#+}} xmm10 = xmm7[0,1,2,3,5,5,7,4]3117; SSE-NEXT: movdqa {{.*#+}} xmm7 = [65535,65535,65535,65535,0,65535,0,0]3118; SSE-NEXT: movdqa %xmm7, %xmm113119; SSE-NEXT: pandn %xmm10, %xmm113120; SSE-NEXT: punpcklbw {{.*#+}} xmm6 = 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]3121; SSE-NEXT: pshufd {{.*#+}} xmm6 = xmm6[0,3,1,1]3122; SSE-NEXT: pshuflw {{.*#+}} xmm6 = xmm6[0,1,1,3,4,5,6,7]3123; SSE-NEXT: pand %xmm7, %xmm63124; SSE-NEXT: por %xmm6, %xmm113125; SSE-NEXT: packuswb %xmm11, %xmm103126; SSE-NEXT: movdqa %xmm0, %xmm63127; SSE-NEXT: pandn %xmm10, %xmm63128; SSE-NEXT: pand %xmm0, %xmm93129; SSE-NEXT: por %xmm9, %xmm63130; SSE-NEXT: movdqa %xmm14, %xmm113131; SSE-NEXT: movdqa %xmm14, %xmm93132; SSE-NEXT: punpckhbw {{.*#+}} xmm9 = xmm9[8],xmm4[8],xmm9[9],xmm4[9],xmm9[10],xmm4[10],xmm9[11],xmm4[11],xmm9[12],xmm4[12],xmm9[13],xmm4[13],xmm9[14],xmm4[14],xmm9[15],xmm4[15]3133; SSE-NEXT: punpcklbw {{.*#+}} xmm11 = xmm11[0],xmm4[0],xmm11[1],xmm4[1],xmm11[2],xmm4[2],xmm11[3],xmm4[3],xmm11[4],xmm4[4],xmm11[5],xmm4[5],xmm11[6],xmm4[6],xmm11[7],xmm4[7]3134; SSE-NEXT: movdqa %xmm11, %xmm103135; SSE-NEXT: shufps {{.*#+}} xmm11 = xmm11[1,0],xmm9[0,0]3136; SSE-NEXT: shufps {{.*#+}} xmm11 = xmm11[2,0],xmm9[2,3]3137; SSE-NEXT: psrlq $48, %xmm93138; SSE-NEXT: psrldq {{.*#+}} xmm10 = xmm10[10,11,12,13,14,15],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero3139; SSE-NEXT: punpcklwd {{.*#+}} xmm10 = xmm10[0],xmm9[0],xmm10[1],xmm9[1],xmm10[2],xmm9[2],xmm10[3],xmm9[3]3140; SSE-NEXT: pshuflw {{.*#+}} xmm9 = xmm11[3,1,2,3,4,5,6,7]3141; SSE-NEXT: pshufd {{.*#+}} xmm9 = xmm9[0,1,0,3]3142; SSE-NEXT: pshufhw {{.*#+}} xmm9 = xmm9[0,1,2,3,4,4,5,7]3143; SSE-NEXT: packuswb %xmm10, %xmm93144; SSE-NEXT: movdqa %xmm1, %xmm103145; SSE-NEXT: punpckhbw {{.*#+}} xmm10 = xmm10[8],xmm4[8],xmm10[9],xmm4[9],xmm10[10],xmm4[10],xmm10[11],xmm4[11],xmm10[12],xmm4[12],xmm10[13],xmm4[13],xmm10[14],xmm4[14],xmm10[15],xmm4[15]3146; SSE-NEXT: pshufd {{.*#+}} xmm10 = xmm10[1,1,2,3]3147; SSE-NEXT: pshufhw {{.*#+}} xmm10 = xmm10[0,1,2,3,5,5,5,5]3148; SSE-NEXT: punpcklbw {{.*#+}} xmm1 = xmm1[0],xmm4[0],xmm1[1],xmm4[1],xmm1[2],xmm4[2],xmm1[3],xmm4[3],xmm1[4],xmm4[4],xmm1[5],xmm4[5],xmm1[6],xmm4[6],xmm1[7],xmm4[7]3149; SSE-NEXT: pshufhw {{.*#+}} xmm11 = xmm1[0,1,2,3,7,5,6,7]3150; SSE-NEXT: pshufd {{.*#+}} xmm11 = xmm11[0,2,2,3]3151; SSE-NEXT: pshuflw {{.*#+}} xmm11 = xmm11[3,1,1,2,4,5,6,7]3152; SSE-NEXT: pand %xmm5, %xmm113153; SSE-NEXT: pandn %xmm10, %xmm53154; SSE-NEXT: por %xmm11, %xmm53155; SSE-NEXT: packuswb %xmm5, %xmm53156; SSE-NEXT: pand %xmm2, %xmm53157; SSE-NEXT: pandn %xmm9, %xmm23158; SSE-NEXT: por %xmm2, %xmm53159; SSE-NEXT: movdqa %xmm12, %xmm23160; SSE-NEXT: punpcklbw {{.*#+}} 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]3161; SSE-NEXT: punpckhbw {{.*#+}} xmm12 = 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]3162; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm2[0,3,1,1]3163; SSE-NEXT: pshuflw {{.*#+}} xmm2 = xmm2[0,1,1,3,4,5,6,7]3164; SSE-NEXT: pand %xmm7, %xmm23165; SSE-NEXT: pshufhw {{.*#+}} xmm4 = xmm12[0,1,2,3,7,5,6,7]3166; SSE-NEXT: pshufd {{.*#+}} xmm4 = xmm4[0,1,2,0]3167; SSE-NEXT: pshufhw {{.*#+}} xmm4 = xmm4[0,1,2,3,5,5,7,4]3168; SSE-NEXT: pandn %xmm4, %xmm73169; SSE-NEXT: por %xmm2, %xmm73170; SSE-NEXT: pand %xmm0, %xmm53171; SSE-NEXT: packuswb %xmm7, %xmm23172; SSE-NEXT: pandn %xmm2, %xmm03173; SSE-NEXT: por %xmm5, %xmm03174; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload3175; SSE-NEXT: movaps %xmm2, 16(%rsi)3176; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload3177; SSE-NEXT: movaps %xmm2, (%rsi)3178; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload3179; SSE-NEXT: movaps %xmm1, 16(%rdx)3180; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload3181; SSE-NEXT: movaps %xmm1, (%rdx)3182; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload3183; SSE-NEXT: movaps %xmm1, 16(%rcx)3184; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload3185; SSE-NEXT: movaps %xmm1, (%rcx)3186; SSE-NEXT: movdqa %xmm13, 16(%r8)3187; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload3188; SSE-NEXT: movaps %xmm1, (%r8)3189; SSE-NEXT: movdqa %xmm3, 16(%r9)3190; SSE-NEXT: movdqa %xmm8, (%r9)3191; SSE-NEXT: movq {{[0-9]+}}(%rsp), %rax3192; SSE-NEXT: movdqa %xmm0, 16(%rax)3193; SSE-NEXT: movdqa %xmm6, (%rax)3194; SSE-NEXT: addq $264, %rsp # imm = 0x1083195; SSE-NEXT: retq3196;3197; AVX-LABEL: load_i8_stride6_vf32:3198; AVX: # %bb.0:3199; AVX-NEXT: subq $120, %rsp3200; AVX-NEXT: vmovdqa (%rdi), %xmm93201; AVX-NEXT: vmovdqa 16(%rdi), %xmm73202; AVX-NEXT: vmovdqa 32(%rdi), %xmm63203; AVX-NEXT: vmovdqa 48(%rdi), %xmm53204; AVX-NEXT: vpshufb {{.*#+}} xmm0 = xmm5[2,8,14,u,u,u,u,u,u,u,u,u,u,u,u,u]3205; AVX-NEXT: vpshufb {{.*#+}} xmm1 = xmm6[u,u,u,u,u,0,6,12,u,u,u,u,u,u,u,u]3206; AVX-NEXT: vpunpcklqdq {{.*#+}} xmm1 = xmm1[0],xmm0[0]3207; AVX-NEXT: vpshufb {{.*#+}} xmm0 = zero,zero,zero,xmm7[4,10,u,u,u,u,u,u,u,u,u,u,u]3208; AVX-NEXT: vpshufb {{.*#+}} xmm2 = xmm9[2,8,14],zero,zero,xmm9[u,u,u,u,u,u,u,u,u,u,u]3209; AVX-NEXT: vpor %xmm0, %xmm2, %xmm23210; AVX-NEXT: vmovdqa {{.*#+}} xmm0 = [0,0,0,0,0,255,255,255,255,255,255,u,u,u,u,u]3211; AVX-NEXT: vpblendvb %xmm0, %xmm1, %xmm2, %xmm13212; AVX-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3213; AVX-NEXT: vpshufb {{.*#+}} xmm1 = xmm5[3,9,15,u,u,u,u,u,u,u,u,u,u,u,u,u]3214; AVX-NEXT: vpshufb {{.*#+}} xmm2 = xmm6[u,u,u,u,u,1,7,13,u,u,u,u,u,u,u,u]3215; AVX-NEXT: vpunpcklqdq {{.*#+}} xmm1 = xmm2[0],xmm1[0]3216; AVX-NEXT: vpshufb {{.*#+}} xmm2 = zero,zero,zero,xmm7[5,11,u,u,u,u,u,u,u,u,u,u,u]3217; AVX-NEXT: vpshufb {{.*#+}} xmm3 = xmm9[3,9,15],zero,zero,xmm9[u,u,u,u,u,u,u,u,u,u,u]3218; AVX-NEXT: vpor %xmm2, %xmm3, %xmm23219; AVX-NEXT: vpblendvb %xmm0, %xmm1, %xmm2, %xmm03220; AVX-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3221; AVX-NEXT: vpshufb {{.*#+}} xmm0 = xmm9[4,10],zero,zero,zero,xmm9[u,u,u,u,u,u,u,u,u,u,u]3222; AVX-NEXT: vpshufb {{.*#+}} xmm1 = zero,zero,xmm7[0,6,12,u,u,u,u,u,u,u,u,u,u,u]3223; AVX-NEXT: vpor %xmm0, %xmm1, %xmm13224; AVX-NEXT: vpshufb {{.*#+}} xmm0 = xmm5[u,u,u,u,u,u,u,u,4,10,u,u,u,u,u,u]3225; AVX-NEXT: vpshufb {{.*#+}} xmm2 = xmm6[u,u,u,u,u,u,u,u,u,u,u,u,u,2,8,14]3226; AVX-NEXT: vpunpckhqdq {{.*#+}} xmm2 = xmm2[1],xmm0[1]3227; AVX-NEXT: vmovq {{.*#+}} xmm0 = [255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0]3228; AVX-NEXT: vpblendvb %xmm0, %xmm1, %xmm2, %xmm13229; AVX-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3230; AVX-NEXT: vpshufb {{.*#+}} xmm1 = xmm9[5,11],zero,zero,zero,xmm9[u,u,u,u,u,u,u,u,u,u,u]3231; AVX-NEXT: vmovdqa %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3232; AVX-NEXT: vpshufb {{.*#+}} xmm2 = zero,zero,xmm7[1,7,13,u,u,u,u,u,u,u,u,u,u,u]3233; AVX-NEXT: vpor %xmm1, %xmm2, %xmm13234; AVX-NEXT: vmovdqa %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3235; AVX-NEXT: vpshufb {{.*#+}} xmm2 = xmm5[u,u,u,u,u,u,u,u,5,11,u,u,u,u,u,u]3236; AVX-NEXT: vmovdqa %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3237; AVX-NEXT: vpshufb {{.*#+}} xmm3 = xmm6[u,u,u,u,u,u,u,u,u,u,u,u,u,3,9,15]3238; AVX-NEXT: vpunpckhqdq {{.*#+}} xmm2 = xmm3[1],xmm2[1]3239; AVX-NEXT: vpblendvb %xmm0, %xmm1, %xmm2, %xmm03240; AVX-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3241; AVX-NEXT: vmovq {{.*#+}} xmm8 = [128,128,128,2,8,14,0,0,0,0,0,0,0,0,0,0]3242; AVX-NEXT: vmovdqa 112(%rdi), %xmm03243; AVX-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3244; AVX-NEXT: vpshufb %xmm8, %xmm0, %xmm13245; AVX-NEXT: vmovq {{.*#+}} xmm2 = [0,6,12,128,128,128,0,0,0,0,0,0,0,0,0,0]3246; AVX-NEXT: vmovdqa 96(%rdi), %xmm133247; AVX-NEXT: vpshufb %xmm2, %xmm13, %xmm33248; AVX-NEXT: vpor %xmm1, %xmm3, %xmm13249; AVX-NEXT: vmovddup {{.*#+}} xmm11 = [0,0,0,128,128,128,4,10,0,0,0,128,128,128,4,10]3250; AVX-NEXT: # xmm11 = mem[0,0]3251; AVX-NEXT: vmovdqa 80(%rdi), %xmm123252; AVX-NEXT: vpshufb %xmm11, %xmm12, %xmm43253; AVX-NEXT: vmovddup {{.*#+}} xmm3 = [0,0,0,2,8,14,128,128,0,0,0,2,8,14,128,128]3254; AVX-NEXT: # xmm3 = mem[0,0]3255; AVX-NEXT: vmovdqa 64(%rdi), %xmm143256; AVX-NEXT: vpshufb %xmm3, %xmm14, %xmm103257; AVX-NEXT: vpor %xmm4, %xmm10, %xmm43258; AVX-NEXT: vinsertf128 $1, %xmm1, %ymm4, %ymm13259; AVX-NEXT: vmovd {{.*#+}} xmm15 = [0,0,4,10,0,0,0,0,0,0,0,0,0,0,0,0]3260; AVX-NEXT: vpshufb %xmm15, %xmm6, %xmm43261; AVX-NEXT: vbroadcastss {{.*#+}} xmm0 = [0,6,12,0,0,6,12,0,0,6,12,0,0,6,12,0]3262; AVX-NEXT: vpshufb %xmm0, %xmm5, %xmm103263; AVX-NEXT: vpunpckldq {{.*#+}} xmm4 = xmm10[0],xmm4[0],xmm10[1],xmm4[1]3264; AVX-NEXT: vpshufb %xmm8, %xmm7, %xmm83265; AVX-NEXT: vmovdqa %xmm7, %xmm103266; AVX-NEXT: vpshufb %xmm2, %xmm9, %xmm23267; AVX-NEXT: vpor %xmm2, %xmm8, %xmm23268; AVX-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0,1,2],xmm4[3,4,5],xmm2[6,7]3269; AVX-NEXT: vmovaps {{.*#+}} ymm4 = [255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255]3270; AVX-NEXT: vandnps %ymm1, %ymm4, %ymm13271; AVX-NEXT: vandps %ymm4, %ymm2, %ymm23272; AVX-NEXT: vorps %ymm1, %ymm2, %ymm83273; AVX-NEXT: vmovdqa 128(%rdi), %xmm63274; AVX-NEXT: vpshufb %xmm15, %xmm6, %xmm13275; AVX-NEXT: vmovdqa 144(%rdi), %xmm53276; AVX-NEXT: vpshufb %xmm0, %xmm5, %xmm03277; AVX-NEXT: vpunpckldq {{.*#+}} xmm15 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]3278; AVX-NEXT: vmovdqa 176(%rdi), %xmm43279; AVX-NEXT: vpshufb %xmm11, %xmm4, %xmm113280; AVX-NEXT: vmovdqa 160(%rdi), %xmm23281; AVX-NEXT: vpshufb %xmm3, %xmm2, %xmm33282; AVX-NEXT: vpor %xmm3, %xmm11, %xmm113283; AVX-NEXT: vmovdqa {{.*#+}} ymm3 = [255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255]3284; AVX-NEXT: vpblendvb %xmm3, %xmm15, %xmm11, %xmm153285; AVX-NEXT: vmovaps {{.*#+}} ymm11 = [65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,0,0,0,0,0]3286; AVX-NEXT: vandps %ymm11, %ymm8, %ymm83287; AVX-NEXT: vinsertf128 $1, %xmm15, %ymm0, %ymm153288; AVX-NEXT: vandnps %ymm15, %ymm11, %ymm153289; AVX-NEXT: vorps %ymm15, %ymm8, %ymm03290; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3291; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Reload3292; AVX-NEXT: vpshufb {{.*#+}} xmm0 = zero,zero,zero,xmm9[3,9,15,u,u,u,u,u,u,u,u,u,u]3293; AVX-NEXT: vpshufb {{.*#+}} xmm15 = xmm13[1,7,13],zero,zero,zero,xmm13[u,u,u,u,u,u,u,u,u,u]3294; AVX-NEXT: vpor %xmm0, %xmm15, %xmm13295; AVX-NEXT: vpshufb {{.*#+}} xmm0 = xmm12[u,u,u,u,u,u,u,u,u,u,u],zero,zero,zero,xmm12[5,11]3296; AVX-NEXT: vmovdqa %xmm14, %xmm73297; AVX-NEXT: vpshufb {{.*#+}} xmm15 = xmm14[u,u,u,u,u,u,u,u,u,u,u,3,9,15],zero,zero3298; AVX-NEXT: vpor %xmm0, %xmm15, %xmm03299; AVX-NEXT: vinsertf128 $1, %xmm1, %ymm0, %ymm03300; AVX-NEXT: vmovd {{.*#+}} xmm8 = [0,0,5,11,0,0,0,0,0,0,0,0,0,0,0,0]3301; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload3302; AVX-NEXT: vpshufb %xmm8, %xmm1, %xmm153303; AVX-NEXT: vbroadcastss {{.*#+}} xmm1 = [1,7,13,0,1,7,13,0,1,7,13,0,1,7,13,0]3304; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload3305; AVX-NEXT: vpshufb %xmm1, %xmm14, %xmm143306; AVX-NEXT: vpunpckldq {{.*#+}} xmm14 = xmm14[0],xmm15[0],xmm14[1],xmm15[1]3307; AVX-NEXT: vpshufb {{.*#+}} xmm15 = zero,zero,zero,xmm10[3,9,15,u,u,u,u,u,u,u,u,u,u]3308; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload3309; AVX-NEXT: vpshufb {{.*#+}} xmm10 = xmm10[1,7,13],zero,zero,zero,xmm10[u,u,u,u,u,u,u,u,u,u]3310; AVX-NEXT: vpor %xmm15, %xmm10, %xmm103311; AVX-NEXT: vpblendw {{.*#+}} xmm10 = xmm10[0,1,2],xmm14[3,4,5],xmm10[6,7]3312; AVX-NEXT: vmovaps {{.*#+}} ymm14 = [255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255]3313; AVX-NEXT: vandnps %ymm0, %ymm14, %ymm03314; AVX-NEXT: vandps %ymm14, %ymm10, %ymm103315; AVX-NEXT: vorps %ymm0, %ymm10, %ymm03316; AVX-NEXT: vpshufb %xmm8, %xmm6, %xmm83317; AVX-NEXT: vpshufb %xmm1, %xmm5, %xmm13318; AVX-NEXT: vpunpckldq {{.*#+}} xmm1 = xmm1[0],xmm8[0],xmm1[1],xmm8[1]3319; AVX-NEXT: vpshufb {{.*#+}} xmm8 = xmm4[u,u,u,u,u,u,u,u,u,u,u],zero,zero,zero,xmm4[5,11]3320; AVX-NEXT: vpshufb {{.*#+}} xmm10 = xmm2[u,u,u,u,u,u,u,u,u,u,u,3,9,15],zero,zero3321; AVX-NEXT: vpor %xmm8, %xmm10, %xmm83322; AVX-NEXT: vpblendvb %xmm3, %xmm1, %xmm8, %xmm13323; AVX-NEXT: vandps %ymm0, %ymm11, %ymm03324; AVX-NEXT: vinsertf128 $1, %xmm1, %ymm0, %ymm13325; AVX-NEXT: vandnps %ymm1, %ymm11, %ymm13326; AVX-NEXT: vorps %ymm1, %ymm0, %ymm03327; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3328; AVX-NEXT: vpshufb {{.*#+}} xmm0 = zero,zero,zero,xmm9[4,10,u,u,u,u,u,u,u,u,u,u,u]3329; AVX-NEXT: vpshufb {{.*#+}} xmm1 = xmm13[2,8,14],zero,zero,xmm13[u,u,u,u,u,u,u,u,u,u,u]3330; AVX-NEXT: vpor %xmm0, %xmm1, %xmm03331; AVX-NEXT: vmovddup {{.*#+}} xmm1 = [0,0,0,4,10,128,128,128,0,0,0,4,10,128,128,128]3332; AVX-NEXT: # xmm1 = mem[0,0]3333; AVX-NEXT: vpshufb %xmm1, %xmm7, %xmm103334; AVX-NEXT: vmovddup {{.*#+}} xmm11 = [0,0,0,128,128,0,6,12,0,0,0,128,128,0,6,12]3335; AVX-NEXT: # xmm11 = mem[0,0]3336; AVX-NEXT: vpshufb %xmm11, %xmm12, %xmm143337; AVX-NEXT: vpor %xmm10, %xmm14, %xmm103338; AVX-NEXT: vinsertf128 $1, %xmm0, %ymm10, %ymm03339; AVX-NEXT: vandnps %ymm0, %ymm3, %ymm03340; AVX-NEXT: vandps {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm10 # 32-byte Folded Reload3341; AVX-NEXT: vorps %ymm0, %ymm10, %ymm03342; AVX-NEXT: vpshufb {{.*#+}} xmm10 = xmm5[2,8,14,u,u,u,u,u,u,u,u,u,u,u,u,u]3343; AVX-NEXT: vpshufb {{.*#+}} xmm14 = xmm6[u,u,u,u,u,0,6,12,u,u,u,u,u,u,u,u]3344; AVX-NEXT: vpunpcklqdq {{.*#+}} xmm10 = xmm14[0],xmm10[0]3345; AVX-NEXT: vpshufb %xmm1, %xmm2, %xmm13346; AVX-NEXT: vpshufb %xmm11, %xmm4, %xmm113347; AVX-NEXT: vpor %xmm1, %xmm11, %xmm13348; AVX-NEXT: vpblendvb %xmm3, %xmm10, %xmm1, %xmm13349; AVX-NEXT: vmovaps {{.*#+}} ymm10 = [255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0]3350; AVX-NEXT: vandps %ymm0, %ymm10, %ymm03351; AVX-NEXT: vinsertf128 $1, %xmm1, %ymm0, %ymm13352; AVX-NEXT: vandnps %ymm1, %ymm10, %ymm13353; AVX-NEXT: vorps %ymm1, %ymm0, %ymm113354; AVX-NEXT: vpshufb {{.*#+}} xmm0 = zero,zero,zero,xmm9[5,11,u,u,u,u,u,u,u,u,u,u,u]3355; AVX-NEXT: vpshufb {{.*#+}} xmm1 = xmm13[3,9,15],zero,zero,xmm13[u,u,u,u,u,u,u,u,u,u,u]3356; AVX-NEXT: vpor %xmm0, %xmm1, %xmm03357; AVX-NEXT: vmovddup {{.*#+}} xmm1 = [0,0,0,5,11,128,128,128,0,0,0,5,11,128,128,128]3358; AVX-NEXT: # xmm1 = mem[0,0]3359; AVX-NEXT: vpshufb %xmm1, %xmm7, %xmm143360; AVX-NEXT: vmovddup {{.*#+}} xmm15 = [0,0,0,128,128,1,7,13,0,0,0,128,128,1,7,13]3361; AVX-NEXT: # xmm15 = mem[0,0]3362; AVX-NEXT: vpshufb %xmm15, %xmm12, %xmm83363; AVX-NEXT: vpor %xmm14, %xmm8, %xmm83364; AVX-NEXT: vinsertf128 $1, %xmm0, %ymm8, %ymm03365; AVX-NEXT: vpshufb {{.*#+}} xmm8 = xmm5[3,9,15,u,u,u,u,u,u,u,u,u,u,u,u,u]3366; AVX-NEXT: vpshufb {{.*#+}} xmm14 = xmm6[u,u,u,u,u,1,7,13,u,u,u,u,u,u,u,u]3367; AVX-NEXT: vpunpcklqdq {{.*#+}} xmm8 = xmm14[0],xmm8[0]3368; AVX-NEXT: vpshufb %xmm1, %xmm2, %xmm13369; AVX-NEXT: vpshufb %xmm15, %xmm4, %xmm143370; AVX-NEXT: vpor %xmm1, %xmm14, %xmm13371; AVX-NEXT: vpblendvb %xmm3, %xmm8, %xmm1, %xmm13372; AVX-NEXT: vandnps %ymm0, %ymm3, %ymm03373; AVX-NEXT: vandps {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm3 # 32-byte Folded Reload3374; AVX-NEXT: vorps %ymm0, %ymm3, %ymm03375; AVX-NEXT: vandps %ymm0, %ymm10, %ymm03376; AVX-NEXT: vinsertf128 $1, %xmm1, %ymm0, %ymm13377; AVX-NEXT: vandnps %ymm1, %ymm10, %ymm13378; AVX-NEXT: vorps %ymm1, %ymm0, %ymm33379; AVX-NEXT: vpshufb {{.*#+}} xmm0 = xmm13[4,10],zero,zero,zero,xmm13[u,u,u,u,u,u,u,u,u,u,u]3380; AVX-NEXT: vpshufb {{.*#+}} xmm1 = zero,zero,xmm9[0,6,12,u,u,u,u,u,u,u,u,u,u,u]3381; AVX-NEXT: vpor %xmm0, %xmm1, %xmm03382; AVX-NEXT: vmovddup {{.*#+}} xmm1 = [0,0,128,128,128,2,8,14,0,0,128,128,128,2,8,14]3383; AVX-NEXT: # xmm1 = mem[0,0]3384; AVX-NEXT: vpshufb %xmm1, %xmm12, %xmm83385; AVX-NEXT: vmovddup {{.*#+}} xmm14 = [0,0,0,6,12,128,128,128,0,0,0,6,12,128,128,128]3386; AVX-NEXT: # xmm14 = mem[0,0]3387; AVX-NEXT: vpshufb %xmm14, %xmm7, %xmm153388; AVX-NEXT: vpor %xmm8, %xmm15, %xmm83389; AVX-NEXT: vinsertf128 $1, %xmm0, %ymm8, %ymm03390; AVX-NEXT: vmovaps {{.*#+}} ymm8 = [0,0,0,0,0,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535]3391; AVX-NEXT: vandnps {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm15 # 32-byte Folded Reload3392; AVX-NEXT: vandps %ymm0, %ymm8, %ymm03393; AVX-NEXT: vorps %ymm0, %ymm15, %ymm03394; AVX-NEXT: vpshufb %xmm1, %xmm4, %xmm13395; AVX-NEXT: vpshufb %xmm14, %xmm2, %xmm143396; AVX-NEXT: vpor %xmm1, %xmm14, %xmm13397; AVX-NEXT: vpshufb {{.*#+}} xmm14 = xmm5[u,u,u,u,u,u,u,u,4,10,u,u,u,u,u,u]3398; AVX-NEXT: vpshufb {{.*#+}} xmm15 = xmm6[u,u,u,u,u,u,u,u,u,u,u,u,u,2,8,14]3399; AVX-NEXT: vpunpckhqdq {{.*#+}} xmm14 = xmm15[1],xmm14[1]3400; AVX-NEXT: vpblendw {{.*#+}} xmm1 = xmm14[0,1,2,3,4],xmm1[5,6,7]3401; AVX-NEXT: vandps %ymm0, %ymm10, %ymm03402; AVX-NEXT: vinsertf128 $1, %xmm1, %ymm0, %ymm13403; AVX-NEXT: vandnps %ymm1, %ymm10, %ymm13404; AVX-NEXT: vorps %ymm1, %ymm0, %ymm03405; AVX-NEXT: vpshufb {{.*#+}} xmm1 = xmm13[5,11],zero,zero,zero,xmm13[u,u,u,u,u,u,u,u,u,u,u]3406; AVX-NEXT: vpshufb {{.*#+}} xmm9 = zero,zero,xmm9[1,7,13,u,u,u,u,u,u,u,u,u,u,u]3407; AVX-NEXT: vpor %xmm1, %xmm9, %xmm13408; AVX-NEXT: vmovddup {{.*#+}} xmm9 = [0,0,128,128,128,3,9,15,0,0,128,128,128,3,9,15]3409; AVX-NEXT: # xmm9 = mem[0,0]3410; AVX-NEXT: vpshufb %xmm9, %xmm12, %xmm123411; AVX-NEXT: vmovddup {{.*#+}} xmm13 = [0,0,1,7,13,128,128,128,0,0,1,7,13,128,128,128]3412; AVX-NEXT: # xmm13 = mem[0,0]3413; AVX-NEXT: vpshufb %xmm13, %xmm7, %xmm73414; AVX-NEXT: vpor %xmm7, %xmm12, %xmm73415; AVX-NEXT: vinsertf128 $1, %xmm1, %ymm7, %ymm13416; AVX-NEXT: vandnps {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm7 # 32-byte Folded Reload3417; AVX-NEXT: vandps %ymm1, %ymm8, %ymm13418; AVX-NEXT: vorps %ymm7, %ymm1, %ymm13419; AVX-NEXT: vpshufb %xmm9, %xmm4, %xmm43420; AVX-NEXT: vpshufb %xmm13, %xmm2, %xmm23421; AVX-NEXT: vpor %xmm4, %xmm2, %xmm23422; AVX-NEXT: vpshufb {{.*#+}} xmm4 = xmm5[u,u,u,u,u,u,u,u,5,11,u,u,u,u,u,u]3423; AVX-NEXT: vpshufb {{.*#+}} xmm5 = xmm6[u,u,u,u,u,u,u,u,u,u,u,u,u,3,9,15]3424; AVX-NEXT: vpunpckhqdq {{.*#+}} xmm4 = xmm5[1],xmm4[1]3425; AVX-NEXT: vpblendw {{.*#+}} xmm2 = xmm4[0,1,2,3,4],xmm2[5,6,7]3426; AVX-NEXT: vandps %ymm1, %ymm10, %ymm13427; AVX-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm23428; AVX-NEXT: vandnps %ymm2, %ymm10, %ymm23429; AVX-NEXT: vorps %ymm2, %ymm1, %ymm13430; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload3431; AVX-NEXT: vmovaps %ymm2, (%rsi)3432; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload3433; AVX-NEXT: vmovaps %ymm2, (%rdx)3434; AVX-NEXT: vmovaps %ymm11, (%rcx)3435; AVX-NEXT: vmovaps %ymm3, (%r8)3436; AVX-NEXT: vmovaps %ymm0, (%r9)3437; AVX-NEXT: movq {{[0-9]+}}(%rsp), %rax3438; AVX-NEXT: vmovaps %ymm1, (%rax)3439; AVX-NEXT: addq $120, %rsp3440; AVX-NEXT: vzeroupper3441; AVX-NEXT: retq3442;3443; AVX2-LABEL: load_i8_stride6_vf32:3444; AVX2: # %bb.0:3445; AVX2-NEXT: vmovdqa 160(%rdi), %ymm43446; AVX2-NEXT: vmovdqa (%rdi), %ymm23447; AVX2-NEXT: vmovdqa 32(%rdi), %ymm33448; AVX2-NEXT: vmovdqa 64(%rdi), %ymm03449; AVX2-NEXT: vmovdqa 96(%rdi), %ymm13450; AVX2-NEXT: vpmovsxbw {{.*#+}} ymm8 = [65535,0,0,65535,0,0,65535,0,0,65535,0,0,65535,0,0,65535]3451; AVX2-NEXT: vpblendvb %ymm8, %ymm2, %ymm3, %ymm93452; AVX2-NEXT: vpshufb {{.*#+}} xmm5 = xmm9[0,6,12],zero,zero,zero,xmm9[4,10],zero,zero,zero,xmm9[u,u,u,u,u]3453; AVX2-NEXT: vextracti128 $1, %ymm9, %xmm103454; AVX2-NEXT: vpshufb {{.*#+}} xmm6 = zero,zero,zero,xmm10[2,8,14],zero,zero,xmm10[0,6,12,u,u,u,u,u]3455; AVX2-NEXT: vpor %xmm5, %xmm6, %xmm113456; AVX2-NEXT: vpmovsxbw {{.*#+}} ymm7 = [0,65535,0,0,65535,0,0,65535,65535,0,0,65535,0,0,65535,0]3457; AVX2-NEXT: vperm2i128 {{.*#+}} ymm5 = ymm0[0,1],ymm1[0,1]3458; AVX2-NEXT: vperm2i128 {{.*#+}} ymm6 = ymm0[2,3],ymm1[2,3]3459; AVX2-NEXT: vpblendvb %ymm7, %ymm5, %ymm6, %ymm13460; AVX2-NEXT: vpshufb {{.*#+}} ymm0 = ymm1[u,u,u,u,u,u,u,u,u,u,u,2,8,14,4,10,16,22,28,18,24,30,u,u,u,u,u,u,u,u,u,u]3461; AVX2-NEXT: vpmovsxdq {{.*#+}} xmm7 = [18446744073709551615,16777215]3462; AVX2-NEXT: vpblendvb %ymm7, %ymm11, %ymm0, %ymm03463; AVX2-NEXT: vpshufb {{.*#+}} xmm9 = xmm9[1,7,13],zero,zero,zero,xmm9[5,11],zero,zero,zero,xmm9[u,u,u,u,u]3464; AVX2-NEXT: vpshufb {{.*#+}} xmm10 = zero,zero,zero,xmm10[3,9,15],zero,zero,xmm10[1,7,13,u,u,u,u,u]3465; AVX2-NEXT: vpor %xmm9, %xmm10, %xmm93466; AVX2-NEXT: vpshufb {{.*#+}} ymm1 = ymm1[u,u,u,u,u,u,u,u,u,u,u,3,9,15,5,11,17,23,29,19,25,31,u,u,u,u,u,u,u,u,u,u]3467; AVX2-NEXT: vpblendvb %ymm7, %ymm9, %ymm1, %ymm13468; AVX2-NEXT: vpmovsxbw {{.*#+}} ymm11 = [65535,0,0,65535,0,0,65535,0,0,65535,0,0,65535,0,0,65535]3469; AVX2-NEXT: vpblendvb %ymm11, %ymm3, %ymm2, %ymm93470; AVX2-NEXT: vextracti128 $1, %ymm9, %xmm103471; AVX2-NEXT: vpshufb {{.*#+}} xmm12 = zero,zero,zero,xmm10[4,10],zero,zero,zero,xmm10[2,8,14,u,u,u,u,u]3472; AVX2-NEXT: vpshufb {{.*#+}} xmm13 = xmm9[2,8,14],zero,zero,xmm9[0,6,12],zero,zero,zero,xmm9[u,u,u,u,u]3473; AVX2-NEXT: vpor %xmm12, %xmm13, %xmm123474; AVX2-NEXT: vpmovsxbw {{.*#+}} ymm13 = [65535,0,0,65535,0,0,65535,0,0,0,65535,0,0,65535,0,0]3475; AVX2-NEXT: vpblendvb %ymm13, %ymm6, %ymm5, %ymm133476; AVX2-NEXT: vpshufb {{.*#+}} ymm14 = ymm13[u,u,u,u,u,u,u,u,u,u,u,4,10,0,6,12,18,24,30,20,26,u,u,u,u,u,u,u,u,u,u,u]3477; AVX2-NEXT: vpblendvb %ymm7, %ymm12, %ymm14, %ymm123478; AVX2-NEXT: vmovdqa 128(%rdi), %ymm143479; AVX2-NEXT: vpblendvb %ymm8, %ymm14, %ymm4, %ymm83480; AVX2-NEXT: vpshufb {{.*#+}} xmm10 = zero,zero,zero,xmm10[5,11],zero,zero,zero,xmm10[3,9,15,u,u,u,u,u]3481; AVX2-NEXT: vpshufb {{.*#+}} xmm9 = xmm9[3,9,15],zero,zero,xmm9[1,7,13],zero,zero,zero,xmm9[u,u,u,u,u]3482; AVX2-NEXT: vpor %xmm10, %xmm9, %xmm93483; AVX2-NEXT: vpshufb {{.*#+}} xmm10 = xmm8[u,u,u,u,u,0,6,12],zero,zero,zero,xmm8[4,10],zero,zero,zero3484; AVX2-NEXT: vpshufb {{.*#+}} ymm13 = ymm13[u,u,u,u,u,u,u,u,u,u,u,5,11,1,7,13,19,25,31,21,27,u,u,u,u,u,u,u,u,u,u,u]3485; AVX2-NEXT: vpblendvb %ymm7, %ymm9, %ymm13, %ymm133486; AVX2-NEXT: vextracti128 $1, %ymm8, %xmm93487; AVX2-NEXT: vpshufb {{.*#+}} xmm7 = xmm9[u,u,u,u,u],zero,zero,zero,xmm9[2,8,14],zero,zero,xmm9[0,6,12]3488; AVX2-NEXT: vpor %xmm7, %xmm10, %xmm73489; AVX2-NEXT: vinserti128 $1, %xmm7, %ymm0, %ymm73490; AVX2-NEXT: vpmovsxwd {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm103491; AVX2-NEXT: vpblendvb %ymm10, %ymm12, %ymm7, %ymm73492; AVX2-NEXT: vpmovsxbw {{.*#+}} ymm12 = [0,65535,0,0,65535,0,0,65535,0,0,65535,0,0,65535,0,0]3493; AVX2-NEXT: vpshufb {{.*#+}} xmm8 = xmm8[u,u,u,u,u,1,7,13],zero,zero,zero,xmm8[5,11],zero,zero,zero3494; AVX2-NEXT: vpshufb {{.*#+}} xmm9 = xmm9[u,u,u,u,u],zero,zero,zero,xmm9[3,9,15],zero,zero,xmm9[1,7,13]3495; AVX2-NEXT: vpor %xmm8, %xmm9, %xmm83496; AVX2-NEXT: vpblendvb %ymm12, %ymm4, %ymm14, %ymm93497; AVX2-NEXT: vinserti128 $1, %xmm8, %ymm0, %ymm83498; AVX2-NEXT: vpblendvb %ymm10, %ymm13, %ymm8, %ymm83499; AVX2-NEXT: vpblendvb %ymm11, %ymm4, %ymm14, %ymm43500; AVX2-NEXT: vextracti128 $1, %ymm4, %xmm113501; AVX2-NEXT: vpshufb {{.*#+}} xmm13 = xmm11[u,u,u,u,u],zero,zero,zero,xmm11[4,10],zero,zero,zero,xmm11[2,8,14]3502; AVX2-NEXT: vpshufb {{.*#+}} xmm14 = xmm4[u,u,u,u,u,2,8,14],zero,zero,xmm4[0,6,12],zero,zero,zero3503; AVX2-NEXT: vpor %xmm13, %xmm14, %xmm133504; AVX2-NEXT: vpblendvb %ymm12, %ymm3, %ymm2, %ymm23505; AVX2-NEXT: vextracti128 $1, %ymm2, %xmm33506; AVX2-NEXT: vpmovsxbw {{.*#+}} ymm12 = [0,65535,0,0,65535,0,0,65535,65535,0,0,65535,0,0,65535,0]3507; AVX2-NEXT: vpblendvb %ymm12, %ymm6, %ymm5, %ymm53508; AVX2-NEXT: vpshufb {{.*#+}} xmm6 = zero,zero,xmm3[0,6,12],zero,zero,zero,xmm3[4,10,u,u,u,u,u,u]3509; AVX2-NEXT: vpshufb {{.*#+}} xmm12 = xmm2[4,10],zero,zero,zero,xmm2[2,8,14],zero,zero,xmm2[u,u,u,u,u,u]3510; AVX2-NEXT: vpor %xmm6, %xmm12, %xmm63511; AVX2-NEXT: vpshufb {{.*#+}} ymm12 = ymm5[u,u,u,u,u,u,u,u,u,u,0,6,12,2,8,14,20,26,16,22,28,u,u,u,u,u,u,u,u,u,u,u]3512; AVX2-NEXT: vpblendw {{.*#+}} xmm6 = xmm6[0,1,2,3,4],xmm12[5,6,7]3513; AVX2-NEXT: vpblendd {{.*#+}} ymm6 = ymm6[0,1,2,3],ymm12[4,5,6,7]3514; AVX2-NEXT: vinserti128 $1, %xmm13, %ymm0, %ymm123515; AVX2-NEXT: vpblendvb %ymm10, %ymm6, %ymm12, %ymm63516; AVX2-NEXT: vpshufb {{.*#+}} xmm11 = xmm11[u,u,u,u,u],zero,zero,zero,xmm11[5,11],zero,zero,zero,xmm11[3,9,15]3517; AVX2-NEXT: vpshufb {{.*#+}} xmm4 = xmm4[u,u,u,u,u,3,9,15],zero,zero,xmm4[1,7,13],zero,zero,zero3518; AVX2-NEXT: vpor %xmm4, %xmm11, %xmm43519; AVX2-NEXT: vpshufb {{.*#+}} xmm3 = zero,zero,xmm3[1,7,13],zero,zero,zero,xmm3[5,11,u,u,u,u,u,u]3520; AVX2-NEXT: vpshufb {{.*#+}} xmm2 = xmm2[5,11],zero,zero,zero,xmm2[3,9,15],zero,zero,xmm2[u,u,u,u,u,u]3521; AVX2-NEXT: vpor %xmm3, %xmm2, %xmm23522; AVX2-NEXT: vpshufb {{.*#+}} ymm3 = ymm5[u,u,u,u,u,u,u,u,u,u,1,7,13,3,9,15,21,27,17,23,29,u,u,u,u,u,u,u,u,u,u,u]3523; AVX2-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0,1,2,3,4],xmm3[5,6,7]3524; AVX2-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4,5,6,7]3525; AVX2-NEXT: vextracti128 $1, %ymm9, %xmm33526; AVX2-NEXT: vinserti128 $1, %xmm4, %ymm0, %ymm43527; AVX2-NEXT: vpblendvb %ymm10, %ymm2, %ymm4, %ymm23528; AVX2-NEXT: vpshufb {{.*#+}} xmm4 = xmm3[u,u,u,u,u,u],zero,zero,xmm3[0,6,12],zero,zero,zero,xmm3[4,10]3529; AVX2-NEXT: vpshufb {{.*#+}} xmm5 = xmm9[u,u,u,u,u,u,4,10],zero,zero,zero,xmm9[2,8,14],zero,zero3530; AVX2-NEXT: vpor %xmm4, %xmm5, %xmm43531; AVX2-NEXT: vinserti128 $1, %xmm4, %ymm0, %ymm43532; AVX2-NEXT: vpblendw {{.*#+}} ymm4 = ymm0[0,1,2],ymm4[3,4,5,6,7],ymm0[8,9,10],ymm4[11,12,13,14,15]3533; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm4[4,5,6,7]3534; AVX2-NEXT: vpshufb {{.*#+}} xmm3 = xmm3[u,u,u,u,u,u],zero,zero,xmm3[1,7,13],zero,zero,zero,xmm3[5,11]3535; AVX2-NEXT: vpshufb {{.*#+}} xmm4 = xmm9[u,u,u,u,u,u,5,11],zero,zero,zero,xmm9[3,9,15],zero,zero3536; AVX2-NEXT: vpor %xmm3, %xmm4, %xmm33537; AVX2-NEXT: vinserti128 $1, %xmm3, %ymm0, %ymm33538; AVX2-NEXT: vpblendw {{.*#+}} ymm3 = ymm1[0,1,2],ymm3[3,4,5,6,7],ymm1[8,9,10],ymm3[11,12,13,14,15]3539; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm3[4,5,6,7]3540; AVX2-NEXT: vmovdqa %ymm0, (%rsi)3541; AVX2-NEXT: vmovdqa %ymm1, (%rdx)3542; AVX2-NEXT: vmovdqa %ymm7, (%rcx)3543; AVX2-NEXT: vmovdqa %ymm8, (%r8)3544; AVX2-NEXT: vmovdqa %ymm6, (%r9)3545; AVX2-NEXT: movq {{[0-9]+}}(%rsp), %rax3546; AVX2-NEXT: vmovdqa %ymm2, (%rax)3547; AVX2-NEXT: vzeroupper3548; AVX2-NEXT: retq3549;3550; AVX2-FP-LABEL: load_i8_stride6_vf32:3551; AVX2-FP: # %bb.0:3552; AVX2-FP-NEXT: vmovdqa 160(%rdi), %ymm43553; AVX2-FP-NEXT: vmovdqa (%rdi), %ymm23554; AVX2-FP-NEXT: vmovdqa 32(%rdi), %ymm33555; AVX2-FP-NEXT: vmovdqa 64(%rdi), %ymm03556; AVX2-FP-NEXT: vmovdqa 96(%rdi), %ymm13557; AVX2-FP-NEXT: vpmovsxbw {{.*#+}} ymm8 = [65535,0,0,65535,0,0,65535,0,0,65535,0,0,65535,0,0,65535]3558; AVX2-FP-NEXT: vpblendvb %ymm8, %ymm2, %ymm3, %ymm93559; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm5 = xmm9[0,6,12],zero,zero,zero,xmm9[4,10],zero,zero,zero,xmm9[u,u,u,u,u]3560; AVX2-FP-NEXT: vextracti128 $1, %ymm9, %xmm103561; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm6 = zero,zero,zero,xmm10[2,8,14],zero,zero,xmm10[0,6,12,u,u,u,u,u]3562; AVX2-FP-NEXT: vpor %xmm5, %xmm6, %xmm113563; AVX2-FP-NEXT: vpmovsxbw {{.*#+}} ymm7 = [0,65535,0,0,65535,0,0,65535,65535,0,0,65535,0,0,65535,0]3564; AVX2-FP-NEXT: vperm2i128 {{.*#+}} ymm5 = ymm0[0,1],ymm1[0,1]3565; AVX2-FP-NEXT: vperm2i128 {{.*#+}} ymm6 = ymm0[2,3],ymm1[2,3]3566; AVX2-FP-NEXT: vpblendvb %ymm7, %ymm5, %ymm6, %ymm13567; AVX2-FP-NEXT: vpshufb {{.*#+}} ymm0 = ymm1[u,u,u,u,u,u,u,u,u,u,u,2,8,14,4,10,16,22,28,18,24,30,u,u,u,u,u,u,u,u,u,u]3568; AVX2-FP-NEXT: vpmovsxdq {{.*#+}} xmm7 = [18446744073709551615,16777215]3569; AVX2-FP-NEXT: vpblendvb %ymm7, %ymm11, %ymm0, %ymm03570; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm9 = xmm9[1,7,13],zero,zero,zero,xmm9[5,11],zero,zero,zero,xmm9[u,u,u,u,u]3571; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm10 = zero,zero,zero,xmm10[3,9,15],zero,zero,xmm10[1,7,13,u,u,u,u,u]3572; AVX2-FP-NEXT: vpor %xmm9, %xmm10, %xmm93573; AVX2-FP-NEXT: vpshufb {{.*#+}} ymm1 = ymm1[u,u,u,u,u,u,u,u,u,u,u,3,9,15,5,11,17,23,29,19,25,31,u,u,u,u,u,u,u,u,u,u]3574; AVX2-FP-NEXT: vpblendvb %ymm7, %ymm9, %ymm1, %ymm13575; AVX2-FP-NEXT: vpmovsxbw {{.*#+}} ymm11 = [65535,0,0,65535,0,0,65535,0,0,65535,0,0,65535,0,0,65535]3576; AVX2-FP-NEXT: vpblendvb %ymm11, %ymm3, %ymm2, %ymm93577; AVX2-FP-NEXT: vextracti128 $1, %ymm9, %xmm103578; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm12 = zero,zero,zero,xmm10[4,10],zero,zero,zero,xmm10[2,8,14,u,u,u,u,u]3579; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm13 = xmm9[2,8,14],zero,zero,xmm9[0,6,12],zero,zero,zero,xmm9[u,u,u,u,u]3580; AVX2-FP-NEXT: vpor %xmm12, %xmm13, %xmm123581; AVX2-FP-NEXT: vpmovsxbw {{.*#+}} ymm13 = [65535,0,0,65535,0,0,65535,0,0,0,65535,0,0,65535,0,0]3582; AVX2-FP-NEXT: vpblendvb %ymm13, %ymm6, %ymm5, %ymm133583; AVX2-FP-NEXT: vpshufb {{.*#+}} ymm14 = ymm13[u,u,u,u,u,u,u,u,u,u,u,4,10,0,6,12,18,24,30,20,26,u,u,u,u,u,u,u,u,u,u,u]3584; AVX2-FP-NEXT: vpblendvb %ymm7, %ymm12, %ymm14, %ymm123585; AVX2-FP-NEXT: vmovdqa 128(%rdi), %ymm143586; AVX2-FP-NEXT: vpblendvb %ymm8, %ymm14, %ymm4, %ymm83587; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm10 = zero,zero,zero,xmm10[5,11],zero,zero,zero,xmm10[3,9,15,u,u,u,u,u]3588; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm9 = xmm9[3,9,15],zero,zero,xmm9[1,7,13],zero,zero,zero,xmm9[u,u,u,u,u]3589; AVX2-FP-NEXT: vpor %xmm10, %xmm9, %xmm93590; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm10 = xmm8[u,u,u,u,u,0,6,12],zero,zero,zero,xmm8[4,10],zero,zero,zero3591; AVX2-FP-NEXT: vpshufb {{.*#+}} ymm13 = ymm13[u,u,u,u,u,u,u,u,u,u,u,5,11,1,7,13,19,25,31,21,27,u,u,u,u,u,u,u,u,u,u,u]3592; AVX2-FP-NEXT: vpblendvb %ymm7, %ymm9, %ymm13, %ymm133593; AVX2-FP-NEXT: vextracti128 $1, %ymm8, %xmm93594; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm7 = xmm9[u,u,u,u,u],zero,zero,zero,xmm9[2,8,14],zero,zero,xmm9[0,6,12]3595; AVX2-FP-NEXT: vpor %xmm7, %xmm10, %xmm73596; AVX2-FP-NEXT: vinserti128 $1, %xmm7, %ymm0, %ymm73597; AVX2-FP-NEXT: vpmovsxwd {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm103598; AVX2-FP-NEXT: vpblendvb %ymm10, %ymm12, %ymm7, %ymm73599; AVX2-FP-NEXT: vpmovsxbw {{.*#+}} ymm12 = [0,65535,0,0,65535,0,0,65535,0,0,65535,0,0,65535,0,0]3600; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm8 = xmm8[u,u,u,u,u,1,7,13],zero,zero,zero,xmm8[5,11],zero,zero,zero3601; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm9 = xmm9[u,u,u,u,u],zero,zero,zero,xmm9[3,9,15],zero,zero,xmm9[1,7,13]3602; AVX2-FP-NEXT: vpor %xmm8, %xmm9, %xmm83603; AVX2-FP-NEXT: vpblendvb %ymm12, %ymm4, %ymm14, %ymm93604; AVX2-FP-NEXT: vinserti128 $1, %xmm8, %ymm0, %ymm83605; AVX2-FP-NEXT: vpblendvb %ymm10, %ymm13, %ymm8, %ymm83606; AVX2-FP-NEXT: vpblendvb %ymm11, %ymm4, %ymm14, %ymm43607; AVX2-FP-NEXT: vextracti128 $1, %ymm4, %xmm113608; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm13 = xmm11[u,u,u,u,u],zero,zero,zero,xmm11[4,10],zero,zero,zero,xmm11[2,8,14]3609; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm14 = xmm4[u,u,u,u,u,2,8,14],zero,zero,xmm4[0,6,12],zero,zero,zero3610; AVX2-FP-NEXT: vpor %xmm13, %xmm14, %xmm133611; AVX2-FP-NEXT: vpblendvb %ymm12, %ymm3, %ymm2, %ymm23612; AVX2-FP-NEXT: vextracti128 $1, %ymm2, %xmm33613; AVX2-FP-NEXT: vpmovsxbw {{.*#+}} ymm12 = [0,65535,0,0,65535,0,0,65535,65535,0,0,65535,0,0,65535,0]3614; AVX2-FP-NEXT: vpblendvb %ymm12, %ymm6, %ymm5, %ymm53615; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm6 = zero,zero,xmm3[0,6,12],zero,zero,zero,xmm3[4,10,u,u,u,u,u,u]3616; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm12 = xmm2[4,10],zero,zero,zero,xmm2[2,8,14],zero,zero,xmm2[u,u,u,u,u,u]3617; AVX2-FP-NEXT: vpor %xmm6, %xmm12, %xmm63618; AVX2-FP-NEXT: vpshufb {{.*#+}} ymm12 = ymm5[u,u,u,u,u,u,u,u,u,u,0,6,12,2,8,14,20,26,16,22,28,u,u,u,u,u,u,u,u,u,u,u]3619; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm6 = xmm6[0,1,2,3,4],xmm12[5,6,7]3620; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm6 = ymm6[0,1,2,3],ymm12[4,5,6,7]3621; AVX2-FP-NEXT: vinserti128 $1, %xmm13, %ymm0, %ymm123622; AVX2-FP-NEXT: vpblendvb %ymm10, %ymm6, %ymm12, %ymm63623; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm11 = xmm11[u,u,u,u,u],zero,zero,zero,xmm11[5,11],zero,zero,zero,xmm11[3,9,15]3624; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm4 = xmm4[u,u,u,u,u,3,9,15],zero,zero,xmm4[1,7,13],zero,zero,zero3625; AVX2-FP-NEXT: vpor %xmm4, %xmm11, %xmm43626; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm3 = zero,zero,xmm3[1,7,13],zero,zero,zero,xmm3[5,11,u,u,u,u,u,u]3627; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm2 = xmm2[5,11],zero,zero,zero,xmm2[3,9,15],zero,zero,xmm2[u,u,u,u,u,u]3628; AVX2-FP-NEXT: vpor %xmm3, %xmm2, %xmm23629; AVX2-FP-NEXT: vpshufb {{.*#+}} ymm3 = ymm5[u,u,u,u,u,u,u,u,u,u,1,7,13,3,9,15,21,27,17,23,29,u,u,u,u,u,u,u,u,u,u,u]3630; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0,1,2,3,4],xmm3[5,6,7]3631; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4,5,6,7]3632; AVX2-FP-NEXT: vextracti128 $1, %ymm9, %xmm33633; AVX2-FP-NEXT: vinserti128 $1, %xmm4, %ymm0, %ymm43634; AVX2-FP-NEXT: vpblendvb %ymm10, %ymm2, %ymm4, %ymm23635; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm4 = xmm3[u,u,u,u,u,u],zero,zero,xmm3[0,6,12],zero,zero,zero,xmm3[4,10]3636; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm5 = xmm9[u,u,u,u,u,u,4,10],zero,zero,zero,xmm9[2,8,14],zero,zero3637; AVX2-FP-NEXT: vpor %xmm4, %xmm5, %xmm43638; AVX2-FP-NEXT: vinserti128 $1, %xmm4, %ymm0, %ymm43639; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm4 = ymm0[0,1,2],ymm4[3,4,5,6,7],ymm0[8,9,10],ymm4[11,12,13,14,15]3640; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm4[4,5,6,7]3641; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm3 = xmm3[u,u,u,u,u,u],zero,zero,xmm3[1,7,13],zero,zero,zero,xmm3[5,11]3642; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm4 = xmm9[u,u,u,u,u,u,5,11],zero,zero,zero,xmm9[3,9,15],zero,zero3643; AVX2-FP-NEXT: vpor %xmm3, %xmm4, %xmm33644; AVX2-FP-NEXT: vinserti128 $1, %xmm3, %ymm0, %ymm33645; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm3 = ymm1[0,1,2],ymm3[3,4,5,6,7],ymm1[8,9,10],ymm3[11,12,13,14,15]3646; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm3[4,5,6,7]3647; AVX2-FP-NEXT: vmovdqa %ymm0, (%rsi)3648; AVX2-FP-NEXT: vmovdqa %ymm1, (%rdx)3649; AVX2-FP-NEXT: vmovdqa %ymm7, (%rcx)3650; AVX2-FP-NEXT: vmovdqa %ymm8, (%r8)3651; AVX2-FP-NEXT: vmovdqa %ymm6, (%r9)3652; AVX2-FP-NEXT: movq {{[0-9]+}}(%rsp), %rax3653; AVX2-FP-NEXT: vmovdqa %ymm2, (%rax)3654; AVX2-FP-NEXT: vzeroupper3655; AVX2-FP-NEXT: retq3656;3657; AVX2-FCP-LABEL: load_i8_stride6_vf32:3658; AVX2-FCP: # %bb.0:3659; AVX2-FCP-NEXT: vmovdqa 160(%rdi), %ymm43660; AVX2-FCP-NEXT: vmovdqa (%rdi), %ymm23661; AVX2-FCP-NEXT: vmovdqa 32(%rdi), %ymm33662; AVX2-FCP-NEXT: vmovdqa 64(%rdi), %ymm03663; AVX2-FCP-NEXT: vmovdqa 96(%rdi), %ymm13664; AVX2-FCP-NEXT: vpmovsxbw {{.*#+}} ymm8 = [65535,0,0,65535,0,0,65535,0,0,65535,0,0,65535,0,0,65535]3665; AVX2-FCP-NEXT: vpblendvb %ymm8, %ymm2, %ymm3, %ymm93666; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm5 = xmm9[0,6,12],zero,zero,zero,xmm9[4,10],zero,zero,zero,xmm9[u,u,u,u,u]3667; AVX2-FCP-NEXT: vextracti128 $1, %ymm9, %xmm103668; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm6 = zero,zero,zero,xmm10[2,8,14],zero,zero,xmm10[0,6,12,u,u,u,u,u]3669; AVX2-FCP-NEXT: vpor %xmm5, %xmm6, %xmm113670; AVX2-FCP-NEXT: vpmovsxbw {{.*#+}} ymm7 = [0,65535,0,0,65535,0,0,65535,65535,0,0,65535,0,0,65535,0]3671; AVX2-FCP-NEXT: vperm2i128 {{.*#+}} ymm5 = ymm0[0,1],ymm1[0,1]3672; AVX2-FCP-NEXT: vperm2i128 {{.*#+}} ymm6 = ymm0[2,3],ymm1[2,3]3673; AVX2-FCP-NEXT: vpblendvb %ymm7, %ymm5, %ymm6, %ymm13674; AVX2-FCP-NEXT: vpshufb {{.*#+}} ymm0 = ymm1[u,u,u,u,u,u,u,u,u,u,u,2,8,14,4,10,16,22,28,18,24,30,u,u,u,u,u,u,u,u,u,u]3675; AVX2-FCP-NEXT: vpmovsxdq {{.*#+}} xmm7 = [18446744073709551615,16777215]3676; AVX2-FCP-NEXT: vpblendvb %ymm7, %ymm11, %ymm0, %ymm03677; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm9 = xmm9[1,7,13],zero,zero,zero,xmm9[5,11],zero,zero,zero,xmm9[u,u,u,u,u]3678; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm10 = zero,zero,zero,xmm10[3,9,15],zero,zero,xmm10[1,7,13,u,u,u,u,u]3679; AVX2-FCP-NEXT: vpor %xmm9, %xmm10, %xmm93680; AVX2-FCP-NEXT: vpshufb {{.*#+}} ymm1 = ymm1[u,u,u,u,u,u,u,u,u,u,u,3,9,15,5,11,17,23,29,19,25,31,u,u,u,u,u,u,u,u,u,u]3681; AVX2-FCP-NEXT: vpblendvb %ymm7, %ymm9, %ymm1, %ymm13682; AVX2-FCP-NEXT: vpmovsxbw {{.*#+}} ymm11 = [65535,0,0,65535,0,0,65535,0,0,65535,0,0,65535,0,0,65535]3683; AVX2-FCP-NEXT: vpblendvb %ymm11, %ymm3, %ymm2, %ymm93684; AVX2-FCP-NEXT: vextracti128 $1, %ymm9, %xmm103685; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm12 = zero,zero,zero,xmm10[4,10],zero,zero,zero,xmm10[2,8,14,u,u,u,u,u]3686; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm13 = xmm9[2,8,14],zero,zero,xmm9[0,6,12],zero,zero,zero,xmm9[u,u,u,u,u]3687; AVX2-FCP-NEXT: vpor %xmm12, %xmm13, %xmm123688; AVX2-FCP-NEXT: vpmovsxbw {{.*#+}} ymm13 = [65535,0,0,65535,0,0,65535,0,0,0,65535,0,0,65535,0,0]3689; AVX2-FCP-NEXT: vpblendvb %ymm13, %ymm6, %ymm5, %ymm133690; AVX2-FCP-NEXT: vpshufb {{.*#+}} ymm14 = ymm13[u,u,u,u,u,u,u,u,u,u,u,4,10,0,6,12,18,24,30,20,26,u,u,u,u,u,u,u,u,u,u,u]3691; AVX2-FCP-NEXT: vpblendvb %ymm7, %ymm12, %ymm14, %ymm123692; AVX2-FCP-NEXT: vmovdqa 128(%rdi), %ymm143693; AVX2-FCP-NEXT: vpblendvb %ymm8, %ymm14, %ymm4, %ymm83694; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm10 = zero,zero,zero,xmm10[5,11],zero,zero,zero,xmm10[3,9,15,u,u,u,u,u]3695; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm9 = xmm9[3,9,15],zero,zero,xmm9[1,7,13],zero,zero,zero,xmm9[u,u,u,u,u]3696; AVX2-FCP-NEXT: vpor %xmm10, %xmm9, %xmm93697; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm10 = xmm8[u,u,u,u,u,0,6,12],zero,zero,zero,xmm8[4,10],zero,zero,zero3698; AVX2-FCP-NEXT: vpshufb {{.*#+}} ymm13 = ymm13[u,u,u,u,u,u,u,u,u,u,u,5,11,1,7,13,19,25,31,21,27,u,u,u,u,u,u,u,u,u,u,u]3699; AVX2-FCP-NEXT: vpblendvb %ymm7, %ymm9, %ymm13, %ymm133700; AVX2-FCP-NEXT: vextracti128 $1, %ymm8, %xmm93701; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm7 = xmm9[u,u,u,u,u],zero,zero,zero,xmm9[2,8,14],zero,zero,xmm9[0,6,12]3702; AVX2-FCP-NEXT: vpor %xmm7, %xmm10, %xmm73703; AVX2-FCP-NEXT: vinserti128 $1, %xmm7, %ymm0, %ymm73704; AVX2-FCP-NEXT: vpmovsxwd {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm103705; AVX2-FCP-NEXT: vpblendvb %ymm10, %ymm12, %ymm7, %ymm73706; AVX2-FCP-NEXT: vpmovsxbw {{.*#+}} ymm12 = [0,65535,0,0,65535,0,0,65535,0,0,65535,0,0,65535,0,0]3707; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm8 = xmm8[u,u,u,u,u,1,7,13],zero,zero,zero,xmm8[5,11],zero,zero,zero3708; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm9 = xmm9[u,u,u,u,u],zero,zero,zero,xmm9[3,9,15],zero,zero,xmm9[1,7,13]3709; AVX2-FCP-NEXT: vpor %xmm8, %xmm9, %xmm83710; AVX2-FCP-NEXT: vpblendvb %ymm12, %ymm4, %ymm14, %ymm93711; AVX2-FCP-NEXT: vinserti128 $1, %xmm8, %ymm0, %ymm83712; AVX2-FCP-NEXT: vpblendvb %ymm10, %ymm13, %ymm8, %ymm83713; AVX2-FCP-NEXT: vpblendvb %ymm11, %ymm4, %ymm14, %ymm43714; AVX2-FCP-NEXT: vextracti128 $1, %ymm4, %xmm113715; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm13 = xmm11[u,u,u,u,u],zero,zero,zero,xmm11[4,10],zero,zero,zero,xmm11[2,8,14]3716; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm14 = xmm4[u,u,u,u,u,2,8,14],zero,zero,xmm4[0,6,12],zero,zero,zero3717; AVX2-FCP-NEXT: vpor %xmm13, %xmm14, %xmm133718; AVX2-FCP-NEXT: vpblendvb %ymm12, %ymm3, %ymm2, %ymm23719; AVX2-FCP-NEXT: vextracti128 $1, %ymm2, %xmm33720; AVX2-FCP-NEXT: vpmovsxbw {{.*#+}} ymm12 = [0,65535,0,0,65535,0,0,65535,65535,0,0,65535,0,0,65535,0]3721; AVX2-FCP-NEXT: vpblendvb %ymm12, %ymm6, %ymm5, %ymm53722; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm6 = zero,zero,xmm3[0,6,12],zero,zero,zero,xmm3[4,10,u,u,u,u,u,u]3723; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm12 = xmm2[4,10],zero,zero,zero,xmm2[2,8,14],zero,zero,xmm2[u,u,u,u,u,u]3724; AVX2-FCP-NEXT: vpor %xmm6, %xmm12, %xmm63725; AVX2-FCP-NEXT: vpshufb {{.*#+}} ymm12 = ymm5[u,u,u,u,u,u,u,u,u,u,0,6,12,2,8,14,20,26,16,22,28,u,u,u,u,u,u,u,u,u,u,u]3726; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm6 = xmm6[0,1,2,3,4],xmm12[5,6,7]3727; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm6 = ymm6[0,1,2,3],ymm12[4,5,6,7]3728; AVX2-FCP-NEXT: vinserti128 $1, %xmm13, %ymm0, %ymm123729; AVX2-FCP-NEXT: vpblendvb %ymm10, %ymm6, %ymm12, %ymm63730; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm11 = xmm11[u,u,u,u,u],zero,zero,zero,xmm11[5,11],zero,zero,zero,xmm11[3,9,15]3731; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm4 = xmm4[u,u,u,u,u,3,9,15],zero,zero,xmm4[1,7,13],zero,zero,zero3732; AVX2-FCP-NEXT: vpor %xmm4, %xmm11, %xmm43733; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm3 = zero,zero,xmm3[1,7,13],zero,zero,zero,xmm3[5,11,u,u,u,u,u,u]3734; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm2 = xmm2[5,11],zero,zero,zero,xmm2[3,9,15],zero,zero,xmm2[u,u,u,u,u,u]3735; AVX2-FCP-NEXT: vpor %xmm3, %xmm2, %xmm23736; AVX2-FCP-NEXT: vpshufb {{.*#+}} ymm3 = ymm5[u,u,u,u,u,u,u,u,u,u,1,7,13,3,9,15,21,27,17,23,29,u,u,u,u,u,u,u,u,u,u,u]3737; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0,1,2,3,4],xmm3[5,6,7]3738; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4,5,6,7]3739; AVX2-FCP-NEXT: vextracti128 $1, %ymm9, %xmm33740; AVX2-FCP-NEXT: vinserti128 $1, %xmm4, %ymm0, %ymm43741; AVX2-FCP-NEXT: vpblendvb %ymm10, %ymm2, %ymm4, %ymm23742; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm4 = xmm3[u,u,u,u,u,u],zero,zero,xmm3[0,6,12],zero,zero,zero,xmm3[4,10]3743; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm5 = xmm9[u,u,u,u,u,u,4,10],zero,zero,zero,xmm9[2,8,14],zero,zero3744; AVX2-FCP-NEXT: vpor %xmm4, %xmm5, %xmm43745; AVX2-FCP-NEXT: vinserti128 $1, %xmm4, %ymm0, %ymm43746; AVX2-FCP-NEXT: vpblendw {{.*#+}} ymm4 = ymm0[0,1,2],ymm4[3,4,5,6,7],ymm0[8,9,10],ymm4[11,12,13,14,15]3747; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm4[4,5,6,7]3748; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm3 = xmm3[u,u,u,u,u,u],zero,zero,xmm3[1,7,13],zero,zero,zero,xmm3[5,11]3749; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm4 = xmm9[u,u,u,u,u,u,5,11],zero,zero,zero,xmm9[3,9,15],zero,zero3750; AVX2-FCP-NEXT: vpor %xmm3, %xmm4, %xmm33751; AVX2-FCP-NEXT: vinserti128 $1, %xmm3, %ymm0, %ymm33752; AVX2-FCP-NEXT: vpblendw {{.*#+}} ymm3 = ymm1[0,1,2],ymm3[3,4,5,6,7],ymm1[8,9,10],ymm3[11,12,13,14,15]3753; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm3[4,5,6,7]3754; AVX2-FCP-NEXT: vmovdqa %ymm0, (%rsi)3755; AVX2-FCP-NEXT: vmovdqa %ymm1, (%rdx)3756; AVX2-FCP-NEXT: vmovdqa %ymm7, (%rcx)3757; AVX2-FCP-NEXT: vmovdqa %ymm8, (%r8)3758; AVX2-FCP-NEXT: vmovdqa %ymm6, (%r9)3759; AVX2-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax3760; AVX2-FCP-NEXT: vmovdqa %ymm2, (%rax)3761; AVX2-FCP-NEXT: vzeroupper3762; AVX2-FCP-NEXT: retq3763;3764; AVX512-LABEL: load_i8_stride6_vf32:3765; AVX512: # %bb.0:3766; AVX512-NEXT: movq {{[0-9]+}}(%rsp), %rax3767; AVX512-NEXT: vmovdqa {{.*#+}} ymm0 = [65535,65535,0,65535,65535,0,65535,65535,0,65535,65535,0,65535,65535,0,65535]3768; AVX512-NEXT: vmovdqa64 (%rdi), %ymm173769; AVX512-NEXT: vmovdqa 32(%rdi), %ymm33770; AVX512-NEXT: vmovdqa 64(%rdi), %ymm13771; AVX512-NEXT: vmovdqa 128(%rdi), %ymm63772; AVX512-NEXT: vmovdqa %ymm0, %ymm73773; AVX512-NEXT: vpternlogq {{.*#+}} ymm7 = ymm3 ^ (ymm7 & (ymm17 ^ ymm3))3774; AVX512-NEXT: vpshufb {{.*#+}} xmm4 = xmm7[0,6,12],zero,zero,zero,xmm7[4,10],zero,zero,zero,xmm7[u,u,u,u,u]3775; AVX512-NEXT: vextracti128 $1, %ymm7, %xmm83776; AVX512-NEXT: vpshufb {{.*#+}} xmm5 = zero,zero,zero,xmm8[2,8,14],zero,zero,xmm8[0,6,12,u,u,u,u,u]3777; AVX512-NEXT: vpor %xmm4, %xmm5, %xmm43778; AVX512-NEXT: vperm2i128 {{.*#+}} ymm5 = ymm1[2,3],mem[2,3]3779; AVX512-NEXT: vinserti128 $1, 96(%rdi), %ymm1, %ymm13780; AVX512-NEXT: vmovdqa {{.*#+}} ymm9 = [65535,65535,0,65535,65535,0,65535,65535,65535,0,65535,65535,0,65535,65535,0]3781; AVX512-NEXT: vmovdqa %ymm9, %ymm103782; AVX512-NEXT: vpternlogq {{.*#+}} ymm10 = ymm5 ^ (ymm10 & (ymm1 ^ ymm5))3783; AVX512-NEXT: vpshufb {{.*#+}} ymm11 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm10[2,8,14,4,10,16,22,28,18,24,30],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero3784; AVX512-NEXT: vmovdqa64 {{.*#+}} ymm16 = [255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255]3785; AVX512-NEXT: vpternlogq {{.*#+}} ymm11 = ymm11 | (ymm4 & ymm16)3786; AVX512-NEXT: vmovdqa 160(%rdi), %ymm133787; AVX512-NEXT: vmovdqa %ymm0, %ymm143788; AVX512-NEXT: vpternlogq {{.*#+}} ymm14 = ymm6 ^ (ymm14 & (ymm13 ^ ymm6))3789; AVX512-NEXT: vextracti128 $1, %ymm14, %xmm153790; AVX512-NEXT: vpshufb {{.*#+}} xmm4 = xmm15[u,u,u,u,u,u],zero,zero,xmm15[0,6,12],zero,zero,zero,xmm15[4,10]3791; AVX512-NEXT: vpshufb {{.*#+}} xmm12 = xmm14[u,u,u,u,u,u,4,10],zero,zero,zero,xmm14[2,8,14],zero,zero3792; AVX512-NEXT: vpor %xmm4, %xmm12, %xmm43793; AVX512-NEXT: vinserti128 $1, %xmm4, %ymm0, %ymm43794; AVX512-NEXT: vpblendw {{.*#+}} ymm4 = ymm11[0,1,2],ymm4[3,4,5,6,7],ymm11[8,9,10],ymm4[11,12,13,14,15]3795; AVX512-NEXT: vpblendd {{.*#+}} ymm2 = ymm11[0,1,2,3],ymm4[4,5,6,7]3796; AVX512-NEXT: vmovdqa64 %ymm2, %ymm183797; AVX512-NEXT: vpshufb {{.*#+}} xmm7 = xmm7[1,7,13],zero,zero,zero,xmm7[5,11],zero,zero,zero,xmm7[u,u,u,u,u]3798; AVX512-NEXT: vpshufb {{.*#+}} xmm8 = zero,zero,zero,xmm8[3,9,15],zero,zero,xmm8[1,7,13,u,u,u,u,u]3799; AVX512-NEXT: vpor %xmm7, %xmm8, %xmm73800; AVX512-NEXT: vpshufb {{.*#+}} ymm8 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm10[3,9,15,5,11,17,23,29,19,25,31],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero3801; AVX512-NEXT: vpternlogq {{.*#+}} ymm8 = ymm8 | (ymm7 & ymm16)3802; AVX512-NEXT: vpshufb {{.*#+}} xmm7 = xmm15[u,u,u,u,u,u],zero,zero,xmm15[1,7,13],zero,zero,zero,xmm15[5,11]3803; AVX512-NEXT: vpshufb {{.*#+}} xmm10 = xmm14[u,u,u,u,u,u,5,11],zero,zero,zero,xmm14[3,9,15],zero,zero3804; AVX512-NEXT: vpor %xmm7, %xmm10, %xmm73805; AVX512-NEXT: vinserti128 $1, %xmm7, %ymm0, %ymm73806; AVX512-NEXT: vpblendw {{.*#+}} ymm7 = ymm8[0,1,2],ymm7[3,4,5,6,7],ymm8[8,9,10],ymm7[11,12,13,14,15]3807; AVX512-NEXT: vpblendd {{.*#+}} ymm7 = ymm8[0,1,2,3],ymm7[4,5,6,7]3808; AVX512-NEXT: vmovdqa {{.*#+}} ymm8 = [65535,0,65535,65535,0,65535,65535,0,65535,65535,0,65535,65535,0,65535,65535]3809; AVX512-NEXT: vmovdqa %ymm8, %ymm103810; AVX512-NEXT: vpternlogq {{.*#+}} ymm10 = ymm17 ^ (ymm10 & (ymm3 ^ ymm17))3811; AVX512-NEXT: vextracti128 $1, %ymm10, %xmm113812; AVX512-NEXT: vpshufb {{.*#+}} xmm12 = zero,zero,zero,xmm11[4,10],zero,zero,zero,xmm11[2,8,14,u,u,u,u,u]3813; AVX512-NEXT: vpshufb {{.*#+}} xmm14 = xmm10[2,8,14],zero,zero,xmm10[0,6,12],zero,zero,zero,xmm10[u,u,u,u,u]3814; AVX512-NEXT: vpor %xmm12, %xmm14, %xmm123815; AVX512-NEXT: vpternlogq {{.*#+}} ymm9 = ymm1 ^ (ymm9 & (ymm5 ^ ymm1))3816; AVX512-NEXT: vpshufb {{.*#+}} ymm14 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm9[4,10,0,6,12,18,24,30,20,26,u,u,u,u,u,u,u,u,u,u,u]3817; AVX512-NEXT: vmovdqa64 {{.*#+}} ymm16 = [255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255]3818; AVX512-NEXT: vpternlogq {{.*#+}} ymm14 = ymm14 | (ymm12 & ymm16)3819; AVX512-NEXT: vmovdqa %ymm0, %ymm123820; AVX512-NEXT: vpternlogq {{.*#+}} ymm12 = ymm13 ^ (ymm12 & (ymm6 ^ ymm13))3821; AVX512-NEXT: vpshufb {{.*#+}} xmm15 = xmm12[u,u,u,u,u,0,6,12],zero,zero,zero,xmm12[4,10],zero,zero,zero3822; AVX512-NEXT: vextracti128 $1, %ymm12, %xmm23823; AVX512-NEXT: vpshufb {{.*#+}} xmm4 = xmm2[u,u,u,u,u],zero,zero,zero,xmm2[2,8,14],zero,zero,xmm2[0,6,12]3824; AVX512-NEXT: vpor %xmm4, %xmm15, %xmm43825; AVX512-NEXT: vinserti128 $1, %xmm4, %ymm0, %ymm43826; AVX512-NEXT: vpmovsxwd {{.*#+}} ymm15 = [4294967295,4294967295,4294967295,4294967295,4294967295,255,0,0]3827; AVX512-NEXT: vpternlogq {{.*#+}} ymm4 = ymm4 ^ (ymm15 & (ymm4 ^ ymm14))3828; AVX512-NEXT: vpshufb {{.*#+}} xmm11 = zero,zero,zero,xmm11[5,11],zero,zero,zero,xmm11[3,9,15,u,u,u,u,u]3829; AVX512-NEXT: vpshufb {{.*#+}} xmm10 = xmm10[3,9,15],zero,zero,xmm10[1,7,13],zero,zero,zero,xmm10[u,u,u,u,u]3830; AVX512-NEXT: vpor %xmm11, %xmm10, %xmm103831; AVX512-NEXT: vpshufb {{.*#+}} ymm9 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm9[5,11,1,7,13,19,25,31,21,27,u,u,u,u,u,u,u,u,u,u,u]3832; AVX512-NEXT: vpternlogq {{.*#+}} ymm9 = ymm9 | (ymm10 & ymm16)3833; AVX512-NEXT: vpshufb {{.*#+}} xmm10 = xmm12[u,u,u,u,u,1,7,13],zero,zero,zero,xmm12[5,11],zero,zero,zero3834; AVX512-NEXT: vpshufb {{.*#+}} xmm2 = xmm2[u,u,u,u,u],zero,zero,zero,xmm2[3,9,15],zero,zero,xmm2[1,7,13]3835; AVX512-NEXT: vpor %xmm2, %xmm10, %xmm23836; AVX512-NEXT: vinserti128 $1, %xmm2, %ymm0, %ymm23837; AVX512-NEXT: vpternlogq {{.*#+}} ymm2 = ymm2 ^ (ymm15 & (ymm2 ^ ymm9))3838; AVX512-NEXT: vpternlogq {{.*#+}} ymm8 = ymm6 ^ (ymm8 & (ymm13 ^ ymm6))3839; AVX512-NEXT: vextracti128 $1, %ymm8, %xmm63840; AVX512-NEXT: vpshufb {{.*#+}} xmm9 = xmm6[u,u,u,u,u],zero,zero,zero,xmm6[4,10],zero,zero,zero,xmm6[2,8,14]3841; AVX512-NEXT: vpshufb {{.*#+}} xmm10 = xmm8[u,u,u,u,u,2,8,14],zero,zero,xmm8[0,6,12],zero,zero,zero3842; AVX512-NEXT: vpor %xmm9, %xmm10, %xmm93843; AVX512-NEXT: vinserti128 $1, %xmm9, %ymm0, %ymm93844; AVX512-NEXT: vpternlogq {{.*#+}} ymm0 = ymm17 ^ (ymm0 & (ymm3 ^ ymm17))3845; AVX512-NEXT: vextracti128 $1, %ymm0, %xmm33846; AVX512-NEXT: vpshufb {{.*#+}} xmm10 = zero,zero,xmm3[0,6,12],zero,zero,zero,xmm3[4,10,u,u,u,u,u,u]3847; AVX512-NEXT: vpshufb {{.*#+}} xmm11 = xmm0[4,10],zero,zero,zero,xmm0[2,8,14],zero,zero,xmm0[u,u,u,u,u,u]3848; AVX512-NEXT: vpor %xmm10, %xmm11, %xmm103849; AVX512-NEXT: vpternlogq {{.*#+}} ymm1 = ymm1 ^ (mem & (ymm1 ^ ymm5))3850; AVX512-NEXT: vpshufb {{.*#+}} ymm5 = ymm1[u,u,u,u,u,u,u,u,u,u,0,6,12,2,8,14,20,26,16,22,28,u,u,u,u,u,u,u,u,u,u,u]3851; AVX512-NEXT: vpblendw {{.*#+}} xmm10 = xmm10[0,1,2,3,4],xmm5[5,6,7]3852; AVX512-NEXT: vpblendd {{.*#+}} ymm5 = ymm10[0,1,2,3],ymm5[4,5,6,7]3853; AVX512-NEXT: vpternlogq {{.*#+}} ymm5 = ymm9 ^ (ymm15 & (ymm5 ^ ymm9))3854; AVX512-NEXT: vpshufb {{.*#+}} xmm6 = xmm6[u,u,u,u,u],zero,zero,zero,xmm6[5,11],zero,zero,zero,xmm6[3,9,15]3855; AVX512-NEXT: vpshufb {{.*#+}} xmm8 = xmm8[u,u,u,u,u,3,9,15],zero,zero,xmm8[1,7,13],zero,zero,zero3856; AVX512-NEXT: vpor %xmm6, %xmm8, %xmm63857; AVX512-NEXT: vinserti128 $1, %xmm6, %ymm0, %ymm63858; AVX512-NEXT: vpshufb {{.*#+}} xmm3 = zero,zero,xmm3[1,7,13],zero,zero,zero,xmm3[5,11,u,u,u,u,u,u]3859; AVX512-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[5,11],zero,zero,zero,xmm0[3,9,15],zero,zero,xmm0[u,u,u,u,u,u]3860; AVX512-NEXT: vpor %xmm3, %xmm0, %xmm03861; AVX512-NEXT: vpshufb {{.*#+}} ymm1 = ymm1[u,u,u,u,u,u,u,u,u,u,1,7,13,3,9,15,21,27,17,23,29,u,u,u,u,u,u,u,u,u,u,u]3862; AVX512-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2,3,4],xmm1[5,6,7]3863; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]3864; AVX512-NEXT: vpternlogq {{.*#+}} ymm0 = ymm6 ^ (ymm15 & (ymm0 ^ ymm6))3865; AVX512-NEXT: vmovdqa64 %ymm18, (%rsi)3866; AVX512-NEXT: vmovdqa %ymm7, (%rdx)3867; AVX512-NEXT: vmovdqa %ymm4, (%rcx)3868; AVX512-NEXT: vmovdqa %ymm2, (%r8)3869; AVX512-NEXT: vmovdqa %ymm5, (%r9)3870; AVX512-NEXT: vmovdqa %ymm0, (%rax)3871; AVX512-NEXT: vzeroupper3872; AVX512-NEXT: retq3873;3874; AVX512-FCP-LABEL: load_i8_stride6_vf32:3875; AVX512-FCP: # %bb.0:3876; AVX512-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax3877; AVX512-FCP-NEXT: vmovdqa {{.*#+}} ymm0 = [65535,65535,0,65535,65535,0,65535,65535,0,65535,65535,0,65535,65535,0,65535]3878; AVX512-FCP-NEXT: vmovdqa64 (%rdi), %ymm173879; AVX512-FCP-NEXT: vmovdqa 32(%rdi), %ymm33880; AVX512-FCP-NEXT: vmovdqa 64(%rdi), %ymm13881; AVX512-FCP-NEXT: vmovdqa 128(%rdi), %ymm63882; AVX512-FCP-NEXT: vmovdqa %ymm0, %ymm73883; AVX512-FCP-NEXT: vpternlogq {{.*#+}} ymm7 = ymm3 ^ (ymm7 & (ymm17 ^ ymm3))3884; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm4 = xmm7[0,6,12],zero,zero,zero,xmm7[4,10],zero,zero,zero,xmm7[u,u,u,u,u]3885; AVX512-FCP-NEXT: vextracti128 $1, %ymm7, %xmm83886; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm5 = zero,zero,zero,xmm8[2,8,14],zero,zero,xmm8[0,6,12,u,u,u,u,u]3887; AVX512-FCP-NEXT: vpor %xmm4, %xmm5, %xmm43888; AVX512-FCP-NEXT: vperm2i128 {{.*#+}} ymm5 = ymm1[2,3],mem[2,3]3889; AVX512-FCP-NEXT: vinserti128 $1, 96(%rdi), %ymm1, %ymm13890; AVX512-FCP-NEXT: vmovdqa {{.*#+}} ymm9 = [65535,65535,0,65535,65535,0,65535,65535,65535,0,65535,65535,0,65535,65535,0]3891; AVX512-FCP-NEXT: vmovdqa %ymm9, %ymm103892; AVX512-FCP-NEXT: vpternlogq {{.*#+}} ymm10 = ymm5 ^ (ymm10 & (ymm1 ^ ymm5))3893; AVX512-FCP-NEXT: vpshufb {{.*#+}} ymm11 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm10[2,8,14,4,10,16,22,28,18,24,30],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero3894; AVX512-FCP-NEXT: vmovdqa64 {{.*#+}} ymm16 = [255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255]3895; AVX512-FCP-NEXT: vpternlogq {{.*#+}} ymm11 = ymm11 | (ymm4 & ymm16)3896; AVX512-FCP-NEXT: vmovdqa 160(%rdi), %ymm133897; AVX512-FCP-NEXT: vmovdqa %ymm0, %ymm143898; AVX512-FCP-NEXT: vpternlogq {{.*#+}} ymm14 = ymm6 ^ (ymm14 & (ymm13 ^ ymm6))3899; AVX512-FCP-NEXT: vextracti128 $1, %ymm14, %xmm153900; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm4 = xmm15[u,u,u,u,u,u],zero,zero,xmm15[0,6,12],zero,zero,zero,xmm15[4,10]3901; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm12 = xmm14[u,u,u,u,u,u,4,10],zero,zero,zero,xmm14[2,8,14],zero,zero3902; AVX512-FCP-NEXT: vpor %xmm4, %xmm12, %xmm43903; AVX512-FCP-NEXT: vinserti128 $1, %xmm4, %ymm0, %ymm43904; AVX512-FCP-NEXT: vpblendw {{.*#+}} ymm4 = ymm11[0,1,2],ymm4[3,4,5,6,7],ymm11[8,9,10],ymm4[11,12,13,14,15]3905; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm11[0,1,2,3],ymm4[4,5,6,7]3906; AVX512-FCP-NEXT: vmovdqa64 %ymm2, %ymm183907; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm7 = xmm7[1,7,13],zero,zero,zero,xmm7[5,11],zero,zero,zero,xmm7[u,u,u,u,u]3908; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm8 = zero,zero,zero,xmm8[3,9,15],zero,zero,xmm8[1,7,13,u,u,u,u,u]3909; AVX512-FCP-NEXT: vpor %xmm7, %xmm8, %xmm73910; AVX512-FCP-NEXT: vpshufb {{.*#+}} ymm8 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm10[3,9,15,5,11,17,23,29,19,25,31],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero3911; AVX512-FCP-NEXT: vpternlogq {{.*#+}} ymm8 = ymm8 | (ymm7 & ymm16)3912; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm7 = xmm15[u,u,u,u,u,u],zero,zero,xmm15[1,7,13],zero,zero,zero,xmm15[5,11]3913; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm10 = xmm14[u,u,u,u,u,u,5,11],zero,zero,zero,xmm14[3,9,15],zero,zero3914; AVX512-FCP-NEXT: vpor %xmm7, %xmm10, %xmm73915; AVX512-FCP-NEXT: vinserti128 $1, %xmm7, %ymm0, %ymm73916; AVX512-FCP-NEXT: vpblendw {{.*#+}} ymm7 = ymm8[0,1,2],ymm7[3,4,5,6,7],ymm8[8,9,10],ymm7[11,12,13,14,15]3917; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm7 = ymm8[0,1,2,3],ymm7[4,5,6,7]3918; AVX512-FCP-NEXT: vmovdqa {{.*#+}} ymm8 = [65535,0,65535,65535,0,65535,65535,0,65535,65535,0,65535,65535,0,65535,65535]3919; AVX512-FCP-NEXT: vmovdqa %ymm8, %ymm103920; AVX512-FCP-NEXT: vpternlogq {{.*#+}} ymm10 = ymm17 ^ (ymm10 & (ymm3 ^ ymm17))3921; AVX512-FCP-NEXT: vextracti128 $1, %ymm10, %xmm113922; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm12 = zero,zero,zero,xmm11[4,10],zero,zero,zero,xmm11[2,8,14,u,u,u,u,u]3923; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm14 = xmm10[2,8,14],zero,zero,xmm10[0,6,12],zero,zero,zero,xmm10[u,u,u,u,u]3924; AVX512-FCP-NEXT: vpor %xmm12, %xmm14, %xmm123925; AVX512-FCP-NEXT: vpternlogq {{.*#+}} ymm9 = ymm1 ^ (ymm9 & (ymm5 ^ ymm1))3926; AVX512-FCP-NEXT: vpshufb {{.*#+}} ymm14 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm9[4,10,0,6,12,18,24,30,20,26,u,u,u,u,u,u,u,u,u,u,u]3927; AVX512-FCP-NEXT: vmovdqa64 {{.*#+}} ymm16 = [255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255]3928; AVX512-FCP-NEXT: vpternlogq {{.*#+}} ymm14 = ymm14 | (ymm12 & ymm16)3929; AVX512-FCP-NEXT: vmovdqa %ymm0, %ymm123930; AVX512-FCP-NEXT: vpternlogq {{.*#+}} ymm12 = ymm13 ^ (ymm12 & (ymm6 ^ ymm13))3931; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm15 = xmm12[u,u,u,u,u,0,6,12],zero,zero,zero,xmm12[4,10],zero,zero,zero3932; AVX512-FCP-NEXT: vextracti128 $1, %ymm12, %xmm23933; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm4 = xmm2[u,u,u,u,u],zero,zero,zero,xmm2[2,8,14],zero,zero,xmm2[0,6,12]3934; AVX512-FCP-NEXT: vpor %xmm4, %xmm15, %xmm43935; AVX512-FCP-NEXT: vinserti128 $1, %xmm4, %ymm0, %ymm43936; AVX512-FCP-NEXT: vpmovsxwd {{.*#+}} ymm15 = [4294967295,4294967295,4294967295,4294967295,4294967295,255,0,0]3937; AVX512-FCP-NEXT: vpternlogq {{.*#+}} ymm4 = ymm4 ^ (ymm15 & (ymm4 ^ ymm14))3938; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm11 = zero,zero,zero,xmm11[5,11],zero,zero,zero,xmm11[3,9,15,u,u,u,u,u]3939; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm10 = xmm10[3,9,15],zero,zero,xmm10[1,7,13],zero,zero,zero,xmm10[u,u,u,u,u]3940; AVX512-FCP-NEXT: vpor %xmm11, %xmm10, %xmm103941; AVX512-FCP-NEXT: vpshufb {{.*#+}} ymm9 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm9[5,11,1,7,13,19,25,31,21,27,u,u,u,u,u,u,u,u,u,u,u]3942; AVX512-FCP-NEXT: vpternlogq {{.*#+}} ymm9 = ymm9 | (ymm10 & ymm16)3943; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm10 = xmm12[u,u,u,u,u,1,7,13],zero,zero,zero,xmm12[5,11],zero,zero,zero3944; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm2 = xmm2[u,u,u,u,u],zero,zero,zero,xmm2[3,9,15],zero,zero,xmm2[1,7,13]3945; AVX512-FCP-NEXT: vpor %xmm2, %xmm10, %xmm23946; AVX512-FCP-NEXT: vinserti128 $1, %xmm2, %ymm0, %ymm23947; AVX512-FCP-NEXT: vpternlogq {{.*#+}} ymm2 = ymm2 ^ (ymm15 & (ymm2 ^ ymm9))3948; AVX512-FCP-NEXT: vpternlogq {{.*#+}} ymm8 = ymm6 ^ (ymm8 & (ymm13 ^ ymm6))3949; AVX512-FCP-NEXT: vextracti128 $1, %ymm8, %xmm63950; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm9 = xmm6[u,u,u,u,u],zero,zero,zero,xmm6[4,10],zero,zero,zero,xmm6[2,8,14]3951; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm10 = xmm8[u,u,u,u,u,2,8,14],zero,zero,xmm8[0,6,12],zero,zero,zero3952; AVX512-FCP-NEXT: vpor %xmm9, %xmm10, %xmm93953; AVX512-FCP-NEXT: vinserti128 $1, %xmm9, %ymm0, %ymm93954; AVX512-FCP-NEXT: vpternlogq {{.*#+}} ymm0 = ymm17 ^ (ymm0 & (ymm3 ^ ymm17))3955; AVX512-FCP-NEXT: vextracti128 $1, %ymm0, %xmm33956; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm10 = zero,zero,xmm3[0,6,12],zero,zero,zero,xmm3[4,10,u,u,u,u,u,u]3957; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm11 = xmm0[4,10],zero,zero,zero,xmm0[2,8,14],zero,zero,xmm0[u,u,u,u,u,u]3958; AVX512-FCP-NEXT: vpor %xmm10, %xmm11, %xmm103959; AVX512-FCP-NEXT: vpternlogq {{.*#+}} ymm1 = ymm1 ^ (mem & (ymm1 ^ ymm5))3960; AVX512-FCP-NEXT: vpshufb {{.*#+}} ymm5 = ymm1[u,u,u,u,u,u,u,u,u,u,0,6,12,2,8,14,20,26,16,22,28,u,u,u,u,u,u,u,u,u,u,u]3961; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm10 = xmm10[0,1,2,3,4],xmm5[5,6,7]3962; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm5 = ymm10[0,1,2,3],ymm5[4,5,6,7]3963; AVX512-FCP-NEXT: vpternlogq {{.*#+}} ymm5 = ymm9 ^ (ymm15 & (ymm5 ^ ymm9))3964; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm6 = xmm6[u,u,u,u,u],zero,zero,zero,xmm6[5,11],zero,zero,zero,xmm6[3,9,15]3965; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm8 = xmm8[u,u,u,u,u,3,9,15],zero,zero,xmm8[1,7,13],zero,zero,zero3966; AVX512-FCP-NEXT: vpor %xmm6, %xmm8, %xmm63967; AVX512-FCP-NEXT: vinserti128 $1, %xmm6, %ymm0, %ymm63968; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm3 = zero,zero,xmm3[1,7,13],zero,zero,zero,xmm3[5,11,u,u,u,u,u,u]3969; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[5,11],zero,zero,zero,xmm0[3,9,15],zero,zero,xmm0[u,u,u,u,u,u]3970; AVX512-FCP-NEXT: vpor %xmm3, %xmm0, %xmm03971; AVX512-FCP-NEXT: vpshufb {{.*#+}} ymm1 = ymm1[u,u,u,u,u,u,u,u,u,u,1,7,13,3,9,15,21,27,17,23,29,u,u,u,u,u,u,u,u,u,u,u]3972; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2,3,4],xmm1[5,6,7]3973; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]3974; AVX512-FCP-NEXT: vpternlogq {{.*#+}} ymm0 = ymm6 ^ (ymm15 & (ymm0 ^ ymm6))3975; AVX512-FCP-NEXT: vmovdqa64 %ymm18, (%rsi)3976; AVX512-FCP-NEXT: vmovdqa %ymm7, (%rdx)3977; AVX512-FCP-NEXT: vmovdqa %ymm4, (%rcx)3978; AVX512-FCP-NEXT: vmovdqa %ymm2, (%r8)3979; AVX512-FCP-NEXT: vmovdqa %ymm5, (%r9)3980; AVX512-FCP-NEXT: vmovdqa %ymm0, (%rax)3981; AVX512-FCP-NEXT: vzeroupper3982; AVX512-FCP-NEXT: retq3983;3984; AVX512DQ-LABEL: load_i8_stride6_vf32:3985; AVX512DQ: # %bb.0:3986; AVX512DQ-NEXT: movq {{[0-9]+}}(%rsp), %rax3987; AVX512DQ-NEXT: vmovdqa {{.*#+}} ymm0 = [65535,65535,0,65535,65535,0,65535,65535,0,65535,65535,0,65535,65535,0,65535]3988; AVX512DQ-NEXT: vmovdqa64 (%rdi), %ymm173989; AVX512DQ-NEXT: vmovdqa 32(%rdi), %ymm33990; AVX512DQ-NEXT: vmovdqa 64(%rdi), %ymm13991; AVX512DQ-NEXT: vmovdqa 128(%rdi), %ymm63992; AVX512DQ-NEXT: vmovdqa %ymm0, %ymm73993; AVX512DQ-NEXT: vpternlogq {{.*#+}} ymm7 = ymm3 ^ (ymm7 & (ymm17 ^ ymm3))3994; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm4 = xmm7[0,6,12],zero,zero,zero,xmm7[4,10],zero,zero,zero,xmm7[u,u,u,u,u]3995; AVX512DQ-NEXT: vextracti128 $1, %ymm7, %xmm83996; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm5 = zero,zero,zero,xmm8[2,8,14],zero,zero,xmm8[0,6,12,u,u,u,u,u]3997; AVX512DQ-NEXT: vpor %xmm4, %xmm5, %xmm43998; AVX512DQ-NEXT: vperm2i128 {{.*#+}} ymm5 = ymm1[2,3],mem[2,3]3999; AVX512DQ-NEXT: vinserti128 $1, 96(%rdi), %ymm1, %ymm14000; AVX512DQ-NEXT: vmovdqa {{.*#+}} ymm9 = [65535,65535,0,65535,65535,0,65535,65535,65535,0,65535,65535,0,65535,65535,0]4001; AVX512DQ-NEXT: vmovdqa %ymm9, %ymm104002; AVX512DQ-NEXT: vpternlogq {{.*#+}} ymm10 = ymm5 ^ (ymm10 & (ymm1 ^ ymm5))4003; AVX512DQ-NEXT: vpshufb {{.*#+}} ymm11 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm10[2,8,14,4,10,16,22,28,18,24,30],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero4004; AVX512DQ-NEXT: vmovdqa64 {{.*#+}} ymm16 = [255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255]4005; AVX512DQ-NEXT: vpternlogq {{.*#+}} ymm11 = ymm11 | (ymm4 & ymm16)4006; AVX512DQ-NEXT: vmovdqa 160(%rdi), %ymm134007; AVX512DQ-NEXT: vmovdqa %ymm0, %ymm144008; AVX512DQ-NEXT: vpternlogq {{.*#+}} ymm14 = ymm6 ^ (ymm14 & (ymm13 ^ ymm6))4009; AVX512DQ-NEXT: vextracti128 $1, %ymm14, %xmm154010; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm4 = xmm15[u,u,u,u,u,u],zero,zero,xmm15[0,6,12],zero,zero,zero,xmm15[4,10]4011; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm12 = xmm14[u,u,u,u,u,u,4,10],zero,zero,zero,xmm14[2,8,14],zero,zero4012; AVX512DQ-NEXT: vpor %xmm4, %xmm12, %xmm44013; AVX512DQ-NEXT: vinserti128 $1, %xmm4, %ymm0, %ymm44014; AVX512DQ-NEXT: vpblendw {{.*#+}} ymm4 = ymm11[0,1,2],ymm4[3,4,5,6,7],ymm11[8,9,10],ymm4[11,12,13,14,15]4015; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm2 = ymm11[0,1,2,3],ymm4[4,5,6,7]4016; AVX512DQ-NEXT: vmovdqa64 %ymm2, %ymm184017; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm7 = xmm7[1,7,13],zero,zero,zero,xmm7[5,11],zero,zero,zero,xmm7[u,u,u,u,u]4018; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm8 = zero,zero,zero,xmm8[3,9,15],zero,zero,xmm8[1,7,13,u,u,u,u,u]4019; AVX512DQ-NEXT: vpor %xmm7, %xmm8, %xmm74020; AVX512DQ-NEXT: vpshufb {{.*#+}} ymm8 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm10[3,9,15,5,11,17,23,29,19,25,31],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero4021; AVX512DQ-NEXT: vpternlogq {{.*#+}} ymm8 = ymm8 | (ymm7 & ymm16)4022; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm7 = xmm15[u,u,u,u,u,u],zero,zero,xmm15[1,7,13],zero,zero,zero,xmm15[5,11]4023; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm10 = xmm14[u,u,u,u,u,u,5,11],zero,zero,zero,xmm14[3,9,15],zero,zero4024; AVX512DQ-NEXT: vpor %xmm7, %xmm10, %xmm74025; AVX512DQ-NEXT: vinserti128 $1, %xmm7, %ymm0, %ymm74026; AVX512DQ-NEXT: vpblendw {{.*#+}} ymm7 = ymm8[0,1,2],ymm7[3,4,5,6,7],ymm8[8,9,10],ymm7[11,12,13,14,15]4027; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm7 = ymm8[0,1,2,3],ymm7[4,5,6,7]4028; AVX512DQ-NEXT: vmovdqa {{.*#+}} ymm8 = [65535,0,65535,65535,0,65535,65535,0,65535,65535,0,65535,65535,0,65535,65535]4029; AVX512DQ-NEXT: vmovdqa %ymm8, %ymm104030; AVX512DQ-NEXT: vpternlogq {{.*#+}} ymm10 = ymm17 ^ (ymm10 & (ymm3 ^ ymm17))4031; AVX512DQ-NEXT: vextracti128 $1, %ymm10, %xmm114032; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm12 = zero,zero,zero,xmm11[4,10],zero,zero,zero,xmm11[2,8,14,u,u,u,u,u]4033; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm14 = xmm10[2,8,14],zero,zero,xmm10[0,6,12],zero,zero,zero,xmm10[u,u,u,u,u]4034; AVX512DQ-NEXT: vpor %xmm12, %xmm14, %xmm124035; AVX512DQ-NEXT: vpternlogq {{.*#+}} ymm9 = ymm1 ^ (ymm9 & (ymm5 ^ ymm1))4036; AVX512DQ-NEXT: vpshufb {{.*#+}} ymm14 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm9[4,10,0,6,12,18,24,30,20,26,u,u,u,u,u,u,u,u,u,u,u]4037; AVX512DQ-NEXT: vmovdqa64 {{.*#+}} ymm16 = [255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255]4038; AVX512DQ-NEXT: vpternlogq {{.*#+}} ymm14 = ymm14 | (ymm12 & ymm16)4039; AVX512DQ-NEXT: vmovdqa %ymm0, %ymm124040; AVX512DQ-NEXT: vpternlogq {{.*#+}} ymm12 = ymm13 ^ (ymm12 & (ymm6 ^ ymm13))4041; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm15 = xmm12[u,u,u,u,u,0,6,12],zero,zero,zero,xmm12[4,10],zero,zero,zero4042; AVX512DQ-NEXT: vextracti128 $1, %ymm12, %xmm24043; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm4 = xmm2[u,u,u,u,u],zero,zero,zero,xmm2[2,8,14],zero,zero,xmm2[0,6,12]4044; AVX512DQ-NEXT: vpor %xmm4, %xmm15, %xmm44045; AVX512DQ-NEXT: vinserti128 $1, %xmm4, %ymm0, %ymm44046; AVX512DQ-NEXT: vpmovsxwd {{.*#+}} ymm15 = [4294967295,4294967295,4294967295,4294967295,4294967295,255,0,0]4047; AVX512DQ-NEXT: vpternlogq {{.*#+}} ymm4 = ymm4 ^ (ymm15 & (ymm4 ^ ymm14))4048; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm11 = zero,zero,zero,xmm11[5,11],zero,zero,zero,xmm11[3,9,15,u,u,u,u,u]4049; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm10 = xmm10[3,9,15],zero,zero,xmm10[1,7,13],zero,zero,zero,xmm10[u,u,u,u,u]4050; AVX512DQ-NEXT: vpor %xmm11, %xmm10, %xmm104051; AVX512DQ-NEXT: vpshufb {{.*#+}} ymm9 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm9[5,11,1,7,13,19,25,31,21,27,u,u,u,u,u,u,u,u,u,u,u]4052; AVX512DQ-NEXT: vpternlogq {{.*#+}} ymm9 = ymm9 | (ymm10 & ymm16)4053; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm10 = xmm12[u,u,u,u,u,1,7,13],zero,zero,zero,xmm12[5,11],zero,zero,zero4054; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm2 = xmm2[u,u,u,u,u],zero,zero,zero,xmm2[3,9,15],zero,zero,xmm2[1,7,13]4055; AVX512DQ-NEXT: vpor %xmm2, %xmm10, %xmm24056; AVX512DQ-NEXT: vinserti128 $1, %xmm2, %ymm0, %ymm24057; AVX512DQ-NEXT: vpternlogq {{.*#+}} ymm2 = ymm2 ^ (ymm15 & (ymm2 ^ ymm9))4058; AVX512DQ-NEXT: vpternlogq {{.*#+}} ymm8 = ymm6 ^ (ymm8 & (ymm13 ^ ymm6))4059; AVX512DQ-NEXT: vextracti128 $1, %ymm8, %xmm64060; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm9 = xmm6[u,u,u,u,u],zero,zero,zero,xmm6[4,10],zero,zero,zero,xmm6[2,8,14]4061; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm10 = xmm8[u,u,u,u,u,2,8,14],zero,zero,xmm8[0,6,12],zero,zero,zero4062; AVX512DQ-NEXT: vpor %xmm9, %xmm10, %xmm94063; AVX512DQ-NEXT: vinserti128 $1, %xmm9, %ymm0, %ymm94064; AVX512DQ-NEXT: vpternlogq {{.*#+}} ymm0 = ymm17 ^ (ymm0 & (ymm3 ^ ymm17))4065; AVX512DQ-NEXT: vextracti128 $1, %ymm0, %xmm34066; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm10 = zero,zero,xmm3[0,6,12],zero,zero,zero,xmm3[4,10,u,u,u,u,u,u]4067; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm11 = xmm0[4,10],zero,zero,zero,xmm0[2,8,14],zero,zero,xmm0[u,u,u,u,u,u]4068; AVX512DQ-NEXT: vpor %xmm10, %xmm11, %xmm104069; AVX512DQ-NEXT: vpternlogq {{.*#+}} ymm1 = ymm1 ^ (mem & (ymm1 ^ ymm5))4070; AVX512DQ-NEXT: vpshufb {{.*#+}} ymm5 = ymm1[u,u,u,u,u,u,u,u,u,u,0,6,12,2,8,14,20,26,16,22,28,u,u,u,u,u,u,u,u,u,u,u]4071; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm10 = xmm10[0,1,2,3,4],xmm5[5,6,7]4072; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm5 = ymm10[0,1,2,3],ymm5[4,5,6,7]4073; AVX512DQ-NEXT: vpternlogq {{.*#+}} ymm5 = ymm9 ^ (ymm15 & (ymm5 ^ ymm9))4074; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm6 = xmm6[u,u,u,u,u],zero,zero,zero,xmm6[5,11],zero,zero,zero,xmm6[3,9,15]4075; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm8 = xmm8[u,u,u,u,u,3,9,15],zero,zero,xmm8[1,7,13],zero,zero,zero4076; AVX512DQ-NEXT: vpor %xmm6, %xmm8, %xmm64077; AVX512DQ-NEXT: vinserti128 $1, %xmm6, %ymm0, %ymm64078; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm3 = zero,zero,xmm3[1,7,13],zero,zero,zero,xmm3[5,11,u,u,u,u,u,u]4079; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[5,11],zero,zero,zero,xmm0[3,9,15],zero,zero,xmm0[u,u,u,u,u,u]4080; AVX512DQ-NEXT: vpor %xmm3, %xmm0, %xmm04081; AVX512DQ-NEXT: vpshufb {{.*#+}} ymm1 = ymm1[u,u,u,u,u,u,u,u,u,u,1,7,13,3,9,15,21,27,17,23,29,u,u,u,u,u,u,u,u,u,u,u]4082; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2,3,4],xmm1[5,6,7]4083; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]4084; AVX512DQ-NEXT: vpternlogq {{.*#+}} ymm0 = ymm6 ^ (ymm15 & (ymm0 ^ ymm6))4085; AVX512DQ-NEXT: vmovdqa64 %ymm18, (%rsi)4086; AVX512DQ-NEXT: vmovdqa %ymm7, (%rdx)4087; AVX512DQ-NEXT: vmovdqa %ymm4, (%rcx)4088; AVX512DQ-NEXT: vmovdqa %ymm2, (%r8)4089; AVX512DQ-NEXT: vmovdqa %ymm5, (%r9)4090; AVX512DQ-NEXT: vmovdqa %ymm0, (%rax)4091; AVX512DQ-NEXT: vzeroupper4092; AVX512DQ-NEXT: retq4093;4094; AVX512DQ-FCP-LABEL: load_i8_stride6_vf32:4095; AVX512DQ-FCP: # %bb.0:4096; AVX512DQ-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax4097; AVX512DQ-FCP-NEXT: vmovdqa {{.*#+}} ymm0 = [65535,65535,0,65535,65535,0,65535,65535,0,65535,65535,0,65535,65535,0,65535]4098; AVX512DQ-FCP-NEXT: vmovdqa64 (%rdi), %ymm174099; AVX512DQ-FCP-NEXT: vmovdqa 32(%rdi), %ymm34100; AVX512DQ-FCP-NEXT: vmovdqa 64(%rdi), %ymm14101; AVX512DQ-FCP-NEXT: vmovdqa 128(%rdi), %ymm64102; AVX512DQ-FCP-NEXT: vmovdqa %ymm0, %ymm74103; AVX512DQ-FCP-NEXT: vpternlogq {{.*#+}} ymm7 = ymm3 ^ (ymm7 & (ymm17 ^ ymm3))4104; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm4 = xmm7[0,6,12],zero,zero,zero,xmm7[4,10],zero,zero,zero,xmm7[u,u,u,u,u]4105; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm7, %xmm84106; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm5 = zero,zero,zero,xmm8[2,8,14],zero,zero,xmm8[0,6,12,u,u,u,u,u]4107; AVX512DQ-FCP-NEXT: vpor %xmm4, %xmm5, %xmm44108; AVX512DQ-FCP-NEXT: vperm2i128 {{.*#+}} ymm5 = ymm1[2,3],mem[2,3]4109; AVX512DQ-FCP-NEXT: vinserti128 $1, 96(%rdi), %ymm1, %ymm14110; AVX512DQ-FCP-NEXT: vmovdqa {{.*#+}} ymm9 = [65535,65535,0,65535,65535,0,65535,65535,65535,0,65535,65535,0,65535,65535,0]4111; AVX512DQ-FCP-NEXT: vmovdqa %ymm9, %ymm104112; AVX512DQ-FCP-NEXT: vpternlogq {{.*#+}} ymm10 = ymm5 ^ (ymm10 & (ymm1 ^ ymm5))4113; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} ymm11 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm10[2,8,14,4,10,16,22,28,18,24,30],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero4114; AVX512DQ-FCP-NEXT: vmovdqa64 {{.*#+}} ymm16 = [255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255]4115; AVX512DQ-FCP-NEXT: vpternlogq {{.*#+}} ymm11 = ymm11 | (ymm4 & ymm16)4116; AVX512DQ-FCP-NEXT: vmovdqa 160(%rdi), %ymm134117; AVX512DQ-FCP-NEXT: vmovdqa %ymm0, %ymm144118; AVX512DQ-FCP-NEXT: vpternlogq {{.*#+}} ymm14 = ymm6 ^ (ymm14 & (ymm13 ^ ymm6))4119; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm14, %xmm154120; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm4 = xmm15[u,u,u,u,u,u],zero,zero,xmm15[0,6,12],zero,zero,zero,xmm15[4,10]4121; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm12 = xmm14[u,u,u,u,u,u,4,10],zero,zero,zero,xmm14[2,8,14],zero,zero4122; AVX512DQ-FCP-NEXT: vpor %xmm4, %xmm12, %xmm44123; AVX512DQ-FCP-NEXT: vinserti128 $1, %xmm4, %ymm0, %ymm44124; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} ymm4 = ymm11[0,1,2],ymm4[3,4,5,6,7],ymm11[8,9,10],ymm4[11,12,13,14,15]4125; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm11[0,1,2,3],ymm4[4,5,6,7]4126; AVX512DQ-FCP-NEXT: vmovdqa64 %ymm2, %ymm184127; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm7 = xmm7[1,7,13],zero,zero,zero,xmm7[5,11],zero,zero,zero,xmm7[u,u,u,u,u]4128; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm8 = zero,zero,zero,xmm8[3,9,15],zero,zero,xmm8[1,7,13,u,u,u,u,u]4129; AVX512DQ-FCP-NEXT: vpor %xmm7, %xmm8, %xmm74130; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} ymm8 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm10[3,9,15,5,11,17,23,29,19,25,31],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero4131; AVX512DQ-FCP-NEXT: vpternlogq {{.*#+}} ymm8 = ymm8 | (ymm7 & ymm16)4132; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm7 = xmm15[u,u,u,u,u,u],zero,zero,xmm15[1,7,13],zero,zero,zero,xmm15[5,11]4133; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm10 = xmm14[u,u,u,u,u,u,5,11],zero,zero,zero,xmm14[3,9,15],zero,zero4134; AVX512DQ-FCP-NEXT: vpor %xmm7, %xmm10, %xmm74135; AVX512DQ-FCP-NEXT: vinserti128 $1, %xmm7, %ymm0, %ymm74136; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} ymm7 = ymm8[0,1,2],ymm7[3,4,5,6,7],ymm8[8,9,10],ymm7[11,12,13,14,15]4137; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm7 = ymm8[0,1,2,3],ymm7[4,5,6,7]4138; AVX512DQ-FCP-NEXT: vmovdqa {{.*#+}} ymm8 = [65535,0,65535,65535,0,65535,65535,0,65535,65535,0,65535,65535,0,65535,65535]4139; AVX512DQ-FCP-NEXT: vmovdqa %ymm8, %ymm104140; AVX512DQ-FCP-NEXT: vpternlogq {{.*#+}} ymm10 = ymm17 ^ (ymm10 & (ymm3 ^ ymm17))4141; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm10, %xmm114142; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm12 = zero,zero,zero,xmm11[4,10],zero,zero,zero,xmm11[2,8,14,u,u,u,u,u]4143; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm14 = xmm10[2,8,14],zero,zero,xmm10[0,6,12],zero,zero,zero,xmm10[u,u,u,u,u]4144; AVX512DQ-FCP-NEXT: vpor %xmm12, %xmm14, %xmm124145; AVX512DQ-FCP-NEXT: vpternlogq {{.*#+}} ymm9 = ymm1 ^ (ymm9 & (ymm5 ^ ymm1))4146; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} ymm14 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm9[4,10,0,6,12,18,24,30,20,26,u,u,u,u,u,u,u,u,u,u,u]4147; AVX512DQ-FCP-NEXT: vmovdqa64 {{.*#+}} ymm16 = [255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255]4148; AVX512DQ-FCP-NEXT: vpternlogq {{.*#+}} ymm14 = ymm14 | (ymm12 & ymm16)4149; AVX512DQ-FCP-NEXT: vmovdqa %ymm0, %ymm124150; AVX512DQ-FCP-NEXT: vpternlogq {{.*#+}} ymm12 = ymm13 ^ (ymm12 & (ymm6 ^ ymm13))4151; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm15 = xmm12[u,u,u,u,u,0,6,12],zero,zero,zero,xmm12[4,10],zero,zero,zero4152; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm12, %xmm24153; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm4 = xmm2[u,u,u,u,u],zero,zero,zero,xmm2[2,8,14],zero,zero,xmm2[0,6,12]4154; AVX512DQ-FCP-NEXT: vpor %xmm4, %xmm15, %xmm44155; AVX512DQ-FCP-NEXT: vinserti128 $1, %xmm4, %ymm0, %ymm44156; AVX512DQ-FCP-NEXT: vpmovsxwd {{.*#+}} ymm15 = [4294967295,4294967295,4294967295,4294967295,4294967295,255,0,0]4157; AVX512DQ-FCP-NEXT: vpternlogq {{.*#+}} ymm4 = ymm4 ^ (ymm15 & (ymm4 ^ ymm14))4158; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm11 = zero,zero,zero,xmm11[5,11],zero,zero,zero,xmm11[3,9,15,u,u,u,u,u]4159; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm10 = xmm10[3,9,15],zero,zero,xmm10[1,7,13],zero,zero,zero,xmm10[u,u,u,u,u]4160; AVX512DQ-FCP-NEXT: vpor %xmm11, %xmm10, %xmm104161; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} ymm9 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm9[5,11,1,7,13,19,25,31,21,27,u,u,u,u,u,u,u,u,u,u,u]4162; AVX512DQ-FCP-NEXT: vpternlogq {{.*#+}} ymm9 = ymm9 | (ymm10 & ymm16)4163; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm10 = xmm12[u,u,u,u,u,1,7,13],zero,zero,zero,xmm12[5,11],zero,zero,zero4164; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm2 = xmm2[u,u,u,u,u],zero,zero,zero,xmm2[3,9,15],zero,zero,xmm2[1,7,13]4165; AVX512DQ-FCP-NEXT: vpor %xmm2, %xmm10, %xmm24166; AVX512DQ-FCP-NEXT: vinserti128 $1, %xmm2, %ymm0, %ymm24167; AVX512DQ-FCP-NEXT: vpternlogq {{.*#+}} ymm2 = ymm2 ^ (ymm15 & (ymm2 ^ ymm9))4168; AVX512DQ-FCP-NEXT: vpternlogq {{.*#+}} ymm8 = ymm6 ^ (ymm8 & (ymm13 ^ ymm6))4169; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm8, %xmm64170; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm9 = xmm6[u,u,u,u,u],zero,zero,zero,xmm6[4,10],zero,zero,zero,xmm6[2,8,14]4171; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm10 = xmm8[u,u,u,u,u,2,8,14],zero,zero,xmm8[0,6,12],zero,zero,zero4172; AVX512DQ-FCP-NEXT: vpor %xmm9, %xmm10, %xmm94173; AVX512DQ-FCP-NEXT: vinserti128 $1, %xmm9, %ymm0, %ymm94174; AVX512DQ-FCP-NEXT: vpternlogq {{.*#+}} ymm0 = ymm17 ^ (ymm0 & (ymm3 ^ ymm17))4175; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm0, %xmm34176; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm10 = zero,zero,xmm3[0,6,12],zero,zero,zero,xmm3[4,10,u,u,u,u,u,u]4177; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm11 = xmm0[4,10],zero,zero,zero,xmm0[2,8,14],zero,zero,xmm0[u,u,u,u,u,u]4178; AVX512DQ-FCP-NEXT: vpor %xmm10, %xmm11, %xmm104179; AVX512DQ-FCP-NEXT: vpternlogq {{.*#+}} ymm1 = ymm1 ^ (mem & (ymm1 ^ ymm5))4180; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} ymm5 = ymm1[u,u,u,u,u,u,u,u,u,u,0,6,12,2,8,14,20,26,16,22,28,u,u,u,u,u,u,u,u,u,u,u]4181; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm10 = xmm10[0,1,2,3,4],xmm5[5,6,7]4182; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm5 = ymm10[0,1,2,3],ymm5[4,5,6,7]4183; AVX512DQ-FCP-NEXT: vpternlogq {{.*#+}} ymm5 = ymm9 ^ (ymm15 & (ymm5 ^ ymm9))4184; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm6 = xmm6[u,u,u,u,u],zero,zero,zero,xmm6[5,11],zero,zero,zero,xmm6[3,9,15]4185; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm8 = xmm8[u,u,u,u,u,3,9,15],zero,zero,xmm8[1,7,13],zero,zero,zero4186; AVX512DQ-FCP-NEXT: vpor %xmm6, %xmm8, %xmm64187; AVX512DQ-FCP-NEXT: vinserti128 $1, %xmm6, %ymm0, %ymm64188; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm3 = zero,zero,xmm3[1,7,13],zero,zero,zero,xmm3[5,11,u,u,u,u,u,u]4189; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[5,11],zero,zero,zero,xmm0[3,9,15],zero,zero,xmm0[u,u,u,u,u,u]4190; AVX512DQ-FCP-NEXT: vpor %xmm3, %xmm0, %xmm04191; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} ymm1 = ymm1[u,u,u,u,u,u,u,u,u,u,1,7,13,3,9,15,21,27,17,23,29,u,u,u,u,u,u,u,u,u,u,u]4192; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2,3,4],xmm1[5,6,7]4193; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]4194; AVX512DQ-FCP-NEXT: vpternlogq {{.*#+}} ymm0 = ymm6 ^ (ymm15 & (ymm0 ^ ymm6))4195; AVX512DQ-FCP-NEXT: vmovdqa64 %ymm18, (%rsi)4196; AVX512DQ-FCP-NEXT: vmovdqa %ymm7, (%rdx)4197; AVX512DQ-FCP-NEXT: vmovdqa %ymm4, (%rcx)4198; AVX512DQ-FCP-NEXT: vmovdqa %ymm2, (%r8)4199; AVX512DQ-FCP-NEXT: vmovdqa %ymm5, (%r9)4200; AVX512DQ-FCP-NEXT: vmovdqa %ymm0, (%rax)4201; AVX512DQ-FCP-NEXT: vzeroupper4202; AVX512DQ-FCP-NEXT: retq4203;4204; AVX512BW-LABEL: load_i8_stride6_vf32:4205; AVX512BW: # %bb.0:4206; AVX512BW-NEXT: movq {{[0-9]+}}(%rsp), %rax4207; AVX512BW-NEXT: vmovdqa (%rdi), %ymm44208; AVX512BW-NEXT: vmovdqa 32(%rdi), %ymm04209; AVX512BW-NEXT: vmovdqa 64(%rdi), %ymm34210; AVX512BW-NEXT: vmovdqa 128(%rdi), %ymm24211; AVX512BW-NEXT: vperm2i128 {{.*#+}} ymm1 = ymm3[2,3],mem[2,3]4212; AVX512BW-NEXT: vinserti128 $1, 96(%rdi), %ymm3, %ymm84213; AVX512BW-NEXT: movw $-28124, %r10w # imm = 0x92244214; AVX512BW-NEXT: kmovd %r10d, %k24215; AVX512BW-NEXT: vpblendmw %ymm1, %ymm8, %ymm6 {%k2}4216; AVX512BW-NEXT: movw $18724, %r10w # imm = 0x49244217; AVX512BW-NEXT: kmovd %r10d, %k14218; AVX512BW-NEXT: vpblendmw %ymm0, %ymm4, %ymm7 {%k1}4219; AVX512BW-NEXT: vpshufb {{.*#+}} xmm3 = xmm7[0,6,12],zero,zero,zero,xmm7[4,10],zero,zero,zero,xmm7[u,u,u,u,u]4220; AVX512BW-NEXT: vextracti128 $1, %ymm7, %xmm94221; AVX512BW-NEXT: vpshufb {{.*#+}} xmm5 = zero,zero,zero,xmm9[2,8,14],zero,zero,xmm9[0,6,12,u,u,u,u,u]4222; AVX512BW-NEXT: vpor %xmm3, %xmm5, %xmm54223; AVX512BW-NEXT: movl $4192256, %r10d # imm = 0x3FF8004224; AVX512BW-NEXT: kmovd %r10d, %k34225; AVX512BW-NEXT: vpshufb {{.*#+}} ymm5 {%k3} = ymm6[u,u,u,u,u,u,u,u,u,u,u,2,8,14,4,10,16,22,28,18,24,30,u,u,u,u,u,u,u,u,u,u]4226; AVX512BW-NEXT: vmovdqa 160(%rdi), %ymm34227; AVX512BW-NEXT: vpblendmw %ymm2, %ymm3, %ymm10 {%k1}4228; AVX512BW-NEXT: vextracti128 $1, %ymm10, %xmm114229; AVX512BW-NEXT: vpshufb {{.*#+}} xmm12 = xmm11[u,u,u,u,u,u],zero,zero,xmm11[0,6,12],zero,zero,zero,xmm11[4,10]4230; AVX512BW-NEXT: vpshufb {{.*#+}} xmm13 = xmm10[u,u,u,u,u,u,4,10],zero,zero,zero,xmm10[2,8,14],zero,zero4231; AVX512BW-NEXT: vpor %xmm12, %xmm13, %xmm124232; AVX512BW-NEXT: vinserti128 $1, %xmm12, %ymm0, %ymm124233; AVX512BW-NEXT: vpblendw {{.*#+}} ymm12 = ymm5[0,1,2],ymm12[3,4,5,6,7],ymm5[8,9,10],ymm12[11,12,13,14,15]4234; AVX512BW-NEXT: vpblendd {{.*#+}} ymm5 = ymm5[0,1,2,3],ymm12[4,5,6,7]4235; AVX512BW-NEXT: vpshufb {{.*#+}} xmm7 = xmm7[1,7,13],zero,zero,zero,xmm7[5,11],zero,zero,zero,xmm7[u,u,u,u,u]4236; AVX512BW-NEXT: vpshufb {{.*#+}} xmm9 = zero,zero,zero,xmm9[3,9,15],zero,zero,xmm9[1,7,13,u,u,u,u,u]4237; AVX512BW-NEXT: vpor %xmm7, %xmm9, %xmm74238; AVX512BW-NEXT: vpshufb {{.*#+}} ymm7 {%k3} = ymm6[u,u,u,u,u,u,u,u,u,u,u,3,9,15,5,11,17,23,29,19,25,31,u,u,u,u,u,u,u,u,u,u]4239; AVX512BW-NEXT: vpshufb {{.*#+}} xmm6 = xmm11[u,u,u,u,u,u],zero,zero,xmm11[1,7,13],zero,zero,zero,xmm11[5,11]4240; AVX512BW-NEXT: vpshufb {{.*#+}} xmm9 = xmm10[u,u,u,u,u,u,5,11],zero,zero,zero,xmm10[3,9,15],zero,zero4241; AVX512BW-NEXT: vpor %xmm6, %xmm9, %xmm64242; AVX512BW-NEXT: vinserti128 $1, %xmm6, %ymm0, %ymm64243; AVX512BW-NEXT: vpblendw {{.*#+}} ymm6 = ymm7[0,1,2],ymm6[3,4,5,6,7],ymm7[8,9,10],ymm6[11,12,13,14,15]4244; AVX512BW-NEXT: vpblendd {{.*#+}} ymm6 = ymm7[0,1,2,3],ymm6[4,5,6,7]4245; AVX512BW-NEXT: vpblendmw %ymm8, %ymm1, %ymm9 {%k2}4246; AVX512BW-NEXT: movw $9362, %di # imm = 0x24924247; AVX512BW-NEXT: kmovd %edi, %k34248; AVX512BW-NEXT: vpblendmw %ymm4, %ymm0, %ymm10 {%k3}4249; AVX512BW-NEXT: vextracti128 $1, %ymm10, %xmm114250; AVX512BW-NEXT: vpshufb {{.*#+}} xmm7 = zero,zero,zero,xmm11[4,10],zero,zero,zero,xmm11[2,8,14,u,u,u,u,u]4251; AVX512BW-NEXT: vpshufb {{.*#+}} xmm12 = xmm10[2,8,14],zero,zero,xmm10[0,6,12],zero,zero,zero,xmm10[u,u,u,u,u]4252; AVX512BW-NEXT: vpor %xmm7, %xmm12, %xmm74253; AVX512BW-NEXT: movl $2095104, %edi # imm = 0x1FF8004254; AVX512BW-NEXT: kmovd %edi, %k44255; AVX512BW-NEXT: vpshufb {{.*#+}} ymm7 {%k4} = ymm9[u,u,u,u,u,u,u,u,u,u,u,4,10,0,6,12,18,24,30,20,26,u,u,u,u,u,u,u,u,u,u,u]4256; AVX512BW-NEXT: vpblendmw %ymm3, %ymm2, %ymm12 {%k1}4257; AVX512BW-NEXT: vpshufb {{.*#+}} xmm13 = xmm12[u,u,u,u,u,0,6,12],zero,zero,zero,xmm12[4,10],zero,zero,zero4258; AVX512BW-NEXT: vextracti128 $1, %ymm12, %xmm144259; AVX512BW-NEXT: vpshufb {{.*#+}} xmm15 = xmm14[u,u,u,u,u],zero,zero,zero,xmm14[2,8,14],zero,zero,xmm14[0,6,12]4260; AVX512BW-NEXT: vpor %xmm13, %xmm15, %xmm134261; AVX512BW-NEXT: vinserti128 $1, %xmm13, %ymm0, %ymm134262; AVX512BW-NEXT: movl $-2097152, %edi # imm = 0xFFE000004263; AVX512BW-NEXT: kmovd %edi, %k24264; AVX512BW-NEXT: vmovdqu8 %ymm13, %ymm7 {%k2}4265; AVX512BW-NEXT: movw $9289, %di # imm = 0x24494266; AVX512BW-NEXT: kmovd %edi, %k54267; AVX512BW-NEXT: vmovdqu16 %ymm8, %ymm1 {%k5}4268; AVX512BW-NEXT: vpshufb {{.*#+}} xmm8 = zero,zero,zero,xmm11[5,11],zero,zero,zero,xmm11[3,9,15,u,u,u,u,u]4269; AVX512BW-NEXT: vpshufb {{.*#+}} xmm10 = xmm10[3,9,15],zero,zero,xmm10[1,7,13],zero,zero,zero,xmm10[u,u,u,u,u]4270; AVX512BW-NEXT: vpor %xmm8, %xmm10, %xmm84271; AVX512BW-NEXT: vpshufb {{.*#+}} ymm8 {%k4} = ymm9[u,u,u,u,u,u,u,u,u,u,u,5,11,1,7,13,19,25,31,21,27,u,u,u,u,u,u,u,u,u,u,u]4272; AVX512BW-NEXT: vpshufb {{.*#+}} xmm9 = xmm12[u,u,u,u,u,1,7,13],zero,zero,zero,xmm12[5,11],zero,zero,zero4273; AVX512BW-NEXT: vpshufb {{.*#+}} xmm10 = xmm14[u,u,u,u,u],zero,zero,zero,xmm14[3,9,15],zero,zero,xmm14[1,7,13]4274; AVX512BW-NEXT: vpor %xmm9, %xmm10, %xmm94275; AVX512BW-NEXT: vinserti128 $1, %xmm9, %ymm0, %ymm94276; AVX512BW-NEXT: vmovdqu8 %ymm9, %ymm8 {%k2}4277; AVX512BW-NEXT: vpshufb {{.*#+}} ymm9 = ymm1[u,u,u,u,u,u,u,u,u,u,0,6,12,2,8,14,20,26,16,22,28,u,u,u,u,u,u,u,u,u,u,u]4278; AVX512BW-NEXT: vmovdqu16 %ymm4, %ymm0 {%k1}4279; AVX512BW-NEXT: vextracti128 $1, %ymm0, %xmm44280; AVX512BW-NEXT: vpshufb {{.*#+}} xmm10 = zero,zero,xmm4[0,6,12],zero,zero,zero,xmm4[4,10,u,u,u,u,u,u]4281; AVX512BW-NEXT: vpshufb {{.*#+}} xmm11 = xmm0[4,10],zero,zero,zero,xmm0[2,8,14],zero,zero,xmm0[u,u,u,u,u,u]4282; AVX512BW-NEXT: vpor %xmm10, %xmm11, %xmm104283; AVX512BW-NEXT: vpblendw {{.*#+}} xmm10 = xmm10[0,1,2,3,4],xmm9[5,6,7]4284; AVX512BW-NEXT: vpblendd {{.*#+}} ymm9 = ymm10[0,1,2,3],ymm9[4,5,6,7]4285; AVX512BW-NEXT: vmovdqu16 %ymm2, %ymm3 {%k3}4286; AVX512BW-NEXT: vextracti128 $1, %ymm3, %xmm24287; AVX512BW-NEXT: vpshufb {{.*#+}} xmm10 = xmm2[u,u,u,u,u],zero,zero,zero,xmm2[4,10],zero,zero,zero,xmm2[2,8,14]4288; AVX512BW-NEXT: vpshufb {{.*#+}} xmm11 = xmm3[u,u,u,u,u,2,8,14],zero,zero,xmm3[0,6,12],zero,zero,zero4289; AVX512BW-NEXT: vpor %xmm10, %xmm11, %xmm104290; AVX512BW-NEXT: vinserti128 $1, %xmm10, %ymm0, %ymm104291; AVX512BW-NEXT: vmovdqu8 %ymm10, %ymm9 {%k2}4292; AVX512BW-NEXT: vpshufb {{.*#+}} ymm1 = ymm1[u,u,u,u,u,u,u,u,u,u,1,7,13,3,9,15,21,27,17,23,29,u,u,u,u,u,u,u,u,u,u,u]4293; AVX512BW-NEXT: vpshufb {{.*#+}} xmm4 = zero,zero,xmm4[1,7,13],zero,zero,zero,xmm4[5,11,u,u,u,u,u,u]4294; AVX512BW-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[5,11],zero,zero,zero,xmm0[3,9,15],zero,zero,xmm0[u,u,u,u,u,u]4295; AVX512BW-NEXT: vpor %xmm4, %xmm0, %xmm04296; AVX512BW-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2,3,4],xmm1[5,6,7]4297; AVX512BW-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]4298; AVX512BW-NEXT: vpshufb {{.*#+}} xmm1 = xmm2[u,u,u,u,u],zero,zero,zero,xmm2[5,11],zero,zero,zero,xmm2[3,9,15]4299; AVX512BW-NEXT: vpshufb {{.*#+}} xmm2 = xmm3[u,u,u,u,u,3,9,15],zero,zero,xmm3[1,7,13],zero,zero,zero4300; AVX512BW-NEXT: vpor %xmm1, %xmm2, %xmm14301; AVX512BW-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm14302; AVX512BW-NEXT: vmovdqu8 %ymm1, %ymm0 {%k2}4303; AVX512BW-NEXT: vmovdqa %ymm5, (%rsi)4304; AVX512BW-NEXT: vmovdqa %ymm6, (%rdx)4305; AVX512BW-NEXT: vmovdqa %ymm7, (%rcx)4306; AVX512BW-NEXT: vmovdqa %ymm8, (%r8)4307; AVX512BW-NEXT: vmovdqa %ymm9, (%r9)4308; AVX512BW-NEXT: vmovdqa %ymm0, (%rax)4309; AVX512BW-NEXT: vzeroupper4310; AVX512BW-NEXT: retq4311;4312; AVX512BW-FCP-LABEL: load_i8_stride6_vf32:4313; AVX512BW-FCP: # %bb.0:4314; AVX512BW-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax4315; AVX512BW-FCP-NEXT: vmovdqa (%rdi), %ymm44316; AVX512BW-FCP-NEXT: vmovdqa 32(%rdi), %ymm04317; AVX512BW-FCP-NEXT: vmovdqa 64(%rdi), %ymm34318; AVX512BW-FCP-NEXT: vmovdqa 128(%rdi), %ymm24319; AVX512BW-FCP-NEXT: vperm2i128 {{.*#+}} ymm1 = ymm3[2,3],mem[2,3]4320; AVX512BW-FCP-NEXT: vinserti128 $1, 96(%rdi), %ymm3, %ymm84321; AVX512BW-FCP-NEXT: movw $-28124, %r10w # imm = 0x92244322; AVX512BW-FCP-NEXT: kmovd %r10d, %k24323; AVX512BW-FCP-NEXT: vpblendmw %ymm1, %ymm8, %ymm6 {%k2}4324; AVX512BW-FCP-NEXT: movw $18724, %r10w # imm = 0x49244325; AVX512BW-FCP-NEXT: kmovd %r10d, %k14326; AVX512BW-FCP-NEXT: vpblendmw %ymm0, %ymm4, %ymm7 {%k1}4327; AVX512BW-FCP-NEXT: vpshufb {{.*#+}} xmm3 = xmm7[0,6,12],zero,zero,zero,xmm7[4,10],zero,zero,zero,xmm7[u,u,u,u,u]4328; AVX512BW-FCP-NEXT: vextracti128 $1, %ymm7, %xmm94329; AVX512BW-FCP-NEXT: vpshufb {{.*#+}} xmm5 = zero,zero,zero,xmm9[2,8,14],zero,zero,xmm9[0,6,12,u,u,u,u,u]4330; AVX512BW-FCP-NEXT: vpor %xmm3, %xmm5, %xmm54331; AVX512BW-FCP-NEXT: movl $4192256, %r10d # imm = 0x3FF8004332; AVX512BW-FCP-NEXT: kmovd %r10d, %k34333; AVX512BW-FCP-NEXT: vpshufb {{.*#+}} ymm5 {%k3} = ymm6[u,u,u,u,u,u,u,u,u,u,u,2,8,14,4,10,16,22,28,18,24,30,u,u,u,u,u,u,u,u,u,u]4334; AVX512BW-FCP-NEXT: vmovdqa 160(%rdi), %ymm34335; AVX512BW-FCP-NEXT: vpblendmw %ymm2, %ymm3, %ymm10 {%k1}4336; AVX512BW-FCP-NEXT: vextracti128 $1, %ymm10, %xmm114337; AVX512BW-FCP-NEXT: vpshufb {{.*#+}} xmm12 = xmm11[u,u,u,u,u,u],zero,zero,xmm11[0,6,12],zero,zero,zero,xmm11[4,10]4338; AVX512BW-FCP-NEXT: vpshufb {{.*#+}} xmm13 = xmm10[u,u,u,u,u,u,4,10],zero,zero,zero,xmm10[2,8,14],zero,zero4339; AVX512BW-FCP-NEXT: vpor %xmm12, %xmm13, %xmm124340; AVX512BW-FCP-NEXT: vinserti128 $1, %xmm12, %ymm0, %ymm124341; AVX512BW-FCP-NEXT: vpblendw {{.*#+}} ymm12 = ymm5[0,1,2],ymm12[3,4,5,6,7],ymm5[8,9,10],ymm12[11,12,13,14,15]4342; AVX512BW-FCP-NEXT: vpblendd {{.*#+}} ymm5 = ymm5[0,1,2,3],ymm12[4,5,6,7]4343; AVX512BW-FCP-NEXT: vpshufb {{.*#+}} xmm7 = xmm7[1,7,13],zero,zero,zero,xmm7[5,11],zero,zero,zero,xmm7[u,u,u,u,u]4344; AVX512BW-FCP-NEXT: vpshufb {{.*#+}} xmm9 = zero,zero,zero,xmm9[3,9,15],zero,zero,xmm9[1,7,13,u,u,u,u,u]4345; AVX512BW-FCP-NEXT: vpor %xmm7, %xmm9, %xmm74346; AVX512BW-FCP-NEXT: vpshufb {{.*#+}} ymm7 {%k3} = ymm6[u,u,u,u,u,u,u,u,u,u,u,3,9,15,5,11,17,23,29,19,25,31,u,u,u,u,u,u,u,u,u,u]4347; AVX512BW-FCP-NEXT: vpshufb {{.*#+}} xmm6 = xmm11[u,u,u,u,u,u],zero,zero,xmm11[1,7,13],zero,zero,zero,xmm11[5,11]4348; AVX512BW-FCP-NEXT: vpshufb {{.*#+}} xmm9 = xmm10[u,u,u,u,u,u,5,11],zero,zero,zero,xmm10[3,9,15],zero,zero4349; AVX512BW-FCP-NEXT: vpor %xmm6, %xmm9, %xmm64350; AVX512BW-FCP-NEXT: vinserti128 $1, %xmm6, %ymm0, %ymm64351; AVX512BW-FCP-NEXT: vpblendw {{.*#+}} ymm6 = ymm7[0,1,2],ymm6[3,4,5,6,7],ymm7[8,9,10],ymm6[11,12,13,14,15]4352; AVX512BW-FCP-NEXT: vpblendd {{.*#+}} ymm6 = ymm7[0,1,2,3],ymm6[4,5,6,7]4353; AVX512BW-FCP-NEXT: vpblendmw %ymm8, %ymm1, %ymm9 {%k2}4354; AVX512BW-FCP-NEXT: movw $9362, %di # imm = 0x24924355; AVX512BW-FCP-NEXT: kmovd %edi, %k34356; AVX512BW-FCP-NEXT: vpblendmw %ymm4, %ymm0, %ymm10 {%k3}4357; AVX512BW-FCP-NEXT: vextracti128 $1, %ymm10, %xmm114358; AVX512BW-FCP-NEXT: vpshufb {{.*#+}} xmm7 = zero,zero,zero,xmm11[4,10],zero,zero,zero,xmm11[2,8,14,u,u,u,u,u]4359; AVX512BW-FCP-NEXT: vpshufb {{.*#+}} xmm12 = xmm10[2,8,14],zero,zero,xmm10[0,6,12],zero,zero,zero,xmm10[u,u,u,u,u]4360; AVX512BW-FCP-NEXT: vpor %xmm7, %xmm12, %xmm74361; AVX512BW-FCP-NEXT: movl $2095104, %edi # imm = 0x1FF8004362; AVX512BW-FCP-NEXT: kmovd %edi, %k44363; AVX512BW-FCP-NEXT: vpshufb {{.*#+}} ymm7 {%k4} = ymm9[u,u,u,u,u,u,u,u,u,u,u,4,10,0,6,12,18,24,30,20,26,u,u,u,u,u,u,u,u,u,u,u]4364; AVX512BW-FCP-NEXT: vpblendmw %ymm3, %ymm2, %ymm12 {%k1}4365; AVX512BW-FCP-NEXT: vpshufb {{.*#+}} xmm13 = xmm12[u,u,u,u,u,0,6,12],zero,zero,zero,xmm12[4,10],zero,zero,zero4366; AVX512BW-FCP-NEXT: vextracti128 $1, %ymm12, %xmm144367; AVX512BW-FCP-NEXT: vpshufb {{.*#+}} xmm15 = xmm14[u,u,u,u,u],zero,zero,zero,xmm14[2,8,14],zero,zero,xmm14[0,6,12]4368; AVX512BW-FCP-NEXT: vpor %xmm13, %xmm15, %xmm134369; AVX512BW-FCP-NEXT: vinserti128 $1, %xmm13, %ymm0, %ymm134370; AVX512BW-FCP-NEXT: movl $-2097152, %edi # imm = 0xFFE000004371; AVX512BW-FCP-NEXT: kmovd %edi, %k24372; AVX512BW-FCP-NEXT: vmovdqu8 %ymm13, %ymm7 {%k2}4373; AVX512BW-FCP-NEXT: movw $9289, %di # imm = 0x24494374; AVX512BW-FCP-NEXT: kmovd %edi, %k54375; AVX512BW-FCP-NEXT: vmovdqu16 %ymm8, %ymm1 {%k5}4376; AVX512BW-FCP-NEXT: vpshufb {{.*#+}} xmm8 = zero,zero,zero,xmm11[5,11],zero,zero,zero,xmm11[3,9,15,u,u,u,u,u]4377; AVX512BW-FCP-NEXT: vpshufb {{.*#+}} xmm10 = xmm10[3,9,15],zero,zero,xmm10[1,7,13],zero,zero,zero,xmm10[u,u,u,u,u]4378; AVX512BW-FCP-NEXT: vpor %xmm8, %xmm10, %xmm84379; AVX512BW-FCP-NEXT: vpshufb {{.*#+}} ymm8 {%k4} = ymm9[u,u,u,u,u,u,u,u,u,u,u,5,11,1,7,13,19,25,31,21,27,u,u,u,u,u,u,u,u,u,u,u]4380; AVX512BW-FCP-NEXT: vpshufb {{.*#+}} xmm9 = xmm12[u,u,u,u,u,1,7,13],zero,zero,zero,xmm12[5,11],zero,zero,zero4381; AVX512BW-FCP-NEXT: vpshufb {{.*#+}} xmm10 = xmm14[u,u,u,u,u],zero,zero,zero,xmm14[3,9,15],zero,zero,xmm14[1,7,13]4382; AVX512BW-FCP-NEXT: vpor %xmm9, %xmm10, %xmm94383; AVX512BW-FCP-NEXT: vinserti128 $1, %xmm9, %ymm0, %ymm94384; AVX512BW-FCP-NEXT: vmovdqu8 %ymm9, %ymm8 {%k2}4385; AVX512BW-FCP-NEXT: vpshufb {{.*#+}} ymm9 = ymm1[u,u,u,u,u,u,u,u,u,u,0,6,12,2,8,14,20,26,16,22,28,u,u,u,u,u,u,u,u,u,u,u]4386; AVX512BW-FCP-NEXT: vmovdqu16 %ymm4, %ymm0 {%k1}4387; AVX512BW-FCP-NEXT: vextracti128 $1, %ymm0, %xmm44388; AVX512BW-FCP-NEXT: vpshufb {{.*#+}} xmm10 = zero,zero,xmm4[0,6,12],zero,zero,zero,xmm4[4,10,u,u,u,u,u,u]4389; AVX512BW-FCP-NEXT: vpshufb {{.*#+}} xmm11 = xmm0[4,10],zero,zero,zero,xmm0[2,8,14],zero,zero,xmm0[u,u,u,u,u,u]4390; AVX512BW-FCP-NEXT: vpor %xmm10, %xmm11, %xmm104391; AVX512BW-FCP-NEXT: vpblendw {{.*#+}} xmm10 = xmm10[0,1,2,3,4],xmm9[5,6,7]4392; AVX512BW-FCP-NEXT: vpblendd {{.*#+}} ymm9 = ymm10[0,1,2,3],ymm9[4,5,6,7]4393; AVX512BW-FCP-NEXT: vmovdqu16 %ymm2, %ymm3 {%k3}4394; AVX512BW-FCP-NEXT: vextracti128 $1, %ymm3, %xmm24395; AVX512BW-FCP-NEXT: vpshufb {{.*#+}} xmm10 = xmm2[u,u,u,u,u],zero,zero,zero,xmm2[4,10],zero,zero,zero,xmm2[2,8,14]4396; AVX512BW-FCP-NEXT: vpshufb {{.*#+}} xmm11 = xmm3[u,u,u,u,u,2,8,14],zero,zero,xmm3[0,6,12],zero,zero,zero4397; AVX512BW-FCP-NEXT: vpor %xmm10, %xmm11, %xmm104398; AVX512BW-FCP-NEXT: vinserti128 $1, %xmm10, %ymm0, %ymm104399; AVX512BW-FCP-NEXT: vmovdqu8 %ymm10, %ymm9 {%k2}4400; AVX512BW-FCP-NEXT: vpshufb {{.*#+}} ymm1 = ymm1[u,u,u,u,u,u,u,u,u,u,1,7,13,3,9,15,21,27,17,23,29,u,u,u,u,u,u,u,u,u,u,u]4401; AVX512BW-FCP-NEXT: vpshufb {{.*#+}} xmm4 = zero,zero,xmm4[1,7,13],zero,zero,zero,xmm4[5,11,u,u,u,u,u,u]4402; AVX512BW-FCP-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[5,11],zero,zero,zero,xmm0[3,9,15],zero,zero,xmm0[u,u,u,u,u,u]4403; AVX512BW-FCP-NEXT: vpor %xmm4, %xmm0, %xmm04404; AVX512BW-FCP-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2,3,4],xmm1[5,6,7]4405; AVX512BW-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]4406; AVX512BW-FCP-NEXT: vpshufb {{.*#+}} xmm1 = xmm2[u,u,u,u,u],zero,zero,zero,xmm2[5,11],zero,zero,zero,xmm2[3,9,15]4407; AVX512BW-FCP-NEXT: vpshufb {{.*#+}} xmm2 = xmm3[u,u,u,u,u,3,9,15],zero,zero,xmm3[1,7,13],zero,zero,zero4408; AVX512BW-FCP-NEXT: vpor %xmm1, %xmm2, %xmm14409; AVX512BW-FCP-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm14410; AVX512BW-FCP-NEXT: vmovdqu8 %ymm1, %ymm0 {%k2}4411; AVX512BW-FCP-NEXT: vmovdqa %ymm5, (%rsi)4412; AVX512BW-FCP-NEXT: vmovdqa %ymm6, (%rdx)4413; AVX512BW-FCP-NEXT: vmovdqa %ymm7, (%rcx)4414; AVX512BW-FCP-NEXT: vmovdqa %ymm8, (%r8)4415; AVX512BW-FCP-NEXT: vmovdqa %ymm9, (%r9)4416; AVX512BW-FCP-NEXT: vmovdqa %ymm0, (%rax)4417; AVX512BW-FCP-NEXT: vzeroupper4418; AVX512BW-FCP-NEXT: retq4419;4420; AVX512DQ-BW-LABEL: load_i8_stride6_vf32:4421; AVX512DQ-BW: # %bb.0:4422; AVX512DQ-BW-NEXT: movq {{[0-9]+}}(%rsp), %rax4423; AVX512DQ-BW-NEXT: vmovdqa (%rdi), %ymm44424; AVX512DQ-BW-NEXT: vmovdqa 32(%rdi), %ymm04425; AVX512DQ-BW-NEXT: vmovdqa 64(%rdi), %ymm34426; AVX512DQ-BW-NEXT: vmovdqa 128(%rdi), %ymm24427; AVX512DQ-BW-NEXT: vperm2i128 {{.*#+}} ymm1 = ymm3[2,3],mem[2,3]4428; AVX512DQ-BW-NEXT: vinserti128 $1, 96(%rdi), %ymm3, %ymm84429; AVX512DQ-BW-NEXT: movw $-28124, %r10w # imm = 0x92244430; AVX512DQ-BW-NEXT: kmovd %r10d, %k24431; AVX512DQ-BW-NEXT: vpblendmw %ymm1, %ymm8, %ymm6 {%k2}4432; AVX512DQ-BW-NEXT: movw $18724, %r10w # imm = 0x49244433; AVX512DQ-BW-NEXT: kmovd %r10d, %k14434; AVX512DQ-BW-NEXT: vpblendmw %ymm0, %ymm4, %ymm7 {%k1}4435; AVX512DQ-BW-NEXT: vpshufb {{.*#+}} xmm3 = xmm7[0,6,12],zero,zero,zero,xmm7[4,10],zero,zero,zero,xmm7[u,u,u,u,u]4436; AVX512DQ-BW-NEXT: vextracti128 $1, %ymm7, %xmm94437; AVX512DQ-BW-NEXT: vpshufb {{.*#+}} xmm5 = zero,zero,zero,xmm9[2,8,14],zero,zero,xmm9[0,6,12,u,u,u,u,u]4438; AVX512DQ-BW-NEXT: vpor %xmm3, %xmm5, %xmm54439; AVX512DQ-BW-NEXT: movl $4192256, %r10d # imm = 0x3FF8004440; AVX512DQ-BW-NEXT: kmovd %r10d, %k34441; AVX512DQ-BW-NEXT: vpshufb {{.*#+}} ymm5 {%k3} = ymm6[u,u,u,u,u,u,u,u,u,u,u,2,8,14,4,10,16,22,28,18,24,30,u,u,u,u,u,u,u,u,u,u]4442; AVX512DQ-BW-NEXT: vmovdqa 160(%rdi), %ymm34443; AVX512DQ-BW-NEXT: vpblendmw %ymm2, %ymm3, %ymm10 {%k1}4444; AVX512DQ-BW-NEXT: vextracti128 $1, %ymm10, %xmm114445; AVX512DQ-BW-NEXT: vpshufb {{.*#+}} xmm12 = xmm11[u,u,u,u,u,u],zero,zero,xmm11[0,6,12],zero,zero,zero,xmm11[4,10]4446; AVX512DQ-BW-NEXT: vpshufb {{.*#+}} xmm13 = xmm10[u,u,u,u,u,u,4,10],zero,zero,zero,xmm10[2,8,14],zero,zero4447; AVX512DQ-BW-NEXT: vpor %xmm12, %xmm13, %xmm124448; AVX512DQ-BW-NEXT: vinserti128 $1, %xmm12, %ymm0, %ymm124449; AVX512DQ-BW-NEXT: vpblendw {{.*#+}} ymm12 = ymm5[0,1,2],ymm12[3,4,5,6,7],ymm5[8,9,10],ymm12[11,12,13,14,15]4450; AVX512DQ-BW-NEXT: vpblendd {{.*#+}} ymm5 = ymm5[0,1,2,3],ymm12[4,5,6,7]4451; AVX512DQ-BW-NEXT: vpshufb {{.*#+}} xmm7 = xmm7[1,7,13],zero,zero,zero,xmm7[5,11],zero,zero,zero,xmm7[u,u,u,u,u]4452; AVX512DQ-BW-NEXT: vpshufb {{.*#+}} xmm9 = zero,zero,zero,xmm9[3,9,15],zero,zero,xmm9[1,7,13,u,u,u,u,u]4453; AVX512DQ-BW-NEXT: vpor %xmm7, %xmm9, %xmm74454; AVX512DQ-BW-NEXT: vpshufb {{.*#+}} ymm7 {%k3} = ymm6[u,u,u,u,u,u,u,u,u,u,u,3,9,15,5,11,17,23,29,19,25,31,u,u,u,u,u,u,u,u,u,u]4455; AVX512DQ-BW-NEXT: vpshufb {{.*#+}} xmm6 = xmm11[u,u,u,u,u,u],zero,zero,xmm11[1,7,13],zero,zero,zero,xmm11[5,11]4456; AVX512DQ-BW-NEXT: vpshufb {{.*#+}} xmm9 = xmm10[u,u,u,u,u,u,5,11],zero,zero,zero,xmm10[3,9,15],zero,zero4457; AVX512DQ-BW-NEXT: vpor %xmm6, %xmm9, %xmm64458; AVX512DQ-BW-NEXT: vinserti128 $1, %xmm6, %ymm0, %ymm64459; AVX512DQ-BW-NEXT: vpblendw {{.*#+}} ymm6 = ymm7[0,1,2],ymm6[3,4,5,6,7],ymm7[8,9,10],ymm6[11,12,13,14,15]4460; AVX512DQ-BW-NEXT: vpblendd {{.*#+}} ymm6 = ymm7[0,1,2,3],ymm6[4,5,6,7]4461; AVX512DQ-BW-NEXT: vpblendmw %ymm8, %ymm1, %ymm9 {%k2}4462; AVX512DQ-BW-NEXT: movw $9362, %di # imm = 0x24924463; AVX512DQ-BW-NEXT: kmovd %edi, %k34464; AVX512DQ-BW-NEXT: vpblendmw %ymm4, %ymm0, %ymm10 {%k3}4465; AVX512DQ-BW-NEXT: vextracti128 $1, %ymm10, %xmm114466; AVX512DQ-BW-NEXT: vpshufb {{.*#+}} xmm7 = zero,zero,zero,xmm11[4,10],zero,zero,zero,xmm11[2,8,14,u,u,u,u,u]4467; AVX512DQ-BW-NEXT: vpshufb {{.*#+}} xmm12 = xmm10[2,8,14],zero,zero,xmm10[0,6,12],zero,zero,zero,xmm10[u,u,u,u,u]4468; AVX512DQ-BW-NEXT: vpor %xmm7, %xmm12, %xmm74469; AVX512DQ-BW-NEXT: movl $2095104, %edi # imm = 0x1FF8004470; AVX512DQ-BW-NEXT: kmovd %edi, %k44471; AVX512DQ-BW-NEXT: vpshufb {{.*#+}} ymm7 {%k4} = ymm9[u,u,u,u,u,u,u,u,u,u,u,4,10,0,6,12,18,24,30,20,26,u,u,u,u,u,u,u,u,u,u,u]4472; AVX512DQ-BW-NEXT: vpblendmw %ymm3, %ymm2, %ymm12 {%k1}4473; AVX512DQ-BW-NEXT: vpshufb {{.*#+}} xmm13 = xmm12[u,u,u,u,u,0,6,12],zero,zero,zero,xmm12[4,10],zero,zero,zero4474; AVX512DQ-BW-NEXT: vextracti128 $1, %ymm12, %xmm144475; AVX512DQ-BW-NEXT: vpshufb {{.*#+}} xmm15 = xmm14[u,u,u,u,u],zero,zero,zero,xmm14[2,8,14],zero,zero,xmm14[0,6,12]4476; AVX512DQ-BW-NEXT: vpor %xmm13, %xmm15, %xmm134477; AVX512DQ-BW-NEXT: vinserti128 $1, %xmm13, %ymm0, %ymm134478; AVX512DQ-BW-NEXT: movl $-2097152, %edi # imm = 0xFFE000004479; AVX512DQ-BW-NEXT: kmovd %edi, %k24480; AVX512DQ-BW-NEXT: vmovdqu8 %ymm13, %ymm7 {%k2}4481; AVX512DQ-BW-NEXT: movw $9289, %di # imm = 0x24494482; AVX512DQ-BW-NEXT: kmovd %edi, %k54483; AVX512DQ-BW-NEXT: vmovdqu16 %ymm8, %ymm1 {%k5}4484; AVX512DQ-BW-NEXT: vpshufb {{.*#+}} xmm8 = zero,zero,zero,xmm11[5,11],zero,zero,zero,xmm11[3,9,15,u,u,u,u,u]4485; AVX512DQ-BW-NEXT: vpshufb {{.*#+}} xmm10 = xmm10[3,9,15],zero,zero,xmm10[1,7,13],zero,zero,zero,xmm10[u,u,u,u,u]4486; AVX512DQ-BW-NEXT: vpor %xmm8, %xmm10, %xmm84487; AVX512DQ-BW-NEXT: vpshufb {{.*#+}} ymm8 {%k4} = ymm9[u,u,u,u,u,u,u,u,u,u,u,5,11,1,7,13,19,25,31,21,27,u,u,u,u,u,u,u,u,u,u,u]4488; AVX512DQ-BW-NEXT: vpshufb {{.*#+}} xmm9 = xmm12[u,u,u,u,u,1,7,13],zero,zero,zero,xmm12[5,11],zero,zero,zero4489; AVX512DQ-BW-NEXT: vpshufb {{.*#+}} xmm10 = xmm14[u,u,u,u,u],zero,zero,zero,xmm14[3,9,15],zero,zero,xmm14[1,7,13]4490; AVX512DQ-BW-NEXT: vpor %xmm9, %xmm10, %xmm94491; AVX512DQ-BW-NEXT: vinserti128 $1, %xmm9, %ymm0, %ymm94492; AVX512DQ-BW-NEXT: vmovdqu8 %ymm9, %ymm8 {%k2}4493; AVX512DQ-BW-NEXT: vpshufb {{.*#+}} ymm9 = ymm1[u,u,u,u,u,u,u,u,u,u,0,6,12,2,8,14,20,26,16,22,28,u,u,u,u,u,u,u,u,u,u,u]4494; AVX512DQ-BW-NEXT: vmovdqu16 %ymm4, %ymm0 {%k1}4495; AVX512DQ-BW-NEXT: vextracti128 $1, %ymm0, %xmm44496; AVX512DQ-BW-NEXT: vpshufb {{.*#+}} xmm10 = zero,zero,xmm4[0,6,12],zero,zero,zero,xmm4[4,10,u,u,u,u,u,u]4497; AVX512DQ-BW-NEXT: vpshufb {{.*#+}} xmm11 = xmm0[4,10],zero,zero,zero,xmm0[2,8,14],zero,zero,xmm0[u,u,u,u,u,u]4498; AVX512DQ-BW-NEXT: vpor %xmm10, %xmm11, %xmm104499; AVX512DQ-BW-NEXT: vpblendw {{.*#+}} xmm10 = xmm10[0,1,2,3,4],xmm9[5,6,7]4500; AVX512DQ-BW-NEXT: vpblendd {{.*#+}} ymm9 = ymm10[0,1,2,3],ymm9[4,5,6,7]4501; AVX512DQ-BW-NEXT: vmovdqu16 %ymm2, %ymm3 {%k3}4502; AVX512DQ-BW-NEXT: vextracti128 $1, %ymm3, %xmm24503; AVX512DQ-BW-NEXT: vpshufb {{.*#+}} xmm10 = xmm2[u,u,u,u,u],zero,zero,zero,xmm2[4,10],zero,zero,zero,xmm2[2,8,14]4504; AVX512DQ-BW-NEXT: vpshufb {{.*#+}} xmm11 = xmm3[u,u,u,u,u,2,8,14],zero,zero,xmm3[0,6,12],zero,zero,zero4505; AVX512DQ-BW-NEXT: vpor %xmm10, %xmm11, %xmm104506; AVX512DQ-BW-NEXT: vinserti128 $1, %xmm10, %ymm0, %ymm104507; AVX512DQ-BW-NEXT: vmovdqu8 %ymm10, %ymm9 {%k2}4508; AVX512DQ-BW-NEXT: vpshufb {{.*#+}} ymm1 = ymm1[u,u,u,u,u,u,u,u,u,u,1,7,13,3,9,15,21,27,17,23,29,u,u,u,u,u,u,u,u,u,u,u]4509; AVX512DQ-BW-NEXT: vpshufb {{.*#+}} xmm4 = zero,zero,xmm4[1,7,13],zero,zero,zero,xmm4[5,11,u,u,u,u,u,u]4510; AVX512DQ-BW-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[5,11],zero,zero,zero,xmm0[3,9,15],zero,zero,xmm0[u,u,u,u,u,u]4511; AVX512DQ-BW-NEXT: vpor %xmm4, %xmm0, %xmm04512; AVX512DQ-BW-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2,3,4],xmm1[5,6,7]4513; AVX512DQ-BW-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]4514; AVX512DQ-BW-NEXT: vpshufb {{.*#+}} xmm1 = xmm2[u,u,u,u,u],zero,zero,zero,xmm2[5,11],zero,zero,zero,xmm2[3,9,15]4515; AVX512DQ-BW-NEXT: vpshufb {{.*#+}} xmm2 = xmm3[u,u,u,u,u,3,9,15],zero,zero,xmm3[1,7,13],zero,zero,zero4516; AVX512DQ-BW-NEXT: vpor %xmm1, %xmm2, %xmm14517; AVX512DQ-BW-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm14518; AVX512DQ-BW-NEXT: vmovdqu8 %ymm1, %ymm0 {%k2}4519; AVX512DQ-BW-NEXT: vmovdqa %ymm5, (%rsi)4520; AVX512DQ-BW-NEXT: vmovdqa %ymm6, (%rdx)4521; AVX512DQ-BW-NEXT: vmovdqa %ymm7, (%rcx)4522; AVX512DQ-BW-NEXT: vmovdqa %ymm8, (%r8)4523; AVX512DQ-BW-NEXT: vmovdqa %ymm9, (%r9)4524; AVX512DQ-BW-NEXT: vmovdqa %ymm0, (%rax)4525; AVX512DQ-BW-NEXT: vzeroupper4526; AVX512DQ-BW-NEXT: retq4527;4528; AVX512DQ-BW-FCP-LABEL: load_i8_stride6_vf32:4529; AVX512DQ-BW-FCP: # %bb.0:4530; AVX512DQ-BW-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax4531; AVX512DQ-BW-FCP-NEXT: vmovdqa (%rdi), %ymm44532; AVX512DQ-BW-FCP-NEXT: vmovdqa 32(%rdi), %ymm04533; AVX512DQ-BW-FCP-NEXT: vmovdqa 64(%rdi), %ymm34534; AVX512DQ-BW-FCP-NEXT: vmovdqa 128(%rdi), %ymm24535; AVX512DQ-BW-FCP-NEXT: vperm2i128 {{.*#+}} ymm1 = ymm3[2,3],mem[2,3]4536; AVX512DQ-BW-FCP-NEXT: vinserti128 $1, 96(%rdi), %ymm3, %ymm84537; AVX512DQ-BW-FCP-NEXT: movw $-28124, %r10w # imm = 0x92244538; AVX512DQ-BW-FCP-NEXT: kmovd %r10d, %k24539; AVX512DQ-BW-FCP-NEXT: vpblendmw %ymm1, %ymm8, %ymm6 {%k2}4540; AVX512DQ-BW-FCP-NEXT: movw $18724, %r10w # imm = 0x49244541; AVX512DQ-BW-FCP-NEXT: kmovd %r10d, %k14542; AVX512DQ-BW-FCP-NEXT: vpblendmw %ymm0, %ymm4, %ymm7 {%k1}4543; AVX512DQ-BW-FCP-NEXT: vpshufb {{.*#+}} xmm3 = xmm7[0,6,12],zero,zero,zero,xmm7[4,10],zero,zero,zero,xmm7[u,u,u,u,u]4544; AVX512DQ-BW-FCP-NEXT: vextracti128 $1, %ymm7, %xmm94545; AVX512DQ-BW-FCP-NEXT: vpshufb {{.*#+}} xmm5 = zero,zero,zero,xmm9[2,8,14],zero,zero,xmm9[0,6,12,u,u,u,u,u]4546; AVX512DQ-BW-FCP-NEXT: vpor %xmm3, %xmm5, %xmm54547; AVX512DQ-BW-FCP-NEXT: movl $4192256, %r10d # imm = 0x3FF8004548; AVX512DQ-BW-FCP-NEXT: kmovd %r10d, %k34549; AVX512DQ-BW-FCP-NEXT: vpshufb {{.*#+}} ymm5 {%k3} = ymm6[u,u,u,u,u,u,u,u,u,u,u,2,8,14,4,10,16,22,28,18,24,30,u,u,u,u,u,u,u,u,u,u]4550; AVX512DQ-BW-FCP-NEXT: vmovdqa 160(%rdi), %ymm34551; AVX512DQ-BW-FCP-NEXT: vpblendmw %ymm2, %ymm3, %ymm10 {%k1}4552; AVX512DQ-BW-FCP-NEXT: vextracti128 $1, %ymm10, %xmm114553; AVX512DQ-BW-FCP-NEXT: vpshufb {{.*#+}} xmm12 = xmm11[u,u,u,u,u,u],zero,zero,xmm11[0,6,12],zero,zero,zero,xmm11[4,10]4554; AVX512DQ-BW-FCP-NEXT: vpshufb {{.*#+}} xmm13 = xmm10[u,u,u,u,u,u,4,10],zero,zero,zero,xmm10[2,8,14],zero,zero4555; AVX512DQ-BW-FCP-NEXT: vpor %xmm12, %xmm13, %xmm124556; AVX512DQ-BW-FCP-NEXT: vinserti128 $1, %xmm12, %ymm0, %ymm124557; AVX512DQ-BW-FCP-NEXT: vpblendw {{.*#+}} ymm12 = ymm5[0,1,2],ymm12[3,4,5,6,7],ymm5[8,9,10],ymm12[11,12,13,14,15]4558; AVX512DQ-BW-FCP-NEXT: vpblendd {{.*#+}} ymm5 = ymm5[0,1,2,3],ymm12[4,5,6,7]4559; AVX512DQ-BW-FCP-NEXT: vpshufb {{.*#+}} xmm7 = xmm7[1,7,13],zero,zero,zero,xmm7[5,11],zero,zero,zero,xmm7[u,u,u,u,u]4560; AVX512DQ-BW-FCP-NEXT: vpshufb {{.*#+}} xmm9 = zero,zero,zero,xmm9[3,9,15],zero,zero,xmm9[1,7,13,u,u,u,u,u]4561; AVX512DQ-BW-FCP-NEXT: vpor %xmm7, %xmm9, %xmm74562; AVX512DQ-BW-FCP-NEXT: vpshufb {{.*#+}} ymm7 {%k3} = ymm6[u,u,u,u,u,u,u,u,u,u,u,3,9,15,5,11,17,23,29,19,25,31,u,u,u,u,u,u,u,u,u,u]4563; AVX512DQ-BW-FCP-NEXT: vpshufb {{.*#+}} xmm6 = xmm11[u,u,u,u,u,u],zero,zero,xmm11[1,7,13],zero,zero,zero,xmm11[5,11]4564; AVX512DQ-BW-FCP-NEXT: vpshufb {{.*#+}} xmm9 = xmm10[u,u,u,u,u,u,5,11],zero,zero,zero,xmm10[3,9,15],zero,zero4565; AVX512DQ-BW-FCP-NEXT: vpor %xmm6, %xmm9, %xmm64566; AVX512DQ-BW-FCP-NEXT: vinserti128 $1, %xmm6, %ymm0, %ymm64567; AVX512DQ-BW-FCP-NEXT: vpblendw {{.*#+}} ymm6 = ymm7[0,1,2],ymm6[3,4,5,6,7],ymm7[8,9,10],ymm6[11,12,13,14,15]4568; AVX512DQ-BW-FCP-NEXT: vpblendd {{.*#+}} ymm6 = ymm7[0,1,2,3],ymm6[4,5,6,7]4569; AVX512DQ-BW-FCP-NEXT: vpblendmw %ymm8, %ymm1, %ymm9 {%k2}4570; AVX512DQ-BW-FCP-NEXT: movw $9362, %di # imm = 0x24924571; AVX512DQ-BW-FCP-NEXT: kmovd %edi, %k34572; AVX512DQ-BW-FCP-NEXT: vpblendmw %ymm4, %ymm0, %ymm10 {%k3}4573; AVX512DQ-BW-FCP-NEXT: vextracti128 $1, %ymm10, %xmm114574; AVX512DQ-BW-FCP-NEXT: vpshufb {{.*#+}} xmm7 = zero,zero,zero,xmm11[4,10],zero,zero,zero,xmm11[2,8,14,u,u,u,u,u]4575; AVX512DQ-BW-FCP-NEXT: vpshufb {{.*#+}} xmm12 = xmm10[2,8,14],zero,zero,xmm10[0,6,12],zero,zero,zero,xmm10[u,u,u,u,u]4576; AVX512DQ-BW-FCP-NEXT: vpor %xmm7, %xmm12, %xmm74577; AVX512DQ-BW-FCP-NEXT: movl $2095104, %edi # imm = 0x1FF8004578; AVX512DQ-BW-FCP-NEXT: kmovd %edi, %k44579; AVX512DQ-BW-FCP-NEXT: vpshufb {{.*#+}} ymm7 {%k4} = ymm9[u,u,u,u,u,u,u,u,u,u,u,4,10,0,6,12,18,24,30,20,26,u,u,u,u,u,u,u,u,u,u,u]4580; AVX512DQ-BW-FCP-NEXT: vpblendmw %ymm3, %ymm2, %ymm12 {%k1}4581; AVX512DQ-BW-FCP-NEXT: vpshufb {{.*#+}} xmm13 = xmm12[u,u,u,u,u,0,6,12],zero,zero,zero,xmm12[4,10],zero,zero,zero4582; AVX512DQ-BW-FCP-NEXT: vextracti128 $1, %ymm12, %xmm144583; AVX512DQ-BW-FCP-NEXT: vpshufb {{.*#+}} xmm15 = xmm14[u,u,u,u,u],zero,zero,zero,xmm14[2,8,14],zero,zero,xmm14[0,6,12]4584; AVX512DQ-BW-FCP-NEXT: vpor %xmm13, %xmm15, %xmm134585; AVX512DQ-BW-FCP-NEXT: vinserti128 $1, %xmm13, %ymm0, %ymm134586; AVX512DQ-BW-FCP-NEXT: movl $-2097152, %edi # imm = 0xFFE000004587; AVX512DQ-BW-FCP-NEXT: kmovd %edi, %k24588; AVX512DQ-BW-FCP-NEXT: vmovdqu8 %ymm13, %ymm7 {%k2}4589; AVX512DQ-BW-FCP-NEXT: movw $9289, %di # imm = 0x24494590; AVX512DQ-BW-FCP-NEXT: kmovd %edi, %k54591; AVX512DQ-BW-FCP-NEXT: vmovdqu16 %ymm8, %ymm1 {%k5}4592; AVX512DQ-BW-FCP-NEXT: vpshufb {{.*#+}} xmm8 = zero,zero,zero,xmm11[5,11],zero,zero,zero,xmm11[3,9,15,u,u,u,u,u]4593; AVX512DQ-BW-FCP-NEXT: vpshufb {{.*#+}} xmm10 = xmm10[3,9,15],zero,zero,xmm10[1,7,13],zero,zero,zero,xmm10[u,u,u,u,u]4594; AVX512DQ-BW-FCP-NEXT: vpor %xmm8, %xmm10, %xmm84595; AVX512DQ-BW-FCP-NEXT: vpshufb {{.*#+}} ymm8 {%k4} = ymm9[u,u,u,u,u,u,u,u,u,u,u,5,11,1,7,13,19,25,31,21,27,u,u,u,u,u,u,u,u,u,u,u]4596; AVX512DQ-BW-FCP-NEXT: vpshufb {{.*#+}} xmm9 = xmm12[u,u,u,u,u,1,7,13],zero,zero,zero,xmm12[5,11],zero,zero,zero4597; AVX512DQ-BW-FCP-NEXT: vpshufb {{.*#+}} xmm10 = xmm14[u,u,u,u,u],zero,zero,zero,xmm14[3,9,15],zero,zero,xmm14[1,7,13]4598; AVX512DQ-BW-FCP-NEXT: vpor %xmm9, %xmm10, %xmm94599; AVX512DQ-BW-FCP-NEXT: vinserti128 $1, %xmm9, %ymm0, %ymm94600; AVX512DQ-BW-FCP-NEXT: vmovdqu8 %ymm9, %ymm8 {%k2}4601; AVX512DQ-BW-FCP-NEXT: vpshufb {{.*#+}} ymm9 = ymm1[u,u,u,u,u,u,u,u,u,u,0,6,12,2,8,14,20,26,16,22,28,u,u,u,u,u,u,u,u,u,u,u]4602; AVX512DQ-BW-FCP-NEXT: vmovdqu16 %ymm4, %ymm0 {%k1}4603; AVX512DQ-BW-FCP-NEXT: vextracti128 $1, %ymm0, %xmm44604; AVX512DQ-BW-FCP-NEXT: vpshufb {{.*#+}} xmm10 = zero,zero,xmm4[0,6,12],zero,zero,zero,xmm4[4,10,u,u,u,u,u,u]4605; AVX512DQ-BW-FCP-NEXT: vpshufb {{.*#+}} xmm11 = xmm0[4,10],zero,zero,zero,xmm0[2,8,14],zero,zero,xmm0[u,u,u,u,u,u]4606; AVX512DQ-BW-FCP-NEXT: vpor %xmm10, %xmm11, %xmm104607; AVX512DQ-BW-FCP-NEXT: vpblendw {{.*#+}} xmm10 = xmm10[0,1,2,3,4],xmm9[5,6,7]4608; AVX512DQ-BW-FCP-NEXT: vpblendd {{.*#+}} ymm9 = ymm10[0,1,2,3],ymm9[4,5,6,7]4609; AVX512DQ-BW-FCP-NEXT: vmovdqu16 %ymm2, %ymm3 {%k3}4610; AVX512DQ-BW-FCP-NEXT: vextracti128 $1, %ymm3, %xmm24611; AVX512DQ-BW-FCP-NEXT: vpshufb {{.*#+}} xmm10 = xmm2[u,u,u,u,u],zero,zero,zero,xmm2[4,10],zero,zero,zero,xmm2[2,8,14]4612; AVX512DQ-BW-FCP-NEXT: vpshufb {{.*#+}} xmm11 = xmm3[u,u,u,u,u,2,8,14],zero,zero,xmm3[0,6,12],zero,zero,zero4613; AVX512DQ-BW-FCP-NEXT: vpor %xmm10, %xmm11, %xmm104614; AVX512DQ-BW-FCP-NEXT: vinserti128 $1, %xmm10, %ymm0, %ymm104615; AVX512DQ-BW-FCP-NEXT: vmovdqu8 %ymm10, %ymm9 {%k2}4616; AVX512DQ-BW-FCP-NEXT: vpshufb {{.*#+}} ymm1 = ymm1[u,u,u,u,u,u,u,u,u,u,1,7,13,3,9,15,21,27,17,23,29,u,u,u,u,u,u,u,u,u,u,u]4617; AVX512DQ-BW-FCP-NEXT: vpshufb {{.*#+}} xmm4 = zero,zero,xmm4[1,7,13],zero,zero,zero,xmm4[5,11,u,u,u,u,u,u]4618; AVX512DQ-BW-FCP-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[5,11],zero,zero,zero,xmm0[3,9,15],zero,zero,xmm0[u,u,u,u,u,u]4619; AVX512DQ-BW-FCP-NEXT: vpor %xmm4, %xmm0, %xmm04620; AVX512DQ-BW-FCP-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2,3,4],xmm1[5,6,7]4621; AVX512DQ-BW-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]4622; AVX512DQ-BW-FCP-NEXT: vpshufb {{.*#+}} xmm1 = xmm2[u,u,u,u,u],zero,zero,zero,xmm2[5,11],zero,zero,zero,xmm2[3,9,15]4623; AVX512DQ-BW-FCP-NEXT: vpshufb {{.*#+}} xmm2 = xmm3[u,u,u,u,u,3,9,15],zero,zero,xmm3[1,7,13],zero,zero,zero4624; AVX512DQ-BW-FCP-NEXT: vpor %xmm1, %xmm2, %xmm14625; AVX512DQ-BW-FCP-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm14626; AVX512DQ-BW-FCP-NEXT: vmovdqu8 %ymm1, %ymm0 {%k2}4627; AVX512DQ-BW-FCP-NEXT: vmovdqa %ymm5, (%rsi)4628; AVX512DQ-BW-FCP-NEXT: vmovdqa %ymm6, (%rdx)4629; AVX512DQ-BW-FCP-NEXT: vmovdqa %ymm7, (%rcx)4630; AVX512DQ-BW-FCP-NEXT: vmovdqa %ymm8, (%r8)4631; AVX512DQ-BW-FCP-NEXT: vmovdqa %ymm9, (%r9)4632; AVX512DQ-BW-FCP-NEXT: vmovdqa %ymm0, (%rax)4633; AVX512DQ-BW-FCP-NEXT: vzeroupper4634; AVX512DQ-BW-FCP-NEXT: retq4635 %wide.vec = load <192 x i8>, ptr %in.vec, align 644636 %strided.vec0 = shufflevector <192 x i8> %wide.vec, <192 x i8> poison, <32 x i32> <i32 0, i32 6, i32 12, i32 18, i32 24, i32 30, i32 36, i32 42, i32 48, i32 54, i32 60, i32 66, i32 72, i32 78, i32 84, i32 90, i32 96, i32 102, i32 108, i32 114, i32 120, i32 126, i32 132, i32 138, i32 144, i32 150, i32 156, i32 162, i32 168, i32 174, i32 180, i32 186>4637 %strided.vec1 = shufflevector <192 x i8> %wide.vec, <192 x i8> poison, <32 x i32> <i32 1, i32 7, i32 13, i32 19, i32 25, i32 31, i32 37, i32 43, i32 49, i32 55, i32 61, i32 67, i32 73, i32 79, i32 85, i32 91, i32 97, i32 103, i32 109, i32 115, i32 121, i32 127, i32 133, i32 139, i32 145, i32 151, i32 157, i32 163, i32 169, i32 175, i32 181, i32 187>4638 %strided.vec2 = shufflevector <192 x i8> %wide.vec, <192 x i8> poison, <32 x i32> <i32 2, i32 8, i32 14, i32 20, i32 26, i32 32, i32 38, i32 44, i32 50, i32 56, i32 62, i32 68, i32 74, i32 80, i32 86, i32 92, i32 98, i32 104, i32 110, i32 116, i32 122, i32 128, i32 134, i32 140, i32 146, i32 152, i32 158, i32 164, i32 170, i32 176, i32 182, i32 188>4639 %strided.vec3 = shufflevector <192 x i8> %wide.vec, <192 x i8> poison, <32 x i32> <i32 3, i32 9, i32 15, i32 21, i32 27, i32 33, i32 39, i32 45, i32 51, i32 57, i32 63, i32 69, i32 75, i32 81, i32 87, i32 93, i32 99, i32 105, i32 111, i32 117, i32 123, i32 129, i32 135, i32 141, i32 147, i32 153, i32 159, i32 165, i32 171, i32 177, i32 183, i32 189>4640 %strided.vec4 = shufflevector <192 x i8> %wide.vec, <192 x i8> poison, <32 x i32> <i32 4, i32 10, i32 16, i32 22, i32 28, i32 34, i32 40, i32 46, i32 52, i32 58, i32 64, i32 70, i32 76, i32 82, i32 88, i32 94, i32 100, i32 106, i32 112, i32 118, i32 124, i32 130, i32 136, i32 142, i32 148, i32 154, i32 160, i32 166, i32 172, i32 178, i32 184, i32 190>4641 %strided.vec5 = shufflevector <192 x i8> %wide.vec, <192 x i8> poison, <32 x i32> <i32 5, i32 11, i32 17, i32 23, i32 29, i32 35, i32 41, i32 47, i32 53, i32 59, i32 65, i32 71, i32 77, i32 83, i32 89, i32 95, i32 101, i32 107, i32 113, i32 119, i32 125, i32 131, i32 137, i32 143, i32 149, i32 155, i32 161, i32 167, i32 173, i32 179, i32 185, i32 191>4642 store <32 x i8> %strided.vec0, ptr %out.vec0, align 644643 store <32 x i8> %strided.vec1, ptr %out.vec1, align 644644 store <32 x i8> %strided.vec2, ptr %out.vec2, align 644645 store <32 x i8> %strided.vec3, ptr %out.vec3, align 644646 store <32 x i8> %strided.vec4, ptr %out.vec4, align 644647 store <32 x i8> %strided.vec5, ptr %out.vec5, align 644648 ret void4649}4650 4651define void @load_i8_stride6_vf64(ptr %in.vec, ptr %out.vec0, ptr %out.vec1, ptr %out.vec2, ptr %out.vec3, ptr %out.vec4, ptr %out.vec5) nounwind {4652; SSE-LABEL: load_i8_stride6_vf64:4653; SSE: # %bb.0:4654; SSE-NEXT: subq $792, %rsp # imm = 0x3184655; SSE-NEXT: movdqa 64(%rdi), %xmm44656; SSE-NEXT: movdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4657; SSE-NEXT: movdqa 80(%rdi), %xmm54658; SSE-NEXT: movdqa %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4659; SSE-NEXT: movdqa (%rdi), %xmm74660; SSE-NEXT: movdqa %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4661; SSE-NEXT: movdqa 16(%rdi), %xmm64662; SSE-NEXT: movdqa %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4663; SSE-NEXT: movdqa 32(%rdi), %xmm24664; SSE-NEXT: movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4665; SSE-NEXT: movdqa 48(%rdi), %xmm04666; SSE-NEXT: movdqa {{.*#+}} xmm13 = [65535,65535,0,65535,65535,0,65535,65535]4667; SSE-NEXT: movdqa %xmm13, %xmm14668; SSE-NEXT: pandn %xmm2, %xmm14669; SSE-NEXT: movdqa {{.*#+}} xmm3 = [65535,0,65535,65535,0,65535,65535,0]4670; SSE-NEXT: movdqa %xmm3, %xmm24671; SSE-NEXT: pandn %xmm0, %xmm24672; SSE-NEXT: movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4673; SSE-NEXT: movdqa %xmm13, %xmm24674; SSE-NEXT: pandn %xmm0, %xmm24675; SSE-NEXT: movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4676; SSE-NEXT: pand %xmm13, %xmm04677; SSE-NEXT: por %xmm1, %xmm04678; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4679; SSE-NEXT: movdqa {{.*#+}} xmm10 = [255,255,255,255,255,255,255,255]4680; SSE-NEXT: pand %xmm10, %xmm04681; SSE-NEXT: pshuflw {{.*#+}} xmm1 = xmm0[0,3,2,3,4,5,6,7]4682; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[0,3,2,3]4683; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,1,2,1]4684; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,5,6,5]4685; SSE-NEXT: packuswb %xmm1, %xmm04686; SSE-NEXT: movdqa {{.*#+}} xmm8 = [65535,65535,65535,0,0,0,65535,65535]4687; SSE-NEXT: movdqa %xmm3, %xmm14688; SSE-NEXT: pandn %xmm6, %xmm14689; SSE-NEXT: movdqa %xmm7, %xmm24690; SSE-NEXT: pand %xmm3, %xmm24691; SSE-NEXT: por %xmm1, %xmm24692; SSE-NEXT: movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4693; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm2[0,2,1,3]4694; SSE-NEXT: pand %xmm10, %xmm14695; SSE-NEXT: pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,6,5,6,7]4696; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[0,2,1,3]4697; SSE-NEXT: pshuflw {{.*#+}} xmm1 = xmm1[0,3,2,1,4,5,6,7]4698; SSE-NEXT: pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,7,6,7]4699; SSE-NEXT: packuswb %xmm1, %xmm14700; SSE-NEXT: pand %xmm8, %xmm14701; SSE-NEXT: movdqa %xmm8, %xmm24702; SSE-NEXT: pandn %xmm0, %xmm24703; SSE-NEXT: por %xmm2, %xmm14704; SSE-NEXT: movdqa %xmm13, %xmm04705; SSE-NEXT: pandn %xmm5, %xmm04706; SSE-NEXT: pand %xmm13, %xmm44707; SSE-NEXT: por %xmm0, %xmm44708; SSE-NEXT: movdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4709; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm4[3,1,2,0]4710; SSE-NEXT: pand %xmm10, %xmm04711; SSE-NEXT: pshuflw {{.*#+}} xmm0 = xmm0[2,1,2,3,4,5,6,7]4712; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,3,2,0]4713; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,7,6,5]4714; SSE-NEXT: packuswb %xmm0, %xmm04715; SSE-NEXT: movdqa {{.*#+}} xmm4 = [255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0]4716; SSE-NEXT: movdqa %xmm4, %xmm24717; SSE-NEXT: pandn %xmm0, %xmm24718; SSE-NEXT: pand %xmm4, %xmm14719; SSE-NEXT: por %xmm1, %xmm24720; SSE-NEXT: movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4721; SSE-NEXT: movdqa 320(%rdi), %xmm14722; SSE-NEXT: movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4723; SSE-NEXT: movdqa %xmm13, %xmm04724; SSE-NEXT: pandn %xmm1, %xmm04725; SSE-NEXT: movdqa 336(%rdi), %xmm124726; SSE-NEXT: movdqa %xmm3, %xmm14727; SSE-NEXT: pandn %xmm12, %xmm14728; SSE-NEXT: movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4729; SSE-NEXT: movdqa %xmm13, %xmm14730; SSE-NEXT: pandn %xmm12, %xmm14731; SSE-NEXT: movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4732; SSE-NEXT: pand %xmm13, %xmm124733; SSE-NEXT: por %xmm0, %xmm124734; SSE-NEXT: movdqa %xmm12, %xmm04735; SSE-NEXT: pand %xmm10, %xmm04736; SSE-NEXT: pshuflw {{.*#+}} xmm1 = xmm0[0,3,2,3,4,5,6,7]4737; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[0,3,2,3]4738; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,1,2,1]4739; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,5,6,5]4740; SSE-NEXT: packuswb %xmm1, %xmm04741; SSE-NEXT: movdqa %xmm8, %xmm14742; SSE-NEXT: pandn %xmm0, %xmm14743; SSE-NEXT: movdqa 304(%rdi), %xmm24744; SSE-NEXT: movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4745; SSE-NEXT: movdqa %xmm3, %xmm74746; SSE-NEXT: movdqa %xmm3, %xmm04747; SSE-NEXT: pandn %xmm2, %xmm04748; SSE-NEXT: movdqa 288(%rdi), %xmm64749; SSE-NEXT: movdqa %xmm6, %xmm24750; SSE-NEXT: pand %xmm3, %xmm24751; SSE-NEXT: por %xmm0, %xmm24752; SSE-NEXT: movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4753; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm2[0,2,1,3]4754; SSE-NEXT: pand %xmm10, %xmm04755; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,6,5,6,7]4756; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,2,1,3]4757; SSE-NEXT: pshuflw {{.*#+}} xmm0 = xmm0[0,3,2,1,4,5,6,7]4758; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,7,6,7]4759; SSE-NEXT: packuswb %xmm0, %xmm04760; SSE-NEXT: pand %xmm8, %xmm04761; SSE-NEXT: por %xmm1, %xmm04762; SSE-NEXT: movdqa 368(%rdi), %xmm14763; SSE-NEXT: movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4764; SSE-NEXT: movdqa %xmm13, %xmm24765; SSE-NEXT: pandn %xmm1, %xmm24766; SSE-NEXT: movdqa 352(%rdi), %xmm34767; SSE-NEXT: movdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4768; SSE-NEXT: pand %xmm13, %xmm34769; SSE-NEXT: por %xmm2, %xmm34770; SSE-NEXT: movdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4771; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm3[3,1,2,0]4772; SSE-NEXT: pand %xmm10, %xmm24773; SSE-NEXT: pshuflw {{.*#+}} xmm2 = xmm2[2,1,2,3,4,5,6,7]4774; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm2[0,3,2,0]4775; SSE-NEXT: pshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,7,6,5]4776; SSE-NEXT: packuswb %xmm2, %xmm24777; SSE-NEXT: movdqa %xmm4, %xmm34778; SSE-NEXT: pandn %xmm2, %xmm34779; SSE-NEXT: pand %xmm4, %xmm04780; SSE-NEXT: movdqa %xmm4, %xmm94781; SSE-NEXT: por %xmm0, %xmm34782; SSE-NEXT: movdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4783; SSE-NEXT: movdqa 224(%rdi), %xmm14784; SSE-NEXT: movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4785; SSE-NEXT: movdqa %xmm13, %xmm04786; SSE-NEXT: pandn %xmm1, %xmm04787; SSE-NEXT: movdqa 240(%rdi), %xmm114788; SSE-NEXT: movdqa %xmm7, %xmm24789; SSE-NEXT: pandn %xmm11, %xmm24790; SSE-NEXT: movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4791; SSE-NEXT: movdqa %xmm13, %xmm24792; SSE-NEXT: pandn %xmm11, %xmm24793; SSE-NEXT: movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4794; SSE-NEXT: pand %xmm13, %xmm114795; SSE-NEXT: por %xmm0, %xmm114796; SSE-NEXT: movdqa %xmm11, %xmm04797; SSE-NEXT: pand %xmm10, %xmm04798; SSE-NEXT: pshuflw {{.*#+}} xmm2 = xmm0[0,3,2,3,4,5,6,7]4799; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm2[0,3,2,3]4800; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,1,2,1]4801; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,5,6,5]4802; SSE-NEXT: packuswb %xmm2, %xmm04803; SSE-NEXT: movdqa %xmm8, %xmm24804; SSE-NEXT: pandn %xmm0, %xmm24805; SSE-NEXT: movdqa 208(%rdi), %xmm14806; SSE-NEXT: movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4807; SSE-NEXT: movdqa %xmm7, %xmm04808; SSE-NEXT: pandn %xmm1, %xmm04809; SSE-NEXT: movdqa 192(%rdi), %xmm34810; SSE-NEXT: movdqa %xmm3, %xmm14811; SSE-NEXT: pand %xmm7, %xmm14812; SSE-NEXT: por %xmm0, %xmm14813; SSE-NEXT: movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4814; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm1[0,2,1,3]4815; SSE-NEXT: movdqa %xmm10, %xmm14816; SSE-NEXT: pand %xmm10, %xmm04817; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,6,5,6,7]4818; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,2,1,3]4819; SSE-NEXT: pshuflw {{.*#+}} xmm0 = xmm0[0,3,2,1,4,5,6,7]4820; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,7,6,7]4821; SSE-NEXT: packuswb %xmm0, %xmm04822; SSE-NEXT: pand %xmm8, %xmm04823; SSE-NEXT: movdqa %xmm8, %xmm104824; SSE-NEXT: por %xmm2, %xmm04825; SSE-NEXT: movdqa 272(%rdi), %xmm144826; SSE-NEXT: movdqa %xmm13, %xmm24827; SSE-NEXT: pandn %xmm14, %xmm24828; SSE-NEXT: movdqa 256(%rdi), %xmm154829; SSE-NEXT: movdqa %xmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4830; SSE-NEXT: pand %xmm13, %xmm154831; SSE-NEXT: por %xmm2, %xmm154832; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm15[3,1,2,0]4833; SSE-NEXT: pand %xmm1, %xmm24834; SSE-NEXT: pshuflw {{.*#+}} xmm2 = xmm2[2,1,2,3,4,5,6,7]4835; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm2[0,3,2,0]4836; SSE-NEXT: pshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,7,6,5]4837; SSE-NEXT: packuswb %xmm2, %xmm24838; SSE-NEXT: pandn %xmm2, %xmm44839; SSE-NEXT: pand %xmm9, %xmm04840; SSE-NEXT: por %xmm0, %xmm44841; SSE-NEXT: movdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4842; SSE-NEXT: movdqa 128(%rdi), %xmm24843; SSE-NEXT: movdqa %xmm2, (%rsp) # 16-byte Spill4844; SSE-NEXT: movdqa %xmm13, %xmm04845; SSE-NEXT: pandn %xmm2, %xmm04846; SSE-NEXT: movdqa 144(%rdi), %xmm94847; SSE-NEXT: movdqa %xmm7, %xmm44848; SSE-NEXT: pandn %xmm9, %xmm44849; SSE-NEXT: movdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4850; SSE-NEXT: movdqa %xmm13, %xmm44851; SSE-NEXT: pandn %xmm9, %xmm44852; SSE-NEXT: movdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4853; SSE-NEXT: pand %xmm13, %xmm94854; SSE-NEXT: por %xmm0, %xmm94855; SSE-NEXT: movdqa %xmm9, %xmm04856; SSE-NEXT: pand %xmm1, %xmm04857; SSE-NEXT: pshuflw {{.*#+}} xmm5 = xmm0[0,3,2,3,4,5,6,7]4858; SSE-NEXT: pshufd {{.*#+}} xmm5 = xmm5[0,3,2,3]4859; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,1,2,1]4860; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,5,6,5]4861; SSE-NEXT: packuswb %xmm5, %xmm04862; SSE-NEXT: pandn %xmm0, %xmm104863; SSE-NEXT: movdqa %xmm13, %xmm04864; SSE-NEXT: movdqa %xmm13, %xmm24865; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload4866; SSE-NEXT: pandn %xmm1, %xmm24867; SSE-NEXT: movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4868; SSE-NEXT: movdqa %xmm13, %xmm24869; SSE-NEXT: pandn %xmm6, %xmm24870; SSE-NEXT: movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4871; SSE-NEXT: movdqa %xmm6, %xmm54872; SSE-NEXT: movdqa %xmm13, %xmm24873; SSE-NEXT: pandn %xmm3, %xmm24874; SSE-NEXT: movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4875; SSE-NEXT: movdqa %xmm3, %xmm44876; SSE-NEXT: movdqa 112(%rdi), %xmm64877; SSE-NEXT: movdqa %xmm7, %xmm24878; SSE-NEXT: movdqa %xmm7, %xmm84879; SSE-NEXT: pandn %xmm6, %xmm84880; SSE-NEXT: movdqa 160(%rdi), %xmm74881; SSE-NEXT: movdqa %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4882; SSE-NEXT: pand %xmm13, %xmm74883; SSE-NEXT: movdqa %xmm13, %xmm34884; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload4885; SSE-NEXT: pandn %xmm13, %xmm34886; SSE-NEXT: movdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4887; SSE-NEXT: pand %xmm0, %xmm14888; SSE-NEXT: movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4889; SSE-NEXT: movdqa %xmm2, %xmm34890; SSE-NEXT: movdqa %xmm2, %xmm14891; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload4892; SSE-NEXT: pandn %xmm2, %xmm34893; SSE-NEXT: movdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4894; SSE-NEXT: pand %xmm0, %xmm24895; SSE-NEXT: movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4896; SSE-NEXT: movdqa %xmm0, %xmm24897; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload4898; SSE-NEXT: pandn %xmm3, %xmm24899; SSE-NEXT: movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4900; SSE-NEXT: pand %xmm0, %xmm54901; SSE-NEXT: movdqa %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4902; SSE-NEXT: movdqa %xmm1, %xmm54903; SSE-NEXT: movdqa %xmm1, %xmm24904; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload4905; SSE-NEXT: pandn %xmm1, %xmm24906; SSE-NEXT: movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4907; SSE-NEXT: pand %xmm0, %xmm14908; SSE-NEXT: movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4909; SSE-NEXT: movdqa %xmm0, %xmm24910; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload4911; SSE-NEXT: pandn %xmm1, %xmm24912; SSE-NEXT: movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4913; SSE-NEXT: pand %xmm0, %xmm44914; SSE-NEXT: movdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4915; SSE-NEXT: pandn %xmm14, %xmm54916; SSE-NEXT: movdqa %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4917; SSE-NEXT: pand %xmm0, %xmm144918; SSE-NEXT: movdqa %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4919; SSE-NEXT: movdqa %xmm0, %xmm24920; SSE-NEXT: pandn %xmm6, %xmm24921; SSE-NEXT: movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4922; SSE-NEXT: movdqa 96(%rdi), %xmm44923; SSE-NEXT: movdqa %xmm4, %xmm24924; SSE-NEXT: pand %xmm0, %xmm24925; SSE-NEXT: movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4926; SSE-NEXT: movdqa 176(%rdi), %xmm144927; SSE-NEXT: movdqa %xmm14, %xmm24928; SSE-NEXT: movdqa %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4929; SSE-NEXT: pand %xmm0, %xmm24930; SSE-NEXT: movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4931; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload4932; SSE-NEXT: movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4933; SSE-NEXT: pand %xmm0, %xmm24934; SSE-NEXT: movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4935; SSE-NEXT: pand %xmm0, %xmm134936; SSE-NEXT: movdqa %xmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4937; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload4938; SSE-NEXT: movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4939; SSE-NEXT: pand %xmm0, %xmm24940; SSE-NEXT: movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4941; SSE-NEXT: pand %xmm0, %xmm34942; SSE-NEXT: movdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4943; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload4944; SSE-NEXT: movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4945; SSE-NEXT: pand %xmm0, %xmm24946; SSE-NEXT: movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4947; SSE-NEXT: pand %xmm0, %xmm14948; SSE-NEXT: movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4949; SSE-NEXT: movdqa (%rsp), %xmm1 # 16-byte Reload4950; SSE-NEXT: movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4951; SSE-NEXT: pand %xmm0, %xmm14952; SSE-NEXT: movdqa %xmm1, (%rsp) # 16-byte Spill4953; SSE-NEXT: movdqa %xmm0, %xmm14954; SSE-NEXT: pand %xmm0, %xmm64955; SSE-NEXT: movdqa %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4956; SSE-NEXT: movdqa %xmm0, %xmm134957; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4958; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4959; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4960; SSE-NEXT: pandn %xmm4, %xmm14961; SSE-NEXT: movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4962; SSE-NEXT: movdqa %xmm4, %xmm34963; SSE-NEXT: pand {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm34964; SSE-NEXT: por %xmm8, %xmm34965; SSE-NEXT: pshufd {{.*#+}} xmm5 = xmm3[0,2,1,3]4966; SSE-NEXT: movdqa {{.*#+}} xmm1 = [255,255,255,255,255,255,255,255]4967; SSE-NEXT: pand %xmm1, %xmm54968; SSE-NEXT: pshufhw {{.*#+}} xmm5 = xmm5[0,1,2,3,6,5,6,7]4969; SSE-NEXT: pshufd {{.*#+}} xmm5 = xmm5[0,2,1,3]4970; SSE-NEXT: pshuflw {{.*#+}} xmm5 = xmm5[0,3,2,1,4,5,6,7]4971; SSE-NEXT: pshufhw {{.*#+}} xmm5 = xmm5[0,1,2,3,4,7,6,7]4972; SSE-NEXT: packuswb %xmm5, %xmm54973; SSE-NEXT: movdqa {{.*#+}} xmm8 = [65535,65535,65535,0,0,0,65535,65535]4974; SSE-NEXT: pand %xmm8, %xmm54975; SSE-NEXT: por %xmm10, %xmm54976; SSE-NEXT: pandn %xmm14, %xmm04977; SSE-NEXT: por %xmm0, %xmm74978; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm7[3,1,2,0]4979; SSE-NEXT: pand %xmm1, %xmm04980; SSE-NEXT: pshuflw {{.*#+}} xmm0 = xmm0[2,1,2,3,4,5,6,7]4981; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,3,2,0]4982; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,7,6,5]4983; SSE-NEXT: packuswb %xmm0, %xmm04984; SSE-NEXT: movdqa {{.*#+}} xmm10 = [255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0]4985; SSE-NEXT: movdqa %xmm10, %xmm14986; SSE-NEXT: pandn %xmm0, %xmm14987; SSE-NEXT: pand %xmm10, %xmm54988; SSE-NEXT: por %xmm5, %xmm14989; SSE-NEXT: movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4990; SSE-NEXT: pxor %xmm5, %xmm54991; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload4992; SSE-NEXT: movdqa %xmm1, %xmm04993; SSE-NEXT: punpckhbw {{.*#+}} xmm0 = xmm0[8],xmm5[8],xmm0[9],xmm5[9],xmm0[10],xmm5[10],xmm0[11],xmm5[11],xmm0[12],xmm5[12],xmm0[13],xmm5[13],xmm0[14],xmm5[14],xmm0[15],xmm5[15]4994; SSE-NEXT: punpcklbw {{.*#+}} xmm1 = 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]4995; SSE-NEXT: pshufd {{.*#+}} xmm4 = xmm1[2,2,3,3]4996; SSE-NEXT: punpcklwd {{.*#+}} xmm4 = xmm4[0],xmm0[0],xmm4[1],xmm0[1],xmm4[2],xmm0[2],xmm4[3],xmm0[3]4997; SSE-NEXT: psrld $16, %xmm04998; SSE-NEXT: pshufd {{.*#+}} xmm14 = xmm1[0,1,0,3]4999; SSE-NEXT: pshufhw {{.*#+}} xmm14 = xmm14[0,1,2,3,5,7,6,7]5000; SSE-NEXT: punpckhdq {{.*#+}} xmm14 = xmm14[2],xmm0[2],xmm14[3],xmm0[3]5001; SSE-NEXT: packuswb %xmm14, %xmm45002; SSE-NEXT: movdqa %xmm8, %xmm15003; SSE-NEXT: pandn %xmm4, %xmm15004; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload5005; SSE-NEXT: movdqa %xmm2, %xmm45006; SSE-NEXT: punpckhbw {{.*#+}} xmm4 = 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]5007; SSE-NEXT: pshufd {{.*#+}} xmm4 = xmm4[2,1,0,3]5008; SSE-NEXT: pshuflw {{.*#+}} xmm4 = xmm4[1,1,1,1,4,5,6,7]5009; SSE-NEXT: pshufhw {{.*#+}} xmm4 = xmm4[0,1,2,3,5,7,6,7]5010; SSE-NEXT: movdqa {{.*#+}} xmm0 = [65535,65535,0,65535,0,0,65535,65535]5011; SSE-NEXT: movdqa %xmm0, %xmm145012; SSE-NEXT: pandn %xmm4, %xmm145013; 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]5014; SSE-NEXT: pshuflw {{.*#+}} xmm4 = xmm2[3,1,2,3,4,5,6,7]5015; SSE-NEXT: pshufd {{.*#+}} xmm4 = xmm4[0,3,2,3]5016; SSE-NEXT: pshuflw {{.*#+}} xmm4 = xmm4[1,3,2,0,4,5,6,7]5017; SSE-NEXT: pand %xmm0, %xmm45018; SSE-NEXT: por %xmm14, %xmm45019; SSE-NEXT: packuswb %xmm4, %xmm45020; SSE-NEXT: pand %xmm8, %xmm45021; SSE-NEXT: por %xmm1, %xmm45022; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload5023; SSE-NEXT: movdqa %xmm6, %xmm15024; SSE-NEXT: punpcklbw {{.*#+}} xmm1 = 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]5025; SSE-NEXT: pshufhw {{.*#+}} xmm14 = xmm1[0,1,2,3,5,5,5,5]5026; SSE-NEXT: movdqa {{.*#+}} xmm2 = [65535,65535,65535,0,65535,65535,0,65535]5027; SSE-NEXT: movdqa %xmm2, %xmm15028; SSE-NEXT: pandn %xmm14, %xmm15029; SSE-NEXT: punpckhbw {{.*#+}} xmm6 = 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]5030; SSE-NEXT: pshuflw {{.*#+}} xmm14 = xmm6[3,1,2,3,4,5,6,7]5031; SSE-NEXT: pshufd {{.*#+}} xmm14 = xmm14[0,1,0,3]5032; SSE-NEXT: pshufhw {{.*#+}} xmm14 = xmm14[0,1,2,3,5,7,6,4]5033; SSE-NEXT: pand %xmm2, %xmm145034; SSE-NEXT: por %xmm1, %xmm145035; SSE-NEXT: packuswb %xmm14, %xmm15036; SSE-NEXT: movdqa %xmm10, %xmm145037; SSE-NEXT: pandn %xmm1, %xmm145038; SSE-NEXT: pand %xmm10, %xmm45039; SSE-NEXT: por %xmm4, %xmm145040; SSE-NEXT: movdqa %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5041; SSE-NEXT: movdqa %xmm12, %xmm15042; SSE-NEXT: punpckhbw {{.*#+}} xmm1 = xmm1[8],xmm5[8],xmm1[9],xmm5[9],xmm1[10],xmm5[10],xmm1[11],xmm5[11],xmm1[12],xmm5[12],xmm1[13],xmm5[13],xmm1[14],xmm5[14],xmm1[15],xmm5[15]5043; SSE-NEXT: punpcklbw {{.*#+}} xmm12 = xmm12[0],xmm5[0],xmm12[1],xmm5[1],xmm12[2],xmm5[2],xmm12[3],xmm5[3],xmm12[4],xmm5[4],xmm12[5],xmm5[5],xmm12[6],xmm5[6],xmm12[7],xmm5[7]5044; SSE-NEXT: pshufd {{.*#+}} xmm4 = xmm12[2,2,3,3]5045; SSE-NEXT: punpcklwd {{.*#+}} xmm4 = xmm4[0],xmm1[0],xmm4[1],xmm1[1],xmm4[2],xmm1[2],xmm4[3],xmm1[3]5046; SSE-NEXT: psrld $16, %xmm15047; SSE-NEXT: pshufd {{.*#+}} xmm12 = xmm12[0,1,0,3]5048; SSE-NEXT: pshufhw {{.*#+}} xmm12 = xmm12[0,1,2,3,5,7,6,7]5049; SSE-NEXT: punpckhdq {{.*#+}} xmm12 = xmm12[2],xmm1[2],xmm12[3],xmm1[3]5050; SSE-NEXT: packuswb %xmm12, %xmm45051; SSE-NEXT: movdqa %xmm8, %xmm145052; SSE-NEXT: movdqa %xmm8, %xmm15053; SSE-NEXT: pandn %xmm4, %xmm15054; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload5055; SSE-NEXT: movdqa %xmm6, %xmm45056; SSE-NEXT: punpckhbw {{.*#+}} xmm4 = 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]5057; SSE-NEXT: pshufd {{.*#+}} xmm4 = xmm4[2,1,0,3]5058; SSE-NEXT: pshuflw {{.*#+}} xmm4 = xmm4[1,1,1,1,4,5,6,7]5059; SSE-NEXT: pshufhw {{.*#+}} xmm4 = xmm4[0,1,2,3,5,7,6,7]5060; SSE-NEXT: movdqa %xmm0, %xmm125061; SSE-NEXT: pandn %xmm4, %xmm125062; SSE-NEXT: punpcklbw {{.*#+}} xmm6 = 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]5063; SSE-NEXT: pshuflw {{.*#+}} xmm4 = xmm6[3,1,2,3,4,5,6,7]5064; SSE-NEXT: pshufd {{.*#+}} xmm4 = xmm4[0,3,2,3]5065; SSE-NEXT: pshuflw {{.*#+}} xmm4 = xmm4[1,3,2,0,4,5,6,7]5066; SSE-NEXT: pand %xmm0, %xmm45067; SSE-NEXT: por %xmm12, %xmm45068; SSE-NEXT: packuswb %xmm4, %xmm45069; SSE-NEXT: pand %xmm8, %xmm45070; SSE-NEXT: por %xmm1, %xmm45071; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload5072; SSE-NEXT: movdqa %xmm6, %xmm15073; SSE-NEXT: punpcklbw {{.*#+}} xmm1 = 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]5074; SSE-NEXT: pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,5,5,5,5]5075; SSE-NEXT: movdqa %xmm2, %xmm125076; SSE-NEXT: pandn %xmm1, %xmm125077; SSE-NEXT: punpckhbw {{.*#+}} xmm6 = 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]5078; SSE-NEXT: pshuflw {{.*#+}} xmm1 = xmm6[3,1,2,3,4,5,6,7]5079; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[0,1,0,3]5080; SSE-NEXT: pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,5,7,6,4]5081; SSE-NEXT: pand %xmm2, %xmm15082; SSE-NEXT: por %xmm12, %xmm15083; SSE-NEXT: packuswb %xmm1, %xmm15084; SSE-NEXT: movdqa %xmm10, %xmm125085; SSE-NEXT: pandn %xmm1, %xmm125086; SSE-NEXT: pand %xmm10, %xmm45087; SSE-NEXT: por %xmm4, %xmm125088; SSE-NEXT: movdqa %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5089; SSE-NEXT: movdqa %xmm11, %xmm15090; SSE-NEXT: punpckhbw {{.*#+}} xmm1 = xmm1[8],xmm5[8],xmm1[9],xmm5[9],xmm1[10],xmm5[10],xmm1[11],xmm5[11],xmm1[12],xmm5[12],xmm1[13],xmm5[13],xmm1[14],xmm5[14],xmm1[15],xmm5[15]5091; SSE-NEXT: punpcklbw {{.*#+}} xmm11 = xmm11[0],xmm5[0],xmm11[1],xmm5[1],xmm11[2],xmm5[2],xmm11[3],xmm5[3],xmm11[4],xmm5[4],xmm11[5],xmm5[5],xmm11[6],xmm5[6],xmm11[7],xmm5[7]5092; SSE-NEXT: pshufd {{.*#+}} xmm4 = xmm11[2,2,3,3]5093; SSE-NEXT: punpcklwd {{.*#+}} xmm4 = xmm4[0],xmm1[0],xmm4[1],xmm1[1],xmm4[2],xmm1[2],xmm4[3],xmm1[3]5094; SSE-NEXT: psrld $16, %xmm15095; SSE-NEXT: pshufd {{.*#+}} xmm8 = xmm11[0,1,0,3]5096; SSE-NEXT: pshufhw {{.*#+}} xmm8 = xmm8[0,1,2,3,5,7,6,7]5097; SSE-NEXT: punpckhdq {{.*#+}} xmm8 = xmm8[2],xmm1[2],xmm8[3],xmm1[3]5098; SSE-NEXT: packuswb %xmm8, %xmm45099; SSE-NEXT: movdqa %xmm14, %xmm15100; SSE-NEXT: pandn %xmm4, %xmm15101; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload5102; SSE-NEXT: movdqa %xmm6, %xmm45103; SSE-NEXT: punpckhbw {{.*#+}} xmm4 = 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]5104; SSE-NEXT: pshufd {{.*#+}} xmm4 = xmm4[2,1,0,3]5105; SSE-NEXT: pshuflw {{.*#+}} xmm4 = xmm4[1,1,1,1,4,5,6,7]5106; SSE-NEXT: pshufhw {{.*#+}} xmm4 = xmm4[0,1,2,3,5,7,6,7]5107; SSE-NEXT: movdqa %xmm0, %xmm85108; SSE-NEXT: pandn %xmm4, %xmm85109; SSE-NEXT: punpcklbw {{.*#+}} xmm6 = 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]5110; SSE-NEXT: pshuflw {{.*#+}} xmm4 = xmm6[3,1,2,3,4,5,6,7]5111; SSE-NEXT: pshufd {{.*#+}} xmm4 = xmm4[0,3,2,3]5112; SSE-NEXT: pshuflw {{.*#+}} xmm4 = xmm4[1,3,2,0,4,5,6,7]5113; SSE-NEXT: pand %xmm0, %xmm45114; SSE-NEXT: por %xmm8, %xmm45115; SSE-NEXT: packuswb %xmm4, %xmm45116; SSE-NEXT: pand %xmm14, %xmm45117; SSE-NEXT: por %xmm1, %xmm45118; SSE-NEXT: movdqa %xmm15, %xmm15119; SSE-NEXT: punpcklbw {{.*#+}} xmm1 = 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]5120; SSE-NEXT: pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,5,5,5,5]5121; SSE-NEXT: movdqa %xmm2, %xmm85122; SSE-NEXT: pandn %xmm1, %xmm85123; SSE-NEXT: punpckhbw {{.*#+}} xmm15 = xmm15[8],xmm5[8],xmm15[9],xmm5[9],xmm15[10],xmm5[10],xmm15[11],xmm5[11],xmm15[12],xmm5[12],xmm15[13],xmm5[13],xmm15[14],xmm5[14],xmm15[15],xmm5[15]5124; SSE-NEXT: pshuflw {{.*#+}} xmm1 = xmm15[3,1,2,3,4,5,6,7]5125; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[0,1,0,3]5126; SSE-NEXT: pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,5,7,6,4]5127; SSE-NEXT: pand %xmm2, %xmm15128; SSE-NEXT: por %xmm8, %xmm15129; SSE-NEXT: packuswb %xmm1, %xmm15130; SSE-NEXT: movdqa %xmm10, %xmm85131; SSE-NEXT: pandn %xmm1, %xmm85132; SSE-NEXT: pand %xmm10, %xmm45133; SSE-NEXT: por %xmm4, %xmm85134; SSE-NEXT: movdqa %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5135; SSE-NEXT: movdqa %xmm9, %xmm15136; SSE-NEXT: punpckhbw {{.*#+}} xmm1 = xmm1[8],xmm5[8],xmm1[9],xmm5[9],xmm1[10],xmm5[10],xmm1[11],xmm5[11],xmm1[12],xmm5[12],xmm1[13],xmm5[13],xmm1[14],xmm5[14],xmm1[15],xmm5[15]5137; SSE-NEXT: punpcklbw {{.*#+}} xmm9 = xmm9[0],xmm5[0],xmm9[1],xmm5[1],xmm9[2],xmm5[2],xmm9[3],xmm5[3],xmm9[4],xmm5[4],xmm9[5],xmm5[5],xmm9[6],xmm5[6],xmm9[7],xmm5[7]5138; SSE-NEXT: pshufd {{.*#+}} xmm4 = xmm9[2,2,3,3]5139; SSE-NEXT: punpcklwd {{.*#+}} xmm4 = xmm4[0],xmm1[0],xmm4[1],xmm1[1],xmm4[2],xmm1[2],xmm4[3],xmm1[3]5140; SSE-NEXT: psrld $16, %xmm15141; SSE-NEXT: pshufd {{.*#+}} xmm6 = xmm9[0,1,0,3]5142; SSE-NEXT: pshufhw {{.*#+}} xmm6 = xmm6[0,1,2,3,5,7,6,7]5143; SSE-NEXT: punpckhdq {{.*#+}} xmm6 = xmm6[2],xmm1[2],xmm6[3],xmm1[3]5144; SSE-NEXT: packuswb %xmm6, %xmm45145; SSE-NEXT: movdqa %xmm3, %xmm15146; SSE-NEXT: punpckhbw {{.*#+}} xmm1 = xmm1[8],xmm5[8],xmm1[9],xmm5[9],xmm1[10],xmm5[10],xmm1[11],xmm5[11],xmm1[12],xmm5[12],xmm1[13],xmm5[13],xmm1[14],xmm5[14],xmm1[15],xmm5[15]5147; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[2,1,0,3]5148; SSE-NEXT: pshuflw {{.*#+}} xmm1 = xmm1[1,1,1,1,4,5,6,7]5149; SSE-NEXT: pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,5,7,6,7]5150; SSE-NEXT: punpcklbw {{.*#+}} 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]5151; SSE-NEXT: pshuflw {{.*#+}} xmm3 = xmm3[3,1,2,3,4,5,6,7]5152; SSE-NEXT: pshufd {{.*#+}} xmm3 = xmm3[0,3,2,3]5153; SSE-NEXT: pshuflw {{.*#+}} xmm3 = xmm3[1,3,2,0,4,5,6,7]5154; SSE-NEXT: pand %xmm0, %xmm35155; SSE-NEXT: pandn %xmm1, %xmm05156; SSE-NEXT: por %xmm3, %xmm05157; SSE-NEXT: packuswb %xmm0, %xmm05158; SSE-NEXT: movdqa %xmm14, %xmm15159; SSE-NEXT: pand %xmm14, %xmm05160; SSE-NEXT: pandn %xmm4, %xmm15161; SSE-NEXT: por %xmm1, %xmm05162; SSE-NEXT: movdqa %xmm7, %xmm15163; SSE-NEXT: punpcklbw {{.*#+}} xmm1 = 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]5164; SSE-NEXT: pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,5,5,5,5]5165; SSE-NEXT: punpckhbw {{.*#+}} xmm7 = 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]5166; SSE-NEXT: pshuflw {{.*#+}} xmm3 = xmm7[3,1,2,3,4,5,6,7]5167; SSE-NEXT: pshufd {{.*#+}} xmm3 = xmm3[0,1,0,3]5168; SSE-NEXT: pshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,5,7,6,4]5169; SSE-NEXT: pand %xmm2, %xmm35170; SSE-NEXT: pandn %xmm1, %xmm25171; SSE-NEXT: por %xmm3, %xmm25172; SSE-NEXT: packuswb %xmm2, %xmm15173; SSE-NEXT: movdqa %xmm10, %xmm25174; SSE-NEXT: pandn %xmm1, %xmm25175; SSE-NEXT: pand %xmm10, %xmm05176; SSE-NEXT: por %xmm0, %xmm25177; SSE-NEXT: movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5178; SSE-NEXT: movdqa {{.*#+}} xmm7 = [65535,0,65535,65535,0,65535,65535,0]5179; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload5180; SSE-NEXT: pand %xmm7, %xmm45181; SSE-NEXT: por {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload5182; SSE-NEXT: movdqa %xmm4, %xmm05183; SSE-NEXT: movdqa {{.*#+}} xmm12 = [255,255,255,255,255,255,255,255]5184; SSE-NEXT: pand %xmm12, %xmm05185; SSE-NEXT: pshufhw {{.*#+}} xmm1 = xmm0[0,1,2,3,4,7,6,7]5186; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[0,2,2,3]5187; SSE-NEXT: pshuflw {{.*#+}} xmm1 = xmm1[1,2,3,3,4,5,6,7]5188; SSE-NEXT: pshuflw {{.*#+}} xmm0 = xmm0[0,3,2,3,4,5,6,7]5189; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,1,0,3]5190; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,4,5,6]5191; SSE-NEXT: packuswb %xmm1, %xmm05192; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload5193; SSE-NEXT: por {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Folded Reload5194; SSE-NEXT: pshuflw {{.*#+}} xmm1 = xmm6[2,1,2,3,4,5,6,7]5195; SSE-NEXT: pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,5,4,7]5196; SSE-NEXT: pand %xmm12, %xmm15197; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[0,3,2,3]5198; SSE-NEXT: pshuflw {{.*#+}} xmm1 = xmm1[1,2,3,0,4,5,6,7]5199; SSE-NEXT: pshufhw {{.*#+}} xmm2 = xmm1[0,1,2,3,5,5,5,5]5200; SSE-NEXT: packuswb %xmm2, %xmm25201; SSE-NEXT: movdqa {{.*#+}} xmm5 = [0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255]5202; SSE-NEXT: movdqa %xmm5, %xmm35203; SSE-NEXT: pandn %xmm2, %xmm35204; SSE-NEXT: pand %xmm5, %xmm05205; SSE-NEXT: por %xmm0, %xmm35206; SSE-NEXT: movdqa %xmm13, %xmm05207; SSE-NEXT: pandn {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload5208; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload5209; SSE-NEXT: por %xmm0, %xmm15210; SSE-NEXT: movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5211; SSE-NEXT: pshuflw {{.*#+}} xmm0 = xmm1[0,3,2,3,4,5,6,7]5212; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,6,5,6,7]5213; SSE-NEXT: pand %xmm12, %xmm05214; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,1,2,0]5215; SSE-NEXT: pshuflw {{.*#+}} xmm0 = xmm0[2,2,2,2,4,5,6,7]5216; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,5,6,7,4]5217; SSE-NEXT: packuswb %xmm0, %xmm05218; SSE-NEXT: movdqa %xmm10, %xmm25219; SSE-NEXT: pandn %xmm0, %xmm25220; SSE-NEXT: pand %xmm10, %xmm35221; SSE-NEXT: por %xmm3, %xmm25222; SSE-NEXT: movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5223; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload5224; SSE-NEXT: pand %xmm7, %xmm135225; SSE-NEXT: por {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Folded Reload5226; SSE-NEXT: movdqa %xmm13, %xmm05227; SSE-NEXT: pand %xmm12, %xmm05228; SSE-NEXT: pshufhw {{.*#+}} xmm2 = xmm0[0,1,2,3,4,7,6,7]5229; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm2[0,2,2,3]5230; SSE-NEXT: pshuflw {{.*#+}} xmm2 = xmm2[1,2,3,3,4,5,6,7]5231; SSE-NEXT: pshuflw {{.*#+}} xmm0 = xmm0[0,3,2,3,4,5,6,7]5232; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,1,0,3]5233; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,4,5,6]5234; SSE-NEXT: packuswb %xmm2, %xmm05235; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload5236; SSE-NEXT: por {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Folded Reload5237; SSE-NEXT: pshuflw {{.*#+}} xmm2 = xmm14[2,1,2,3,4,5,6,7]5238; SSE-NEXT: pshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,5,4,7]5239; SSE-NEXT: pand %xmm12, %xmm25240; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm2[0,3,2,3]5241; SSE-NEXT: pshuflw {{.*#+}} xmm2 = xmm2[1,2,3,0,4,5,6,7]5242; SSE-NEXT: pshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,5,5,5,5]5243; SSE-NEXT: packuswb %xmm2, %xmm25244; SSE-NEXT: movdqa %xmm5, %xmm35245; SSE-NEXT: pandn %xmm2, %xmm35246; SSE-NEXT: pand %xmm5, %xmm05247; SSE-NEXT: por %xmm0, %xmm35248; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5249; SSE-NEXT: pandn {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload5250; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Reload5251; SSE-NEXT: por %xmm0, %xmm115252; SSE-NEXT: pshuflw {{.*#+}} xmm0 = xmm11[0,3,2,3,4,5,6,7]5253; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,6,5,6,7]5254; SSE-NEXT: pand %xmm12, %xmm05255; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,1,2,0]5256; SSE-NEXT: pshuflw {{.*#+}} xmm0 = xmm0[2,2,2,2,4,5,6,7]5257; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,5,6,7,4]5258; SSE-NEXT: packuswb %xmm0, %xmm05259; SSE-NEXT: movdqa %xmm10, %xmm25260; SSE-NEXT: pandn %xmm0, %xmm25261; SSE-NEXT: pand %xmm10, %xmm35262; SSE-NEXT: movdqa %xmm10, %xmm95263; SSE-NEXT: por %xmm3, %xmm25264; SSE-NEXT: movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5265; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload5266; SSE-NEXT: pand %xmm7, %xmm105267; SSE-NEXT: por {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Folded Reload5268; SSE-NEXT: movdqa %xmm10, %xmm05269; SSE-NEXT: pand %xmm12, %xmm05270; SSE-NEXT: pshufhw {{.*#+}} xmm2 = xmm0[0,1,2,3,4,7,6,7]5271; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm2[0,2,2,3]5272; SSE-NEXT: pshuflw {{.*#+}} xmm2 = xmm2[1,2,3,3,4,5,6,7]5273; SSE-NEXT: pshuflw {{.*#+}} xmm0 = xmm0[0,3,2,3,4,5,6,7]5274; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,1,0,3]5275; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,4,5,6]5276; SSE-NEXT: packuswb %xmm2, %xmm05277; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload5278; SSE-NEXT: por {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload5279; SSE-NEXT: movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5280; SSE-NEXT: pshuflw {{.*#+}} xmm2 = xmm1[2,1,2,3,4,5,6,7]5281; SSE-NEXT: pshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,5,4,7]5282; SSE-NEXT: pand %xmm12, %xmm25283; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm2[0,3,2,3]5284; SSE-NEXT: pshuflw {{.*#+}} xmm2 = xmm2[1,2,3,0,4,5,6,7]5285; SSE-NEXT: pshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,5,5,5,5]5286; SSE-NEXT: packuswb %xmm2, %xmm25287; SSE-NEXT: movdqa %xmm5, %xmm35288; SSE-NEXT: pandn %xmm2, %xmm35289; SSE-NEXT: pand %xmm5, %xmm05290; SSE-NEXT: por %xmm0, %xmm35291; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5292; SSE-NEXT: pandn {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload5293; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload5294; SSE-NEXT: por %xmm0, %xmm85295; SSE-NEXT: pshuflw {{.*#+}} xmm0 = xmm8[0,3,2,3,4,5,6,7]5296; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,6,5,6,7]5297; SSE-NEXT: pand %xmm12, %xmm05298; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,1,2,0]5299; SSE-NEXT: pshuflw {{.*#+}} xmm0 = xmm0[2,2,2,2,4,5,6,7]5300; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,5,6,7,4]5301; SSE-NEXT: packuswb %xmm0, %xmm05302; SSE-NEXT: movdqa %xmm9, %xmm25303; SSE-NEXT: pandn %xmm0, %xmm25304; SSE-NEXT: pand %xmm9, %xmm35305; SSE-NEXT: movdqa %xmm9, %xmm15306; SSE-NEXT: por %xmm3, %xmm25307; SSE-NEXT: movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5308; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5309; SSE-NEXT: pand %xmm7, %xmm05310; SSE-NEXT: por {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload5311; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5312; SSE-NEXT: pand %xmm12, %xmm05313; SSE-NEXT: pshufhw {{.*#+}} xmm2 = xmm0[0,1,2,3,4,7,6,7]5314; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm2[0,2,2,3]5315; SSE-NEXT: pshuflw {{.*#+}} xmm2 = xmm2[1,2,3,3,4,5,6,7]5316; SSE-NEXT: pshuflw {{.*#+}} xmm0 = xmm0[0,3,2,3,4,5,6,7]5317; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,1,0,3]5318; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,4,5,6]5319; SSE-NEXT: packuswb %xmm2, %xmm05320; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload5321; SSE-NEXT: por {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Folded Reload5322; SSE-NEXT: pshuflw {{.*#+}} xmm2 = xmm15[2,1,2,3,4,5,6,7]5323; SSE-NEXT: pshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,5,4,7]5324; SSE-NEXT: pand %xmm12, %xmm25325; SSE-NEXT: movdqa %xmm12, %xmm95326; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm2[0,3,2,3]5327; SSE-NEXT: pshuflw {{.*#+}} xmm2 = xmm2[1,2,3,0,4,5,6,7]5328; SSE-NEXT: pshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,5,5,5,5]5329; SSE-NEXT: packuswb %xmm2, %xmm25330; SSE-NEXT: movdqa %xmm5, %xmm35331; SSE-NEXT: pandn %xmm2, %xmm35332; SSE-NEXT: pand %xmm5, %xmm05333; SSE-NEXT: por %xmm0, %xmm35334; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5335; SSE-NEXT: pandn {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload5336; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Reload5337; SSE-NEXT: por %xmm0, %xmm125338; SSE-NEXT: pshuflw {{.*#+}} xmm0 = xmm12[0,3,2,3,4,5,6,7]5339; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,6,5,6,7]5340; SSE-NEXT: pand %xmm9, %xmm05341; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,1,2,0]5342; SSE-NEXT: pshuflw {{.*#+}} xmm0 = xmm0[2,2,2,2,4,5,6,7]5343; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,5,6,7,4]5344; SSE-NEXT: packuswb %xmm0, %xmm05345; SSE-NEXT: movdqa %xmm1, %xmm95346; SSE-NEXT: movdqa %xmm1, %xmm25347; SSE-NEXT: pandn %xmm0, %xmm25348; SSE-NEXT: pand %xmm1, %xmm35349; SSE-NEXT: por %xmm3, %xmm25350; SSE-NEXT: movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5351; SSE-NEXT: movdqa %xmm4, %xmm05352; SSE-NEXT: pxor %xmm1, %xmm15353; 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]5354; SSE-NEXT: punpckhbw {{.*#+}} xmm4 = xmm4[8],xmm1[8],xmm4[9],xmm1[9],xmm4[10],xmm1[10],xmm4[11],xmm1[11],xmm4[12],xmm1[12],xmm4[13],xmm1[13],xmm4[14],xmm1[14],xmm4[15],xmm1[15]5355; SSE-NEXT: pxor %xmm7, %xmm75356; SSE-NEXT: movdqa %xmm4, %xmm25357; SSE-NEXT: shufps {{.*#+}} xmm2 = xmm2[2,0],xmm0[3,0]5358; SSE-NEXT: movaps %xmm0, %xmm35359; SSE-NEXT: shufps {{.*#+}} xmm3 = xmm3[0,1],xmm2[0,2]5360; SSE-NEXT: shufps {{.*#+}} xmm0 = xmm0[1,0],xmm4[0,0]5361; SSE-NEXT: shufps {{.*#+}} xmm0 = xmm0[2,0],xmm4[2,3]5362; SSE-NEXT: pshufhw {{.*#+}} xmm2 = xmm3[0,1,2,3,7,5,6,7]5363; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm2[0,1,0,2]5364; SSE-NEXT: pshuflw {{.*#+}} xmm0 = xmm0[3,1,2,3,4,5,6,7]5365; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,3,2,3]5366; SSE-NEXT: pshuflw {{.*#+}} xmm0 = xmm0[0,1,3,3,4,5,6,7]5367; SSE-NEXT: packuswb %xmm0, %xmm25368; SSE-NEXT: movdqa %xmm6, %xmm05369; SSE-NEXT: punpcklbw {{.*#+}} xmm0 = xmm0[0],xmm7[0],xmm0[1],xmm7[1],xmm0[2],xmm7[2],xmm0[3],xmm7[3],xmm0[4],xmm7[4],xmm0[5],xmm7[5],xmm0[6],xmm7[6],xmm0[7],xmm7[7]5370; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[2,1,2,3]5371; SSE-NEXT: pshuflw {{.*#+}} xmm0 = xmm0[3,1,2,1,4,5,6,7]5372; SSE-NEXT: movdqa {{.*#+}} xmm3 = [0,65535,65535,0,65535,65535,65535,65535]5373; SSE-NEXT: movdqa %xmm3, %xmm45374; SSE-NEXT: pandn %xmm0, %xmm45375; SSE-NEXT: punpckhbw {{.*#+}} xmm6 = xmm6[8],xmm7[8],xmm6[9],xmm7[9],xmm6[10],xmm7[10],xmm6[11],xmm7[11],xmm6[12],xmm7[12],xmm6[13],xmm7[13],xmm6[14],xmm7[14],xmm6[15],xmm7[15]5376; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm6[0,3,2,1]5377; SSE-NEXT: pshuflw {{.*#+}} xmm0 = xmm0[0,1,3,3,4,5,6,7]5378; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,7,7,7,7]5379; SSE-NEXT: pand %xmm3, %xmm05380; SSE-NEXT: por %xmm4, %xmm05381; SSE-NEXT: packuswb %xmm0, %xmm05382; SSE-NEXT: movdqa %xmm5, %xmm65383; SSE-NEXT: pandn %xmm0, %xmm65384; SSE-NEXT: pand %xmm5, %xmm25385; SSE-NEXT: por %xmm2, %xmm65386; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload5387; SSE-NEXT: movdqa %xmm1, %xmm05388; SSE-NEXT: punpckhbw {{.*#+}} xmm0 = xmm0[8],xmm7[8],xmm0[9],xmm7[9],xmm0[10],xmm7[10],xmm0[11],xmm7[11],xmm0[12],xmm7[12],xmm0[13],xmm7[13],xmm0[14],xmm7[14],xmm0[15],xmm7[15]5389; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,1,2,1]5390; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,7,5,6,5]5391; SSE-NEXT: movdqa {{.*#+}} xmm4 = [65535,65535,65535,65535,0,65535,65535,0]5392; SSE-NEXT: movdqa %xmm4, %xmm25393; SSE-NEXT: pandn %xmm0, %xmm25394; SSE-NEXT: punpcklbw {{.*#+}} xmm1 = xmm1[0],xmm7[0],xmm1[1],xmm7[1],xmm1[2],xmm7[2],xmm1[3],xmm7[3],xmm1[4],xmm7[4],xmm1[5],xmm7[5],xmm1[6],xmm7[6],xmm1[7],xmm7[7]5395; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm1[0,2,0,3]5396; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,5,7,7]5397; SSE-NEXT: pand %xmm4, %xmm05398; SSE-NEXT: por %xmm2, %xmm05399; SSE-NEXT: packuswb %xmm0, %xmm05400; SSE-NEXT: movdqa %xmm9, %xmm25401; SSE-NEXT: pandn %xmm0, %xmm25402; SSE-NEXT: pand %xmm9, %xmm65403; SSE-NEXT: por %xmm6, %xmm25404; SSE-NEXT: movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5405; SSE-NEXT: movdqa %xmm13, %xmm05406; SSE-NEXT: pxor %xmm1, %xmm15407; 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]5408; SSE-NEXT: punpckhbw {{.*#+}} xmm13 = xmm13[8],xmm1[8],xmm13[9],xmm1[9],xmm13[10],xmm1[10],xmm13[11],xmm1[11],xmm13[12],xmm1[12],xmm13[13],xmm1[13],xmm13[14],xmm1[14],xmm13[15],xmm1[15]5409; SSE-NEXT: movdqa %xmm13, %xmm25410; SSE-NEXT: shufps {{.*#+}} xmm2 = xmm2[2,0],xmm0[3,0]5411; SSE-NEXT: movaps %xmm0, %xmm65412; SSE-NEXT: shufps {{.*#+}} xmm6 = xmm6[0,1],xmm2[0,2]5413; SSE-NEXT: shufps {{.*#+}} xmm0 = xmm0[1,0],xmm13[0,0]5414; SSE-NEXT: shufps {{.*#+}} xmm0 = xmm0[2,0],xmm13[2,3]5415; SSE-NEXT: pshufhw {{.*#+}} xmm2 = xmm6[0,1,2,3,7,5,6,7]5416; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm2[0,1,0,2]5417; SSE-NEXT: pshuflw {{.*#+}} xmm0 = xmm0[3,1,2,3,4,5,6,7]5418; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,3,2,3]5419; SSE-NEXT: pshuflw {{.*#+}} xmm0 = xmm0[0,1,3,3,4,5,6,7]5420; SSE-NEXT: packuswb %xmm0, %xmm25421; SSE-NEXT: movdqa %xmm14, %xmm05422; 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]5423; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[2,1,2,3]5424; SSE-NEXT: pshuflw {{.*#+}} xmm0 = xmm0[3,1,2,1,4,5,6,7]5425; SSE-NEXT: movdqa %xmm3, %xmm65426; SSE-NEXT: pandn %xmm0, %xmm65427; SSE-NEXT: punpckhbw {{.*#+}} xmm14 = 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]5428; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm14[0,3,2,1]5429; SSE-NEXT: pshuflw {{.*#+}} xmm0 = xmm0[0,1,3,3,4,5,6,7]5430; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,7,7,7,7]5431; SSE-NEXT: pand %xmm3, %xmm05432; SSE-NEXT: por %xmm6, %xmm05433; SSE-NEXT: packuswb %xmm0, %xmm05434; SSE-NEXT: movdqa %xmm5, %xmm65435; SSE-NEXT: pandn %xmm0, %xmm65436; SSE-NEXT: pand %xmm5, %xmm25437; SSE-NEXT: por %xmm2, %xmm65438; SSE-NEXT: movdqa %xmm11, %xmm05439; SSE-NEXT: punpckhbw {{.*#+}} xmm0 = 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]5440; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,1,2,1]5441; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,7,5,6,5]5442; SSE-NEXT: movdqa %xmm4, %xmm25443; SSE-NEXT: pandn %xmm0, %xmm25444; SSE-NEXT: punpcklbw {{.*#+}} xmm11 = 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]5445; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm11[0,2,0,3]5446; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,5,7,7]5447; SSE-NEXT: pand %xmm4, %xmm05448; SSE-NEXT: por %xmm2, %xmm05449; SSE-NEXT: packuswb %xmm0, %xmm05450; SSE-NEXT: movdqa %xmm9, %xmm25451; SSE-NEXT: pandn %xmm0, %xmm25452; SSE-NEXT: pand %xmm9, %xmm65453; SSE-NEXT: por %xmm6, %xmm25454; SSE-NEXT: movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5455; SSE-NEXT: movdqa %xmm10, %xmm05456; 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]5457; SSE-NEXT: punpckhbw {{.*#+}} xmm10 = 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]5458; SSE-NEXT: movdqa %xmm10, %xmm25459; SSE-NEXT: shufps {{.*#+}} xmm2 = xmm2[2,0],xmm0[3,0]5460; SSE-NEXT: movaps %xmm0, %xmm65461; SSE-NEXT: shufps {{.*#+}} xmm6 = xmm6[0,1],xmm2[0,2]5462; SSE-NEXT: shufps {{.*#+}} xmm0 = xmm0[1,0],xmm10[0,0]5463; SSE-NEXT: shufps {{.*#+}} xmm0 = xmm0[2,0],xmm10[2,3]5464; SSE-NEXT: pshufhw {{.*#+}} xmm2 = xmm6[0,1,2,3,7,5,6,7]5465; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm2[0,1,0,2]5466; SSE-NEXT: pshuflw {{.*#+}} xmm0 = xmm0[3,1,2,3,4,5,6,7]5467; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,3,2,3]5468; SSE-NEXT: pshuflw {{.*#+}} xmm0 = xmm0[0,1,3,3,4,5,6,7]5469; SSE-NEXT: packuswb %xmm0, %xmm25470; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload5471; SSE-NEXT: movdqa %xmm7, %xmm05472; 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]5473; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[2,1,2,3]5474; SSE-NEXT: pshuflw {{.*#+}} xmm0 = xmm0[3,1,2,1,4,5,6,7]5475; SSE-NEXT: movdqa %xmm3, %xmm65476; SSE-NEXT: pandn %xmm0, %xmm65477; SSE-NEXT: punpckhbw {{.*#+}} xmm7 = xmm7[8],xmm1[8],xmm7[9],xmm1[9],xmm7[10],xmm1[10],xmm7[11],xmm1[11],xmm7[12],xmm1[12],xmm7[13],xmm1[13],xmm7[14],xmm1[14],xmm7[15],xmm1[15]5478; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm7[0,3,2,1]5479; SSE-NEXT: pshuflw {{.*#+}} xmm0 = xmm0[0,1,3,3,4,5,6,7]5480; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,7,7,7,7]5481; SSE-NEXT: pand %xmm3, %xmm05482; SSE-NEXT: por %xmm6, %xmm05483; SSE-NEXT: packuswb %xmm0, %xmm05484; SSE-NEXT: movdqa %xmm5, %xmm65485; SSE-NEXT: pandn %xmm0, %xmm65486; SSE-NEXT: pand %xmm5, %xmm25487; SSE-NEXT: por %xmm2, %xmm65488; SSE-NEXT: movdqa %xmm8, %xmm05489; SSE-NEXT: punpckhbw {{.*#+}} xmm0 = 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]5490; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,1,2,1]5491; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,7,5,6,5]5492; SSE-NEXT: movdqa %xmm4, %xmm25493; SSE-NEXT: pandn %xmm0, %xmm25494; SSE-NEXT: punpcklbw {{.*#+}} xmm8 = xmm8[0],xmm1[0],xmm8[1],xmm1[1],xmm8[2],xmm1[2],xmm8[3],xmm1[3],xmm8[4],xmm1[4],xmm8[5],xmm1[5],xmm8[6],xmm1[6],xmm8[7],xmm1[7]5495; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm8[0,2,0,3]5496; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,5,7,7]5497; SSE-NEXT: pand %xmm4, %xmm05498; SSE-NEXT: por %xmm2, %xmm05499; SSE-NEXT: packuswb %xmm0, %xmm25500; SSE-NEXT: movdqa %xmm9, %xmm05501; SSE-NEXT: pandn %xmm2, %xmm05502; SSE-NEXT: pand %xmm9, %xmm65503; SSE-NEXT: por %xmm6, %xmm05504; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5505; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5506; SSE-NEXT: movdqa %xmm0, %xmm25507; 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]5508; SSE-NEXT: punpckhbw {{.*#+}} xmm0 = 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]5509; SSE-NEXT: movdqa %xmm0, %xmm65510; SSE-NEXT: shufps {{.*#+}} xmm6 = xmm6[2,0],xmm2[3,0]5511; SSE-NEXT: movaps %xmm2, %xmm75512; SSE-NEXT: shufps {{.*#+}} xmm7 = xmm7[0,1],xmm6[0,2]5513; SSE-NEXT: shufps {{.*#+}} xmm2 = xmm2[1,0],xmm0[0,0]5514; SSE-NEXT: shufps {{.*#+}} xmm2 = xmm2[2,0],xmm0[2,3]5515; SSE-NEXT: pshufhw {{.*#+}} xmm6 = xmm7[0,1,2,3,7,5,6,7]5516; SSE-NEXT: pshufd {{.*#+}} xmm6 = xmm6[0,1,0,2]5517; SSE-NEXT: pshuflw {{.*#+}} xmm2 = xmm2[3,1,2,3,4,5,6,7]5518; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm2[0,3,2,3]5519; SSE-NEXT: pshuflw {{.*#+}} xmm2 = xmm2[0,1,3,3,4,5,6,7]5520; SSE-NEXT: packuswb %xmm2, %xmm65521; SSE-NEXT: movdqa %xmm15, %xmm25522; 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]5523; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm2[2,1,2,3]5524; SSE-NEXT: pshuflw {{.*#+}} xmm2 = xmm2[3,1,2,1,4,5,6,7]5525; SSE-NEXT: punpckhbw {{.*#+}} xmm15 = xmm15[8],xmm1[8],xmm15[9],xmm1[9],xmm15[10],xmm1[10],xmm15[11],xmm1[11],xmm15[12],xmm1[12],xmm15[13],xmm1[13],xmm15[14],xmm1[14],xmm15[15],xmm1[15]5526; SSE-NEXT: pshufd {{.*#+}} xmm7 = xmm15[0,3,2,1]5527; SSE-NEXT: pshuflw {{.*#+}} xmm7 = xmm7[0,1,3,3,4,5,6,7]5528; SSE-NEXT: pshufhw {{.*#+}} xmm7 = xmm7[0,1,2,3,7,7,7,7]5529; SSE-NEXT: pand %xmm3, %xmm75530; SSE-NEXT: pandn %xmm2, %xmm35531; SSE-NEXT: por %xmm7, %xmm35532; SSE-NEXT: pand %xmm5, %xmm65533; SSE-NEXT: packuswb %xmm3, %xmm35534; SSE-NEXT: pandn %xmm3, %xmm55535; SSE-NEXT: por %xmm6, %xmm55536; SSE-NEXT: movdqa %xmm12, %xmm25537; SSE-NEXT: pxor %xmm0, %xmm05538; SSE-NEXT: punpckhbw {{.*#+}} xmm2 = xmm2[8],xmm0[8],xmm2[9],xmm0[9],xmm2[10],xmm0[10],xmm2[11],xmm0[11],xmm2[12],xmm0[12],xmm2[13],xmm0[13],xmm2[14],xmm0[14],xmm2[15],xmm0[15]5539; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm2[0,1,2,1]5540; SSE-NEXT: pshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,7,5,6,5]5541; SSE-NEXT: punpcklbw {{.*#+}} xmm12 = xmm12[0],xmm0[0],xmm12[1],xmm0[1],xmm12[2],xmm0[2],xmm12[3],xmm0[3],xmm12[4],xmm0[4],xmm12[5],xmm0[5],xmm12[6],xmm0[6],xmm12[7],xmm0[7]5542; SSE-NEXT: pshufd {{.*#+}} xmm3 = xmm12[0,2,0,3]5543; SSE-NEXT: pshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,4,5,7,7]5544; SSE-NEXT: pand %xmm4, %xmm35545; SSE-NEXT: pandn %xmm2, %xmm45546; SSE-NEXT: por %xmm3, %xmm45547; SSE-NEXT: pand %xmm9, %xmm55548; SSE-NEXT: packuswb %xmm4, %xmm25549; SSE-NEXT: pandn %xmm2, %xmm95550; SSE-NEXT: por %xmm5, %xmm95551; SSE-NEXT: movdqa %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5552; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5553; SSE-NEXT: por {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload5554; SSE-NEXT: movdqa %xmm0, %xmm15555; SSE-NEXT: movdqa {{.*#+}} xmm10 = [255,255,255,255,255,255,255,255]5556; SSE-NEXT: pand %xmm10, %xmm15557; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm1[2,1,2,3]5558; SSE-NEXT: pshuflw {{.*#+}} xmm2 = xmm2[2,1,2,3,4,5,6,7]5559; SSE-NEXT: pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,7,6,7]5560; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[0,1,0,2]5561; SSE-NEXT: packuswb %xmm2, %xmm15562; SSE-NEXT: movdqa {{.*#+}} xmm15 = [255,255,255,255,255,0,0,0,0,0,255,255,255,255,255,255]5563; SSE-NEXT: movdqa %xmm15, %xmm25564; SSE-NEXT: pandn %xmm1, %xmm25565; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Reload5566; SSE-NEXT: por {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Folded Reload5567; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm12[3,1,2,0]5568; SSE-NEXT: pand %xmm10, %xmm15569; SSE-NEXT: pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,6,5,6,7]5570; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[2,1,0,3]5571; SSE-NEXT: pshuflw {{.*#+}} xmm6 = xmm1[2,1,0,3,4,5,6,7]5572; SSE-NEXT: packuswb %xmm6, %xmm65573; SSE-NEXT: pand %xmm15, %xmm65574; SSE-NEXT: por %xmm2, %xmm65575; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload5576; SSE-NEXT: movdqa {{.*#+}} xmm11 = [65535,0,65535,65535,0,65535,65535,0]5577; SSE-NEXT: pand %xmm11, %xmm135578; SSE-NEXT: por {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Folded Reload5579; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm13[0,2,1,3]5580; SSE-NEXT: pand %xmm10, %xmm15581; SSE-NEXT: pshuflw {{.*#+}} xmm1 = xmm1[0,1,2,1,4,5,6,7]5582; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[0,2,1,3]5583; SSE-NEXT: pshuflw {{.*#+}} xmm1 = xmm1[0,1,0,3,4,5,6,7]5584; SSE-NEXT: pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,6,5,4,7]5585; SSE-NEXT: packuswb %xmm1, %xmm25586; SSE-NEXT: movdqa {{.*#+}} xmm1 = [65535,65535,65535,65535,65535,0,0,0]5587; SSE-NEXT: movdqa %xmm1, %xmm35588; SSE-NEXT: pandn %xmm2, %xmm35589; SSE-NEXT: pand %xmm1, %xmm65590; SSE-NEXT: por %xmm6, %xmm35591; SSE-NEXT: movdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5592; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload5593; SSE-NEXT: por {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Folded Reload5594; SSE-NEXT: movdqa %xmm14, %xmm25595; SSE-NEXT: pand %xmm10, %xmm25596; SSE-NEXT: pshufd {{.*#+}} xmm6 = xmm2[2,1,2,3]5597; SSE-NEXT: pshuflw {{.*#+}} xmm6 = xmm6[2,1,2,3,4,5,6,7]5598; SSE-NEXT: pshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,7,6,7]5599; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm2[0,1,0,2]5600; SSE-NEXT: packuswb %xmm6, %xmm25601; SSE-NEXT: movdqa %xmm15, %xmm65602; SSE-NEXT: pandn %xmm2, %xmm65603; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload5604; SSE-NEXT: por {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload5605; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm4[3,1,2,0]5606; SSE-NEXT: pand %xmm10, %xmm25607; SSE-NEXT: pshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,6,5,6,7]5608; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm2[2,1,0,3]5609; SSE-NEXT: pshuflw {{.*#+}} xmm7 = xmm2[2,1,0,3,4,5,6,7]5610; SSE-NEXT: packuswb %xmm7, %xmm75611; SSE-NEXT: pand %xmm15, %xmm75612; SSE-NEXT: por %xmm6, %xmm75613; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload5614; SSE-NEXT: pand %xmm11, %xmm35615; SSE-NEXT: por {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Folded Reload5616; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm3[0,2,1,3]5617; SSE-NEXT: pand %xmm10, %xmm25618; SSE-NEXT: pshuflw {{.*#+}} xmm2 = xmm2[0,1,2,1,4,5,6,7]5619; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm2[0,2,1,3]5620; SSE-NEXT: pshuflw {{.*#+}} xmm2 = xmm2[0,1,0,3,4,5,6,7]5621; SSE-NEXT: pshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,6,5,4,7]5622; SSE-NEXT: packuswb %xmm2, %xmm65623; SSE-NEXT: movdqa %xmm1, %xmm25624; SSE-NEXT: pandn %xmm6, %xmm25625; SSE-NEXT: pand %xmm1, %xmm75626; SSE-NEXT: por %xmm7, %xmm25627; SSE-NEXT: movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5628; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload5629; SSE-NEXT: por {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Folded Reload5630; SSE-NEXT: movdqa %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5631; SSE-NEXT: pand %xmm10, %xmm65632; SSE-NEXT: pshufd {{.*#+}} xmm7 = xmm6[2,1,2,3]5633; SSE-NEXT: pshuflw {{.*#+}} xmm7 = xmm7[2,1,2,3,4,5,6,7]5634; SSE-NEXT: pshufhw {{.*#+}} xmm6 = xmm6[0,1,2,3,4,7,6,7]5635; SSE-NEXT: pshufd {{.*#+}} xmm6 = xmm6[0,1,0,2]5636; SSE-NEXT: packuswb %xmm7, %xmm65637; SSE-NEXT: movdqa %xmm15, %xmm75638; SSE-NEXT: pandn %xmm6, %xmm75639; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload5640; SSE-NEXT: por {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload5641; SSE-NEXT: movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5642; SSE-NEXT: pshufd {{.*#+}} xmm6 = xmm2[3,1,2,0]5643; SSE-NEXT: pand %xmm10, %xmm65644; SSE-NEXT: pshufhw {{.*#+}} xmm6 = xmm6[0,1,2,3,6,5,6,7]5645; SSE-NEXT: pshufd {{.*#+}} xmm6 = xmm6[2,1,0,3]5646; SSE-NEXT: pshuflw {{.*#+}} xmm8 = xmm6[2,1,0,3,4,5,6,7]5647; SSE-NEXT: packuswb %xmm8, %xmm85648; SSE-NEXT: pand %xmm15, %xmm85649; SSE-NEXT: por %xmm7, %xmm85650; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload5651; SSE-NEXT: pand %xmm11, %xmm25652; SSE-NEXT: por {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload5653; SSE-NEXT: movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5654; SSE-NEXT: pshufd {{.*#+}} xmm6 = xmm2[0,2,1,3]5655; SSE-NEXT: pand %xmm10, %xmm65656; SSE-NEXT: pshuflw {{.*#+}} xmm6 = xmm6[0,1,2,1,4,5,6,7]5657; SSE-NEXT: pshufd {{.*#+}} xmm6 = xmm6[0,2,1,3]5658; SSE-NEXT: pshuflw {{.*#+}} xmm6 = xmm6[0,1,0,3,4,5,6,7]5659; SSE-NEXT: pshufhw {{.*#+}} xmm6 = xmm6[0,1,2,3,6,5,4,7]5660; SSE-NEXT: packuswb %xmm6, %xmm75661; SSE-NEXT: movdqa %xmm1, %xmm25662; SSE-NEXT: pandn %xmm7, %xmm25663; SSE-NEXT: pand %xmm1, %xmm85664; SSE-NEXT: por %xmm8, %xmm25665; SSE-NEXT: movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5666; SSE-NEXT: movdqa (%rsp), %xmm7 # 16-byte Reload5667; SSE-NEXT: por {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Folded Reload5668; SSE-NEXT: movdqa %xmm7, (%rsp) # 16-byte Spill5669; SSE-NEXT: pand %xmm10, %xmm75670; SSE-NEXT: pshufd {{.*#+}} xmm8 = xmm7[2,1,2,3]5671; SSE-NEXT: pshuflw {{.*#+}} xmm8 = xmm8[2,1,2,3,4,5,6,7]5672; SSE-NEXT: pshufhw {{.*#+}} xmm7 = xmm7[0,1,2,3,4,7,6,7]5673; SSE-NEXT: pshufd {{.*#+}} xmm7 = xmm7[0,1,0,2]5674; SSE-NEXT: packuswb %xmm8, %xmm75675; SSE-NEXT: movdqa %xmm15, %xmm85676; SSE-NEXT: pandn %xmm7, %xmm85677; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload5678; SSE-NEXT: por {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Folded Reload5679; SSE-NEXT: pshufd {{.*#+}} xmm7 = xmm6[3,1,2,0]5680; SSE-NEXT: pand %xmm10, %xmm75681; SSE-NEXT: pshufhw {{.*#+}} xmm7 = xmm7[0,1,2,3,6,5,6,7]5682; SSE-NEXT: pshufd {{.*#+}} xmm7 = xmm7[2,1,0,3]5683; SSE-NEXT: pshuflw {{.*#+}} xmm9 = xmm7[2,1,0,3,4,5,6,7]5684; SSE-NEXT: packuswb %xmm9, %xmm95685; SSE-NEXT: pand %xmm15, %xmm95686; SSE-NEXT: por %xmm8, %xmm95687; SSE-NEXT: movdqa %xmm11, %xmm25688; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload5689; SSE-NEXT: pand %xmm11, %xmm75690; SSE-NEXT: pandn {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload5691; SSE-NEXT: por %xmm7, %xmm25692; SSE-NEXT: pshufd {{.*#+}} xmm7 = xmm2[0,2,1,3]5693; SSE-NEXT: pand %xmm10, %xmm75694; SSE-NEXT: pshuflw {{.*#+}} xmm7 = xmm7[0,1,2,1,4,5,6,7]5695; SSE-NEXT: pshufd {{.*#+}} xmm7 = xmm7[0,2,1,3]5696; SSE-NEXT: pshuflw {{.*#+}} xmm7 = xmm7[0,1,0,3,4,5,6,7]5697; SSE-NEXT: pshufhw {{.*#+}} xmm7 = xmm7[0,1,2,3,6,5,4,7]5698; SSE-NEXT: packuswb %xmm7, %xmm85699; SSE-NEXT: movdqa %xmm1, %xmm75700; SSE-NEXT: pandn %xmm8, %xmm75701; SSE-NEXT: pand %xmm1, %xmm95702; SSE-NEXT: por %xmm9, %xmm75703; SSE-NEXT: movdqa %xmm0, %xmm85704; SSE-NEXT: pxor %xmm5, %xmm55705; SSE-NEXT: punpckhbw {{.*#+}} xmm8 = 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]5706; SSE-NEXT: punpcklbw {{.*#+}} xmm0 = xmm0[0],xmm5[0],xmm0[1],xmm5[1],xmm0[2],xmm5[2],xmm0[3],xmm5[3],xmm0[4],xmm5[4],xmm0[5],xmm5[5],xmm0[6],xmm5[6],xmm0[7],xmm5[7]5707; SSE-NEXT: movdqa %xmm0, %xmm95708; SSE-NEXT: shufps {{.*#+}} xmm0 = xmm0[1,0],xmm8[0,0]5709; SSE-NEXT: shufps {{.*#+}} xmm0 = xmm0[2,0],xmm8[2,3]5710; SSE-NEXT: psrlq $48, %xmm85711; SSE-NEXT: psrldq {{.*#+}} xmm9 = xmm9[10,11,12,13,14,15],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero5712; SSE-NEXT: punpcklwd {{.*#+}} xmm9 = xmm9[0],xmm8[0],xmm9[1],xmm8[1],xmm9[2],xmm8[2],xmm9[3],xmm8[3]5713; SSE-NEXT: pshuflw {{.*#+}} xmm8 = xmm0[3,1,2,3,4,5,6,7]5714; SSE-NEXT: pshufd {{.*#+}} xmm8 = xmm8[0,1,0,3]5715; SSE-NEXT: pshufhw {{.*#+}} xmm8 = xmm8[0,1,2,3,4,4,5,7]5716; SSE-NEXT: packuswb %xmm9, %xmm85717; SSE-NEXT: movdqa %xmm15, %xmm105718; SSE-NEXT: pandn %xmm8, %xmm105719; SSE-NEXT: movdqa %xmm12, %xmm85720; SSE-NEXT: punpckhbw {{.*#+}} xmm8 = 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]5721; SSE-NEXT: pshufd {{.*#+}} xmm8 = xmm8[1,1,2,3]5722; SSE-NEXT: pshufhw {{.*#+}} xmm8 = xmm8[0,1,2,3,5,5,5,5]5723; SSE-NEXT: movdqa {{.*#+}} xmm0 = [65535,0,65535,65535,0,65535,65535,65535]5724; SSE-NEXT: movdqa %xmm0, %xmm115725; SSE-NEXT: pandn %xmm8, %xmm115726; SSE-NEXT: punpcklbw {{.*#+}} xmm12 = xmm12[0],xmm5[0],xmm12[1],xmm5[1],xmm12[2],xmm5[2],xmm12[3],xmm5[3],xmm12[4],xmm5[4],xmm12[5],xmm5[5],xmm12[6],xmm5[6],xmm12[7],xmm5[7]5727; SSE-NEXT: pshufhw {{.*#+}} xmm8 = xmm12[0,1,2,3,7,5,6,7]5728; SSE-NEXT: pshufd {{.*#+}} xmm8 = xmm8[0,2,2,3]5729; SSE-NEXT: pshuflw {{.*#+}} xmm12 = xmm8[3,1,1,2,4,5,6,7]5730; SSE-NEXT: pand %xmm0, %xmm125731; SSE-NEXT: por %xmm11, %xmm125732; SSE-NEXT: packuswb %xmm12, %xmm125733; SSE-NEXT: pand %xmm15, %xmm125734; SSE-NEXT: por %xmm10, %xmm125735; SSE-NEXT: movdqa %xmm13, %xmm85736; SSE-NEXT: punpckhbw {{.*#+}} xmm13 = xmm13[8],xmm5[8],xmm13[9],xmm5[9],xmm13[10],xmm5[10],xmm13[11],xmm5[11],xmm13[12],xmm5[12],xmm13[13],xmm5[13],xmm13[14],xmm5[14],xmm13[15],xmm5[15]5737; SSE-NEXT: pshufhw {{.*#+}} xmm10 = xmm13[0,1,2,3,7,5,6,7]5738; SSE-NEXT: pshufd {{.*#+}} xmm10 = xmm10[0,1,2,0]5739; SSE-NEXT: pshufhw {{.*#+}} xmm10 = xmm10[0,1,2,3,5,5,7,4]5740; SSE-NEXT: movdqa {{.*#+}} xmm11 = [65535,65535,65535,65535,0,65535,0,0]5741; SSE-NEXT: movdqa %xmm11, %xmm135742; SSE-NEXT: pandn %xmm10, %xmm135743; SSE-NEXT: punpcklbw {{.*#+}} xmm8 = 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]5744; SSE-NEXT: pshufd {{.*#+}} xmm8 = xmm8[0,3,1,1]5745; SSE-NEXT: pshuflw {{.*#+}} xmm8 = xmm8[0,1,1,3,4,5,6,7]5746; SSE-NEXT: pand %xmm11, %xmm85747; SSE-NEXT: por %xmm8, %xmm135748; SSE-NEXT: packuswb %xmm13, %xmm105749; SSE-NEXT: movdqa %xmm1, %xmm85750; SSE-NEXT: pandn %xmm10, %xmm85751; SSE-NEXT: pand %xmm1, %xmm125752; SSE-NEXT: por %xmm12, %xmm85753; SSE-NEXT: movdqa %xmm14, %xmm95754; SSE-NEXT: movdqa %xmm14, %xmm105755; SSE-NEXT: punpckhbw {{.*#+}} xmm10 = xmm10[8],xmm5[8],xmm10[9],xmm5[9],xmm10[10],xmm5[10],xmm10[11],xmm5[11],xmm10[12],xmm5[12],xmm10[13],xmm5[13],xmm10[14],xmm5[14],xmm10[15],xmm5[15]5756; SSE-NEXT: punpcklbw {{.*#+}} xmm9 = xmm9[0],xmm5[0],xmm9[1],xmm5[1],xmm9[2],xmm5[2],xmm9[3],xmm5[3],xmm9[4],xmm5[4],xmm9[5],xmm5[5],xmm9[6],xmm5[6],xmm9[7],xmm5[7]5757; SSE-NEXT: movdqa %xmm9, %xmm125758; SSE-NEXT: shufps {{.*#+}} xmm9 = xmm9[1,0],xmm10[0,0]5759; SSE-NEXT: shufps {{.*#+}} xmm9 = xmm9[2,0],xmm10[2,3]5760; SSE-NEXT: psrlq $48, %xmm105761; SSE-NEXT: psrldq {{.*#+}} xmm12 = xmm12[10,11,12,13,14,15],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero5762; SSE-NEXT: punpcklwd {{.*#+}} xmm12 = xmm12[0],xmm10[0],xmm12[1],xmm10[1],xmm12[2],xmm10[2],xmm12[3],xmm10[3]5763; SSE-NEXT: pshuflw {{.*#+}} xmm10 = xmm9[3,1,2,3,4,5,6,7]5764; SSE-NEXT: pshufd {{.*#+}} xmm10 = xmm10[0,1,0,3]5765; SSE-NEXT: pshufhw {{.*#+}} xmm10 = xmm10[0,1,2,3,4,4,5,7]5766; SSE-NEXT: packuswb %xmm12, %xmm105767; SSE-NEXT: movdqa %xmm15, %xmm125768; SSE-NEXT: pandn %xmm10, %xmm125769; SSE-NEXT: movdqa %xmm4, %xmm105770; SSE-NEXT: punpckhbw {{.*#+}} xmm10 = xmm10[8],xmm5[8],xmm10[9],xmm5[9],xmm10[10],xmm5[10],xmm10[11],xmm5[11],xmm10[12],xmm5[12],xmm10[13],xmm5[13],xmm10[14],xmm5[14],xmm10[15],xmm5[15]5771; SSE-NEXT: pshufd {{.*#+}} xmm10 = xmm10[1,1,2,3]5772; SSE-NEXT: pshufhw {{.*#+}} xmm10 = xmm10[0,1,2,3,5,5,5,5]5773; SSE-NEXT: movdqa %xmm0, %xmm145774; SSE-NEXT: pandn %xmm10, %xmm145775; SSE-NEXT: punpcklbw {{.*#+}} 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]5776; SSE-NEXT: pshufhw {{.*#+}} xmm10 = xmm4[0,1,2,3,7,5,6,7]5777; SSE-NEXT: pshufd {{.*#+}} xmm10 = xmm10[0,2,2,3]5778; SSE-NEXT: pshuflw {{.*#+}} xmm13 = xmm10[3,1,1,2,4,5,6,7]5779; SSE-NEXT: pand %xmm0, %xmm135780; SSE-NEXT: por %xmm14, %xmm135781; SSE-NEXT: packuswb %xmm13, %xmm135782; SSE-NEXT: pand %xmm15, %xmm135783; SSE-NEXT: por %xmm12, %xmm135784; SSE-NEXT: movdqa %xmm3, %xmm105785; SSE-NEXT: punpckhbw {{.*#+}} xmm3 = xmm3[8],xmm5[8],xmm3[9],xmm5[9],xmm3[10],xmm5[10],xmm3[11],xmm5[11],xmm3[12],xmm5[12],xmm3[13],xmm5[13],xmm3[14],xmm5[14],xmm3[15],xmm5[15]5786; SSE-NEXT: pshufhw {{.*#+}} xmm12 = xmm3[0,1,2,3,7,5,6,7]5787; SSE-NEXT: pshufd {{.*#+}} xmm12 = xmm12[0,1,2,0]5788; SSE-NEXT: pshufhw {{.*#+}} xmm12 = xmm12[0,1,2,3,5,5,7,4]5789; SSE-NEXT: movdqa %xmm11, %xmm145790; SSE-NEXT: pandn %xmm12, %xmm145791; SSE-NEXT: punpcklbw {{.*#+}} xmm10 = xmm10[0],xmm5[0],xmm10[1],xmm5[1],xmm10[2],xmm5[2],xmm10[3],xmm5[3],xmm10[4],xmm5[4],xmm10[5],xmm5[5],xmm10[6],xmm5[6],xmm10[7],xmm5[7]5792; SSE-NEXT: pshufd {{.*#+}} xmm10 = xmm10[0,3,1,1]5793; SSE-NEXT: pshuflw {{.*#+}} xmm10 = xmm10[0,1,1,3,4,5,6,7]5794; SSE-NEXT: pand %xmm11, %xmm105795; SSE-NEXT: por %xmm10, %xmm145796; SSE-NEXT: packuswb %xmm14, %xmm105797; SSE-NEXT: movdqa %xmm1, %xmm125798; SSE-NEXT: pandn %xmm10, %xmm125799; SSE-NEXT: pand %xmm1, %xmm135800; SSE-NEXT: por %xmm13, %xmm125801; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Reload5802; SSE-NEXT: movdqa %xmm9, %xmm105803; SSE-NEXT: pxor %xmm3, %xmm35804; SSE-NEXT: punpckhbw {{.*#+}} xmm10 = 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]5805; SSE-NEXT: punpcklbw {{.*#+}} xmm9 = xmm9[0],xmm3[0],xmm9[1],xmm3[1],xmm9[2],xmm3[2],xmm9[3],xmm3[3],xmm9[4],xmm3[4],xmm9[5],xmm3[5],xmm9[6],xmm3[6],xmm9[7],xmm3[7]5806; SSE-NEXT: pxor %xmm4, %xmm45807; SSE-NEXT: movdqa %xmm9, %xmm135808; SSE-NEXT: shufps {{.*#+}} xmm9 = xmm9[1,0],xmm10[0,0]5809; SSE-NEXT: shufps {{.*#+}} xmm9 = xmm9[2,0],xmm10[2,3]5810; SSE-NEXT: psrlq $48, %xmm105811; SSE-NEXT: psrldq {{.*#+}} xmm13 = xmm13[10,11,12,13,14,15],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero5812; SSE-NEXT: punpcklwd {{.*#+}} xmm13 = xmm13[0],xmm10[0],xmm13[1],xmm10[1],xmm13[2],xmm10[2],xmm13[3],xmm10[3]5813; SSE-NEXT: pshuflw {{.*#+}} xmm10 = xmm9[3,1,2,3,4,5,6,7]5814; SSE-NEXT: pshufd {{.*#+}} xmm10 = xmm10[0,1,0,3]5815; SSE-NEXT: pshufhw {{.*#+}} xmm10 = xmm10[0,1,2,3,4,4,5,7]5816; SSE-NEXT: packuswb %xmm13, %xmm105817; SSE-NEXT: movdqa %xmm15, %xmm135818; SSE-NEXT: pandn %xmm10, %xmm135819; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload5820; SSE-NEXT: movdqa %xmm3, %xmm105821; SSE-NEXT: punpckhbw {{.*#+}} xmm10 = xmm10[8],xmm4[8],xmm10[9],xmm4[9],xmm10[10],xmm4[10],xmm10[11],xmm4[11],xmm10[12],xmm4[12],xmm10[13],xmm4[13],xmm10[14],xmm4[14],xmm10[15],xmm4[15]5822; SSE-NEXT: pshufd {{.*#+}} xmm10 = xmm10[1,1,2,3]5823; SSE-NEXT: pshufhw {{.*#+}} xmm10 = xmm10[0,1,2,3,5,5,5,5]5824; SSE-NEXT: movdqa %xmm0, %xmm95825; SSE-NEXT: pandn %xmm10, %xmm95826; SSE-NEXT: punpcklbw {{.*#+}} 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]5827; SSE-NEXT: pshufhw {{.*#+}} xmm10 = xmm3[0,1,2,3,7,5,6,7]5828; SSE-NEXT: pshufd {{.*#+}} xmm10 = xmm10[0,2,2,3]5829; SSE-NEXT: pshuflw {{.*#+}} xmm14 = xmm10[3,1,1,2,4,5,6,7]5830; SSE-NEXT: pand %xmm0, %xmm145831; SSE-NEXT: por %xmm9, %xmm145832; SSE-NEXT: packuswb %xmm14, %xmm145833; SSE-NEXT: pand %xmm15, %xmm145834; SSE-NEXT: por %xmm13, %xmm145835; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload5836; SSE-NEXT: movdqa %xmm3, %xmm95837; SSE-NEXT: punpckhbw {{.*#+}} 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]5838; SSE-NEXT: pshufhw {{.*#+}} xmm10 = xmm3[0,1,2,3,7,5,6,7]5839; SSE-NEXT: pshufd {{.*#+}} xmm10 = xmm10[0,1,2,0]5840; SSE-NEXT: pshufhw {{.*#+}} xmm10 = xmm10[0,1,2,3,5,5,7,4]5841; SSE-NEXT: movdqa %xmm11, %xmm135842; SSE-NEXT: pandn %xmm10, %xmm135843; SSE-NEXT: punpcklbw {{.*#+}} xmm9 = xmm9[0],xmm4[0],xmm9[1],xmm4[1],xmm9[2],xmm4[2],xmm9[3],xmm4[3],xmm9[4],xmm4[4],xmm9[5],xmm4[5],xmm9[6],xmm4[6],xmm9[7],xmm4[7]5844; SSE-NEXT: pshufd {{.*#+}} xmm9 = xmm9[0,3,1,1]5845; SSE-NEXT: pshuflw {{.*#+}} xmm9 = xmm9[0,1,1,3,4,5,6,7]5846; SSE-NEXT: pand %xmm11, %xmm95847; SSE-NEXT: por %xmm9, %xmm135848; SSE-NEXT: packuswb %xmm13, %xmm95849; SSE-NEXT: movdqa %xmm1, %xmm135850; SSE-NEXT: pandn %xmm9, %xmm135851; SSE-NEXT: pand %xmm1, %xmm145852; SSE-NEXT: por %xmm14, %xmm135853; SSE-NEXT: movdqa (%rsp), %xmm3 # 16-byte Reload5854; SSE-NEXT: movdqa %xmm3, %xmm95855; SSE-NEXT: punpckhbw {{.*#+}} xmm9 = xmm9[8],xmm4[8],xmm9[9],xmm4[9],xmm9[10],xmm4[10],xmm9[11],xmm4[11],xmm9[12],xmm4[12],xmm9[13],xmm4[13],xmm9[14],xmm4[14],xmm9[15],xmm4[15]5856; SSE-NEXT: punpcklbw {{.*#+}} 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]5857; SSE-NEXT: movdqa %xmm3, %xmm105858; SSE-NEXT: shufps {{.*#+}} xmm3 = xmm3[1,0],xmm9[0,0]5859; SSE-NEXT: shufps {{.*#+}} xmm3 = xmm3[2,0],xmm9[2,3]5860; SSE-NEXT: psrlq $48, %xmm95861; SSE-NEXT: psrldq {{.*#+}} xmm10 = xmm10[10,11,12,13,14,15],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero5862; SSE-NEXT: punpcklwd {{.*#+}} xmm10 = xmm10[0],xmm9[0],xmm10[1],xmm9[1],xmm10[2],xmm9[2],xmm10[3],xmm9[3]5863; SSE-NEXT: pshuflw {{.*#+}} xmm9 = xmm3[3,1,2,3,4,5,6,7]5864; SSE-NEXT: pshufd {{.*#+}} xmm9 = xmm9[0,1,0,3]5865; SSE-NEXT: pshufhw {{.*#+}} xmm9 = xmm9[0,1,2,3,4,4,5,7]5866; SSE-NEXT: packuswb %xmm10, %xmm95867; SSE-NEXT: movdqa %xmm6, %xmm105868; SSE-NEXT: punpckhbw {{.*#+}} xmm10 = xmm10[8],xmm5[8],xmm10[9],xmm5[9],xmm10[10],xmm5[10],xmm10[11],xmm5[11],xmm10[12],xmm5[12],xmm10[13],xmm5[13],xmm10[14],xmm5[14],xmm10[15],xmm5[15]5869; SSE-NEXT: pshufd {{.*#+}} xmm10 = xmm10[1,1,2,3]5870; SSE-NEXT: pshufhw {{.*#+}} xmm10 = xmm10[0,1,2,3,5,5,5,5]5871; SSE-NEXT: punpcklbw {{.*#+}} xmm6 = 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]5872; SSE-NEXT: pshufhw {{.*#+}} xmm14 = xmm6[0,1,2,3,7,5,6,7]5873; SSE-NEXT: pshufd {{.*#+}} xmm14 = xmm14[0,2,2,3]5874; SSE-NEXT: pshuflw {{.*#+}} xmm14 = xmm14[3,1,1,2,4,5,6,7]5875; SSE-NEXT: pand %xmm0, %xmm145876; SSE-NEXT: pandn %xmm10, %xmm05877; SSE-NEXT: por %xmm14, %xmm05878; SSE-NEXT: packuswb %xmm0, %xmm05879; SSE-NEXT: pand %xmm15, %xmm05880; SSE-NEXT: pandn %xmm9, %xmm155881; SSE-NEXT: por %xmm15, %xmm05882; SSE-NEXT: movdqa %xmm2, %xmm45883; SSE-NEXT: punpcklbw {{.*#+}} 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]5884; SSE-NEXT: punpckhbw {{.*#+}} 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]5885; SSE-NEXT: pshufd {{.*#+}} xmm4 = xmm4[0,3,1,1]5886; SSE-NEXT: pshuflw {{.*#+}} xmm4 = xmm4[0,1,1,3,4,5,6,7]5887; SSE-NEXT: pand %xmm11, %xmm45888; SSE-NEXT: pshufhw {{.*#+}} xmm5 = xmm2[0,1,2,3,7,5,6,7]5889; SSE-NEXT: pshufd {{.*#+}} xmm5 = xmm5[0,1,2,0]5890; SSE-NEXT: pshufhw {{.*#+}} xmm5 = xmm5[0,1,2,3,5,5,7,4]5891; SSE-NEXT: pandn %xmm5, %xmm115892; SSE-NEXT: por %xmm4, %xmm115893; SSE-NEXT: pand %xmm1, %xmm05894; SSE-NEXT: packuswb %xmm11, %xmm45895; SSE-NEXT: pandn %xmm4, %xmm15896; SSE-NEXT: por %xmm0, %xmm15897; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5898; SSE-NEXT: movaps %xmm0, 16(%rsi)5899; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5900; SSE-NEXT: movaps %xmm0, 32(%rsi)5901; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5902; SSE-NEXT: movaps %xmm0, 48(%rsi)5903; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5904; SSE-NEXT: movaps %xmm0, (%rsi)5905; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5906; SSE-NEXT: movaps %xmm0, 16(%rdx)5907; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5908; SSE-NEXT: movaps %xmm0, 32(%rdx)5909; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5910; SSE-NEXT: movaps %xmm0, 48(%rdx)5911; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5912; SSE-NEXT: movaps %xmm0, (%rdx)5913; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5914; SSE-NEXT: movaps %xmm0, 16(%rcx)5915; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5916; SSE-NEXT: movaps %xmm0, 32(%rcx)5917; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5918; SSE-NEXT: movaps %xmm0, 48(%rcx)5919; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5920; SSE-NEXT: movaps %xmm0, (%rcx)5921; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5922; SSE-NEXT: movaps %xmm0, 16(%r8)5923; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5924; SSE-NEXT: movaps %xmm0, 32(%r8)5925; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5926; SSE-NEXT: movaps %xmm0, 48(%r8)5927; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5928; SSE-NEXT: movaps %xmm0, (%r8)5929; SSE-NEXT: movdqa %xmm7, 16(%r9)5930; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5931; SSE-NEXT: movaps %xmm0, 32(%r9)5932; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5933; SSE-NEXT: movaps %xmm0, 48(%r9)5934; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5935; SSE-NEXT: movaps %xmm0, (%r9)5936; SSE-NEXT: movq {{[0-9]+}}(%rsp), %rax5937; SSE-NEXT: movdqa %xmm1, 16(%rax)5938; SSE-NEXT: movdqa %xmm13, 32(%rax)5939; SSE-NEXT: movdqa %xmm12, 48(%rax)5940; SSE-NEXT: movdqa %xmm8, (%rax)5941; SSE-NEXT: addq $792, %rsp # imm = 0x3185942; SSE-NEXT: retq5943;5944; AVX-LABEL: load_i8_stride6_vf64:5945; AVX: # %bb.0:5946; AVX-NEXT: subq $616, %rsp # imm = 0x2685947; AVX-NEXT: vmovdqa (%rdi), %xmm25948; AVX-NEXT: vmovdqa 16(%rdi), %xmm75949; AVX-NEXT: vmovdqa 32(%rdi), %xmm155950; AVX-NEXT: vmovdqa 48(%rdi), %xmm65951; AVX-NEXT: vmovdqa 224(%rdi), %xmm85952; AVX-NEXT: vmovdqa 240(%rdi), %xmm95953; AVX-NEXT: vmovdqa 208(%rdi), %xmm105954; AVX-NEXT: vmovdqa 192(%rdi), %xmm115955; AVX-NEXT: vmovq {{.*#+}} xmm3 = [128,128,128,4,10,0,0,0,0,0,0,0,0,0,0,0]5956; AVX-NEXT: vmovq {{.*#+}} xmm12 = [2,8,14,128,128,0,0,0,0,0,0,0,0,0,0,0]5957; AVX-NEXT: vmovd {{.*#+}} xmm13 = [2,8,14,0,0,0,0,0,0,0,0,0,0,0,0,0]5958; AVX-NEXT: vpshufb %xmm13, %xmm6, %xmm05959; AVX-NEXT: vbroadcastss {{.*#+}} xmm14 = [0,0,6,12,0,0,6,12,0,0,6,12,0,0,6,12]5960; AVX-NEXT: vpshufb %xmm14, %xmm15, %xmm15961; AVX-NEXT: vmovdqa %xmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5962; AVX-NEXT: vpunpcklqdq {{.*#+}} xmm1 = xmm1[0],xmm0[0]5963; AVX-NEXT: vpshufb %xmm3, %xmm7, %xmm05964; AVX-NEXT: vmovdqa %xmm2, %xmm45965; AVX-NEXT: vpshufb %xmm12, %xmm2, %xmm25966; AVX-NEXT: vpor %xmm0, %xmm2, %xmm25967; AVX-NEXT: vmovdqa {{.*#+}} xmm5 = [0,0,0,0,0,255,255,255,255,255,255,u,u,u,u,u]5968; AVX-NEXT: vpblendvb %xmm5, %xmm1, %xmm2, %xmm15969; AVX-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5970; AVX-NEXT: vpshufb %xmm13, %xmm9, %xmm15971; AVX-NEXT: vpshufb %xmm14, %xmm8, %xmm25972; AVX-NEXT: vpunpcklqdq {{.*#+}} xmm1 = xmm2[0],xmm1[0]5973; AVX-NEXT: vpshufb %xmm3, %xmm10, %xmm25974; AVX-NEXT: vpshufb %xmm12, %xmm11, %xmm35975; AVX-NEXT: vpor %xmm2, %xmm3, %xmm25976; AVX-NEXT: vpblendvb %xmm5, %xmm1, %xmm2, %xmm15977; AVX-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5978; AVX-NEXT: vmovd {{.*#+}} xmm13 = [3,9,15,0,0,0,0,0,0,0,0,0,0,0,0,0]5979; AVX-NEXT: vpshufb %xmm13, %xmm6, %xmm15980; AVX-NEXT: vbroadcastss {{.*#+}} xmm0 = [0,1,7,13,0,1,7,13,0,1,7,13,0,1,7,13]5981; AVX-NEXT: vpshufb %xmm0, %xmm15, %xmm25982; AVX-NEXT: vpunpcklqdq {{.*#+}} xmm1 = xmm2[0],xmm1[0]5983; AVX-NEXT: vmovq {{.*#+}} xmm15 = [128,128,128,5,11,0,0,0,0,0,0,0,0,0,0,0]5984; AVX-NEXT: vmovq {{.*#+}} xmm12 = [3,9,15,128,128,0,0,0,0,0,0,0,0,0,0,0]5985; AVX-NEXT: vpshufb %xmm15, %xmm7, %xmm25986; AVX-NEXT: vmovdqa %xmm7, %xmm145987; AVX-NEXT: vpshufb %xmm12, %xmm4, %xmm35988; AVX-NEXT: vmovdqa %xmm4, %xmm75989; AVX-NEXT: vpor %xmm2, %xmm3, %xmm25990; AVX-NEXT: vpblendvb %xmm5, %xmm1, %xmm2, %xmm15991; AVX-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5992; AVX-NEXT: vpshufb %xmm13, %xmm9, %xmm15993; AVX-NEXT: vmovdqa %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5994; AVX-NEXT: vpshufb %xmm0, %xmm8, %xmm25995; AVX-NEXT: vpunpcklqdq {{.*#+}} xmm1 = xmm2[0],xmm1[0]5996; AVX-NEXT: vpshufb %xmm15, %xmm10, %xmm25997; AVX-NEXT: vpshufb %xmm12, %xmm11, %xmm35998; AVX-NEXT: vpor %xmm2, %xmm3, %xmm25999; AVX-NEXT: vpblendvb %xmm5, %xmm1, %xmm2, %xmm06000; AVX-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6001; AVX-NEXT: vmovq {{.*#+}} xmm12 = [4,10,128,128,128,0,0,0,0,0,0,0,0,0,0,0]6002; AVX-NEXT: vpshufb %xmm12, %xmm4, %xmm06003; AVX-NEXT: vmovq {{.*#+}} xmm13 = [128,128,0,6,12,0,0,0,0,0,0,0,0,0,0,0]6004; AVX-NEXT: vpshufb %xmm13, %xmm14, %xmm16005; AVX-NEXT: vpor %xmm0, %xmm1, %xmm16006; AVX-NEXT: vbroadcastss {{.*#+}} xmm4 = [4,10,0,0,4,10,0,0,4,10,0,0,4,10,0,0]6007; AVX-NEXT: vpshufb %xmm4, %xmm6, %xmm06008; AVX-NEXT: vbroadcastss {{.*#+}} xmm3 = [0,2,8,14,0,2,8,14,0,2,8,14,0,2,8,14]6009; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload6010; AVX-NEXT: vpshufb %xmm3, %xmm5, %xmm26011; AVX-NEXT: vpunpckhqdq {{.*#+}} xmm2 = xmm2[1],xmm0[1]6012; AVX-NEXT: vmovq {{.*#+}} xmm0 = [255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0]6013; AVX-NEXT: vpblendvb %xmm0, %xmm1, %xmm2, %xmm16014; AVX-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6015; AVX-NEXT: vpshufb %xmm12, %xmm11, %xmm16016; AVX-NEXT: vpshufb %xmm13, %xmm10, %xmm26017; AVX-NEXT: vmovdqa %xmm10, %xmm126018; AVX-NEXT: vpor %xmm1, %xmm2, %xmm16019; AVX-NEXT: vpshufb %xmm4, %xmm9, %xmm26020; AVX-NEXT: vmovdqa %xmm9, %xmm156021; AVX-NEXT: vmovdqa %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6022; AVX-NEXT: vpshufb %xmm3, %xmm8, %xmm36023; AVX-NEXT: vpunpckhqdq {{.*#+}} xmm2 = xmm3[1],xmm2[1]6024; AVX-NEXT: vpblendvb %xmm0, %xmm1, %xmm2, %xmm16025; AVX-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6026; AVX-NEXT: vmovq {{.*#+}} xmm8 = [5,11,128,128,128,0,0,0,0,0,0,0,0,0,0,0]6027; AVX-NEXT: vmovdqa %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6028; AVX-NEXT: vpshufb %xmm8, %xmm7, %xmm16029; AVX-NEXT: vmovq {{.*#+}} xmm3 = [128,128,1,7,13,0,0,0,0,0,0,0,0,0,0,0]6030; AVX-NEXT: vmovdqa %xmm14, %xmm136031; AVX-NEXT: vpshufb %xmm3, %xmm14, %xmm26032; AVX-NEXT: vmovdqa %xmm3, %xmm146033; AVX-NEXT: vpor %xmm1, %xmm2, %xmm16034; AVX-NEXT: vbroadcastss {{.*#+}} xmm9 = [5,11,0,0,5,11,0,0,5,11,0,0,5,11,0,0]6035; AVX-NEXT: vpshufb %xmm9, %xmm6, %xmm26036; AVX-NEXT: vmovdqa %xmm6, %xmm106037; AVX-NEXT: vmovdqa %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6038; AVX-NEXT: vbroadcastss {{.*#+}} xmm4 = [0,3,9,15,0,3,9,15,0,3,9,15,0,3,9,15]6039; AVX-NEXT: vpshufb %xmm4, %xmm5, %xmm36040; AVX-NEXT: vpunpckhqdq {{.*#+}} xmm2 = xmm3[1],xmm2[1]6041; AVX-NEXT: vpblendvb %xmm0, %xmm1, %xmm2, %xmm16042; AVX-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6043; AVX-NEXT: vpshufb %xmm8, %xmm11, %xmm16044; AVX-NEXT: vmovdqa %xmm11, %xmm86045; AVX-NEXT: vmovdqa %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6046; AVX-NEXT: vpshufb %xmm14, %xmm12, %xmm26047; AVX-NEXT: vmovdqa %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6048; AVX-NEXT: vpor %xmm1, %xmm2, %xmm16049; AVX-NEXT: vpshufb %xmm9, %xmm15, %xmm26050; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload6051; AVX-NEXT: vpshufb %xmm4, %xmm6, %xmm36052; AVX-NEXT: vpunpckhqdq {{.*#+}} xmm2 = xmm3[1],xmm2[1]6053; AVX-NEXT: vpblendvb %xmm0, %xmm1, %xmm2, %xmm06054; AVX-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6055; AVX-NEXT: vmovq {{.*#+}} xmm3 = [128,128,128,2,8,14,0,0,0,0,0,0,0,0,0,0]6056; AVX-NEXT: vmovdqa 112(%rdi), %xmm06057; AVX-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6058; AVX-NEXT: vpshufb %xmm3, %xmm0, %xmm06059; AVX-NEXT: vmovq {{.*#+}} xmm15 = [0,6,12,128,128,128,0,0,0,0,0,0,0,0,0,0]6060; AVX-NEXT: vmovdqa 96(%rdi), %xmm16061; AVX-NEXT: vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6062; AVX-NEXT: vpshufb %xmm15, %xmm1, %xmm16063; AVX-NEXT: vpor %xmm0, %xmm1, %xmm06064; AVX-NEXT: vmovddup {{.*#+}} xmm11 = [0,0,0,128,128,128,4,10,0,0,0,128,128,128,4,10]6065; AVX-NEXT: # xmm11 = mem[0,0]6066; AVX-NEXT: vmovdqa 80(%rdi), %xmm16067; AVX-NEXT: vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6068; AVX-NEXT: vpshufb %xmm11, %xmm1, %xmm16069; AVX-NEXT: vmovdqa 64(%rdi), %xmm26070; AVX-NEXT: vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6071; AVX-NEXT: vpshufb {{.*#+}} xmm2 = xmm2[u,u,u,u,u,u,u,u,u,u,u,2,8,14],zero,zero6072; AVX-NEXT: vpor %xmm1, %xmm2, %xmm16073; AVX-NEXT: vinsertf128 $1, %xmm0, %ymm1, %ymm26074; AVX-NEXT: vmovd {{.*#+}} xmm14 = [0,0,4,10,0,0,0,0,0,0,0,0,0,0,0,0]6075; AVX-NEXT: vpshufb %xmm14, %xmm5, %xmm46076; AVX-NEXT: vbroadcastss {{.*#+}} xmm1 = [0,6,12,0,0,6,12,0,0,6,12,0,0,6,12,0]6077; AVX-NEXT: vpshufb %xmm1, %xmm10, %xmm56078; AVX-NEXT: vpunpckldq {{.*#+}} xmm4 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]6079; AVX-NEXT: vmovdqa %xmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6080; AVX-NEXT: vpshufb %xmm3, %xmm13, %xmm56081; AVX-NEXT: vpshufb %xmm15, %xmm7, %xmm96082; AVX-NEXT: vpor %xmm5, %xmm9, %xmm56083; AVX-NEXT: vpblendw {{.*#+}} xmm4 = xmm5[0,1,2],xmm4[3,4,5],xmm5[6,7]6084; AVX-NEXT: vmovaps {{.*#+}} ymm13 = [255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255]6085; AVX-NEXT: vandnps %ymm2, %ymm13, %ymm26086; AVX-NEXT: vandps %ymm4, %ymm13, %ymm46087; AVX-NEXT: vorps %ymm2, %ymm4, %ymm96088; AVX-NEXT: vmovdqa 128(%rdi), %xmm26089; AVX-NEXT: vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6090; AVX-NEXT: vpshufb %xmm14, %xmm2, %xmm26091; AVX-NEXT: vmovdqa 144(%rdi), %xmm46092; AVX-NEXT: vmovdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6093; AVX-NEXT: vpshufb %xmm1, %xmm4, %xmm46094; AVX-NEXT: vpunpckldq {{.*#+}} xmm4 = xmm4[0],xmm2[0],xmm4[1],xmm2[1]6095; AVX-NEXT: vmovdqa 176(%rdi), %xmm26096; AVX-NEXT: vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6097; AVX-NEXT: vpshufb %xmm11, %xmm2, %xmm26098; AVX-NEXT: vmovdqa 160(%rdi), %xmm56099; AVX-NEXT: vmovdqa %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6100; AVX-NEXT: vmovddup {{.*#+}} xmm0 = [0,0,0,2,8,14,128,128,0,0,0,2,8,14,128,128]6101; AVX-NEXT: # xmm0 = mem[0,0]6102; AVX-NEXT: vpshufb %xmm0, %xmm5, %xmm106103; AVX-NEXT: vpor %xmm2, %xmm10, %xmm106104; AVX-NEXT: vmovdqa {{.*#+}} ymm2 = [255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255]6105; AVX-NEXT: vpblendvb %xmm2, %xmm4, %xmm10, %xmm106106; AVX-NEXT: vmovdqa %ymm2, %ymm56107; AVX-NEXT: vmovaps {{.*#+}} ymm7 = [65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,0,0,0,0,0]6108; AVX-NEXT: vandps %ymm7, %ymm9, %ymm96109; AVX-NEXT: vinsertf128 $1, %xmm10, %ymm0, %ymm106110; AVX-NEXT: vandnps %ymm10, %ymm7, %ymm106111; AVX-NEXT: vorps %ymm10, %ymm9, %ymm46112; AVX-NEXT: vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6113; AVX-NEXT: vmovdqa 304(%rdi), %xmm26114; AVX-NEXT: vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6115; AVX-NEXT: vpshufb %xmm3, %xmm2, %xmm96116; AVX-NEXT: vmovdqa 288(%rdi), %xmm26117; AVX-NEXT: vmovdqa %xmm2, (%rsp) # 16-byte Spill6118; AVX-NEXT: vpshufb %xmm15, %xmm2, %xmm106119; AVX-NEXT: vpor %xmm9, %xmm10, %xmm96120; AVX-NEXT: vmovdqa 272(%rdi), %xmm26121; AVX-NEXT: vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6122; AVX-NEXT: vpshufb %xmm11, %xmm2, %xmm106123; AVX-NEXT: vmovdqa 256(%rdi), %xmm26124; AVX-NEXT: vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6125; AVX-NEXT: vpshufb %xmm0, %xmm2, %xmm116126; AVX-NEXT: vpor %xmm10, %xmm11, %xmm106127; AVX-NEXT: vinsertf128 $1, %xmm9, %ymm10, %ymm96128; AVX-NEXT: vpshufb %xmm14, %xmm6, %xmm106129; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload6130; AVX-NEXT: vpshufb %xmm1, %xmm2, %xmm116131; AVX-NEXT: vpunpckldq {{.*#+}} xmm10 = xmm11[0],xmm10[0],xmm11[1],xmm10[1]6132; AVX-NEXT: vpshufb %xmm3, %xmm12, %xmm36133; AVX-NEXT: vpshufb %xmm15, %xmm8, %xmm66134; AVX-NEXT: vpor %xmm3, %xmm6, %xmm36135; AVX-NEXT: vpblendw {{.*#+}} xmm3 = xmm3[0,1,2],xmm10[3,4,5],xmm3[6,7]6136; AVX-NEXT: vandnps %ymm9, %ymm13, %ymm66137; AVX-NEXT: vandps %ymm3, %ymm13, %ymm36138; AVX-NEXT: vmovaps %ymm13, %ymm116139; AVX-NEXT: vorps %ymm6, %ymm3, %ymm36140; AVX-NEXT: vmovdqa 320(%rdi), %xmm46141; AVX-NEXT: vmovdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6142; AVX-NEXT: vpshufb %xmm14, %xmm4, %xmm06143; AVX-NEXT: vmovdqa 336(%rdi), %xmm106144; AVX-NEXT: vpshufb %xmm1, %xmm10, %xmm16145; AVX-NEXT: vmovdqa %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6146; AVX-NEXT: vpunpckldq {{.*#+}} xmm0 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]6147; AVX-NEXT: vmovdqa 368(%rdi), %xmm16148; AVX-NEXT: vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6149; AVX-NEXT: vpshufb {{.*#+}} xmm1 = xmm1[u,u,u,u,u,u,u,u,u,u,u],zero,zero,zero,xmm1[4,10]6150; AVX-NEXT: vmovdqa 352(%rdi), %xmm46151; AVX-NEXT: vmovdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6152; AVX-NEXT: vpshufb {{.*#+}} xmm6 = xmm4[u,u,u,u,u,u,u,u,u,u,u,2,8,14],zero,zero6153; AVX-NEXT: vpor %xmm1, %xmm6, %xmm16154; AVX-NEXT: vpblendvb %xmm5, %xmm0, %xmm1, %xmm06155; AVX-NEXT: vandps %ymm7, %ymm3, %ymm16156; AVX-NEXT: vinsertf128 $1, %xmm0, %ymm0, %ymm06157; AVX-NEXT: vandnps %ymm0, %ymm7, %ymm06158; AVX-NEXT: vorps %ymm0, %ymm1, %ymm06159; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6160; AVX-NEXT: vmovq {{.*#+}} xmm8 = [128,128,128,3,9,15,0,0,0,0,0,0,0,0,0,0]6161; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6162; AVX-NEXT: vpshufb %xmm8, %xmm0, %xmm06163; AVX-NEXT: vmovq {{.*#+}} xmm4 = [1,7,13,128,128,128,0,0,0,0,0,0,0,0,0,0]6164; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload6165; AVX-NEXT: vpshufb %xmm4, %xmm1, %xmm16166; AVX-NEXT: vpor %xmm0, %xmm1, %xmm06167; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload6168; AVX-NEXT: vpshufb {{.*#+}} xmm1 = xmm1[u,u,u,u,u,u,u,u,u,u,u],zero,zero,zero,xmm1[5,11]6169; AVX-NEXT: vmovddup {{.*#+}} xmm9 = [0,0,0,3,9,15,128,128,0,0,0,3,9,15,128,128]6170; AVX-NEXT: # xmm9 = mem[0,0]6171; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload6172; AVX-NEXT: vpshufb %xmm9, %xmm5, %xmm146173; AVX-NEXT: vpor %xmm1, %xmm14, %xmm16174; AVX-NEXT: vinsertf128 $1, %xmm0, %ymm1, %ymm146175; AVX-NEXT: vmovd {{.*#+}} xmm3 = [0,0,5,11,0,0,0,0,0,0,0,0,0,0,0,0]6176; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6177; AVX-NEXT: vpshufb %xmm3, %xmm0, %xmm06178; AVX-NEXT: vbroadcastss {{.*#+}} xmm7 = [1,7,13,0,1,7,13,0,1,7,13,0,1,7,13,0]6179; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload6180; AVX-NEXT: vpshufb %xmm7, %xmm6, %xmm156181; AVX-NEXT: vpunpckldq {{.*#+}} xmm0 = xmm15[0],xmm0[0],xmm15[1],xmm0[1]6182; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload6183; AVX-NEXT: vpshufb %xmm8, %xmm6, %xmm156184; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload6185; AVX-NEXT: vpshufb %xmm4, %xmm6, %xmm136186; AVX-NEXT: vpor %xmm15, %xmm13, %xmm136187; AVX-NEXT: vpblendw {{.*#+}} xmm0 = xmm13[0,1,2],xmm0[3,4,5],xmm13[6,7]6188; AVX-NEXT: vandnps %ymm14, %ymm11, %ymm136189; AVX-NEXT: vandps %ymm0, %ymm11, %ymm06190; AVX-NEXT: vorps %ymm0, %ymm13, %ymm06191; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Reload6192; AVX-NEXT: vpshufb %xmm3, %xmm12, %xmm136193; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Reload6194; AVX-NEXT: vpshufb %xmm7, %xmm11, %xmm146195; AVX-NEXT: vpunpckldq {{.*#+}} xmm13 = xmm14[0],xmm13[0],xmm14[1],xmm13[1]6196; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload6197; AVX-NEXT: vmovddup {{.*#+}} xmm1 = [0,0,0,128,128,128,5,11,0,0,0,128,128,128,5,11]6198; AVX-NEXT: # xmm1 = mem[0,0]6199; AVX-NEXT: vpshufb %xmm1, %xmm6, %xmm146200; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload6201; AVX-NEXT: vpshufb %xmm9, %xmm15, %xmm156202; AVX-NEXT: vpor %xmm14, %xmm15, %xmm146203; AVX-NEXT: vmovdqa {{.*#+}} ymm15 = [255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255]6204; AVX-NEXT: vpblendvb %xmm15, %xmm13, %xmm14, %xmm136205; AVX-NEXT: vmovaps {{.*#+}} ymm15 = [65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,0,0,0,0,0]6206; AVX-NEXT: vandps %ymm0, %ymm15, %ymm06207; AVX-NEXT: vinsertf128 $1, %xmm13, %ymm0, %ymm136208; AVX-NEXT: vandnps %ymm13, %ymm15, %ymm136209; AVX-NEXT: vorps %ymm0, %ymm13, %ymm06210; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6211; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6212; AVX-NEXT: vpshufb %xmm8, %xmm0, %xmm06213; AVX-NEXT: vmovdqa (%rsp), %xmm13 # 16-byte Reload6214; AVX-NEXT: vpshufb %xmm4, %xmm13, %xmm136215; AVX-NEXT: vpor %xmm0, %xmm13, %xmm06216; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload6217; AVX-NEXT: vpshufb %xmm1, %xmm13, %xmm136218; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload6219; AVX-NEXT: vpshufb %xmm9, %xmm14, %xmm146220; AVX-NEXT: vpor %xmm13, %xmm14, %xmm136221; AVX-NEXT: vinsertf128 $1, %xmm0, %ymm13, %ymm06222; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload6223; AVX-NEXT: vpshufb %xmm3, %xmm13, %xmm136224; AVX-NEXT: vpshufb %xmm7, %xmm2, %xmm146225; AVX-NEXT: vpunpckldq {{.*#+}} xmm13 = xmm14[0],xmm13[0],xmm14[1],xmm13[1]6226; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload6227; AVX-NEXT: vpshufb %xmm8, %xmm2, %xmm86228; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload6229; AVX-NEXT: vpshufb %xmm4, %xmm2, %xmm46230; AVX-NEXT: vpor %xmm4, %xmm8, %xmm46231; AVX-NEXT: vpblendw {{.*#+}} xmm4 = xmm4[0,1,2],xmm13[3,4,5],xmm4[6,7]6232; AVX-NEXT: vmovaps {{.*#+}} ymm1 = [255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255]6233; AVX-NEXT: vandnps %ymm0, %ymm1, %ymm06234; AVX-NEXT: vandps %ymm1, %ymm4, %ymm46235; AVX-NEXT: vorps %ymm0, %ymm4, %ymm06236; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload6237; AVX-NEXT: vpshufb %xmm3, %xmm2, %xmm36238; AVX-NEXT: vpshufb %xmm7, %xmm10, %xmm16239; AVX-NEXT: vpunpckldq {{.*#+}} xmm1 = xmm1[0],xmm3[0],xmm1[1],xmm3[1]6240; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload6241; AVX-NEXT: vpshufb {{.*#+}} xmm3 = xmm14[u,u,u,u,u,u,u,u,u,u,u],zero,zero,zero,xmm14[5,11]6242; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload6243; AVX-NEXT: vpshufb %xmm9, %xmm4, %xmm46244; AVX-NEXT: vpor %xmm3, %xmm4, %xmm36245; AVX-NEXT: vmovdqa {{.*#+}} ymm8 = [255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255]6246; AVX-NEXT: vpblendvb %xmm8, %xmm1, %xmm3, %xmm16247; AVX-NEXT: vandps %ymm0, %ymm15, %ymm06248; AVX-NEXT: vinsertf128 $1, %xmm1, %ymm0, %ymm16249; AVX-NEXT: vandnps %ymm1, %ymm15, %ymm16250; AVX-NEXT: vorps %ymm1, %ymm0, %ymm06251; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6252; AVX-NEXT: vmovq {{.*#+}} xmm9 = [128,128,128,4,10,0,0,0,0,0,0,0,0,0,0,0]6253; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload6254; AVX-NEXT: vpshufb %xmm9, %xmm10, %xmm06255; AVX-NEXT: vmovq {{.*#+}} xmm13 = [2,8,14,128,128,0,0,0,0,0,0,0,0,0,0,0]6256; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload6257; AVX-NEXT: vpshufb %xmm13, %xmm1, %xmm16258; AVX-NEXT: vpor %xmm0, %xmm1, %xmm16259; AVX-NEXT: vmovddup {{.*#+}} xmm0 = [0,0,0,4,10,128,128,128,0,0,0,4,10,128,128,128]6260; AVX-NEXT: # xmm0 = mem[0,0]6261; AVX-NEXT: vpshufb %xmm0, %xmm5, %xmm46262; AVX-NEXT: vmovddup {{.*#+}} xmm3 = [0,0,0,128,128,0,6,12,0,0,0,128,128,0,6,12]6263; AVX-NEXT: # xmm3 = mem[0,0]6264; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload6265; AVX-NEXT: vpshufb %xmm3, %xmm5, %xmm56266; AVX-NEXT: vpor %xmm4, %xmm5, %xmm46267; AVX-NEXT: vinsertf128 $1, %xmm1, %ymm4, %ymm16268; AVX-NEXT: vmovdqa %ymm8, %ymm96269; AVX-NEXT: vandnps %ymm1, %ymm8, %ymm16270; AVX-NEXT: vandps {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm4 # 32-byte Folded Reload6271; AVX-NEXT: vorps %ymm1, %ymm4, %ymm46272; AVX-NEXT: vmovd {{.*#+}} xmm13 = [2,8,14,0,0,0,0,0,0,0,0,0,0,0,0,0]6273; AVX-NEXT: vpshufb %xmm13, %xmm11, %xmm16274; AVX-NEXT: vbroadcastss {{.*#+}} xmm8 = [0,0,6,12,0,0,6,12,0,0,6,12,0,0,6,12]6275; AVX-NEXT: vpshufb %xmm8, %xmm12, %xmm56276; AVX-NEXT: vpunpcklqdq {{.*#+}} xmm1 = xmm5[0],xmm1[0]6277; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload6278; AVX-NEXT: vpshufb %xmm0, %xmm7, %xmm56279; AVX-NEXT: vmovdqa %xmm6, %xmm156280; AVX-NEXT: vpshufb %xmm3, %xmm6, %xmm66281; AVX-NEXT: vpor %xmm5, %xmm6, %xmm56282; AVX-NEXT: vpblendvb %xmm9, %xmm1, %xmm5, %xmm56283; AVX-NEXT: vmovaps {{.*#+}} ymm1 = [255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0]6284; AVX-NEXT: vandps %ymm1, %ymm4, %ymm46285; AVX-NEXT: vinsertf128 $1, %xmm5, %ymm0, %ymm56286; AVX-NEXT: vandnps %ymm5, %ymm1, %ymm56287; AVX-NEXT: vorps %ymm5, %ymm4, %ymm16288; AVX-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6289; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Reload6290; AVX-NEXT: vpshufb {{.*#+}} xmm4 = zero,zero,zero,xmm12[4,10,u,u,u,u,u,u,u,u,u,u,u]6291; AVX-NEXT: vmovdqa (%rsp), %xmm1 # 16-byte Reload6292; AVX-NEXT: vpshufb {{.*#+}} xmm5 = xmm1[2,8,14],zero,zero,xmm1[u,u,u,u,u,u,u,u,u,u,u]6293; AVX-NEXT: vpor %xmm4, %xmm5, %xmm46294; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Reload6295; AVX-NEXT: vpshufb %xmm0, %xmm11, %xmm56296; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload6297; AVX-NEXT: vpshufb %xmm3, %xmm6, %xmm66298; AVX-NEXT: vpor %xmm5, %xmm6, %xmm56299; AVX-NEXT: vinsertf128 $1, %xmm4, %ymm5, %ymm46300; AVX-NEXT: vandnps %ymm4, %ymm9, %ymm46301; AVX-NEXT: vandps {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm5 # 32-byte Folded Reload6302; AVX-NEXT: vorps %ymm4, %ymm5, %ymm46303; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload6304; AVX-NEXT: vpshufb %xmm13, %xmm1, %xmm56305; AVX-NEXT: vpshufb %xmm8, %xmm2, %xmm66306; AVX-NEXT: vpunpcklqdq {{.*#+}} xmm5 = xmm6[0],xmm5[0]6307; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload6308; AVX-NEXT: vpshufb %xmm0, %xmm2, %xmm06309; AVX-NEXT: vpshufb %xmm3, %xmm14, %xmm36310; AVX-NEXT: vpor %xmm0, %xmm3, %xmm06311; AVX-NEXT: vpblendvb %xmm9, %xmm5, %xmm0, %xmm06312; AVX-NEXT: vmovaps {{.*#+}} ymm5 = [255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0]6313; AVX-NEXT: vandps %ymm5, %ymm4, %ymm36314; AVX-NEXT: vinsertf128 $1, %xmm0, %ymm0, %ymm06315; AVX-NEXT: vandnps %ymm0, %ymm5, %ymm06316; AVX-NEXT: vorps %ymm0, %ymm3, %ymm06317; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6318; AVX-NEXT: vmovq {{.*#+}} xmm14 = [128,128,128,5,11,0,0,0,0,0,0,0,0,0,0,0]6319; AVX-NEXT: vpshufb %xmm14, %xmm10, %xmm06320; AVX-NEXT: vmovq {{.*#+}} xmm13 = [3,9,15,128,128,0,0,0,0,0,0,0,0,0,0,0]6321; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload6322; AVX-NEXT: vpshufb %xmm13, %xmm14, %xmm36323; AVX-NEXT: vpor %xmm0, %xmm3, %xmm06324; AVX-NEXT: vmovddup {{.*#+}} xmm3 = [0,0,0,5,11,128,128,128,0,0,0,5,11,128,128,128]6325; AVX-NEXT: # xmm3 = mem[0,0]6326; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload6327; AVX-NEXT: vpshufb %xmm3, %xmm4, %xmm46328; AVX-NEXT: vmovddup {{.*#+}} xmm5 = [0,0,0,128,128,1,7,13,0,0,0,128,128,1,7,13]6329; AVX-NEXT: # xmm5 = mem[0,0]6330; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload6331; AVX-NEXT: vpshufb %xmm5, %xmm10, %xmm66332; AVX-NEXT: vpor %xmm4, %xmm6, %xmm46333; AVX-NEXT: vinsertf128 $1, %xmm0, %ymm4, %ymm06334; AVX-NEXT: vmovdqa %ymm9, %ymm136335; AVX-NEXT: vandnps %ymm0, %ymm9, %ymm06336; AVX-NEXT: vandps {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm4 # 32-byte Folded Reload6337; AVX-NEXT: vorps %ymm0, %ymm4, %ymm06338; AVX-NEXT: vmovd {{.*#+}} xmm8 = [3,9,15,0,0,0,0,0,0,0,0,0,0,0,0,0]6339; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload6340; AVX-NEXT: vpshufb %xmm8, %xmm4, %xmm46341; AVX-NEXT: vbroadcastss {{.*#+}} xmm9 = [0,1,7,13,0,1,7,13,0,1,7,13,0,1,7,13]6342; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload6343; AVX-NEXT: vpshufb %xmm9, %xmm6, %xmm66344; AVX-NEXT: vpunpcklqdq {{.*#+}} xmm4 = xmm6[0],xmm4[0]6345; AVX-NEXT: vpshufb %xmm3, %xmm7, %xmm66346; AVX-NEXT: vpshufb %xmm5, %xmm15, %xmm76347; AVX-NEXT: vmovdqa %xmm15, %xmm86348; AVX-NEXT: vpor %xmm6, %xmm7, %xmm66349; AVX-NEXT: vpblendvb %xmm13, %xmm4, %xmm6, %xmm46350; AVX-NEXT: vmovaps {{.*#+}} ymm7 = [255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0]6351; AVX-NEXT: vandps %ymm7, %ymm0, %ymm06352; AVX-NEXT: vinsertf128 $1, %xmm4, %ymm0, %ymm46353; AVX-NEXT: vandnps %ymm4, %ymm7, %ymm46354; AVX-NEXT: vorps %ymm4, %ymm0, %ymm06355; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6356; AVX-NEXT: vpshufb {{.*#+}} xmm0 = zero,zero,zero,xmm12[5,11,u,u,u,u,u,u,u,u,u,u,u]6357; AVX-NEXT: vmovdqa (%rsp), %xmm12 # 16-byte Reload6358; AVX-NEXT: vpshufb {{.*#+}} xmm4 = xmm12[3,9,15],zero,zero,xmm12[u,u,u,u,u,u,u,u,u,u,u]6359; AVX-NEXT: vpor %xmm0, %xmm4, %xmm06360; AVX-NEXT: vpshufb %xmm3, %xmm11, %xmm46361; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload6362; AVX-NEXT: vpshufb %xmm5, %xmm15, %xmm66363; AVX-NEXT: vpor %xmm4, %xmm6, %xmm46364; AVX-NEXT: vinsertf128 $1, %xmm0, %ymm4, %ymm06365; AVX-NEXT: vpshufb {{.*#+}} xmm4 = xmm1[3,9,15,u,u,u,u,u,u,u,u,u,u,u,u,u]6366; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload6367; AVX-NEXT: vpshufb %xmm9, %xmm1, %xmm66368; AVX-NEXT: vpunpcklqdq {{.*#+}} xmm4 = xmm6[0],xmm4[0]6369; AVX-NEXT: vpshufb %xmm3, %xmm2, %xmm36370; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Reload6371; AVX-NEXT: vpshufb %xmm5, %xmm11, %xmm56372; AVX-NEXT: vpor %xmm3, %xmm5, %xmm36373; AVX-NEXT: vpblendvb %xmm13, %xmm4, %xmm3, %xmm36374; AVX-NEXT: vandnps %ymm0, %ymm13, %ymm06375; AVX-NEXT: vandps {{[-0-9]+}}(%r{{[sb]}}p), %ymm13, %ymm2 # 32-byte Folded Reload6376; AVX-NEXT: vorps %ymm0, %ymm2, %ymm06377; AVX-NEXT: vandps %ymm7, %ymm0, %ymm06378; AVX-NEXT: vinsertf128 $1, %xmm3, %ymm0, %ymm26379; AVX-NEXT: vandnps %ymm2, %ymm7, %ymm26380; AVX-NEXT: vorps %ymm2, %ymm0, %ymm06381; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6382; AVX-NEXT: vmovq {{.*#+}} xmm1 = [4,10,128,128,128,0,0,0,0,0,0,0,0,0,0,0]6383; AVX-NEXT: vpshufb %xmm1, %xmm14, %xmm06384; AVX-NEXT: vmovq {{.*#+}} xmm14 = [128,128,0,6,12,0,0,0,0,0,0,0,0,0,0,0]6385; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload6386; AVX-NEXT: vpshufb %xmm14, %xmm13, %xmm26387; AVX-NEXT: vpor %xmm0, %xmm2, %xmm06388; AVX-NEXT: vmovddup {{.*#+}} xmm3 = [0,0,128,128,128,2,8,14,0,0,128,128,128,2,8,14]6389; AVX-NEXT: # xmm3 = mem[0,0]6390; AVX-NEXT: vpshufb %xmm3, %xmm10, %xmm26391; AVX-NEXT: vmovddup {{.*#+}} xmm4 = [0,0,0,6,12,128,128,128,0,0,0,6,12,128,128,128]6392; AVX-NEXT: # xmm4 = mem[0,0]6393; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload6394; AVX-NEXT: vpshufb %xmm4, %xmm5, %xmm56395; AVX-NEXT: vpor %xmm2, %xmm5, %xmm26396; AVX-NEXT: vinsertf128 $1, %xmm0, %ymm2, %ymm26397; AVX-NEXT: vmovaps {{.*#+}} ymm10 = [0,0,0,0,0,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535]6398; AVX-NEXT: vandnps {{[-0-9]+}}(%r{{[sb]}}p), %ymm10, %ymm5 # 32-byte Folded Reload6399; AVX-NEXT: vandps %ymm2, %ymm10, %ymm26400; AVX-NEXT: vorps %ymm5, %ymm2, %ymm26401; AVX-NEXT: vpshufb %xmm3, %xmm8, %xmm56402; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6403; AVX-NEXT: vpshufb %xmm4, %xmm0, %xmm66404; AVX-NEXT: vpor %xmm5, %xmm6, %xmm56405; AVX-NEXT: vbroadcastss {{.*#+}} xmm8 = [4,10,0,0,4,10,0,0,4,10,0,0,4,10,0,0]6406; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload6407; AVX-NEXT: vpshufb %xmm8, %xmm14, %xmm66408; AVX-NEXT: vbroadcastss {{.*#+}} xmm9 = [0,2,8,14,0,2,8,14,0,2,8,14,0,2,8,14]6409; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6410; AVX-NEXT: vpshufb %xmm9, %xmm0, %xmm76411; AVX-NEXT: vpunpckhqdq {{.*#+}} xmm6 = xmm7[1],xmm6[1]6412; AVX-NEXT: vpblendw {{.*#+}} xmm5 = xmm6[0,1,2,3,4],xmm5[5,6,7]6413; AVX-NEXT: vmovaps {{.*#+}} ymm0 = [255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0]6414; AVX-NEXT: vandps %ymm0, %ymm2, %ymm26415; AVX-NEXT: vinsertf128 $1, %xmm5, %ymm0, %ymm56416; AVX-NEXT: vandnps %ymm5, %ymm0, %ymm56417; AVX-NEXT: vorps %ymm5, %ymm2, %ymm26418; AVX-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6419; AVX-NEXT: vpshufb %xmm1, %xmm12, %xmm56420; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload6421; AVX-NEXT: vpshufb {{.*#+}} xmm6 = zero,zero,xmm1[0,6,12,u,u,u,u,u,u,u,u,u,u,u]6422; AVX-NEXT: vpor %xmm5, %xmm6, %xmm56423; AVX-NEXT: vpshufb %xmm3, %xmm15, %xmm66424; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload6425; AVX-NEXT: vpshufb %xmm4, %xmm1, %xmm76426; AVX-NEXT: vpor %xmm6, %xmm7, %xmm66427; AVX-NEXT: vinsertf128 $1, %xmm5, %ymm6, %ymm56428; AVX-NEXT: vandnps {{[-0-9]+}}(%r{{[sb]}}p), %ymm10, %ymm6 # 32-byte Folded Reload6429; AVX-NEXT: vandps %ymm5, %ymm10, %ymm56430; AVX-NEXT: vorps %ymm6, %ymm5, %ymm56431; AVX-NEXT: vpshufb %xmm3, %xmm11, %xmm36432; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Reload6433; AVX-NEXT: vpshufb %xmm4, %xmm11, %xmm46434; AVX-NEXT: vpor %xmm3, %xmm4, %xmm36435; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Reload6436; AVX-NEXT: vpshufb %xmm8, %xmm12, %xmm46437; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload6438; AVX-NEXT: vpshufb %xmm9, %xmm1, %xmm66439; AVX-NEXT: vpunpckhqdq {{.*#+}} xmm4 = xmm6[1],xmm4[1]6440; AVX-NEXT: vpblendw {{.*#+}} xmm3 = xmm4[0,1,2,3,4],xmm3[5,6,7]6441; AVX-NEXT: vandps %ymm0, %ymm5, %ymm46442; AVX-NEXT: vinsertf128 $1, %xmm3, %ymm0, %ymm36443; AVX-NEXT: vandnps %ymm3, %ymm0, %ymm36444; AVX-NEXT: vorps %ymm3, %ymm4, %ymm26445; AVX-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6446; AVX-NEXT: vmovq {{.*#+}} xmm15 = [5,11,128,128,128,0,0,0,0,0,0,0,0,0,0,0]6447; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload6448; AVX-NEXT: vpshufb %xmm15, %xmm2, %xmm36449; AVX-NEXT: vmovq {{.*#+}} xmm4 = [128,128,1,7,13,0,0,0,0,0,0,0,0,0,0,0]6450; AVX-NEXT: vpshufb %xmm4, %xmm13, %xmm56451; AVX-NEXT: vpor %xmm3, %xmm5, %xmm36452; AVX-NEXT: vmovddup {{.*#+}} xmm5 = [0,0,128,128,128,3,9,15,0,0,128,128,128,3,9,15]6453; AVX-NEXT: # xmm5 = mem[0,0]6454; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload6455; AVX-NEXT: vpshufb %xmm5, %xmm2, %xmm76456; AVX-NEXT: vmovddup {{.*#+}} xmm6 = [0,0,1,7,13,128,128,128,0,0,1,7,13,128,128,128]6457; AVX-NEXT: # xmm6 = mem[0,0]6458; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload6459; AVX-NEXT: vpshufb %xmm6, %xmm2, %xmm86460; AVX-NEXT: vpor %xmm7, %xmm8, %xmm76461; AVX-NEXT: vinsertf128 $1, %xmm3, %ymm7, %ymm36462; AVX-NEXT: vandnps {{[-0-9]+}}(%r{{[sb]}}p), %ymm10, %ymm7 # 32-byte Folded Reload6463; AVX-NEXT: vandps %ymm3, %ymm10, %ymm36464; AVX-NEXT: vorps %ymm7, %ymm3, %ymm36465; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload6466; AVX-NEXT: vpshufb %xmm5, %xmm2, %xmm76467; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6468; AVX-NEXT: vpshufb %xmm6, %xmm0, %xmm86469; AVX-NEXT: vpor %xmm7, %xmm8, %xmm76470; AVX-NEXT: vbroadcastss {{.*#+}} xmm13 = [5,11,0,0,5,11,0,0,5,11,0,0,5,11,0,0]6471; AVX-NEXT: vpshufb %xmm13, %xmm14, %xmm86472; AVX-NEXT: vbroadcastss {{.*#+}} xmm14 = [0,3,9,15,0,3,9,15,0,3,9,15,0,3,9,15]6473; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6474; AVX-NEXT: vpshufb %xmm14, %xmm0, %xmm96475; AVX-NEXT: vpunpckhqdq {{.*#+}} xmm8 = xmm9[1],xmm8[1]6476; AVX-NEXT: vpblendw {{.*#+}} xmm7 = xmm8[0,1,2,3,4],xmm7[5,6,7]6477; AVX-NEXT: vmovaps {{.*#+}} ymm2 = [255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0]6478; AVX-NEXT: vandps %ymm2, %ymm3, %ymm36479; AVX-NEXT: vinsertf128 $1, %xmm7, %ymm0, %ymm76480; AVX-NEXT: vandnps %ymm7, %ymm2, %ymm76481; AVX-NEXT: vorps %ymm7, %ymm3, %ymm36482; AVX-NEXT: vmovdqa (%rsp), %xmm7 # 16-byte Reload6483; AVX-NEXT: vpshufb %xmm15, %xmm7, %xmm76484; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload6485; AVX-NEXT: vpshufb %xmm4, %xmm8, %xmm86486; AVX-NEXT: vpor %xmm7, %xmm8, %xmm76487; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload6488; AVX-NEXT: vpshufb %xmm5, %xmm4, %xmm86489; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload6490; AVX-NEXT: vpshufb %xmm6, %xmm4, %xmm96491; AVX-NEXT: vpor %xmm8, %xmm9, %xmm86492; AVX-NEXT: vinsertf128 $1, %xmm7, %ymm8, %ymm76493; AVX-NEXT: vandnps {{[-0-9]+}}(%r{{[sb]}}p), %ymm10, %ymm8 # 32-byte Folded Reload6494; AVX-NEXT: vandps %ymm7, %ymm10, %ymm06495; AVX-NEXT: vorps %ymm0, %ymm8, %ymm06496; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload6497; AVX-NEXT: vpshufb %xmm5, %xmm4, %xmm56498; AVX-NEXT: vpshufb %xmm6, %xmm11, %xmm66499; AVX-NEXT: vpor %xmm5, %xmm6, %xmm56500; AVX-NEXT: vpshufb %xmm13, %xmm12, %xmm66501; AVX-NEXT: vpshufb %xmm14, %xmm1, %xmm76502; AVX-NEXT: vpunpckhqdq {{.*#+}} xmm6 = xmm7[1],xmm6[1]6503; AVX-NEXT: vpblendw {{.*#+}} xmm5 = xmm6[0,1,2,3,4],xmm5[5,6,7]6504; AVX-NEXT: vandps %ymm2, %ymm0, %ymm06505; AVX-NEXT: vinsertf128 $1, %xmm5, %ymm0, %ymm56506; AVX-NEXT: vandnps %ymm5, %ymm2, %ymm16507; AVX-NEXT: vorps %ymm1, %ymm0, %ymm06508; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload6509; AVX-NEXT: vmovaps %ymm1, 32(%rsi)6510; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload6511; AVX-NEXT: vmovaps %ymm1, (%rsi)6512; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload6513; AVX-NEXT: vmovaps %ymm1, 32(%rdx)6514; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload6515; AVX-NEXT: vmovaps %ymm1, (%rdx)6516; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload6517; AVX-NEXT: vmovaps %ymm1, 32(%rcx)6518; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload6519; AVX-NEXT: vmovaps %ymm1, (%rcx)6520; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload6521; AVX-NEXT: vmovaps %ymm1, 32(%r8)6522; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload6523; AVX-NEXT: vmovaps %ymm1, (%r8)6524; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload6525; AVX-NEXT: vmovaps %ymm1, 32(%r9)6526; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload6527; AVX-NEXT: vmovaps %ymm1, (%r9)6528; AVX-NEXT: movq {{[0-9]+}}(%rsp), %rax6529; AVX-NEXT: vmovaps %ymm0, 32(%rax)6530; AVX-NEXT: vmovaps %ymm3, (%rax)6531; AVX-NEXT: addq $616, %rsp # imm = 0x2686532; AVX-NEXT: vzeroupper6533; AVX-NEXT: retq6534;6535; AVX2-LABEL: load_i8_stride6_vf64:6536; AVX2: # %bb.0:6537; AVX2-NEXT: subq $328, %rsp # imm = 0x1486538; AVX2-NEXT: vmovdqa 192(%rdi), %ymm76539; AVX2-NEXT: vmovdqa (%rdi), %ymm36540; AVX2-NEXT: vmovdqa 32(%rdi), %ymm56541; AVX2-NEXT: vmovdqu %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6542; AVX2-NEXT: vmovdqa 64(%rdi), %ymm06543; AVX2-NEXT: vmovdqa 96(%rdi), %ymm16544; AVX2-NEXT: vpmovsxbw {{.*#+}} ymm13 = [0,65535,0,0,65535,0,0,65535,65535,0,0,65535,0,0,65535,0]6545; AVX2-NEXT: vperm2i128 {{.*#+}} ymm2 = ymm0[0,1],ymm1[0,1]6546; AVX2-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6547; AVX2-NEXT: vperm2i128 {{.*#+}} ymm0 = ymm0[2,3],ymm1[2,3]6548; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6549; AVX2-NEXT: vpblendvb %ymm13, %ymm2, %ymm0, %ymm46550; AVX2-NEXT: vpshufb {{.*#+}} ymm0 = ymm4[u,u,u,u,u,u,u,u,u,u,u,2,8,14,4,10,16,22,28,18,24,30,u,u,u,u,u,u,u,u,u,u]6551; AVX2-NEXT: vpmovsxbw {{.*#+}} ymm1 = [65535,0,0,65535,0,0,65535,0,0,65535,0,0,65535,0,0,65535]6552; AVX2-NEXT: vpblendvb %ymm1, %ymm3, %ymm5, %ymm26553; AVX2-NEXT: vmovdqa %ymm3, %ymm56554; AVX2-NEXT: vmovdqu %ymm3, (%rsp) # 32-byte Spill6555; AVX2-NEXT: vmovdqa {{.*#+}} xmm10 = [0,6,12,128,128,128,4,10,128,128,128,u,u,u,u,u]6556; AVX2-NEXT: vpshufb %xmm10, %xmm2, %xmm96557; AVX2-NEXT: vextracti128 $1, %ymm2, %xmm36558; AVX2-NEXT: vmovdqa {{.*#+}} xmm11 = [128,128,128,2,8,14,128,128,0,6,12,u,u,u,u,u]6559; AVX2-NEXT: vpshufb %xmm11, %xmm3, %xmm126560; AVX2-NEXT: vpor %xmm9, %xmm12, %xmm96561; AVX2-NEXT: vpmovsxdq {{.*#+}} xmm12 = [18446744073709551615,16777215]6562; AVX2-NEXT: vpblendvb %ymm12, %ymm9, %ymm0, %ymm06563; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6564; AVX2-NEXT: vmovdqa 224(%rdi), %ymm86565; AVX2-NEXT: vpblendvb %ymm1, %ymm7, %ymm8, %ymm146566; AVX2-NEXT: vmovdqu %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6567; AVX2-NEXT: vpshufb %xmm10, %xmm14, %xmm06568; AVX2-NEXT: vextracti128 $1, %ymm14, %xmm156569; AVX2-NEXT: vpshufb %xmm11, %xmm15, %xmm106570; AVX2-NEXT: vpor %xmm0, %xmm10, %xmm16571; AVX2-NEXT: vmovdqa 288(%rdi), %ymm116572; AVX2-NEXT: vmovdqa 256(%rdi), %ymm06573; AVX2-NEXT: vperm2i128 {{.*#+}} ymm9 = ymm0[0,1],ymm11[0,1]6574; AVX2-NEXT: vperm2i128 {{.*#+}} ymm11 = ymm0[2,3],ymm11[2,3]6575; AVX2-NEXT: vpblendvb %ymm13, %ymm9, %ymm11, %ymm136576; AVX2-NEXT: vpshufb {{.*#+}} ymm0 = ymm13[u,u,u,u,u,u,u,u,u,u,u,2,8,14,4,10,16,22,28,18,24,30,u,u,u,u,u,u,u,u,u,u]6577; AVX2-NEXT: vpblendvb %ymm12, %ymm1, %ymm0, %ymm06578; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6579; AVX2-NEXT: vmovdqa {{.*#+}} xmm0 = [1,7,13,128,128,128,5,11,128,128,128,u,u,u,u,u]6580; AVX2-NEXT: vpshufb %xmm0, %xmm2, %xmm16581; AVX2-NEXT: vmovdqa {{.*#+}} xmm2 = [128,128,128,3,9,15,128,128,1,7,13,u,u,u,u,u]6582; AVX2-NEXT: vpshufb %xmm2, %xmm3, %xmm36583; AVX2-NEXT: vpor %xmm1, %xmm3, %xmm16584; AVX2-NEXT: vpbroadcastq {{.*#+}} ymm3 = [1,7,13,3,9,15,5,11,1,7,13,3,9,15,5,11,1,7,13,3,9,15,5,11,1,7,13,3,9,15,5,11]6585; AVX2-NEXT: vpshufb %ymm3, %ymm4, %ymm46586; AVX2-NEXT: vpblendvb %ymm12, %ymm1, %ymm4, %ymm16587; AVX2-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6588; AVX2-NEXT: vpshufb %xmm0, %xmm14, %xmm06589; AVX2-NEXT: vpshufb %xmm2, %xmm15, %xmm16590; AVX2-NEXT: vpor %xmm0, %xmm1, %xmm06591; AVX2-NEXT: vpshufb %ymm3, %ymm13, %ymm16592; AVX2-NEXT: vpblendvb %ymm12, %ymm0, %ymm1, %ymm06593; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6594; AVX2-NEXT: vpmovsxbw {{.*#+}} ymm13 = [65535,0,0,65535,0,0,65535,0,0,65535,0,0,65535,0,0,65535]6595; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload6596; AVX2-NEXT: vpblendvb %ymm13, %ymm10, %ymm5, %ymm16597; AVX2-NEXT: vextracti128 $1, %ymm1, %xmm26598; AVX2-NEXT: vmovdqa {{.*#+}} xmm6 = [128,128,128,4,10,128,128,128,2,8,14,u,u,u,u,u]6599; AVX2-NEXT: vpshufb %xmm6, %xmm2, %xmm36600; AVX2-NEXT: vmovdqa {{.*#+}} xmm4 = [2,8,14,128,128,0,6,12,128,128,128,u,u,u,u,u]6601; AVX2-NEXT: vpshufb %xmm4, %xmm1, %xmm56602; AVX2-NEXT: vpor %xmm3, %xmm5, %xmm56603; AVX2-NEXT: vpbroadcastq {{.*#+}} ymm14 = [2,8,14,4,10,0,6,12,2,8,14,4,10,0,6,12,2,8,14,4,10,0,6,12,2,8,14,4,10,0,6,12]6604; AVX2-NEXT: vpmovsxbw {{.*#+}} ymm0 = [65535,0,0,65535,0,0,65535,0,0,0,65535,0,0,65535,0,0]6605; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload6606; AVX2-NEXT: vpblendvb %ymm0, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm3 # 32-byte Folded Reload6607; AVX2-NEXT: vpshufb %ymm14, %ymm3, %ymm156608; AVX2-NEXT: vpblendvb %ymm12, %ymm5, %ymm15, %ymm56609; AVX2-NEXT: vmovdqu %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6610; AVX2-NEXT: vpblendvb %ymm13, %ymm8, %ymm7, %ymm56611; AVX2-NEXT: vmovdqa %ymm8, %ymm76612; AVX2-NEXT: vextracti128 $1, %ymm5, %xmm156613; AVX2-NEXT: vpshufb %xmm6, %xmm15, %xmm66614; AVX2-NEXT: vpshufb %xmm4, %xmm5, %xmm46615; AVX2-NEXT: vpor %xmm6, %xmm4, %xmm46616; AVX2-NEXT: vpblendvb %ymm0, %ymm11, %ymm9, %ymm06617; AVX2-NEXT: vpshufb %ymm14, %ymm0, %ymm66618; AVX2-NEXT: vpblendvb %ymm12, %ymm4, %ymm6, %ymm46619; AVX2-NEXT: vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6620; AVX2-NEXT: vmovdqa {{.*#+}} xmm4 = [128,128,128,5,11,128,128,128,3,9,15,u,u,u,u,u]6621; AVX2-NEXT: vpshufb %xmm4, %xmm2, %xmm26622; AVX2-NEXT: vmovdqa {{.*#+}} xmm6 = [3,9,15,128,128,1,7,13,128,128,128,u,u,u,u,u]6623; AVX2-NEXT: vpshufb %xmm6, %xmm1, %xmm16624; AVX2-NEXT: vpor %xmm2, %xmm1, %xmm16625; AVX2-NEXT: vpbroadcastq {{.*#+}} ymm2 = [3,9,15,5,11,1,7,13,3,9,15,5,11,1,7,13,3,9,15,5,11,1,7,13,3,9,15,5,11,1,7,13]6626; AVX2-NEXT: vpshufb %ymm2, %ymm3, %ymm36627; AVX2-NEXT: vpblendvb %ymm12, %ymm1, %ymm3, %ymm16628; AVX2-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6629; AVX2-NEXT: vpshufb %xmm4, %xmm15, %xmm16630; AVX2-NEXT: vpshufb %xmm6, %xmm5, %xmm36631; AVX2-NEXT: vpor %xmm1, %xmm3, %xmm16632; AVX2-NEXT: vpshufb %ymm2, %ymm0, %ymm06633; AVX2-NEXT: vpblendvb %ymm12, %ymm1, %ymm0, %ymm146634; AVX2-NEXT: vmovdqa 160(%rdi), %ymm06635; AVX2-NEXT: vmovdqa 128(%rdi), %ymm36636; AVX2-NEXT: vpmovsxbw {{.*#+}} ymm2 = [0,65535,0,0,65535,0,0,65535,0,0,65535,0,0,65535,0,0]6637; AVX2-NEXT: vpblendvb %ymm2, %ymm0, %ymm3, %ymm16638; AVX2-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6639; AVX2-NEXT: vpmovsxbw {{.*#+}} ymm1 = [65535,0,0,65535,0,0,65535,0,0,65535,0,0,65535,0,0,65535]6640; AVX2-NEXT: vpblendvb %ymm1, %ymm3, %ymm0, %ymm56641; AVX2-NEXT: vpblendvb %ymm13, %ymm0, %ymm3, %ymm156642; AVX2-NEXT: vmovdqa 352(%rdi), %ymm46643; AVX2-NEXT: vmovdqa 320(%rdi), %ymm66644; AVX2-NEXT: vpblendvb %ymm1, %ymm6, %ymm4, %ymm16645; AVX2-NEXT: vpblendvb %ymm13, %ymm4, %ymm6, %ymm126646; AVX2-NEXT: vpblendvb %ymm2, %ymm4, %ymm6, %ymm06647; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6648; AVX2-NEXT: vmovdqu (%rsp), %ymm0 # 32-byte Reload6649; AVX2-NEXT: vpblendvb %ymm2, %ymm10, %ymm0, %ymm86650; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6651; AVX2-NEXT: vpblendvb %ymm2, %ymm7, %ymm0, %ymm106652; AVX2-NEXT: vpmovsxbw {{.*#+}} ymm2 = [0,65535,0,0,65535,0,0,65535,65535,0,0,65535,0,0,65535,0]6653; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6654; AVX2-NEXT: vpblendvb %ymm2, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm13 # 32-byte Folded Reload6655; AVX2-NEXT: vpblendvb %ymm2, %ymm11, %ymm9, %ymm06656; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6657; AVX2-NEXT: vmovdqa {{.*#+}} xmm2 = [u,u,u,u,u,0,6,12,128,128,128,4,10,128,128,128]6658; AVX2-NEXT: vpshufb %xmm2, %xmm5, %xmm66659; AVX2-NEXT: vextracti128 $1, %ymm5, %xmm116660; AVX2-NEXT: vmovdqa {{.*#+}} xmm0 = [u,u,u,u,u,128,128,128,2,8,14,128,128,0,6,12]6661; AVX2-NEXT: vpshufb %xmm0, %xmm11, %xmm96662; AVX2-NEXT: vpor %xmm6, %xmm9, %xmm66663; AVX2-NEXT: vinserti128 $1, %xmm6, %ymm0, %ymm66664; AVX2-NEXT: vpmovsxwd {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm96665; AVX2-NEXT: vpblendvb %ymm9, {{[-0-9]+}}(%r{{[sb]}}p), %ymm6, %ymm3 # 32-byte Folded Reload6666; AVX2-NEXT: vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6667; AVX2-NEXT: vpshufb %xmm2, %xmm1, %xmm26668; AVX2-NEXT: vextracti128 $1, %ymm1, %xmm66669; AVX2-NEXT: vpshufb %xmm0, %xmm6, %xmm06670; AVX2-NEXT: vpor %xmm2, %xmm0, %xmm06671; AVX2-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm06672; AVX2-NEXT: vpblendvb %ymm9, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload6673; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6674; AVX2-NEXT: vmovdqa {{.*#+}} xmm0 = [u,u,u,u,u,1,7,13,128,128,128,5,11,128,128,128]6675; AVX2-NEXT: vpshufb %xmm0, %xmm5, %xmm26676; AVX2-NEXT: vmovdqa {{.*#+}} xmm5 = [u,u,u,u,u,128,128,128,3,9,15,128,128,1,7,13]6677; AVX2-NEXT: vpshufb %xmm5, %xmm11, %xmm116678; AVX2-NEXT: vpor %xmm2, %xmm11, %xmm26679; AVX2-NEXT: vinserti128 $1, %xmm2, %ymm0, %ymm26680; AVX2-NEXT: vpblendvb %ymm9, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload6681; AVX2-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6682; AVX2-NEXT: vpshufb %xmm0, %xmm1, %xmm06683; AVX2-NEXT: vpshufb %xmm5, %xmm6, %xmm16684; AVX2-NEXT: vpor %xmm0, %xmm1, %xmm06685; AVX2-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm06686; AVX2-NEXT: vpblendvb %ymm9, %ymm14, %ymm0, %ymm06687; AVX2-NEXT: vmovdqu %ymm0, (%rsp) # 32-byte Spill6688; AVX2-NEXT: vextracti128 $1, %ymm15, %xmm146689; AVX2-NEXT: vmovdqa {{.*#+}} xmm7 = [u,u,u,u,u,128,128,128,4,10,128,128,128,2,8,14]6690; AVX2-NEXT: vpshufb %xmm7, %xmm14, %xmm06691; AVX2-NEXT: vmovdqa {{.*#+}} xmm2 = [u,u,u,u,u,2,8,14,128,128,0,6,12,128,128,128]6692; AVX2-NEXT: vpshufb %xmm2, %xmm15, %xmm16693; AVX2-NEXT: vpor %xmm0, %xmm1, %xmm16694; AVX2-NEXT: vextracti128 $1, %ymm8, %xmm36695; AVX2-NEXT: vmovdqa {{.*#+}} xmm5 = [128,128,0,6,12,128,128,128,4,10,u,u,u,u,u,u]6696; AVX2-NEXT: vpshufb %xmm5, %xmm3, %xmm66697; AVX2-NEXT: vmovdqa {{.*#+}} xmm4 = [4,10,128,128,128,2,8,14,128,128,u,u,u,u,u,u]6698; AVX2-NEXT: vpshufb %xmm4, %xmm8, %xmm116699; AVX2-NEXT: vpor %xmm6, %xmm11, %xmm66700; AVX2-NEXT: vpbroadcastq {{.*#+}} ymm11 = [4,10,0,6,12,2,8,14,4,10,0,6,12,2,8,14,4,10,0,6,12,2,8,14,4,10,0,6,12,2,8,14]6701; AVX2-NEXT: vpshufb %ymm11, %ymm13, %ymm06702; AVX2-NEXT: vpblendw {{.*#+}} xmm6 = xmm6[0,1,2,3,4],xmm0[5,6,7]6703; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm6[0,1,2,3],ymm0[4,5,6,7]6704; AVX2-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm16705; AVX2-NEXT: vpblendvb %ymm9, %ymm0, %ymm1, %ymm06706; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6707; AVX2-NEXT: vextracti128 $1, %ymm12, %xmm16708; AVX2-NEXT: vpshufb %xmm7, %xmm1, %xmm06709; AVX2-NEXT: vpshufb %xmm2, %xmm12, %xmm26710; AVX2-NEXT: vpor %xmm0, %xmm2, %xmm06711; AVX2-NEXT: vextracti128 $1, %ymm10, %xmm26712; AVX2-NEXT: vpshufb %xmm5, %xmm2, %xmm56713; AVX2-NEXT: vpshufb %xmm4, %xmm10, %xmm46714; AVX2-NEXT: vpor %xmm5, %xmm4, %xmm46715; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload6716; AVX2-NEXT: vpshufb %ymm11, %ymm6, %ymm56717; AVX2-NEXT: vpblendw {{.*#+}} xmm4 = xmm4[0,1,2,3,4],xmm5[5,6,7]6718; AVX2-NEXT: vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm5[4,5,6,7]6719; AVX2-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm06720; AVX2-NEXT: vpblendvb %ymm9, %ymm4, %ymm0, %ymm56721; AVX2-NEXT: vmovdqa {{.*#+}} xmm0 = [u,u,u,u,u,128,128,128,5,11,128,128,128,3,9,15]6722; AVX2-NEXT: vpshufb %xmm0, %xmm14, %xmm46723; AVX2-NEXT: vmovdqa {{.*#+}} xmm7 = [u,u,u,u,u,3,9,15,128,128,1,7,13,128,128,128]6724; AVX2-NEXT: vpshufb %xmm7, %xmm15, %xmm116725; AVX2-NEXT: vpor %xmm4, %xmm11, %xmm46726; AVX2-NEXT: vmovdqa {{.*#+}} xmm11 = [128,128,1,7,13,128,128,128,5,11,u,u,u,u,u,u]6727; AVX2-NEXT: vpshufb %xmm11, %xmm3, %xmm36728; AVX2-NEXT: vmovdqa {{.*#+}} xmm14 = [5,11,128,128,128,3,9,15,128,128,u,u,u,u,u,u]6729; AVX2-NEXT: vpshufb %xmm14, %xmm8, %xmm86730; AVX2-NEXT: vpor %xmm3, %xmm8, %xmm36731; AVX2-NEXT: vpbroadcastq {{.*#+}} ymm8 = [5,11,1,7,13,3,9,15,5,11,1,7,13,3,9,15,5,11,1,7,13,3,9,15,5,11,1,7,13,3,9,15]6732; AVX2-NEXT: vpshufb %ymm8, %ymm13, %ymm136733; AVX2-NEXT: vpblendw {{.*#+}} xmm3 = xmm3[0,1,2,3,4],xmm13[5,6,7]6734; AVX2-NEXT: vpblendd {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm13[4,5,6,7]6735; AVX2-NEXT: vinserti128 $1, %xmm4, %ymm0, %ymm46736; AVX2-NEXT: vpblendvb %ymm9, %ymm3, %ymm4, %ymm46737; AVX2-NEXT: vpshufb %xmm0, %xmm1, %xmm06738; AVX2-NEXT: vpshufb %xmm7, %xmm12, %xmm16739; AVX2-NEXT: vpor %xmm0, %xmm1, %xmm06740; AVX2-NEXT: vpshufb %xmm11, %xmm2, %xmm16741; AVX2-NEXT: vpshufb %xmm14, %xmm10, %xmm26742; AVX2-NEXT: vpor %xmm1, %xmm2, %xmm16743; AVX2-NEXT: vpshufb %ymm8, %ymm6, %ymm26744; AVX2-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1,2,3,4],xmm2[5,6,7]6745; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm2[4,5,6,7]6746; AVX2-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm06747; AVX2-NEXT: vpblendvb %ymm9, %ymm1, %ymm0, %ymm36748; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload6749; AVX2-NEXT: vextracti128 $1, %ymm9, %xmm06750; AVX2-NEXT: vmovdqa {{.*#+}} xmm1 = [u,u,u,u,u,u,128,128,0,6,12,128,128,128,4,10]6751; AVX2-NEXT: vpshufb %xmm1, %xmm0, %xmm26752; AVX2-NEXT: vmovdqa {{.*#+}} xmm7 = [u,u,u,u,u,u,4,10,128,128,128,2,8,14,128,128]6753; AVX2-NEXT: vpshufb %xmm7, %xmm9, %xmm86754; AVX2-NEXT: vmovdqa %ymm9, %ymm106755; AVX2-NEXT: vpor %xmm2, %xmm8, %xmm26756; AVX2-NEXT: vinserti128 $1, %xmm2, %ymm0, %ymm26757; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload6758; AVX2-NEXT: vpblendw {{.*#+}} ymm2 = ymm8[0,1,2],ymm2[3,4,5,6,7],ymm8[8,9,10],ymm2[11,12,13,14,15]6759; AVX2-NEXT: vpblendd {{.*#+}} ymm2 = ymm8[0,1,2,3],ymm2[4,5,6,7]6760; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload6761; AVX2-NEXT: vextracti128 $1, %ymm9, %xmm86762; AVX2-NEXT: vpshufb %xmm1, %xmm8, %xmm16763; AVX2-NEXT: vpshufb %xmm7, %xmm9, %xmm76764; AVX2-NEXT: vmovdqa %ymm9, %ymm116765; AVX2-NEXT: vpor %xmm1, %xmm7, %xmm16766; AVX2-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm16767; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload6768; AVX2-NEXT: vpblendw {{.*#+}} ymm1 = ymm7[0,1,2],ymm1[3,4,5,6,7],ymm7[8,9,10],ymm1[11,12,13,14,15]6769; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm7[0,1,2,3],ymm1[4,5,6,7]6770; AVX2-NEXT: vmovdqa {{.*#+}} xmm7 = [u,u,u,u,u,u,128,128,1,7,13,128,128,128,5,11]6771; AVX2-NEXT: vpshufb %xmm7, %xmm0, %xmm06772; AVX2-NEXT: vmovdqa {{.*#+}} xmm9 = [u,u,u,u,u,u,5,11,128,128,128,3,9,15,128,128]6773; AVX2-NEXT: vpshufb %xmm9, %xmm10, %xmm106774; AVX2-NEXT: vpor %xmm0, %xmm10, %xmm06775; AVX2-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm06776; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload6777; AVX2-NEXT: vpblendw {{.*#+}} ymm0 = ymm10[0,1,2],ymm0[3,4,5,6,7],ymm10[8,9,10],ymm0[11,12,13,14,15]6778; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm10[0,1,2,3],ymm0[4,5,6,7]6779; AVX2-NEXT: vpshufb %xmm7, %xmm8, %xmm76780; AVX2-NEXT: vpshufb %xmm9, %xmm11, %xmm86781; AVX2-NEXT: vpor %xmm7, %xmm8, %xmm76782; AVX2-NEXT: vinserti128 $1, %xmm7, %ymm0, %ymm76783; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload6784; AVX2-NEXT: vpblendw {{.*#+}} ymm7 = ymm8[0,1,2],ymm7[3,4,5,6,7],ymm8[8,9,10],ymm7[11,12,13,14,15]6785; AVX2-NEXT: vpblendd {{.*#+}} ymm7 = ymm8[0,1,2,3],ymm7[4,5,6,7]6786; AVX2-NEXT: vmovdqa %ymm1, 32(%rsi)6787; AVX2-NEXT: vmovdqa %ymm2, (%rsi)6788; AVX2-NEXT: vmovdqa %ymm7, 32(%rdx)6789; AVX2-NEXT: vmovdqa %ymm0, (%rdx)6790; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6791; AVX2-NEXT: vmovaps %ymm0, 32(%rcx)6792; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6793; AVX2-NEXT: vmovaps %ymm0, (%rcx)6794; AVX2-NEXT: vmovups (%rsp), %ymm0 # 32-byte Reload6795; AVX2-NEXT: vmovaps %ymm0, 32(%r8)6796; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6797; AVX2-NEXT: vmovaps %ymm0, (%r8)6798; AVX2-NEXT: vmovdqa %ymm5, 32(%r9)6799; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6800; AVX2-NEXT: vmovaps %ymm0, (%r9)6801; AVX2-NEXT: movq {{[0-9]+}}(%rsp), %rax6802; AVX2-NEXT: vmovdqa %ymm3, 32(%rax)6803; AVX2-NEXT: vmovdqa %ymm4, (%rax)6804; AVX2-NEXT: addq $328, %rsp # imm = 0x1486805; AVX2-NEXT: vzeroupper6806; AVX2-NEXT: retq6807;6808; AVX2-FP-LABEL: load_i8_stride6_vf64:6809; AVX2-FP: # %bb.0:6810; AVX2-FP-NEXT: subq $328, %rsp # imm = 0x1486811; AVX2-FP-NEXT: vmovdqa 192(%rdi), %ymm76812; AVX2-FP-NEXT: vmovdqa (%rdi), %ymm36813; AVX2-FP-NEXT: vmovdqa 32(%rdi), %ymm56814; AVX2-FP-NEXT: vmovdqu %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6815; AVX2-FP-NEXT: vmovdqa 64(%rdi), %ymm06816; AVX2-FP-NEXT: vmovdqa 96(%rdi), %ymm16817; AVX2-FP-NEXT: vpmovsxbw {{.*#+}} ymm13 = [0,65535,0,0,65535,0,0,65535,65535,0,0,65535,0,0,65535,0]6818; AVX2-FP-NEXT: vperm2i128 {{.*#+}} ymm2 = ymm0[0,1],ymm1[0,1]6819; AVX2-FP-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6820; AVX2-FP-NEXT: vperm2i128 {{.*#+}} ymm0 = ymm0[2,3],ymm1[2,3]6821; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6822; AVX2-FP-NEXT: vpblendvb %ymm13, %ymm2, %ymm0, %ymm46823; AVX2-FP-NEXT: vpshufb {{.*#+}} ymm0 = ymm4[u,u,u,u,u,u,u,u,u,u,u,2,8,14,4,10,16,22,28,18,24,30,u,u,u,u,u,u,u,u,u,u]6824; AVX2-FP-NEXT: vpmovsxbw {{.*#+}} ymm1 = [65535,0,0,65535,0,0,65535,0,0,65535,0,0,65535,0,0,65535]6825; AVX2-FP-NEXT: vpblendvb %ymm1, %ymm3, %ymm5, %ymm26826; AVX2-FP-NEXT: vmovdqa %ymm3, %ymm56827; AVX2-FP-NEXT: vmovdqu %ymm3, (%rsp) # 32-byte Spill6828; AVX2-FP-NEXT: vmovdqa {{.*#+}} xmm10 = [0,6,12,128,128,128,4,10,128,128,128,u,u,u,u,u]6829; AVX2-FP-NEXT: vpshufb %xmm10, %xmm2, %xmm96830; AVX2-FP-NEXT: vextracti128 $1, %ymm2, %xmm36831; AVX2-FP-NEXT: vmovdqa {{.*#+}} xmm11 = [128,128,128,2,8,14,128,128,0,6,12,u,u,u,u,u]6832; AVX2-FP-NEXT: vpshufb %xmm11, %xmm3, %xmm126833; AVX2-FP-NEXT: vpor %xmm9, %xmm12, %xmm96834; AVX2-FP-NEXT: vpmovsxdq {{.*#+}} xmm12 = [18446744073709551615,16777215]6835; AVX2-FP-NEXT: vpblendvb %ymm12, %ymm9, %ymm0, %ymm06836; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6837; AVX2-FP-NEXT: vmovdqa 224(%rdi), %ymm86838; AVX2-FP-NEXT: vpblendvb %ymm1, %ymm7, %ymm8, %ymm146839; AVX2-FP-NEXT: vmovdqu %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6840; AVX2-FP-NEXT: vpshufb %xmm10, %xmm14, %xmm06841; AVX2-FP-NEXT: vextracti128 $1, %ymm14, %xmm156842; AVX2-FP-NEXT: vpshufb %xmm11, %xmm15, %xmm106843; AVX2-FP-NEXT: vpor %xmm0, %xmm10, %xmm16844; AVX2-FP-NEXT: vmovdqa 288(%rdi), %ymm116845; AVX2-FP-NEXT: vmovdqa 256(%rdi), %ymm06846; AVX2-FP-NEXT: vperm2i128 {{.*#+}} ymm9 = ymm0[0,1],ymm11[0,1]6847; AVX2-FP-NEXT: vperm2i128 {{.*#+}} ymm11 = ymm0[2,3],ymm11[2,3]6848; AVX2-FP-NEXT: vpblendvb %ymm13, %ymm9, %ymm11, %ymm136849; AVX2-FP-NEXT: vpshufb {{.*#+}} ymm0 = ymm13[u,u,u,u,u,u,u,u,u,u,u,2,8,14,4,10,16,22,28,18,24,30,u,u,u,u,u,u,u,u,u,u]6850; AVX2-FP-NEXT: vpblendvb %ymm12, %ymm1, %ymm0, %ymm06851; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6852; AVX2-FP-NEXT: vmovdqa {{.*#+}} xmm0 = [1,7,13,128,128,128,5,11,128,128,128,u,u,u,u,u]6853; AVX2-FP-NEXT: vpshufb %xmm0, %xmm2, %xmm16854; AVX2-FP-NEXT: vmovdqa {{.*#+}} xmm2 = [128,128,128,3,9,15,128,128,1,7,13,u,u,u,u,u]6855; AVX2-FP-NEXT: vpshufb %xmm2, %xmm3, %xmm36856; AVX2-FP-NEXT: vpor %xmm1, %xmm3, %xmm16857; AVX2-FP-NEXT: vpbroadcastq {{.*#+}} ymm3 = [1,7,13,3,9,15,5,11,1,7,13,3,9,15,5,11,1,7,13,3,9,15,5,11,1,7,13,3,9,15,5,11]6858; AVX2-FP-NEXT: vpshufb %ymm3, %ymm4, %ymm46859; AVX2-FP-NEXT: vpblendvb %ymm12, %ymm1, %ymm4, %ymm16860; AVX2-FP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6861; AVX2-FP-NEXT: vpshufb %xmm0, %xmm14, %xmm06862; AVX2-FP-NEXT: vpshufb %xmm2, %xmm15, %xmm16863; AVX2-FP-NEXT: vpor %xmm0, %xmm1, %xmm06864; AVX2-FP-NEXT: vpshufb %ymm3, %ymm13, %ymm16865; AVX2-FP-NEXT: vpblendvb %ymm12, %ymm0, %ymm1, %ymm06866; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6867; AVX2-FP-NEXT: vpmovsxbw {{.*#+}} ymm13 = [65535,0,0,65535,0,0,65535,0,0,65535,0,0,65535,0,0,65535]6868; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload6869; AVX2-FP-NEXT: vpblendvb %ymm13, %ymm10, %ymm5, %ymm16870; AVX2-FP-NEXT: vextracti128 $1, %ymm1, %xmm26871; AVX2-FP-NEXT: vmovdqa {{.*#+}} xmm6 = [128,128,128,4,10,128,128,128,2,8,14,u,u,u,u,u]6872; AVX2-FP-NEXT: vpshufb %xmm6, %xmm2, %xmm36873; AVX2-FP-NEXT: vmovdqa {{.*#+}} xmm4 = [2,8,14,128,128,0,6,12,128,128,128,u,u,u,u,u]6874; AVX2-FP-NEXT: vpshufb %xmm4, %xmm1, %xmm56875; AVX2-FP-NEXT: vpor %xmm3, %xmm5, %xmm56876; AVX2-FP-NEXT: vpbroadcastq {{.*#+}} ymm14 = [2,8,14,4,10,0,6,12,2,8,14,4,10,0,6,12,2,8,14,4,10,0,6,12,2,8,14,4,10,0,6,12]6877; AVX2-FP-NEXT: vpmovsxbw {{.*#+}} ymm0 = [65535,0,0,65535,0,0,65535,0,0,0,65535,0,0,65535,0,0]6878; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload6879; AVX2-FP-NEXT: vpblendvb %ymm0, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm3 # 32-byte Folded Reload6880; AVX2-FP-NEXT: vpshufb %ymm14, %ymm3, %ymm156881; AVX2-FP-NEXT: vpblendvb %ymm12, %ymm5, %ymm15, %ymm56882; AVX2-FP-NEXT: vmovdqu %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6883; AVX2-FP-NEXT: vpblendvb %ymm13, %ymm8, %ymm7, %ymm56884; AVX2-FP-NEXT: vmovdqa %ymm8, %ymm76885; AVX2-FP-NEXT: vextracti128 $1, %ymm5, %xmm156886; AVX2-FP-NEXT: vpshufb %xmm6, %xmm15, %xmm66887; AVX2-FP-NEXT: vpshufb %xmm4, %xmm5, %xmm46888; AVX2-FP-NEXT: vpor %xmm6, %xmm4, %xmm46889; AVX2-FP-NEXT: vpblendvb %ymm0, %ymm11, %ymm9, %ymm06890; AVX2-FP-NEXT: vpshufb %ymm14, %ymm0, %ymm66891; AVX2-FP-NEXT: vpblendvb %ymm12, %ymm4, %ymm6, %ymm46892; AVX2-FP-NEXT: vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6893; AVX2-FP-NEXT: vmovdqa {{.*#+}} xmm4 = [128,128,128,5,11,128,128,128,3,9,15,u,u,u,u,u]6894; AVX2-FP-NEXT: vpshufb %xmm4, %xmm2, %xmm26895; AVX2-FP-NEXT: vmovdqa {{.*#+}} xmm6 = [3,9,15,128,128,1,7,13,128,128,128,u,u,u,u,u]6896; AVX2-FP-NEXT: vpshufb %xmm6, %xmm1, %xmm16897; AVX2-FP-NEXT: vpor %xmm2, %xmm1, %xmm16898; AVX2-FP-NEXT: vpbroadcastq {{.*#+}} ymm2 = [3,9,15,5,11,1,7,13,3,9,15,5,11,1,7,13,3,9,15,5,11,1,7,13,3,9,15,5,11,1,7,13]6899; AVX2-FP-NEXT: vpshufb %ymm2, %ymm3, %ymm36900; AVX2-FP-NEXT: vpblendvb %ymm12, %ymm1, %ymm3, %ymm16901; AVX2-FP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6902; AVX2-FP-NEXT: vpshufb %xmm4, %xmm15, %xmm16903; AVX2-FP-NEXT: vpshufb %xmm6, %xmm5, %xmm36904; AVX2-FP-NEXT: vpor %xmm1, %xmm3, %xmm16905; AVX2-FP-NEXT: vpshufb %ymm2, %ymm0, %ymm06906; AVX2-FP-NEXT: vpblendvb %ymm12, %ymm1, %ymm0, %ymm146907; AVX2-FP-NEXT: vmovdqa 160(%rdi), %ymm06908; AVX2-FP-NEXT: vmovdqa 128(%rdi), %ymm36909; AVX2-FP-NEXT: vpmovsxbw {{.*#+}} ymm2 = [0,65535,0,0,65535,0,0,65535,0,0,65535,0,0,65535,0,0]6910; AVX2-FP-NEXT: vpblendvb %ymm2, %ymm0, %ymm3, %ymm16911; AVX2-FP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6912; AVX2-FP-NEXT: vpmovsxbw {{.*#+}} ymm1 = [65535,0,0,65535,0,0,65535,0,0,65535,0,0,65535,0,0,65535]6913; AVX2-FP-NEXT: vpblendvb %ymm1, %ymm3, %ymm0, %ymm56914; AVX2-FP-NEXT: vpblendvb %ymm13, %ymm0, %ymm3, %ymm156915; AVX2-FP-NEXT: vmovdqa 352(%rdi), %ymm46916; AVX2-FP-NEXT: vmovdqa 320(%rdi), %ymm66917; AVX2-FP-NEXT: vpblendvb %ymm1, %ymm6, %ymm4, %ymm16918; AVX2-FP-NEXT: vpblendvb %ymm13, %ymm4, %ymm6, %ymm126919; AVX2-FP-NEXT: vpblendvb %ymm2, %ymm4, %ymm6, %ymm06920; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6921; AVX2-FP-NEXT: vmovdqu (%rsp), %ymm0 # 32-byte Reload6922; AVX2-FP-NEXT: vpblendvb %ymm2, %ymm10, %ymm0, %ymm86923; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6924; AVX2-FP-NEXT: vpblendvb %ymm2, %ymm7, %ymm0, %ymm106925; AVX2-FP-NEXT: vpmovsxbw {{.*#+}} ymm2 = [0,65535,0,0,65535,0,0,65535,65535,0,0,65535,0,0,65535,0]6926; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6927; AVX2-FP-NEXT: vpblendvb %ymm2, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm13 # 32-byte Folded Reload6928; AVX2-FP-NEXT: vpblendvb %ymm2, %ymm11, %ymm9, %ymm06929; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6930; AVX2-FP-NEXT: vmovdqa {{.*#+}} xmm2 = [u,u,u,u,u,0,6,12,128,128,128,4,10,128,128,128]6931; AVX2-FP-NEXT: vpshufb %xmm2, %xmm5, %xmm66932; AVX2-FP-NEXT: vextracti128 $1, %ymm5, %xmm116933; AVX2-FP-NEXT: vmovdqa {{.*#+}} xmm0 = [u,u,u,u,u,128,128,128,2,8,14,128,128,0,6,12]6934; AVX2-FP-NEXT: vpshufb %xmm0, %xmm11, %xmm96935; AVX2-FP-NEXT: vpor %xmm6, %xmm9, %xmm66936; AVX2-FP-NEXT: vinserti128 $1, %xmm6, %ymm0, %ymm66937; AVX2-FP-NEXT: vpmovsxwd {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm96938; AVX2-FP-NEXT: vpblendvb %ymm9, {{[-0-9]+}}(%r{{[sb]}}p), %ymm6, %ymm3 # 32-byte Folded Reload6939; AVX2-FP-NEXT: vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6940; AVX2-FP-NEXT: vpshufb %xmm2, %xmm1, %xmm26941; AVX2-FP-NEXT: vextracti128 $1, %ymm1, %xmm66942; AVX2-FP-NEXT: vpshufb %xmm0, %xmm6, %xmm06943; AVX2-FP-NEXT: vpor %xmm2, %xmm0, %xmm06944; AVX2-FP-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm06945; AVX2-FP-NEXT: vpblendvb %ymm9, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload6946; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6947; AVX2-FP-NEXT: vmovdqa {{.*#+}} xmm0 = [u,u,u,u,u,1,7,13,128,128,128,5,11,128,128,128]6948; AVX2-FP-NEXT: vpshufb %xmm0, %xmm5, %xmm26949; AVX2-FP-NEXT: vmovdqa {{.*#+}} xmm5 = [u,u,u,u,u,128,128,128,3,9,15,128,128,1,7,13]6950; AVX2-FP-NEXT: vpshufb %xmm5, %xmm11, %xmm116951; AVX2-FP-NEXT: vpor %xmm2, %xmm11, %xmm26952; AVX2-FP-NEXT: vinserti128 $1, %xmm2, %ymm0, %ymm26953; AVX2-FP-NEXT: vpblendvb %ymm9, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload6954; AVX2-FP-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6955; AVX2-FP-NEXT: vpshufb %xmm0, %xmm1, %xmm06956; AVX2-FP-NEXT: vpshufb %xmm5, %xmm6, %xmm16957; AVX2-FP-NEXT: vpor %xmm0, %xmm1, %xmm06958; AVX2-FP-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm06959; AVX2-FP-NEXT: vpblendvb %ymm9, %ymm14, %ymm0, %ymm06960; AVX2-FP-NEXT: vmovdqu %ymm0, (%rsp) # 32-byte Spill6961; AVX2-FP-NEXT: vextracti128 $1, %ymm15, %xmm146962; AVX2-FP-NEXT: vmovdqa {{.*#+}} xmm7 = [u,u,u,u,u,128,128,128,4,10,128,128,128,2,8,14]6963; AVX2-FP-NEXT: vpshufb %xmm7, %xmm14, %xmm06964; AVX2-FP-NEXT: vmovdqa {{.*#+}} xmm2 = [u,u,u,u,u,2,8,14,128,128,0,6,12,128,128,128]6965; AVX2-FP-NEXT: vpshufb %xmm2, %xmm15, %xmm16966; AVX2-FP-NEXT: vpor %xmm0, %xmm1, %xmm16967; AVX2-FP-NEXT: vextracti128 $1, %ymm8, %xmm36968; AVX2-FP-NEXT: vmovdqa {{.*#+}} xmm5 = [128,128,0,6,12,128,128,128,4,10,u,u,u,u,u,u]6969; AVX2-FP-NEXT: vpshufb %xmm5, %xmm3, %xmm66970; AVX2-FP-NEXT: vmovdqa {{.*#+}} xmm4 = [4,10,128,128,128,2,8,14,128,128,u,u,u,u,u,u]6971; AVX2-FP-NEXT: vpshufb %xmm4, %xmm8, %xmm116972; AVX2-FP-NEXT: vpor %xmm6, %xmm11, %xmm66973; AVX2-FP-NEXT: vpbroadcastq {{.*#+}} ymm11 = [4,10,0,6,12,2,8,14,4,10,0,6,12,2,8,14,4,10,0,6,12,2,8,14,4,10,0,6,12,2,8,14]6974; AVX2-FP-NEXT: vpshufb %ymm11, %ymm13, %ymm06975; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm6 = xmm6[0,1,2,3,4],xmm0[5,6,7]6976; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm6[0,1,2,3],ymm0[4,5,6,7]6977; AVX2-FP-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm16978; AVX2-FP-NEXT: vpblendvb %ymm9, %ymm0, %ymm1, %ymm06979; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6980; AVX2-FP-NEXT: vextracti128 $1, %ymm12, %xmm16981; AVX2-FP-NEXT: vpshufb %xmm7, %xmm1, %xmm06982; AVX2-FP-NEXT: vpshufb %xmm2, %xmm12, %xmm26983; AVX2-FP-NEXT: vpor %xmm0, %xmm2, %xmm06984; AVX2-FP-NEXT: vextracti128 $1, %ymm10, %xmm26985; AVX2-FP-NEXT: vpshufb %xmm5, %xmm2, %xmm56986; AVX2-FP-NEXT: vpshufb %xmm4, %xmm10, %xmm46987; AVX2-FP-NEXT: vpor %xmm5, %xmm4, %xmm46988; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload6989; AVX2-FP-NEXT: vpshufb %ymm11, %ymm6, %ymm56990; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm4 = xmm4[0,1,2,3,4],xmm5[5,6,7]6991; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm5[4,5,6,7]6992; AVX2-FP-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm06993; AVX2-FP-NEXT: vpblendvb %ymm9, %ymm4, %ymm0, %ymm56994; AVX2-FP-NEXT: vmovdqa {{.*#+}} xmm0 = [u,u,u,u,u,128,128,128,5,11,128,128,128,3,9,15]6995; AVX2-FP-NEXT: vpshufb %xmm0, %xmm14, %xmm46996; AVX2-FP-NEXT: vmovdqa {{.*#+}} xmm7 = [u,u,u,u,u,3,9,15,128,128,1,7,13,128,128,128]6997; AVX2-FP-NEXT: vpshufb %xmm7, %xmm15, %xmm116998; AVX2-FP-NEXT: vpor %xmm4, %xmm11, %xmm46999; AVX2-FP-NEXT: vmovdqa {{.*#+}} xmm11 = [128,128,1,7,13,128,128,128,5,11,u,u,u,u,u,u]7000; AVX2-FP-NEXT: vpshufb %xmm11, %xmm3, %xmm37001; AVX2-FP-NEXT: vmovdqa {{.*#+}} xmm14 = [5,11,128,128,128,3,9,15,128,128,u,u,u,u,u,u]7002; AVX2-FP-NEXT: vpshufb %xmm14, %xmm8, %xmm87003; AVX2-FP-NEXT: vpor %xmm3, %xmm8, %xmm37004; AVX2-FP-NEXT: vpbroadcastq {{.*#+}} ymm8 = [5,11,1,7,13,3,9,15,5,11,1,7,13,3,9,15,5,11,1,7,13,3,9,15,5,11,1,7,13,3,9,15]7005; AVX2-FP-NEXT: vpshufb %ymm8, %ymm13, %ymm137006; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm3 = xmm3[0,1,2,3,4],xmm13[5,6,7]7007; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm13[4,5,6,7]7008; AVX2-FP-NEXT: vinserti128 $1, %xmm4, %ymm0, %ymm47009; AVX2-FP-NEXT: vpblendvb %ymm9, %ymm3, %ymm4, %ymm47010; AVX2-FP-NEXT: vpshufb %xmm0, %xmm1, %xmm07011; AVX2-FP-NEXT: vpshufb %xmm7, %xmm12, %xmm17012; AVX2-FP-NEXT: vpor %xmm0, %xmm1, %xmm07013; AVX2-FP-NEXT: vpshufb %xmm11, %xmm2, %xmm17014; AVX2-FP-NEXT: vpshufb %xmm14, %xmm10, %xmm27015; AVX2-FP-NEXT: vpor %xmm1, %xmm2, %xmm17016; AVX2-FP-NEXT: vpshufb %ymm8, %ymm6, %ymm27017; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1,2,3,4],xmm2[5,6,7]7018; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm2[4,5,6,7]7019; AVX2-FP-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm07020; AVX2-FP-NEXT: vpblendvb %ymm9, %ymm1, %ymm0, %ymm37021; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload7022; AVX2-FP-NEXT: vextracti128 $1, %ymm9, %xmm07023; AVX2-FP-NEXT: vmovdqa {{.*#+}} xmm1 = [u,u,u,u,u,u,128,128,0,6,12,128,128,128,4,10]7024; AVX2-FP-NEXT: vpshufb %xmm1, %xmm0, %xmm27025; AVX2-FP-NEXT: vmovdqa {{.*#+}} xmm7 = [u,u,u,u,u,u,4,10,128,128,128,2,8,14,128,128]7026; AVX2-FP-NEXT: vpshufb %xmm7, %xmm9, %xmm87027; AVX2-FP-NEXT: vmovdqa %ymm9, %ymm107028; AVX2-FP-NEXT: vpor %xmm2, %xmm8, %xmm27029; AVX2-FP-NEXT: vinserti128 $1, %xmm2, %ymm0, %ymm27030; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload7031; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm2 = ymm8[0,1,2],ymm2[3,4,5,6,7],ymm8[8,9,10],ymm2[11,12,13,14,15]7032; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm2 = ymm8[0,1,2,3],ymm2[4,5,6,7]7033; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload7034; AVX2-FP-NEXT: vextracti128 $1, %ymm9, %xmm87035; AVX2-FP-NEXT: vpshufb %xmm1, %xmm8, %xmm17036; AVX2-FP-NEXT: vpshufb %xmm7, %xmm9, %xmm77037; AVX2-FP-NEXT: vmovdqa %ymm9, %ymm117038; AVX2-FP-NEXT: vpor %xmm1, %xmm7, %xmm17039; AVX2-FP-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm17040; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload7041; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm1 = ymm7[0,1,2],ymm1[3,4,5,6,7],ymm7[8,9,10],ymm1[11,12,13,14,15]7042; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm7[0,1,2,3],ymm1[4,5,6,7]7043; AVX2-FP-NEXT: vmovdqa {{.*#+}} xmm7 = [u,u,u,u,u,u,128,128,1,7,13,128,128,128,5,11]7044; AVX2-FP-NEXT: vpshufb %xmm7, %xmm0, %xmm07045; AVX2-FP-NEXT: vmovdqa {{.*#+}} xmm9 = [u,u,u,u,u,u,5,11,128,128,128,3,9,15,128,128]7046; AVX2-FP-NEXT: vpshufb %xmm9, %xmm10, %xmm107047; AVX2-FP-NEXT: vpor %xmm0, %xmm10, %xmm07048; AVX2-FP-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm07049; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload7050; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm0 = ymm10[0,1,2],ymm0[3,4,5,6,7],ymm10[8,9,10],ymm0[11,12,13,14,15]7051; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm10[0,1,2,3],ymm0[4,5,6,7]7052; AVX2-FP-NEXT: vpshufb %xmm7, %xmm8, %xmm77053; AVX2-FP-NEXT: vpshufb %xmm9, %xmm11, %xmm87054; AVX2-FP-NEXT: vpor %xmm7, %xmm8, %xmm77055; AVX2-FP-NEXT: vinserti128 $1, %xmm7, %ymm0, %ymm77056; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload7057; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm7 = ymm8[0,1,2],ymm7[3,4,5,6,7],ymm8[8,9,10],ymm7[11,12,13,14,15]7058; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm7 = ymm8[0,1,2,3],ymm7[4,5,6,7]7059; AVX2-FP-NEXT: vmovdqa %ymm1, 32(%rsi)7060; AVX2-FP-NEXT: vmovdqa %ymm2, (%rsi)7061; AVX2-FP-NEXT: vmovdqa %ymm7, 32(%rdx)7062; AVX2-FP-NEXT: vmovdqa %ymm0, (%rdx)7063; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload7064; AVX2-FP-NEXT: vmovaps %ymm0, 32(%rcx)7065; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload7066; AVX2-FP-NEXT: vmovaps %ymm0, (%rcx)7067; AVX2-FP-NEXT: vmovups (%rsp), %ymm0 # 32-byte Reload7068; AVX2-FP-NEXT: vmovaps %ymm0, 32(%r8)7069; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload7070; AVX2-FP-NEXT: vmovaps %ymm0, (%r8)7071; AVX2-FP-NEXT: vmovdqa %ymm5, 32(%r9)7072; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload7073; AVX2-FP-NEXT: vmovaps %ymm0, (%r9)7074; AVX2-FP-NEXT: movq {{[0-9]+}}(%rsp), %rax7075; AVX2-FP-NEXT: vmovdqa %ymm3, 32(%rax)7076; AVX2-FP-NEXT: vmovdqa %ymm4, (%rax)7077; AVX2-FP-NEXT: addq $328, %rsp # imm = 0x1487078; AVX2-FP-NEXT: vzeroupper7079; AVX2-FP-NEXT: retq7080;7081; AVX2-FCP-LABEL: load_i8_stride6_vf64:7082; AVX2-FCP: # %bb.0:7083; AVX2-FCP-NEXT: subq $328, %rsp # imm = 0x1487084; AVX2-FCP-NEXT: vmovdqa 192(%rdi), %ymm77085; AVX2-FCP-NEXT: vmovdqa (%rdi), %ymm37086; AVX2-FCP-NEXT: vmovdqa 32(%rdi), %ymm57087; AVX2-FCP-NEXT: vmovdqu %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7088; AVX2-FCP-NEXT: vmovdqa 64(%rdi), %ymm07089; AVX2-FCP-NEXT: vmovdqa 96(%rdi), %ymm17090; AVX2-FCP-NEXT: vpmovsxbw {{.*#+}} ymm13 = [0,65535,0,0,65535,0,0,65535,65535,0,0,65535,0,0,65535,0]7091; AVX2-FCP-NEXT: vperm2i128 {{.*#+}} ymm2 = ymm0[0,1],ymm1[0,1]7092; AVX2-FCP-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7093; AVX2-FCP-NEXT: vperm2i128 {{.*#+}} ymm0 = ymm0[2,3],ymm1[2,3]7094; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7095; AVX2-FCP-NEXT: vpblendvb %ymm13, %ymm2, %ymm0, %ymm47096; AVX2-FCP-NEXT: vpshufb {{.*#+}} ymm0 = ymm4[u,u,u,u,u,u,u,u,u,u,u,2,8,14,4,10,16,22,28,18,24,30,u,u,u,u,u,u,u,u,u,u]7097; AVX2-FCP-NEXT: vpmovsxbw {{.*#+}} ymm1 = [65535,0,0,65535,0,0,65535,0,0,65535,0,0,65535,0,0,65535]7098; AVX2-FCP-NEXT: vpblendvb %ymm1, %ymm3, %ymm5, %ymm27099; AVX2-FCP-NEXT: vmovdqa %ymm3, %ymm57100; AVX2-FCP-NEXT: vmovdqu %ymm3, (%rsp) # 32-byte Spill7101; AVX2-FCP-NEXT: vmovdqa {{.*#+}} xmm10 = [0,6,12,128,128,128,4,10,128,128,128,u,u,u,u,u]7102; AVX2-FCP-NEXT: vpshufb %xmm10, %xmm2, %xmm97103; AVX2-FCP-NEXT: vextracti128 $1, %ymm2, %xmm37104; AVX2-FCP-NEXT: vmovdqa {{.*#+}} xmm11 = [128,128,128,2,8,14,128,128,0,6,12,u,u,u,u,u]7105; AVX2-FCP-NEXT: vpshufb %xmm11, %xmm3, %xmm127106; AVX2-FCP-NEXT: vpor %xmm9, %xmm12, %xmm97107; AVX2-FCP-NEXT: vpmovsxdq {{.*#+}} xmm12 = [18446744073709551615,16777215]7108; AVX2-FCP-NEXT: vpblendvb %ymm12, %ymm9, %ymm0, %ymm07109; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7110; AVX2-FCP-NEXT: vmovdqa 224(%rdi), %ymm87111; AVX2-FCP-NEXT: vpblendvb %ymm1, %ymm7, %ymm8, %ymm147112; AVX2-FCP-NEXT: vmovdqu %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7113; AVX2-FCP-NEXT: vpshufb %xmm10, %xmm14, %xmm07114; AVX2-FCP-NEXT: vextracti128 $1, %ymm14, %xmm157115; AVX2-FCP-NEXT: vpshufb %xmm11, %xmm15, %xmm107116; AVX2-FCP-NEXT: vpor %xmm0, %xmm10, %xmm17117; AVX2-FCP-NEXT: vmovdqa 288(%rdi), %ymm117118; AVX2-FCP-NEXT: vmovdqa 256(%rdi), %ymm07119; AVX2-FCP-NEXT: vperm2i128 {{.*#+}} ymm9 = ymm0[0,1],ymm11[0,1]7120; AVX2-FCP-NEXT: vperm2i128 {{.*#+}} ymm11 = ymm0[2,3],ymm11[2,3]7121; AVX2-FCP-NEXT: vpblendvb %ymm13, %ymm9, %ymm11, %ymm137122; AVX2-FCP-NEXT: vpshufb {{.*#+}} ymm0 = ymm13[u,u,u,u,u,u,u,u,u,u,u,2,8,14,4,10,16,22,28,18,24,30,u,u,u,u,u,u,u,u,u,u]7123; AVX2-FCP-NEXT: vpblendvb %ymm12, %ymm1, %ymm0, %ymm07124; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7125; AVX2-FCP-NEXT: vmovdqa {{.*#+}} xmm0 = [1,7,13,128,128,128,5,11,128,128,128,u,u,u,u,u]7126; AVX2-FCP-NEXT: vpshufb %xmm0, %xmm2, %xmm17127; AVX2-FCP-NEXT: vmovdqa {{.*#+}} xmm2 = [128,128,128,3,9,15,128,128,1,7,13,u,u,u,u,u]7128; AVX2-FCP-NEXT: vpshufb %xmm2, %xmm3, %xmm37129; AVX2-FCP-NEXT: vpor %xmm1, %xmm3, %xmm17130; AVX2-FCP-NEXT: vpbroadcastq {{.*#+}} ymm3 = [1,7,13,3,9,15,5,11,1,7,13,3,9,15,5,11,1,7,13,3,9,15,5,11,1,7,13,3,9,15,5,11]7131; AVX2-FCP-NEXT: vpshufb %ymm3, %ymm4, %ymm47132; AVX2-FCP-NEXT: vpblendvb %ymm12, %ymm1, %ymm4, %ymm17133; AVX2-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7134; AVX2-FCP-NEXT: vpshufb %xmm0, %xmm14, %xmm07135; AVX2-FCP-NEXT: vpshufb %xmm2, %xmm15, %xmm17136; AVX2-FCP-NEXT: vpor %xmm0, %xmm1, %xmm07137; AVX2-FCP-NEXT: vpshufb %ymm3, %ymm13, %ymm17138; AVX2-FCP-NEXT: vpblendvb %ymm12, %ymm0, %ymm1, %ymm07139; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7140; AVX2-FCP-NEXT: vpmovsxbw {{.*#+}} ymm13 = [65535,0,0,65535,0,0,65535,0,0,65535,0,0,65535,0,0,65535]7141; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload7142; AVX2-FCP-NEXT: vpblendvb %ymm13, %ymm10, %ymm5, %ymm17143; AVX2-FCP-NEXT: vextracti128 $1, %ymm1, %xmm27144; AVX2-FCP-NEXT: vmovdqa {{.*#+}} xmm6 = [128,128,128,4,10,128,128,128,2,8,14,u,u,u,u,u]7145; AVX2-FCP-NEXT: vpshufb %xmm6, %xmm2, %xmm37146; AVX2-FCP-NEXT: vmovdqa {{.*#+}} xmm4 = [2,8,14,128,128,0,6,12,128,128,128,u,u,u,u,u]7147; AVX2-FCP-NEXT: vpshufb %xmm4, %xmm1, %xmm57148; AVX2-FCP-NEXT: vpor %xmm3, %xmm5, %xmm57149; AVX2-FCP-NEXT: vpbroadcastq {{.*#+}} ymm14 = [2,8,14,4,10,0,6,12,2,8,14,4,10,0,6,12,2,8,14,4,10,0,6,12,2,8,14,4,10,0,6,12]7150; AVX2-FCP-NEXT: vpmovsxbw {{.*#+}} ymm0 = [65535,0,0,65535,0,0,65535,0,0,0,65535,0,0,65535,0,0]7151; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload7152; AVX2-FCP-NEXT: vpblendvb %ymm0, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm3 # 32-byte Folded Reload7153; AVX2-FCP-NEXT: vpshufb %ymm14, %ymm3, %ymm157154; AVX2-FCP-NEXT: vpblendvb %ymm12, %ymm5, %ymm15, %ymm57155; AVX2-FCP-NEXT: vmovdqu %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7156; AVX2-FCP-NEXT: vpblendvb %ymm13, %ymm8, %ymm7, %ymm57157; AVX2-FCP-NEXT: vmovdqa %ymm8, %ymm77158; AVX2-FCP-NEXT: vextracti128 $1, %ymm5, %xmm157159; AVX2-FCP-NEXT: vpshufb %xmm6, %xmm15, %xmm67160; AVX2-FCP-NEXT: vpshufb %xmm4, %xmm5, %xmm47161; AVX2-FCP-NEXT: vpor %xmm6, %xmm4, %xmm47162; AVX2-FCP-NEXT: vpblendvb %ymm0, %ymm11, %ymm9, %ymm07163; AVX2-FCP-NEXT: vpshufb %ymm14, %ymm0, %ymm67164; AVX2-FCP-NEXT: vpblendvb %ymm12, %ymm4, %ymm6, %ymm47165; AVX2-FCP-NEXT: vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7166; AVX2-FCP-NEXT: vmovdqa {{.*#+}} xmm4 = [128,128,128,5,11,128,128,128,3,9,15,u,u,u,u,u]7167; AVX2-FCP-NEXT: vpshufb %xmm4, %xmm2, %xmm27168; AVX2-FCP-NEXT: vmovdqa {{.*#+}} xmm6 = [3,9,15,128,128,1,7,13,128,128,128,u,u,u,u,u]7169; AVX2-FCP-NEXT: vpshufb %xmm6, %xmm1, %xmm17170; AVX2-FCP-NEXT: vpor %xmm2, %xmm1, %xmm17171; AVX2-FCP-NEXT: vpbroadcastq {{.*#+}} ymm2 = [3,9,15,5,11,1,7,13,3,9,15,5,11,1,7,13,3,9,15,5,11,1,7,13,3,9,15,5,11,1,7,13]7172; AVX2-FCP-NEXT: vpshufb %ymm2, %ymm3, %ymm37173; AVX2-FCP-NEXT: vpblendvb %ymm12, %ymm1, %ymm3, %ymm17174; AVX2-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7175; AVX2-FCP-NEXT: vpshufb %xmm4, %xmm15, %xmm17176; AVX2-FCP-NEXT: vpshufb %xmm6, %xmm5, %xmm37177; AVX2-FCP-NEXT: vpor %xmm1, %xmm3, %xmm17178; AVX2-FCP-NEXT: vpshufb %ymm2, %ymm0, %ymm07179; AVX2-FCP-NEXT: vpblendvb %ymm12, %ymm1, %ymm0, %ymm147180; AVX2-FCP-NEXT: vmovdqa 160(%rdi), %ymm07181; AVX2-FCP-NEXT: vmovdqa 128(%rdi), %ymm37182; AVX2-FCP-NEXT: vpmovsxbw {{.*#+}} ymm2 = [0,65535,0,0,65535,0,0,65535,0,0,65535,0,0,65535,0,0]7183; AVX2-FCP-NEXT: vpblendvb %ymm2, %ymm0, %ymm3, %ymm17184; AVX2-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7185; AVX2-FCP-NEXT: vpmovsxbw {{.*#+}} ymm1 = [65535,0,0,65535,0,0,65535,0,0,65535,0,0,65535,0,0,65535]7186; AVX2-FCP-NEXT: vpblendvb %ymm1, %ymm3, %ymm0, %ymm57187; AVX2-FCP-NEXT: vpblendvb %ymm13, %ymm0, %ymm3, %ymm157188; AVX2-FCP-NEXT: vmovdqa 352(%rdi), %ymm47189; AVX2-FCP-NEXT: vmovdqa 320(%rdi), %ymm67190; AVX2-FCP-NEXT: vpblendvb %ymm1, %ymm6, %ymm4, %ymm17191; AVX2-FCP-NEXT: vpblendvb %ymm13, %ymm4, %ymm6, %ymm127192; AVX2-FCP-NEXT: vpblendvb %ymm2, %ymm4, %ymm6, %ymm07193; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7194; AVX2-FCP-NEXT: vmovdqu (%rsp), %ymm0 # 32-byte Reload7195; AVX2-FCP-NEXT: vpblendvb %ymm2, %ymm10, %ymm0, %ymm87196; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload7197; AVX2-FCP-NEXT: vpblendvb %ymm2, %ymm7, %ymm0, %ymm107198; AVX2-FCP-NEXT: vpmovsxbw {{.*#+}} ymm2 = [0,65535,0,0,65535,0,0,65535,65535,0,0,65535,0,0,65535,0]7199; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload7200; AVX2-FCP-NEXT: vpblendvb %ymm2, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm13 # 32-byte Folded Reload7201; AVX2-FCP-NEXT: vpblendvb %ymm2, %ymm11, %ymm9, %ymm07202; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7203; AVX2-FCP-NEXT: vmovdqa {{.*#+}} xmm2 = [u,u,u,u,u,0,6,12,128,128,128,4,10,128,128,128]7204; AVX2-FCP-NEXT: vpshufb %xmm2, %xmm5, %xmm67205; AVX2-FCP-NEXT: vextracti128 $1, %ymm5, %xmm117206; AVX2-FCP-NEXT: vmovdqa {{.*#+}} xmm0 = [u,u,u,u,u,128,128,128,2,8,14,128,128,0,6,12]7207; AVX2-FCP-NEXT: vpshufb %xmm0, %xmm11, %xmm97208; AVX2-FCP-NEXT: vpor %xmm6, %xmm9, %xmm67209; AVX2-FCP-NEXT: vinserti128 $1, %xmm6, %ymm0, %ymm67210; AVX2-FCP-NEXT: vpmovsxwd {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm97211; AVX2-FCP-NEXT: vpblendvb %ymm9, {{[-0-9]+}}(%r{{[sb]}}p), %ymm6, %ymm3 # 32-byte Folded Reload7212; AVX2-FCP-NEXT: vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7213; AVX2-FCP-NEXT: vpshufb %xmm2, %xmm1, %xmm27214; AVX2-FCP-NEXT: vextracti128 $1, %ymm1, %xmm67215; AVX2-FCP-NEXT: vpshufb %xmm0, %xmm6, %xmm07216; AVX2-FCP-NEXT: vpor %xmm2, %xmm0, %xmm07217; AVX2-FCP-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm07218; AVX2-FCP-NEXT: vpblendvb %ymm9, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload7219; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7220; AVX2-FCP-NEXT: vmovdqa {{.*#+}} xmm0 = [u,u,u,u,u,1,7,13,128,128,128,5,11,128,128,128]7221; AVX2-FCP-NEXT: vpshufb %xmm0, %xmm5, %xmm27222; AVX2-FCP-NEXT: vmovdqa {{.*#+}} xmm5 = [u,u,u,u,u,128,128,128,3,9,15,128,128,1,7,13]7223; AVX2-FCP-NEXT: vpshufb %xmm5, %xmm11, %xmm117224; AVX2-FCP-NEXT: vpor %xmm2, %xmm11, %xmm27225; AVX2-FCP-NEXT: vinserti128 $1, %xmm2, %ymm0, %ymm27226; AVX2-FCP-NEXT: vpblendvb %ymm9, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload7227; AVX2-FCP-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7228; AVX2-FCP-NEXT: vpshufb %xmm0, %xmm1, %xmm07229; AVX2-FCP-NEXT: vpshufb %xmm5, %xmm6, %xmm17230; AVX2-FCP-NEXT: vpor %xmm0, %xmm1, %xmm07231; AVX2-FCP-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm07232; AVX2-FCP-NEXT: vpblendvb %ymm9, %ymm14, %ymm0, %ymm07233; AVX2-FCP-NEXT: vmovdqu %ymm0, (%rsp) # 32-byte Spill7234; AVX2-FCP-NEXT: vextracti128 $1, %ymm15, %xmm147235; AVX2-FCP-NEXT: vmovdqa {{.*#+}} xmm7 = [u,u,u,u,u,128,128,128,4,10,128,128,128,2,8,14]7236; AVX2-FCP-NEXT: vpshufb %xmm7, %xmm14, %xmm07237; AVX2-FCP-NEXT: vmovdqa {{.*#+}} xmm2 = [u,u,u,u,u,2,8,14,128,128,0,6,12,128,128,128]7238; AVX2-FCP-NEXT: vpshufb %xmm2, %xmm15, %xmm17239; AVX2-FCP-NEXT: vpor %xmm0, %xmm1, %xmm17240; AVX2-FCP-NEXT: vextracti128 $1, %ymm8, %xmm37241; AVX2-FCP-NEXT: vmovdqa {{.*#+}} xmm5 = [128,128,0,6,12,128,128,128,4,10,u,u,u,u,u,u]7242; AVX2-FCP-NEXT: vpshufb %xmm5, %xmm3, %xmm67243; AVX2-FCP-NEXT: vmovdqa {{.*#+}} xmm4 = [4,10,128,128,128,2,8,14,128,128,u,u,u,u,u,u]7244; AVX2-FCP-NEXT: vpshufb %xmm4, %xmm8, %xmm117245; AVX2-FCP-NEXT: vpor %xmm6, %xmm11, %xmm67246; AVX2-FCP-NEXT: vpbroadcastq {{.*#+}} ymm11 = [4,10,0,6,12,2,8,14,4,10,0,6,12,2,8,14,4,10,0,6,12,2,8,14,4,10,0,6,12,2,8,14]7247; AVX2-FCP-NEXT: vpshufb %ymm11, %ymm13, %ymm07248; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm6 = xmm6[0,1,2,3,4],xmm0[5,6,7]7249; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm6[0,1,2,3],ymm0[4,5,6,7]7250; AVX2-FCP-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm17251; AVX2-FCP-NEXT: vpblendvb %ymm9, %ymm0, %ymm1, %ymm07252; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7253; AVX2-FCP-NEXT: vextracti128 $1, %ymm12, %xmm17254; AVX2-FCP-NEXT: vpshufb %xmm7, %xmm1, %xmm07255; AVX2-FCP-NEXT: vpshufb %xmm2, %xmm12, %xmm27256; AVX2-FCP-NEXT: vpor %xmm0, %xmm2, %xmm07257; AVX2-FCP-NEXT: vextracti128 $1, %ymm10, %xmm27258; AVX2-FCP-NEXT: vpshufb %xmm5, %xmm2, %xmm57259; AVX2-FCP-NEXT: vpshufb %xmm4, %xmm10, %xmm47260; AVX2-FCP-NEXT: vpor %xmm5, %xmm4, %xmm47261; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload7262; AVX2-FCP-NEXT: vpshufb %ymm11, %ymm6, %ymm57263; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm4 = xmm4[0,1,2,3,4],xmm5[5,6,7]7264; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm5[4,5,6,7]7265; AVX2-FCP-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm07266; AVX2-FCP-NEXT: vpblendvb %ymm9, %ymm4, %ymm0, %ymm57267; AVX2-FCP-NEXT: vmovdqa {{.*#+}} xmm0 = [u,u,u,u,u,128,128,128,5,11,128,128,128,3,9,15]7268; AVX2-FCP-NEXT: vpshufb %xmm0, %xmm14, %xmm47269; AVX2-FCP-NEXT: vmovdqa {{.*#+}} xmm7 = [u,u,u,u,u,3,9,15,128,128,1,7,13,128,128,128]7270; AVX2-FCP-NEXT: vpshufb %xmm7, %xmm15, %xmm117271; AVX2-FCP-NEXT: vpor %xmm4, %xmm11, %xmm47272; AVX2-FCP-NEXT: vmovdqa {{.*#+}} xmm11 = [128,128,1,7,13,128,128,128,5,11,u,u,u,u,u,u]7273; AVX2-FCP-NEXT: vpshufb %xmm11, %xmm3, %xmm37274; AVX2-FCP-NEXT: vmovdqa {{.*#+}} xmm14 = [5,11,128,128,128,3,9,15,128,128,u,u,u,u,u,u]7275; AVX2-FCP-NEXT: vpshufb %xmm14, %xmm8, %xmm87276; AVX2-FCP-NEXT: vpor %xmm3, %xmm8, %xmm37277; AVX2-FCP-NEXT: vpbroadcastq {{.*#+}} ymm8 = [5,11,1,7,13,3,9,15,5,11,1,7,13,3,9,15,5,11,1,7,13,3,9,15,5,11,1,7,13,3,9,15]7278; AVX2-FCP-NEXT: vpshufb %ymm8, %ymm13, %ymm137279; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm3 = xmm3[0,1,2,3,4],xmm13[5,6,7]7280; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm13[4,5,6,7]7281; AVX2-FCP-NEXT: vinserti128 $1, %xmm4, %ymm0, %ymm47282; AVX2-FCP-NEXT: vpblendvb %ymm9, %ymm3, %ymm4, %ymm47283; AVX2-FCP-NEXT: vpshufb %xmm0, %xmm1, %xmm07284; AVX2-FCP-NEXT: vpshufb %xmm7, %xmm12, %xmm17285; AVX2-FCP-NEXT: vpor %xmm0, %xmm1, %xmm07286; AVX2-FCP-NEXT: vpshufb %xmm11, %xmm2, %xmm17287; AVX2-FCP-NEXT: vpshufb %xmm14, %xmm10, %xmm27288; AVX2-FCP-NEXT: vpor %xmm1, %xmm2, %xmm17289; AVX2-FCP-NEXT: vpshufb %ymm8, %ymm6, %ymm27290; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1,2,3,4],xmm2[5,6,7]7291; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm2[4,5,6,7]7292; AVX2-FCP-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm07293; AVX2-FCP-NEXT: vpblendvb %ymm9, %ymm1, %ymm0, %ymm37294; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload7295; AVX2-FCP-NEXT: vextracti128 $1, %ymm9, %xmm07296; AVX2-FCP-NEXT: vmovdqa {{.*#+}} xmm1 = [u,u,u,u,u,u,128,128,0,6,12,128,128,128,4,10]7297; AVX2-FCP-NEXT: vpshufb %xmm1, %xmm0, %xmm27298; AVX2-FCP-NEXT: vmovdqa {{.*#+}} xmm7 = [u,u,u,u,u,u,4,10,128,128,128,2,8,14,128,128]7299; AVX2-FCP-NEXT: vpshufb %xmm7, %xmm9, %xmm87300; AVX2-FCP-NEXT: vmovdqa %ymm9, %ymm107301; AVX2-FCP-NEXT: vpor %xmm2, %xmm8, %xmm27302; AVX2-FCP-NEXT: vinserti128 $1, %xmm2, %ymm0, %ymm27303; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload7304; AVX2-FCP-NEXT: vpblendw {{.*#+}} ymm2 = ymm8[0,1,2],ymm2[3,4,5,6,7],ymm8[8,9,10],ymm2[11,12,13,14,15]7305; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm8[0,1,2,3],ymm2[4,5,6,7]7306; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload7307; AVX2-FCP-NEXT: vextracti128 $1, %ymm9, %xmm87308; AVX2-FCP-NEXT: vpshufb %xmm1, %xmm8, %xmm17309; AVX2-FCP-NEXT: vpshufb %xmm7, %xmm9, %xmm77310; AVX2-FCP-NEXT: vmovdqa %ymm9, %ymm117311; AVX2-FCP-NEXT: vpor %xmm1, %xmm7, %xmm17312; AVX2-FCP-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm17313; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload7314; AVX2-FCP-NEXT: vpblendw {{.*#+}} ymm1 = ymm7[0,1,2],ymm1[3,4,5,6,7],ymm7[8,9,10],ymm1[11,12,13,14,15]7315; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm7[0,1,2,3],ymm1[4,5,6,7]7316; AVX2-FCP-NEXT: vmovdqa {{.*#+}} xmm7 = [u,u,u,u,u,u,128,128,1,7,13,128,128,128,5,11]7317; AVX2-FCP-NEXT: vpshufb %xmm7, %xmm0, %xmm07318; AVX2-FCP-NEXT: vmovdqa {{.*#+}} xmm9 = [u,u,u,u,u,u,5,11,128,128,128,3,9,15,128,128]7319; AVX2-FCP-NEXT: vpshufb %xmm9, %xmm10, %xmm107320; AVX2-FCP-NEXT: vpor %xmm0, %xmm10, %xmm07321; AVX2-FCP-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm07322; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload7323; AVX2-FCP-NEXT: vpblendw {{.*#+}} ymm0 = ymm10[0,1,2],ymm0[3,4,5,6,7],ymm10[8,9,10],ymm0[11,12,13,14,15]7324; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm10[0,1,2,3],ymm0[4,5,6,7]7325; AVX2-FCP-NEXT: vpshufb %xmm7, %xmm8, %xmm77326; AVX2-FCP-NEXT: vpshufb %xmm9, %xmm11, %xmm87327; AVX2-FCP-NEXT: vpor %xmm7, %xmm8, %xmm77328; AVX2-FCP-NEXT: vinserti128 $1, %xmm7, %ymm0, %ymm77329; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload7330; AVX2-FCP-NEXT: vpblendw {{.*#+}} ymm7 = ymm8[0,1,2],ymm7[3,4,5,6,7],ymm8[8,9,10],ymm7[11,12,13,14,15]7331; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm7 = ymm8[0,1,2,3],ymm7[4,5,6,7]7332; AVX2-FCP-NEXT: vmovdqa %ymm1, 32(%rsi)7333; AVX2-FCP-NEXT: vmovdqa %ymm2, (%rsi)7334; AVX2-FCP-NEXT: vmovdqa %ymm7, 32(%rdx)7335; AVX2-FCP-NEXT: vmovdqa %ymm0, (%rdx)7336; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload7337; AVX2-FCP-NEXT: vmovaps %ymm0, 32(%rcx)7338; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload7339; AVX2-FCP-NEXT: vmovaps %ymm0, (%rcx)7340; AVX2-FCP-NEXT: vmovups (%rsp), %ymm0 # 32-byte Reload7341; AVX2-FCP-NEXT: vmovaps %ymm0, 32(%r8)7342; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload7343; AVX2-FCP-NEXT: vmovaps %ymm0, (%r8)7344; AVX2-FCP-NEXT: vmovdqa %ymm5, 32(%r9)7345; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload7346; AVX2-FCP-NEXT: vmovaps %ymm0, (%r9)7347; AVX2-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax7348; AVX2-FCP-NEXT: vmovdqa %ymm3, 32(%rax)7349; AVX2-FCP-NEXT: vmovdqa %ymm4, (%rax)7350; AVX2-FCP-NEXT: addq $328, %rsp # imm = 0x1487351; AVX2-FCP-NEXT: vzeroupper7352; AVX2-FCP-NEXT: retq7353;7354; AVX512-LABEL: load_i8_stride6_vf64:7355; AVX512: # %bb.0:7356; AVX512-NEXT: subq $40, %rsp7357; AVX512-NEXT: vmovdqa {{.*#+}} ymm12 = [65535,65535,0,65535,65535,0,65535,65535,0,65535,65535,0,65535,65535,0,65535]7358; AVX512-NEXT: vmovdqa64 224(%rdi), %ymm257359; AVX512-NEXT: vmovdqa64 192(%rdi), %ymm267360; AVX512-NEXT: vmovdqa %ymm12, %ymm07361; AVX512-NEXT: vpternlogq {{.*#+}} ymm0 = ymm25 ^ (ymm0 & (ymm26 ^ ymm25))7362; AVX512-NEXT: vmovdqa {{.*#+}} xmm1 = [0,6,12,128,128,128,4,10,128,128,128,u,u,u,u,u]7363; AVX512-NEXT: vpshufb %xmm1, %xmm0, %xmm37364; AVX512-NEXT: vmovdqa {{.*#+}} xmm5 = [128,128,128,2,8,14,128,128,0,6,12,u,u,u,u,u]7365; AVX512-NEXT: vextracti128 $1, %ymm0, %xmm47366; AVX512-NEXT: vpshufb %xmm5, %xmm4, %xmm67367; AVX512-NEXT: vpor %xmm3, %xmm6, %xmm97368; AVX512-NEXT: vmovdqa64 (%rdi), %ymm307369; AVX512-NEXT: vmovdqa64 32(%rdi), %ymm317370; AVX512-NEXT: vmovdqa64 128(%rdi), %ymm247371; AVX512-NEXT: vmovdqa64 160(%rdi), %ymm187372; AVX512-NEXT: vmovdqa %ymm12, %ymm67373; AVX512-NEXT: vpternlogq {{.*#+}} ymm6 = ymm24 ^ (ymm6 & (ymm18 ^ ymm24))7374; AVX512-NEXT: vextracti128 $1, %ymm6, %xmm77375; AVX512-NEXT: vmovdqa {{.*#+}} xmm3 = [u,u,u,u,u,u,128,128,0,6,12,128,128,128,4,10]7376; AVX512-NEXT: vpshufb %xmm3, %xmm7, %xmm107377; AVX512-NEXT: vmovdqa {{.*#+}} xmm8 = [u,u,u,u,u,u,4,10,128,128,128,2,8,14,128,128]7378; AVX512-NEXT: vpshufb %xmm8, %xmm6, %xmm137379; AVX512-NEXT: vpor %xmm10, %xmm13, %xmm107380; AVX512-NEXT: vinserti128 $1, %xmm10, %ymm0, %ymm107381; AVX512-NEXT: vinserti32x4 $2, %xmm9, %zmm10, %zmm27382; AVX512-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7383; AVX512-NEXT: vmovdqa %ymm12, %ymm97384; AVX512-NEXT: vpternlogq {{.*#+}} ymm9 = ymm31 ^ (ymm9 & (ymm30 ^ ymm31))7385; AVX512-NEXT: vpshufb %xmm1, %xmm9, %xmm17386; AVX512-NEXT: vextracti128 $1, %ymm9, %xmm137387; AVX512-NEXT: vpshufb %xmm5, %xmm13, %xmm57388; AVX512-NEXT: vporq %xmm1, %xmm5, %xmm177389; AVX512-NEXT: vmovdqa64 320(%rdi), %ymm297390; AVX512-NEXT: vmovdqa64 352(%rdi), %ymm227391; AVX512-NEXT: vmovdqa %ymm12, %ymm17392; AVX512-NEXT: vpternlogq {{.*#+}} ymm1 = ymm29 ^ (ymm1 & (ymm22 ^ ymm29))7393; AVX512-NEXT: vextracti128 $1, %ymm1, %xmm57394; AVX512-NEXT: vpshufb %xmm3, %xmm5, %xmm37395; AVX512-NEXT: vpshufb %xmm8, %xmm1, %xmm87396; AVX512-NEXT: vpor %xmm3, %xmm8, %xmm37397; AVX512-NEXT: vinserti128 $1, %xmm3, %ymm0, %ymm37398; AVX512-NEXT: vmovdqa {{.*#+}} xmm8 = [1,7,13,128,128,128,5,11,128,128,128,u,u,u,u,u]7399; AVX512-NEXT: vpshufb %xmm8, %xmm0, %xmm07400; AVX512-NEXT: vmovdqa {{.*#+}} xmm10 = [128,128,128,3,9,15,128,128,1,7,13,u,u,u,u,u]7401; AVX512-NEXT: vpshufb %xmm10, %xmm4, %xmm47402; AVX512-NEXT: vpor %xmm0, %xmm4, %xmm07403; AVX512-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7404; AVX512-NEXT: vmovdqa {{.*#+}} xmm0 = [u,u,u,u,u,u,128,128,1,7,13,128,128,128,5,11]7405; AVX512-NEXT: vpshufb %xmm0, %xmm7, %xmm47406; AVX512-NEXT: vmovdqa {{.*#+}} xmm7 = [u,u,u,u,u,u,5,11,128,128,128,3,9,15,128,128]7407; AVX512-NEXT: vpshufb %xmm7, %xmm6, %xmm67408; AVX512-NEXT: vporq %xmm4, %xmm6, %xmm287409; AVX512-NEXT: vpshufb %xmm8, %xmm9, %xmm47410; AVX512-NEXT: vpshufb %xmm10, %xmm13, %xmm67411; AVX512-NEXT: vporq %xmm4, %xmm6, %xmm217412; AVX512-NEXT: vpshufb %xmm0, %xmm5, %xmm07413; AVX512-NEXT: vpshufb %xmm7, %xmm1, %xmm17414; AVX512-NEXT: vporq %xmm0, %xmm1, %xmm277415; AVX512-NEXT: vmovdqa {{.*#+}} xmm0 = [128,128,128,4,10,128,128,128,2,8,14,u,u,u,u,u]7416; AVX512-NEXT: vmovdqa {{.*#+}} ymm9 = [65535,0,65535,65535,0,65535,65535,0,65535,65535,0,65535,65535,0,65535,65535]7417; AVX512-NEXT: vmovdqa %ymm9, %ymm47418; AVX512-NEXT: vpternlogq {{.*#+}} ymm4 = ymm26 ^ (ymm4 & (ymm25 ^ ymm26))7419; AVX512-NEXT: vextracti128 $1, %ymm4, %xmm157420; AVX512-NEXT: vpshufb %xmm0, %xmm15, %xmm17421; AVX512-NEXT: vmovdqa {{.*#+}} xmm6 = [2,8,14,128,128,0,6,12,128,128,128,u,u,u,u,u]7422; AVX512-NEXT: vpshufb %xmm6, %xmm4, %xmm57423; AVX512-NEXT: vpor %xmm1, %xmm5, %xmm17424; AVX512-NEXT: vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7425; AVX512-NEXT: vmovdqa %ymm12, %ymm57426; AVX512-NEXT: vpternlogq {{.*#+}} ymm5 = ymm18 ^ (ymm5 & (ymm24 ^ ymm18))7427; AVX512-NEXT: vmovdqa {{.*#+}} xmm8 = [u,u,u,u,u,0,6,12,128,128,128,4,10,128,128,128]7428; AVX512-NEXT: vpshufb %xmm8, %xmm5, %xmm77429; AVX512-NEXT: vextracti128 $1, %ymm5, %xmm17430; AVX512-NEXT: vmovdqa {{.*#+}} xmm10 = [u,u,u,u,u,128,128,128,2,8,14,128,128,0,6,12]7431; AVX512-NEXT: vpshufb %xmm10, %xmm1, %xmm137432; AVX512-NEXT: vpor %xmm7, %xmm13, %xmm27433; AVX512-NEXT: vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7434; AVX512-NEXT: vmovdqa %ymm9, %ymm137435; AVX512-NEXT: vpternlogq {{.*#+}} ymm13 = ymm30 ^ (ymm13 & (ymm31 ^ ymm30))7436; AVX512-NEXT: vextracti128 $1, %ymm13, %xmm147437; AVX512-NEXT: vpshufb %xmm0, %xmm14, %xmm07438; AVX512-NEXT: vpshufb %xmm6, %xmm13, %xmm67439; AVX512-NEXT: vporq %xmm0, %xmm6, %xmm167440; AVX512-NEXT: vmovdqa %ymm12, %ymm117441; AVX512-NEXT: vpternlogq {{.*#+}} ymm11 = ymm22 ^ (ymm11 & (ymm29 ^ ymm22))7442; AVX512-NEXT: vpshufb %xmm8, %xmm11, %xmm87443; AVX512-NEXT: vextracti128 $1, %ymm11, %xmm77444; AVX512-NEXT: vpshufb %xmm10, %xmm7, %xmm107445; AVX512-NEXT: vpor %xmm8, %xmm10, %xmm07446; AVX512-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7447; AVX512-NEXT: vmovdqa {{.*#+}} xmm10 = [128,128,128,5,11,128,128,128,3,9,15,u,u,u,u,u]7448; AVX512-NEXT: vpshufb %xmm10, %xmm15, %xmm157449; AVX512-NEXT: vmovdqa {{.*#+}} xmm8 = [3,9,15,128,128,1,7,13,128,128,128,u,u,u,u,u]7450; AVX512-NEXT: vpshufb %xmm8, %xmm4, %xmm47451; AVX512-NEXT: vpor %xmm4, %xmm15, %xmm07452; AVX512-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7453; AVX512-NEXT: vpshufb {{.*#+}} xmm15 = xmm5[u,u,u,u,u,1,7,13],zero,zero,zero,xmm5[5,11],zero,zero,zero7454; AVX512-NEXT: vpshufb {{.*#+}} xmm1 = xmm1[u,u,u,u,u],zero,zero,zero,xmm1[3,9,15],zero,zero,xmm1[1,7,13]7455; AVX512-NEXT: vpor %xmm1, %xmm15, %xmm07456; AVX512-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7457; AVX512-NEXT: vmovdqa 256(%rdi), %ymm17458; AVX512-NEXT: vshufi64x2 {{.*#+}} ymm19 = ymm1[2,3],mem[2,3]7459; AVX512-NEXT: vinserti32x4 $1, 288(%rdi), %ymm1, %ymm207460; AVX512-NEXT: vmovdqa {{.*#+}} ymm5 = [65535,65535,0,65535,65535,0,65535,65535,65535,0,65535,65535,0,65535,65535,0]7461; AVX512-NEXT: vmovdqa %ymm5, %ymm17462; AVX512-NEXT: vpternlogq {{.*#+}} ymm1 = ymm19 ^ (ymm1 & (ymm20 ^ ymm19))7463; AVX512-NEXT: vpshufb {{.*#+}} ymm15 = ymm1[u,u,u,u,u,u,u,u,u,u,u,2,8,14,4,10,16,22,28,18,24,30,u,u,u,u,u,u,u,u,u,u]7464; AVX512-NEXT: vpblendw {{.*#+}} ymm3 = ymm15[0,1,2],ymm3[3,4,5,6,7],ymm15[8,9,10],ymm3[11,12,13,14,15]7465; AVX512-NEXT: vpblendd {{.*#+}} ymm15 = ymm15[0,1,2,3],ymm3[4,5,6,7]7466; AVX512-NEXT: vmovdqa64 64(%rdi), %ymm237467; AVX512-NEXT: vshufi64x2 {{.*#+}} ymm6 = ymm23[2,3],mem[2,3]7468; AVX512-NEXT: vinserti32x4 $1, 96(%rdi), %ymm23, %ymm237469; AVX512-NEXT: vinserti64x4 $1, %ymm15, %zmm0, %zmm157470; AVX512-NEXT: vmovdqa %ymm5, %ymm27471; AVX512-NEXT: vpternlogq {{.*#+}} ymm2 = ymm6 ^ (ymm2 & (ymm23 ^ ymm6))7472; AVX512-NEXT: vmovdqa {{.*#+}} ymm4 = [255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255]7473; AVX512-NEXT: vpshufb {{.*#+}} ymm0 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm2[2,8,14,4,10,16,22,28,18,24,30],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero7474; AVX512-NEXT: vpternlogq {{.*#+}} ymm0 = ymm0 | (ymm17 & ymm4)7475; AVX512-NEXT: vmovdqa64 {{.*#+}} zmm17 = [65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,0,0,0,0,0,0,0,0,0,0,0,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535]7476; AVX512-NEXT: vpternlogq $226, {{[-0-9]+}}(%r{{[sb]}}p), %zmm17, %zmm0 # 64-byte Folded Reload7477; AVX512-NEXT: # zmm0 = mem ^ (zmm17 & (zmm0 ^ mem))7478; AVX512-NEXT: vpmovsxdq {{.*#+}} zmm3 = [18446744073709551615,18446744073709551615,18446744073709551615,18446744073709551615,18446744073709551615,16777215,0,0]7479; AVX512-NEXT: vpternlogq {{.*#+}} zmm15 = zmm15 ^ (zmm3 & (zmm15 ^ zmm0))7480; AVX512-NEXT: vpshufb {{.*#+}} ymm0 = ymm1[u,u,u,u,u,u,u,u,u,u,u,3,9,15,5,11,17,23,29,19,25,31,u,u,u,u,u,u,u,u,u,u]7481; AVX512-NEXT: vinserti32x4 $1, %xmm27, %ymm0, %ymm17482; AVX512-NEXT: vpblendw {{.*#+}} ymm1 = ymm0[0,1,2],ymm1[3,4,5,6,7],ymm0[8,9,10],ymm1[11,12,13,14,15]7483; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]7484; AVX512-NEXT: vpshufb {{.*#+}} ymm1 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm2[3,9,15,5,11,17,23,29,19,25,31],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero7485; AVX512-NEXT: vpternlogq {{.*#+}} ymm1 = ymm1 | (ymm21 & ymm4)7486; AVX512-NEXT: vinserti32x4 $1, %xmm28, %ymm0, %ymm27487; AVX512-NEXT: vinserti32x4 $2, {{[-0-9]+}}(%r{{[sb]}}p), %zmm2, %zmm2 # 16-byte Folded Reload7488; AVX512-NEXT: vpternlogq {{.*#+}} zmm1 = zmm2 ^ (zmm17 & (zmm1 ^ zmm2))7489; AVX512-NEXT: vinserti64x4 $1, %ymm0, %zmm0, %zmm177490; AVX512-NEXT: vpternlogq {{.*#+}} zmm17 = zmm17 ^ (zmm3 & (zmm17 ^ zmm1))7491; AVX512-NEXT: vpshufb %xmm10, %xmm14, %xmm07492; AVX512-NEXT: vpshufb %xmm8, %xmm13, %xmm17493; AVX512-NEXT: vporq %xmm0, %xmm1, %xmm217494; AVX512-NEXT: vpshufb {{.*#+}} xmm0 = xmm11[u,u,u,u,u,1,7,13],zero,zero,zero,xmm11[5,11],zero,zero,zero7495; AVX512-NEXT: vpshufb {{.*#+}} xmm1 = xmm7[u,u,u,u,u],zero,zero,zero,xmm7[3,9,15],zero,zero,xmm7[1,7,13]7496; AVX512-NEXT: vporq %xmm0, %xmm1, %xmm287497; AVX512-NEXT: vmovdqa64 %ymm25, %ymm117498; AVX512-NEXT: vpternlogq {{.*#+}} ymm11 = ymm26 ^ (ymm12 & (ymm11 ^ ymm26))7499; AVX512-NEXT: vextracti128 $1, %ymm11, %xmm07500; AVX512-NEXT: vpshufb {{.*#+}} xmm1 = zero,zero,xmm0[0,6,12],zero,zero,zero,xmm0[4,10,u,u,u,u,u,u]7501; AVX512-NEXT: vmovdqa {{.*#+}} xmm3 = [4,10,128,128,128,2,8,14,128,128,u,u,u,u,u,u]7502; AVX512-NEXT: vpshufb %xmm3, %xmm11, %xmm27503; AVX512-NEXT: vmovdqa64 %xmm3, %xmm257504; AVX512-NEXT: vporq %xmm1, %xmm2, %xmm267505; AVX512-NEXT: vmovdqa64 %ymm18, %ymm147506; AVX512-NEXT: vpternlogq {{.*#+}} ymm14 = ymm24 ^ (ymm9 & (ymm14 ^ ymm24))7507; AVX512-NEXT: vextracti128 $1, %ymm14, %xmm107508; AVX512-NEXT: vmovdqa {{.*#+}} xmm1 = [u,u,u,u,u,128,128,128,4,10,128,128,128,2,8,14]7509; AVX512-NEXT: vpshufb %xmm1, %xmm10, %xmm27510; AVX512-NEXT: vmovdqa {{.*#+}} xmm3 = [u,u,u,u,u,2,8,14,128,128,0,6,12,128,128,128]7511; AVX512-NEXT: vpshufb %xmm3, %xmm14, %xmm47512; AVX512-NEXT: vporq %xmm2, %xmm4, %xmm277513; AVX512-NEXT: vpternlogq {{.*#+}} ymm12 = ymm30 ^ (ymm12 & (ymm31 ^ ymm30))7514; AVX512-NEXT: vmovdqa %ymm5, %ymm47515; AVX512-NEXT: vpternlogq {{.*#+}} ymm4 = ymm23 ^ (ymm4 & (ymm6 ^ ymm23))7516; AVX512-NEXT: vpternlogq {{.*#+}} ymm9 = ymm29 ^ (ymm9 & (ymm22 ^ ymm29))7517; AVX512-NEXT: vextracti128 $1, %ymm9, %xmm87518; AVX512-NEXT: vpshufb %xmm1, %xmm8, %xmm17519; AVX512-NEXT: vpshufb %xmm3, %xmm9, %xmm27520; AVX512-NEXT: vpor %xmm1, %xmm2, %xmm77521; AVX512-NEXT: vmovdqa {{.*#+}} xmm1 = [128,128,1,7,13,128,128,128,5,11,u,u,u,u,u,u]7522; AVX512-NEXT: vpshufb %xmm1, %xmm0, %xmm07523; AVX512-NEXT: vmovdqa64 %xmm1, %xmm227524; AVX512-NEXT: vmovdqa {{.*#+}} xmm13 = [5,11,128,128,128,3,9,15,128,128,u,u,u,u,u,u]7525; AVX512-NEXT: vpshufb %xmm13, %xmm11, %xmm17526; AVX512-NEXT: vpor %xmm0, %xmm1, %xmm37527; AVX512-NEXT: vmovdqa {{.*#+}} xmm2 = [u,u,u,u,u,128,128,128,5,11,128,128,128,3,9,15]7528; AVX512-NEXT: vpshufb %xmm2, %xmm10, %xmm17529; AVX512-NEXT: vmovdqa {{.*#+}} xmm0 = [u,u,u,u,u,3,9,15,128,128,1,7,13,128,128,128]7530; AVX512-NEXT: vpshufb %xmm0, %xmm14, %xmm107531; AVX512-NEXT: vpor %xmm1, %xmm10, %xmm107532; AVX512-NEXT: vmovdqa {{.*#+}} ymm1 = [128,128,128,128,128,128,128,128,128,128,128,4,10,0,6,12,18,24,30,20,26,128,128,128,128,128,128,128,128,128,128,128]7533; AVX512-NEXT: vpshufb %ymm1, %ymm4, %ymm117534; AVX512-NEXT: vmovdqa64 {{.*#+}} ymm18 = [255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255]7535; AVX512-NEXT: vpternlogq {{.*#+}} ymm16 = (ymm16 & ymm18) | ymm117536; AVX512-NEXT: vmovdqa {{.*#+}} ymm11 = [128,128,128,128,128,128,128,128,128,128,128,5,11,1,7,13,19,25,31,21,27,128,128,128,128,128,128,128,128,128,128,128]7537; AVX512-NEXT: vpshufb %ymm11, %ymm4, %ymm47538; AVX512-NEXT: vpternlogq {{.*#+}} ymm21 = (ymm21 & ymm18) | ymm47539; AVX512-NEXT: vinserti128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm4 # 16-byte Folded Reload7540; AVX512-NEXT: vpternlogq {{.*#+}} ymm5 = ymm20 ^ (ymm5 & (ymm19 ^ ymm20))7541; AVX512-NEXT: vpshufb %ymm1, %ymm5, %ymm17542; AVX512-NEXT: vpternlogq {{.*#+}} ymm1 = ymm1 | (ymm4 & ymm18)7543; AVX512-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm47544; AVX512-NEXT: vpshufb %ymm11, %ymm5, %ymm57545; AVX512-NEXT: vextracti128 $1, %ymm12, %xmm17546; AVX512-NEXT: vpshufb {{.*#+}} xmm11 = zero,zero,xmm1[0,6,12],zero,zero,zero,xmm1[4,10,u,u,u,u,u,u]7547; AVX512-NEXT: vmovdqa64 %xmm25, %xmm147548; AVX512-NEXT: vpshufb %xmm14, %xmm12, %xmm147549; AVX512-NEXT: vpor %xmm11, %xmm14, %xmm117550; AVX512-NEXT: vpshufb %xmm2, %xmm8, %xmm27551; AVX512-NEXT: vpshufb %xmm0, %xmm9, %xmm07552; AVX512-NEXT: vpor %xmm2, %xmm0, %xmm07553; AVX512-NEXT: vmovdqa {{.*#+}} ymm2 = [0,65535,65535,0,65535,65535,0,65535,65535,65535,0,65535,65535,0,65535,65535]7554; AVX512-NEXT: vpternlogq {{.*#+}} ymm6 = ymm23 ^ (ymm2 & (ymm6 ^ ymm23))7555; AVX512-NEXT: vpshufb {{.*#+}} ymm8 = ymm6[u,u,u,u,u,u,u,u,u,u,0,6,12,2,8,14,20,26,16,22,28,u,u,u,u,u,u,u,u,u,u,u]7556; AVX512-NEXT: vpblendw {{.*#+}} xmm9 = xmm11[0,1,2,3,4],xmm8[5,6,7]7557; AVX512-NEXT: vpblendd {{.*#+}} ymm8 = ymm9[0,1,2,3],ymm8[4,5,6,7]7558; AVX512-NEXT: vinserti32x4 $1, %xmm28, %ymm0, %ymm97559; AVX512-NEXT: vpternlogq {{.*#+}} ymm5 = ymm5 | (ymm9 & ymm18)7560; AVX512-NEXT: vinserti64x4 $1, %ymm5, %zmm0, %zmm57561; AVX512-NEXT: vpternlogq {{.*#+}} ymm2 = ymm20 ^ (ymm2 & (ymm19 ^ ymm20))7562; AVX512-NEXT: vmovdqa64 {{.*#+}} zmm9 = [255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255]7563; AVX512-NEXT: vinserti128 $1, %xmm7, %ymm0, %ymm77564; AVX512-NEXT: vpshufb {{.*#+}} ymm11 = ymm2[u,u,u,u,u,u,u,u,u,u,0,6,12,2,8,14,20,26,16,22,28],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero7565; AVX512-NEXT: vpternlogq {{.*#+}} ymm11 = ymm11 | (ymm7 & ~ymm9)7566; AVX512-NEXT: vinserti64x4 $1, %ymm11, %zmm0, %zmm77567; AVX512-NEXT: vinserti32x4 $1, %xmm27, %ymm0, %ymm117568; AVX512-NEXT: vinserti32x4 $2, %xmm26, %zmm11, %zmm117569; AVX512-NEXT: vpternlogq {{.*#+}} zmm8 = zmm11 ^ (zmm9 & (zmm8 ^ zmm11))7570; AVX512-NEXT: vpmovsxdq {{.*#+}} zmm11 = [18446744073709551615,18446744073709551615,18446744073709551615,18446744073709551615,18446744073709551615,65535,0,0]7571; AVX512-NEXT: vpternlogq {{.*#+}} zmm7 = zmm7 ^ (zmm11 & (zmm7 ^ zmm8))7572; AVX512-NEXT: vmovdqa64 %xmm22, %xmm87573; AVX512-NEXT: vpshufb %xmm8, %xmm1, %xmm17574; AVX512-NEXT: vpshufb %xmm13, %xmm12, %xmm87575; AVX512-NEXT: vpor %xmm1, %xmm8, %xmm17576; AVX512-NEXT: vpshufb {{.*#+}} ymm6 = ymm6[u,u,u,u,u,u,u,u,u,u,1,7,13,3,9,15,21,27,17,23,29,u,u,u,u,u,u,u,u,u,u,u]7577; AVX512-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1,2,3,4],xmm6[5,6,7]7578; AVX512-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm6[4,5,6,7]7579; AVX512-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm07580; AVX512-NEXT: vpshufb {{.*#+}} ymm2 = ymm2[u,u,u,u,u,u,u,u,u,u,1,7,13,3,9,15,21,27,17,23,29],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero7581; AVX512-NEXT: vpternlogq {{.*#+}} ymm2 = ymm2 | (ymm0 & ~ymm9)7582; AVX512-NEXT: vinserti64x4 $1, %ymm2, %zmm0, %zmm07583; AVX512-NEXT: vinserti128 $1, %xmm10, %ymm0, %ymm27584; AVX512-NEXT: vinserti32x4 $2, %xmm3, %zmm2, %zmm27585; AVX512-NEXT: vpternlogq {{.*#+}} zmm1 = zmm2 ^ (zmm9 & (zmm1 ^ zmm2))7586; AVX512-NEXT: vpternlogq {{.*#+}} zmm0 = zmm0 ^ (zmm11 & (zmm0 ^ zmm1))7587; AVX512-NEXT: vinserti128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm1 # 16-byte Folded Reload7588; AVX512-NEXT: vinserti32x4 $2, {{[-0-9]+}}(%r{{[sb]}}p), %zmm1, %zmm1 # 16-byte Folded Reload7589; AVX512-NEXT: vpmovsxwd {{.*#+}} zmm2 = [0,0,0,0,0,4294967040,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295]7590; AVX512-NEXT: vpternlogq {{.*#+}} zmm16 = zmm16 ^ (zmm2 & (zmm16 ^ zmm1))7591; AVX512-NEXT: vinserti128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm1 # 16-byte Folded Reload7592; AVX512-NEXT: vinserti32x4 $2, {{[-0-9]+}}(%r{{[sb]}}p), %zmm1, %zmm1 # 16-byte Folded Reload7593; AVX512-NEXT: vpternlogq {{.*#+}} zmm21 = zmm21 ^ (zmm2 & (zmm21 ^ zmm1))7594; AVX512-NEXT: vpmovsxdq {{.*#+}} zmm1 = [18446744073709551615,18446744073709551615,18446744073709551615,18446744073709551615,18446744073709551615,16777215,0,0]7595; AVX512-NEXT: vpternlogq {{.*#+}} zmm4 = zmm4 ^ (zmm1 & (zmm4 ^ zmm16))7596; AVX512-NEXT: vpternlogq {{.*#+}} zmm5 = zmm5 ^ (zmm1 & (zmm5 ^ zmm21))7597; AVX512-NEXT: vmovdqa64 %zmm15, (%rsi)7598; AVX512-NEXT: vmovdqa64 %zmm17, (%rdx)7599; AVX512-NEXT: vmovdqa64 %zmm4, (%rcx)7600; AVX512-NEXT: vmovdqa64 %zmm5, (%r8)7601; AVX512-NEXT: vmovdqa64 %zmm7, (%r9)7602; AVX512-NEXT: movq {{[0-9]+}}(%rsp), %rax7603; AVX512-NEXT: vmovdqa64 %zmm0, (%rax)7604; AVX512-NEXT: addq $40, %rsp7605; AVX512-NEXT: vzeroupper7606; AVX512-NEXT: retq7607;7608; AVX512-FCP-LABEL: load_i8_stride6_vf64:7609; AVX512-FCP: # %bb.0:7610; AVX512-FCP-NEXT: subq $40, %rsp7611; AVX512-FCP-NEXT: vmovdqa {{.*#+}} ymm12 = [65535,65535,0,65535,65535,0,65535,65535,0,65535,65535,0,65535,65535,0,65535]7612; AVX512-FCP-NEXT: vmovdqa64 224(%rdi), %ymm257613; AVX512-FCP-NEXT: vmovdqa64 192(%rdi), %ymm267614; AVX512-FCP-NEXT: vmovdqa %ymm12, %ymm07615; AVX512-FCP-NEXT: vpternlogq {{.*#+}} ymm0 = ymm25 ^ (ymm0 & (ymm26 ^ ymm25))7616; AVX512-FCP-NEXT: vmovdqa {{.*#+}} xmm1 = [0,6,12,128,128,128,4,10,128,128,128,u,u,u,u,u]7617; AVX512-FCP-NEXT: vpshufb %xmm1, %xmm0, %xmm37618; AVX512-FCP-NEXT: vmovdqa {{.*#+}} xmm5 = [128,128,128,2,8,14,128,128,0,6,12,u,u,u,u,u]7619; AVX512-FCP-NEXT: vextracti128 $1, %ymm0, %xmm47620; AVX512-FCP-NEXT: vpshufb %xmm5, %xmm4, %xmm67621; AVX512-FCP-NEXT: vpor %xmm3, %xmm6, %xmm97622; AVX512-FCP-NEXT: vmovdqa64 (%rdi), %ymm307623; AVX512-FCP-NEXT: vmovdqa64 32(%rdi), %ymm317624; AVX512-FCP-NEXT: vmovdqa64 128(%rdi), %ymm247625; AVX512-FCP-NEXT: vmovdqa64 160(%rdi), %ymm187626; AVX512-FCP-NEXT: vmovdqa %ymm12, %ymm67627; AVX512-FCP-NEXT: vpternlogq {{.*#+}} ymm6 = ymm24 ^ (ymm6 & (ymm18 ^ ymm24))7628; AVX512-FCP-NEXT: vextracti128 $1, %ymm6, %xmm77629; AVX512-FCP-NEXT: vmovdqa {{.*#+}} xmm3 = [u,u,u,u,u,u,128,128,0,6,12,128,128,128,4,10]7630; AVX512-FCP-NEXT: vpshufb %xmm3, %xmm7, %xmm107631; AVX512-FCP-NEXT: vmovdqa {{.*#+}} xmm8 = [u,u,u,u,u,u,4,10,128,128,128,2,8,14,128,128]7632; AVX512-FCP-NEXT: vpshufb %xmm8, %xmm6, %xmm137633; AVX512-FCP-NEXT: vpor %xmm10, %xmm13, %xmm107634; AVX512-FCP-NEXT: vinserti128 $1, %xmm10, %ymm0, %ymm107635; AVX512-FCP-NEXT: vinserti32x4 $2, %xmm9, %zmm10, %zmm27636; AVX512-FCP-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7637; AVX512-FCP-NEXT: vmovdqa %ymm12, %ymm97638; AVX512-FCP-NEXT: vpternlogq {{.*#+}} ymm9 = ymm31 ^ (ymm9 & (ymm30 ^ ymm31))7639; AVX512-FCP-NEXT: vpshufb %xmm1, %xmm9, %xmm17640; AVX512-FCP-NEXT: vextracti128 $1, %ymm9, %xmm137641; AVX512-FCP-NEXT: vpshufb %xmm5, %xmm13, %xmm57642; AVX512-FCP-NEXT: vporq %xmm1, %xmm5, %xmm177643; AVX512-FCP-NEXT: vmovdqa64 320(%rdi), %ymm297644; AVX512-FCP-NEXT: vmovdqa64 352(%rdi), %ymm227645; AVX512-FCP-NEXT: vmovdqa %ymm12, %ymm17646; AVX512-FCP-NEXT: vpternlogq {{.*#+}} ymm1 = ymm29 ^ (ymm1 & (ymm22 ^ ymm29))7647; AVX512-FCP-NEXT: vextracti128 $1, %ymm1, %xmm57648; AVX512-FCP-NEXT: vpshufb %xmm3, %xmm5, %xmm37649; AVX512-FCP-NEXT: vpshufb %xmm8, %xmm1, %xmm87650; AVX512-FCP-NEXT: vpor %xmm3, %xmm8, %xmm37651; AVX512-FCP-NEXT: vinserti128 $1, %xmm3, %ymm0, %ymm37652; AVX512-FCP-NEXT: vmovdqa {{.*#+}} xmm8 = [1,7,13,128,128,128,5,11,128,128,128,u,u,u,u,u]7653; AVX512-FCP-NEXT: vpshufb %xmm8, %xmm0, %xmm07654; AVX512-FCP-NEXT: vmovdqa {{.*#+}} xmm10 = [128,128,128,3,9,15,128,128,1,7,13,u,u,u,u,u]7655; AVX512-FCP-NEXT: vpshufb %xmm10, %xmm4, %xmm47656; AVX512-FCP-NEXT: vpor %xmm0, %xmm4, %xmm07657; AVX512-FCP-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7658; AVX512-FCP-NEXT: vmovdqa {{.*#+}} xmm0 = [u,u,u,u,u,u,128,128,1,7,13,128,128,128,5,11]7659; AVX512-FCP-NEXT: vpshufb %xmm0, %xmm7, %xmm47660; AVX512-FCP-NEXT: vmovdqa {{.*#+}} xmm7 = [u,u,u,u,u,u,5,11,128,128,128,3,9,15,128,128]7661; AVX512-FCP-NEXT: vpshufb %xmm7, %xmm6, %xmm67662; AVX512-FCP-NEXT: vporq %xmm4, %xmm6, %xmm287663; AVX512-FCP-NEXT: vpshufb %xmm8, %xmm9, %xmm47664; AVX512-FCP-NEXT: vpshufb %xmm10, %xmm13, %xmm67665; AVX512-FCP-NEXT: vporq %xmm4, %xmm6, %xmm217666; AVX512-FCP-NEXT: vpshufb %xmm0, %xmm5, %xmm07667; AVX512-FCP-NEXT: vpshufb %xmm7, %xmm1, %xmm17668; AVX512-FCP-NEXT: vporq %xmm0, %xmm1, %xmm277669; AVX512-FCP-NEXT: vmovdqa {{.*#+}} xmm0 = [128,128,128,4,10,128,128,128,2,8,14,u,u,u,u,u]7670; AVX512-FCP-NEXT: vmovdqa {{.*#+}} ymm9 = [65535,0,65535,65535,0,65535,65535,0,65535,65535,0,65535,65535,0,65535,65535]7671; AVX512-FCP-NEXT: vmovdqa %ymm9, %ymm47672; AVX512-FCP-NEXT: vpternlogq {{.*#+}} ymm4 = ymm26 ^ (ymm4 & (ymm25 ^ ymm26))7673; AVX512-FCP-NEXT: vextracti128 $1, %ymm4, %xmm157674; AVX512-FCP-NEXT: vpshufb %xmm0, %xmm15, %xmm17675; AVX512-FCP-NEXT: vmovdqa {{.*#+}} xmm6 = [2,8,14,128,128,0,6,12,128,128,128,u,u,u,u,u]7676; AVX512-FCP-NEXT: vpshufb %xmm6, %xmm4, %xmm57677; AVX512-FCP-NEXT: vpor %xmm1, %xmm5, %xmm17678; AVX512-FCP-NEXT: vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7679; AVX512-FCP-NEXT: vmovdqa %ymm12, %ymm57680; AVX512-FCP-NEXT: vpternlogq {{.*#+}} ymm5 = ymm18 ^ (ymm5 & (ymm24 ^ ymm18))7681; AVX512-FCP-NEXT: vmovdqa {{.*#+}} xmm8 = [u,u,u,u,u,0,6,12,128,128,128,4,10,128,128,128]7682; AVX512-FCP-NEXT: vpshufb %xmm8, %xmm5, %xmm77683; AVX512-FCP-NEXT: vextracti128 $1, %ymm5, %xmm17684; AVX512-FCP-NEXT: vmovdqa {{.*#+}} xmm10 = [u,u,u,u,u,128,128,128,2,8,14,128,128,0,6,12]7685; AVX512-FCP-NEXT: vpshufb %xmm10, %xmm1, %xmm137686; AVX512-FCP-NEXT: vpor %xmm7, %xmm13, %xmm27687; AVX512-FCP-NEXT: vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7688; AVX512-FCP-NEXT: vmovdqa %ymm9, %ymm137689; AVX512-FCP-NEXT: vpternlogq {{.*#+}} ymm13 = ymm30 ^ (ymm13 & (ymm31 ^ ymm30))7690; AVX512-FCP-NEXT: vextracti128 $1, %ymm13, %xmm147691; AVX512-FCP-NEXT: vpshufb %xmm0, %xmm14, %xmm07692; AVX512-FCP-NEXT: vpshufb %xmm6, %xmm13, %xmm67693; AVX512-FCP-NEXT: vporq %xmm0, %xmm6, %xmm167694; AVX512-FCP-NEXT: vmovdqa %ymm12, %ymm117695; AVX512-FCP-NEXT: vpternlogq {{.*#+}} ymm11 = ymm22 ^ (ymm11 & (ymm29 ^ ymm22))7696; AVX512-FCP-NEXT: vpshufb %xmm8, %xmm11, %xmm87697; AVX512-FCP-NEXT: vextracti128 $1, %ymm11, %xmm77698; AVX512-FCP-NEXT: vpshufb %xmm10, %xmm7, %xmm107699; AVX512-FCP-NEXT: vpor %xmm8, %xmm10, %xmm07700; AVX512-FCP-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7701; AVX512-FCP-NEXT: vmovdqa {{.*#+}} xmm10 = [128,128,128,5,11,128,128,128,3,9,15,u,u,u,u,u]7702; AVX512-FCP-NEXT: vpshufb %xmm10, %xmm15, %xmm157703; AVX512-FCP-NEXT: vmovdqa {{.*#+}} xmm8 = [3,9,15,128,128,1,7,13,128,128,128,u,u,u,u,u]7704; AVX512-FCP-NEXT: vpshufb %xmm8, %xmm4, %xmm47705; AVX512-FCP-NEXT: vpor %xmm4, %xmm15, %xmm07706; AVX512-FCP-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7707; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm15 = xmm5[u,u,u,u,u,1,7,13],zero,zero,zero,xmm5[5,11],zero,zero,zero7708; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm1 = xmm1[u,u,u,u,u],zero,zero,zero,xmm1[3,9,15],zero,zero,xmm1[1,7,13]7709; AVX512-FCP-NEXT: vpor %xmm1, %xmm15, %xmm07710; AVX512-FCP-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7711; AVX512-FCP-NEXT: vmovdqa 256(%rdi), %ymm17712; AVX512-FCP-NEXT: vshufi64x2 {{.*#+}} ymm19 = ymm1[2,3],mem[2,3]7713; AVX512-FCP-NEXT: vinserti32x4 $1, 288(%rdi), %ymm1, %ymm207714; AVX512-FCP-NEXT: vmovdqa {{.*#+}} ymm5 = [65535,65535,0,65535,65535,0,65535,65535,65535,0,65535,65535,0,65535,65535,0]7715; AVX512-FCP-NEXT: vmovdqa %ymm5, %ymm17716; AVX512-FCP-NEXT: vpternlogq {{.*#+}} ymm1 = ymm19 ^ (ymm1 & (ymm20 ^ ymm19))7717; AVX512-FCP-NEXT: vpshufb {{.*#+}} ymm15 = ymm1[u,u,u,u,u,u,u,u,u,u,u,2,8,14,4,10,16,22,28,18,24,30,u,u,u,u,u,u,u,u,u,u]7718; AVX512-FCP-NEXT: vpblendw {{.*#+}} ymm3 = ymm15[0,1,2],ymm3[3,4,5,6,7],ymm15[8,9,10],ymm3[11,12,13,14,15]7719; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm15 = ymm15[0,1,2,3],ymm3[4,5,6,7]7720; AVX512-FCP-NEXT: vmovdqa64 64(%rdi), %ymm237721; AVX512-FCP-NEXT: vshufi64x2 {{.*#+}} ymm6 = ymm23[2,3],mem[2,3]7722; AVX512-FCP-NEXT: vinserti32x4 $1, 96(%rdi), %ymm23, %ymm237723; AVX512-FCP-NEXT: vinserti64x4 $1, %ymm15, %zmm0, %zmm157724; AVX512-FCP-NEXT: vmovdqa %ymm5, %ymm27725; AVX512-FCP-NEXT: vpternlogq {{.*#+}} ymm2 = ymm6 ^ (ymm2 & (ymm23 ^ ymm6))7726; AVX512-FCP-NEXT: vmovdqa {{.*#+}} ymm4 = [255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255]7727; AVX512-FCP-NEXT: vpshufb {{.*#+}} ymm0 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm2[2,8,14,4,10,16,22,28,18,24,30],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero7728; AVX512-FCP-NEXT: vpternlogq {{.*#+}} ymm0 = ymm0 | (ymm17 & ymm4)7729; AVX512-FCP-NEXT: vmovdqa64 {{.*#+}} zmm17 = [65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,0,0,0,0,0,0,0,0,0,0,0,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535]7730; AVX512-FCP-NEXT: vpternlogq $226, {{[-0-9]+}}(%r{{[sb]}}p), %zmm17, %zmm0 # 64-byte Folded Reload7731; AVX512-FCP-NEXT: # zmm0 = mem ^ (zmm17 & (zmm0 ^ mem))7732; AVX512-FCP-NEXT: vpmovsxdq {{.*#+}} zmm3 = [18446744073709551615,18446744073709551615,18446744073709551615,18446744073709551615,18446744073709551615,16777215,0,0]7733; AVX512-FCP-NEXT: vpternlogq {{.*#+}} zmm15 = zmm15 ^ (zmm3 & (zmm15 ^ zmm0))7734; AVX512-FCP-NEXT: vpshufb {{.*#+}} ymm0 = ymm1[u,u,u,u,u,u,u,u,u,u,u,3,9,15,5,11,17,23,29,19,25,31,u,u,u,u,u,u,u,u,u,u]7735; AVX512-FCP-NEXT: vinserti32x4 $1, %xmm27, %ymm0, %ymm17736; AVX512-FCP-NEXT: vpblendw {{.*#+}} ymm1 = ymm0[0,1,2],ymm1[3,4,5,6,7],ymm0[8,9,10],ymm1[11,12,13,14,15]7737; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]7738; AVX512-FCP-NEXT: vpshufb {{.*#+}} ymm1 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm2[3,9,15,5,11,17,23,29,19,25,31],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero7739; AVX512-FCP-NEXT: vpternlogq {{.*#+}} ymm1 = ymm1 | (ymm21 & ymm4)7740; AVX512-FCP-NEXT: vinserti32x4 $1, %xmm28, %ymm0, %ymm27741; AVX512-FCP-NEXT: vinserti32x4 $2, {{[-0-9]+}}(%r{{[sb]}}p), %zmm2, %zmm2 # 16-byte Folded Reload7742; AVX512-FCP-NEXT: vpternlogq {{.*#+}} zmm1 = zmm2 ^ (zmm17 & (zmm1 ^ zmm2))7743; AVX512-FCP-NEXT: vinserti64x4 $1, %ymm0, %zmm0, %zmm177744; AVX512-FCP-NEXT: vpternlogq {{.*#+}} zmm17 = zmm17 ^ (zmm3 & (zmm17 ^ zmm1))7745; AVX512-FCP-NEXT: vpshufb %xmm10, %xmm14, %xmm07746; AVX512-FCP-NEXT: vpshufb %xmm8, %xmm13, %xmm17747; AVX512-FCP-NEXT: vporq %xmm0, %xmm1, %xmm217748; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm0 = xmm11[u,u,u,u,u,1,7,13],zero,zero,zero,xmm11[5,11],zero,zero,zero7749; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm1 = xmm7[u,u,u,u,u],zero,zero,zero,xmm7[3,9,15],zero,zero,xmm7[1,7,13]7750; AVX512-FCP-NEXT: vporq %xmm0, %xmm1, %xmm287751; AVX512-FCP-NEXT: vmovdqa64 %ymm25, %ymm117752; AVX512-FCP-NEXT: vpternlogq {{.*#+}} ymm11 = ymm26 ^ (ymm12 & (ymm11 ^ ymm26))7753; AVX512-FCP-NEXT: vextracti128 $1, %ymm11, %xmm07754; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm1 = zero,zero,xmm0[0,6,12],zero,zero,zero,xmm0[4,10,u,u,u,u,u,u]7755; AVX512-FCP-NEXT: vmovdqa {{.*#+}} xmm3 = [4,10,128,128,128,2,8,14,128,128,u,u,u,u,u,u]7756; AVX512-FCP-NEXT: vpshufb %xmm3, %xmm11, %xmm27757; AVX512-FCP-NEXT: vmovdqa64 %xmm3, %xmm257758; AVX512-FCP-NEXT: vporq %xmm1, %xmm2, %xmm267759; AVX512-FCP-NEXT: vmovdqa64 %ymm18, %ymm147760; AVX512-FCP-NEXT: vpternlogq {{.*#+}} ymm14 = ymm24 ^ (ymm9 & (ymm14 ^ ymm24))7761; AVX512-FCP-NEXT: vextracti128 $1, %ymm14, %xmm107762; AVX512-FCP-NEXT: vmovdqa {{.*#+}} xmm1 = [u,u,u,u,u,128,128,128,4,10,128,128,128,2,8,14]7763; AVX512-FCP-NEXT: vpshufb %xmm1, %xmm10, %xmm27764; AVX512-FCP-NEXT: vmovdqa {{.*#+}} xmm3 = [u,u,u,u,u,2,8,14,128,128,0,6,12,128,128,128]7765; AVX512-FCP-NEXT: vpshufb %xmm3, %xmm14, %xmm47766; AVX512-FCP-NEXT: vporq %xmm2, %xmm4, %xmm277767; AVX512-FCP-NEXT: vpternlogq {{.*#+}} ymm12 = ymm30 ^ (ymm12 & (ymm31 ^ ymm30))7768; AVX512-FCP-NEXT: vmovdqa %ymm5, %ymm47769; AVX512-FCP-NEXT: vpternlogq {{.*#+}} ymm4 = ymm23 ^ (ymm4 & (ymm6 ^ ymm23))7770; AVX512-FCP-NEXT: vpternlogq {{.*#+}} ymm9 = ymm29 ^ (ymm9 & (ymm22 ^ ymm29))7771; AVX512-FCP-NEXT: vextracti128 $1, %ymm9, %xmm87772; AVX512-FCP-NEXT: vpshufb %xmm1, %xmm8, %xmm17773; AVX512-FCP-NEXT: vpshufb %xmm3, %xmm9, %xmm27774; AVX512-FCP-NEXT: vpor %xmm1, %xmm2, %xmm77775; AVX512-FCP-NEXT: vmovdqa {{.*#+}} xmm1 = [128,128,1,7,13,128,128,128,5,11,u,u,u,u,u,u]7776; AVX512-FCP-NEXT: vpshufb %xmm1, %xmm0, %xmm07777; AVX512-FCP-NEXT: vmovdqa64 %xmm1, %xmm227778; AVX512-FCP-NEXT: vmovdqa {{.*#+}} xmm13 = [5,11,128,128,128,3,9,15,128,128,u,u,u,u,u,u]7779; AVX512-FCP-NEXT: vpshufb %xmm13, %xmm11, %xmm17780; AVX512-FCP-NEXT: vpor %xmm0, %xmm1, %xmm37781; AVX512-FCP-NEXT: vmovdqa {{.*#+}} xmm2 = [u,u,u,u,u,128,128,128,5,11,128,128,128,3,9,15]7782; AVX512-FCP-NEXT: vpshufb %xmm2, %xmm10, %xmm17783; AVX512-FCP-NEXT: vmovdqa {{.*#+}} xmm0 = [u,u,u,u,u,3,9,15,128,128,1,7,13,128,128,128]7784; AVX512-FCP-NEXT: vpshufb %xmm0, %xmm14, %xmm107785; AVX512-FCP-NEXT: vpor %xmm1, %xmm10, %xmm107786; AVX512-FCP-NEXT: vmovdqa {{.*#+}} ymm1 = [128,128,128,128,128,128,128,128,128,128,128,4,10,0,6,12,18,24,30,20,26,128,128,128,128,128,128,128,128,128,128,128]7787; AVX512-FCP-NEXT: vpshufb %ymm1, %ymm4, %ymm117788; AVX512-FCP-NEXT: vmovdqa64 {{.*#+}} ymm18 = [255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255]7789; AVX512-FCP-NEXT: vpternlogq {{.*#+}} ymm16 = (ymm16 & ymm18) | ymm117790; AVX512-FCP-NEXT: vmovdqa {{.*#+}} ymm11 = [128,128,128,128,128,128,128,128,128,128,128,5,11,1,7,13,19,25,31,21,27,128,128,128,128,128,128,128,128,128,128,128]7791; AVX512-FCP-NEXT: vpshufb %ymm11, %ymm4, %ymm47792; AVX512-FCP-NEXT: vpternlogq {{.*#+}} ymm21 = (ymm21 & ymm18) | ymm47793; AVX512-FCP-NEXT: vinserti128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm4 # 16-byte Folded Reload7794; AVX512-FCP-NEXT: vpternlogq {{.*#+}} ymm5 = ymm20 ^ (ymm5 & (ymm19 ^ ymm20))7795; AVX512-FCP-NEXT: vpshufb %ymm1, %ymm5, %ymm17796; AVX512-FCP-NEXT: vpternlogq {{.*#+}} ymm1 = ymm1 | (ymm4 & ymm18)7797; AVX512-FCP-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm47798; AVX512-FCP-NEXT: vpshufb %ymm11, %ymm5, %ymm57799; AVX512-FCP-NEXT: vextracti128 $1, %ymm12, %xmm17800; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm11 = zero,zero,xmm1[0,6,12],zero,zero,zero,xmm1[4,10,u,u,u,u,u,u]7801; AVX512-FCP-NEXT: vmovdqa64 %xmm25, %xmm147802; AVX512-FCP-NEXT: vpshufb %xmm14, %xmm12, %xmm147803; AVX512-FCP-NEXT: vpor %xmm11, %xmm14, %xmm117804; AVX512-FCP-NEXT: vpshufb %xmm2, %xmm8, %xmm27805; AVX512-FCP-NEXT: vpshufb %xmm0, %xmm9, %xmm07806; AVX512-FCP-NEXT: vpor %xmm2, %xmm0, %xmm07807; AVX512-FCP-NEXT: vmovdqa {{.*#+}} ymm2 = [0,65535,65535,0,65535,65535,0,65535,65535,65535,0,65535,65535,0,65535,65535]7808; AVX512-FCP-NEXT: vpternlogq {{.*#+}} ymm6 = ymm23 ^ (ymm2 & (ymm6 ^ ymm23))7809; AVX512-FCP-NEXT: vpshufb {{.*#+}} ymm8 = ymm6[u,u,u,u,u,u,u,u,u,u,0,6,12,2,8,14,20,26,16,22,28,u,u,u,u,u,u,u,u,u,u,u]7810; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm9 = xmm11[0,1,2,3,4],xmm8[5,6,7]7811; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm8 = ymm9[0,1,2,3],ymm8[4,5,6,7]7812; AVX512-FCP-NEXT: vinserti32x4 $1, %xmm28, %ymm0, %ymm97813; AVX512-FCP-NEXT: vpternlogq {{.*#+}} ymm5 = ymm5 | (ymm9 & ymm18)7814; AVX512-FCP-NEXT: vinserti64x4 $1, %ymm5, %zmm0, %zmm57815; AVX512-FCP-NEXT: vpternlogq {{.*#+}} ymm2 = ymm20 ^ (ymm2 & (ymm19 ^ ymm20))7816; AVX512-FCP-NEXT: vmovdqa64 {{.*#+}} zmm9 = [255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255]7817; AVX512-FCP-NEXT: vinserti128 $1, %xmm7, %ymm0, %ymm77818; AVX512-FCP-NEXT: vpshufb {{.*#+}} ymm11 = ymm2[u,u,u,u,u,u,u,u,u,u,0,6,12,2,8,14,20,26,16,22,28],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero7819; AVX512-FCP-NEXT: vpternlogq {{.*#+}} ymm11 = ymm11 | (ymm7 & ~ymm9)7820; AVX512-FCP-NEXT: vinserti64x4 $1, %ymm11, %zmm0, %zmm77821; AVX512-FCP-NEXT: vinserti32x4 $1, %xmm27, %ymm0, %ymm117822; AVX512-FCP-NEXT: vinserti32x4 $2, %xmm26, %zmm11, %zmm117823; AVX512-FCP-NEXT: vpternlogq {{.*#+}} zmm8 = zmm11 ^ (zmm9 & (zmm8 ^ zmm11))7824; AVX512-FCP-NEXT: vpmovsxdq {{.*#+}} zmm11 = [18446744073709551615,18446744073709551615,18446744073709551615,18446744073709551615,18446744073709551615,65535,0,0]7825; AVX512-FCP-NEXT: vpternlogq {{.*#+}} zmm7 = zmm7 ^ (zmm11 & (zmm7 ^ zmm8))7826; AVX512-FCP-NEXT: vmovdqa64 %xmm22, %xmm87827; AVX512-FCP-NEXT: vpshufb %xmm8, %xmm1, %xmm17828; AVX512-FCP-NEXT: vpshufb %xmm13, %xmm12, %xmm87829; AVX512-FCP-NEXT: vpor %xmm1, %xmm8, %xmm17830; AVX512-FCP-NEXT: vpshufb {{.*#+}} ymm6 = ymm6[u,u,u,u,u,u,u,u,u,u,1,7,13,3,9,15,21,27,17,23,29,u,u,u,u,u,u,u,u,u,u,u]7831; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1,2,3,4],xmm6[5,6,7]7832; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm6[4,5,6,7]7833; AVX512-FCP-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm07834; AVX512-FCP-NEXT: vpshufb {{.*#+}} ymm2 = ymm2[u,u,u,u,u,u,u,u,u,u,1,7,13,3,9,15,21,27,17,23,29],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero7835; AVX512-FCP-NEXT: vpternlogq {{.*#+}} ymm2 = ymm2 | (ymm0 & ~ymm9)7836; AVX512-FCP-NEXT: vinserti64x4 $1, %ymm2, %zmm0, %zmm07837; AVX512-FCP-NEXT: vinserti128 $1, %xmm10, %ymm0, %ymm27838; AVX512-FCP-NEXT: vinserti32x4 $2, %xmm3, %zmm2, %zmm27839; AVX512-FCP-NEXT: vpternlogq {{.*#+}} zmm1 = zmm2 ^ (zmm9 & (zmm1 ^ zmm2))7840; AVX512-FCP-NEXT: vpternlogq {{.*#+}} zmm0 = zmm0 ^ (zmm11 & (zmm0 ^ zmm1))7841; AVX512-FCP-NEXT: vinserti128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm1 # 16-byte Folded Reload7842; AVX512-FCP-NEXT: vinserti32x4 $2, {{[-0-9]+}}(%r{{[sb]}}p), %zmm1, %zmm1 # 16-byte Folded Reload7843; AVX512-FCP-NEXT: vpmovsxwd {{.*#+}} zmm2 = [0,0,0,0,0,4294967040,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295]7844; AVX512-FCP-NEXT: vpternlogq {{.*#+}} zmm16 = zmm16 ^ (zmm2 & (zmm16 ^ zmm1))7845; AVX512-FCP-NEXT: vinserti128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm1 # 16-byte Folded Reload7846; AVX512-FCP-NEXT: vinserti32x4 $2, {{[-0-9]+}}(%r{{[sb]}}p), %zmm1, %zmm1 # 16-byte Folded Reload7847; AVX512-FCP-NEXT: vpternlogq {{.*#+}} zmm21 = zmm21 ^ (zmm2 & (zmm21 ^ zmm1))7848; AVX512-FCP-NEXT: vpmovsxdq {{.*#+}} zmm1 = [18446744073709551615,18446744073709551615,18446744073709551615,18446744073709551615,18446744073709551615,16777215,0,0]7849; AVX512-FCP-NEXT: vpternlogq {{.*#+}} zmm4 = zmm4 ^ (zmm1 & (zmm4 ^ zmm16))7850; AVX512-FCP-NEXT: vpternlogq {{.*#+}} zmm5 = zmm5 ^ (zmm1 & (zmm5 ^ zmm21))7851; AVX512-FCP-NEXT: vmovdqa64 %zmm15, (%rsi)7852; AVX512-FCP-NEXT: vmovdqa64 %zmm17, (%rdx)7853; AVX512-FCP-NEXT: vmovdqa64 %zmm4, (%rcx)7854; AVX512-FCP-NEXT: vmovdqa64 %zmm5, (%r8)7855; AVX512-FCP-NEXT: vmovdqa64 %zmm7, (%r9)7856; AVX512-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax7857; AVX512-FCP-NEXT: vmovdqa64 %zmm0, (%rax)7858; AVX512-FCP-NEXT: addq $40, %rsp7859; AVX512-FCP-NEXT: vzeroupper7860; AVX512-FCP-NEXT: retq7861;7862; AVX512DQ-LABEL: load_i8_stride6_vf64:7863; AVX512DQ: # %bb.0:7864; AVX512DQ-NEXT: subq $40, %rsp7865; AVX512DQ-NEXT: vmovdqa {{.*#+}} ymm12 = [65535,65535,0,65535,65535,0,65535,65535,0,65535,65535,0,65535,65535,0,65535]7866; AVX512DQ-NEXT: vmovdqa64 224(%rdi), %ymm257867; AVX512DQ-NEXT: vmovdqa64 192(%rdi), %ymm267868; AVX512DQ-NEXT: vmovdqa %ymm12, %ymm07869; AVX512DQ-NEXT: vpternlogq {{.*#+}} ymm0 = ymm25 ^ (ymm0 & (ymm26 ^ ymm25))7870; AVX512DQ-NEXT: vmovdqa {{.*#+}} xmm1 = [0,6,12,128,128,128,4,10,128,128,128,u,u,u,u,u]7871; AVX512DQ-NEXT: vpshufb %xmm1, %xmm0, %xmm37872; AVX512DQ-NEXT: vmovdqa {{.*#+}} xmm5 = [128,128,128,2,8,14,128,128,0,6,12,u,u,u,u,u]7873; AVX512DQ-NEXT: vextracti128 $1, %ymm0, %xmm47874; AVX512DQ-NEXT: vpshufb %xmm5, %xmm4, %xmm67875; AVX512DQ-NEXT: vpor %xmm3, %xmm6, %xmm97876; AVX512DQ-NEXT: vmovdqa64 (%rdi), %ymm307877; AVX512DQ-NEXT: vmovdqa64 32(%rdi), %ymm317878; AVX512DQ-NEXT: vmovdqa64 128(%rdi), %ymm247879; AVX512DQ-NEXT: vmovdqa64 160(%rdi), %ymm187880; AVX512DQ-NEXT: vmovdqa %ymm12, %ymm67881; AVX512DQ-NEXT: vpternlogq {{.*#+}} ymm6 = ymm24 ^ (ymm6 & (ymm18 ^ ymm24))7882; AVX512DQ-NEXT: vextracti128 $1, %ymm6, %xmm77883; AVX512DQ-NEXT: vmovdqa {{.*#+}} xmm3 = [u,u,u,u,u,u,128,128,0,6,12,128,128,128,4,10]7884; AVX512DQ-NEXT: vpshufb %xmm3, %xmm7, %xmm107885; AVX512DQ-NEXT: vmovdqa {{.*#+}} xmm8 = [u,u,u,u,u,u,4,10,128,128,128,2,8,14,128,128]7886; AVX512DQ-NEXT: vpshufb %xmm8, %xmm6, %xmm137887; AVX512DQ-NEXT: vpor %xmm10, %xmm13, %xmm107888; AVX512DQ-NEXT: vinserti128 $1, %xmm10, %ymm0, %ymm107889; AVX512DQ-NEXT: vinserti32x4 $2, %xmm9, %zmm10, %zmm27890; AVX512DQ-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7891; AVX512DQ-NEXT: vmovdqa %ymm12, %ymm97892; AVX512DQ-NEXT: vpternlogq {{.*#+}} ymm9 = ymm31 ^ (ymm9 & (ymm30 ^ ymm31))7893; AVX512DQ-NEXT: vpshufb %xmm1, %xmm9, %xmm17894; AVX512DQ-NEXT: vextracti128 $1, %ymm9, %xmm137895; AVX512DQ-NEXT: vpshufb %xmm5, %xmm13, %xmm57896; AVX512DQ-NEXT: vporq %xmm1, %xmm5, %xmm177897; AVX512DQ-NEXT: vmovdqa64 320(%rdi), %ymm297898; AVX512DQ-NEXT: vmovdqa64 352(%rdi), %ymm227899; AVX512DQ-NEXT: vmovdqa %ymm12, %ymm17900; AVX512DQ-NEXT: vpternlogq {{.*#+}} ymm1 = ymm29 ^ (ymm1 & (ymm22 ^ ymm29))7901; AVX512DQ-NEXT: vextracti128 $1, %ymm1, %xmm57902; AVX512DQ-NEXT: vpshufb %xmm3, %xmm5, %xmm37903; AVX512DQ-NEXT: vpshufb %xmm8, %xmm1, %xmm87904; AVX512DQ-NEXT: vpor %xmm3, %xmm8, %xmm37905; AVX512DQ-NEXT: vinserti128 $1, %xmm3, %ymm0, %ymm37906; AVX512DQ-NEXT: vmovdqa {{.*#+}} xmm8 = [1,7,13,128,128,128,5,11,128,128,128,u,u,u,u,u]7907; AVX512DQ-NEXT: vpshufb %xmm8, %xmm0, %xmm07908; AVX512DQ-NEXT: vmovdqa {{.*#+}} xmm10 = [128,128,128,3,9,15,128,128,1,7,13,u,u,u,u,u]7909; AVX512DQ-NEXT: vpshufb %xmm10, %xmm4, %xmm47910; AVX512DQ-NEXT: vpor %xmm0, %xmm4, %xmm07911; AVX512DQ-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7912; AVX512DQ-NEXT: vmovdqa {{.*#+}} xmm0 = [u,u,u,u,u,u,128,128,1,7,13,128,128,128,5,11]7913; AVX512DQ-NEXT: vpshufb %xmm0, %xmm7, %xmm47914; AVX512DQ-NEXT: vmovdqa {{.*#+}} xmm7 = [u,u,u,u,u,u,5,11,128,128,128,3,9,15,128,128]7915; AVX512DQ-NEXT: vpshufb %xmm7, %xmm6, %xmm67916; AVX512DQ-NEXT: vporq %xmm4, %xmm6, %xmm287917; AVX512DQ-NEXT: vpshufb %xmm8, %xmm9, %xmm47918; AVX512DQ-NEXT: vpshufb %xmm10, %xmm13, %xmm67919; AVX512DQ-NEXT: vporq %xmm4, %xmm6, %xmm217920; AVX512DQ-NEXT: vpshufb %xmm0, %xmm5, %xmm07921; AVX512DQ-NEXT: vpshufb %xmm7, %xmm1, %xmm17922; AVX512DQ-NEXT: vporq %xmm0, %xmm1, %xmm277923; AVX512DQ-NEXT: vmovdqa {{.*#+}} xmm0 = [128,128,128,4,10,128,128,128,2,8,14,u,u,u,u,u]7924; AVX512DQ-NEXT: vmovdqa {{.*#+}} ymm9 = [65535,0,65535,65535,0,65535,65535,0,65535,65535,0,65535,65535,0,65535,65535]7925; AVX512DQ-NEXT: vmovdqa %ymm9, %ymm47926; AVX512DQ-NEXT: vpternlogq {{.*#+}} ymm4 = ymm26 ^ (ymm4 & (ymm25 ^ ymm26))7927; AVX512DQ-NEXT: vextracti128 $1, %ymm4, %xmm157928; AVX512DQ-NEXT: vpshufb %xmm0, %xmm15, %xmm17929; AVX512DQ-NEXT: vmovdqa {{.*#+}} xmm6 = [2,8,14,128,128,0,6,12,128,128,128,u,u,u,u,u]7930; AVX512DQ-NEXT: vpshufb %xmm6, %xmm4, %xmm57931; AVX512DQ-NEXT: vpor %xmm1, %xmm5, %xmm17932; AVX512DQ-NEXT: vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7933; AVX512DQ-NEXT: vmovdqa %ymm12, %ymm57934; AVX512DQ-NEXT: vpternlogq {{.*#+}} ymm5 = ymm18 ^ (ymm5 & (ymm24 ^ ymm18))7935; AVX512DQ-NEXT: vmovdqa {{.*#+}} xmm8 = [u,u,u,u,u,0,6,12,128,128,128,4,10,128,128,128]7936; AVX512DQ-NEXT: vpshufb %xmm8, %xmm5, %xmm77937; AVX512DQ-NEXT: vextracti128 $1, %ymm5, %xmm17938; AVX512DQ-NEXT: vmovdqa {{.*#+}} xmm10 = [u,u,u,u,u,128,128,128,2,8,14,128,128,0,6,12]7939; AVX512DQ-NEXT: vpshufb %xmm10, %xmm1, %xmm137940; AVX512DQ-NEXT: vpor %xmm7, %xmm13, %xmm27941; AVX512DQ-NEXT: vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7942; AVX512DQ-NEXT: vmovdqa %ymm9, %ymm137943; AVX512DQ-NEXT: vpternlogq {{.*#+}} ymm13 = ymm30 ^ (ymm13 & (ymm31 ^ ymm30))7944; AVX512DQ-NEXT: vextracti128 $1, %ymm13, %xmm147945; AVX512DQ-NEXT: vpshufb %xmm0, %xmm14, %xmm07946; AVX512DQ-NEXT: vpshufb %xmm6, %xmm13, %xmm67947; AVX512DQ-NEXT: vporq %xmm0, %xmm6, %xmm167948; AVX512DQ-NEXT: vmovdqa %ymm12, %ymm117949; AVX512DQ-NEXT: vpternlogq {{.*#+}} ymm11 = ymm22 ^ (ymm11 & (ymm29 ^ ymm22))7950; AVX512DQ-NEXT: vpshufb %xmm8, %xmm11, %xmm87951; AVX512DQ-NEXT: vextracti128 $1, %ymm11, %xmm77952; AVX512DQ-NEXT: vpshufb %xmm10, %xmm7, %xmm107953; AVX512DQ-NEXT: vpor %xmm8, %xmm10, %xmm07954; AVX512DQ-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7955; AVX512DQ-NEXT: vmovdqa {{.*#+}} xmm10 = [128,128,128,5,11,128,128,128,3,9,15,u,u,u,u,u]7956; AVX512DQ-NEXT: vpshufb %xmm10, %xmm15, %xmm157957; AVX512DQ-NEXT: vmovdqa {{.*#+}} xmm8 = [3,9,15,128,128,1,7,13,128,128,128,u,u,u,u,u]7958; AVX512DQ-NEXT: vpshufb %xmm8, %xmm4, %xmm47959; AVX512DQ-NEXT: vpor %xmm4, %xmm15, %xmm07960; AVX512DQ-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7961; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm15 = xmm5[u,u,u,u,u,1,7,13],zero,zero,zero,xmm5[5,11],zero,zero,zero7962; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm1 = xmm1[u,u,u,u,u],zero,zero,zero,xmm1[3,9,15],zero,zero,xmm1[1,7,13]7963; AVX512DQ-NEXT: vpor %xmm1, %xmm15, %xmm07964; AVX512DQ-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7965; AVX512DQ-NEXT: vmovdqa 256(%rdi), %ymm17966; AVX512DQ-NEXT: vshufi64x2 {{.*#+}} ymm19 = ymm1[2,3],mem[2,3]7967; AVX512DQ-NEXT: vinserti32x4 $1, 288(%rdi), %ymm1, %ymm207968; AVX512DQ-NEXT: vmovdqa {{.*#+}} ymm5 = [65535,65535,0,65535,65535,0,65535,65535,65535,0,65535,65535,0,65535,65535,0]7969; AVX512DQ-NEXT: vmovdqa %ymm5, %ymm17970; AVX512DQ-NEXT: vpternlogq {{.*#+}} ymm1 = ymm19 ^ (ymm1 & (ymm20 ^ ymm19))7971; AVX512DQ-NEXT: vpshufb {{.*#+}} ymm15 = ymm1[u,u,u,u,u,u,u,u,u,u,u,2,8,14,4,10,16,22,28,18,24,30,u,u,u,u,u,u,u,u,u,u]7972; AVX512DQ-NEXT: vpblendw {{.*#+}} ymm3 = ymm15[0,1,2],ymm3[3,4,5,6,7],ymm15[8,9,10],ymm3[11,12,13,14,15]7973; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm15 = ymm15[0,1,2,3],ymm3[4,5,6,7]7974; AVX512DQ-NEXT: vmovdqa64 64(%rdi), %ymm237975; AVX512DQ-NEXT: vshufi64x2 {{.*#+}} ymm6 = ymm23[2,3],mem[2,3]7976; AVX512DQ-NEXT: vinserti32x4 $1, 96(%rdi), %ymm23, %ymm237977; AVX512DQ-NEXT: vinserti64x4 $1, %ymm15, %zmm0, %zmm157978; AVX512DQ-NEXT: vmovdqa %ymm5, %ymm27979; AVX512DQ-NEXT: vpternlogq {{.*#+}} ymm2 = ymm6 ^ (ymm2 & (ymm23 ^ ymm6))7980; AVX512DQ-NEXT: vmovdqa {{.*#+}} ymm4 = [255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255]7981; AVX512DQ-NEXT: vpshufb {{.*#+}} ymm0 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm2[2,8,14,4,10,16,22,28,18,24,30],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero7982; AVX512DQ-NEXT: vpternlogq {{.*#+}} ymm0 = ymm0 | (ymm17 & ymm4)7983; AVX512DQ-NEXT: vmovdqa64 {{.*#+}} zmm17 = [65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,0,0,0,0,0,0,0,0,0,0,0,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535]7984; AVX512DQ-NEXT: vpternlogq $226, {{[-0-9]+}}(%r{{[sb]}}p), %zmm17, %zmm0 # 64-byte Folded Reload7985; AVX512DQ-NEXT: # zmm0 = mem ^ (zmm17 & (zmm0 ^ mem))7986; AVX512DQ-NEXT: vpmovsxdq {{.*#+}} zmm3 = [18446744073709551615,18446744073709551615,18446744073709551615,18446744073709551615,18446744073709551615,16777215,0,0]7987; AVX512DQ-NEXT: vpternlogq {{.*#+}} zmm15 = zmm15 ^ (zmm3 & (zmm15 ^ zmm0))7988; AVX512DQ-NEXT: vpshufb {{.*#+}} ymm0 = ymm1[u,u,u,u,u,u,u,u,u,u,u,3,9,15,5,11,17,23,29,19,25,31,u,u,u,u,u,u,u,u,u,u]7989; AVX512DQ-NEXT: vinserti32x4 $1, %xmm27, %ymm0, %ymm17990; AVX512DQ-NEXT: vpblendw {{.*#+}} ymm1 = ymm0[0,1,2],ymm1[3,4,5,6,7],ymm0[8,9,10],ymm1[11,12,13,14,15]7991; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]7992; AVX512DQ-NEXT: vpshufb {{.*#+}} ymm1 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm2[3,9,15,5,11,17,23,29,19,25,31],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero7993; AVX512DQ-NEXT: vpternlogq {{.*#+}} ymm1 = ymm1 | (ymm21 & ymm4)7994; AVX512DQ-NEXT: vinserti32x4 $1, %xmm28, %ymm0, %ymm27995; AVX512DQ-NEXT: vinserti32x4 $2, {{[-0-9]+}}(%r{{[sb]}}p), %zmm2, %zmm2 # 16-byte Folded Reload7996; AVX512DQ-NEXT: vpternlogq {{.*#+}} zmm1 = zmm2 ^ (zmm17 & (zmm1 ^ zmm2))7997; AVX512DQ-NEXT: vinserti64x4 $1, %ymm0, %zmm0, %zmm177998; AVX512DQ-NEXT: vpternlogq {{.*#+}} zmm17 = zmm17 ^ (zmm3 & (zmm17 ^ zmm1))7999; AVX512DQ-NEXT: vpshufb %xmm10, %xmm14, %xmm08000; AVX512DQ-NEXT: vpshufb %xmm8, %xmm13, %xmm18001; AVX512DQ-NEXT: vporq %xmm0, %xmm1, %xmm218002; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm0 = xmm11[u,u,u,u,u,1,7,13],zero,zero,zero,xmm11[5,11],zero,zero,zero8003; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm1 = xmm7[u,u,u,u,u],zero,zero,zero,xmm7[3,9,15],zero,zero,xmm7[1,7,13]8004; AVX512DQ-NEXT: vporq %xmm0, %xmm1, %xmm288005; AVX512DQ-NEXT: vmovdqa64 %ymm25, %ymm118006; AVX512DQ-NEXT: vpternlogq {{.*#+}} ymm11 = ymm26 ^ (ymm12 & (ymm11 ^ ymm26))8007; AVX512DQ-NEXT: vextracti128 $1, %ymm11, %xmm08008; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm1 = zero,zero,xmm0[0,6,12],zero,zero,zero,xmm0[4,10,u,u,u,u,u,u]8009; AVX512DQ-NEXT: vmovdqa {{.*#+}} xmm3 = [4,10,128,128,128,2,8,14,128,128,u,u,u,u,u,u]8010; AVX512DQ-NEXT: vpshufb %xmm3, %xmm11, %xmm28011; AVX512DQ-NEXT: vmovdqa64 %xmm3, %xmm258012; AVX512DQ-NEXT: vporq %xmm1, %xmm2, %xmm268013; AVX512DQ-NEXT: vmovdqa64 %ymm18, %ymm148014; AVX512DQ-NEXT: vpternlogq {{.*#+}} ymm14 = ymm24 ^ (ymm9 & (ymm14 ^ ymm24))8015; AVX512DQ-NEXT: vextracti128 $1, %ymm14, %xmm108016; AVX512DQ-NEXT: vmovdqa {{.*#+}} xmm1 = [u,u,u,u,u,128,128,128,4,10,128,128,128,2,8,14]8017; AVX512DQ-NEXT: vpshufb %xmm1, %xmm10, %xmm28018; AVX512DQ-NEXT: vmovdqa {{.*#+}} xmm3 = [u,u,u,u,u,2,8,14,128,128,0,6,12,128,128,128]8019; AVX512DQ-NEXT: vpshufb %xmm3, %xmm14, %xmm48020; AVX512DQ-NEXT: vporq %xmm2, %xmm4, %xmm278021; AVX512DQ-NEXT: vpternlogq {{.*#+}} ymm12 = ymm30 ^ (ymm12 & (ymm31 ^ ymm30))8022; AVX512DQ-NEXT: vmovdqa %ymm5, %ymm48023; AVX512DQ-NEXT: vpternlogq {{.*#+}} ymm4 = ymm23 ^ (ymm4 & (ymm6 ^ ymm23))8024; AVX512DQ-NEXT: vpternlogq {{.*#+}} ymm9 = ymm29 ^ (ymm9 & (ymm22 ^ ymm29))8025; AVX512DQ-NEXT: vextracti128 $1, %ymm9, %xmm88026; AVX512DQ-NEXT: vpshufb %xmm1, %xmm8, %xmm18027; AVX512DQ-NEXT: vpshufb %xmm3, %xmm9, %xmm28028; AVX512DQ-NEXT: vpor %xmm1, %xmm2, %xmm78029; AVX512DQ-NEXT: vmovdqa {{.*#+}} xmm1 = [128,128,1,7,13,128,128,128,5,11,u,u,u,u,u,u]8030; AVX512DQ-NEXT: vpshufb %xmm1, %xmm0, %xmm08031; AVX512DQ-NEXT: vmovdqa64 %xmm1, %xmm228032; AVX512DQ-NEXT: vmovdqa {{.*#+}} xmm13 = [5,11,128,128,128,3,9,15,128,128,u,u,u,u,u,u]8033; AVX512DQ-NEXT: vpshufb %xmm13, %xmm11, %xmm18034; AVX512DQ-NEXT: vpor %xmm0, %xmm1, %xmm38035; AVX512DQ-NEXT: vmovdqa {{.*#+}} xmm2 = [u,u,u,u,u,128,128,128,5,11,128,128,128,3,9,15]8036; AVX512DQ-NEXT: vpshufb %xmm2, %xmm10, %xmm18037; AVX512DQ-NEXT: vmovdqa {{.*#+}} xmm0 = [u,u,u,u,u,3,9,15,128,128,1,7,13,128,128,128]8038; AVX512DQ-NEXT: vpshufb %xmm0, %xmm14, %xmm108039; AVX512DQ-NEXT: vpor %xmm1, %xmm10, %xmm108040; AVX512DQ-NEXT: vmovdqa {{.*#+}} ymm1 = [128,128,128,128,128,128,128,128,128,128,128,4,10,0,6,12,18,24,30,20,26,128,128,128,128,128,128,128,128,128,128,128]8041; AVX512DQ-NEXT: vpshufb %ymm1, %ymm4, %ymm118042; AVX512DQ-NEXT: vmovdqa64 {{.*#+}} ymm18 = [255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255]8043; AVX512DQ-NEXT: vpternlogq {{.*#+}} ymm16 = (ymm16 & ymm18) | ymm118044; AVX512DQ-NEXT: vmovdqa {{.*#+}} ymm11 = [128,128,128,128,128,128,128,128,128,128,128,5,11,1,7,13,19,25,31,21,27,128,128,128,128,128,128,128,128,128,128,128]8045; AVX512DQ-NEXT: vpshufb %ymm11, %ymm4, %ymm48046; AVX512DQ-NEXT: vpternlogq {{.*#+}} ymm21 = (ymm21 & ymm18) | ymm48047; AVX512DQ-NEXT: vinserti128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm4 # 16-byte Folded Reload8048; AVX512DQ-NEXT: vpternlogq {{.*#+}} ymm5 = ymm20 ^ (ymm5 & (ymm19 ^ ymm20))8049; AVX512DQ-NEXT: vpshufb %ymm1, %ymm5, %ymm18050; AVX512DQ-NEXT: vpternlogq {{.*#+}} ymm1 = ymm1 | (ymm4 & ymm18)8051; AVX512DQ-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm48052; AVX512DQ-NEXT: vpshufb %ymm11, %ymm5, %ymm58053; AVX512DQ-NEXT: vextracti128 $1, %ymm12, %xmm18054; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm11 = zero,zero,xmm1[0,6,12],zero,zero,zero,xmm1[4,10,u,u,u,u,u,u]8055; AVX512DQ-NEXT: vmovdqa64 %xmm25, %xmm148056; AVX512DQ-NEXT: vpshufb %xmm14, %xmm12, %xmm148057; AVX512DQ-NEXT: vpor %xmm11, %xmm14, %xmm118058; AVX512DQ-NEXT: vpshufb %xmm2, %xmm8, %xmm28059; AVX512DQ-NEXT: vpshufb %xmm0, %xmm9, %xmm08060; AVX512DQ-NEXT: vpor %xmm2, %xmm0, %xmm08061; AVX512DQ-NEXT: vmovdqa {{.*#+}} ymm2 = [0,65535,65535,0,65535,65535,0,65535,65535,65535,0,65535,65535,0,65535,65535]8062; AVX512DQ-NEXT: vpternlogq {{.*#+}} ymm6 = ymm23 ^ (ymm2 & (ymm6 ^ ymm23))8063; AVX512DQ-NEXT: vpshufb {{.*#+}} ymm8 = ymm6[u,u,u,u,u,u,u,u,u,u,0,6,12,2,8,14,20,26,16,22,28,u,u,u,u,u,u,u,u,u,u,u]8064; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm9 = xmm11[0,1,2,3,4],xmm8[5,6,7]8065; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm8 = ymm9[0,1,2,3],ymm8[4,5,6,7]8066; AVX512DQ-NEXT: vinserti32x4 $1, %xmm28, %ymm0, %ymm98067; AVX512DQ-NEXT: vpternlogq {{.*#+}} ymm5 = ymm5 | (ymm9 & ymm18)8068; AVX512DQ-NEXT: vinserti64x4 $1, %ymm5, %zmm0, %zmm58069; AVX512DQ-NEXT: vpternlogq {{.*#+}} ymm2 = ymm20 ^ (ymm2 & (ymm19 ^ ymm20))8070; AVX512DQ-NEXT: vmovdqa64 {{.*#+}} zmm9 = [255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255]8071; AVX512DQ-NEXT: vinserti128 $1, %xmm7, %ymm0, %ymm78072; AVX512DQ-NEXT: vpshufb {{.*#+}} ymm11 = ymm2[u,u,u,u,u,u,u,u,u,u,0,6,12,2,8,14,20,26,16,22,28],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero8073; AVX512DQ-NEXT: vpternlogq {{.*#+}} ymm11 = ymm11 | (ymm7 & ~ymm9)8074; AVX512DQ-NEXT: vinserti64x4 $1, %ymm11, %zmm0, %zmm78075; AVX512DQ-NEXT: vinserti32x4 $1, %xmm27, %ymm0, %ymm118076; AVX512DQ-NEXT: vinserti32x4 $2, %xmm26, %zmm11, %zmm118077; AVX512DQ-NEXT: vpternlogq {{.*#+}} zmm8 = zmm11 ^ (zmm9 & (zmm8 ^ zmm11))8078; AVX512DQ-NEXT: vpmovsxdq {{.*#+}} zmm11 = [18446744073709551615,18446744073709551615,18446744073709551615,18446744073709551615,18446744073709551615,65535,0,0]8079; AVX512DQ-NEXT: vpternlogq {{.*#+}} zmm7 = zmm7 ^ (zmm11 & (zmm7 ^ zmm8))8080; AVX512DQ-NEXT: vmovdqa64 %xmm22, %xmm88081; AVX512DQ-NEXT: vpshufb %xmm8, %xmm1, %xmm18082; AVX512DQ-NEXT: vpshufb %xmm13, %xmm12, %xmm88083; AVX512DQ-NEXT: vpor %xmm1, %xmm8, %xmm18084; AVX512DQ-NEXT: vpshufb {{.*#+}} ymm6 = ymm6[u,u,u,u,u,u,u,u,u,u,1,7,13,3,9,15,21,27,17,23,29,u,u,u,u,u,u,u,u,u,u,u]8085; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1,2,3,4],xmm6[5,6,7]8086; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm6[4,5,6,7]8087; AVX512DQ-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm08088; AVX512DQ-NEXT: vpshufb {{.*#+}} ymm2 = ymm2[u,u,u,u,u,u,u,u,u,u,1,7,13,3,9,15,21,27,17,23,29],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero8089; AVX512DQ-NEXT: vpternlogq {{.*#+}} ymm2 = ymm2 | (ymm0 & ~ymm9)8090; AVX512DQ-NEXT: vinserti64x4 $1, %ymm2, %zmm0, %zmm08091; AVX512DQ-NEXT: vinserti128 $1, %xmm10, %ymm0, %ymm28092; AVX512DQ-NEXT: vinserti32x4 $2, %xmm3, %zmm2, %zmm28093; AVX512DQ-NEXT: vpternlogq {{.*#+}} zmm1 = zmm2 ^ (zmm9 & (zmm1 ^ zmm2))8094; AVX512DQ-NEXT: vpternlogq {{.*#+}} zmm0 = zmm0 ^ (zmm11 & (zmm0 ^ zmm1))8095; AVX512DQ-NEXT: vinserti128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm1 # 16-byte Folded Reload8096; AVX512DQ-NEXT: vinserti32x4 $2, {{[-0-9]+}}(%r{{[sb]}}p), %zmm1, %zmm1 # 16-byte Folded Reload8097; AVX512DQ-NEXT: vpmovsxwd {{.*#+}} zmm2 = [0,0,0,0,0,4294967040,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295]8098; AVX512DQ-NEXT: vpternlogq {{.*#+}} zmm16 = zmm16 ^ (zmm2 & (zmm16 ^ zmm1))8099; AVX512DQ-NEXT: vinserti128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm1 # 16-byte Folded Reload8100; AVX512DQ-NEXT: vinserti32x4 $2, {{[-0-9]+}}(%r{{[sb]}}p), %zmm1, %zmm1 # 16-byte Folded Reload8101; AVX512DQ-NEXT: vpternlogq {{.*#+}} zmm21 = zmm21 ^ (zmm2 & (zmm21 ^ zmm1))8102; AVX512DQ-NEXT: vpmovsxdq {{.*#+}} zmm1 = [18446744073709551615,18446744073709551615,18446744073709551615,18446744073709551615,18446744073709551615,16777215,0,0]8103; AVX512DQ-NEXT: vpternlogq {{.*#+}} zmm4 = zmm4 ^ (zmm1 & (zmm4 ^ zmm16))8104; AVX512DQ-NEXT: vpternlogq {{.*#+}} zmm5 = zmm5 ^ (zmm1 & (zmm5 ^ zmm21))8105; AVX512DQ-NEXT: vmovdqa64 %zmm15, (%rsi)8106; AVX512DQ-NEXT: vmovdqa64 %zmm17, (%rdx)8107; AVX512DQ-NEXT: vmovdqa64 %zmm4, (%rcx)8108; AVX512DQ-NEXT: vmovdqa64 %zmm5, (%r8)8109; AVX512DQ-NEXT: vmovdqa64 %zmm7, (%r9)8110; AVX512DQ-NEXT: movq {{[0-9]+}}(%rsp), %rax8111; AVX512DQ-NEXT: vmovdqa64 %zmm0, (%rax)8112; AVX512DQ-NEXT: addq $40, %rsp8113; AVX512DQ-NEXT: vzeroupper8114; AVX512DQ-NEXT: retq8115;8116; AVX512DQ-FCP-LABEL: load_i8_stride6_vf64:8117; AVX512DQ-FCP: # %bb.0:8118; AVX512DQ-FCP-NEXT: subq $40, %rsp8119; AVX512DQ-FCP-NEXT: vmovdqa {{.*#+}} ymm12 = [65535,65535,0,65535,65535,0,65535,65535,0,65535,65535,0,65535,65535,0,65535]8120; AVX512DQ-FCP-NEXT: vmovdqa64 224(%rdi), %ymm258121; AVX512DQ-FCP-NEXT: vmovdqa64 192(%rdi), %ymm268122; AVX512DQ-FCP-NEXT: vmovdqa %ymm12, %ymm08123; AVX512DQ-FCP-NEXT: vpternlogq {{.*#+}} ymm0 = ymm25 ^ (ymm0 & (ymm26 ^ ymm25))8124; AVX512DQ-FCP-NEXT: vmovdqa {{.*#+}} xmm1 = [0,6,12,128,128,128,4,10,128,128,128,u,u,u,u,u]8125; AVX512DQ-FCP-NEXT: vpshufb %xmm1, %xmm0, %xmm38126; AVX512DQ-FCP-NEXT: vmovdqa {{.*#+}} xmm5 = [128,128,128,2,8,14,128,128,0,6,12,u,u,u,u,u]8127; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm0, %xmm48128; AVX512DQ-FCP-NEXT: vpshufb %xmm5, %xmm4, %xmm68129; AVX512DQ-FCP-NEXT: vpor %xmm3, %xmm6, %xmm98130; AVX512DQ-FCP-NEXT: vmovdqa64 (%rdi), %ymm308131; AVX512DQ-FCP-NEXT: vmovdqa64 32(%rdi), %ymm318132; AVX512DQ-FCP-NEXT: vmovdqa64 128(%rdi), %ymm248133; AVX512DQ-FCP-NEXT: vmovdqa64 160(%rdi), %ymm188134; AVX512DQ-FCP-NEXT: vmovdqa %ymm12, %ymm68135; AVX512DQ-FCP-NEXT: vpternlogq {{.*#+}} ymm6 = ymm24 ^ (ymm6 & (ymm18 ^ ymm24))8136; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm6, %xmm78137; AVX512DQ-FCP-NEXT: vmovdqa {{.*#+}} xmm3 = [u,u,u,u,u,u,128,128,0,6,12,128,128,128,4,10]8138; AVX512DQ-FCP-NEXT: vpshufb %xmm3, %xmm7, %xmm108139; AVX512DQ-FCP-NEXT: vmovdqa {{.*#+}} xmm8 = [u,u,u,u,u,u,4,10,128,128,128,2,8,14,128,128]8140; AVX512DQ-FCP-NEXT: vpshufb %xmm8, %xmm6, %xmm138141; AVX512DQ-FCP-NEXT: vpor %xmm10, %xmm13, %xmm108142; AVX512DQ-FCP-NEXT: vinserti128 $1, %xmm10, %ymm0, %ymm108143; AVX512DQ-FCP-NEXT: vinserti32x4 $2, %xmm9, %zmm10, %zmm28144; AVX512DQ-FCP-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8145; AVX512DQ-FCP-NEXT: vmovdqa %ymm12, %ymm98146; AVX512DQ-FCP-NEXT: vpternlogq {{.*#+}} ymm9 = ymm31 ^ (ymm9 & (ymm30 ^ ymm31))8147; AVX512DQ-FCP-NEXT: vpshufb %xmm1, %xmm9, %xmm18148; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm9, %xmm138149; AVX512DQ-FCP-NEXT: vpshufb %xmm5, %xmm13, %xmm58150; AVX512DQ-FCP-NEXT: vporq %xmm1, %xmm5, %xmm178151; AVX512DQ-FCP-NEXT: vmovdqa64 320(%rdi), %ymm298152; AVX512DQ-FCP-NEXT: vmovdqa64 352(%rdi), %ymm228153; AVX512DQ-FCP-NEXT: vmovdqa %ymm12, %ymm18154; AVX512DQ-FCP-NEXT: vpternlogq {{.*#+}} ymm1 = ymm29 ^ (ymm1 & (ymm22 ^ ymm29))8155; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm1, %xmm58156; AVX512DQ-FCP-NEXT: vpshufb %xmm3, %xmm5, %xmm38157; AVX512DQ-FCP-NEXT: vpshufb %xmm8, %xmm1, %xmm88158; AVX512DQ-FCP-NEXT: vpor %xmm3, %xmm8, %xmm38159; AVX512DQ-FCP-NEXT: vinserti128 $1, %xmm3, %ymm0, %ymm38160; AVX512DQ-FCP-NEXT: vmovdqa {{.*#+}} xmm8 = [1,7,13,128,128,128,5,11,128,128,128,u,u,u,u,u]8161; AVX512DQ-FCP-NEXT: vpshufb %xmm8, %xmm0, %xmm08162; AVX512DQ-FCP-NEXT: vmovdqa {{.*#+}} xmm10 = [128,128,128,3,9,15,128,128,1,7,13,u,u,u,u,u]8163; AVX512DQ-FCP-NEXT: vpshufb %xmm10, %xmm4, %xmm48164; AVX512DQ-FCP-NEXT: vpor %xmm0, %xmm4, %xmm08165; AVX512DQ-FCP-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8166; AVX512DQ-FCP-NEXT: vmovdqa {{.*#+}} xmm0 = [u,u,u,u,u,u,128,128,1,7,13,128,128,128,5,11]8167; AVX512DQ-FCP-NEXT: vpshufb %xmm0, %xmm7, %xmm48168; AVX512DQ-FCP-NEXT: vmovdqa {{.*#+}} xmm7 = [u,u,u,u,u,u,5,11,128,128,128,3,9,15,128,128]8169; AVX512DQ-FCP-NEXT: vpshufb %xmm7, %xmm6, %xmm68170; AVX512DQ-FCP-NEXT: vporq %xmm4, %xmm6, %xmm288171; AVX512DQ-FCP-NEXT: vpshufb %xmm8, %xmm9, %xmm48172; AVX512DQ-FCP-NEXT: vpshufb %xmm10, %xmm13, %xmm68173; AVX512DQ-FCP-NEXT: vporq %xmm4, %xmm6, %xmm218174; AVX512DQ-FCP-NEXT: vpshufb %xmm0, %xmm5, %xmm08175; AVX512DQ-FCP-NEXT: vpshufb %xmm7, %xmm1, %xmm18176; AVX512DQ-FCP-NEXT: vporq %xmm0, %xmm1, %xmm278177; AVX512DQ-FCP-NEXT: vmovdqa {{.*#+}} xmm0 = [128,128,128,4,10,128,128,128,2,8,14,u,u,u,u,u]8178; AVX512DQ-FCP-NEXT: vmovdqa {{.*#+}} ymm9 = [65535,0,65535,65535,0,65535,65535,0,65535,65535,0,65535,65535,0,65535,65535]8179; AVX512DQ-FCP-NEXT: vmovdqa %ymm9, %ymm48180; AVX512DQ-FCP-NEXT: vpternlogq {{.*#+}} ymm4 = ymm26 ^ (ymm4 & (ymm25 ^ ymm26))8181; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm4, %xmm158182; AVX512DQ-FCP-NEXT: vpshufb %xmm0, %xmm15, %xmm18183; AVX512DQ-FCP-NEXT: vmovdqa {{.*#+}} xmm6 = [2,8,14,128,128,0,6,12,128,128,128,u,u,u,u,u]8184; AVX512DQ-FCP-NEXT: vpshufb %xmm6, %xmm4, %xmm58185; AVX512DQ-FCP-NEXT: vpor %xmm1, %xmm5, %xmm18186; AVX512DQ-FCP-NEXT: vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8187; AVX512DQ-FCP-NEXT: vmovdqa %ymm12, %ymm58188; AVX512DQ-FCP-NEXT: vpternlogq {{.*#+}} ymm5 = ymm18 ^ (ymm5 & (ymm24 ^ ymm18))8189; AVX512DQ-FCP-NEXT: vmovdqa {{.*#+}} xmm8 = [u,u,u,u,u,0,6,12,128,128,128,4,10,128,128,128]8190; AVX512DQ-FCP-NEXT: vpshufb %xmm8, %xmm5, %xmm78191; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm5, %xmm18192; AVX512DQ-FCP-NEXT: vmovdqa {{.*#+}} xmm10 = [u,u,u,u,u,128,128,128,2,8,14,128,128,0,6,12]8193; AVX512DQ-FCP-NEXT: vpshufb %xmm10, %xmm1, %xmm138194; AVX512DQ-FCP-NEXT: vpor %xmm7, %xmm13, %xmm28195; AVX512DQ-FCP-NEXT: vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8196; AVX512DQ-FCP-NEXT: vmovdqa %ymm9, %ymm138197; AVX512DQ-FCP-NEXT: vpternlogq {{.*#+}} ymm13 = ymm30 ^ (ymm13 & (ymm31 ^ ymm30))8198; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm13, %xmm148199; AVX512DQ-FCP-NEXT: vpshufb %xmm0, %xmm14, %xmm08200; AVX512DQ-FCP-NEXT: vpshufb %xmm6, %xmm13, %xmm68201; AVX512DQ-FCP-NEXT: vporq %xmm0, %xmm6, %xmm168202; AVX512DQ-FCP-NEXT: vmovdqa %ymm12, %ymm118203; AVX512DQ-FCP-NEXT: vpternlogq {{.*#+}} ymm11 = ymm22 ^ (ymm11 & (ymm29 ^ ymm22))8204; AVX512DQ-FCP-NEXT: vpshufb %xmm8, %xmm11, %xmm88205; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm11, %xmm78206; AVX512DQ-FCP-NEXT: vpshufb %xmm10, %xmm7, %xmm108207; AVX512DQ-FCP-NEXT: vpor %xmm8, %xmm10, %xmm08208; AVX512DQ-FCP-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8209; AVX512DQ-FCP-NEXT: vmovdqa {{.*#+}} xmm10 = [128,128,128,5,11,128,128,128,3,9,15,u,u,u,u,u]8210; AVX512DQ-FCP-NEXT: vpshufb %xmm10, %xmm15, %xmm158211; AVX512DQ-FCP-NEXT: vmovdqa {{.*#+}} xmm8 = [3,9,15,128,128,1,7,13,128,128,128,u,u,u,u,u]8212; AVX512DQ-FCP-NEXT: vpshufb %xmm8, %xmm4, %xmm48213; AVX512DQ-FCP-NEXT: vpor %xmm4, %xmm15, %xmm08214; AVX512DQ-FCP-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8215; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm15 = xmm5[u,u,u,u,u,1,7,13],zero,zero,zero,xmm5[5,11],zero,zero,zero8216; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm1 = xmm1[u,u,u,u,u],zero,zero,zero,xmm1[3,9,15],zero,zero,xmm1[1,7,13]8217; AVX512DQ-FCP-NEXT: vpor %xmm1, %xmm15, %xmm08218; AVX512DQ-FCP-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8219; AVX512DQ-FCP-NEXT: vmovdqa 256(%rdi), %ymm18220; AVX512DQ-FCP-NEXT: vshufi64x2 {{.*#+}} ymm19 = ymm1[2,3],mem[2,3]8221; AVX512DQ-FCP-NEXT: vinserti32x4 $1, 288(%rdi), %ymm1, %ymm208222; AVX512DQ-FCP-NEXT: vmovdqa {{.*#+}} ymm5 = [65535,65535,0,65535,65535,0,65535,65535,65535,0,65535,65535,0,65535,65535,0]8223; AVX512DQ-FCP-NEXT: vmovdqa %ymm5, %ymm18224; AVX512DQ-FCP-NEXT: vpternlogq {{.*#+}} ymm1 = ymm19 ^ (ymm1 & (ymm20 ^ ymm19))8225; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} ymm15 = ymm1[u,u,u,u,u,u,u,u,u,u,u,2,8,14,4,10,16,22,28,18,24,30,u,u,u,u,u,u,u,u,u,u]8226; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} ymm3 = ymm15[0,1,2],ymm3[3,4,5,6,7],ymm15[8,9,10],ymm3[11,12,13,14,15]8227; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm15 = ymm15[0,1,2,3],ymm3[4,5,6,7]8228; AVX512DQ-FCP-NEXT: vmovdqa64 64(%rdi), %ymm238229; AVX512DQ-FCP-NEXT: vshufi64x2 {{.*#+}} ymm6 = ymm23[2,3],mem[2,3]8230; AVX512DQ-FCP-NEXT: vinserti32x4 $1, 96(%rdi), %ymm23, %ymm238231; AVX512DQ-FCP-NEXT: vinserti64x4 $1, %ymm15, %zmm0, %zmm158232; AVX512DQ-FCP-NEXT: vmovdqa %ymm5, %ymm28233; AVX512DQ-FCP-NEXT: vpternlogq {{.*#+}} ymm2 = ymm6 ^ (ymm2 & (ymm23 ^ ymm6))8234; AVX512DQ-FCP-NEXT: vmovdqa {{.*#+}} ymm4 = [255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255]8235; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} ymm0 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm2[2,8,14,4,10,16,22,28,18,24,30],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero8236; AVX512DQ-FCP-NEXT: vpternlogq {{.*#+}} ymm0 = ymm0 | (ymm17 & ymm4)8237; AVX512DQ-FCP-NEXT: vmovdqa64 {{.*#+}} zmm17 = [65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,0,0,0,0,0,0,0,0,0,0,0,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535]8238; AVX512DQ-FCP-NEXT: vpternlogq $226, {{[-0-9]+}}(%r{{[sb]}}p), %zmm17, %zmm0 # 64-byte Folded Reload8239; AVX512DQ-FCP-NEXT: # zmm0 = mem ^ (zmm17 & (zmm0 ^ mem))8240; AVX512DQ-FCP-NEXT: vpmovsxdq {{.*#+}} zmm3 = [18446744073709551615,18446744073709551615,18446744073709551615,18446744073709551615,18446744073709551615,16777215,0,0]8241; AVX512DQ-FCP-NEXT: vpternlogq {{.*#+}} zmm15 = zmm15 ^ (zmm3 & (zmm15 ^ zmm0))8242; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} ymm0 = ymm1[u,u,u,u,u,u,u,u,u,u,u,3,9,15,5,11,17,23,29,19,25,31,u,u,u,u,u,u,u,u,u,u]8243; AVX512DQ-FCP-NEXT: vinserti32x4 $1, %xmm27, %ymm0, %ymm18244; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} ymm1 = ymm0[0,1,2],ymm1[3,4,5,6,7],ymm0[8,9,10],ymm1[11,12,13,14,15]8245; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]8246; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} ymm1 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm2[3,9,15,5,11,17,23,29,19,25,31],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero8247; AVX512DQ-FCP-NEXT: vpternlogq {{.*#+}} ymm1 = ymm1 | (ymm21 & ymm4)8248; AVX512DQ-FCP-NEXT: vinserti32x4 $1, %xmm28, %ymm0, %ymm28249; AVX512DQ-FCP-NEXT: vinserti32x4 $2, {{[-0-9]+}}(%r{{[sb]}}p), %zmm2, %zmm2 # 16-byte Folded Reload8250; AVX512DQ-FCP-NEXT: vpternlogq {{.*#+}} zmm1 = zmm2 ^ (zmm17 & (zmm1 ^ zmm2))8251; AVX512DQ-FCP-NEXT: vinserti64x4 $1, %ymm0, %zmm0, %zmm178252; AVX512DQ-FCP-NEXT: vpternlogq {{.*#+}} zmm17 = zmm17 ^ (zmm3 & (zmm17 ^ zmm1))8253; AVX512DQ-FCP-NEXT: vpshufb %xmm10, %xmm14, %xmm08254; AVX512DQ-FCP-NEXT: vpshufb %xmm8, %xmm13, %xmm18255; AVX512DQ-FCP-NEXT: vporq %xmm0, %xmm1, %xmm218256; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm0 = xmm11[u,u,u,u,u,1,7,13],zero,zero,zero,xmm11[5,11],zero,zero,zero8257; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm1 = xmm7[u,u,u,u,u],zero,zero,zero,xmm7[3,9,15],zero,zero,xmm7[1,7,13]8258; AVX512DQ-FCP-NEXT: vporq %xmm0, %xmm1, %xmm288259; AVX512DQ-FCP-NEXT: vmovdqa64 %ymm25, %ymm118260; AVX512DQ-FCP-NEXT: vpternlogq {{.*#+}} ymm11 = ymm26 ^ (ymm12 & (ymm11 ^ ymm26))8261; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm11, %xmm08262; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm1 = zero,zero,xmm0[0,6,12],zero,zero,zero,xmm0[4,10,u,u,u,u,u,u]8263; AVX512DQ-FCP-NEXT: vmovdqa {{.*#+}} xmm3 = [4,10,128,128,128,2,8,14,128,128,u,u,u,u,u,u]8264; AVX512DQ-FCP-NEXT: vpshufb %xmm3, %xmm11, %xmm28265; AVX512DQ-FCP-NEXT: vmovdqa64 %xmm3, %xmm258266; AVX512DQ-FCP-NEXT: vporq %xmm1, %xmm2, %xmm268267; AVX512DQ-FCP-NEXT: vmovdqa64 %ymm18, %ymm148268; AVX512DQ-FCP-NEXT: vpternlogq {{.*#+}} ymm14 = ymm24 ^ (ymm9 & (ymm14 ^ ymm24))8269; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm14, %xmm108270; AVX512DQ-FCP-NEXT: vmovdqa {{.*#+}} xmm1 = [u,u,u,u,u,128,128,128,4,10,128,128,128,2,8,14]8271; AVX512DQ-FCP-NEXT: vpshufb %xmm1, %xmm10, %xmm28272; AVX512DQ-FCP-NEXT: vmovdqa {{.*#+}} xmm3 = [u,u,u,u,u,2,8,14,128,128,0,6,12,128,128,128]8273; AVX512DQ-FCP-NEXT: vpshufb %xmm3, %xmm14, %xmm48274; AVX512DQ-FCP-NEXT: vporq %xmm2, %xmm4, %xmm278275; AVX512DQ-FCP-NEXT: vpternlogq {{.*#+}} ymm12 = ymm30 ^ (ymm12 & (ymm31 ^ ymm30))8276; AVX512DQ-FCP-NEXT: vmovdqa %ymm5, %ymm48277; AVX512DQ-FCP-NEXT: vpternlogq {{.*#+}} ymm4 = ymm23 ^ (ymm4 & (ymm6 ^ ymm23))8278; AVX512DQ-FCP-NEXT: vpternlogq {{.*#+}} ymm9 = ymm29 ^ (ymm9 & (ymm22 ^ ymm29))8279; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm9, %xmm88280; AVX512DQ-FCP-NEXT: vpshufb %xmm1, %xmm8, %xmm18281; AVX512DQ-FCP-NEXT: vpshufb %xmm3, %xmm9, %xmm28282; AVX512DQ-FCP-NEXT: vpor %xmm1, %xmm2, %xmm78283; AVX512DQ-FCP-NEXT: vmovdqa {{.*#+}} xmm1 = [128,128,1,7,13,128,128,128,5,11,u,u,u,u,u,u]8284; AVX512DQ-FCP-NEXT: vpshufb %xmm1, %xmm0, %xmm08285; AVX512DQ-FCP-NEXT: vmovdqa64 %xmm1, %xmm228286; AVX512DQ-FCP-NEXT: vmovdqa {{.*#+}} xmm13 = [5,11,128,128,128,3,9,15,128,128,u,u,u,u,u,u]8287; AVX512DQ-FCP-NEXT: vpshufb %xmm13, %xmm11, %xmm18288; AVX512DQ-FCP-NEXT: vpor %xmm0, %xmm1, %xmm38289; AVX512DQ-FCP-NEXT: vmovdqa {{.*#+}} xmm2 = [u,u,u,u,u,128,128,128,5,11,128,128,128,3,9,15]8290; AVX512DQ-FCP-NEXT: vpshufb %xmm2, %xmm10, %xmm18291; AVX512DQ-FCP-NEXT: vmovdqa {{.*#+}} xmm0 = [u,u,u,u,u,3,9,15,128,128,1,7,13,128,128,128]8292; AVX512DQ-FCP-NEXT: vpshufb %xmm0, %xmm14, %xmm108293; AVX512DQ-FCP-NEXT: vpor %xmm1, %xmm10, %xmm108294; AVX512DQ-FCP-NEXT: vmovdqa {{.*#+}} ymm1 = [128,128,128,128,128,128,128,128,128,128,128,4,10,0,6,12,18,24,30,20,26,128,128,128,128,128,128,128,128,128,128,128]8295; AVX512DQ-FCP-NEXT: vpshufb %ymm1, %ymm4, %ymm118296; AVX512DQ-FCP-NEXT: vmovdqa64 {{.*#+}} ymm18 = [255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255]8297; AVX512DQ-FCP-NEXT: vpternlogq {{.*#+}} ymm16 = (ymm16 & ymm18) | ymm118298; AVX512DQ-FCP-NEXT: vmovdqa {{.*#+}} ymm11 = [128,128,128,128,128,128,128,128,128,128,128,5,11,1,7,13,19,25,31,21,27,128,128,128,128,128,128,128,128,128,128,128]8299; AVX512DQ-FCP-NEXT: vpshufb %ymm11, %ymm4, %ymm48300; AVX512DQ-FCP-NEXT: vpternlogq {{.*#+}} ymm21 = (ymm21 & ymm18) | ymm48301; AVX512DQ-FCP-NEXT: vinserti128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm4 # 16-byte Folded Reload8302; AVX512DQ-FCP-NEXT: vpternlogq {{.*#+}} ymm5 = ymm20 ^ (ymm5 & (ymm19 ^ ymm20))8303; AVX512DQ-FCP-NEXT: vpshufb %ymm1, %ymm5, %ymm18304; AVX512DQ-FCP-NEXT: vpternlogq {{.*#+}} ymm1 = ymm1 | (ymm4 & ymm18)8305; AVX512DQ-FCP-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm48306; AVX512DQ-FCP-NEXT: vpshufb %ymm11, %ymm5, %ymm58307; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm12, %xmm18308; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm11 = zero,zero,xmm1[0,6,12],zero,zero,zero,xmm1[4,10,u,u,u,u,u,u]8309; AVX512DQ-FCP-NEXT: vmovdqa64 %xmm25, %xmm148310; AVX512DQ-FCP-NEXT: vpshufb %xmm14, %xmm12, %xmm148311; AVX512DQ-FCP-NEXT: vpor %xmm11, %xmm14, %xmm118312; AVX512DQ-FCP-NEXT: vpshufb %xmm2, %xmm8, %xmm28313; AVX512DQ-FCP-NEXT: vpshufb %xmm0, %xmm9, %xmm08314; AVX512DQ-FCP-NEXT: vpor %xmm2, %xmm0, %xmm08315; AVX512DQ-FCP-NEXT: vmovdqa {{.*#+}} ymm2 = [0,65535,65535,0,65535,65535,0,65535,65535,65535,0,65535,65535,0,65535,65535]8316; AVX512DQ-FCP-NEXT: vpternlogq {{.*#+}} ymm6 = ymm23 ^ (ymm2 & (ymm6 ^ ymm23))8317; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} ymm8 = ymm6[u,u,u,u,u,u,u,u,u,u,0,6,12,2,8,14,20,26,16,22,28,u,u,u,u,u,u,u,u,u,u,u]8318; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm9 = xmm11[0,1,2,3,4],xmm8[5,6,7]8319; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm8 = ymm9[0,1,2,3],ymm8[4,5,6,7]8320; AVX512DQ-FCP-NEXT: vinserti32x4 $1, %xmm28, %ymm0, %ymm98321; AVX512DQ-FCP-NEXT: vpternlogq {{.*#+}} ymm5 = ymm5 | (ymm9 & ymm18)8322; AVX512DQ-FCP-NEXT: vinserti64x4 $1, %ymm5, %zmm0, %zmm58323; AVX512DQ-FCP-NEXT: vpternlogq {{.*#+}} ymm2 = ymm20 ^ (ymm2 & (ymm19 ^ ymm20))8324; AVX512DQ-FCP-NEXT: vmovdqa64 {{.*#+}} zmm9 = [255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255]8325; AVX512DQ-FCP-NEXT: vinserti128 $1, %xmm7, %ymm0, %ymm78326; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} ymm11 = ymm2[u,u,u,u,u,u,u,u,u,u,0,6,12,2,8,14,20,26,16,22,28],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero8327; AVX512DQ-FCP-NEXT: vpternlogq {{.*#+}} ymm11 = ymm11 | (ymm7 & ~ymm9)8328; AVX512DQ-FCP-NEXT: vinserti64x4 $1, %ymm11, %zmm0, %zmm78329; AVX512DQ-FCP-NEXT: vinserti32x4 $1, %xmm27, %ymm0, %ymm118330; AVX512DQ-FCP-NEXT: vinserti32x4 $2, %xmm26, %zmm11, %zmm118331; AVX512DQ-FCP-NEXT: vpternlogq {{.*#+}} zmm8 = zmm11 ^ (zmm9 & (zmm8 ^ zmm11))8332; AVX512DQ-FCP-NEXT: vpmovsxdq {{.*#+}} zmm11 = [18446744073709551615,18446744073709551615,18446744073709551615,18446744073709551615,18446744073709551615,65535,0,0]8333; AVX512DQ-FCP-NEXT: vpternlogq {{.*#+}} zmm7 = zmm7 ^ (zmm11 & (zmm7 ^ zmm8))8334; AVX512DQ-FCP-NEXT: vmovdqa64 %xmm22, %xmm88335; AVX512DQ-FCP-NEXT: vpshufb %xmm8, %xmm1, %xmm18336; AVX512DQ-FCP-NEXT: vpshufb %xmm13, %xmm12, %xmm88337; AVX512DQ-FCP-NEXT: vpor %xmm1, %xmm8, %xmm18338; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} ymm6 = ymm6[u,u,u,u,u,u,u,u,u,u,1,7,13,3,9,15,21,27,17,23,29,u,u,u,u,u,u,u,u,u,u,u]8339; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1,2,3,4],xmm6[5,6,7]8340; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm6[4,5,6,7]8341; AVX512DQ-FCP-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm08342; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} ymm2 = ymm2[u,u,u,u,u,u,u,u,u,u,1,7,13,3,9,15,21,27,17,23,29],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero8343; AVX512DQ-FCP-NEXT: vpternlogq {{.*#+}} ymm2 = ymm2 | (ymm0 & ~ymm9)8344; AVX512DQ-FCP-NEXT: vinserti64x4 $1, %ymm2, %zmm0, %zmm08345; AVX512DQ-FCP-NEXT: vinserti128 $1, %xmm10, %ymm0, %ymm28346; AVX512DQ-FCP-NEXT: vinserti32x4 $2, %xmm3, %zmm2, %zmm28347; AVX512DQ-FCP-NEXT: vpternlogq {{.*#+}} zmm1 = zmm2 ^ (zmm9 & (zmm1 ^ zmm2))8348; AVX512DQ-FCP-NEXT: vpternlogq {{.*#+}} zmm0 = zmm0 ^ (zmm11 & (zmm0 ^ zmm1))8349; AVX512DQ-FCP-NEXT: vinserti128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm1 # 16-byte Folded Reload8350; AVX512DQ-FCP-NEXT: vinserti32x4 $2, {{[-0-9]+}}(%r{{[sb]}}p), %zmm1, %zmm1 # 16-byte Folded Reload8351; AVX512DQ-FCP-NEXT: vpmovsxwd {{.*#+}} zmm2 = [0,0,0,0,0,4294967040,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295]8352; AVX512DQ-FCP-NEXT: vpternlogq {{.*#+}} zmm16 = zmm16 ^ (zmm2 & (zmm16 ^ zmm1))8353; AVX512DQ-FCP-NEXT: vinserti128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm1 # 16-byte Folded Reload8354; AVX512DQ-FCP-NEXT: vinserti32x4 $2, {{[-0-9]+}}(%r{{[sb]}}p), %zmm1, %zmm1 # 16-byte Folded Reload8355; AVX512DQ-FCP-NEXT: vpternlogq {{.*#+}} zmm21 = zmm21 ^ (zmm2 & (zmm21 ^ zmm1))8356; AVX512DQ-FCP-NEXT: vpmovsxdq {{.*#+}} zmm1 = [18446744073709551615,18446744073709551615,18446744073709551615,18446744073709551615,18446744073709551615,16777215,0,0]8357; AVX512DQ-FCP-NEXT: vpternlogq {{.*#+}} zmm4 = zmm4 ^ (zmm1 & (zmm4 ^ zmm16))8358; AVX512DQ-FCP-NEXT: vpternlogq {{.*#+}} zmm5 = zmm5 ^ (zmm1 & (zmm5 ^ zmm21))8359; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm15, (%rsi)8360; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm17, (%rdx)8361; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm4, (%rcx)8362; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm5, (%r8)8363; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm7, (%r9)8364; AVX512DQ-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax8365; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm0, (%rax)8366; AVX512DQ-FCP-NEXT: addq $40, %rsp8367; AVX512DQ-FCP-NEXT: vzeroupper8368; AVX512DQ-FCP-NEXT: retq8369;8370; AVX512BW-LABEL: load_i8_stride6_vf64:8371; AVX512BW: # %bb.0:8372; AVX512BW-NEXT: movq {{[0-9]+}}(%rsp), %rax8373; AVX512BW-NEXT: vmovdqa 224(%rdi), %ymm08374; AVX512BW-NEXT: vmovdqa64 192(%rdi), %ymm238375; AVX512BW-NEXT: movw $18724, %r10w # imm = 0x49248376; AVX512BW-NEXT: kmovd %r10d, %k18377; AVX512BW-NEXT: vpblendmw %ymm0, %ymm23, %ymm9 {%k1}8378; AVX512BW-NEXT: vmovdqa {{.*#+}} xmm2 = [0,6,12,128,128,128,4,10,128,128,128,u,u,u,u,u]8379; AVX512BW-NEXT: vpshufb %xmm2, %xmm9, %xmm18380; AVX512BW-NEXT: vmovdqa {{.*#+}} xmm4 = [128,128,128,2,8,14,128,128,0,6,12,u,u,u,u,u]8381; AVX512BW-NEXT: vextracti128 $1, %ymm9, %xmm128382; AVX512BW-NEXT: vpshufb %xmm4, %xmm12, %xmm38383; AVX512BW-NEXT: vpor %xmm1, %xmm3, %xmm58384; AVX512BW-NEXT: vmovdqa (%rdi), %ymm108385; AVX512BW-NEXT: vmovdqa 32(%rdi), %ymm38386; AVX512BW-NEXT: vmovdqa 64(%rdi), %ymm68387; AVX512BW-NEXT: vmovdqa64 128(%rdi), %ymm268388; AVX512BW-NEXT: vmovdqa 160(%rdi), %ymm18389; AVX512BW-NEXT: vpblendmw %ymm26, %ymm1, %ymm15 {%k1}8390; AVX512BW-NEXT: vextracti32x4 $1, %ymm15, %xmm168391; AVX512BW-NEXT: vmovdqa64 {{.*#+}} xmm17 = [u,u,u,u,u,u,128,128,0,6,12,128,128,128,4,10]8392; AVX512BW-NEXT: vpshufb %xmm17, %xmm16, %xmm118393; AVX512BW-NEXT: vmovdqa64 {{.*#+}} xmm18 = [u,u,u,u,u,u,4,10,128,128,128,2,8,14,128,128]8394; AVX512BW-NEXT: vpshufb %xmm18, %xmm15, %xmm138395; AVX512BW-NEXT: vpor %xmm11, %xmm13, %xmm118396; AVX512BW-NEXT: vinserti128 $1, %xmm11, %ymm0, %ymm118397; AVX512BW-NEXT: vinserti32x4 $2, %xmm5, %zmm11, %zmm118398; AVX512BW-NEXT: vperm2i128 {{.*#+}} ymm5 = ymm6[2,3],mem[2,3]8399; AVX512BW-NEXT: vinserti128 $1, 96(%rdi), %ymm6, %ymm138400; AVX512BW-NEXT: movw $-28124, %r10w # imm = 0x92248401; AVX512BW-NEXT: kmovd %r10d, %k48402; AVX512BW-NEXT: vpblendmw %ymm5, %ymm13, %ymm19 {%k4}8403; AVX512BW-NEXT: vpblendmw %ymm3, %ymm10, %ymm20 {%k1}8404; AVX512BW-NEXT: vpshufb %xmm2, %xmm20, %xmm28405; AVX512BW-NEXT: vextracti32x4 $1, %ymm20, %xmm218406; AVX512BW-NEXT: vpshufb %xmm4, %xmm21, %xmm48407; AVX512BW-NEXT: vpor %xmm2, %xmm4, %xmm28408; AVX512BW-NEXT: vpbroadcastq {{.*#+}} ymm6 = [0,6,12,2,8,14,4,10,0,6,12,2,8,14,4,10,0,6,12,2,8,14,4,10,0,6,12,2,8,14,4,10]8409; AVX512BW-NEXT: movl $4192256, %r10d # imm = 0x3FF8008410; AVX512BW-NEXT: kmovd %r10d, %k28411; AVX512BW-NEXT: vpshufb %ymm6, %ymm19, %ymm2 {%k2}8412; AVX512BW-NEXT: vmovdqu16 %zmm11, %zmm2 {%k2}8413; AVX512BW-NEXT: vmovdqa 256(%rdi), %ymm118414; AVX512BW-NEXT: vperm2i128 {{.*#+}} ymm4 = ymm11[2,3],mem[2,3]8415; AVX512BW-NEXT: vinserti128 $1, 288(%rdi), %ymm11, %ymm148416; AVX512BW-NEXT: vpblendmw %ymm4, %ymm14, %ymm22 {%k4}8417; AVX512BW-NEXT: vpshufb %ymm6, %ymm22, %ymm78418; AVX512BW-NEXT: vmovdqa 320(%rdi), %ymm118419; AVX512BW-NEXT: vmovdqa 352(%rdi), %ymm68420; AVX512BW-NEXT: vpblendmw %ymm11, %ymm6, %ymm24 {%k1}8421; AVX512BW-NEXT: vextracti32x4 $1, %ymm24, %xmm258422; AVX512BW-NEXT: vpshufb %xmm17, %xmm25, %xmm178423; AVX512BW-NEXT: vpshufb %xmm18, %xmm24, %xmm188424; AVX512BW-NEXT: vporq %xmm17, %xmm18, %xmm178425; AVX512BW-NEXT: vinserti32x4 $1, %xmm17, %ymm0, %ymm88426; AVX512BW-NEXT: vpblendw {{.*#+}} ymm8 = ymm7[0,1,2],ymm8[3,4,5,6,7],ymm7[8,9,10],ymm8[11,12,13,14,15]8427; AVX512BW-NEXT: vpblendd {{.*#+}} ymm7 = ymm7[0,1,2,3],ymm8[4,5,6,7]8428; AVX512BW-NEXT: vinserti64x4 $1, %ymm7, %zmm0, %zmm78429; AVX512BW-NEXT: movabsq $-8796093022208, %rdi # imm = 0xFFFFF800000000008430; AVX512BW-NEXT: kmovq %rdi, %k38431; AVX512BW-NEXT: vmovdqu8 %zmm7, %zmm2 {%k3}8432; AVX512BW-NEXT: vmovdqa {{.*#+}} xmm7 = [1,7,13,128,128,128,5,11,128,128,128,u,u,u,u,u]8433; AVX512BW-NEXT: vpshufb %xmm7, %xmm9, %xmm88434; AVX512BW-NEXT: vmovdqa {{.*#+}} xmm9 = [128,128,128,3,9,15,128,128,1,7,13,u,u,u,u,u]8435; AVX512BW-NEXT: vpshufb %xmm9, %xmm12, %xmm128436; AVX512BW-NEXT: vpor %xmm8, %xmm12, %xmm88437; AVX512BW-NEXT: vmovdqa {{.*#+}} xmm12 = [u,u,u,u,u,u,128,128,1,7,13,128,128,128,5,11]8438; AVX512BW-NEXT: vpshufb %xmm12, %xmm16, %xmm168439; AVX512BW-NEXT: vmovdqa64 {{.*#+}} xmm17 = [u,u,u,u,u,u,5,11,128,128,128,3,9,15,128,128]8440; AVX512BW-NEXT: vpshufb %xmm17, %xmm15, %xmm158441; AVX512BW-NEXT: vporq %xmm16, %xmm15, %xmm158442; AVX512BW-NEXT: vinserti128 $1, %xmm15, %ymm0, %ymm158443; AVX512BW-NEXT: vinserti32x4 $2, %xmm8, %zmm15, %zmm88444; AVX512BW-NEXT: vpshufb %xmm7, %xmm20, %xmm78445; AVX512BW-NEXT: vpshufb %xmm9, %xmm21, %xmm98446; AVX512BW-NEXT: vpor %xmm7, %xmm9, %xmm98447; AVX512BW-NEXT: vpbroadcastq {{.*#+}} ymm7 = [1,7,13,3,9,15,5,11,1,7,13,3,9,15,5,11,1,7,13,3,9,15,5,11,1,7,13,3,9,15,5,11]8448; AVX512BW-NEXT: vpshufb %ymm7, %ymm19, %ymm9 {%k2}8449; AVX512BW-NEXT: vmovdqu16 %zmm8, %zmm9 {%k2}8450; AVX512BW-NEXT: vpshufb %ymm7, %ymm22, %ymm78451; AVX512BW-NEXT: vpshufb %xmm12, %xmm25, %xmm88452; AVX512BW-NEXT: vpshufb %xmm17, %xmm24, %xmm128453; AVX512BW-NEXT: vpor %xmm8, %xmm12, %xmm88454; AVX512BW-NEXT: vinserti128 $1, %xmm8, %ymm0, %ymm88455; AVX512BW-NEXT: vpblendw {{.*#+}} ymm8 = ymm7[0,1,2],ymm8[3,4,5,6,7],ymm7[8,9,10],ymm8[11,12,13,14,15]8456; AVX512BW-NEXT: vpblendd {{.*#+}} ymm7 = ymm7[0,1,2,3],ymm8[4,5,6,7]8457; AVX512BW-NEXT: vinserti64x4 $1, %ymm7, %zmm0, %zmm78458; AVX512BW-NEXT: vmovdqu8 %zmm7, %zmm9 {%k3}8459; AVX512BW-NEXT: vpblendmw %ymm13, %ymm5, %ymm15 {%k4}8460; AVX512BW-NEXT: vmovdqa {{.*#+}} xmm7 = [128,128,128,4,10,128,128,128,2,8,14,u,u,u,u,u]8461; AVX512BW-NEXT: movw $9362, %di # imm = 0x24928462; AVX512BW-NEXT: kmovd %edi, %k28463; AVX512BW-NEXT: vpblendmw %ymm10, %ymm3, %ymm8 {%k2}8464; AVX512BW-NEXT: vextracti32x4 $1, %ymm8, %xmm168465; AVX512BW-NEXT: vpshufb %xmm7, %xmm16, %xmm128466; AVX512BW-NEXT: vmovdqa64 {{.*#+}} xmm17 = [2,8,14,128,128,0,6,12,128,128,128,u,u,u,u,u]8467; AVX512BW-NEXT: vpshufb %xmm17, %xmm8, %xmm188468; AVX512BW-NEXT: vporq %xmm12, %xmm18, %xmm188469; AVX512BW-NEXT: vpbroadcastq {{.*#+}} ymm19 = [2,8,14,4,10,0,6,12,2,8,14,4,10,0,6,12,2,8,14,4,10,0,6,12,2,8,14,4,10,0,6,12]8470; AVX512BW-NEXT: movl $2095104, %edi # imm = 0x1FF8008471; AVX512BW-NEXT: kmovd %edi, %k58472; AVX512BW-NEXT: vpshufb %ymm19, %ymm15, %ymm18 {%k5}8473; AVX512BW-NEXT: vpblendmw %ymm23, %ymm0, %ymm20 {%k2}8474; AVX512BW-NEXT: vextracti32x4 $1, %ymm20, %xmm218475; AVX512BW-NEXT: vpshufb %xmm7, %xmm21, %xmm78476; AVX512BW-NEXT: vpshufb %xmm17, %xmm20, %xmm128477; AVX512BW-NEXT: vpor %xmm7, %xmm12, %xmm78478; AVX512BW-NEXT: vpblendmw %ymm1, %ymm26, %ymm17 {%k1}8479; AVX512BW-NEXT: vmovdqa64 {{.*#+}} xmm22 = [u,u,u,u,u,0,6,12,128,128,128,4,10,128,128,128]8480; AVX512BW-NEXT: vpshufb %xmm22, %xmm17, %xmm128481; AVX512BW-NEXT: vextracti32x4 $1, %ymm17, %xmm248482; AVX512BW-NEXT: vmovdqa64 {{.*#+}} xmm25 = [u,u,u,u,u,128,128,128,2,8,14,128,128,0,6,12]8483; AVX512BW-NEXT: vpshufb %xmm25, %xmm24, %xmm278484; AVX512BW-NEXT: vporq %xmm12, %xmm27, %xmm128485; AVX512BW-NEXT: vinserti128 $1, %xmm12, %ymm0, %ymm128486; AVX512BW-NEXT: vinserti32x4 $2, %xmm7, %zmm12, %zmm128487; AVX512BW-NEXT: movl $2097151, %edi # imm = 0x1FFFFF8488; AVX512BW-NEXT: kmovq %rdi, %k68489; AVX512BW-NEXT: vmovdqu8 %zmm18, %zmm12 {%k6}8490; AVX512BW-NEXT: vpblendmw %ymm14, %ymm4, %ymm7 {%k4}8491; AVX512BW-NEXT: vpblendmw %ymm6, %ymm11, %ymm18 {%k1}8492; AVX512BW-NEXT: vpshufb %xmm22, %xmm18, %xmm228493; AVX512BW-NEXT: vextracti32x4 $1, %ymm18, %xmm278494; AVX512BW-NEXT: vpshufb %xmm25, %xmm27, %xmm258495; AVX512BW-NEXT: vporq %xmm22, %xmm25, %xmm228496; AVX512BW-NEXT: vinserti32x4 $1, %xmm22, %ymm0, %ymm228497; AVX512BW-NEXT: vpshufb %ymm19, %ymm7, %ymm22 {%k5}8498; AVX512BW-NEXT: vinserti64x4 $1, %ymm22, %zmm0, %zmm198499; AVX512BW-NEXT: vmovdqu8 %zmm19, %zmm12 {%k3}8500; AVX512BW-NEXT: movw $9289, %di # imm = 0x24498501; AVX512BW-NEXT: kmovd %edi, %k48502; AVX512BW-NEXT: vmovdqu16 %ymm14, %ymm4 {%k4}8503; AVX512BW-NEXT: vmovdqu16 %ymm13, %ymm5 {%k4}8504; AVX512BW-NEXT: vmovdqa {{.*#+}} xmm13 = [128,128,128,5,11,128,128,128,3,9,15,u,u,u,u,u]8505; AVX512BW-NEXT: vpshufb %xmm13, %xmm16, %xmm148506; AVX512BW-NEXT: vmovdqa64 {{.*#+}} xmm16 = [3,9,15,128,128,1,7,13,128,128,128,u,u,u,u,u]8507; AVX512BW-NEXT: vpshufb %xmm16, %xmm8, %xmm88508; AVX512BW-NEXT: vpor %xmm14, %xmm8, %xmm88509; AVX512BW-NEXT: vpbroadcastq {{.*#+}} ymm14 = [3,9,15,5,11,1,7,13,3,9,15,5,11,1,7,13,3,9,15,5,11,1,7,13,3,9,15,5,11,1,7,13]8510; AVX512BW-NEXT: vpshufb %ymm14, %ymm15, %ymm8 {%k5}8511; AVX512BW-NEXT: vpshufb %xmm13, %xmm21, %xmm138512; AVX512BW-NEXT: vpshufb %xmm16, %xmm20, %xmm158513; AVX512BW-NEXT: vpor %xmm13, %xmm15, %xmm138514; AVX512BW-NEXT: vmovdqa {{.*#+}} xmm15 = [u,u,u,u,u,1,7,13,128,128,128,5,11,128,128,128]8515; AVX512BW-NEXT: vpshufb %xmm15, %xmm17, %xmm168516; AVX512BW-NEXT: vmovdqa64 {{.*#+}} xmm17 = [u,u,u,u,u,128,128,128,3,9,15,128,128,1,7,13]8517; AVX512BW-NEXT: vpshufb %xmm17, %xmm24, %xmm198518; AVX512BW-NEXT: vporq %xmm16, %xmm19, %xmm168519; AVX512BW-NEXT: vinserti32x4 $1, %xmm16, %ymm0, %ymm168520; AVX512BW-NEXT: vinserti32x4 $2, %xmm13, %zmm16, %zmm138521; AVX512BW-NEXT: vmovdqu8 %zmm8, %zmm13 {%k6}8522; AVX512BW-NEXT: vpshufb %xmm15, %xmm18, %xmm88523; AVX512BW-NEXT: vpshufb %xmm17, %xmm27, %xmm158524; AVX512BW-NEXT: vpor %xmm8, %xmm15, %xmm88525; AVX512BW-NEXT: vinserti128 $1, %xmm8, %ymm0, %ymm88526; AVX512BW-NEXT: vpshufb %ymm14, %ymm7, %ymm8 {%k5}8527; AVX512BW-NEXT: vinserti64x4 $1, %ymm8, %zmm0, %zmm78528; AVX512BW-NEXT: vmovdqu8 %zmm7, %zmm13 {%k3}8529; AVX512BW-NEXT: vpbroadcastq {{.*#+}} ymm7 = [4,10,0,6,12,2,8,14,4,10,0,6,12,2,8,14,4,10,0,6,12,2,8,14,4,10,0,6,12,2,8,14]8530; AVX512BW-NEXT: vpshufb %ymm7, %ymm5, %ymm88531; AVX512BW-NEXT: vmovdqa {{.*#+}} xmm14 = [128,128,0,6,12,128,128,128,4,10,u,u,u,u,u,u]8532; AVX512BW-NEXT: vmovdqu16 %ymm10, %ymm3 {%k1}8533; AVX512BW-NEXT: vextracti128 $1, %ymm3, %xmm158534; AVX512BW-NEXT: vpshufb %xmm14, %xmm15, %xmm108535; AVX512BW-NEXT: vmovdqa64 {{.*#+}} xmm16 = [4,10,128,128,128,2,8,14,128,128,u,u,u,u,u,u]8536; AVX512BW-NEXT: vpshufb %xmm16, %xmm3, %xmm178537; AVX512BW-NEXT: vporq %xmm10, %xmm17, %xmm108538; AVX512BW-NEXT: vpblendw {{.*#+}} xmm10 = xmm10[0,1,2,3,4],xmm8[5,6,7]8539; AVX512BW-NEXT: vpblendd {{.*#+}} ymm10 = ymm10[0,1,2,3],ymm8[4,5,6,7]8540; AVX512BW-NEXT: vmovdqu16 %ymm23, %ymm0 {%k1}8541; AVX512BW-NEXT: vextracti128 $1, %ymm0, %xmm88542; AVX512BW-NEXT: vpshufb %xmm14, %xmm8, %xmm148543; AVX512BW-NEXT: vpshufb %xmm16, %xmm0, %xmm168544; AVX512BW-NEXT: vporq %xmm14, %xmm16, %xmm148545; AVX512BW-NEXT: vmovdqu16 %ymm26, %ymm1 {%k2}8546; AVX512BW-NEXT: vextracti32x4 $1, %ymm1, %xmm168547; AVX512BW-NEXT: vmovdqa64 {{.*#+}} xmm17 = [u,u,u,u,u,128,128,128,4,10,128,128,128,2,8,14]8548; AVX512BW-NEXT: vpshufb %xmm17, %xmm16, %xmm188549; AVX512BW-NEXT: vmovdqa64 {{.*#+}} xmm19 = [u,u,u,u,u,2,8,14,128,128,0,6,12,128,128,128]8550; AVX512BW-NEXT: vpshufb %xmm19, %xmm1, %xmm208551; AVX512BW-NEXT: vporq %xmm18, %xmm20, %xmm188552; AVX512BW-NEXT: vinserti32x4 $1, %xmm18, %ymm0, %ymm188553; AVX512BW-NEXT: vinserti32x4 $2, %xmm14, %zmm18, %zmm148554; AVX512BW-NEXT: movabsq $4398044413952, %rdi # imm = 0x3FFFFE000008555; AVX512BW-NEXT: kmovq %rdi, %k18556; AVX512BW-NEXT: vmovdqu8 %zmm14, %zmm10 {%k1}8557; AVX512BW-NEXT: vpshufb %ymm7, %ymm4, %ymm78558; AVX512BW-NEXT: vmovdqu16 %ymm11, %ymm6 {%k2}8559; AVX512BW-NEXT: vextracti128 $1, %ymm6, %xmm118560; AVX512BW-NEXT: vpshufb %xmm17, %xmm11, %xmm148561; AVX512BW-NEXT: vpshufb %xmm19, %xmm6, %xmm178562; AVX512BW-NEXT: vporq %xmm14, %xmm17, %xmm148563; AVX512BW-NEXT: vinserti128 $1, %xmm14, %ymm0, %ymm148564; AVX512BW-NEXT: movl $-2097152, %edi # imm = 0xFFE000008565; AVX512BW-NEXT: kmovd %edi, %k28566; AVX512BW-NEXT: vmovdqu8 %ymm14, %ymm7 {%k2}8567; AVX512BW-NEXT: vinserti64x4 $1, %ymm7, %zmm0, %zmm78568; AVX512BW-NEXT: vmovdqu16 %zmm7, %zmm10 {%k2}8569; AVX512BW-NEXT: vpbroadcastq {{.*#+}} ymm7 = [5,11,1,7,13,3,9,15,5,11,1,7,13,3,9,15,5,11,1,7,13,3,9,15,5,11,1,7,13,3,9,15]8570; AVX512BW-NEXT: vpshufb %ymm7, %ymm5, %ymm58571; AVX512BW-NEXT: vmovdqa {{.*#+}} xmm14 = [128,128,1,7,13,128,128,128,5,11,u,u,u,u,u,u]8572; AVX512BW-NEXT: vpshufb %xmm14, %xmm15, %xmm158573; AVX512BW-NEXT: vmovdqa64 {{.*#+}} xmm17 = [5,11,128,128,128,3,9,15,128,128,u,u,u,u,u,u]8574; AVX512BW-NEXT: vpshufb %xmm17, %xmm3, %xmm38575; AVX512BW-NEXT: vpor %xmm3, %xmm15, %xmm38576; AVX512BW-NEXT: vpblendw {{.*#+}} xmm3 = xmm3[0,1,2,3,4],xmm5[5,6,7]8577; AVX512BW-NEXT: vpblendd {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm5[4,5,6,7]8578; AVX512BW-NEXT: vpshufb %xmm14, %xmm8, %xmm58579; AVX512BW-NEXT: vpshufb %xmm17, %xmm0, %xmm08580; AVX512BW-NEXT: vpor %xmm5, %xmm0, %xmm08581; AVX512BW-NEXT: vmovdqa {{.*#+}} xmm5 = [u,u,u,u,u,128,128,128,5,11,128,128,128,3,9,15]8582; AVX512BW-NEXT: vpshufb %xmm5, %xmm16, %xmm88583; AVX512BW-NEXT: vmovdqa {{.*#+}} xmm14 = [u,u,u,u,u,3,9,15,128,128,1,7,13,128,128,128]8584; AVX512BW-NEXT: vpshufb %xmm14, %xmm1, %xmm18585; AVX512BW-NEXT: vpor %xmm1, %xmm8, %xmm18586; AVX512BW-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm18587; AVX512BW-NEXT: vinserti32x4 $2, %xmm0, %zmm1, %zmm08588; AVX512BW-NEXT: vmovdqu8 %zmm0, %zmm3 {%k1}8589; AVX512BW-NEXT: vpshufb %ymm7, %ymm4, %ymm08590; AVX512BW-NEXT: vpshufb %xmm5, %xmm11, %xmm18591; AVX512BW-NEXT: vpshufb %xmm14, %xmm6, %xmm48592; AVX512BW-NEXT: vpor %xmm1, %xmm4, %xmm18593; AVX512BW-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm18594; AVX512BW-NEXT: vmovdqu8 %ymm1, %ymm0 {%k2}8595; AVX512BW-NEXT: vinserti64x4 $1, %ymm0, %zmm0, %zmm08596; AVX512BW-NEXT: vmovdqu16 %zmm0, %zmm3 {%k2}8597; AVX512BW-NEXT: vmovdqa64 %zmm2, (%rsi)8598; AVX512BW-NEXT: vmovdqa64 %zmm9, (%rdx)8599; AVX512BW-NEXT: vmovdqa64 %zmm12, (%rcx)8600; AVX512BW-NEXT: vmovdqa64 %zmm13, (%r8)8601; AVX512BW-NEXT: vmovdqa64 %zmm10, (%r9)8602; AVX512BW-NEXT: vmovdqa64 %zmm3, (%rax)8603; AVX512BW-NEXT: vzeroupper8604; AVX512BW-NEXT: retq8605;8606; AVX512BW-FCP-LABEL: load_i8_stride6_vf64:8607; AVX512BW-FCP: # %bb.0:8608; AVX512BW-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax8609; AVX512BW-FCP-NEXT: vmovdqa 224(%rdi), %ymm08610; AVX512BW-FCP-NEXT: vmovdqa64 192(%rdi), %ymm238611; AVX512BW-FCP-NEXT: movw $18724, %r10w # imm = 0x49248612; AVX512BW-FCP-NEXT: kmovd %r10d, %k18613; AVX512BW-FCP-NEXT: vpblendmw %ymm0, %ymm23, %ymm9 {%k1}8614; AVX512BW-FCP-NEXT: vmovdqa {{.*#+}} xmm2 = [0,6,12,128,128,128,4,10,128,128,128,u,u,u,u,u]8615; AVX512BW-FCP-NEXT: vpshufb %xmm2, %xmm9, %xmm18616; AVX512BW-FCP-NEXT: vmovdqa {{.*#+}} xmm4 = [128,128,128,2,8,14,128,128,0,6,12,u,u,u,u,u]8617; AVX512BW-FCP-NEXT: vextracti128 $1, %ymm9, %xmm128618; AVX512BW-FCP-NEXT: vpshufb %xmm4, %xmm12, %xmm38619; AVX512BW-FCP-NEXT: vpor %xmm1, %xmm3, %xmm58620; AVX512BW-FCP-NEXT: vmovdqa (%rdi), %ymm108621; AVX512BW-FCP-NEXT: vmovdqa 32(%rdi), %ymm38622; AVX512BW-FCP-NEXT: vmovdqa 64(%rdi), %ymm68623; AVX512BW-FCP-NEXT: vmovdqa64 128(%rdi), %ymm268624; AVX512BW-FCP-NEXT: vmovdqa 160(%rdi), %ymm18625; AVX512BW-FCP-NEXT: vpblendmw %ymm26, %ymm1, %ymm15 {%k1}8626; AVX512BW-FCP-NEXT: vextracti32x4 $1, %ymm15, %xmm168627; AVX512BW-FCP-NEXT: vmovdqa64 {{.*#+}} xmm17 = [u,u,u,u,u,u,128,128,0,6,12,128,128,128,4,10]8628; AVX512BW-FCP-NEXT: vpshufb %xmm17, %xmm16, %xmm118629; AVX512BW-FCP-NEXT: vmovdqa64 {{.*#+}} xmm18 = [u,u,u,u,u,u,4,10,128,128,128,2,8,14,128,128]8630; AVX512BW-FCP-NEXT: vpshufb %xmm18, %xmm15, %xmm138631; AVX512BW-FCP-NEXT: vpor %xmm11, %xmm13, %xmm118632; AVX512BW-FCP-NEXT: vinserti128 $1, %xmm11, %ymm0, %ymm118633; AVX512BW-FCP-NEXT: vinserti32x4 $2, %xmm5, %zmm11, %zmm118634; AVX512BW-FCP-NEXT: vperm2i128 {{.*#+}} ymm5 = ymm6[2,3],mem[2,3]8635; AVX512BW-FCP-NEXT: vinserti128 $1, 96(%rdi), %ymm6, %ymm138636; AVX512BW-FCP-NEXT: movw $-28124, %r10w # imm = 0x92248637; AVX512BW-FCP-NEXT: kmovd %r10d, %k48638; AVX512BW-FCP-NEXT: vpblendmw %ymm5, %ymm13, %ymm19 {%k4}8639; AVX512BW-FCP-NEXT: vpblendmw %ymm3, %ymm10, %ymm20 {%k1}8640; AVX512BW-FCP-NEXT: vpshufb %xmm2, %xmm20, %xmm28641; AVX512BW-FCP-NEXT: vextracti32x4 $1, %ymm20, %xmm218642; AVX512BW-FCP-NEXT: vpshufb %xmm4, %xmm21, %xmm48643; AVX512BW-FCP-NEXT: vpor %xmm2, %xmm4, %xmm28644; AVX512BW-FCP-NEXT: vpbroadcastq {{.*#+}} ymm6 = [0,6,12,2,8,14,4,10,0,6,12,2,8,14,4,10,0,6,12,2,8,14,4,10,0,6,12,2,8,14,4,10]8645; AVX512BW-FCP-NEXT: movl $4192256, %r10d # imm = 0x3FF8008646; AVX512BW-FCP-NEXT: kmovd %r10d, %k28647; AVX512BW-FCP-NEXT: vpshufb %ymm6, %ymm19, %ymm2 {%k2}8648; AVX512BW-FCP-NEXT: vmovdqu16 %zmm11, %zmm2 {%k2}8649; AVX512BW-FCP-NEXT: vmovdqa 256(%rdi), %ymm118650; AVX512BW-FCP-NEXT: vperm2i128 {{.*#+}} ymm4 = ymm11[2,3],mem[2,3]8651; AVX512BW-FCP-NEXT: vinserti128 $1, 288(%rdi), %ymm11, %ymm148652; AVX512BW-FCP-NEXT: vpblendmw %ymm4, %ymm14, %ymm22 {%k4}8653; AVX512BW-FCP-NEXT: vpshufb %ymm6, %ymm22, %ymm78654; AVX512BW-FCP-NEXT: vmovdqa 320(%rdi), %ymm118655; AVX512BW-FCP-NEXT: vmovdqa 352(%rdi), %ymm68656; AVX512BW-FCP-NEXT: vpblendmw %ymm11, %ymm6, %ymm24 {%k1}8657; AVX512BW-FCP-NEXT: vextracti32x4 $1, %ymm24, %xmm258658; AVX512BW-FCP-NEXT: vpshufb %xmm17, %xmm25, %xmm178659; AVX512BW-FCP-NEXT: vpshufb %xmm18, %xmm24, %xmm188660; AVX512BW-FCP-NEXT: vporq %xmm17, %xmm18, %xmm178661; AVX512BW-FCP-NEXT: vinserti32x4 $1, %xmm17, %ymm0, %ymm88662; AVX512BW-FCP-NEXT: vpblendw {{.*#+}} ymm8 = ymm7[0,1,2],ymm8[3,4,5,6,7],ymm7[8,9,10],ymm8[11,12,13,14,15]8663; AVX512BW-FCP-NEXT: vpblendd {{.*#+}} ymm7 = ymm7[0,1,2,3],ymm8[4,5,6,7]8664; AVX512BW-FCP-NEXT: vinserti64x4 $1, %ymm7, %zmm0, %zmm78665; AVX512BW-FCP-NEXT: movabsq $-8796093022208, %rdi # imm = 0xFFFFF800000000008666; AVX512BW-FCP-NEXT: kmovq %rdi, %k38667; AVX512BW-FCP-NEXT: vmovdqu8 %zmm7, %zmm2 {%k3}8668; AVX512BW-FCP-NEXT: vmovdqa {{.*#+}} xmm7 = [1,7,13,128,128,128,5,11,128,128,128,u,u,u,u,u]8669; AVX512BW-FCP-NEXT: vpshufb %xmm7, %xmm9, %xmm88670; AVX512BW-FCP-NEXT: vmovdqa {{.*#+}} xmm9 = [128,128,128,3,9,15,128,128,1,7,13,u,u,u,u,u]8671; AVX512BW-FCP-NEXT: vpshufb %xmm9, %xmm12, %xmm128672; AVX512BW-FCP-NEXT: vpor %xmm8, %xmm12, %xmm88673; AVX512BW-FCP-NEXT: vmovdqa {{.*#+}} xmm12 = [u,u,u,u,u,u,128,128,1,7,13,128,128,128,5,11]8674; AVX512BW-FCP-NEXT: vpshufb %xmm12, %xmm16, %xmm168675; AVX512BW-FCP-NEXT: vmovdqa64 {{.*#+}} xmm17 = [u,u,u,u,u,u,5,11,128,128,128,3,9,15,128,128]8676; AVX512BW-FCP-NEXT: vpshufb %xmm17, %xmm15, %xmm158677; AVX512BW-FCP-NEXT: vporq %xmm16, %xmm15, %xmm158678; AVX512BW-FCP-NEXT: vinserti128 $1, %xmm15, %ymm0, %ymm158679; AVX512BW-FCP-NEXT: vinserti32x4 $2, %xmm8, %zmm15, %zmm88680; AVX512BW-FCP-NEXT: vpshufb %xmm7, %xmm20, %xmm78681; AVX512BW-FCP-NEXT: vpshufb %xmm9, %xmm21, %xmm98682; AVX512BW-FCP-NEXT: vpor %xmm7, %xmm9, %xmm98683; AVX512BW-FCP-NEXT: vpbroadcastq {{.*#+}} ymm7 = [1,7,13,3,9,15,5,11,1,7,13,3,9,15,5,11,1,7,13,3,9,15,5,11,1,7,13,3,9,15,5,11]8684; AVX512BW-FCP-NEXT: vpshufb %ymm7, %ymm19, %ymm9 {%k2}8685; AVX512BW-FCP-NEXT: vmovdqu16 %zmm8, %zmm9 {%k2}8686; AVX512BW-FCP-NEXT: vpshufb %ymm7, %ymm22, %ymm78687; AVX512BW-FCP-NEXT: vpshufb %xmm12, %xmm25, %xmm88688; AVX512BW-FCP-NEXT: vpshufb %xmm17, %xmm24, %xmm128689; AVX512BW-FCP-NEXT: vpor %xmm8, %xmm12, %xmm88690; AVX512BW-FCP-NEXT: vinserti128 $1, %xmm8, %ymm0, %ymm88691; AVX512BW-FCP-NEXT: vpblendw {{.*#+}} ymm8 = ymm7[0,1,2],ymm8[3,4,5,6,7],ymm7[8,9,10],ymm8[11,12,13,14,15]8692; AVX512BW-FCP-NEXT: vpblendd {{.*#+}} ymm7 = ymm7[0,1,2,3],ymm8[4,5,6,7]8693; AVX512BW-FCP-NEXT: vinserti64x4 $1, %ymm7, %zmm0, %zmm78694; AVX512BW-FCP-NEXT: vmovdqu8 %zmm7, %zmm9 {%k3}8695; AVX512BW-FCP-NEXT: vpblendmw %ymm13, %ymm5, %ymm15 {%k4}8696; AVX512BW-FCP-NEXT: vmovdqa {{.*#+}} xmm7 = [128,128,128,4,10,128,128,128,2,8,14,u,u,u,u,u]8697; AVX512BW-FCP-NEXT: movw $9362, %di # imm = 0x24928698; AVX512BW-FCP-NEXT: kmovd %edi, %k28699; AVX512BW-FCP-NEXT: vpblendmw %ymm10, %ymm3, %ymm8 {%k2}8700; AVX512BW-FCP-NEXT: vextracti32x4 $1, %ymm8, %xmm168701; AVX512BW-FCP-NEXT: vpshufb %xmm7, %xmm16, %xmm128702; AVX512BW-FCP-NEXT: vmovdqa64 {{.*#+}} xmm17 = [2,8,14,128,128,0,6,12,128,128,128,u,u,u,u,u]8703; AVX512BW-FCP-NEXT: vpshufb %xmm17, %xmm8, %xmm188704; AVX512BW-FCP-NEXT: vporq %xmm12, %xmm18, %xmm188705; AVX512BW-FCP-NEXT: vpbroadcastq {{.*#+}} ymm19 = [2,8,14,4,10,0,6,12,2,8,14,4,10,0,6,12,2,8,14,4,10,0,6,12,2,8,14,4,10,0,6,12]8706; AVX512BW-FCP-NEXT: movl $2095104, %edi # imm = 0x1FF8008707; AVX512BW-FCP-NEXT: kmovd %edi, %k58708; AVX512BW-FCP-NEXT: vpshufb %ymm19, %ymm15, %ymm18 {%k5}8709; AVX512BW-FCP-NEXT: vpblendmw %ymm23, %ymm0, %ymm20 {%k2}8710; AVX512BW-FCP-NEXT: vextracti32x4 $1, %ymm20, %xmm218711; AVX512BW-FCP-NEXT: vpshufb %xmm7, %xmm21, %xmm78712; AVX512BW-FCP-NEXT: vpshufb %xmm17, %xmm20, %xmm128713; AVX512BW-FCP-NEXT: vpor %xmm7, %xmm12, %xmm78714; AVX512BW-FCP-NEXT: vpblendmw %ymm1, %ymm26, %ymm17 {%k1}8715; AVX512BW-FCP-NEXT: vmovdqa64 {{.*#+}} xmm22 = [u,u,u,u,u,0,6,12,128,128,128,4,10,128,128,128]8716; AVX512BW-FCP-NEXT: vpshufb %xmm22, %xmm17, %xmm128717; AVX512BW-FCP-NEXT: vextracti32x4 $1, %ymm17, %xmm248718; AVX512BW-FCP-NEXT: vmovdqa64 {{.*#+}} xmm25 = [u,u,u,u,u,128,128,128,2,8,14,128,128,0,6,12]8719; AVX512BW-FCP-NEXT: vpshufb %xmm25, %xmm24, %xmm278720; AVX512BW-FCP-NEXT: vporq %xmm12, %xmm27, %xmm128721; AVX512BW-FCP-NEXT: vinserti128 $1, %xmm12, %ymm0, %ymm128722; AVX512BW-FCP-NEXT: vinserti32x4 $2, %xmm7, %zmm12, %zmm128723; AVX512BW-FCP-NEXT: movl $2097151, %edi # imm = 0x1FFFFF8724; AVX512BW-FCP-NEXT: kmovq %rdi, %k68725; AVX512BW-FCP-NEXT: vmovdqu8 %zmm18, %zmm12 {%k6}8726; AVX512BW-FCP-NEXT: vpblendmw %ymm14, %ymm4, %ymm7 {%k4}8727; AVX512BW-FCP-NEXT: vpblendmw %ymm6, %ymm11, %ymm18 {%k1}8728; AVX512BW-FCP-NEXT: vpshufb %xmm22, %xmm18, %xmm228729; AVX512BW-FCP-NEXT: vextracti32x4 $1, %ymm18, %xmm278730; AVX512BW-FCP-NEXT: vpshufb %xmm25, %xmm27, %xmm258731; AVX512BW-FCP-NEXT: vporq %xmm22, %xmm25, %xmm228732; AVX512BW-FCP-NEXT: vinserti32x4 $1, %xmm22, %ymm0, %ymm228733; AVX512BW-FCP-NEXT: vpshufb %ymm19, %ymm7, %ymm22 {%k5}8734; AVX512BW-FCP-NEXT: vinserti64x4 $1, %ymm22, %zmm0, %zmm198735; AVX512BW-FCP-NEXT: vmovdqu8 %zmm19, %zmm12 {%k3}8736; AVX512BW-FCP-NEXT: movw $9289, %di # imm = 0x24498737; AVX512BW-FCP-NEXT: kmovd %edi, %k48738; AVX512BW-FCP-NEXT: vmovdqu16 %ymm14, %ymm4 {%k4}8739; AVX512BW-FCP-NEXT: vmovdqu16 %ymm13, %ymm5 {%k4}8740; AVX512BW-FCP-NEXT: vmovdqa {{.*#+}} xmm13 = [128,128,128,5,11,128,128,128,3,9,15,u,u,u,u,u]8741; AVX512BW-FCP-NEXT: vpshufb %xmm13, %xmm16, %xmm148742; AVX512BW-FCP-NEXT: vmovdqa64 {{.*#+}} xmm16 = [3,9,15,128,128,1,7,13,128,128,128,u,u,u,u,u]8743; AVX512BW-FCP-NEXT: vpshufb %xmm16, %xmm8, %xmm88744; AVX512BW-FCP-NEXT: vpor %xmm14, %xmm8, %xmm88745; AVX512BW-FCP-NEXT: vpbroadcastq {{.*#+}} ymm14 = [3,9,15,5,11,1,7,13,3,9,15,5,11,1,7,13,3,9,15,5,11,1,7,13,3,9,15,5,11,1,7,13]8746; AVX512BW-FCP-NEXT: vpshufb %ymm14, %ymm15, %ymm8 {%k5}8747; AVX512BW-FCP-NEXT: vpshufb %xmm13, %xmm21, %xmm138748; AVX512BW-FCP-NEXT: vpshufb %xmm16, %xmm20, %xmm158749; AVX512BW-FCP-NEXT: vpor %xmm13, %xmm15, %xmm138750; AVX512BW-FCP-NEXT: vmovdqa {{.*#+}} xmm15 = [u,u,u,u,u,1,7,13,128,128,128,5,11,128,128,128]8751; AVX512BW-FCP-NEXT: vpshufb %xmm15, %xmm17, %xmm168752; AVX512BW-FCP-NEXT: vmovdqa64 {{.*#+}} xmm17 = [u,u,u,u,u,128,128,128,3,9,15,128,128,1,7,13]8753; AVX512BW-FCP-NEXT: vpshufb %xmm17, %xmm24, %xmm198754; AVX512BW-FCP-NEXT: vporq %xmm16, %xmm19, %xmm168755; AVX512BW-FCP-NEXT: vinserti32x4 $1, %xmm16, %ymm0, %ymm168756; AVX512BW-FCP-NEXT: vinserti32x4 $2, %xmm13, %zmm16, %zmm138757; AVX512BW-FCP-NEXT: vmovdqu8 %zmm8, %zmm13 {%k6}8758; AVX512BW-FCP-NEXT: vpshufb %xmm15, %xmm18, %xmm88759; AVX512BW-FCP-NEXT: vpshufb %xmm17, %xmm27, %xmm158760; AVX512BW-FCP-NEXT: vpor %xmm8, %xmm15, %xmm88761; AVX512BW-FCP-NEXT: vinserti128 $1, %xmm8, %ymm0, %ymm88762; AVX512BW-FCP-NEXT: vpshufb %ymm14, %ymm7, %ymm8 {%k5}8763; AVX512BW-FCP-NEXT: vinserti64x4 $1, %ymm8, %zmm0, %zmm78764; AVX512BW-FCP-NEXT: vmovdqu8 %zmm7, %zmm13 {%k3}8765; AVX512BW-FCP-NEXT: vpbroadcastq {{.*#+}} ymm7 = [4,10,0,6,12,2,8,14,4,10,0,6,12,2,8,14,4,10,0,6,12,2,8,14,4,10,0,6,12,2,8,14]8766; AVX512BW-FCP-NEXT: vpshufb %ymm7, %ymm5, %ymm88767; AVX512BW-FCP-NEXT: vmovdqa {{.*#+}} xmm14 = [128,128,0,6,12,128,128,128,4,10,u,u,u,u,u,u]8768; AVX512BW-FCP-NEXT: vmovdqu16 %ymm10, %ymm3 {%k1}8769; AVX512BW-FCP-NEXT: vextracti128 $1, %ymm3, %xmm158770; AVX512BW-FCP-NEXT: vpshufb %xmm14, %xmm15, %xmm108771; AVX512BW-FCP-NEXT: vmovdqa64 {{.*#+}} xmm16 = [4,10,128,128,128,2,8,14,128,128,u,u,u,u,u,u]8772; AVX512BW-FCP-NEXT: vpshufb %xmm16, %xmm3, %xmm178773; AVX512BW-FCP-NEXT: vporq %xmm10, %xmm17, %xmm108774; AVX512BW-FCP-NEXT: vpblendw {{.*#+}} xmm10 = xmm10[0,1,2,3,4],xmm8[5,6,7]8775; AVX512BW-FCP-NEXT: vpblendd {{.*#+}} ymm10 = ymm10[0,1,2,3],ymm8[4,5,6,7]8776; AVX512BW-FCP-NEXT: vmovdqu16 %ymm23, %ymm0 {%k1}8777; AVX512BW-FCP-NEXT: vextracti128 $1, %ymm0, %xmm88778; AVX512BW-FCP-NEXT: vpshufb %xmm14, %xmm8, %xmm148779; AVX512BW-FCP-NEXT: vpshufb %xmm16, %xmm0, %xmm168780; AVX512BW-FCP-NEXT: vporq %xmm14, %xmm16, %xmm148781; AVX512BW-FCP-NEXT: vmovdqu16 %ymm26, %ymm1 {%k2}8782; AVX512BW-FCP-NEXT: vextracti32x4 $1, %ymm1, %xmm168783; AVX512BW-FCP-NEXT: vmovdqa64 {{.*#+}} xmm17 = [u,u,u,u,u,128,128,128,4,10,128,128,128,2,8,14]8784; AVX512BW-FCP-NEXT: vpshufb %xmm17, %xmm16, %xmm188785; AVX512BW-FCP-NEXT: vmovdqa64 {{.*#+}} xmm19 = [u,u,u,u,u,2,8,14,128,128,0,6,12,128,128,128]8786; AVX512BW-FCP-NEXT: vpshufb %xmm19, %xmm1, %xmm208787; AVX512BW-FCP-NEXT: vporq %xmm18, %xmm20, %xmm188788; AVX512BW-FCP-NEXT: vinserti32x4 $1, %xmm18, %ymm0, %ymm188789; AVX512BW-FCP-NEXT: vinserti32x4 $2, %xmm14, %zmm18, %zmm148790; AVX512BW-FCP-NEXT: movabsq $4398044413952, %rdi # imm = 0x3FFFFE000008791; AVX512BW-FCP-NEXT: kmovq %rdi, %k18792; AVX512BW-FCP-NEXT: vmovdqu8 %zmm14, %zmm10 {%k1}8793; AVX512BW-FCP-NEXT: vpshufb %ymm7, %ymm4, %ymm78794; AVX512BW-FCP-NEXT: vmovdqu16 %ymm11, %ymm6 {%k2}8795; AVX512BW-FCP-NEXT: vextracti128 $1, %ymm6, %xmm118796; AVX512BW-FCP-NEXT: vpshufb %xmm17, %xmm11, %xmm148797; AVX512BW-FCP-NEXT: vpshufb %xmm19, %xmm6, %xmm178798; AVX512BW-FCP-NEXT: vporq %xmm14, %xmm17, %xmm148799; AVX512BW-FCP-NEXT: vinserti128 $1, %xmm14, %ymm0, %ymm148800; AVX512BW-FCP-NEXT: movl $-2097152, %edi # imm = 0xFFE000008801; AVX512BW-FCP-NEXT: kmovd %edi, %k28802; AVX512BW-FCP-NEXT: vmovdqu8 %ymm14, %ymm7 {%k2}8803; AVX512BW-FCP-NEXT: vinserti64x4 $1, %ymm7, %zmm0, %zmm78804; AVX512BW-FCP-NEXT: vmovdqu16 %zmm7, %zmm10 {%k2}8805; AVX512BW-FCP-NEXT: vpbroadcastq {{.*#+}} ymm7 = [5,11,1,7,13,3,9,15,5,11,1,7,13,3,9,15,5,11,1,7,13,3,9,15,5,11,1,7,13,3,9,15]8806; AVX512BW-FCP-NEXT: vpshufb %ymm7, %ymm5, %ymm58807; AVX512BW-FCP-NEXT: vmovdqa {{.*#+}} xmm14 = [128,128,1,7,13,128,128,128,5,11,u,u,u,u,u,u]8808; AVX512BW-FCP-NEXT: vpshufb %xmm14, %xmm15, %xmm158809; AVX512BW-FCP-NEXT: vmovdqa64 {{.*#+}} xmm17 = [5,11,128,128,128,3,9,15,128,128,u,u,u,u,u,u]8810; AVX512BW-FCP-NEXT: vpshufb %xmm17, %xmm3, %xmm38811; AVX512BW-FCP-NEXT: vpor %xmm3, %xmm15, %xmm38812; AVX512BW-FCP-NEXT: vpblendw {{.*#+}} xmm3 = xmm3[0,1,2,3,4],xmm5[5,6,7]8813; AVX512BW-FCP-NEXT: vpblendd {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm5[4,5,6,7]8814; AVX512BW-FCP-NEXT: vpshufb %xmm14, %xmm8, %xmm58815; AVX512BW-FCP-NEXT: vpshufb %xmm17, %xmm0, %xmm08816; AVX512BW-FCP-NEXT: vpor %xmm5, %xmm0, %xmm08817; AVX512BW-FCP-NEXT: vmovdqa {{.*#+}} xmm5 = [u,u,u,u,u,128,128,128,5,11,128,128,128,3,9,15]8818; AVX512BW-FCP-NEXT: vpshufb %xmm5, %xmm16, %xmm88819; AVX512BW-FCP-NEXT: vmovdqa {{.*#+}} xmm14 = [u,u,u,u,u,3,9,15,128,128,1,7,13,128,128,128]8820; AVX512BW-FCP-NEXT: vpshufb %xmm14, %xmm1, %xmm18821; AVX512BW-FCP-NEXT: vpor %xmm1, %xmm8, %xmm18822; AVX512BW-FCP-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm18823; AVX512BW-FCP-NEXT: vinserti32x4 $2, %xmm0, %zmm1, %zmm08824; AVX512BW-FCP-NEXT: vmovdqu8 %zmm0, %zmm3 {%k1}8825; AVX512BW-FCP-NEXT: vpshufb %ymm7, %ymm4, %ymm08826; AVX512BW-FCP-NEXT: vpshufb %xmm5, %xmm11, %xmm18827; AVX512BW-FCP-NEXT: vpshufb %xmm14, %xmm6, %xmm48828; AVX512BW-FCP-NEXT: vpor %xmm1, %xmm4, %xmm18829; AVX512BW-FCP-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm18830; AVX512BW-FCP-NEXT: vmovdqu8 %ymm1, %ymm0 {%k2}8831; AVX512BW-FCP-NEXT: vinserti64x4 $1, %ymm0, %zmm0, %zmm08832; AVX512BW-FCP-NEXT: vmovdqu16 %zmm0, %zmm3 {%k2}8833; AVX512BW-FCP-NEXT: vmovdqa64 %zmm2, (%rsi)8834; AVX512BW-FCP-NEXT: vmovdqa64 %zmm9, (%rdx)8835; AVX512BW-FCP-NEXT: vmovdqa64 %zmm12, (%rcx)8836; AVX512BW-FCP-NEXT: vmovdqa64 %zmm13, (%r8)8837; AVX512BW-FCP-NEXT: vmovdqa64 %zmm10, (%r9)8838; AVX512BW-FCP-NEXT: vmovdqa64 %zmm3, (%rax)8839; AVX512BW-FCP-NEXT: vzeroupper8840; AVX512BW-FCP-NEXT: retq8841;8842; AVX512DQ-BW-LABEL: load_i8_stride6_vf64:8843; AVX512DQ-BW: # %bb.0:8844; AVX512DQ-BW-NEXT: movq {{[0-9]+}}(%rsp), %rax8845; AVX512DQ-BW-NEXT: vmovdqa 224(%rdi), %ymm08846; AVX512DQ-BW-NEXT: vmovdqa64 192(%rdi), %ymm238847; AVX512DQ-BW-NEXT: movw $18724, %r10w # imm = 0x49248848; AVX512DQ-BW-NEXT: kmovd %r10d, %k18849; AVX512DQ-BW-NEXT: vpblendmw %ymm0, %ymm23, %ymm9 {%k1}8850; AVX512DQ-BW-NEXT: vmovdqa {{.*#+}} xmm2 = [0,6,12,128,128,128,4,10,128,128,128,u,u,u,u,u]8851; AVX512DQ-BW-NEXT: vpshufb %xmm2, %xmm9, %xmm18852; AVX512DQ-BW-NEXT: vmovdqa {{.*#+}} xmm4 = [128,128,128,2,8,14,128,128,0,6,12,u,u,u,u,u]8853; AVX512DQ-BW-NEXT: vextracti128 $1, %ymm9, %xmm128854; AVX512DQ-BW-NEXT: vpshufb %xmm4, %xmm12, %xmm38855; AVX512DQ-BW-NEXT: vpor %xmm1, %xmm3, %xmm58856; AVX512DQ-BW-NEXT: vmovdqa (%rdi), %ymm108857; AVX512DQ-BW-NEXT: vmovdqa 32(%rdi), %ymm38858; AVX512DQ-BW-NEXT: vmovdqa 64(%rdi), %ymm68859; AVX512DQ-BW-NEXT: vmovdqa64 128(%rdi), %ymm268860; AVX512DQ-BW-NEXT: vmovdqa 160(%rdi), %ymm18861; AVX512DQ-BW-NEXT: vpblendmw %ymm26, %ymm1, %ymm15 {%k1}8862; AVX512DQ-BW-NEXT: vextracti32x4 $1, %ymm15, %xmm168863; AVX512DQ-BW-NEXT: vmovdqa64 {{.*#+}} xmm17 = [u,u,u,u,u,u,128,128,0,6,12,128,128,128,4,10]8864; AVX512DQ-BW-NEXT: vpshufb %xmm17, %xmm16, %xmm118865; AVX512DQ-BW-NEXT: vmovdqa64 {{.*#+}} xmm18 = [u,u,u,u,u,u,4,10,128,128,128,2,8,14,128,128]8866; AVX512DQ-BW-NEXT: vpshufb %xmm18, %xmm15, %xmm138867; AVX512DQ-BW-NEXT: vpor %xmm11, %xmm13, %xmm118868; AVX512DQ-BW-NEXT: vinserti128 $1, %xmm11, %ymm0, %ymm118869; AVX512DQ-BW-NEXT: vinserti32x4 $2, %xmm5, %zmm11, %zmm118870; AVX512DQ-BW-NEXT: vperm2i128 {{.*#+}} ymm5 = ymm6[2,3],mem[2,3]8871; AVX512DQ-BW-NEXT: vinserti128 $1, 96(%rdi), %ymm6, %ymm138872; AVX512DQ-BW-NEXT: movw $-28124, %r10w # imm = 0x92248873; AVX512DQ-BW-NEXT: kmovd %r10d, %k48874; AVX512DQ-BW-NEXT: vpblendmw %ymm5, %ymm13, %ymm19 {%k4}8875; AVX512DQ-BW-NEXT: vpblendmw %ymm3, %ymm10, %ymm20 {%k1}8876; AVX512DQ-BW-NEXT: vpshufb %xmm2, %xmm20, %xmm28877; AVX512DQ-BW-NEXT: vextracti32x4 $1, %ymm20, %xmm218878; AVX512DQ-BW-NEXT: vpshufb %xmm4, %xmm21, %xmm48879; AVX512DQ-BW-NEXT: vpor %xmm2, %xmm4, %xmm28880; AVX512DQ-BW-NEXT: vpbroadcastq {{.*#+}} ymm6 = [0,6,12,2,8,14,4,10,0,6,12,2,8,14,4,10,0,6,12,2,8,14,4,10,0,6,12,2,8,14,4,10]8881; AVX512DQ-BW-NEXT: movl $4192256, %r10d # imm = 0x3FF8008882; AVX512DQ-BW-NEXT: kmovd %r10d, %k28883; AVX512DQ-BW-NEXT: vpshufb %ymm6, %ymm19, %ymm2 {%k2}8884; AVX512DQ-BW-NEXT: vmovdqu16 %zmm11, %zmm2 {%k2}8885; AVX512DQ-BW-NEXT: vmovdqa 256(%rdi), %ymm118886; AVX512DQ-BW-NEXT: vperm2i128 {{.*#+}} ymm4 = ymm11[2,3],mem[2,3]8887; AVX512DQ-BW-NEXT: vinserti128 $1, 288(%rdi), %ymm11, %ymm148888; AVX512DQ-BW-NEXT: vpblendmw %ymm4, %ymm14, %ymm22 {%k4}8889; AVX512DQ-BW-NEXT: vpshufb %ymm6, %ymm22, %ymm78890; AVX512DQ-BW-NEXT: vmovdqa 320(%rdi), %ymm118891; AVX512DQ-BW-NEXT: vmovdqa 352(%rdi), %ymm68892; AVX512DQ-BW-NEXT: vpblendmw %ymm11, %ymm6, %ymm24 {%k1}8893; AVX512DQ-BW-NEXT: vextracti32x4 $1, %ymm24, %xmm258894; AVX512DQ-BW-NEXT: vpshufb %xmm17, %xmm25, %xmm178895; AVX512DQ-BW-NEXT: vpshufb %xmm18, %xmm24, %xmm188896; AVX512DQ-BW-NEXT: vporq %xmm17, %xmm18, %xmm178897; AVX512DQ-BW-NEXT: vinserti32x4 $1, %xmm17, %ymm0, %ymm88898; AVX512DQ-BW-NEXT: vpblendw {{.*#+}} ymm8 = ymm7[0,1,2],ymm8[3,4,5,6,7],ymm7[8,9,10],ymm8[11,12,13,14,15]8899; AVX512DQ-BW-NEXT: vpblendd {{.*#+}} ymm7 = ymm7[0,1,2,3],ymm8[4,5,6,7]8900; AVX512DQ-BW-NEXT: vinserti64x4 $1, %ymm7, %zmm0, %zmm78901; AVX512DQ-BW-NEXT: movabsq $-8796093022208, %rdi # imm = 0xFFFFF800000000008902; AVX512DQ-BW-NEXT: kmovq %rdi, %k38903; AVX512DQ-BW-NEXT: vmovdqu8 %zmm7, %zmm2 {%k3}8904; AVX512DQ-BW-NEXT: vmovdqa {{.*#+}} xmm7 = [1,7,13,128,128,128,5,11,128,128,128,u,u,u,u,u]8905; AVX512DQ-BW-NEXT: vpshufb %xmm7, %xmm9, %xmm88906; AVX512DQ-BW-NEXT: vmovdqa {{.*#+}} xmm9 = [128,128,128,3,9,15,128,128,1,7,13,u,u,u,u,u]8907; AVX512DQ-BW-NEXT: vpshufb %xmm9, %xmm12, %xmm128908; AVX512DQ-BW-NEXT: vpor %xmm8, %xmm12, %xmm88909; AVX512DQ-BW-NEXT: vmovdqa {{.*#+}} xmm12 = [u,u,u,u,u,u,128,128,1,7,13,128,128,128,5,11]8910; AVX512DQ-BW-NEXT: vpshufb %xmm12, %xmm16, %xmm168911; AVX512DQ-BW-NEXT: vmovdqa64 {{.*#+}} xmm17 = [u,u,u,u,u,u,5,11,128,128,128,3,9,15,128,128]8912; AVX512DQ-BW-NEXT: vpshufb %xmm17, %xmm15, %xmm158913; AVX512DQ-BW-NEXT: vporq %xmm16, %xmm15, %xmm158914; AVX512DQ-BW-NEXT: vinserti128 $1, %xmm15, %ymm0, %ymm158915; AVX512DQ-BW-NEXT: vinserti32x4 $2, %xmm8, %zmm15, %zmm88916; AVX512DQ-BW-NEXT: vpshufb %xmm7, %xmm20, %xmm78917; AVX512DQ-BW-NEXT: vpshufb %xmm9, %xmm21, %xmm98918; AVX512DQ-BW-NEXT: vpor %xmm7, %xmm9, %xmm98919; AVX512DQ-BW-NEXT: vpbroadcastq {{.*#+}} ymm7 = [1,7,13,3,9,15,5,11,1,7,13,3,9,15,5,11,1,7,13,3,9,15,5,11,1,7,13,3,9,15,5,11]8920; AVX512DQ-BW-NEXT: vpshufb %ymm7, %ymm19, %ymm9 {%k2}8921; AVX512DQ-BW-NEXT: vmovdqu16 %zmm8, %zmm9 {%k2}8922; AVX512DQ-BW-NEXT: vpshufb %ymm7, %ymm22, %ymm78923; AVX512DQ-BW-NEXT: vpshufb %xmm12, %xmm25, %xmm88924; AVX512DQ-BW-NEXT: vpshufb %xmm17, %xmm24, %xmm128925; AVX512DQ-BW-NEXT: vpor %xmm8, %xmm12, %xmm88926; AVX512DQ-BW-NEXT: vinserti128 $1, %xmm8, %ymm0, %ymm88927; AVX512DQ-BW-NEXT: vpblendw {{.*#+}} ymm8 = ymm7[0,1,2],ymm8[3,4,5,6,7],ymm7[8,9,10],ymm8[11,12,13,14,15]8928; AVX512DQ-BW-NEXT: vpblendd {{.*#+}} ymm7 = ymm7[0,1,2,3],ymm8[4,5,6,7]8929; AVX512DQ-BW-NEXT: vinserti64x4 $1, %ymm7, %zmm0, %zmm78930; AVX512DQ-BW-NEXT: vmovdqu8 %zmm7, %zmm9 {%k3}8931; AVX512DQ-BW-NEXT: vpblendmw %ymm13, %ymm5, %ymm15 {%k4}8932; AVX512DQ-BW-NEXT: vmovdqa {{.*#+}} xmm7 = [128,128,128,4,10,128,128,128,2,8,14,u,u,u,u,u]8933; AVX512DQ-BW-NEXT: movw $9362, %di # imm = 0x24928934; AVX512DQ-BW-NEXT: kmovd %edi, %k28935; AVX512DQ-BW-NEXT: vpblendmw %ymm10, %ymm3, %ymm8 {%k2}8936; AVX512DQ-BW-NEXT: vextracti32x4 $1, %ymm8, %xmm168937; AVX512DQ-BW-NEXT: vpshufb %xmm7, %xmm16, %xmm128938; AVX512DQ-BW-NEXT: vmovdqa64 {{.*#+}} xmm17 = [2,8,14,128,128,0,6,12,128,128,128,u,u,u,u,u]8939; AVX512DQ-BW-NEXT: vpshufb %xmm17, %xmm8, %xmm188940; AVX512DQ-BW-NEXT: vporq %xmm12, %xmm18, %xmm188941; AVX512DQ-BW-NEXT: vpbroadcastq {{.*#+}} ymm19 = [2,8,14,4,10,0,6,12,2,8,14,4,10,0,6,12,2,8,14,4,10,0,6,12,2,8,14,4,10,0,6,12]8942; AVX512DQ-BW-NEXT: movl $2095104, %edi # imm = 0x1FF8008943; AVX512DQ-BW-NEXT: kmovd %edi, %k58944; AVX512DQ-BW-NEXT: vpshufb %ymm19, %ymm15, %ymm18 {%k5}8945; AVX512DQ-BW-NEXT: vpblendmw %ymm23, %ymm0, %ymm20 {%k2}8946; AVX512DQ-BW-NEXT: vextracti32x4 $1, %ymm20, %xmm218947; AVX512DQ-BW-NEXT: vpshufb %xmm7, %xmm21, %xmm78948; AVX512DQ-BW-NEXT: vpshufb %xmm17, %xmm20, %xmm128949; AVX512DQ-BW-NEXT: vpor %xmm7, %xmm12, %xmm78950; AVX512DQ-BW-NEXT: vpblendmw %ymm1, %ymm26, %ymm17 {%k1}8951; AVX512DQ-BW-NEXT: vmovdqa64 {{.*#+}} xmm22 = [u,u,u,u,u,0,6,12,128,128,128,4,10,128,128,128]8952; AVX512DQ-BW-NEXT: vpshufb %xmm22, %xmm17, %xmm128953; AVX512DQ-BW-NEXT: vextracti32x4 $1, %ymm17, %xmm248954; AVX512DQ-BW-NEXT: vmovdqa64 {{.*#+}} xmm25 = [u,u,u,u,u,128,128,128,2,8,14,128,128,0,6,12]8955; AVX512DQ-BW-NEXT: vpshufb %xmm25, %xmm24, %xmm278956; AVX512DQ-BW-NEXT: vporq %xmm12, %xmm27, %xmm128957; AVX512DQ-BW-NEXT: vinserti128 $1, %xmm12, %ymm0, %ymm128958; AVX512DQ-BW-NEXT: vinserti32x4 $2, %xmm7, %zmm12, %zmm128959; AVX512DQ-BW-NEXT: movl $2097151, %edi # imm = 0x1FFFFF8960; AVX512DQ-BW-NEXT: kmovq %rdi, %k68961; AVX512DQ-BW-NEXT: vmovdqu8 %zmm18, %zmm12 {%k6}8962; AVX512DQ-BW-NEXT: vpblendmw %ymm14, %ymm4, %ymm7 {%k4}8963; AVX512DQ-BW-NEXT: vpblendmw %ymm6, %ymm11, %ymm18 {%k1}8964; AVX512DQ-BW-NEXT: vpshufb %xmm22, %xmm18, %xmm228965; AVX512DQ-BW-NEXT: vextracti32x4 $1, %ymm18, %xmm278966; AVX512DQ-BW-NEXT: vpshufb %xmm25, %xmm27, %xmm258967; AVX512DQ-BW-NEXT: vporq %xmm22, %xmm25, %xmm228968; AVX512DQ-BW-NEXT: vinserti32x4 $1, %xmm22, %ymm0, %ymm228969; AVX512DQ-BW-NEXT: vpshufb %ymm19, %ymm7, %ymm22 {%k5}8970; AVX512DQ-BW-NEXT: vinserti64x4 $1, %ymm22, %zmm0, %zmm198971; AVX512DQ-BW-NEXT: vmovdqu8 %zmm19, %zmm12 {%k3}8972; AVX512DQ-BW-NEXT: movw $9289, %di # imm = 0x24498973; AVX512DQ-BW-NEXT: kmovd %edi, %k48974; AVX512DQ-BW-NEXT: vmovdqu16 %ymm14, %ymm4 {%k4}8975; AVX512DQ-BW-NEXT: vmovdqu16 %ymm13, %ymm5 {%k4}8976; AVX512DQ-BW-NEXT: vmovdqa {{.*#+}} xmm13 = [128,128,128,5,11,128,128,128,3,9,15,u,u,u,u,u]8977; AVX512DQ-BW-NEXT: vpshufb %xmm13, %xmm16, %xmm148978; AVX512DQ-BW-NEXT: vmovdqa64 {{.*#+}} xmm16 = [3,9,15,128,128,1,7,13,128,128,128,u,u,u,u,u]8979; AVX512DQ-BW-NEXT: vpshufb %xmm16, %xmm8, %xmm88980; AVX512DQ-BW-NEXT: vpor %xmm14, %xmm8, %xmm88981; AVX512DQ-BW-NEXT: vpbroadcastq {{.*#+}} ymm14 = [3,9,15,5,11,1,7,13,3,9,15,5,11,1,7,13,3,9,15,5,11,1,7,13,3,9,15,5,11,1,7,13]8982; AVX512DQ-BW-NEXT: vpshufb %ymm14, %ymm15, %ymm8 {%k5}8983; AVX512DQ-BW-NEXT: vpshufb %xmm13, %xmm21, %xmm138984; AVX512DQ-BW-NEXT: vpshufb %xmm16, %xmm20, %xmm158985; AVX512DQ-BW-NEXT: vpor %xmm13, %xmm15, %xmm138986; AVX512DQ-BW-NEXT: vmovdqa {{.*#+}} xmm15 = [u,u,u,u,u,1,7,13,128,128,128,5,11,128,128,128]8987; AVX512DQ-BW-NEXT: vpshufb %xmm15, %xmm17, %xmm168988; AVX512DQ-BW-NEXT: vmovdqa64 {{.*#+}} xmm17 = [u,u,u,u,u,128,128,128,3,9,15,128,128,1,7,13]8989; AVX512DQ-BW-NEXT: vpshufb %xmm17, %xmm24, %xmm198990; AVX512DQ-BW-NEXT: vporq %xmm16, %xmm19, %xmm168991; AVX512DQ-BW-NEXT: vinserti32x4 $1, %xmm16, %ymm0, %ymm168992; AVX512DQ-BW-NEXT: vinserti32x4 $2, %xmm13, %zmm16, %zmm138993; AVX512DQ-BW-NEXT: vmovdqu8 %zmm8, %zmm13 {%k6}8994; AVX512DQ-BW-NEXT: vpshufb %xmm15, %xmm18, %xmm88995; AVX512DQ-BW-NEXT: vpshufb %xmm17, %xmm27, %xmm158996; AVX512DQ-BW-NEXT: vpor %xmm8, %xmm15, %xmm88997; AVX512DQ-BW-NEXT: vinserti128 $1, %xmm8, %ymm0, %ymm88998; AVX512DQ-BW-NEXT: vpshufb %ymm14, %ymm7, %ymm8 {%k5}8999; AVX512DQ-BW-NEXT: vinserti64x4 $1, %ymm8, %zmm0, %zmm79000; AVX512DQ-BW-NEXT: vmovdqu8 %zmm7, %zmm13 {%k3}9001; AVX512DQ-BW-NEXT: vpbroadcastq {{.*#+}} ymm7 = [4,10,0,6,12,2,8,14,4,10,0,6,12,2,8,14,4,10,0,6,12,2,8,14,4,10,0,6,12,2,8,14]9002; AVX512DQ-BW-NEXT: vpshufb %ymm7, %ymm5, %ymm89003; AVX512DQ-BW-NEXT: vmovdqa {{.*#+}} xmm14 = [128,128,0,6,12,128,128,128,4,10,u,u,u,u,u,u]9004; AVX512DQ-BW-NEXT: vmovdqu16 %ymm10, %ymm3 {%k1}9005; AVX512DQ-BW-NEXT: vextracti128 $1, %ymm3, %xmm159006; AVX512DQ-BW-NEXT: vpshufb %xmm14, %xmm15, %xmm109007; AVX512DQ-BW-NEXT: vmovdqa64 {{.*#+}} xmm16 = [4,10,128,128,128,2,8,14,128,128,u,u,u,u,u,u]9008; AVX512DQ-BW-NEXT: vpshufb %xmm16, %xmm3, %xmm179009; AVX512DQ-BW-NEXT: vporq %xmm10, %xmm17, %xmm109010; AVX512DQ-BW-NEXT: vpblendw {{.*#+}} xmm10 = xmm10[0,1,2,3,4],xmm8[5,6,7]9011; AVX512DQ-BW-NEXT: vpblendd {{.*#+}} ymm10 = ymm10[0,1,2,3],ymm8[4,5,6,7]9012; AVX512DQ-BW-NEXT: vmovdqu16 %ymm23, %ymm0 {%k1}9013; AVX512DQ-BW-NEXT: vextracti128 $1, %ymm0, %xmm89014; AVX512DQ-BW-NEXT: vpshufb %xmm14, %xmm8, %xmm149015; AVX512DQ-BW-NEXT: vpshufb %xmm16, %xmm0, %xmm169016; AVX512DQ-BW-NEXT: vporq %xmm14, %xmm16, %xmm149017; AVX512DQ-BW-NEXT: vmovdqu16 %ymm26, %ymm1 {%k2}9018; AVX512DQ-BW-NEXT: vextracti32x4 $1, %ymm1, %xmm169019; AVX512DQ-BW-NEXT: vmovdqa64 {{.*#+}} xmm17 = [u,u,u,u,u,128,128,128,4,10,128,128,128,2,8,14]9020; AVX512DQ-BW-NEXT: vpshufb %xmm17, %xmm16, %xmm189021; AVX512DQ-BW-NEXT: vmovdqa64 {{.*#+}} xmm19 = [u,u,u,u,u,2,8,14,128,128,0,6,12,128,128,128]9022; AVX512DQ-BW-NEXT: vpshufb %xmm19, %xmm1, %xmm209023; AVX512DQ-BW-NEXT: vporq %xmm18, %xmm20, %xmm189024; AVX512DQ-BW-NEXT: vinserti32x4 $1, %xmm18, %ymm0, %ymm189025; AVX512DQ-BW-NEXT: vinserti32x4 $2, %xmm14, %zmm18, %zmm149026; AVX512DQ-BW-NEXT: movabsq $4398044413952, %rdi # imm = 0x3FFFFE000009027; AVX512DQ-BW-NEXT: kmovq %rdi, %k19028; AVX512DQ-BW-NEXT: vmovdqu8 %zmm14, %zmm10 {%k1}9029; AVX512DQ-BW-NEXT: vpshufb %ymm7, %ymm4, %ymm79030; AVX512DQ-BW-NEXT: vmovdqu16 %ymm11, %ymm6 {%k2}9031; AVX512DQ-BW-NEXT: vextracti128 $1, %ymm6, %xmm119032; AVX512DQ-BW-NEXT: vpshufb %xmm17, %xmm11, %xmm149033; AVX512DQ-BW-NEXT: vpshufb %xmm19, %xmm6, %xmm179034; AVX512DQ-BW-NEXT: vporq %xmm14, %xmm17, %xmm149035; AVX512DQ-BW-NEXT: vinserti128 $1, %xmm14, %ymm0, %ymm149036; AVX512DQ-BW-NEXT: movl $-2097152, %edi # imm = 0xFFE000009037; AVX512DQ-BW-NEXT: kmovd %edi, %k29038; AVX512DQ-BW-NEXT: vmovdqu8 %ymm14, %ymm7 {%k2}9039; AVX512DQ-BW-NEXT: vinserti64x4 $1, %ymm7, %zmm0, %zmm79040; AVX512DQ-BW-NEXT: vmovdqu16 %zmm7, %zmm10 {%k2}9041; AVX512DQ-BW-NEXT: vpbroadcastq {{.*#+}} ymm7 = [5,11,1,7,13,3,9,15,5,11,1,7,13,3,9,15,5,11,1,7,13,3,9,15,5,11,1,7,13,3,9,15]9042; AVX512DQ-BW-NEXT: vpshufb %ymm7, %ymm5, %ymm59043; AVX512DQ-BW-NEXT: vmovdqa {{.*#+}} xmm14 = [128,128,1,7,13,128,128,128,5,11,u,u,u,u,u,u]9044; AVX512DQ-BW-NEXT: vpshufb %xmm14, %xmm15, %xmm159045; AVX512DQ-BW-NEXT: vmovdqa64 {{.*#+}} xmm17 = [5,11,128,128,128,3,9,15,128,128,u,u,u,u,u,u]9046; AVX512DQ-BW-NEXT: vpshufb %xmm17, %xmm3, %xmm39047; AVX512DQ-BW-NEXT: vpor %xmm3, %xmm15, %xmm39048; AVX512DQ-BW-NEXT: vpblendw {{.*#+}} xmm3 = xmm3[0,1,2,3,4],xmm5[5,6,7]9049; AVX512DQ-BW-NEXT: vpblendd {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm5[4,5,6,7]9050; AVX512DQ-BW-NEXT: vpshufb %xmm14, %xmm8, %xmm59051; AVX512DQ-BW-NEXT: vpshufb %xmm17, %xmm0, %xmm09052; AVX512DQ-BW-NEXT: vpor %xmm5, %xmm0, %xmm09053; AVX512DQ-BW-NEXT: vmovdqa {{.*#+}} xmm5 = [u,u,u,u,u,128,128,128,5,11,128,128,128,3,9,15]9054; AVX512DQ-BW-NEXT: vpshufb %xmm5, %xmm16, %xmm89055; AVX512DQ-BW-NEXT: vmovdqa {{.*#+}} xmm14 = [u,u,u,u,u,3,9,15,128,128,1,7,13,128,128,128]9056; AVX512DQ-BW-NEXT: vpshufb %xmm14, %xmm1, %xmm19057; AVX512DQ-BW-NEXT: vpor %xmm1, %xmm8, %xmm19058; AVX512DQ-BW-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm19059; AVX512DQ-BW-NEXT: vinserti32x4 $2, %xmm0, %zmm1, %zmm09060; AVX512DQ-BW-NEXT: vmovdqu8 %zmm0, %zmm3 {%k1}9061; AVX512DQ-BW-NEXT: vpshufb %ymm7, %ymm4, %ymm09062; AVX512DQ-BW-NEXT: vpshufb %xmm5, %xmm11, %xmm19063; AVX512DQ-BW-NEXT: vpshufb %xmm14, %xmm6, %xmm49064; AVX512DQ-BW-NEXT: vpor %xmm1, %xmm4, %xmm19065; AVX512DQ-BW-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm19066; AVX512DQ-BW-NEXT: vmovdqu8 %ymm1, %ymm0 {%k2}9067; AVX512DQ-BW-NEXT: vinserti64x4 $1, %ymm0, %zmm0, %zmm09068; AVX512DQ-BW-NEXT: vmovdqu16 %zmm0, %zmm3 {%k2}9069; AVX512DQ-BW-NEXT: vmovdqa64 %zmm2, (%rsi)9070; AVX512DQ-BW-NEXT: vmovdqa64 %zmm9, (%rdx)9071; AVX512DQ-BW-NEXT: vmovdqa64 %zmm12, (%rcx)9072; AVX512DQ-BW-NEXT: vmovdqa64 %zmm13, (%r8)9073; AVX512DQ-BW-NEXT: vmovdqa64 %zmm10, (%r9)9074; AVX512DQ-BW-NEXT: vmovdqa64 %zmm3, (%rax)9075; AVX512DQ-BW-NEXT: vzeroupper9076; AVX512DQ-BW-NEXT: retq9077;9078; AVX512DQ-BW-FCP-LABEL: load_i8_stride6_vf64:9079; AVX512DQ-BW-FCP: # %bb.0:9080; AVX512DQ-BW-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax9081; AVX512DQ-BW-FCP-NEXT: vmovdqa 224(%rdi), %ymm09082; AVX512DQ-BW-FCP-NEXT: vmovdqa64 192(%rdi), %ymm239083; AVX512DQ-BW-FCP-NEXT: movw $18724, %r10w # imm = 0x49249084; AVX512DQ-BW-FCP-NEXT: kmovd %r10d, %k19085; AVX512DQ-BW-FCP-NEXT: vpblendmw %ymm0, %ymm23, %ymm9 {%k1}9086; AVX512DQ-BW-FCP-NEXT: vmovdqa {{.*#+}} xmm2 = [0,6,12,128,128,128,4,10,128,128,128,u,u,u,u,u]9087; AVX512DQ-BW-FCP-NEXT: vpshufb %xmm2, %xmm9, %xmm19088; AVX512DQ-BW-FCP-NEXT: vmovdqa {{.*#+}} xmm4 = [128,128,128,2,8,14,128,128,0,6,12,u,u,u,u,u]9089; AVX512DQ-BW-FCP-NEXT: vextracti128 $1, %ymm9, %xmm129090; AVX512DQ-BW-FCP-NEXT: vpshufb %xmm4, %xmm12, %xmm39091; AVX512DQ-BW-FCP-NEXT: vpor %xmm1, %xmm3, %xmm59092; AVX512DQ-BW-FCP-NEXT: vmovdqa (%rdi), %ymm109093; AVX512DQ-BW-FCP-NEXT: vmovdqa 32(%rdi), %ymm39094; AVX512DQ-BW-FCP-NEXT: vmovdqa 64(%rdi), %ymm69095; AVX512DQ-BW-FCP-NEXT: vmovdqa64 128(%rdi), %ymm269096; AVX512DQ-BW-FCP-NEXT: vmovdqa 160(%rdi), %ymm19097; AVX512DQ-BW-FCP-NEXT: vpblendmw %ymm26, %ymm1, %ymm15 {%k1}9098; AVX512DQ-BW-FCP-NEXT: vextracti32x4 $1, %ymm15, %xmm169099; AVX512DQ-BW-FCP-NEXT: vmovdqa64 {{.*#+}} xmm17 = [u,u,u,u,u,u,128,128,0,6,12,128,128,128,4,10]9100; AVX512DQ-BW-FCP-NEXT: vpshufb %xmm17, %xmm16, %xmm119101; AVX512DQ-BW-FCP-NEXT: vmovdqa64 {{.*#+}} xmm18 = [u,u,u,u,u,u,4,10,128,128,128,2,8,14,128,128]9102; AVX512DQ-BW-FCP-NEXT: vpshufb %xmm18, %xmm15, %xmm139103; AVX512DQ-BW-FCP-NEXT: vpor %xmm11, %xmm13, %xmm119104; AVX512DQ-BW-FCP-NEXT: vinserti128 $1, %xmm11, %ymm0, %ymm119105; AVX512DQ-BW-FCP-NEXT: vinserti32x4 $2, %xmm5, %zmm11, %zmm119106; AVX512DQ-BW-FCP-NEXT: vperm2i128 {{.*#+}} ymm5 = ymm6[2,3],mem[2,3]9107; AVX512DQ-BW-FCP-NEXT: vinserti128 $1, 96(%rdi), %ymm6, %ymm139108; AVX512DQ-BW-FCP-NEXT: movw $-28124, %r10w # imm = 0x92249109; AVX512DQ-BW-FCP-NEXT: kmovd %r10d, %k49110; AVX512DQ-BW-FCP-NEXT: vpblendmw %ymm5, %ymm13, %ymm19 {%k4}9111; AVX512DQ-BW-FCP-NEXT: vpblendmw %ymm3, %ymm10, %ymm20 {%k1}9112; AVX512DQ-BW-FCP-NEXT: vpshufb %xmm2, %xmm20, %xmm29113; AVX512DQ-BW-FCP-NEXT: vextracti32x4 $1, %ymm20, %xmm219114; AVX512DQ-BW-FCP-NEXT: vpshufb %xmm4, %xmm21, %xmm49115; AVX512DQ-BW-FCP-NEXT: vpor %xmm2, %xmm4, %xmm29116; AVX512DQ-BW-FCP-NEXT: vpbroadcastq {{.*#+}} ymm6 = [0,6,12,2,8,14,4,10,0,6,12,2,8,14,4,10,0,6,12,2,8,14,4,10,0,6,12,2,8,14,4,10]9117; AVX512DQ-BW-FCP-NEXT: movl $4192256, %r10d # imm = 0x3FF8009118; AVX512DQ-BW-FCP-NEXT: kmovd %r10d, %k29119; AVX512DQ-BW-FCP-NEXT: vpshufb %ymm6, %ymm19, %ymm2 {%k2}9120; AVX512DQ-BW-FCP-NEXT: vmovdqu16 %zmm11, %zmm2 {%k2}9121; AVX512DQ-BW-FCP-NEXT: vmovdqa 256(%rdi), %ymm119122; AVX512DQ-BW-FCP-NEXT: vperm2i128 {{.*#+}} ymm4 = ymm11[2,3],mem[2,3]9123; AVX512DQ-BW-FCP-NEXT: vinserti128 $1, 288(%rdi), %ymm11, %ymm149124; AVX512DQ-BW-FCP-NEXT: vpblendmw %ymm4, %ymm14, %ymm22 {%k4}9125; AVX512DQ-BW-FCP-NEXT: vpshufb %ymm6, %ymm22, %ymm79126; AVX512DQ-BW-FCP-NEXT: vmovdqa 320(%rdi), %ymm119127; AVX512DQ-BW-FCP-NEXT: vmovdqa 352(%rdi), %ymm69128; AVX512DQ-BW-FCP-NEXT: vpblendmw %ymm11, %ymm6, %ymm24 {%k1}9129; AVX512DQ-BW-FCP-NEXT: vextracti32x4 $1, %ymm24, %xmm259130; AVX512DQ-BW-FCP-NEXT: vpshufb %xmm17, %xmm25, %xmm179131; AVX512DQ-BW-FCP-NEXT: vpshufb %xmm18, %xmm24, %xmm189132; AVX512DQ-BW-FCP-NEXT: vporq %xmm17, %xmm18, %xmm179133; AVX512DQ-BW-FCP-NEXT: vinserti32x4 $1, %xmm17, %ymm0, %ymm89134; AVX512DQ-BW-FCP-NEXT: vpblendw {{.*#+}} ymm8 = ymm7[0,1,2],ymm8[3,4,5,6,7],ymm7[8,9,10],ymm8[11,12,13,14,15]9135; AVX512DQ-BW-FCP-NEXT: vpblendd {{.*#+}} ymm7 = ymm7[0,1,2,3],ymm8[4,5,6,7]9136; AVX512DQ-BW-FCP-NEXT: vinserti64x4 $1, %ymm7, %zmm0, %zmm79137; AVX512DQ-BW-FCP-NEXT: movabsq $-8796093022208, %rdi # imm = 0xFFFFF800000000009138; AVX512DQ-BW-FCP-NEXT: kmovq %rdi, %k39139; AVX512DQ-BW-FCP-NEXT: vmovdqu8 %zmm7, %zmm2 {%k3}9140; AVX512DQ-BW-FCP-NEXT: vmovdqa {{.*#+}} xmm7 = [1,7,13,128,128,128,5,11,128,128,128,u,u,u,u,u]9141; AVX512DQ-BW-FCP-NEXT: vpshufb %xmm7, %xmm9, %xmm89142; AVX512DQ-BW-FCP-NEXT: vmovdqa {{.*#+}} xmm9 = [128,128,128,3,9,15,128,128,1,7,13,u,u,u,u,u]9143; AVX512DQ-BW-FCP-NEXT: vpshufb %xmm9, %xmm12, %xmm129144; AVX512DQ-BW-FCP-NEXT: vpor %xmm8, %xmm12, %xmm89145; AVX512DQ-BW-FCP-NEXT: vmovdqa {{.*#+}} xmm12 = [u,u,u,u,u,u,128,128,1,7,13,128,128,128,5,11]9146; AVX512DQ-BW-FCP-NEXT: vpshufb %xmm12, %xmm16, %xmm169147; AVX512DQ-BW-FCP-NEXT: vmovdqa64 {{.*#+}} xmm17 = [u,u,u,u,u,u,5,11,128,128,128,3,9,15,128,128]9148; AVX512DQ-BW-FCP-NEXT: vpshufb %xmm17, %xmm15, %xmm159149; AVX512DQ-BW-FCP-NEXT: vporq %xmm16, %xmm15, %xmm159150; AVX512DQ-BW-FCP-NEXT: vinserti128 $1, %xmm15, %ymm0, %ymm159151; AVX512DQ-BW-FCP-NEXT: vinserti32x4 $2, %xmm8, %zmm15, %zmm89152; AVX512DQ-BW-FCP-NEXT: vpshufb %xmm7, %xmm20, %xmm79153; AVX512DQ-BW-FCP-NEXT: vpshufb %xmm9, %xmm21, %xmm99154; AVX512DQ-BW-FCP-NEXT: vpor %xmm7, %xmm9, %xmm99155; AVX512DQ-BW-FCP-NEXT: vpbroadcastq {{.*#+}} ymm7 = [1,7,13,3,9,15,5,11,1,7,13,3,9,15,5,11,1,7,13,3,9,15,5,11,1,7,13,3,9,15,5,11]9156; AVX512DQ-BW-FCP-NEXT: vpshufb %ymm7, %ymm19, %ymm9 {%k2}9157; AVX512DQ-BW-FCP-NEXT: vmovdqu16 %zmm8, %zmm9 {%k2}9158; AVX512DQ-BW-FCP-NEXT: vpshufb %ymm7, %ymm22, %ymm79159; AVX512DQ-BW-FCP-NEXT: vpshufb %xmm12, %xmm25, %xmm89160; AVX512DQ-BW-FCP-NEXT: vpshufb %xmm17, %xmm24, %xmm129161; AVX512DQ-BW-FCP-NEXT: vpor %xmm8, %xmm12, %xmm89162; AVX512DQ-BW-FCP-NEXT: vinserti128 $1, %xmm8, %ymm0, %ymm89163; AVX512DQ-BW-FCP-NEXT: vpblendw {{.*#+}} ymm8 = ymm7[0,1,2],ymm8[3,4,5,6,7],ymm7[8,9,10],ymm8[11,12,13,14,15]9164; AVX512DQ-BW-FCP-NEXT: vpblendd {{.*#+}} ymm7 = ymm7[0,1,2,3],ymm8[4,5,6,7]9165; AVX512DQ-BW-FCP-NEXT: vinserti64x4 $1, %ymm7, %zmm0, %zmm79166; AVX512DQ-BW-FCP-NEXT: vmovdqu8 %zmm7, %zmm9 {%k3}9167; AVX512DQ-BW-FCP-NEXT: vpblendmw %ymm13, %ymm5, %ymm15 {%k4}9168; AVX512DQ-BW-FCP-NEXT: vmovdqa {{.*#+}} xmm7 = [128,128,128,4,10,128,128,128,2,8,14,u,u,u,u,u]9169; AVX512DQ-BW-FCP-NEXT: movw $9362, %di # imm = 0x24929170; AVX512DQ-BW-FCP-NEXT: kmovd %edi, %k29171; AVX512DQ-BW-FCP-NEXT: vpblendmw %ymm10, %ymm3, %ymm8 {%k2}9172; AVX512DQ-BW-FCP-NEXT: vextracti32x4 $1, %ymm8, %xmm169173; AVX512DQ-BW-FCP-NEXT: vpshufb %xmm7, %xmm16, %xmm129174; AVX512DQ-BW-FCP-NEXT: vmovdqa64 {{.*#+}} xmm17 = [2,8,14,128,128,0,6,12,128,128,128,u,u,u,u,u]9175; AVX512DQ-BW-FCP-NEXT: vpshufb %xmm17, %xmm8, %xmm189176; AVX512DQ-BW-FCP-NEXT: vporq %xmm12, %xmm18, %xmm189177; AVX512DQ-BW-FCP-NEXT: vpbroadcastq {{.*#+}} ymm19 = [2,8,14,4,10,0,6,12,2,8,14,4,10,0,6,12,2,8,14,4,10,0,6,12,2,8,14,4,10,0,6,12]9178; AVX512DQ-BW-FCP-NEXT: movl $2095104, %edi # imm = 0x1FF8009179; AVX512DQ-BW-FCP-NEXT: kmovd %edi, %k59180; AVX512DQ-BW-FCP-NEXT: vpshufb %ymm19, %ymm15, %ymm18 {%k5}9181; AVX512DQ-BW-FCP-NEXT: vpblendmw %ymm23, %ymm0, %ymm20 {%k2}9182; AVX512DQ-BW-FCP-NEXT: vextracti32x4 $1, %ymm20, %xmm219183; AVX512DQ-BW-FCP-NEXT: vpshufb %xmm7, %xmm21, %xmm79184; AVX512DQ-BW-FCP-NEXT: vpshufb %xmm17, %xmm20, %xmm129185; AVX512DQ-BW-FCP-NEXT: vpor %xmm7, %xmm12, %xmm79186; AVX512DQ-BW-FCP-NEXT: vpblendmw %ymm1, %ymm26, %ymm17 {%k1}9187; AVX512DQ-BW-FCP-NEXT: vmovdqa64 {{.*#+}} xmm22 = [u,u,u,u,u,0,6,12,128,128,128,4,10,128,128,128]9188; AVX512DQ-BW-FCP-NEXT: vpshufb %xmm22, %xmm17, %xmm129189; AVX512DQ-BW-FCP-NEXT: vextracti32x4 $1, %ymm17, %xmm249190; AVX512DQ-BW-FCP-NEXT: vmovdqa64 {{.*#+}} xmm25 = [u,u,u,u,u,128,128,128,2,8,14,128,128,0,6,12]9191; AVX512DQ-BW-FCP-NEXT: vpshufb %xmm25, %xmm24, %xmm279192; AVX512DQ-BW-FCP-NEXT: vporq %xmm12, %xmm27, %xmm129193; AVX512DQ-BW-FCP-NEXT: vinserti128 $1, %xmm12, %ymm0, %ymm129194; AVX512DQ-BW-FCP-NEXT: vinserti32x4 $2, %xmm7, %zmm12, %zmm129195; AVX512DQ-BW-FCP-NEXT: movl $2097151, %edi # imm = 0x1FFFFF9196; AVX512DQ-BW-FCP-NEXT: kmovq %rdi, %k69197; AVX512DQ-BW-FCP-NEXT: vmovdqu8 %zmm18, %zmm12 {%k6}9198; AVX512DQ-BW-FCP-NEXT: vpblendmw %ymm14, %ymm4, %ymm7 {%k4}9199; AVX512DQ-BW-FCP-NEXT: vpblendmw %ymm6, %ymm11, %ymm18 {%k1}9200; AVX512DQ-BW-FCP-NEXT: vpshufb %xmm22, %xmm18, %xmm229201; AVX512DQ-BW-FCP-NEXT: vextracti32x4 $1, %ymm18, %xmm279202; AVX512DQ-BW-FCP-NEXT: vpshufb %xmm25, %xmm27, %xmm259203; AVX512DQ-BW-FCP-NEXT: vporq %xmm22, %xmm25, %xmm229204; AVX512DQ-BW-FCP-NEXT: vinserti32x4 $1, %xmm22, %ymm0, %ymm229205; AVX512DQ-BW-FCP-NEXT: vpshufb %ymm19, %ymm7, %ymm22 {%k5}9206; AVX512DQ-BW-FCP-NEXT: vinserti64x4 $1, %ymm22, %zmm0, %zmm199207; AVX512DQ-BW-FCP-NEXT: vmovdqu8 %zmm19, %zmm12 {%k3}9208; AVX512DQ-BW-FCP-NEXT: movw $9289, %di # imm = 0x24499209; AVX512DQ-BW-FCP-NEXT: kmovd %edi, %k49210; AVX512DQ-BW-FCP-NEXT: vmovdqu16 %ymm14, %ymm4 {%k4}9211; AVX512DQ-BW-FCP-NEXT: vmovdqu16 %ymm13, %ymm5 {%k4}9212; AVX512DQ-BW-FCP-NEXT: vmovdqa {{.*#+}} xmm13 = [128,128,128,5,11,128,128,128,3,9,15,u,u,u,u,u]9213; AVX512DQ-BW-FCP-NEXT: vpshufb %xmm13, %xmm16, %xmm149214; AVX512DQ-BW-FCP-NEXT: vmovdqa64 {{.*#+}} xmm16 = [3,9,15,128,128,1,7,13,128,128,128,u,u,u,u,u]9215; AVX512DQ-BW-FCP-NEXT: vpshufb %xmm16, %xmm8, %xmm89216; AVX512DQ-BW-FCP-NEXT: vpor %xmm14, %xmm8, %xmm89217; AVX512DQ-BW-FCP-NEXT: vpbroadcastq {{.*#+}} ymm14 = [3,9,15,5,11,1,7,13,3,9,15,5,11,1,7,13,3,9,15,5,11,1,7,13,3,9,15,5,11,1,7,13]9218; AVX512DQ-BW-FCP-NEXT: vpshufb %ymm14, %ymm15, %ymm8 {%k5}9219; AVX512DQ-BW-FCP-NEXT: vpshufb %xmm13, %xmm21, %xmm139220; AVX512DQ-BW-FCP-NEXT: vpshufb %xmm16, %xmm20, %xmm159221; AVX512DQ-BW-FCP-NEXT: vpor %xmm13, %xmm15, %xmm139222; AVX512DQ-BW-FCP-NEXT: vmovdqa {{.*#+}} xmm15 = [u,u,u,u,u,1,7,13,128,128,128,5,11,128,128,128]9223; AVX512DQ-BW-FCP-NEXT: vpshufb %xmm15, %xmm17, %xmm169224; AVX512DQ-BW-FCP-NEXT: vmovdqa64 {{.*#+}} xmm17 = [u,u,u,u,u,128,128,128,3,9,15,128,128,1,7,13]9225; AVX512DQ-BW-FCP-NEXT: vpshufb %xmm17, %xmm24, %xmm199226; AVX512DQ-BW-FCP-NEXT: vporq %xmm16, %xmm19, %xmm169227; AVX512DQ-BW-FCP-NEXT: vinserti32x4 $1, %xmm16, %ymm0, %ymm169228; AVX512DQ-BW-FCP-NEXT: vinserti32x4 $2, %xmm13, %zmm16, %zmm139229; AVX512DQ-BW-FCP-NEXT: vmovdqu8 %zmm8, %zmm13 {%k6}9230; AVX512DQ-BW-FCP-NEXT: vpshufb %xmm15, %xmm18, %xmm89231; AVX512DQ-BW-FCP-NEXT: vpshufb %xmm17, %xmm27, %xmm159232; AVX512DQ-BW-FCP-NEXT: vpor %xmm8, %xmm15, %xmm89233; AVX512DQ-BW-FCP-NEXT: vinserti128 $1, %xmm8, %ymm0, %ymm89234; AVX512DQ-BW-FCP-NEXT: vpshufb %ymm14, %ymm7, %ymm8 {%k5}9235; AVX512DQ-BW-FCP-NEXT: vinserti64x4 $1, %ymm8, %zmm0, %zmm79236; AVX512DQ-BW-FCP-NEXT: vmovdqu8 %zmm7, %zmm13 {%k3}9237; AVX512DQ-BW-FCP-NEXT: vpbroadcastq {{.*#+}} ymm7 = [4,10,0,6,12,2,8,14,4,10,0,6,12,2,8,14,4,10,0,6,12,2,8,14,4,10,0,6,12,2,8,14]9238; AVX512DQ-BW-FCP-NEXT: vpshufb %ymm7, %ymm5, %ymm89239; AVX512DQ-BW-FCP-NEXT: vmovdqa {{.*#+}} xmm14 = [128,128,0,6,12,128,128,128,4,10,u,u,u,u,u,u]9240; AVX512DQ-BW-FCP-NEXT: vmovdqu16 %ymm10, %ymm3 {%k1}9241; AVX512DQ-BW-FCP-NEXT: vextracti128 $1, %ymm3, %xmm159242; AVX512DQ-BW-FCP-NEXT: vpshufb %xmm14, %xmm15, %xmm109243; AVX512DQ-BW-FCP-NEXT: vmovdqa64 {{.*#+}} xmm16 = [4,10,128,128,128,2,8,14,128,128,u,u,u,u,u,u]9244; AVX512DQ-BW-FCP-NEXT: vpshufb %xmm16, %xmm3, %xmm179245; AVX512DQ-BW-FCP-NEXT: vporq %xmm10, %xmm17, %xmm109246; AVX512DQ-BW-FCP-NEXT: vpblendw {{.*#+}} xmm10 = xmm10[0,1,2,3,4],xmm8[5,6,7]9247; AVX512DQ-BW-FCP-NEXT: vpblendd {{.*#+}} ymm10 = ymm10[0,1,2,3],ymm8[4,5,6,7]9248; AVX512DQ-BW-FCP-NEXT: vmovdqu16 %ymm23, %ymm0 {%k1}9249; AVX512DQ-BW-FCP-NEXT: vextracti128 $1, %ymm0, %xmm89250; AVX512DQ-BW-FCP-NEXT: vpshufb %xmm14, %xmm8, %xmm149251; AVX512DQ-BW-FCP-NEXT: vpshufb %xmm16, %xmm0, %xmm169252; AVX512DQ-BW-FCP-NEXT: vporq %xmm14, %xmm16, %xmm149253; AVX512DQ-BW-FCP-NEXT: vmovdqu16 %ymm26, %ymm1 {%k2}9254; AVX512DQ-BW-FCP-NEXT: vextracti32x4 $1, %ymm1, %xmm169255; AVX512DQ-BW-FCP-NEXT: vmovdqa64 {{.*#+}} xmm17 = [u,u,u,u,u,128,128,128,4,10,128,128,128,2,8,14]9256; AVX512DQ-BW-FCP-NEXT: vpshufb %xmm17, %xmm16, %xmm189257; AVX512DQ-BW-FCP-NEXT: vmovdqa64 {{.*#+}} xmm19 = [u,u,u,u,u,2,8,14,128,128,0,6,12,128,128,128]9258; AVX512DQ-BW-FCP-NEXT: vpshufb %xmm19, %xmm1, %xmm209259; AVX512DQ-BW-FCP-NEXT: vporq %xmm18, %xmm20, %xmm189260; AVX512DQ-BW-FCP-NEXT: vinserti32x4 $1, %xmm18, %ymm0, %ymm189261; AVX512DQ-BW-FCP-NEXT: vinserti32x4 $2, %xmm14, %zmm18, %zmm149262; AVX512DQ-BW-FCP-NEXT: movabsq $4398044413952, %rdi # imm = 0x3FFFFE000009263; AVX512DQ-BW-FCP-NEXT: kmovq %rdi, %k19264; AVX512DQ-BW-FCP-NEXT: vmovdqu8 %zmm14, %zmm10 {%k1}9265; AVX512DQ-BW-FCP-NEXT: vpshufb %ymm7, %ymm4, %ymm79266; AVX512DQ-BW-FCP-NEXT: vmovdqu16 %ymm11, %ymm6 {%k2}9267; AVX512DQ-BW-FCP-NEXT: vextracti128 $1, %ymm6, %xmm119268; AVX512DQ-BW-FCP-NEXT: vpshufb %xmm17, %xmm11, %xmm149269; AVX512DQ-BW-FCP-NEXT: vpshufb %xmm19, %xmm6, %xmm179270; AVX512DQ-BW-FCP-NEXT: vporq %xmm14, %xmm17, %xmm149271; AVX512DQ-BW-FCP-NEXT: vinserti128 $1, %xmm14, %ymm0, %ymm149272; AVX512DQ-BW-FCP-NEXT: movl $-2097152, %edi # imm = 0xFFE000009273; AVX512DQ-BW-FCP-NEXT: kmovd %edi, %k29274; AVX512DQ-BW-FCP-NEXT: vmovdqu8 %ymm14, %ymm7 {%k2}9275; AVX512DQ-BW-FCP-NEXT: vinserti64x4 $1, %ymm7, %zmm0, %zmm79276; AVX512DQ-BW-FCP-NEXT: vmovdqu16 %zmm7, %zmm10 {%k2}9277; AVX512DQ-BW-FCP-NEXT: vpbroadcastq {{.*#+}} ymm7 = [5,11,1,7,13,3,9,15,5,11,1,7,13,3,9,15,5,11,1,7,13,3,9,15,5,11,1,7,13,3,9,15]9278; AVX512DQ-BW-FCP-NEXT: vpshufb %ymm7, %ymm5, %ymm59279; AVX512DQ-BW-FCP-NEXT: vmovdqa {{.*#+}} xmm14 = [128,128,1,7,13,128,128,128,5,11,u,u,u,u,u,u]9280; AVX512DQ-BW-FCP-NEXT: vpshufb %xmm14, %xmm15, %xmm159281; AVX512DQ-BW-FCP-NEXT: vmovdqa64 {{.*#+}} xmm17 = [5,11,128,128,128,3,9,15,128,128,u,u,u,u,u,u]9282; AVX512DQ-BW-FCP-NEXT: vpshufb %xmm17, %xmm3, %xmm39283; AVX512DQ-BW-FCP-NEXT: vpor %xmm3, %xmm15, %xmm39284; AVX512DQ-BW-FCP-NEXT: vpblendw {{.*#+}} xmm3 = xmm3[0,1,2,3,4],xmm5[5,6,7]9285; AVX512DQ-BW-FCP-NEXT: vpblendd {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm5[4,5,6,7]9286; AVX512DQ-BW-FCP-NEXT: vpshufb %xmm14, %xmm8, %xmm59287; AVX512DQ-BW-FCP-NEXT: vpshufb %xmm17, %xmm0, %xmm09288; AVX512DQ-BW-FCP-NEXT: vpor %xmm5, %xmm0, %xmm09289; AVX512DQ-BW-FCP-NEXT: vmovdqa {{.*#+}} xmm5 = [u,u,u,u,u,128,128,128,5,11,128,128,128,3,9,15]9290; AVX512DQ-BW-FCP-NEXT: vpshufb %xmm5, %xmm16, %xmm89291; AVX512DQ-BW-FCP-NEXT: vmovdqa {{.*#+}} xmm14 = [u,u,u,u,u,3,9,15,128,128,1,7,13,128,128,128]9292; AVX512DQ-BW-FCP-NEXT: vpshufb %xmm14, %xmm1, %xmm19293; AVX512DQ-BW-FCP-NEXT: vpor %xmm1, %xmm8, %xmm19294; AVX512DQ-BW-FCP-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm19295; AVX512DQ-BW-FCP-NEXT: vinserti32x4 $2, %xmm0, %zmm1, %zmm09296; AVX512DQ-BW-FCP-NEXT: vmovdqu8 %zmm0, %zmm3 {%k1}9297; AVX512DQ-BW-FCP-NEXT: vpshufb %ymm7, %ymm4, %ymm09298; AVX512DQ-BW-FCP-NEXT: vpshufb %xmm5, %xmm11, %xmm19299; AVX512DQ-BW-FCP-NEXT: vpshufb %xmm14, %xmm6, %xmm49300; AVX512DQ-BW-FCP-NEXT: vpor %xmm1, %xmm4, %xmm19301; AVX512DQ-BW-FCP-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm19302; AVX512DQ-BW-FCP-NEXT: vmovdqu8 %ymm1, %ymm0 {%k2}9303; AVX512DQ-BW-FCP-NEXT: vinserti64x4 $1, %ymm0, %zmm0, %zmm09304; AVX512DQ-BW-FCP-NEXT: vmovdqu16 %zmm0, %zmm3 {%k2}9305; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm2, (%rsi)9306; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm9, (%rdx)9307; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm12, (%rcx)9308; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm13, (%r8)9309; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm10, (%r9)9310; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm3, (%rax)9311; AVX512DQ-BW-FCP-NEXT: vzeroupper9312; AVX512DQ-BW-FCP-NEXT: retq9313 %wide.vec = load <384 x i8>, ptr %in.vec, align 649314 %strided.vec0 = shufflevector <384 x i8> %wide.vec, <384 x i8> poison, <64 x i32> <i32 0, i32 6, i32 12, i32 18, i32 24, i32 30, i32 36, i32 42, i32 48, i32 54, i32 60, i32 66, i32 72, i32 78, i32 84, i32 90, i32 96, i32 102, i32 108, i32 114, i32 120, i32 126, i32 132, i32 138, i32 144, i32 150, i32 156, i32 162, i32 168, i32 174, i32 180, i32 186, i32 192, i32 198, i32 204, i32 210, i32 216, i32 222, i32 228, i32 234, i32 240, i32 246, i32 252, i32 258, i32 264, i32 270, i32 276, i32 282, i32 288, i32 294, i32 300, i32 306, i32 312, i32 318, i32 324, i32 330, i32 336, i32 342, i32 348, i32 354, i32 360, i32 366, i32 372, i32 378>9315 %strided.vec1 = shufflevector <384 x i8> %wide.vec, <384 x i8> poison, <64 x i32> <i32 1, i32 7, i32 13, i32 19, i32 25, i32 31, i32 37, i32 43, i32 49, i32 55, i32 61, i32 67, i32 73, i32 79, i32 85, i32 91, i32 97, i32 103, i32 109, i32 115, i32 121, i32 127, i32 133, i32 139, i32 145, i32 151, i32 157, i32 163, i32 169, i32 175, i32 181, i32 187, i32 193, i32 199, i32 205, i32 211, i32 217, i32 223, i32 229, i32 235, i32 241, i32 247, i32 253, i32 259, i32 265, i32 271, i32 277, i32 283, i32 289, i32 295, i32 301, i32 307, i32 313, i32 319, i32 325, i32 331, i32 337, i32 343, i32 349, i32 355, i32 361, i32 367, i32 373, i32 379>9316 %strided.vec2 = shufflevector <384 x i8> %wide.vec, <384 x i8> poison, <64 x i32> <i32 2, i32 8, i32 14, i32 20, i32 26, i32 32, i32 38, i32 44, i32 50, i32 56, i32 62, i32 68, i32 74, i32 80, i32 86, i32 92, i32 98, i32 104, i32 110, i32 116, i32 122, i32 128, i32 134, i32 140, i32 146, i32 152, i32 158, i32 164, i32 170, i32 176, i32 182, i32 188, i32 194, i32 200, i32 206, i32 212, i32 218, i32 224, i32 230, i32 236, i32 242, i32 248, i32 254, i32 260, i32 266, i32 272, i32 278, i32 284, i32 290, i32 296, i32 302, i32 308, i32 314, i32 320, i32 326, i32 332, i32 338, i32 344, i32 350, i32 356, i32 362, i32 368, i32 374, i32 380>9317 %strided.vec3 = shufflevector <384 x i8> %wide.vec, <384 x i8> poison, <64 x i32> <i32 3, i32 9, i32 15, i32 21, i32 27, i32 33, i32 39, i32 45, i32 51, i32 57, i32 63, i32 69, i32 75, i32 81, i32 87, i32 93, i32 99, i32 105, i32 111, i32 117, i32 123, i32 129, i32 135, i32 141, i32 147, i32 153, i32 159, i32 165, i32 171, i32 177, i32 183, i32 189, i32 195, i32 201, i32 207, i32 213, i32 219, i32 225, i32 231, i32 237, i32 243, i32 249, i32 255, i32 261, i32 267, i32 273, i32 279, i32 285, i32 291, i32 297, i32 303, i32 309, i32 315, i32 321, i32 327, i32 333, i32 339, i32 345, i32 351, i32 357, i32 363, i32 369, i32 375, i32 381>9318 %strided.vec4 = shufflevector <384 x i8> %wide.vec, <384 x i8> poison, <64 x i32> <i32 4, i32 10, i32 16, i32 22, i32 28, i32 34, i32 40, i32 46, i32 52, i32 58, i32 64, i32 70, i32 76, i32 82, i32 88, i32 94, i32 100, i32 106, i32 112, i32 118, i32 124, i32 130, i32 136, i32 142, i32 148, i32 154, i32 160, i32 166, i32 172, i32 178, i32 184, i32 190, i32 196, i32 202, i32 208, i32 214, i32 220, i32 226, i32 232, i32 238, i32 244, i32 250, i32 256, i32 262, i32 268, i32 274, i32 280, i32 286, i32 292, i32 298, i32 304, i32 310, i32 316, i32 322, i32 328, i32 334, i32 340, i32 346, i32 352, i32 358, i32 364, i32 370, i32 376, i32 382>9319 %strided.vec5 = shufflevector <384 x i8> %wide.vec, <384 x i8> poison, <64 x i32> <i32 5, i32 11, i32 17, i32 23, i32 29, i32 35, i32 41, i32 47, i32 53, i32 59, i32 65, i32 71, i32 77, i32 83, i32 89, i32 95, i32 101, i32 107, i32 113, i32 119, i32 125, i32 131, i32 137, i32 143, i32 149, i32 155, i32 161, i32 167, i32 173, i32 179, i32 185, i32 191, i32 197, i32 203, i32 209, i32 215, i32 221, i32 227, i32 233, i32 239, i32 245, i32 251, i32 257, i32 263, i32 269, i32 275, i32 281, i32 287, i32 293, i32 299, i32 305, i32 311, i32 317, i32 323, i32 329, i32 335, i32 341, i32 347, i32 353, i32 359, i32 365, i32 371, i32 377, i32 383>9320 store <64 x i8> %strided.vec0, ptr %out.vec0, align 649321 store <64 x i8> %strided.vec1, ptr %out.vec1, align 649322 store <64 x i8> %strided.vec2, ptr %out.vec2, align 649323 store <64 x i8> %strided.vec3, ptr %out.vec3, align 649324 store <64 x i8> %strided.vec4, ptr %out.vec4, align 649325 store <64 x i8> %strided.vec5, ptr %out.vec5, align 649326 ret void9327}9328