13411 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_i16_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_i16_stride6_vf2:20; SSE: # %bb.0:21; SSE-NEXT: movq {{[0-9]+}}(%rsp), %rax22; SSE-NEXT: movdqa (%rdi), %xmm023; SSE-NEXT: movdqa 16(%rdi), %xmm124; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm0[0,3,2,3]25; SSE-NEXT: pshuflw {{.*#+}} xmm3 = xmm2[0,2,2,3,4,5,6,7]26; SSE-NEXT: pshuflw {{.*#+}} xmm2 = xmm2[1,3,2,3,4,5,6,7]27; SSE-NEXT: pshufd {{.*#+}} xmm4 = xmm0[1,1,1,1]28; SSE-NEXT: punpcklwd {{.*#+}} xmm4 = xmm4[0],xmm1[0],xmm4[1],xmm1[1],xmm4[2],xmm1[2],xmm4[3],xmm1[3]29; SSE-NEXT: movdqa %xmm0, %xmm530; SSE-NEXT: punpcklwd {{.*#+}} xmm5 = xmm5[0],xmm1[0],xmm5[1],xmm1[1],xmm5[2],xmm1[2],xmm5[3],xmm1[3]31; SSE-NEXT: pshufd {{.*#+}} xmm5 = xmm5[3,1,2,3]32; SSE-NEXT: pshuflw {{.*#+}} xmm5 = xmm5[0,3,2,3,4,5,6,7]33; SSE-NEXT: pshufd {{.*#+}} xmm6 = xmm1[1,1,1,1]34; SSE-NEXT: pshufd {{.*#+}} xmm7 = xmm0[2,3,2,3]35; SSE-NEXT: punpcklwd {{.*#+}} xmm7 = xmm7[0],xmm6[0],xmm7[1],xmm6[1],xmm7[2],xmm6[2],xmm7[3],xmm6[3]36; SSE-NEXT: psrlq $48, %xmm137; SSE-NEXT: psrldq {{.*#+}} xmm0 = xmm0[10,11,12,13,14,15],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero38; SSE-NEXT: punpcklwd {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3]39; SSE-NEXT: movd %xmm3, (%rsi)40; SSE-NEXT: movd %xmm2, (%rdx)41; SSE-NEXT: movd %xmm4, (%rcx)42; SSE-NEXT: movd %xmm5, (%r8)43; SSE-NEXT: movd %xmm7, (%r9)44; SSE-NEXT: movd %xmm0, (%rax)45; SSE-NEXT: retq46;47; AVX-LABEL: load_i16_stride6_vf2:48; AVX: # %bb.0:49; AVX-NEXT: movq {{[0-9]+}}(%rsp), %rax50; AVX-NEXT: vmovdqa (%rdi), %xmm051; AVX-NEXT: vmovdqa 16(%rdi), %xmm152; AVX-NEXT: vpshufd {{.*#+}} xmm2 = xmm0[0,3,2,3]53; AVX-NEXT: vpshuflw {{.*#+}} xmm3 = xmm2[0,2,2,3,4,5,6,7]54; AVX-NEXT: vpshuflw {{.*#+}} xmm2 = xmm2[1,3,2,3,4,5,6,7]55; AVX-NEXT: vpshufd {{.*#+}} xmm4 = xmm0[1,1,1,1]56; AVX-NEXT: vpunpcklwd {{.*#+}} xmm4 = xmm4[0],xmm1[0],xmm4[1],xmm1[1],xmm4[2],xmm1[2],xmm4[3],xmm1[3]57; AVX-NEXT: vpunpcklwd {{.*#+}} xmm5 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3]58; AVX-NEXT: vpshufd {{.*#+}} xmm5 = xmm5[3,1,2,3]59; AVX-NEXT: vpshuflw {{.*#+}} xmm5 = xmm5[0,3,2,3,4,5,6,7]60; AVX-NEXT: vpshufd {{.*#+}} xmm6 = xmm1[1,1,1,1]61; AVX-NEXT: vpshufd {{.*#+}} xmm7 = xmm0[2,3,2,3]62; AVX-NEXT: vpunpcklwd {{.*#+}} xmm6 = xmm7[0],xmm6[0],xmm7[1],xmm6[1],xmm7[2],xmm6[2],xmm7[3],xmm6[3]63; AVX-NEXT: vpsrlq $48, %xmm1, %xmm164; AVX-NEXT: vpsrldq {{.*#+}} xmm0 = xmm0[10,11,12,13,14,15],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero65; AVX-NEXT: vpunpcklwd {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3]66; AVX-NEXT: vmovd %xmm3, (%rsi)67; AVX-NEXT: vmovd %xmm2, (%rdx)68; AVX-NEXT: vmovd %xmm4, (%rcx)69; AVX-NEXT: vmovd %xmm5, (%r8)70; AVX-NEXT: vmovd %xmm6, (%r9)71; AVX-NEXT: vmovd %xmm0, (%rax)72; AVX-NEXT: retq73;74; AVX2-LABEL: load_i16_stride6_vf2:75; AVX2: # %bb.0:76; AVX2-NEXT: movq {{[0-9]+}}(%rsp), %rax77; AVX2-NEXT: vmovdqa (%rdi), %xmm078; AVX2-NEXT: vmovdqa 16(%rdi), %xmm179; AVX2-NEXT: vpshufd {{.*#+}} xmm2 = xmm0[0,3,2,3]80; AVX2-NEXT: vpshuflw {{.*#+}} xmm3 = xmm2[0,2,2,3,4,5,6,7]81; AVX2-NEXT: vpshuflw {{.*#+}} xmm2 = xmm2[1,3,2,3,4,5,6,7]82; AVX2-NEXT: vpbroadcastw 4(%rdi), %xmm483; AVX2-NEXT: vpunpcklwd {{.*#+}} xmm4 = xmm4[0],xmm1[0],xmm4[1],xmm1[1],xmm4[2],xmm1[2],xmm4[3],xmm1[3]84; AVX2-NEXT: vpunpcklwd {{.*#+}} xmm5 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3]85; AVX2-NEXT: vpshufd {{.*#+}} xmm5 = xmm5[3,1,2,3]86; AVX2-NEXT: vpshuflw {{.*#+}} xmm5 = xmm5[0,3,2,3,4,5,6,7]87; AVX2-NEXT: vpbroadcastw 20(%rdi), %xmm688; AVX2-NEXT: vpbroadcastw 8(%rdi), %xmm789; AVX2-NEXT: vpunpcklwd {{.*#+}} xmm6 = xmm7[0],xmm6[0],xmm7[1],xmm6[1],xmm7[2],xmm6[2],xmm7[3],xmm6[3]90; AVX2-NEXT: vpsrlq $48, %xmm1, %xmm191; AVX2-NEXT: vpsrldq {{.*#+}} xmm0 = xmm0[10,11,12,13,14,15],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero92; AVX2-NEXT: vpunpcklwd {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3]93; AVX2-NEXT: vmovd %xmm3, (%rsi)94; AVX2-NEXT: vmovd %xmm2, (%rdx)95; AVX2-NEXT: vmovd %xmm4, (%rcx)96; AVX2-NEXT: vmovd %xmm5, (%r8)97; AVX2-NEXT: vmovd %xmm6, (%r9)98; AVX2-NEXT: vmovd %xmm0, (%rax)99; AVX2-NEXT: retq100;101; AVX2-FP-LABEL: load_i16_stride6_vf2:102; AVX2-FP: # %bb.0:103; AVX2-FP-NEXT: movq {{[0-9]+}}(%rsp), %rax104; AVX2-FP-NEXT: vmovdqa (%rdi), %xmm0105; AVX2-FP-NEXT: vmovdqa 16(%rdi), %xmm1106; AVX2-FP-NEXT: vpshufd {{.*#+}} xmm2 = xmm0[0,3,2,3]107; AVX2-FP-NEXT: vpshuflw {{.*#+}} xmm3 = xmm2[0,2,2,3,4,5,6,7]108; AVX2-FP-NEXT: vpshuflw {{.*#+}} xmm2 = xmm2[1,3,2,3,4,5,6,7]109; AVX2-FP-NEXT: vpbroadcastw 4(%rdi), %xmm4110; AVX2-FP-NEXT: vpunpcklwd {{.*#+}} xmm4 = xmm4[0],xmm1[0],xmm4[1],xmm1[1],xmm4[2],xmm1[2],xmm4[3],xmm1[3]111; AVX2-FP-NEXT: vpunpcklwd {{.*#+}} xmm5 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3]112; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm5 = xmm5[12,13,6,7,u,u,u,u,u,u,u,u,u,u,u,u]113; AVX2-FP-NEXT: vpbroadcastw 20(%rdi), %xmm6114; AVX2-FP-NEXT: vpbroadcastw 8(%rdi), %xmm7115; AVX2-FP-NEXT: vpunpcklwd {{.*#+}} xmm6 = xmm7[0],xmm6[0],xmm7[1],xmm6[1],xmm7[2],xmm6[2],xmm7[3],xmm6[3]116; AVX2-FP-NEXT: vpsrlq $48, %xmm1, %xmm1117; AVX2-FP-NEXT: vpsrldq {{.*#+}} xmm0 = xmm0[10,11,12,13,14,15],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero118; AVX2-FP-NEXT: vpunpcklwd {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3]119; AVX2-FP-NEXT: vmovd %xmm3, (%rsi)120; AVX2-FP-NEXT: vmovd %xmm2, (%rdx)121; AVX2-FP-NEXT: vmovd %xmm4, (%rcx)122; AVX2-FP-NEXT: vmovd %xmm5, (%r8)123; AVX2-FP-NEXT: vmovd %xmm6, (%r9)124; AVX2-FP-NEXT: vmovd %xmm0, (%rax)125; AVX2-FP-NEXT: retq126;127; AVX2-FCP-LABEL: load_i16_stride6_vf2:128; AVX2-FCP: # %bb.0:129; AVX2-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax130; AVX2-FCP-NEXT: vmovdqa (%rdi), %xmm0131; AVX2-FCP-NEXT: vmovdqa 16(%rdi), %xmm1132; AVX2-FCP-NEXT: vpshufd {{.*#+}} xmm2 = xmm0[0,3,2,3]133; AVX2-FCP-NEXT: vpshuflw {{.*#+}} xmm3 = xmm2[0,2,2,3,4,5,6,7]134; AVX2-FCP-NEXT: vpshuflw {{.*#+}} xmm2 = xmm2[1,3,2,3,4,5,6,7]135; AVX2-FCP-NEXT: vpbroadcastw 4(%rdi), %xmm4136; AVX2-FCP-NEXT: vpunpcklwd {{.*#+}} xmm4 = xmm4[0],xmm1[0],xmm4[1],xmm1[1],xmm4[2],xmm1[2],xmm4[3],xmm1[3]137; AVX2-FCP-NEXT: vpunpcklwd {{.*#+}} xmm5 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3]138; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm5 = xmm5[12,13,6,7,u,u,u,u,u,u,u,u,u,u,u,u]139; AVX2-FCP-NEXT: vpbroadcastw 20(%rdi), %xmm6140; AVX2-FCP-NEXT: vpbroadcastw 8(%rdi), %xmm7141; AVX2-FCP-NEXT: vpunpcklwd {{.*#+}} xmm6 = xmm7[0],xmm6[0],xmm7[1],xmm6[1],xmm7[2],xmm6[2],xmm7[3],xmm6[3]142; AVX2-FCP-NEXT: vpsrlq $48, %xmm1, %xmm1143; AVX2-FCP-NEXT: vpsrldq {{.*#+}} xmm0 = xmm0[10,11,12,13,14,15],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero144; AVX2-FCP-NEXT: vpunpcklwd {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3]145; AVX2-FCP-NEXT: vmovd %xmm3, (%rsi)146; AVX2-FCP-NEXT: vmovd %xmm2, (%rdx)147; AVX2-FCP-NEXT: vmovd %xmm4, (%rcx)148; AVX2-FCP-NEXT: vmovd %xmm5, (%r8)149; AVX2-FCP-NEXT: vmovd %xmm6, (%r9)150; AVX2-FCP-NEXT: vmovd %xmm0, (%rax)151; AVX2-FCP-NEXT: retq152;153; AVX512-LABEL: load_i16_stride6_vf2:154; AVX512: # %bb.0:155; AVX512-NEXT: movq {{[0-9]+}}(%rsp), %rax156; AVX512-NEXT: vmovdqa (%rdi), %xmm0157; AVX512-NEXT: vmovdqa 16(%rdi), %xmm1158; AVX512-NEXT: vpshufd {{.*#+}} xmm2 = xmm0[0,3,2,3]159; AVX512-NEXT: vpshuflw {{.*#+}} xmm3 = xmm2[0,2,2,3,4,5,6,7]160; AVX512-NEXT: vpshuflw {{.*#+}} xmm2 = xmm2[1,3,2,3,4,5,6,7]161; AVX512-NEXT: vpbroadcastw 4(%rdi), %xmm4162; AVX512-NEXT: vpunpcklwd {{.*#+}} xmm4 = xmm4[0],xmm1[0],xmm4[1],xmm1[1],xmm4[2],xmm1[2],xmm4[3],xmm1[3]163; AVX512-NEXT: vpunpcklwd {{.*#+}} xmm5 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3]164; AVX512-NEXT: vpshufd {{.*#+}} xmm5 = xmm5[3,1,2,3]165; AVX512-NEXT: vpshuflw {{.*#+}} xmm5 = xmm5[0,3,2,3,4,5,6,7]166; AVX512-NEXT: vpbroadcastw 20(%rdi), %xmm6167; AVX512-NEXT: vpbroadcastw 8(%rdi), %xmm7168; AVX512-NEXT: vpunpcklwd {{.*#+}} xmm6 = xmm7[0],xmm6[0],xmm7[1],xmm6[1],xmm7[2],xmm6[2],xmm7[3],xmm6[3]169; AVX512-NEXT: vpsrlq $48, %xmm1, %xmm1170; AVX512-NEXT: vpsrldq {{.*#+}} xmm0 = xmm0[10,11,12,13,14,15],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero171; AVX512-NEXT: vpunpcklwd {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3]172; AVX512-NEXT: vmovd %xmm3, (%rsi)173; AVX512-NEXT: vmovd %xmm2, (%rdx)174; AVX512-NEXT: vmovd %xmm4, (%rcx)175; AVX512-NEXT: vmovd %xmm5, (%r8)176; AVX512-NEXT: vmovd %xmm6, (%r9)177; AVX512-NEXT: vmovd %xmm0, (%rax)178; AVX512-NEXT: retq179;180; AVX512-FCP-LABEL: load_i16_stride6_vf2:181; AVX512-FCP: # %bb.0:182; AVX512-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax183; AVX512-FCP-NEXT: vmovdqa (%rdi), %xmm0184; AVX512-FCP-NEXT: vmovdqa 16(%rdi), %xmm1185; AVX512-FCP-NEXT: vpshufd {{.*#+}} xmm2 = xmm0[0,3,2,3]186; AVX512-FCP-NEXT: vpshuflw {{.*#+}} xmm3 = xmm2[0,2,2,3,4,5,6,7]187; AVX512-FCP-NEXT: vpshuflw {{.*#+}} xmm2 = xmm2[1,3,2,3,4,5,6,7]188; AVX512-FCP-NEXT: vpbroadcastw 4(%rdi), %xmm4189; AVX512-FCP-NEXT: vpunpcklwd {{.*#+}} xmm4 = xmm4[0],xmm1[0],xmm4[1],xmm1[1],xmm4[2],xmm1[2],xmm4[3],xmm1[3]190; AVX512-FCP-NEXT: vpunpcklwd {{.*#+}} xmm5 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3]191; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm5 = xmm5[12,13,6,7,u,u,u,u,u,u,u,u,u,u,u,u]192; AVX512-FCP-NEXT: vpbroadcastw 20(%rdi), %xmm6193; AVX512-FCP-NEXT: vpbroadcastw 8(%rdi), %xmm7194; AVX512-FCP-NEXT: vpunpcklwd {{.*#+}} xmm6 = xmm7[0],xmm6[0],xmm7[1],xmm6[1],xmm7[2],xmm6[2],xmm7[3],xmm6[3]195; AVX512-FCP-NEXT: vpsrlq $48, %xmm1, %xmm1196; AVX512-FCP-NEXT: vpsrldq {{.*#+}} xmm0 = xmm0[10,11,12,13,14,15],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero197; AVX512-FCP-NEXT: vpunpcklwd {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3]198; AVX512-FCP-NEXT: vmovd %xmm3, (%rsi)199; AVX512-FCP-NEXT: vmovd %xmm2, (%rdx)200; AVX512-FCP-NEXT: vmovd %xmm4, (%rcx)201; AVX512-FCP-NEXT: vmovd %xmm5, (%r8)202; AVX512-FCP-NEXT: vmovd %xmm6, (%r9)203; AVX512-FCP-NEXT: vmovd %xmm0, (%rax)204; AVX512-FCP-NEXT: retq205;206; AVX512DQ-LABEL: load_i16_stride6_vf2:207; AVX512DQ: # %bb.0:208; AVX512DQ-NEXT: movq {{[0-9]+}}(%rsp), %rax209; AVX512DQ-NEXT: vmovdqa (%rdi), %xmm0210; AVX512DQ-NEXT: vmovdqa 16(%rdi), %xmm1211; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm2 = xmm0[0,3,2,3]212; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm3 = xmm2[0,2,2,3,4,5,6,7]213; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm2 = xmm2[1,3,2,3,4,5,6,7]214; AVX512DQ-NEXT: vpbroadcastw 4(%rdi), %xmm4215; AVX512DQ-NEXT: vpunpcklwd {{.*#+}} xmm4 = xmm4[0],xmm1[0],xmm4[1],xmm1[1],xmm4[2],xmm1[2],xmm4[3],xmm1[3]216; AVX512DQ-NEXT: vpunpcklwd {{.*#+}} xmm5 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3]217; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm5 = xmm5[3,1,2,3]218; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm5 = xmm5[0,3,2,3,4,5,6,7]219; AVX512DQ-NEXT: vpbroadcastw 20(%rdi), %xmm6220; AVX512DQ-NEXT: vpbroadcastw 8(%rdi), %xmm7221; AVX512DQ-NEXT: vpunpcklwd {{.*#+}} xmm6 = xmm7[0],xmm6[0],xmm7[1],xmm6[1],xmm7[2],xmm6[2],xmm7[3],xmm6[3]222; AVX512DQ-NEXT: vpsrlq $48, %xmm1, %xmm1223; AVX512DQ-NEXT: vpsrldq {{.*#+}} xmm0 = xmm0[10,11,12,13,14,15],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero224; AVX512DQ-NEXT: vpunpcklwd {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3]225; AVX512DQ-NEXT: vmovd %xmm3, (%rsi)226; AVX512DQ-NEXT: vmovd %xmm2, (%rdx)227; AVX512DQ-NEXT: vmovd %xmm4, (%rcx)228; AVX512DQ-NEXT: vmovd %xmm5, (%r8)229; AVX512DQ-NEXT: vmovd %xmm6, (%r9)230; AVX512DQ-NEXT: vmovd %xmm0, (%rax)231; AVX512DQ-NEXT: retq232;233; AVX512DQ-FCP-LABEL: load_i16_stride6_vf2:234; AVX512DQ-FCP: # %bb.0:235; AVX512DQ-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax236; AVX512DQ-FCP-NEXT: vmovdqa (%rdi), %xmm0237; AVX512DQ-FCP-NEXT: vmovdqa 16(%rdi), %xmm1238; AVX512DQ-FCP-NEXT: vpshufd {{.*#+}} xmm2 = xmm0[0,3,2,3]239; AVX512DQ-FCP-NEXT: vpshuflw {{.*#+}} xmm3 = xmm2[0,2,2,3,4,5,6,7]240; AVX512DQ-FCP-NEXT: vpshuflw {{.*#+}} xmm2 = xmm2[1,3,2,3,4,5,6,7]241; AVX512DQ-FCP-NEXT: vpbroadcastw 4(%rdi), %xmm4242; AVX512DQ-FCP-NEXT: vpunpcklwd {{.*#+}} xmm4 = xmm4[0],xmm1[0],xmm4[1],xmm1[1],xmm4[2],xmm1[2],xmm4[3],xmm1[3]243; AVX512DQ-FCP-NEXT: vpunpcklwd {{.*#+}} xmm5 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3]244; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm5 = xmm5[12,13,6,7,u,u,u,u,u,u,u,u,u,u,u,u]245; AVX512DQ-FCP-NEXT: vpbroadcastw 20(%rdi), %xmm6246; AVX512DQ-FCP-NEXT: vpbroadcastw 8(%rdi), %xmm7247; AVX512DQ-FCP-NEXT: vpunpcklwd {{.*#+}} xmm6 = xmm7[0],xmm6[0],xmm7[1],xmm6[1],xmm7[2],xmm6[2],xmm7[3],xmm6[3]248; AVX512DQ-FCP-NEXT: vpsrlq $48, %xmm1, %xmm1249; AVX512DQ-FCP-NEXT: vpsrldq {{.*#+}} xmm0 = xmm0[10,11,12,13,14,15],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero250; AVX512DQ-FCP-NEXT: vpunpcklwd {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3]251; AVX512DQ-FCP-NEXT: vmovd %xmm3, (%rsi)252; AVX512DQ-FCP-NEXT: vmovd %xmm2, (%rdx)253; AVX512DQ-FCP-NEXT: vmovd %xmm4, (%rcx)254; AVX512DQ-FCP-NEXT: vmovd %xmm5, (%r8)255; AVX512DQ-FCP-NEXT: vmovd %xmm6, (%r9)256; AVX512DQ-FCP-NEXT: vmovd %xmm0, (%rax)257; AVX512DQ-FCP-NEXT: retq258;259; AVX512BW-LABEL: load_i16_stride6_vf2:260; AVX512BW: # %bb.0:261; AVX512BW-NEXT: movq {{[0-9]+}}(%rsp), %rax262; AVX512BW-NEXT: vmovdqa (%rdi), %xmm0263; AVX512BW-NEXT: vmovdqa 16(%rdi), %xmm1264; AVX512BW-NEXT: vpshufd {{.*#+}} xmm2 = xmm0[0,3,2,3]265; AVX512BW-NEXT: vpshuflw {{.*#+}} xmm3 = xmm2[0,2,2,3,4,5,6,7]266; AVX512BW-NEXT: vpshuflw {{.*#+}} xmm2 = xmm2[1,3,2,3,4,5,6,7]267; AVX512BW-NEXT: vpbroadcastw 4(%rdi), %xmm4268; AVX512BW-NEXT: vpunpcklwd {{.*#+}} xmm4 = xmm4[0],xmm1[0],xmm4[1],xmm1[1],xmm4[2],xmm1[2],xmm4[3],xmm1[3]269; AVX512BW-NEXT: vpunpcklwd {{.*#+}} xmm5 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3]270; AVX512BW-NEXT: vpshufd {{.*#+}} xmm5 = xmm5[3,1,2,3]271; AVX512BW-NEXT: vpshuflw {{.*#+}} xmm5 = xmm5[0,3,2,3,4,5,6,7]272; AVX512BW-NEXT: vpbroadcastw 20(%rdi), %xmm6273; AVX512BW-NEXT: vpbroadcastw 8(%rdi), %xmm7274; AVX512BW-NEXT: vpunpcklwd {{.*#+}} xmm6 = xmm7[0],xmm6[0],xmm7[1],xmm6[1],xmm7[2],xmm6[2],xmm7[3],xmm6[3]275; AVX512BW-NEXT: vpsrlq $48, %xmm1, %xmm1276; AVX512BW-NEXT: vpsrldq {{.*#+}} xmm0 = xmm0[10,11,12,13,14,15],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero277; AVX512BW-NEXT: vpunpcklwd {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3]278; AVX512BW-NEXT: vmovd %xmm3, (%rsi)279; AVX512BW-NEXT: vmovd %xmm2, (%rdx)280; AVX512BW-NEXT: vmovd %xmm4, (%rcx)281; AVX512BW-NEXT: vmovd %xmm5, (%r8)282; AVX512BW-NEXT: vmovd %xmm6, (%r9)283; AVX512BW-NEXT: vmovd %xmm0, (%rax)284; AVX512BW-NEXT: retq285;286; AVX512BW-FCP-LABEL: load_i16_stride6_vf2:287; AVX512BW-FCP: # %bb.0:288; AVX512BW-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax289; AVX512BW-FCP-NEXT: vmovdqa (%rdi), %xmm0290; AVX512BW-FCP-NEXT: vmovdqa 16(%rdi), %xmm1291; AVX512BW-FCP-NEXT: vpshufd {{.*#+}} xmm2 = xmm0[0,3,2,3]292; AVX512BW-FCP-NEXT: vpshuflw {{.*#+}} xmm3 = xmm2[0,2,2,3,4,5,6,7]293; AVX512BW-FCP-NEXT: vpshuflw {{.*#+}} xmm2 = xmm2[1,3,2,3,4,5,6,7]294; AVX512BW-FCP-NEXT: vpbroadcastw 4(%rdi), %xmm4295; AVX512BW-FCP-NEXT: vpunpcklwd {{.*#+}} xmm4 = xmm4[0],xmm1[0],xmm4[1],xmm1[1],xmm4[2],xmm1[2],xmm4[3],xmm1[3]296; AVX512BW-FCP-NEXT: vpunpcklwd {{.*#+}} xmm5 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3]297; AVX512BW-FCP-NEXT: vpshufb {{.*#+}} xmm5 = xmm5[12,13,6,7,u,u,u,u,u,u,u,u,u,u,u,u]298; AVX512BW-FCP-NEXT: vpbroadcastw 20(%rdi), %xmm6299; AVX512BW-FCP-NEXT: vpbroadcastw 8(%rdi), %xmm7300; AVX512BW-FCP-NEXT: vpunpcklwd {{.*#+}} xmm6 = xmm7[0],xmm6[0],xmm7[1],xmm6[1],xmm7[2],xmm6[2],xmm7[3],xmm6[3]301; AVX512BW-FCP-NEXT: vpsrlq $48, %xmm1, %xmm1302; AVX512BW-FCP-NEXT: vpsrldq {{.*#+}} xmm0 = xmm0[10,11,12,13,14,15],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero303; AVX512BW-FCP-NEXT: vpunpcklwd {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3]304; AVX512BW-FCP-NEXT: vmovd %xmm3, (%rsi)305; AVX512BW-FCP-NEXT: vmovd %xmm2, (%rdx)306; AVX512BW-FCP-NEXT: vmovd %xmm4, (%rcx)307; AVX512BW-FCP-NEXT: vmovd %xmm5, (%r8)308; AVX512BW-FCP-NEXT: vmovd %xmm6, (%r9)309; AVX512BW-FCP-NEXT: vmovd %xmm0, (%rax)310; AVX512BW-FCP-NEXT: retq311;312; AVX512DQ-BW-LABEL: load_i16_stride6_vf2:313; AVX512DQ-BW: # %bb.0:314; AVX512DQ-BW-NEXT: movq {{[0-9]+}}(%rsp), %rax315; AVX512DQ-BW-NEXT: vmovdqa (%rdi), %xmm0316; AVX512DQ-BW-NEXT: vmovdqa 16(%rdi), %xmm1317; AVX512DQ-BW-NEXT: vpshufd {{.*#+}} xmm2 = xmm0[0,3,2,3]318; AVX512DQ-BW-NEXT: vpshuflw {{.*#+}} xmm3 = xmm2[0,2,2,3,4,5,6,7]319; AVX512DQ-BW-NEXT: vpshuflw {{.*#+}} xmm2 = xmm2[1,3,2,3,4,5,6,7]320; AVX512DQ-BW-NEXT: vpbroadcastw 4(%rdi), %xmm4321; AVX512DQ-BW-NEXT: vpunpcklwd {{.*#+}} xmm4 = xmm4[0],xmm1[0],xmm4[1],xmm1[1],xmm4[2],xmm1[2],xmm4[3],xmm1[3]322; AVX512DQ-BW-NEXT: vpunpcklwd {{.*#+}} xmm5 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3]323; AVX512DQ-BW-NEXT: vpshufd {{.*#+}} xmm5 = xmm5[3,1,2,3]324; AVX512DQ-BW-NEXT: vpshuflw {{.*#+}} xmm5 = xmm5[0,3,2,3,4,5,6,7]325; AVX512DQ-BW-NEXT: vpbroadcastw 20(%rdi), %xmm6326; AVX512DQ-BW-NEXT: vpbroadcastw 8(%rdi), %xmm7327; AVX512DQ-BW-NEXT: vpunpcklwd {{.*#+}} xmm6 = xmm7[0],xmm6[0],xmm7[1],xmm6[1],xmm7[2],xmm6[2],xmm7[3],xmm6[3]328; AVX512DQ-BW-NEXT: vpsrlq $48, %xmm1, %xmm1329; AVX512DQ-BW-NEXT: vpsrldq {{.*#+}} xmm0 = xmm0[10,11,12,13,14,15],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero330; AVX512DQ-BW-NEXT: vpunpcklwd {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3]331; AVX512DQ-BW-NEXT: vmovd %xmm3, (%rsi)332; AVX512DQ-BW-NEXT: vmovd %xmm2, (%rdx)333; AVX512DQ-BW-NEXT: vmovd %xmm4, (%rcx)334; AVX512DQ-BW-NEXT: vmovd %xmm5, (%r8)335; AVX512DQ-BW-NEXT: vmovd %xmm6, (%r9)336; AVX512DQ-BW-NEXT: vmovd %xmm0, (%rax)337; AVX512DQ-BW-NEXT: retq338;339; AVX512DQ-BW-FCP-LABEL: load_i16_stride6_vf2:340; AVX512DQ-BW-FCP: # %bb.0:341; AVX512DQ-BW-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax342; AVX512DQ-BW-FCP-NEXT: vmovdqa (%rdi), %xmm0343; AVX512DQ-BW-FCP-NEXT: vmovdqa 16(%rdi), %xmm1344; AVX512DQ-BW-FCP-NEXT: vpshufd {{.*#+}} xmm2 = xmm0[0,3,2,3]345; AVX512DQ-BW-FCP-NEXT: vpshuflw {{.*#+}} xmm3 = xmm2[0,2,2,3,4,5,6,7]346; AVX512DQ-BW-FCP-NEXT: vpshuflw {{.*#+}} xmm2 = xmm2[1,3,2,3,4,5,6,7]347; AVX512DQ-BW-FCP-NEXT: vpbroadcastw 4(%rdi), %xmm4348; AVX512DQ-BW-FCP-NEXT: vpunpcklwd {{.*#+}} xmm4 = xmm4[0],xmm1[0],xmm4[1],xmm1[1],xmm4[2],xmm1[2],xmm4[3],xmm1[3]349; AVX512DQ-BW-FCP-NEXT: vpunpcklwd {{.*#+}} xmm5 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3]350; AVX512DQ-BW-FCP-NEXT: vpshufb {{.*#+}} xmm5 = xmm5[12,13,6,7,u,u,u,u,u,u,u,u,u,u,u,u]351; AVX512DQ-BW-FCP-NEXT: vpbroadcastw 20(%rdi), %xmm6352; AVX512DQ-BW-FCP-NEXT: vpbroadcastw 8(%rdi), %xmm7353; AVX512DQ-BW-FCP-NEXT: vpunpcklwd {{.*#+}} xmm6 = xmm7[0],xmm6[0],xmm7[1],xmm6[1],xmm7[2],xmm6[2],xmm7[3],xmm6[3]354; AVX512DQ-BW-FCP-NEXT: vpsrlq $48, %xmm1, %xmm1355; AVX512DQ-BW-FCP-NEXT: vpsrldq {{.*#+}} xmm0 = xmm0[10,11,12,13,14,15],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero356; AVX512DQ-BW-FCP-NEXT: vpunpcklwd {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3]357; AVX512DQ-BW-FCP-NEXT: vmovd %xmm3, (%rsi)358; AVX512DQ-BW-FCP-NEXT: vmovd %xmm2, (%rdx)359; AVX512DQ-BW-FCP-NEXT: vmovd %xmm4, (%rcx)360; AVX512DQ-BW-FCP-NEXT: vmovd %xmm5, (%r8)361; AVX512DQ-BW-FCP-NEXT: vmovd %xmm6, (%r9)362; AVX512DQ-BW-FCP-NEXT: vmovd %xmm0, (%rax)363; AVX512DQ-BW-FCP-NEXT: retq364 %wide.vec = load <12 x i16>, ptr %in.vec, align 64365 %strided.vec0 = shufflevector <12 x i16> %wide.vec, <12 x i16> poison, <2 x i32> <i32 0, i32 6>366 %strided.vec1 = shufflevector <12 x i16> %wide.vec, <12 x i16> poison, <2 x i32> <i32 1, i32 7>367 %strided.vec2 = shufflevector <12 x i16> %wide.vec, <12 x i16> poison, <2 x i32> <i32 2, i32 8>368 %strided.vec3 = shufflevector <12 x i16> %wide.vec, <12 x i16> poison, <2 x i32> <i32 3, i32 9>369 %strided.vec4 = shufflevector <12 x i16> %wide.vec, <12 x i16> poison, <2 x i32> <i32 4, i32 10>370 %strided.vec5 = shufflevector <12 x i16> %wide.vec, <12 x i16> poison, <2 x i32> <i32 5, i32 11>371 store <2 x i16> %strided.vec0, ptr %out.vec0, align 64372 store <2 x i16> %strided.vec1, ptr %out.vec1, align 64373 store <2 x i16> %strided.vec2, ptr %out.vec2, align 64374 store <2 x i16> %strided.vec3, ptr %out.vec3, align 64375 store <2 x i16> %strided.vec4, ptr %out.vec4, align 64376 store <2 x i16> %strided.vec5, ptr %out.vec5, align 64377 ret void378}379 380define void @load_i16_stride6_vf4(ptr %in.vec, ptr %out.vec0, ptr %out.vec1, ptr %out.vec2, ptr %out.vec3, ptr %out.vec4, ptr %out.vec5) nounwind {381; SSE-LABEL: load_i16_stride6_vf4:382; SSE: # %bb.0:383; SSE-NEXT: movdqa (%rdi), %xmm0384; SSE-NEXT: movdqa 16(%rdi), %xmm1385; SSE-NEXT: movdqa 32(%rdi), %xmm3386; SSE-NEXT: pshufd {{.*#+}} xmm4 = xmm0[0,1,0,3]387; SSE-NEXT: pshufhw {{.*#+}} xmm2 = xmm4[0,1,2,3,4,6,6,7]388; SSE-NEXT: punpckhdq {{.*#+}} xmm2 = xmm2[2],xmm1[2],xmm2[3],xmm1[3]389; SSE-NEXT: punpcklwd {{.*#+}} xmm2 = xmm2[0],xmm3[0],xmm2[1],xmm3[1],xmm2[2],xmm3[2],xmm2[3],xmm3[3]390; SSE-NEXT: pshuflw {{.*#+}} xmm2 = xmm2[0,2,2,3,4,5,6,7]391; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm2[0,2,2,3]392; SSE-NEXT: movq %xmm2, (%rsi)393; SSE-NEXT: movdqa {{.*#+}} xmm2 = [65535,65535,65535,0,65535,65535,65535,65535]394; SSE-NEXT: movdqa %xmm2, %xmm5395; SSE-NEXT: pandn %xmm3, %xmm5396; SSE-NEXT: movdqa %xmm1, %xmm6397; SSE-NEXT: psrld $16, %xmm6398; SSE-NEXT: pshufhw {{.*#+}} xmm4 = xmm4[0,1,2,3,5,7,6,7]399; SSE-NEXT: punpckhdq {{.*#+}} xmm4 = xmm4[2],xmm6[2],xmm4[3],xmm6[3]400; SSE-NEXT: pand %xmm2, %xmm4401; SSE-NEXT: por %xmm5, %xmm4402; SSE-NEXT: movq %xmm4, (%rdx)403; SSE-NEXT: pshufd {{.*#+}} xmm5 = xmm3[2,2,3,3]404; SSE-NEXT: pshufd {{.*#+}} xmm4 = xmm3[0,3,2,3]405; SSE-NEXT: psrldq {{.*#+}} xmm3 = xmm3[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero406; SSE-NEXT: movdqa %xmm2, %xmm6407; SSE-NEXT: pandn %xmm3, %xmm6408; SSE-NEXT: movdqa %xmm0, %xmm3409; SSE-NEXT: shufps {{.*#+}} xmm3 = xmm3[1,0],xmm1[0,0]410; SSE-NEXT: shufps {{.*#+}} xmm3 = xmm3[2,0],xmm1[2,3]411; SSE-NEXT: pshuflw {{.*#+}} xmm7 = xmm3[0,2,2,3,4,5,6,7]412; SSE-NEXT: pshufd {{.*#+}} xmm7 = xmm7[0,3,2,3]413; SSE-NEXT: pshuflw {{.*#+}} xmm7 = xmm7[1,0,2,3,4,5,6,7]414; SSE-NEXT: pand %xmm2, %xmm7415; SSE-NEXT: por %xmm6, %xmm7416; SSE-NEXT: movq {{[0-9]+}}(%rsp), %rax417; SSE-NEXT: movq %xmm7, (%rcx)418; SSE-NEXT: pshuflw {{.*#+}} xmm3 = xmm3[3,1,2,3,4,5,6,7]419; SSE-NEXT: pshufd {{.*#+}} xmm3 = xmm3[0,3,2,3]420; SSE-NEXT: pshuflw {{.*#+}} xmm3 = xmm3[0,1,3,3,4,5,6,7]421; SSE-NEXT: pand %xmm2, %xmm3422; SSE-NEXT: pandn %xmm5, %xmm2423; SSE-NEXT: por %xmm3, %xmm2424; SSE-NEXT: movq %xmm2, (%r8)425; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm1[1,1,1,1]426; SSE-NEXT: pshufd {{.*#+}} xmm3 = xmm0[2,3,2,3]427; SSE-NEXT: punpcklwd {{.*#+}} xmm3 = xmm3[0],xmm2[0],xmm3[1],xmm2[1],xmm3[2],xmm2[2],xmm3[3],xmm2[3]428; SSE-NEXT: pshuflw {{.*#+}} xmm2 = xmm4[0,2,2,3,4,5,6,7]429; SSE-NEXT: punpckldq {{.*#+}} xmm3 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]430; SSE-NEXT: movq %xmm3, (%r9)431; SSE-NEXT: psrlq $48, %xmm1432; SSE-NEXT: psrldq {{.*#+}} xmm0 = xmm0[10,11,12,13,14,15],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero433; SSE-NEXT: punpcklwd {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3]434; SSE-NEXT: pshuflw {{.*#+}} xmm1 = xmm4[1,3,2,3,4,5,6,7]435; SSE-NEXT: punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]436; SSE-NEXT: movq %xmm0, (%rax)437; SSE-NEXT: retq438;439; AVX-LABEL: load_i16_stride6_vf4:440; AVX: # %bb.0:441; AVX-NEXT: movq {{[0-9]+}}(%rsp), %rax442; AVX-NEXT: vmovdqa (%rdi), %xmm0443; AVX-NEXT: vmovdqa 16(%rdi), %xmm1444; AVX-NEXT: vmovdqa 32(%rdi), %xmm2445; AVX-NEXT: vpshufd {{.*#+}} xmm3 = xmm0[0,1,0,3]446; AVX-NEXT: vpshufhw {{.*#+}} xmm4 = xmm3[0,1,2,3,4,6,6,7]447; AVX-NEXT: vpunpckhdq {{.*#+}} xmm4 = xmm4[2],xmm1[2],xmm4[3],xmm1[3]448; AVX-NEXT: vpunpcklwd {{.*#+}} xmm4 = xmm4[0],xmm2[0],xmm4[1],xmm2[1],xmm4[2],xmm2[2],xmm4[3],xmm2[3]449; AVX-NEXT: vpshuflw {{.*#+}} xmm4 = xmm4[0,2,2,3,4,5,6,7]450; AVX-NEXT: vpshufd {{.*#+}} xmm4 = xmm4[0,2,2,3]451; AVX-NEXT: vmovq %xmm4, (%rsi)452; AVX-NEXT: vpsrld $16, %xmm1, %xmm4453; AVX-NEXT: vpshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,5,7,6,7]454; AVX-NEXT: vpunpckhdq {{.*#+}} xmm3 = xmm3[2],xmm4[2],xmm3[3],xmm4[3]455; AVX-NEXT: vpblendw {{.*#+}} xmm3 = xmm3[0,1,2],xmm2[3],xmm3[4,5,6,7]456; AVX-NEXT: vmovq %xmm3, (%rdx)457; AVX-NEXT: vpsrldq {{.*#+}} xmm3 = xmm2[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero458; AVX-NEXT: vpblendw {{.*#+}} xmm4 = xmm1[0,1],xmm0[2,3],xmm1[4,5,6,7]459; AVX-NEXT: vpshufb {{.*#+}} xmm5 = xmm4[4,5,0,1,12,13,u,u,u,u,u,u,u,u,u,u]460; AVX-NEXT: vpblendw {{.*#+}} xmm3 = xmm5[0,1,2],xmm3[3],xmm5[4,5,6,7]461; AVX-NEXT: vmovq %xmm3, (%rcx)462; AVX-NEXT: vpblendw {{.*#+}} xmm3 = xmm4[0,1,2,3],xmm2[4,5],xmm4[6,7]463; AVX-NEXT: vpshufb {{.*#+}} xmm3 = xmm3[6,7,2,3,14,15,10,11,u,u,u,u,u,u,u,u]464; AVX-NEXT: vmovq %xmm3, (%r8)465; AVX-NEXT: vpshufd {{.*#+}} xmm3 = xmm1[1,1,1,1]466; AVX-NEXT: vpshufd {{.*#+}} xmm4 = xmm0[2,3,2,3]467; AVX-NEXT: vpunpcklwd {{.*#+}} xmm3 = xmm4[0],xmm3[0],xmm4[1],xmm3[1],xmm4[2],xmm3[2],xmm4[3],xmm3[3]468; AVX-NEXT: vpshufd {{.*#+}} xmm2 = xmm2[0,3,2,3]469; AVX-NEXT: vpshuflw {{.*#+}} xmm4 = xmm2[0,2,2,3,4,5,6,7]470; AVX-NEXT: vpunpckldq {{.*#+}} xmm3 = xmm3[0],xmm4[0],xmm3[1],xmm4[1]471; AVX-NEXT: vmovq %xmm3, (%r9)472; AVX-NEXT: vpsrlq $48, %xmm1, %xmm1473; AVX-NEXT: vpsrldq {{.*#+}} xmm0 = xmm0[10,11,12,13,14,15],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero474; AVX-NEXT: vpunpcklwd {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3]475; AVX-NEXT: vpshuflw {{.*#+}} xmm1 = xmm2[1,3,2,3,4,5,6,7]476; AVX-NEXT: vpunpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]477; AVX-NEXT: vmovq %xmm0, (%rax)478; AVX-NEXT: retq479;480; AVX2-LABEL: load_i16_stride6_vf4:481; AVX2: # %bb.0:482; AVX2-NEXT: movq {{[0-9]+}}(%rsp), %rax483; AVX2-NEXT: vmovdqa (%rdi), %xmm0484; AVX2-NEXT: vmovdqa 16(%rdi), %xmm1485; AVX2-NEXT: vmovdqa 32(%rdi), %xmm2486; AVX2-NEXT: vpblendd {{.*#+}} xmm3 = xmm0[0],xmm2[1],xmm0[2,3]487; AVX2-NEXT: vpblendd {{.*#+}} xmm3 = xmm3[0,1],xmm1[2],xmm3[3]488; AVX2-NEXT: vpshufb {{.*#+}} xmm3 = xmm3[0,1,12,13,8,9,4,5,u,u,u,u,u,u,u,u]489; AVX2-NEXT: vmovq %xmm3, (%rsi)490; AVX2-NEXT: vpsrld $16, %xmm1, %xmm3491; AVX2-NEXT: vpshufd {{.*#+}} xmm4 = xmm0[0,1,0,3]492; AVX2-NEXT: vpshufhw {{.*#+}} xmm4 = xmm4[0,1,2,3,5,7,6,7]493; AVX2-NEXT: vpunpckhdq {{.*#+}} xmm3 = xmm4[2],xmm3[2],xmm4[3],xmm3[3]494; AVX2-NEXT: vpblendw {{.*#+}} xmm3 = xmm3[0,1,2],xmm2[3],xmm3[4,5,6,7]495; AVX2-NEXT: vmovq %xmm3, (%rdx)496; AVX2-NEXT: vpblendd {{.*#+}} xmm3 = xmm0[0,1],xmm2[2,3]497; AVX2-NEXT: vpblendd {{.*#+}} xmm3 = xmm1[0],xmm3[1,2],xmm1[3]498; AVX2-NEXT: vpshufb {{.*#+}} xmm4 = xmm3[4,5,0,1,12,13,8,9,u,u,u,u,u,u,u,u]499; AVX2-NEXT: vmovq %xmm4, (%rcx)500; AVX2-NEXT: vpshufb {{.*#+}} xmm3 = xmm3[6,7,2,3,14,15,10,11,u,u,u,u,u,u,u,u]501; AVX2-NEXT: vmovq %xmm3, (%r8)502; AVX2-NEXT: vpblendd {{.*#+}} xmm0 = xmm2[0,1],xmm0[2],xmm2[3]503; AVX2-NEXT: vpblendd {{.*#+}} xmm0 = xmm0[0],xmm1[1],xmm0[2,3]504; AVX2-NEXT: vpshufb {{.*#+}} xmm1 = xmm0[8,9,4,5,0,1,12,13,u,u,u,u,u,u,u,u]505; AVX2-NEXT: vmovq %xmm1, (%r9)506; AVX2-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[10,11,6,7,2,3,14,15,u,u,u,u,u,u,u,u]507; AVX2-NEXT: vmovq %xmm0, (%rax)508; AVX2-NEXT: retq509;510; AVX2-FP-LABEL: load_i16_stride6_vf4:511; AVX2-FP: # %bb.0:512; AVX2-FP-NEXT: movq {{[0-9]+}}(%rsp), %rax513; AVX2-FP-NEXT: vmovdqa (%rdi), %xmm0514; AVX2-FP-NEXT: vmovdqa 16(%rdi), %xmm1515; AVX2-FP-NEXT: vmovdqa 32(%rdi), %xmm2516; AVX2-FP-NEXT: vpblendd {{.*#+}} xmm3 = xmm0[0],xmm2[1],xmm0[2,3]517; AVX2-FP-NEXT: vpblendd {{.*#+}} xmm3 = xmm3[0,1],xmm1[2],xmm3[3]518; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm3 = xmm3[0,1,12,13,8,9,4,5,u,u,u,u,u,u,u,u]519; AVX2-FP-NEXT: vmovq %xmm3, (%rsi)520; AVX2-FP-NEXT: vpsrld $16, %xmm1, %xmm3521; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm4 = xmm0[u,u,u,u,u,u,u,u,2,3,14,15,12,13,14,15]522; AVX2-FP-NEXT: vpunpckhdq {{.*#+}} xmm3 = xmm4[2],xmm3[2],xmm4[3],xmm3[3]523; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm3 = xmm3[0,1,2],xmm2[3],xmm3[4,5,6,7]524; AVX2-FP-NEXT: vmovq %xmm3, (%rdx)525; AVX2-FP-NEXT: vpblendd {{.*#+}} xmm3 = xmm0[0,1],xmm2[2,3]526; AVX2-FP-NEXT: vpblendd {{.*#+}} xmm3 = xmm1[0],xmm3[1,2],xmm1[3]527; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm4 = xmm3[4,5,0,1,12,13,8,9,u,u,u,u,u,u,u,u]528; AVX2-FP-NEXT: vmovq %xmm4, (%rcx)529; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm3 = xmm3[6,7,2,3,14,15,10,11,u,u,u,u,u,u,u,u]530; AVX2-FP-NEXT: vmovq %xmm3, (%r8)531; AVX2-FP-NEXT: vpblendd {{.*#+}} xmm0 = xmm2[0,1],xmm0[2],xmm2[3]532; AVX2-FP-NEXT: vpblendd {{.*#+}} xmm0 = xmm0[0],xmm1[1],xmm0[2,3]533; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm1 = xmm0[8,9,4,5,0,1,12,13,u,u,u,u,u,u,u,u]534; AVX2-FP-NEXT: vmovq %xmm1, (%r9)535; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[10,11,6,7,2,3,14,15,u,u,u,u,u,u,u,u]536; AVX2-FP-NEXT: vmovq %xmm0, (%rax)537; AVX2-FP-NEXT: retq538;539; AVX2-FCP-LABEL: load_i16_stride6_vf4:540; AVX2-FCP: # %bb.0:541; AVX2-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax542; AVX2-FCP-NEXT: vmovdqa (%rdi), %xmm0543; AVX2-FCP-NEXT: vmovdqa 16(%rdi), %xmm1544; AVX2-FCP-NEXT: vmovdqa 32(%rdi), %xmm2545; AVX2-FCP-NEXT: vpblendd {{.*#+}} xmm3 = xmm0[0],xmm2[1],xmm0[2,3]546; AVX2-FCP-NEXT: vpblendd {{.*#+}} xmm3 = xmm3[0,1],xmm1[2],xmm3[3]547; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm3 = xmm3[0,1,12,13,8,9,4,5,u,u,u,u,u,u,u,u]548; AVX2-FCP-NEXT: vmovq %xmm3, (%rsi)549; AVX2-FCP-NEXT: vpsrld $16, %xmm1, %xmm3550; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm4 = xmm0[u,u,u,u,u,u,u,u,2,3,14,15,12,13,14,15]551; AVX2-FCP-NEXT: vpunpckhdq {{.*#+}} xmm3 = xmm4[2],xmm3[2],xmm4[3],xmm3[3]552; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm3 = xmm3[0,1,2],xmm2[3],xmm3[4,5,6,7]553; AVX2-FCP-NEXT: vmovq %xmm3, (%rdx)554; AVX2-FCP-NEXT: vpblendd {{.*#+}} xmm3 = xmm0[0,1],xmm2[2,3]555; AVX2-FCP-NEXT: vpblendd {{.*#+}} xmm3 = xmm1[0],xmm3[1,2],xmm1[3]556; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm4 = xmm3[4,5,0,1,12,13,8,9,u,u,u,u,u,u,u,u]557; AVX2-FCP-NEXT: vmovq %xmm4, (%rcx)558; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm3 = xmm3[6,7,2,3,14,15,10,11,u,u,u,u,u,u,u,u]559; AVX2-FCP-NEXT: vmovq %xmm3, (%r8)560; AVX2-FCP-NEXT: vpblendd {{.*#+}} xmm0 = xmm2[0,1],xmm0[2],xmm2[3]561; AVX2-FCP-NEXT: vpblendd {{.*#+}} xmm0 = xmm0[0],xmm1[1],xmm0[2,3]562; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm1 = xmm0[8,9,4,5,0,1,12,13,u,u,u,u,u,u,u,u]563; AVX2-FCP-NEXT: vmovq %xmm1, (%r9)564; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[10,11,6,7,2,3,14,15,u,u,u,u,u,u,u,u]565; AVX2-FCP-NEXT: vmovq %xmm0, (%rax)566; AVX2-FCP-NEXT: retq567;568; AVX512-LABEL: load_i16_stride6_vf4:569; AVX512: # %bb.0:570; AVX512-NEXT: movq {{[0-9]+}}(%rsp), %rax571; AVX512-NEXT: vmovdqa (%rdi), %xmm0572; AVX512-NEXT: vmovdqa 16(%rdi), %xmm1573; AVX512-NEXT: vmovdqa 32(%rdi), %xmm2574; AVX512-NEXT: vpblendd {{.*#+}} xmm3 = xmm0[0],xmm2[1],xmm0[2,3]575; AVX512-NEXT: vpblendd {{.*#+}} xmm3 = xmm3[0,1],xmm1[2],xmm3[3]576; AVX512-NEXT: vpshufb {{.*#+}} xmm3 = xmm3[0,1,12,13,8,9,4,5,u,u,u,u,u,u,u,u]577; AVX512-NEXT: vmovdqa64 (%rdi), %zmm4578; AVX512-NEXT: vmovq %xmm3, (%rsi)579; AVX512-NEXT: vpsrld $16, %xmm1, %xmm1580; AVX512-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[0,1,0,3]581; AVX512-NEXT: vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,5,7,6,7]582; AVX512-NEXT: vpunpckhdq {{.*#+}} xmm0 = xmm0[2],xmm1[2],xmm0[3],xmm1[3]583; AVX512-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2],xmm2[3],xmm0[4,5,6,7]584; AVX512-NEXT: vmovq %xmm0, (%rdx)585; AVX512-NEXT: vpmovsxbd {{.*#+}} xmm0 = [4,1,10,7]586; AVX512-NEXT: vpermd %zmm4, %zmm0, %zmm0587; AVX512-NEXT: vpshufb {{.*#+}} xmm1 = xmm0[4,5,0,1,12,13,8,9,u,u,u,u,u,u,u,u]588; AVX512-NEXT: vmovq %xmm1, (%rcx)589; AVX512-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[6,7,2,3,14,15,10,11,u,u,u,u,u,u,u,u]590; AVX512-NEXT: vmovq %xmm0, (%r8)591; AVX512-NEXT: vpmovsxbd {{.*#+}} xmm0 = [8,5,2,11]592; AVX512-NEXT: vpermd %zmm4, %zmm0, %zmm0593; AVX512-NEXT: vpshufb {{.*#+}} xmm1 = xmm0[8,9,4,5,0,1,12,13,u,u,u,u,u,u,u,u]594; AVX512-NEXT: vmovq %xmm1, (%r9)595; AVX512-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[10,11,6,7,2,3,14,15,u,u,u,u,u,u,u,u]596; AVX512-NEXT: vmovq %xmm0, (%rax)597; AVX512-NEXT: vzeroupper598; AVX512-NEXT: retq599;600; AVX512-FCP-LABEL: load_i16_stride6_vf4:601; AVX512-FCP: # %bb.0:602; AVX512-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax603; AVX512-FCP-NEXT: vmovdqa (%rdi), %xmm0604; AVX512-FCP-NEXT: vmovdqa 16(%rdi), %xmm1605; AVX512-FCP-NEXT: vmovdqa 32(%rdi), %xmm2606; AVX512-FCP-NEXT: vpblendd {{.*#+}} xmm3 = xmm0[0],xmm2[1],xmm0[2,3]607; AVX512-FCP-NEXT: vpblendd {{.*#+}} xmm3 = xmm3[0,1],xmm1[2],xmm3[3]608; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm3 = xmm3[0,1,12,13,8,9,4,5,u,u,u,u,u,u,u,u]609; AVX512-FCP-NEXT: vmovdqa64 (%rdi), %zmm4610; AVX512-FCP-NEXT: vmovq %xmm3, (%rsi)611; AVX512-FCP-NEXT: vpsrld $16, %xmm1, %xmm1612; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[u,u,u,u,u,u,u,u,2,3,14,15,12,13,14,15]613; AVX512-FCP-NEXT: vpunpckhdq {{.*#+}} xmm0 = xmm0[2],xmm1[2],xmm0[3],xmm1[3]614; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2],xmm2[3],xmm0[4,5,6,7]615; AVX512-FCP-NEXT: vmovq %xmm0, (%rdx)616; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} xmm0 = [4,1,10,7]617; AVX512-FCP-NEXT: vpermd %zmm4, %zmm0, %zmm0618; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm1 = xmm0[4,5,0,1,12,13,8,9,u,u,u,u,u,u,u,u]619; AVX512-FCP-NEXT: vmovq %xmm1, (%rcx)620; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[6,7,2,3,14,15,10,11,u,u,u,u,u,u,u,u]621; AVX512-FCP-NEXT: vmovq %xmm0, (%r8)622; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} xmm0 = [8,5,2,11]623; AVX512-FCP-NEXT: vpermd %zmm4, %zmm0, %zmm0624; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm1 = xmm0[8,9,4,5,0,1,12,13,u,u,u,u,u,u,u,u]625; AVX512-FCP-NEXT: vmovq %xmm1, (%r9)626; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[10,11,6,7,2,3,14,15,u,u,u,u,u,u,u,u]627; AVX512-FCP-NEXT: vmovq %xmm0, (%rax)628; AVX512-FCP-NEXT: vzeroupper629; AVX512-FCP-NEXT: retq630;631; AVX512DQ-LABEL: load_i16_stride6_vf4:632; AVX512DQ: # %bb.0:633; AVX512DQ-NEXT: movq {{[0-9]+}}(%rsp), %rax634; AVX512DQ-NEXT: vmovdqa (%rdi), %xmm0635; AVX512DQ-NEXT: vmovdqa 16(%rdi), %xmm1636; AVX512DQ-NEXT: vmovdqa 32(%rdi), %xmm2637; AVX512DQ-NEXT: vpblendd {{.*#+}} xmm3 = xmm0[0],xmm2[1],xmm0[2,3]638; AVX512DQ-NEXT: vpblendd {{.*#+}} xmm3 = xmm3[0,1],xmm1[2],xmm3[3]639; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm3 = xmm3[0,1,12,13,8,9,4,5,u,u,u,u,u,u,u,u]640; AVX512DQ-NEXT: vmovdqa64 (%rdi), %zmm4641; AVX512DQ-NEXT: vmovq %xmm3, (%rsi)642; AVX512DQ-NEXT: vpsrld $16, %xmm1, %xmm1643; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[0,1,0,3]644; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,5,7,6,7]645; AVX512DQ-NEXT: vpunpckhdq {{.*#+}} xmm0 = xmm0[2],xmm1[2],xmm0[3],xmm1[3]646; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2],xmm2[3],xmm0[4,5,6,7]647; AVX512DQ-NEXT: vmovq %xmm0, (%rdx)648; AVX512DQ-NEXT: vpmovsxbd {{.*#+}} xmm0 = [4,1,10,7]649; AVX512DQ-NEXT: vpermd %zmm4, %zmm0, %zmm0650; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm1 = xmm0[4,5,0,1,12,13,8,9,u,u,u,u,u,u,u,u]651; AVX512DQ-NEXT: vmovq %xmm1, (%rcx)652; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[6,7,2,3,14,15,10,11,u,u,u,u,u,u,u,u]653; AVX512DQ-NEXT: vmovq %xmm0, (%r8)654; AVX512DQ-NEXT: vpmovsxbd {{.*#+}} xmm0 = [8,5,2,11]655; AVX512DQ-NEXT: vpermd %zmm4, %zmm0, %zmm0656; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm1 = xmm0[8,9,4,5,0,1,12,13,u,u,u,u,u,u,u,u]657; AVX512DQ-NEXT: vmovq %xmm1, (%r9)658; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[10,11,6,7,2,3,14,15,u,u,u,u,u,u,u,u]659; AVX512DQ-NEXT: vmovq %xmm0, (%rax)660; AVX512DQ-NEXT: vzeroupper661; AVX512DQ-NEXT: retq662;663; AVX512DQ-FCP-LABEL: load_i16_stride6_vf4:664; AVX512DQ-FCP: # %bb.0:665; AVX512DQ-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax666; AVX512DQ-FCP-NEXT: vmovdqa (%rdi), %xmm0667; AVX512DQ-FCP-NEXT: vmovdqa 16(%rdi), %xmm1668; AVX512DQ-FCP-NEXT: vmovdqa 32(%rdi), %xmm2669; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} xmm3 = xmm0[0],xmm2[1],xmm0[2,3]670; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} xmm3 = xmm3[0,1],xmm1[2],xmm3[3]671; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm3 = xmm3[0,1,12,13,8,9,4,5,u,u,u,u,u,u,u,u]672; AVX512DQ-FCP-NEXT: vmovdqa64 (%rdi), %zmm4673; AVX512DQ-FCP-NEXT: vmovq %xmm3, (%rsi)674; AVX512DQ-FCP-NEXT: vpsrld $16, %xmm1, %xmm1675; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[u,u,u,u,u,u,u,u,2,3,14,15,12,13,14,15]676; AVX512DQ-FCP-NEXT: vpunpckhdq {{.*#+}} xmm0 = xmm0[2],xmm1[2],xmm0[3],xmm1[3]677; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2],xmm2[3],xmm0[4,5,6,7]678; AVX512DQ-FCP-NEXT: vmovq %xmm0, (%rdx)679; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} xmm0 = [4,1,10,7]680; AVX512DQ-FCP-NEXT: vpermd %zmm4, %zmm0, %zmm0681; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm1 = xmm0[4,5,0,1,12,13,8,9,u,u,u,u,u,u,u,u]682; AVX512DQ-FCP-NEXT: vmovq %xmm1, (%rcx)683; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[6,7,2,3,14,15,10,11,u,u,u,u,u,u,u,u]684; AVX512DQ-FCP-NEXT: vmovq %xmm0, (%r8)685; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} xmm0 = [8,5,2,11]686; AVX512DQ-FCP-NEXT: vpermd %zmm4, %zmm0, %zmm0687; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm1 = xmm0[8,9,4,5,0,1,12,13,u,u,u,u,u,u,u,u]688; AVX512DQ-FCP-NEXT: vmovq %xmm1, (%r9)689; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[10,11,6,7,2,3,14,15,u,u,u,u,u,u,u,u]690; AVX512DQ-FCP-NEXT: vmovq %xmm0, (%rax)691; AVX512DQ-FCP-NEXT: vzeroupper692; AVX512DQ-FCP-NEXT: retq693;694; AVX512BW-LABEL: load_i16_stride6_vf4:695; AVX512BW: # %bb.0:696; AVX512BW-NEXT: movq {{[0-9]+}}(%rsp), %rax697; AVX512BW-NEXT: vmovq {{.*#+}} xmm0 = [0,6,12,18,0,0,0,0]698; AVX512BW-NEXT: vmovdqa64 (%rdi), %zmm1699; AVX512BW-NEXT: vpermw %zmm1, %zmm0, %zmm0700; AVX512BW-NEXT: vmovq %xmm0, (%rsi)701; AVX512BW-NEXT: vmovq {{.*#+}} xmm0 = [1,7,13,19,0,0,0,0]702; AVX512BW-NEXT: vpermw %zmm1, %zmm0, %zmm0703; AVX512BW-NEXT: vmovq %xmm0, (%rdx)704; AVX512BW-NEXT: vmovq {{.*#+}} xmm0 = [2,8,14,20,0,0,0,0]705; AVX512BW-NEXT: vpermw %zmm1, %zmm0, %zmm0706; AVX512BW-NEXT: vmovq %xmm0, (%rcx)707; AVX512BW-NEXT: vmovq {{.*#+}} xmm0 = [3,9,15,21,0,0,0,0]708; AVX512BW-NEXT: vpermw %zmm1, %zmm0, %zmm0709; AVX512BW-NEXT: vmovq %xmm0, (%r8)710; AVX512BW-NEXT: vmovq {{.*#+}} xmm0 = [4,10,16,22,0,0,0,0]711; AVX512BW-NEXT: vpermw %zmm1, %zmm0, %zmm0712; AVX512BW-NEXT: vmovq %xmm0, (%r9)713; AVX512BW-NEXT: vmovq {{.*#+}} xmm0 = [5,11,17,23,0,0,0,0]714; AVX512BW-NEXT: vpermw %zmm1, %zmm0, %zmm0715; AVX512BW-NEXT: vmovq %xmm0, (%rax)716; AVX512BW-NEXT: vzeroupper717; AVX512BW-NEXT: retq718;719; AVX512BW-FCP-LABEL: load_i16_stride6_vf4:720; AVX512BW-FCP: # %bb.0:721; AVX512BW-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax722; AVX512BW-FCP-NEXT: vmovq {{.*#+}} xmm0 = [0,6,12,18,0,0,0,0]723; AVX512BW-FCP-NEXT: vmovdqa64 (%rdi), %zmm1724; AVX512BW-FCP-NEXT: vpermw %zmm1, %zmm0, %zmm0725; AVX512BW-FCP-NEXT: vmovq %xmm0, (%rsi)726; AVX512BW-FCP-NEXT: vmovq {{.*#+}} xmm0 = [1,7,13,19,0,0,0,0]727; AVX512BW-FCP-NEXT: vpermw %zmm1, %zmm0, %zmm0728; AVX512BW-FCP-NEXT: vmovq %xmm0, (%rdx)729; AVX512BW-FCP-NEXT: vmovq {{.*#+}} xmm0 = [2,8,14,20,0,0,0,0]730; AVX512BW-FCP-NEXT: vpermw %zmm1, %zmm0, %zmm0731; AVX512BW-FCP-NEXT: vmovq %xmm0, (%rcx)732; AVX512BW-FCP-NEXT: vmovq {{.*#+}} xmm0 = [3,9,15,21,0,0,0,0]733; AVX512BW-FCP-NEXT: vpermw %zmm1, %zmm0, %zmm0734; AVX512BW-FCP-NEXT: vmovq %xmm0, (%r8)735; AVX512BW-FCP-NEXT: vmovq {{.*#+}} xmm0 = [4,10,16,22,0,0,0,0]736; AVX512BW-FCP-NEXT: vpermw %zmm1, %zmm0, %zmm0737; AVX512BW-FCP-NEXT: vmovq %xmm0, (%r9)738; AVX512BW-FCP-NEXT: vmovq {{.*#+}} xmm0 = [5,11,17,23,0,0,0,0]739; AVX512BW-FCP-NEXT: vpermw %zmm1, %zmm0, %zmm0740; AVX512BW-FCP-NEXT: vmovq %xmm0, (%rax)741; AVX512BW-FCP-NEXT: vzeroupper742; AVX512BW-FCP-NEXT: retq743;744; AVX512DQ-BW-LABEL: load_i16_stride6_vf4:745; AVX512DQ-BW: # %bb.0:746; AVX512DQ-BW-NEXT: movq {{[0-9]+}}(%rsp), %rax747; AVX512DQ-BW-NEXT: vmovq {{.*#+}} xmm0 = [0,6,12,18,0,0,0,0]748; AVX512DQ-BW-NEXT: vmovdqa64 (%rdi), %zmm1749; AVX512DQ-BW-NEXT: vpermw %zmm1, %zmm0, %zmm0750; AVX512DQ-BW-NEXT: vmovq %xmm0, (%rsi)751; AVX512DQ-BW-NEXT: vmovq {{.*#+}} xmm0 = [1,7,13,19,0,0,0,0]752; AVX512DQ-BW-NEXT: vpermw %zmm1, %zmm0, %zmm0753; AVX512DQ-BW-NEXT: vmovq %xmm0, (%rdx)754; AVX512DQ-BW-NEXT: vmovq {{.*#+}} xmm0 = [2,8,14,20,0,0,0,0]755; AVX512DQ-BW-NEXT: vpermw %zmm1, %zmm0, %zmm0756; AVX512DQ-BW-NEXT: vmovq %xmm0, (%rcx)757; AVX512DQ-BW-NEXT: vmovq {{.*#+}} xmm0 = [3,9,15,21,0,0,0,0]758; AVX512DQ-BW-NEXT: vpermw %zmm1, %zmm0, %zmm0759; AVX512DQ-BW-NEXT: vmovq %xmm0, (%r8)760; AVX512DQ-BW-NEXT: vmovq {{.*#+}} xmm0 = [4,10,16,22,0,0,0,0]761; AVX512DQ-BW-NEXT: vpermw %zmm1, %zmm0, %zmm0762; AVX512DQ-BW-NEXT: vmovq %xmm0, (%r9)763; AVX512DQ-BW-NEXT: vmovq {{.*#+}} xmm0 = [5,11,17,23,0,0,0,0]764; AVX512DQ-BW-NEXT: vpermw %zmm1, %zmm0, %zmm0765; AVX512DQ-BW-NEXT: vmovq %xmm0, (%rax)766; AVX512DQ-BW-NEXT: vzeroupper767; AVX512DQ-BW-NEXT: retq768;769; AVX512DQ-BW-FCP-LABEL: load_i16_stride6_vf4:770; AVX512DQ-BW-FCP: # %bb.0:771; AVX512DQ-BW-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax772; AVX512DQ-BW-FCP-NEXT: vmovq {{.*#+}} xmm0 = [0,6,12,18,0,0,0,0]773; AVX512DQ-BW-FCP-NEXT: vmovdqa64 (%rdi), %zmm1774; AVX512DQ-BW-FCP-NEXT: vpermw %zmm1, %zmm0, %zmm0775; AVX512DQ-BW-FCP-NEXT: vmovq %xmm0, (%rsi)776; AVX512DQ-BW-FCP-NEXT: vmovq {{.*#+}} xmm0 = [1,7,13,19,0,0,0,0]777; AVX512DQ-BW-FCP-NEXT: vpermw %zmm1, %zmm0, %zmm0778; AVX512DQ-BW-FCP-NEXT: vmovq %xmm0, (%rdx)779; AVX512DQ-BW-FCP-NEXT: vmovq {{.*#+}} xmm0 = [2,8,14,20,0,0,0,0]780; AVX512DQ-BW-FCP-NEXT: vpermw %zmm1, %zmm0, %zmm0781; AVX512DQ-BW-FCP-NEXT: vmovq %xmm0, (%rcx)782; AVX512DQ-BW-FCP-NEXT: vmovq {{.*#+}} xmm0 = [3,9,15,21,0,0,0,0]783; AVX512DQ-BW-FCP-NEXT: vpermw %zmm1, %zmm0, %zmm0784; AVX512DQ-BW-FCP-NEXT: vmovq %xmm0, (%r8)785; AVX512DQ-BW-FCP-NEXT: vmovq {{.*#+}} xmm0 = [4,10,16,22,0,0,0,0]786; AVX512DQ-BW-FCP-NEXT: vpermw %zmm1, %zmm0, %zmm0787; AVX512DQ-BW-FCP-NEXT: vmovq %xmm0, (%r9)788; AVX512DQ-BW-FCP-NEXT: vmovq {{.*#+}} xmm0 = [5,11,17,23,0,0,0,0]789; AVX512DQ-BW-FCP-NEXT: vpermw %zmm1, %zmm0, %zmm0790; AVX512DQ-BW-FCP-NEXT: vmovq %xmm0, (%rax)791; AVX512DQ-BW-FCP-NEXT: vzeroupper792; AVX512DQ-BW-FCP-NEXT: retq793 %wide.vec = load <24 x i16>, ptr %in.vec, align 64794 %strided.vec0 = shufflevector <24 x i16> %wide.vec, <24 x i16> poison, <4 x i32> <i32 0, i32 6, i32 12, i32 18>795 %strided.vec1 = shufflevector <24 x i16> %wide.vec, <24 x i16> poison, <4 x i32> <i32 1, i32 7, i32 13, i32 19>796 %strided.vec2 = shufflevector <24 x i16> %wide.vec, <24 x i16> poison, <4 x i32> <i32 2, i32 8, i32 14, i32 20>797 %strided.vec3 = shufflevector <24 x i16> %wide.vec, <24 x i16> poison, <4 x i32> <i32 3, i32 9, i32 15, i32 21>798 %strided.vec4 = shufflevector <24 x i16> %wide.vec, <24 x i16> poison, <4 x i32> <i32 4, i32 10, i32 16, i32 22>799 %strided.vec5 = shufflevector <24 x i16> %wide.vec, <24 x i16> poison, <4 x i32> <i32 5, i32 11, i32 17, i32 23>800 store <4 x i16> %strided.vec0, ptr %out.vec0, align 64801 store <4 x i16> %strided.vec1, ptr %out.vec1, align 64802 store <4 x i16> %strided.vec2, ptr %out.vec2, align 64803 store <4 x i16> %strided.vec3, ptr %out.vec3, align 64804 store <4 x i16> %strided.vec4, ptr %out.vec4, align 64805 store <4 x i16> %strided.vec5, ptr %out.vec5, align 64806 ret void807}808 809define void @load_i16_stride6_vf8(ptr %in.vec, ptr %out.vec0, ptr %out.vec1, ptr %out.vec2, ptr %out.vec3, ptr %out.vec4, ptr %out.vec5) nounwind {810; SSE-LABEL: load_i16_stride6_vf8:811; SSE: # %bb.0:812; SSE-NEXT: movq {{[0-9]+}}(%rsp), %rax813; SSE-NEXT: movdqa 64(%rdi), %xmm1814; SSE-NEXT: movdqa 80(%rdi), %xmm8815; SSE-NEXT: movdqa (%rdi), %xmm3816; SSE-NEXT: movdqa 16(%rdi), %xmm5817; SSE-NEXT: movdqa 32(%rdi), %xmm6818; SSE-NEXT: movdqa 48(%rdi), %xmm4819; SSE-NEXT: pshuflw {{.*#+}} xmm2 = xmm6[0,1,1,2,4,5,6,7]820; SSE-NEXT: movdqa {{.*#+}} xmm0 = [65535,65535,65535,0,0,0,65535,65535]821; SSE-NEXT: movdqa %xmm0, %xmm9822; SSE-NEXT: pandn %xmm2, %xmm9823; SSE-NEXT: pshufd {{.*#+}} xmm7 = xmm3[0,1,0,3]824; SSE-NEXT: pshufhw {{.*#+}} xmm2 = xmm7[0,1,2,3,4,6,6,7]825; SSE-NEXT: punpckhdq {{.*#+}} xmm2 = xmm2[2],xmm5[2],xmm2[3],xmm5[3]826; SSE-NEXT: pand %xmm0, %xmm2827; SSE-NEXT: por %xmm9, %xmm2828; SSE-NEXT: movdqa %xmm1, %xmm9829; SSE-NEXT: pshufd {{.*#+}} xmm11 = xmm1[2,2,3,3]830; SSE-NEXT: punpcklwd {{.*#+}} xmm11 = xmm11[0],xmm8[0],xmm11[1],xmm8[1],xmm11[2],xmm8[2],xmm11[3],xmm8[3]831; SSE-NEXT: movdqa %xmm8, %xmm12832; SSE-NEXT: shufps {{.*#+}} xmm12 = xmm12[2,0],xmm1[3,0]833; SSE-NEXT: movaps %xmm1, %xmm10834; SSE-NEXT: shufps {{.*#+}} xmm1 = xmm1[1,0],xmm8[0,0]835; SSE-NEXT: shufps {{.*#+}} xmm1 = xmm1[2,0],xmm8[2,3]836; SSE-NEXT: pslld $16, %xmm8837; SSE-NEXT: psrldq {{.*#+}} xmm9 = xmm9[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero838; SSE-NEXT: punpcklwd {{.*#+}} xmm9 = xmm9[0],xmm8[0],xmm9[1],xmm8[1],xmm9[2],xmm8[2],xmm9[3],xmm8[3]839; SSE-NEXT: pshufd {{.*#+}} xmm8 = xmm4[0,3,2,3]840; SSE-NEXT: pshuflw {{.*#+}} xmm13 = xmm8[0,1,0,2,4,5,6,7]841; SSE-NEXT: shufps {{.*#+}} xmm9 = xmm9[3,1],xmm13[1,3]842; SSE-NEXT: shufps {{.*#+}} xmm2 = xmm2[0,1],xmm9[2,0]843; SSE-NEXT: movdqa %xmm5, %xmm9844; SSE-NEXT: psrld $16, %xmm9845; SSE-NEXT: pshufhw {{.*#+}} xmm7 = xmm7[0,1,2,3,5,7,6,7]846; SSE-NEXT: punpckhdq {{.*#+}} xmm7 = xmm7[2],xmm9[2],xmm7[3],xmm9[3]847; SSE-NEXT: pand %xmm0, %xmm7848; SSE-NEXT: pandn %xmm6, %xmm0849; SSE-NEXT: por %xmm7, %xmm0850; SSE-NEXT: pshuflw {{.*#+}} xmm7 = xmm8[0,1,1,3,4,5,6,7]851; SSE-NEXT: shufps {{.*#+}} xmm11 = xmm11[3,1],xmm7[1,3]852; SSE-NEXT: shufps {{.*#+}} xmm0 = xmm0[0,1],xmm11[2,0]853; SSE-NEXT: pshufd {{.*#+}} xmm8 = xmm4[1,1,1,1]854; SSE-NEXT: pshufd {{.*#+}} xmm9 = xmm6[2,2,3,3]855; SSE-NEXT: pshufd {{.*#+}} xmm7 = xmm6[0,1,0,3]856; SSE-NEXT: psrldq {{.*#+}} xmm6 = xmm6[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero857; SSE-NEXT: punpcklqdq {{.*#+}} xmm6 = xmm6[0],xmm8[0]858; SSE-NEXT: movdqa {{.*#+}} xmm11 = [65535,65535,65535,0,0,65535,65535,65535]859; SSE-NEXT: movdqa %xmm11, %xmm8860; SSE-NEXT: pandn %xmm6, %xmm8861; SSE-NEXT: movdqa %xmm3, %xmm13862; SSE-NEXT: shufps {{.*#+}} xmm13 = xmm13[1,0],xmm5[0,0]863; SSE-NEXT: shufps {{.*#+}} xmm13 = xmm13[2,0],xmm5[2,3]864; SSE-NEXT: pshuflw {{.*#+}} xmm6 = xmm13[0,2,2,3,4,5,6,7]865; SSE-NEXT: pshufd {{.*#+}} xmm6 = xmm6[0,3,2,3]866; SSE-NEXT: pshuflw {{.*#+}} xmm14 = xmm6[1,0,2,3,4,5,6,7]867; SSE-NEXT: pand %xmm11, %xmm14868; SSE-NEXT: por %xmm8, %xmm14869; SSE-NEXT: movdqa {{.*#+}} xmm6 = [65535,65535,65535,65535,65535,0,0,0]870; SSE-NEXT: pand %xmm6, %xmm14871; SSE-NEXT: shufps {{.*#+}} xmm10 = xmm10[0,1],xmm12[0,2]872; SSE-NEXT: pshufhw {{.*#+}} xmm8 = xmm10[0,1,2,3,4,6,6,7]873; SSE-NEXT: pshufd {{.*#+}} xmm8 = xmm8[0,1,2,0]874; SSE-NEXT: pshufhw {{.*#+}} xmm12 = xmm8[0,1,2,3,4,6,5,4]875; SSE-NEXT: movdqa %xmm6, %xmm8876; SSE-NEXT: pandn %xmm12, %xmm8877; SSE-NEXT: por %xmm14, %xmm8878; SSE-NEXT: movdqa %xmm4, %xmm12879; SSE-NEXT: psrlq $48, %xmm12880; SSE-NEXT: punpcklqdq {{.*#+}} xmm9 = xmm9[0],xmm12[0]881; SSE-NEXT: pshuflw {{.*#+}} xmm12 = xmm13[3,1,2,3,4,5,6,7]882; SSE-NEXT: pshufd {{.*#+}} xmm12 = xmm12[0,3,2,3]883; SSE-NEXT: pshuflw {{.*#+}} xmm12 = xmm12[0,1,3,3,4,5,6,7]884; SSE-NEXT: pand %xmm11, %xmm12885; SSE-NEXT: pandn %xmm9, %xmm11886; SSE-NEXT: por %xmm12, %xmm11887; SSE-NEXT: pand %xmm6, %xmm11888; SSE-NEXT: pshufhw {{.*#+}} xmm9 = xmm10[0,1,2,3,7,5,6,7]889; SSE-NEXT: pshufd {{.*#+}} xmm10 = xmm9[0,1,0,2]890; SSE-NEXT: movdqa %xmm6, %xmm9891; SSE-NEXT: pandn %xmm10, %xmm9892; SSE-NEXT: por %xmm11, %xmm9893; SSE-NEXT: pshufd {{.*#+}} xmm10 = xmm5[1,1,1,1]894; SSE-NEXT: pshufd {{.*#+}} xmm11 = xmm3[2,3,2,3]895; SSE-NEXT: punpcklwd {{.*#+}} xmm11 = xmm11[0],xmm10[0],xmm11[1],xmm10[1],xmm11[2],xmm10[2],xmm11[3],xmm10[3]896; SSE-NEXT: pshufhw {{.*#+}} xmm10 = xmm7[0,1,2,3,4,5,4,6]897; SSE-NEXT: punpckhqdq {{.*#+}} xmm10 = xmm10[1],xmm4[1]898; SSE-NEXT: movss {{.*#+}} xmm10 = xmm11[0],xmm10[1,2,3]899; SSE-NEXT: andps %xmm6, %xmm10900; SSE-NEXT: pshuflw {{.*#+}} xmm11 = xmm1[0,2,2,3,4,5,6,7]901; SSE-NEXT: pshufd {{.*#+}} xmm11 = xmm11[0,1,0,3]902; SSE-NEXT: pshufhw {{.*#+}} xmm11 = xmm11[0,1,2,3,4,5,4,6]903; SSE-NEXT: movdqa %xmm6, %xmm12904; SSE-NEXT: pandn %xmm11, %xmm12905; SSE-NEXT: por %xmm10, %xmm12906; SSE-NEXT: psrlq $48, %xmm5907; SSE-NEXT: psrldq {{.*#+}} xmm3 = xmm3[10,11,12,13,14,15],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero908; SSE-NEXT: punpcklwd {{.*#+}} xmm3 = xmm3[0],xmm5[0],xmm3[1],xmm5[1],xmm3[2],xmm5[2],xmm3[3],xmm5[3]909; SSE-NEXT: psrld $16, %xmm4910; SSE-NEXT: pshufhw {{.*#+}} xmm5 = xmm7[0,1,2,3,4,5,5,7]911; SSE-NEXT: punpckhqdq {{.*#+}} xmm5 = xmm5[1],xmm4[1]912; SSE-NEXT: movss {{.*#+}} xmm5 = xmm3[0],xmm5[1,2,3]913; SSE-NEXT: andps %xmm6, %xmm5914; SSE-NEXT: pshuflw {{.*#+}} xmm1 = xmm1[3,1,2,3,4,5,6,7]915; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[0,1,0,3]916; SSE-NEXT: pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,4,5,7]917; SSE-NEXT: pandn %xmm1, %xmm6918; SSE-NEXT: por %xmm5, %xmm6919; SSE-NEXT: movaps %xmm2, (%rsi)920; SSE-NEXT: movaps %xmm0, (%rdx)921; SSE-NEXT: movdqa %xmm8, (%rcx)922; SSE-NEXT: movdqa %xmm9, (%r8)923; SSE-NEXT: movdqa %xmm12, (%r9)924; SSE-NEXT: movdqa %xmm6, (%rax)925; SSE-NEXT: retq926;927; AVX-LABEL: load_i16_stride6_vf8:928; AVX: # %bb.0:929; AVX-NEXT: movq {{[0-9]+}}(%rsp), %rax930; AVX-NEXT: vmovdqa (%rdi), %xmm0931; AVX-NEXT: vmovdqa 16(%rdi), %xmm2932; AVX-NEXT: vmovdqa 32(%rdi), %xmm4933; AVX-NEXT: vmovdqa 48(%rdi), %xmm1934; AVX-NEXT: vpsrlq $16, %xmm4, %xmm3935; AVX-NEXT: vpshufd {{.*#+}} xmm7 = xmm1[0,3,2,3]936; AVX-NEXT: vpshuflw {{.*#+}} xmm5 = xmm7[0,1,0,2,4,5,6,7]937; AVX-NEXT: vpunpckldq {{.*#+}} xmm3 = xmm5[0],xmm3[0],xmm5[1],xmm3[1]938; AVX-NEXT: vpshufd {{.*#+}} xmm8 = xmm0[0,1,0,3]939; AVX-NEXT: vpshufhw {{.*#+}} xmm5 = xmm8[0,1,2,3,4,6,6,7]940; AVX-NEXT: vpunpckhdq {{.*#+}} xmm5 = xmm5[2],xmm2[2],xmm5[3],xmm2[3]941; AVX-NEXT: vpblendw {{.*#+}} xmm3 = xmm5[0,1,2],xmm3[3,4,5],xmm5[6,7]942; AVX-NEXT: vmovdqa 80(%rdi), %xmm5943; AVX-NEXT: vpslld $16, %xmm5, %xmm9944; AVX-NEXT: vmovdqa 64(%rdi), %xmm6945; AVX-NEXT: vpsrldq {{.*#+}} xmm10 = xmm6[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero946; AVX-NEXT: vpunpcklwd {{.*#+}} xmm9 = xmm10[0],xmm9[0],xmm10[1],xmm9[1],xmm10[2],xmm9[2],xmm10[3],xmm9[3]947; AVX-NEXT: vpblendw {{.*#+}} xmm3 = xmm3[0,1,2,3,4,5],xmm9[6,7]948; AVX-NEXT: vpshufd {{.*#+}} xmm9 = xmm4[1,1,1,1]949; AVX-NEXT: vpshuflw {{.*#+}} xmm7 = xmm7[0,1,1,3,4,5,6,7]950; AVX-NEXT: vpunpckldq {{.*#+}} xmm7 = xmm7[0],xmm9[0],xmm7[1],xmm9[1]951; AVX-NEXT: vpsrld $16, %xmm2, %xmm9952; AVX-NEXT: vpshufhw {{.*#+}} xmm8 = xmm8[0,1,2,3,5,7,6,7]953; AVX-NEXT: vpunpckhdq {{.*#+}} xmm8 = xmm8[2],xmm9[2],xmm8[3],xmm9[3]954; AVX-NEXT: vpblendw {{.*#+}} xmm7 = xmm8[0,1,2],xmm7[3,4,5],xmm8[6,7]955; AVX-NEXT: vpshufd {{.*#+}} xmm8 = xmm6[2,2,3,3]956; AVX-NEXT: vpunpcklwd {{.*#+}} xmm8 = xmm8[0],xmm5[0],xmm8[1],xmm5[1],xmm8[2],xmm5[2],xmm8[3],xmm5[3]957; AVX-NEXT: vpblendw {{.*#+}} xmm7 = xmm7[0,1,2,3,4,5],xmm8[6,7]958; AVX-NEXT: vpshufd {{.*#+}} xmm8 = xmm1[1,1,1,1]959; AVX-NEXT: vpsrldq {{.*#+}} xmm9 = xmm4[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero960; AVX-NEXT: vpunpcklqdq {{.*#+}} xmm8 = xmm9[0],xmm8[0]961; AVX-NEXT: vpblendw {{.*#+}} xmm9 = xmm2[0,1],xmm0[2,3],xmm2[4,5,6,7]962; AVX-NEXT: vpshufb {{.*#+}} xmm10 = xmm9[4,5,0,1,12,13,u,u,u,u,u,u,u,u,u,u]963; AVX-NEXT: vpblendw {{.*#+}} xmm8 = xmm10[0,1,2],xmm8[3,4],xmm10[5,6,7]964; AVX-NEXT: vpblendw {{.*#+}} xmm10 = xmm6[0,1,2,3],xmm5[4,5],xmm6[6,7]965; AVX-NEXT: vpshufb {{.*#+}} xmm11 = xmm10[u,u,u,u,u,u,u,u,u,u,0,1,12,13,8,9]966; AVX-NEXT: vpblendw {{.*#+}} xmm8 = xmm8[0,1,2,3,4],xmm11[5,6,7]967; AVX-NEXT: vpsrlq $48, %xmm1, %xmm11968; AVX-NEXT: vpshufd {{.*#+}} xmm12 = xmm4[2,2,3,3]969; AVX-NEXT: vpunpcklqdq {{.*#+}} xmm11 = xmm12[0],xmm11[0]970; AVX-NEXT: vpshufb {{.*#+}} xmm9 = xmm9[6,7,2,3,14,15,u,u,u,u,u,u,u,u,u,u]971; AVX-NEXT: vpblendw {{.*#+}} xmm9 = xmm9[0,1,2],xmm11[3,4],xmm9[5,6,7]972; AVX-NEXT: vpshufb {{.*#+}} xmm10 = xmm10[u,u,u,u,u,u,u,u,u,u,2,3,14,15,10,11]973; AVX-NEXT: vpblendw {{.*#+}} xmm9 = xmm9[0,1,2,3,4],xmm10[5,6,7]974; AVX-NEXT: vpshufd {{.*#+}} xmm10 = xmm2[1,1,1,1]975; AVX-NEXT: vpshufd {{.*#+}} xmm11 = xmm0[2,3,2,3]976; AVX-NEXT: vpunpcklwd {{.*#+}} xmm10 = xmm11[0],xmm10[0],xmm11[1],xmm10[1],xmm11[2],xmm10[2],xmm11[3],xmm10[3]977; AVX-NEXT: vpshufd {{.*#+}} xmm4 = xmm4[0,1,0,3]978; AVX-NEXT: vpshufhw {{.*#+}} xmm11 = xmm4[0,1,2,3,4,5,4,6]979; AVX-NEXT: vpunpckhqdq {{.*#+}} xmm11 = xmm11[1],xmm1[1]980; AVX-NEXT: vpblendw {{.*#+}} xmm10 = xmm10[0,1],xmm11[2,3,4,5,6,7]981; AVX-NEXT: vpblendw {{.*#+}} xmm5 = xmm5[0,1],xmm6[2,3],xmm5[4,5,6,7]982; AVX-NEXT: vpshufb {{.*#+}} xmm6 = xmm5[u,u,u,u,u,u,u,u,u,u,4,5,0,1,12,13]983; AVX-NEXT: vpblendw {{.*#+}} xmm6 = xmm10[0,1,2,3,4],xmm6[5,6,7]984; AVX-NEXT: vpsrlq $48, %xmm2, %xmm2985; AVX-NEXT: vpsrldq {{.*#+}} xmm0 = xmm0[10,11,12,13,14,15],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero986; AVX-NEXT: vpunpcklwd {{.*#+}} xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1],xmm0[2],xmm2[2],xmm0[3],xmm2[3]987; AVX-NEXT: vpsrld $16, %xmm1, %xmm1988; AVX-NEXT: vpshufhw {{.*#+}} xmm2 = xmm4[0,1,2,3,4,5,5,7]989; AVX-NEXT: vpunpckhqdq {{.*#+}} xmm1 = xmm2[1],xmm1[1]990; AVX-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3,4,5,6,7]991; AVX-NEXT: vpshufb {{.*#+}} xmm1 = xmm5[u,u,u,u,u,u,u,u,u,u,6,7,2,3,14,15]992; AVX-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2,3,4],xmm1[5,6,7]993; AVX-NEXT: vmovdqa %xmm3, (%rsi)994; AVX-NEXT: vmovdqa %xmm7, (%rdx)995; AVX-NEXT: vmovdqa %xmm8, (%rcx)996; AVX-NEXT: vmovdqa %xmm9, (%r8)997; AVX-NEXT: vmovdqa %xmm6, (%r9)998; AVX-NEXT: vmovdqa %xmm0, (%rax)999; AVX-NEXT: retq1000;1001; AVX2-LABEL: load_i16_stride6_vf8:1002; AVX2: # %bb.0:1003; AVX2-NEXT: movq {{[0-9]+}}(%rsp), %rax1004; AVX2-NEXT: vmovdqa (%rdi), %ymm31005; AVX2-NEXT: vmovdqa 32(%rdi), %ymm41006; AVX2-NEXT: vmovdqa 80(%rdi), %xmm01007; AVX2-NEXT: vpslld $16, %xmm0, %xmm21008; AVX2-NEXT: vmovdqa 64(%rdi), %xmm11009; AVX2-NEXT: vpsrldq {{.*#+}} xmm5 = xmm1[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero1010; AVX2-NEXT: vpunpcklwd {{.*#+}} xmm2 = xmm5[0],xmm2[0],xmm5[1],xmm2[1],xmm5[2],xmm2[2],xmm5[3],xmm2[3]1011; AVX2-NEXT: vpblendd {{.*#+}} ymm5 = ymm3[0],ymm4[1],ymm3[2,3],ymm4[4],ymm3[5,6],ymm4[7]1012; AVX2-NEXT: vpshufb {{.*#+}} xmm6 = xmm5[0,1,12,13,u,u,4,5,u,u,u,u,12,13,14,15]1013; AVX2-NEXT: vextracti128 $1, %ymm5, %xmm71014; AVX2-NEXT: vpshufd {{.*#+}} xmm8 = xmm7[0,2,0,3]1015; AVX2-NEXT: vpshufhw {{.*#+}} xmm8 = xmm8[0,1,2,3,4,6,6,7]1016; AVX2-NEXT: vpblendw {{.*#+}} xmm6 = xmm6[0,1],xmm8[2],xmm6[3],xmm8[4,5],xmm6[6,7]1017; AVX2-NEXT: vpblendd {{.*#+}} xmm2 = xmm6[0,1,2],xmm2[3]1018; AVX2-NEXT: vmovdqa {{.*#+}} xmm6 = [2,3,14,15,10,11,6,7,2,3,14,15,12,13,14,15]1019; AVX2-NEXT: vpshufb %xmm6, %xmm7, %xmm71020; AVX2-NEXT: vpshufb %xmm6, %xmm5, %xmm51021; AVX2-NEXT: vpblendw {{.*#+}} xmm5 = xmm5[0,1],xmm7[2],xmm5[3],xmm7[4,5],xmm5[6,7]1022; AVX2-NEXT: vpbroadcastw 74(%rdi), %xmm61023; AVX2-NEXT: vpunpcklwd {{.*#+}} xmm6 = xmm6[0],xmm0[0],xmm6[1],xmm0[1],xmm6[2],xmm0[2],xmm6[3],xmm0[3]1024; AVX2-NEXT: vpblendd {{.*#+}} xmm5 = xmm5[0,1,2],xmm6[3]1025; AVX2-NEXT: vpblendd {{.*#+}} ymm6 = ymm3[0,1],ymm4[2],ymm3[3,4],ymm4[5],ymm3[6,7]1026; AVX2-NEXT: vpshufd {{.*#+}} xmm7 = xmm6[2,1,2,3]1027; AVX2-NEXT: vpshuflw {{.*#+}} xmm8 = xmm7[2,1,2,0,4,5,6,7]1028; AVX2-NEXT: vextracti128 $1, %ymm6, %xmm61029; AVX2-NEXT: vpshufd {{.*#+}} xmm6 = xmm6[0,3,2,1]1030; AVX2-NEXT: vpshuflw {{.*#+}} xmm9 = xmm6[0,0,2,3,4,5,6,7]1031; AVX2-NEXT: vpshufd {{.*#+}} xmm9 = xmm9[0,1,3,3]1032; AVX2-NEXT: vpblendw {{.*#+}} xmm8 = xmm8[0],xmm9[1,2],xmm8[3],xmm9[4,5,6,7]1033; AVX2-NEXT: vpblendd {{.*#+}} xmm9 = xmm1[0,1],xmm0[2],xmm1[3]1034; AVX2-NEXT: vpshufb {{.*#+}} xmm10 = xmm9[u,u,u,u,u,u,u,u,u,u,0,1,12,13,8,9]1035; AVX2-NEXT: vpblendw {{.*#+}} xmm8 = xmm8[0,1,2,3,4],xmm10[5,6,7]1036; AVX2-NEXT: vpshuflw {{.*#+}} xmm7 = xmm7[3,1,2,1,4,5,6,7]1037; AVX2-NEXT: vpshuflw {{.*#+}} xmm6 = xmm6[0,1,3,3,4,5,6,7]1038; AVX2-NEXT: vpshufhw {{.*#+}} xmm6 = xmm6[0,1,2,3,7,7,7,7]1039; AVX2-NEXT: vpblendw {{.*#+}} xmm6 = xmm7[0],xmm6[1,2],xmm7[3],xmm6[4,5,6,7]1040; AVX2-NEXT: vpshufb {{.*#+}} xmm7 = xmm9[u,u,u,u,u,u,u,u,u,u,2,3,14,15,10,11]1041; AVX2-NEXT: vpblendw {{.*#+}} xmm6 = xmm6[0,1,2,3,4],xmm7[5,6,7]1042; AVX2-NEXT: vpblendd {{.*#+}} ymm3 = ymm4[0,1],ymm3[2],ymm4[3,4],ymm3[5],ymm4[6,7]1043; AVX2-NEXT: vextracti128 $1, %ymm3, %xmm41044; AVX2-NEXT: vpshuflw {{.*#+}} xmm7 = xmm4[2,2,2,2,4,5,6,7]1045; AVX2-NEXT: vpshufb {{.*#+}} xmm9 = xmm3[8,9,u,u,0,1,12,13,u,u,u,u,u,u,u,u]1046; AVX2-NEXT: vpblendw {{.*#+}} xmm7 = xmm9[0],xmm7[1],xmm9[2,3],xmm7[4],xmm9[5,6,7]1047; AVX2-NEXT: vpblendd {{.*#+}} xmm0 = xmm0[0],xmm1[1],xmm0[2,3]1048; AVX2-NEXT: vpshufb {{.*#+}} xmm1 = xmm0[u,u,u,u,u,u,u,u,u,u,4,5,0,1,12,13]1049; AVX2-NEXT: vpblendw {{.*#+}} xmm1 = xmm7[0,1,2,3,4],xmm1[5,6,7]1050; AVX2-NEXT: vpshufb {{.*#+}} xmm3 = xmm3[10,11,u,u,2,3,14,15,u,u,u,u,u,u,u,u]1051; AVX2-NEXT: vpshufd {{.*#+}} xmm4 = xmm4[1,1,2,3]1052; AVX2-NEXT: vpshufhw {{.*#+}} xmm4 = xmm4[0,1,2,3,5,5,5,5]1053; AVX2-NEXT: vpblendw {{.*#+}} xmm3 = xmm3[0],xmm4[1],xmm3[2,3],xmm4[4],xmm3[5,6,7]1054; AVX2-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[u,u,u,u,u,u,u,u,u,u,6,7,2,3,14,15]1055; AVX2-NEXT: vpblendw {{.*#+}} xmm0 = xmm3[0,1,2,3,4],xmm0[5,6,7]1056; AVX2-NEXT: vmovdqa %xmm2, (%rsi)1057; AVX2-NEXT: vmovdqa %xmm5, (%rdx)1058; AVX2-NEXT: vmovdqa %xmm8, (%rcx)1059; AVX2-NEXT: vmovdqa %xmm6, (%r8)1060; AVX2-NEXT: vmovdqa %xmm1, (%r9)1061; AVX2-NEXT: vmovdqa %xmm0, (%rax)1062; AVX2-NEXT: vzeroupper1063; AVX2-NEXT: retq1064;1065; AVX2-FP-LABEL: load_i16_stride6_vf8:1066; AVX2-FP: # %bb.0:1067; AVX2-FP-NEXT: movq {{[0-9]+}}(%rsp), %rax1068; AVX2-FP-NEXT: vmovdqa (%rdi), %ymm01069; AVX2-FP-NEXT: vmovdqa 32(%rdi), %ymm21070; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm5 = ymm0[0],ymm2[1],ymm0[2,3],ymm2[4],ymm0[5,6],ymm2[7]1071; AVX2-FP-NEXT: vmovdqa {{.*#+}} xmm1 = [0,1,12,13,0,1,4,5,8,9,12,13,12,13,14,15]1072; AVX2-FP-NEXT: vpshufb %xmm1, %xmm5, %xmm31073; AVX2-FP-NEXT: vextracti128 $1, %ymm5, %xmm41074; AVX2-FP-NEXT: vpshufd {{.*#+}} xmm6 = xmm4[2,1,0,3]1075; AVX2-FP-NEXT: vpshufb %xmm1, %xmm6, %xmm11076; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm1 = xmm3[0,1],xmm1[2],xmm3[3],xmm1[4,5],xmm3[6,7]1077; AVX2-FP-NEXT: vmovdqa 80(%rdi), %xmm31078; AVX2-FP-NEXT: vpslld $16, %xmm3, %xmm71079; AVX2-FP-NEXT: vmovdqa 64(%rdi), %xmm41080; AVX2-FP-NEXT: vpsrldq {{.*#+}} xmm8 = xmm4[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero1081; AVX2-FP-NEXT: vpunpcklwd {{.*#+}} xmm7 = xmm8[0],xmm7[0],xmm8[1],xmm7[1],xmm8[2],xmm7[2],xmm8[3],xmm7[3]1082; AVX2-FP-NEXT: vpblendd {{.*#+}} xmm1 = xmm1[0,1,2],xmm7[3]1083; AVX2-FP-NEXT: vmovdqa {{.*#+}} xmm7 = [2,3,14,15,2,3,6,7,10,11,14,15,12,13,14,15]1084; AVX2-FP-NEXT: vpshufb %xmm7, %xmm5, %xmm51085; AVX2-FP-NEXT: vpshufb %xmm7, %xmm6, %xmm61086; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm5 = xmm5[0,1],xmm6[2],xmm5[3],xmm6[4,5],xmm5[6,7]1087; AVX2-FP-NEXT: vpbroadcastw 74(%rdi), %xmm61088; AVX2-FP-NEXT: vpunpcklwd {{.*#+}} xmm6 = xmm6[0],xmm3[0],xmm6[1],xmm3[1],xmm6[2],xmm3[2],xmm6[3],xmm3[3]1089; AVX2-FP-NEXT: vpblendd {{.*#+}} xmm5 = xmm5[0,1,2],xmm6[3]1090; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm6 = ymm0[0,1],ymm2[2],ymm0[3,4],ymm2[5],ymm0[6,7]1091; AVX2-FP-NEXT: vpshufd {{.*#+}} xmm7 = xmm6[2,1,2,3]1092; AVX2-FP-NEXT: vpshuflw {{.*#+}} xmm8 = xmm7[2,1,2,0,4,5,6,7]1093; AVX2-FP-NEXT: vextracti128 $1, %ymm6, %xmm61094; AVX2-FP-NEXT: vpshufd {{.*#+}} xmm6 = xmm6[0,3,2,1]1095; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm9 = xmm6[u,u,0,1,4,5,u,u,12,13,u,u,u,u,u,u]1096; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm8 = xmm8[0],xmm9[1,2],xmm8[3],xmm9[4,5,6,7]1097; AVX2-FP-NEXT: vpblendd {{.*#+}} xmm9 = xmm4[0,1],xmm3[2],xmm4[3]1098; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm10 = xmm9[u,u,u,u,u,u,u,u,u,u,0,1,12,13,8,9]1099; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm8 = xmm8[0,1,2,3,4],xmm10[5,6,7]1100; AVX2-FP-NEXT: vpshuflw {{.*#+}} xmm7 = xmm7[3,1,2,1,4,5,6,7]1101; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm6 = xmm6[u,u,2,3,6,7,u,u,14,15,u,u,u,u,u,u]1102; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm6 = xmm7[0],xmm6[1,2],xmm7[3],xmm6[4,5,6,7]1103; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm7 = xmm9[u,u,u,u,u,u,u,u,u,u,2,3,14,15,10,11]1104; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm6 = xmm6[0,1,2,3,4],xmm7[5,6,7]1105; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm2[0,1],ymm0[2],ymm2[3,4],ymm0[5],ymm2[6,7]1106; AVX2-FP-NEXT: vextracti128 $1, %ymm0, %xmm21107; AVX2-FP-NEXT: vpshuflw {{.*#+}} xmm7 = xmm2[2,2,2,2,4,5,6,7]1108; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm9 = xmm0[8,9,u,u,0,1,12,13,u,u,u,u,u,u,u,u]1109; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm7 = xmm9[0],xmm7[1],xmm9[2,3],xmm7[4],xmm9[5,6,7]1110; AVX2-FP-NEXT: vpblendd {{.*#+}} xmm3 = xmm3[0],xmm4[1],xmm3[2,3]1111; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm4 = xmm3[u,u,u,u,u,u,u,u,u,u,4,5,0,1,12,13]1112; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm4 = xmm7[0,1,2,3,4],xmm4[5,6,7]1113; AVX2-FP-NEXT: vmovdqa {{.*#+}} xmm7 = [10,11,6,7,2,3,14,15,10,11,10,11,12,13,14,15]1114; AVX2-FP-NEXT: vpshufb %xmm7, %xmm2, %xmm21115; AVX2-FP-NEXT: vpshufb %xmm7, %xmm0, %xmm01116; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0],xmm2[1],xmm0[2,3],xmm2[4],xmm0[5,6,7]1117; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm2 = xmm3[u,u,u,u,u,u,u,u,u,u,6,7,2,3,14,15]1118; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2,3,4],xmm2[5,6,7]1119; AVX2-FP-NEXT: vmovdqa %xmm1, (%rsi)1120; AVX2-FP-NEXT: vmovdqa %xmm5, (%rdx)1121; AVX2-FP-NEXT: vmovdqa %xmm8, (%rcx)1122; AVX2-FP-NEXT: vmovdqa %xmm6, (%r8)1123; AVX2-FP-NEXT: vmovdqa %xmm4, (%r9)1124; AVX2-FP-NEXT: vmovdqa %xmm0, (%rax)1125; AVX2-FP-NEXT: vzeroupper1126; AVX2-FP-NEXT: retq1127;1128; AVX2-FCP-LABEL: load_i16_stride6_vf8:1129; AVX2-FCP: # %bb.0:1130; AVX2-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax1131; AVX2-FCP-NEXT: vmovdqa (%rdi), %ymm01132; AVX2-FCP-NEXT: vmovdqa 32(%rdi), %ymm21133; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm5 = ymm0[0],ymm2[1],ymm0[2,3],ymm2[4],ymm0[5,6],ymm2[7]1134; AVX2-FCP-NEXT: vmovdqa {{.*#+}} xmm1 = [0,1,12,13,0,1,4,5,8,9,12,13,12,13,14,15]1135; AVX2-FCP-NEXT: vpshufb %xmm1, %xmm5, %xmm31136; AVX2-FCP-NEXT: vextracti128 $1, %ymm5, %xmm41137; AVX2-FCP-NEXT: vpshufd {{.*#+}} xmm6 = xmm4[2,1,0,3]1138; AVX2-FCP-NEXT: vpshufb %xmm1, %xmm6, %xmm11139; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm1 = xmm3[0,1],xmm1[2],xmm3[3],xmm1[4,5],xmm3[6,7]1140; AVX2-FCP-NEXT: vmovdqa 80(%rdi), %xmm31141; AVX2-FCP-NEXT: vpslld $16, %xmm3, %xmm71142; AVX2-FCP-NEXT: vmovdqa 64(%rdi), %xmm41143; AVX2-FCP-NEXT: vpsrldq {{.*#+}} xmm8 = xmm4[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero1144; AVX2-FCP-NEXT: vpunpcklwd {{.*#+}} xmm7 = xmm8[0],xmm7[0],xmm8[1],xmm7[1],xmm8[2],xmm7[2],xmm8[3],xmm7[3]1145; AVX2-FCP-NEXT: vpblendd {{.*#+}} xmm1 = xmm1[0,1,2],xmm7[3]1146; AVX2-FCP-NEXT: vmovdqa {{.*#+}} xmm7 = [2,3,14,15,2,3,6,7,10,11,14,15,12,13,14,15]1147; AVX2-FCP-NEXT: vpshufb %xmm7, %xmm5, %xmm51148; AVX2-FCP-NEXT: vpshufb %xmm7, %xmm6, %xmm61149; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm5 = xmm5[0,1],xmm6[2],xmm5[3],xmm6[4,5],xmm5[6,7]1150; AVX2-FCP-NEXT: vpbroadcastw 74(%rdi), %xmm61151; AVX2-FCP-NEXT: vpunpcklwd {{.*#+}} xmm6 = xmm6[0],xmm3[0],xmm6[1],xmm3[1],xmm6[2],xmm3[2],xmm6[3],xmm3[3]1152; AVX2-FCP-NEXT: vpblendd {{.*#+}} xmm5 = xmm5[0,1,2],xmm6[3]1153; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm6 = ymm0[0,1],ymm2[2],ymm0[3,4],ymm2[5],ymm0[6,7]1154; AVX2-FCP-NEXT: vpshufd {{.*#+}} xmm7 = xmm6[2,1,2,3]1155; AVX2-FCP-NEXT: vpshuflw {{.*#+}} xmm8 = xmm7[2,1,2,0,4,5,6,7]1156; AVX2-FCP-NEXT: vextracti128 $1, %ymm6, %xmm61157; AVX2-FCP-NEXT: vpshufd {{.*#+}} xmm6 = xmm6[0,3,2,1]1158; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm9 = xmm6[u,u,0,1,4,5,u,u,12,13,u,u,u,u,u,u]1159; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm8 = xmm8[0],xmm9[1,2],xmm8[3],xmm9[4,5,6,7]1160; AVX2-FCP-NEXT: vpblendd {{.*#+}} xmm9 = xmm4[0,1],xmm3[2],xmm4[3]1161; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm10 = xmm9[u,u,u,u,u,u,u,u,u,u,0,1,12,13,8,9]1162; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm8 = xmm8[0,1,2,3,4],xmm10[5,6,7]1163; AVX2-FCP-NEXT: vpshuflw {{.*#+}} xmm7 = xmm7[3,1,2,1,4,5,6,7]1164; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm6 = xmm6[u,u,2,3,6,7,u,u,14,15,u,u,u,u,u,u]1165; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm6 = xmm7[0],xmm6[1,2],xmm7[3],xmm6[4,5,6,7]1166; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm7 = xmm9[u,u,u,u,u,u,u,u,u,u,2,3,14,15,10,11]1167; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm6 = xmm6[0,1,2,3,4],xmm7[5,6,7]1168; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm2[0,1],ymm0[2],ymm2[3,4],ymm0[5],ymm2[6,7]1169; AVX2-FCP-NEXT: vextracti128 $1, %ymm0, %xmm21170; AVX2-FCP-NEXT: vpshuflw {{.*#+}} xmm7 = xmm2[2,2,2,2,4,5,6,7]1171; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm9 = xmm0[8,9,u,u,0,1,12,13,u,u,u,u,u,u,u,u]1172; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm7 = xmm9[0],xmm7[1],xmm9[2,3],xmm7[4],xmm9[5,6,7]1173; AVX2-FCP-NEXT: vpblendd {{.*#+}} xmm3 = xmm3[0],xmm4[1],xmm3[2,3]1174; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm4 = xmm3[u,u,u,u,u,u,u,u,u,u,4,5,0,1,12,13]1175; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm4 = xmm7[0,1,2,3,4],xmm4[5,6,7]1176; AVX2-FCP-NEXT: vmovdqa {{.*#+}} xmm7 = [10,11,6,7,2,3,14,15,10,11,10,11,12,13,14,15]1177; AVX2-FCP-NEXT: vpshufb %xmm7, %xmm2, %xmm21178; AVX2-FCP-NEXT: vpshufb %xmm7, %xmm0, %xmm01179; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0],xmm2[1],xmm0[2,3],xmm2[4],xmm0[5,6,7]1180; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm2 = xmm3[u,u,u,u,u,u,u,u,u,u,6,7,2,3,14,15]1181; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2,3,4],xmm2[5,6,7]1182; AVX2-FCP-NEXT: vmovdqa %xmm1, (%rsi)1183; AVX2-FCP-NEXT: vmovdqa %xmm5, (%rdx)1184; AVX2-FCP-NEXT: vmovdqa %xmm8, (%rcx)1185; AVX2-FCP-NEXT: vmovdqa %xmm6, (%r8)1186; AVX2-FCP-NEXT: vmovdqa %xmm4, (%r9)1187; AVX2-FCP-NEXT: vmovdqa %xmm0, (%rax)1188; AVX2-FCP-NEXT: vzeroupper1189; AVX2-FCP-NEXT: retq1190;1191; AVX512-LABEL: load_i16_stride6_vf8:1192; AVX512: # %bb.0:1193; AVX512-NEXT: movq {{[0-9]+}}(%rsp), %rax1194; AVX512-NEXT: vmovdqa 80(%rdi), %xmm01195; AVX512-NEXT: vpslld $16, %xmm0, %xmm21196; AVX512-NEXT: vmovdqa 64(%rdi), %xmm11197; AVX512-NEXT: vpsrldq {{.*#+}} xmm3 = xmm1[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero1198; AVX512-NEXT: vpunpcklwd {{.*#+}} xmm2 = xmm3[0],xmm2[0],xmm3[1],xmm2[1],xmm3[2],xmm2[2],xmm3[3],xmm2[3]1199; AVX512-NEXT: vmovdqa (%rdi), %ymm31200; AVX512-NEXT: vmovdqa 32(%rdi), %ymm41201; AVX512-NEXT: vpblendd {{.*#+}} ymm5 = ymm3[0],ymm4[1],ymm3[2,3],ymm4[4],ymm3[5,6],ymm4[7]1202; AVX512-NEXT: vpshufb {{.*#+}} xmm6 = xmm5[0,1,12,13,u,u,4,5,u,u,u,u,u,u,u,u]1203; AVX512-NEXT: vextracti128 $1, %ymm5, %xmm71204; AVX512-NEXT: vpshufd {{.*#+}} xmm8 = xmm7[0,2,0,3]1205; AVX512-NEXT: vpshufhw {{.*#+}} xmm8 = xmm8[0,1,2,3,4,6,6,7]1206; AVX512-NEXT: vpblendw {{.*#+}} xmm6 = xmm6[0,1],xmm8[2],xmm6[3],xmm8[4,5],xmm6[6,7]1207; AVX512-NEXT: vpblendd {{.*#+}} xmm2 = xmm6[0,1,2],xmm2[3]1208; AVX512-NEXT: vpbroadcastw 74(%rdi), %xmm61209; AVX512-NEXT: vpunpcklwd {{.*#+}} xmm6 = xmm6[0],xmm0[0],xmm6[1],xmm0[1],xmm6[2],xmm0[2],xmm6[3],xmm0[3]1210; AVX512-NEXT: vpshufd {{.*#+}} xmm7 = xmm7[2,1,0,3]1211; AVX512-NEXT: vpshuflw {{.*#+}} xmm7 = xmm7[1,1,1,1,4,5,6,7]1212; AVX512-NEXT: vpshuflw {{.*#+}} xmm5 = xmm5[3,1,2,3,4,5,6,7]1213; AVX512-NEXT: vpshufd {{.*#+}} xmm5 = xmm5[0,3,2,3]1214; AVX512-NEXT: vpblendw {{.*#+}} xmm5 = xmm5[0,1],xmm7[2],xmm5[3,4],xmm7[5],xmm5[6],xmm7[7]1215; AVX512-NEXT: vpshuflw {{.*#+}} xmm5 = xmm5[1,3,2,0,4,5,6,7]1216; AVX512-NEXT: vpshufhw {{.*#+}} xmm5 = xmm5[0,1,2,3,5,7,6,7]1217; AVX512-NEXT: vpblendd {{.*#+}} xmm5 = xmm5[0,1,2],xmm6[3]1218; AVX512-NEXT: vpblendd {{.*#+}} ymm6 = ymm3[0,1],ymm4[2],ymm3[3,4],ymm4[5],ymm3[6,7]1219; AVX512-NEXT: vpshufd {{.*#+}} xmm7 = xmm6[2,1,2,3]1220; AVX512-NEXT: vpshuflw {{.*#+}} xmm8 = xmm7[2,1,2,0,4,5,6,7]1221; AVX512-NEXT: vextracti128 $1, %ymm6, %xmm61222; AVX512-NEXT: vpshufd {{.*#+}} xmm6 = xmm6[0,3,2,1]1223; AVX512-NEXT: vpshuflw {{.*#+}} xmm9 = xmm6[0,0,2,3,4,5,6,7]1224; AVX512-NEXT: vpshufd {{.*#+}} xmm9 = xmm9[0,1,3,3]1225; AVX512-NEXT: vpblendw {{.*#+}} xmm8 = xmm8[0],xmm9[1,2],xmm8[3],xmm9[4,5,6,7]1226; AVX512-NEXT: vpblendd {{.*#+}} xmm9 = xmm1[0,1],xmm0[2],xmm1[3]1227; AVX512-NEXT: vpshufb {{.*#+}} xmm10 = xmm9[u,u,u,u,u,u,u,u,u,u,0,1,12,13,8,9]1228; AVX512-NEXT: vpblendw {{.*#+}} xmm8 = xmm8[0,1,2,3,4],xmm10[5,6,7]1229; AVX512-NEXT: vpshuflw {{.*#+}} xmm7 = xmm7[3,1,2,1,4,5,6,7]1230; AVX512-NEXT: vpshuflw {{.*#+}} xmm6 = xmm6[0,1,3,3,4,5,6,7]1231; AVX512-NEXT: vpshufhw {{.*#+}} xmm6 = xmm6[0,1,2,3,7,7,7,7]1232; AVX512-NEXT: vpblendw {{.*#+}} xmm6 = xmm7[0],xmm6[1,2],xmm7[3],xmm6[4,5,6,7]1233; AVX512-NEXT: vpshufb {{.*#+}} xmm7 = xmm9[u,u,u,u,u,u,u,u,u,u,2,3,14,15,10,11]1234; AVX512-NEXT: vpblendw {{.*#+}} xmm6 = xmm6[0,1,2,3,4],xmm7[5,6,7]1235; AVX512-NEXT: vpblendd {{.*#+}} ymm3 = ymm4[0,1],ymm3[2],ymm4[3,4],ymm3[5],ymm4[6,7]1236; AVX512-NEXT: vextracti128 $1, %ymm3, %xmm41237; AVX512-NEXT: vpshuflw {{.*#+}} xmm7 = xmm4[2,2,2,2,4,5,6,7]1238; AVX512-NEXT: vpshufb {{.*#+}} xmm9 = xmm3[8,9,u,u,0,1,12,13,u,u,u,u,u,u,u,u]1239; AVX512-NEXT: vpblendw {{.*#+}} xmm7 = xmm9[0],xmm7[1],xmm9[2,3],xmm7[4],xmm9[5,6,7]1240; AVX512-NEXT: vpblendd {{.*#+}} xmm0 = xmm0[0],xmm1[1],xmm0[2,3]1241; AVX512-NEXT: vpshufb {{.*#+}} xmm1 = xmm0[u,u,u,u,u,u,u,u,u,u,4,5,0,1,12,13]1242; AVX512-NEXT: vpblendw {{.*#+}} xmm1 = xmm7[0,1,2,3,4],xmm1[5,6,7]1243; AVX512-NEXT: vpshufb {{.*#+}} xmm3 = xmm3[10,11,u,u,2,3,14,15,u,u,u,u,u,u,u,u]1244; AVX512-NEXT: vpshufd {{.*#+}} xmm4 = xmm4[1,1,2,3]1245; AVX512-NEXT: vpshufhw {{.*#+}} xmm4 = xmm4[0,1,2,3,5,5,5,5]1246; AVX512-NEXT: vpblendw {{.*#+}} xmm3 = xmm3[0],xmm4[1],xmm3[2,3],xmm4[4],xmm3[5,6,7]1247; AVX512-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[u,u,u,u,u,u,u,u,u,u,6,7,2,3,14,15]1248; AVX512-NEXT: vpblendw {{.*#+}} xmm0 = xmm3[0,1,2,3,4],xmm0[5,6,7]1249; AVX512-NEXT: vmovdqa %xmm2, (%rsi)1250; AVX512-NEXT: vmovdqa %xmm5, (%rdx)1251; AVX512-NEXT: vmovdqa %xmm8, (%rcx)1252; AVX512-NEXT: vmovdqa %xmm6, (%r8)1253; AVX512-NEXT: vmovdqa %xmm1, (%r9)1254; AVX512-NEXT: vmovdqa %xmm0, (%rax)1255; AVX512-NEXT: vzeroupper1256; AVX512-NEXT: retq1257;1258; AVX512-FCP-LABEL: load_i16_stride6_vf8:1259; AVX512-FCP: # %bb.0:1260; AVX512-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax1261; AVX512-FCP-NEXT: vmovdqa {{.*#+}} xmm0 = [0,1,12,13,0,1,4,5,8,9,12,13,u,u,u,u]1262; AVX512-FCP-NEXT: vmovdqa (%rdi), %ymm11263; AVX512-FCP-NEXT: vmovdqa 32(%rdi), %ymm21264; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm5 = ymm1[0],ymm2[1],ymm1[2,3],ymm2[4],ymm1[5,6],ymm2[7]1265; AVX512-FCP-NEXT: vpshufb %xmm0, %xmm5, %xmm31266; AVX512-FCP-NEXT: vextracti128 $1, %ymm5, %xmm41267; AVX512-FCP-NEXT: vpshufd {{.*#+}} xmm6 = xmm4[2,1,0,3]1268; AVX512-FCP-NEXT: vpshufb %xmm0, %xmm6, %xmm01269; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm0 = xmm3[0,1],xmm0[2],xmm3[3],xmm0[4,5],xmm3[6,7]1270; AVX512-FCP-NEXT: vmovdqa 80(%rdi), %xmm31271; AVX512-FCP-NEXT: vpslld $16, %xmm3, %xmm71272; AVX512-FCP-NEXT: vmovdqa 64(%rdi), %xmm41273; AVX512-FCP-NEXT: vpsrldq {{.*#+}} xmm8 = xmm4[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero1274; AVX512-FCP-NEXT: vpunpcklwd {{.*#+}} xmm7 = xmm8[0],xmm7[0],xmm8[1],xmm7[1],xmm8[2],xmm7[2],xmm8[3],xmm7[3]1275; AVX512-FCP-NEXT: vpblendd {{.*#+}} xmm0 = xmm0[0,1,2],xmm7[3]1276; AVX512-FCP-NEXT: vpbroadcastw 74(%rdi), %xmm71277; AVX512-FCP-NEXT: vpunpcklwd {{.*#+}} xmm7 = xmm7[0],xmm3[0],xmm7[1],xmm3[1],xmm7[2],xmm3[2],xmm7[3],xmm3[3]1278; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm5 = xmm5[6,7,2,3,u,u,14,15,u,u,u,u,u,u,u,u]1279; AVX512-FCP-NEXT: vpshuflw {{.*#+}} xmm6 = xmm6[1,1,1,1,4,5,6,7]1280; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm5 = xmm5[0,1],xmm6[2],xmm5[3,4],xmm6[5],xmm5[6],xmm6[7]1281; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm5 = xmm5[2,3,6,7,4,5,0,1,10,11,14,15,u,u,u,u]1282; AVX512-FCP-NEXT: vpblendd {{.*#+}} xmm5 = xmm5[0,1,2],xmm7[3]1283; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm6 = ymm1[0,1],ymm2[2],ymm1[3,4],ymm2[5],ymm1[6,7]1284; AVX512-FCP-NEXT: vpshufd {{.*#+}} xmm7 = xmm6[2,1,2,3]1285; AVX512-FCP-NEXT: vpshuflw {{.*#+}} xmm8 = xmm7[2,1,2,0,4,5,6,7]1286; AVX512-FCP-NEXT: vextracti128 $1, %ymm6, %xmm61287; AVX512-FCP-NEXT: vpshufd {{.*#+}} xmm6 = xmm6[0,3,2,1]1288; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm9 = xmm6[u,u,0,1,4,5,u,u,12,13,u,u,u,u,u,u]1289; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm8 = xmm8[0],xmm9[1,2],xmm8[3],xmm9[4,5,6,7]1290; AVX512-FCP-NEXT: vpblendd {{.*#+}} xmm9 = xmm4[0,1],xmm3[2],xmm4[3]1291; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm10 = xmm9[u,u,u,u,u,u,u,u,u,u,0,1,12,13,8,9]1292; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm8 = xmm8[0,1,2,3,4],xmm10[5,6,7]1293; AVX512-FCP-NEXT: vpshuflw {{.*#+}} xmm7 = xmm7[3,1,2,1,4,5,6,7]1294; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm6 = xmm6[u,u,2,3,6,7,u,u,14,15,u,u,u,u,u,u]1295; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm6 = xmm7[0],xmm6[1,2],xmm7[3],xmm6[4,5,6,7]1296; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm7 = xmm9[u,u,u,u,u,u,u,u,u,u,2,3,14,15,10,11]1297; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm6 = xmm6[0,1,2,3,4],xmm7[5,6,7]1298; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0,1],ymm1[2],ymm2[3,4],ymm1[5],ymm2[6,7]1299; AVX512-FCP-NEXT: vextracti128 $1, %ymm1, %xmm21300; AVX512-FCP-NEXT: vpshuflw {{.*#+}} xmm7 = xmm2[2,2,2,2,4,5,6,7]1301; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm9 = xmm1[8,9,u,u,0,1,12,13,u,u,u,u,u,u,u,u]1302; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm7 = xmm9[0],xmm7[1],xmm9[2,3],xmm7[4],xmm9[5,6,7]1303; AVX512-FCP-NEXT: vpblendd {{.*#+}} xmm3 = xmm3[0],xmm4[1],xmm3[2,3]1304; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm4 = xmm3[u,u,u,u,u,u,u,u,u,u,4,5,0,1,12,13]1305; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm4 = xmm7[0,1,2,3,4],xmm4[5,6,7]1306; AVX512-FCP-NEXT: vmovdqa {{.*#+}} xmm7 = [10,11,6,7,2,3,14,15,10,11,10,11,12,13,14,15]1307; AVX512-FCP-NEXT: vpshufb %xmm7, %xmm2, %xmm21308; AVX512-FCP-NEXT: vpshufb %xmm7, %xmm1, %xmm11309; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0],xmm2[1],xmm1[2,3],xmm2[4],xmm1[5,6,7]1310; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm2 = xmm3[u,u,u,u,u,u,u,u,u,u,6,7,2,3,14,15]1311; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1,2,3,4],xmm2[5,6,7]1312; AVX512-FCP-NEXT: vmovdqa %xmm0, (%rsi)1313; AVX512-FCP-NEXT: vmovdqa %xmm5, (%rdx)1314; AVX512-FCP-NEXT: vmovdqa %xmm8, (%rcx)1315; AVX512-FCP-NEXT: vmovdqa %xmm6, (%r8)1316; AVX512-FCP-NEXT: vmovdqa %xmm4, (%r9)1317; AVX512-FCP-NEXT: vmovdqa %xmm1, (%rax)1318; AVX512-FCP-NEXT: vzeroupper1319; AVX512-FCP-NEXT: retq1320;1321; AVX512DQ-LABEL: load_i16_stride6_vf8:1322; AVX512DQ: # %bb.0:1323; AVX512DQ-NEXT: movq {{[0-9]+}}(%rsp), %rax1324; AVX512DQ-NEXT: vmovdqa 80(%rdi), %xmm01325; AVX512DQ-NEXT: vpslld $16, %xmm0, %xmm21326; AVX512DQ-NEXT: vmovdqa 64(%rdi), %xmm11327; AVX512DQ-NEXT: vpsrldq {{.*#+}} xmm3 = xmm1[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero1328; AVX512DQ-NEXT: vpunpcklwd {{.*#+}} xmm2 = xmm3[0],xmm2[0],xmm3[1],xmm2[1],xmm3[2],xmm2[2],xmm3[3],xmm2[3]1329; AVX512DQ-NEXT: vmovdqa (%rdi), %ymm31330; AVX512DQ-NEXT: vmovdqa 32(%rdi), %ymm41331; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm5 = ymm3[0],ymm4[1],ymm3[2,3],ymm4[4],ymm3[5,6],ymm4[7]1332; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm6 = xmm5[0,1,12,13,u,u,4,5,u,u,u,u,u,u,u,u]1333; AVX512DQ-NEXT: vextracti128 $1, %ymm5, %xmm71334; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm8 = xmm7[0,2,0,3]1335; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm8 = xmm8[0,1,2,3,4,6,6,7]1336; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm6 = xmm6[0,1],xmm8[2],xmm6[3],xmm8[4,5],xmm6[6,7]1337; AVX512DQ-NEXT: vpblendd {{.*#+}} xmm2 = xmm6[0,1,2],xmm2[3]1338; AVX512DQ-NEXT: vpbroadcastw 74(%rdi), %xmm61339; AVX512DQ-NEXT: vpunpcklwd {{.*#+}} xmm6 = xmm6[0],xmm0[0],xmm6[1],xmm0[1],xmm6[2],xmm0[2],xmm6[3],xmm0[3]1340; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm7 = xmm7[2,1,0,3]1341; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm7 = xmm7[1,1,1,1,4,5,6,7]1342; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm5 = xmm5[3,1,2,3,4,5,6,7]1343; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm5 = xmm5[0,3,2,3]1344; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm5 = xmm5[0,1],xmm7[2],xmm5[3,4],xmm7[5],xmm5[6],xmm7[7]1345; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm5 = xmm5[1,3,2,0,4,5,6,7]1346; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm5 = xmm5[0,1,2,3,5,7,6,7]1347; AVX512DQ-NEXT: vpblendd {{.*#+}} xmm5 = xmm5[0,1,2],xmm6[3]1348; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm6 = ymm3[0,1],ymm4[2],ymm3[3,4],ymm4[5],ymm3[6,7]1349; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm7 = xmm6[2,1,2,3]1350; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm8 = xmm7[2,1,2,0,4,5,6,7]1351; AVX512DQ-NEXT: vextracti128 $1, %ymm6, %xmm61352; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm6 = xmm6[0,3,2,1]1353; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm9 = xmm6[0,0,2,3,4,5,6,7]1354; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm9 = xmm9[0,1,3,3]1355; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm8 = xmm8[0],xmm9[1,2],xmm8[3],xmm9[4,5,6,7]1356; AVX512DQ-NEXT: vpblendd {{.*#+}} xmm9 = xmm1[0,1],xmm0[2],xmm1[3]1357; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm10 = xmm9[u,u,u,u,u,u,u,u,u,u,0,1,12,13,8,9]1358; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm8 = xmm8[0,1,2,3,4],xmm10[5,6,7]1359; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm7 = xmm7[3,1,2,1,4,5,6,7]1360; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm6 = xmm6[0,1,3,3,4,5,6,7]1361; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm6 = xmm6[0,1,2,3,7,7,7,7]1362; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm6 = xmm7[0],xmm6[1,2],xmm7[3],xmm6[4,5,6,7]1363; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm7 = xmm9[u,u,u,u,u,u,u,u,u,u,2,3,14,15,10,11]1364; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm6 = xmm6[0,1,2,3,4],xmm7[5,6,7]1365; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm3 = ymm4[0,1],ymm3[2],ymm4[3,4],ymm3[5],ymm4[6,7]1366; AVX512DQ-NEXT: vextracti128 $1, %ymm3, %xmm41367; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm7 = xmm4[2,2,2,2,4,5,6,7]1368; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm9 = xmm3[8,9,u,u,0,1,12,13,u,u,u,u,u,u,u,u]1369; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm7 = xmm9[0],xmm7[1],xmm9[2,3],xmm7[4],xmm9[5,6,7]1370; AVX512DQ-NEXT: vpblendd {{.*#+}} xmm0 = xmm0[0],xmm1[1],xmm0[2,3]1371; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm1 = xmm0[u,u,u,u,u,u,u,u,u,u,4,5,0,1,12,13]1372; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm1 = xmm7[0,1,2,3,4],xmm1[5,6,7]1373; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm3 = xmm3[10,11,u,u,2,3,14,15,u,u,u,u,u,u,u,u]1374; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm4 = xmm4[1,1,2,3]1375; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm4 = xmm4[0,1,2,3,5,5,5,5]1376; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm3 = xmm3[0],xmm4[1],xmm3[2,3],xmm4[4],xmm3[5,6,7]1377; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[u,u,u,u,u,u,u,u,u,u,6,7,2,3,14,15]1378; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm0 = xmm3[0,1,2,3,4],xmm0[5,6,7]1379; AVX512DQ-NEXT: vmovdqa %xmm2, (%rsi)1380; AVX512DQ-NEXT: vmovdqa %xmm5, (%rdx)1381; AVX512DQ-NEXT: vmovdqa %xmm8, (%rcx)1382; AVX512DQ-NEXT: vmovdqa %xmm6, (%r8)1383; AVX512DQ-NEXT: vmovdqa %xmm1, (%r9)1384; AVX512DQ-NEXT: vmovdqa %xmm0, (%rax)1385; AVX512DQ-NEXT: vzeroupper1386; AVX512DQ-NEXT: retq1387;1388; AVX512DQ-FCP-LABEL: load_i16_stride6_vf8:1389; AVX512DQ-FCP: # %bb.0:1390; AVX512DQ-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax1391; AVX512DQ-FCP-NEXT: vmovdqa {{.*#+}} xmm0 = [0,1,12,13,0,1,4,5,8,9,12,13,u,u,u,u]1392; AVX512DQ-FCP-NEXT: vmovdqa (%rdi), %ymm11393; AVX512DQ-FCP-NEXT: vmovdqa 32(%rdi), %ymm21394; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm5 = ymm1[0],ymm2[1],ymm1[2,3],ymm2[4],ymm1[5,6],ymm2[7]1395; AVX512DQ-FCP-NEXT: vpshufb %xmm0, %xmm5, %xmm31396; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm5, %xmm41397; AVX512DQ-FCP-NEXT: vpshufd {{.*#+}} xmm6 = xmm4[2,1,0,3]1398; AVX512DQ-FCP-NEXT: vpshufb %xmm0, %xmm6, %xmm01399; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm0 = xmm3[0,1],xmm0[2],xmm3[3],xmm0[4,5],xmm3[6,7]1400; AVX512DQ-FCP-NEXT: vmovdqa 80(%rdi), %xmm31401; AVX512DQ-FCP-NEXT: vpslld $16, %xmm3, %xmm71402; AVX512DQ-FCP-NEXT: vmovdqa 64(%rdi), %xmm41403; AVX512DQ-FCP-NEXT: vpsrldq {{.*#+}} xmm8 = xmm4[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero1404; AVX512DQ-FCP-NEXT: vpunpcklwd {{.*#+}} xmm7 = xmm8[0],xmm7[0],xmm8[1],xmm7[1],xmm8[2],xmm7[2],xmm8[3],xmm7[3]1405; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} xmm0 = xmm0[0,1,2],xmm7[3]1406; AVX512DQ-FCP-NEXT: vpbroadcastw 74(%rdi), %xmm71407; AVX512DQ-FCP-NEXT: vpunpcklwd {{.*#+}} xmm7 = xmm7[0],xmm3[0],xmm7[1],xmm3[1],xmm7[2],xmm3[2],xmm7[3],xmm3[3]1408; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm5 = xmm5[6,7,2,3,u,u,14,15,u,u,u,u,u,u,u,u]1409; AVX512DQ-FCP-NEXT: vpshuflw {{.*#+}} xmm6 = xmm6[1,1,1,1,4,5,6,7]1410; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm5 = xmm5[0,1],xmm6[2],xmm5[3,4],xmm6[5],xmm5[6],xmm6[7]1411; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm5 = xmm5[2,3,6,7,4,5,0,1,10,11,14,15,u,u,u,u]1412; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} xmm5 = xmm5[0,1,2],xmm7[3]1413; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm6 = ymm1[0,1],ymm2[2],ymm1[3,4],ymm2[5],ymm1[6,7]1414; AVX512DQ-FCP-NEXT: vpshufd {{.*#+}} xmm7 = xmm6[2,1,2,3]1415; AVX512DQ-FCP-NEXT: vpshuflw {{.*#+}} xmm8 = xmm7[2,1,2,0,4,5,6,7]1416; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm6, %xmm61417; AVX512DQ-FCP-NEXT: vpshufd {{.*#+}} xmm6 = xmm6[0,3,2,1]1418; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm9 = xmm6[u,u,0,1,4,5,u,u,12,13,u,u,u,u,u,u]1419; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm8 = xmm8[0],xmm9[1,2],xmm8[3],xmm9[4,5,6,7]1420; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} xmm9 = xmm4[0,1],xmm3[2],xmm4[3]1421; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm10 = xmm9[u,u,u,u,u,u,u,u,u,u,0,1,12,13,8,9]1422; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm8 = xmm8[0,1,2,3,4],xmm10[5,6,7]1423; AVX512DQ-FCP-NEXT: vpshuflw {{.*#+}} xmm7 = xmm7[3,1,2,1,4,5,6,7]1424; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm6 = xmm6[u,u,2,3,6,7,u,u,14,15,u,u,u,u,u,u]1425; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm6 = xmm7[0],xmm6[1,2],xmm7[3],xmm6[4,5,6,7]1426; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm7 = xmm9[u,u,u,u,u,u,u,u,u,u,2,3,14,15,10,11]1427; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm6 = xmm6[0,1,2,3,4],xmm7[5,6,7]1428; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0,1],ymm1[2],ymm2[3,4],ymm1[5],ymm2[6,7]1429; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm1, %xmm21430; AVX512DQ-FCP-NEXT: vpshuflw {{.*#+}} xmm7 = xmm2[2,2,2,2,4,5,6,7]1431; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm9 = xmm1[8,9,u,u,0,1,12,13,u,u,u,u,u,u,u,u]1432; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm7 = xmm9[0],xmm7[1],xmm9[2,3],xmm7[4],xmm9[5,6,7]1433; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} xmm3 = xmm3[0],xmm4[1],xmm3[2,3]1434; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm4 = xmm3[u,u,u,u,u,u,u,u,u,u,4,5,0,1,12,13]1435; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm4 = xmm7[0,1,2,3,4],xmm4[5,6,7]1436; AVX512DQ-FCP-NEXT: vmovdqa {{.*#+}} xmm7 = [10,11,6,7,2,3,14,15,10,11,10,11,12,13,14,15]1437; AVX512DQ-FCP-NEXT: vpshufb %xmm7, %xmm2, %xmm21438; AVX512DQ-FCP-NEXT: vpshufb %xmm7, %xmm1, %xmm11439; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0],xmm2[1],xmm1[2,3],xmm2[4],xmm1[5,6,7]1440; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm2 = xmm3[u,u,u,u,u,u,u,u,u,u,6,7,2,3,14,15]1441; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1,2,3,4],xmm2[5,6,7]1442; AVX512DQ-FCP-NEXT: vmovdqa %xmm0, (%rsi)1443; AVX512DQ-FCP-NEXT: vmovdqa %xmm5, (%rdx)1444; AVX512DQ-FCP-NEXT: vmovdqa %xmm8, (%rcx)1445; AVX512DQ-FCP-NEXT: vmovdqa %xmm6, (%r8)1446; AVX512DQ-FCP-NEXT: vmovdqa %xmm4, (%r9)1447; AVX512DQ-FCP-NEXT: vmovdqa %xmm1, (%rax)1448; AVX512DQ-FCP-NEXT: vzeroupper1449; AVX512DQ-FCP-NEXT: retq1450;1451; AVX512BW-LABEL: load_i16_stride6_vf8:1452; AVX512BW: # %bb.0:1453; AVX512BW-NEXT: movq {{[0-9]+}}(%rsp), %rax1454; AVX512BW-NEXT: vmovdqa64 (%rdi), %zmm01455; AVX512BW-NEXT: vmovdqa64 64(%rdi), %zmm11456; AVX512BW-NEXT: vpmovsxbw {{.*#+}} xmm2 = [0,6,12,18,24,30,36,42]1457; AVX512BW-NEXT: vpermi2w %zmm1, %zmm0, %zmm21458; AVX512BW-NEXT: vpmovsxbw {{.*#+}} xmm3 = [1,7,13,19,25,31,37,43]1459; AVX512BW-NEXT: vpermi2w %zmm1, %zmm0, %zmm31460; AVX512BW-NEXT: vpmovsxbw {{.*#+}} xmm4 = [2,8,14,20,26,32,38,44]1461; AVX512BW-NEXT: vpermi2w %zmm1, %zmm0, %zmm41462; AVX512BW-NEXT: vpmovsxbw {{.*#+}} xmm5 = [3,9,15,21,27,33,39,45]1463; AVX512BW-NEXT: vpermi2w %zmm1, %zmm0, %zmm51464; AVX512BW-NEXT: vpmovsxbw {{.*#+}} xmm6 = [4,10,16,22,28,34,40,46]1465; AVX512BW-NEXT: vpermi2w %zmm1, %zmm0, %zmm61466; AVX512BW-NEXT: vpmovsxbw {{.*#+}} xmm7 = [5,11,17,23,29,35,41,47]1467; AVX512BW-NEXT: vpermi2w %zmm1, %zmm0, %zmm71468; AVX512BW-NEXT: vmovdqa %xmm2, (%rsi)1469; AVX512BW-NEXT: vmovdqa %xmm3, (%rdx)1470; AVX512BW-NEXT: vmovdqa %xmm4, (%rcx)1471; AVX512BW-NEXT: vmovdqa %xmm5, (%r8)1472; AVX512BW-NEXT: vmovdqa %xmm6, (%r9)1473; AVX512BW-NEXT: vmovdqa %xmm7, (%rax)1474; AVX512BW-NEXT: vzeroupper1475; AVX512BW-NEXT: retq1476;1477; AVX512BW-FCP-LABEL: load_i16_stride6_vf8:1478; AVX512BW-FCP: # %bb.0:1479; AVX512BW-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax1480; AVX512BW-FCP-NEXT: vmovdqa64 (%rdi), %zmm01481; AVX512BW-FCP-NEXT: vmovdqa64 64(%rdi), %zmm11482; AVX512BW-FCP-NEXT: vpmovsxbw {{.*#+}} xmm2 = [0,6,12,18,24,30,36,42]1483; AVX512BW-FCP-NEXT: vpermi2w %zmm1, %zmm0, %zmm21484; AVX512BW-FCP-NEXT: vpmovsxbw {{.*#+}} xmm3 = [1,7,13,19,25,31,37,43]1485; AVX512BW-FCP-NEXT: vpermi2w %zmm1, %zmm0, %zmm31486; AVX512BW-FCP-NEXT: vpmovsxbw {{.*#+}} xmm4 = [2,8,14,20,26,32,38,44]1487; AVX512BW-FCP-NEXT: vpermi2w %zmm1, %zmm0, %zmm41488; AVX512BW-FCP-NEXT: vpmovsxbw {{.*#+}} xmm5 = [3,9,15,21,27,33,39,45]1489; AVX512BW-FCP-NEXT: vpermi2w %zmm1, %zmm0, %zmm51490; AVX512BW-FCP-NEXT: vpmovsxbw {{.*#+}} xmm6 = [4,10,16,22,28,34,40,46]1491; AVX512BW-FCP-NEXT: vpermi2w %zmm1, %zmm0, %zmm61492; AVX512BW-FCP-NEXT: vpmovsxbw {{.*#+}} xmm7 = [5,11,17,23,29,35,41,47]1493; AVX512BW-FCP-NEXT: vpermi2w %zmm1, %zmm0, %zmm71494; AVX512BW-FCP-NEXT: vmovdqa %xmm2, (%rsi)1495; AVX512BW-FCP-NEXT: vmovdqa %xmm3, (%rdx)1496; AVX512BW-FCP-NEXT: vmovdqa %xmm4, (%rcx)1497; AVX512BW-FCP-NEXT: vmovdqa %xmm5, (%r8)1498; AVX512BW-FCP-NEXT: vmovdqa %xmm6, (%r9)1499; AVX512BW-FCP-NEXT: vmovdqa %xmm7, (%rax)1500; AVX512BW-FCP-NEXT: vzeroupper1501; AVX512BW-FCP-NEXT: retq1502;1503; AVX512DQ-BW-LABEL: load_i16_stride6_vf8:1504; AVX512DQ-BW: # %bb.0:1505; AVX512DQ-BW-NEXT: movq {{[0-9]+}}(%rsp), %rax1506; AVX512DQ-BW-NEXT: vmovdqa64 (%rdi), %zmm01507; AVX512DQ-BW-NEXT: vmovdqa64 64(%rdi), %zmm11508; AVX512DQ-BW-NEXT: vpmovsxbw {{.*#+}} xmm2 = [0,6,12,18,24,30,36,42]1509; AVX512DQ-BW-NEXT: vpermi2w %zmm1, %zmm0, %zmm21510; AVX512DQ-BW-NEXT: vpmovsxbw {{.*#+}} xmm3 = [1,7,13,19,25,31,37,43]1511; AVX512DQ-BW-NEXT: vpermi2w %zmm1, %zmm0, %zmm31512; AVX512DQ-BW-NEXT: vpmovsxbw {{.*#+}} xmm4 = [2,8,14,20,26,32,38,44]1513; AVX512DQ-BW-NEXT: vpermi2w %zmm1, %zmm0, %zmm41514; AVX512DQ-BW-NEXT: vpmovsxbw {{.*#+}} xmm5 = [3,9,15,21,27,33,39,45]1515; AVX512DQ-BW-NEXT: vpermi2w %zmm1, %zmm0, %zmm51516; AVX512DQ-BW-NEXT: vpmovsxbw {{.*#+}} xmm6 = [4,10,16,22,28,34,40,46]1517; AVX512DQ-BW-NEXT: vpermi2w %zmm1, %zmm0, %zmm61518; AVX512DQ-BW-NEXT: vpmovsxbw {{.*#+}} xmm7 = [5,11,17,23,29,35,41,47]1519; AVX512DQ-BW-NEXT: vpermi2w %zmm1, %zmm0, %zmm71520; AVX512DQ-BW-NEXT: vmovdqa %xmm2, (%rsi)1521; AVX512DQ-BW-NEXT: vmovdqa %xmm3, (%rdx)1522; AVX512DQ-BW-NEXT: vmovdqa %xmm4, (%rcx)1523; AVX512DQ-BW-NEXT: vmovdqa %xmm5, (%r8)1524; AVX512DQ-BW-NEXT: vmovdqa %xmm6, (%r9)1525; AVX512DQ-BW-NEXT: vmovdqa %xmm7, (%rax)1526; AVX512DQ-BW-NEXT: vzeroupper1527; AVX512DQ-BW-NEXT: retq1528;1529; AVX512DQ-BW-FCP-LABEL: load_i16_stride6_vf8:1530; AVX512DQ-BW-FCP: # %bb.0:1531; AVX512DQ-BW-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax1532; AVX512DQ-BW-FCP-NEXT: vmovdqa64 (%rdi), %zmm01533; AVX512DQ-BW-FCP-NEXT: vmovdqa64 64(%rdi), %zmm11534; AVX512DQ-BW-FCP-NEXT: vpmovsxbw {{.*#+}} xmm2 = [0,6,12,18,24,30,36,42]1535; AVX512DQ-BW-FCP-NEXT: vpermi2w %zmm1, %zmm0, %zmm21536; AVX512DQ-BW-FCP-NEXT: vpmovsxbw {{.*#+}} xmm3 = [1,7,13,19,25,31,37,43]1537; AVX512DQ-BW-FCP-NEXT: vpermi2w %zmm1, %zmm0, %zmm31538; AVX512DQ-BW-FCP-NEXT: vpmovsxbw {{.*#+}} xmm4 = [2,8,14,20,26,32,38,44]1539; AVX512DQ-BW-FCP-NEXT: vpermi2w %zmm1, %zmm0, %zmm41540; AVX512DQ-BW-FCP-NEXT: vpmovsxbw {{.*#+}} xmm5 = [3,9,15,21,27,33,39,45]1541; AVX512DQ-BW-FCP-NEXT: vpermi2w %zmm1, %zmm0, %zmm51542; AVX512DQ-BW-FCP-NEXT: vpmovsxbw {{.*#+}} xmm6 = [4,10,16,22,28,34,40,46]1543; AVX512DQ-BW-FCP-NEXT: vpermi2w %zmm1, %zmm0, %zmm61544; AVX512DQ-BW-FCP-NEXT: vpmovsxbw {{.*#+}} xmm7 = [5,11,17,23,29,35,41,47]1545; AVX512DQ-BW-FCP-NEXT: vpermi2w %zmm1, %zmm0, %zmm71546; AVX512DQ-BW-FCP-NEXT: vmovdqa %xmm2, (%rsi)1547; AVX512DQ-BW-FCP-NEXT: vmovdqa %xmm3, (%rdx)1548; AVX512DQ-BW-FCP-NEXT: vmovdqa %xmm4, (%rcx)1549; AVX512DQ-BW-FCP-NEXT: vmovdqa %xmm5, (%r8)1550; AVX512DQ-BW-FCP-NEXT: vmovdqa %xmm6, (%r9)1551; AVX512DQ-BW-FCP-NEXT: vmovdqa %xmm7, (%rax)1552; AVX512DQ-BW-FCP-NEXT: vzeroupper1553; AVX512DQ-BW-FCP-NEXT: retq1554 %wide.vec = load <48 x i16>, ptr %in.vec, align 641555 %strided.vec0 = shufflevector <48 x i16> %wide.vec, <48 x i16> poison, <8 x i32> <i32 0, i32 6, i32 12, i32 18, i32 24, i32 30, i32 36, i32 42>1556 %strided.vec1 = shufflevector <48 x i16> %wide.vec, <48 x i16> poison, <8 x i32> <i32 1, i32 7, i32 13, i32 19, i32 25, i32 31, i32 37, i32 43>1557 %strided.vec2 = shufflevector <48 x i16> %wide.vec, <48 x i16> poison, <8 x i32> <i32 2, i32 8, i32 14, i32 20, i32 26, i32 32, i32 38, i32 44>1558 %strided.vec3 = shufflevector <48 x i16> %wide.vec, <48 x i16> poison, <8 x i32> <i32 3, i32 9, i32 15, i32 21, i32 27, i32 33, i32 39, i32 45>1559 %strided.vec4 = shufflevector <48 x i16> %wide.vec, <48 x i16> poison, <8 x i32> <i32 4, i32 10, i32 16, i32 22, i32 28, i32 34, i32 40, i32 46>1560 %strided.vec5 = shufflevector <48 x i16> %wide.vec, <48 x i16> poison, <8 x i32> <i32 5, i32 11, i32 17, i32 23, i32 29, i32 35, i32 41, i32 47>1561 store <8 x i16> %strided.vec0, ptr %out.vec0, align 641562 store <8 x i16> %strided.vec1, ptr %out.vec1, align 641563 store <8 x i16> %strided.vec2, ptr %out.vec2, align 641564 store <8 x i16> %strided.vec3, ptr %out.vec3, align 641565 store <8 x i16> %strided.vec4, ptr %out.vec4, align 641566 store <8 x i16> %strided.vec5, ptr %out.vec5, align 641567 ret void1568}1569 1570define void @load_i16_stride6_vf16(ptr %in.vec, ptr %out.vec0, ptr %out.vec1, ptr %out.vec2, ptr %out.vec3, ptr %out.vec4, ptr %out.vec5) nounwind {1571; SSE-LABEL: load_i16_stride6_vf16:1572; SSE: # %bb.0:1573; SSE-NEXT: subq $136, %rsp1574; SSE-NEXT: movdqa 112(%rdi), %xmm91575; SSE-NEXT: movdqa 128(%rdi), %xmm71576; SSE-NEXT: movdqa 64(%rdi), %xmm21577; SSE-NEXT: movdqa 80(%rdi), %xmm111578; SSE-NEXT: movdqa (%rdi), %xmm31579; SSE-NEXT: movdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1580; SSE-NEXT: movdqa 16(%rdi), %xmm61581; SSE-NEXT: movdqa 32(%rdi), %xmm01582; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1583; SSE-NEXT: movdqa 48(%rdi), %xmm81584; SSE-NEXT: pshuflw {{.*#+}} xmm0 = xmm0[0,1,1,2,4,5,6,7]1585; SSE-NEXT: movdqa {{.*#+}} xmm10 = [65535,65535,65535,0,0,0,65535,65535]1586; SSE-NEXT: movdqa %xmm10, %xmm11587; SSE-NEXT: pandn %xmm0, %xmm11588; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm3[0,1,0,3]1589; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1590; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,6,6,7]1591; SSE-NEXT: punpckhdq {{.*#+}} xmm0 = xmm0[2],xmm6[2],xmm0[3],xmm6[3]1592; SSE-NEXT: pand %xmm10, %xmm01593; SSE-NEXT: por %xmm1, %xmm01594; SSE-NEXT: movdqa %xmm0, %xmm11595; SSE-NEXT: movdqa %xmm2, %xmm131596; SSE-NEXT: pshufd {{.*#+}} xmm12 = xmm2[2,2,3,3]1597; SSE-NEXT: punpcklwd {{.*#+}} xmm12 = xmm12[0],xmm11[0],xmm12[1],xmm11[1],xmm12[2],xmm11[2],xmm12[3],xmm11[3]1598; SSE-NEXT: movdqa %xmm11, %xmm01599; SSE-NEXT: shufps {{.*#+}} xmm0 = xmm0[2,0],xmm2[3,0]1600; SSE-NEXT: movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1601; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1602; SSE-NEXT: shufps {{.*#+}} xmm2 = xmm2[1,0],xmm11[0,0]1603; SSE-NEXT: shufps {{.*#+}} xmm2 = xmm2[2,0],xmm11[2,3]1604; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1605; SSE-NEXT: pslld $16, %xmm111606; SSE-NEXT: psrldq {{.*#+}} xmm13 = xmm13[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero1607; SSE-NEXT: punpcklwd {{.*#+}} xmm13 = xmm13[0],xmm11[0],xmm13[1],xmm11[1],xmm13[2],xmm11[2],xmm13[3],xmm11[3]1608; SSE-NEXT: pshufd {{.*#+}} xmm4 = xmm8[0,3,2,3]1609; SSE-NEXT: pshuflw {{.*#+}} xmm0 = xmm4[0,1,0,2,4,5,6,7]1610; SSE-NEXT: shufps {{.*#+}} xmm13 = xmm13[3,1],xmm0[1,3]1611; SSE-NEXT: shufps {{.*#+}} xmm1 = xmm1[0,1],xmm13[2,0]1612; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1613; SSE-NEXT: pshuflw {{.*#+}} xmm0 = xmm7[0,1,1,2,4,5,6,7]1614; SSE-NEXT: movdqa %xmm10, %xmm31615; SSE-NEXT: pandn %xmm0, %xmm31616; SSE-NEXT: movdqa 96(%rdi), %xmm01617; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1618; SSE-NEXT: pshufd {{.*#+}} xmm5 = xmm0[0,1,0,3]1619; SSE-NEXT: pshufhw {{.*#+}} xmm2 = xmm5[0,1,2,3,4,6,6,7]1620; SSE-NEXT: movdqa %xmm9, %xmm111621; SSE-NEXT: movdqa %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1622; SSE-NEXT: punpckhdq {{.*#+}} xmm2 = xmm2[2],xmm9[2],xmm2[3],xmm9[3]1623; SSE-NEXT: pand %xmm10, %xmm21624; SSE-NEXT: por %xmm3, %xmm21625; SSE-NEXT: movdqa 160(%rdi), %xmm141626; SSE-NEXT: movdqa 176(%rdi), %xmm31627; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm14[2,2,3,3]1628; SSE-NEXT: punpcklwd {{.*#+}} xmm0 = xmm0[0],xmm3[0],xmm0[1],xmm3[1],xmm0[2],xmm3[2],xmm0[3],xmm3[3]1629; SSE-NEXT: movdqa %xmm3, %xmm11630; SSE-NEXT: shufps {{.*#+}} xmm1 = xmm1[2,0],xmm14[3,0]1631; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1632; SSE-NEXT: movdqa %xmm14, %xmm131633; SSE-NEXT: movaps %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1634; SSE-NEXT: shufps {{.*#+}} xmm14 = xmm14[1,0],xmm3[0,0]1635; SSE-NEXT: shufps {{.*#+}} xmm14 = xmm14[2,0],xmm3[2,3]1636; SSE-NEXT: pslld $16, %xmm31637; SSE-NEXT: psrldq {{.*#+}} xmm13 = xmm13[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero1638; SSE-NEXT: punpcklwd {{.*#+}} xmm13 = xmm13[0],xmm3[0],xmm13[1],xmm3[1],xmm13[2],xmm3[2],xmm13[3],xmm3[3]1639; SSE-NEXT: movdqa 144(%rdi), %xmm11640; SSE-NEXT: movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1641; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[0,3,2,3]1642; SSE-NEXT: pshuflw {{.*#+}} xmm9 = xmm1[0,1,0,2,4,5,6,7]1643; SSE-NEXT: shufps {{.*#+}} xmm13 = xmm13[3,1],xmm9[1,3]1644; SSE-NEXT: shufps {{.*#+}} xmm2 = xmm2[0,1],xmm13[2,0]1645; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1646; SSE-NEXT: movdqa %xmm6, %xmm131647; SSE-NEXT: psrld $16, %xmm131648; SSE-NEXT: pshufhw $237, {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Folded Reload1649; SSE-NEXT: # xmm9 = mem[0,1,2,3,5,7,6,7]1650; SSE-NEXT: punpckhdq {{.*#+}} xmm9 = xmm9[2],xmm13[2],xmm9[3],xmm13[3]1651; SSE-NEXT: movdqa %xmm10, %xmm131652; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload1653; SSE-NEXT: pandn %xmm15, %xmm131654; SSE-NEXT: pand %xmm10, %xmm91655; SSE-NEXT: por %xmm13, %xmm91656; SSE-NEXT: pshuflw {{.*#+}} xmm4 = xmm4[0,1,1,3,4,5,6,7]1657; SSE-NEXT: shufps {{.*#+}} xmm12 = xmm12[3,1],xmm4[1,3]1658; SSE-NEXT: shufps {{.*#+}} xmm9 = xmm9[0,1],xmm12[2,0]1659; SSE-NEXT: movdqa %xmm11, %xmm41660; SSE-NEXT: psrld $16, %xmm41661; SSE-NEXT: pshufhw {{.*#+}} xmm2 = xmm5[0,1,2,3,5,7,6,7]1662; SSE-NEXT: punpckhdq {{.*#+}} xmm2 = xmm2[2],xmm4[2],xmm2[3],xmm4[3]1663; SSE-NEXT: pand %xmm10, %xmm21664; SSE-NEXT: movdqa %xmm7, %xmm51665; SSE-NEXT: pandn %xmm7, %xmm101666; SSE-NEXT: por %xmm2, %xmm101667; SSE-NEXT: pshuflw {{.*#+}} xmm1 = xmm1[0,1,1,3,4,5,6,7]1668; SSE-NEXT: shufps {{.*#+}} xmm0 = xmm0[3,1],xmm1[1,3]1669; SSE-NEXT: shufps {{.*#+}} xmm10 = xmm10[0,1],xmm0[2,0]1670; SSE-NEXT: movaps %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1671; SSE-NEXT: movdqa %xmm15, %xmm11672; SSE-NEXT: psrldq {{.*#+}} xmm1 = xmm1[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero1673; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm8[1,1,1,1]1674; SSE-NEXT: punpcklqdq {{.*#+}} xmm1 = xmm1[0],xmm0[0]1675; SSE-NEXT: movdqa {{.*#+}} xmm2 = [65535,65535,65535,0,0,65535,65535,65535]1676; SSE-NEXT: movdqa %xmm2, %xmm41677; SSE-NEXT: pandn %xmm1, %xmm41678; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload1679; SSE-NEXT: movdqa %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1680; SSE-NEXT: shufps {{.*#+}} xmm3 = xmm3[1,0],xmm6[0,0]1681; SSE-NEXT: shufps {{.*#+}} xmm3 = xmm3[2,0],xmm6[2,3]1682; SSE-NEXT: pshuflw {{.*#+}} xmm1 = xmm3[0,2,2,3,4,5,6,7]1683; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[0,3,2,3]1684; SSE-NEXT: pshuflw {{.*#+}} xmm1 = xmm1[1,0,2,3,4,5,6,7]1685; SSE-NEXT: pand %xmm2, %xmm11686; SSE-NEXT: por %xmm4, %xmm11687; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload1688; SSE-NEXT: shufps $132, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload1689; SSE-NEXT: # xmm0 = xmm0[0,1],mem[0,2]1690; SSE-NEXT: movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1691; SSE-NEXT: pshufhw {{.*#+}} xmm4 = xmm0[0,1,2,3,4,6,6,7]1692; SSE-NEXT: pshufd {{.*#+}} xmm4 = xmm4[0,1,2,0]1693; SSE-NEXT: pshufhw {{.*#+}} xmm4 = xmm4[0,1,2,3,4,6,5,4]1694; SSE-NEXT: movdqa {{.*#+}} xmm12 = [65535,65535,65535,65535,65535,0,0,0]1695; SSE-NEXT: movdqa %xmm12, %xmm01696; SSE-NEXT: pandn %xmm4, %xmm01697; SSE-NEXT: pand %xmm12, %xmm11698; SSE-NEXT: por %xmm1, %xmm01699; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1700; SSE-NEXT: movdqa %xmm7, %xmm11701; SSE-NEXT: movdqa %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1702; SSE-NEXT: psrldq {{.*#+}} xmm1 = xmm1[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero1703; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload1704; SSE-NEXT: pshufd {{.*#+}} xmm4 = xmm7[1,1,1,1]1705; SSE-NEXT: punpcklqdq {{.*#+}} xmm1 = xmm1[0],xmm4[0]1706; SSE-NEXT: movdqa %xmm2, %xmm41707; SSE-NEXT: pandn %xmm1, %xmm41708; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload1709; SSE-NEXT: movaps %xmm10, %xmm131710; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload1711; SSE-NEXT: shufps {{.*#+}} xmm13 = xmm13[1,0],xmm15[0,0]1712; SSE-NEXT: shufps {{.*#+}} xmm13 = xmm13[2,0],xmm15[2,3]1713; SSE-NEXT: pshuflw {{.*#+}} xmm1 = xmm13[0,2,2,3,4,5,6,7]1714; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[0,3,2,3]1715; SSE-NEXT: pshuflw {{.*#+}} xmm0 = xmm1[1,0,2,3,4,5,6,7]1716; SSE-NEXT: pand %xmm2, %xmm01717; SSE-NEXT: por %xmm4, %xmm01718; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload1719; SSE-NEXT: shufps $132, {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Folded Reload1720; SSE-NEXT: # xmm6 = xmm6[0,1],mem[0,2]1721; SSE-NEXT: pshufhw {{.*#+}} xmm1 = xmm6[0,1,2,3,4,6,6,7]1722; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[0,1,2,0]1723; SSE-NEXT: pshufhw {{.*#+}} xmm4 = xmm1[0,1,2,3,4,6,5,4]1724; SSE-NEXT: movdqa %xmm12, %xmm11725; SSE-NEXT: pandn %xmm4, %xmm11726; SSE-NEXT: pand %xmm12, %xmm01727; SSE-NEXT: por %xmm0, %xmm11728; SSE-NEXT: movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1729; SSE-NEXT: movdqa %xmm8, %xmm11730; SSE-NEXT: movdqa %xmm8, (%rsp) # 16-byte Spill1731; SSE-NEXT: movdqa %xmm8, %xmm01732; SSE-NEXT: psrlq $48, %xmm01733; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload1734; SSE-NEXT: pshufd {{.*#+}} xmm4 = xmm8[2,2,3,3]1735; SSE-NEXT: punpcklqdq {{.*#+}} xmm4 = xmm4[0],xmm0[0]1736; SSE-NEXT: movdqa %xmm2, %xmm01737; SSE-NEXT: pandn %xmm4, %xmm01738; SSE-NEXT: pshuflw {{.*#+}} xmm3 = xmm3[3,1,2,3,4,5,6,7]1739; SSE-NEXT: pshufd {{.*#+}} xmm3 = xmm3[0,3,2,3]1740; SSE-NEXT: pshuflw {{.*#+}} xmm3 = xmm3[0,1,3,3,4,5,6,7]1741; SSE-NEXT: pand %xmm2, %xmm31742; SSE-NEXT: por %xmm0, %xmm31743; SSE-NEXT: pshufhw $231, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload1744; SSE-NEXT: # xmm0 = mem[0,1,2,3,7,5,6,7]1745; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,1,0,2]1746; SSE-NEXT: movdqa %xmm12, %xmm111747; SSE-NEXT: pandn %xmm0, %xmm111748; SSE-NEXT: pand %xmm12, %xmm31749; SSE-NEXT: por %xmm3, %xmm111750; SSE-NEXT: movdqa %xmm7, %xmm41751; SSE-NEXT: movdqa %xmm7, %xmm01752; SSE-NEXT: psrlq $48, %xmm01753; SSE-NEXT: pshufd {{.*#+}} xmm3 = xmm5[2,2,3,3]1754; SSE-NEXT: punpcklqdq {{.*#+}} xmm3 = xmm3[0],xmm0[0]1755; SSE-NEXT: pshuflw {{.*#+}} xmm0 = xmm13[3,1,2,3,4,5,6,7]1756; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,3,2,3]1757; SSE-NEXT: pshuflw {{.*#+}} xmm0 = xmm0[0,1,3,3,4,5,6,7]1758; SSE-NEXT: pand %xmm2, %xmm01759; SSE-NEXT: pandn %xmm3, %xmm21760; SSE-NEXT: por %xmm0, %xmm21761; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm6[0,1,2,3,7,5,6,7]1762; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,1,0,2]1763; SSE-NEXT: movdqa %xmm12, %xmm71764; SSE-NEXT: pandn %xmm0, %xmm71765; SSE-NEXT: pand %xmm12, %xmm21766; SSE-NEXT: por %xmm2, %xmm71767; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload1768; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm5[1,1,1,1]1769; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload1770; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm6[2,3,2,3]1771; SSE-NEXT: punpcklwd {{.*#+}} xmm2 = xmm2[0],xmm0[0],xmm2[1],xmm0[1],xmm2[2],xmm0[2],xmm2[3],xmm0[3]1772; SSE-NEXT: pshufd {{.*#+}} xmm13 = xmm8[0,1,0,3]1773; SSE-NEXT: pshufhw {{.*#+}} xmm3 = xmm13[0,1,2,3,4,5,4,6]1774; SSE-NEXT: punpckhqdq {{.*#+}} xmm3 = xmm3[1],xmm1[1]1775; SSE-NEXT: movss {{.*#+}} xmm3 = xmm2[0],xmm3[1,2,3]1776; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload1777; SSE-NEXT: pshuflw {{.*#+}} xmm0 = xmm8[0,2,2,3,4,5,6,7]1778; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,1,0,3]1779; SSE-NEXT: pshufhw {{.*#+}} xmm2 = xmm0[0,1,2,3,4,5,4,6]1780; SSE-NEXT: movdqa %xmm12, %xmm11781; SSE-NEXT: pandn %xmm2, %xmm11782; SSE-NEXT: andps %xmm12, %xmm31783; SSE-NEXT: por %xmm3, %xmm11784; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm15[1,1,1,1]1785; SSE-NEXT: pshufd {{.*#+}} xmm3 = xmm10[2,3,2,3]1786; SSE-NEXT: punpcklwd {{.*#+}} xmm3 = xmm3[0],xmm2[0],xmm3[1],xmm2[1],xmm3[2],xmm2[2],xmm3[3],xmm2[3]1787; SSE-NEXT: pshufd $196, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload1788; SSE-NEXT: # xmm0 = mem[0,1,0,3]1789; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1790; SSE-NEXT: pshufhw {{.*#+}} xmm2 = xmm0[0,1,2,3,4,5,4,6]1791; SSE-NEXT: punpckhqdq {{.*#+}} xmm2 = xmm2[1],xmm4[1]1792; SSE-NEXT: movss {{.*#+}} xmm2 = xmm3[0],xmm2[1,2,3]1793; SSE-NEXT: pshuflw {{.*#+}} xmm3 = xmm14[0,2,2,3,4,5,6,7]1794; SSE-NEXT: pshufd {{.*#+}} xmm3 = xmm3[0,1,0,3]1795; SSE-NEXT: pshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,4,5,4,6]1796; SSE-NEXT: movdqa %xmm12, %xmm41797; SSE-NEXT: pandn %xmm3, %xmm41798; SSE-NEXT: andps %xmm12, %xmm21799; SSE-NEXT: por %xmm2, %xmm41800; SSE-NEXT: psrlq $48, %xmm51801; SSE-NEXT: psrldq {{.*#+}} xmm6 = xmm6[10,11,12,13,14,15],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero1802; SSE-NEXT: punpcklwd {{.*#+}} xmm6 = xmm6[0],xmm5[0],xmm6[1],xmm5[1],xmm6[2],xmm5[2],xmm6[3],xmm5[3]1803; SSE-NEXT: movdqa (%rsp), %xmm0 # 16-byte Reload1804; SSE-NEXT: psrld $16, %xmm01805; SSE-NEXT: pshufhw {{.*#+}} xmm2 = xmm13[0,1,2,3,4,5,5,7]1806; SSE-NEXT: punpckhqdq {{.*#+}} xmm2 = xmm2[1],xmm0[1]1807; SSE-NEXT: movss {{.*#+}} xmm2 = xmm6[0],xmm2[1,2,3]1808; SSE-NEXT: pshuflw {{.*#+}} xmm3 = xmm8[3,1,2,3,4,5,6,7]1809; SSE-NEXT: pshufd {{.*#+}} xmm3 = xmm3[0,1,0,3]1810; SSE-NEXT: pshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,4,4,5,7]1811; SSE-NEXT: movdqa %xmm12, %xmm101812; SSE-NEXT: pandn %xmm3, %xmm101813; SSE-NEXT: andps %xmm12, %xmm21814; SSE-NEXT: por %xmm2, %xmm101815; SSE-NEXT: psrlq $48, %xmm151816; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload1817; SSE-NEXT: psrldq {{.*#+}} xmm0 = xmm0[10,11,12,13,14,15],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero1818; SSE-NEXT: punpcklwd {{.*#+}} xmm0 = xmm0[0],xmm15[0],xmm0[1],xmm15[1],xmm0[2],xmm15[2],xmm0[3],xmm15[3]1819; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload1820; SSE-NEXT: psrld $16, %xmm31821; SSE-NEXT: pshufhw $212, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload1822; SSE-NEXT: # xmm2 = mem[0,1,2,3,4,5,5,7]1823; SSE-NEXT: punpckhqdq {{.*#+}} xmm2 = xmm2[1],xmm3[1]1824; SSE-NEXT: movss {{.*#+}} xmm2 = xmm0[0],xmm2[1,2,3]1825; SSE-NEXT: andps %xmm12, %xmm21826; SSE-NEXT: pshuflw {{.*#+}} xmm3 = xmm14[3,1,2,3,4,5,6,7]1827; SSE-NEXT: pshufd {{.*#+}} xmm3 = xmm3[0,1,0,3]1828; SSE-NEXT: pshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,4,4,5,7]1829; SSE-NEXT: pandn %xmm3, %xmm121830; SSE-NEXT: por %xmm2, %xmm121831; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload1832; SSE-NEXT: movaps %xmm0, 16(%rsi)1833; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload1834; SSE-NEXT: movaps %xmm0, (%rsi)1835; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload1836; SSE-NEXT: movaps %xmm0, 16(%rdx)1837; SSE-NEXT: movaps %xmm9, (%rdx)1838; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload1839; SSE-NEXT: movaps %xmm0, 16(%rcx)1840; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload1841; SSE-NEXT: movaps %xmm0, (%rcx)1842; SSE-NEXT: movdqa %xmm7, 16(%r8)1843; SSE-NEXT: movdqa %xmm11, (%r8)1844; SSE-NEXT: movdqa %xmm4, 16(%r9)1845; SSE-NEXT: movdqa %xmm1, (%r9)1846; SSE-NEXT: movq {{[0-9]+}}(%rsp), %rax1847; SSE-NEXT: movdqa %xmm12, 16(%rax)1848; SSE-NEXT: movdqa %xmm10, (%rax)1849; SSE-NEXT: addq $136, %rsp1850; SSE-NEXT: retq1851;1852; AVX-LABEL: load_i16_stride6_vf16:1853; AVX: # %bb.0:1854; AVX-NEXT: subq $88, %rsp1855; AVX-NEXT: vmovdqa 96(%rdi), %xmm01856; AVX-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1857; AVX-NEXT: vpshufd {{.*#+}} xmm13 = xmm0[0,1,0,3]1858; AVX-NEXT: vpshufhw {{.*#+}} xmm0 = xmm13[0,1,2,3,4,6,6,7]1859; AVX-NEXT: vmovdqa 112(%rdi), %xmm81860; AVX-NEXT: vpunpckhdq {{.*#+}} xmm0 = xmm0[2],xmm8[2],xmm0[3],xmm8[3]1861; AVX-NEXT: vmovdqa 80(%rdi), %xmm11862; AVX-NEXT: vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1863; AVX-NEXT: vpslld $16, %xmm1, %xmm21864; AVX-NEXT: vmovdqa 64(%rdi), %xmm41865; AVX-NEXT: vpsrldq {{.*#+}} xmm3 = xmm4[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero1866; AVX-NEXT: vpunpcklwd {{.*#+}} xmm2 = xmm3[0],xmm2[0],xmm3[1],xmm2[1],xmm3[2],xmm2[2],xmm3[3],xmm2[3]1867; AVX-NEXT: vinsertf128 $1, %xmm0, %ymm2, %ymm51868; AVX-NEXT: vmovdqa (%rdi), %xmm01869; AVX-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1870; AVX-NEXT: vmovdqa 16(%rdi), %xmm21871; AVX-NEXT: vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1872; AVX-NEXT: vmovdqa 32(%rdi), %xmm71873; AVX-NEXT: vmovdqa 48(%rdi), %xmm61874; AVX-NEXT: vpsrlq $16, %xmm7, %xmm101875; AVX-NEXT: vpshufd {{.*#+}} xmm3 = xmm6[0,3,2,3]1876; AVX-NEXT: vpshuflw {{.*#+}} xmm11 = xmm3[0,1,0,2,4,5,6,7]1877; AVX-NEXT: vpunpckldq {{.*#+}} xmm10 = xmm11[0],xmm10[0],xmm11[1],xmm10[1]1878; AVX-NEXT: vpshufd {{.*#+}} xmm15 = xmm0[0,1,0,3]1879; AVX-NEXT: vpshufhw {{.*#+}} xmm11 = xmm15[0,1,2,3,4,6,6,7]1880; AVX-NEXT: vpunpckhdq {{.*#+}} xmm11 = xmm11[2],xmm2[2],xmm11[3],xmm2[3]1881; AVX-NEXT: vpblendw {{.*#+}} xmm10 = xmm11[0,1,2],xmm10[3,4,5],xmm11[6,7]1882; AVX-NEXT: vblendps {{.*#+}} ymm2 = ymm10[0,1,2],ymm5[3,4,5,6,7]1883; AVX-NEXT: vmovdqa 176(%rdi), %xmm101884; AVX-NEXT: vpslld $16, %xmm10, %xmm51885; AVX-NEXT: vmovdqa 160(%rdi), %xmm111886; AVX-NEXT: vpsrldq {{.*#+}} xmm12 = xmm11[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero1887; AVX-NEXT: vpunpcklwd {{.*#+}} xmm14 = xmm12[0],xmm5[0],xmm12[1],xmm5[1],xmm12[2],xmm5[2],xmm12[3],xmm5[3]1888; AVX-NEXT: vmovdqa 128(%rdi), %xmm121889; AVX-NEXT: vpsrlq $16, %xmm12, %xmm01890; AVX-NEXT: vmovdqa 144(%rdi), %xmm11891; AVX-NEXT: vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1892; AVX-NEXT: vpshufd {{.*#+}} xmm1 = xmm1[0,3,2,3]1893; AVX-NEXT: vpshuflw {{.*#+}} xmm9 = xmm1[0,1,0,2,4,5,6,7]1894; AVX-NEXT: vpunpckldq {{.*#+}} xmm0 = xmm9[0],xmm0[0],xmm9[1],xmm0[1]1895; AVX-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,5],xmm14[6,7]1896; AVX-NEXT: vmovaps {{.*#+}} ymm14 = [65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,0,0,0,0,0]1897; AVX-NEXT: vandps %ymm2, %ymm14, %ymm21898; AVX-NEXT: vinsertf128 $1, %xmm0, %ymm0, %ymm01899; AVX-NEXT: vandnps %ymm0, %ymm14, %ymm01900; AVX-NEXT: vorps %ymm0, %ymm2, %ymm01901; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1902; AVX-NEXT: vpshufhw {{.*#+}} xmm0 = xmm13[0,1,2,3,5,7,6,7]1903; AVX-NEXT: vmovdqa %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1904; AVX-NEXT: vpsrld $16, %xmm8, %xmm21905; AVX-NEXT: vpunpckhdq {{.*#+}} xmm0 = xmm0[2],xmm2[2],xmm0[3],xmm2[3]1906; AVX-NEXT: vmovdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1907; AVX-NEXT: vpshufd {{.*#+}} xmm2 = xmm4[2,2,3,3]1908; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload1909; AVX-NEXT: vpunpcklwd {{.*#+}} xmm2 = xmm2[0],xmm13[0],xmm2[1],xmm13[1],xmm2[2],xmm13[2],xmm2[3],xmm13[3]1910; AVX-NEXT: vinsertf128 $1, %xmm0, %ymm2, %ymm01911; AVX-NEXT: vpshuflw {{.*#+}} xmm2 = xmm3[0,1,1,3,4,5,6,7]1912; AVX-NEXT: vpshufd {{.*#+}} xmm3 = xmm7[1,1,1,1]1913; AVX-NEXT: vpunpckldq {{.*#+}} xmm2 = xmm2[0],xmm3[0],xmm2[1],xmm3[1]1914; AVX-NEXT: vpshufhw {{.*#+}} xmm3 = xmm15[0,1,2,3,5,7,6,7]1915; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload1916; AVX-NEXT: vpsrld $16, %xmm5, %xmm91917; AVX-NEXT: vpunpckhdq {{.*#+}} xmm3 = xmm3[2],xmm9[2],xmm3[3],xmm9[3]1918; AVX-NEXT: vpblendw {{.*#+}} xmm2 = xmm3[0,1,2],xmm2[3,4,5],xmm3[6,7]1919; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm2[0,1,2],ymm0[3,4,5,6,7]1920; AVX-NEXT: vpshuflw {{.*#+}} xmm1 = xmm1[0,1,1,3,4,5,6,7]1921; AVX-NEXT: vpshufd {{.*#+}} xmm2 = xmm12[1,1,1,1]1922; AVX-NEXT: vpunpckldq {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]1923; AVX-NEXT: vpshufd {{.*#+}} xmm2 = xmm11[2,2,3,3]1924; AVX-NEXT: vpunpcklwd {{.*#+}} xmm2 = xmm2[0],xmm10[0],xmm2[1],xmm10[1],xmm2[2],xmm10[2],xmm2[3],xmm10[3]1925; AVX-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,5],xmm2[6,7]1926; AVX-NEXT: vandps %ymm0, %ymm14, %ymm01927; AVX-NEXT: vinsertf128 $1, %xmm1, %ymm0, %ymm11928; AVX-NEXT: vandnps %ymm1, %ymm14, %ymm11929; AVX-NEXT: vorps %ymm1, %ymm0, %ymm01930; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1931; AVX-NEXT: vmovdqa %xmm6, %xmm21932; AVX-NEXT: vpshufd {{.*#+}} xmm0 = xmm6[1,1,1,1]1933; AVX-NEXT: vpsrldq {{.*#+}} xmm1 = xmm7[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero1934; AVX-NEXT: vpunpcklqdq {{.*#+}} xmm0 = xmm1[0],xmm0[0]1935; AVX-NEXT: vmovdqa {{.*#+}} xmm1 = [4,5,0,1,12,13,14,15,8,9,10,11,12,13,14,15]1936; AVX-NEXT: vpblendw $12, {{[-0-9]+}}(%r{{[sb]}}p), %xmm5, %xmm6 # 16-byte Folded Reload1937; AVX-NEXT: # xmm6 = xmm5[0,1],mem[2,3],xmm5[4,5,6,7]1938; AVX-NEXT: vpshufb %xmm1, %xmm6, %xmm31939; AVX-NEXT: vpblendw {{.*#+}} xmm0 = xmm3[0,1,2],xmm0[3,4],xmm3[5,6,7]1940; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload1941; AVX-NEXT: vpblendw {{.*#+}} xmm3 = xmm8[0,1],xmm5[2,3],xmm8[4,5,6,7]1942; AVX-NEXT: vpshufb %xmm1, %xmm3, %xmm11943; AVX-NEXT: vmovdqa {{.*#+}} xmm9 = [0,1,2,3,4,5,6,7,8,9,0,1,12,13,8,9]1944; AVX-NEXT: vpblendw {{.*#+}} xmm15 = xmm4[0,1,2,3],xmm13[4,5],xmm4[6,7]1945; AVX-NEXT: vpshufb %xmm9, %xmm15, %xmm131946; AVX-NEXT: vinsertf128 $1, %xmm1, %ymm13, %ymm11947; AVX-NEXT: vmovaps {{.*#+}} ymm13 = [0,0,0,0,0,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535]1948; AVX-NEXT: vandnps %ymm0, %ymm13, %ymm01949; AVX-NEXT: vandps %ymm1, %ymm13, %ymm11950; AVX-NEXT: vorps %ymm0, %ymm1, %ymm01951; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload1952; AVX-NEXT: vpshufd {{.*#+}} xmm1 = xmm4[1,1,1,1]1953; AVX-NEXT: vpsrldq {{.*#+}} xmm8 = xmm12[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero1954; AVX-NEXT: vpunpcklqdq {{.*#+}} xmm1 = xmm8[0],xmm1[0]1955; AVX-NEXT: vpblendw {{.*#+}} xmm8 = xmm11[0,1,2,3],xmm10[4,5],xmm11[6,7]1956; AVX-NEXT: vpshufb %xmm9, %xmm8, %xmm91957; AVX-NEXT: vpblendw {{.*#+}} xmm1 = xmm9[0,1,2],xmm1[3,4],xmm9[5,6,7]1958; AVX-NEXT: vandps %ymm0, %ymm14, %ymm01959; AVX-NEXT: vinsertf128 $1, %xmm1, %ymm0, %ymm11960; AVX-NEXT: vandnps %ymm1, %ymm14, %ymm11961; AVX-NEXT: vorps %ymm1, %ymm0, %ymm01962; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1963; AVX-NEXT: vmovdqa %xmm2, %xmm01964; AVX-NEXT: vpsrlq $48, %xmm2, %xmm11965; AVX-NEXT: vpshufd {{.*#+}} xmm9 = xmm7[2,2,3,3]1966; AVX-NEXT: vpunpcklqdq {{.*#+}} xmm1 = xmm9[0],xmm1[0]1967; AVX-NEXT: vmovdqa {{.*#+}} xmm9 = [6,7,2,3,14,15,14,15,8,9,10,11,12,13,14,15]1968; AVX-NEXT: vpshufb %xmm9, %xmm6, %xmm21969; AVX-NEXT: vpblendw {{.*#+}} xmm1 = xmm2[0,1,2],xmm1[3,4],xmm2[5,6,7]1970; AVX-NEXT: vpshufb %xmm9, %xmm3, %xmm21971; AVX-NEXT: vmovdqa {{.*#+}} xmm3 = [0,1,2,3,4,5,6,7,14,15,2,3,14,15,10,11]1972; AVX-NEXT: vpshufb %xmm3, %xmm15, %xmm91973; AVX-NEXT: vinsertf128 $1, %xmm2, %ymm9, %ymm21974; AVX-NEXT: vandnps %ymm1, %ymm13, %ymm11975; AVX-NEXT: vandps %ymm2, %ymm13, %ymm21976; AVX-NEXT: vorps %ymm1, %ymm2, %ymm11977; AVX-NEXT: vpsrlq $48, %xmm4, %xmm21978; AVX-NEXT: vpshufd {{.*#+}} xmm9 = xmm12[2,2,3,3]1979; AVX-NEXT: vpunpcklqdq {{.*#+}} xmm2 = xmm9[0],xmm2[0]1980; AVX-NEXT: vpshufb %xmm3, %xmm8, %xmm31981; AVX-NEXT: vpblendw {{.*#+}} xmm2 = xmm3[0,1,2],xmm2[3,4],xmm3[5,6,7]1982; AVX-NEXT: vandps %ymm1, %ymm14, %ymm11983; AVX-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm21984; AVX-NEXT: vandnps %ymm2, %ymm14, %ymm21985; AVX-NEXT: vorps %ymm2, %ymm1, %ymm141986; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload1987; AVX-NEXT: vpshufd {{.*#+}} xmm1 = xmm6[1,1,1,1]1988; AVX-NEXT: vmovdqa %xmm5, %xmm131989; AVX-NEXT: vpshufd {{.*#+}} xmm2 = xmm5[2,3,2,3]1990; AVX-NEXT: vpunpcklwd {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1],xmm2[2],xmm1[2],xmm2[3],xmm1[3]1991; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload1992; AVX-NEXT: vpblendw $12, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm2 # 16-byte Folded Reload1993; AVX-NEXT: # xmm2 = xmm2[0,1],mem[2,3],xmm2[4,5,6,7]1994; AVX-NEXT: vmovdqa {{.*#+}} xmm3 = [0,1,4,5,4,5,6,7,0,1,4,5,0,1,12,13]1995; AVX-NEXT: vpshufb %xmm3, %xmm2, %xmm81996; AVX-NEXT: vinsertf128 $1, %xmm1, %ymm8, %ymm11997; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload1998; AVX-NEXT: vpshufd {{.*#+}} xmm8 = xmm4[1,1,1,1]1999; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload2000; AVX-NEXT: vpshufd {{.*#+}} xmm9 = xmm15[2,3,2,3]2001; AVX-NEXT: vpunpcklwd {{.*#+}} xmm8 = xmm9[0],xmm8[0],xmm9[1],xmm8[1],xmm9[2],xmm8[2],xmm9[3],xmm8[3]2002; AVX-NEXT: vpshufd {{.*#+}} xmm7 = xmm7[0,1,0,3]2003; AVX-NEXT: vpshufhw {{.*#+}} xmm9 = xmm7[0,1,2,3,4,5,4,6]2004; AVX-NEXT: vpunpckhqdq {{.*#+}} xmm9 = xmm9[1],xmm0[1]2005; AVX-NEXT: vpblendw {{.*#+}} xmm8 = xmm8[0,1],xmm9[2,3,4,5,6,7]2006; AVX-NEXT: vmovaps {{.*#+}} ymm9 = [65535,65535,65535,65535,65535,0,0,0,0,0,65535,65535,65535,65535,65535,65535]2007; AVX-NEXT: vandnps %ymm1, %ymm9, %ymm12008; AVX-NEXT: vandps %ymm9, %ymm8, %ymm82009; AVX-NEXT: vorps %ymm1, %ymm8, %ymm12010; AVX-NEXT: vpblendw {{.*#+}} xmm8 = xmm10[0,1],xmm11[2,3],xmm10[4,5,6,7]2011; AVX-NEXT: vpshufb %xmm3, %xmm8, %xmm32012; AVX-NEXT: vpshufd {{.*#+}} xmm10 = xmm12[0,1,0,3]2013; AVX-NEXT: vpshufhw {{.*#+}} xmm11 = xmm10[0,1,2,3,4,5,4,6]2014; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload2015; AVX-NEXT: vpunpckhqdq {{.*#+}} xmm11 = xmm11[1],xmm5[1]2016; AVX-NEXT: vpblendw {{.*#+}} xmm3 = xmm11[0,1,2,3,4],xmm3[5,6,7]2017; AVX-NEXT: vinsertf128 $1, %xmm3, %ymm0, %ymm32018; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4],ymm3[5,6,7]2019; AVX-NEXT: vpsrlq $48, %xmm6, %xmm32020; AVX-NEXT: vpsrldq {{.*#+}} xmm11 = xmm13[10,11,12,13,14,15],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero2021; AVX-NEXT: vpunpcklwd {{.*#+}} xmm3 = xmm11[0],xmm3[0],xmm11[1],xmm3[1],xmm11[2],xmm3[2],xmm11[3],xmm3[3]2022; AVX-NEXT: vmovdqa {{.*#+}} xmm11 = [6,7,2,3,4,5,6,7,6,7,6,7,2,3,14,15]2023; AVX-NEXT: vpshufb %xmm11, %xmm2, %xmm22024; AVX-NEXT: vinsertf128 $1, %xmm3, %ymm2, %ymm22025; AVX-NEXT: vpsrlq $48, %xmm4, %xmm32026; AVX-NEXT: vpsrldq {{.*#+}} xmm4 = xmm15[10,11,12,13,14,15],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero2027; AVX-NEXT: vpunpcklwd {{.*#+}} xmm3 = xmm4[0],xmm3[0],xmm4[1],xmm3[1],xmm4[2],xmm3[2],xmm4[3],xmm3[3]2028; AVX-NEXT: vpsrld $16, %xmm0, %xmm42029; AVX-NEXT: vpshufhw {{.*#+}} xmm6 = xmm7[0,1,2,3,4,5,5,7]2030; AVX-NEXT: vpunpckhqdq {{.*#+}} xmm4 = xmm6[1],xmm4[1]2031; AVX-NEXT: vpblendw {{.*#+}} xmm3 = xmm3[0,1],xmm4[2,3,4,5,6,7]2032; AVX-NEXT: vandnps %ymm2, %ymm9, %ymm22033; AVX-NEXT: vandps %ymm3, %ymm9, %ymm32034; AVX-NEXT: vorps %ymm2, %ymm3, %ymm22035; AVX-NEXT: vpshufb %xmm11, %xmm8, %xmm32036; AVX-NEXT: vpsrld $16, %xmm5, %xmm42037; AVX-NEXT: vpshufhw {{.*#+}} xmm5 = xmm10[0,1,2,3,4,5,5,7]2038; AVX-NEXT: vpunpckhqdq {{.*#+}} xmm4 = xmm5[1],xmm4[1]2039; AVX-NEXT: vpblendw {{.*#+}} xmm3 = xmm4[0,1,2,3,4],xmm3[5,6,7]2040; AVX-NEXT: vinsertf128 $1, %xmm3, %ymm0, %ymm32041; AVX-NEXT: vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4],ymm3[5,6,7]2042; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload2043; AVX-NEXT: vmovaps %ymm3, (%rsi)2044; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload2045; AVX-NEXT: vmovaps %ymm0, (%rdx)2046; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload2047; AVX-NEXT: vmovaps %ymm0, (%rcx)2048; AVX-NEXT: vmovaps %ymm14, (%r8)2049; AVX-NEXT: vmovaps %ymm1, (%r9)2050; AVX-NEXT: movq {{[0-9]+}}(%rsp), %rax2051; AVX-NEXT: vmovaps %ymm2, (%rax)2052; AVX-NEXT: addq $88, %rsp2053; AVX-NEXT: vzeroupper2054; AVX-NEXT: retq2055;2056; AVX2-LABEL: load_i16_stride6_vf16:2057; AVX2: # %bb.0:2058; AVX2-NEXT: vmovdqa (%rdi), %ymm42059; AVX2-NEXT: vmovdqa 32(%rdi), %ymm52060; AVX2-NEXT: vmovdqa 64(%rdi), %ymm02061; AVX2-NEXT: vmovdqa 96(%rdi), %ymm32062; AVX2-NEXT: vmovdqa 160(%rdi), %ymm12063; AVX2-NEXT: vmovdqa 128(%rdi), %ymm22064; AVX2-NEXT: vpblendd {{.*#+}} ymm8 = ymm2[0,1],ymm1[2],ymm2[3,4],ymm1[5],ymm2[6,7]2065; AVX2-NEXT: vpshuflw {{.*#+}} xmm6 = xmm8[2,2,2,2,4,5,6,7]2066; AVX2-NEXT: vextracti128 $1, %ymm8, %xmm92067; AVX2-NEXT: vpblendw {{.*#+}} xmm6 = xmm9[0,1,2],xmm6[3,4],xmm9[5,6,7]2068; AVX2-NEXT: vpshufb {{.*#+}} xmm6 = xmm6[u,u,u,u,u,u,6,7,0,1,12,13,8,9,4,5]2069; AVX2-NEXT: vinserti128 $1, %xmm6, %ymm0, %ymm102070; AVX2-NEXT: vpblendd {{.*#+}} ymm11 = ymm4[0],ymm5[1],ymm4[2,3],ymm5[4],ymm4[5,6],ymm5[7]2071; AVX2-NEXT: vpshufb {{.*#+}} xmm6 = xmm11[0,1,12,13,u,u,4,5,u,u,u,u,12,13,14,15]2072; AVX2-NEXT: vextracti128 $1, %ymm11, %xmm122073; AVX2-NEXT: vpshufd {{.*#+}} xmm7 = xmm12[0,2,0,3]2074; AVX2-NEXT: vpshufhw {{.*#+}} xmm7 = xmm7[0,1,2,3,4,6,6,7]2075; AVX2-NEXT: vpblendw {{.*#+}} xmm13 = xmm6[0,1],xmm7[2],xmm6[3],xmm7[4,5],xmm6[6,7]2076; AVX2-NEXT: vperm2i128 {{.*#+}} ymm6 = ymm0[2,3],ymm3[2,3]2077; AVX2-NEXT: vperm2i128 {{.*#+}} ymm7 = ymm0[0,1],ymm3[0,1]2078; AVX2-NEXT: vpblendd {{.*#+}} ymm3 = ymm7[0],ymm6[1],ymm7[2,3,4,5],ymm6[6],ymm7[7]2079; AVX2-NEXT: vpshufb {{.*#+}} ymm0 = ymm3[u,u,u,u,u,u,u,u,u,u,u,u,8,9,4,5,16,17,28,29,24,25,28,29,24,25,28,29,24,25,20,21]2080; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm13[0,1,2],ymm0[3,4,5,6,7]2081; AVX2-NEXT: vpblendw {{.*#+}} ymm10 = ymm0[0,1,2],ymm10[3,4,5,6,7],ymm0[8,9,10],ymm10[11,12,13,14,15]2082; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm10[4,5,6,7]2083; AVX2-NEXT: vpshufd {{.*#+}} xmm10 = xmm12[2,1,0,3]2084; AVX2-NEXT: vpshufhw {{.*#+}} xmm8 = xmm8[0,1,2,3,5,5,5,5]2085; AVX2-NEXT: vpshufb {{.*#+}} xmm9 = xmm9[6,7,2,3,4,5,u,u,2,3,14,15,u,u,6,7]2086; AVX2-NEXT: vpblendw {{.*#+}} xmm8 = xmm9[0,1,2],xmm8[3],xmm9[4,5],xmm8[6],xmm9[7]2087; AVX2-NEXT: vinserti128 $1, %xmm8, %ymm0, %ymm82088; AVX2-NEXT: vpshuflw {{.*#+}} xmm9 = xmm10[1,1,1,1,4,5,6,7]2089; AVX2-NEXT: vpshuflw {{.*#+}} xmm10 = xmm11[3,1,2,3,4,5,6,7]2090; AVX2-NEXT: vpshufd {{.*#+}} xmm10 = xmm10[0,3,2,3]2091; AVX2-NEXT: vpblendw {{.*#+}} xmm9 = xmm10[0,1],xmm9[2],xmm10[3,4],xmm9[5],xmm10[6],xmm9[7]2092; AVX2-NEXT: vpshuflw {{.*#+}} xmm9 = xmm9[1,3,2,0,4,5,6,7]2093; AVX2-NEXT: vpshufhw {{.*#+}} xmm9 = xmm9[0,1,2,3,5,7,6,7]2094; AVX2-NEXT: vpshufb {{.*#+}} ymm3 = ymm3[u,u,u,u,u,u,u,u,u,u,u,u,10,11,6,7,18,19,30,31,26,27,26,27,30,31,26,27,26,27,22,23]2095; AVX2-NEXT: vpblendd {{.*#+}} ymm3 = ymm9[0,1,2],ymm3[3,4,5,6,7]2096; AVX2-NEXT: vpblendw {{.*#+}} ymm8 = ymm3[0,1,2],ymm8[3,4,5,6,7],ymm3[8,9,10],ymm8[11,12,13,14,15]2097; AVX2-NEXT: vpblendd {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm8[4,5,6,7]2098; AVX2-NEXT: vpblendd {{.*#+}} ymm8 = ymm1[0,1],ymm2[2],ymm1[3,4],ymm2[5],ymm1[6,7]2099; AVX2-NEXT: vextracti128 $1, %ymm8, %xmm92100; AVX2-NEXT: vpshufd {{.*#+}} xmm9 = xmm9[0,1,2,1]2101; AVX2-NEXT: vpshufhw {{.*#+}} xmm10 = xmm9[0,1,2,3,6,5,6,4]2102; AVX2-NEXT: vpshufd {{.*#+}} xmm11 = xmm8[2,1,0,3]2103; AVX2-NEXT: vpshuflw {{.*#+}} xmm8 = xmm11[0,0,0,0,4,5,6,7]2104; AVX2-NEXT: vpshufhw {{.*#+}} xmm8 = xmm8[0,1,2,3,4,4,6,7]2105; AVX2-NEXT: vpblendw {{.*#+}} xmm8 = xmm8[0,1,2,3],xmm10[4],xmm8[5,6],xmm10[7]2106; AVX2-NEXT: vinserti128 $1, %xmm8, %ymm0, %ymm82107; AVX2-NEXT: vpblendd {{.*#+}} ymm10 = ymm7[0,1],ymm6[2],ymm7[3],ymm6[4],ymm7[5,6],ymm6[7]2108; AVX2-NEXT: vpblendd {{.*#+}} ymm12 = ymm4[0,1],ymm5[2],ymm4[3,4],ymm5[5],ymm4[6,7]2109; AVX2-NEXT: vpshufd {{.*#+}} xmm13 = xmm12[2,1,2,3]2110; AVX2-NEXT: vpshuflw {{.*#+}} xmm14 = xmm13[2,1,2,0,4,5,6,7]2111; AVX2-NEXT: vextracti128 $1, %ymm12, %xmm122112; AVX2-NEXT: vpshufd {{.*#+}} xmm12 = xmm12[0,3,2,1]2113; AVX2-NEXT: vpshuflw {{.*#+}} xmm15 = xmm12[0,0,2,3,4,5,6,7]2114; AVX2-NEXT: vpshufd {{.*#+}} xmm15 = xmm15[0,1,3,3]2115; AVX2-NEXT: vpblendw {{.*#+}} xmm14 = xmm14[0],xmm15[1,2],xmm14[3],xmm15[4,5,6,7]2116; AVX2-NEXT: vpshufb {{.*#+}} ymm15 = ymm10[4,5,0,1,12,13,14,15,8,9,12,13,0,1,u,u,20,21,16,17,28,29,30,31,24,25,28,29,16,17,u,u]2117; AVX2-NEXT: vpblendw {{.*#+}} ymm8 = ymm15[0,1,2],ymm8[3,4,5,6,7],ymm15[8,9,10],ymm8[11,12,13,14,15]2118; AVX2-NEXT: vpshufhw {{.*#+}} xmm15 = xmm15[0,1,2,3,4,6,5,4]2119; AVX2-NEXT: vpblendw {{.*#+}} xmm14 = xmm14[0,1,2,3,4],xmm15[5,6,7]2120; AVX2-NEXT: vpblendd {{.*#+}} ymm8 = ymm14[0,1,2,3],ymm8[4,5,6,7]2121; AVX2-NEXT: vpshufhw {{.*#+}} xmm9 = xmm9[0,1,2,3,7,5,6,5]2122; AVX2-NEXT: vpshuflw {{.*#+}} xmm11 = xmm11[1,1,1,1,4,5,6,7]2123; AVX2-NEXT: vpshufhw {{.*#+}} xmm11 = xmm11[0,1,2,3,4,5,7,7]2124; AVX2-NEXT: vpblendw {{.*#+}} xmm9 = xmm11[0,1,2,3],xmm9[4],xmm11[5,6],xmm9[7]2125; AVX2-NEXT: vpshuflw {{.*#+}} xmm11 = xmm13[3,1,2,1,4,5,6,7]2126; AVX2-NEXT: vpshuflw {{.*#+}} xmm12 = xmm12[0,1,3,3,4,5,6,7]2127; AVX2-NEXT: vpshufhw {{.*#+}} xmm12 = xmm12[0,1,2,3,7,7,7,7]2128; AVX2-NEXT: vpblendw {{.*#+}} xmm11 = xmm11[0],xmm12[1,2],xmm11[3],xmm12[4,5,6,7]2129; AVX2-NEXT: vinserti128 $1, %xmm9, %ymm0, %ymm92130; AVX2-NEXT: vpshufb {{.*#+}} ymm10 = ymm10[6,7,2,3,14,15,14,15,14,15,10,11,u,u,2,3,22,23,18,19,30,31,30,31,30,31,26,27,u,u,18,19]2131; AVX2-NEXT: vpblendw {{.*#+}} ymm9 = ymm10[0,1,2],ymm9[3,4,5,6,7],ymm10[8,9,10],ymm9[11,12,13,14,15]2132; AVX2-NEXT: vpshufd {{.*#+}} xmm10 = xmm10[0,1,3,2]2133; AVX2-NEXT: vpblendw {{.*#+}} xmm10 = xmm11[0,1,2,3,4],xmm10[5,6,7]2134; AVX2-NEXT: vpblendd {{.*#+}} ymm9 = ymm10[0,1,2,3],ymm9[4,5,6,7]2135; AVX2-NEXT: vpblendd {{.*#+}} ymm4 = ymm5[0,1],ymm4[2],ymm5[3,4],ymm4[5],ymm5[6,7]2136; AVX2-NEXT: vextracti128 $1, %ymm4, %xmm52137; AVX2-NEXT: vpshuflw {{.*#+}} xmm10 = xmm5[2,2,2,2,4,5,6,7]2138; AVX2-NEXT: vpshufb {{.*#+}} xmm11 = xmm4[8,9,u,u,0,1,12,13,u,u,12,13,12,13,14,15]2139; AVX2-NEXT: vpblendw {{.*#+}} xmm10 = xmm11[0],xmm10[1],xmm11[2,3],xmm10[4],xmm11[5,6,7]2140; AVX2-NEXT: vpblendd {{.*#+}} ymm6 = ymm6[0],ymm7[1],ymm6[2,3,4,5],ymm7[6],ymm6[7]2141; AVX2-NEXT: vpshufb {{.*#+}} ymm7 = ymm6[8,9,4,5,4,5,6,7,0,1,4,5,0,1,12,13,24,25,20,21,u,u,u,u,u,u,u,u,u,u,u,u]2142; AVX2-NEXT: vpmovsxbw {{.*#+}} xmm11 = [65535,65535,65535,65535,65535,0,0,0]2143; AVX2-NEXT: vpblendvb %ymm11, %ymm10, %ymm7, %ymm72144; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0],ymm1[1],ymm2[2,3],ymm1[4],ymm2[5,6],ymm1[7]2145; AVX2-NEXT: vpshufb {{.*#+}} xmm2 = xmm4[10,11,u,u,2,3,14,15,u,u,10,11,12,13,14,15]2146; AVX2-NEXT: vpshufd {{.*#+}} xmm4 = xmm5[1,1,2,3]2147; AVX2-NEXT: vpshufhw {{.*#+}} xmm4 = xmm4[0,1,2,3,5,5,5,5]2148; AVX2-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0],xmm4[1],xmm2[2,3],xmm4[4],xmm2[5,6,7]2149; AVX2-NEXT: vextracti128 $1, %ymm1, %xmm42150; AVX2-NEXT: vpshufb {{.*#+}} ymm5 = ymm6[10,11,6,7,4,5,6,7,6,7,6,7,2,3,14,15,26,27,22,23,u,u,u,u,u,u,u,u,u,u,u,u]2151; AVX2-NEXT: vpblendvb %ymm11, %ymm2, %ymm5, %ymm22152; AVX2-NEXT: vpshufb {{.*#+}} xmm5 = xmm4[u,u,u,u,u,u,u,u,8,9,u,u,0,1,12,13]2153; AVX2-NEXT: vpshufd {{.*#+}} xmm1 = xmm1[0,3,2,1]2154; AVX2-NEXT: vpshuflw {{.*#+}} xmm6 = xmm1[0,1,0,2,4,5,6,7]2155; AVX2-NEXT: vpshufhw {{.*#+}} xmm6 = xmm6[0,1,2,3,6,6,6,6]2156; AVX2-NEXT: vpblendw {{.*#+}} xmm5 = xmm6[0,1,2,3],xmm5[4],xmm6[5],xmm5[6,7]2157; AVX2-NEXT: vinserti128 $1, %xmm5, %ymm0, %ymm52158; AVX2-NEXT: vpblendd {{.*#+}} ymm5 = ymm7[0,1,2,3,4],ymm5[5,6,7]2159; AVX2-NEXT: vpshufb {{.*#+}} xmm4 = xmm4[u,u,u,u,u,u,u,u,10,11,u,u,2,3,14,15]2160; AVX2-NEXT: vpshuflw {{.*#+}} xmm1 = xmm1[0,1,1,3,4,5,6,7]2161; AVX2-NEXT: vpshufd {{.*#+}} xmm1 = xmm1[0,1,3,3]2162; AVX2-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1,2,3],xmm4[4],xmm1[5],xmm4[6,7]2163; AVX2-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm12164; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0,1,2,3,4],ymm1[5,6,7]2165; AVX2-NEXT: vmovdqa %ymm0, (%rsi)2166; AVX2-NEXT: vmovdqa %ymm3, (%rdx)2167; AVX2-NEXT: vmovdqa %ymm8, (%rcx)2168; AVX2-NEXT: vmovdqa %ymm9, (%r8)2169; AVX2-NEXT: vmovdqa %ymm5, (%r9)2170; AVX2-NEXT: movq {{[0-9]+}}(%rsp), %rax2171; AVX2-NEXT: vmovdqa %ymm1, (%rax)2172; AVX2-NEXT: vzeroupper2173; AVX2-NEXT: retq2174;2175; AVX2-FP-LABEL: load_i16_stride6_vf16:2176; AVX2-FP: # %bb.0:2177; AVX2-FP-NEXT: vmovdqa (%rdi), %ymm32178; AVX2-FP-NEXT: vmovdqa 32(%rdi), %ymm52179; AVX2-FP-NEXT: vmovdqa 64(%rdi), %ymm02180; AVX2-FP-NEXT: vmovdqa 96(%rdi), %ymm42181; AVX2-FP-NEXT: vmovdqa 160(%rdi), %ymm12182; AVX2-FP-NEXT: vmovdqa 128(%rdi), %ymm22183; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm8 = ymm2[0,1],ymm1[2],ymm2[3,4],ymm1[5],ymm2[6,7]2184; AVX2-FP-NEXT: vmovdqa {{.*#+}} xmm6 = [0,1,4,5,4,5,4,5,0,1,12,13,8,9,4,5]2185; AVX2-FP-NEXT: vpshufb %xmm6, %xmm8, %xmm72186; AVX2-FP-NEXT: vextracti128 $1, %ymm8, %xmm92187; AVX2-FP-NEXT: vpshufb %xmm6, %xmm9, %xmm62188; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm6 = xmm6[0,1,2],xmm7[3],xmm6[4,5],xmm7[6],xmm6[7]2189; AVX2-FP-NEXT: vinserti128 $1, %xmm6, %ymm0, %ymm102190; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm11 = ymm3[0],ymm5[1],ymm3[2,3],ymm5[4],ymm3[5,6],ymm5[7]2191; AVX2-FP-NEXT: vmovdqa {{.*#+}} xmm6 = [0,1,12,13,0,1,4,5,8,9,12,13,12,13,14,15]2192; AVX2-FP-NEXT: vpshufb %xmm6, %xmm11, %xmm72193; AVX2-FP-NEXT: vextracti128 $1, %ymm11, %xmm122194; AVX2-FP-NEXT: vpshufd {{.*#+}} xmm12 = xmm12[2,1,0,3]2195; AVX2-FP-NEXT: vpshufb %xmm6, %xmm12, %xmm62196; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm13 = xmm7[0,1],xmm6[2],xmm7[3],xmm6[4,5],xmm7[6,7]2197; AVX2-FP-NEXT: vperm2i128 {{.*#+}} ymm6 = ymm0[2,3],ymm4[2,3]2198; AVX2-FP-NEXT: vperm2i128 {{.*#+}} ymm7 = ymm0[0,1],ymm4[0,1]2199; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm4 = ymm7[0],ymm6[1],ymm7[2,3,4,5],ymm6[6],ymm7[7]2200; AVX2-FP-NEXT: vpshufb {{.*#+}} ymm0 = ymm4[u,u,u,u,u,u,u,u,u,u,u,u,8,9,4,5,16,17,28,29,24,25,28,29,24,25,28,29,24,25,20,21]2201; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm13[0,1,2],ymm0[3,4,5,6,7]2202; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm10 = ymm0[0,1,2],ymm10[3,4,5,6,7],ymm0[8,9,10],ymm10[11,12,13,14,15]2203; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm10[4,5,6,7]2204; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2205; AVX2-FP-NEXT: vpshufhw {{.*#+}} xmm8 = xmm8[0,1,2,3,5,5,5,5]2206; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm9 = xmm9[6,7,2,3,4,5,u,u,2,3,14,15,u,u,6,7]2207; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm8 = xmm9[0,1,2],xmm8[3],xmm9[4,5],xmm8[6],xmm9[7]2208; AVX2-FP-NEXT: vinserti128 $1, %xmm8, %ymm0, %ymm82209; AVX2-FP-NEXT: vmovdqa {{.*#+}} ymm9 = [6,7,2,3,14,15,14,15,14,15,10,11,u,u,2,3,22,23,18,19,30,31,30,31,30,31,26,27,u,u,18,19]2210; AVX2-FP-NEXT: vpshufb %xmm9, %xmm11, %xmm102211; AVX2-FP-NEXT: vpshuflw {{.*#+}} xmm11 = xmm12[1,1,1,1,4,5,6,7]2212; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm10 = xmm10[0,1],xmm11[2],xmm10[3,4],xmm11[5],xmm10[6],xmm11[7]2213; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm10 = xmm10[2,3,6,7,4,5,0,1,10,11,14,15,u,u,u,u]2214; AVX2-FP-NEXT: vpshufb {{.*#+}} ymm4 = ymm4[u,u,u,u,u,u,u,u,u,u,u,u,10,11,6,7,18,19,30,31,26,27,26,27,30,31,26,27,26,27,22,23]2215; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm4 = ymm10[0,1,2],ymm4[3,4,5,6,7]2216; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm8 = ymm4[0,1,2],ymm8[3,4,5,6,7],ymm4[8,9,10],ymm8[11,12,13,14,15]2217; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm8[4,5,6,7]2218; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm8 = ymm1[0,1],ymm2[2],ymm1[3,4],ymm2[5],ymm1[6,7]2219; AVX2-FP-NEXT: vextracti128 $1, %ymm8, %xmm102220; AVX2-FP-NEXT: vpshufd {{.*#+}} xmm10 = xmm10[0,1,2,1]2221; AVX2-FP-NEXT: vpshufhw {{.*#+}} xmm11 = xmm10[0,1,2,3,6,5,6,4]2222; AVX2-FP-NEXT: vpshufd {{.*#+}} xmm12 = xmm8[2,1,0,3]2223; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm8 = xmm12[0,1,0,1,0,1,0,1,u,u,8,9,12,13,u,u]2224; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm8 = xmm8[0,1,2,3],xmm11[4],xmm8[5,6],xmm11[7]2225; AVX2-FP-NEXT: vinserti128 $1, %xmm8, %ymm0, %ymm82226; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm11 = ymm3[0,1],ymm5[2],ymm3[3,4],ymm5[5],ymm3[6,7]2227; AVX2-FP-NEXT: vpshufd {{.*#+}} xmm13 = xmm11[2,1,2,3]2228; AVX2-FP-NEXT: vpshuflw {{.*#+}} xmm14 = xmm13[2,1,2,0,4,5,6,7]2229; AVX2-FP-NEXT: vextracti128 $1, %ymm11, %xmm112230; AVX2-FP-NEXT: vpshufd {{.*#+}} xmm11 = xmm11[0,3,2,1]2231; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm15 = xmm11[u,u,0,1,4,5,u,u,12,13,u,u,u,u,u,u]2232; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm14 = xmm14[0],xmm15[1,2],xmm14[3],xmm15[4,5,6,7]2233; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm15 = ymm7[0,1],ymm6[2],ymm7[3],ymm6[4],ymm7[5,6],ymm6[7]2234; AVX2-FP-NEXT: vpshufb {{.*#+}} ymm0 = ymm15[4,5,0,1,12,13,14,15,8,9,12,13,0,1,u,u,20,21,16,17,28,29,30,31,24,25,28,29,16,17,u,u]2235; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm8 = ymm0[0,1,2],ymm8[3,4,5,6,7],ymm0[8,9,10],ymm8[11,12,13,14,15]2236; AVX2-FP-NEXT: vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,6,5,4]2237; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm0 = xmm14[0,1,2,3,4],xmm0[5,6,7]2238; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm8 = ymm0[0,1,2,3],ymm8[4,5,6,7]2239; AVX2-FP-NEXT: vpshufhw {{.*#+}} xmm0 = xmm10[0,1,2,3,7,5,6,5]2240; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm10 = xmm12[2,3,2,3,2,3,2,3,u,u,10,11,14,15,u,u]2241; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm0 = xmm10[0,1,2,3],xmm0[4],xmm10[5,6],xmm0[7]2242; AVX2-FP-NEXT: vpshufb %ymm9, %ymm15, %ymm92243; AVX2-FP-NEXT: vpshuflw {{.*#+}} xmm10 = xmm13[3,1,2,1,4,5,6,7]2244; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm11 = xmm11[u,u,2,3,6,7,u,u,14,15,u,u,u,u,u,u]2245; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm10 = xmm10[0],xmm11[1,2],xmm10[3],xmm11[4,5,6,7]2246; AVX2-FP-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm02247; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm0 = ymm9[0,1,2],ymm0[3,4,5,6,7],ymm9[8,9,10],ymm0[11,12,13,14,15]2248; AVX2-FP-NEXT: vpshufd {{.*#+}} xmm9 = xmm9[0,1,3,2]2249; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm9 = xmm10[0,1,2,3,4],xmm9[5,6,7]2250; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm9 = ymm9[0,1,2,3],ymm0[4,5,6,7]2251; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm5[0,1],ymm3[2],ymm5[3,4],ymm3[5],ymm5[6,7]2252; AVX2-FP-NEXT: vextracti128 $1, %ymm0, %xmm32253; AVX2-FP-NEXT: vpshuflw {{.*#+}} xmm5 = xmm3[2,2,2,2,4,5,6,7]2254; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm10 = xmm0[8,9,u,u,0,1,12,13,u,u,12,13,12,13,14,15]2255; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm5 = xmm10[0],xmm5[1],xmm10[2,3],xmm5[4],xmm10[5,6,7]2256; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm6 = ymm6[0],ymm7[1],ymm6[2,3,4,5],ymm7[6],ymm6[7]2257; AVX2-FP-NEXT: vpshufb {{.*#+}} ymm7 = ymm6[8,9,4,5,4,5,6,7,0,1,4,5,0,1,12,13,24,25,20,21,u,u,u,u,u,u,u,u,u,u,u,u]2258; AVX2-FP-NEXT: vpmovsxbw {{.*#+}} xmm10 = [65535,65535,65535,65535,65535,0,0,0]2259; AVX2-FP-NEXT: vpblendvb %ymm10, %ymm5, %ymm7, %ymm52260; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0],ymm1[1],ymm2[2,3],ymm1[4],ymm2[5,6],ymm1[7]2261; AVX2-FP-NEXT: vmovdqa {{.*#+}} xmm2 = [10,11,6,7,2,3,14,15,10,11,10,11,12,13,14,15]2262; AVX2-FP-NEXT: vpshufb %xmm2, %xmm3, %xmm32263; AVX2-FP-NEXT: vpshufb %xmm2, %xmm0, %xmm02264; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0],xmm3[1],xmm0[2,3],xmm3[4],xmm0[5,6,7]2265; AVX2-FP-NEXT: vmovdqa {{.*#+}} xmm2 = [0,1,2,3,0,1,4,5,8,9,12,13,0,1,12,13]2266; AVX2-FP-NEXT: vpshufb {{.*#+}} ymm3 = ymm6[10,11,6,7,4,5,6,7,6,7,6,7,2,3,14,15,26,27,22,23,u,u,u,u,u,u,u,u,u,u,u,u]2267; AVX2-FP-NEXT: vpblendvb %ymm10, %ymm0, %ymm3, %ymm02268; AVX2-FP-NEXT: vextracti128 $1, %ymm1, %xmm32269; AVX2-FP-NEXT: vpshufb %xmm2, %xmm3, %xmm62270; AVX2-FP-NEXT: vpshufd {{.*#+}} xmm1 = xmm1[0,3,2,1]2271; AVX2-FP-NEXT: vpshufb %xmm2, %xmm1, %xmm22272; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0,1,2,3],xmm6[4],xmm2[5],xmm6[6,7]2273; AVX2-FP-NEXT: vinserti128 $1, %xmm2, %ymm0, %ymm22274; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm2 = ymm5[0,1,2,3,4],ymm2[5,6,7]2275; AVX2-FP-NEXT: vmovdqa {{.*#+}} xmm5 = [0,1,2,3,2,3,6,7,10,11,14,15,2,3,14,15]2276; AVX2-FP-NEXT: vpshufb %xmm5, %xmm3, %xmm32277; AVX2-FP-NEXT: vpshufb %xmm5, %xmm1, %xmm12278; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1,2,3],xmm3[4],xmm1[5],xmm3[6,7]2279; AVX2-FP-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm12280; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]2281; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload2282; AVX2-FP-NEXT: vmovaps %ymm1, (%rsi)2283; AVX2-FP-NEXT: vmovdqa %ymm4, (%rdx)2284; AVX2-FP-NEXT: vmovdqa %ymm8, (%rcx)2285; AVX2-FP-NEXT: vmovdqa %ymm9, (%r8)2286; AVX2-FP-NEXT: vmovdqa %ymm2, (%r9)2287; AVX2-FP-NEXT: movq {{[0-9]+}}(%rsp), %rax2288; AVX2-FP-NEXT: vmovdqa %ymm0, (%rax)2289; AVX2-FP-NEXT: vzeroupper2290; AVX2-FP-NEXT: retq2291;2292; AVX2-FCP-LABEL: load_i16_stride6_vf16:2293; AVX2-FCP: # %bb.0:2294; AVX2-FCP-NEXT: vmovdqa (%rdi), %ymm32295; AVX2-FCP-NEXT: vmovdqa 32(%rdi), %ymm52296; AVX2-FCP-NEXT: vmovdqa 64(%rdi), %ymm02297; AVX2-FCP-NEXT: vmovdqa 96(%rdi), %ymm42298; AVX2-FCP-NEXT: vmovdqa 160(%rdi), %ymm12299; AVX2-FCP-NEXT: vmovdqa 128(%rdi), %ymm22300; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm8 = ymm2[0,1],ymm1[2],ymm2[3,4],ymm1[5],ymm2[6,7]2301; AVX2-FCP-NEXT: vmovdqa {{.*#+}} xmm6 = [0,1,4,5,4,5,4,5,0,1,12,13,8,9,4,5]2302; AVX2-FCP-NEXT: vpshufb %xmm6, %xmm8, %xmm72303; AVX2-FCP-NEXT: vextracti128 $1, %ymm8, %xmm92304; AVX2-FCP-NEXT: vpshufb %xmm6, %xmm9, %xmm62305; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm6 = xmm6[0,1,2],xmm7[3],xmm6[4,5],xmm7[6],xmm6[7]2306; AVX2-FCP-NEXT: vinserti128 $1, %xmm6, %ymm0, %ymm102307; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm11 = ymm3[0],ymm5[1],ymm3[2,3],ymm5[4],ymm3[5,6],ymm5[7]2308; AVX2-FCP-NEXT: vmovdqa {{.*#+}} xmm6 = [0,1,12,13,0,1,4,5,8,9,12,13,12,13,14,15]2309; AVX2-FCP-NEXT: vpshufb %xmm6, %xmm11, %xmm72310; AVX2-FCP-NEXT: vextracti128 $1, %ymm11, %xmm122311; AVX2-FCP-NEXT: vpshufd {{.*#+}} xmm12 = xmm12[2,1,0,3]2312; AVX2-FCP-NEXT: vpshufb %xmm6, %xmm12, %xmm62313; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm13 = xmm7[0,1],xmm6[2],xmm7[3],xmm6[4,5],xmm7[6,7]2314; AVX2-FCP-NEXT: vperm2i128 {{.*#+}} ymm6 = ymm0[2,3],ymm4[2,3]2315; AVX2-FCP-NEXT: vperm2i128 {{.*#+}} ymm7 = ymm0[0,1],ymm4[0,1]2316; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm4 = ymm7[0],ymm6[1],ymm7[2,3,4,5],ymm6[6],ymm7[7]2317; AVX2-FCP-NEXT: vpshufb {{.*#+}} ymm0 = ymm4[u,u,u,u,u,u,u,u,u,u,u,u,8,9,4,5,16,17,28,29,24,25,28,29,24,25,28,29,24,25,20,21]2318; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm13[0,1,2],ymm0[3,4,5,6,7]2319; AVX2-FCP-NEXT: vpblendw {{.*#+}} ymm10 = ymm0[0,1,2],ymm10[3,4,5,6,7],ymm0[8,9,10],ymm10[11,12,13,14,15]2320; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm10[4,5,6,7]2321; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2322; AVX2-FCP-NEXT: vpshufhw {{.*#+}} xmm8 = xmm8[0,1,2,3,5,5,5,5]2323; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm9 = xmm9[6,7,2,3,4,5,u,u,2,3,14,15,u,u,6,7]2324; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm8 = xmm9[0,1,2],xmm8[3],xmm9[4,5],xmm8[6],xmm9[7]2325; AVX2-FCP-NEXT: vinserti128 $1, %xmm8, %ymm0, %ymm82326; AVX2-FCP-NEXT: vmovdqa {{.*#+}} ymm9 = [6,7,2,3,14,15,14,15,14,15,10,11,u,u,2,3,22,23,18,19,30,31,30,31,30,31,26,27,u,u,18,19]2327; AVX2-FCP-NEXT: vpshufb %xmm9, %xmm11, %xmm102328; AVX2-FCP-NEXT: vpshuflw {{.*#+}} xmm11 = xmm12[1,1,1,1,4,5,6,7]2329; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm10 = xmm10[0,1],xmm11[2],xmm10[3,4],xmm11[5],xmm10[6],xmm11[7]2330; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm10 = xmm10[2,3,6,7,4,5,0,1,10,11,14,15,u,u,u,u]2331; AVX2-FCP-NEXT: vpshufb {{.*#+}} ymm4 = ymm4[u,u,u,u,u,u,u,u,u,u,u,u,10,11,6,7,18,19,30,31,26,27,26,27,30,31,26,27,26,27,22,23]2332; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm4 = ymm10[0,1,2],ymm4[3,4,5,6,7]2333; AVX2-FCP-NEXT: vpblendw {{.*#+}} ymm8 = ymm4[0,1,2],ymm8[3,4,5,6,7],ymm4[8,9,10],ymm8[11,12,13,14,15]2334; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm8[4,5,6,7]2335; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm8 = ymm1[0,1],ymm2[2],ymm1[3,4],ymm2[5],ymm1[6,7]2336; AVX2-FCP-NEXT: vextracti128 $1, %ymm8, %xmm102337; AVX2-FCP-NEXT: vpshufd {{.*#+}} xmm10 = xmm10[0,1,2,1]2338; AVX2-FCP-NEXT: vpshufhw {{.*#+}} xmm11 = xmm10[0,1,2,3,6,5,6,4]2339; AVX2-FCP-NEXT: vpshufd {{.*#+}} xmm12 = xmm8[2,1,0,3]2340; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm8 = xmm12[0,1,0,1,0,1,0,1,u,u,8,9,12,13,u,u]2341; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm8 = xmm8[0,1,2,3],xmm11[4],xmm8[5,6],xmm11[7]2342; AVX2-FCP-NEXT: vinserti128 $1, %xmm8, %ymm0, %ymm82343; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm11 = ymm3[0,1],ymm5[2],ymm3[3,4],ymm5[5],ymm3[6,7]2344; AVX2-FCP-NEXT: vpshufd {{.*#+}} xmm13 = xmm11[2,1,2,3]2345; AVX2-FCP-NEXT: vpshuflw {{.*#+}} xmm14 = xmm13[2,1,2,0,4,5,6,7]2346; AVX2-FCP-NEXT: vextracti128 $1, %ymm11, %xmm112347; AVX2-FCP-NEXT: vpshufd {{.*#+}} xmm11 = xmm11[0,3,2,1]2348; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm15 = xmm11[u,u,0,1,4,5,u,u,12,13,u,u,u,u,u,u]2349; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm14 = xmm14[0],xmm15[1,2],xmm14[3],xmm15[4,5,6,7]2350; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm15 = ymm7[0,1],ymm6[2],ymm7[3],ymm6[4],ymm7[5,6],ymm6[7]2351; AVX2-FCP-NEXT: vpshufb {{.*#+}} ymm0 = ymm15[4,5,0,1,12,13,14,15,8,9,12,13,0,1,u,u,20,21,16,17,28,29,30,31,24,25,28,29,16,17,u,u]2352; AVX2-FCP-NEXT: vpblendw {{.*#+}} ymm8 = ymm0[0,1,2],ymm8[3,4,5,6,7],ymm0[8,9,10],ymm8[11,12,13,14,15]2353; AVX2-FCP-NEXT: vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,6,5,4]2354; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm0 = xmm14[0,1,2,3,4],xmm0[5,6,7]2355; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm8 = ymm0[0,1,2,3],ymm8[4,5,6,7]2356; AVX2-FCP-NEXT: vpshufhw {{.*#+}} xmm0 = xmm10[0,1,2,3,7,5,6,5]2357; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm10 = xmm12[2,3,2,3,2,3,2,3,u,u,10,11,14,15,u,u]2358; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm0 = xmm10[0,1,2,3],xmm0[4],xmm10[5,6],xmm0[7]2359; AVX2-FCP-NEXT: vpshufb %ymm9, %ymm15, %ymm92360; AVX2-FCP-NEXT: vpshuflw {{.*#+}} xmm10 = xmm13[3,1,2,1,4,5,6,7]2361; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm11 = xmm11[u,u,2,3,6,7,u,u,14,15,u,u,u,u,u,u]2362; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm10 = xmm10[0],xmm11[1,2],xmm10[3],xmm11[4,5,6,7]2363; AVX2-FCP-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm02364; AVX2-FCP-NEXT: vpblendw {{.*#+}} ymm0 = ymm9[0,1,2],ymm0[3,4,5,6,7],ymm9[8,9,10],ymm0[11,12,13,14,15]2365; AVX2-FCP-NEXT: vpshufd {{.*#+}} xmm9 = xmm9[0,1,3,2]2366; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm9 = xmm10[0,1,2,3,4],xmm9[5,6,7]2367; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm9 = ymm9[0,1,2,3],ymm0[4,5,6,7]2368; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm5[0,1],ymm3[2],ymm5[3,4],ymm3[5],ymm5[6,7]2369; AVX2-FCP-NEXT: vextracti128 $1, %ymm0, %xmm32370; AVX2-FCP-NEXT: vpshuflw {{.*#+}} xmm5 = xmm3[2,2,2,2,4,5,6,7]2371; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm10 = xmm0[8,9,u,u,0,1,12,13,u,u,12,13,12,13,14,15]2372; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm5 = xmm10[0],xmm5[1],xmm10[2,3],xmm5[4],xmm10[5,6,7]2373; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm6 = ymm6[0],ymm7[1],ymm6[2,3,4,5],ymm7[6],ymm6[7]2374; AVX2-FCP-NEXT: vpshufb {{.*#+}} ymm7 = ymm6[8,9,4,5,4,5,6,7,0,1,4,5,0,1,12,13,24,25,20,21,u,u,u,u,u,u,u,u,u,u,u,u]2375; AVX2-FCP-NEXT: vpmovsxbw {{.*#+}} xmm10 = [65535,65535,65535,65535,65535,0,0,0]2376; AVX2-FCP-NEXT: vpblendvb %ymm10, %ymm5, %ymm7, %ymm52377; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0],ymm1[1],ymm2[2,3],ymm1[4],ymm2[5,6],ymm1[7]2378; AVX2-FCP-NEXT: vmovdqa {{.*#+}} xmm2 = [10,11,6,7,2,3,14,15,10,11,10,11,12,13,14,15]2379; AVX2-FCP-NEXT: vpshufb %xmm2, %xmm3, %xmm32380; AVX2-FCP-NEXT: vpshufb %xmm2, %xmm0, %xmm02381; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0],xmm3[1],xmm0[2,3],xmm3[4],xmm0[5,6,7]2382; AVX2-FCP-NEXT: vmovdqa {{.*#+}} xmm2 = [0,1,2,3,0,1,4,5,8,9,12,13,0,1,12,13]2383; AVX2-FCP-NEXT: vpshufb {{.*#+}} ymm3 = ymm6[10,11,6,7,4,5,6,7,6,7,6,7,2,3,14,15,26,27,22,23,u,u,u,u,u,u,u,u,u,u,u,u]2384; AVX2-FCP-NEXT: vpblendvb %ymm10, %ymm0, %ymm3, %ymm02385; AVX2-FCP-NEXT: vextracti128 $1, %ymm1, %xmm32386; AVX2-FCP-NEXT: vpshufb %xmm2, %xmm3, %xmm62387; AVX2-FCP-NEXT: vpshufd {{.*#+}} xmm1 = xmm1[0,3,2,1]2388; AVX2-FCP-NEXT: vpshufb %xmm2, %xmm1, %xmm22389; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0,1,2,3],xmm6[4],xmm2[5],xmm6[6,7]2390; AVX2-FCP-NEXT: vinserti128 $1, %xmm2, %ymm0, %ymm22391; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm5[0,1,2,3,4],ymm2[5,6,7]2392; AVX2-FCP-NEXT: vmovdqa {{.*#+}} xmm5 = [0,1,2,3,2,3,6,7,10,11,14,15,2,3,14,15]2393; AVX2-FCP-NEXT: vpshufb %xmm5, %xmm3, %xmm32394; AVX2-FCP-NEXT: vpshufb %xmm5, %xmm1, %xmm12395; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1,2,3],xmm3[4],xmm1[5],xmm3[6,7]2396; AVX2-FCP-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm12397; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]2398; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload2399; AVX2-FCP-NEXT: vmovaps %ymm1, (%rsi)2400; AVX2-FCP-NEXT: vmovdqa %ymm4, (%rdx)2401; AVX2-FCP-NEXT: vmovdqa %ymm8, (%rcx)2402; AVX2-FCP-NEXT: vmovdqa %ymm9, (%r8)2403; AVX2-FCP-NEXT: vmovdqa %ymm2, (%r9)2404; AVX2-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax2405; AVX2-FCP-NEXT: vmovdqa %ymm0, (%rax)2406; AVX2-FCP-NEXT: vzeroupper2407; AVX2-FCP-NEXT: retq2408;2409; AVX512-LABEL: load_i16_stride6_vf16:2410; AVX512: # %bb.0:2411; AVX512-NEXT: vmovdqa 160(%rdi), %ymm02412; AVX512-NEXT: vmovdqa (%rdi), %ymm32413; AVX512-NEXT: vmovdqa 32(%rdi), %ymm42414; AVX512-NEXT: vmovdqa 64(%rdi), %ymm12415; AVX512-NEXT: vmovdqa 128(%rdi), %ymm22416; AVX512-NEXT: vpblendd {{.*#+}} ymm5 = ymm2[0,1],ymm0[2],ymm2[3,4],ymm0[5],ymm2[6,7]2417; AVX512-NEXT: vpshuflw {{.*#+}} xmm6 = xmm5[2,2,2,2,4,5,6,7]2418; AVX512-NEXT: vextracti128 $1, %ymm5, %xmm82419; AVX512-NEXT: vpblendw {{.*#+}} xmm6 = xmm8[0,1,2],xmm6[3,4],xmm8[5,6,7]2420; AVX512-NEXT: vpshufb {{.*#+}} xmm6 = xmm6[u,u,u,u,u,u,6,7,0,1,12,13,8,9,4,5]2421; AVX512-NEXT: vinserti128 $1, %xmm6, %ymm0, %ymm92422; AVX512-NEXT: vperm2i128 {{.*#+}} ymm6 = ymm1[2,3],mem[2,3]2423; AVX512-NEXT: vinserti128 $1, 96(%rdi), %ymm1, %ymm72424; AVX512-NEXT: vpblendd {{.*#+}} ymm10 = ymm7[0],ymm6[1],ymm7[2,3,4,5],ymm6[6],ymm7[7]2425; AVX512-NEXT: vpshufb {{.*#+}} ymm1 = ymm10[u,u,u,u,u,u,u,u,u,u,u,u,8,9,4,5,16,17,28,29,24,25,28,29,24,25,28,29,24,25,20,21]2426; AVX512-NEXT: vpblendd {{.*#+}} ymm11 = ymm3[0],ymm4[1],ymm3[2,3],ymm4[4],ymm3[5,6],ymm4[7]2427; AVX512-NEXT: vpshufb {{.*#+}} xmm12 = xmm11[0,1,12,13,u,u,4,5,u,u,u,u,12,13,14,15]2428; AVX512-NEXT: vextracti128 $1, %ymm11, %xmm132429; AVX512-NEXT: vpshufd {{.*#+}} xmm14 = xmm13[0,2,0,3]2430; AVX512-NEXT: vpshufhw {{.*#+}} xmm14 = xmm14[0,1,2,3,4,6,6,7]2431; AVX512-NEXT: vpblendw {{.*#+}} xmm12 = xmm12[0,1],xmm14[2],xmm12[3],xmm14[4,5],xmm12[6,7]2432; AVX512-NEXT: vpblendd {{.*#+}} ymm1 = ymm12[0,1,2],ymm1[3,4,5,6,7]2433; AVX512-NEXT: vpblendw {{.*#+}} ymm9 = ymm1[0,1,2],ymm9[3,4,5,6,7],ymm1[8,9,10],ymm9[11,12,13,14,15]2434; AVX512-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm9[4,5,6,7]2435; AVX512-NEXT: vmovdqa {{.*#+}} xmm9 = [2,3,14,15,10,11,6,7,2,3,14,15,12,13,14,15]2436; AVX512-NEXT: vpshufb %xmm9, %xmm13, %xmm122437; AVX512-NEXT: vpshufb %xmm9, %xmm11, %xmm92438; AVX512-NEXT: vpblendw {{.*#+}} xmm9 = xmm9[0,1],xmm12[2],xmm9[3],xmm12[4,5],xmm9[6,7]2439; AVX512-NEXT: vpshufb {{.*#+}} ymm10 = ymm10[u,u,u,u,u,u,u,u,u,u,u,u,10,11,6,7,18,19,30,31,26,27,26,27,30,31,26,27,26,27,22,23]2440; AVX512-NEXT: vpblendd {{.*#+}} ymm9 = ymm9[0,1,2],ymm10[3,4,5,6,7]2441; AVX512-NEXT: vpshufhw {{.*#+}} xmm5 = xmm5[0,1,2,3,5,5,5,5]2442; AVX512-NEXT: vpshufb {{.*#+}} xmm8 = xmm8[6,7,2,3,4,5,u,u,2,3,14,15,u,u,6,7]2443; AVX512-NEXT: vpblendw {{.*#+}} xmm5 = xmm8[0,1,2],xmm5[3],xmm8[4,5],xmm5[6],xmm8[7]2444; AVX512-NEXT: vinserti128 $1, %xmm5, %ymm0, %ymm52445; AVX512-NEXT: vpblendw {{.*#+}} ymm5 = ymm9[0,1,2],ymm5[3,4,5,6,7],ymm9[8,9,10],ymm5[11,12,13,14,15]2446; AVX512-NEXT: vpblendd {{.*#+}} ymm5 = ymm9[0,1,2,3],ymm5[4,5,6,7]2447; AVX512-NEXT: vpblendd {{.*#+}} ymm8 = ymm0[0,1],ymm2[2],ymm0[3,4],ymm2[5],ymm0[6,7]2448; AVX512-NEXT: vextracti128 $1, %ymm8, %xmm92449; AVX512-NEXT: vpshufd {{.*#+}} xmm9 = xmm9[0,1,2,1]2450; AVX512-NEXT: vpshufhw {{.*#+}} xmm10 = xmm9[0,1,2,3,6,5,6,4]2451; AVX512-NEXT: vpshufd {{.*#+}} xmm11 = xmm8[2,1,0,3]2452; AVX512-NEXT: vpshuflw {{.*#+}} xmm8 = xmm11[0,0,0,0,4,5,6,7]2453; AVX512-NEXT: vpshufhw {{.*#+}} xmm8 = xmm8[0,1,2,3,4,4,6,7]2454; AVX512-NEXT: vpblendw {{.*#+}} xmm8 = xmm8[0,1,2,3],xmm10[4],xmm8[5,6],xmm10[7]2455; AVX512-NEXT: vinserti128 $1, %xmm8, %ymm0, %ymm82456; AVX512-NEXT: vpblendd {{.*#+}} ymm10 = ymm7[0,1],ymm6[2],ymm7[3],ymm6[4],ymm7[5,6],ymm6[7]2457; AVX512-NEXT: vpblendd {{.*#+}} ymm12 = ymm3[0,1],ymm4[2],ymm3[3,4],ymm4[5],ymm3[6,7]2458; AVX512-NEXT: vpshufd {{.*#+}} xmm13 = xmm12[2,1,2,3]2459; AVX512-NEXT: vpshuflw {{.*#+}} xmm14 = xmm13[2,1,2,0,4,5,6,7]2460; AVX512-NEXT: vextracti128 $1, %ymm12, %xmm122461; AVX512-NEXT: vpshufd {{.*#+}} xmm12 = xmm12[0,3,2,1]2462; AVX512-NEXT: vpshuflw {{.*#+}} xmm15 = xmm12[0,0,2,3,4,5,6,7]2463; AVX512-NEXT: vpshufd {{.*#+}} xmm15 = xmm15[0,1,3,3]2464; AVX512-NEXT: vpblendw {{.*#+}} xmm14 = xmm14[0],xmm15[1,2],xmm14[3],xmm15[4,5,6,7]2465; AVX512-NEXT: vpshufb {{.*#+}} ymm15 = ymm10[4,5,0,1,12,13,14,15,8,9,0,1,12,13,8,9,20,21,16,17,28,29,30,31,24,25,16,17,28,29,24,25]2466; AVX512-NEXT: vpblendw {{.*#+}} ymm8 = ymm15[0,1,2],ymm8[3,4,5,6,7],ymm15[8,9,10],ymm8[11,12,13,14,15]2467; AVX512-NEXT: vpblendw {{.*#+}} xmm14 = xmm14[0,1,2,3,4],xmm15[5,6,7]2468; AVX512-NEXT: vpblendd {{.*#+}} ymm8 = ymm14[0,1,2,3],ymm8[4,5,6,7]2469; AVX512-NEXT: vpshufhw {{.*#+}} xmm9 = xmm9[0,1,2,3,7,5,6,5]2470; AVX512-NEXT: vpshuflw {{.*#+}} xmm11 = xmm11[1,1,1,1,4,5,6,7]2471; AVX512-NEXT: vpshufhw {{.*#+}} xmm11 = xmm11[0,1,2,3,4,5,7,7]2472; AVX512-NEXT: vpblendw {{.*#+}} xmm9 = xmm11[0,1,2,3],xmm9[4],xmm11[5,6],xmm9[7]2473; AVX512-NEXT: vpshuflw {{.*#+}} xmm11 = xmm13[3,1,2,1,4,5,6,7]2474; AVX512-NEXT: vpshuflw {{.*#+}} xmm12 = xmm12[0,1,3,3,4,5,6,7]2475; AVX512-NEXT: vpshufhw {{.*#+}} xmm12 = xmm12[0,1,2,3,7,7,7,7]2476; AVX512-NEXT: vpblendw {{.*#+}} xmm11 = xmm11[0],xmm12[1,2],xmm11[3],xmm12[4,5,6,7]2477; AVX512-NEXT: vinserti128 $1, %xmm9, %ymm0, %ymm92478; AVX512-NEXT: vpshufb {{.*#+}} ymm10 = ymm10[6,7,2,3,14,15,14,15,14,15,2,3,14,15,10,11,22,23,18,19,30,31,30,31,30,31,18,19,30,31,26,27]2479; AVX512-NEXT: vpblendw {{.*#+}} ymm9 = ymm10[0,1,2],ymm9[3,4,5,6,7],ymm10[8,9,10],ymm9[11,12,13,14,15]2480; AVX512-NEXT: vpblendw {{.*#+}} xmm10 = xmm11[0,1,2,3,4],xmm10[5,6,7]2481; AVX512-NEXT: vpblendd {{.*#+}} ymm9 = ymm10[0,1,2,3],ymm9[4,5,6,7]2482; AVX512-NEXT: vpblendd {{.*#+}} ymm6 = ymm6[0],ymm7[1],ymm6[2,3,4,5],ymm7[6],ymm6[7]2483; AVX512-NEXT: vpshufb {{.*#+}} ymm7 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm6[4,5,0,1,12,13,24,25,20,21],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero2484; AVX512-NEXT: vpblendd {{.*#+}} ymm3 = ymm4[0,1],ymm3[2],ymm4[3,4],ymm3[5],ymm4[6,7]2485; AVX512-NEXT: vextracti128 $1, %ymm3, %xmm42486; AVX512-NEXT: vpshuflw {{.*#+}} xmm10 = xmm4[2,2,2,2,4,5,6,7]2487; AVX512-NEXT: vpshufb {{.*#+}} xmm11 = xmm3[8,9,u,u,0,1,12,13,u,u,12,13,12,13,14,15]2488; AVX512-NEXT: vpblendw {{.*#+}} xmm10 = xmm11[0],xmm10[1],xmm11[2,3],xmm10[4],xmm11[5,6,7]2489; AVX512-NEXT: vmovdqa {{.*#+}} ymm11 = [65535,65535,65535,65535,65535,0,0,0,0,0,65535,65535,65535,65535,65535,65535]2490; AVX512-NEXT: vpternlogq {{.*#+}} ymm10 = (ymm10 & ymm11) | ymm72491; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm2[0],ymm0[1],ymm2[2,3],ymm0[4],ymm2[5,6],ymm0[7]2492; AVX512-NEXT: vextracti128 $1, %ymm0, %xmm22493; AVX512-NEXT: vpshufb {{.*#+}} xmm7 = xmm2[u,u,u,u,u,u,u,u,8,9,u,u,0,1,12,13]2494; AVX512-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[0,3,2,1]2495; AVX512-NEXT: vpshuflw {{.*#+}} xmm12 = xmm0[0,1,0,2,4,5,6,7]2496; AVX512-NEXT: vpshufhw {{.*#+}} xmm12 = xmm12[0,1,2,3,6,6,6,6]2497; AVX512-NEXT: vpblendw {{.*#+}} xmm7 = xmm12[0,1,2,3],xmm7[4],xmm12[5],xmm7[6,7]2498; AVX512-NEXT: vinserti128 $1, %xmm7, %ymm0, %ymm72499; AVX512-NEXT: vpblendd {{.*#+}} ymm7 = ymm10[0,1,2,3,4],ymm7[5,6,7]2500; AVX512-NEXT: vpshufb {{.*#+}} xmm3 = xmm3[10,11,u,u,2,3,14,15,u,u,10,11,12,13,14,15]2501; AVX512-NEXT: vpshufd {{.*#+}} xmm4 = xmm4[1,1,2,3]2502; AVX512-NEXT: vpshufhw {{.*#+}} xmm4 = xmm4[0,1,2,3,5,5,5,5]2503; AVX512-NEXT: vpblendw {{.*#+}} xmm3 = xmm3[0],xmm4[1],xmm3[2,3],xmm4[4],xmm3[5,6,7]2504; AVX512-NEXT: vpshufb {{.*#+}} ymm4 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm6[6,7,2,3,14,15,26,27,22,23],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero2505; AVX512-NEXT: vpternlogq {{.*#+}} ymm3 = (ymm3 & ymm11) | ymm42506; AVX512-NEXT: vpshufb {{.*#+}} xmm2 = xmm2[u,u,u,u,u,u,u,u,10,11,u,u,2,3,14,15]2507; AVX512-NEXT: vpshuflw {{.*#+}} xmm0 = xmm0[0,1,1,3,4,5,6,7]2508; AVX512-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[0,1,3,3]2509; AVX512-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2,3],xmm2[4],xmm0[5],xmm2[6,7]2510; AVX512-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm02511; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm3[0,1,2,3,4],ymm0[5,6,7]2512; AVX512-NEXT: vmovdqa %ymm1, (%rsi)2513; AVX512-NEXT: vmovdqa %ymm5, (%rdx)2514; AVX512-NEXT: vmovdqa %ymm8, (%rcx)2515; AVX512-NEXT: vmovdqa %ymm9, (%r8)2516; AVX512-NEXT: vmovdqa %ymm7, (%r9)2517; AVX512-NEXT: movq {{[0-9]+}}(%rsp), %rax2518; AVX512-NEXT: vmovdqa %ymm0, (%rax)2519; AVX512-NEXT: vzeroupper2520; AVX512-NEXT: retq2521;2522; AVX512-FCP-LABEL: load_i16_stride6_vf16:2523; AVX512-FCP: # %bb.0:2524; AVX512-FCP-NEXT: vmovdqa {{.*#+}} xmm1 = [0,1,12,13,0,1,4,5,8,9,12,13,12,13,14,15]2525; AVX512-FCP-NEXT: vmovdqa (%rdi), %ymm22526; AVX512-FCP-NEXT: vmovdqa 32(%rdi), %ymm32527; AVX512-FCP-NEXT: vmovdqa 64(%rdi), %ymm42528; AVX512-FCP-NEXT: vmovdqa 128(%rdi), %ymm02529; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm8 = ymm2[0],ymm3[1],ymm2[2,3],ymm3[4],ymm2[5,6],ymm3[7]2530; AVX512-FCP-NEXT: vpshufb %xmm1, %xmm8, %xmm52531; AVX512-FCP-NEXT: vextracti128 $1, %ymm8, %xmm62532; AVX512-FCP-NEXT: vpshufd {{.*#+}} xmm9 = xmm6[2,1,0,3]2533; AVX512-FCP-NEXT: vpshufb %xmm1, %xmm9, %xmm12534; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm1 = xmm5[0,1],xmm1[2],xmm5[3],xmm1[4,5],xmm5[6,7]2535; AVX512-FCP-NEXT: vperm2i128 {{.*#+}} ymm6 = ymm4[2,3],mem[2,3]2536; AVX512-FCP-NEXT: vinserti128 $1, 96(%rdi), %ymm4, %ymm72537; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm4 = ymm7[0],ymm6[1],ymm7[2,3,4,5],ymm6[6],ymm7[7]2538; AVX512-FCP-NEXT: vpshufb {{.*#+}} ymm5 = ymm4[u,u,u,u,u,u,u,u,u,u,u,u,8,9,4,5,16,17,28,29,24,25,28,29,24,25,28,29,24,25,20,21]2539; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2],ymm5[3,4,5,6,7]2540; AVX512-FCP-NEXT: vmovdqa 160(%rdi), %ymm52541; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm10 = ymm0[0,1],ymm5[2],ymm0[3,4],ymm5[5],ymm0[6,7]2542; AVX512-FCP-NEXT: vmovdqa {{.*#+}} xmm11 = [0,1,4,5,4,5,4,5,0,1,12,13,8,9,4,5]2543; AVX512-FCP-NEXT: vpshufb %xmm11, %xmm10, %xmm122544; AVX512-FCP-NEXT: vextracti128 $1, %ymm10, %xmm132545; AVX512-FCP-NEXT: vpshufb %xmm11, %xmm13, %xmm112546; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm11 = xmm11[0,1,2],xmm12[3],xmm11[4,5],xmm12[6],xmm11[7]2547; AVX512-FCP-NEXT: vinserti128 $1, %xmm11, %ymm0, %ymm112548; AVX512-FCP-NEXT: vpblendw {{.*#+}} ymm11 = ymm1[0,1,2],ymm11[3,4,5,6,7],ymm1[8,9,10],ymm11[11,12,13,14,15]2549; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm11[4,5,6,7]2550; AVX512-FCP-NEXT: vmovdqa {{.*#+}} xmm11 = [2,3,14,15,2,3,6,7,10,11,14,15,12,13,14,15]2551; AVX512-FCP-NEXT: vpshufb %xmm11, %xmm8, %xmm82552; AVX512-FCP-NEXT: vpshufb %xmm11, %xmm9, %xmm92553; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm8 = xmm8[0,1],xmm9[2],xmm8[3],xmm9[4,5],xmm8[6,7]2554; AVX512-FCP-NEXT: vpshufb {{.*#+}} ymm4 = ymm4[u,u,u,u,u,u,u,u,u,u,u,u,10,11,6,7,18,19,30,31,26,27,26,27,30,31,26,27,26,27,22,23]2555; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm4 = ymm8[0,1,2],ymm4[3,4,5,6,7]2556; AVX512-FCP-NEXT: vpshufhw {{.*#+}} xmm8 = xmm10[0,1,2,3,5,5,5,5]2557; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm9 = xmm13[6,7,2,3,4,5,u,u,2,3,14,15,u,u,6,7]2558; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm8 = xmm9[0,1,2],xmm8[3],xmm9[4,5],xmm8[6],xmm9[7]2559; AVX512-FCP-NEXT: vinserti128 $1, %xmm8, %ymm0, %ymm82560; AVX512-FCP-NEXT: vpblendw {{.*#+}} ymm8 = ymm4[0,1,2],ymm8[3,4,5,6,7],ymm4[8,9,10],ymm8[11,12,13,14,15]2561; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm8[4,5,6,7]2562; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm8 = ymm5[0,1],ymm0[2],ymm5[3,4],ymm0[5],ymm5[6,7]2563; AVX512-FCP-NEXT: vextracti128 $1, %ymm8, %xmm92564; AVX512-FCP-NEXT: vpshufd {{.*#+}} xmm9 = xmm9[0,1,2,1]2565; AVX512-FCP-NEXT: vpshufhw {{.*#+}} xmm10 = xmm9[0,1,2,3,6,5,6,4]2566; AVX512-FCP-NEXT: vpshufd {{.*#+}} xmm11 = xmm8[2,1,0,3]2567; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm8 = xmm11[0,1,0,1,0,1,0,1,u,u,8,9,12,13,u,u]2568; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm8 = xmm8[0,1,2,3],xmm10[4],xmm8[5,6],xmm10[7]2569; AVX512-FCP-NEXT: vinserti128 $1, %xmm8, %ymm0, %ymm82570; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm10 = ymm7[0,1],ymm6[2],ymm7[3],ymm6[4],ymm7[5,6],ymm6[7]2571; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm12 = ymm2[0,1],ymm3[2],ymm2[3,4],ymm3[5],ymm2[6,7]2572; AVX512-FCP-NEXT: vpshufd {{.*#+}} xmm13 = xmm12[2,1,2,3]2573; AVX512-FCP-NEXT: vpshuflw {{.*#+}} xmm14 = xmm13[2,1,2,0,4,5,6,7]2574; AVX512-FCP-NEXT: vextracti128 $1, %ymm12, %xmm122575; AVX512-FCP-NEXT: vpshufd {{.*#+}} xmm12 = xmm12[0,3,2,1]2576; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm15 = xmm12[u,u,0,1,4,5,u,u,12,13,u,u,u,u,u,u]2577; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm14 = xmm14[0],xmm15[1,2],xmm14[3],xmm15[4,5,6,7]2578; AVX512-FCP-NEXT: vpshufb {{.*#+}} ymm15 = ymm10[4,5,0,1,12,13,14,15,8,9,0,1,12,13,8,9,20,21,16,17,28,29,30,31,24,25,16,17,28,29,24,25]2579; AVX512-FCP-NEXT: vpblendw {{.*#+}} ymm8 = ymm15[0,1,2],ymm8[3,4,5,6,7],ymm15[8,9,10],ymm8[11,12,13,14,15]2580; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm14 = xmm14[0,1,2,3,4],xmm15[5,6,7]2581; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm8 = ymm14[0,1,2,3],ymm8[4,5,6,7]2582; AVX512-FCP-NEXT: vpshufhw {{.*#+}} xmm9 = xmm9[0,1,2,3,7,5,6,5]2583; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm11 = xmm11[2,3,2,3,2,3,2,3,u,u,10,11,14,15,u,u]2584; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm9 = xmm11[0,1,2,3],xmm9[4],xmm11[5,6],xmm9[7]2585; AVX512-FCP-NEXT: vpshuflw {{.*#+}} xmm11 = xmm13[3,1,2,1,4,5,6,7]2586; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm12 = xmm12[u,u,2,3,6,7,u,u,14,15,u,u,u,u,u,u]2587; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm11 = xmm11[0],xmm12[1,2],xmm11[3],xmm12[4,5,6,7]2588; AVX512-FCP-NEXT: vinserti128 $1, %xmm9, %ymm0, %ymm92589; AVX512-FCP-NEXT: vpshufb {{.*#+}} ymm10 = ymm10[6,7,2,3,14,15,14,15,14,15,2,3,14,15,10,11,22,23,18,19,30,31,30,31,30,31,18,19,30,31,26,27]2590; AVX512-FCP-NEXT: vpblendw {{.*#+}} ymm9 = ymm10[0,1,2],ymm9[3,4,5,6,7],ymm10[8,9,10],ymm9[11,12,13,14,15]2591; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm10 = xmm11[0,1,2,3,4],xmm10[5,6,7]2592; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm9 = ymm10[0,1,2,3],ymm9[4,5,6,7]2593; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm6 = ymm6[0],ymm7[1],ymm6[2,3,4,5],ymm7[6],ymm6[7]2594; AVX512-FCP-NEXT: vpshufb {{.*#+}} ymm7 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm6[4,5,0,1,12,13,24,25,20,21],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero2595; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm3[0,1],ymm2[2],ymm3[3,4],ymm2[5],ymm3[6,7]2596; AVX512-FCP-NEXT: vextracti128 $1, %ymm2, %xmm32597; AVX512-FCP-NEXT: vpshuflw {{.*#+}} xmm10 = xmm3[2,2,2,2,4,5,6,7]2598; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm11 = xmm2[8,9,u,u,0,1,12,13,u,u,12,13,12,13,14,15]2599; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm10 = xmm11[0],xmm10[1],xmm11[2,3],xmm10[4],xmm11[5,6,7]2600; AVX512-FCP-NEXT: vmovdqa {{.*#+}} ymm11 = [65535,65535,65535,65535,65535,0,0,0,0,0,65535,65535,65535,65535,65535,65535]2601; AVX512-FCP-NEXT: vpternlogq {{.*#+}} ymm10 = (ymm10 & ymm11) | ymm72602; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0],ymm5[1],ymm0[2,3],ymm5[4],ymm0[5,6],ymm5[7]2603; AVX512-FCP-NEXT: vmovdqa {{.*#+}} xmm5 = [0,1,2,3,0,1,4,5,8,9,12,13,0,1,12,13]2604; AVX512-FCP-NEXT: vextracti128 $1, %ymm0, %xmm72605; AVX512-FCP-NEXT: vpshufb %xmm5, %xmm7, %xmm122606; AVX512-FCP-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[0,3,2,1]2607; AVX512-FCP-NEXT: vpshufb %xmm5, %xmm0, %xmm52608; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm5 = xmm5[0,1,2,3],xmm12[4],xmm5[5],xmm12[6,7]2609; AVX512-FCP-NEXT: vinserti128 $1, %xmm5, %ymm0, %ymm52610; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm5 = ymm10[0,1,2,3,4],ymm5[5,6,7]2611; AVX512-FCP-NEXT: vmovdqa {{.*#+}} xmm10 = [10,11,6,7,2,3,14,15,10,11,10,11,12,13,14,15]2612; AVX512-FCP-NEXT: vpshufb %xmm10, %xmm3, %xmm32613; AVX512-FCP-NEXT: vpshufb %xmm10, %xmm2, %xmm22614; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0],xmm3[1],xmm2[2,3],xmm3[4],xmm2[5,6,7]2615; AVX512-FCP-NEXT: vpshufb {{.*#+}} ymm3 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm6[6,7,2,3,14,15,26,27,22,23],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero2616; AVX512-FCP-NEXT: vpternlogq {{.*#+}} ymm3 = ymm3 | (ymm2 & ymm11)2617; AVX512-FCP-NEXT: vmovdqa {{.*#+}} xmm2 = [0,1,2,3,2,3,6,7,10,11,14,15,2,3,14,15]2618; AVX512-FCP-NEXT: vpshufb %xmm2, %xmm7, %xmm62619; AVX512-FCP-NEXT: vpshufb %xmm2, %xmm0, %xmm02620; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2,3],xmm6[4],xmm0[5],xmm6[6,7]2621; AVX512-FCP-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm02622; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm3[0,1,2,3,4],ymm0[5,6,7]2623; AVX512-FCP-NEXT: vmovdqa %ymm1, (%rsi)2624; AVX512-FCP-NEXT: vmovdqa %ymm4, (%rdx)2625; AVX512-FCP-NEXT: vmovdqa %ymm8, (%rcx)2626; AVX512-FCP-NEXT: vmovdqa %ymm9, (%r8)2627; AVX512-FCP-NEXT: vmovdqa %ymm5, (%r9)2628; AVX512-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax2629; AVX512-FCP-NEXT: vmovdqa %ymm0, (%rax)2630; AVX512-FCP-NEXT: vzeroupper2631; AVX512-FCP-NEXT: retq2632;2633; AVX512DQ-LABEL: load_i16_stride6_vf16:2634; AVX512DQ: # %bb.0:2635; AVX512DQ-NEXT: vmovdqa 160(%rdi), %ymm02636; AVX512DQ-NEXT: vmovdqa (%rdi), %ymm32637; AVX512DQ-NEXT: vmovdqa 32(%rdi), %ymm42638; AVX512DQ-NEXT: vmovdqa 64(%rdi), %ymm12639; AVX512DQ-NEXT: vmovdqa 128(%rdi), %ymm22640; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm5 = ymm2[0,1],ymm0[2],ymm2[3,4],ymm0[5],ymm2[6,7]2641; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm6 = xmm5[2,2,2,2,4,5,6,7]2642; AVX512DQ-NEXT: vextracti128 $1, %ymm5, %xmm82643; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm6 = xmm8[0,1,2],xmm6[3,4],xmm8[5,6,7]2644; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm6 = xmm6[u,u,u,u,u,u,6,7,0,1,12,13,8,9,4,5]2645; AVX512DQ-NEXT: vinserti128 $1, %xmm6, %ymm0, %ymm92646; AVX512DQ-NEXT: vperm2i128 {{.*#+}} ymm6 = ymm1[2,3],mem[2,3]2647; AVX512DQ-NEXT: vinserti128 $1, 96(%rdi), %ymm1, %ymm72648; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm10 = ymm7[0],ymm6[1],ymm7[2,3,4,5],ymm6[6],ymm7[7]2649; AVX512DQ-NEXT: vpshufb {{.*#+}} ymm1 = ymm10[u,u,u,u,u,u,u,u,u,u,u,u,8,9,4,5,16,17,28,29,24,25,28,29,24,25,28,29,24,25,20,21]2650; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm11 = ymm3[0],ymm4[1],ymm3[2,3],ymm4[4],ymm3[5,6],ymm4[7]2651; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm12 = xmm11[0,1,12,13,u,u,4,5,u,u,u,u,12,13,14,15]2652; AVX512DQ-NEXT: vextracti128 $1, %ymm11, %xmm132653; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm14 = xmm13[0,2,0,3]2654; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm14 = xmm14[0,1,2,3,4,6,6,7]2655; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm12 = xmm12[0,1],xmm14[2],xmm12[3],xmm14[4,5],xmm12[6,7]2656; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm1 = ymm12[0,1,2],ymm1[3,4,5,6,7]2657; AVX512DQ-NEXT: vpblendw {{.*#+}} ymm9 = ymm1[0,1,2],ymm9[3,4,5,6,7],ymm1[8,9,10],ymm9[11,12,13,14,15]2658; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm9[4,5,6,7]2659; AVX512DQ-NEXT: vmovdqa {{.*#+}} xmm9 = [2,3,14,15,10,11,6,7,2,3,14,15,12,13,14,15]2660; AVX512DQ-NEXT: vpshufb %xmm9, %xmm13, %xmm122661; AVX512DQ-NEXT: vpshufb %xmm9, %xmm11, %xmm92662; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm9 = xmm9[0,1],xmm12[2],xmm9[3],xmm12[4,5],xmm9[6,7]2663; AVX512DQ-NEXT: vpshufb {{.*#+}} ymm10 = ymm10[u,u,u,u,u,u,u,u,u,u,u,u,10,11,6,7,18,19,30,31,26,27,26,27,30,31,26,27,26,27,22,23]2664; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm9 = ymm9[0,1,2],ymm10[3,4,5,6,7]2665; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm5 = xmm5[0,1,2,3,5,5,5,5]2666; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm8 = xmm8[6,7,2,3,4,5,u,u,2,3,14,15,u,u,6,7]2667; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm5 = xmm8[0,1,2],xmm5[3],xmm8[4,5],xmm5[6],xmm8[7]2668; AVX512DQ-NEXT: vinserti128 $1, %xmm5, %ymm0, %ymm52669; AVX512DQ-NEXT: vpblendw {{.*#+}} ymm5 = ymm9[0,1,2],ymm5[3,4,5,6,7],ymm9[8,9,10],ymm5[11,12,13,14,15]2670; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm5 = ymm9[0,1,2,3],ymm5[4,5,6,7]2671; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm8 = ymm0[0,1],ymm2[2],ymm0[3,4],ymm2[5],ymm0[6,7]2672; AVX512DQ-NEXT: vextracti128 $1, %ymm8, %xmm92673; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm9 = xmm9[0,1,2,1]2674; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm10 = xmm9[0,1,2,3,6,5,6,4]2675; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm11 = xmm8[2,1,0,3]2676; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm8 = xmm11[0,0,0,0,4,5,6,7]2677; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm8 = xmm8[0,1,2,3,4,4,6,7]2678; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm8 = xmm8[0,1,2,3],xmm10[4],xmm8[5,6],xmm10[7]2679; AVX512DQ-NEXT: vinserti128 $1, %xmm8, %ymm0, %ymm82680; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm10 = ymm7[0,1],ymm6[2],ymm7[3],ymm6[4],ymm7[5,6],ymm6[7]2681; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm12 = ymm3[0,1],ymm4[2],ymm3[3,4],ymm4[5],ymm3[6,7]2682; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm13 = xmm12[2,1,2,3]2683; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm14 = xmm13[2,1,2,0,4,5,6,7]2684; AVX512DQ-NEXT: vextracti128 $1, %ymm12, %xmm122685; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm12 = xmm12[0,3,2,1]2686; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm15 = xmm12[0,0,2,3,4,5,6,7]2687; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm15 = xmm15[0,1,3,3]2688; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm14 = xmm14[0],xmm15[1,2],xmm14[3],xmm15[4,5,6,7]2689; AVX512DQ-NEXT: vpshufb {{.*#+}} ymm15 = ymm10[4,5,0,1,12,13,14,15,8,9,0,1,12,13,8,9,20,21,16,17,28,29,30,31,24,25,16,17,28,29,24,25]2690; AVX512DQ-NEXT: vpblendw {{.*#+}} ymm8 = ymm15[0,1,2],ymm8[3,4,5,6,7],ymm15[8,9,10],ymm8[11,12,13,14,15]2691; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm14 = xmm14[0,1,2,3,4],xmm15[5,6,7]2692; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm8 = ymm14[0,1,2,3],ymm8[4,5,6,7]2693; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm9 = xmm9[0,1,2,3,7,5,6,5]2694; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm11 = xmm11[1,1,1,1,4,5,6,7]2695; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm11 = xmm11[0,1,2,3,4,5,7,7]2696; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm9 = xmm11[0,1,2,3],xmm9[4],xmm11[5,6],xmm9[7]2697; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm11 = xmm13[3,1,2,1,4,5,6,7]2698; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm12 = xmm12[0,1,3,3,4,5,6,7]2699; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm12 = xmm12[0,1,2,3,7,7,7,7]2700; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm11 = xmm11[0],xmm12[1,2],xmm11[3],xmm12[4,5,6,7]2701; AVX512DQ-NEXT: vinserti128 $1, %xmm9, %ymm0, %ymm92702; AVX512DQ-NEXT: vpshufb {{.*#+}} ymm10 = ymm10[6,7,2,3,14,15,14,15,14,15,2,3,14,15,10,11,22,23,18,19,30,31,30,31,30,31,18,19,30,31,26,27]2703; AVX512DQ-NEXT: vpblendw {{.*#+}} ymm9 = ymm10[0,1,2],ymm9[3,4,5,6,7],ymm10[8,9,10],ymm9[11,12,13,14,15]2704; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm10 = xmm11[0,1,2,3,4],xmm10[5,6,7]2705; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm9 = ymm10[0,1,2,3],ymm9[4,5,6,7]2706; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm6 = ymm6[0],ymm7[1],ymm6[2,3,4,5],ymm7[6],ymm6[7]2707; AVX512DQ-NEXT: vpshufb {{.*#+}} ymm7 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm6[4,5,0,1,12,13,24,25,20,21],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero2708; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm3 = ymm4[0,1],ymm3[2],ymm4[3,4],ymm3[5],ymm4[6,7]2709; AVX512DQ-NEXT: vextracti128 $1, %ymm3, %xmm42710; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm10 = xmm4[2,2,2,2,4,5,6,7]2711; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm11 = xmm3[8,9,u,u,0,1,12,13,u,u,12,13,12,13,14,15]2712; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm10 = xmm11[0],xmm10[1],xmm11[2,3],xmm10[4],xmm11[5,6,7]2713; AVX512DQ-NEXT: vmovdqa {{.*#+}} ymm11 = [65535,65535,65535,65535,65535,0,0,0,0,0,65535,65535,65535,65535,65535,65535]2714; AVX512DQ-NEXT: vpternlogq {{.*#+}} ymm10 = (ymm10 & ymm11) | ymm72715; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm0 = ymm2[0],ymm0[1],ymm2[2,3],ymm0[4],ymm2[5,6],ymm0[7]2716; AVX512DQ-NEXT: vextracti128 $1, %ymm0, %xmm22717; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm7 = xmm2[u,u,u,u,u,u,u,u,8,9,u,u,0,1,12,13]2718; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[0,3,2,1]2719; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm12 = xmm0[0,1,0,2,4,5,6,7]2720; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm12 = xmm12[0,1,2,3,6,6,6,6]2721; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm7 = xmm12[0,1,2,3],xmm7[4],xmm12[5],xmm7[6,7]2722; AVX512DQ-NEXT: vinserti128 $1, %xmm7, %ymm0, %ymm72723; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm7 = ymm10[0,1,2,3,4],ymm7[5,6,7]2724; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm3 = xmm3[10,11,u,u,2,3,14,15,u,u,10,11,12,13,14,15]2725; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm4 = xmm4[1,1,2,3]2726; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm4 = xmm4[0,1,2,3,5,5,5,5]2727; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm3 = xmm3[0],xmm4[1],xmm3[2,3],xmm4[4],xmm3[5,6,7]2728; AVX512DQ-NEXT: vpshufb {{.*#+}} ymm4 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm6[6,7,2,3,14,15,26,27,22,23],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero2729; AVX512DQ-NEXT: vpternlogq {{.*#+}} ymm3 = (ymm3 & ymm11) | ymm42730; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm2 = xmm2[u,u,u,u,u,u,u,u,10,11,u,u,2,3,14,15]2731; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm0 = xmm0[0,1,1,3,4,5,6,7]2732; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[0,1,3,3]2733; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2,3],xmm2[4],xmm0[5],xmm2[6,7]2734; AVX512DQ-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm02735; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm0 = ymm3[0,1,2,3,4],ymm0[5,6,7]2736; AVX512DQ-NEXT: vmovdqa %ymm1, (%rsi)2737; AVX512DQ-NEXT: vmovdqa %ymm5, (%rdx)2738; AVX512DQ-NEXT: vmovdqa %ymm8, (%rcx)2739; AVX512DQ-NEXT: vmovdqa %ymm9, (%r8)2740; AVX512DQ-NEXT: vmovdqa %ymm7, (%r9)2741; AVX512DQ-NEXT: movq {{[0-9]+}}(%rsp), %rax2742; AVX512DQ-NEXT: vmovdqa %ymm0, (%rax)2743; AVX512DQ-NEXT: vzeroupper2744; AVX512DQ-NEXT: retq2745;2746; AVX512DQ-FCP-LABEL: load_i16_stride6_vf16:2747; AVX512DQ-FCP: # %bb.0:2748; AVX512DQ-FCP-NEXT: vmovdqa {{.*#+}} xmm1 = [0,1,12,13,0,1,4,5,8,9,12,13,12,13,14,15]2749; AVX512DQ-FCP-NEXT: vmovdqa (%rdi), %ymm22750; AVX512DQ-FCP-NEXT: vmovdqa 32(%rdi), %ymm32751; AVX512DQ-FCP-NEXT: vmovdqa 64(%rdi), %ymm42752; AVX512DQ-FCP-NEXT: vmovdqa 128(%rdi), %ymm02753; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm8 = ymm2[0],ymm3[1],ymm2[2,3],ymm3[4],ymm2[5,6],ymm3[7]2754; AVX512DQ-FCP-NEXT: vpshufb %xmm1, %xmm8, %xmm52755; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm8, %xmm62756; AVX512DQ-FCP-NEXT: vpshufd {{.*#+}} xmm9 = xmm6[2,1,0,3]2757; AVX512DQ-FCP-NEXT: vpshufb %xmm1, %xmm9, %xmm12758; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm1 = xmm5[0,1],xmm1[2],xmm5[3],xmm1[4,5],xmm5[6,7]2759; AVX512DQ-FCP-NEXT: vperm2i128 {{.*#+}} ymm6 = ymm4[2,3],mem[2,3]2760; AVX512DQ-FCP-NEXT: vinserti128 $1, 96(%rdi), %ymm4, %ymm72761; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm4 = ymm7[0],ymm6[1],ymm7[2,3,4,5],ymm6[6],ymm7[7]2762; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} ymm5 = ymm4[u,u,u,u,u,u,u,u,u,u,u,u,8,9,4,5,16,17,28,29,24,25,28,29,24,25,28,29,24,25,20,21]2763; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2],ymm5[3,4,5,6,7]2764; AVX512DQ-FCP-NEXT: vmovdqa 160(%rdi), %ymm52765; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm10 = ymm0[0,1],ymm5[2],ymm0[3,4],ymm5[5],ymm0[6,7]2766; AVX512DQ-FCP-NEXT: vmovdqa {{.*#+}} xmm11 = [0,1,4,5,4,5,4,5,0,1,12,13,8,9,4,5]2767; AVX512DQ-FCP-NEXT: vpshufb %xmm11, %xmm10, %xmm122768; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm10, %xmm132769; AVX512DQ-FCP-NEXT: vpshufb %xmm11, %xmm13, %xmm112770; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm11 = xmm11[0,1,2],xmm12[3],xmm11[4,5],xmm12[6],xmm11[7]2771; AVX512DQ-FCP-NEXT: vinserti128 $1, %xmm11, %ymm0, %ymm112772; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} ymm11 = ymm1[0,1,2],ymm11[3,4,5,6,7],ymm1[8,9,10],ymm11[11,12,13,14,15]2773; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm11[4,5,6,7]2774; AVX512DQ-FCP-NEXT: vmovdqa {{.*#+}} xmm11 = [2,3,14,15,2,3,6,7,10,11,14,15,12,13,14,15]2775; AVX512DQ-FCP-NEXT: vpshufb %xmm11, %xmm8, %xmm82776; AVX512DQ-FCP-NEXT: vpshufb %xmm11, %xmm9, %xmm92777; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm8 = xmm8[0,1],xmm9[2],xmm8[3],xmm9[4,5],xmm8[6,7]2778; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} ymm4 = ymm4[u,u,u,u,u,u,u,u,u,u,u,u,10,11,6,7,18,19,30,31,26,27,26,27,30,31,26,27,26,27,22,23]2779; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm4 = ymm8[0,1,2],ymm4[3,4,5,6,7]2780; AVX512DQ-FCP-NEXT: vpshufhw {{.*#+}} xmm8 = xmm10[0,1,2,3,5,5,5,5]2781; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm9 = xmm13[6,7,2,3,4,5,u,u,2,3,14,15,u,u,6,7]2782; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm8 = xmm9[0,1,2],xmm8[3],xmm9[4,5],xmm8[6],xmm9[7]2783; AVX512DQ-FCP-NEXT: vinserti128 $1, %xmm8, %ymm0, %ymm82784; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} ymm8 = ymm4[0,1,2],ymm8[3,4,5,6,7],ymm4[8,9,10],ymm8[11,12,13,14,15]2785; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm8[4,5,6,7]2786; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm8 = ymm5[0,1],ymm0[2],ymm5[3,4],ymm0[5],ymm5[6,7]2787; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm8, %xmm92788; AVX512DQ-FCP-NEXT: vpshufd {{.*#+}} xmm9 = xmm9[0,1,2,1]2789; AVX512DQ-FCP-NEXT: vpshufhw {{.*#+}} xmm10 = xmm9[0,1,2,3,6,5,6,4]2790; AVX512DQ-FCP-NEXT: vpshufd {{.*#+}} xmm11 = xmm8[2,1,0,3]2791; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm8 = xmm11[0,1,0,1,0,1,0,1,u,u,8,9,12,13,u,u]2792; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm8 = xmm8[0,1,2,3],xmm10[4],xmm8[5,6],xmm10[7]2793; AVX512DQ-FCP-NEXT: vinserti128 $1, %xmm8, %ymm0, %ymm82794; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm10 = ymm7[0,1],ymm6[2],ymm7[3],ymm6[4],ymm7[5,6],ymm6[7]2795; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm12 = ymm2[0,1],ymm3[2],ymm2[3,4],ymm3[5],ymm2[6,7]2796; AVX512DQ-FCP-NEXT: vpshufd {{.*#+}} xmm13 = xmm12[2,1,2,3]2797; AVX512DQ-FCP-NEXT: vpshuflw {{.*#+}} xmm14 = xmm13[2,1,2,0,4,5,6,7]2798; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm12, %xmm122799; AVX512DQ-FCP-NEXT: vpshufd {{.*#+}} xmm12 = xmm12[0,3,2,1]2800; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm15 = xmm12[u,u,0,1,4,5,u,u,12,13,u,u,u,u,u,u]2801; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm14 = xmm14[0],xmm15[1,2],xmm14[3],xmm15[4,5,6,7]2802; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} ymm15 = ymm10[4,5,0,1,12,13,14,15,8,9,0,1,12,13,8,9,20,21,16,17,28,29,30,31,24,25,16,17,28,29,24,25]2803; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} ymm8 = ymm15[0,1,2],ymm8[3,4,5,6,7],ymm15[8,9,10],ymm8[11,12,13,14,15]2804; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm14 = xmm14[0,1,2,3,4],xmm15[5,6,7]2805; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm8 = ymm14[0,1,2,3],ymm8[4,5,6,7]2806; AVX512DQ-FCP-NEXT: vpshufhw {{.*#+}} xmm9 = xmm9[0,1,2,3,7,5,6,5]2807; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm11 = xmm11[2,3,2,3,2,3,2,3,u,u,10,11,14,15,u,u]2808; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm9 = xmm11[0,1,2,3],xmm9[4],xmm11[5,6],xmm9[7]2809; AVX512DQ-FCP-NEXT: vpshuflw {{.*#+}} xmm11 = xmm13[3,1,2,1,4,5,6,7]2810; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm12 = xmm12[u,u,2,3,6,7,u,u,14,15,u,u,u,u,u,u]2811; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm11 = xmm11[0],xmm12[1,2],xmm11[3],xmm12[4,5,6,7]2812; AVX512DQ-FCP-NEXT: vinserti128 $1, %xmm9, %ymm0, %ymm92813; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} ymm10 = ymm10[6,7,2,3,14,15,14,15,14,15,2,3,14,15,10,11,22,23,18,19,30,31,30,31,30,31,18,19,30,31,26,27]2814; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} ymm9 = ymm10[0,1,2],ymm9[3,4,5,6,7],ymm10[8,9,10],ymm9[11,12,13,14,15]2815; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm10 = xmm11[0,1,2,3,4],xmm10[5,6,7]2816; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm9 = ymm10[0,1,2,3],ymm9[4,5,6,7]2817; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm6 = ymm6[0],ymm7[1],ymm6[2,3,4,5],ymm7[6],ymm6[7]2818; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} ymm7 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm6[4,5,0,1,12,13,24,25,20,21],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero2819; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm3[0,1],ymm2[2],ymm3[3,4],ymm2[5],ymm3[6,7]2820; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm2, %xmm32821; AVX512DQ-FCP-NEXT: vpshuflw {{.*#+}} xmm10 = xmm3[2,2,2,2,4,5,6,7]2822; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm11 = xmm2[8,9,u,u,0,1,12,13,u,u,12,13,12,13,14,15]2823; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm10 = xmm11[0],xmm10[1],xmm11[2,3],xmm10[4],xmm11[5,6,7]2824; AVX512DQ-FCP-NEXT: vmovdqa {{.*#+}} ymm11 = [65535,65535,65535,65535,65535,0,0,0,0,0,65535,65535,65535,65535,65535,65535]2825; AVX512DQ-FCP-NEXT: vpternlogq {{.*#+}} ymm10 = (ymm10 & ymm11) | ymm72826; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0],ymm5[1],ymm0[2,3],ymm5[4],ymm0[5,6],ymm5[7]2827; AVX512DQ-FCP-NEXT: vmovdqa {{.*#+}} xmm5 = [0,1,2,3,0,1,4,5,8,9,12,13,0,1,12,13]2828; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm0, %xmm72829; AVX512DQ-FCP-NEXT: vpshufb %xmm5, %xmm7, %xmm122830; AVX512DQ-FCP-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[0,3,2,1]2831; AVX512DQ-FCP-NEXT: vpshufb %xmm5, %xmm0, %xmm52832; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm5 = xmm5[0,1,2,3],xmm12[4],xmm5[5],xmm12[6,7]2833; AVX512DQ-FCP-NEXT: vinserti128 $1, %xmm5, %ymm0, %ymm52834; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm5 = ymm10[0,1,2,3,4],ymm5[5,6,7]2835; AVX512DQ-FCP-NEXT: vmovdqa {{.*#+}} xmm10 = [10,11,6,7,2,3,14,15,10,11,10,11,12,13,14,15]2836; AVX512DQ-FCP-NEXT: vpshufb %xmm10, %xmm3, %xmm32837; AVX512DQ-FCP-NEXT: vpshufb %xmm10, %xmm2, %xmm22838; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0],xmm3[1],xmm2[2,3],xmm3[4],xmm2[5,6,7]2839; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} ymm3 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm6[6,7,2,3,14,15,26,27,22,23],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero2840; AVX512DQ-FCP-NEXT: vpternlogq {{.*#+}} ymm3 = ymm3 | (ymm2 & ymm11)2841; AVX512DQ-FCP-NEXT: vmovdqa {{.*#+}} xmm2 = [0,1,2,3,2,3,6,7,10,11,14,15,2,3,14,15]2842; AVX512DQ-FCP-NEXT: vpshufb %xmm2, %xmm7, %xmm62843; AVX512DQ-FCP-NEXT: vpshufb %xmm2, %xmm0, %xmm02844; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2,3],xmm6[4],xmm0[5],xmm6[6,7]2845; AVX512DQ-FCP-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm02846; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm3[0,1,2,3,4],ymm0[5,6,7]2847; AVX512DQ-FCP-NEXT: vmovdqa %ymm1, (%rsi)2848; AVX512DQ-FCP-NEXT: vmovdqa %ymm4, (%rdx)2849; AVX512DQ-FCP-NEXT: vmovdqa %ymm8, (%rcx)2850; AVX512DQ-FCP-NEXT: vmovdqa %ymm9, (%r8)2851; AVX512DQ-FCP-NEXT: vmovdqa %ymm5, (%r9)2852; AVX512DQ-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax2853; AVX512DQ-FCP-NEXT: vmovdqa %ymm0, (%rax)2854; AVX512DQ-FCP-NEXT: vzeroupper2855; AVX512DQ-FCP-NEXT: retq2856;2857; AVX512BW-LABEL: load_i16_stride6_vf16:2858; AVX512BW: # %bb.0:2859; AVX512BW-NEXT: movq {{[0-9]+}}(%rsp), %rax2860; AVX512BW-NEXT: vbroadcasti128 {{.*#+}} ymm0 = [0,0,0,2,8,14,20,26,0,0,0,2,8,14,20,26]2861; AVX512BW-NEXT: # ymm0 = mem[0,1,0,1]2862; AVX512BW-NEXT: vmovdqa64 (%rdi), %zmm32863; AVX512BW-NEXT: vmovdqa64 64(%rdi), %zmm42864; AVX512BW-NEXT: vmovdqa64 128(%rdi), %zmm52865; AVX512BW-NEXT: vpermw %zmm5, %zmm0, %zmm02866; AVX512BW-NEXT: vpmovsxbw {{.*#+}} ymm1 = [0,6,12,18,24,30,36,42,48,54,60,0,0,0,0,0]2867; AVX512BW-NEXT: vpermi2w %zmm4, %zmm3, %zmm12868; AVX512BW-NEXT: vpblendw {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3,4,5,6,7],ymm1[8,9,10],ymm0[11,12,13,14,15]2869; AVX512BW-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]2870; AVX512BW-NEXT: vbroadcasti128 {{.*#+}} ymm1 = [0,0,0,3,9,15,21,27,0,0,0,3,9,15,21,27]2871; AVX512BW-NEXT: # ymm1 = mem[0,1,0,1]2872; AVX512BW-NEXT: vpermw %zmm5, %zmm1, %zmm12873; AVX512BW-NEXT: vpmovsxbw {{.*#+}} ymm2 = [1,7,13,19,25,31,37,43,49,55,61,0,0,0,0,0]2874; AVX512BW-NEXT: vpermi2w %zmm4, %zmm3, %zmm22875; AVX512BW-NEXT: vpblendw {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3,4,5,6,7],ymm2[8,9,10],ymm1[11,12,13,14,15]2876; AVX512BW-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]2877; AVX512BW-NEXT: vbroadcasti128 {{.*#+}} ymm2 = [16,16,16,4,10,16,22,28,16,16,16,4,10,16,22,28]2878; AVX512BW-NEXT: # ymm2 = mem[0,1,0,1]2879; AVX512BW-NEXT: vpermw %zmm5, %zmm2, %zmm22880; AVX512BW-NEXT: vpmovsxbw {{.*#+}} ymm6 = [34,40,46,52,58,0,6,12,18,24,30,0,0,0,0,0]2881; AVX512BW-NEXT: vpermi2w %zmm3, %zmm4, %zmm62882; AVX512BW-NEXT: vpblendw {{.*#+}} ymm2 = ymm6[0,1,2],ymm2[3,4,5,6,7],ymm6[8,9,10],ymm2[11,12,13,14,15]2883; AVX512BW-NEXT: vpblendd {{.*#+}} ymm2 = ymm6[0,1,2,3],ymm2[4,5,6,7]2884; AVX512BW-NEXT: vbroadcasti128 {{.*#+}} ymm6 = [16,16,16,5,11,17,23,29,16,16,16,5,11,17,23,29]2885; AVX512BW-NEXT: # ymm6 = mem[0,1,0,1]2886; AVX512BW-NEXT: vpermw %zmm5, %zmm6, %zmm62887; AVX512BW-NEXT: vpmovsxbw {{.*#+}} ymm7 = [35,41,47,53,59,1,7,13,19,25,31,0,0,0,0,0]2888; AVX512BW-NEXT: vpermi2w %zmm3, %zmm4, %zmm72889; AVX512BW-NEXT: vpblendw {{.*#+}} ymm6 = ymm7[0,1,2],ymm6[3,4,5,6,7],ymm7[8,9,10],ymm6[11,12,13,14,15]2890; AVX512BW-NEXT: vpblendd {{.*#+}} ymm6 = ymm7[0,1,2,3],ymm6[4,5,6,7]2891; AVX512BW-NEXT: vbroadcasti128 {{.*#+}} ymm7 = [0,0,0,6,12,18,24,30,0,0,0,6,12,18,24,30]2892; AVX512BW-NEXT: # ymm7 = mem[0,1,0,1]2893; AVX512BW-NEXT: vpermw %zmm5, %zmm7, %zmm72894; AVX512BW-NEXT: vpmovsxbw {{.*#+}} ymm8 = [4,10,16,22,28,34,40,46,52,58,0,0,0,0,0,0]2895; AVX512BW-NEXT: vpermi2w %zmm4, %zmm3, %zmm82896; AVX512BW-NEXT: vpblendd {{.*#+}} ymm7 = ymm8[0,1,2,3,4],ymm7[5,6,7]2897; AVX512BW-NEXT: vbroadcasti128 {{.*#+}} ymm8 = [0,0,1,7,13,19,25,31,0,0,1,7,13,19,25,31]2898; AVX512BW-NEXT: # ymm8 = mem[0,1,0,1]2899; AVX512BW-NEXT: vpermw %zmm5, %zmm8, %zmm52900; AVX512BW-NEXT: vpmovsxbw {{.*#+}} ymm8 = [5,11,17,23,29,35,41,47,53,59,0,0,0,0,0,0]2901; AVX512BW-NEXT: vpermi2w %zmm4, %zmm3, %zmm82902; AVX512BW-NEXT: vpblendd {{.*#+}} ymm3 = ymm8[0,1,2,3,4],ymm5[5,6,7]2903; AVX512BW-NEXT: vmovdqa %ymm0, (%rsi)2904; AVX512BW-NEXT: vmovdqa %ymm1, (%rdx)2905; AVX512BW-NEXT: vmovdqa %ymm2, (%rcx)2906; AVX512BW-NEXT: vmovdqa %ymm6, (%r8)2907; AVX512BW-NEXT: vmovdqa %ymm7, (%r9)2908; AVX512BW-NEXT: vmovdqa %ymm3, (%rax)2909; AVX512BW-NEXT: vzeroupper2910; AVX512BW-NEXT: retq2911;2912; AVX512BW-FCP-LABEL: load_i16_stride6_vf16:2913; AVX512BW-FCP: # %bb.0:2914; AVX512BW-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax2915; AVX512BW-FCP-NEXT: vbroadcasti128 {{.*#+}} ymm0 = [0,0,0,2,8,14,20,26,0,0,0,2,8,14,20,26]2916; AVX512BW-FCP-NEXT: # ymm0 = mem[0,1,0,1]2917; AVX512BW-FCP-NEXT: vmovdqa64 (%rdi), %zmm32918; AVX512BW-FCP-NEXT: vmovdqa64 64(%rdi), %zmm42919; AVX512BW-FCP-NEXT: vmovdqa64 128(%rdi), %zmm52920; AVX512BW-FCP-NEXT: vpermw %zmm5, %zmm0, %zmm02921; AVX512BW-FCP-NEXT: vpmovsxbw {{.*#+}} ymm1 = [0,6,12,18,24,30,36,42,48,54,60,0,0,0,0,0]2922; AVX512BW-FCP-NEXT: vpermi2w %zmm4, %zmm3, %zmm12923; AVX512BW-FCP-NEXT: vpblendw {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3,4,5,6,7],ymm1[8,9,10],ymm0[11,12,13,14,15]2924; AVX512BW-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]2925; AVX512BW-FCP-NEXT: vbroadcasti128 {{.*#+}} ymm1 = [0,0,0,3,9,15,21,27,0,0,0,3,9,15,21,27]2926; AVX512BW-FCP-NEXT: # ymm1 = mem[0,1,0,1]2927; AVX512BW-FCP-NEXT: vpermw %zmm5, %zmm1, %zmm12928; AVX512BW-FCP-NEXT: vpmovsxbw {{.*#+}} ymm2 = [1,7,13,19,25,31,37,43,49,55,61,0,0,0,0,0]2929; AVX512BW-FCP-NEXT: vpermi2w %zmm4, %zmm3, %zmm22930; AVX512BW-FCP-NEXT: vpblendw {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3,4,5,6,7],ymm2[8,9,10],ymm1[11,12,13,14,15]2931; AVX512BW-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]2932; AVX512BW-FCP-NEXT: vbroadcasti128 {{.*#+}} ymm2 = [16,16,16,4,10,16,22,28,16,16,16,4,10,16,22,28]2933; AVX512BW-FCP-NEXT: # ymm2 = mem[0,1,0,1]2934; AVX512BW-FCP-NEXT: vpermw %zmm5, %zmm2, %zmm22935; AVX512BW-FCP-NEXT: vpmovsxbw {{.*#+}} ymm6 = [34,40,46,52,58,0,6,12,18,24,30,0,0,0,0,0]2936; AVX512BW-FCP-NEXT: vpermi2w %zmm3, %zmm4, %zmm62937; AVX512BW-FCP-NEXT: vpblendw {{.*#+}} ymm2 = ymm6[0,1,2],ymm2[3,4,5,6,7],ymm6[8,9,10],ymm2[11,12,13,14,15]2938; AVX512BW-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm6[0,1,2,3],ymm2[4,5,6,7]2939; AVX512BW-FCP-NEXT: vbroadcasti128 {{.*#+}} ymm6 = [16,16,16,5,11,17,23,29,16,16,16,5,11,17,23,29]2940; AVX512BW-FCP-NEXT: # ymm6 = mem[0,1,0,1]2941; AVX512BW-FCP-NEXT: vpermw %zmm5, %zmm6, %zmm62942; AVX512BW-FCP-NEXT: vpmovsxbw {{.*#+}} ymm7 = [35,41,47,53,59,1,7,13,19,25,31,0,0,0,0,0]2943; AVX512BW-FCP-NEXT: vpermi2w %zmm3, %zmm4, %zmm72944; 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]2945; AVX512BW-FCP-NEXT: vpblendd {{.*#+}} ymm6 = ymm7[0,1,2,3],ymm6[4,5,6,7]2946; AVX512BW-FCP-NEXT: vbroadcasti128 {{.*#+}} ymm7 = [0,0,0,6,12,18,24,30,0,0,0,6,12,18,24,30]2947; AVX512BW-FCP-NEXT: # ymm7 = mem[0,1,0,1]2948; AVX512BW-FCP-NEXT: vpermw %zmm5, %zmm7, %zmm72949; AVX512BW-FCP-NEXT: vpmovsxbw {{.*#+}} ymm8 = [4,10,16,22,28,34,40,46,52,58,0,0,0,0,0,0]2950; AVX512BW-FCP-NEXT: vpermi2w %zmm4, %zmm3, %zmm82951; AVX512BW-FCP-NEXT: vpblendd {{.*#+}} ymm7 = ymm8[0,1,2,3,4],ymm7[5,6,7]2952; AVX512BW-FCP-NEXT: vbroadcasti128 {{.*#+}} ymm8 = [0,0,1,7,13,19,25,31,0,0,1,7,13,19,25,31]2953; AVX512BW-FCP-NEXT: # ymm8 = mem[0,1,0,1]2954; AVX512BW-FCP-NEXT: vpermw %zmm5, %zmm8, %zmm52955; AVX512BW-FCP-NEXT: vpmovsxbw {{.*#+}} ymm8 = [5,11,17,23,29,35,41,47,53,59,0,0,0,0,0,0]2956; AVX512BW-FCP-NEXT: vpermi2w %zmm4, %zmm3, %zmm82957; AVX512BW-FCP-NEXT: vpblendd {{.*#+}} ymm3 = ymm8[0,1,2,3,4],ymm5[5,6,7]2958; AVX512BW-FCP-NEXT: vmovdqa %ymm0, (%rsi)2959; AVX512BW-FCP-NEXT: vmovdqa %ymm1, (%rdx)2960; AVX512BW-FCP-NEXT: vmovdqa %ymm2, (%rcx)2961; AVX512BW-FCP-NEXT: vmovdqa %ymm6, (%r8)2962; AVX512BW-FCP-NEXT: vmovdqa %ymm7, (%r9)2963; AVX512BW-FCP-NEXT: vmovdqa %ymm3, (%rax)2964; AVX512BW-FCP-NEXT: vzeroupper2965; AVX512BW-FCP-NEXT: retq2966;2967; AVX512DQ-BW-LABEL: load_i16_stride6_vf16:2968; AVX512DQ-BW: # %bb.0:2969; AVX512DQ-BW-NEXT: movq {{[0-9]+}}(%rsp), %rax2970; AVX512DQ-BW-NEXT: vbroadcasti128 {{.*#+}} ymm0 = [0,0,0,2,8,14,20,26,0,0,0,2,8,14,20,26]2971; AVX512DQ-BW-NEXT: # ymm0 = mem[0,1,0,1]2972; AVX512DQ-BW-NEXT: vmovdqa64 (%rdi), %zmm32973; AVX512DQ-BW-NEXT: vmovdqa64 64(%rdi), %zmm42974; AVX512DQ-BW-NEXT: vmovdqa64 128(%rdi), %zmm52975; AVX512DQ-BW-NEXT: vpermw %zmm5, %zmm0, %zmm02976; AVX512DQ-BW-NEXT: vpmovsxbw {{.*#+}} ymm1 = [0,6,12,18,24,30,36,42,48,54,60,0,0,0,0,0]2977; AVX512DQ-BW-NEXT: vpermi2w %zmm4, %zmm3, %zmm12978; AVX512DQ-BW-NEXT: vpblendw {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3,4,5,6,7],ymm1[8,9,10],ymm0[11,12,13,14,15]2979; AVX512DQ-BW-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]2980; AVX512DQ-BW-NEXT: vbroadcasti128 {{.*#+}} ymm1 = [0,0,0,3,9,15,21,27,0,0,0,3,9,15,21,27]2981; AVX512DQ-BW-NEXT: # ymm1 = mem[0,1,0,1]2982; AVX512DQ-BW-NEXT: vpermw %zmm5, %zmm1, %zmm12983; AVX512DQ-BW-NEXT: vpmovsxbw {{.*#+}} ymm2 = [1,7,13,19,25,31,37,43,49,55,61,0,0,0,0,0]2984; AVX512DQ-BW-NEXT: vpermi2w %zmm4, %zmm3, %zmm22985; AVX512DQ-BW-NEXT: vpblendw {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3,4,5,6,7],ymm2[8,9,10],ymm1[11,12,13,14,15]2986; AVX512DQ-BW-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]2987; AVX512DQ-BW-NEXT: vbroadcasti128 {{.*#+}} ymm2 = [16,16,16,4,10,16,22,28,16,16,16,4,10,16,22,28]2988; AVX512DQ-BW-NEXT: # ymm2 = mem[0,1,0,1]2989; AVX512DQ-BW-NEXT: vpermw %zmm5, %zmm2, %zmm22990; AVX512DQ-BW-NEXT: vpmovsxbw {{.*#+}} ymm6 = [34,40,46,52,58,0,6,12,18,24,30,0,0,0,0,0]2991; AVX512DQ-BW-NEXT: vpermi2w %zmm3, %zmm4, %zmm62992; AVX512DQ-BW-NEXT: vpblendw {{.*#+}} ymm2 = ymm6[0,1,2],ymm2[3,4,5,6,7],ymm6[8,9,10],ymm2[11,12,13,14,15]2993; AVX512DQ-BW-NEXT: vpblendd {{.*#+}} ymm2 = ymm6[0,1,2,3],ymm2[4,5,6,7]2994; AVX512DQ-BW-NEXT: vbroadcasti128 {{.*#+}} ymm6 = [16,16,16,5,11,17,23,29,16,16,16,5,11,17,23,29]2995; AVX512DQ-BW-NEXT: # ymm6 = mem[0,1,0,1]2996; AVX512DQ-BW-NEXT: vpermw %zmm5, %zmm6, %zmm62997; AVX512DQ-BW-NEXT: vpmovsxbw {{.*#+}} ymm7 = [35,41,47,53,59,1,7,13,19,25,31,0,0,0,0,0]2998; AVX512DQ-BW-NEXT: vpermi2w %zmm3, %zmm4, %zmm72999; 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]3000; AVX512DQ-BW-NEXT: vpblendd {{.*#+}} ymm6 = ymm7[0,1,2,3],ymm6[4,5,6,7]3001; AVX512DQ-BW-NEXT: vbroadcasti128 {{.*#+}} ymm7 = [0,0,0,6,12,18,24,30,0,0,0,6,12,18,24,30]3002; AVX512DQ-BW-NEXT: # ymm7 = mem[0,1,0,1]3003; AVX512DQ-BW-NEXT: vpermw %zmm5, %zmm7, %zmm73004; AVX512DQ-BW-NEXT: vpmovsxbw {{.*#+}} ymm8 = [4,10,16,22,28,34,40,46,52,58,0,0,0,0,0,0]3005; AVX512DQ-BW-NEXT: vpermi2w %zmm4, %zmm3, %zmm83006; AVX512DQ-BW-NEXT: vpblendd {{.*#+}} ymm7 = ymm8[0,1,2,3,4],ymm7[5,6,7]3007; AVX512DQ-BW-NEXT: vbroadcasti128 {{.*#+}} ymm8 = [0,0,1,7,13,19,25,31,0,0,1,7,13,19,25,31]3008; AVX512DQ-BW-NEXT: # ymm8 = mem[0,1,0,1]3009; AVX512DQ-BW-NEXT: vpermw %zmm5, %zmm8, %zmm53010; AVX512DQ-BW-NEXT: vpmovsxbw {{.*#+}} ymm8 = [5,11,17,23,29,35,41,47,53,59,0,0,0,0,0,0]3011; AVX512DQ-BW-NEXT: vpermi2w %zmm4, %zmm3, %zmm83012; AVX512DQ-BW-NEXT: vpblendd {{.*#+}} ymm3 = ymm8[0,1,2,3,4],ymm5[5,6,7]3013; AVX512DQ-BW-NEXT: vmovdqa %ymm0, (%rsi)3014; AVX512DQ-BW-NEXT: vmovdqa %ymm1, (%rdx)3015; AVX512DQ-BW-NEXT: vmovdqa %ymm2, (%rcx)3016; AVX512DQ-BW-NEXT: vmovdqa %ymm6, (%r8)3017; AVX512DQ-BW-NEXT: vmovdqa %ymm7, (%r9)3018; AVX512DQ-BW-NEXT: vmovdqa %ymm3, (%rax)3019; AVX512DQ-BW-NEXT: vzeroupper3020; AVX512DQ-BW-NEXT: retq3021;3022; AVX512DQ-BW-FCP-LABEL: load_i16_stride6_vf16:3023; AVX512DQ-BW-FCP: # %bb.0:3024; AVX512DQ-BW-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax3025; AVX512DQ-BW-FCP-NEXT: vbroadcasti128 {{.*#+}} ymm0 = [0,0,0,2,8,14,20,26,0,0,0,2,8,14,20,26]3026; AVX512DQ-BW-FCP-NEXT: # ymm0 = mem[0,1,0,1]3027; AVX512DQ-BW-FCP-NEXT: vmovdqa64 (%rdi), %zmm33028; AVX512DQ-BW-FCP-NEXT: vmovdqa64 64(%rdi), %zmm43029; AVX512DQ-BW-FCP-NEXT: vmovdqa64 128(%rdi), %zmm53030; AVX512DQ-BW-FCP-NEXT: vpermw %zmm5, %zmm0, %zmm03031; AVX512DQ-BW-FCP-NEXT: vpmovsxbw {{.*#+}} ymm1 = [0,6,12,18,24,30,36,42,48,54,60,0,0,0,0,0]3032; AVX512DQ-BW-FCP-NEXT: vpermi2w %zmm4, %zmm3, %zmm13033; AVX512DQ-BW-FCP-NEXT: vpblendw {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3,4,5,6,7],ymm1[8,9,10],ymm0[11,12,13,14,15]3034; AVX512DQ-BW-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]3035; AVX512DQ-BW-FCP-NEXT: vbroadcasti128 {{.*#+}} ymm1 = [0,0,0,3,9,15,21,27,0,0,0,3,9,15,21,27]3036; AVX512DQ-BW-FCP-NEXT: # ymm1 = mem[0,1,0,1]3037; AVX512DQ-BW-FCP-NEXT: vpermw %zmm5, %zmm1, %zmm13038; AVX512DQ-BW-FCP-NEXT: vpmovsxbw {{.*#+}} ymm2 = [1,7,13,19,25,31,37,43,49,55,61,0,0,0,0,0]3039; AVX512DQ-BW-FCP-NEXT: vpermi2w %zmm4, %zmm3, %zmm23040; AVX512DQ-BW-FCP-NEXT: vpblendw {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3,4,5,6,7],ymm2[8,9,10],ymm1[11,12,13,14,15]3041; AVX512DQ-BW-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]3042; AVX512DQ-BW-FCP-NEXT: vbroadcasti128 {{.*#+}} ymm2 = [16,16,16,4,10,16,22,28,16,16,16,4,10,16,22,28]3043; AVX512DQ-BW-FCP-NEXT: # ymm2 = mem[0,1,0,1]3044; AVX512DQ-BW-FCP-NEXT: vpermw %zmm5, %zmm2, %zmm23045; AVX512DQ-BW-FCP-NEXT: vpmovsxbw {{.*#+}} ymm6 = [34,40,46,52,58,0,6,12,18,24,30,0,0,0,0,0]3046; AVX512DQ-BW-FCP-NEXT: vpermi2w %zmm3, %zmm4, %zmm63047; AVX512DQ-BW-FCP-NEXT: vpblendw {{.*#+}} ymm2 = ymm6[0,1,2],ymm2[3,4,5,6,7],ymm6[8,9,10],ymm2[11,12,13,14,15]3048; AVX512DQ-BW-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm6[0,1,2,3],ymm2[4,5,6,7]3049; AVX512DQ-BW-FCP-NEXT: vbroadcasti128 {{.*#+}} ymm6 = [16,16,16,5,11,17,23,29,16,16,16,5,11,17,23,29]3050; AVX512DQ-BW-FCP-NEXT: # ymm6 = mem[0,1,0,1]3051; AVX512DQ-BW-FCP-NEXT: vpermw %zmm5, %zmm6, %zmm63052; AVX512DQ-BW-FCP-NEXT: vpmovsxbw {{.*#+}} ymm7 = [35,41,47,53,59,1,7,13,19,25,31,0,0,0,0,0]3053; AVX512DQ-BW-FCP-NEXT: vpermi2w %zmm3, %zmm4, %zmm73054; 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]3055; AVX512DQ-BW-FCP-NEXT: vpblendd {{.*#+}} ymm6 = ymm7[0,1,2,3],ymm6[4,5,6,7]3056; AVX512DQ-BW-FCP-NEXT: vbroadcasti128 {{.*#+}} ymm7 = [0,0,0,6,12,18,24,30,0,0,0,6,12,18,24,30]3057; AVX512DQ-BW-FCP-NEXT: # ymm7 = mem[0,1,0,1]3058; AVX512DQ-BW-FCP-NEXT: vpermw %zmm5, %zmm7, %zmm73059; AVX512DQ-BW-FCP-NEXT: vpmovsxbw {{.*#+}} ymm8 = [4,10,16,22,28,34,40,46,52,58,0,0,0,0,0,0]3060; AVX512DQ-BW-FCP-NEXT: vpermi2w %zmm4, %zmm3, %zmm83061; AVX512DQ-BW-FCP-NEXT: vpblendd {{.*#+}} ymm7 = ymm8[0,1,2,3,4],ymm7[5,6,7]3062; AVX512DQ-BW-FCP-NEXT: vbroadcasti128 {{.*#+}} ymm8 = [0,0,1,7,13,19,25,31,0,0,1,7,13,19,25,31]3063; AVX512DQ-BW-FCP-NEXT: # ymm8 = mem[0,1,0,1]3064; AVX512DQ-BW-FCP-NEXT: vpermw %zmm5, %zmm8, %zmm53065; AVX512DQ-BW-FCP-NEXT: vpmovsxbw {{.*#+}} ymm8 = [5,11,17,23,29,35,41,47,53,59,0,0,0,0,0,0]3066; AVX512DQ-BW-FCP-NEXT: vpermi2w %zmm4, %zmm3, %zmm83067; AVX512DQ-BW-FCP-NEXT: vpblendd {{.*#+}} ymm3 = ymm8[0,1,2,3,4],ymm5[5,6,7]3068; AVX512DQ-BW-FCP-NEXT: vmovdqa %ymm0, (%rsi)3069; AVX512DQ-BW-FCP-NEXT: vmovdqa %ymm1, (%rdx)3070; AVX512DQ-BW-FCP-NEXT: vmovdqa %ymm2, (%rcx)3071; AVX512DQ-BW-FCP-NEXT: vmovdqa %ymm6, (%r8)3072; AVX512DQ-BW-FCP-NEXT: vmovdqa %ymm7, (%r9)3073; AVX512DQ-BW-FCP-NEXT: vmovdqa %ymm3, (%rax)3074; AVX512DQ-BW-FCP-NEXT: vzeroupper3075; AVX512DQ-BW-FCP-NEXT: retq3076 %wide.vec = load <96 x i16>, ptr %in.vec, align 643077 %strided.vec0 = shufflevector <96 x i16> %wide.vec, <96 x i16> 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>3078 %strided.vec1 = shufflevector <96 x i16> %wide.vec, <96 x i16> 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>3079 %strided.vec2 = shufflevector <96 x i16> %wide.vec, <96 x i16> 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>3080 %strided.vec3 = shufflevector <96 x i16> %wide.vec, <96 x i16> 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>3081 %strided.vec4 = shufflevector <96 x i16> %wide.vec, <96 x i16> 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>3082 %strided.vec5 = shufflevector <96 x i16> %wide.vec, <96 x i16> 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>3083 store <16 x i16> %strided.vec0, ptr %out.vec0, align 643084 store <16 x i16> %strided.vec1, ptr %out.vec1, align 643085 store <16 x i16> %strided.vec2, ptr %out.vec2, align 643086 store <16 x i16> %strided.vec3, ptr %out.vec3, align 643087 store <16 x i16> %strided.vec4, ptr %out.vec4, align 643088 store <16 x i16> %strided.vec5, ptr %out.vec5, align 643089 ret void3090}3091 3092define void @load_i16_stride6_vf32(ptr %in.vec, ptr %out.vec0, ptr %out.vec1, ptr %out.vec2, ptr %out.vec3, ptr %out.vec4, ptr %out.vec5) nounwind {3093; SSE-LABEL: load_i16_stride6_vf32:3094; SSE: # %bb.0:3095; SSE-NEXT: subq $456, %rsp # imm = 0x1C83096; SSE-NEXT: movdqa 304(%rdi), %xmm93097; SSE-NEXT: movdqa %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3098; SSE-NEXT: movdqa 320(%rdi), %xmm53099; SSE-NEXT: movdqa %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3100; SSE-NEXT: movdqa 64(%rdi), %xmm33101; SSE-NEXT: movdqa 80(%rdi), %xmm03102; SSE-NEXT: movdqa (%rdi), %xmm43103; SSE-NEXT: movdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3104; SSE-NEXT: movdqa 16(%rdi), %xmm63105; SSE-NEXT: movdqa %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3106; SSE-NEXT: movdqa 32(%rdi), %xmm13107; SSE-NEXT: movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3108; SSE-NEXT: movdqa 48(%rdi), %xmm73109; SSE-NEXT: movdqa %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3110; SSE-NEXT: pshuflw {{.*#+}} xmm1 = xmm1[0,1,1,2,4,5,6,7]3111; SSE-NEXT: movdqa {{.*#+}} xmm10 = [65535,65535,65535,0,0,0,65535,65535]3112; SSE-NEXT: movdqa %xmm10, %xmm23113; SSE-NEXT: pandn %xmm1, %xmm23114; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm4[0,1,0,3]3115; SSE-NEXT: movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3116; SSE-NEXT: pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,6,6,7]3117; SSE-NEXT: punpckhdq {{.*#+}} xmm1 = xmm1[2],xmm6[2],xmm1[3],xmm6[3]3118; SSE-NEXT: pand %xmm10, %xmm13119; SSE-NEXT: por %xmm2, %xmm13120; SSE-NEXT: movdqa %xmm1, %xmm23121; SSE-NEXT: movdqa %xmm3, %xmm13122; SSE-NEXT: pshufd {{.*#+}} xmm4 = xmm3[2,2,3,3]3123; SSE-NEXT: punpcklwd {{.*#+}} xmm4 = xmm4[0],xmm0[0],xmm4[1],xmm0[1],xmm4[2],xmm0[2],xmm4[3],xmm0[3]3124; SSE-NEXT: movdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3125; SSE-NEXT: movdqa %xmm0, %xmm43126; SSE-NEXT: shufps {{.*#+}} xmm4 = xmm4[2,0],xmm3[3,0]3127; SSE-NEXT: movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3128; SSE-NEXT: movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3129; SSE-NEXT: shufps {{.*#+}} xmm3 = xmm3[1,0],xmm0[0,0]3130; SSE-NEXT: shufps {{.*#+}} xmm3 = xmm3[2,0],xmm0[2,3]3131; SSE-NEXT: movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3132; SSE-NEXT: pslld $16, %xmm03133; SSE-NEXT: psrldq {{.*#+}} xmm1 = xmm1[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero3134; SSE-NEXT: punpcklwd {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1],xmm1[2],xmm0[2],xmm1[3],xmm0[3]3135; SSE-NEXT: pshufd {{.*#+}} xmm8 = xmm7[0,3,2,3]3136; SSE-NEXT: pshuflw {{.*#+}} xmm0 = xmm8[0,1,0,2,4,5,6,7]3137; SSE-NEXT: shufps {{.*#+}} xmm1 = xmm1[3,1],xmm0[1,3]3138; SSE-NEXT: shufps {{.*#+}} xmm2 = xmm2[0,1],xmm1[2,0]3139; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3140; SSE-NEXT: pshuflw {{.*#+}} xmm0 = xmm5[0,1,1,2,4,5,6,7]3141; SSE-NEXT: movdqa %xmm10, %xmm43142; SSE-NEXT: movdqa %xmm10, %xmm13143; SSE-NEXT: pandn %xmm0, %xmm13144; SSE-NEXT: movdqa 288(%rdi), %xmm03145; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3146; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,1,0,3]3147; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3148; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,6,6,7]3149; SSE-NEXT: punpckhdq {{.*#+}} xmm0 = xmm0[2],xmm9[2],xmm0[3],xmm9[3]3150; SSE-NEXT: pand %xmm10, %xmm03151; SSE-NEXT: por %xmm1, %xmm03152; SSE-NEXT: movdqa %xmm0, %xmm53153; SSE-NEXT: movdqa 352(%rdi), %xmm23154; SSE-NEXT: movdqa 368(%rdi), %xmm13155; SSE-NEXT: pshufd {{.*#+}} xmm3 = xmm2[2,2,3,3]3156; SSE-NEXT: punpcklwd {{.*#+}} xmm3 = xmm3[0],xmm1[0],xmm3[1],xmm1[1],xmm3[2],xmm1[2],xmm3[3],xmm1[3]3157; SSE-NEXT: movdqa %xmm1, %xmm03158; SSE-NEXT: shufps {{.*#+}} xmm0 = xmm0[2,0],xmm2[3,0]3159; SSE-NEXT: movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3160; SSE-NEXT: movdqa %xmm2, %xmm03161; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3162; SSE-NEXT: shufps {{.*#+}} xmm2 = xmm2[1,0],xmm1[0,0]3163; SSE-NEXT: shufps {{.*#+}} xmm2 = xmm2[2,0],xmm1[2,3]3164; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3165; SSE-NEXT: pslld $16, %xmm13166; SSE-NEXT: psrldq {{.*#+}} xmm0 = xmm0[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero3167; SSE-NEXT: punpcklwd {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3]3168; SSE-NEXT: movdqa 336(%rdi), %xmm13169; SSE-NEXT: movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3170; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[0,3,2,3]3171; SSE-NEXT: pshuflw {{.*#+}} xmm2 = xmm1[0,1,0,2,4,5,6,7]3172; SSE-NEXT: shufps {{.*#+}} xmm0 = xmm0[3,1],xmm2[1,3]3173; SSE-NEXT: shufps {{.*#+}} xmm5 = xmm5[0,1],xmm0[2,0]3174; SSE-NEXT: movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3175; SSE-NEXT: movdqa 224(%rdi), %xmm03176; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3177; SSE-NEXT: pshuflw {{.*#+}} xmm0 = xmm0[0,1,1,2,4,5,6,7]3178; SSE-NEXT: movdqa %xmm10, %xmm23179; SSE-NEXT: pandn %xmm0, %xmm23180; SSE-NEXT: movdqa 208(%rdi), %xmm53181; SSE-NEXT: movdqa %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3182; SSE-NEXT: movdqa 192(%rdi), %xmm03183; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3184; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,1,0,3]3185; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3186; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,6,6,7]3187; SSE-NEXT: punpckhdq {{.*#+}} xmm0 = xmm0[2],xmm5[2],xmm0[3],xmm5[3]3188; SSE-NEXT: pand %xmm10, %xmm03189; SSE-NEXT: por %xmm2, %xmm03190; SSE-NEXT: movdqa %xmm0, %xmm23191; SSE-NEXT: movdqa 256(%rdi), %xmm53192; SSE-NEXT: movdqa 272(%rdi), %xmm73193; SSE-NEXT: pshufd {{.*#+}} xmm12 = xmm5[2,2,3,3]3194; SSE-NEXT: punpcklwd {{.*#+}} xmm12 = xmm12[0],xmm7[0],xmm12[1],xmm7[1],xmm12[2],xmm7[2],xmm12[3],xmm7[3]3195; SSE-NEXT: movdqa %xmm7, %xmm03196; SSE-NEXT: shufps {{.*#+}} xmm0 = xmm0[2,0],xmm5[3,0]3197; SSE-NEXT: movaps %xmm0, (%rsp) # 16-byte Spill3198; SSE-NEXT: movdqa %xmm5, %xmm03199; SSE-NEXT: movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3200; SSE-NEXT: shufps {{.*#+}} xmm5 = xmm5[1,0],xmm7[0,0]3201; SSE-NEXT: shufps {{.*#+}} xmm5 = xmm5[2,0],xmm7[2,3]3202; SSE-NEXT: movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3203; SSE-NEXT: pslld $16, %xmm73204; SSE-NEXT: psrldq {{.*#+}} xmm0 = xmm0[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero3205; SSE-NEXT: punpcklwd {{.*#+}} xmm0 = xmm0[0],xmm7[0],xmm0[1],xmm7[1],xmm0[2],xmm7[2],xmm0[3],xmm7[3]3206; SSE-NEXT: movdqa 240(%rdi), %xmm53207; SSE-NEXT: movdqa %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3208; SSE-NEXT: pshufd {{.*#+}} xmm14 = xmm5[0,3,2,3]3209; SSE-NEXT: pshuflw {{.*#+}} xmm7 = xmm14[0,1,0,2,4,5,6,7]3210; SSE-NEXT: shufps {{.*#+}} xmm0 = xmm0[3,1],xmm7[1,3]3211; SSE-NEXT: shufps {{.*#+}} xmm2 = xmm2[0,1],xmm0[2,0]3212; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3213; SSE-NEXT: movdqa 128(%rdi), %xmm03214; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3215; SSE-NEXT: pshuflw {{.*#+}} xmm0 = xmm0[0,1,1,2,4,5,6,7]3216; SSE-NEXT: movdqa %xmm10, %xmm73217; SSE-NEXT: pandn %xmm0, %xmm73218; SSE-NEXT: movdqa 112(%rdi), %xmm113219; SSE-NEXT: movdqa 96(%rdi), %xmm03220; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3221; SSE-NEXT: pshufd {{.*#+}} xmm15 = xmm0[0,1,0,3]3222; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm15[0,1,2,3,4,6,6,7]3223; SSE-NEXT: punpckhdq {{.*#+}} xmm0 = xmm0[2],xmm11[2],xmm0[3],xmm11[3]3224; SSE-NEXT: movdqa %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3225; SSE-NEXT: pand %xmm10, %xmm03226; SSE-NEXT: por %xmm7, %xmm03227; SSE-NEXT: movdqa 160(%rdi), %xmm53228; SSE-NEXT: movdqa 176(%rdi), %xmm93229; SSE-NEXT: pshufd {{.*#+}} xmm6 = xmm5[2,2,3,3]3230; SSE-NEXT: punpcklwd {{.*#+}} xmm6 = xmm6[0],xmm9[0],xmm6[1],xmm9[1],xmm6[2],xmm9[2],xmm6[3],xmm9[3]3231; SSE-NEXT: movdqa %xmm9, %xmm23232; SSE-NEXT: shufps {{.*#+}} xmm2 = xmm2[2,0],xmm5[3,0]3233; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3234; SSE-NEXT: movdqa %xmm5, %xmm103235; SSE-NEXT: movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3236; SSE-NEXT: shufps {{.*#+}} xmm5 = xmm5[1,0],xmm9[0,0]3237; SSE-NEXT: shufps {{.*#+}} xmm5 = xmm5[2,0],xmm9[2,3]3238; SSE-NEXT: movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3239; SSE-NEXT: pslld $16, %xmm93240; SSE-NEXT: psrldq {{.*#+}} xmm10 = xmm10[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero3241; SSE-NEXT: punpcklwd {{.*#+}} xmm10 = xmm10[0],xmm9[0],xmm10[1],xmm9[1],xmm10[2],xmm9[2],xmm10[3],xmm9[3]3242; SSE-NEXT: movdqa 144(%rdi), %xmm23243; SSE-NEXT: movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3244; SSE-NEXT: pshufd {{.*#+}} xmm9 = xmm2[0,3,2,3]3245; SSE-NEXT: pshuflw {{.*#+}} xmm13 = xmm9[0,1,0,2,4,5,6,7]3246; SSE-NEXT: shufps {{.*#+}} xmm10 = xmm10[3,1],xmm13[1,3]3247; SSE-NEXT: shufps {{.*#+}} xmm0 = xmm0[0,1],xmm10[2,0]3248; SSE-NEXT: movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3249; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload3250; SSE-NEXT: movdqa %xmm5, %xmm103251; SSE-NEXT: psrld $16, %xmm103252; SSE-NEXT: pshufhw $237, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload3253; SSE-NEXT: # xmm0 = mem[0,1,2,3,5,7,6,7]3254; SSE-NEXT: punpckhdq {{.*#+}} xmm0 = xmm0[2],xmm10[2],xmm0[3],xmm10[3]3255; SSE-NEXT: movdqa %xmm4, %xmm103256; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload3257; SSE-NEXT: pandn %xmm2, %xmm103258; SSE-NEXT: pand %xmm4, %xmm03259; SSE-NEXT: movdqa %xmm4, %xmm133260; SSE-NEXT: por %xmm10, %xmm03261; SSE-NEXT: pshuflw {{.*#+}} xmm8 = xmm8[0,1,1,3,4,5,6,7]3262; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload3263; SSE-NEXT: shufps {{.*#+}} xmm4 = xmm4[3,1],xmm8[1,3]3264; SSE-NEXT: shufps {{.*#+}} xmm0 = xmm0[0,1],xmm4[2,0]3265; SSE-NEXT: movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3266; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload3267; SSE-NEXT: movdqa %xmm7, %xmm83268; SSE-NEXT: psrld $16, %xmm83269; SSE-NEXT: pshufhw $237, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload3270; SSE-NEXT: # xmm0 = mem[0,1,2,3,5,7,6,7]3271; SSE-NEXT: punpckhdq {{.*#+}} xmm0 = xmm0[2],xmm8[2],xmm0[3],xmm8[3]3272; SSE-NEXT: movdqa %xmm13, %xmm83273; SSE-NEXT: movdqa %xmm13, %xmm43274; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload3275; SSE-NEXT: pandn %xmm10, %xmm43276; SSE-NEXT: pand %xmm13, %xmm03277; SSE-NEXT: por %xmm4, %xmm03278; SSE-NEXT: pshuflw {{.*#+}} xmm1 = xmm1[0,1,1,3,4,5,6,7]3279; SSE-NEXT: shufps {{.*#+}} xmm3 = xmm3[3,1],xmm1[1,3]3280; SSE-NEXT: shufps {{.*#+}} xmm0 = xmm0[0,1],xmm3[2,0]3281; SSE-NEXT: movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3282; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload3283; SSE-NEXT: psrld $16, %xmm13284; SSE-NEXT: pshufhw $237, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload3285; SSE-NEXT: # xmm0 = mem[0,1,2,3,5,7,6,7]3286; SSE-NEXT: punpckhdq {{.*#+}} xmm0 = xmm0[2],xmm1[2],xmm0[3],xmm1[3]3287; SSE-NEXT: movdqa %xmm13, %xmm13288; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload3289; SSE-NEXT: pandn %xmm13, %xmm13290; SSE-NEXT: pand %xmm8, %xmm03291; SSE-NEXT: por %xmm1, %xmm03292; SSE-NEXT: pshuflw {{.*#+}} xmm1 = xmm14[0,1,1,3,4,5,6,7]3293; SSE-NEXT: shufps {{.*#+}} xmm12 = xmm12[3,1],xmm1[1,3]3294; SSE-NEXT: shufps {{.*#+}} xmm0 = xmm0[0,1],xmm12[2,0]3295; SSE-NEXT: movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3296; SSE-NEXT: psrld $16, %xmm113297; SSE-NEXT: pshufhw {{.*#+}} xmm3 = xmm15[0,1,2,3,5,7,6,7]3298; SSE-NEXT: punpckhdq {{.*#+}} xmm3 = xmm3[2],xmm11[2],xmm3[3],xmm11[3]3299; SSE-NEXT: pand %xmm8, %xmm33300; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Reload3301; SSE-NEXT: pandn %xmm11, %xmm83302; SSE-NEXT: por %xmm3, %xmm83303; SSE-NEXT: pshuflw {{.*#+}} xmm1 = xmm9[0,1,1,3,4,5,6,7]3304; SSE-NEXT: shufps {{.*#+}} xmm6 = xmm6[3,1],xmm1[1,3]3305; SSE-NEXT: shufps {{.*#+}} xmm8 = xmm8[0,1],xmm6[2,0]3306; SSE-NEXT: movaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3307; SSE-NEXT: psrldq {{.*#+}} xmm2 = xmm2[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero3308; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload3309; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm14[1,1,1,1]3310; SSE-NEXT: punpcklqdq {{.*#+}} xmm2 = xmm2[0],xmm1[0]3311; SSE-NEXT: movdqa {{.*#+}} xmm1 = [65535,65535,65535,0,0,65535,65535,65535]3312; SSE-NEXT: movdqa %xmm1, %xmm43313; SSE-NEXT: pandn %xmm2, %xmm43314; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload3315; SSE-NEXT: shufps {{.*#+}} xmm3 = xmm3[1,0],xmm5[0,0]3316; SSE-NEXT: shufps {{.*#+}} xmm3 = xmm3[2,0],xmm5[2,3]3317; SSE-NEXT: pshuflw {{.*#+}} xmm0 = xmm3[0,2,2,3,4,5,6,7]3318; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,3,2,3]3319; SSE-NEXT: pshuflw {{.*#+}} xmm6 = xmm0[1,0,2,3,4,5,6,7]3320; SSE-NEXT: pand %xmm1, %xmm63321; SSE-NEXT: por %xmm4, %xmm63322; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload3323; SSE-NEXT: shufps $132, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload3324; SSE-NEXT: # xmm0 = xmm0[0,1],mem[0,2]3325; SSE-NEXT: movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3326; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,6,6,7]3327; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,1,2,0]3328; SSE-NEXT: pshufhw {{.*#+}} xmm4 = xmm0[0,1,2,3,4,6,5,4]3329; SSE-NEXT: movdqa {{.*#+}} xmm15 = [65535,65535,65535,65535,65535,0,0,0]3330; SSE-NEXT: movdqa %xmm15, %xmm03331; SSE-NEXT: pandn %xmm4, %xmm03332; SSE-NEXT: pand %xmm15, %xmm63333; SSE-NEXT: por %xmm6, %xmm03334; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3335; SSE-NEXT: movdqa %xmm10, %xmm43336; SSE-NEXT: psrldq {{.*#+}} xmm4 = xmm4[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero3337; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Reload3338; SSE-NEXT: pshufd {{.*#+}} xmm6 = xmm12[1,1,1,1]3339; SSE-NEXT: punpcklqdq {{.*#+}} xmm4 = xmm4[0],xmm6[0]3340; SSE-NEXT: movdqa %xmm1, %xmm63341; SSE-NEXT: pandn %xmm4, %xmm63342; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload3343; SSE-NEXT: shufps {{.*#+}} xmm4 = xmm4[1,0],xmm7[0,0]3344; SSE-NEXT: shufps {{.*#+}} xmm4 = xmm4[2,0],xmm7[2,3]3345; SSE-NEXT: pshuflw {{.*#+}} xmm8 = xmm4[0,2,2,3,4,5,6,7]3346; SSE-NEXT: pshufd {{.*#+}} xmm8 = xmm8[0,3,2,3]3347; SSE-NEXT: pshuflw {{.*#+}} xmm8 = xmm8[1,0,2,3,4,5,6,7]3348; SSE-NEXT: pand %xmm1, %xmm83349; SSE-NEXT: por %xmm6, %xmm83350; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload3351; SSE-NEXT: shufps $132, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload3352; SSE-NEXT: # xmm0 = xmm0[0,1],mem[0,2]3353; SSE-NEXT: movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3354; SSE-NEXT: pshufhw {{.*#+}} xmm5 = xmm0[0,1,2,3,4,6,6,7]3355; SSE-NEXT: pshufd {{.*#+}} xmm5 = xmm5[0,1,2,0]3356; SSE-NEXT: pshufhw {{.*#+}} xmm5 = xmm5[0,1,2,3,4,6,5,4]3357; SSE-NEXT: movdqa %xmm15, %xmm03358; SSE-NEXT: pandn %xmm5, %xmm03359; SSE-NEXT: pand %xmm15, %xmm83360; SSE-NEXT: por %xmm8, %xmm03361; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3362; SSE-NEXT: movdqa %xmm13, %xmm53363; SSE-NEXT: psrldq {{.*#+}} xmm5 = xmm5[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero3364; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload3365; SSE-NEXT: pshufd {{.*#+}} xmm6 = xmm10[1,1,1,1]3366; SSE-NEXT: punpcklqdq {{.*#+}} xmm5 = xmm5[0],xmm6[0]3367; SSE-NEXT: movdqa %xmm1, %xmm63368; SSE-NEXT: pandn %xmm5, %xmm63369; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload3370; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload3371; SSE-NEXT: shufps {{.*#+}} xmm5 = xmm5[1,0],xmm0[0,0]3372; SSE-NEXT: shufps {{.*#+}} xmm5 = xmm5[2,0],xmm0[2,3]3373; SSE-NEXT: pshuflw {{.*#+}} xmm8 = xmm5[0,2,2,3,4,5,6,7]3374; SSE-NEXT: pshufd {{.*#+}} xmm8 = xmm8[0,3,2,3]3375; SSE-NEXT: pshuflw {{.*#+}} xmm8 = xmm8[1,0,2,3,4,5,6,7]3376; SSE-NEXT: pand %xmm1, %xmm83377; SSE-NEXT: por %xmm6, %xmm83378; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload3379; SSE-NEXT: shufps $132, (%rsp), %xmm0 # 16-byte Folded Reload3380; SSE-NEXT: # xmm0 = xmm0[0,1],mem[0,2]3381; SSE-NEXT: movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3382; SSE-NEXT: pshufhw {{.*#+}} xmm2 = xmm0[0,1,2,3,4,6,6,7]3383; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm2[0,1,2,0]3384; SSE-NEXT: pshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,6,5,4]3385; SSE-NEXT: movdqa %xmm15, %xmm03386; SSE-NEXT: pandn %xmm2, %xmm03387; SSE-NEXT: pand %xmm15, %xmm83388; SSE-NEXT: por %xmm8, %xmm03389; SSE-NEXT: movdqa %xmm0, (%rsp) # 16-byte Spill3390; SSE-NEXT: psrldq {{.*#+}} xmm11 = xmm11[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero3391; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Reload3392; SSE-NEXT: pshufd {{.*#+}} xmm6 = xmm9[1,1,1,1]3393; SSE-NEXT: punpcklqdq {{.*#+}} xmm11 = xmm11[0],xmm6[0]3394; SSE-NEXT: movdqa %xmm1, %xmm63395; SSE-NEXT: pandn %xmm11, %xmm63396; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload3397; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload3398; SSE-NEXT: shufps {{.*#+}} xmm2 = xmm2[1,0],xmm0[0,0]3399; SSE-NEXT: shufps {{.*#+}} xmm2 = xmm2[2,0],xmm0[2,3]3400; SSE-NEXT: pshuflw {{.*#+}} xmm8 = xmm2[0,2,2,3,4,5,6,7]3401; SSE-NEXT: pshufd {{.*#+}} xmm8 = xmm8[0,3,2,3]3402; SSE-NEXT: pshuflw {{.*#+}} xmm8 = xmm8[1,0,2,3,4,5,6,7]3403; SSE-NEXT: pand %xmm1, %xmm83404; SSE-NEXT: por %xmm6, %xmm83405; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Reload3406; SSE-NEXT: shufps $132, {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Folded Reload3407; SSE-NEXT: # xmm11 = xmm11[0,1],mem[0,2]3408; SSE-NEXT: pshufhw {{.*#+}} xmm6 = xmm11[0,1,2,3,4,6,6,7]3409; SSE-NEXT: pshufd {{.*#+}} xmm6 = xmm6[0,1,2,0]3410; SSE-NEXT: pshufhw {{.*#+}} xmm6 = xmm6[0,1,2,3,4,6,5,4]3411; SSE-NEXT: movdqa %xmm15, %xmm03412; SSE-NEXT: pandn %xmm6, %xmm03413; SSE-NEXT: pand %xmm15, %xmm83414; SSE-NEXT: por %xmm8, %xmm03415; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3416; SSE-NEXT: movdqa %xmm14, %xmm03417; SSE-NEXT: movdqa %xmm14, %xmm63418; SSE-NEXT: psrlq $48, %xmm63419; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload3420; SSE-NEXT: pshufd {{.*#+}} xmm7 = xmm8[2,2,3,3]3421; SSE-NEXT: punpcklqdq {{.*#+}} xmm7 = xmm7[0],xmm6[0]3422; SSE-NEXT: movdqa %xmm1, %xmm63423; SSE-NEXT: pandn %xmm7, %xmm63424; SSE-NEXT: pshuflw {{.*#+}} xmm3 = xmm3[3,1,2,3,4,5,6,7]3425; SSE-NEXT: pshufd {{.*#+}} xmm3 = xmm3[0,3,2,3]3426; SSE-NEXT: pshuflw {{.*#+}} xmm3 = xmm3[0,1,3,3,4,5,6,7]3427; SSE-NEXT: pand %xmm1, %xmm33428; SSE-NEXT: por %xmm6, %xmm33429; SSE-NEXT: pshufhw $231, {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Folded Reload3430; SSE-NEXT: # xmm6 = mem[0,1,2,3,7,5,6,7]3431; SSE-NEXT: pshufd {{.*#+}} xmm6 = xmm6[0,1,0,2]3432; SSE-NEXT: movdqa %xmm15, %xmm73433; SSE-NEXT: pandn %xmm6, %xmm73434; SSE-NEXT: pand %xmm15, %xmm33435; SSE-NEXT: por %xmm3, %xmm73436; SSE-NEXT: movdqa %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3437; SSE-NEXT: movdqa %xmm12, %xmm33438; SSE-NEXT: psrlq $48, %xmm33439; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Reload3440; SSE-NEXT: pshufd {{.*#+}} xmm6 = xmm12[2,2,3,3]3441; SSE-NEXT: punpcklqdq {{.*#+}} xmm6 = xmm6[0],xmm3[0]3442; SSE-NEXT: movdqa %xmm1, %xmm33443; SSE-NEXT: pandn %xmm6, %xmm33444; SSE-NEXT: pshuflw {{.*#+}} xmm4 = xmm4[3,1,2,3,4,5,6,7]3445; SSE-NEXT: pshufd {{.*#+}} xmm4 = xmm4[0,3,2,3]3446; SSE-NEXT: pshuflw {{.*#+}} xmm4 = xmm4[0,1,3,3,4,5,6,7]3447; SSE-NEXT: pand %xmm1, %xmm43448; SSE-NEXT: por %xmm3, %xmm43449; SSE-NEXT: pshufhw $231, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Folded Reload3450; SSE-NEXT: # xmm3 = mem[0,1,2,3,7,5,6,7]3451; SSE-NEXT: pshufd {{.*#+}} xmm3 = xmm3[0,1,0,2]3452; SSE-NEXT: movdqa %xmm15, %xmm63453; SSE-NEXT: pandn %xmm3, %xmm63454; SSE-NEXT: pand %xmm15, %xmm43455; SSE-NEXT: por %xmm4, %xmm63456; SSE-NEXT: movdqa %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3457; SSE-NEXT: movdqa %xmm10, %xmm33458; SSE-NEXT: movdqa %xmm10, %xmm143459; SSE-NEXT: psrlq $48, %xmm33460; SSE-NEXT: pshufd {{.*#+}} xmm4 = xmm13[2,2,3,3]3461; SSE-NEXT: punpcklqdq {{.*#+}} xmm4 = xmm4[0],xmm3[0]3462; SSE-NEXT: movdqa %xmm1, %xmm33463; SSE-NEXT: pandn %xmm4, %xmm33464; SSE-NEXT: pshuflw {{.*#+}} xmm4 = xmm5[3,1,2,3,4,5,6,7]3465; SSE-NEXT: pshufd {{.*#+}} xmm4 = xmm4[0,3,2,3]3466; SSE-NEXT: pshuflw {{.*#+}} xmm4 = xmm4[0,1,3,3,4,5,6,7]3467; SSE-NEXT: pand %xmm1, %xmm43468; SSE-NEXT: por %xmm3, %xmm43469; SSE-NEXT: pshufhw $231, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Folded Reload3470; SSE-NEXT: # xmm3 = mem[0,1,2,3,7,5,6,7]3471; SSE-NEXT: pshufd {{.*#+}} xmm3 = xmm3[0,1,0,2]3472; SSE-NEXT: movdqa %xmm15, %xmm53473; SSE-NEXT: pandn %xmm3, %xmm53474; SSE-NEXT: pand %xmm15, %xmm43475; SSE-NEXT: por %xmm4, %xmm53476; SSE-NEXT: movdqa %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3477; SSE-NEXT: movdqa %xmm9, %xmm33478; SSE-NEXT: psrlq $48, %xmm33479; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload3480; SSE-NEXT: pshufd {{.*#+}} xmm4 = xmm7[2,2,3,3]3481; SSE-NEXT: punpcklqdq {{.*#+}} xmm4 = xmm4[0],xmm3[0]3482; SSE-NEXT: pshuflw {{.*#+}} xmm2 = xmm2[3,1,2,3,4,5,6,7]3483; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm2[0,3,2,3]3484; SSE-NEXT: pshuflw {{.*#+}} xmm2 = xmm2[0,1,3,3,4,5,6,7]3485; SSE-NEXT: pand %xmm1, %xmm23486; SSE-NEXT: pandn %xmm4, %xmm13487; SSE-NEXT: por %xmm2, %xmm13488; SSE-NEXT: pshufhw {{.*#+}} xmm2 = xmm11[0,1,2,3,7,5,6,7]3489; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm2[0,1,0,2]3490; SSE-NEXT: movdqa %xmm15, %xmm33491; SSE-NEXT: pandn %xmm2, %xmm33492; SSE-NEXT: pand %xmm15, %xmm13493; SSE-NEXT: por %xmm1, %xmm33494; SSE-NEXT: movdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3495; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload3496; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm2[1,1,1,1]3497; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload3498; SSE-NEXT: pshufd {{.*#+}} xmm3 = xmm6[2,3,2,3]3499; SSE-NEXT: punpcklwd {{.*#+}} xmm3 = xmm3[0],xmm1[0],xmm3[1],xmm1[1],xmm3[2],xmm1[2],xmm3[3],xmm1[3]3500; SSE-NEXT: pshufd {{.*#+}} xmm8 = xmm8[0,1,0,3]3501; SSE-NEXT: pshufhw {{.*#+}} xmm1 = xmm8[0,1,2,3,4,5,4,6]3502; SSE-NEXT: punpckhqdq {{.*#+}} xmm1 = xmm1[1],xmm0[1]3503; SSE-NEXT: movss {{.*#+}} xmm1 = xmm3[0],xmm1[1,2,3]3504; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload3505; SSE-NEXT: pshuflw {{.*#+}} xmm3 = xmm10[0,2,2,3,4,5,6,7]3506; SSE-NEXT: pshufd {{.*#+}} xmm3 = xmm3[0,1,0,3]3507; SSE-NEXT: pshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,4,5,4,6]3508; SSE-NEXT: movdqa %xmm15, %xmm113509; SSE-NEXT: pandn %xmm3, %xmm113510; SSE-NEXT: andps %xmm15, %xmm13511; SSE-NEXT: por %xmm1, %xmm113512; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload3513; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm13[1,1,1,1]3514; SSE-NEXT: pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Folded Reload3515; SSE-NEXT: # xmm3 = mem[2,3,2,3]3516; SSE-NEXT: punpcklwd {{.*#+}} xmm3 = xmm3[0],xmm1[0],xmm3[1],xmm1[1],xmm3[2],xmm1[2],xmm3[3],xmm1[3]3517; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm12[0,1,0,3]3518; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3519; SSE-NEXT: pshufhw {{.*#+}} xmm4 = xmm0[0,1,2,3,4,5,4,6]3520; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Reload3521; SSE-NEXT: punpckhqdq {{.*#+}} xmm4 = xmm4[1],xmm12[1]3522; SSE-NEXT: movss {{.*#+}} xmm4 = xmm3[0],xmm4[1,2,3]3523; SSE-NEXT: pshuflw $232, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Folded Reload3524; SSE-NEXT: # xmm3 = mem[0,2,2,3,4,5,6,7]3525; SSE-NEXT: pshufd {{.*#+}} xmm3 = xmm3[0,1,0,3]3526; SSE-NEXT: pshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,4,5,4,6]3527; SSE-NEXT: movdqa %xmm15, %xmm53528; SSE-NEXT: pandn %xmm3, %xmm53529; SSE-NEXT: andps %xmm15, %xmm43530; SSE-NEXT: por %xmm4, %xmm53531; SSE-NEXT: pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Folded Reload3532; SSE-NEXT: # xmm3 = mem[1,1,1,1]3533; SSE-NEXT: pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload3534; SSE-NEXT: # xmm4 = mem[2,3,2,3]3535; SSE-NEXT: punpcklwd {{.*#+}} xmm4 = xmm4[0],xmm3[0],xmm4[1],xmm3[1],xmm4[2],xmm3[2],xmm4[3],xmm3[3]3536; SSE-NEXT: pshufd $196, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload3537; SSE-NEXT: # xmm0 = mem[0,1,0,3]3538; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3539; SSE-NEXT: pshufhw {{.*#+}} xmm3 = xmm0[0,1,2,3,4,5,4,6]3540; SSE-NEXT: punpckhqdq {{.*#+}} xmm3 = xmm3[1],xmm14[1]3541; SSE-NEXT: movss {{.*#+}} xmm3 = xmm4[0],xmm3[1,2,3]3542; SSE-NEXT: pshuflw $232, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload3543; SSE-NEXT: # xmm4 = mem[0,2,2,3,4,5,6,7]3544; SSE-NEXT: pshufd {{.*#+}} xmm4 = xmm4[0,1,0,3]3545; SSE-NEXT: pshufhw {{.*#+}} xmm14 = xmm4[0,1,2,3,4,5,4,6]3546; SSE-NEXT: movdqa %xmm15, %xmm43547; SSE-NEXT: pandn %xmm14, %xmm43548; SSE-NEXT: andps %xmm15, %xmm33549; SSE-NEXT: por %xmm3, %xmm43550; SSE-NEXT: pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Folded Reload3551; SSE-NEXT: # xmm14 = mem[1,1,1,1]3552; SSE-NEXT: pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Folded Reload3553; SSE-NEXT: # xmm3 = mem[2,3,2,3]3554; SSE-NEXT: punpcklwd {{.*#+}} xmm3 = xmm3[0],xmm14[0],xmm3[1],xmm14[1],xmm3[2],xmm14[2],xmm3[3],xmm14[3]3555; SSE-NEXT: pshufd {{.*#+}} xmm14 = xmm7[0,1,0,3]3556; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm14[0,1,2,3,4,5,4,6]3557; SSE-NEXT: punpckhqdq {{.*#+}} xmm0 = xmm0[1],xmm9[1]3558; SSE-NEXT: movss {{.*#+}} xmm0 = xmm3[0],xmm0[1,2,3]3559; SSE-NEXT: pshuflw $232, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Folded Reload3560; SSE-NEXT: # xmm3 = mem[0,2,2,3,4,5,6,7]3561; SSE-NEXT: pshufd {{.*#+}} xmm3 = xmm3[0,1,0,3]3562; SSE-NEXT: pshufhw {{.*#+}} xmm1 = xmm3[0,1,2,3,4,5,4,6]3563; SSE-NEXT: movdqa %xmm15, %xmm33564; SSE-NEXT: pandn %xmm1, %xmm33565; SSE-NEXT: andps %xmm15, %xmm03566; SSE-NEXT: por %xmm0, %xmm33567; SSE-NEXT: movdqa %xmm2, %xmm13568; SSE-NEXT: psrlq $48, %xmm13569; SSE-NEXT: psrldq {{.*#+}} xmm6 = xmm6[10,11,12,13,14,15],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero3570; SSE-NEXT: punpcklwd {{.*#+}} xmm6 = xmm6[0],xmm1[0],xmm6[1],xmm1[1],xmm6[2],xmm1[2],xmm6[3],xmm1[3]3571; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload3572; SSE-NEXT: psrld $16, %xmm13573; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm8[0,1,2,3,4,5,5,7]3574; SSE-NEXT: punpckhqdq {{.*#+}} xmm0 = xmm0[1],xmm1[1]3575; SSE-NEXT: movss {{.*#+}} xmm0 = xmm6[0],xmm0[1,2,3]3576; SSE-NEXT: pshuflw {{.*#+}} xmm1 = xmm10[3,1,2,3,4,5,6,7]3577; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[0,1,0,3]3578; SSE-NEXT: pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,4,5,7]3579; SSE-NEXT: movdqa %xmm15, %xmm23580; SSE-NEXT: pandn %xmm1, %xmm23581; SSE-NEXT: andps %xmm15, %xmm03582; SSE-NEXT: por %xmm0, %xmm23583; SSE-NEXT: psrlq $48, %xmm133584; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload3585; SSE-NEXT: psrldq {{.*#+}} xmm0 = xmm0[10,11,12,13,14,15],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero3586; SSE-NEXT: punpcklwd {{.*#+}} xmm0 = xmm0[0],xmm13[0],xmm0[1],xmm13[1],xmm0[2],xmm13[2],xmm0[3],xmm13[3]3587; SSE-NEXT: movdqa %xmm0, %xmm13588; SSE-NEXT: psrld $16, %xmm123589; SSE-NEXT: pshufhw $212, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload3590; SSE-NEXT: # xmm0 = mem[0,1,2,3,4,5,5,7]3591; SSE-NEXT: punpckhqdq {{.*#+}} xmm0 = xmm0[1],xmm12[1]3592; SSE-NEXT: movss {{.*#+}} xmm0 = xmm1[0],xmm0[1,2,3]3593; SSE-NEXT: pshuflw $231, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload3594; SSE-NEXT: # xmm1 = mem[3,1,2,3,4,5,6,7]3595; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[0,1,0,3]3596; SSE-NEXT: pshufhw {{.*#+}} xmm8 = xmm1[0,1,2,3,4,4,5,7]3597; SSE-NEXT: movdqa %xmm15, %xmm13598; SSE-NEXT: pandn %xmm8, %xmm13599; SSE-NEXT: andps %xmm15, %xmm03600; SSE-NEXT: por %xmm0, %xmm13601; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload3602; SSE-NEXT: psrlq $48, %xmm63603; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload3604; SSE-NEXT: psrldq {{.*#+}} xmm0 = xmm0[10,11,12,13,14,15],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero3605; SSE-NEXT: punpcklwd {{.*#+}} xmm0 = xmm0[0],xmm6[0],xmm0[1],xmm6[1],xmm0[2],xmm6[2],xmm0[3],xmm6[3]3606; SSE-NEXT: movdqa %xmm0, %xmm63607; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload3608; SSE-NEXT: psrld $16, %xmm73609; SSE-NEXT: pshufhw $212, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload3610; SSE-NEXT: # xmm0 = mem[0,1,2,3,4,5,5,7]3611; SSE-NEXT: punpckhqdq {{.*#+}} xmm0 = xmm0[1],xmm7[1]3612; SSE-NEXT: movss {{.*#+}} xmm0 = xmm6[0],xmm0[1,2,3]3613; SSE-NEXT: pshuflw $231, {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Folded Reload3614; SSE-NEXT: # xmm8 = mem[3,1,2,3,4,5,6,7]3615; SSE-NEXT: pshufd {{.*#+}} xmm8 = xmm8[0,1,0,3]3616; SSE-NEXT: pshufhw {{.*#+}} xmm8 = xmm8[0,1,2,3,4,4,5,7]3617; SSE-NEXT: movdqa %xmm15, %xmm93618; SSE-NEXT: pandn %xmm8, %xmm93619; SSE-NEXT: andps %xmm15, %xmm03620; SSE-NEXT: por %xmm0, %xmm93621; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload3622; SSE-NEXT: psrlq $48, %xmm63623; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload3624; SSE-NEXT: psrldq {{.*#+}} xmm0 = xmm0[10,11,12,13,14,15],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero3625; SSE-NEXT: punpcklwd {{.*#+}} xmm0 = xmm0[0],xmm6[0],xmm0[1],xmm6[1],xmm0[2],xmm6[2],xmm0[3],xmm6[3]3626; SSE-NEXT: movdqa %xmm0, %xmm63627; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload3628; SSE-NEXT: psrld $16, %xmm73629; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm14[0,1,2,3,4,5,5,7]3630; SSE-NEXT: punpckhqdq {{.*#+}} xmm0 = xmm0[1],xmm7[1]3631; SSE-NEXT: movss {{.*#+}} xmm0 = xmm6[0],xmm0[1,2,3]3632; SSE-NEXT: andps %xmm15, %xmm03633; SSE-NEXT: pshuflw $231, {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Folded Reload3634; SSE-NEXT: # xmm8 = mem[3,1,2,3,4,5,6,7]3635; SSE-NEXT: pshufd {{.*#+}} xmm8 = xmm8[0,1,0,3]3636; SSE-NEXT: pshufhw {{.*#+}} xmm8 = xmm8[0,1,2,3,4,4,5,7]3637; SSE-NEXT: pandn %xmm8, %xmm153638; SSE-NEXT: por %xmm0, %xmm153639; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload3640; SSE-NEXT: movaps %xmm0, 16(%rsi)3641; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload3642; SSE-NEXT: movaps %xmm0, 32(%rsi)3643; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload3644; SSE-NEXT: movaps %xmm0, 48(%rsi)3645; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload3646; SSE-NEXT: movaps %xmm0, (%rsi)3647; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload3648; SSE-NEXT: movaps %xmm0, 16(%rdx)3649; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload3650; SSE-NEXT: movaps %xmm0, 32(%rdx)3651; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload3652; SSE-NEXT: movaps %xmm0, 48(%rdx)3653; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload3654; SSE-NEXT: movaps %xmm0, (%rdx)3655; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload3656; SSE-NEXT: movaps %xmm0, 16(%rcx)3657; SSE-NEXT: movaps (%rsp), %xmm0 # 16-byte Reload3658; SSE-NEXT: movaps %xmm0, 32(%rcx)3659; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload3660; SSE-NEXT: movaps %xmm0, 48(%rcx)3661; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload3662; SSE-NEXT: movaps %xmm0, (%rcx)3663; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload3664; SSE-NEXT: movaps %xmm0, 16(%r8)3665; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload3666; SSE-NEXT: movaps %xmm0, 32(%r8)3667; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload3668; SSE-NEXT: movaps %xmm0, 48(%r8)3669; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload3670; SSE-NEXT: movaps %xmm0, (%r8)3671; SSE-NEXT: movdqa %xmm3, 16(%r9)3672; SSE-NEXT: movdqa %xmm4, 32(%r9)3673; SSE-NEXT: movdqa %xmm5, 48(%r9)3674; SSE-NEXT: movdqa %xmm11, (%r9)3675; SSE-NEXT: movq {{[0-9]+}}(%rsp), %rax3676; SSE-NEXT: movdqa %xmm15, 16(%rax)3677; SSE-NEXT: movdqa %xmm9, 32(%rax)3678; SSE-NEXT: movdqa %xmm1, 48(%rax)3679; SSE-NEXT: movdqa %xmm2, (%rax)3680; SSE-NEXT: addq $456, %rsp # imm = 0x1C83681; SSE-NEXT: retq3682;3683; AVX-LABEL: load_i16_stride6_vf32:3684; AVX: # %bb.0:3685; AVX-NEXT: subq $552, %rsp # imm = 0x2283686; AVX-NEXT: vmovdqa 96(%rdi), %xmm03687; AVX-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3688; AVX-NEXT: vpshufd {{.*#+}} xmm11 = xmm0[0,1,0,3]3689; AVX-NEXT: vpshufhw {{.*#+}} xmm0 = xmm11[0,1,2,3,4,6,6,7]3690; AVX-NEXT: vmovdqa 112(%rdi), %xmm13691; AVX-NEXT: vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3692; AVX-NEXT: vpunpckhdq {{.*#+}} xmm0 = xmm0[2],xmm1[2],xmm0[3],xmm1[3]3693; AVX-NEXT: vmovdqa 80(%rdi), %xmm13694; AVX-NEXT: vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3695; AVX-NEXT: vpslld $16, %xmm1, %xmm13696; AVX-NEXT: vmovdqa 64(%rdi), %xmm123697; AVX-NEXT: vpsrldq {{.*#+}} xmm2 = xmm12[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero3698; AVX-NEXT: vmovdqa %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3699; AVX-NEXT: vpunpcklwd {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1],xmm2[2],xmm1[2],xmm2[3],xmm1[3]3700; AVX-NEXT: vinsertf128 $1, %xmm0, %ymm1, %ymm03701; AVX-NEXT: vmovdqa (%rdi), %xmm33702; AVX-NEXT: vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3703; AVX-NEXT: vmovdqa 16(%rdi), %xmm103704; AVX-NEXT: vmovdqa 32(%rdi), %xmm13705; AVX-NEXT: vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3706; AVX-NEXT: vmovdqa 48(%rdi), %xmm23707; AVX-NEXT: vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3708; AVX-NEXT: vpsrlq $16, %xmm1, %xmm13709; AVX-NEXT: vpshufd {{.*#+}} xmm7 = xmm2[0,3,2,3]3710; AVX-NEXT: vpshuflw {{.*#+}} xmm2 = xmm7[0,1,0,2,4,5,6,7]3711; AVX-NEXT: vpunpckldq {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]3712; AVX-NEXT: vpshufd {{.*#+}} xmm8 = xmm3[0,1,0,3]3713; AVX-NEXT: vpshufhw {{.*#+}} xmm2 = xmm8[0,1,2,3,4,6,6,7]3714; AVX-NEXT: vpunpckhdq {{.*#+}} xmm2 = xmm2[2],xmm10[2],xmm2[3],xmm10[3]3715; AVX-NEXT: vpblendw {{.*#+}} xmm1 = xmm2[0,1,2],xmm1[3,4,5],xmm2[6,7]3716; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3,4,5,6,7]3717; AVX-NEXT: vmovdqa 176(%rdi), %xmm13718; AVX-NEXT: vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3719; AVX-NEXT: vpslld $16, %xmm1, %xmm13720; AVX-NEXT: vmovdqa 160(%rdi), %xmm23721; AVX-NEXT: vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3722; AVX-NEXT: vpsrldq {{.*#+}} xmm2 = xmm2[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero3723; AVX-NEXT: vpunpcklwd {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1],xmm2[2],xmm1[2],xmm2[3],xmm1[3]3724; AVX-NEXT: vmovdqa 128(%rdi), %xmm143725; AVX-NEXT: vpsrlq $16, %xmm14, %xmm23726; AVX-NEXT: vmovdqa 144(%rdi), %xmm33727; AVX-NEXT: vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3728; AVX-NEXT: vpshufd {{.*#+}} xmm6 = xmm3[0,3,2,3]3729; AVX-NEXT: vpshuflw {{.*#+}} xmm3 = xmm6[0,1,0,2,4,5,6,7]3730; AVX-NEXT: vpunpckldq {{.*#+}} xmm2 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]3731; AVX-NEXT: vpblendw {{.*#+}} xmm1 = xmm2[0,1,2,3,4,5],xmm1[6,7]3732; AVX-NEXT: vmovaps {{.*#+}} ymm5 = [65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,0,0,0,0,0]3733; AVX-NEXT: vandps %ymm5, %ymm0, %ymm03734; AVX-NEXT: vinsertf128 $1, %xmm1, %ymm0, %ymm13735; AVX-NEXT: vandnps %ymm1, %ymm5, %ymm13736; AVX-NEXT: vorps %ymm1, %ymm0, %ymm03737; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3738; AVX-NEXT: vmovdqa 272(%rdi), %xmm03739; AVX-NEXT: vmovdqa %xmm0, (%rsp) # 16-byte Spill3740; AVX-NEXT: vpslld $16, %xmm0, %xmm03741; AVX-NEXT: vmovdqa 256(%rdi), %xmm13742; AVX-NEXT: vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3743; AVX-NEXT: vpsrldq {{.*#+}} xmm1 = xmm1[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero3744; AVX-NEXT: vpunpcklwd {{.*#+}} xmm0 = xmm1[0],xmm0[0],xmm1[1],xmm0[1],xmm1[2],xmm0[2],xmm1[3],xmm0[3]3745; AVX-NEXT: vmovdqa 288(%rdi), %xmm13746; AVX-NEXT: vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3747; AVX-NEXT: vpshufd {{.*#+}} xmm13 = xmm1[0,1,0,3]3748; AVX-NEXT: vpshufhw {{.*#+}} xmm1 = xmm13[0,1,2,3,4,6,6,7]3749; AVX-NEXT: vmovdqa 304(%rdi), %xmm23750; AVX-NEXT: vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3751; AVX-NEXT: vpunpckhdq {{.*#+}} xmm1 = xmm1[2],xmm2[2],xmm1[3],xmm2[3]3752; AVX-NEXT: vinsertf128 $1, %xmm1, %ymm0, %ymm03753; AVX-NEXT: vmovdqa 224(%rdi), %xmm13754; AVX-NEXT: vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3755; AVX-NEXT: vpsrlq $16, %xmm1, %xmm13756; AVX-NEXT: vmovdqa 240(%rdi), %xmm23757; AVX-NEXT: vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3758; AVX-NEXT: vpshufd {{.*#+}} xmm3 = xmm2[0,3,2,3]3759; AVX-NEXT: vpshuflw {{.*#+}} xmm2 = xmm3[0,1,0,2,4,5,6,7]3760; AVX-NEXT: vpunpckldq {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]3761; AVX-NEXT: vmovdqa 192(%rdi), %xmm23762; AVX-NEXT: vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3763; AVX-NEXT: vpshufd {{.*#+}} xmm4 = xmm2[0,1,0,3]3764; AVX-NEXT: vpshufhw {{.*#+}} xmm9 = xmm4[0,1,2,3,4,6,6,7]3765; AVX-NEXT: vmovdqa 208(%rdi), %xmm23766; AVX-NEXT: vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3767; AVX-NEXT: vpunpckhdq {{.*#+}} xmm9 = xmm9[2],xmm2[2],xmm9[3],xmm2[3]3768; AVX-NEXT: vpblendw {{.*#+}} xmm1 = xmm9[0,1,2],xmm1[3,4,5],xmm9[6,7]3769; AVX-NEXT: vblendps {{.*#+}} ymm2 = ymm1[0,1,2],ymm0[3,4,5,6,7]3770; AVX-NEXT: vmovdqa 368(%rdi), %xmm03771; AVX-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3772; AVX-NEXT: vpslld $16, %xmm0, %xmm13773; AVX-NEXT: vmovdqa 352(%rdi), %xmm03774; AVX-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3775; AVX-NEXT: vpsrldq {{.*#+}} xmm9 = xmm0[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero3776; AVX-NEXT: vpunpcklwd {{.*#+}} xmm9 = xmm9[0],xmm1[0],xmm9[1],xmm1[1],xmm9[2],xmm1[2],xmm9[3],xmm1[3]3777; AVX-NEXT: vmovdqa 320(%rdi), %xmm03778; AVX-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3779; AVX-NEXT: vpsrlq $16, %xmm0, %xmm03780; AVX-NEXT: vmovdqa 336(%rdi), %xmm13781; AVX-NEXT: vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3782; AVX-NEXT: vpshufd {{.*#+}} xmm1 = xmm1[0,3,2,3]3783; AVX-NEXT: vpshuflw {{.*#+}} xmm15 = xmm1[0,1,0,2,4,5,6,7]3784; AVX-NEXT: vpunpckldq {{.*#+}} xmm0 = xmm15[0],xmm0[0],xmm15[1],xmm0[1]3785; AVX-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,5],xmm9[6,7]3786; AVX-NEXT: vandps %ymm5, %ymm2, %ymm23787; AVX-NEXT: vinsertf128 $1, %xmm0, %ymm0, %ymm03788; AVX-NEXT: vandnps %ymm0, %ymm5, %ymm03789; AVX-NEXT: vmovaps %ymm5, %ymm93790; AVX-NEXT: vorps %ymm0, %ymm2, %ymm03791; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3792; AVX-NEXT: vpshufhw {{.*#+}} xmm0 = xmm11[0,1,2,3,5,7,6,7]3793; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Reload3794; AVX-NEXT: vpsrld $16, %xmm11, %xmm23795; AVX-NEXT: vpunpckhdq {{.*#+}} xmm0 = xmm0[2],xmm2[2],xmm0[3],xmm2[3]3796; AVX-NEXT: vpshufd {{.*#+}} xmm2 = xmm12[2,2,3,3]3797; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Reload3798; AVX-NEXT: vpunpcklwd {{.*#+}} xmm2 = xmm2[0],xmm12[0],xmm2[1],xmm12[1],xmm2[2],xmm12[2],xmm2[3],xmm12[3]3799; AVX-NEXT: vinsertf128 $1, %xmm0, %ymm2, %ymm03800; AVX-NEXT: vpshuflw {{.*#+}} xmm2 = xmm7[0,1,1,3,4,5,6,7]3801; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload3802; AVX-NEXT: vpshufd {{.*#+}} xmm7 = xmm5[1,1,1,1]3803; AVX-NEXT: vpunpckldq {{.*#+}} xmm2 = xmm2[0],xmm7[0],xmm2[1],xmm7[1]3804; AVX-NEXT: vpshufhw {{.*#+}} xmm7 = xmm8[0,1,2,3,5,7,6,7]3805; AVX-NEXT: vmovdqa %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3806; AVX-NEXT: vpsrld $16, %xmm10, %xmm83807; AVX-NEXT: vpunpckhdq {{.*#+}} xmm7 = xmm7[2],xmm8[2],xmm7[3],xmm8[3]3808; AVX-NEXT: vpblendw {{.*#+}} xmm2 = xmm7[0,1,2],xmm2[3,4,5],xmm7[6,7]3809; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm2[0,1,2],ymm0[3,4,5,6,7]3810; AVX-NEXT: vpshuflw {{.*#+}} xmm2 = xmm6[0,1,1,3,4,5,6,7]3811; AVX-NEXT: vmovdqa %xmm14, %xmm73812; AVX-NEXT: vpshufd {{.*#+}} xmm6 = xmm14[1,1,1,1]3813; AVX-NEXT: vpunpckldq {{.*#+}} xmm2 = xmm2[0],xmm6[0],xmm2[1],xmm6[1]3814; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload3815; AVX-NEXT: vpshufd {{.*#+}} xmm6 = xmm14[2,2,3,3]3816; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload3817; AVX-NEXT: vpunpcklwd {{.*#+}} xmm6 = xmm6[0],xmm8[0],xmm6[1],xmm8[1],xmm6[2],xmm8[2],xmm6[3],xmm8[3]3818; AVX-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,5],xmm6[6,7]3819; AVX-NEXT: vandps %ymm0, %ymm9, %ymm03820; AVX-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm23821; AVX-NEXT: vandnps %ymm2, %ymm9, %ymm23822; AVX-NEXT: vmovaps %ymm9, %ymm63823; AVX-NEXT: vorps %ymm2, %ymm0, %ymm03824; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3825; AVX-NEXT: vpshufhw {{.*#+}} xmm0 = xmm13[0,1,2,3,5,7,6,7]3826; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload3827; AVX-NEXT: vpsrld $16, %xmm15, %xmm23828; AVX-NEXT: vpunpckhdq {{.*#+}} xmm0 = xmm0[2],xmm2[2],xmm0[3],xmm2[3]3829; AVX-NEXT: vpshufd $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload3830; AVX-NEXT: # xmm2 = mem[2,2,3,3]3831; AVX-NEXT: vpunpcklwd (%rsp), %xmm2, %xmm2 # 16-byte Folded Reload3832; AVX-NEXT: # xmm2 = xmm2[0],mem[0],xmm2[1],mem[1],xmm2[2],mem[2],xmm2[3],mem[3]3833; AVX-NEXT: vinsertf128 $1, %xmm0, %ymm2, %ymm03834; AVX-NEXT: vpshuflw {{.*#+}} xmm2 = xmm3[0,1,1,3,4,5,6,7]3835; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Reload3836; AVX-NEXT: vpshufd {{.*#+}} xmm3 = xmm9[1,1,1,1]3837; AVX-NEXT: vpunpckldq {{.*#+}} xmm2 = xmm2[0],xmm3[0],xmm2[1],xmm3[1]3838; AVX-NEXT: vpshufhw {{.*#+}} xmm3 = xmm4[0,1,2,3,5,7,6,7]3839; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload3840; AVX-NEXT: vpsrld $16, %xmm13, %xmm43841; AVX-NEXT: vpunpckhdq {{.*#+}} xmm3 = xmm3[2],xmm4[2],xmm3[3],xmm4[3]3842; AVX-NEXT: vpblendw {{.*#+}} xmm2 = xmm3[0,1,2],xmm2[3,4,5],xmm3[6,7]3843; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm2[0,1,2],ymm0[3,4,5,6,7]3844; AVX-NEXT: vpshuflw {{.*#+}} xmm1 = xmm1[0,1,1,3,4,5,6,7]3845; AVX-NEXT: vpshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload3846; AVX-NEXT: # xmm2 = mem[1,1,1,1]3847; AVX-NEXT: vpunpckldq {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]3848; AVX-NEXT: vpshufd $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload3849; AVX-NEXT: # xmm2 = mem[2,2,3,3]3850; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload3851; AVX-NEXT: vpunpcklwd {{.*#+}} xmm2 = xmm2[0],xmm3[0],xmm2[1],xmm3[1],xmm2[2],xmm3[2],xmm2[3],xmm3[3]3852; AVX-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,5],xmm2[6,7]3853; AVX-NEXT: vandps %ymm6, %ymm0, %ymm03854; AVX-NEXT: vinsertf128 $1, %xmm1, %ymm0, %ymm13855; AVX-NEXT: vandnps %ymm1, %ymm6, %ymm13856; AVX-NEXT: vorps %ymm1, %ymm0, %ymm03857; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3858; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload3859; AVX-NEXT: vpshufd {{.*#+}} xmm0 = xmm4[1,1,1,1]3860; AVX-NEXT: vpsrldq {{.*#+}} xmm1 = xmm5[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero3861; AVX-NEXT: vpunpcklqdq {{.*#+}} xmm1 = xmm1[0],xmm0[0]3862; AVX-NEXT: vmovdqa {{.*#+}} xmm0 = [4,5,0,1,12,13,14,15,8,9,10,11,12,13,14,15]3863; AVX-NEXT: vpblendw $12, {{[-0-9]+}}(%r{{[sb]}}p), %xmm10, %xmm2 # 16-byte Folded Reload3864; AVX-NEXT: # xmm2 = xmm10[0,1],mem[2,3],xmm10[4,5,6,7]3865; AVX-NEXT: vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3866; AVX-NEXT: vpshufb %xmm0, %xmm2, %xmm23867; AVX-NEXT: vpblendw {{.*#+}} xmm5 = xmm2[0,1,2],xmm1[3,4],xmm2[5,6,7]3868; AVX-NEXT: vpblendw $12, {{[-0-9]+}}(%r{{[sb]}}p), %xmm11, %xmm1 # 16-byte Folded Reload3869; AVX-NEXT: # xmm1 = xmm11[0,1],mem[2,3],xmm11[4,5,6,7]3870; AVX-NEXT: vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3871; AVX-NEXT: vpshufb %xmm0, %xmm1, %xmm13872; AVX-NEXT: vmovdqa {{.*#+}} xmm2 = [0,1,2,3,4,5,6,7,8,9,0,1,12,13,8,9]3873; AVX-NEXT: vpblendw $207, {{[-0-9]+}}(%r{{[sb]}}p), %xmm12, %xmm10 # 16-byte Folded Reload3874; AVX-NEXT: # xmm10 = mem[0,1,2,3],xmm12[4,5],mem[6,7]3875; AVX-NEXT: vpshufb %xmm2, %xmm10, %xmm63876; AVX-NEXT: vinsertf128 $1, %xmm1, %ymm6, %ymm63877; AVX-NEXT: vmovaps {{.*#+}} ymm1 = [0,0,0,0,0,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535]3878; AVX-NEXT: vandnps %ymm5, %ymm1, %ymm53879; AVX-NEXT: vandps %ymm1, %ymm6, %ymm63880; AVX-NEXT: vorps %ymm5, %ymm6, %ymm63881; AVX-NEXT: vpshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Folded Reload3882; AVX-NEXT: # xmm5 = mem[1,1,1,1]3883; AVX-NEXT: vmovdqa %xmm7, %xmm123884; AVX-NEXT: vmovdqa %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3885; AVX-NEXT: vpsrldq {{.*#+}} xmm7 = xmm7[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero3886; AVX-NEXT: vpunpcklqdq {{.*#+}} xmm7 = xmm7[0],xmm5[0]3887; AVX-NEXT: vpblendw {{.*#+}} xmm5 = xmm14[0,1,2,3],xmm8[4,5],xmm14[6,7]3888; AVX-NEXT: vpshufb %xmm2, %xmm5, %xmm83889; AVX-NEXT: vpblendw {{.*#+}} xmm7 = xmm8[0,1,2],xmm7[3,4],xmm8[5,6,7]3890; AVX-NEXT: vmovaps {{.*#+}} ymm8 = [65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,0,0,0,0,0]3891; AVX-NEXT: vandps %ymm6, %ymm8, %ymm63892; AVX-NEXT: vinsertf128 $1, %xmm7, %ymm0, %ymm73893; AVX-NEXT: vandnps %ymm7, %ymm8, %ymm73894; AVX-NEXT: vorps %ymm7, %ymm6, %ymm63895; AVX-NEXT: vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3896; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload3897; AVX-NEXT: vpshufd {{.*#+}} xmm6 = xmm14[1,1,1,1]3898; AVX-NEXT: vpsrldq {{.*#+}} xmm7 = xmm9[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero3899; AVX-NEXT: vpunpcklqdq {{.*#+}} xmm7 = xmm7[0],xmm6[0]3900; AVX-NEXT: vpblendw $12, {{[-0-9]+}}(%r{{[sb]}}p), %xmm13, %xmm6 # 16-byte Folded Reload3901; AVX-NEXT: # xmm6 = xmm13[0,1],mem[2,3],xmm13[4,5,6,7]3902; AVX-NEXT: vmovdqa %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3903; AVX-NEXT: vpshufb %xmm0, %xmm6, %xmm83904; AVX-NEXT: vpblendw {{.*#+}} xmm11 = xmm8[0,1,2],xmm7[3,4],xmm8[5,6,7]3905; AVX-NEXT: vpblendw $12, {{[-0-9]+}}(%r{{[sb]}}p), %xmm15, %xmm7 # 16-byte Folded Reload3906; AVX-NEXT: # xmm7 = xmm15[0,1],mem[2,3],xmm15[4,5,6,7]3907; AVX-NEXT: vpshufb %xmm0, %xmm7, %xmm03908; AVX-NEXT: vmovdqa (%rsp), %xmm6 # 16-byte Reload3909; AVX-NEXT: vpblendw $207, {{[-0-9]+}}(%r{{[sb]}}p), %xmm6, %xmm8 # 16-byte Folded Reload3910; AVX-NEXT: # xmm8 = mem[0,1,2,3],xmm6[4,5],mem[6,7]3911; AVX-NEXT: vpshufb %xmm2, %xmm8, %xmm153912; AVX-NEXT: vinsertf128 $1, %xmm0, %ymm15, %ymm03913; AVX-NEXT: vandnps %ymm11, %ymm1, %ymm113914; AVX-NEXT: vandps %ymm1, %ymm0, %ymm03915; AVX-NEXT: vorps %ymm0, %ymm11, %ymm113916; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload3917; AVX-NEXT: vpshufd {{.*#+}} xmm0 = xmm13[1,1,1,1]3918; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload3919; AVX-NEXT: vpsrldq {{.*#+}} xmm15 = xmm6[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero3920; AVX-NEXT: vpunpcklqdq {{.*#+}} xmm15 = xmm15[0],xmm0[0]3921; AVX-NEXT: vpblendw $207, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3, %xmm0 # 16-byte Folded Reload3922; AVX-NEXT: # xmm0 = mem[0,1,2,3],xmm3[4,5],mem[6,7]3923; AVX-NEXT: vpshufb %xmm2, %xmm0, %xmm23924; AVX-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0,1,2],xmm15[3,4],xmm2[5,6,7]3925; AVX-NEXT: vmovaps {{.*#+}} ymm15 = [65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,0,0,0,0,0]3926; AVX-NEXT: vandps %ymm15, %ymm11, %ymm113927; AVX-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm23928; AVX-NEXT: vandnps %ymm2, %ymm15, %ymm23929; AVX-NEXT: vorps %ymm2, %ymm11, %ymm23930; AVX-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3931; AVX-NEXT: vpsrlq $48, %xmm4, %xmm23932; AVX-NEXT: vpshufd $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Folded Reload3933; AVX-NEXT: # xmm11 = mem[2,2,3,3]3934; AVX-NEXT: vpunpcklqdq {{.*#+}} xmm2 = xmm11[0],xmm2[0]3935; AVX-NEXT: vmovdqa {{.*#+}} xmm11 = [6,7,2,3,14,15,14,15,8,9,10,11,12,13,14,15]3936; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload3937; AVX-NEXT: vpshufb %xmm11, %xmm3, %xmm93938; AVX-NEXT: vpblendw {{.*#+}} xmm9 = xmm9[0,1,2],xmm2[3,4],xmm9[5,6,7]3939; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload3940; AVX-NEXT: vpshufb %xmm11, %xmm2, %xmm33941; AVX-NEXT: vmovdqa {{.*#+}} xmm2 = [0,1,2,3,4,5,6,7,14,15,2,3,14,15,10,11]3942; AVX-NEXT: vpshufb %xmm2, %xmm10, %xmm43943; AVX-NEXT: vinsertf128 $1, %xmm3, %ymm4, %ymm33944; AVX-NEXT: vandnps %ymm9, %ymm1, %ymm43945; AVX-NEXT: vandps %ymm1, %ymm3, %ymm33946; AVX-NEXT: vorps %ymm4, %ymm3, %ymm33947; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload3948; AVX-NEXT: vpsrlq $48, %xmm10, %xmm43949; AVX-NEXT: vpshufd {{.*#+}} xmm9 = xmm12[2,2,3,3]3950; AVX-NEXT: vpunpcklqdq {{.*#+}} xmm4 = xmm9[0],xmm4[0]3951; AVX-NEXT: vpshufb %xmm2, %xmm5, %xmm53952; AVX-NEXT: vpblendw {{.*#+}} xmm4 = xmm5[0,1,2],xmm4[3,4],xmm5[5,6,7]3953; AVX-NEXT: vandps %ymm3, %ymm15, %ymm33954; AVX-NEXT: vinsertf128 $1, %xmm4, %ymm0, %ymm43955; AVX-NEXT: vandnps %ymm4, %ymm15, %ymm43956; AVX-NEXT: vorps %ymm4, %ymm3, %ymm33957; AVX-NEXT: vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3958; AVX-NEXT: vpsrlq $48, %xmm14, %xmm33959; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Reload3960; AVX-NEXT: vpshufd {{.*#+}} xmm4 = xmm12[2,2,3,3]3961; AVX-NEXT: vpunpcklqdq {{.*#+}} xmm3 = xmm4[0],xmm3[0]3962; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload3963; AVX-NEXT: vpshufb %xmm11, %xmm4, %xmm43964; AVX-NEXT: vpblendw {{.*#+}} xmm3 = xmm4[0,1,2],xmm3[3,4],xmm4[5,6,7]3965; AVX-NEXT: vpshufb %xmm11, %xmm7, %xmm43966; AVX-NEXT: vpshufb %xmm2, %xmm8, %xmm53967; AVX-NEXT: vinsertf128 $1, %xmm4, %ymm5, %ymm43968; AVX-NEXT: vandnps %ymm3, %ymm1, %ymm33969; AVX-NEXT: vandps %ymm1, %ymm4, %ymm13970; AVX-NEXT: vorps %ymm3, %ymm1, %ymm13971; AVX-NEXT: vpsrlq $48, %xmm13, %xmm33972; AVX-NEXT: vpshufd {{.*#+}} xmm4 = xmm6[2,2,3,3]3973; AVX-NEXT: vpunpcklqdq {{.*#+}} xmm3 = xmm4[0],xmm3[0]3974; AVX-NEXT: vpshufb %xmm2, %xmm0, %xmm03975; AVX-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2],xmm3[3,4],xmm0[5,6,7]3976; AVX-NEXT: vandps %ymm1, %ymm15, %ymm13977; AVX-NEXT: vinsertf128 $1, %xmm0, %ymm0, %ymm03978; AVX-NEXT: vandnps %ymm0, %ymm15, %ymm03979; AVX-NEXT: vorps %ymm0, %ymm1, %ymm03980; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3981; AVX-NEXT: vpshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload3982; AVX-NEXT: # xmm1 = mem[1,1,1,1]3983; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload3984; AVX-NEXT: vpshufd {{.*#+}} xmm2 = xmm4[2,3,2,3]3985; AVX-NEXT: vpunpcklwd {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1],xmm2[2],xmm1[2],xmm2[3],xmm1[3]3986; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload3987; AVX-NEXT: vpblendw $12, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload3988; AVX-NEXT: # xmm0 = xmm0[0,1],mem[2,3],xmm0[4,5,6,7]3989; AVX-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3990; AVX-NEXT: vmovdqa {{.*#+}} xmm3 = [0,1,4,5,4,5,6,7,0,1,4,5,0,1,12,13]3991; AVX-NEXT: vpshufb %xmm3, %xmm0, %xmm23992; AVX-NEXT: vinsertf128 $1, %xmm1, %ymm2, %ymm13993; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload3994; AVX-NEXT: vpshufd {{.*#+}} xmm2 = xmm14[1,1,1,1]3995; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload3996; AVX-NEXT: vpshufd {{.*#+}} xmm5 = xmm6[2,3,2,3]3997; AVX-NEXT: vpunpcklwd {{.*#+}} xmm2 = xmm5[0],xmm2[0],xmm5[1],xmm2[1],xmm5[2],xmm2[2],xmm5[3],xmm2[3]3998; AVX-NEXT: vpshufd $196, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload3999; AVX-NEXT: # xmm0 = mem[0,1,0,3]4000; AVX-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4001; AVX-NEXT: vpshufhw {{.*#+}} xmm5 = xmm0[0,1,2,3,4,5,4,6]4002; AVX-NEXT: vpunpckhqdq {{[-0-9]+}}(%r{{[sb]}}p), %xmm5, %xmm5 # 16-byte Folded Reload4003; AVX-NEXT: # xmm5 = xmm5[1],mem[1]4004; AVX-NEXT: vpblendw {{.*#+}} xmm5 = xmm2[0,1],xmm5[2,3,4,5,6,7]4005; AVX-NEXT: vmovaps {{.*#+}} ymm2 = [65535,65535,65535,65535,65535,0,0,0,0,0,65535,65535,65535,65535,65535,65535]4006; AVX-NEXT: vandnps %ymm1, %ymm2, %ymm14007; AVX-NEXT: vandps %ymm2, %ymm5, %ymm54008; AVX-NEXT: vorps %ymm1, %ymm5, %ymm14009; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4010; AVX-NEXT: vpblendw $12, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm5 # 16-byte Folded Reload4011; AVX-NEXT: # xmm5 = xmm0[0,1],mem[2,3],xmm0[4,5,6,7]4012; AVX-NEXT: vpshufd $196, {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Folded Reload4013; AVX-NEXT: # xmm7 = mem[0,1,0,3]4014; AVX-NEXT: vpshufhw {{.*#+}} xmm8 = xmm7[0,1,2,3,4,5,4,6]4015; AVX-NEXT: vpunpckhqdq {{.*#+}} xmm8 = xmm8[1],xmm10[1]4016; AVX-NEXT: vpshufb %xmm3, %xmm5, %xmm94017; AVX-NEXT: vpblendw {{.*#+}} xmm8 = xmm8[0,1,2,3,4],xmm9[5,6,7]4018; AVX-NEXT: vinsertf128 $1, %xmm8, %ymm0, %ymm84019; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4],ymm8[5,6,7]4020; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4021; AVX-NEXT: vpshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Folded Reload4022; AVX-NEXT: # xmm8 = mem[1,1,1,1]4023; AVX-NEXT: vpshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Folded Reload4024; AVX-NEXT: # xmm9 = mem[2,3,2,3]4025; AVX-NEXT: vpunpcklwd {{.*#+}} xmm9 = xmm9[0],xmm8[0],xmm9[1],xmm8[1],xmm9[2],xmm8[2],xmm9[3],xmm8[3]4026; AVX-NEXT: vmovdqa (%rsp), %xmm0 # 16-byte Reload4027; AVX-NEXT: vpblendw $12, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload4028; AVX-NEXT: # xmm0 = xmm0[0,1],mem[2,3],xmm0[4,5,6,7]4029; AVX-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4030; AVX-NEXT: vpshufb %xmm3, %xmm0, %xmm104031; AVX-NEXT: vinsertf128 $1, %xmm9, %ymm10, %ymm94032; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload4033; AVX-NEXT: vpshufd {{.*#+}} xmm10 = xmm15[1,1,1,1]4034; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload4035; AVX-NEXT: vpshufd {{.*#+}} xmm11 = xmm8[2,3,2,3]4036; AVX-NEXT: vpunpcklwd {{.*#+}} xmm11 = xmm11[0],xmm10[0],xmm11[1],xmm10[1],xmm11[2],xmm10[2],xmm11[3],xmm10[3]4037; AVX-NEXT: vpshufd {{.*#+}} xmm10 = xmm12[0,1,0,3]4038; AVX-NEXT: vpshufhw {{.*#+}} xmm13 = xmm10[0,1,2,3,4,5,4,6]4039; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload4040; AVX-NEXT: vpunpckhqdq {{.*#+}} xmm13 = xmm13[1],xmm1[1]4041; AVX-NEXT: vpblendw {{.*#+}} xmm11 = xmm11[0,1],xmm13[2,3,4,5,6,7]4042; AVX-NEXT: vandnps %ymm9, %ymm2, %ymm94043; AVX-NEXT: vandps %ymm2, %ymm11, %ymm114044; AVX-NEXT: vorps %ymm9, %ymm11, %ymm134045; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4046; AVX-NEXT: vpblendw $12, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm11 # 16-byte Folded Reload4047; AVX-NEXT: # xmm11 = xmm0[0,1],mem[2,3],xmm0[4,5,6,7]4048; AVX-NEXT: vpshufb %xmm3, %xmm11, %xmm34049; AVX-NEXT: vpshufd $196, {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Folded Reload4050; AVX-NEXT: # xmm9 = mem[0,1,0,3]4051; AVX-NEXT: vpshufhw {{.*#+}} xmm12 = xmm9[0,1,2,3,4,5,4,6]4052; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4053; AVX-NEXT: vpunpckhqdq {{.*#+}} xmm12 = xmm12[1],xmm0[1]4054; AVX-NEXT: vpblendw {{.*#+}} xmm3 = xmm12[0,1,2,3,4],xmm3[5,6,7]4055; AVX-NEXT: vinsertf128 $1, %xmm3, %ymm0, %ymm34056; AVX-NEXT: vblendps {{.*#+}} ymm3 = ymm13[0,1,2,3,4],ymm3[5,6,7]4057; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Reload4058; AVX-NEXT: vpsrlq $48, %xmm12, %xmm124059; AVX-NEXT: vpsrldq {{.*#+}} xmm13 = xmm4[10,11,12,13,14,15],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero4060; AVX-NEXT: vpunpcklwd {{.*#+}} xmm13 = xmm13[0],xmm12[0],xmm13[1],xmm12[1],xmm13[2],xmm12[2],xmm13[3],xmm12[3]4061; AVX-NEXT: vmovdqa {{.*#+}} xmm12 = [6,7,2,3,4,5,6,7,6,7,6,7,2,3,14,15]4062; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload4063; AVX-NEXT: vpshufb %xmm12, %xmm4, %xmm44064; AVX-NEXT: vinsertf128 $1, %xmm13, %ymm4, %ymm44065; AVX-NEXT: vpsrlq $48, %xmm14, %xmm134066; AVX-NEXT: vpsrldq {{.*#+}} xmm14 = xmm6[10,11,12,13,14,15],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero4067; AVX-NEXT: vpunpcklwd {{.*#+}} xmm13 = xmm14[0],xmm13[0],xmm14[1],xmm13[1],xmm14[2],xmm13[2],xmm14[3],xmm13[3]4068; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload4069; AVX-NEXT: vpsrld $16, %xmm6, %xmm144070; AVX-NEXT: vpshufhw $212, {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Folded Reload4071; AVX-NEXT: # xmm6 = mem[0,1,2,3,4,5,5,7]4072; AVX-NEXT: vpunpckhqdq {{.*#+}} xmm6 = xmm6[1],xmm14[1]4073; AVX-NEXT: vpblendw {{.*#+}} xmm6 = xmm13[0,1],xmm6[2,3,4,5,6,7]4074; AVX-NEXT: vandnps %ymm4, %ymm2, %ymm44075; AVX-NEXT: vandps %ymm2, %ymm6, %ymm64076; AVX-NEXT: vorps %ymm4, %ymm6, %ymm44077; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload4078; AVX-NEXT: vpsrld $16, %xmm6, %xmm64079; AVX-NEXT: vpshufhw {{.*#+}} xmm7 = xmm7[0,1,2,3,4,5,5,7]4080; AVX-NEXT: vpunpckhqdq {{.*#+}} xmm6 = xmm7[1],xmm6[1]4081; AVX-NEXT: vpshufb %xmm12, %xmm5, %xmm54082; AVX-NEXT: vpblendw {{.*#+}} xmm5 = xmm6[0,1,2,3,4],xmm5[5,6,7]4083; AVX-NEXT: vinsertf128 $1, %xmm5, %ymm0, %ymm54084; AVX-NEXT: vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3,4],ymm5[5,6,7]4085; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload4086; AVX-NEXT: vpsrlq $48, %xmm5, %xmm54087; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload4088; AVX-NEXT: vpsrldq {{.*#+}} xmm6 = xmm6[10,11,12,13,14,15],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero4089; AVX-NEXT: vpunpcklwd {{.*#+}} xmm5 = xmm6[0],xmm5[0],xmm6[1],xmm5[1],xmm6[2],xmm5[2],xmm6[3],xmm5[3]4090; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload4091; AVX-NEXT: vpshufb %xmm12, %xmm6, %xmm64092; AVX-NEXT: vinsertf128 $1, %xmm5, %ymm6, %ymm54093; AVX-NEXT: vpsrlq $48, %xmm15, %xmm64094; AVX-NEXT: vpsrldq {{.*#+}} xmm7 = xmm8[10,11,12,13,14,15],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero4095; AVX-NEXT: vpunpcklwd {{.*#+}} xmm6 = xmm7[0],xmm6[0],xmm7[1],xmm6[1],xmm7[2],xmm6[2],xmm7[3],xmm6[3]4096; AVX-NEXT: vpsrld $16, %xmm1, %xmm74097; AVX-NEXT: vpshufhw {{.*#+}} xmm8 = xmm10[0,1,2,3,4,5,5,7]4098; AVX-NEXT: vpunpckhqdq {{.*#+}} xmm7 = xmm8[1],xmm7[1]4099; AVX-NEXT: vpblendw {{.*#+}} xmm6 = xmm6[0,1],xmm7[2,3,4,5,6,7]4100; AVX-NEXT: vandnps %ymm5, %ymm2, %ymm54101; AVX-NEXT: vandps %ymm2, %ymm6, %ymm24102; AVX-NEXT: vorps %ymm5, %ymm2, %ymm24103; AVX-NEXT: vpshufb %xmm12, %xmm11, %xmm54104; AVX-NEXT: vpsrld $16, %xmm0, %xmm64105; AVX-NEXT: vpshufhw {{.*#+}} xmm7 = xmm9[0,1,2,3,4,5,5,7]4106; AVX-NEXT: vpunpckhqdq {{.*#+}} xmm6 = xmm7[1],xmm6[1]4107; AVX-NEXT: vpblendw {{.*#+}} xmm5 = xmm6[0,1,2,3,4],xmm5[5,6,7]4108; AVX-NEXT: vinsertf128 $1, %xmm5, %ymm0, %ymm54109; AVX-NEXT: vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4],ymm5[5,6,7]4110; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload4111; AVX-NEXT: vmovaps %ymm0, 32(%rsi)4112; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload4113; AVX-NEXT: vmovaps %ymm5, (%rsi)4114; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload4115; AVX-NEXT: vmovaps %ymm0, 32(%rdx)4116; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload4117; AVX-NEXT: vmovaps %ymm0, (%rdx)4118; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload4119; AVX-NEXT: vmovaps %ymm0, 32(%rcx)4120; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload4121; AVX-NEXT: vmovaps %ymm0, (%rcx)4122; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload4123; AVX-NEXT: vmovaps %ymm0, 32(%r8)4124; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload4125; AVX-NEXT: vmovaps %ymm0, (%r8)4126; AVX-NEXT: vmovaps %ymm3, 32(%r9)4127; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload4128; AVX-NEXT: vmovaps %ymm0, (%r9)4129; AVX-NEXT: movq {{[0-9]+}}(%rsp), %rax4130; AVX-NEXT: vmovaps %ymm2, 32(%rax)4131; AVX-NEXT: vmovaps %ymm4, (%rax)4132; AVX-NEXT: addq $552, %rsp # imm = 0x2284133; AVX-NEXT: vzeroupper4134; AVX-NEXT: retq4135;4136; AVX2-LABEL: load_i16_stride6_vf32:4137; AVX2: # %bb.0:4138; AVX2-NEXT: subq $488, %rsp # imm = 0x1E84139; AVX2-NEXT: vmovdqa (%rdi), %ymm54140; AVX2-NEXT: vmovdqu %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4141; AVX2-NEXT: vmovdqa 32(%rdi), %ymm74142; AVX2-NEXT: vmovdqu %ymm7, (%rsp) # 32-byte Spill4143; AVX2-NEXT: vmovdqa 64(%rdi), %ymm04144; AVX2-NEXT: vmovdqa 96(%rdi), %ymm14145; AVX2-NEXT: vmovdqa 224(%rdi), %ymm104146; AVX2-NEXT: vmovdqa 192(%rdi), %ymm114147; AVX2-NEXT: vmovdqa 288(%rdi), %ymm24148; AVX2-NEXT: vmovdqa 256(%rdi), %ymm34149; AVX2-NEXT: vperm2i128 {{.*#+}} ymm12 = ymm3[2,3],ymm2[2,3]4150; AVX2-NEXT: vperm2i128 {{.*#+}} ymm14 = ymm3[0,1],ymm2[0,1]4151; AVX2-NEXT: vperm2i128 {{.*#+}} ymm2 = ymm0[2,3],ymm1[2,3]4152; AVX2-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4153; AVX2-NEXT: vperm2i128 {{.*#+}} ymm0 = ymm0[0,1],ymm1[0,1]4154; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4155; AVX2-NEXT: vmovdqa {{.*#+}} ymm6 = [8,9,4,5,4,5,6,7,0,1,4,5,0,1,12,13,24,25,20,21,20,21,22,23,16,17,20,21,16,17,28,29]4156; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0],ymm0[1],ymm2[2,3,4,5],ymm0[6],ymm2[7]4157; AVX2-NEXT: vpshufb %ymm6, %ymm1, %ymm44158; AVX2-NEXT: vpblendd {{.*#+}} ymm2 = ymm7[0,1],ymm5[2],ymm7[3,4],ymm5[5],ymm7[6,7]4159; AVX2-NEXT: vmovdqa {{.*#+}} xmm8 = [8,9,u,u,0,1,12,13,u,u,12,13,12,13,14,15]4160; AVX2-NEXT: vpshufb %xmm8, %xmm2, %xmm04161; AVX2-NEXT: vextracti128 $1, %ymm2, %xmm34162; AVX2-NEXT: vpshuflw {{.*#+}} xmm9 = xmm3[2,2,2,2,4,5,6,7]4163; AVX2-NEXT: vpblendw {{.*#+}} xmm9 = xmm0[0],xmm9[1],xmm0[2,3],xmm9[4],xmm0[5,6,7]4164; AVX2-NEXT: vpmovsxbw {{.*#+}} xmm0 = [65535,65535,65535,65535,65535,0,0,0]4165; AVX2-NEXT: vpblendvb %ymm0, %ymm9, %ymm4, %ymm44166; AVX2-NEXT: vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4167; AVX2-NEXT: vmovdqu %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4168; AVX2-NEXT: vmovdqa %ymm11, %ymm54169; AVX2-NEXT: vmovdqu %ymm11, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4170; AVX2-NEXT: vpblendd {{.*#+}} ymm4 = ymm10[0,1],ymm11[2],ymm10[3,4],ymm11[5],ymm10[6,7]4171; AVX2-NEXT: vpshufb %xmm8, %xmm4, %xmm84172; AVX2-NEXT: vextracti128 $1, %ymm4, %xmm94173; AVX2-NEXT: vpshuflw {{.*#+}} xmm11 = xmm9[2,2,2,2,4,5,6,7]4174; AVX2-NEXT: vpblendw {{.*#+}} xmm8 = xmm8[0],xmm11[1],xmm8[2,3],xmm11[4],xmm8[5,6,7]4175; AVX2-NEXT: vmovdqu %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4176; AVX2-NEXT: vmovdqu %ymm14, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4177; AVX2-NEXT: vpblendd {{.*#+}} ymm11 = ymm12[0],ymm14[1],ymm12[2,3,4,5],ymm14[6],ymm12[7]4178; AVX2-NEXT: vpshufb %ymm6, %ymm11, %ymm64179; AVX2-NEXT: vpblendvb %ymm0, %ymm8, %ymm6, %ymm64180; AVX2-NEXT: vmovdqu %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4181; AVX2-NEXT: vmovdqa {{.*#+}} xmm6 = [10,11,u,u,2,3,14,15,u,u,10,11,12,13,14,15]4182; AVX2-NEXT: vpshufb %xmm6, %xmm2, %xmm24183; AVX2-NEXT: vpshufd {{.*#+}} xmm3 = xmm3[1,1,2,3]4184; AVX2-NEXT: vpshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,5,5,5,5]4185; AVX2-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0],xmm3[1],xmm2[2,3],xmm3[4],xmm2[5,6,7]4186; AVX2-NEXT: vmovdqa {{.*#+}} ymm3 = [10,11,6,7,4,5,6,7,6,7,6,7,2,3,14,15,26,27,22,23,20,21,22,23,22,23,22,23,18,19,30,31]4187; AVX2-NEXT: vpshufb %ymm3, %ymm1, %ymm14188; AVX2-NEXT: vpblendvb %ymm0, %ymm2, %ymm1, %ymm14189; AVX2-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4190; AVX2-NEXT: vpshufb %ymm3, %ymm11, %ymm14191; AVX2-NEXT: vpshufb %xmm6, %xmm4, %xmm34192; AVX2-NEXT: vpblendd {{.*#+}} ymm2 = ymm5[0],ymm10[1],ymm5[2,3],ymm10[4],ymm5[5,6],ymm10[7]4193; AVX2-NEXT: vpshufd {{.*#+}} xmm4 = xmm9[1,1,2,3]4194; AVX2-NEXT: vpshufhw {{.*#+}} xmm4 = xmm4[0,1,2,3,5,5,5,5]4195; AVX2-NEXT: vpblendw {{.*#+}} xmm3 = xmm3[0],xmm4[1],xmm3[2,3],xmm4[4],xmm3[5,6,7]4196; AVX2-NEXT: vmovdqa {{.*#+}} xmm7 = [0,1,12,13,u,u,4,5,u,u,u,u,12,13,14,15]4197; AVX2-NEXT: vpblendvb %ymm0, %ymm3, %ymm1, %ymm04198; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4199; AVX2-NEXT: vextracti128 $1, %ymm2, %xmm94200; AVX2-NEXT: vpshufd {{.*#+}} xmm0 = xmm9[0,2,0,3]4201; AVX2-NEXT: vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,6,6,7]4202; AVX2-NEXT: vpshufb %xmm7, %xmm2, %xmm14203; AVX2-NEXT: vpblendw {{.*#+}} xmm0 = xmm1[0,1],xmm0[2],xmm1[3],xmm0[4,5],xmm1[6,7]4204; AVX2-NEXT: vmovdqa {{.*#+}} ymm15 = [u,u,u,u,u,u,u,u,u,u,u,u,8,9,4,5,16,17,28,29,24,25,28,29,24,25,28,29,24,25,20,21]4205; AVX2-NEXT: vpblendd {{.*#+}} ymm12 = ymm14[0],ymm12[1],ymm14[2,3,4,5],ymm12[6],ymm14[7]4206; AVX2-NEXT: vpshufb %ymm15, %ymm12, %ymm14207; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4,5,6,7]4208; AVX2-NEXT: vmovdqa 352(%rdi), %ymm114209; AVX2-NEXT: vmovdqa 320(%rdi), %ymm134210; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm13[0,1],ymm11[2],ymm13[3,4],ymm11[5],ymm13[6,7]4211; AVX2-NEXT: vmovdqu %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4212; AVX2-NEXT: vmovdqu %ymm11, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4213; AVX2-NEXT: vpshuflw {{.*#+}} xmm3 = xmm1[2,2,2,2,4,5,6,7]4214; AVX2-NEXT: vextracti128 $1, %ymm1, %xmm84215; AVX2-NEXT: vpblendw {{.*#+}} xmm3 = xmm8[0,1,2],xmm3[3,4],xmm8[5,6,7]4216; AVX2-NEXT: vmovdqa {{.*#+}} xmm6 = [0,1,4,5,4,5,6,7,0,1,12,13,8,9,4,5]4217; AVX2-NEXT: vpshufb %xmm6, %xmm3, %xmm34218; AVX2-NEXT: vinserti128 $1, %xmm3, %ymm0, %ymm34219; AVX2-NEXT: vpblendw {{.*#+}} ymm3 = ymm0[0,1,2],ymm3[3,4,5,6,7],ymm0[8,9,10],ymm3[11,12,13,14,15]4220; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm3[4,5,6,7]4221; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4222; AVX2-NEXT: vmovdqa 160(%rdi), %ymm04223; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4224; AVX2-NEXT: vmovdqa 128(%rdi), %ymm144225; AVX2-NEXT: vpblendd {{.*#+}} ymm3 = ymm14[0,1],ymm0[2],ymm14[3,4],ymm0[5],ymm14[6,7]4226; AVX2-NEXT: vpshuflw {{.*#+}} xmm0 = xmm3[2,2,2,2,4,5,6,7]4227; AVX2-NEXT: vextracti128 $1, %ymm3, %xmm54228; AVX2-NEXT: vpblendw {{.*#+}} xmm0 = xmm5[0,1,2],xmm0[3,4],xmm5[5,6,7]4229; AVX2-NEXT: vpshufb %xmm6, %xmm0, %xmm64230; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload4231; AVX2-NEXT: vpblendd $146, (%rsp), %ymm0, %ymm0 # 32-byte Folded Reload4232; AVX2-NEXT: # ymm0 = ymm0[0],mem[1],ymm0[2,3],mem[4],ymm0[5,6],mem[7]4233; AVX2-NEXT: vpshufb %xmm7, %xmm0, %xmm74234; AVX2-NEXT: vextracti128 $1, %ymm0, %xmm44235; AVX2-NEXT: vpshufd {{.*#+}} xmm10 = xmm4[0,2,0,3]4236; AVX2-NEXT: vpshufhw {{.*#+}} xmm10 = xmm10[0,1,2,3,4,6,6,7]4237; AVX2-NEXT: vpblendw {{.*#+}} xmm7 = xmm7[0,1],xmm10[2],xmm7[3],xmm10[4,5],xmm7[6,7]4238; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload4239; AVX2-NEXT: vpblendd $189, {{[-0-9]+}}(%r{{[sb]}}p), %ymm10, %ymm10 # 32-byte Folded Reload4240; AVX2-NEXT: # ymm10 = mem[0],ymm10[1],mem[2,3,4,5],ymm10[6],mem[7]4241; AVX2-NEXT: vpshufb %ymm15, %ymm10, %ymm154242; AVX2-NEXT: vpblendd {{.*#+}} ymm7 = ymm7[0,1,2],ymm15[3,4,5,6,7]4243; AVX2-NEXT: vinserti128 $1, %xmm6, %ymm0, %ymm64244; AVX2-NEXT: vpblendw {{.*#+}} ymm6 = ymm7[0,1,2],ymm6[3,4,5,6,7],ymm7[8,9,10],ymm6[11,12,13,14,15]4245; AVX2-NEXT: vpblendd {{.*#+}} ymm6 = ymm7[0,1,2,3],ymm6[4,5,6,7]4246; AVX2-NEXT: vmovdqu %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4247; AVX2-NEXT: vpshufd {{.*#+}} xmm6 = xmm9[2,1,0,3]4248; AVX2-NEXT: vpshuflw {{.*#+}} xmm6 = xmm6[1,1,1,1,4,5,6,7]4249; AVX2-NEXT: vpshuflw {{.*#+}} xmm2 = xmm2[3,1,2,3,4,5,6,7]4250; AVX2-NEXT: vpshufd {{.*#+}} xmm2 = xmm2[0,3,2,3]4251; AVX2-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0,1],xmm6[2],xmm2[3,4],xmm6[5],xmm2[6],xmm6[7]4252; AVX2-NEXT: vmovdqa {{.*#+}} ymm6 = [u,u,u,u,u,u,u,u,u,u,u,u,10,11,6,7,18,19,30,31,26,27,26,27,30,31,26,27,26,27,22,23]4253; AVX2-NEXT: vpshufb %ymm6, %ymm12, %ymm74254; AVX2-NEXT: vpshuflw {{.*#+}} xmm2 = xmm2[1,3,2,0,4,5,6,7]4255; AVX2-NEXT: vpshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,5,7,6,7]4256; AVX2-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2],ymm7[3,4,5,6,7]4257; AVX2-NEXT: vmovdqa {{.*#+}} xmm7 = [6,7,2,3,4,5,u,u,2,3,14,15,u,u,6,7]4258; AVX2-NEXT: vpshufb %xmm7, %xmm8, %xmm84259; AVX2-NEXT: vpshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,5,5,5,5]4260; AVX2-NEXT: vpblendw {{.*#+}} xmm1 = xmm8[0,1,2],xmm1[3],xmm8[4,5],xmm1[6],xmm8[7]4261; AVX2-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm14262; AVX2-NEXT: vpblendw {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3,4,5,6,7],ymm2[8,9,10],ymm1[11,12,13,14,15]4263; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]4264; AVX2-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4265; AVX2-NEXT: vpshufb %xmm7, %xmm5, %xmm14266; AVX2-NEXT: vpshufhw {{.*#+}} xmm2 = xmm3[0,1,2,3,5,5,5,5]4267; AVX2-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1,2],xmm2[3],xmm1[4,5],xmm2[6],xmm1[7]4268; AVX2-NEXT: vpshufb %ymm6, %ymm10, %ymm24269; AVX2-NEXT: vpshufd {{.*#+}} xmm3 = xmm4[2,1,0,3]4270; AVX2-NEXT: vpshuflw {{.*#+}} xmm3 = xmm3[1,1,1,1,4,5,6,7]4271; AVX2-NEXT: vpshuflw {{.*#+}} xmm0 = xmm0[3,1,2,3,4,5,6,7]4272; AVX2-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[0,3,2,3]4273; AVX2-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1],xmm3[2],xmm0[3,4],xmm3[5],xmm0[6],xmm3[7]4274; AVX2-NEXT: vpshuflw {{.*#+}} xmm0 = xmm0[1,3,2,0,4,5,6,7]4275; AVX2-NEXT: vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,5,7,6,7]4276; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2],ymm2[3,4,5,6,7]4277; AVX2-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm14278; AVX2-NEXT: vpblendw {{.*#+}} ymm1 = ymm0[0,1,2],ymm1[3,4,5,6,7],ymm0[8,9,10],ymm1[11,12,13,14,15]4279; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]4280; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4281; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload4282; AVX2-NEXT: vpblendd $107, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm8 # 32-byte Folded Reload4283; AVX2-NEXT: # ymm8 = mem[0,1],ymm0[2],mem[3],ymm0[4],mem[5,6],ymm0[7]4284; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm11[0,1],ymm13[2],ymm11[3,4],ymm13[5],ymm11[6,7]4285; AVX2-NEXT: vextracti128 $1, %ymm0, %xmm14286; AVX2-NEXT: vpshufd {{.*#+}} xmm7 = xmm1[0,1,2,1]4287; AVX2-NEXT: vpshufd {{.*#+}} xmm6 = xmm0[2,1,0,3]4288; AVX2-NEXT: vpshuflw {{.*#+}} xmm0 = xmm6[0,0,0,0,4,5,6,7]4289; AVX2-NEXT: vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,4,6,7]4290; AVX2-NEXT: vpshufhw {{.*#+}} xmm1 = xmm7[0,1,2,3,6,5,6,4]4291; AVX2-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2,3],xmm1[4],xmm0[5,6],xmm1[7]4292; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload4293; AVX2-NEXT: vpblendd $219, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload4294; AVX2-NEXT: # ymm1 = mem[0,1],ymm1[2],mem[3,4],ymm1[5],mem[6,7]4295; AVX2-NEXT: vpshufd {{.*#+}} xmm10 = xmm1[2,1,2,3]4296; AVX2-NEXT: vextracti128 $1, %ymm1, %xmm14297; AVX2-NEXT: vpshufd {{.*#+}} xmm5 = xmm1[0,3,2,1]4298; AVX2-NEXT: vpshuflw {{.*#+}} xmm1 = xmm5[0,0,2,3,4,5,6,7]4299; AVX2-NEXT: vpshufd {{.*#+}} xmm1 = xmm1[0,1,3,3]4300; AVX2-NEXT: vpshuflw {{.*#+}} xmm2 = xmm10[2,1,2,0,4,5,6,7]4301; AVX2-NEXT: vpblendw {{.*#+}} xmm1 = xmm2[0],xmm1[1,2],xmm2[3],xmm1[4,5,6,7]4302; AVX2-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm04303; AVX2-NEXT: vmovdqa {{.*#+}} ymm11 = [4,5,0,1,12,13,14,15,8,9,12,13,0,1,u,u,20,21,16,17,28,29,30,31,24,25,28,29,16,17,u,u]4304; AVX2-NEXT: vpshufb %ymm11, %ymm8, %ymm24305; AVX2-NEXT: vpblendw {{.*#+}} ymm0 = ymm2[0,1,2],ymm0[3,4,5,6,7],ymm2[8,9,10],ymm0[11,12,13,14,15]4306; AVX2-NEXT: vpshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,6,5,4]4307; AVX2-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1,2,3,4],xmm2[5,6,7]4308; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]4309; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4310; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm13 # 32-byte Reload4311; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm13[0,1],ymm14[2],ymm13[3,4],ymm14[5],ymm13[6,7]4312; AVX2-NEXT: vextracti128 $1, %ymm0, %xmm14313; AVX2-NEXT: vpshufd {{.*#+}} xmm3 = xmm1[0,1,2,1]4314; AVX2-NEXT: vpshufd {{.*#+}} xmm4 = xmm0[2,1,0,3]4315; AVX2-NEXT: vpshuflw {{.*#+}} xmm0 = xmm4[0,0,0,0,4,5,6,7]4316; AVX2-NEXT: vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,4,6,7]4317; AVX2-NEXT: vpshufhw {{.*#+}} xmm1 = xmm3[0,1,2,3,6,5,6,4]4318; AVX2-NEXT: vpblendw {{.*#+}} xmm9 = xmm0[0,1,2,3],xmm1[4],xmm0[5,6],xmm1[7]4319; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload4320; AVX2-NEXT: vpblendd $107, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm2 # 32-byte Folded Reload4321; AVX2-NEXT: # ymm2 = mem[0,1],ymm0[2],mem[3],ymm0[4],mem[5,6],ymm0[7]4322; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload4323; AVX2-NEXT: vpblendd $36, (%rsp), %ymm0, %ymm0 # 32-byte Folded Reload4324; AVX2-NEXT: # ymm0 = ymm0[0,1],mem[2],ymm0[3,4],mem[5],ymm0[6,7]4325; AVX2-NEXT: vpshufd {{.*#+}} xmm1 = xmm0[2,1,2,3]4326; AVX2-NEXT: vextracti128 $1, %ymm0, %xmm04327; AVX2-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[0,3,2,1]4328; AVX2-NEXT: vpshuflw {{.*#+}} xmm15 = xmm0[0,0,2,3,4,5,6,7]4329; AVX2-NEXT: vpshufd {{.*#+}} xmm15 = xmm15[0,1,3,3]4330; AVX2-NEXT: vpshuflw {{.*#+}} xmm12 = xmm1[2,1,2,0,4,5,6,7]4331; AVX2-NEXT: vpblendw {{.*#+}} xmm12 = xmm12[0],xmm15[1,2],xmm12[3],xmm15[4,5,6,7]4332; AVX2-NEXT: vinserti128 $1, %xmm9, %ymm0, %ymm94333; AVX2-NEXT: vpshufb %ymm11, %ymm2, %ymm114334; AVX2-NEXT: vpblendw {{.*#+}} ymm9 = ymm11[0,1,2],ymm9[3,4,5,6,7],ymm11[8,9,10],ymm9[11,12,13,14,15]4335; AVX2-NEXT: vpshufhw {{.*#+}} xmm11 = xmm11[0,1,2,3,4,6,5,4]4336; AVX2-NEXT: vpblendw {{.*#+}} xmm11 = xmm12[0,1,2,3,4],xmm11[5,6,7]4337; AVX2-NEXT: vpblendd {{.*#+}} ymm9 = ymm11[0,1,2,3],ymm9[4,5,6,7]4338; AVX2-NEXT: vpshufhw {{.*#+}} xmm7 = xmm7[0,1,2,3,7,5,6,5]4339; AVX2-NEXT: vpshuflw {{.*#+}} xmm6 = xmm6[1,1,1,1,4,5,6,7]4340; AVX2-NEXT: vpshufhw {{.*#+}} xmm6 = xmm6[0,1,2,3,4,5,7,7]4341; AVX2-NEXT: vpblendw {{.*#+}} xmm6 = xmm6[0,1,2,3],xmm7[4],xmm6[5,6],xmm7[7]4342; AVX2-NEXT: vpshuflw {{.*#+}} xmm7 = xmm10[3,1,2,1,4,5,6,7]4343; AVX2-NEXT: vpshuflw {{.*#+}} xmm5 = xmm5[0,1,3,3,4,5,6,7]4344; AVX2-NEXT: vpshufhw {{.*#+}} xmm5 = xmm5[0,1,2,3,7,7,7,7]4345; AVX2-NEXT: vpblendw {{.*#+}} xmm5 = xmm7[0],xmm5[1,2],xmm7[3],xmm5[4,5,6,7]4346; AVX2-NEXT: vmovdqa {{.*#+}} ymm7 = [6,7,2,3,14,15,14,15,14,15,10,11,u,u,2,3,22,23,18,19,30,31,30,31,30,31,26,27,u,u,18,19]4347; AVX2-NEXT: vpshufb %ymm7, %ymm8, %ymm84348; AVX2-NEXT: vinserti128 $1, %xmm6, %ymm0, %ymm64349; AVX2-NEXT: vpblendw {{.*#+}} ymm6 = ymm8[0,1,2],ymm6[3,4,5,6,7],ymm8[8,9,10],ymm6[11,12,13,14,15]4350; AVX2-NEXT: vpshufd {{.*#+}} xmm8 = xmm8[0,1,3,2]4351; AVX2-NEXT: vpblendw {{.*#+}} xmm5 = xmm5[0,1,2,3,4],xmm8[5,6,7]4352; AVX2-NEXT: vpblendd {{.*#+}} ymm5 = ymm5[0,1,2,3],ymm6[4,5,6,7]4353; AVX2-NEXT: vpshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,7,5,6,5]4354; AVX2-NEXT: vpshuflw {{.*#+}} xmm4 = xmm4[1,1,1,1,4,5,6,7]4355; AVX2-NEXT: vpshufhw {{.*#+}} xmm4 = xmm4[0,1,2,3,4,5,7,7]4356; AVX2-NEXT: vpblendw {{.*#+}} xmm3 = xmm4[0,1,2,3],xmm3[4],xmm4[5,6],xmm3[7]4357; AVX2-NEXT: vpshufb %ymm7, %ymm2, %ymm24358; AVX2-NEXT: vpshuflw {{.*#+}} xmm1 = xmm1[3,1,2,1,4,5,6,7]4359; AVX2-NEXT: vpshuflw {{.*#+}} xmm0 = xmm0[0,1,3,3,4,5,6,7]4360; AVX2-NEXT: vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,7,7,7,7]4361; AVX2-NEXT: vpblendw {{.*#+}} xmm0 = xmm1[0],xmm0[1,2],xmm1[3],xmm0[4,5,6,7]4362; AVX2-NEXT: vinserti128 $1, %xmm3, %ymm0, %ymm14363; AVX2-NEXT: vpblendw {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3,4,5,6,7],ymm2[8,9,10],ymm1[11,12,13,14,15]4364; AVX2-NEXT: vpshufd {{.*#+}} xmm2 = xmm2[0,1,3,2]4365; AVX2-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2,3,4],xmm2[5,6,7]4366; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]4367; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm14[0],ymm13[1],ymm14[2,3],ymm13[4],ymm14[5,6],ymm13[7]4368; AVX2-NEXT: vextracti128 $1, %ymm1, %xmm24369; AVX2-NEXT: vpshufd {{.*#+}} xmm1 = xmm1[0,3,2,1]4370; AVX2-NEXT: vpshuflw {{.*#+}} xmm3 = xmm1[0,1,0,2,4,5,6,7]4371; AVX2-NEXT: vpshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,6,6,6,6]4372; AVX2-NEXT: vpbroadcastq {{.*#+}} xmm4 = [8,9,0,0,0,1,12,13,8,9,0,0,0,1,12,13]4373; AVX2-NEXT: vpshufb %xmm4, %xmm2, %xmm64374; AVX2-NEXT: vpblendw {{.*#+}} xmm3 = xmm3[0,1,2,3],xmm6[4],xmm3[5],xmm6[6,7]4375; AVX2-NEXT: vinserti128 $1, %xmm3, %ymm0, %ymm34376; AVX2-NEXT: vpblendd $31, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm3 # 32-byte Folded Reload4377; AVX2-NEXT: # ymm3 = mem[0,1,2,3,4],ymm3[5,6,7]4378; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload4379; AVX2-NEXT: vpblendd $146, {{[-0-9]+}}(%r{{[sb]}}p), %ymm6, %ymm6 # 32-byte Folded Reload4380; AVX2-NEXT: # ymm6 = ymm6[0],mem[1],ymm6[2,3],mem[4],ymm6[5,6],mem[7]4381; AVX2-NEXT: vextracti128 $1, %ymm6, %xmm74382; AVX2-NEXT: vpshufb %xmm4, %xmm7, %xmm44383; AVX2-NEXT: vpshufd {{.*#+}} xmm6 = xmm6[0,3,2,1]4384; AVX2-NEXT: vpshuflw {{.*#+}} xmm8 = xmm6[0,1,0,2,4,5,6,7]4385; AVX2-NEXT: vpshufhw {{.*#+}} xmm8 = xmm8[0,1,2,3,6,6,6,6]4386; AVX2-NEXT: vpblendw {{.*#+}} xmm4 = xmm8[0,1,2,3],xmm4[4],xmm8[5],xmm4[6,7]4387; AVX2-NEXT: vinserti128 $1, %xmm4, %ymm0, %ymm44388; AVX2-NEXT: vpblendd $31, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm4 # 32-byte Folded Reload4389; AVX2-NEXT: # ymm4 = mem[0,1,2,3,4],ymm4[5,6,7]4390; AVX2-NEXT: vpbroadcastq {{.*#+}} xmm8 = [10,11,0,0,2,3,14,15,10,11,0,0,2,3,14,15]4391; AVX2-NEXT: vpshufb %xmm8, %xmm2, %xmm24392; AVX2-NEXT: vpshuflw {{.*#+}} xmm1 = xmm1[0,1,1,3,4,5,6,7]4393; AVX2-NEXT: vpshufd {{.*#+}} xmm1 = xmm1[0,1,3,3]4394; AVX2-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1,2,3],xmm2[4],xmm1[5],xmm2[6,7]4395; AVX2-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm14396; AVX2-NEXT: vpblendd $31, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload4397; AVX2-NEXT: # ymm1 = mem[0,1,2,3,4],ymm1[5,6,7]4398; AVX2-NEXT: vpshufb %xmm8, %xmm7, %xmm24399; AVX2-NEXT: vpshuflw {{.*#+}} xmm6 = xmm6[0,1,1,3,4,5,6,7]4400; AVX2-NEXT: vpshufd {{.*#+}} xmm6 = xmm6[0,1,3,3]4401; AVX2-NEXT: vpblendw {{.*#+}} xmm2 = xmm6[0,1,2,3],xmm2[4],xmm6[5],xmm2[6,7]4402; AVX2-NEXT: vinserti128 $1, %xmm2, %ymm0, %ymm24403; AVX2-NEXT: vpblendd $31, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload4404; AVX2-NEXT: # ymm2 = mem[0,1,2,3,4],ymm2[5,6,7]4405; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload4406; AVX2-NEXT: vmovaps %ymm6, 32(%rsi)4407; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload4408; AVX2-NEXT: vmovaps %ymm6, (%rsi)4409; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload4410; AVX2-NEXT: vmovaps %ymm6, 32(%rdx)4411; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload4412; AVX2-NEXT: vmovaps %ymm6, (%rdx)4413; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload4414; AVX2-NEXT: vmovaps %ymm6, 32(%rcx)4415; AVX2-NEXT: vmovdqa %ymm9, (%rcx)4416; AVX2-NEXT: vmovdqa %ymm5, 32(%r8)4417; AVX2-NEXT: vmovdqa %ymm0, (%r8)4418; AVX2-NEXT: vmovdqa %ymm4, 32(%r9)4419; AVX2-NEXT: vmovdqa %ymm3, (%r9)4420; AVX2-NEXT: movq {{[0-9]+}}(%rsp), %rax4421; AVX2-NEXT: vmovdqa %ymm2, 32(%rax)4422; AVX2-NEXT: vmovdqa %ymm1, (%rax)4423; AVX2-NEXT: addq $488, %rsp # imm = 0x1E84424; AVX2-NEXT: vzeroupper4425; AVX2-NEXT: retq4426;4427; AVX2-FP-LABEL: load_i16_stride6_vf32:4428; AVX2-FP: # %bb.0:4429; AVX2-FP-NEXT: subq $456, %rsp # imm = 0x1C84430; AVX2-FP-NEXT: vmovdqa (%rdi), %ymm54431; AVX2-FP-NEXT: vmovdqu %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4432; AVX2-FP-NEXT: vmovdqa 32(%rdi), %ymm74433; AVX2-FP-NEXT: vmovdqu %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4434; AVX2-FP-NEXT: vmovdqa 64(%rdi), %ymm04435; AVX2-FP-NEXT: vmovdqa 96(%rdi), %ymm14436; AVX2-FP-NEXT: vmovdqa 224(%rdi), %ymm94437; AVX2-FP-NEXT: vmovdqa 192(%rdi), %ymm104438; AVX2-FP-NEXT: vmovdqa 288(%rdi), %ymm24439; AVX2-FP-NEXT: vmovdqa 256(%rdi), %ymm34440; AVX2-FP-NEXT: vperm2i128 {{.*#+}} ymm12 = ymm3[2,3],ymm2[2,3]4441; AVX2-FP-NEXT: vperm2i128 {{.*#+}} ymm14 = ymm3[0,1],ymm2[0,1]4442; AVX2-FP-NEXT: vperm2i128 {{.*#+}} ymm2 = ymm0[2,3],ymm1[2,3]4443; AVX2-FP-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4444; AVX2-FP-NEXT: vperm2i128 {{.*#+}} ymm0 = ymm0[0,1],ymm1[0,1]4445; AVX2-FP-NEXT: vmovdqu %ymm0, (%rsp) # 32-byte Spill4446; AVX2-FP-NEXT: vmovdqa {{.*#+}} ymm4 = [8,9,4,5,4,5,6,7,0,1,4,5,0,1,12,13,24,25,20,21,20,21,22,23,16,17,20,21,16,17,28,29]4447; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0],ymm0[1],ymm2[2,3,4,5],ymm0[6],ymm2[7]4448; AVX2-FP-NEXT: vpshufb %ymm4, %ymm1, %ymm64449; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm2 = ymm7[0,1],ymm5[2],ymm7[3,4],ymm5[5],ymm7[6,7]4450; AVX2-FP-NEXT: vmovdqa {{.*#+}} xmm7 = [8,9,u,u,0,1,12,13,u,u,12,13,12,13,14,15]4451; AVX2-FP-NEXT: vpshufb %xmm7, %xmm2, %xmm04452; AVX2-FP-NEXT: vextracti128 $1, %ymm2, %xmm34453; AVX2-FP-NEXT: vpshuflw {{.*#+}} xmm8 = xmm3[2,2,2,2,4,5,6,7]4454; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm8 = xmm0[0],xmm8[1],xmm0[2,3],xmm8[4],xmm0[5,6,7]4455; AVX2-FP-NEXT: vpmovsxbw {{.*#+}} xmm0 = [65535,65535,65535,65535,65535,0,0,0]4456; AVX2-FP-NEXT: vpblendvb %ymm0, %ymm8, %ymm6, %ymm54457; AVX2-FP-NEXT: vmovdqu %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4458; AVX2-FP-NEXT: vmovdqu %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4459; AVX2-FP-NEXT: vmovdqu %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4460; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm6 = ymm9[0,1],ymm10[2],ymm9[3,4],ymm10[5],ymm9[6,7]4461; AVX2-FP-NEXT: vpshufb %xmm7, %xmm6, %xmm74462; AVX2-FP-NEXT: vextracti128 $1, %ymm6, %xmm84463; AVX2-FP-NEXT: vpshuflw {{.*#+}} xmm11 = xmm8[2,2,2,2,4,5,6,7]4464; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm7 = xmm7[0],xmm11[1],xmm7[2,3],xmm11[4],xmm7[5,6,7]4465; AVX2-FP-NEXT: vmovdqu %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4466; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm11 = ymm12[0],ymm14[1],ymm12[2,3,4,5],ymm14[6],ymm12[7]4467; AVX2-FP-NEXT: vpshufb %ymm4, %ymm11, %ymm44468; AVX2-FP-NEXT: vpblendvb %ymm0, %ymm7, %ymm4, %ymm44469; AVX2-FP-NEXT: vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4470; AVX2-FP-NEXT: vmovdqa {{.*#+}} xmm4 = [10,11,6,7,2,3,14,15,10,11,10,11,12,13,14,15]4471; AVX2-FP-NEXT: vpshufb %xmm4, %xmm3, %xmm34472; AVX2-FP-NEXT: vpshufb %xmm4, %xmm2, %xmm24473; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0],xmm3[1],xmm2[2,3],xmm3[4],xmm2[5,6,7]4474; AVX2-FP-NEXT: vmovdqa {{.*#+}} ymm3 = [10,11,6,7,4,5,6,7,6,7,6,7,2,3,14,15,26,27,22,23,20,21,22,23,22,23,22,23,18,19,30,31]4475; AVX2-FP-NEXT: vpshufb %ymm3, %ymm1, %ymm14476; AVX2-FP-NEXT: vpblendvb %ymm0, %ymm2, %ymm1, %ymm14477; AVX2-FP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4478; AVX2-FP-NEXT: vpshufb %ymm3, %ymm11, %ymm14479; AVX2-FP-NEXT: vpshufb %xmm4, %xmm8, %xmm34480; AVX2-FP-NEXT: vpshufb %xmm4, %xmm6, %xmm44481; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm5 = ymm10[0],ymm9[1],ymm10[2,3],ymm9[4],ymm10[5,6],ymm9[7]4482; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm3 = xmm4[0],xmm3[1],xmm4[2,3],xmm3[4],xmm4[5,6,7]4483; AVX2-FP-NEXT: vmovdqa {{.*#+}} xmm15 = [0,1,12,13,0,1,4,5,8,9,12,13,12,13,14,15]4484; AVX2-FP-NEXT: vpblendvb %ymm0, %ymm3, %ymm1, %ymm04485; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4486; AVX2-FP-NEXT: vpshufb %xmm15, %xmm5, %xmm04487; AVX2-FP-NEXT: vextracti128 $1, %ymm5, %xmm14488; AVX2-FP-NEXT: vpshufd {{.*#+}} xmm11 = xmm1[2,1,0,3]4489; AVX2-FP-NEXT: vpshufb %xmm15, %xmm11, %xmm14490; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1],xmm1[2],xmm0[3],xmm1[4,5],xmm0[6,7]4491; AVX2-FP-NEXT: vmovdqa {{.*#+}} ymm13 = [u,u,u,u,u,u,u,u,u,u,u,u,8,9,4,5,16,17,28,29,24,25,28,29,24,25,28,29,24,25,20,21]4492; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm10 = ymm14[0],ymm12[1],ymm14[2,3,4,5],ymm12[6],ymm14[7]4493; AVX2-FP-NEXT: vpshufb %ymm13, %ymm10, %ymm14494; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4,5,6,7]4495; AVX2-FP-NEXT: vmovdqa 352(%rdi), %ymm14496; AVX2-FP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4497; AVX2-FP-NEXT: vmovdqa 320(%rdi), %ymm24498; AVX2-FP-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4499; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm7 = ymm2[0,1],ymm1[2],ymm2[3,4],ymm1[5],ymm2[6,7]4500; AVX2-FP-NEXT: vmovdqa {{.*#+}} xmm2 = [0,1,4,5,4,5,4,5,0,1,12,13,8,9,4,5]4501; AVX2-FP-NEXT: vpshufb %xmm2, %xmm7, %xmm64502; AVX2-FP-NEXT: vextracti128 $1, %ymm7, %xmm94503; AVX2-FP-NEXT: vpshufb %xmm2, %xmm9, %xmm84504; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm6 = xmm8[0,1,2],xmm6[3],xmm8[4,5],xmm6[6],xmm8[7]4505; AVX2-FP-NEXT: vinserti128 $1, %xmm6, %ymm0, %ymm64506; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm6 = ymm0[0,1,2],ymm6[3,4,5,6,7],ymm0[8,9,10],ymm6[11,12,13,14,15]4507; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm6[4,5,6,7]4508; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4509; AVX2-FP-NEXT: vmovdqa 160(%rdi), %ymm04510; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4511; AVX2-FP-NEXT: vmovdqa 128(%rdi), %ymm84512; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm8[0,1],ymm0[2],ymm8[3,4],ymm0[5],ymm8[6,7]4513; AVX2-FP-NEXT: vpshufb %xmm2, %xmm1, %xmm04514; AVX2-FP-NEXT: vextracti128 $1, %ymm1, %xmm44515; AVX2-FP-NEXT: vpshufb %xmm2, %xmm4, %xmm24516; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm3 = xmm2[0,1,2],xmm0[3],xmm2[4,5],xmm0[6],xmm2[7]4517; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload4518; AVX2-FP-NEXT: vpblendd $146, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm2 # 32-byte Folded Reload4519; AVX2-FP-NEXT: # ymm2 = ymm0[0],mem[1],ymm0[2,3],mem[4],ymm0[5,6],mem[7]4520; AVX2-FP-NEXT: vextracti128 $1, %ymm2, %xmm124521; AVX2-FP-NEXT: vpshufd {{.*#+}} xmm12 = xmm12[2,1,0,3]4522; AVX2-FP-NEXT: vpshufb %xmm15, %xmm2, %xmm04523; AVX2-FP-NEXT: vpshufb %xmm15, %xmm12, %xmm154524; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1],xmm15[2],xmm0[3],xmm15[4,5],xmm0[6,7]4525; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload4526; AVX2-FP-NEXT: vpblendd $189, (%rsp), %ymm6, %ymm15 # 32-byte Folded Reload4527; AVX2-FP-NEXT: # ymm15 = mem[0],ymm6[1],mem[2,3,4,5],ymm6[6],mem[7]4528; AVX2-FP-NEXT: vpshufb %ymm13, %ymm15, %ymm134529; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2],ymm13[3,4,5,6,7]4530; AVX2-FP-NEXT: vinserti128 $1, %xmm3, %ymm0, %ymm34531; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm3 = ymm0[0,1,2],ymm3[3,4,5,6,7],ymm0[8,9,10],ymm3[11,12,13,14,15]4532; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm3[4,5,6,7]4533; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4534; AVX2-FP-NEXT: vpbroadcastq {{.*#+}} xmm6 = [6,7,2,3,12,13,14,15,6,7,2,3,12,13,14,15]4535; AVX2-FP-NEXT: vpshufb %xmm6, %xmm5, %xmm34536; AVX2-FP-NEXT: vpshuflw {{.*#+}} xmm5 = xmm11[1,1,1,1,4,5,6,7]4537; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm3 = xmm3[0,1],xmm5[2],xmm3[3,4],xmm5[5],xmm3[6],xmm5[7]4538; AVX2-FP-NEXT: vmovdqa {{.*#+}} ymm5 = [u,u,u,u,u,u,u,u,u,u,u,u,10,11,6,7,18,19,30,31,26,27,26,27,30,31,26,27,26,27,22,23]4539; AVX2-FP-NEXT: vpshufb %ymm5, %ymm10, %ymm104540; AVX2-FP-NEXT: vmovdqa {{.*#+}} xmm0 = [2,3,6,7,4,5,0,1,10,11,14,15,12,13,14,15]4541; AVX2-FP-NEXT: vpshufb %xmm0, %xmm3, %xmm34542; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm3 = ymm3[0,1,2],ymm10[3,4,5,6,7]4543; AVX2-FP-NEXT: vmovdqa {{.*#+}} xmm10 = [6,7,2,3,4,5,u,u,2,3,14,15,u,u,6,7]4544; AVX2-FP-NEXT: vpshufb %xmm10, %xmm9, %xmm94545; AVX2-FP-NEXT: vpshufhw {{.*#+}} xmm7 = xmm7[0,1,2,3,5,5,5,5]4546; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm7 = xmm9[0,1,2],xmm7[3],xmm9[4,5],xmm7[6],xmm9[7]4547; AVX2-FP-NEXT: vinserti128 $1, %xmm7, %ymm0, %ymm74548; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm7 = ymm3[0,1,2],ymm7[3,4,5,6,7],ymm3[8,9,10],ymm7[11,12,13,14,15]4549; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm7[4,5,6,7]4550; AVX2-FP-NEXT: vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4551; AVX2-FP-NEXT: vpshufb %xmm10, %xmm4, %xmm34552; AVX2-FP-NEXT: vpshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,5,5,5,5]4553; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm1 = xmm3[0,1,2],xmm1[3],xmm3[4,5],xmm1[6],xmm3[7]4554; AVX2-FP-NEXT: vpshufb %ymm5, %ymm15, %ymm34555; AVX2-FP-NEXT: vpshufb %xmm6, %xmm2, %xmm24556; AVX2-FP-NEXT: vpshuflw {{.*#+}} xmm4 = xmm12[1,1,1,1,4,5,6,7]4557; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0,1],xmm4[2],xmm2[3,4],xmm4[5],xmm2[6],xmm4[7]4558; AVX2-FP-NEXT: vpshufb %xmm0, %xmm2, %xmm04559; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2],ymm3[3,4,5,6,7]4560; AVX2-FP-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm14561; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm1 = ymm0[0,1,2],ymm1[3,4,5,6,7],ymm0[8,9,10],ymm1[11,12,13,14,15]4562; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]4563; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4564; AVX2-FP-NEXT: vpblendd $148, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm14 # 32-byte Folded Reload4565; AVX2-FP-NEXT: # ymm14 = ymm14[0,1],mem[2],ymm14[3],mem[4],ymm14[5,6],mem[7]4566; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload4567; AVX2-FP-NEXT: vpblendd $219, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload4568; AVX2-FP-NEXT: # ymm0 = mem[0,1],ymm0[2],mem[3,4],ymm0[5],mem[6,7]4569; AVX2-FP-NEXT: vpshufd {{.*#+}} xmm5 = xmm0[2,1,0,3]4570; AVX2-FP-NEXT: vextracti128 $1, %ymm0, %xmm04571; AVX2-FP-NEXT: vpshufd {{.*#+}} xmm4 = xmm0[0,1,2,1]4572; AVX2-FP-NEXT: vmovdqa {{.*#+}} xmm0 = [0,1,0,1,0,1,0,1,u,u,8,9,12,13,u,u]4573; AVX2-FP-NEXT: vpshufb %xmm0, %xmm5, %xmm14574; AVX2-FP-NEXT: vpshufhw {{.*#+}} xmm3 = xmm4[0,1,2,3,6,5,6,4]4575; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm3 = xmm1[0,1,2,3],xmm3[4],xmm1[5,6],xmm3[7]4576; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload4577; AVX2-FP-NEXT: vpblendd $219, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload4578; AVX2-FP-NEXT: # ymm1 = mem[0,1],ymm1[2],mem[3,4],ymm1[5],mem[6,7]4579; AVX2-FP-NEXT: vextracti128 $1, %ymm1, %xmm64580; AVX2-FP-NEXT: vpshufd {{.*#+}} xmm10 = xmm6[0,3,2,1]4581; AVX2-FP-NEXT: vpshufd {{.*#+}} xmm2 = xmm1[2,1,2,3]4582; AVX2-FP-NEXT: vpbroadcastq {{.*#+}} xmm6 = [12,13,0,1,4,5,0,0,12,13,0,1,4,5,0,0]4583; AVX2-FP-NEXT: vpshufb %xmm6, %xmm10, %xmm94584; AVX2-FP-NEXT: vpshuflw {{.*#+}} xmm12 = xmm2[2,1,2,0,4,5,6,7]4585; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm9 = xmm12[0],xmm9[1,2],xmm12[3],xmm9[4,5,6,7]4586; AVX2-FP-NEXT: vinserti128 $1, %xmm3, %ymm0, %ymm34587; AVX2-FP-NEXT: vmovdqa {{.*#+}} ymm15 = [4,5,0,1,12,13,14,15,8,9,12,13,0,1,u,u,20,21,16,17,28,29,30,31,24,25,28,29,16,17,u,u]4588; AVX2-FP-NEXT: vpshufb %ymm15, %ymm14, %ymm124589; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm3 = ymm12[0,1,2],ymm3[3,4,5,6,7],ymm12[8,9,10],ymm3[11,12,13,14,15]4590; AVX2-FP-NEXT: vpshufhw {{.*#+}} xmm12 = xmm12[0,1,2,3,4,6,5,4]4591; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm9 = xmm9[0,1,2,3,4],xmm12[5,6,7]4592; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm9[0,1,2,3],ymm3[4,5,6,7]4593; AVX2-FP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4594; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload4595; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm9 = ymm7[0,1],ymm8[2],ymm7[3,4],ymm8[5],ymm7[6,7]4596; AVX2-FP-NEXT: vpshufd {{.*#+}} xmm12 = xmm9[2,1,0,3]4597; AVX2-FP-NEXT: vpshufb %xmm0, %xmm12, %xmm04598; AVX2-FP-NEXT: vextracti128 $1, %ymm9, %xmm94599; AVX2-FP-NEXT: vpshufd {{.*#+}} xmm9 = xmm9[0,1,2,1]4600; AVX2-FP-NEXT: vpshufhw {{.*#+}} xmm13 = xmm9[0,1,2,3,6,5,6,4]4601; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm1 = xmm0[0,1,2,3],xmm13[4],xmm0[5,6],xmm13[7]4602; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload4603; AVX2-FP-NEXT: vpblendd $107, (%rsp), %ymm0, %ymm13 # 32-byte Folded Reload4604; AVX2-FP-NEXT: # ymm13 = mem[0,1],ymm0[2],mem[3],ymm0[4],mem[5,6],ymm0[7]4605; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload4606; AVX2-FP-NEXT: vpblendd $36, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload4607; AVX2-FP-NEXT: # ymm0 = ymm0[0,1],mem[2],ymm0[3,4],mem[5],ymm0[6,7]4608; AVX2-FP-NEXT: vextracti128 $1, %ymm0, %xmm114609; AVX2-FP-NEXT: vpshufd {{.*#+}} xmm11 = xmm11[0,3,2,1]4610; AVX2-FP-NEXT: vpshufb %xmm6, %xmm11, %xmm64611; AVX2-FP-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[2,1,2,3]4612; AVX2-FP-NEXT: vpshuflw {{.*#+}} xmm3 = xmm0[2,1,2,0,4,5,6,7]4613; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm3 = xmm3[0],xmm6[1,2],xmm3[3],xmm6[4,5,6,7]4614; AVX2-FP-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm14615; AVX2-FP-NEXT: vpshufb %ymm15, %ymm13, %ymm64616; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm1 = ymm6[0,1,2],ymm1[3,4,5,6,7],ymm6[8,9,10],ymm1[11,12,13,14,15]4617; AVX2-FP-NEXT: vpshufhw {{.*#+}} xmm6 = xmm6[0,1,2,3,4,6,5,4]4618; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm3 = xmm3[0,1,2,3,4],xmm6[5,6,7]4619; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm6 = ymm3[0,1,2,3],ymm1[4,5,6,7]4620; AVX2-FP-NEXT: vmovdqa {{.*#+}} xmm1 = [2,3,2,3,2,3,2,3,u,u,10,11,14,15,u,u]4621; AVX2-FP-NEXT: vpshufb %xmm1, %xmm5, %xmm34622; AVX2-FP-NEXT: vpshufhw {{.*#+}} xmm4 = xmm4[0,1,2,3,7,5,6,5]4623; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm3 = xmm3[0,1,2,3],xmm4[4],xmm3[5,6],xmm4[7]4624; AVX2-FP-NEXT: vpbroadcastq {{.*#+}} xmm5 = [14,15,2,3,6,7,0,0,14,15,2,3,6,7,0,0]4625; AVX2-FP-NEXT: vpshufb %xmm5, %xmm10, %xmm44626; AVX2-FP-NEXT: vpshuflw {{.*#+}} xmm2 = xmm2[3,1,2,1,4,5,6,7]4627; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0],xmm4[1,2],xmm2[3],xmm4[4,5,6,7]4628; AVX2-FP-NEXT: vmovdqa {{.*#+}} ymm10 = [6,7,2,3,14,15,14,15,14,15,10,11,u,u,2,3,22,23,18,19,30,31,30,31,30,31,26,27,u,u,18,19]4629; AVX2-FP-NEXT: vpshufb %ymm10, %ymm14, %ymm44630; AVX2-FP-NEXT: vinserti128 $1, %xmm3, %ymm0, %ymm34631; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm3 = ymm4[0,1,2],ymm3[3,4,5,6,7],ymm4[8,9,10],ymm3[11,12,13,14,15]4632; AVX2-FP-NEXT: vpshufd {{.*#+}} xmm4 = xmm4[0,1,3,2]4633; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0,1,2,3,4],xmm4[5,6,7]4634; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm4 = ymm2[0,1,2,3],ymm3[4,5,6,7]4635; AVX2-FP-NEXT: vpshufb %xmm1, %xmm12, %xmm14636; AVX2-FP-NEXT: vpshufhw {{.*#+}} xmm2 = xmm9[0,1,2,3,7,5,6,5]4637; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1,2,3],xmm2[4],xmm1[5,6],xmm2[7]4638; AVX2-FP-NEXT: vpshufb %ymm10, %ymm13, %ymm24639; AVX2-FP-NEXT: vpshufb %xmm5, %xmm11, %xmm34640; AVX2-FP-NEXT: vpshuflw {{.*#+}} xmm0 = xmm0[3,1,2,1,4,5,6,7]4641; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0],xmm3[1,2],xmm0[3],xmm3[4,5,6,7]4642; AVX2-FP-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm14643; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3,4,5,6,7],ymm2[8,9,10],ymm1[11,12,13,14,15]4644; AVX2-FP-NEXT: vpshufd {{.*#+}} xmm2 = xmm2[0,1,3,2]4645; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2,3,4],xmm2[5,6,7]4646; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]4647; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm8[0],ymm7[1],ymm8[2,3],ymm7[4],ymm8[5,6],ymm7[7]4648; AVX2-FP-NEXT: vextracti128 $1, %ymm1, %xmm24649; AVX2-FP-NEXT: vpshufd {{.*#+}} xmm1 = xmm1[0,3,2,1]4650; AVX2-FP-NEXT: vmovdqa {{.*#+}} xmm3 = [0,1,2,3,0,1,4,5,8,9,12,13,0,1,12,13]4651; AVX2-FP-NEXT: vpshufb %xmm3, %xmm2, %xmm54652; AVX2-FP-NEXT: vpshufb %xmm3, %xmm1, %xmm74653; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm5 = xmm7[0,1,2,3],xmm5[4],xmm7[5],xmm5[6,7]4654; AVX2-FP-NEXT: vinserti128 $1, %xmm5, %ymm0, %ymm54655; AVX2-FP-NEXT: vpblendd $31, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5, %ymm5 # 32-byte Folded Reload4656; AVX2-FP-NEXT: # ymm5 = mem[0,1,2,3,4],ymm5[5,6,7]4657; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload4658; AVX2-FP-NEXT: vpblendd $146, {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm7 # 32-byte Folded Reload4659; AVX2-FP-NEXT: # ymm7 = ymm7[0],mem[1],ymm7[2,3],mem[4],ymm7[5,6],mem[7]4660; AVX2-FP-NEXT: vextracti128 $1, %ymm7, %xmm84661; AVX2-FP-NEXT: vpshufd {{.*#+}} xmm7 = xmm7[0,3,2,1]4662; AVX2-FP-NEXT: vpshufb %xmm3, %xmm8, %xmm94663; AVX2-FP-NEXT: vpshufb %xmm3, %xmm7, %xmm34664; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm3 = xmm3[0,1,2,3],xmm9[4],xmm3[5],xmm9[6,7]4665; AVX2-FP-NEXT: vinserti128 $1, %xmm3, %ymm0, %ymm34666; AVX2-FP-NEXT: vpblendd $31, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm3 # 32-byte Folded Reload4667; AVX2-FP-NEXT: # ymm3 = mem[0,1,2,3,4],ymm3[5,6,7]4668; AVX2-FP-NEXT: vmovdqa {{.*#+}} xmm9 = [0,1,2,3,2,3,6,7,10,11,14,15,2,3,14,15]4669; AVX2-FP-NEXT: vpshufb %xmm9, %xmm2, %xmm24670; AVX2-FP-NEXT: vpshufb %xmm9, %xmm1, %xmm14671; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1,2,3],xmm2[4],xmm1[5],xmm2[6,7]4672; AVX2-FP-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm14673; AVX2-FP-NEXT: vpblendd $31, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload4674; AVX2-FP-NEXT: # ymm1 = mem[0,1,2,3,4],ymm1[5,6,7]4675; AVX2-FP-NEXT: vpshufb %xmm9, %xmm8, %xmm24676; AVX2-FP-NEXT: vpshufb %xmm9, %xmm7, %xmm74677; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm2 = xmm7[0,1,2,3],xmm2[4],xmm7[5],xmm2[6,7]4678; AVX2-FP-NEXT: vinserti128 $1, %xmm2, %ymm0, %ymm24679; AVX2-FP-NEXT: vpblendd $31, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload4680; AVX2-FP-NEXT: # ymm2 = mem[0,1,2,3,4],ymm2[5,6,7]4681; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload4682; AVX2-FP-NEXT: vmovaps %ymm7, 32(%rsi)4683; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload4684; AVX2-FP-NEXT: vmovaps %ymm7, (%rsi)4685; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload4686; AVX2-FP-NEXT: vmovaps %ymm7, 32(%rdx)4687; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload4688; AVX2-FP-NEXT: vmovaps %ymm7, (%rdx)4689; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload4690; AVX2-FP-NEXT: vmovaps %ymm7, 32(%rcx)4691; AVX2-FP-NEXT: vmovdqa %ymm6, (%rcx)4692; AVX2-FP-NEXT: vmovdqa %ymm4, 32(%r8)4693; AVX2-FP-NEXT: vmovdqa %ymm0, (%r8)4694; AVX2-FP-NEXT: vmovdqa %ymm3, 32(%r9)4695; AVX2-FP-NEXT: vmovdqa %ymm5, (%r9)4696; AVX2-FP-NEXT: movq {{[0-9]+}}(%rsp), %rax4697; AVX2-FP-NEXT: vmovdqa %ymm2, 32(%rax)4698; AVX2-FP-NEXT: vmovdqa %ymm1, (%rax)4699; AVX2-FP-NEXT: addq $456, %rsp # imm = 0x1C84700; AVX2-FP-NEXT: vzeroupper4701; AVX2-FP-NEXT: retq4702;4703; AVX2-FCP-LABEL: load_i16_stride6_vf32:4704; AVX2-FCP: # %bb.0:4705; AVX2-FCP-NEXT: subq $456, %rsp # imm = 0x1C84706; AVX2-FCP-NEXT: vmovdqa (%rdi), %ymm54707; AVX2-FCP-NEXT: vmovdqu %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4708; AVX2-FCP-NEXT: vmovdqa 32(%rdi), %ymm74709; AVX2-FCP-NEXT: vmovdqu %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4710; AVX2-FCP-NEXT: vmovdqa 64(%rdi), %ymm04711; AVX2-FCP-NEXT: vmovdqa 96(%rdi), %ymm14712; AVX2-FCP-NEXT: vmovdqa 224(%rdi), %ymm94713; AVX2-FCP-NEXT: vmovdqa 192(%rdi), %ymm104714; AVX2-FCP-NEXT: vmovdqa 288(%rdi), %ymm24715; AVX2-FCP-NEXT: vmovdqa 256(%rdi), %ymm34716; AVX2-FCP-NEXT: vperm2i128 {{.*#+}} ymm12 = ymm3[2,3],ymm2[2,3]4717; AVX2-FCP-NEXT: vperm2i128 {{.*#+}} ymm14 = ymm3[0,1],ymm2[0,1]4718; AVX2-FCP-NEXT: vperm2i128 {{.*#+}} ymm2 = ymm0[2,3],ymm1[2,3]4719; AVX2-FCP-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4720; AVX2-FCP-NEXT: vperm2i128 {{.*#+}} ymm0 = ymm0[0,1],ymm1[0,1]4721; AVX2-FCP-NEXT: vmovdqu %ymm0, (%rsp) # 32-byte Spill4722; AVX2-FCP-NEXT: vmovdqa {{.*#+}} ymm4 = [8,9,4,5,4,5,6,7,0,1,4,5,0,1,12,13,24,25,20,21,20,21,22,23,16,17,20,21,16,17,28,29]4723; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0],ymm0[1],ymm2[2,3,4,5],ymm0[6],ymm2[7]4724; AVX2-FCP-NEXT: vpshufb %ymm4, %ymm1, %ymm64725; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm7[0,1],ymm5[2],ymm7[3,4],ymm5[5],ymm7[6,7]4726; AVX2-FCP-NEXT: vmovdqa {{.*#+}} xmm7 = [8,9,u,u,0,1,12,13,u,u,12,13,12,13,14,15]4727; AVX2-FCP-NEXT: vpshufb %xmm7, %xmm2, %xmm04728; AVX2-FCP-NEXT: vextracti128 $1, %ymm2, %xmm34729; AVX2-FCP-NEXT: vpshuflw {{.*#+}} xmm8 = xmm3[2,2,2,2,4,5,6,7]4730; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm8 = xmm0[0],xmm8[1],xmm0[2,3],xmm8[4],xmm0[5,6,7]4731; AVX2-FCP-NEXT: vpmovsxbw {{.*#+}} xmm0 = [65535,65535,65535,65535,65535,0,0,0]4732; AVX2-FCP-NEXT: vpblendvb %ymm0, %ymm8, %ymm6, %ymm54733; AVX2-FCP-NEXT: vmovdqu %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4734; AVX2-FCP-NEXT: vmovdqu %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4735; AVX2-FCP-NEXT: vmovdqu %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4736; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm6 = ymm9[0,1],ymm10[2],ymm9[3,4],ymm10[5],ymm9[6,7]4737; AVX2-FCP-NEXT: vpshufb %xmm7, %xmm6, %xmm74738; AVX2-FCP-NEXT: vextracti128 $1, %ymm6, %xmm84739; AVX2-FCP-NEXT: vpshuflw {{.*#+}} xmm11 = xmm8[2,2,2,2,4,5,6,7]4740; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm7 = xmm7[0],xmm11[1],xmm7[2,3],xmm11[4],xmm7[5,6,7]4741; AVX2-FCP-NEXT: vmovdqu %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4742; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm11 = ymm12[0],ymm14[1],ymm12[2,3,4,5],ymm14[6],ymm12[7]4743; AVX2-FCP-NEXT: vpshufb %ymm4, %ymm11, %ymm44744; AVX2-FCP-NEXT: vpblendvb %ymm0, %ymm7, %ymm4, %ymm44745; AVX2-FCP-NEXT: vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4746; AVX2-FCP-NEXT: vmovdqa {{.*#+}} xmm4 = [10,11,6,7,2,3,14,15,10,11,10,11,12,13,14,15]4747; AVX2-FCP-NEXT: vpshufb %xmm4, %xmm3, %xmm34748; AVX2-FCP-NEXT: vpshufb %xmm4, %xmm2, %xmm24749; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0],xmm3[1],xmm2[2,3],xmm3[4],xmm2[5,6,7]4750; AVX2-FCP-NEXT: vmovdqa {{.*#+}} ymm3 = [10,11,6,7,4,5,6,7,6,7,6,7,2,3,14,15,26,27,22,23,20,21,22,23,22,23,22,23,18,19,30,31]4751; AVX2-FCP-NEXT: vpshufb %ymm3, %ymm1, %ymm14752; AVX2-FCP-NEXT: vpblendvb %ymm0, %ymm2, %ymm1, %ymm14753; AVX2-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4754; AVX2-FCP-NEXT: vpshufb %ymm3, %ymm11, %ymm14755; AVX2-FCP-NEXT: vpshufb %xmm4, %xmm8, %xmm34756; AVX2-FCP-NEXT: vpshufb %xmm4, %xmm6, %xmm44757; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm5 = ymm10[0],ymm9[1],ymm10[2,3],ymm9[4],ymm10[5,6],ymm9[7]4758; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm3 = xmm4[0],xmm3[1],xmm4[2,3],xmm3[4],xmm4[5,6,7]4759; AVX2-FCP-NEXT: vmovdqa {{.*#+}} xmm15 = [0,1,12,13,0,1,4,5,8,9,12,13,12,13,14,15]4760; AVX2-FCP-NEXT: vpblendvb %ymm0, %ymm3, %ymm1, %ymm04761; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4762; AVX2-FCP-NEXT: vpshufb %xmm15, %xmm5, %xmm04763; AVX2-FCP-NEXT: vextracti128 $1, %ymm5, %xmm14764; AVX2-FCP-NEXT: vpshufd {{.*#+}} xmm11 = xmm1[2,1,0,3]4765; AVX2-FCP-NEXT: vpshufb %xmm15, %xmm11, %xmm14766; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1],xmm1[2],xmm0[3],xmm1[4,5],xmm0[6,7]4767; AVX2-FCP-NEXT: vmovdqa {{.*#+}} ymm13 = [u,u,u,u,u,u,u,u,u,u,u,u,8,9,4,5,16,17,28,29,24,25,28,29,24,25,28,29,24,25,20,21]4768; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm10 = ymm14[0],ymm12[1],ymm14[2,3,4,5],ymm12[6],ymm14[7]4769; AVX2-FCP-NEXT: vpshufb %ymm13, %ymm10, %ymm14770; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4,5,6,7]4771; AVX2-FCP-NEXT: vmovdqa 352(%rdi), %ymm14772; AVX2-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4773; AVX2-FCP-NEXT: vmovdqa 320(%rdi), %ymm24774; AVX2-FCP-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4775; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm7 = ymm2[0,1],ymm1[2],ymm2[3,4],ymm1[5],ymm2[6,7]4776; AVX2-FCP-NEXT: vmovdqa {{.*#+}} xmm2 = [0,1,4,5,4,5,4,5,0,1,12,13,8,9,4,5]4777; AVX2-FCP-NEXT: vpshufb %xmm2, %xmm7, %xmm64778; AVX2-FCP-NEXT: vextracti128 $1, %ymm7, %xmm94779; AVX2-FCP-NEXT: vpshufb %xmm2, %xmm9, %xmm84780; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm6 = xmm8[0,1,2],xmm6[3],xmm8[4,5],xmm6[6],xmm8[7]4781; AVX2-FCP-NEXT: vinserti128 $1, %xmm6, %ymm0, %ymm64782; AVX2-FCP-NEXT: vpblendw {{.*#+}} ymm6 = ymm0[0,1,2],ymm6[3,4,5,6,7],ymm0[8,9,10],ymm6[11,12,13,14,15]4783; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm6[4,5,6,7]4784; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4785; AVX2-FCP-NEXT: vmovdqa 160(%rdi), %ymm04786; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4787; AVX2-FCP-NEXT: vmovdqa 128(%rdi), %ymm84788; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm8[0,1],ymm0[2],ymm8[3,4],ymm0[5],ymm8[6,7]4789; AVX2-FCP-NEXT: vpshufb %xmm2, %xmm1, %xmm04790; AVX2-FCP-NEXT: vextracti128 $1, %ymm1, %xmm44791; AVX2-FCP-NEXT: vpshufb %xmm2, %xmm4, %xmm24792; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm3 = xmm2[0,1,2],xmm0[3],xmm2[4,5],xmm0[6],xmm2[7]4793; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload4794; AVX2-FCP-NEXT: vpblendd $146, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm2 # 32-byte Folded Reload4795; AVX2-FCP-NEXT: # ymm2 = ymm0[0],mem[1],ymm0[2,3],mem[4],ymm0[5,6],mem[7]4796; AVX2-FCP-NEXT: vextracti128 $1, %ymm2, %xmm124797; AVX2-FCP-NEXT: vpshufd {{.*#+}} xmm12 = xmm12[2,1,0,3]4798; AVX2-FCP-NEXT: vpshufb %xmm15, %xmm2, %xmm04799; AVX2-FCP-NEXT: vpshufb %xmm15, %xmm12, %xmm154800; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1],xmm15[2],xmm0[3],xmm15[4,5],xmm0[6,7]4801; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload4802; AVX2-FCP-NEXT: vpblendd $189, (%rsp), %ymm6, %ymm15 # 32-byte Folded Reload4803; AVX2-FCP-NEXT: # ymm15 = mem[0],ymm6[1],mem[2,3,4,5],ymm6[6],mem[7]4804; AVX2-FCP-NEXT: vpshufb %ymm13, %ymm15, %ymm134805; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2],ymm13[3,4,5,6,7]4806; AVX2-FCP-NEXT: vinserti128 $1, %xmm3, %ymm0, %ymm34807; AVX2-FCP-NEXT: vpblendw {{.*#+}} ymm3 = ymm0[0,1,2],ymm3[3,4,5,6,7],ymm0[8,9,10],ymm3[11,12,13,14,15]4808; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm3[4,5,6,7]4809; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4810; AVX2-FCP-NEXT: vpbroadcastq {{.*#+}} xmm6 = [6,7,2,3,12,13,14,15,6,7,2,3,12,13,14,15]4811; AVX2-FCP-NEXT: vpshufb %xmm6, %xmm5, %xmm34812; AVX2-FCP-NEXT: vpshuflw {{.*#+}} xmm5 = xmm11[1,1,1,1,4,5,6,7]4813; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm3 = xmm3[0,1],xmm5[2],xmm3[3,4],xmm5[5],xmm3[6],xmm5[7]4814; AVX2-FCP-NEXT: vmovdqa {{.*#+}} ymm5 = [u,u,u,u,u,u,u,u,u,u,u,u,10,11,6,7,18,19,30,31,26,27,26,27,30,31,26,27,26,27,22,23]4815; AVX2-FCP-NEXT: vpshufb %ymm5, %ymm10, %ymm104816; AVX2-FCP-NEXT: vmovdqa {{.*#+}} xmm0 = [2,3,6,7,4,5,0,1,10,11,14,15,12,13,14,15]4817; AVX2-FCP-NEXT: vpshufb %xmm0, %xmm3, %xmm34818; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm3 = ymm3[0,1,2],ymm10[3,4,5,6,7]4819; AVX2-FCP-NEXT: vmovdqa {{.*#+}} xmm10 = [6,7,2,3,4,5,u,u,2,3,14,15,u,u,6,7]4820; AVX2-FCP-NEXT: vpshufb %xmm10, %xmm9, %xmm94821; AVX2-FCP-NEXT: vpshufhw {{.*#+}} xmm7 = xmm7[0,1,2,3,5,5,5,5]4822; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm7 = xmm9[0,1,2],xmm7[3],xmm9[4,5],xmm7[6],xmm9[7]4823; AVX2-FCP-NEXT: vinserti128 $1, %xmm7, %ymm0, %ymm74824; AVX2-FCP-NEXT: vpblendw {{.*#+}} ymm7 = ymm3[0,1,2],ymm7[3,4,5,6,7],ymm3[8,9,10],ymm7[11,12,13,14,15]4825; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm7[4,5,6,7]4826; AVX2-FCP-NEXT: vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4827; AVX2-FCP-NEXT: vpshufb %xmm10, %xmm4, %xmm34828; AVX2-FCP-NEXT: vpshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,5,5,5,5]4829; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm1 = xmm3[0,1,2],xmm1[3],xmm3[4,5],xmm1[6],xmm3[7]4830; AVX2-FCP-NEXT: vpshufb %ymm5, %ymm15, %ymm34831; AVX2-FCP-NEXT: vpshufb %xmm6, %xmm2, %xmm24832; AVX2-FCP-NEXT: vpshuflw {{.*#+}} xmm4 = xmm12[1,1,1,1,4,5,6,7]4833; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0,1],xmm4[2],xmm2[3,4],xmm4[5],xmm2[6],xmm4[7]4834; AVX2-FCP-NEXT: vpshufb %xmm0, %xmm2, %xmm04835; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2],ymm3[3,4,5,6,7]4836; AVX2-FCP-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm14837; AVX2-FCP-NEXT: vpblendw {{.*#+}} ymm1 = ymm0[0,1,2],ymm1[3,4,5,6,7],ymm0[8,9,10],ymm1[11,12,13,14,15]4838; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]4839; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4840; AVX2-FCP-NEXT: vpblendd $148, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm14 # 32-byte Folded Reload4841; AVX2-FCP-NEXT: # ymm14 = ymm14[0,1],mem[2],ymm14[3],mem[4],ymm14[5,6],mem[7]4842; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload4843; AVX2-FCP-NEXT: vpblendd $219, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload4844; AVX2-FCP-NEXT: # ymm0 = mem[0,1],ymm0[2],mem[3,4],ymm0[5],mem[6,7]4845; AVX2-FCP-NEXT: vpshufd {{.*#+}} xmm5 = xmm0[2,1,0,3]4846; AVX2-FCP-NEXT: vextracti128 $1, %ymm0, %xmm04847; AVX2-FCP-NEXT: vpshufd {{.*#+}} xmm4 = xmm0[0,1,2,1]4848; AVX2-FCP-NEXT: vmovdqa {{.*#+}} xmm0 = [0,1,0,1,0,1,0,1,u,u,8,9,12,13,u,u]4849; AVX2-FCP-NEXT: vpshufb %xmm0, %xmm5, %xmm14850; AVX2-FCP-NEXT: vpshufhw {{.*#+}} xmm3 = xmm4[0,1,2,3,6,5,6,4]4851; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm3 = xmm1[0,1,2,3],xmm3[4],xmm1[5,6],xmm3[7]4852; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload4853; AVX2-FCP-NEXT: vpblendd $219, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload4854; AVX2-FCP-NEXT: # ymm1 = mem[0,1],ymm1[2],mem[3,4],ymm1[5],mem[6,7]4855; AVX2-FCP-NEXT: vextracti128 $1, %ymm1, %xmm64856; AVX2-FCP-NEXT: vpshufd {{.*#+}} xmm10 = xmm6[0,3,2,1]4857; AVX2-FCP-NEXT: vpshufd {{.*#+}} xmm2 = xmm1[2,1,2,3]4858; AVX2-FCP-NEXT: vpbroadcastq {{.*#+}} xmm6 = [12,13,0,1,4,5,0,0,12,13,0,1,4,5,0,0]4859; AVX2-FCP-NEXT: vpshufb %xmm6, %xmm10, %xmm94860; AVX2-FCP-NEXT: vpshuflw {{.*#+}} xmm12 = xmm2[2,1,2,0,4,5,6,7]4861; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm9 = xmm12[0],xmm9[1,2],xmm12[3],xmm9[4,5,6,7]4862; AVX2-FCP-NEXT: vinserti128 $1, %xmm3, %ymm0, %ymm34863; AVX2-FCP-NEXT: vmovdqa {{.*#+}} ymm15 = [4,5,0,1,12,13,14,15,8,9,12,13,0,1,u,u,20,21,16,17,28,29,30,31,24,25,28,29,16,17,u,u]4864; AVX2-FCP-NEXT: vpshufb %ymm15, %ymm14, %ymm124865; AVX2-FCP-NEXT: vpblendw {{.*#+}} ymm3 = ymm12[0,1,2],ymm3[3,4,5,6,7],ymm12[8,9,10],ymm3[11,12,13,14,15]4866; AVX2-FCP-NEXT: vpshufhw {{.*#+}} xmm12 = xmm12[0,1,2,3,4,6,5,4]4867; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm9 = xmm9[0,1,2,3,4],xmm12[5,6,7]4868; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm9[0,1,2,3],ymm3[4,5,6,7]4869; AVX2-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4870; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload4871; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm9 = ymm7[0,1],ymm8[2],ymm7[3,4],ymm8[5],ymm7[6,7]4872; AVX2-FCP-NEXT: vpshufd {{.*#+}} xmm12 = xmm9[2,1,0,3]4873; AVX2-FCP-NEXT: vpshufb %xmm0, %xmm12, %xmm04874; AVX2-FCP-NEXT: vextracti128 $1, %ymm9, %xmm94875; AVX2-FCP-NEXT: vpshufd {{.*#+}} xmm9 = xmm9[0,1,2,1]4876; AVX2-FCP-NEXT: vpshufhw {{.*#+}} xmm13 = xmm9[0,1,2,3,6,5,6,4]4877; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm1 = xmm0[0,1,2,3],xmm13[4],xmm0[5,6],xmm13[7]4878; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload4879; AVX2-FCP-NEXT: vpblendd $107, (%rsp), %ymm0, %ymm13 # 32-byte Folded Reload4880; AVX2-FCP-NEXT: # ymm13 = mem[0,1],ymm0[2],mem[3],ymm0[4],mem[5,6],ymm0[7]4881; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload4882; AVX2-FCP-NEXT: vpblendd $36, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload4883; AVX2-FCP-NEXT: # ymm0 = ymm0[0,1],mem[2],ymm0[3,4],mem[5],ymm0[6,7]4884; AVX2-FCP-NEXT: vextracti128 $1, %ymm0, %xmm114885; AVX2-FCP-NEXT: vpshufd {{.*#+}} xmm11 = xmm11[0,3,2,1]4886; AVX2-FCP-NEXT: vpshufb %xmm6, %xmm11, %xmm64887; AVX2-FCP-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[2,1,2,3]4888; AVX2-FCP-NEXT: vpshuflw {{.*#+}} xmm3 = xmm0[2,1,2,0,4,5,6,7]4889; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm3 = xmm3[0],xmm6[1,2],xmm3[3],xmm6[4,5,6,7]4890; AVX2-FCP-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm14891; AVX2-FCP-NEXT: vpshufb %ymm15, %ymm13, %ymm64892; AVX2-FCP-NEXT: vpblendw {{.*#+}} ymm1 = ymm6[0,1,2],ymm1[3,4,5,6,7],ymm6[8,9,10],ymm1[11,12,13,14,15]4893; AVX2-FCP-NEXT: vpshufhw {{.*#+}} xmm6 = xmm6[0,1,2,3,4,6,5,4]4894; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm3 = xmm3[0,1,2,3,4],xmm6[5,6,7]4895; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm6 = ymm3[0,1,2,3],ymm1[4,5,6,7]4896; AVX2-FCP-NEXT: vmovdqa {{.*#+}} xmm1 = [2,3,2,3,2,3,2,3,u,u,10,11,14,15,u,u]4897; AVX2-FCP-NEXT: vpshufb %xmm1, %xmm5, %xmm34898; AVX2-FCP-NEXT: vpshufhw {{.*#+}} xmm4 = xmm4[0,1,2,3,7,5,6,5]4899; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm3 = xmm3[0,1,2,3],xmm4[4],xmm3[5,6],xmm4[7]4900; AVX2-FCP-NEXT: vpbroadcastq {{.*#+}} xmm5 = [14,15,2,3,6,7,0,0,14,15,2,3,6,7,0,0]4901; AVX2-FCP-NEXT: vpshufb %xmm5, %xmm10, %xmm44902; AVX2-FCP-NEXT: vpshuflw {{.*#+}} xmm2 = xmm2[3,1,2,1,4,5,6,7]4903; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0],xmm4[1,2],xmm2[3],xmm4[4,5,6,7]4904; AVX2-FCP-NEXT: vmovdqa {{.*#+}} ymm10 = [6,7,2,3,14,15,14,15,14,15,10,11,u,u,2,3,22,23,18,19,30,31,30,31,30,31,26,27,u,u,18,19]4905; AVX2-FCP-NEXT: vpshufb %ymm10, %ymm14, %ymm44906; AVX2-FCP-NEXT: vinserti128 $1, %xmm3, %ymm0, %ymm34907; AVX2-FCP-NEXT: vpblendw {{.*#+}} ymm3 = ymm4[0,1,2],ymm3[3,4,5,6,7],ymm4[8,9,10],ymm3[11,12,13,14,15]4908; AVX2-FCP-NEXT: vpshufd {{.*#+}} xmm4 = xmm4[0,1,3,2]4909; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0,1,2,3,4],xmm4[5,6,7]4910; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm4 = ymm2[0,1,2,3],ymm3[4,5,6,7]4911; AVX2-FCP-NEXT: vpshufb %xmm1, %xmm12, %xmm14912; AVX2-FCP-NEXT: vpshufhw {{.*#+}} xmm2 = xmm9[0,1,2,3,7,5,6,5]4913; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1,2,3],xmm2[4],xmm1[5,6],xmm2[7]4914; AVX2-FCP-NEXT: vpshufb %ymm10, %ymm13, %ymm24915; AVX2-FCP-NEXT: vpshufb %xmm5, %xmm11, %xmm34916; AVX2-FCP-NEXT: vpshuflw {{.*#+}} xmm0 = xmm0[3,1,2,1,4,5,6,7]4917; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0],xmm3[1,2],xmm0[3],xmm3[4,5,6,7]4918; AVX2-FCP-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm14919; AVX2-FCP-NEXT: vpblendw {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3,4,5,6,7],ymm2[8,9,10],ymm1[11,12,13,14,15]4920; AVX2-FCP-NEXT: vpshufd {{.*#+}} xmm2 = xmm2[0,1,3,2]4921; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2,3,4],xmm2[5,6,7]4922; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]4923; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm8[0],ymm7[1],ymm8[2,3],ymm7[4],ymm8[5,6],ymm7[7]4924; AVX2-FCP-NEXT: vextracti128 $1, %ymm1, %xmm24925; AVX2-FCP-NEXT: vpshufd {{.*#+}} xmm1 = xmm1[0,3,2,1]4926; AVX2-FCP-NEXT: vmovdqa {{.*#+}} xmm3 = [0,1,2,3,0,1,4,5,8,9,12,13,0,1,12,13]4927; AVX2-FCP-NEXT: vpshufb %xmm3, %xmm2, %xmm54928; AVX2-FCP-NEXT: vpshufb %xmm3, %xmm1, %xmm74929; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm5 = xmm7[0,1,2,3],xmm5[4],xmm7[5],xmm5[6,7]4930; AVX2-FCP-NEXT: vinserti128 $1, %xmm5, %ymm0, %ymm54931; AVX2-FCP-NEXT: vpblendd $31, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5, %ymm5 # 32-byte Folded Reload4932; AVX2-FCP-NEXT: # ymm5 = mem[0,1,2,3,4],ymm5[5,6,7]4933; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload4934; AVX2-FCP-NEXT: vpblendd $146, {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm7 # 32-byte Folded Reload4935; AVX2-FCP-NEXT: # ymm7 = ymm7[0],mem[1],ymm7[2,3],mem[4],ymm7[5,6],mem[7]4936; AVX2-FCP-NEXT: vextracti128 $1, %ymm7, %xmm84937; AVX2-FCP-NEXT: vpshufd {{.*#+}} xmm7 = xmm7[0,3,2,1]4938; AVX2-FCP-NEXT: vpshufb %xmm3, %xmm8, %xmm94939; AVX2-FCP-NEXT: vpshufb %xmm3, %xmm7, %xmm34940; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm3 = xmm3[0,1,2,3],xmm9[4],xmm3[5],xmm9[6,7]4941; AVX2-FCP-NEXT: vinserti128 $1, %xmm3, %ymm0, %ymm34942; AVX2-FCP-NEXT: vpblendd $31, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm3 # 32-byte Folded Reload4943; AVX2-FCP-NEXT: # ymm3 = mem[0,1,2,3,4],ymm3[5,6,7]4944; AVX2-FCP-NEXT: vmovdqa {{.*#+}} xmm9 = [0,1,2,3,2,3,6,7,10,11,14,15,2,3,14,15]4945; AVX2-FCP-NEXT: vpshufb %xmm9, %xmm2, %xmm24946; AVX2-FCP-NEXT: vpshufb %xmm9, %xmm1, %xmm14947; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1,2,3],xmm2[4],xmm1[5],xmm2[6,7]4948; AVX2-FCP-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm14949; AVX2-FCP-NEXT: vpblendd $31, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload4950; AVX2-FCP-NEXT: # ymm1 = mem[0,1,2,3,4],ymm1[5,6,7]4951; AVX2-FCP-NEXT: vpshufb %xmm9, %xmm8, %xmm24952; AVX2-FCP-NEXT: vpshufb %xmm9, %xmm7, %xmm74953; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm2 = xmm7[0,1,2,3],xmm2[4],xmm7[5],xmm2[6,7]4954; AVX2-FCP-NEXT: vinserti128 $1, %xmm2, %ymm0, %ymm24955; AVX2-FCP-NEXT: vpblendd $31, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload4956; AVX2-FCP-NEXT: # ymm2 = mem[0,1,2,3,4],ymm2[5,6,7]4957; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload4958; AVX2-FCP-NEXT: vmovaps %ymm7, 32(%rsi)4959; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload4960; AVX2-FCP-NEXT: vmovaps %ymm7, (%rsi)4961; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload4962; AVX2-FCP-NEXT: vmovaps %ymm7, 32(%rdx)4963; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload4964; AVX2-FCP-NEXT: vmovaps %ymm7, (%rdx)4965; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload4966; AVX2-FCP-NEXT: vmovaps %ymm7, 32(%rcx)4967; AVX2-FCP-NEXT: vmovdqa %ymm6, (%rcx)4968; AVX2-FCP-NEXT: vmovdqa %ymm4, 32(%r8)4969; AVX2-FCP-NEXT: vmovdqa %ymm0, (%r8)4970; AVX2-FCP-NEXT: vmovdqa %ymm3, 32(%r9)4971; AVX2-FCP-NEXT: vmovdqa %ymm5, (%r9)4972; AVX2-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax4973; AVX2-FCP-NEXT: vmovdqa %ymm2, 32(%rax)4974; AVX2-FCP-NEXT: vmovdqa %ymm1, (%rax)4975; AVX2-FCP-NEXT: addq $456, %rsp # imm = 0x1C84976; AVX2-FCP-NEXT: vzeroupper4977; AVX2-FCP-NEXT: retq4978;4979; AVX512-LABEL: load_i16_stride6_vf32:4980; AVX512: # %bb.0:4981; AVX512-NEXT: subq $72, %rsp4982; AVX512-NEXT: vmovdqa {{.*#+}} xmm5 = [0,1,12,13,u,u,4,5,u,u,u,u,12,13,14,15]4983; AVX512-NEXT: vmovdqa 224(%rdi), %ymm144984; AVX512-NEXT: vmovdqa 192(%rdi), %ymm114985; AVX512-NEXT: vpblendd {{.*#+}} ymm2 = ymm11[0],ymm14[1],ymm11[2,3],ymm14[4],ymm11[5,6],ymm14[7]4986; AVX512-NEXT: vpshufb %xmm5, %xmm2, %xmm14987; AVX512-NEXT: vextracti128 $1, %ymm2, %xmm04988; AVX512-NEXT: vpshufd {{.*#+}} xmm3 = xmm0[0,2,0,3]4989; AVX512-NEXT: vpshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,4,6,6,7]4990; AVX512-NEXT: vpblendw {{.*#+}} xmm3 = xmm1[0,1],xmm3[2],xmm1[3],xmm3[4,5],xmm1[6,7]4991; AVX512-NEXT: vmovdqa 160(%rdi), %ymm44992; AVX512-NEXT: vmovdqa (%rdi), %ymm134993; AVX512-NEXT: vmovdqa 32(%rdi), %ymm104994; AVX512-NEXT: vmovdqa 64(%rdi), %ymm64995; AVX512-NEXT: vmovdqa 128(%rdi), %ymm74996; AVX512-NEXT: vpblendd {{.*#+}} ymm1 = ymm7[0,1],ymm4[2],ymm7[3,4],ymm4[5],ymm7[6,7]4997; AVX512-NEXT: vmovdqa64 %ymm7, %ymm244998; AVX512-NEXT: vmovdqa64 %ymm4, %ymm264999; AVX512-NEXT: vextracti128 $1, %ymm1, %xmm45000; AVX512-NEXT: vpshuflw {{.*#+}} xmm7 = xmm1[2,2,2,2,4,5,6,7]5001; AVX512-NEXT: vpblendw {{.*#+}} xmm7 = xmm4[0,1,2],xmm7[3,4],xmm4[5,6,7]5002; AVX512-NEXT: vmovdqa {{.*#+}} xmm9 = [0,1,4,5,4,5,6,7,0,1,12,13,8,9,4,5]5003; AVX512-NEXT: vpshufb %xmm9, %xmm7, %xmm75004; AVX512-NEXT: vinserti128 $1, %xmm7, %ymm0, %ymm75005; AVX512-NEXT: vinserti32x4 $2, %xmm3, %zmm7, %zmm35006; AVX512-NEXT: vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill5007; AVX512-NEXT: vperm2i128 {{.*#+}} ymm12 = ymm6[2,3],mem[2,3]5008; AVX512-NEXT: vpblendd {{.*#+}} ymm3 = ymm13[0],ymm10[1],ymm13[2,3],ymm10[4],ymm13[5,6],ymm10[7]5009; AVX512-NEXT: vmovdqa64 %ymm10, %ymm165010; AVX512-NEXT: vpshufb %xmm5, %xmm3, %xmm75011; AVX512-NEXT: vextracti128 $1, %ymm3, %xmm55012; AVX512-NEXT: vpshufd {{.*#+}} xmm8 = xmm5[0,2,0,3]5013; AVX512-NEXT: vpshufhw {{.*#+}} xmm8 = xmm8[0,1,2,3,4,6,6,7]5014; AVX512-NEXT: vpblendw {{.*#+}} xmm7 = xmm7[0,1],xmm8[2],xmm7[3],xmm8[4,5],xmm7[6,7]5015; AVX512-NEXT: vinserti128 $1, 96(%rdi), %ymm6, %ymm85016; AVX512-NEXT: vpblendd {{.*#+}} ymm6 = ymm8[0],ymm12[1],ymm8[2,3,4,5],ymm12[6],ymm8[7]5017; AVX512-NEXT: vmovdqa64 %ymm8, %ymm295018; AVX512-NEXT: vmovdqa64 %ymm12, %ymm285019; AVX512-NEXT: vpshufb {{.*#+}} ymm8 = ymm6[u,u,u,u,u,u,u,u,u,u,u,u,8,9,4,5,16,17,28,29,24,25,28,29,24,25,28,29,24,25,20,21]5020; AVX512-NEXT: vpblendd {{.*#+}} ymm7 = ymm7[0,1,2],ymm8[3,4,5,6,7]5021; AVX512-NEXT: vmovdqu64 %zmm7, (%rsp) # 64-byte Spill5022; AVX512-NEXT: vmovdqa 352(%rdi), %ymm85023; AVX512-NEXT: vmovdqa 320(%rdi), %ymm105024; AVX512-NEXT: vpblendd {{.*#+}} ymm7 = ymm10[0,1],ymm8[2],ymm10[3,4],ymm8[5],ymm10[6,7]5025; AVX512-NEXT: vmovdqa64 %ymm10, %ymm185026; AVX512-NEXT: vmovdqa64 %ymm8, %ymm205027; AVX512-NEXT: vextracti128 $1, %ymm7, %xmm85028; AVX512-NEXT: vpshuflw {{.*#+}} xmm10 = xmm7[2,2,2,2,4,5,6,7]5029; AVX512-NEXT: vpblendw {{.*#+}} xmm10 = xmm8[0,1,2],xmm10[3,4],xmm8[5,6,7]5030; AVX512-NEXT: vpshufb %xmm9, %xmm10, %xmm95031; AVX512-NEXT: vinserti128 $1, %xmm9, %ymm0, %ymm105032; AVX512-NEXT: vmovdqa 256(%rdi), %ymm95033; AVX512-NEXT: vperm2i128 {{.*#+}} ymm12 = ymm9[2,3],mem[2,3]5034; AVX512-NEXT: vinserti128 $1, 288(%rdi), %ymm9, %ymm155035; AVX512-NEXT: vpblendd {{.*#+}} ymm9 = ymm15[0],ymm12[1],ymm15[2,3,4,5],ymm12[6],ymm15[7]5036; AVX512-NEXT: vmovdqa64 %ymm15, %ymm255037; AVX512-NEXT: vmovdqa64 %ymm12, %ymm275038; AVX512-NEXT: vpshufb {{.*#+}} ymm12 = ymm9[0,1,12,13,8,9,12,13,8,9,12,13,4,5,u,u,16,17,28,29,24,25,28,29,24,25,28,29,20,21,u,u]5039; AVX512-NEXT: vpblendw {{.*#+}} ymm10 = ymm12[0,1,2],ymm10[3,4,5,6,7],ymm12[8,9,10],ymm10[11,12,13,14,15]5040; AVX512-NEXT: vpshufhw {{.*#+}} xmm12 = xmm12[0,1,2,3,4,5,4,6]5041; AVX512-NEXT: vpblendd {{.*#+}} ymm10 = ymm12[0,1,2,3],ymm10[4,5,6,7]5042; AVX512-NEXT: vmovdqa64 %ymm10, %ymm305043; AVX512-NEXT: vmovdqa {{.*#+}} xmm10 = [2,3,14,15,10,11,6,7,2,3,14,15,12,13,14,15]5044; AVX512-NEXT: vpshufb %xmm10, %xmm0, %xmm05045; AVX512-NEXT: vpshufb %xmm10, %xmm2, %xmm25046; AVX512-NEXT: vpblendw {{.*#+}} xmm0 = xmm2[0,1],xmm0[2],xmm2[3],xmm0[4,5],xmm2[6,7]5047; AVX512-NEXT: vmovdqa {{.*#+}} xmm2 = [6,7,2,3,4,5,u,u,2,3,14,15,u,u,6,7]5048; AVX512-NEXT: vpshufb %xmm2, %xmm4, %xmm45049; AVX512-NEXT: vpshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,5,5,5,5]5050; AVX512-NEXT: vpblendw {{.*#+}} xmm1 = xmm4[0,1,2],xmm1[3],xmm4[4,5],xmm1[6],xmm4[7]5051; AVX512-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm15052; AVX512-NEXT: vinserti32x4 $2, %xmm0, %zmm1, %zmm05053; AVX512-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill5054; AVX512-NEXT: vpshufb %xmm10, %xmm5, %xmm05055; AVX512-NEXT: vpshufb %xmm10, %xmm3, %xmm15056; AVX512-NEXT: vpblendw {{.*#+}} xmm0 = xmm1[0,1],xmm0[2],xmm1[3],xmm0[4,5],xmm1[6,7]5057; AVX512-NEXT: vpshufb {{.*#+}} ymm1 = ymm6[u,u,u,u,u,u,u,u,u,u,u,u,10,11,6,7,18,19,30,31,26,27,26,27,30,31,26,27,26,27,22,23]5058; AVX512-NEXT: vpblendd {{.*#+}} ymm15 = ymm0[0,1,2],ymm1[3,4,5,6,7]5059; AVX512-NEXT: vpshufb %xmm2, %xmm8, %xmm05060; AVX512-NEXT: vpshufhw {{.*#+}} xmm1 = xmm7[0,1,2,3,5,5,5,5]5061; AVX512-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2],xmm1[3],xmm0[4,5],xmm1[6],xmm0[7]5062; AVX512-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm05063; AVX512-NEXT: vpshufb {{.*#+}} ymm1 = ymm9[2,3,14,15,10,11,10,11,14,15,10,11,u,u,6,7,18,19,30,31,26,27,26,27,30,31,26,27,u,u,22,23]5064; AVX512-NEXT: vpblendw {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3,4,5,6,7],ymm1[8,9,10],ymm0[11,12,13,14,15]5065; AVX512-NEXT: vpshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,5,5,7]5066; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]5067; AVX512-NEXT: vmovdqa64 %ymm0, %ymm225068; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm11[0,1],ymm14[2],ymm11[3,4],ymm14[5],ymm11[6,7]5069; AVX512-NEXT: vmovdqa64 %ymm14, %ymm315070; AVX512-NEXT: vmovdqa64 %ymm11, %ymm215071; AVX512-NEXT: vextracti128 $1, %ymm0, %xmm15072; AVX512-NEXT: vpshufd {{.*#+}} xmm10 = xmm0[2,1,2,3]5073; AVX512-NEXT: vpshufd {{.*#+}} xmm11 = xmm1[0,3,2,1]5074; AVX512-NEXT: vpshuflw {{.*#+}} xmm0 = xmm11[0,0,2,3,4,5,6,7]5075; AVX512-NEXT: vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,6,6,6,6]5076; AVX512-NEXT: vpshuflw {{.*#+}} xmm1 = xmm10[2,1,2,0,4,5,6,7]5077; AVX512-NEXT: vpblendw {{.*#+}} xmm0 = xmm1[0],xmm0[1,2],xmm1[3],xmm0[4,5,6,7]5078; AVX512-NEXT: vmovdqa64 %ymm24, %ymm15079; AVX512-NEXT: vmovdqa64 %ymm26, %ymm25080; AVX512-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0,1],ymm1[2],ymm2[3,4],ymm1[5],ymm2[6,7]5081; AVX512-NEXT: vextracti128 $1, %ymm1, %xmm25082; AVX512-NEXT: vpshufd {{.*#+}} xmm9 = xmm1[2,1,0,3]5083; AVX512-NEXT: vpshuflw {{.*#+}} xmm1 = xmm9[0,0,0,0,4,5,6,7]5084; AVX512-NEXT: vpshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,4,6,7]5085; AVX512-NEXT: vpshufd {{.*#+}} xmm8 = xmm2[0,1,2,1]5086; AVX512-NEXT: vpshufhw {{.*#+}} xmm2 = xmm8[0,1,2,3,6,5,6,4]5087; AVX512-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1,2,3],xmm2[4],xmm1[5,6],xmm2[7]5088; AVX512-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm15089; AVX512-NEXT: vinserti32x4 $2, %xmm0, %zmm1, %zmm175090; AVX512-NEXT: vmovdqa64 %ymm16, %ymm235091; AVX512-NEXT: vmovdqa64 %ymm16, %ymm05092; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm13[0,1],ymm0[2],ymm13[3,4],ymm0[5],ymm13[6,7]5093; AVX512-NEXT: vmovdqa64 %ymm13, %ymm195094; AVX512-NEXT: vextracti128 $1, %ymm0, %xmm15095; AVX512-NEXT: vpshufd {{.*#+}} xmm6 = xmm0[2,1,2,3]5096; AVX512-NEXT: vpshufd {{.*#+}} xmm7 = xmm1[0,3,2,1]5097; AVX512-NEXT: vpshuflw {{.*#+}} xmm0 = xmm7[0,0,2,3,4,5,6,7]5098; AVX512-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[0,1,3,3]5099; AVX512-NEXT: vpshuflw {{.*#+}} xmm1 = xmm6[2,1,2,0,4,5,6,7]5100; AVX512-NEXT: vpblendw {{.*#+}} xmm0 = xmm1[0],xmm0[1,2],xmm1[3],xmm0[4,5,6,7]5101; AVX512-NEXT: vmovdqa64 %ymm29, %ymm135102; AVX512-NEXT: vmovdqa64 %ymm28, %ymm125103; AVX512-NEXT: vpblendd {{.*#+}} ymm5 = ymm13[0,1],ymm12[2],ymm13[3],ymm12[4],ymm13[5,6],ymm12[7]5104; AVX512-NEXT: vpshufb {{.*#+}} ymm1 = ymm5[4,5,0,1,12,13,14,15,8,9,0,1,12,13,8,9,20,21,16,17,28,29,30,31,24,25,16,17,28,29,24,25]5105; AVX512-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2,3,4],xmm1[5,6,7]5106; AVX512-NEXT: vpblendd {{.*#+}} ymm2 = ymm0[0,1,2,3],ymm1[4,5,6,7]5107; AVX512-NEXT: vmovdqa64 %ymm18, %ymm285108; AVX512-NEXT: vmovdqa64 %ymm20, %ymm295109; AVX512-NEXT: vmovdqa64 %ymm18, %ymm05110; AVX512-NEXT: vmovdqa64 %ymm20, %ymm15111; AVX512-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1],ymm0[2],ymm1[3,4],ymm0[5],ymm1[6,7]5112; AVX512-NEXT: vextracti128 $1, %ymm1, %xmm05113; AVX512-NEXT: vpshufd {{.*#+}} xmm4 = xmm1[2,1,0,3]5114; AVX512-NEXT: vpshuflw {{.*#+}} xmm1 = xmm4[0,0,0,0,4,5,6,7]5115; AVX512-NEXT: vpshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,4,6,7]5116; AVX512-NEXT: vpshufd {{.*#+}} xmm3 = xmm0[0,1,2,1]5117; AVX512-NEXT: vpshufhw {{.*#+}} xmm14 = xmm3[0,1,2,3,6,5,6,4]5118; AVX512-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1,2,3],xmm14[4],xmm1[5,6],xmm14[7]5119; AVX512-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm145120; AVX512-NEXT: vmovdqa64 %ymm25, %ymm05121; AVX512-NEXT: vmovdqa64 %ymm27, %ymm15122; AVX512-NEXT: vpblendd {{.*#+}} ymm1 = ymm0[0,1],ymm1[2],ymm0[3],ymm1[4],ymm0[5,6],ymm1[7]5123; AVX512-NEXT: vpshufb {{.*#+}} ymm0 = ymm1[4,5,0,1,12,13,14,15,8,9,12,13,0,1,u,u,20,21,16,17,28,29,30,31,24,25,28,29,16,17,u,u]5124; AVX512-NEXT: vpblendw {{.*#+}} ymm14 = ymm0[0,1,2],ymm14[3,4,5,6,7],ymm0[8,9,10],ymm14[11,12,13,14,15]5125; AVX512-NEXT: vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,6,5,4]5126; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm14[4,5,6,7]5127; AVX512-NEXT: vinserti64x4 $1, %ymm0, %zmm0, %zmm165128; AVX512-NEXT: vmovdqa64 {{.*#+}} zmm0 = [65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,0,0,0,0,0,0,0,0,0,0,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535]5129; AVX512-NEXT: vpternlogq {{.*#+}} zmm2 = zmm17 ^ (zmm0 & (zmm2 ^ zmm17))5130; AVX512-NEXT: vpmovsxdq {{.*#+}} zmm17 = [18446744073709551615,18446744073709551615,18446744073709551615,18446744073709551615,18446744073709551615,65535,0,0]5131; AVX512-NEXT: vpternlogq {{.*#+}} zmm16 = zmm16 ^ (zmm17 & (zmm16 ^ zmm2))5132; AVX512-NEXT: vpshuflw {{.*#+}} xmm2 = xmm10[3,1,2,1,4,5,6,7]5133; AVX512-NEXT: vpshuflw {{.*#+}} xmm10 = xmm11[0,1,3,3,4,5,6,7]5134; AVX512-NEXT: vpshufhw {{.*#+}} xmm10 = xmm10[0,1,2,3,7,7,7,7]5135; AVX512-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0],xmm10[1,2],xmm2[3],xmm10[4,5,6,7]5136; AVX512-NEXT: vpshufhw {{.*#+}} xmm8 = xmm8[0,1,2,3,7,5,6,5]5137; AVX512-NEXT: vpshuflw {{.*#+}} xmm9 = xmm9[1,1,1,1,4,5,6,7]5138; AVX512-NEXT: vpshufhw {{.*#+}} xmm9 = xmm9[0,1,2,3,4,5,7,7]5139; AVX512-NEXT: vpblendw {{.*#+}} xmm8 = xmm9[0,1,2,3],xmm8[4],xmm9[5,6],xmm8[7]5140; AVX512-NEXT: vinserti128 $1, %xmm8, %ymm0, %ymm85141; AVX512-NEXT: vinserti32x4 $2, %xmm2, %zmm8, %zmm25142; AVX512-NEXT: vinserti64x4 $1, %ymm30, %zmm0, %zmm305143; AVX512-NEXT: vinserti64x4 $1, %ymm22, %zmm0, %zmm185144; AVX512-NEXT: vpshuflw {{.*#+}} xmm6 = xmm6[3,1,2,1,4,5,6,7]5145; AVX512-NEXT: vpshuflw {{.*#+}} xmm7 = xmm7[0,1,3,3,4,5,6,7]5146; AVX512-NEXT: vpshufhw {{.*#+}} xmm7 = xmm7[0,1,2,3,7,7,7,7]5147; AVX512-NEXT: vpblendw {{.*#+}} xmm6 = xmm6[0],xmm7[1,2],xmm6[3],xmm7[4,5,6,7]5148; AVX512-NEXT: vpshufb {{.*#+}} ymm5 = ymm5[6,7,2,3,14,15,14,15,14,15,2,3,14,15,10,11,22,23,18,19,30,31,30,31,30,31,18,19,30,31,26,27]5149; AVX512-NEXT: vpblendw {{.*#+}} xmm6 = xmm6[0,1,2,3,4],xmm5[5,6,7]5150; AVX512-NEXT: vpblendd {{.*#+}} ymm5 = ymm6[0,1,2,3],ymm5[4,5,6,7]5151; AVX512-NEXT: vpshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,7,5,6,5]5152; AVX512-NEXT: vpshuflw {{.*#+}} xmm4 = xmm4[1,1,1,1,4,5,6,7]5153; AVX512-NEXT: vpshufhw {{.*#+}} xmm4 = xmm4[0,1,2,3,4,5,7,7]5154; AVX512-NEXT: vpblendw {{.*#+}} xmm3 = xmm4[0,1,2,3],xmm3[4],xmm4[5,6],xmm3[7]5155; AVX512-NEXT: vinserti128 $1, %xmm3, %ymm0, %ymm35156; AVX512-NEXT: vpshufb {{.*#+}} ymm1 = ymm1[6,7,2,3,14,15,14,15,14,15,10,11,u,u,2,3,22,23,18,19,30,31,30,31,30,31,26,27,u,u,18,19]5157; AVX512-NEXT: vpblendw {{.*#+}} ymm3 = ymm1[0,1,2],ymm3[3,4,5,6,7],ymm1[8,9,10],ymm3[11,12,13,14,15]5158; AVX512-NEXT: vpshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,7,4,5]5159; AVX512-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm3[4,5,6,7]5160; AVX512-NEXT: vpternlogq {{.*#+}} zmm5 = zmm2 ^ (zmm0 & (zmm5 ^ zmm2))5161; AVX512-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm205162; AVX512-NEXT: vpternlogq {{.*#+}} zmm20 = zmm20 ^ (zmm17 & (zmm20 ^ zmm5))5163; AVX512-NEXT: vmovdqa {{.*#+}} xmm7 = [8,9,u,u,0,1,12,13,u,u,12,13,12,13,14,15]5164; AVX512-NEXT: vmovdqa64 %ymm31, %ymm05165; AVX512-NEXT: vmovdqa64 %ymm21, %ymm15166; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1],ymm1[2],ymm0[3,4],ymm1[5],ymm0[6,7]5167; AVX512-NEXT: vpshufb %xmm7, %xmm0, %xmm25168; AVX512-NEXT: vextracti128 $1, %ymm0, %xmm15169; AVX512-NEXT: vpshuflw {{.*#+}} xmm3 = xmm1[2,2,2,2,4,5,6,7]5170; AVX512-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0],xmm3[1],xmm2[2,3],xmm3[4],xmm2[5,6,7]5171; AVX512-NEXT: vmovdqa64 %ymm24, %ymm35172; AVX512-NEXT: vmovdqa64 %ymm26, %ymm45173; AVX512-NEXT: vpblendd {{.*#+}} ymm3 = ymm3[0],ymm4[1],ymm3[2,3],ymm4[4],ymm3[5,6],ymm4[7]5174; AVX512-NEXT: vextracti128 $1, %ymm3, %xmm45175; AVX512-NEXT: vpshufd {{.*#+}} xmm6 = xmm3[0,3,2,1]5176; AVX512-NEXT: vpshuflw {{.*#+}} xmm3 = xmm6[0,1,0,2,4,5,6,7]5177; AVX512-NEXT: vpshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,6,6,6,6]5178; AVX512-NEXT: vpbroadcastq {{.*#+}} xmm9 = [8,9,0,0,0,1,12,13,8,9,0,0,0,1,12,13]5179; AVX512-NEXT: vpshufb %xmm9, %xmm4, %xmm55180; AVX512-NEXT: vpblendw {{.*#+}} xmm3 = xmm3[0,1,2,3],xmm5[4],xmm3[5],xmm5[6,7]5181; AVX512-NEXT: vinserti128 $1, %xmm3, %ymm0, %ymm35182; AVX512-NEXT: vinserti32x4 $2, %xmm2, %zmm3, %zmm25183; AVX512-NEXT: vpblendd {{.*#+}} ymm5 = ymm12[0],ymm13[1],ymm12[2,3,4,5],ymm13[6],ymm12[7]5184; AVX512-NEXT: vmovdqa64 %ymm23, %ymm35185; AVX512-NEXT: vmovdqa64 %ymm19, %ymm85186; AVX512-NEXT: vpblendd {{.*#+}} ymm3 = ymm3[0,1],ymm8[2],ymm3[3,4],ymm8[5],ymm3[6,7]5187; AVX512-NEXT: vpshufb %xmm7, %xmm3, %xmm85188; AVX512-NEXT: vextracti128 $1, %ymm3, %xmm75189; AVX512-NEXT: vpshuflw {{.*#+}} xmm10 = xmm7[2,2,2,2,4,5,6,7]5190; AVX512-NEXT: vpblendw {{.*#+}} xmm8 = xmm8[0],xmm10[1],xmm8[2,3],xmm10[4],xmm8[5,6,7]5191; AVX512-NEXT: vpshufb {{.*#+}} ymm10 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm5[4,5,0,1,12,13,24,25,20,21],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero5192; AVX512-NEXT: vmovdqa {{.*#+}} ymm11 = [65535,65535,65535,65535,65535,0,0,0,0,0,65535,65535,65535,65535,65535,65535]5193; AVX512-NEXT: vpternlogq {{.*#+}} ymm8 = (ymm8 & ymm11) | ymm105194; AVX512-NEXT: movw $31, %ax5195; AVX512-NEXT: kmovw %eax, %k15196; AVX512-NEXT: vmovdqa32 %zmm8, %zmm2 {%k1}5197; AVX512-NEXT: vmovdqa64 %ymm28, %ymm85198; AVX512-NEXT: vmovdqa64 %ymm29, %ymm105199; AVX512-NEXT: vpblendd {{.*#+}} ymm10 = ymm8[0],ymm10[1],ymm8[2,3],ymm10[4],ymm8[5,6],ymm10[7]5200; AVX512-NEXT: vextracti128 $1, %ymm10, %xmm85201; AVX512-NEXT: vpshufb %xmm9, %xmm8, %xmm125202; AVX512-NEXT: vpshufd {{.*#+}} xmm9 = xmm10[0,3,2,1]5203; AVX512-NEXT: vpshuflw {{.*#+}} xmm10 = xmm9[0,1,0,2,4,5,6,7]5204; AVX512-NEXT: vpshufhw {{.*#+}} xmm10 = xmm10[0,1,2,3,6,6,6,6]5205; AVX512-NEXT: vpblendw {{.*#+}} xmm10 = xmm10[0,1,2,3],xmm12[4],xmm10[5],xmm12[6,7]5206; AVX512-NEXT: vinserti128 $1, %xmm10, %ymm0, %ymm105207; AVX512-NEXT: vmovdqa64 %ymm25, %ymm125208; AVX512-NEXT: vmovdqa64 %ymm27, %ymm135209; AVX512-NEXT: vpblendd {{.*#+}} ymm12 = ymm13[0],ymm12[1],ymm13[2,3,4,5],ymm12[6],ymm13[7]5210; AVX512-NEXT: vpshufb {{.*#+}} ymm14 = ymm12[8,9,4,5,4,5,6,7,0,1,4,5,0,1,12,13,24,25,20,21,u,u,u,u,u,u,u,u,u,u,u,u]5211; AVX512-NEXT: vpblendd {{.*#+}} ymm10 = ymm14[0,1,2,3,4],ymm10[5,6,7]5212; AVX512-NEXT: vinserti64x4 $1, %ymm10, %zmm0, %zmm105213; AVX512-NEXT: vmovdqa {{.*#+}} xmm14 = [10,11,u,u,2,3,14,15,u,u,10,11,12,13,14,15]5214; AVX512-NEXT: vpshufb %xmm14, %xmm0, %xmm05215; AVX512-NEXT: vpshufd {{.*#+}} xmm1 = xmm1[1,1,2,3]5216; AVX512-NEXT: vpshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,5,5,5,5]5217; AVX512-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0],xmm1[1],xmm0[2,3],xmm1[4],xmm0[5,6,7]5218; AVX512-NEXT: vpbroadcastq {{.*#+}} xmm1 = [10,11,0,0,2,3,14,15,10,11,0,0,2,3,14,15]5219; AVX512-NEXT: vpshufb %xmm1, %xmm4, %xmm45220; AVX512-NEXT: vpshuflw {{.*#+}} xmm6 = xmm6[0,1,1,3,4,5,6,7]5221; AVX512-NEXT: vpshufd {{.*#+}} xmm6 = xmm6[0,1,3,3]5222; AVX512-NEXT: vpblendw {{.*#+}} xmm4 = xmm6[0,1,2,3],xmm4[4],xmm6[5],xmm4[6,7]5223; AVX512-NEXT: vinserti128 $1, %xmm4, %ymm0, %ymm45224; AVX512-NEXT: vinserti32x4 $2, %xmm0, %zmm4, %zmm05225; AVX512-NEXT: vpshufb %xmm14, %xmm3, %xmm35226; AVX512-NEXT: vpshufd {{.*#+}} xmm4 = xmm7[1,1,2,3]5227; AVX512-NEXT: vpshufhw {{.*#+}} xmm4 = xmm4[0,1,2,3,5,5,5,5]5228; AVX512-NEXT: vpblendw {{.*#+}} xmm3 = xmm3[0],xmm4[1],xmm3[2,3],xmm4[4],xmm3[5,6,7]5229; AVX512-NEXT: vpshufb {{.*#+}} ymm4 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm5[6,7,2,3,14,15,26,27,22,23],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero5230; AVX512-NEXT: vpternlogq {{.*#+}} ymm3 = (ymm3 & ymm11) | ymm45231; AVX512-NEXT: vmovdqa32 %zmm3, %zmm0 {%k1}5232; AVX512-NEXT: vpshufb %xmm1, %xmm8, %xmm15233; AVX512-NEXT: vpshuflw {{.*#+}} xmm3 = xmm9[0,1,1,3,4,5,6,7]5234; AVX512-NEXT: vpshufd {{.*#+}} xmm3 = xmm3[0,1,3,3]5235; AVX512-NEXT: vpblendw {{.*#+}} xmm1 = xmm3[0,1,2,3],xmm1[4],xmm3[5],xmm1[6,7]5236; AVX512-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm15237; AVX512-NEXT: vpshufb {{.*#+}} ymm3 = ymm12[10,11,6,7,4,5,6,7,6,7,6,7,2,3,14,15,26,27,22,23,u,u,u,u,u,u,u,u,u,u,u,u]5238; AVX512-NEXT: vpblendd {{.*#+}} ymm1 = ymm3[0,1,2,3,4],ymm1[5,6,7]5239; AVX512-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm15240; AVX512-NEXT: vmovdqa64 {{.*#+}} zmm3 = [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]5241; AVX512-NEXT: vmovdqu64 (%rsp), %zmm4 # 64-byte Reload5242; AVX512-NEXT: vpternlogq $226, {{[-0-9]+}}(%r{{[sb]}}p), %zmm3, %zmm4 # 64-byte Folded Reload5243; AVX512-NEXT: # zmm4 = mem ^ (zmm3 & (zmm4 ^ mem))5244; AVX512-NEXT: movw $-2048, %ax # imm = 0xF8005245; AVX512-NEXT: kmovw %eax, %k15246; AVX512-NEXT: vmovdqa32 %zmm30, %zmm4 {%k1}5247; AVX512-NEXT: vmovdqa64 %zmm4, (%rsi)5248; AVX512-NEXT: vpternlogq $226, {{[-0-9]+}}(%r{{[sb]}}p), %zmm3, %zmm15 # 64-byte Folded Reload5249; AVX512-NEXT: # zmm15 = mem ^ (zmm3 & (zmm15 ^ mem))5250; AVX512-NEXT: vmovdqa32 %zmm18, %zmm15 {%k1}5251; AVX512-NEXT: vmovdqa64 %zmm15, (%rdx)5252; AVX512-NEXT: movq {{[0-9]+}}(%rsp), %rax5253; AVX512-NEXT: vpternlogq {{.*#+}} zmm10 = zmm10 ^ (zmm17 & (zmm10 ^ zmm2))5254; AVX512-NEXT: vpternlogq {{.*#+}} zmm1 = zmm1 ^ (zmm17 & (zmm1 ^ zmm0))5255; AVX512-NEXT: vmovdqa64 %zmm16, (%rcx)5256; AVX512-NEXT: vmovdqa64 %zmm20, (%r8)5257; AVX512-NEXT: vmovdqa64 %zmm10, (%r9)5258; AVX512-NEXT: vmovdqa64 %zmm1, (%rax)5259; AVX512-NEXT: addq $72, %rsp5260; AVX512-NEXT: vzeroupper5261; AVX512-NEXT: retq5262;5263; AVX512-FCP-LABEL: load_i16_stride6_vf32:5264; AVX512-FCP: # %bb.0:5265; AVX512-FCP-NEXT: subq $136, %rsp5266; AVX512-FCP-NEXT: vmovdqa {{.*#+}} xmm1 = [0,1,12,13,0,1,4,5,8,9,12,13,12,13,14,15]5267; AVX512-FCP-NEXT: vmovdqa 224(%rdi), %ymm135268; AVX512-FCP-NEXT: vmovdqa 192(%rdi), %ymm155269; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm7 = ymm15[0],ymm13[1],ymm15[2,3],ymm13[4],ymm15[5,6],ymm13[7]5270; AVX512-FCP-NEXT: vpshufb %xmm1, %xmm7, %xmm25271; AVX512-FCP-NEXT: vextracti128 $1, %ymm7, %xmm35272; AVX512-FCP-NEXT: vpshufd {{.*#+}} xmm11 = xmm3[2,1,0,3]5273; AVX512-FCP-NEXT: vpshufb %xmm1, %xmm11, %xmm35274; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm4 = xmm2[0,1],xmm3[2],xmm2[3],xmm3[4,5],xmm2[6,7]5275; AVX512-FCP-NEXT: vmovdqa 160(%rdi), %ymm35276; AVX512-FCP-NEXT: vmovdqa (%rdi), %ymm05277; AVX512-FCP-NEXT: vmovdqa 32(%rdi), %ymm105278; AVX512-FCP-NEXT: vmovdqa 64(%rdi), %ymm65279; AVX512-FCP-NEXT: vmovdqa 128(%rdi), %ymm125280; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm12[0,1],ymm3[2],ymm12[3,4],ymm3[5],ymm12[6,7]5281; AVX512-FCP-NEXT: vmovdqa64 %ymm3, %ymm265282; AVX512-FCP-NEXT: vmovdqa {{.*#+}} xmm9 = [0,1,4,5,4,5,4,5,0,1,12,13,8,9,4,5]5283; AVX512-FCP-NEXT: vpshufb %xmm9, %xmm2, %xmm55284; AVX512-FCP-NEXT: vextracti128 $1, %ymm2, %xmm35285; AVX512-FCP-NEXT: vpshufb %xmm9, %xmm3, %xmm85286; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm5 = xmm8[0,1,2],xmm5[3],xmm8[4,5],xmm5[6],xmm8[7]5287; AVX512-FCP-NEXT: vinserti128 $1, %xmm5, %ymm0, %ymm55288; AVX512-FCP-NEXT: vinserti32x4 $2, %xmm4, %zmm5, %zmm45289; AVX512-FCP-NEXT: vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill5290; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm4 = ymm0[0],ymm10[1],ymm0[2,3],ymm10[4],ymm0[5,6],ymm10[7]5291; AVX512-FCP-NEXT: vmovdqa64 %ymm10, %ymm165292; AVX512-FCP-NEXT: vmovdqa64 %ymm0, %ymm225293; AVX512-FCP-NEXT: vpshufb %xmm1, %xmm4, %xmm85294; AVX512-FCP-NEXT: vextracti128 $1, %ymm4, %xmm55295; AVX512-FCP-NEXT: vpshufd {{.*#+}} xmm5 = xmm5[2,1,0,3]5296; AVX512-FCP-NEXT: vpshufb %xmm1, %xmm5, %xmm15297; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm1 = xmm8[0,1],xmm1[2],xmm8[3],xmm1[4,5],xmm8[6,7]5298; AVX512-FCP-NEXT: vperm2i128 {{.*#+}} ymm0 = ymm6[2,3],mem[2,3]5299; AVX512-FCP-NEXT: vinserti128 $1, 96(%rdi), %ymm6, %ymm85300; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm6 = ymm8[0],ymm0[1],ymm8[2,3,4,5],ymm0[6],ymm8[7]5301; AVX512-FCP-NEXT: vmovdqa64 %ymm8, %ymm275302; AVX512-FCP-NEXT: vmovdqa64 %ymm0, %ymm285303; AVX512-FCP-NEXT: vpshufb {{.*#+}} ymm8 = ymm6[u,u,u,u,u,u,u,u,u,u,u,u,8,9,4,5,16,17,28,29,24,25,28,29,24,25,28,29,24,25,20,21]5304; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1,2],ymm8[3,4,5,6,7]5305; AVX512-FCP-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill5306; AVX512-FCP-NEXT: vmovdqa 352(%rdi), %ymm05307; AVX512-FCP-NEXT: vmovdqa 320(%rdi), %ymm85308; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm8[0,1],ymm0[2],ymm8[3,4],ymm0[5],ymm8[6,7]5309; AVX512-FCP-NEXT: vmovdqa64 %ymm8, %ymm195310; AVX512-FCP-NEXT: vmovdqa64 %ymm0, %ymm205311; AVX512-FCP-NEXT: vpshufb %xmm9, %xmm1, %xmm105312; AVX512-FCP-NEXT: vextracti128 $1, %ymm1, %xmm85313; AVX512-FCP-NEXT: vpshufb %xmm9, %xmm8, %xmm95314; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm9 = xmm9[0,1,2],xmm10[3],xmm9[4,5],xmm10[6],xmm9[7]5315; AVX512-FCP-NEXT: vinserti128 $1, %xmm9, %ymm0, %ymm105316; AVX512-FCP-NEXT: vmovdqa 256(%rdi), %ymm95317; AVX512-FCP-NEXT: vperm2i128 {{.*#+}} ymm0 = ymm9[2,3],mem[2,3]5318; AVX512-FCP-NEXT: vinserti128 $1, 288(%rdi), %ymm9, %ymm145319; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm9 = ymm14[0],ymm0[1],ymm14[2,3,4,5],ymm0[6],ymm14[7]5320; AVX512-FCP-NEXT: vmovdqa64 %ymm14, %ymm245321; AVX512-FCP-NEXT: vmovdqa64 %ymm0, %ymm255322; AVX512-FCP-NEXT: vpshufb {{.*#+}} ymm0 = ymm9[0,1,12,13,8,9,12,13,8,9,12,13,4,5,u,u,16,17,28,29,24,25,28,29,24,25,28,29,20,21,u,u]5323; AVX512-FCP-NEXT: vpblendw {{.*#+}} ymm10 = ymm0[0,1,2],ymm10[3,4,5,6,7],ymm0[8,9,10],ymm10[11,12,13,14,15]5324; AVX512-FCP-NEXT: vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,5,4,6]5325; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm10[4,5,6,7]5326; AVX512-FCP-NEXT: vmovdqa64 %ymm0, %ymm295327; AVX512-FCP-NEXT: vmovdqa {{.*#+}} xmm0 = [2,3,14,15,2,3,6,7,10,11,14,15,12,13,14,15]5328; AVX512-FCP-NEXT: vpshufb %xmm0, %xmm7, %xmm75329; AVX512-FCP-NEXT: vpshufb %xmm0, %xmm11, %xmm105330; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm7 = xmm7[0,1],xmm10[2],xmm7[3],xmm10[4,5],xmm7[6,7]5331; AVX512-FCP-NEXT: vmovdqa {{.*#+}} xmm11 = [6,7,2,3,4,5,u,u,2,3,14,15,u,u,6,7]5332; AVX512-FCP-NEXT: vpshufb %xmm11, %xmm3, %xmm35333; AVX512-FCP-NEXT: vpshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,5,5,5,5]5334; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm2 = xmm3[0,1,2],xmm2[3],xmm3[4,5],xmm2[6],xmm3[7]5335; AVX512-FCP-NEXT: vinserti128 $1, %xmm2, %ymm0, %ymm25336; AVX512-FCP-NEXT: vinserti32x4 $2, %xmm7, %zmm2, %zmm25337; AVX512-FCP-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill5338; AVX512-FCP-NEXT: vpshufb %xmm0, %xmm4, %xmm25339; AVX512-FCP-NEXT: vpshufb %xmm0, %xmm5, %xmm05340; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm0 = xmm2[0,1],xmm0[2],xmm2[3],xmm0[4,5],xmm2[6,7]5341; AVX512-FCP-NEXT: vpshufb {{.*#+}} ymm2 = ymm6[u,u,u,u,u,u,u,u,u,u,u,u,10,11,6,7,18,19,30,31,26,27,26,27,30,31,26,27,26,27,22,23]5342; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2],ymm2[3,4,5,6,7]5343; AVX512-FCP-NEXT: vmovdqu64 %zmm0, (%rsp) # 64-byte Spill5344; AVX512-FCP-NEXT: vpshufb %xmm11, %xmm8, %xmm05345; AVX512-FCP-NEXT: vpshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,5,5,5,5]5346; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2],xmm1[3],xmm0[4,5],xmm1[6],xmm0[7]5347; AVX512-FCP-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm05348; AVX512-FCP-NEXT: vpshufb {{.*#+}} ymm1 = ymm9[2,3,14,15,10,11,10,11,14,15,10,11,u,u,6,7,18,19,30,31,26,27,26,27,30,31,26,27,u,u,22,23]5349; AVX512-FCP-NEXT: vpblendw {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3,4,5,6,7],ymm1[8,9,10],ymm0[11,12,13,14,15]5350; AVX512-FCP-NEXT: vpshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,5,5,7]5351; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]5352; AVX512-FCP-NEXT: vmovdqa64 %ymm0, %ymm185353; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm15[0,1],ymm13[2],ymm15[3,4],ymm13[5],ymm15[6,7]5354; AVX512-FCP-NEXT: vmovdqa64 %ymm13, %ymm305355; AVX512-FCP-NEXT: vmovdqa64 %ymm15, %ymm315356; AVX512-FCP-NEXT: vextracti128 $1, %ymm0, %xmm15357; AVX512-FCP-NEXT: vpshufd {{.*#+}} xmm10 = xmm0[2,1,2,3]5358; AVX512-FCP-NEXT: vpshuflw {{.*#+}} xmm0 = xmm10[2,1,2,0,4,5,6,7]5359; AVX512-FCP-NEXT: vpshufd {{.*#+}} xmm9 = xmm1[0,3,2,1]5360; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm1 = xmm9[u,u,0,1,4,5,u,u,12,13,12,13,12,13,12,13]5361; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm1 = xmm0[0],xmm1[1,2],xmm0[3],xmm1[4,5,6,7]5362; AVX512-FCP-NEXT: vmovdqa64 %ymm26, %ymm05363; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1],ymm12[2],ymm0[3,4],ymm12[5],ymm0[6,7]5364; AVX512-FCP-NEXT: vmovdqa64 %ymm12, %ymm215365; AVX512-FCP-NEXT: vextracti128 $1, %ymm0, %xmm25366; AVX512-FCP-NEXT: vpshufd {{.*#+}} xmm8 = xmm0[2,1,0,3]5367; AVX512-FCP-NEXT: vmovdqa {{.*#+}} xmm0 = [0,1,0,1,0,1,0,1,u,u,8,9,12,13,u,u]5368; AVX512-FCP-NEXT: vpshufb %xmm0, %xmm8, %xmm35369; AVX512-FCP-NEXT: vpshufd {{.*#+}} xmm7 = xmm2[0,1,2,1]5370; AVX512-FCP-NEXT: vpshufhw {{.*#+}} xmm2 = xmm7[0,1,2,3,6,5,6,4]5371; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm2 = xmm3[0,1,2,3],xmm2[4],xmm3[5,6],xmm2[7]5372; AVX512-FCP-NEXT: vinserti128 $1, %xmm2, %ymm0, %ymm25373; AVX512-FCP-NEXT: vinserti32x4 $2, %xmm1, %zmm2, %zmm175374; AVX512-FCP-NEXT: vmovdqa64 %ymm16, %ymm235375; AVX512-FCP-NEXT: vmovdqa64 %ymm16, %ymm15376; AVX512-FCP-NEXT: vmovdqa64 %ymm22, %ymm25377; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0,1],ymm1[2],ymm2[3,4],ymm1[5],ymm2[6,7]5378; AVX512-FCP-NEXT: vextracti128 $1, %ymm1, %xmm25379; AVX512-FCP-NEXT: vpshufd {{.*#+}} xmm5 = xmm1[2,1,2,3]5380; AVX512-FCP-NEXT: vpshuflw {{.*#+}} xmm1 = xmm5[2,1,2,0,4,5,6,7]5381; AVX512-FCP-NEXT: vpshufd {{.*#+}} xmm4 = xmm2[0,3,2,1]5382; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm2 = xmm4[u,u,0,1,4,5,u,u,12,13,u,u,u,u,u,u]5383; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0],xmm2[1,2],xmm1[3],xmm2[4,5,6,7]5384; AVX512-FCP-NEXT: vmovdqa64 %ymm27, %ymm145385; AVX512-FCP-NEXT: vmovdqa64 %ymm28, %ymm125386; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm6 = ymm14[0,1],ymm12[2],ymm14[3],ymm12[4],ymm14[5,6],ymm12[7]5387; AVX512-FCP-NEXT: vpshufb {{.*#+}} ymm2 = ymm6[4,5,0,1,12,13,14,15,8,9,0,1,12,13,8,9,20,21,16,17,28,29,30,31,24,25,16,17,28,29,24,25]5388; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1,2,3,4],xmm2[5,6,7]5389; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm11 = ymm1[0,1,2,3],ymm2[4,5,6,7]5390; AVX512-FCP-NEXT: vmovdqa64 %ymm19, %ymm275391; AVX512-FCP-NEXT: vmovdqa64 %ymm20, %ymm155392; AVX512-FCP-NEXT: vmovdqa64 %ymm19, %ymm15393; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm15[0,1],ymm1[2],ymm15[3,4],ymm1[5],ymm15[6,7]5394; AVX512-FCP-NEXT: vextracti32x4 $1, %ymm1, %xmm165395; AVX512-FCP-NEXT: vpshufd {{.*#+}} xmm3 = xmm1[2,1,0,3]5396; AVX512-FCP-NEXT: vpshufb %xmm0, %xmm3, %xmm05397; AVX512-FCP-NEXT: vpshufd {{.*#+}} xmm2 = xmm16[0,1,2,1]5398; AVX512-FCP-NEXT: vpshufhw {{.*#+}} xmm13 = xmm2[0,1,2,3,6,5,6,4]5399; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2,3],xmm13[4],xmm0[5,6],xmm13[7]5400; AVX512-FCP-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm135401; AVX512-FCP-NEXT: vmovdqa64 %ymm24, %ymm05402; AVX512-FCP-NEXT: vmovdqa64 %ymm25, %ymm15403; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm0[0,1],ymm1[2],ymm0[3],ymm1[4],ymm0[5,6],ymm1[7]5404; AVX512-FCP-NEXT: vpshufb {{.*#+}} ymm0 = ymm1[4,5,0,1,12,13,14,15,8,9,12,13,0,1,u,u,20,21,16,17,28,29,30,31,24,25,28,29,16,17,u,u]5405; AVX512-FCP-NEXT: vpblendw {{.*#+}} ymm13 = ymm0[0,1,2],ymm13[3,4,5,6,7],ymm0[8,9,10],ymm13[11,12,13,14,15]5406; AVX512-FCP-NEXT: vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,6,5,4]5407; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm13[4,5,6,7]5408; AVX512-FCP-NEXT: vinserti64x4 $1, %ymm0, %zmm0, %zmm165409; AVX512-FCP-NEXT: vmovdqa64 {{.*#+}} zmm0 = [65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,0,0,0,0,0,0,0,0,0,0,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535]5410; AVX512-FCP-NEXT: vpternlogq {{.*#+}} zmm11 = zmm17 ^ (zmm0 & (zmm11 ^ zmm17))5411; AVX512-FCP-NEXT: vpmovsxdq {{.*#+}} zmm17 = [18446744073709551615,18446744073709551615,18446744073709551615,18446744073709551615,18446744073709551615,65535,0,0]5412; AVX512-FCP-NEXT: vpternlogq {{.*#+}} zmm16 = zmm16 ^ (zmm17 & (zmm16 ^ zmm11))5413; AVX512-FCP-NEXT: vpshuflw {{.*#+}} xmm10 = xmm10[3,1,2,1,4,5,6,7]5414; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm9 = xmm9[u,u,2,3,6,7,u,u,14,15,14,15,14,15,14,15]5415; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm9 = xmm10[0],xmm9[1,2],xmm10[3],xmm9[4,5,6,7]5416; AVX512-FCP-NEXT: vmovdqa {{.*#+}} xmm10 = [2,3,2,3,2,3,2,3,u,u,10,11,14,15,u,u]5417; AVX512-FCP-NEXT: vpshufb %xmm10, %xmm8, %xmm85418; AVX512-FCP-NEXT: vpshufhw {{.*#+}} xmm7 = xmm7[0,1,2,3,7,5,6,5]5419; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm7 = xmm8[0,1,2,3],xmm7[4],xmm8[5,6],xmm7[7]5420; AVX512-FCP-NEXT: vinserti128 $1, %xmm7, %ymm0, %ymm75421; AVX512-FCP-NEXT: vinserti32x4 $2, %xmm9, %zmm7, %zmm75422; AVX512-FCP-NEXT: vpshuflw {{.*#+}} xmm5 = xmm5[3,1,2,1,4,5,6,7]5423; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm4 = xmm4[u,u,2,3,6,7,u,u,14,15,u,u,u,u,u,u]5424; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm4 = xmm5[0],xmm4[1,2],xmm5[3],xmm4[4,5,6,7]5425; AVX512-FCP-NEXT: vinserti64x4 $1, %ymm29, %zmm0, %zmm195426; AVX512-FCP-NEXT: vinserti64x4 $1, %ymm18, %zmm0, %zmm285427; AVX512-FCP-NEXT: vpshufb {{.*#+}} ymm5 = ymm6[6,7,2,3,14,15,14,15,14,15,2,3,14,15,10,11,22,23,18,19,30,31,30,31,30,31,18,19,30,31,26,27]5428; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm4 = xmm4[0,1,2,3,4],xmm5[5,6,7]5429; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm5[4,5,6,7]5430; AVX512-FCP-NEXT: vpshufb %xmm10, %xmm3, %xmm35431; AVX512-FCP-NEXT: vpshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,7,5,6,5]5432; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm2 = xmm3[0,1,2,3],xmm2[4],xmm3[5,6],xmm2[7]5433; AVX512-FCP-NEXT: vinserti128 $1, %xmm2, %ymm0, %ymm25434; AVX512-FCP-NEXT: vpshufb {{.*#+}} ymm1 = ymm1[6,7,2,3,14,15,14,15,14,15,10,11,u,u,2,3,22,23,18,19,30,31,30,31,30,31,26,27,u,u,18,19]5435; AVX512-FCP-NEXT: vpblendw {{.*#+}} ymm2 = ymm1[0,1,2],ymm2[3,4,5,6,7],ymm1[8,9,10],ymm2[11,12,13,14,15]5436; AVX512-FCP-NEXT: vpshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,7,4,5]5437; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm2[4,5,6,7]5438; AVX512-FCP-NEXT: vpternlogq {{.*#+}} zmm4 = zmm7 ^ (zmm0 & (zmm4 ^ zmm7))5439; AVX512-FCP-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm205440; AVX512-FCP-NEXT: vpternlogq {{.*#+}} zmm20 = zmm20 ^ (zmm17 & (zmm20 ^ zmm4))5441; AVX512-FCP-NEXT: vmovdqa {{.*#+}} xmm5 = [8,9,u,u,0,1,12,13,u,u,12,13,12,13,14,15]5442; AVX512-FCP-NEXT: vmovdqa64 %ymm30, %ymm05443; AVX512-FCP-NEXT: vmovdqa64 %ymm31, %ymm15444; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm0[0,1],ymm1[2],ymm0[3,4],ymm1[5],ymm0[6,7]5445; AVX512-FCP-NEXT: vpshufb %xmm5, %xmm1, %xmm05446; AVX512-FCP-NEXT: vextracti128 $1, %ymm1, %xmm45447; AVX512-FCP-NEXT: vpshuflw {{.*#+}} xmm2 = xmm4[2,2,2,2,4,5,6,7]5448; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0],xmm2[1],xmm0[2,3],xmm2[4],xmm0[5,6,7]5449; AVX512-FCP-NEXT: vmovdqa64 %ymm26, %ymm25450; AVX512-FCP-NEXT: vmovdqa64 %ymm21, %ymm35451; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm3[0],ymm2[1],ymm3[2,3],ymm2[4],ymm3[5,6],ymm2[7]5452; AVX512-FCP-NEXT: vextracti128 $1, %ymm2, %xmm65453; AVX512-FCP-NEXT: vpshufd {{.*#+}} xmm3 = xmm2[0,3,2,1]5454; AVX512-FCP-NEXT: vmovdqa {{.*#+}} xmm8 = [0,1,2,3,0,1,4,5,8,9,12,13,0,1,12,13]5455; AVX512-FCP-NEXT: vpshufb %xmm8, %xmm6, %xmm25456; AVX512-FCP-NEXT: vpshufb %xmm8, %xmm3, %xmm75457; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm2 = xmm7[0,1,2,3],xmm2[4],xmm7[5],xmm2[6,7]5458; AVX512-FCP-NEXT: vinserti128 $1, %xmm2, %ymm0, %ymm25459; AVX512-FCP-NEXT: vinserti32x4 $2, %xmm0, %zmm2, %zmm25460; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm12[0],ymm14[1],ymm12[2,3,4,5],ymm14[6],ymm12[7]5461; AVX512-FCP-NEXT: vmovdqa64 %ymm23, %ymm75462; AVX512-FCP-NEXT: vmovdqa64 %ymm22, %ymm95463; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm7 = ymm7[0,1],ymm9[2],ymm7[3,4],ymm9[5],ymm7[6,7]5464; AVX512-FCP-NEXT: vpshufb %xmm5, %xmm7, %xmm55465; AVX512-FCP-NEXT: vextracti128 $1, %ymm7, %xmm95466; AVX512-FCP-NEXT: vpshuflw {{.*#+}} xmm10 = xmm9[2,2,2,2,4,5,6,7]5467; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm5 = xmm5[0],xmm10[1],xmm5[2,3],xmm10[4],xmm5[5,6,7]5468; AVX512-FCP-NEXT: vpshufb {{.*#+}} ymm10 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm0[4,5,0,1,12,13,24,25,20,21],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero5469; AVX512-FCP-NEXT: vmovdqa {{.*#+}} ymm11 = [65535,65535,65535,65535,65535,0,0,0,0,0,65535,65535,65535,65535,65535,65535]5470; AVX512-FCP-NEXT: vpternlogq {{.*#+}} ymm5 = (ymm5 & ymm11) | ymm105471; AVX512-FCP-NEXT: movw $31, %ax5472; AVX512-FCP-NEXT: kmovw %eax, %k15473; AVX512-FCP-NEXT: vmovdqa32 %zmm5, %zmm2 {%k1}5474; AVX512-FCP-NEXT: vmovdqa64 %ymm27, %ymm55475; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm10 = ymm5[0],ymm15[1],ymm5[2,3],ymm15[4],ymm5[5,6],ymm15[7]5476; AVX512-FCP-NEXT: vextracti128 $1, %ymm10, %xmm55477; AVX512-FCP-NEXT: vpshufb %xmm8, %xmm5, %xmm135478; AVX512-FCP-NEXT: vpshufd {{.*#+}} xmm10 = xmm10[0,3,2,1]5479; AVX512-FCP-NEXT: vpshufb %xmm8, %xmm10, %xmm85480; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm8 = xmm8[0,1,2,3],xmm13[4],xmm8[5],xmm13[6,7]5481; AVX512-FCP-NEXT: vinserti128 $1, %xmm8, %ymm0, %ymm85482; AVX512-FCP-NEXT: vmovdqa64 %ymm24, %ymm125483; AVX512-FCP-NEXT: vmovdqa64 %ymm25, %ymm135484; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm13 = ymm13[0],ymm12[1],ymm13[2,3,4,5],ymm12[6],ymm13[7]5485; AVX512-FCP-NEXT: vpshufb {{.*#+}} ymm15 = ymm13[8,9,4,5,4,5,6,7,0,1,4,5,0,1,12,13,24,25,20,21,u,u,u,u,u,u,u,u,u,u,u,u]5486; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm8 = ymm15[0,1,2,3,4],ymm8[5,6,7]5487; AVX512-FCP-NEXT: vinserti64x4 $1, %ymm8, %zmm0, %zmm85488; AVX512-FCP-NEXT: vmovdqa {{.*#+}} xmm15 = [10,11,6,7,2,3,14,15,10,11,10,11,12,13,14,15]5489; AVX512-FCP-NEXT: vpshufb %xmm15, %xmm9, %xmm95490; AVX512-FCP-NEXT: vpshufb %xmm15, %xmm7, %xmm75491; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm7 = xmm7[0],xmm9[1],xmm7[2,3],xmm9[4],xmm7[5,6,7]5492; AVX512-FCP-NEXT: vpshufb {{.*#+}} ymm0 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm0[6,7,2,3,14,15,26,27,22,23],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero5493; AVX512-FCP-NEXT: vpternlogq {{.*#+}} ymm0 = ymm0 | (ymm7 & ymm11)5494; AVX512-FCP-NEXT: vpshufb %xmm15, %xmm4, %xmm45495; AVX512-FCP-NEXT: vpshufb %xmm15, %xmm1, %xmm15496; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0],xmm4[1],xmm1[2,3],xmm4[4],xmm1[5,6,7]5497; AVX512-FCP-NEXT: vmovdqa {{.*#+}} xmm4 = [0,1,2,3,2,3,6,7,10,11,14,15,2,3,14,15]5498; AVX512-FCP-NEXT: vpshufb %xmm4, %xmm6, %xmm65499; AVX512-FCP-NEXT: vpshufb %xmm4, %xmm3, %xmm35500; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm3 = xmm3[0,1,2,3],xmm6[4],xmm3[5],xmm6[6,7]5501; AVX512-FCP-NEXT: vinserti128 $1, %xmm3, %ymm0, %ymm35502; AVX512-FCP-NEXT: vinserti32x4 $2, %xmm1, %zmm3, %zmm15503; AVX512-FCP-NEXT: vmovdqa32 %zmm0, %zmm1 {%k1}5504; AVX512-FCP-NEXT: vpshufb %xmm4, %xmm5, %xmm05505; AVX512-FCP-NEXT: vpshufb %xmm4, %xmm10, %xmm35506; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm0 = xmm3[0,1,2,3],xmm0[4],xmm3[5],xmm0[6,7]5507; AVX512-FCP-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm05508; AVX512-FCP-NEXT: vpshufb {{.*#+}} ymm3 = ymm13[10,11,6,7,4,5,6,7,6,7,6,7,2,3,14,15,26,27,22,23,u,u,u,u,u,u,u,u,u,u,u,u]5509; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm3[0,1,2,3,4],ymm0[5,6,7]5510; AVX512-FCP-NEXT: vinserti64x4 $1, %ymm0, %zmm0, %zmm05511; AVX512-FCP-NEXT: vmovdqa64 {{.*#+}} zmm3 = [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]5512; AVX512-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload5513; AVX512-FCP-NEXT: vpternlogq $226, {{[-0-9]+}}(%r{{[sb]}}p), %zmm3, %zmm4 # 64-byte Folded Reload5514; AVX512-FCP-NEXT: # zmm4 = mem ^ (zmm3 & (zmm4 ^ mem))5515; AVX512-FCP-NEXT: movw $-2048, %ax # imm = 0xF8005516; AVX512-FCP-NEXT: kmovw %eax, %k15517; AVX512-FCP-NEXT: vmovdqa32 %zmm19, %zmm4 {%k1}5518; AVX512-FCP-NEXT: vmovdqa64 %zmm4, (%rsi)5519; AVX512-FCP-NEXT: vmovdqu64 (%rsp), %zmm4 # 64-byte Reload5520; AVX512-FCP-NEXT: vpternlogq $226, {{[-0-9]+}}(%r{{[sb]}}p), %zmm3, %zmm4 # 64-byte Folded Reload5521; AVX512-FCP-NEXT: # zmm4 = mem ^ (zmm3 & (zmm4 ^ mem))5522; AVX512-FCP-NEXT: vmovdqa32 %zmm28, %zmm4 {%k1}5523; AVX512-FCP-NEXT: vmovdqa64 %zmm4, (%rdx)5524; AVX512-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax5525; AVX512-FCP-NEXT: vpternlogq {{.*#+}} zmm8 = zmm8 ^ (zmm17 & (zmm8 ^ zmm2))5526; AVX512-FCP-NEXT: vpternlogq {{.*#+}} zmm0 = zmm0 ^ (zmm17 & (zmm0 ^ zmm1))5527; AVX512-FCP-NEXT: vmovdqa64 %zmm16, (%rcx)5528; AVX512-FCP-NEXT: vmovdqa64 %zmm20, (%r8)5529; AVX512-FCP-NEXT: vmovdqa64 %zmm8, (%r9)5530; AVX512-FCP-NEXT: vmovdqa64 %zmm0, (%rax)5531; AVX512-FCP-NEXT: addq $136, %rsp5532; AVX512-FCP-NEXT: vzeroupper5533; AVX512-FCP-NEXT: retq5534;5535; AVX512DQ-LABEL: load_i16_stride6_vf32:5536; AVX512DQ: # %bb.0:5537; AVX512DQ-NEXT: pushq %rax5538; AVX512DQ-NEXT: vmovdqa {{.*#+}} xmm0 = [0,1,12,13,u,u,4,5,u,u,u,u,12,13,14,15]5539; AVX512DQ-NEXT: vmovdqa 224(%rdi), %ymm135540; AVX512DQ-NEXT: vmovdqa 192(%rdi), %ymm25541; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm3 = ymm2[0],ymm13[1],ymm2[2,3],ymm13[4],ymm2[5,6],ymm13[7]5542; AVX512DQ-NEXT: vmovdqa64 %ymm2, %ymm255543; AVX512DQ-NEXT: vpshufb %xmm0, %xmm3, %xmm15544; AVX512DQ-NEXT: vextracti128 $1, %ymm3, %xmm95545; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm2 = xmm9[0,2,0,3]5546; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,6,6,7]5547; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1],xmm2[2],xmm1[3],xmm2[4,5],xmm1[6,7]5548; AVX512DQ-NEXT: vmovdqa 160(%rdi), %ymm25549; AVX512DQ-NEXT: vmovdqa (%rdi), %ymm55550; AVX512DQ-NEXT: vmovdqa 32(%rdi), %ymm65551; AVX512DQ-NEXT: vmovdqa 64(%rdi), %ymm45552; AVX512DQ-NEXT: vmovdqa 128(%rdi), %ymm75553; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm14 = ymm7[0,1],ymm2[2],ymm7[3,4],ymm2[5],ymm7[6,7]5554; AVX512DQ-NEXT: vmovdqa64 %ymm7, %ymm205555; AVX512DQ-NEXT: vmovdqa64 %ymm2, %ymm225556; AVX512DQ-NEXT: vextracti128 $1, %ymm14, %xmm155557; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm2 = xmm14[2,2,2,2,4,5,6,7]5558; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm2 = xmm15[0,1,2],xmm2[3,4],xmm15[5,6,7]5559; AVX512DQ-NEXT: vmovdqa {{.*#+}} xmm7 = [0,1,4,5,4,5,6,7,0,1,12,13,8,9,4,5]5560; AVX512DQ-NEXT: vpshufb %xmm7, %xmm2, %xmm25561; AVX512DQ-NEXT: vinserti128 $1, %xmm2, %ymm0, %ymm25562; AVX512DQ-NEXT: vinserti32x4 $2, %xmm1, %zmm2, %zmm165563; AVX512DQ-NEXT: vperm2i128 {{.*#+}} ymm1 = ymm4[2,3],mem[2,3]5564; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm2 = ymm5[0],ymm6[1],ymm5[2,3],ymm6[4],ymm5[5,6],ymm6[7]5565; AVX512DQ-NEXT: vmovdqa64 %ymm6, %ymm185566; AVX512DQ-NEXT: vmovdqa64 %ymm5, %ymm195567; AVX512DQ-NEXT: vpshufb %xmm0, %xmm2, %xmm05568; AVX512DQ-NEXT: vextracti128 $1, %ymm2, %xmm65569; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm5 = xmm6[0,2,0,3]5570; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm5 = xmm5[0,1,2,3,4,6,6,7]5571; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1],xmm5[2],xmm0[3],xmm5[4,5],xmm0[6,7]5572; AVX512DQ-NEXT: vinserti128 $1, 96(%rdi), %ymm4, %ymm125573; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm4 = ymm12[0],ymm1[1],ymm12[2,3,4,5],ymm1[6],ymm12[7]5574; AVX512DQ-NEXT: vmovdqa64 %ymm1, %ymm285575; AVX512DQ-NEXT: vpshufb {{.*#+}} ymm5 = ymm4[u,u,u,u,u,u,u,u,u,u,u,u,8,9,4,5,16,17,28,29,24,25,28,29,24,25,28,29,24,25,20,21]5576; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm10 = ymm0[0,1,2],ymm5[3,4,5,6,7]5577; AVX512DQ-NEXT: vmovdqa 352(%rdi), %ymm05578; AVX512DQ-NEXT: vmovdqa 320(%rdi), %ymm55579; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm1 = ymm5[0,1],ymm0[2],ymm5[3,4],ymm0[5],ymm5[6,7]5580; AVX512DQ-NEXT: vmovdqa64 %ymm5, %ymm215581; AVX512DQ-NEXT: vmovdqa64 %ymm0, %ymm235582; AVX512DQ-NEXT: vextracti128 $1, %ymm1, %xmm55583; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm11 = xmm1[2,2,2,2,4,5,6,7]5584; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm11 = xmm5[0,1,2],xmm11[3,4],xmm5[5,6,7]5585; AVX512DQ-NEXT: vpshufb %xmm7, %xmm11, %xmm75586; AVX512DQ-NEXT: vinserti128 $1, %xmm7, %ymm0, %ymm85587; AVX512DQ-NEXT: vmovdqa 256(%rdi), %ymm75588; AVX512DQ-NEXT: vperm2i128 {{.*#+}} ymm0 = ymm7[2,3],mem[2,3]5589; AVX512DQ-NEXT: vinserti128 $1, 288(%rdi), %ymm7, %ymm115590; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm7 = ymm11[0],ymm0[1],ymm11[2,3,4,5],ymm0[6],ymm11[7]5591; AVX512DQ-NEXT: vmovdqa64 %ymm11, %ymm245592; AVX512DQ-NEXT: vmovdqa64 %ymm0, %ymm265593; AVX512DQ-NEXT: vpshufb {{.*#+}} ymm0 = ymm7[0,1,12,13,8,9,12,13,8,9,12,13,4,5,u,u,16,17,28,29,24,25,28,29,24,25,28,29,20,21,u,u]5594; AVX512DQ-NEXT: vpblendw {{.*#+}} ymm8 = ymm0[0,1,2],ymm8[3,4,5,6,7],ymm0[8,9,10],ymm8[11,12,13,14,15]5595; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,5,4,6]5596; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm8[4,5,6,7]5597; 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]5598; AVX512DQ-NEXT: vpternlogq {{.*#+}} zmm10 = zmm16 ^ (zmm17 & (zmm10 ^ zmm16))5599; AVX512DQ-NEXT: movw $-2048, %ax # imm = 0xF8005600; AVX512DQ-NEXT: kmovw %eax, %k15601; AVX512DQ-NEXT: vinserti32x8 $1, %ymm0, %zmm0, %zmm10 {%k1}5602; AVX512DQ-NEXT: vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill5603; AVX512DQ-NEXT: vmovdqa {{.*#+}} xmm0 = [2,3,14,15,10,11,6,7,2,3,14,15,12,13,14,15]5604; AVX512DQ-NEXT: vpshufb %xmm0, %xmm9, %xmm85605; AVX512DQ-NEXT: vpshufb %xmm0, %xmm3, %xmm35606; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm3 = xmm3[0,1],xmm8[2],xmm3[3],xmm8[4,5],xmm3[6,7]5607; AVX512DQ-NEXT: vmovdqa {{.*#+}} xmm9 = [6,7,2,3,4,5,u,u,2,3,14,15,u,u,6,7]5608; AVX512DQ-NEXT: vpshufb %xmm9, %xmm15, %xmm85609; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm14 = xmm14[0,1,2,3,5,5,5,5]5610; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm8 = xmm8[0,1,2],xmm14[3],xmm8[4,5],xmm14[6],xmm8[7]5611; AVX512DQ-NEXT: vinserti128 $1, %xmm8, %ymm0, %ymm85612; AVX512DQ-NEXT: vinserti32x4 $2, %xmm3, %zmm8, %zmm35613; AVX512DQ-NEXT: vpshufb %xmm0, %xmm6, %xmm65614; AVX512DQ-NEXT: vpshufb %xmm0, %xmm2, %xmm05615; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1],xmm6[2],xmm0[3],xmm6[4,5],xmm0[6,7]5616; AVX512DQ-NEXT: vpshufb {{.*#+}} ymm2 = ymm4[u,u,u,u,u,u,u,u,u,u,u,u,10,11,6,7,18,19,30,31,26,27,26,27,30,31,26,27,26,27,22,23]5617; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm2 = ymm0[0,1,2],ymm2[3,4,5,6,7]5618; AVX512DQ-NEXT: vpshufb %xmm9, %xmm5, %xmm05619; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,5,5,5,5]5620; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2],xmm1[3],xmm0[4,5],xmm1[6],xmm0[7]5621; AVX512DQ-NEXT: vpternlogq {{.*#+}} zmm2 = zmm3 ^ (zmm17 & (zmm2 ^ zmm3))5622; AVX512DQ-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm05623; AVX512DQ-NEXT: vpshufb {{.*#+}} ymm1 = ymm7[2,3,14,15,10,11,10,11,14,15,10,11,u,u,6,7,18,19,30,31,26,27,26,27,30,31,26,27,u,u,22,23]5624; AVX512DQ-NEXT: vpblendw {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3,4,5,6,7],ymm1[8,9,10],ymm0[11,12,13,14,15]5625; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,5,5,7]5626; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]5627; AVX512DQ-NEXT: vinserti32x8 $1, %ymm0, %zmm0, %zmm2 {%k1}5628; AVX512DQ-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill5629; AVX512DQ-NEXT: vmovdqa64 %ymm25, %ymm05630; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1],ymm13[2],ymm0[3,4],ymm13[5],ymm0[6,7]5631; AVX512DQ-NEXT: vmovdqa64 %ymm13, %ymm295632; AVX512DQ-NEXT: vmovdqa64 %ymm25, %ymm305633; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm15 = xmm0[2,1,2,3]5634; AVX512DQ-NEXT: vextracti128 $1, %ymm0, %xmm05635; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm8 = xmm0[0,3,2,1]5636; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm0 = xmm8[0,0,2,3,4,5,6,7]5637; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,6,6,6,6]5638; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm1 = xmm15[2,1,2,0,4,5,6,7]5639; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm0 = xmm1[0],xmm0[1,2],xmm1[3],xmm0[4,5,6,7]5640; AVX512DQ-NEXT: vmovdqa64 %ymm20, %ymm15641; AVX512DQ-NEXT: vmovdqa64 %ymm22, %ymm25642; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0,1],ymm1[2],ymm2[3,4],ymm1[5],ymm2[6,7]5643; AVX512DQ-NEXT: vextracti128 $1, %ymm1, %xmm25644; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm14 = xmm1[2,1,0,3]5645; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm1 = xmm14[0,0,0,0,4,5,6,7]5646; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,4,6,7]5647; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm7 = xmm2[0,1,2,1]5648; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm2 = xmm7[0,1,2,3,6,5,6,4]5649; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1,2,3],xmm2[4],xmm1[5,6],xmm2[7]5650; AVX512DQ-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm15651; AVX512DQ-NEXT: vinserti32x4 $2, %xmm0, %zmm1, %zmm165652; AVX512DQ-NEXT: vmovdqa64 %ymm18, %ymm255653; AVX512DQ-NEXT: vmovdqa64 %ymm19, %ymm135654; AVX512DQ-NEXT: vmovdqa64 %ymm18, %ymm05655; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm0 = ymm13[0,1],ymm0[2],ymm13[3,4],ymm0[5],ymm13[6,7]5656; AVX512DQ-NEXT: vextracti128 $1, %ymm0, %xmm15657; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm6 = xmm0[2,1,2,3]5658; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm5 = xmm1[0,3,2,1]5659; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm0 = xmm5[0,0,2,3,4,5,6,7]5660; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[0,1,3,3]5661; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm1 = xmm6[2,1,2,0,4,5,6,7]5662; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm0 = xmm1[0],xmm0[1,2],xmm1[3],xmm0[4,5,6,7]5663; AVX512DQ-NEXT: vmovdqa64 %ymm28, %ymm105664; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm4 = ymm12[0,1],ymm10[2],ymm12[3],ymm10[4],ymm12[5,6],ymm10[7]5665; AVX512DQ-NEXT: vpshufb {{.*#+}} ymm1 = ymm4[4,5,0,1,12,13,14,15,8,9,0,1,12,13,8,9,20,21,16,17,28,29,30,31,24,25,16,17,28,29,24,25]5666; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2,3,4],xmm1[5,6,7]5667; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm9 = ymm0[0,1,2,3],ymm1[4,5,6,7]5668; AVX512DQ-NEXT: vmovdqa64 %ymm21, %ymm05669; AVX512DQ-NEXT: vmovdqa64 %ymm23, %ymm15670; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2],ymm1[3,4],ymm0[5],ymm1[6,7]5671; AVX512DQ-NEXT: vextracti128 $1, %ymm0, %xmm15672; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm3 = xmm0[2,1,0,3]5673; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm0 = xmm3[0,0,0,0,4,5,6,7]5674; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,4,6,7]5675; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm1 = xmm1[0,1,2,1]5676; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm11 = xmm1[0,1,2,3,6,5,6,4]5677; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2,3],xmm11[4],xmm0[5,6],xmm11[7]5678; AVX512DQ-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm115679; AVX512DQ-NEXT: vmovdqa64 %ymm26, %ymm05680; AVX512DQ-NEXT: vmovdqa64 %ymm24, %ymm25681; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1],ymm0[2],ymm2[3],ymm0[4],ymm2[5,6],ymm0[7]5682; AVX512DQ-NEXT: vpshufb {{.*#+}} ymm0 = ymm2[4,5,0,1,12,13,14,15,8,9,12,13,0,1,u,u,20,21,16,17,28,29,30,31,24,25,28,29,16,17,u,u]5683; AVX512DQ-NEXT: vpblendw {{.*#+}} ymm11 = ymm0[0,1,2],ymm11[3,4,5,6,7],ymm0[8,9,10],ymm11[11,12,13,14,15]5684; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,6,5,4]5685; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm11[4,5,6,7]5686; AVX512DQ-NEXT: vinserti64x4 $1, %ymm0, %zmm0, %zmm185687; AVX512DQ-NEXT: vmovdqa64 {{.*#+}} zmm0 = [65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,0,0,0,0,0,0,0,0,0,0,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535]5688; AVX512DQ-NEXT: vpternlogq {{.*#+}} zmm9 = zmm16 ^ (zmm0 & (zmm9 ^ zmm16))5689; AVX512DQ-NEXT: vpmovsxdq {{.*#+}} zmm17 = [18446744073709551615,18446744073709551615,18446744073709551615,18446744073709551615,18446744073709551615,65535,0,0]5690; AVX512DQ-NEXT: vpternlogq {{.*#+}} zmm18 = zmm18 ^ (zmm17 & (zmm18 ^ zmm9))5691; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm9 = xmm15[3,1,2,1,4,5,6,7]5692; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm8 = xmm8[0,1,3,3,4,5,6,7]5693; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm8 = xmm8[0,1,2,3,7,7,7,7]5694; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm8 = xmm9[0],xmm8[1,2],xmm9[3],xmm8[4,5,6,7]5695; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm7 = xmm7[0,1,2,3,7,5,6,5]5696; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm9 = xmm14[1,1,1,1,4,5,6,7]5697; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm9 = xmm9[0,1,2,3,4,5,7,7]5698; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm7 = xmm9[0,1,2,3],xmm7[4],xmm9[5,6],xmm7[7]5699; AVX512DQ-NEXT: vinserti128 $1, %xmm7, %ymm0, %ymm75700; AVX512DQ-NEXT: vinserti32x4 $2, %xmm8, %zmm7, %zmm75701; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm6 = xmm6[3,1,2,1,4,5,6,7]5702; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm5 = xmm5[0,1,3,3,4,5,6,7]5703; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm5 = xmm5[0,1,2,3,7,7,7,7]5704; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm5 = xmm6[0],xmm5[1,2],xmm6[3],xmm5[4,5,6,7]5705; AVX512DQ-NEXT: vpshufb {{.*#+}} ymm4 = ymm4[6,7,2,3,14,15,14,15,14,15,2,3,14,15,10,11,22,23,18,19,30,31,30,31,30,31,18,19,30,31,26,27]5706; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm5 = xmm5[0,1,2,3,4],xmm4[5,6,7]5707; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm4 = ymm5[0,1,2,3],ymm4[4,5,6,7]5708; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,7,5,6,5]5709; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm3 = xmm3[1,1,1,1,4,5,6,7]5710; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,4,5,7,7]5711; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm1 = xmm3[0,1,2,3],xmm1[4],xmm3[5,6],xmm1[7]5712; AVX512DQ-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm15713; AVX512DQ-NEXT: vpshufb {{.*#+}} ymm2 = ymm2[6,7,2,3,14,15,14,15,14,15,10,11,u,u,2,3,22,23,18,19,30,31,30,31,30,31,26,27,u,u,18,19]5714; AVX512DQ-NEXT: vpblendw {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3,4,5,6,7],ymm2[8,9,10],ymm1[11,12,13,14,15]5715; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,7,4,5]5716; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]5717; AVX512DQ-NEXT: vpternlogq {{.*#+}} zmm4 = zmm7 ^ (zmm0 & (zmm4 ^ zmm7))5718; AVX512DQ-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm165719; AVX512DQ-NEXT: vpternlogq {{.*#+}} zmm16 = zmm16 ^ (zmm17 & (zmm16 ^ zmm4))5720; AVX512DQ-NEXT: vmovdqa {{.*#+}} xmm6 = [8,9,u,u,0,1,12,13,u,u,12,13,12,13,14,15]5721; AVX512DQ-NEXT: vmovdqa64 %ymm29, %ymm05722; AVX512DQ-NEXT: vmovdqa64 %ymm30, %ymm15723; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1],ymm1[2],ymm0[3,4],ymm1[5],ymm0[6,7]5724; AVX512DQ-NEXT: vpshufb %xmm6, %xmm0, %xmm25725; AVX512DQ-NEXT: vextracti128 $1, %ymm0, %xmm15726; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm3 = xmm1[2,2,2,2,4,5,6,7]5727; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm3 = xmm2[0],xmm3[1],xmm2[2,3],xmm3[4],xmm2[5,6,7]5728; AVX512DQ-NEXT: vmovdqa64 %ymm20, %ymm25729; AVX512DQ-NEXT: vmovdqa64 %ymm22, %ymm45730; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm4 = ymm2[0],ymm4[1],ymm2[2,3],ymm4[4],ymm2[5,6],ymm4[7]5731; AVX512DQ-NEXT: vextracti128 $1, %ymm4, %xmm25732; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm9 = xmm4[0,3,2,1]5733; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm4 = xmm9[0,1,0,2,4,5,6,7]5734; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm4 = xmm4[0,1,2,3,6,6,6,6]5735; AVX512DQ-NEXT: vpbroadcastq {{.*#+}} xmm7 = [8,9,0,0,0,1,12,13,8,9,0,0,0,1,12,13]5736; AVX512DQ-NEXT: vpshufb %xmm7, %xmm2, %xmm55737; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm4 = xmm4[0,1,2,3],xmm5[4],xmm4[5],xmm5[6,7]5738; AVX512DQ-NEXT: vinserti128 $1, %xmm4, %ymm0, %ymm45739; AVX512DQ-NEXT: vinserti32x4 $2, %xmm3, %zmm4, %zmm45740; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm3 = ymm10[0],ymm12[1],ymm10[2,3,4,5],ymm12[6],ymm10[7]5741; AVX512DQ-NEXT: vmovdqa64 %ymm25, %ymm55742; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm5 = ymm5[0,1],ymm13[2],ymm5[3,4],ymm13[5],ymm5[6,7]5743; AVX512DQ-NEXT: vpshufb %xmm6, %xmm5, %xmm65744; AVX512DQ-NEXT: vextracti128 $1, %ymm5, %xmm135745; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm8 = xmm13[2,2,2,2,4,5,6,7]5746; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm6 = xmm6[0],xmm8[1],xmm6[2,3],xmm8[4],xmm6[5,6,7]5747; AVX512DQ-NEXT: vpshufb {{.*#+}} ymm8 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm3[4,5,0,1,12,13,24,25,20,21],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero5748; AVX512DQ-NEXT: vmovdqa {{.*#+}} ymm14 = [65535,65535,65535,65535,65535,0,0,0,0,0,65535,65535,65535,65535,65535,65535]5749; AVX512DQ-NEXT: vpternlogq {{.*#+}} ymm6 = (ymm6 & ymm14) | ymm85750; AVX512DQ-NEXT: movw $31, %ax5751; AVX512DQ-NEXT: kmovw %eax, %k15752; AVX512DQ-NEXT: vinserti32x8 $0, %ymm6, %zmm0, %zmm4 {%k1}5753; AVX512DQ-NEXT: vmovdqa64 %ymm21, %ymm65754; AVX512DQ-NEXT: vmovdqa64 %ymm23, %ymm85755; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm8 = ymm6[0],ymm8[1],ymm6[2,3],ymm8[4],ymm6[5,6],ymm8[7]5756; AVX512DQ-NEXT: vextracti128 $1, %ymm8, %xmm65757; AVX512DQ-NEXT: vpshufb %xmm7, %xmm6, %xmm115758; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm7 = xmm8[0,3,2,1]5759; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm8 = xmm7[0,1,0,2,4,5,6,7]5760; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm8 = xmm8[0,1,2,3,6,6,6,6]5761; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm8 = xmm8[0,1,2,3],xmm11[4],xmm8[5],xmm11[6,7]5762; AVX512DQ-NEXT: vinserti128 $1, %xmm8, %ymm0, %ymm85763; AVX512DQ-NEXT: vmovdqa64 %ymm26, %ymm115764; AVX512DQ-NEXT: vmovdqa64 %ymm24, %ymm105765; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm11 = ymm11[0],ymm10[1],ymm11[2,3,4,5],ymm10[6],ymm11[7]5766; AVX512DQ-NEXT: vpshufb {{.*#+}} ymm15 = ymm11[8,9,4,5,4,5,6,7,0,1,4,5,0,1,12,13,24,25,20,21,u,u,u,u,u,u,u,u,u,u,u,u]5767; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm8 = ymm15[0,1,2,3,4],ymm8[5,6,7]5768; AVX512DQ-NEXT: vinserti64x4 $1, %ymm8, %zmm0, %zmm85769; AVX512DQ-NEXT: vmovdqa {{.*#+}} xmm15 = [10,11,u,u,2,3,14,15,u,u,10,11,12,13,14,15]5770; AVX512DQ-NEXT: vpshufb %xmm15, %xmm0, %xmm05771; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm1 = xmm1[1,1,2,3]5772; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,5,5,5,5]5773; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0],xmm1[1],xmm0[2,3],xmm1[4],xmm0[5,6,7]5774; AVX512DQ-NEXT: vpbroadcastq {{.*#+}} xmm1 = [10,11,0,0,2,3,14,15,10,11,0,0,2,3,14,15]5775; AVX512DQ-NEXT: vpshufb %xmm1, %xmm2, %xmm25776; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm9 = xmm9[0,1,1,3,4,5,6,7]5777; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm9 = xmm9[0,1,3,3]5778; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm2 = xmm9[0,1,2,3],xmm2[4],xmm9[5],xmm2[6,7]5779; AVX512DQ-NEXT: vinserti128 $1, %xmm2, %ymm0, %ymm25780; AVX512DQ-NEXT: vinserti32x4 $2, %xmm0, %zmm2, %zmm05781; AVX512DQ-NEXT: vpshufb %xmm15, %xmm5, %xmm25782; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm5 = xmm13[1,1,2,3]5783; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm5 = xmm5[0,1,2,3,5,5,5,5]5784; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0],xmm5[1],xmm2[2,3],xmm5[4],xmm2[5,6,7]5785; AVX512DQ-NEXT: vpshufb {{.*#+}} ymm3 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm3[6,7,2,3,14,15,26,27,22,23],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero5786; AVX512DQ-NEXT: vpternlogq {{.*#+}} ymm2 = (ymm2 & ymm14) | ymm35787; AVX512DQ-NEXT: vinserti32x8 $0, %ymm2, %zmm0, %zmm0 {%k1}5788; AVX512DQ-NEXT: vpshufb %xmm1, %xmm6, %xmm15789; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm2 = xmm7[0,1,1,3,4,5,6,7]5790; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm2 = xmm2[0,1,3,3]5791; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm1 = xmm2[0,1,2,3],xmm1[4],xmm2[5],xmm1[6,7]5792; AVX512DQ-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm15793; AVX512DQ-NEXT: vpshufb {{.*#+}} ymm2 = ymm11[10,11,6,7,4,5,6,7,6,7,6,7,2,3,14,15,26,27,22,23,u,u,u,u,u,u,u,u,u,u,u,u]5794; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0,1,2,3,4],ymm1[5,6,7]5795; AVX512DQ-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm15796; AVX512DQ-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload5797; AVX512DQ-NEXT: vmovaps %zmm2, (%rsi)5798; AVX512DQ-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload5799; AVX512DQ-NEXT: vmovaps %zmm2, (%rdx)5800; AVX512DQ-NEXT: movq {{[0-9]+}}(%rsp), %rax5801; AVX512DQ-NEXT: vpternlogq {{.*#+}} zmm8 = zmm8 ^ (zmm17 & (zmm8 ^ zmm4))5802; AVX512DQ-NEXT: vpternlogq {{.*#+}} zmm1 = zmm1 ^ (zmm17 & (zmm1 ^ zmm0))5803; AVX512DQ-NEXT: vmovdqa64 %zmm18, (%rcx)5804; AVX512DQ-NEXT: vmovdqa64 %zmm16, (%r8)5805; AVX512DQ-NEXT: vmovdqa64 %zmm8, (%r9)5806; AVX512DQ-NEXT: vmovdqa64 %zmm1, (%rax)5807; AVX512DQ-NEXT: popq %rax5808; AVX512DQ-NEXT: vzeroupper5809; AVX512DQ-NEXT: retq5810;5811; AVX512DQ-FCP-LABEL: load_i16_stride6_vf32:5812; AVX512DQ-FCP: # %bb.0:5813; AVX512DQ-FCP-NEXT: pushq %rax5814; AVX512DQ-FCP-NEXT: vmovdqa {{.*#+}} xmm0 = [0,1,12,13,0,1,4,5,8,9,12,13,12,13,14,15]5815; AVX512DQ-FCP-NEXT: vmovdqa 224(%rdi), %ymm135816; AVX512DQ-FCP-NEXT: vmovdqa 192(%rdi), %ymm25817; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm5 = ymm2[0],ymm13[1],ymm2[2,3],ymm13[4],ymm2[5,6],ymm13[7]5818; AVX512DQ-FCP-NEXT: vmovdqa64 %ymm2, %ymm245819; AVX512DQ-FCP-NEXT: vpshufb %xmm0, %xmm5, %xmm15820; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm5, %xmm25821; AVX512DQ-FCP-NEXT: vpshufd {{.*#+}} xmm9 = xmm2[2,1,0,3]5822; AVX512DQ-FCP-NEXT: vpshufb %xmm0, %xmm9, %xmm25823; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1],xmm2[2],xmm1[3],xmm2[4,5],xmm1[6,7]5824; AVX512DQ-FCP-NEXT: vmovdqa 160(%rdi), %ymm45825; AVX512DQ-FCP-NEXT: vmovdqa (%rdi), %ymm25826; AVX512DQ-FCP-NEXT: vmovdqa 32(%rdi), %ymm105827; AVX512DQ-FCP-NEXT: vmovdqa 64(%rdi), %ymm35828; AVX512DQ-FCP-NEXT: vmovdqa 128(%rdi), %ymm65829; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm14 = ymm6[0,1],ymm4[2],ymm6[3,4],ymm4[5],ymm6[6,7]5830; AVX512DQ-FCP-NEXT: vmovdqa64 %ymm6, %ymm225831; AVX512DQ-FCP-NEXT: vmovdqa64 %ymm4, %ymm255832; AVX512DQ-FCP-NEXT: vmovdqa {{.*#+}} xmm6 = [0,1,4,5,4,5,4,5,0,1,12,13,8,9,4,5]5833; AVX512DQ-FCP-NEXT: vpshufb %xmm6, %xmm14, %xmm45834; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm14, %xmm75835; AVX512DQ-FCP-NEXT: vpshufb %xmm6, %xmm7, %xmm85836; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm4 = xmm8[0,1,2],xmm4[3],xmm8[4,5],xmm4[6],xmm8[7]5837; AVX512DQ-FCP-NEXT: vinserti128 $1, %xmm4, %ymm0, %ymm45838; AVX512DQ-FCP-NEXT: vinserti32x4 $2, %xmm1, %zmm4, %zmm165839; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm15 = ymm2[0],ymm10[1],ymm2[2,3],ymm10[4],ymm2[5,6],ymm10[7]5840; AVX512DQ-FCP-NEXT: vmovdqa64 %ymm10, %ymm185841; AVX512DQ-FCP-NEXT: vmovdqa64 %ymm2, %ymm195842; AVX512DQ-FCP-NEXT: vpshufb %xmm0, %xmm15, %xmm45843; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm15, %xmm15844; AVX512DQ-FCP-NEXT: vpshufd {{.*#+}} xmm2 = xmm1[2,1,0,3]5845; AVX512DQ-FCP-NEXT: vpshufb %xmm0, %xmm2, %xmm05846; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm0 = xmm4[0,1],xmm0[2],xmm4[3],xmm0[4,5],xmm4[6,7]5847; AVX512DQ-FCP-NEXT: vperm2i128 {{.*#+}} ymm1 = ymm3[2,3],mem[2,3]5848; AVX512DQ-FCP-NEXT: vinserti128 $1, 96(%rdi), %ymm3, %ymm125849; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm3 = ymm12[0],ymm1[1],ymm12[2,3,4,5],ymm1[6],ymm12[7]5850; AVX512DQ-FCP-NEXT: vmovdqa64 %ymm1, %ymm285851; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} ymm4 = ymm3[u,u,u,u,u,u,u,u,u,u,u,u,8,9,4,5,16,17,28,29,24,25,28,29,24,25,28,29,24,25,20,21]5852; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm10 = ymm0[0,1,2],ymm4[3,4,5,6,7]5853; AVX512DQ-FCP-NEXT: vmovdqa 352(%rdi), %ymm05854; AVX512DQ-FCP-NEXT: vmovdqa 320(%rdi), %ymm15855; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm4 = ymm1[0,1],ymm0[2],ymm1[3,4],ymm0[5],ymm1[6,7]5856; AVX512DQ-FCP-NEXT: vmovdqa64 %ymm1, %ymm205857; AVX512DQ-FCP-NEXT: vmovdqa64 %ymm0, %ymm215858; AVX512DQ-FCP-NEXT: vpshufb %xmm6, %xmm4, %xmm115859; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm4, %xmm15860; AVX512DQ-FCP-NEXT: vpshufb %xmm6, %xmm1, %xmm65861; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm6 = xmm6[0,1,2],xmm11[3],xmm6[4,5],xmm11[6],xmm6[7]5862; AVX512DQ-FCP-NEXT: vinserti128 $1, %xmm6, %ymm0, %ymm85863; AVX512DQ-FCP-NEXT: vmovdqa 256(%rdi), %ymm65864; AVX512DQ-FCP-NEXT: vperm2i128 {{.*#+}} ymm0 = ymm6[2,3],mem[2,3]5865; AVX512DQ-FCP-NEXT: vinserti128 $1, 288(%rdi), %ymm6, %ymm115866; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm6 = ymm11[0],ymm0[1],ymm11[2,3,4,5],ymm0[6],ymm11[7]5867; AVX512DQ-FCP-NEXT: vmovdqa64 %ymm11, %ymm235868; AVX512DQ-FCP-NEXT: vmovdqa64 %ymm0, %ymm265869; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} ymm0 = ymm6[0,1,12,13,8,9,12,13,8,9,12,13,4,5,u,u,16,17,28,29,24,25,28,29,24,25,28,29,20,21,u,u]5870; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} ymm8 = ymm0[0,1,2],ymm8[3,4,5,6,7],ymm0[8,9,10],ymm8[11,12,13,14,15]5871; AVX512DQ-FCP-NEXT: vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,5,4,6]5872; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm8[4,5,6,7]5873; 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]5874; AVX512DQ-FCP-NEXT: vpternlogq {{.*#+}} zmm10 = zmm16 ^ (zmm17 & (zmm10 ^ zmm16))5875; AVX512DQ-FCP-NEXT: movw $-2048, %ax # imm = 0xF8005876; AVX512DQ-FCP-NEXT: kmovw %eax, %k15877; AVX512DQ-FCP-NEXT: vinserti32x8 $1, %ymm0, %zmm0, %zmm10 {%k1}5878; AVX512DQ-FCP-NEXT: vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill5879; AVX512DQ-FCP-NEXT: vmovdqa {{.*#+}} xmm0 = [2,3,14,15,2,3,6,7,10,11,14,15,12,13,14,15]5880; AVX512DQ-FCP-NEXT: vpshufb %xmm0, %xmm5, %xmm55881; AVX512DQ-FCP-NEXT: vpshufb %xmm0, %xmm9, %xmm85882; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm5 = xmm5[0,1],xmm8[2],xmm5[3],xmm8[4,5],xmm5[6,7]5883; AVX512DQ-FCP-NEXT: vmovdqa {{.*#+}} xmm9 = [6,7,2,3,4,5,u,u,2,3,14,15,u,u,6,7]5884; AVX512DQ-FCP-NEXT: vpshufb %xmm9, %xmm7, %xmm75885; AVX512DQ-FCP-NEXT: vpshufhw {{.*#+}} xmm8 = xmm14[0,1,2,3,5,5,5,5]5886; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm7 = xmm7[0,1,2],xmm8[3],xmm7[4,5],xmm8[6],xmm7[7]5887; AVX512DQ-FCP-NEXT: vinserti128 $1, %xmm7, %ymm0, %ymm75888; AVX512DQ-FCP-NEXT: vinserti32x4 $2, %xmm5, %zmm7, %zmm55889; AVX512DQ-FCP-NEXT: vpshufb %xmm0, %xmm15, %xmm75890; AVX512DQ-FCP-NEXT: vpshufb %xmm0, %xmm2, %xmm05891; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm0 = xmm7[0,1],xmm0[2],xmm7[3],xmm0[4,5],xmm7[6,7]5892; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} ymm2 = ymm3[u,u,u,u,u,u,u,u,u,u,u,u,10,11,6,7,18,19,30,31,26,27,26,27,30,31,26,27,26,27,22,23]5893; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm0[0,1,2],ymm2[3,4,5,6,7]5894; AVX512DQ-FCP-NEXT: vpshufb %xmm9, %xmm1, %xmm05895; AVX512DQ-FCP-NEXT: vpshufhw {{.*#+}} xmm1 = xmm4[0,1,2,3,5,5,5,5]5896; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2],xmm1[3],xmm0[4,5],xmm1[6],xmm0[7]5897; AVX512DQ-FCP-NEXT: vpternlogq {{.*#+}} zmm2 = zmm5 ^ (zmm17 & (zmm2 ^ zmm5))5898; AVX512DQ-FCP-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm05899; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} ymm1 = ymm6[2,3,14,15,10,11,10,11,14,15,10,11,u,u,6,7,18,19,30,31,26,27,26,27,30,31,26,27,u,u,22,23]5900; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3,4,5,6,7],ymm1[8,9,10],ymm0[11,12,13,14,15]5901; AVX512DQ-FCP-NEXT: vpshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,5,5,7]5902; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]5903; AVX512DQ-FCP-NEXT: vinserti32x8 $1, %ymm0, %zmm0, %zmm2 {%k1}5904; AVX512DQ-FCP-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill5905; AVX512DQ-FCP-NEXT: vmovdqa64 %ymm24, %ymm05906; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1],ymm13[2],ymm0[3,4],ymm13[5],ymm0[6,7]5907; AVX512DQ-FCP-NEXT: vmovdqa64 %ymm13, %ymm295908; AVX512DQ-FCP-NEXT: vmovdqa64 %ymm24, %ymm305909; AVX512DQ-FCP-NEXT: vpshufd {{.*#+}} xmm15 = xmm0[2,1,2,3]5910; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm0, %xmm05911; AVX512DQ-FCP-NEXT: vpshuflw {{.*#+}} xmm1 = xmm15[2,1,2,0,4,5,6,7]5912; AVX512DQ-FCP-NEXT: vpshufd {{.*#+}} xmm8 = xmm0[0,3,2,1]5913; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm0 = xmm8[u,u,0,1,4,5,u,u,12,13,12,13,12,13,12,13]5914; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0],xmm0[1,2],xmm1[3],xmm0[4,5,6,7]5915; AVX512DQ-FCP-NEXT: vmovdqa64 %ymm22, %ymm05916; AVX512DQ-FCP-NEXT: vmovdqa64 %ymm25, %ymm25917; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm2[0,1],ymm0[2],ymm2[3,4],ymm0[5],ymm2[6,7]5918; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm0, %xmm25919; AVX512DQ-FCP-NEXT: vpshufd {{.*#+}} xmm14 = xmm0[2,1,0,3]5920; AVX512DQ-FCP-NEXT: vmovdqa {{.*#+}} xmm0 = [0,1,0,1,0,1,0,1,u,u,8,9,12,13,u,u]5921; AVX512DQ-FCP-NEXT: vpshufb %xmm0, %xmm14, %xmm35922; AVX512DQ-FCP-NEXT: vpshufd {{.*#+}} xmm7 = xmm2[0,1,2,1]5923; AVX512DQ-FCP-NEXT: vpshufhw {{.*#+}} xmm2 = xmm7[0,1,2,3,6,5,6,4]5924; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm2 = xmm3[0,1,2,3],xmm2[4],xmm3[5,6],xmm2[7]5925; AVX512DQ-FCP-NEXT: vinserti128 $1, %xmm2, %ymm0, %ymm25926; AVX512DQ-FCP-NEXT: vinserti32x4 $2, %xmm1, %zmm2, %zmm165927; AVX512DQ-FCP-NEXT: vmovdqa64 %ymm18, %ymm245928; AVX512DQ-FCP-NEXT: vmovdqa64 %ymm19, %ymm135929; AVX512DQ-FCP-NEXT: vmovdqa64 %ymm18, %ymm15930; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm13[0,1],ymm1[2],ymm13[3,4],ymm1[5],ymm13[6,7]5931; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm1, %xmm25932; AVX512DQ-FCP-NEXT: vpshufd {{.*#+}} xmm5 = xmm1[2,1,2,3]5933; AVX512DQ-FCP-NEXT: vpshuflw {{.*#+}} xmm1 = xmm5[2,1,2,0,4,5,6,7]5934; AVX512DQ-FCP-NEXT: vpshufd {{.*#+}} xmm4 = xmm2[0,3,2,1]5935; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm2 = xmm4[u,u,0,1,4,5,u,u,12,13,u,u,u,u,u,u]5936; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0],xmm2[1,2],xmm1[3],xmm2[4,5,6,7]5937; AVX512DQ-FCP-NEXT: vmovdqa64 %ymm28, %ymm105938; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm3 = ymm12[0,1],ymm10[2],ymm12[3],ymm10[4],ymm12[5,6],ymm10[7]5939; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} ymm6 = ymm3[4,5,0,1,12,13,14,15,8,9,0,1,12,13,8,9,20,21,16,17,28,29,30,31,24,25,16,17,28,29,24,25]5940; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1,2,3,4],xmm6[5,6,7]5941; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm9 = ymm1[0,1,2,3],ymm6[4,5,6,7]5942; AVX512DQ-FCP-NEXT: vmovdqa64 %ymm20, %ymm15943; AVX512DQ-FCP-NEXT: vmovdqa64 %ymm21, %ymm25944; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0,1],ymm1[2],ymm2[3,4],ymm1[5],ymm2[6,7]5945; AVX512DQ-FCP-NEXT: vextracti32x4 $1, %ymm1, %xmm175946; AVX512DQ-FCP-NEXT: vpshufd {{.*#+}} xmm6 = xmm1[2,1,0,3]5947; AVX512DQ-FCP-NEXT: vpshufb %xmm0, %xmm6, %xmm05948; AVX512DQ-FCP-NEXT: vpshufd {{.*#+}} xmm2 = xmm17[0,1,2,1]5949; AVX512DQ-FCP-NEXT: vpshufhw {{.*#+}} xmm11 = xmm2[0,1,2,3,6,5,6,4]5950; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2,3],xmm11[4],xmm0[5,6],xmm11[7]5951; AVX512DQ-FCP-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm115952; AVX512DQ-FCP-NEXT: vmovdqa64 %ymm26, %ymm05953; AVX512DQ-FCP-NEXT: vmovdqa64 %ymm23, %ymm15954; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1],ymm0[2],ymm1[3],ymm0[4],ymm1[5,6],ymm0[7]5955; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} ymm0 = ymm1[4,5,0,1,12,13,14,15,8,9,12,13,0,1,u,u,20,21,16,17,28,29,30,31,24,25,28,29,16,17,u,u]5956; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} ymm11 = ymm0[0,1,2],ymm11[3,4,5,6,7],ymm0[8,9,10],ymm11[11,12,13,14,15]5957; AVX512DQ-FCP-NEXT: vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,6,5,4]5958; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm11[4,5,6,7]5959; AVX512DQ-FCP-NEXT: vinserti64x4 $1, %ymm0, %zmm0, %zmm185960; AVX512DQ-FCP-NEXT: vmovdqa64 {{.*#+}} zmm0 = [65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,0,0,0,0,0,0,0,0,0,0,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535]5961; AVX512DQ-FCP-NEXT: vpternlogq {{.*#+}} zmm9 = zmm16 ^ (zmm0 & (zmm9 ^ zmm16))5962; AVX512DQ-FCP-NEXT: vpmovsxdq {{.*#+}} zmm17 = [18446744073709551615,18446744073709551615,18446744073709551615,18446744073709551615,18446744073709551615,65535,0,0]5963; AVX512DQ-FCP-NEXT: vpternlogq {{.*#+}} zmm18 = zmm18 ^ (zmm17 & (zmm18 ^ zmm9))5964; AVX512DQ-FCP-NEXT: vpshuflw {{.*#+}} xmm9 = xmm15[3,1,2,1,4,5,6,7]5965; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm8 = xmm8[u,u,2,3,6,7,u,u,14,15,14,15,14,15,14,15]5966; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm8 = xmm9[0],xmm8[1,2],xmm9[3],xmm8[4,5,6,7]5967; AVX512DQ-FCP-NEXT: vmovdqa {{.*#+}} xmm9 = [2,3,2,3,2,3,2,3,u,u,10,11,14,15,u,u]5968; AVX512DQ-FCP-NEXT: vpshufb %xmm9, %xmm14, %xmm115969; AVX512DQ-FCP-NEXT: vpshufhw {{.*#+}} xmm7 = xmm7[0,1,2,3,7,5,6,5]5970; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm7 = xmm11[0,1,2,3],xmm7[4],xmm11[5,6],xmm7[7]5971; AVX512DQ-FCP-NEXT: vinserti128 $1, %xmm7, %ymm0, %ymm75972; AVX512DQ-FCP-NEXT: vinserti32x4 $2, %xmm8, %zmm7, %zmm75973; AVX512DQ-FCP-NEXT: vpshuflw {{.*#+}} xmm5 = xmm5[3,1,2,1,4,5,6,7]5974; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm4 = xmm4[u,u,2,3,6,7,u,u,14,15,u,u,u,u,u,u]5975; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm4 = xmm5[0],xmm4[1,2],xmm5[3],xmm4[4,5,6,7]5976; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} ymm3 = ymm3[6,7,2,3,14,15,14,15,14,15,2,3,14,15,10,11,22,23,18,19,30,31,30,31,30,31,18,19,30,31,26,27]5977; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm4 = xmm4[0,1,2,3,4],xmm3[5,6,7]5978; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm3 = ymm4[0,1,2,3],ymm3[4,5,6,7]5979; AVX512DQ-FCP-NEXT: vpshufb %xmm9, %xmm6, %xmm45980; AVX512DQ-FCP-NEXT: vpshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,7,5,6,5]5981; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm2 = xmm4[0,1,2,3],xmm2[4],xmm4[5,6],xmm2[7]5982; AVX512DQ-FCP-NEXT: vinserti128 $1, %xmm2, %ymm0, %ymm25983; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} ymm1 = ymm1[6,7,2,3,14,15,14,15,14,15,10,11,u,u,2,3,22,23,18,19,30,31,30,31,30,31,26,27,u,u,18,19]5984; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} ymm2 = ymm1[0,1,2],ymm2[3,4,5,6,7],ymm1[8,9,10],ymm2[11,12,13,14,15]5985; AVX512DQ-FCP-NEXT: vpshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,7,4,5]5986; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm2[4,5,6,7]5987; AVX512DQ-FCP-NEXT: vpternlogq {{.*#+}} zmm3 = zmm7 ^ (zmm0 & (zmm3 ^ zmm7))5988; AVX512DQ-FCP-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm165989; AVX512DQ-FCP-NEXT: vpternlogq {{.*#+}} zmm16 = zmm16 ^ (zmm17 & (zmm16 ^ zmm3))5990; AVX512DQ-FCP-NEXT: vmovdqa {{.*#+}} xmm5 = [8,9,u,u,0,1,12,13,u,u,12,13,12,13,14,15]5991; AVX512DQ-FCP-NEXT: vmovdqa64 %ymm29, %ymm05992; AVX512DQ-FCP-NEXT: vmovdqa64 %ymm30, %ymm15993; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm3 = ymm0[0,1],ymm1[2],ymm0[3,4],ymm1[5],ymm0[6,7]5994; AVX512DQ-FCP-NEXT: vpshufb %xmm5, %xmm3, %xmm05995; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm3, %xmm15996; AVX512DQ-FCP-NEXT: vpshuflw {{.*#+}} xmm2 = xmm1[2,2,2,2,4,5,6,7]5997; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0],xmm2[1],xmm0[2,3],xmm2[4],xmm0[5,6,7]5998; AVX512DQ-FCP-NEXT: vmovdqa64 %ymm22, %ymm25999; AVX512DQ-FCP-NEXT: vmovdqa64 %ymm25, %ymm46000; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0],ymm4[1],ymm2[2,3],ymm4[4],ymm2[5,6],ymm4[7]6001; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm2, %xmm46002; AVX512DQ-FCP-NEXT: vpshufd {{.*#+}} xmm6 = xmm2[0,3,2,1]6003; AVX512DQ-FCP-NEXT: vmovdqa {{.*#+}} xmm7 = [0,1,2,3,0,1,4,5,8,9,12,13,0,1,12,13]6004; AVX512DQ-FCP-NEXT: vpshufb %xmm7, %xmm4, %xmm26005; AVX512DQ-FCP-NEXT: vpshufb %xmm7, %xmm6, %xmm86006; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm2 = xmm8[0,1,2,3],xmm2[4],xmm8[5],xmm2[6,7]6007; AVX512DQ-FCP-NEXT: vinserti128 $1, %xmm2, %ymm0, %ymm26008; AVX512DQ-FCP-NEXT: vinserti32x4 $2, %xmm0, %zmm2, %zmm06009; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm10[0],ymm12[1],ymm10[2,3,4,5],ymm12[6],ymm10[7]6010; AVX512DQ-FCP-NEXT: vmovdqa64 %ymm24, %ymm86011; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm8 = ymm8[0,1],ymm13[2],ymm8[3,4],ymm13[5],ymm8[6,7]6012; AVX512DQ-FCP-NEXT: vpshufb %xmm5, %xmm8, %xmm56013; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm8, %xmm96014; AVX512DQ-FCP-NEXT: vpshuflw {{.*#+}} xmm11 = xmm9[2,2,2,2,4,5,6,7]6015; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm5 = xmm5[0],xmm11[1],xmm5[2,3],xmm11[4],xmm5[5,6,7]6016; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} ymm11 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm2[4,5,0,1,12,13,24,25,20,21],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero6017; AVX512DQ-FCP-NEXT: vmovdqa {{.*#+}} ymm13 = [65535,65535,65535,65535,65535,0,0,0,0,0,65535,65535,65535,65535,65535,65535]6018; AVX512DQ-FCP-NEXT: vpternlogq {{.*#+}} ymm5 = (ymm5 & ymm13) | ymm116019; AVX512DQ-FCP-NEXT: movw $31, %ax6020; AVX512DQ-FCP-NEXT: kmovw %eax, %k16021; AVX512DQ-FCP-NEXT: vinserti32x8 $0, %ymm5, %zmm0, %zmm0 {%k1}6022; AVX512DQ-FCP-NEXT: vmovdqa64 %ymm20, %ymm56023; AVX512DQ-FCP-NEXT: vmovdqa64 %ymm21, %ymm116024; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm11 = ymm5[0],ymm11[1],ymm5[2,3],ymm11[4],ymm5[5,6],ymm11[7]6025; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm11, %xmm56026; AVX512DQ-FCP-NEXT: vpshufb %xmm7, %xmm5, %xmm146027; AVX512DQ-FCP-NEXT: vpshufd {{.*#+}} xmm11 = xmm11[0,3,2,1]6028; AVX512DQ-FCP-NEXT: vpshufb %xmm7, %xmm11, %xmm76029; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm7 = xmm7[0,1,2,3],xmm14[4],xmm7[5],xmm14[6,7]6030; AVX512DQ-FCP-NEXT: vinserti128 $1, %xmm7, %ymm0, %ymm76031; AVX512DQ-FCP-NEXT: vmovdqa64 %ymm26, %ymm146032; AVX512DQ-FCP-NEXT: vmovdqa64 %ymm23, %ymm106033; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm14 = ymm14[0],ymm10[1],ymm14[2,3,4,5],ymm10[6],ymm14[7]6034; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} ymm15 = ymm14[8,9,4,5,4,5,6,7,0,1,4,5,0,1,12,13,24,25,20,21,u,u,u,u,u,u,u,u,u,u,u,u]6035; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm7 = ymm15[0,1,2,3,4],ymm7[5,6,7]6036; AVX512DQ-FCP-NEXT: vinserti64x4 $1, %ymm7, %zmm0, %zmm76037; AVX512DQ-FCP-NEXT: vmovdqa {{.*#+}} xmm15 = [10,11,6,7,2,3,14,15,10,11,10,11,12,13,14,15]6038; AVX512DQ-FCP-NEXT: vpshufb %xmm15, %xmm9, %xmm96039; AVX512DQ-FCP-NEXT: vpshufb %xmm15, %xmm8, %xmm86040; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm8 = xmm8[0],xmm9[1],xmm8[2,3],xmm9[4],xmm8[5,6,7]6041; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} ymm2 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm2[6,7,2,3,14,15,26,27,22,23],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero6042; AVX512DQ-FCP-NEXT: vpternlogq {{.*#+}} ymm2 = ymm2 | (ymm8 & ymm13)6043; AVX512DQ-FCP-NEXT: vpshufb %xmm15, %xmm1, %xmm16044; AVX512DQ-FCP-NEXT: vpshufb %xmm15, %xmm3, %xmm36045; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm1 = xmm3[0],xmm1[1],xmm3[2,3],xmm1[4],xmm3[5,6,7]6046; AVX512DQ-FCP-NEXT: vmovdqa {{.*#+}} xmm3 = [0,1,2,3,2,3,6,7,10,11,14,15,2,3,14,15]6047; AVX512DQ-FCP-NEXT: vpshufb %xmm3, %xmm4, %xmm46048; AVX512DQ-FCP-NEXT: vpshufb %xmm3, %xmm6, %xmm66049; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm4 = xmm6[0,1,2,3],xmm4[4],xmm6[5],xmm4[6,7]6050; AVX512DQ-FCP-NEXT: vinserti128 $1, %xmm4, %ymm0, %ymm46051; AVX512DQ-FCP-NEXT: vinserti32x4 $2, %xmm1, %zmm4, %zmm16052; AVX512DQ-FCP-NEXT: vinserti32x8 $0, %ymm2, %zmm0, %zmm1 {%k1}6053; AVX512DQ-FCP-NEXT: vpshufb %xmm3, %xmm5, %xmm26054; AVX512DQ-FCP-NEXT: vpshufb %xmm3, %xmm11, %xmm36055; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm2 = xmm3[0,1,2,3],xmm2[4],xmm3[5],xmm2[6,7]6056; AVX512DQ-FCP-NEXT: vinserti128 $1, %xmm2, %ymm0, %ymm26057; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} ymm3 = ymm14[10,11,6,7,4,5,6,7,6,7,6,7,2,3,14,15,26,27,22,23,u,u,u,u,u,u,u,u,u,u,u,u]6058; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm3[0,1,2,3,4],ymm2[5,6,7]6059; AVX512DQ-FCP-NEXT: vinserti64x4 $1, %ymm2, %zmm0, %zmm26060; AVX512DQ-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload6061; AVX512DQ-FCP-NEXT: vmovaps %zmm3, (%rsi)6062; AVX512DQ-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload6063; AVX512DQ-FCP-NEXT: vmovaps %zmm3, (%rdx)6064; AVX512DQ-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax6065; AVX512DQ-FCP-NEXT: vpternlogq {{.*#+}} zmm7 = zmm7 ^ (zmm17 & (zmm7 ^ zmm0))6066; AVX512DQ-FCP-NEXT: vpternlogq {{.*#+}} zmm2 = zmm2 ^ (zmm17 & (zmm2 ^ zmm1))6067; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm18, (%rcx)6068; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm16, (%r8)6069; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm7, (%r9)6070; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm2, (%rax)6071; AVX512DQ-FCP-NEXT: popq %rax6072; AVX512DQ-FCP-NEXT: vzeroupper6073; AVX512DQ-FCP-NEXT: retq6074;6075; AVX512BW-LABEL: load_i16_stride6_vf32:6076; AVX512BW: # %bb.0:6077; AVX512BW-NEXT: movq {{[0-9]+}}(%rsp), %rax6078; AVX512BW-NEXT: vmovdqa64 (%rdi), %zmm36079; AVX512BW-NEXT: vmovdqa64 64(%rdi), %zmm56080; AVX512BW-NEXT: vmovdqa64 128(%rdi), %zmm26081; AVX512BW-NEXT: vmovdqa64 192(%rdi), %zmm46082; AVX512BW-NEXT: vmovdqa64 320(%rdi), %zmm06083; AVX512BW-NEXT: vmovdqa64 256(%rdi), %zmm16084; AVX512BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm7 = [0,0,0,0,0,0,4,10,16,22,28,34,40,46,52,58,0,0,0,0,0,0,4,10,16,22,28,34,40,46,52,58]6085; AVX512BW-NEXT: # zmm7 = mem[0,1,2,3,0,1,2,3]6086; AVX512BW-NEXT: vpermi2w %zmm0, %zmm1, %zmm76087; AVX512BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm8 = [0,6,12,18,24,30,0,0,0,0,0,34,40,46,52,58,0,6,12,18,24,30,0,0,0,0,0,34,40,46,52,58]6088; AVX512BW-NEXT: # zmm8 = mem[0,1,2,3,0,1,2,3]6089; AVX512BW-NEXT: vpermi2w %zmm2, %zmm4, %zmm86090; AVX512BW-NEXT: vpmovsxbw {{.*#+}} ymm6 = [0,6,12,18,24,30,36,42,48,54,60,0,0,0,0,0]6091; AVX512BW-NEXT: vpermi2w %zmm5, %zmm3, %zmm66092; AVX512BW-NEXT: movl $4192256, %edi # imm = 0x3FF8006093; AVX512BW-NEXT: kmovd %edi, %k16094; AVX512BW-NEXT: vmovdqu16 %zmm8, %zmm6 {%k1}6095; AVX512BW-NEXT: movw $-2048, %di # imm = 0xF8006096; AVX512BW-NEXT: kmovd %edi, %k26097; AVX512BW-NEXT: vmovdqa32 %zmm7, %zmm6 {%k2}6098; AVX512BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm8 = [0,0,0,0,0,0,5,11,17,23,29,35,41,47,53,59,0,0,0,0,0,0,5,11,17,23,29,35,41,47,53,59]6099; AVX512BW-NEXT: # zmm8 = mem[0,1,2,3,0,1,2,3]6100; AVX512BW-NEXT: vpermi2w %zmm0, %zmm1, %zmm86101; AVX512BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm9 = [1,7,13,19,25,31,0,0,0,0,0,35,41,47,53,59,1,7,13,19,25,31,0,0,0,0,0,35,41,47,53,59]6102; AVX512BW-NEXT: # zmm9 = mem[0,1,2,3,0,1,2,3]6103; AVX512BW-NEXT: vpermi2w %zmm2, %zmm4, %zmm96104; AVX512BW-NEXT: vpmovsxbw {{.*#+}} ymm7 = [1,7,13,19,25,31,37,43,49,55,61,0,0,0,0,0]6105; AVX512BW-NEXT: vpermi2w %zmm5, %zmm3, %zmm76106; AVX512BW-NEXT: vmovdqu16 %zmm9, %zmm7 {%k1}6107; AVX512BW-NEXT: vmovdqa32 %zmm8, %zmm7 {%k2}6108; AVX512BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm8 = [0,0,0,0,0,0,6,12,18,24,30,36,42,48,54,60,0,0,0,0,0,0,6,12,18,24,30,36,42,48,54,60]6109; AVX512BW-NEXT: # zmm8 = mem[0,1,2,3,0,1,2,3]6110; AVX512BW-NEXT: vpermi2w %zmm0, %zmm1, %zmm86111; AVX512BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm9 = [34,40,46,52,58,0,0,0,0,0,0,4,10,16,22,28,34,40,46,52,58,0,0,0,0,0,0,4,10,16,22,28]6112; AVX512BW-NEXT: # zmm9 = mem[0,1,2,3,0,1,2,3]6113; AVX512BW-NEXT: vpermi2w %zmm4, %zmm2, %zmm96114; AVX512BW-NEXT: vpmovsxbw {{.*#+}} ymm10 = [34,40,46,52,58,0,6,12,18,24,30,0,0,0,0,0]6115; AVX512BW-NEXT: vpermi2w %zmm3, %zmm5, %zmm106116; AVX512BW-NEXT: movl $2095104, %edi # imm = 0x1FF8006117; AVX512BW-NEXT: kmovd %edi, %k26118; AVX512BW-NEXT: vmovdqu16 %zmm9, %zmm10 {%k2}6119; AVX512BW-NEXT: movl $-2097152, %edi # imm = 0xFFE000006120; AVX512BW-NEXT: kmovd %edi, %k16121; AVX512BW-NEXT: vmovdqu16 %zmm8, %zmm10 {%k1}6122; AVX512BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm8 = [0,0,0,0,0,1,7,13,19,25,31,37,43,49,55,61,0,0,0,0,0,1,7,13,19,25,31,37,43,49,55,61]6123; AVX512BW-NEXT: # zmm8 = mem[0,1,2,3,0,1,2,3]6124; AVX512BW-NEXT: vpermi2w %zmm0, %zmm1, %zmm86125; AVX512BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm9 = [35,41,47,53,59,0,0,0,0,0,0,5,11,17,23,29,35,41,47,53,59,0,0,0,0,0,0,5,11,17,23,29]6126; AVX512BW-NEXT: # zmm9 = mem[0,1,2,3,0,1,2,3]6127; AVX512BW-NEXT: vpermi2w %zmm4, %zmm2, %zmm96128; AVX512BW-NEXT: vpmovsxbw {{.*#+}} ymm11 = [35,41,47,53,59,1,7,13,19,25,31,0,0,0,0,0]6129; AVX512BW-NEXT: vpermi2w %zmm3, %zmm5, %zmm116130; AVX512BW-NEXT: vmovdqu16 %zmm9, %zmm11 {%k2}6131; AVX512BW-NEXT: vmovdqu16 %zmm8, %zmm11 {%k1}6132; AVX512BW-NEXT: vpmovsxbw {{.*#+}} ymm8 = [4,10,16,22,28,34,40,46,52,58,0,0,0,0,0,0]6133; AVX512BW-NEXT: vpermi2w %zmm5, %zmm3, %zmm86134; AVX512BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm9 = [36,42,48,54,60,0,0,0,0,0,0,6,12,18,24,30,36,42,48,54,60,0,0,0,0,0,0,6,12,18,24,30]6135; AVX512BW-NEXT: # zmm9 = mem[0,1,2,3,0,1,2,3]6136; AVX512BW-NEXT: vpermi2w %zmm4, %zmm2, %zmm96137; AVX512BW-NEXT: movw $31, %di6138; AVX512BW-NEXT: kmovd %edi, %k26139; AVX512BW-NEXT: vmovdqa32 %zmm8, %zmm9 {%k2}6140; AVX512BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm8 = [0,0,0,0,0,34,40,46,52,58,0,6,12,18,24,30,0,0,0,0,0,34,40,46,52,58,0,6,12,18,24,30]6141; AVX512BW-NEXT: # zmm8 = mem[0,1,2,3,0,1,2,3]6142; AVX512BW-NEXT: vpermi2w %zmm1, %zmm0, %zmm86143; AVX512BW-NEXT: vmovdqu16 %zmm8, %zmm9 {%k1}6144; AVX512BW-NEXT: vpmovsxbw {{.*#+}} ymm8 = [5,11,17,23,29,35,41,47,53,59,0,0,0,0,0,0]6145; AVX512BW-NEXT: vpermi2w %zmm5, %zmm3, %zmm86146; AVX512BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm3 = [37,43,49,55,61,0,0,0,0,0,1,7,13,19,25,31,37,43,49,55,61,0,0,0,0,0,1,7,13,19,25,31]6147; AVX512BW-NEXT: # zmm3 = mem[0,1,2,3,0,1,2,3]6148; AVX512BW-NEXT: vpermi2w %zmm4, %zmm2, %zmm36149; AVX512BW-NEXT: vmovdqa32 %zmm8, %zmm3 {%k2}6150; AVX512BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm2 = [0,0,0,0,0,35,41,47,53,59,1,7,13,19,25,31,0,0,0,0,0,35,41,47,53,59,1,7,13,19,25,31]6151; AVX512BW-NEXT: # zmm2 = mem[0,1,2,3,0,1,2,3]6152; AVX512BW-NEXT: vpermi2w %zmm1, %zmm0, %zmm26153; AVX512BW-NEXT: vmovdqu16 %zmm2, %zmm3 {%k1}6154; AVX512BW-NEXT: vmovdqa64 %zmm6, (%rsi)6155; AVX512BW-NEXT: vmovdqa64 %zmm7, (%rdx)6156; AVX512BW-NEXT: vmovdqa64 %zmm10, (%rcx)6157; AVX512BW-NEXT: vmovdqa64 %zmm11, (%r8)6158; AVX512BW-NEXT: vmovdqa64 %zmm9, (%r9)6159; AVX512BW-NEXT: vmovdqa64 %zmm3, (%rax)6160; AVX512BW-NEXT: vzeroupper6161; AVX512BW-NEXT: retq6162;6163; AVX512BW-FCP-LABEL: load_i16_stride6_vf32:6164; AVX512BW-FCP: # %bb.0:6165; AVX512BW-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax6166; AVX512BW-FCP-NEXT: vmovdqa64 (%rdi), %zmm36167; AVX512BW-FCP-NEXT: vmovdqa64 64(%rdi), %zmm56168; AVX512BW-FCP-NEXT: vmovdqa64 128(%rdi), %zmm26169; AVX512BW-FCP-NEXT: vmovdqa64 192(%rdi), %zmm46170; AVX512BW-FCP-NEXT: vmovdqa64 320(%rdi), %zmm06171; AVX512BW-FCP-NEXT: vmovdqa64 256(%rdi), %zmm16172; AVX512BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm7 = [0,0,0,0,0,0,4,10,16,22,28,34,40,46,52,58,0,0,0,0,0,0,4,10,16,22,28,34,40,46,52,58]6173; AVX512BW-FCP-NEXT: # zmm7 = mem[0,1,2,3,0,1,2,3]6174; AVX512BW-FCP-NEXT: vpermi2w %zmm0, %zmm1, %zmm76175; AVX512BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm8 = [0,6,12,18,24,30,0,0,0,0,0,34,40,46,52,58,0,6,12,18,24,30,0,0,0,0,0,34,40,46,52,58]6176; AVX512BW-FCP-NEXT: # zmm8 = mem[0,1,2,3,0,1,2,3]6177; AVX512BW-FCP-NEXT: vpermi2w %zmm2, %zmm4, %zmm86178; AVX512BW-FCP-NEXT: vpmovsxbw {{.*#+}} ymm6 = [0,6,12,18,24,30,36,42,48,54,60,0,0,0,0,0]6179; AVX512BW-FCP-NEXT: vpermi2w %zmm5, %zmm3, %zmm66180; AVX512BW-FCP-NEXT: movl $4192256, %edi # imm = 0x3FF8006181; AVX512BW-FCP-NEXT: kmovd %edi, %k16182; AVX512BW-FCP-NEXT: vmovdqu16 %zmm8, %zmm6 {%k1}6183; AVX512BW-FCP-NEXT: movw $-2048, %di # imm = 0xF8006184; AVX512BW-FCP-NEXT: kmovd %edi, %k26185; AVX512BW-FCP-NEXT: vmovdqa32 %zmm7, %zmm6 {%k2}6186; AVX512BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm8 = [0,0,0,0,0,0,5,11,17,23,29,35,41,47,53,59,0,0,0,0,0,0,5,11,17,23,29,35,41,47,53,59]6187; AVX512BW-FCP-NEXT: # zmm8 = mem[0,1,2,3,0,1,2,3]6188; AVX512BW-FCP-NEXT: vpermi2w %zmm0, %zmm1, %zmm86189; AVX512BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm9 = [1,7,13,19,25,31,0,0,0,0,0,35,41,47,53,59,1,7,13,19,25,31,0,0,0,0,0,35,41,47,53,59]6190; AVX512BW-FCP-NEXT: # zmm9 = mem[0,1,2,3,0,1,2,3]6191; AVX512BW-FCP-NEXT: vpermi2w %zmm2, %zmm4, %zmm96192; AVX512BW-FCP-NEXT: vpmovsxbw {{.*#+}} ymm7 = [1,7,13,19,25,31,37,43,49,55,61,0,0,0,0,0]6193; AVX512BW-FCP-NEXT: vpermi2w %zmm5, %zmm3, %zmm76194; AVX512BW-FCP-NEXT: vmovdqu16 %zmm9, %zmm7 {%k1}6195; AVX512BW-FCP-NEXT: vmovdqa32 %zmm8, %zmm7 {%k2}6196; AVX512BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm8 = [0,0,0,0,0,0,6,12,18,24,30,36,42,48,54,60,0,0,0,0,0,0,6,12,18,24,30,36,42,48,54,60]6197; AVX512BW-FCP-NEXT: # zmm8 = mem[0,1,2,3,0,1,2,3]6198; AVX512BW-FCP-NEXT: vpermi2w %zmm0, %zmm1, %zmm86199; AVX512BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm9 = [34,40,46,52,58,0,0,0,0,0,0,4,10,16,22,28,34,40,46,52,58,0,0,0,0,0,0,4,10,16,22,28]6200; AVX512BW-FCP-NEXT: # zmm9 = mem[0,1,2,3,0,1,2,3]6201; AVX512BW-FCP-NEXT: vpermi2w %zmm4, %zmm2, %zmm96202; AVX512BW-FCP-NEXT: vpmovsxbw {{.*#+}} ymm10 = [34,40,46,52,58,0,6,12,18,24,30,0,0,0,0,0]6203; AVX512BW-FCP-NEXT: vpermi2w %zmm3, %zmm5, %zmm106204; AVX512BW-FCP-NEXT: movl $2095104, %edi # imm = 0x1FF8006205; AVX512BW-FCP-NEXT: kmovd %edi, %k26206; AVX512BW-FCP-NEXT: vmovdqu16 %zmm9, %zmm10 {%k2}6207; AVX512BW-FCP-NEXT: movl $-2097152, %edi # imm = 0xFFE000006208; AVX512BW-FCP-NEXT: kmovd %edi, %k16209; AVX512BW-FCP-NEXT: vmovdqu16 %zmm8, %zmm10 {%k1}6210; AVX512BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm8 = [0,0,0,0,0,1,7,13,19,25,31,37,43,49,55,61,0,0,0,0,0,1,7,13,19,25,31,37,43,49,55,61]6211; AVX512BW-FCP-NEXT: # zmm8 = mem[0,1,2,3,0,1,2,3]6212; AVX512BW-FCP-NEXT: vpermi2w %zmm0, %zmm1, %zmm86213; AVX512BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm9 = [35,41,47,53,59,0,0,0,0,0,0,5,11,17,23,29,35,41,47,53,59,0,0,0,0,0,0,5,11,17,23,29]6214; AVX512BW-FCP-NEXT: # zmm9 = mem[0,1,2,3,0,1,2,3]6215; AVX512BW-FCP-NEXT: vpermi2w %zmm4, %zmm2, %zmm96216; AVX512BW-FCP-NEXT: vpmovsxbw {{.*#+}} ymm11 = [35,41,47,53,59,1,7,13,19,25,31,0,0,0,0,0]6217; AVX512BW-FCP-NEXT: vpermi2w %zmm3, %zmm5, %zmm116218; AVX512BW-FCP-NEXT: vmovdqu16 %zmm9, %zmm11 {%k2}6219; AVX512BW-FCP-NEXT: vmovdqu16 %zmm8, %zmm11 {%k1}6220; AVX512BW-FCP-NEXT: vpmovsxbw {{.*#+}} ymm8 = [4,10,16,22,28,34,40,46,52,58,0,0,0,0,0,0]6221; AVX512BW-FCP-NEXT: vpermi2w %zmm5, %zmm3, %zmm86222; AVX512BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm9 = [36,42,48,54,60,0,0,0,0,0,0,6,12,18,24,30,36,42,48,54,60,0,0,0,0,0,0,6,12,18,24,30]6223; AVX512BW-FCP-NEXT: # zmm9 = mem[0,1,2,3,0,1,2,3]6224; AVX512BW-FCP-NEXT: vpermi2w %zmm4, %zmm2, %zmm96225; AVX512BW-FCP-NEXT: movw $31, %di6226; AVX512BW-FCP-NEXT: kmovd %edi, %k26227; AVX512BW-FCP-NEXT: vmovdqa32 %zmm8, %zmm9 {%k2}6228; AVX512BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm8 = [0,0,0,0,0,34,40,46,52,58,0,6,12,18,24,30,0,0,0,0,0,34,40,46,52,58,0,6,12,18,24,30]6229; AVX512BW-FCP-NEXT: # zmm8 = mem[0,1,2,3,0,1,2,3]6230; AVX512BW-FCP-NEXT: vpermi2w %zmm1, %zmm0, %zmm86231; AVX512BW-FCP-NEXT: vmovdqu16 %zmm8, %zmm9 {%k1}6232; AVX512BW-FCP-NEXT: vpmovsxbw {{.*#+}} ymm8 = [5,11,17,23,29,35,41,47,53,59,0,0,0,0,0,0]6233; AVX512BW-FCP-NEXT: vpermi2w %zmm5, %zmm3, %zmm86234; AVX512BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm3 = [37,43,49,55,61,0,0,0,0,0,1,7,13,19,25,31,37,43,49,55,61,0,0,0,0,0,1,7,13,19,25,31]6235; AVX512BW-FCP-NEXT: # zmm3 = mem[0,1,2,3,0,1,2,3]6236; AVX512BW-FCP-NEXT: vpermi2w %zmm4, %zmm2, %zmm36237; AVX512BW-FCP-NEXT: vmovdqa32 %zmm8, %zmm3 {%k2}6238; AVX512BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm2 = [0,0,0,0,0,35,41,47,53,59,1,7,13,19,25,31,0,0,0,0,0,35,41,47,53,59,1,7,13,19,25,31]6239; AVX512BW-FCP-NEXT: # zmm2 = mem[0,1,2,3,0,1,2,3]6240; AVX512BW-FCP-NEXT: vpermi2w %zmm1, %zmm0, %zmm26241; AVX512BW-FCP-NEXT: vmovdqu16 %zmm2, %zmm3 {%k1}6242; AVX512BW-FCP-NEXT: vmovdqa64 %zmm6, (%rsi)6243; AVX512BW-FCP-NEXT: vmovdqa64 %zmm7, (%rdx)6244; AVX512BW-FCP-NEXT: vmovdqa64 %zmm10, (%rcx)6245; AVX512BW-FCP-NEXT: vmovdqa64 %zmm11, (%r8)6246; AVX512BW-FCP-NEXT: vmovdqa64 %zmm9, (%r9)6247; AVX512BW-FCP-NEXT: vmovdqa64 %zmm3, (%rax)6248; AVX512BW-FCP-NEXT: vzeroupper6249; AVX512BW-FCP-NEXT: retq6250;6251; AVX512DQ-BW-LABEL: load_i16_stride6_vf32:6252; AVX512DQ-BW: # %bb.0:6253; AVX512DQ-BW-NEXT: movq {{[0-9]+}}(%rsp), %rax6254; AVX512DQ-BW-NEXT: vmovdqa64 (%rdi), %zmm36255; AVX512DQ-BW-NEXT: vmovdqa64 64(%rdi), %zmm56256; AVX512DQ-BW-NEXT: vmovdqa64 128(%rdi), %zmm26257; AVX512DQ-BW-NEXT: vmovdqa64 192(%rdi), %zmm46258; AVX512DQ-BW-NEXT: vmovdqa64 320(%rdi), %zmm06259; AVX512DQ-BW-NEXT: vmovdqa64 256(%rdi), %zmm16260; AVX512DQ-BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm7 = [0,0,0,0,0,0,4,10,16,22,28,34,40,46,52,58,0,0,0,0,0,0,4,10,16,22,28,34,40,46,52,58]6261; AVX512DQ-BW-NEXT: # zmm7 = mem[0,1,2,3,0,1,2,3]6262; AVX512DQ-BW-NEXT: vpermi2w %zmm0, %zmm1, %zmm76263; AVX512DQ-BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm8 = [0,6,12,18,24,30,0,0,0,0,0,34,40,46,52,58,0,6,12,18,24,30,0,0,0,0,0,34,40,46,52,58]6264; AVX512DQ-BW-NEXT: # zmm8 = mem[0,1,2,3,0,1,2,3]6265; AVX512DQ-BW-NEXT: vpermi2w %zmm2, %zmm4, %zmm86266; AVX512DQ-BW-NEXT: vpmovsxbw {{.*#+}} ymm6 = [0,6,12,18,24,30,36,42,48,54,60,0,0,0,0,0]6267; AVX512DQ-BW-NEXT: vpermi2w %zmm5, %zmm3, %zmm66268; AVX512DQ-BW-NEXT: movl $4192256, %edi # imm = 0x3FF8006269; AVX512DQ-BW-NEXT: kmovd %edi, %k16270; AVX512DQ-BW-NEXT: vmovdqu16 %zmm8, %zmm6 {%k1}6271; AVX512DQ-BW-NEXT: movw $-2048, %di # imm = 0xF8006272; AVX512DQ-BW-NEXT: kmovd %edi, %k26273; AVX512DQ-BW-NEXT: vmovdqa32 %zmm7, %zmm6 {%k2}6274; AVX512DQ-BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm8 = [0,0,0,0,0,0,5,11,17,23,29,35,41,47,53,59,0,0,0,0,0,0,5,11,17,23,29,35,41,47,53,59]6275; AVX512DQ-BW-NEXT: # zmm8 = mem[0,1,2,3,0,1,2,3]6276; AVX512DQ-BW-NEXT: vpermi2w %zmm0, %zmm1, %zmm86277; AVX512DQ-BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm9 = [1,7,13,19,25,31,0,0,0,0,0,35,41,47,53,59,1,7,13,19,25,31,0,0,0,0,0,35,41,47,53,59]6278; AVX512DQ-BW-NEXT: # zmm9 = mem[0,1,2,3,0,1,2,3]6279; AVX512DQ-BW-NEXT: vpermi2w %zmm2, %zmm4, %zmm96280; AVX512DQ-BW-NEXT: vpmovsxbw {{.*#+}} ymm7 = [1,7,13,19,25,31,37,43,49,55,61,0,0,0,0,0]6281; AVX512DQ-BW-NEXT: vpermi2w %zmm5, %zmm3, %zmm76282; AVX512DQ-BW-NEXT: vmovdqu16 %zmm9, %zmm7 {%k1}6283; AVX512DQ-BW-NEXT: vmovdqa32 %zmm8, %zmm7 {%k2}6284; AVX512DQ-BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm8 = [0,0,0,0,0,0,6,12,18,24,30,36,42,48,54,60,0,0,0,0,0,0,6,12,18,24,30,36,42,48,54,60]6285; AVX512DQ-BW-NEXT: # zmm8 = mem[0,1,2,3,0,1,2,3]6286; AVX512DQ-BW-NEXT: vpermi2w %zmm0, %zmm1, %zmm86287; AVX512DQ-BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm9 = [34,40,46,52,58,0,0,0,0,0,0,4,10,16,22,28,34,40,46,52,58,0,0,0,0,0,0,4,10,16,22,28]6288; AVX512DQ-BW-NEXT: # zmm9 = mem[0,1,2,3,0,1,2,3]6289; AVX512DQ-BW-NEXT: vpermi2w %zmm4, %zmm2, %zmm96290; AVX512DQ-BW-NEXT: vpmovsxbw {{.*#+}} ymm10 = [34,40,46,52,58,0,6,12,18,24,30,0,0,0,0,0]6291; AVX512DQ-BW-NEXT: vpermi2w %zmm3, %zmm5, %zmm106292; AVX512DQ-BW-NEXT: movl $2095104, %edi # imm = 0x1FF8006293; AVX512DQ-BW-NEXT: kmovd %edi, %k26294; AVX512DQ-BW-NEXT: vmovdqu16 %zmm9, %zmm10 {%k2}6295; AVX512DQ-BW-NEXT: movl $-2097152, %edi # imm = 0xFFE000006296; AVX512DQ-BW-NEXT: kmovd %edi, %k16297; AVX512DQ-BW-NEXT: vmovdqu16 %zmm8, %zmm10 {%k1}6298; AVX512DQ-BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm8 = [0,0,0,0,0,1,7,13,19,25,31,37,43,49,55,61,0,0,0,0,0,1,7,13,19,25,31,37,43,49,55,61]6299; AVX512DQ-BW-NEXT: # zmm8 = mem[0,1,2,3,0,1,2,3]6300; AVX512DQ-BW-NEXT: vpermi2w %zmm0, %zmm1, %zmm86301; AVX512DQ-BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm9 = [35,41,47,53,59,0,0,0,0,0,0,5,11,17,23,29,35,41,47,53,59,0,0,0,0,0,0,5,11,17,23,29]6302; AVX512DQ-BW-NEXT: # zmm9 = mem[0,1,2,3,0,1,2,3]6303; AVX512DQ-BW-NEXT: vpermi2w %zmm4, %zmm2, %zmm96304; AVX512DQ-BW-NEXT: vpmovsxbw {{.*#+}} ymm11 = [35,41,47,53,59,1,7,13,19,25,31,0,0,0,0,0]6305; AVX512DQ-BW-NEXT: vpermi2w %zmm3, %zmm5, %zmm116306; AVX512DQ-BW-NEXT: vmovdqu16 %zmm9, %zmm11 {%k2}6307; AVX512DQ-BW-NEXT: vmovdqu16 %zmm8, %zmm11 {%k1}6308; AVX512DQ-BW-NEXT: vpmovsxbw {{.*#+}} ymm8 = [4,10,16,22,28,34,40,46,52,58,0,0,0,0,0,0]6309; AVX512DQ-BW-NEXT: vpermi2w %zmm5, %zmm3, %zmm86310; AVX512DQ-BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm9 = [36,42,48,54,60,0,0,0,0,0,0,6,12,18,24,30,36,42,48,54,60,0,0,0,0,0,0,6,12,18,24,30]6311; AVX512DQ-BW-NEXT: # zmm9 = mem[0,1,2,3,0,1,2,3]6312; AVX512DQ-BW-NEXT: vpermi2w %zmm4, %zmm2, %zmm96313; AVX512DQ-BW-NEXT: movw $31, %di6314; AVX512DQ-BW-NEXT: kmovd %edi, %k26315; AVX512DQ-BW-NEXT: vmovdqa32 %zmm8, %zmm9 {%k2}6316; AVX512DQ-BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm8 = [0,0,0,0,0,34,40,46,52,58,0,6,12,18,24,30,0,0,0,0,0,34,40,46,52,58,0,6,12,18,24,30]6317; AVX512DQ-BW-NEXT: # zmm8 = mem[0,1,2,3,0,1,2,3]6318; AVX512DQ-BW-NEXT: vpermi2w %zmm1, %zmm0, %zmm86319; AVX512DQ-BW-NEXT: vmovdqu16 %zmm8, %zmm9 {%k1}6320; AVX512DQ-BW-NEXT: vpmovsxbw {{.*#+}} ymm8 = [5,11,17,23,29,35,41,47,53,59,0,0,0,0,0,0]6321; AVX512DQ-BW-NEXT: vpermi2w %zmm5, %zmm3, %zmm86322; AVX512DQ-BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm3 = [37,43,49,55,61,0,0,0,0,0,1,7,13,19,25,31,37,43,49,55,61,0,0,0,0,0,1,7,13,19,25,31]6323; AVX512DQ-BW-NEXT: # zmm3 = mem[0,1,2,3,0,1,2,3]6324; AVX512DQ-BW-NEXT: vpermi2w %zmm4, %zmm2, %zmm36325; AVX512DQ-BW-NEXT: vmovdqa32 %zmm8, %zmm3 {%k2}6326; AVX512DQ-BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm2 = [0,0,0,0,0,35,41,47,53,59,1,7,13,19,25,31,0,0,0,0,0,35,41,47,53,59,1,7,13,19,25,31]6327; AVX512DQ-BW-NEXT: # zmm2 = mem[0,1,2,3,0,1,2,3]6328; AVX512DQ-BW-NEXT: vpermi2w %zmm1, %zmm0, %zmm26329; AVX512DQ-BW-NEXT: vmovdqu16 %zmm2, %zmm3 {%k1}6330; AVX512DQ-BW-NEXT: vmovdqa64 %zmm6, (%rsi)6331; AVX512DQ-BW-NEXT: vmovdqa64 %zmm7, (%rdx)6332; AVX512DQ-BW-NEXT: vmovdqa64 %zmm10, (%rcx)6333; AVX512DQ-BW-NEXT: vmovdqa64 %zmm11, (%r8)6334; AVX512DQ-BW-NEXT: vmovdqa64 %zmm9, (%r9)6335; AVX512DQ-BW-NEXT: vmovdqa64 %zmm3, (%rax)6336; AVX512DQ-BW-NEXT: vzeroupper6337; AVX512DQ-BW-NEXT: retq6338;6339; AVX512DQ-BW-FCP-LABEL: load_i16_stride6_vf32:6340; AVX512DQ-BW-FCP: # %bb.0:6341; AVX512DQ-BW-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax6342; AVX512DQ-BW-FCP-NEXT: vmovdqa64 (%rdi), %zmm36343; AVX512DQ-BW-FCP-NEXT: vmovdqa64 64(%rdi), %zmm56344; AVX512DQ-BW-FCP-NEXT: vmovdqa64 128(%rdi), %zmm26345; AVX512DQ-BW-FCP-NEXT: vmovdqa64 192(%rdi), %zmm46346; AVX512DQ-BW-FCP-NEXT: vmovdqa64 320(%rdi), %zmm06347; AVX512DQ-BW-FCP-NEXT: vmovdqa64 256(%rdi), %zmm16348; AVX512DQ-BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm7 = [0,0,0,0,0,0,4,10,16,22,28,34,40,46,52,58,0,0,0,0,0,0,4,10,16,22,28,34,40,46,52,58]6349; AVX512DQ-BW-FCP-NEXT: # zmm7 = mem[0,1,2,3,0,1,2,3]6350; AVX512DQ-BW-FCP-NEXT: vpermi2w %zmm0, %zmm1, %zmm76351; AVX512DQ-BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm8 = [0,6,12,18,24,30,0,0,0,0,0,34,40,46,52,58,0,6,12,18,24,30,0,0,0,0,0,34,40,46,52,58]6352; AVX512DQ-BW-FCP-NEXT: # zmm8 = mem[0,1,2,3,0,1,2,3]6353; AVX512DQ-BW-FCP-NEXT: vpermi2w %zmm2, %zmm4, %zmm86354; AVX512DQ-BW-FCP-NEXT: vpmovsxbw {{.*#+}} ymm6 = [0,6,12,18,24,30,36,42,48,54,60,0,0,0,0,0]6355; AVX512DQ-BW-FCP-NEXT: vpermi2w %zmm5, %zmm3, %zmm66356; AVX512DQ-BW-FCP-NEXT: movl $4192256, %edi # imm = 0x3FF8006357; AVX512DQ-BW-FCP-NEXT: kmovd %edi, %k16358; AVX512DQ-BW-FCP-NEXT: vmovdqu16 %zmm8, %zmm6 {%k1}6359; AVX512DQ-BW-FCP-NEXT: movw $-2048, %di # imm = 0xF8006360; AVX512DQ-BW-FCP-NEXT: kmovd %edi, %k26361; AVX512DQ-BW-FCP-NEXT: vmovdqa32 %zmm7, %zmm6 {%k2}6362; AVX512DQ-BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm8 = [0,0,0,0,0,0,5,11,17,23,29,35,41,47,53,59,0,0,0,0,0,0,5,11,17,23,29,35,41,47,53,59]6363; AVX512DQ-BW-FCP-NEXT: # zmm8 = mem[0,1,2,3,0,1,2,3]6364; AVX512DQ-BW-FCP-NEXT: vpermi2w %zmm0, %zmm1, %zmm86365; AVX512DQ-BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm9 = [1,7,13,19,25,31,0,0,0,0,0,35,41,47,53,59,1,7,13,19,25,31,0,0,0,0,0,35,41,47,53,59]6366; AVX512DQ-BW-FCP-NEXT: # zmm9 = mem[0,1,2,3,0,1,2,3]6367; AVX512DQ-BW-FCP-NEXT: vpermi2w %zmm2, %zmm4, %zmm96368; AVX512DQ-BW-FCP-NEXT: vpmovsxbw {{.*#+}} ymm7 = [1,7,13,19,25,31,37,43,49,55,61,0,0,0,0,0]6369; AVX512DQ-BW-FCP-NEXT: vpermi2w %zmm5, %zmm3, %zmm76370; AVX512DQ-BW-FCP-NEXT: vmovdqu16 %zmm9, %zmm7 {%k1}6371; AVX512DQ-BW-FCP-NEXT: vmovdqa32 %zmm8, %zmm7 {%k2}6372; AVX512DQ-BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm8 = [0,0,0,0,0,0,6,12,18,24,30,36,42,48,54,60,0,0,0,0,0,0,6,12,18,24,30,36,42,48,54,60]6373; AVX512DQ-BW-FCP-NEXT: # zmm8 = mem[0,1,2,3,0,1,2,3]6374; AVX512DQ-BW-FCP-NEXT: vpermi2w %zmm0, %zmm1, %zmm86375; AVX512DQ-BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm9 = [34,40,46,52,58,0,0,0,0,0,0,4,10,16,22,28,34,40,46,52,58,0,0,0,0,0,0,4,10,16,22,28]6376; AVX512DQ-BW-FCP-NEXT: # zmm9 = mem[0,1,2,3,0,1,2,3]6377; AVX512DQ-BW-FCP-NEXT: vpermi2w %zmm4, %zmm2, %zmm96378; AVX512DQ-BW-FCP-NEXT: vpmovsxbw {{.*#+}} ymm10 = [34,40,46,52,58,0,6,12,18,24,30,0,0,0,0,0]6379; AVX512DQ-BW-FCP-NEXT: vpermi2w %zmm3, %zmm5, %zmm106380; AVX512DQ-BW-FCP-NEXT: movl $2095104, %edi # imm = 0x1FF8006381; AVX512DQ-BW-FCP-NEXT: kmovd %edi, %k26382; AVX512DQ-BW-FCP-NEXT: vmovdqu16 %zmm9, %zmm10 {%k2}6383; AVX512DQ-BW-FCP-NEXT: movl $-2097152, %edi # imm = 0xFFE000006384; AVX512DQ-BW-FCP-NEXT: kmovd %edi, %k16385; AVX512DQ-BW-FCP-NEXT: vmovdqu16 %zmm8, %zmm10 {%k1}6386; AVX512DQ-BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm8 = [0,0,0,0,0,1,7,13,19,25,31,37,43,49,55,61,0,0,0,0,0,1,7,13,19,25,31,37,43,49,55,61]6387; AVX512DQ-BW-FCP-NEXT: # zmm8 = mem[0,1,2,3,0,1,2,3]6388; AVX512DQ-BW-FCP-NEXT: vpermi2w %zmm0, %zmm1, %zmm86389; AVX512DQ-BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm9 = [35,41,47,53,59,0,0,0,0,0,0,5,11,17,23,29,35,41,47,53,59,0,0,0,0,0,0,5,11,17,23,29]6390; AVX512DQ-BW-FCP-NEXT: # zmm9 = mem[0,1,2,3,0,1,2,3]6391; AVX512DQ-BW-FCP-NEXT: vpermi2w %zmm4, %zmm2, %zmm96392; AVX512DQ-BW-FCP-NEXT: vpmovsxbw {{.*#+}} ymm11 = [35,41,47,53,59,1,7,13,19,25,31,0,0,0,0,0]6393; AVX512DQ-BW-FCP-NEXT: vpermi2w %zmm3, %zmm5, %zmm116394; AVX512DQ-BW-FCP-NEXT: vmovdqu16 %zmm9, %zmm11 {%k2}6395; AVX512DQ-BW-FCP-NEXT: vmovdqu16 %zmm8, %zmm11 {%k1}6396; AVX512DQ-BW-FCP-NEXT: vpmovsxbw {{.*#+}} ymm8 = [4,10,16,22,28,34,40,46,52,58,0,0,0,0,0,0]6397; AVX512DQ-BW-FCP-NEXT: vpermi2w %zmm5, %zmm3, %zmm86398; AVX512DQ-BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm9 = [36,42,48,54,60,0,0,0,0,0,0,6,12,18,24,30,36,42,48,54,60,0,0,0,0,0,0,6,12,18,24,30]6399; AVX512DQ-BW-FCP-NEXT: # zmm9 = mem[0,1,2,3,0,1,2,3]6400; AVX512DQ-BW-FCP-NEXT: vpermi2w %zmm4, %zmm2, %zmm96401; AVX512DQ-BW-FCP-NEXT: movw $31, %di6402; AVX512DQ-BW-FCP-NEXT: kmovd %edi, %k26403; AVX512DQ-BW-FCP-NEXT: vmovdqa32 %zmm8, %zmm9 {%k2}6404; AVX512DQ-BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm8 = [0,0,0,0,0,34,40,46,52,58,0,6,12,18,24,30,0,0,0,0,0,34,40,46,52,58,0,6,12,18,24,30]6405; AVX512DQ-BW-FCP-NEXT: # zmm8 = mem[0,1,2,3,0,1,2,3]6406; AVX512DQ-BW-FCP-NEXT: vpermi2w %zmm1, %zmm0, %zmm86407; AVX512DQ-BW-FCP-NEXT: vmovdqu16 %zmm8, %zmm9 {%k1}6408; AVX512DQ-BW-FCP-NEXT: vpmovsxbw {{.*#+}} ymm8 = [5,11,17,23,29,35,41,47,53,59,0,0,0,0,0,0]6409; AVX512DQ-BW-FCP-NEXT: vpermi2w %zmm5, %zmm3, %zmm86410; AVX512DQ-BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm3 = [37,43,49,55,61,0,0,0,0,0,1,7,13,19,25,31,37,43,49,55,61,0,0,0,0,0,1,7,13,19,25,31]6411; AVX512DQ-BW-FCP-NEXT: # zmm3 = mem[0,1,2,3,0,1,2,3]6412; AVX512DQ-BW-FCP-NEXT: vpermi2w %zmm4, %zmm2, %zmm36413; AVX512DQ-BW-FCP-NEXT: vmovdqa32 %zmm8, %zmm3 {%k2}6414; AVX512DQ-BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm2 = [0,0,0,0,0,35,41,47,53,59,1,7,13,19,25,31,0,0,0,0,0,35,41,47,53,59,1,7,13,19,25,31]6415; AVX512DQ-BW-FCP-NEXT: # zmm2 = mem[0,1,2,3,0,1,2,3]6416; AVX512DQ-BW-FCP-NEXT: vpermi2w %zmm1, %zmm0, %zmm26417; AVX512DQ-BW-FCP-NEXT: vmovdqu16 %zmm2, %zmm3 {%k1}6418; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm6, (%rsi)6419; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm7, (%rdx)6420; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm10, (%rcx)6421; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm11, (%r8)6422; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm9, (%r9)6423; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm3, (%rax)6424; AVX512DQ-BW-FCP-NEXT: vzeroupper6425; AVX512DQ-BW-FCP-NEXT: retq6426 %wide.vec = load <192 x i16>, ptr %in.vec, align 646427 %strided.vec0 = shufflevector <192 x i16> %wide.vec, <192 x i16> 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>6428 %strided.vec1 = shufflevector <192 x i16> %wide.vec, <192 x i16> 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>6429 %strided.vec2 = shufflevector <192 x i16> %wide.vec, <192 x i16> 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>6430 %strided.vec3 = shufflevector <192 x i16> %wide.vec, <192 x i16> 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>6431 %strided.vec4 = shufflevector <192 x i16> %wide.vec, <192 x i16> 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>6432 %strided.vec5 = shufflevector <192 x i16> %wide.vec, <192 x i16> 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>6433 store <32 x i16> %strided.vec0, ptr %out.vec0, align 646434 store <32 x i16> %strided.vec1, ptr %out.vec1, align 646435 store <32 x i16> %strided.vec2, ptr %out.vec2, align 646436 store <32 x i16> %strided.vec3, ptr %out.vec3, align 646437 store <32 x i16> %strided.vec4, ptr %out.vec4, align 646438 store <32 x i16> %strided.vec5, ptr %out.vec5, align 646439 ret void6440}6441 6442define void @load_i16_stride6_vf64(ptr %in.vec, ptr %out.vec0, ptr %out.vec1, ptr %out.vec2, ptr %out.vec3, ptr %out.vec4, ptr %out.vec5) nounwind {6443; SSE-LABEL: load_i16_stride6_vf64:6444; SSE: # %bb.0:6445; SSE-NEXT: subq $1176, %rsp # imm = 0x4986446; SSE-NEXT: movdqa 496(%rdi), %xmm56447; SSE-NEXT: movdqa %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6448; SSE-NEXT: movdqa 512(%rdi), %xmm86449; SSE-NEXT: movdqa %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6450; SSE-NEXT: movdqa 144(%rdi), %xmm76451; SSE-NEXT: movdqa %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6452; SSE-NEXT: movdqa 160(%rdi), %xmm36453; SSE-NEXT: movdqa 176(%rdi), %xmm06454; SSE-NEXT: movdqa 112(%rdi), %xmm66455; SSE-NEXT: movdqa %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6456; SSE-NEXT: movdqa 96(%rdi), %xmm46457; SSE-NEXT: movdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6458; SSE-NEXT: movdqa 128(%rdi), %xmm16459; SSE-NEXT: movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6460; SSE-NEXT: pshuflw {{.*#+}} xmm1 = xmm1[0,1,1,2,4,5,6,7]6461; SSE-NEXT: movdqa {{.*#+}} xmm9 = [65535,65535,65535,0,0,0,65535,65535]6462; SSE-NEXT: movdqa %xmm9, %xmm26463; SSE-NEXT: pandn %xmm1, %xmm26464; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm4[0,1,0,3]6465; SSE-NEXT: movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6466; SSE-NEXT: pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,6,6,7]6467; SSE-NEXT: punpckhdq {{.*#+}} xmm1 = xmm1[2],xmm6[2],xmm1[3],xmm6[3]6468; SSE-NEXT: pand %xmm9, %xmm16469; SSE-NEXT: por %xmm2, %xmm16470; SSE-NEXT: movdqa %xmm1, %xmm26471; SSE-NEXT: movdqa %xmm3, %xmm16472; SSE-NEXT: pshufd {{.*#+}} xmm4 = xmm3[2,2,3,3]6473; SSE-NEXT: punpcklwd {{.*#+}} xmm4 = xmm4[0],xmm0[0],xmm4[1],xmm0[1],xmm4[2],xmm0[2],xmm4[3],xmm0[3]6474; SSE-NEXT: movdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6475; SSE-NEXT: movdqa %xmm0, %xmm46476; SSE-NEXT: shufps {{.*#+}} xmm4 = xmm4[2,0],xmm3[3,0]6477; SSE-NEXT: movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6478; SSE-NEXT: movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6479; SSE-NEXT: shufps {{.*#+}} xmm3 = xmm3[1,0],xmm0[0,0]6480; SSE-NEXT: shufps {{.*#+}} xmm3 = xmm3[2,0],xmm0[2,3]6481; SSE-NEXT: movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6482; SSE-NEXT: pslld $16, %xmm06483; SSE-NEXT: psrldq {{.*#+}} xmm1 = xmm1[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero6484; SSE-NEXT: punpcklwd {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1],xmm1[2],xmm0[2],xmm1[3],xmm0[3]6485; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm7[0,3,2,3]6486; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6487; SSE-NEXT: pshuflw {{.*#+}} xmm0 = xmm0[0,1,0,2,4,5,6,7]6488; SSE-NEXT: shufps {{.*#+}} xmm1 = xmm1[3,1],xmm0[1,3]6489; SSE-NEXT: shufps {{.*#+}} xmm2 = xmm2[0,1],xmm1[2,0]6490; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6491; SSE-NEXT: pshuflw {{.*#+}} xmm0 = xmm8[0,1,1,2,4,5,6,7]6492; SSE-NEXT: movdqa %xmm9, %xmm16493; SSE-NEXT: pandn %xmm0, %xmm16494; SSE-NEXT: movdqa 480(%rdi), %xmm06495; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6496; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,1,0,3]6497; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6498; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,6,6,7]6499; SSE-NEXT: punpckhdq {{.*#+}} xmm0 = xmm0[2],xmm5[2],xmm0[3],xmm5[3]6500; SSE-NEXT: pand %xmm9, %xmm06501; SSE-NEXT: por %xmm1, %xmm06502; SSE-NEXT: movdqa %xmm0, %xmm26503; SSE-NEXT: movdqa 544(%rdi), %xmm36504; SSE-NEXT: movdqa 560(%rdi), %xmm16505; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm3[2,2,3,3]6506; SSE-NEXT: punpcklwd {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3]6507; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6508; SSE-NEXT: movdqa %xmm1, %xmm06509; SSE-NEXT: shufps {{.*#+}} xmm0 = xmm0[2,0],xmm3[3,0]6510; SSE-NEXT: movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6511; SSE-NEXT: movdqa %xmm3, %xmm06512; SSE-NEXT: movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6513; SSE-NEXT: shufps {{.*#+}} xmm3 = xmm3[1,0],xmm1[0,0]6514; SSE-NEXT: shufps {{.*#+}} xmm3 = xmm3[2,0],xmm1[2,3]6515; SSE-NEXT: movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6516; SSE-NEXT: pslld $16, %xmm16517; SSE-NEXT: psrldq {{.*#+}} xmm0 = xmm0[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero6518; SSE-NEXT: punpcklwd {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3]6519; SSE-NEXT: movdqa 528(%rdi), %xmm16520; SSE-NEXT: movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6521; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[0,3,2,3]6522; SSE-NEXT: movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6523; SSE-NEXT: pshuflw {{.*#+}} xmm1 = xmm1[0,1,0,2,4,5,6,7]6524; SSE-NEXT: shufps {{.*#+}} xmm0 = xmm0[3,1],xmm1[1,3]6525; SSE-NEXT: shufps {{.*#+}} xmm2 = xmm2[0,1],xmm0[2,0]6526; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6527; SSE-NEXT: movdqa 32(%rdi), %xmm06528; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6529; SSE-NEXT: pshuflw {{.*#+}} xmm0 = xmm0[0,1,1,2,4,5,6,7]6530; SSE-NEXT: movdqa %xmm9, %xmm16531; SSE-NEXT: pandn %xmm0, %xmm16532; SSE-NEXT: movdqa (%rdi), %xmm06533; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6534; SSE-NEXT: movdqa 16(%rdi), %xmm66535; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,1,0,3]6536; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6537; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,6,6,7]6538; SSE-NEXT: punpckhdq {{.*#+}} xmm0 = xmm0[2],xmm6[2],xmm0[3],xmm6[3]6539; SSE-NEXT: movdqa %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6540; SSE-NEXT: pand %xmm9, %xmm06541; SSE-NEXT: por %xmm1, %xmm06542; SSE-NEXT: movdqa %xmm0, %xmm26543; SSE-NEXT: movdqa 64(%rdi), %xmm36544; SSE-NEXT: movdqa 80(%rdi), %xmm06545; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm3[2,2,3,3]6546; SSE-NEXT: punpcklwd {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1],xmm1[2],xmm0[2],xmm1[3],xmm0[3]6547; SSE-NEXT: movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6548; SSE-NEXT: movdqa %xmm0, %xmm16549; SSE-NEXT: shufps {{.*#+}} xmm1 = xmm1[2,0],xmm3[3,0]6550; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6551; SSE-NEXT: movdqa %xmm3, %xmm16552; SSE-NEXT: movaps %xmm3, (%rsp) # 16-byte Spill6553; SSE-NEXT: shufps {{.*#+}} xmm3 = xmm3[1,0],xmm0[0,0]6554; SSE-NEXT: shufps {{.*#+}} xmm3 = xmm3[2,0],xmm0[2,3]6555; SSE-NEXT: movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6556; SSE-NEXT: pslld $16, %xmm06557; SSE-NEXT: psrldq {{.*#+}} xmm1 = xmm1[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero6558; SSE-NEXT: punpcklwd {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1],xmm1[2],xmm0[2],xmm1[3],xmm0[3]6559; SSE-NEXT: movdqa 48(%rdi), %xmm06560; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6561; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,3,2,3]6562; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6563; SSE-NEXT: pshuflw {{.*#+}} xmm0 = xmm0[0,1,0,2,4,5,6,7]6564; SSE-NEXT: shufps {{.*#+}} xmm1 = xmm1[3,1],xmm0[1,3]6565; SSE-NEXT: shufps {{.*#+}} xmm2 = xmm2[0,1],xmm1[2,0]6566; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6567; SSE-NEXT: movdqa 416(%rdi), %xmm06568; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6569; SSE-NEXT: pshuflw {{.*#+}} xmm0 = xmm0[0,1,1,2,4,5,6,7]6570; SSE-NEXT: movdqa %xmm9, %xmm16571; SSE-NEXT: pandn %xmm0, %xmm16572; SSE-NEXT: movdqa 400(%rdi), %xmm26573; SSE-NEXT: movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6574; SSE-NEXT: movdqa 384(%rdi), %xmm06575; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6576; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,1,0,3]6577; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6578; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,6,6,7]6579; SSE-NEXT: punpckhdq {{.*#+}} xmm0 = xmm0[2],xmm2[2],xmm0[3],xmm2[3]6580; SSE-NEXT: pand %xmm9, %xmm06581; SSE-NEXT: por %xmm1, %xmm06582; SSE-NEXT: movdqa %xmm0, %xmm26583; SSE-NEXT: movdqa 448(%rdi), %xmm36584; SSE-NEXT: movdqa 464(%rdi), %xmm06585; SSE-NEXT: pshufd {{.*#+}} xmm10 = xmm3[2,2,3,3]6586; SSE-NEXT: punpcklwd {{.*#+}} xmm10 = xmm10[0],xmm0[0],xmm10[1],xmm0[1],xmm10[2],xmm0[2],xmm10[3],xmm0[3]6587; SSE-NEXT: movdqa %xmm0, %xmm16588; SSE-NEXT: shufps {{.*#+}} xmm1 = xmm1[2,0],xmm3[3,0]6589; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6590; SSE-NEXT: movdqa %xmm3, %xmm16591; SSE-NEXT: movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6592; SSE-NEXT: shufps {{.*#+}} xmm3 = xmm3[1,0],xmm0[0,0]6593; SSE-NEXT: shufps {{.*#+}} xmm3 = xmm3[2,0],xmm0[2,3]6594; SSE-NEXT: movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6595; SSE-NEXT: pslld $16, %xmm06596; SSE-NEXT: psrldq {{.*#+}} xmm1 = xmm1[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero6597; SSE-NEXT: punpcklwd {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1],xmm1[2],xmm0[2],xmm1[3],xmm0[3]6598; SSE-NEXT: movdqa 432(%rdi), %xmm06599; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6600; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,3,2,3]6601; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6602; SSE-NEXT: pshuflw {{.*#+}} xmm0 = xmm0[0,1,0,2,4,5,6,7]6603; SSE-NEXT: shufps {{.*#+}} xmm1 = xmm1[3,1],xmm0[1,3]6604; SSE-NEXT: shufps {{.*#+}} xmm2 = xmm2[0,1],xmm1[2,0]6605; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6606; SSE-NEXT: movdqa 320(%rdi), %xmm06607; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6608; SSE-NEXT: pshuflw {{.*#+}} xmm0 = xmm0[0,1,1,2,4,5,6,7]6609; SSE-NEXT: movdqa %xmm9, %xmm16610; SSE-NEXT: pandn %xmm0, %xmm16611; SSE-NEXT: movdqa 304(%rdi), %xmm26612; SSE-NEXT: movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6613; SSE-NEXT: movdqa 288(%rdi), %xmm06614; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6615; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,1,0,3]6616; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6617; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,6,6,7]6618; SSE-NEXT: punpckhdq {{.*#+}} xmm0 = xmm0[2],xmm2[2],xmm0[3],xmm2[3]6619; SSE-NEXT: pand %xmm9, %xmm06620; SSE-NEXT: por %xmm1, %xmm06621; SSE-NEXT: movdqa %xmm0, %xmm26622; SSE-NEXT: movdqa 352(%rdi), %xmm36623; SSE-NEXT: movdqa 368(%rdi), %xmm06624; SSE-NEXT: pshufd {{.*#+}} xmm8 = xmm3[2,2,3,3]6625; SSE-NEXT: punpcklwd {{.*#+}} xmm8 = xmm8[0],xmm0[0],xmm8[1],xmm0[1],xmm8[2],xmm0[2],xmm8[3],xmm0[3]6626; SSE-NEXT: movdqa %xmm0, %xmm16627; SSE-NEXT: shufps {{.*#+}} xmm1 = xmm1[2,0],xmm3[3,0]6628; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6629; SSE-NEXT: movdqa %xmm3, %xmm16630; SSE-NEXT: movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6631; SSE-NEXT: shufps {{.*#+}} xmm3 = xmm3[1,0],xmm0[0,0]6632; SSE-NEXT: shufps {{.*#+}} xmm3 = xmm3[2,0],xmm0[2,3]6633; SSE-NEXT: movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6634; SSE-NEXT: pslld $16, %xmm06635; SSE-NEXT: psrldq {{.*#+}} xmm1 = xmm1[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero6636; SSE-NEXT: punpcklwd {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1],xmm1[2],xmm0[2],xmm1[3],xmm0[3]6637; SSE-NEXT: movdqa 336(%rdi), %xmm06638; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6639; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,3,2,3]6640; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6641; SSE-NEXT: pshuflw {{.*#+}} xmm0 = xmm0[0,1,0,2,4,5,6,7]6642; SSE-NEXT: shufps {{.*#+}} xmm1 = xmm1[3,1],xmm0[1,3]6643; SSE-NEXT: shufps {{.*#+}} xmm2 = xmm2[0,1],xmm1[2,0]6644; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6645; SSE-NEXT: movdqa 704(%rdi), %xmm06646; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6647; SSE-NEXT: pshuflw {{.*#+}} xmm0 = xmm0[0,1,1,2,4,5,6,7]6648; SSE-NEXT: movdqa %xmm9, %xmm16649; SSE-NEXT: pandn %xmm0, %xmm16650; SSE-NEXT: movdqa 688(%rdi), %xmm26651; SSE-NEXT: movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6652; SSE-NEXT: movdqa 672(%rdi), %xmm06653; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6654; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,1,0,3]6655; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6656; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,6,6,7]6657; SSE-NEXT: punpckhdq {{.*#+}} xmm0 = xmm0[2],xmm2[2],xmm0[3],xmm2[3]6658; SSE-NEXT: pand %xmm9, %xmm06659; SSE-NEXT: por %xmm1, %xmm06660; SSE-NEXT: movdqa %xmm0, %xmm26661; SSE-NEXT: movdqa 736(%rdi), %xmm36662; SSE-NEXT: movdqa 752(%rdi), %xmm16663; SSE-NEXT: pshufd {{.*#+}} xmm15 = xmm3[2,2,3,3]6664; SSE-NEXT: punpcklwd {{.*#+}} xmm15 = xmm15[0],xmm1[0],xmm15[1],xmm1[1],xmm15[2],xmm1[2],xmm15[3],xmm1[3]6665; SSE-NEXT: movdqa %xmm1, %xmm06666; SSE-NEXT: shufps {{.*#+}} xmm0 = xmm0[2,0],xmm3[3,0]6667; SSE-NEXT: movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6668; SSE-NEXT: movdqa %xmm3, %xmm06669; SSE-NEXT: movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6670; SSE-NEXT: shufps {{.*#+}} xmm3 = xmm3[1,0],xmm1[0,0]6671; SSE-NEXT: shufps {{.*#+}} xmm3 = xmm3[2,0],xmm1[2,3]6672; SSE-NEXT: movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6673; SSE-NEXT: pslld $16, %xmm16674; SSE-NEXT: psrldq {{.*#+}} xmm0 = xmm0[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero6675; SSE-NEXT: punpcklwd {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3]6676; SSE-NEXT: movdqa 720(%rdi), %xmm16677; SSE-NEXT: movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6678; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[0,3,2,3]6679; SSE-NEXT: movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6680; SSE-NEXT: pshuflw {{.*#+}} xmm1 = xmm1[0,1,0,2,4,5,6,7]6681; SSE-NEXT: shufps {{.*#+}} xmm0 = xmm0[3,1],xmm1[1,3]6682; SSE-NEXT: shufps {{.*#+}} xmm2 = xmm2[0,1],xmm0[2,0]6683; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6684; SSE-NEXT: movdqa 224(%rdi), %xmm06685; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6686; SSE-NEXT: pshuflw {{.*#+}} xmm0 = xmm0[0,1,1,2,4,5,6,7]6687; SSE-NEXT: movdqa %xmm9, %xmm16688; SSE-NEXT: pandn %xmm0, %xmm16689; SSE-NEXT: movdqa 208(%rdi), %xmm26690; SSE-NEXT: movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6691; SSE-NEXT: movdqa 192(%rdi), %xmm06692; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6693; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,1,0,3]6694; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6695; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,6,6,7]6696; SSE-NEXT: punpckhdq {{.*#+}} xmm0 = xmm0[2],xmm2[2],xmm0[3],xmm2[3]6697; SSE-NEXT: pand %xmm9, %xmm06698; SSE-NEXT: por %xmm1, %xmm06699; SSE-NEXT: movdqa %xmm0, %xmm16700; SSE-NEXT: movdqa 256(%rdi), %xmm46701; SSE-NEXT: movdqa 272(%rdi), %xmm06702; SSE-NEXT: pshufd {{.*#+}} xmm3 = xmm4[2,2,3,3]6703; SSE-NEXT: punpcklwd {{.*#+}} xmm3 = xmm3[0],xmm0[0],xmm3[1],xmm0[1],xmm3[2],xmm0[2],xmm3[3],xmm0[3]6704; SSE-NEXT: movdqa %xmm0, %xmm26705; SSE-NEXT: shufps {{.*#+}} xmm2 = xmm2[2,0],xmm4[3,0]6706; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6707; SSE-NEXT: movdqa %xmm4, %xmm26708; SSE-NEXT: movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6709; SSE-NEXT: shufps {{.*#+}} xmm4 = xmm4[1,0],xmm0[0,0]6710; SSE-NEXT: shufps {{.*#+}} xmm4 = xmm4[2,0],xmm0[2,3]6711; SSE-NEXT: movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6712; SSE-NEXT: pslld $16, %xmm06713; SSE-NEXT: psrldq {{.*#+}} xmm2 = xmm2[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero6714; SSE-NEXT: punpcklwd {{.*#+}} xmm2 = xmm2[0],xmm0[0],xmm2[1],xmm0[1],xmm2[2],xmm0[2],xmm2[3],xmm0[3]6715; SSE-NEXT: movdqa 240(%rdi), %xmm06716; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6717; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,3,2,3]6718; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6719; SSE-NEXT: pshuflw {{.*#+}} xmm0 = xmm0[0,1,0,2,4,5,6,7]6720; SSE-NEXT: shufps {{.*#+}} xmm2 = xmm2[3,1],xmm0[1,3]6721; SSE-NEXT: shufps {{.*#+}} xmm1 = xmm1[0,1],xmm2[2,0]6722; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6723; SSE-NEXT: movdqa 608(%rdi), %xmm06724; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6725; SSE-NEXT: pshuflw {{.*#+}} xmm0 = xmm0[0,1,1,2,4,5,6,7]6726; SSE-NEXT: movdqa %xmm9, %xmm26727; SSE-NEXT: pandn %xmm0, %xmm26728; SSE-NEXT: movdqa 592(%rdi), %xmm136729; SSE-NEXT: movdqa 576(%rdi), %xmm06730; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6731; SSE-NEXT: pshufd {{.*#+}} xmm14 = xmm0[0,1,0,3]6732; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm14[0,1,2,3,4,6,6,7]6733; SSE-NEXT: punpckhdq {{.*#+}} xmm0 = xmm0[2],xmm13[2],xmm0[3],xmm13[3]6734; SSE-NEXT: movdqa %xmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6735; SSE-NEXT: pand %xmm9, %xmm06736; SSE-NEXT: por %xmm2, %xmm06737; SSE-NEXT: movdqa %xmm0, %xmm16738; SSE-NEXT: movdqa 640(%rdi), %xmm56739; SSE-NEXT: movdqa 656(%rdi), %xmm26740; SSE-NEXT: pshufd {{.*#+}} xmm4 = xmm5[2,2,3,3]6741; SSE-NEXT: punpcklwd {{.*#+}} xmm4 = xmm4[0],xmm2[0],xmm4[1],xmm2[1],xmm4[2],xmm2[2],xmm4[3],xmm2[3]6742; SSE-NEXT: movdqa %xmm2, %xmm06743; SSE-NEXT: shufps {{.*#+}} xmm0 = xmm0[2,0],xmm5[3,0]6744; SSE-NEXT: movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6745; SSE-NEXT: movdqa %xmm5, %xmm06746; SSE-NEXT: movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6747; SSE-NEXT: shufps {{.*#+}} xmm5 = xmm5[1,0],xmm2[0,0]6748; SSE-NEXT: shufps {{.*#+}} xmm5 = xmm5[2,0],xmm2[2,3]6749; SSE-NEXT: movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6750; SSE-NEXT: pslld $16, %xmm26751; SSE-NEXT: psrldq {{.*#+}} xmm0 = xmm0[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero6752; SSE-NEXT: punpcklwd {{.*#+}} xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1],xmm0[2],xmm2[2],xmm0[3],xmm2[3]6753; SSE-NEXT: movdqa 624(%rdi), %xmm26754; SSE-NEXT: movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6755; SSE-NEXT: pshufd {{.*#+}} xmm7 = xmm2[0,3,2,3]6756; SSE-NEXT: pshuflw {{.*#+}} xmm12 = xmm7[0,1,0,2,4,5,6,7]6757; SSE-NEXT: shufps {{.*#+}} xmm0 = xmm0[3,1],xmm12[1,3]6758; SSE-NEXT: shufps {{.*#+}} xmm1 = xmm1[0,1],xmm0[2,0]6759; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6760; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Reload6761; SSE-NEXT: movdqa %xmm11, %xmm06762; SSE-NEXT: psrld $16, %xmm06763; SSE-NEXT: pshufhw $237, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload6764; SSE-NEXT: # xmm1 = mem[0,1,2,3,5,7,6,7]6765; SSE-NEXT: punpckhdq {{.*#+}} xmm1 = xmm1[2],xmm0[2],xmm1[3],xmm0[3]6766; SSE-NEXT: movdqa %xmm9, %xmm06767; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload6768; SSE-NEXT: pandn %xmm2, %xmm06769; SSE-NEXT: pand %xmm9, %xmm16770; SSE-NEXT: por %xmm0, %xmm16771; SSE-NEXT: pshuflw $212, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload6772; SSE-NEXT: # xmm0 = mem[0,1,1,3,4,5,6,7]6773; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Reload6774; SSE-NEXT: shufps {{.*#+}} xmm12 = xmm12[3,1],xmm0[1,3]6775; SSE-NEXT: shufps {{.*#+}} xmm1 = xmm1[0,1],xmm12[2,0]6776; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6777; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6778; SSE-NEXT: psrld $16, %xmm06779; SSE-NEXT: pshufhw $237, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload6780; SSE-NEXT: # xmm1 = mem[0,1,2,3,5,7,6,7]6781; SSE-NEXT: punpckhdq {{.*#+}} xmm1 = xmm1[2],xmm0[2],xmm1[3],xmm0[3]6782; SSE-NEXT: movdqa %xmm9, %xmm06783; SSE-NEXT: pandn {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload6784; SSE-NEXT: pand %xmm9, %xmm16785; SSE-NEXT: por %xmm0, %xmm16786; SSE-NEXT: pshuflw $212, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload6787; SSE-NEXT: # xmm0 = mem[0,1,1,3,4,5,6,7]6788; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload6789; SSE-NEXT: shufps {{.*#+}} xmm5 = xmm5[3,1],xmm0[1,3]6790; SSE-NEXT: shufps {{.*#+}} xmm1 = xmm1[0,1],xmm5[2,0]6791; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6792; SSE-NEXT: movdqa %xmm6, %xmm06793; SSE-NEXT: psrld $16, %xmm06794; SSE-NEXT: pshufhw $237, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload6795; SSE-NEXT: # xmm1 = mem[0,1,2,3,5,7,6,7]6796; SSE-NEXT: punpckhdq {{.*#+}} xmm1 = xmm1[2],xmm0[2],xmm1[3],xmm0[3]6797; SSE-NEXT: movdqa %xmm9, %xmm06798; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload6799; SSE-NEXT: pandn %xmm6, %xmm06800; SSE-NEXT: pand %xmm9, %xmm16801; SSE-NEXT: por %xmm0, %xmm16802; SSE-NEXT: pshuflw $212, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload6803; SSE-NEXT: # xmm0 = mem[0,1,1,3,4,5,6,7]6804; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload6805; SSE-NEXT: shufps {{.*#+}} xmm5 = xmm5[3,1],xmm0[1,3]6806; SSE-NEXT: shufps {{.*#+}} xmm1 = xmm1[0,1],xmm5[2,0]6807; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6808; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6809; SSE-NEXT: psrld $16, %xmm06810; SSE-NEXT: pshufhw $237, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload6811; SSE-NEXT: # xmm1 = mem[0,1,2,3,5,7,6,7]6812; SSE-NEXT: punpckhdq {{.*#+}} xmm1 = xmm1[2],xmm0[2],xmm1[3],xmm0[3]6813; SSE-NEXT: movdqa %xmm9, %xmm06814; SSE-NEXT: pandn {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload6815; SSE-NEXT: pand %xmm9, %xmm16816; SSE-NEXT: por %xmm0, %xmm16817; SSE-NEXT: pshuflw $212, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload6818; SSE-NEXT: # xmm0 = mem[0,1,1,3,4,5,6,7]6819; SSE-NEXT: shufps {{.*#+}} xmm10 = xmm10[3,1],xmm0[1,3]6820; SSE-NEXT: shufps {{.*#+}} xmm1 = xmm1[0,1],xmm10[2,0]6821; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6822; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Reload6823; SSE-NEXT: movdqa %xmm12, %xmm06824; SSE-NEXT: psrld $16, %xmm06825; SSE-NEXT: pshufhw $237, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload6826; SSE-NEXT: # xmm1 = mem[0,1,2,3,5,7,6,7]6827; SSE-NEXT: punpckhdq {{.*#+}} xmm1 = xmm1[2],xmm0[2],xmm1[3],xmm0[3]6828; SSE-NEXT: movdqa %xmm9, %xmm06829; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload6830; SSE-NEXT: pandn %xmm5, %xmm06831; SSE-NEXT: pand %xmm9, %xmm16832; SSE-NEXT: por %xmm0, %xmm16833; SSE-NEXT: pshuflw $212, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload6834; SSE-NEXT: # xmm0 = mem[0,1,1,3,4,5,6,7]6835; SSE-NEXT: shufps {{.*#+}} xmm8 = xmm8[3,1],xmm0[1,3]6836; SSE-NEXT: shufps {{.*#+}} xmm1 = xmm1[0,1],xmm8[2,0]6837; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6838; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6839; SSE-NEXT: psrld $16, %xmm06840; SSE-NEXT: pshufhw $237, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload6841; SSE-NEXT: # xmm1 = mem[0,1,2,3,5,7,6,7]6842; SSE-NEXT: punpckhdq {{.*#+}} xmm1 = xmm1[2],xmm0[2],xmm1[3],xmm0[3]6843; SSE-NEXT: movdqa %xmm9, %xmm06844; SSE-NEXT: pandn {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload6845; SSE-NEXT: pand %xmm9, %xmm16846; SSE-NEXT: por %xmm0, %xmm16847; SSE-NEXT: pshuflw $212, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload6848; SSE-NEXT: # xmm0 = mem[0,1,1,3,4,5,6,7]6849; SSE-NEXT: shufps {{.*#+}} xmm15 = xmm15[3,1],xmm0[1,3]6850; SSE-NEXT: shufps {{.*#+}} xmm1 = xmm1[0,1],xmm15[2,0]6851; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6852; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload6853; SSE-NEXT: movdqa %xmm15, %xmm06854; SSE-NEXT: psrld $16, %xmm06855; SSE-NEXT: pshufhw $237, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload6856; SSE-NEXT: # xmm1 = mem[0,1,2,3,5,7,6,7]6857; SSE-NEXT: punpckhdq {{.*#+}} xmm1 = xmm1[2],xmm0[2],xmm1[3],xmm0[3]6858; SSE-NEXT: movdqa %xmm9, %xmm06859; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload6860; SSE-NEXT: pandn %xmm10, %xmm06861; SSE-NEXT: pand %xmm9, %xmm16862; SSE-NEXT: por %xmm0, %xmm16863; SSE-NEXT: pshuflw $212, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload6864; SSE-NEXT: # xmm0 = mem[0,1,1,3,4,5,6,7]6865; SSE-NEXT: shufps {{.*#+}} xmm3 = xmm3[3,1],xmm0[1,3]6866; SSE-NEXT: shufps {{.*#+}} xmm1 = xmm1[0,1],xmm3[2,0]6867; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6868; SSE-NEXT: psrld $16, %xmm136869; SSE-NEXT: pshufhw {{.*#+}} xmm3 = xmm14[0,1,2,3,5,7,6,7]6870; SSE-NEXT: punpckhdq {{.*#+}} xmm3 = xmm3[2],xmm13[2],xmm3[3],xmm13[3]6871; SSE-NEXT: pand %xmm9, %xmm36872; SSE-NEXT: pandn {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Folded Reload6873; SSE-NEXT: por %xmm3, %xmm96874; SSE-NEXT: pshuflw {{.*#+}} xmm0 = xmm7[0,1,1,3,4,5,6,7]6875; SSE-NEXT: shufps {{.*#+}} xmm4 = xmm4[3,1],xmm0[1,3]6876; SSE-NEXT: shufps {{.*#+}} xmm9 = xmm9[0,1],xmm4[2,0]6877; SSE-NEXT: movaps %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6878; SSE-NEXT: movdqa %xmm2, %xmm06879; SSE-NEXT: psrldq {{.*#+}} xmm0 = xmm0[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero6880; SSE-NEXT: pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload6881; SSE-NEXT: # xmm1 = mem[1,1,1,1]6882; SSE-NEXT: punpcklqdq {{.*#+}} xmm0 = xmm0[0],xmm1[0]6883; SSE-NEXT: movdqa {{.*#+}} xmm4 = [65535,65535,65535,0,0,65535,65535,65535]6884; SSE-NEXT: movdqa %xmm4, %xmm26885; SSE-NEXT: pandn %xmm0, %xmm26886; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload6887; SSE-NEXT: shufps {{.*#+}} xmm1 = xmm1[1,0],xmm11[0,0]6888; SSE-NEXT: shufps {{.*#+}} xmm1 = xmm1[2,0],xmm11[2,3]6889; SSE-NEXT: pshuflw {{.*#+}} xmm0 = xmm1[0,2,2,3,4,5,6,7]6890; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,3,2,3]6891; SSE-NEXT: pshuflw {{.*#+}} xmm3 = xmm0[1,0,2,3,4,5,6,7]6892; SSE-NEXT: pand %xmm4, %xmm36893; SSE-NEXT: por %xmm2, %xmm36894; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6895; SSE-NEXT: shufps $132, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload6896; SSE-NEXT: # xmm0 = xmm0[0,1],mem[0,2]6897; SSE-NEXT: movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6898; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,6,6,7]6899; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,1,2,0]6900; SSE-NEXT: pshufhw {{.*#+}} xmm2 = xmm0[0,1,2,3,4,6,5,4]6901; SSE-NEXT: movdqa {{.*#+}} xmm14 = [65535,65535,65535,65535,65535,0,0,0]6902; SSE-NEXT: movdqa %xmm14, %xmm06903; SSE-NEXT: pandn %xmm2, %xmm06904; SSE-NEXT: pand %xmm14, %xmm36905; SSE-NEXT: por %xmm3, %xmm06906; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6907; SSE-NEXT: psrldq {{.*#+}} xmm6 = xmm6[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero6908; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Reload6909; SSE-NEXT: pshufd {{.*#+}} xmm3 = xmm9[1,1,1,1]6910; SSE-NEXT: punpcklqdq {{.*#+}} xmm6 = xmm6[0],xmm3[0]6911; SSE-NEXT: movdqa %xmm4, %xmm36912; SSE-NEXT: pandn %xmm6, %xmm36913; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload6914; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6915; SSE-NEXT: shufps {{.*#+}} xmm8 = xmm8[1,0],xmm0[0,0]6916; SSE-NEXT: shufps {{.*#+}} xmm8 = xmm8[2,0],xmm0[2,3]6917; SSE-NEXT: pshuflw {{.*#+}} xmm2 = xmm8[0,2,2,3,4,5,6,7]6918; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm2[0,3,2,3]6919; SSE-NEXT: pshuflw {{.*#+}} xmm2 = xmm2[1,0,2,3,4,5,6,7]6920; SSE-NEXT: pand %xmm4, %xmm26921; SSE-NEXT: por %xmm3, %xmm26922; SSE-NEXT: movaps (%rsp), %xmm0 # 16-byte Reload6923; SSE-NEXT: shufps $132, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload6924; SSE-NEXT: # xmm0 = xmm0[0,1],mem[0,2]6925; SSE-NEXT: movaps %xmm0, (%rsp) # 16-byte Spill6926; SSE-NEXT: pshufhw {{.*#+}} xmm3 = xmm0[0,1,2,3,4,6,6,7]6927; SSE-NEXT: pshufd {{.*#+}} xmm3 = xmm3[0,1,2,0]6928; SSE-NEXT: pshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,4,6,5,4]6929; SSE-NEXT: movdqa %xmm14, %xmm06930; SSE-NEXT: pandn %xmm3, %xmm06931; SSE-NEXT: pand %xmm14, %xmm26932; SSE-NEXT: por %xmm2, %xmm06933; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6934; SSE-NEXT: movdqa %xmm5, %xmm26935; SSE-NEXT: psrldq {{.*#+}} xmm2 = xmm2[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero6936; SSE-NEXT: pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Folded Reload6937; SSE-NEXT: # xmm3 = mem[1,1,1,1]6938; SSE-NEXT: punpcklqdq {{.*#+}} xmm2 = xmm2[0],xmm3[0]6939; SSE-NEXT: movdqa %xmm4, %xmm56940; SSE-NEXT: pandn %xmm2, %xmm56941; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload6942; SSE-NEXT: shufps {{.*#+}} xmm3 = xmm3[1,0],xmm12[0,0]6943; SSE-NEXT: shufps {{.*#+}} xmm3 = xmm3[2,0],xmm12[2,3]6944; SSE-NEXT: pshuflw {{.*#+}} xmm2 = xmm3[0,2,2,3,4,5,6,7]6945; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm2[0,3,2,3]6946; SSE-NEXT: pshuflw {{.*#+}} xmm2 = xmm2[1,0,2,3,4,5,6,7]6947; SSE-NEXT: pand %xmm4, %xmm26948; SSE-NEXT: por %xmm5, %xmm26949; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6950; SSE-NEXT: shufps $132, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload6951; SSE-NEXT: # xmm0 = xmm0[0,1],mem[0,2]6952; SSE-NEXT: movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6953; SSE-NEXT: pshufhw {{.*#+}} xmm5 = xmm0[0,1,2,3,4,6,6,7]6954; SSE-NEXT: pshufd {{.*#+}} xmm5 = xmm5[0,1,2,0]6955; SSE-NEXT: pshufhw {{.*#+}} xmm5 = xmm5[0,1,2,3,4,6,5,4]6956; SSE-NEXT: movdqa %xmm14, %xmm06957; SSE-NEXT: pandn %xmm5, %xmm06958; SSE-NEXT: pand %xmm14, %xmm26959; SSE-NEXT: por %xmm2, %xmm06960; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6961; SSE-NEXT: movdqa %xmm10, %xmm26962; SSE-NEXT: psrldq {{.*#+}} xmm2 = xmm2[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero6963; SSE-NEXT: pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Folded Reload6964; SSE-NEXT: # xmm5 = mem[1,1,1,1]6965; SSE-NEXT: punpcklqdq {{.*#+}} xmm2 = xmm2[0],xmm5[0]6966; SSE-NEXT: movdqa %xmm4, %xmm56967; SSE-NEXT: pandn %xmm2, %xmm56968; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload6969; SSE-NEXT: shufps {{.*#+}} xmm10 = xmm10[1,0],xmm15[0,0]6970; SSE-NEXT: shufps {{.*#+}} xmm10 = xmm10[2,0],xmm15[2,3]6971; SSE-NEXT: pshuflw {{.*#+}} xmm2 = xmm10[0,2,2,3,4,5,6,7]6972; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm2[0,3,2,3]6973; SSE-NEXT: pshuflw {{.*#+}} xmm2 = xmm2[1,0,2,3,4,5,6,7]6974; SSE-NEXT: pand %xmm4, %xmm26975; SSE-NEXT: por %xmm5, %xmm26976; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6977; SSE-NEXT: shufps $132, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload6978; SSE-NEXT: # xmm0 = xmm0[0,1],mem[0,2]6979; SSE-NEXT: movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6980; SSE-NEXT: pshufhw {{.*#+}} xmm5 = xmm0[0,1,2,3,4,6,6,7]6981; SSE-NEXT: pshufd {{.*#+}} xmm5 = xmm5[0,1,2,0]6982; SSE-NEXT: pshufhw {{.*#+}} xmm5 = xmm5[0,1,2,3,4,6,5,4]6983; SSE-NEXT: movdqa %xmm14, %xmm06984; SSE-NEXT: pandn %xmm5, %xmm06985; SSE-NEXT: pand %xmm14, %xmm26986; SSE-NEXT: por %xmm2, %xmm06987; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6988; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload6989; SSE-NEXT: psrldq {{.*#+}} xmm2 = xmm2[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero6990; SSE-NEXT: pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Folded Reload6991; SSE-NEXT: # xmm5 = mem[1,1,1,1]6992; SSE-NEXT: punpcklqdq {{.*#+}} xmm2 = xmm2[0],xmm5[0]6993; SSE-NEXT: movdqa %xmm4, %xmm56994; SSE-NEXT: pandn %xmm2, %xmm56995; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload6996; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6997; SSE-NEXT: shufps {{.*#+}} xmm2 = xmm2[1,0],xmm0[0,0]6998; SSE-NEXT: shufps {{.*#+}} xmm2 = xmm2[2,0],xmm0[2,3]6999; SSE-NEXT: pshuflw {{.*#+}} xmm6 = xmm2[0,2,2,3,4,5,6,7]7000; SSE-NEXT: pshufd {{.*#+}} xmm6 = xmm6[0,3,2,3]7001; SSE-NEXT: pshuflw {{.*#+}} xmm6 = xmm6[1,0,2,3,4,5,6,7]7002; SSE-NEXT: pand %xmm4, %xmm67003; SSE-NEXT: por %xmm5, %xmm67004; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload7005; SSE-NEXT: shufps $132, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload7006; SSE-NEXT: # xmm0 = xmm0[0,1],mem[0,2]7007; SSE-NEXT: movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7008; SSE-NEXT: pshufhw {{.*#+}} xmm5 = xmm0[0,1,2,3,4,6,6,7]7009; SSE-NEXT: pshufd {{.*#+}} xmm5 = xmm5[0,1,2,0]7010; SSE-NEXT: pshufhw {{.*#+}} xmm5 = xmm5[0,1,2,3,4,6,5,4]7011; SSE-NEXT: movdqa %xmm14, %xmm07012; SSE-NEXT: pandn %xmm5, %xmm07013; SSE-NEXT: pand %xmm14, %xmm67014; SSE-NEXT: por %xmm6, %xmm07015; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7016; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload7017; SSE-NEXT: psrldq {{.*#+}} xmm5 = xmm5[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero7018; SSE-NEXT: pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Folded Reload7019; SSE-NEXT: # xmm6 = mem[1,1,1,1]7020; SSE-NEXT: punpcklqdq {{.*#+}} xmm5 = xmm5[0],xmm6[0]7021; SSE-NEXT: movdqa %xmm4, %xmm67022; SSE-NEXT: pandn %xmm5, %xmm67023; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Reload7024; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload7025; SSE-NEXT: shufps {{.*#+}} xmm11 = xmm11[1,0],xmm0[0,0]7026; SSE-NEXT: shufps {{.*#+}} xmm11 = xmm11[2,0],xmm0[2,3]7027; SSE-NEXT: pshuflw {{.*#+}} xmm5 = xmm11[0,2,2,3,4,5,6,7]7028; SSE-NEXT: pshufd {{.*#+}} xmm5 = xmm5[0,3,2,3]7029; SSE-NEXT: pshuflw {{.*#+}} xmm5 = xmm5[1,0,2,3,4,5,6,7]7030; SSE-NEXT: pand %xmm4, %xmm57031; SSE-NEXT: por %xmm6, %xmm57032; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload7033; SSE-NEXT: shufps $132, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload7034; SSE-NEXT: # xmm0 = xmm0[0,1],mem[0,2]7035; SSE-NEXT: movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7036; SSE-NEXT: pshufhw {{.*#+}} xmm6 = xmm0[0,1,2,3,4,6,6,7]7037; SSE-NEXT: pshufd {{.*#+}} xmm6 = xmm6[0,1,2,0]7038; SSE-NEXT: pshufhw {{.*#+}} xmm6 = xmm6[0,1,2,3,4,6,5,4]7039; SSE-NEXT: movdqa %xmm14, %xmm07040; SSE-NEXT: pandn %xmm6, %xmm07041; SSE-NEXT: pand %xmm14, %xmm57042; SSE-NEXT: por %xmm5, %xmm07043; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7044; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload7045; SSE-NEXT: psrldq {{.*#+}} xmm5 = xmm5[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero7046; SSE-NEXT: pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Folded Reload7047; SSE-NEXT: # xmm6 = mem[1,1,1,1]7048; SSE-NEXT: punpcklqdq {{.*#+}} xmm5 = xmm5[0],xmm6[0]7049; SSE-NEXT: movdqa %xmm4, %xmm67050; SSE-NEXT: pandn %xmm5, %xmm67051; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload7052; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload7053; SSE-NEXT: shufps {{.*#+}} xmm5 = xmm5[1,0],xmm0[0,0]7054; SSE-NEXT: shufps {{.*#+}} xmm5 = xmm5[2,0],xmm0[2,3]7055; SSE-NEXT: pshuflw {{.*#+}} xmm7 = xmm5[0,2,2,3,4,5,6,7]7056; SSE-NEXT: pshufd {{.*#+}} xmm7 = xmm7[0,3,2,3]7057; SSE-NEXT: pshuflw {{.*#+}} xmm7 = xmm7[1,0,2,3,4,5,6,7]7058; SSE-NEXT: pand %xmm4, %xmm77059; SSE-NEXT: por %xmm6, %xmm77060; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload7061; SSE-NEXT: shufps $132, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload7062; SSE-NEXT: # xmm0 = xmm0[0,1],mem[0,2]7063; SSE-NEXT: movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7064; SSE-NEXT: pshufhw {{.*#+}} xmm6 = xmm0[0,1,2,3,4,6,6,7]7065; SSE-NEXT: pshufd {{.*#+}} xmm6 = xmm6[0,1,2,0]7066; SSE-NEXT: pshufhw {{.*#+}} xmm6 = xmm6[0,1,2,3,4,6,5,4]7067; SSE-NEXT: movdqa %xmm14, %xmm07068; SSE-NEXT: pandn %xmm6, %xmm07069; SSE-NEXT: pand %xmm14, %xmm77070; SSE-NEXT: por %xmm7, %xmm07071; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7072; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload7073; SSE-NEXT: movdqa %xmm13, %xmm67074; SSE-NEXT: psrldq {{.*#+}} xmm6 = xmm6[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero7075; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload7076; SSE-NEXT: pshufd {{.*#+}} xmm7 = xmm0[1,1,1,1]7077; SSE-NEXT: punpcklqdq {{.*#+}} xmm6 = xmm6[0],xmm7[0]7078; SSE-NEXT: movdqa %xmm4, %xmm127079; SSE-NEXT: pandn %xmm6, %xmm127080; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload7081; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload7082; SSE-NEXT: shufps {{.*#+}} xmm7 = xmm7[1,0],xmm6[0,0]7083; SSE-NEXT: shufps {{.*#+}} xmm7 = xmm7[2,0],xmm6[2,3]7084; SSE-NEXT: pshuflw {{.*#+}} xmm6 = xmm7[0,2,2,3,4,5,6,7]7085; SSE-NEXT: pshufd {{.*#+}} xmm6 = xmm6[0,3,2,3]7086; SSE-NEXT: pshuflw {{.*#+}} xmm6 = xmm6[1,0,2,3,4,5,6,7]7087; SSE-NEXT: pand %xmm4, %xmm67088; SSE-NEXT: por %xmm12, %xmm67089; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Reload7090; SSE-NEXT: shufps $132, {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Folded Reload7091; SSE-NEXT: # xmm12 = xmm12[0,1],mem[0,2]7092; SSE-NEXT: movaps %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7093; SSE-NEXT: pshufhw {{.*#+}} xmm12 = xmm12[0,1,2,3,4,6,6,7]7094; SSE-NEXT: pshufd {{.*#+}} xmm12 = xmm12[0,1,2,0]7095; SSE-NEXT: pshufhw {{.*#+}} xmm12 = xmm12[0,1,2,3,4,6,5,4]7096; SSE-NEXT: movdqa %xmm14, %xmm157097; SSE-NEXT: pandn %xmm12, %xmm157098; SSE-NEXT: pand %xmm14, %xmm67099; SSE-NEXT: por %xmm6, %xmm157100; SSE-NEXT: movdqa %xmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7101; SSE-NEXT: psrlq $48, %xmm97102; SSE-NEXT: pshufd $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Folded Reload7103; SSE-NEXT: # xmm12 = mem[2,2,3,3]7104; SSE-NEXT: punpcklqdq {{.*#+}} xmm12 = xmm12[0],xmm9[0]7105; SSE-NEXT: movdqa %xmm4, %xmm67106; SSE-NEXT: pandn %xmm12, %xmm67107; SSE-NEXT: pshuflw {{.*#+}} xmm8 = xmm8[3,1,2,3,4,5,6,7]7108; SSE-NEXT: pshufd {{.*#+}} xmm8 = xmm8[0,3,2,3]7109; SSE-NEXT: pshuflw {{.*#+}} xmm8 = xmm8[0,1,3,3,4,5,6,7]7110; SSE-NEXT: pand %xmm4, %xmm87111; SSE-NEXT: por %xmm6, %xmm87112; SSE-NEXT: pshufhw $231, (%rsp), %xmm6 # 16-byte Folded Reload7113; SSE-NEXT: # xmm6 = mem[0,1,2,3,7,5,6,7]7114; SSE-NEXT: pshufd {{.*#+}} xmm6 = xmm6[0,1,0,2]7115; SSE-NEXT: movdqa %xmm14, %xmm127116; SSE-NEXT: pandn %xmm6, %xmm127117; SSE-NEXT: pand %xmm14, %xmm87118; SSE-NEXT: por %xmm8, %xmm127119; SSE-NEXT: movdqa %xmm12, (%rsp) # 16-byte Spill7120; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Reload7121; SSE-NEXT: movdqa %xmm9, %xmm67122; SSE-NEXT: psrlq $48, %xmm67123; SSE-NEXT: pshufd $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Folded Reload7124; SSE-NEXT: # xmm8 = mem[2,2,3,3]7125; SSE-NEXT: punpcklqdq {{.*#+}} xmm8 = xmm8[0],xmm6[0]7126; SSE-NEXT: movdqa %xmm4, %xmm67127; SSE-NEXT: pandn %xmm8, %xmm67128; SSE-NEXT: pshuflw {{.*#+}} xmm1 = xmm1[3,1,2,3,4,5,6,7]7129; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[0,3,2,3]7130; SSE-NEXT: pshuflw {{.*#+}} xmm1 = xmm1[0,1,3,3,4,5,6,7]7131; SSE-NEXT: pand %xmm4, %xmm17132; SSE-NEXT: por %xmm6, %xmm17133; SSE-NEXT: pshufhw $231, {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Folded Reload7134; SSE-NEXT: # xmm6 = mem[0,1,2,3,7,5,6,7]7135; SSE-NEXT: pshufd {{.*#+}} xmm6 = xmm6[0,1,0,2]7136; SSE-NEXT: movdqa %xmm14, %xmm87137; SSE-NEXT: pandn %xmm6, %xmm87138; SSE-NEXT: pand %xmm14, %xmm17139; SSE-NEXT: por %xmm1, %xmm87140; SSE-NEXT: movdqa %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7141; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload7142; SSE-NEXT: movdqa %xmm15, %xmm17143; SSE-NEXT: psrlq $48, %xmm17144; SSE-NEXT: pshufd $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Folded Reload7145; SSE-NEXT: # xmm6 = mem[2,2,3,3]7146; SSE-NEXT: punpcklqdq {{.*#+}} xmm6 = xmm6[0],xmm1[0]7147; SSE-NEXT: movdqa %xmm4, %xmm17148; SSE-NEXT: pandn %xmm6, %xmm17149; SSE-NEXT: pshuflw {{.*#+}} xmm6 = xmm10[3,1,2,3,4,5,6,7]7150; SSE-NEXT: pshufd {{.*#+}} xmm6 = xmm6[0,3,2,3]7151; SSE-NEXT: pshuflw {{.*#+}} xmm6 = xmm6[0,1,3,3,4,5,6,7]7152; SSE-NEXT: pand %xmm4, %xmm67153; SSE-NEXT: por %xmm1, %xmm67154; SSE-NEXT: pshufhw $231, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload7155; SSE-NEXT: # xmm1 = mem[0,1,2,3,7,5,6,7]7156; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[0,1,0,2]7157; SSE-NEXT: movdqa %xmm14, %xmm87158; SSE-NEXT: pandn %xmm1, %xmm87159; SSE-NEXT: pand %xmm14, %xmm67160; SSE-NEXT: por %xmm6, %xmm87161; SSE-NEXT: movdqa %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7162; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Reload7163; SSE-NEXT: movdqa %xmm12, %xmm17164; SSE-NEXT: psrlq $48, %xmm17165; SSE-NEXT: pshufd $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Folded Reload7166; SSE-NEXT: # xmm6 = mem[2,2,3,3]7167; SSE-NEXT: punpcklqdq {{.*#+}} xmm6 = xmm6[0],xmm1[0]7168; SSE-NEXT: movdqa %xmm4, %xmm17169; SSE-NEXT: pandn %xmm6, %xmm17170; SSE-NEXT: pshuflw {{.*#+}} xmm3 = xmm3[3,1,2,3,4,5,6,7]7171; SSE-NEXT: pshufd {{.*#+}} xmm3 = xmm3[0,3,2,3]7172; SSE-NEXT: pshuflw {{.*#+}} xmm3 = xmm3[0,1,3,3,4,5,6,7]7173; SSE-NEXT: pand %xmm4, %xmm37174; SSE-NEXT: por %xmm1, %xmm37175; SSE-NEXT: pshufhw $231, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload7176; SSE-NEXT: # xmm1 = mem[0,1,2,3,7,5,6,7]7177; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[0,1,0,2]7178; SSE-NEXT: movdqa %xmm14, %xmm67179; SSE-NEXT: pandn %xmm1, %xmm67180; SSE-NEXT: pand %xmm14, %xmm37181; SSE-NEXT: por %xmm3, %xmm67182; SSE-NEXT: movdqa %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7183; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload7184; SSE-NEXT: movdqa %xmm8, %xmm17185; SSE-NEXT: psrlq $48, %xmm17186; SSE-NEXT: pshufd $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Folded Reload7187; SSE-NEXT: # xmm3 = mem[2,2,3,3]7188; SSE-NEXT: punpcklqdq {{.*#+}} xmm3 = xmm3[0],xmm1[0]7189; SSE-NEXT: movdqa %xmm4, %xmm17190; SSE-NEXT: pandn %xmm3, %xmm17191; SSE-NEXT: pshuflw {{.*#+}} xmm3 = xmm11[3,1,2,3,4,5,6,7]7192; SSE-NEXT: pshufd {{.*#+}} xmm3 = xmm3[0,3,2,3]7193; SSE-NEXT: pshuflw {{.*#+}} xmm3 = xmm3[0,1,3,3,4,5,6,7]7194; SSE-NEXT: pand %xmm4, %xmm37195; SSE-NEXT: por %xmm1, %xmm37196; SSE-NEXT: pshufhw $231, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload7197; SSE-NEXT: # xmm1 = mem[0,1,2,3,7,5,6,7]7198; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[0,1,0,2]7199; SSE-NEXT: movdqa %xmm14, %xmm67200; SSE-NEXT: pandn %xmm1, %xmm67201; SSE-NEXT: pand %xmm14, %xmm37202; SSE-NEXT: por %xmm3, %xmm67203; SSE-NEXT: movdqa %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7204; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload7205; SSE-NEXT: movdqa %xmm6, %xmm17206; SSE-NEXT: psrlq $48, %xmm17207; SSE-NEXT: pshufd $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Folded Reload7208; SSE-NEXT: # xmm3 = mem[2,2,3,3]7209; SSE-NEXT: punpcklqdq {{.*#+}} xmm3 = xmm3[0],xmm1[0]7210; SSE-NEXT: movdqa %xmm4, %xmm17211; SSE-NEXT: pandn %xmm3, %xmm17212; SSE-NEXT: pshuflw {{.*#+}} xmm2 = xmm2[3,1,2,3,4,5,6,7]7213; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm2[0,3,2,3]7214; SSE-NEXT: pshuflw {{.*#+}} xmm2 = xmm2[0,1,3,3,4,5,6,7]7215; SSE-NEXT: pand %xmm4, %xmm27216; SSE-NEXT: por %xmm1, %xmm27217; SSE-NEXT: pshufhw $231, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload7218; SSE-NEXT: # xmm1 = mem[0,1,2,3,7,5,6,7]7219; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[0,1,0,2]7220; SSE-NEXT: movdqa %xmm14, %xmm37221; SSE-NEXT: pandn %xmm1, %xmm37222; SSE-NEXT: pand %xmm14, %xmm27223; SSE-NEXT: por %xmm2, %xmm37224; SSE-NEXT: movdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7225; SSE-NEXT: psrlq $48, %xmm07226; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm13[2,2,3,3]7227; SSE-NEXT: punpcklqdq {{.*#+}} xmm2 = xmm2[0],xmm0[0]7228; SSE-NEXT: movdqa %xmm4, %xmm17229; SSE-NEXT: pandn %xmm2, %xmm17230; SSE-NEXT: pshuflw {{.*#+}} xmm2 = xmm7[3,1,2,3,4,5,6,7]7231; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm2[0,3,2,3]7232; SSE-NEXT: pshuflw {{.*#+}} xmm2 = xmm2[0,1,3,3,4,5,6,7]7233; SSE-NEXT: pand %xmm4, %xmm27234; SSE-NEXT: por %xmm1, %xmm27235; SSE-NEXT: pshufhw $231, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload7236; SSE-NEXT: # xmm1 = mem[0,1,2,3,7,5,6,7]7237; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[0,1,0,2]7238; SSE-NEXT: movdqa %xmm14, %xmm07239; SSE-NEXT: pandn %xmm1, %xmm07240; SSE-NEXT: pand %xmm14, %xmm27241; SSE-NEXT: por %xmm2, %xmm07242; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7243; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload7244; SSE-NEXT: movdqa %xmm7, %xmm17245; SSE-NEXT: psrlq $48, %xmm17246; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload7247; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm10[2,2,3,3]7248; SSE-NEXT: punpcklqdq {{.*#+}} xmm2 = xmm2[0],xmm1[0]7249; SSE-NEXT: pshuflw {{.*#+}} xmm1 = xmm5[3,1,2,3,4,5,6,7]7250; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[0,3,2,3]7251; SSE-NEXT: pshuflw {{.*#+}} xmm1 = xmm1[0,1,3,3,4,5,6,7]7252; SSE-NEXT: pand %xmm4, %xmm17253; SSE-NEXT: pandn %xmm2, %xmm47254; SSE-NEXT: por %xmm1, %xmm47255; SSE-NEXT: pshufhw $231, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload7256; SSE-NEXT: # xmm1 = mem[0,1,2,3,7,5,6,7]7257; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[0,1,0,2]7258; SSE-NEXT: movdqa %xmm14, %xmm07259; SSE-NEXT: pandn %xmm1, %xmm07260; SSE-NEXT: pand %xmm14, %xmm47261; SSE-NEXT: por %xmm4, %xmm07262; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7263; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload7264; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm0[1,1,1,1]7265; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload7266; SSE-NEXT: pshufd {{.*#+}} xmm3 = xmm2[2,3,2,3]7267; SSE-NEXT: punpcklwd {{.*#+}} xmm3 = xmm3[0],xmm1[0],xmm3[1],xmm1[1],xmm3[2],xmm1[2],xmm3[3],xmm1[3]7268; SSE-NEXT: pshufd $196, {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Folded Reload7269; SSE-NEXT: # xmm11 = mem[0,1,0,3]7270; SSE-NEXT: pshufhw {{.*#+}} xmm1 = xmm11[0,1,2,3,4,5,4,6]7271; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload7272; SSE-NEXT: punpckhqdq {{.*#+}} xmm1 = xmm1[1],xmm5[1]7273; SSE-NEXT: movss {{.*#+}} xmm1 = xmm3[0],xmm1[1,2,3]7274; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload7275; SSE-NEXT: pshuflw {{.*#+}} xmm3 = xmm13[0,2,2,3,4,5,6,7]7276; SSE-NEXT: pshufd {{.*#+}} xmm3 = xmm3[0,1,0,3]7277; SSE-NEXT: pshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,4,5,4,6]7278; SSE-NEXT: movdqa %xmm14, %xmm47279; SSE-NEXT: pandn %xmm3, %xmm47280; SSE-NEXT: andps %xmm14, %xmm17281; SSE-NEXT: por %xmm1, %xmm47282; SSE-NEXT: movdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7283; SSE-NEXT: pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload7284; SSE-NEXT: # xmm1 = mem[1,1,1,1]7285; SSE-NEXT: pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Folded Reload7286; SSE-NEXT: # xmm3 = mem[2,3,2,3]7287; SSE-NEXT: punpcklwd {{.*#+}} xmm3 = xmm3[0],xmm1[0],xmm3[1],xmm1[1],xmm3[2],xmm1[2],xmm3[3],xmm1[3]7288; SSE-NEXT: pshufd $196, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload7289; SSE-NEXT: # xmm1 = mem[0,1,0,3]7290; SSE-NEXT: pshufhw {{.*#+}} xmm4 = xmm1[0,1,2,3,4,5,4,6]7291; SSE-NEXT: punpckhqdq {{.*#+}} xmm4 = xmm4[1],xmm9[1]7292; SSE-NEXT: movss {{.*#+}} xmm4 = xmm3[0],xmm4[1,2,3]7293; SSE-NEXT: pshuflw $232, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Folded Reload7294; SSE-NEXT: # xmm3 = mem[0,2,2,3,4,5,6,7]7295; SSE-NEXT: pshufd {{.*#+}} xmm3 = xmm3[0,1,0,3]7296; SSE-NEXT: pshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,4,5,4,6]7297; SSE-NEXT: movdqa %xmm14, %xmm97298; SSE-NEXT: pandn %xmm3, %xmm97299; SSE-NEXT: andps %xmm14, %xmm47300; SSE-NEXT: por %xmm4, %xmm97301; SSE-NEXT: movdqa %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7302; SSE-NEXT: pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Folded Reload7303; SSE-NEXT: # xmm3 = mem[1,1,1,1]7304; SSE-NEXT: pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload7305; SSE-NEXT: # xmm4 = mem[2,3,2,3]7306; SSE-NEXT: punpcklwd {{.*#+}} xmm4 = xmm4[0],xmm3[0],xmm4[1],xmm3[1],xmm4[2],xmm3[2],xmm4[3],xmm3[3]7307; SSE-NEXT: pshufd $196, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Folded Reload7308; SSE-NEXT: # xmm3 = mem[0,1,0,3]7309; SSE-NEXT: movdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7310; SSE-NEXT: pshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,4,5,4,6]7311; SSE-NEXT: punpckhqdq {{.*#+}} xmm3 = xmm3[1],xmm15[1]7312; SSE-NEXT: movss {{.*#+}} xmm3 = xmm4[0],xmm3[1,2,3]7313; SSE-NEXT: pshuflw $232, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload7314; SSE-NEXT: # xmm4 = mem[0,2,2,3,4,5,6,7]7315; SSE-NEXT: pshufd {{.*#+}} xmm4 = xmm4[0,1,0,3]7316; SSE-NEXT: pshufhw {{.*#+}} xmm4 = xmm4[0,1,2,3,4,5,4,6]7317; SSE-NEXT: movdqa %xmm14, %xmm97318; SSE-NEXT: pandn %xmm4, %xmm97319; SSE-NEXT: andps %xmm14, %xmm37320; SSE-NEXT: por %xmm3, %xmm97321; SSE-NEXT: movdqa %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7322; SSE-NEXT: pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Folded Reload7323; SSE-NEXT: # xmm3 = mem[1,1,1,1]7324; SSE-NEXT: pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload7325; SSE-NEXT: # xmm4 = mem[2,3,2,3]7326; SSE-NEXT: punpcklwd {{.*#+}} xmm4 = xmm4[0],xmm3[0],xmm4[1],xmm3[1],xmm4[2],xmm3[2],xmm4[3],xmm3[3]7327; SSE-NEXT: pshufd $196, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Folded Reload7328; SSE-NEXT: # xmm3 = mem[0,1,0,3]7329; SSE-NEXT: movdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7330; SSE-NEXT: pshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,4,5,4,6]7331; SSE-NEXT: punpckhqdq {{.*#+}} xmm3 = xmm3[1],xmm12[1]7332; SSE-NEXT: movss {{.*#+}} xmm3 = xmm4[0],xmm3[1,2,3]7333; SSE-NEXT: pshuflw $232, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload7334; SSE-NEXT: # xmm4 = mem[0,2,2,3,4,5,6,7]7335; SSE-NEXT: pshufd {{.*#+}} xmm4 = xmm4[0,1,0,3]7336; SSE-NEXT: pshufhw {{.*#+}} xmm4 = xmm4[0,1,2,3,4,5,4,6]7337; SSE-NEXT: movdqa %xmm14, %xmm97338; SSE-NEXT: pandn %xmm4, %xmm97339; SSE-NEXT: andps %xmm14, %xmm37340; SSE-NEXT: por %xmm3, %xmm97341; SSE-NEXT: movdqa %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7342; SSE-NEXT: pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Folded Reload7343; SSE-NEXT: # xmm3 = mem[1,1,1,1]7344; SSE-NEXT: pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload7345; SSE-NEXT: # xmm4 = mem[2,3,2,3]7346; SSE-NEXT: punpcklwd {{.*#+}} xmm4 = xmm4[0],xmm3[0],xmm4[1],xmm3[1],xmm4[2],xmm3[2],xmm4[3],xmm3[3]7347; SSE-NEXT: pshufd $196, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Folded Reload7348; SSE-NEXT: # xmm3 = mem[0,1,0,3]7349; SSE-NEXT: movdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7350; SSE-NEXT: pshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,4,5,4,6]7351; SSE-NEXT: punpckhqdq {{.*#+}} xmm3 = xmm3[1],xmm8[1]7352; SSE-NEXT: movss {{.*#+}} xmm3 = xmm4[0],xmm3[1,2,3]7353; SSE-NEXT: pshuflw $232, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload7354; SSE-NEXT: # xmm4 = mem[0,2,2,3,4,5,6,7]7355; SSE-NEXT: pshufd {{.*#+}} xmm4 = xmm4[0,1,0,3]7356; SSE-NEXT: pshufhw {{.*#+}} xmm4 = xmm4[0,1,2,3,4,5,4,6]7357; SSE-NEXT: movdqa %xmm14, %xmm127358; SSE-NEXT: pandn %xmm4, %xmm127359; SSE-NEXT: andps %xmm14, %xmm37360; SSE-NEXT: por %xmm3, %xmm127361; SSE-NEXT: pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Folded Reload7362; SSE-NEXT: # xmm3 = mem[1,1,1,1]7363; SSE-NEXT: pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload7364; SSE-NEXT: # xmm4 = mem[2,3,2,3]7365; SSE-NEXT: punpcklwd {{.*#+}} xmm4 = xmm4[0],xmm3[0],xmm4[1],xmm3[1],xmm4[2],xmm3[2],xmm4[3],xmm3[3]7366; SSE-NEXT: pshufd $196, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Folded Reload7367; SSE-NEXT: # xmm3 = mem[0,1,0,3]7368; SSE-NEXT: movdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7369; SSE-NEXT: pshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,4,5,4,6]7370; SSE-NEXT: punpckhqdq {{.*#+}} xmm3 = xmm3[1],xmm6[1]7371; SSE-NEXT: movss {{.*#+}} xmm3 = xmm4[0],xmm3[1,2,3]7372; SSE-NEXT: pshuflw $232, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload7373; SSE-NEXT: # xmm4 = mem[0,2,2,3,4,5,6,7]7374; SSE-NEXT: pshufd {{.*#+}} xmm4 = xmm4[0,1,0,3]7375; SSE-NEXT: pshufhw {{.*#+}} xmm4 = xmm4[0,1,2,3,4,5,4,6]7376; SSE-NEXT: movdqa %xmm14, %xmm157377; SSE-NEXT: pandn %xmm4, %xmm157378; SSE-NEXT: andps %xmm14, %xmm37379; SSE-NEXT: por %xmm3, %xmm157380; SSE-NEXT: pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Folded Reload7381; SSE-NEXT: # xmm3 = mem[1,1,1,1]7382; SSE-NEXT: pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload7383; SSE-NEXT: # xmm4 = mem[2,3,2,3]7384; SSE-NEXT: punpcklwd {{.*#+}} xmm4 = xmm4[0],xmm3[0],xmm4[1],xmm3[1],xmm4[2],xmm3[2],xmm4[3],xmm3[3]7385; SSE-NEXT: pshufd $196, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Folded Reload7386; SSE-NEXT: # xmm3 = mem[0,1,0,3]7387; SSE-NEXT: movdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7388; SSE-NEXT: pshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,4,5,4,6]7389; SSE-NEXT: punpckhqdq {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Folded Reload7390; SSE-NEXT: # xmm3 = xmm3[1],mem[1]7391; SSE-NEXT: movss {{.*#+}} xmm3 = xmm4[0],xmm3[1,2,3]7392; SSE-NEXT: pshuflw $232, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload7393; SSE-NEXT: # xmm4 = mem[0,2,2,3,4,5,6,7]7394; SSE-NEXT: pshufd {{.*#+}} xmm4 = xmm4[0,1,0,3]7395; SSE-NEXT: pshufhw {{.*#+}} xmm4 = xmm4[0,1,2,3,4,5,4,6]7396; SSE-NEXT: movdqa %xmm14, %xmm87397; SSE-NEXT: pandn %xmm4, %xmm87398; SSE-NEXT: andps %xmm14, %xmm37399; SSE-NEXT: por %xmm3, %xmm87400; SSE-NEXT: pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Folded Reload7401; SSE-NEXT: # xmm3 = mem[1,1,1,1]7402; SSE-NEXT: pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload7403; SSE-NEXT: # xmm4 = mem[2,3,2,3]7404; SSE-NEXT: punpcklwd {{.*#+}} xmm4 = xmm4[0],xmm3[0],xmm4[1],xmm3[1],xmm4[2],xmm3[2],xmm4[3],xmm3[3]7405; SSE-NEXT: pshufd {{.*#+}} xmm3 = xmm10[0,1,0,3]7406; SSE-NEXT: movdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7407; SSE-NEXT: pshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,4,5,4,6]7408; SSE-NEXT: punpckhqdq {{.*#+}} xmm3 = xmm3[1],xmm7[1]7409; SSE-NEXT: movss {{.*#+}} xmm3 = xmm4[0],xmm3[1,2,3]7410; SSE-NEXT: pshuflw $232, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload7411; SSE-NEXT: # xmm4 = mem[0,2,2,3,4,5,6,7]7412; SSE-NEXT: pshufd {{.*#+}} xmm4 = xmm4[0,1,0,3]7413; SSE-NEXT: pshufhw {{.*#+}} xmm4 = xmm4[0,1,2,3,4,5,4,6]7414; SSE-NEXT: movdqa %xmm14, %xmm77415; SSE-NEXT: pandn %xmm4, %xmm77416; SSE-NEXT: andps %xmm14, %xmm37417; SSE-NEXT: por %xmm3, %xmm77418; SSE-NEXT: psrlq $48, %xmm07419; SSE-NEXT: psrldq {{.*#+}} xmm2 = xmm2[10,11,12,13,14,15],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero7420; SSE-NEXT: punpcklwd {{.*#+}} xmm2 = xmm2[0],xmm0[0],xmm2[1],xmm0[1],xmm2[2],xmm0[2],xmm2[3],xmm0[3]7421; SSE-NEXT: movdqa %xmm2, %xmm37422; SSE-NEXT: psrld $16, %xmm57423; SSE-NEXT: pshufhw {{.*#+}} xmm2 = xmm11[0,1,2,3,4,5,5,7]7424; SSE-NEXT: punpckhqdq {{.*#+}} xmm2 = xmm2[1],xmm5[1]7425; SSE-NEXT: movss {{.*#+}} xmm2 = xmm3[0],xmm2[1,2,3]7426; SSE-NEXT: pshuflw {{.*#+}} xmm3 = xmm13[3,1,2,3,4,5,6,7]7427; SSE-NEXT: pshufd {{.*#+}} xmm3 = xmm3[0,1,0,3]7428; SSE-NEXT: pshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,4,4,5,7]7429; SSE-NEXT: movdqa %xmm14, %xmm67430; SSE-NEXT: pandn %xmm3, %xmm67431; SSE-NEXT: andps %xmm14, %xmm27432; SSE-NEXT: por %xmm2, %xmm67433; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload7434; SSE-NEXT: psrlq $48, %xmm07435; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload7436; SSE-NEXT: psrldq {{.*#+}} xmm2 = xmm2[10,11,12,13,14,15],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero7437; SSE-NEXT: punpcklwd {{.*#+}} xmm2 = xmm2[0],xmm0[0],xmm2[1],xmm0[1],xmm2[2],xmm0[2],xmm2[3],xmm0[3]7438; SSE-NEXT: movdqa %xmm2, %xmm37439; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload7440; SSE-NEXT: psrld $16, %xmm27441; SSE-NEXT: pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,5,5,7]7442; SSE-NEXT: punpckhqdq {{.*#+}} xmm1 = xmm1[1],xmm2[1]7443; SSE-NEXT: movss {{.*#+}} xmm1 = xmm3[0],xmm1[1,2,3]7444; SSE-NEXT: pshuflw $231, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload7445; SSE-NEXT: # xmm2 = mem[3,1,2,3,4,5,6,7]7446; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm2[0,1,0,3]7447; SSE-NEXT: pshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,4,5,7]7448; SSE-NEXT: movdqa %xmm14, %xmm57449; SSE-NEXT: pandn %xmm2, %xmm57450; SSE-NEXT: andps %xmm14, %xmm17451; SSE-NEXT: por %xmm1, %xmm57452; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload7453; SSE-NEXT: psrlq $48, %xmm17454; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload7455; SSE-NEXT: psrldq {{.*#+}} xmm0 = xmm0[10,11,12,13,14,15],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero7456; SSE-NEXT: punpcklwd {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3]7457; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload7458; SSE-NEXT: psrld $16, %xmm27459; SSE-NEXT: pshufhw $212, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload7460; SSE-NEXT: # xmm1 = mem[0,1,2,3,4,5,5,7]7461; SSE-NEXT: punpckhqdq {{.*#+}} xmm1 = xmm1[1],xmm2[1]7462; SSE-NEXT: movss {{.*#+}} xmm1 = xmm0[0],xmm1[1,2,3]7463; SSE-NEXT: pshuflw $231, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload7464; SSE-NEXT: # xmm2 = mem[3,1,2,3,4,5,6,7]7465; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm2[0,1,0,3]7466; SSE-NEXT: pshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,4,5,7]7467; SSE-NEXT: movdqa %xmm14, %xmm97468; SSE-NEXT: pandn %xmm2, %xmm97469; SSE-NEXT: andps %xmm14, %xmm17470; SSE-NEXT: por %xmm1, %xmm97471; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload7472; SSE-NEXT: psrlq $48, %xmm07473; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload7474; SSE-NEXT: psrldq {{.*#+}} xmm1 = xmm1[10,11,12,13,14,15],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero7475; SSE-NEXT: punpcklwd {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1],xmm1[2],xmm0[2],xmm1[3],xmm0[3]7476; SSE-NEXT: movdqa %xmm1, %xmm27477; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload7478; SSE-NEXT: psrld $16, %xmm07479; SSE-NEXT: pshufhw $212, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload7480; SSE-NEXT: # xmm1 = mem[0,1,2,3,4,5,5,7]7481; SSE-NEXT: punpckhqdq {{.*#+}} xmm1 = xmm1[1],xmm0[1]7482; SSE-NEXT: movss {{.*#+}} xmm1 = xmm2[0],xmm1[1,2,3]7483; SSE-NEXT: pshuflw $231, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload7484; SSE-NEXT: # xmm2 = mem[3,1,2,3,4,5,6,7]7485; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm2[0,1,0,3]7486; SSE-NEXT: pshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,4,5,7]7487; SSE-NEXT: movdqa %xmm14, %xmm117488; SSE-NEXT: pandn %xmm2, %xmm117489; SSE-NEXT: andps %xmm14, %xmm17490; SSE-NEXT: por %xmm1, %xmm117491; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload7492; SSE-NEXT: psrlq $48, %xmm07493; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload7494; SSE-NEXT: psrldq {{.*#+}} xmm1 = xmm1[10,11,12,13,14,15],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero7495; SSE-NEXT: punpcklwd {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1],xmm1[2],xmm0[2],xmm1[3],xmm0[3]7496; SSE-NEXT: movdqa %xmm1, %xmm27497; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload7498; SSE-NEXT: psrld $16, %xmm37499; SSE-NEXT: pshufhw $212, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload7500; SSE-NEXT: # xmm1 = mem[0,1,2,3,4,5,5,7]7501; SSE-NEXT: punpckhqdq {{.*#+}} xmm1 = xmm1[1],xmm3[1]7502; SSE-NEXT: movss {{.*#+}} xmm1 = xmm2[0],xmm1[1,2,3]7503; SSE-NEXT: pshuflw $231, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload7504; SSE-NEXT: # xmm2 = mem[3,1,2,3,4,5,6,7]7505; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm2[0,1,0,3]7506; SSE-NEXT: pshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,4,5,7]7507; SSE-NEXT: movdqa %xmm14, %xmm107508; SSE-NEXT: pandn %xmm2, %xmm107509; SSE-NEXT: andps %xmm14, %xmm17510; SSE-NEXT: por %xmm1, %xmm107511; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload7512; SSE-NEXT: psrlq $48, %xmm07513; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload7514; SSE-NEXT: psrldq {{.*#+}} xmm1 = xmm1[10,11,12,13,14,15],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero7515; SSE-NEXT: punpcklwd {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1],xmm1[2],xmm0[2],xmm1[3],xmm0[3]7516; SSE-NEXT: movdqa %xmm1, %xmm27517; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload7518; SSE-NEXT: psrld $16, %xmm37519; SSE-NEXT: pshufhw $212, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload7520; SSE-NEXT: # xmm1 = mem[0,1,2,3,4,5,5,7]7521; SSE-NEXT: punpckhqdq {{.*#+}} xmm1 = xmm1[1],xmm3[1]7522; SSE-NEXT: movss {{.*#+}} xmm1 = xmm2[0],xmm1[1,2,3]7523; SSE-NEXT: pshuflw $231, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload7524; SSE-NEXT: # xmm2 = mem[3,1,2,3,4,5,6,7]7525; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm2[0,1,0,3]7526; SSE-NEXT: pshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,4,5,7]7527; SSE-NEXT: movdqa %xmm14, %xmm47528; SSE-NEXT: pandn %xmm2, %xmm47529; SSE-NEXT: andps %xmm14, %xmm17530; SSE-NEXT: por %xmm1, %xmm47531; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload7532; SSE-NEXT: psrlq $48, %xmm17533; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload7534; SSE-NEXT: psrldq {{.*#+}} xmm0 = xmm0[10,11,12,13,14,15],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero7535; SSE-NEXT: punpcklwd {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3]7536; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload7537; SSE-NEXT: psrld $16, %xmm17538; SSE-NEXT: pshufhw $212, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload7539; SSE-NEXT: # xmm2 = mem[0,1,2,3,4,5,5,7]7540; SSE-NEXT: punpckhqdq {{.*#+}} xmm2 = xmm2[1],xmm1[1]7541; SSE-NEXT: movss {{.*#+}} xmm2 = xmm0[0],xmm2[1,2,3]7542; SSE-NEXT: pshuflw $231, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload7543; SSE-NEXT: # xmm1 = mem[3,1,2,3,4,5,6,7]7544; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[0,1,0,3]7545; SSE-NEXT: pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,4,5,7]7546; SSE-NEXT: movdqa %xmm14, %xmm37547; SSE-NEXT: pandn %xmm1, %xmm37548; SSE-NEXT: andps %xmm14, %xmm27549; SSE-NEXT: por %xmm2, %xmm37550; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload7551; SSE-NEXT: psrlq $48, %xmm07552; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload7553; SSE-NEXT: psrldq {{.*#+}} xmm1 = xmm1[10,11,12,13,14,15],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero7554; SSE-NEXT: punpcklwd {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1],xmm1[2],xmm0[2],xmm1[3],xmm0[3]7555; SSE-NEXT: movdqa %xmm1, %xmm27556; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload7557; SSE-NEXT: psrld $16, %xmm07558; SSE-NEXT: pshufhw $212, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload7559; SSE-NEXT: # xmm1 = mem[0,1,2,3,4,5,5,7]7560; SSE-NEXT: punpckhqdq {{.*#+}} xmm1 = xmm1[1],xmm0[1]7561; SSE-NEXT: movss {{.*#+}} xmm1 = xmm2[0],xmm1[1,2,3]7562; SSE-NEXT: andps %xmm14, %xmm17563; SSE-NEXT: pshuflw $231, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload7564; SSE-NEXT: # xmm2 = mem[3,1,2,3,4,5,6,7]7565; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm2[0,1,0,3]7566; SSE-NEXT: pshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,4,5,7]7567; SSE-NEXT: pandn %xmm2, %xmm147568; SSE-NEXT: por %xmm1, %xmm147569; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload7570; SSE-NEXT: movaps %xmm0, 96(%rsi)7571; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload7572; SSE-NEXT: movaps %xmm0, 32(%rsi)7573; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload7574; SSE-NEXT: movaps %xmm1, 112(%rsi)7575; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload7576; SSE-NEXT: movaps %xmm1, 48(%rsi)7577; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload7578; SSE-NEXT: movaps %xmm1, 64(%rsi)7579; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload7580; SSE-NEXT: movaps %xmm1, (%rsi)7581; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload7582; SSE-NEXT: movaps %xmm1, 80(%rsi)7583; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload7584; SSE-NEXT: movaps %xmm1, 16(%rsi)7585; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload7586; SSE-NEXT: movaps %xmm0, 96(%rdx)7587; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload7588; SSE-NEXT: movaps %xmm0, 32(%rdx)7589; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload7590; SSE-NEXT: movaps %xmm0, 112(%rdx)7591; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload7592; SSE-NEXT: movaps %xmm0, 48(%rdx)7593; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload7594; SSE-NEXT: movaps %xmm0, 64(%rdx)7595; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload7596; SSE-NEXT: movaps %xmm0, (%rdx)7597; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload7598; SSE-NEXT: movaps %xmm0, 80(%rdx)7599; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload7600; SSE-NEXT: movaps %xmm0, 16(%rdx)7601; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload7602; SSE-NEXT: movaps %xmm0, 96(%rcx)7603; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload7604; SSE-NEXT: movaps %xmm0, 112(%rcx)7605; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload7606; SSE-NEXT: movaps %xmm0, 64(%rcx)7607; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload7608; SSE-NEXT: movaps %xmm0, 80(%rcx)7609; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload7610; SSE-NEXT: movaps %xmm0, 32(%rcx)7611; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload7612; SSE-NEXT: movaps %xmm0, 48(%rcx)7613; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload7614; SSE-NEXT: movaps %xmm0, (%rcx)7615; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload7616; SSE-NEXT: movaps %xmm0, 16(%rcx)7617; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload7618; SSE-NEXT: movaps %xmm0, 112(%r8)7619; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload7620; SSE-NEXT: movaps %xmm0, 96(%r8)7621; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload7622; SSE-NEXT: movaps %xmm0, 80(%r8)7623; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload7624; SSE-NEXT: movaps %xmm0, 64(%r8)7625; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload7626; SSE-NEXT: movaps %xmm0, 48(%r8)7627; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload7628; SSE-NEXT: movaps %xmm0, 32(%r8)7629; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload7630; SSE-NEXT: movaps %xmm0, 16(%r8)7631; SSE-NEXT: movaps (%rsp), %xmm0 # 16-byte Reload7632; SSE-NEXT: movaps %xmm0, (%r8)7633; SSE-NEXT: movdqa %xmm7, 112(%r9)7634; SSE-NEXT: movdqa %xmm8, 96(%r9)7635; SSE-NEXT: movdqa %xmm15, 80(%r9)7636; SSE-NEXT: movdqa %xmm12, 64(%r9)7637; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload7638; SSE-NEXT: movaps %xmm0, 48(%r9)7639; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload7640; SSE-NEXT: movaps %xmm0, 32(%r9)7641; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload7642; SSE-NEXT: movaps %xmm0, 16(%r9)7643; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload7644; SSE-NEXT: movaps %xmm0, (%r9)7645; SSE-NEXT: movq {{[0-9]+}}(%rsp), %rax7646; SSE-NEXT: movdqa %xmm14, 112(%rax)7647; SSE-NEXT: movdqa %xmm3, 96(%rax)7648; SSE-NEXT: movdqa %xmm4, 80(%rax)7649; SSE-NEXT: movdqa %xmm10, 64(%rax)7650; SSE-NEXT: movdqa %xmm11, 48(%rax)7651; SSE-NEXT: movdqa %xmm9, 32(%rax)7652; SSE-NEXT: movdqa %xmm5, 16(%rax)7653; SSE-NEXT: movdqa %xmm6, (%rax)7654; SSE-NEXT: addq $1176, %rsp # imm = 0x4987655; SSE-NEXT: retq7656;7657; AVX-LABEL: load_i16_stride6_vf64:7658; AVX: # %bb.0:7659; AVX-NEXT: subq $1368, %rsp # imm = 0x5587660; AVX-NEXT: vmovdqa 96(%rdi), %xmm07661; AVX-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7662; AVX-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[0,1,0,3]7663; AVX-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7664; AVX-NEXT: vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,6,6,7]7665; AVX-NEXT: vmovdqa 112(%rdi), %xmm17666; AVX-NEXT: vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7667; AVX-NEXT: vpunpckhdq {{.*#+}} xmm0 = xmm0[2],xmm1[2],xmm0[3],xmm1[3]7668; AVX-NEXT: vmovdqa 80(%rdi), %xmm17669; AVX-NEXT: vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7670; AVX-NEXT: vpslld $16, %xmm1, %xmm17671; AVX-NEXT: vmovdqa 64(%rdi), %xmm27672; AVX-NEXT: vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7673; AVX-NEXT: vpsrldq {{.*#+}} xmm2 = xmm2[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero7674; AVX-NEXT: vpunpcklwd {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1],xmm2[2],xmm1[2],xmm2[3],xmm1[3]7675; AVX-NEXT: vinsertf128 $1, %xmm0, %ymm1, %ymm07676; AVX-NEXT: vmovdqa (%rdi), %xmm37677; AVX-NEXT: vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7678; AVX-NEXT: vmovdqa 16(%rdi), %xmm47679; AVX-NEXT: vmovdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7680; AVX-NEXT: vmovdqa 32(%rdi), %xmm57681; AVX-NEXT: vmovdqa 48(%rdi), %xmm27682; AVX-NEXT: vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7683; AVX-NEXT: vpsrlq $16, %xmm5, %xmm17684; AVX-NEXT: vmovdqa %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7685; AVX-NEXT: vpshufd {{.*#+}} xmm2 = xmm2[0,3,2,3]7686; AVX-NEXT: vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7687; AVX-NEXT: vpshuflw {{.*#+}} xmm2 = xmm2[0,1,0,2,4,5,6,7]7688; AVX-NEXT: vpunpckldq {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]7689; AVX-NEXT: vpshufd {{.*#+}} xmm2 = xmm3[0,1,0,3]7690; AVX-NEXT: vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7691; AVX-NEXT: vpshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,6,6,7]7692; AVX-NEXT: vpunpckhdq {{.*#+}} xmm2 = xmm2[2],xmm4[2],xmm2[3],xmm4[3]7693; AVX-NEXT: vpblendw {{.*#+}} xmm1 = xmm2[0,1,2],xmm1[3,4,5],xmm2[6,7]7694; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm1[0,1,2],ymm0[3,4,5,6,7]7695; AVX-NEXT: vmovdqa 176(%rdi), %xmm07696; AVX-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7697; AVX-NEXT: vpslld $16, %xmm0, %xmm07698; AVX-NEXT: vmovdqa 160(%rdi), %xmm27699; AVX-NEXT: vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7700; AVX-NEXT: vpsrldq {{.*#+}} xmm2 = xmm2[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero7701; AVX-NEXT: vpunpcklwd {{.*#+}} xmm0 = xmm2[0],xmm0[0],xmm2[1],xmm0[1],xmm2[2],xmm0[2],xmm2[3],xmm0[3]7702; AVX-NEXT: vmovdqa 128(%rdi), %xmm27703; AVX-NEXT: vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7704; AVX-NEXT: vpsrlq $16, %xmm2, %xmm27705; AVX-NEXT: vmovdqa 144(%rdi), %xmm37706; AVX-NEXT: vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7707; AVX-NEXT: vpshufd {{.*#+}} xmm3 = xmm3[0,3,2,3]7708; AVX-NEXT: vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7709; AVX-NEXT: vpshuflw {{.*#+}} xmm3 = xmm3[0,1,0,2,4,5,6,7]7710; AVX-NEXT: vpunpckldq {{.*#+}} xmm2 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]7711; AVX-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,5],xmm0[6,7]7712; AVX-NEXT: vmovaps {{.*#+}} ymm6 = [65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,0,0,0,0,0]7713; AVX-NEXT: vandps %ymm6, %ymm1, %ymm17714; AVX-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm27715; AVX-NEXT: vandnps %ymm2, %ymm6, %ymm27716; AVX-NEXT: vorps %ymm2, %ymm1, %ymm07717; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7718; AVX-NEXT: vmovdqa 464(%rdi), %xmm07719; AVX-NEXT: vmovdqa %xmm0, (%rsp) # 16-byte Spill7720; AVX-NEXT: vpslld $16, %xmm0, %xmm17721; AVX-NEXT: vmovdqa 448(%rdi), %xmm07722; AVX-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7723; AVX-NEXT: vpsrldq {{.*#+}} xmm2 = xmm0[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero7724; AVX-NEXT: vpunpcklwd {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1],xmm2[2],xmm1[2],xmm2[3],xmm1[3]7725; AVX-NEXT: vmovdqa 480(%rdi), %xmm07726; AVX-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7727; AVX-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[0,1,0,3]7728; AVX-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7729; AVX-NEXT: vpshufhw {{.*#+}} xmm2 = xmm0[0,1,2,3,4,6,6,7]7730; AVX-NEXT: vmovdqa 496(%rdi), %xmm07731; AVX-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7732; AVX-NEXT: vpunpckhdq {{.*#+}} xmm2 = xmm2[2],xmm0[2],xmm2[3],xmm0[3]7733; AVX-NEXT: vinsertf128 $1, %xmm2, %ymm1, %ymm17734; AVX-NEXT: vmovdqa 416(%rdi), %xmm07735; AVX-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7736; AVX-NEXT: vpsrlq $16, %xmm0, %xmm27737; AVX-NEXT: vmovdqa 432(%rdi), %xmm07738; AVX-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7739; AVX-NEXT: vpshufd {{.*#+}} xmm13 = xmm0[0,3,2,3]7740; AVX-NEXT: vpshuflw {{.*#+}} xmm3 = xmm13[0,1,0,2,4,5,6,7]7741; AVX-NEXT: vpunpckldq {{.*#+}} xmm2 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]7742; AVX-NEXT: vmovdqa 384(%rdi), %xmm07743; AVX-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7744; AVX-NEXT: vpshufd {{.*#+}} xmm12 = xmm0[0,1,0,3]7745; AVX-NEXT: vpshufhw {{.*#+}} xmm3 = xmm12[0,1,2,3,4,6,6,7]7746; AVX-NEXT: vmovdqa 400(%rdi), %xmm07747; AVX-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7748; AVX-NEXT: vpunpckhdq {{.*#+}} xmm3 = xmm3[2],xmm0[2],xmm3[3],xmm0[3]7749; AVX-NEXT: vpblendw {{.*#+}} xmm2 = xmm3[0,1,2],xmm2[3,4,5],xmm3[6,7]7750; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3,4,5,6,7]7751; AVX-NEXT: vmovdqa 560(%rdi), %xmm07752; AVX-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7753; AVX-NEXT: vpslld $16, %xmm0, %xmm27754; AVX-NEXT: vmovdqa 544(%rdi), %xmm07755; AVX-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7756; AVX-NEXT: vpsrldq {{.*#+}} xmm3 = xmm0[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero7757; AVX-NEXT: vpunpcklwd {{.*#+}} xmm2 = xmm3[0],xmm2[0],xmm3[1],xmm2[1],xmm3[2],xmm2[2],xmm3[3],xmm2[3]7758; AVX-NEXT: vmovdqa 512(%rdi), %xmm07759; AVX-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7760; AVX-NEXT: vpsrlq $16, %xmm0, %xmm37761; AVX-NEXT: vmovdqa 528(%rdi), %xmm07762; AVX-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7763; AVX-NEXT: vpshufd {{.*#+}} xmm11 = xmm0[0,3,2,3]7764; AVX-NEXT: vpshuflw {{.*#+}} xmm4 = xmm11[0,1,0,2,4,5,6,7]7765; AVX-NEXT: vpunpckldq {{.*#+}} xmm3 = xmm4[0],xmm3[0],xmm4[1],xmm3[1]7766; AVX-NEXT: vpblendw {{.*#+}} xmm2 = xmm3[0,1,2,3,4,5],xmm2[6,7]7767; AVX-NEXT: vandps %ymm6, %ymm1, %ymm17768; AVX-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm27769; AVX-NEXT: vandnps %ymm2, %ymm6, %ymm27770; AVX-NEXT: vorps %ymm2, %ymm1, %ymm07771; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7772; AVX-NEXT: vmovdqa 272(%rdi), %xmm07773; AVX-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7774; AVX-NEXT: vpslld $16, %xmm0, %xmm17775; AVX-NEXT: vmovdqa 256(%rdi), %xmm07776; AVX-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7777; AVX-NEXT: vpsrldq {{.*#+}} xmm2 = xmm0[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero7778; AVX-NEXT: vpunpcklwd {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1],xmm2[2],xmm1[2],xmm2[3],xmm1[3]7779; AVX-NEXT: vmovdqa 288(%rdi), %xmm07780; AVX-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7781; AVX-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[0,1,0,3]7782; AVX-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7783; AVX-NEXT: vpshufhw {{.*#+}} xmm2 = xmm0[0,1,2,3,4,6,6,7]7784; AVX-NEXT: vmovdqa 304(%rdi), %xmm07785; AVX-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7786; AVX-NEXT: vpunpckhdq {{.*#+}} xmm2 = xmm2[2],xmm0[2],xmm2[3],xmm0[3]7787; AVX-NEXT: vinsertf128 $1, %xmm2, %ymm1, %ymm17788; AVX-NEXT: vmovdqa 224(%rdi), %xmm07789; AVX-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7790; AVX-NEXT: vpsrlq $16, %xmm0, %xmm27791; AVX-NEXT: vmovdqa 240(%rdi), %xmm07792; AVX-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7793; AVX-NEXT: vpshufd {{.*#+}} xmm9 = xmm0[0,3,2,3]7794; AVX-NEXT: vpshuflw {{.*#+}} xmm3 = xmm9[0,1,0,2,4,5,6,7]7795; AVX-NEXT: vpunpckldq {{.*#+}} xmm2 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]7796; AVX-NEXT: vmovdqa 192(%rdi), %xmm07797; AVX-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7798; AVX-NEXT: vpshufd {{.*#+}} xmm8 = xmm0[0,1,0,3]7799; AVX-NEXT: vpshufhw {{.*#+}} xmm3 = xmm8[0,1,2,3,4,6,6,7]7800; AVX-NEXT: vmovdqa 208(%rdi), %xmm07801; AVX-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7802; AVX-NEXT: vpunpckhdq {{.*#+}} xmm3 = xmm3[2],xmm0[2],xmm3[3],xmm0[3]7803; AVX-NEXT: vpblendw {{.*#+}} xmm2 = xmm3[0,1,2],xmm2[3,4,5],xmm3[6,7]7804; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3,4,5,6,7]7805; AVX-NEXT: vmovdqa 368(%rdi), %xmm07806; AVX-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7807; AVX-NEXT: vpslld $16, %xmm0, %xmm27808; AVX-NEXT: vmovdqa 352(%rdi), %xmm07809; AVX-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7810; AVX-NEXT: vpsrldq {{.*#+}} xmm3 = xmm0[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero7811; AVX-NEXT: vpunpcklwd {{.*#+}} xmm2 = xmm3[0],xmm2[0],xmm3[1],xmm2[1],xmm3[2],xmm2[2],xmm3[3],xmm2[3]7812; AVX-NEXT: vmovdqa 320(%rdi), %xmm107813; AVX-NEXT: vpsrlq $16, %xmm10, %xmm37814; AVX-NEXT: vmovdqa %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7815; AVX-NEXT: vmovdqa 336(%rdi), %xmm07816; AVX-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7817; AVX-NEXT: vpshufd {{.*#+}} xmm7 = xmm0[0,3,2,3]7818; AVX-NEXT: vpshuflw {{.*#+}} xmm4 = xmm7[0,1,0,2,4,5,6,7]7819; AVX-NEXT: vpunpckldq {{.*#+}} xmm3 = xmm4[0],xmm3[0],xmm4[1],xmm3[1]7820; AVX-NEXT: vpblendw {{.*#+}} xmm2 = xmm3[0,1,2,3,4,5],xmm2[6,7]7821; AVX-NEXT: vandps %ymm6, %ymm1, %ymm17822; AVX-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm27823; AVX-NEXT: vandnps %ymm2, %ymm6, %ymm27824; AVX-NEXT: vorps %ymm2, %ymm1, %ymm07825; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7826; AVX-NEXT: vmovdqa 656(%rdi), %xmm07827; AVX-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7828; AVX-NEXT: vpslld $16, %xmm0, %xmm17829; AVX-NEXT: vmovdqa 640(%rdi), %xmm07830; AVX-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7831; AVX-NEXT: vpsrldq {{.*#+}} xmm2 = xmm0[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero7832; AVX-NEXT: vpunpcklwd {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1],xmm2[2],xmm1[2],xmm2[3],xmm1[3]7833; AVX-NEXT: vmovdqa 672(%rdi), %xmm07834; AVX-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7835; AVX-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[0,1,0,3]7836; AVX-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7837; AVX-NEXT: vpshufhw {{.*#+}} xmm2 = xmm0[0,1,2,3,4,6,6,7]7838; AVX-NEXT: vmovdqa 688(%rdi), %xmm07839; AVX-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7840; AVX-NEXT: vpunpckhdq {{.*#+}} xmm2 = xmm2[2],xmm0[2],xmm2[3],xmm0[3]7841; AVX-NEXT: vinsertf128 $1, %xmm2, %ymm1, %ymm17842; AVX-NEXT: vmovdqa 608(%rdi), %xmm07843; AVX-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7844; AVX-NEXT: vpsrlq $16, %xmm0, %xmm27845; AVX-NEXT: vmovdqa 624(%rdi), %xmm07846; AVX-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7847; AVX-NEXT: vpshufd {{.*#+}} xmm3 = xmm0[0,3,2,3]7848; AVX-NEXT: vpshuflw {{.*#+}} xmm15 = xmm3[0,1,0,2,4,5,6,7]7849; AVX-NEXT: vpunpckldq {{.*#+}} xmm15 = xmm15[0],xmm2[0],xmm15[1],xmm2[1]7850; AVX-NEXT: vmovdqa 576(%rdi), %xmm07851; AVX-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7852; AVX-NEXT: vpshufd {{.*#+}} xmm4 = xmm0[0,1,0,3]7853; AVX-NEXT: vpshufhw {{.*#+}} xmm0 = xmm4[0,1,2,3,4,6,6,7]7854; AVX-NEXT: vmovdqa 592(%rdi), %xmm27855; AVX-NEXT: vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7856; AVX-NEXT: vpunpckhdq {{.*#+}} xmm0 = xmm0[2],xmm2[2],xmm0[3],xmm2[3]7857; AVX-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2],xmm15[3,4,5],xmm0[6,7]7858; AVX-NEXT: vblendps {{.*#+}} ymm2 = ymm0[0,1,2],ymm1[3,4,5,6,7]7859; AVX-NEXT: vmovdqa 752(%rdi), %xmm07860; AVX-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7861; AVX-NEXT: vpslld $16, %xmm0, %xmm17862; AVX-NEXT: vmovdqa 736(%rdi), %xmm07863; AVX-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7864; AVX-NEXT: vpsrldq {{.*#+}} xmm15 = xmm0[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero7865; AVX-NEXT: vpunpcklwd {{.*#+}} xmm15 = xmm15[0],xmm1[0],xmm15[1],xmm1[1],xmm15[2],xmm1[2],xmm15[3],xmm1[3]7866; AVX-NEXT: vmovdqa 704(%rdi), %xmm07867; AVX-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7868; AVX-NEXT: vpsrlq $16, %xmm0, %xmm07869; AVX-NEXT: vmovdqa 720(%rdi), %xmm17870; AVX-NEXT: vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7871; AVX-NEXT: vpshufd {{.*#+}} xmm1 = xmm1[0,3,2,3]7872; AVX-NEXT: vpshuflw {{.*#+}} xmm14 = xmm1[0,1,0,2,4,5,6,7]7873; AVX-NEXT: vpunpckldq {{.*#+}} xmm0 = xmm14[0],xmm0[0],xmm14[1],xmm0[1]7874; AVX-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,5],xmm15[6,7]7875; AVX-NEXT: vandps %ymm6, %ymm2, %ymm27876; AVX-NEXT: vinsertf128 $1, %xmm0, %ymm0, %ymm07877; AVX-NEXT: vandnps %ymm0, %ymm6, %ymm07878; AVX-NEXT: vorps %ymm0, %ymm2, %ymm07879; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7880; AVX-NEXT: vpshufhw $237, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload7881; AVX-NEXT: # xmm0 = mem[0,1,2,3,5,7,6,7]7882; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload7883; AVX-NEXT: vpsrld $16, %xmm2, %xmm27884; AVX-NEXT: vpunpckhdq {{.*#+}} xmm0 = xmm0[2],xmm2[2],xmm0[3],xmm2[3]7885; AVX-NEXT: vpshufd $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload7886; AVX-NEXT: # xmm2 = mem[2,2,3,3]7887; AVX-NEXT: vpunpcklwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm2 # 16-byte Folded Reload7888; AVX-NEXT: # xmm2 = xmm2[0],mem[0],xmm2[1],mem[1],xmm2[2],mem[2],xmm2[3],mem[3]7889; AVX-NEXT: vinsertf128 $1, %xmm0, %ymm2, %ymm07890; AVX-NEXT: vpshuflw $212, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload7891; AVX-NEXT: # xmm2 = mem[0,1,1,3,4,5,6,7]7892; AVX-NEXT: vpshufd {{.*#+}} xmm14 = xmm5[1,1,1,1]7893; AVX-NEXT: vpunpckldq {{.*#+}} xmm2 = xmm2[0],xmm14[0],xmm2[1],xmm14[1]7894; AVX-NEXT: vpshufhw $237, {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Folded Reload7895; AVX-NEXT: # xmm14 = mem[0,1,2,3,5,7,6,7]7896; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload7897; AVX-NEXT: vpsrld $16, %xmm5, %xmm157898; AVX-NEXT: vpunpckhdq {{.*#+}} xmm14 = xmm14[2],xmm15[2],xmm14[3],xmm15[3]7899; AVX-NEXT: vpblendw {{.*#+}} xmm2 = xmm14[0,1,2],xmm2[3,4,5],xmm14[6,7]7900; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm2[0,1,2],ymm0[3,4,5,6,7]7901; AVX-NEXT: vpshuflw $212, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload7902; AVX-NEXT: # xmm2 = mem[0,1,1,3,4,5,6,7]7903; AVX-NEXT: vpshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Folded Reload7904; AVX-NEXT: # xmm14 = mem[1,1,1,1]7905; AVX-NEXT: vpunpckldq {{.*#+}} xmm2 = xmm2[0],xmm14[0],xmm2[1],xmm14[1]7906; AVX-NEXT: vpshufd $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Folded Reload7907; AVX-NEXT: # xmm14 = mem[2,2,3,3]7908; AVX-NEXT: vpunpcklwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm14, %xmm14 # 16-byte Folded Reload7909; AVX-NEXT: # xmm14 = xmm14[0],mem[0],xmm14[1],mem[1],xmm14[2],mem[2],xmm14[3],mem[3]7910; AVX-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,5],xmm14[6,7]7911; AVX-NEXT: vandps %ymm6, %ymm0, %ymm07912; AVX-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm27913; AVX-NEXT: vandnps %ymm2, %ymm6, %ymm27914; AVX-NEXT: vorps %ymm2, %ymm0, %ymm07915; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7916; AVX-NEXT: vpshufhw $237, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload7917; AVX-NEXT: # xmm0 = mem[0,1,2,3,5,7,6,7]7918; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload7919; AVX-NEXT: vpsrld $16, %xmm2, %xmm27920; AVX-NEXT: vpunpckhdq {{.*#+}} xmm0 = xmm0[2],xmm2[2],xmm0[3],xmm2[3]7921; AVX-NEXT: vpshufd $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload7922; AVX-NEXT: # xmm2 = mem[2,2,3,3]7923; AVX-NEXT: vpunpcklwd (%rsp), %xmm2, %xmm2 # 16-byte Folded Reload7924; AVX-NEXT: # xmm2 = xmm2[0],mem[0],xmm2[1],mem[1],xmm2[2],mem[2],xmm2[3],mem[3]7925; AVX-NEXT: vinsertf128 $1, %xmm0, %ymm2, %ymm07926; AVX-NEXT: vpshuflw {{.*#+}} xmm2 = xmm13[0,1,1,3,4,5,6,7]7927; AVX-NEXT: vpshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Folded Reload7928; AVX-NEXT: # xmm13 = mem[1,1,1,1]7929; AVX-NEXT: vpunpckldq {{.*#+}} xmm2 = xmm2[0],xmm13[0],xmm2[1],xmm13[1]7930; AVX-NEXT: vpshufhw {{.*#+}} xmm12 = xmm12[0,1,2,3,5,7,6,7]7931; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload7932; AVX-NEXT: vpsrld $16, %xmm5, %xmm137933; AVX-NEXT: vpunpckhdq {{.*#+}} xmm12 = xmm12[2],xmm13[2],xmm12[3],xmm13[3]7934; AVX-NEXT: vpblendw {{.*#+}} xmm2 = xmm12[0,1,2],xmm2[3,4,5],xmm12[6,7]7935; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm2[0,1,2],ymm0[3,4,5,6,7]7936; AVX-NEXT: vpshuflw {{.*#+}} xmm2 = xmm11[0,1,1,3,4,5,6,7]7937; AVX-NEXT: vpshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Folded Reload7938; AVX-NEXT: # xmm11 = mem[1,1,1,1]7939; AVX-NEXT: vpunpckldq {{.*#+}} xmm2 = xmm2[0],xmm11[0],xmm2[1],xmm11[1]7940; AVX-NEXT: vpshufd $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Folded Reload7941; AVX-NEXT: # xmm11 = mem[2,2,3,3]7942; AVX-NEXT: vpunpcklwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm11, %xmm11 # 16-byte Folded Reload7943; AVX-NEXT: # xmm11 = xmm11[0],mem[0],xmm11[1],mem[1],xmm11[2],mem[2],xmm11[3],mem[3]7944; AVX-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,5],xmm11[6,7]7945; AVX-NEXT: vmovaps %ymm6, %ymm137946; AVX-NEXT: vandps %ymm6, %ymm0, %ymm07947; AVX-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm27948; AVX-NEXT: vandnps %ymm2, %ymm6, %ymm27949; AVX-NEXT: vorps %ymm2, %ymm0, %ymm07950; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7951; AVX-NEXT: vpshufhw $237, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload7952; AVX-NEXT: # xmm0 = mem[0,1,2,3,5,7,6,7]7953; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload7954; AVX-NEXT: vpsrld $16, %xmm2, %xmm27955; AVX-NEXT: vpunpckhdq {{.*#+}} xmm0 = xmm0[2],xmm2[2],xmm0[3],xmm2[3]7956; AVX-NEXT: vpshufd $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload7957; AVX-NEXT: # xmm2 = mem[2,2,3,3]7958; AVX-NEXT: vpunpcklwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm2 # 16-byte Folded Reload7959; AVX-NEXT: # xmm2 = xmm2[0],mem[0],xmm2[1],mem[1],xmm2[2],mem[2],xmm2[3],mem[3]7960; AVX-NEXT: vinsertf128 $1, %xmm0, %ymm2, %ymm07961; AVX-NEXT: vpshuflw {{.*#+}} xmm2 = xmm9[0,1,1,3,4,5,6,7]7962; AVX-NEXT: vpshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Folded Reload7963; AVX-NEXT: # xmm9 = mem[1,1,1,1]7964; AVX-NEXT: vpunpckldq {{.*#+}} xmm2 = xmm2[0],xmm9[0],xmm2[1],xmm9[1]7965; AVX-NEXT: vpshufhw {{.*#+}} xmm8 = xmm8[0,1,2,3,5,7,6,7]7966; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload7967; AVX-NEXT: vpsrld $16, %xmm5, %xmm97968; AVX-NEXT: vpunpckhdq {{.*#+}} xmm8 = xmm8[2],xmm9[2],xmm8[3],xmm9[3]7969; AVX-NEXT: vpblendw {{.*#+}} xmm2 = xmm8[0,1,2],xmm2[3,4,5],xmm8[6,7]7970; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm2[0,1,2],ymm0[3,4,5,6,7]7971; AVX-NEXT: vpshuflw {{.*#+}} xmm2 = xmm7[0,1,1,3,4,5,6,7]7972; AVX-NEXT: vpshufd {{.*#+}} xmm7 = xmm10[1,1,1,1]7973; AVX-NEXT: vpunpckldq {{.*#+}} xmm2 = xmm2[0],xmm7[0],xmm2[1],xmm7[1]7974; AVX-NEXT: vpshufd $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Folded Reload7975; AVX-NEXT: # xmm7 = mem[2,2,3,3]7976; AVX-NEXT: vpunpcklwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm7, %xmm7 # 16-byte Folded Reload7977; AVX-NEXT: # xmm7 = xmm7[0],mem[0],xmm7[1],mem[1],xmm7[2],mem[2],xmm7[3],mem[3]7978; AVX-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,5],xmm7[6,7]7979; AVX-NEXT: vandps %ymm6, %ymm0, %ymm07980; AVX-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm27981; AVX-NEXT: vandnps %ymm2, %ymm6, %ymm27982; AVX-NEXT: vorps %ymm2, %ymm0, %ymm07983; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7984; AVX-NEXT: vpshufhw $237, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload7985; AVX-NEXT: # xmm0 = mem[0,1,2,3,5,7,6,7]7986; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Reload7987; AVX-NEXT: vpsrld $16, %xmm12, %xmm27988; AVX-NEXT: vpunpckhdq {{.*#+}} xmm0 = xmm0[2],xmm2[2],xmm0[3],xmm2[3]7989; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Reload7990; AVX-NEXT: vpshufd {{.*#+}} xmm2 = xmm11[2,2,3,3]7991; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload7992; AVX-NEXT: vpunpcklwd {{.*#+}} xmm2 = xmm2[0],xmm10[0],xmm2[1],xmm10[1],xmm2[2],xmm10[2],xmm2[3],xmm10[3]7993; AVX-NEXT: vinsertf128 $1, %xmm0, %ymm2, %ymm07994; AVX-NEXT: vpshuflw {{.*#+}} xmm2 = xmm3[0,1,1,3,4,5,6,7]7995; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload7996; AVX-NEXT: vpshufd {{.*#+}} xmm3 = xmm6[1,1,1,1]7997; AVX-NEXT: vpunpckldq {{.*#+}} xmm2 = xmm2[0],xmm3[0],xmm2[1],xmm3[1]7998; AVX-NEXT: vpshufhw {{.*#+}} xmm3 = xmm4[0,1,2,3,5,7,6,7]7999; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload8000; AVX-NEXT: vpsrld $16, %xmm5, %xmm48001; AVX-NEXT: vpunpckhdq {{.*#+}} xmm3 = xmm3[2],xmm4[2],xmm3[3],xmm4[3]8002; AVX-NEXT: vpblendw {{.*#+}} xmm2 = xmm3[0,1,2],xmm2[3,4,5],xmm3[6,7]8003; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm2[0,1,2],ymm0[3,4,5,6,7]8004; AVX-NEXT: vpshuflw {{.*#+}} xmm1 = xmm1[0,1,1,3,4,5,6,7]8005; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload8006; AVX-NEXT: vpshufd {{.*#+}} xmm2 = xmm8[1,1,1,1]8007; AVX-NEXT: vpunpckldq {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]8008; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload8009; AVX-NEXT: vpshufd {{.*#+}} xmm2 = xmm7[2,2,3,3]8010; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload8011; AVX-NEXT: vpunpcklwd {{.*#+}} xmm2 = xmm2[0],xmm4[0],xmm2[1],xmm4[1],xmm2[2],xmm4[2],xmm2[3],xmm4[3]8012; AVX-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,5],xmm2[6,7]8013; AVX-NEXT: vandps %ymm0, %ymm13, %ymm08014; AVX-NEXT: vinsertf128 $1, %xmm1, %ymm0, %ymm18015; AVX-NEXT: vandnps %ymm1, %ymm13, %ymm18016; AVX-NEXT: vorps %ymm1, %ymm0, %ymm08017; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8018; AVX-NEXT: vpshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload8019; AVX-NEXT: # xmm0 = mem[1,1,1,1]8020; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload8021; AVX-NEXT: vpsrldq {{.*#+}} xmm1 = xmm1[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero8022; AVX-NEXT: vpunpcklqdq {{.*#+}} xmm0 = xmm1[0],xmm0[0]8023; AVX-NEXT: vmovdqa {{.*#+}} xmm15 = [4,5,0,1,12,13,14,15,8,9,10,11,12,13,14,15]8024; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload8025; AVX-NEXT: vpblendw $12, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload8026; AVX-NEXT: # xmm1 = xmm1[0,1],mem[2,3],xmm1[4,5,6,7]8027; AVX-NEXT: vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8028; AVX-NEXT: vpshufb %xmm15, %xmm1, %xmm18029; AVX-NEXT: vpblendw {{.*#+}} xmm0 = xmm1[0,1,2],xmm0[3,4],xmm1[5,6,7]8030; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload8031; AVX-NEXT: vpblendw $12, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload8032; AVX-NEXT: # xmm1 = xmm1[0,1],mem[2,3],xmm1[4,5,6,7]8033; AVX-NEXT: vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8034; AVX-NEXT: vpshufb %xmm15, %xmm1, %xmm18035; AVX-NEXT: vmovdqa {{.*#+}} xmm14 = [0,1,2,3,4,5,6,7,8,9,0,1,12,13,8,9]8036; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload8037; AVX-NEXT: vpblendw $207, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm2 # 16-byte Folded Reload8038; AVX-NEXT: # xmm2 = mem[0,1,2,3],xmm2[4,5],mem[6,7]8039; AVX-NEXT: vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8040; AVX-NEXT: vpshufb %xmm14, %xmm2, %xmm28041; AVX-NEXT: vinsertf128 $1, %xmm1, %ymm2, %ymm28042; AVX-NEXT: vmovaps {{.*#+}} ymm9 = [0,0,0,0,0,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535]8043; AVX-NEXT: vandnps %ymm0, %ymm9, %ymm08044; AVX-NEXT: vandps %ymm2, %ymm9, %ymm28045; AVX-NEXT: vorps %ymm0, %ymm2, %ymm08046; AVX-NEXT: vpshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload8047; AVX-NEXT: # xmm2 = mem[1,1,1,1]8048; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload8049; AVX-NEXT: vpsrldq {{.*#+}} xmm3 = xmm3[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero8050; AVX-NEXT: vpunpcklqdq {{.*#+}} xmm2 = xmm3[0],xmm2[0]8051; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload8052; AVX-NEXT: vpblendw $48, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3, %xmm3 # 16-byte Folded Reload8053; AVX-NEXT: # xmm3 = xmm3[0,1,2,3],mem[4,5],xmm3[6,7]8054; AVX-NEXT: vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8055; AVX-NEXT: vpshufb %xmm14, %xmm3, %xmm38056; AVX-NEXT: vpblendw {{.*#+}} xmm2 = xmm3[0,1,2],xmm2[3,4],xmm3[5,6,7]8057; AVX-NEXT: vandps %ymm0, %ymm13, %ymm08058; AVX-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm28059; AVX-NEXT: vandnps %ymm2, %ymm13, %ymm28060; AVX-NEXT: vorps %ymm2, %ymm0, %ymm08061; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8062; AVX-NEXT: vpshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload8063; AVX-NEXT: # xmm0 = mem[1,1,1,1]8064; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload8065; AVX-NEXT: vpsrldq {{.*#+}} xmm2 = xmm1[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero8066; AVX-NEXT: vpunpcklqdq {{.*#+}} xmm0 = xmm2[0],xmm0[0]8067; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload8068; AVX-NEXT: vpblendw $12, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm2 # 16-byte Folded Reload8069; AVX-NEXT: # xmm2 = xmm2[0,1],mem[2,3],xmm2[4,5,6,7]8070; AVX-NEXT: vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8071; AVX-NEXT: vpshufb %xmm15, %xmm2, %xmm28072; AVX-NEXT: vpblendw {{.*#+}} xmm1 = xmm2[0,1,2],xmm0[3,4],xmm2[5,6,7]8073; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload8074; AVX-NEXT: vpblendw $12, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm0 # 16-byte Folded Reload8075; AVX-NEXT: # xmm0 = xmm2[0,1],mem[2,3],xmm2[4,5,6,7]8076; AVX-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8077; AVX-NEXT: vpshufb %xmm15, %xmm0, %xmm28078; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload8079; AVX-NEXT: vpblendw $48, (%rsp), %xmm3, %xmm0 # 16-byte Folded Reload8080; AVX-NEXT: # xmm0 = xmm3[0,1,2,3],mem[4,5],xmm3[6,7]8081; AVX-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8082; AVX-NEXT: vpshufb %xmm14, %xmm0, %xmm38083; AVX-NEXT: vinsertf128 $1, %xmm2, %ymm3, %ymm28084; AVX-NEXT: vandnps %ymm1, %ymm9, %ymm08085; AVX-NEXT: vandps %ymm2, %ymm9, %ymm28086; AVX-NEXT: vorps %ymm0, %ymm2, %ymm08087; AVX-NEXT: vpshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload8088; AVX-NEXT: # xmm2 = mem[1,1,1,1]8089; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload8090; AVX-NEXT: vpsrldq {{.*#+}} xmm3 = xmm3[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero8091; AVX-NEXT: vpunpcklqdq {{.*#+}} xmm2 = xmm3[0],xmm2[0]8092; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload8093; AVX-NEXT: vpblendw $207, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3, %xmm1 # 16-byte Folded Reload8094; AVX-NEXT: # xmm1 = mem[0,1,2,3],xmm3[4,5],mem[6,7]8095; AVX-NEXT: vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8096; AVX-NEXT: vpshufb %xmm14, %xmm1, %xmm38097; AVX-NEXT: vpblendw {{.*#+}} xmm2 = xmm3[0,1,2],xmm2[3,4],xmm3[5,6,7]8098; AVX-NEXT: vandps %ymm0, %ymm13, %ymm08099; AVX-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm28100; AVX-NEXT: vandnps %ymm2, %ymm13, %ymm28101; AVX-NEXT: vorps %ymm2, %ymm0, %ymm08102; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8103; AVX-NEXT: vpshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload8104; AVX-NEXT: # xmm0 = mem[1,1,1,1]8105; AVX-NEXT: vpsrldq {{.*#+}} xmm2 = xmm6[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero8106; AVX-NEXT: vpunpcklqdq {{.*#+}} xmm0 = xmm2[0],xmm0[0]8107; AVX-NEXT: vpblendw $12, {{[-0-9]+}}(%r{{[sb]}}p), %xmm5, %xmm2 # 16-byte Folded Reload8108; AVX-NEXT: # xmm2 = xmm5[0,1],mem[2,3],xmm5[4,5,6,7]8109; AVX-NEXT: vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8110; AVX-NEXT: vpshufb %xmm15, %xmm2, %xmm28111; AVX-NEXT: vpblendw {{.*#+}} xmm0 = xmm2[0,1,2],xmm0[3,4],xmm2[5,6,7]8112; AVX-NEXT: vpblendw $12, {{[-0-9]+}}(%r{{[sb]}}p), %xmm12, %xmm2 # 16-byte Folded Reload8113; AVX-NEXT: # xmm2 = xmm12[0,1],mem[2,3],xmm12[4,5,6,7]8114; AVX-NEXT: vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8115; AVX-NEXT: vpshufb %xmm15, %xmm2, %xmm28116; AVX-NEXT: vpblendw {{.*#+}} xmm3 = xmm11[0,1,2,3],xmm10[4,5],xmm11[6,7]8117; AVX-NEXT: vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8118; AVX-NEXT: vpshufb %xmm14, %xmm3, %xmm38119; AVX-NEXT: vinsertf128 $1, %xmm2, %ymm3, %ymm28120; AVX-NEXT: vandnps %ymm0, %ymm9, %ymm08121; AVX-NEXT: vandps %ymm2, %ymm9, %ymm28122; AVX-NEXT: vorps %ymm0, %ymm2, %ymm28123; AVX-NEXT: vpshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload8124; AVX-NEXT: # xmm0 = mem[1,1,1,1]8125; AVX-NEXT: vpsrldq {{.*#+}} xmm3 = xmm8[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero8126; AVX-NEXT: vpunpcklqdq {{.*#+}} xmm3 = xmm3[0],xmm0[0]8127; AVX-NEXT: vpblendw {{.*#+}} xmm0 = xmm7[0,1,2,3],xmm4[4,5],xmm7[6,7]8128; AVX-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8129; AVX-NEXT: vpshufb %xmm14, %xmm0, %xmm48130; AVX-NEXT: vpblendw {{.*#+}} xmm3 = xmm4[0,1,2],xmm3[3,4],xmm4[5,6,7]8131; AVX-NEXT: vandps %ymm2, %ymm13, %ymm28132; AVX-NEXT: vinsertf128 $1, %xmm3, %ymm0, %ymm38133; AVX-NEXT: vandnps %ymm3, %ymm13, %ymm38134; AVX-NEXT: vorps %ymm3, %ymm2, %ymm08135; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8136; AVX-NEXT: vpshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload8137; AVX-NEXT: # xmm2 = mem[1,1,1,1]8138; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload8139; AVX-NEXT: vpsrldq {{.*#+}} xmm3 = xmm4[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero8140; AVX-NEXT: vpunpcklqdq {{.*#+}} xmm2 = xmm3[0],xmm2[0]8141; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload8142; AVX-NEXT: vpblendw $12, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload8143; AVX-NEXT: # xmm0 = xmm0[0,1],mem[2,3],xmm0[4,5,6,7]8144; AVX-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8145; AVX-NEXT: vpshufb %xmm15, %xmm0, %xmm38146; AVX-NEXT: vpblendw {{.*#+}} xmm2 = xmm3[0,1,2],xmm2[3,4],xmm3[5,6,7]8147; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload8148; AVX-NEXT: vpblendw $12, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm3 # 16-byte Folded Reload8149; AVX-NEXT: # xmm3 = xmm0[0,1],mem[2,3],xmm0[4,5,6,7]8150; AVX-NEXT: vpshufb %xmm15, %xmm3, %xmm08151; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload8152; AVX-NEXT: vpblendw $207, {{[-0-9]+}}(%r{{[sb]}}p), %xmm6, %xmm15 # 16-byte Folded Reload8153; AVX-NEXT: # xmm15 = mem[0,1,2,3],xmm6[4,5],mem[6,7]8154; AVX-NEXT: vpshufb %xmm14, %xmm15, %xmm68155; AVX-NEXT: vinsertf128 $1, %xmm0, %ymm6, %ymm08156; AVX-NEXT: vandnps %ymm2, %ymm9, %ymm28157; AVX-NEXT: vandps %ymm0, %ymm9, %ymm08158; AVX-NEXT: vorps %ymm2, %ymm0, %ymm08159; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Reload8160; AVX-NEXT: vpshufd {{.*#+}} xmm2 = xmm11[1,1,1,1]8161; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload8162; AVX-NEXT: vpsrldq {{.*#+}} xmm6 = xmm5[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero8163; AVX-NEXT: vpunpcklqdq {{.*#+}} xmm6 = xmm6[0],xmm2[0]8164; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload8165; AVX-NEXT: vpblendw $207, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm2 # 16-byte Folded Reload8166; AVX-NEXT: # xmm2 = mem[0,1,2,3],xmm2[4,5],mem[6,7]8167; AVX-NEXT: vpshufb %xmm14, %xmm2, %xmm148168; AVX-NEXT: vpblendw {{.*#+}} xmm6 = xmm14[0,1,2],xmm6[3,4],xmm14[5,6,7]8169; AVX-NEXT: vandps %ymm0, %ymm13, %ymm08170; AVX-NEXT: vinsertf128 $1, %xmm6, %ymm0, %ymm68171; AVX-NEXT: vandnps %ymm6, %ymm13, %ymm68172; AVX-NEXT: vmovaps %ymm13, %ymm58173; AVX-NEXT: vorps %ymm6, %ymm0, %ymm08174; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8175; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload8176; AVX-NEXT: vpsrlq $48, %xmm0, %xmm08177; AVX-NEXT: vpshufd $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Folded Reload8178; AVX-NEXT: # xmm6 = mem[2,2,3,3]8179; AVX-NEXT: vpunpcklqdq {{.*#+}} xmm0 = xmm6[0],xmm0[0]8180; AVX-NEXT: vmovdqa {{.*#+}} xmm14 = [6,7,2,3,14,15,14,15,8,9,10,11,12,13,14,15]8181; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload8182; AVX-NEXT: vpshufb %xmm14, %xmm6, %xmm68183; AVX-NEXT: vpblendw {{.*#+}} xmm0 = xmm6[0,1,2],xmm0[3,4],xmm6[5,6,7]8184; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload8185; AVX-NEXT: vpshufb %xmm14, %xmm6, %xmm78186; AVX-NEXT: vmovdqa {{.*#+}} xmm6 = [0,1,2,3,4,5,6,7,14,15,2,3,14,15,10,11]8187; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload8188; AVX-NEXT: vpshufb %xmm6, %xmm8, %xmm88189; AVX-NEXT: vinsertf128 $1, %xmm7, %ymm8, %ymm78190; AVX-NEXT: vandnps %ymm0, %ymm9, %ymm08191; AVX-NEXT: vandps %ymm7, %ymm9, %ymm78192; AVX-NEXT: vorps %ymm0, %ymm7, %ymm08193; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload8194; AVX-NEXT: vpsrlq $48, %xmm7, %xmm78195; AVX-NEXT: vpshufd $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Folded Reload8196; AVX-NEXT: # xmm8 = mem[2,2,3,3]8197; AVX-NEXT: vpunpcklqdq {{.*#+}} xmm7 = xmm8[0],xmm7[0]8198; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload8199; AVX-NEXT: vpshufb %xmm6, %xmm8, %xmm88200; AVX-NEXT: vpblendw {{.*#+}} xmm7 = xmm8[0,1,2],xmm7[3,4],xmm8[5,6,7]8201; AVX-NEXT: vandps %ymm0, %ymm13, %ymm08202; AVX-NEXT: vinsertf128 $1, %xmm7, %ymm0, %ymm78203; AVX-NEXT: vandnps %ymm7, %ymm13, %ymm78204; AVX-NEXT: vorps %ymm7, %ymm0, %ymm08205; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8206; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload8207; AVX-NEXT: vpsrlq $48, %xmm13, %xmm08208; AVX-NEXT: vpshufd $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Folded Reload8209; AVX-NEXT: # xmm7 = mem[2,2,3,3]8210; AVX-NEXT: vpunpcklqdq {{.*#+}} xmm0 = xmm7[0],xmm0[0]8211; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload8212; AVX-NEXT: vpshufb %xmm14, %xmm7, %xmm78213; AVX-NEXT: vpblendw {{.*#+}} xmm0 = xmm7[0,1,2],xmm0[3,4],xmm7[5,6,7]8214; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload8215; AVX-NEXT: vpshufb %xmm14, %xmm1, %xmm78216; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload8217; AVX-NEXT: vpshufb %xmm6, %xmm1, %xmm88218; AVX-NEXT: vinsertf128 $1, %xmm7, %ymm8, %ymm78219; AVX-NEXT: vandnps %ymm0, %ymm9, %ymm08220; AVX-NEXT: vandps %ymm7, %ymm9, %ymm78221; AVX-NEXT: vorps %ymm0, %ymm7, %ymm08222; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload8223; AVX-NEXT: vpsrlq $48, %xmm10, %xmm78224; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Reload8225; AVX-NEXT: vpshufd {{.*#+}} xmm8 = xmm12[2,2,3,3]8226; AVX-NEXT: vpunpcklqdq {{.*#+}} xmm7 = xmm8[0],xmm7[0]8227; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload8228; AVX-NEXT: vpshufb %xmm6, %xmm1, %xmm88229; AVX-NEXT: vpblendw {{.*#+}} xmm7 = xmm8[0,1,2],xmm7[3,4],xmm8[5,6,7]8230; AVX-NEXT: vandps %ymm5, %ymm0, %ymm08231; AVX-NEXT: vinsertf128 $1, %xmm7, %ymm0, %ymm78232; AVX-NEXT: vandnps %ymm7, %ymm5, %ymm78233; AVX-NEXT: vorps %ymm7, %ymm0, %ymm08234; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8235; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload8236; AVX-NEXT: vpsrlq $48, %xmm8, %xmm08237; AVX-NEXT: vpshufd {{.*#+}} xmm7 = xmm4[2,2,3,3]8238; AVX-NEXT: vpunpcklqdq {{.*#+}} xmm0 = xmm7[0],xmm0[0]8239; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload8240; AVX-NEXT: vpshufb %xmm14, %xmm1, %xmm48241; AVX-NEXT: vpblendw {{.*#+}} xmm0 = xmm4[0,1,2],xmm0[3,4],xmm4[5,6,7]8242; AVX-NEXT: vpshufb %xmm14, %xmm3, %xmm38243; AVX-NEXT: vpshufb %xmm6, %xmm15, %xmm48244; AVX-NEXT: vinsertf128 $1, %xmm3, %ymm4, %ymm38245; AVX-NEXT: vandnps %ymm0, %ymm9, %ymm08246; AVX-NEXT: vandps %ymm3, %ymm9, %ymm38247; AVX-NEXT: vorps %ymm0, %ymm3, %ymm08248; AVX-NEXT: vpsrlq $48, %xmm11, %xmm38249; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload8250; AVX-NEXT: vpshufd {{.*#+}} xmm4 = xmm15[2,2,3,3]8251; AVX-NEXT: vpunpcklqdq {{.*#+}} xmm3 = xmm4[0],xmm3[0]8252; AVX-NEXT: vpshufb %xmm6, %xmm2, %xmm28253; AVX-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0,1,2],xmm3[3,4],xmm2[5,6,7]8254; AVX-NEXT: vandps %ymm5, %ymm0, %ymm08255; AVX-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm28256; AVX-NEXT: vandnps %ymm2, %ymm5, %ymm28257; AVX-NEXT: vorps %ymm2, %ymm0, %ymm08258; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8259; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload8260; AVX-NEXT: vpsrlq $48, %xmm0, %xmm08261; AVX-NEXT: vpshufd $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload8262; AVX-NEXT: # xmm2 = mem[2,2,3,3]8263; AVX-NEXT: vpunpcklqdq {{.*#+}} xmm0 = xmm2[0],xmm0[0]8264; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload8265; AVX-NEXT: vpshufb %xmm14, %xmm2, %xmm28266; AVX-NEXT: vpblendw {{.*#+}} xmm0 = xmm2[0,1,2],xmm0[3,4],xmm2[5,6,7]8267; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload8268; AVX-NEXT: vpshufb %xmm14, %xmm2, %xmm28269; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload8270; AVX-NEXT: vpshufb %xmm6, %xmm3, %xmm38271; AVX-NEXT: vinsertf128 $1, %xmm2, %ymm3, %ymm28272; AVX-NEXT: vandnps %ymm0, %ymm9, %ymm08273; AVX-NEXT: vandps %ymm2, %ymm9, %ymm18274; AVX-NEXT: vorps %ymm0, %ymm1, %ymm08275; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload8276; AVX-NEXT: vpsrlq $48, %xmm1, %xmm18277; AVX-NEXT: vpshufd $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload8278; AVX-NEXT: # xmm2 = mem[2,2,3,3]8279; AVX-NEXT: vpunpcklqdq {{.*#+}} xmm1 = xmm2[0],xmm1[0]8280; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload8281; AVX-NEXT: vpshufb %xmm6, %xmm2, %xmm28282; AVX-NEXT: vpblendw {{.*#+}} xmm1 = xmm2[0,1,2],xmm1[3,4],xmm2[5,6,7]8283; AVX-NEXT: vandps %ymm5, %ymm0, %ymm08284; AVX-NEXT: vinsertf128 $1, %xmm1, %ymm0, %ymm18285; AVX-NEXT: vandnps %ymm1, %ymm5, %ymm18286; AVX-NEXT: vorps %ymm1, %ymm0, %ymm08287; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8288; AVX-NEXT: vpshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload8289; AVX-NEXT: # xmm0 = mem[1,1,1,1]8290; AVX-NEXT: vpshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload8291; AVX-NEXT: # xmm1 = mem[2,3,2,3]8292; AVX-NEXT: vpunpcklwd {{.*#+}} xmm0 = xmm1[0],xmm0[0],xmm1[1],xmm0[1],xmm1[2],xmm0[2],xmm1[3],xmm0[3]8293; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload8294; AVX-NEXT: vpblendw $243, (%rsp), %xmm1, %xmm2 # 16-byte Folded Reload8295; AVX-NEXT: # xmm2 = mem[0,1],xmm1[2,3],mem[4,5,6,7]8296; AVX-NEXT: vmovdqa %xmm2, (%rsp) # 16-byte Spill8297; AVX-NEXT: vmovdqa {{.*#+}} xmm1 = [0,1,4,5,4,5,6,7,0,1,4,5,0,1,12,13]8298; AVX-NEXT: vpshufb %xmm1, %xmm2, %xmm28299; AVX-NEXT: vinsertf128 $1, %xmm0, %ymm2, %ymm08300; AVX-NEXT: vpshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload8301; AVX-NEXT: # xmm2 = mem[1,1,1,1]8302; AVX-NEXT: vpshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Folded Reload8303; AVX-NEXT: # xmm3 = mem[2,3,2,3]8304; AVX-NEXT: vpunpcklwd {{.*#+}} xmm2 = xmm3[0],xmm2[0],xmm3[1],xmm2[1],xmm3[2],xmm2[2],xmm3[3],xmm2[3]8305; AVX-NEXT: vpshufd $196, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Folded Reload8306; AVX-NEXT: # xmm3 = mem[0,1,0,3]8307; AVX-NEXT: vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8308; AVX-NEXT: vpshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,4,5,4,6]8309; AVX-NEXT: vpunpckhqdq {{.*#+}} xmm3 = xmm3[1],xmm13[1]8310; AVX-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0,1],xmm3[2,3,4,5,6,7]8311; AVX-NEXT: vmovaps {{.*#+}} ymm5 = [65535,65535,65535,65535,65535,0,0,0,0,0,65535,65535,65535,65535,65535,65535]8312; AVX-NEXT: vandnps %ymm0, %ymm5, %ymm08313; AVX-NEXT: vandps %ymm5, %ymm2, %ymm28314; AVX-NEXT: vorps %ymm0, %ymm2, %ymm08315; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload8316; AVX-NEXT: vpblendw $12, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm4 # 16-byte Folded Reload8317; AVX-NEXT: # xmm4 = xmm2[0,1],mem[2,3],xmm2[4,5,6,7]8318; AVX-NEXT: vmovdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8319; AVX-NEXT: vpshufd {{.*#+}} xmm2 = xmm12[0,1,0,3]8320; AVX-NEXT: vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8321; AVX-NEXT: vpshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,5,4,6]8322; AVX-NEXT: vpunpckhqdq {{.*#+}} xmm2 = xmm2[1],xmm10[1]8323; AVX-NEXT: vpshufb %xmm1, %xmm4, %xmm38324; AVX-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0,1,2,3,4],xmm3[5,6,7]8325; AVX-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm28326; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm2[5,6,7]8327; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8328; AVX-NEXT: vpshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload8329; AVX-NEXT: # xmm0 = mem[1,1,1,1]8330; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload8331; AVX-NEXT: vpshufd {{.*#+}} xmm2 = xmm4[2,3,2,3]8332; AVX-NEXT: vpunpcklwd {{.*#+}} xmm0 = xmm2[0],xmm0[0],xmm2[1],xmm0[1],xmm2[2],xmm0[2],xmm2[3],xmm0[3]8333; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload8334; AVX-NEXT: vpblendw $12, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm13 # 16-byte Folded Reload8335; AVX-NEXT: # xmm13 = xmm2[0,1],mem[2,3],xmm2[4,5,6,7]8336; AVX-NEXT: vpshufb %xmm1, %xmm13, %xmm28337; AVX-NEXT: vinsertf128 $1, %xmm0, %ymm2, %ymm08338; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Reload8339; AVX-NEXT: vpshufd {{.*#+}} xmm2 = xmm12[1,1,1,1]8340; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Reload8341; AVX-NEXT: vpshufd {{.*#+}} xmm3 = xmm11[2,3,2,3]8342; AVX-NEXT: vpunpcklwd {{.*#+}} xmm2 = xmm3[0],xmm2[0],xmm3[1],xmm2[1],xmm3[2],xmm2[2],xmm3[3],xmm2[3]8343; AVX-NEXT: vpshufd $196, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Folded Reload8344; AVX-NEXT: # xmm3 = mem[0,1,0,3]8345; AVX-NEXT: vpshufhw {{.*#+}} xmm6 = xmm3[0,1,2,3,4,5,4,6]8346; AVX-NEXT: vpunpckhqdq {{[-0-9]+}}(%r{{[sb]}}p), %xmm6, %xmm6 # 16-byte Folded Reload8347; AVX-NEXT: # xmm6 = xmm6[1],mem[1]8348; AVX-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0,1],xmm6[2,3,4,5,6,7]8349; AVX-NEXT: vandnps %ymm0, %ymm5, %ymm08350; AVX-NEXT: vandps %ymm5, %ymm2, %ymm28351; AVX-NEXT: vorps %ymm0, %ymm2, %ymm08352; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload8353; AVX-NEXT: vpblendw $243, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm9 # 16-byte Folded Reload8354; AVX-NEXT: # xmm9 = mem[0,1],xmm2[2,3],mem[4,5,6,7]8355; AVX-NEXT: vmovdqa %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8356; AVX-NEXT: vpshufd $196, {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Folded Reload8357; AVX-NEXT: # xmm6 = mem[0,1,0,3]8358; AVX-NEXT: vpshufhw {{.*#+}} xmm7 = xmm6[0,1,2,3,4,5,4,6]8359; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload8360; AVX-NEXT: vpunpckhqdq {{.*#+}} xmm7 = xmm7[1],xmm2[1]8361; AVX-NEXT: vpshufb %xmm1, %xmm9, %xmm108362; AVX-NEXT: vpblendw {{.*#+}} xmm7 = xmm7[0,1,2,3,4],xmm10[5,6,7]8363; AVX-NEXT: vinsertf128 $1, %xmm7, %ymm0, %ymm78364; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm7[5,6,7]8365; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8366; AVX-NEXT: vpshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload8367; AVX-NEXT: # xmm0 = mem[1,1,1,1]8368; AVX-NEXT: vpshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Folded Reload8369; AVX-NEXT: # xmm7 = mem[2,3,2,3]8370; AVX-NEXT: vpunpcklwd {{.*#+}} xmm0 = xmm7[0],xmm0[0],xmm7[1],xmm0[1],xmm7[2],xmm0[2],xmm7[3],xmm0[3]8371; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload8372; AVX-NEXT: vpblendw $12, {{[-0-9]+}}(%r{{[sb]}}p), %xmm7, %xmm7 # 16-byte Folded Reload8373; AVX-NEXT: # xmm7 = xmm7[0,1],mem[2,3],xmm7[4,5,6,7]8374; AVX-NEXT: vmovdqa %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8375; AVX-NEXT: vpshufb %xmm1, %xmm7, %xmm78376; AVX-NEXT: vinsertf128 $1, %xmm0, %ymm7, %ymm08377; AVX-NEXT: vpshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Folded Reload8378; AVX-NEXT: # xmm7 = mem[1,1,1,1]8379; AVX-NEXT: vpshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Folded Reload8380; AVX-NEXT: # xmm10 = mem[2,3,2,3]8381; AVX-NEXT: vpunpcklwd {{.*#+}} xmm7 = xmm10[0],xmm7[0],xmm10[1],xmm7[1],xmm10[2],xmm7[2],xmm10[3],xmm7[3]8382; AVX-NEXT: vpshufd $196, {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Folded Reload8383; AVX-NEXT: # xmm9 = mem[0,1,0,3]8384; AVX-NEXT: vmovdqa %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8385; AVX-NEXT: vpshufhw {{.*#+}} xmm10 = xmm9[0,1,2,3,4,5,4,6]8386; AVX-NEXT: vpunpckhqdq {{.*#+}} xmm10 = xmm10[1],xmm8[1]8387; AVX-NEXT: vpblendw {{.*#+}} xmm7 = xmm7[0,1],xmm10[2,3,4,5,6,7]8388; AVX-NEXT: vandnps %ymm0, %ymm5, %ymm08389; AVX-NEXT: vandps %ymm5, %ymm7, %ymm78390; AVX-NEXT: vorps %ymm0, %ymm7, %ymm08391; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload8392; AVX-NEXT: vpblendw $12, {{[-0-9]+}}(%r{{[sb]}}p), %xmm7, %xmm8 # 16-byte Folded Reload8393; AVX-NEXT: # xmm8 = xmm7[0,1],mem[2,3],xmm7[4,5,6,7]8394; AVX-NEXT: vmovdqa %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8395; AVX-NEXT: vpshufd {{.*#+}} xmm7 = xmm15[0,1,0,3]8396; AVX-NEXT: vmovdqa %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8397; AVX-NEXT: vpshufhw {{.*#+}} xmm7 = xmm7[0,1,2,3,4,5,4,6]8398; AVX-NEXT: vpunpckhqdq {{[-0-9]+}}(%r{{[sb]}}p), %xmm7, %xmm7 # 16-byte Folded Reload8399; AVX-NEXT: # xmm7 = xmm7[1],mem[1]8400; AVX-NEXT: vpshufb %xmm1, %xmm8, %xmm148401; AVX-NEXT: vpblendw {{.*#+}} xmm7 = xmm7[0,1,2,3,4],xmm14[5,6,7]8402; AVX-NEXT: vinsertf128 $1, %xmm7, %ymm0, %ymm78403; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm7[5,6,7]8404; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8405; AVX-NEXT: vpshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload8406; AVX-NEXT: # xmm0 = mem[1,1,1,1]8407; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload8408; AVX-NEXT: vpshufd {{.*#+}} xmm7 = xmm10[2,3,2,3]8409; AVX-NEXT: vpunpcklwd {{.*#+}} xmm0 = xmm7[0],xmm0[0],xmm7[1],xmm0[1],xmm7[2],xmm0[2],xmm7[3],xmm0[3]8410; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload8411; AVX-NEXT: vpblendw $12, {{[-0-9]+}}(%r{{[sb]}}p), %xmm7, %xmm7 # 16-byte Folded Reload8412; AVX-NEXT: # xmm7 = xmm7[0,1],mem[2,3],xmm7[4,5,6,7]8413; AVX-NEXT: vmovdqa %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8414; AVX-NEXT: vpshufb %xmm1, %xmm7, %xmm78415; AVX-NEXT: vinsertf128 $1, %xmm0, %ymm7, %ymm08416; AVX-NEXT: vpshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Folded Reload8417; AVX-NEXT: # xmm7 = mem[1,1,1,1]8418; AVX-NEXT: vpshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Folded Reload8419; AVX-NEXT: # xmm15 = mem[2,3,2,3]8420; AVX-NEXT: vpunpcklwd {{.*#+}} xmm7 = xmm15[0],xmm7[0],xmm15[1],xmm7[1],xmm15[2],xmm7[2],xmm15[3],xmm7[3]8421; AVX-NEXT: vpshufd $196, {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Folded Reload8422; AVX-NEXT: # xmm15 = mem[0,1,0,3]8423; AVX-NEXT: vpshufhw {{.*#+}} xmm9 = xmm15[0,1,2,3,4,5,4,6]8424; AVX-NEXT: vpunpckhqdq {{[-0-9]+}}(%r{{[sb]}}p), %xmm9, %xmm9 # 16-byte Folded Reload8425; AVX-NEXT: # xmm9 = xmm9[1],mem[1]8426; AVX-NEXT: vpblendw {{.*#+}} xmm7 = xmm7[0,1],xmm9[2,3,4,5,6,7]8427; AVX-NEXT: vandnps %ymm0, %ymm5, %ymm08428; AVX-NEXT: vandps %ymm5, %ymm7, %ymm78429; AVX-NEXT: vorps %ymm0, %ymm7, %ymm08430; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload8431; AVX-NEXT: vpblendw $12, {{[-0-9]+}}(%r{{[sb]}}p), %xmm7, %xmm7 # 16-byte Folded Reload8432; AVX-NEXT: # xmm7 = xmm7[0,1],mem[2,3],xmm7[4,5,6,7]8433; AVX-NEXT: vpshufb %xmm1, %xmm7, %xmm98434; AVX-NEXT: vpshufd $196, {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Folded Reload8435; AVX-NEXT: # xmm14 = mem[0,1,0,3]8436; AVX-NEXT: vpshufhw {{.*#+}} xmm8 = xmm14[0,1,2,3,4,5,4,6]8437; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload8438; AVX-NEXT: vpunpckhqdq {{.*#+}} xmm8 = xmm8[1],xmm1[1]8439; AVX-NEXT: vpblendw {{.*#+}} xmm8 = xmm8[0,1,2,3,4],xmm9[5,6,7]8440; AVX-NEXT: vinsertf128 $1, %xmm8, %ymm0, %ymm88441; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm8[5,6,7]8442; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8443; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload8444; AVX-NEXT: vpsrlq $48, %xmm0, %xmm08445; AVX-NEXT: vpsrldq {{.*#+}} xmm8 = xmm4[10,11,12,13,14,15],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero8446; AVX-NEXT: vpunpcklwd {{.*#+}} xmm8 = xmm8[0],xmm0[0],xmm8[1],xmm0[1],xmm8[2],xmm0[2],xmm8[3],xmm0[3]8447; AVX-NEXT: vmovdqa {{.*#+}} xmm0 = [6,7,2,3,4,5,6,7,6,7,6,7,2,3,14,15]8448; AVX-NEXT: vpshufb %xmm0, %xmm13, %xmm48449; AVX-NEXT: vinsertf128 $1, %xmm8, %ymm4, %ymm48450; AVX-NEXT: vpsrlq $48, %xmm12, %xmm88451; AVX-NEXT: vpsrldq {{.*#+}} xmm9 = xmm11[10,11,12,13,14,15],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero8452; AVX-NEXT: vpunpcklwd {{.*#+}} xmm8 = xmm9[0],xmm8[0],xmm9[1],xmm8[1],xmm9[2],xmm8[2],xmm9[3],xmm8[3]8453; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Reload8454; AVX-NEXT: vpsrld $16, %xmm9, %xmm98455; AVX-NEXT: vpshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,4,5,5,7]8456; AVX-NEXT: vpunpckhqdq {{.*#+}} xmm3 = xmm3[1],xmm9[1]8457; AVX-NEXT: vpblendw {{.*#+}} xmm3 = xmm8[0,1],xmm3[2,3,4,5,6,7]8458; AVX-NEXT: vandnps %ymm4, %ymm5, %ymm48459; AVX-NEXT: vandps %ymm5, %ymm3, %ymm38460; AVX-NEXT: vorps %ymm4, %ymm3, %ymm38461; AVX-NEXT: vpsrld $16, %xmm2, %xmm48462; AVX-NEXT: vpshufhw {{.*#+}} xmm2 = xmm6[0,1,2,3,4,5,5,7]8463; AVX-NEXT: vpunpckhqdq {{.*#+}} xmm2 = xmm2[1],xmm4[1]8464; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload8465; AVX-NEXT: vpshufb %xmm0, %xmm4, %xmm48466; AVX-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0,1,2,3,4],xmm4[5,6,7]8467; AVX-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm28468; AVX-NEXT: vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4],ymm2[5,6,7]8469; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload8470; AVX-NEXT: vpsrlq $48, %xmm2, %xmm28471; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload8472; AVX-NEXT: vpsrldq {{.*#+}} xmm4 = xmm4[10,11,12,13,14,15],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero8473; AVX-NEXT: vpunpcklwd {{.*#+}} xmm2 = xmm4[0],xmm2[0],xmm4[1],xmm2[1],xmm4[2],xmm2[2],xmm4[3],xmm2[3]8474; AVX-NEXT: vmovdqa (%rsp), %xmm4 # 16-byte Reload8475; AVX-NEXT: vpshufb %xmm0, %xmm4, %xmm48476; AVX-NEXT: vinsertf128 $1, %xmm2, %ymm4, %ymm28477; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload8478; AVX-NEXT: vpsrlq $48, %xmm4, %xmm48479; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload8480; AVX-NEXT: vpsrldq {{.*#+}} xmm6 = xmm6[10,11,12,13,14,15],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero8481; AVX-NEXT: vpunpcklwd {{.*#+}} xmm4 = xmm6[0],xmm4[0],xmm6[1],xmm4[1],xmm6[2],xmm4[2],xmm6[3],xmm4[3]8482; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload8483; AVX-NEXT: vpsrld $16, %xmm6, %xmm68484; AVX-NEXT: vpshufhw $212, {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Folded Reload8485; AVX-NEXT: # xmm8 = mem[0,1,2,3,4,5,5,7]8486; AVX-NEXT: vpunpckhqdq {{.*#+}} xmm6 = xmm8[1],xmm6[1]8487; AVX-NEXT: vpblendw {{.*#+}} xmm4 = xmm4[0,1],xmm6[2,3,4,5,6,7]8488; AVX-NEXT: vandnps %ymm2, %ymm5, %ymm28489; AVX-NEXT: vandps %ymm5, %ymm4, %ymm48490; AVX-NEXT: vorps %ymm2, %ymm4, %ymm28491; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload8492; AVX-NEXT: vpsrld $16, %xmm4, %xmm48493; AVX-NEXT: vpshufhw $212, {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Folded Reload8494; AVX-NEXT: # xmm6 = mem[0,1,2,3,4,5,5,7]8495; AVX-NEXT: vpunpckhqdq {{.*#+}} xmm4 = xmm6[1],xmm4[1]8496; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload8497; AVX-NEXT: vpshufb %xmm0, %xmm6, %xmm68498; AVX-NEXT: vpblendw {{.*#+}} xmm4 = xmm4[0,1,2,3,4],xmm6[5,6,7]8499; AVX-NEXT: vinsertf128 $1, %xmm4, %ymm0, %ymm48500; AVX-NEXT: vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4],ymm4[5,6,7]8501; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload8502; AVX-NEXT: vpsrlq $48, %xmm4, %xmm48503; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload8504; AVX-NEXT: vpsrldq {{.*#+}} xmm6 = xmm6[10,11,12,13,14,15],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero8505; AVX-NEXT: vpunpcklwd {{.*#+}} xmm4 = xmm6[0],xmm4[0],xmm6[1],xmm4[1],xmm6[2],xmm4[2],xmm6[3],xmm4[3]8506; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload8507; AVX-NEXT: vpshufb %xmm0, %xmm6, %xmm68508; AVX-NEXT: vinsertf128 $1, %xmm4, %ymm6, %ymm48509; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload8510; AVX-NEXT: vpsrlq $48, %xmm6, %xmm68511; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload8512; AVX-NEXT: vpsrldq {{.*#+}} xmm8 = xmm8[10,11,12,13,14,15],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero8513; AVX-NEXT: vpunpcklwd {{.*#+}} xmm6 = xmm8[0],xmm6[0],xmm8[1],xmm6[1],xmm8[2],xmm6[2],xmm8[3],xmm6[3]8514; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload8515; AVX-NEXT: vpsrld $16, %xmm8, %xmm88516; AVX-NEXT: vpshufhw $212, {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Folded Reload8517; AVX-NEXT: # xmm9 = mem[0,1,2,3,4,5,5,7]8518; AVX-NEXT: vpunpckhqdq {{.*#+}} xmm8 = xmm9[1],xmm8[1]8519; AVX-NEXT: vpblendw {{.*#+}} xmm6 = xmm6[0,1],xmm8[2,3,4,5,6,7]8520; AVX-NEXT: vandnps %ymm4, %ymm5, %ymm48521; AVX-NEXT: vandps %ymm5, %ymm6, %ymm68522; AVX-NEXT: vorps %ymm4, %ymm6, %ymm48523; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload8524; AVX-NEXT: vpsrld $16, %xmm6, %xmm68525; AVX-NEXT: vpshufhw $212, {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Folded Reload8526; AVX-NEXT: # xmm8 = mem[0,1,2,3,4,5,5,7]8527; AVX-NEXT: vpunpckhqdq {{.*#+}} xmm6 = xmm8[1],xmm6[1]8528; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload8529; AVX-NEXT: vpshufb %xmm0, %xmm8, %xmm88530; AVX-NEXT: vpblendw {{.*#+}} xmm6 = xmm6[0,1,2,3,4],xmm8[5,6,7]8531; AVX-NEXT: vinsertf128 $1, %xmm6, %ymm0, %ymm68532; AVX-NEXT: vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3,4],ymm6[5,6,7]8533; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload8534; AVX-NEXT: vpsrlq $48, %xmm6, %xmm68535; AVX-NEXT: vpsrldq {{.*#+}} xmm8 = xmm10[10,11,12,13,14,15],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero8536; AVX-NEXT: vpunpcklwd {{.*#+}} xmm6 = xmm8[0],xmm6[0],xmm8[1],xmm6[1],xmm8[2],xmm6[2],xmm8[3],xmm6[3]8537; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload8538; AVX-NEXT: vpshufb %xmm0, %xmm8, %xmm88539; AVX-NEXT: vinsertf128 $1, %xmm6, %ymm8, %ymm68540; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload8541; AVX-NEXT: vpsrlq $48, %xmm8, %xmm88542; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Reload8543; AVX-NEXT: vpsrldq {{.*#+}} xmm9 = xmm9[10,11,12,13,14,15],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero8544; AVX-NEXT: vpunpcklwd {{.*#+}} xmm8 = xmm9[0],xmm8[0],xmm9[1],xmm8[1],xmm9[2],xmm8[2],xmm9[3],xmm8[3]8545; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Reload8546; AVX-NEXT: vpsrld $16, %xmm9, %xmm98547; AVX-NEXT: vpshufhw {{.*#+}} xmm10 = xmm15[0,1,2,3,4,5,5,7]8548; AVX-NEXT: vpunpckhqdq {{.*#+}} xmm9 = xmm10[1],xmm9[1]8549; AVX-NEXT: vpblendw {{.*#+}} xmm8 = xmm8[0,1],xmm9[2,3,4,5,6,7]8550; AVX-NEXT: vandnps %ymm6, %ymm5, %ymm68551; AVX-NEXT: vandps %ymm5, %ymm8, %ymm58552; AVX-NEXT: vorps %ymm6, %ymm5, %ymm58553; AVX-NEXT: vpshufb %xmm0, %xmm7, %xmm08554; AVX-NEXT: vpsrld $16, %xmm1, %xmm68555; AVX-NEXT: vpshufhw {{.*#+}} xmm1 = xmm14[0,1,2,3,4,5,5,7]8556; AVX-NEXT: vpunpckhqdq {{.*#+}} xmm1 = xmm1[1],xmm6[1]8557; AVX-NEXT: vpblendw {{.*#+}} xmm0 = xmm1[0,1,2,3,4],xmm0[5,6,7]8558; AVX-NEXT: vinsertf128 $1, %xmm0, %ymm0, %ymm08559; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm5[0,1,2,3,4],ymm0[5,6,7]8560; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload8561; AVX-NEXT: vmovaps %ymm1, 96(%rsi)8562; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload8563; AVX-NEXT: vmovaps %ymm1, 32(%rsi)8564; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload8565; AVX-NEXT: vmovaps %ymm1, 64(%rsi)8566; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload8567; AVX-NEXT: vmovaps %ymm1, (%rsi)8568; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload8569; AVX-NEXT: vmovaps %ymm1, 96(%rdx)8570; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload8571; AVX-NEXT: vmovaps %ymm1, 32(%rdx)8572; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload8573; AVX-NEXT: vmovaps %ymm1, 64(%rdx)8574; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload8575; AVX-NEXT: vmovaps %ymm1, (%rdx)8576; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload8577; AVX-NEXT: vmovaps %ymm1, 32(%rcx)8578; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload8579; AVX-NEXT: vmovaps %ymm1, 96(%rcx)8580; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload8581; AVX-NEXT: vmovaps %ymm1, 64(%rcx)8582; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload8583; AVX-NEXT: vmovaps %ymm1, (%rcx)8584; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload8585; AVX-NEXT: vmovaps %ymm1, 96(%r8)8586; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload8587; AVX-NEXT: vmovaps %ymm1, 32(%r8)8588; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload8589; AVX-NEXT: vmovaps %ymm1, 64(%r8)8590; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload8591; AVX-NEXT: vmovaps %ymm1, (%r8)8592; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload8593; AVX-NEXT: vmovaps %ymm1, 96(%r9)8594; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload8595; AVX-NEXT: vmovaps %ymm1, 32(%r9)8596; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload8597; AVX-NEXT: vmovaps %ymm1, (%r9)8598; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload8599; AVX-NEXT: vmovaps %ymm1, 64(%r9)8600; AVX-NEXT: movq {{[0-9]+}}(%rsp), %rax8601; AVX-NEXT: vmovaps %ymm0, 96(%rax)8602; AVX-NEXT: vmovaps %ymm4, 32(%rax)8603; AVX-NEXT: vmovaps %ymm2, 64(%rax)8604; AVX-NEXT: vmovaps %ymm3, (%rax)8605; AVX-NEXT: addq $1368, %rsp # imm = 0x5588606; AVX-NEXT: vzeroupper8607; AVX-NEXT: retq8608;8609; AVX2-LABEL: load_i16_stride6_vf64:8610; AVX2: # %bb.0:8611; AVX2-NEXT: subq $1272, %rsp # imm = 0x4F88612; AVX2-NEXT: vmovdqa 64(%rdi), %ymm08613; AVX2-NEXT: vmovdqa 96(%rdi), %ymm18614; AVX2-NEXT: vmovaps 672(%rdi), %ymm28615; AVX2-NEXT: vmovaps 640(%rdi), %ymm38616; AVX2-NEXT: vmovdqa 288(%rdi), %ymm48617; AVX2-NEXT: vmovdqa 256(%rdi), %ymm58618; AVX2-NEXT: vmovdqa 416(%rdi), %ymm88619; AVX2-NEXT: vmovdqu %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8620; AVX2-NEXT: vmovdqa 384(%rdi), %ymm98621; AVX2-NEXT: vmovdqu %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8622; AVX2-NEXT: vmovdqa 480(%rdi), %ymm68623; AVX2-NEXT: vmovdqa 448(%rdi), %ymm78624; AVX2-NEXT: vperm2i128 {{.*#+}} ymm10 = ymm7[2,3],ymm6[2,3]8625; AVX2-NEXT: vmovdqu %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8626; AVX2-NEXT: vperm2i128 {{.*#+}} ymm7 = ymm7[0,1],ymm6[0,1]8627; AVX2-NEXT: vmovdqu %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8628; AVX2-NEXT: vperm2i128 {{.*#+}} ymm13 = ymm5[2,3],ymm4[2,3]8629; AVX2-NEXT: vmovdqu %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8630; AVX2-NEXT: vperm2i128 {{.*#+}} ymm15 = ymm5[0,1],ymm4[0,1]8631; AVX2-NEXT: vperm2f128 {{.*#+}} ymm4 = ymm3[2,3],ymm2[2,3]8632; AVX2-NEXT: vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8633; AVX2-NEXT: vperm2f128 {{.*#+}} ymm2 = ymm3[0,1],ymm2[0,1]8634; AVX2-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8635; AVX2-NEXT: vperm2i128 {{.*#+}} ymm12 = ymm0[2,3],ymm1[2,3]8636; AVX2-NEXT: vmovdqu %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8637; AVX2-NEXT: vperm2i128 {{.*#+}} ymm14 = ymm0[0,1],ymm1[0,1]8638; AVX2-NEXT: vmovdqu %ymm14, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8639; AVX2-NEXT: vmovdqa {{.*#+}} ymm2 = [8,9,4,5,4,5,6,7,0,1,4,5,0,1,12,13,24,25,20,21,20,21,22,23,16,17,20,21,16,17,28,29]8640; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm8[0,1],ymm9[2],ymm8[3,4],ymm9[5],ymm8[6,7]8641; AVX2-NEXT: vmovdqa {{.*#+}} xmm6 = [8,9,u,u,0,1,12,13,u,u,12,13,12,13,14,15]8642; AVX2-NEXT: vpshufb %xmm6, %xmm1, %xmm08643; AVX2-NEXT: vextracti128 $1, %ymm1, %xmm58644; AVX2-NEXT: vpshuflw {{.*#+}} xmm3 = xmm5[2,2,2,2,4,5,6,7]8645; AVX2-NEXT: vpblendw {{.*#+}} xmm3 = xmm0[0],xmm3[1],xmm0[2,3],xmm3[4],xmm0[5,6,7]8646; AVX2-NEXT: vpblendd {{.*#+}} ymm4 = ymm10[0],ymm7[1],ymm10[2,3,4,5],ymm7[6],ymm10[7]8647; AVX2-NEXT: vpshufb %ymm2, %ymm4, %ymm78648; AVX2-NEXT: vpmovsxbw {{.*#+}} xmm0 = [65535,65535,65535,65535,65535,0,0,0]8649; AVX2-NEXT: vpblendvb %ymm0, %ymm3, %ymm7, %ymm38650; AVX2-NEXT: vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8651; AVX2-NEXT: vmovdqa (%rdi), %ymm38652; AVX2-NEXT: vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8653; AVX2-NEXT: vmovdqa 32(%rdi), %ymm78654; AVX2-NEXT: vmovdqu %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8655; AVX2-NEXT: vpblendd {{.*#+}} ymm9 = ymm7[0,1],ymm3[2],ymm7[3,4],ymm3[5],ymm7[6,7]8656; AVX2-NEXT: vpshufb %xmm6, %xmm9, %xmm38657; AVX2-NEXT: vextracti128 $1, %ymm9, %xmm118658; AVX2-NEXT: vpshuflw {{.*#+}} xmm7 = xmm11[2,2,2,2,4,5,6,7]8659; AVX2-NEXT: vpblendw {{.*#+}} xmm3 = xmm3[0],xmm7[1],xmm3[2,3],xmm7[4],xmm3[5,6,7]8660; AVX2-NEXT: vpblendd {{.*#+}} ymm10 = ymm12[0],ymm14[1],ymm12[2,3,4,5],ymm14[6],ymm12[7]8661; AVX2-NEXT: vpshufb %ymm2, %ymm10, %ymm78662; AVX2-NEXT: vpblendvb %ymm0, %ymm3, %ymm7, %ymm38663; AVX2-NEXT: vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8664; AVX2-NEXT: vmovdqa 224(%rdi), %ymm78665; AVX2-NEXT: vmovdqu %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8666; AVX2-NEXT: vmovdqa 192(%rdi), %ymm38667; AVX2-NEXT: vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8668; AVX2-NEXT: vpblendd {{.*#+}} ymm3 = ymm7[0,1],ymm3[2],ymm7[3,4],ymm3[5],ymm7[6,7]8669; AVX2-NEXT: vpshufb %xmm6, %xmm3, %xmm78670; AVX2-NEXT: vextracti128 $1, %ymm3, %xmm88671; AVX2-NEXT: vpshuflw {{.*#+}} xmm12 = xmm8[2,2,2,2,4,5,6,7]8672; AVX2-NEXT: vpblendw {{.*#+}} xmm12 = xmm7[0],xmm12[1],xmm7[2,3],xmm12[4],xmm7[5,6,7]8673; AVX2-NEXT: vmovdqu %ymm15, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8674; AVX2-NEXT: vpblendd {{.*#+}} ymm7 = ymm13[0],ymm15[1],ymm13[2,3,4,5],ymm15[6],ymm13[7]8675; AVX2-NEXT: vpshufb %ymm2, %ymm7, %ymm138676; AVX2-NEXT: vpblendvb %ymm0, %ymm12, %ymm13, %ymm128677; AVX2-NEXT: vmovdqu %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8678; AVX2-NEXT: vmovdqa 608(%rdi), %ymm138679; AVX2-NEXT: vmovdqu %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8680; AVX2-NEXT: vmovdqa 576(%rdi), %ymm128681; AVX2-NEXT: vmovdqu %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8682; AVX2-NEXT: vpblendd {{.*#+}} ymm12 = ymm13[0,1],ymm12[2],ymm13[3,4],ymm12[5],ymm13[6,7]8683; AVX2-NEXT: vpshufb %xmm6, %xmm12, %xmm138684; AVX2-NEXT: vextracti128 $1, %ymm12, %xmm68685; AVX2-NEXT: vpshuflw {{.*#+}} xmm14 = xmm6[2,2,2,2,4,5,6,7]8686; AVX2-NEXT: vpblendw {{.*#+}} xmm14 = xmm13[0],xmm14[1],xmm13[2,3],xmm14[4],xmm13[5,6,7]8687; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm13 # 32-byte Reload8688; AVX2-NEXT: vpblendd $189, {{[-0-9]+}}(%r{{[sb]}}p), %ymm13, %ymm13 # 32-byte Folded Reload8689; AVX2-NEXT: # ymm13 = mem[0],ymm13[1],mem[2,3,4,5],ymm13[6],mem[7]8690; AVX2-NEXT: vpshufb %ymm2, %ymm13, %ymm28691; AVX2-NEXT: vpblendvb %ymm0, %ymm14, %ymm2, %ymm28692; AVX2-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8693; AVX2-NEXT: vmovdqa {{.*#+}} xmm2 = [10,11,u,u,2,3,14,15,u,u,10,11,12,13,14,15]8694; AVX2-NEXT: vpshufb %xmm2, %xmm9, %xmm98695; AVX2-NEXT: vpshufd {{.*#+}} xmm11 = xmm11[1,1,2,3]8696; AVX2-NEXT: vpshufhw {{.*#+}} xmm11 = xmm11[0,1,2,3,5,5,5,5]8697; AVX2-NEXT: vpblendw {{.*#+}} xmm11 = xmm9[0],xmm11[1],xmm9[2,3],xmm11[4],xmm9[5,6,7]8698; AVX2-NEXT: vmovdqa {{.*#+}} ymm9 = [10,11,6,7,4,5,6,7,6,7,6,7,2,3,14,15,26,27,22,23,20,21,22,23,22,23,22,23,18,19,30,31]8699; AVX2-NEXT: vpshufb %ymm9, %ymm10, %ymm108700; AVX2-NEXT: vpblendvb %ymm0, %ymm11, %ymm10, %ymm108701; AVX2-NEXT: vmovdqu %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8702; AVX2-NEXT: vpshufb %xmm2, %xmm1, %xmm18703; AVX2-NEXT: vpshufd {{.*#+}} xmm5 = xmm5[1,1,2,3]8704; AVX2-NEXT: vpshufhw {{.*#+}} xmm5 = xmm5[0,1,2,3,5,5,5,5]8705; AVX2-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0],xmm5[1],xmm1[2,3],xmm5[4],xmm1[5,6,7]8706; AVX2-NEXT: vpshufb %ymm9, %ymm4, %ymm48707; AVX2-NEXT: vpblendvb %ymm0, %ymm1, %ymm4, %ymm18708; AVX2-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8709; AVX2-NEXT: vpshufb %xmm2, %xmm3, %xmm18710; AVX2-NEXT: vpshufd {{.*#+}} xmm3 = xmm8[1,1,2,3]8711; AVX2-NEXT: vpshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,5,5,5,5]8712; AVX2-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0],xmm3[1],xmm1[2,3],xmm3[4],xmm1[5,6,7]8713; AVX2-NEXT: vpshufb %ymm9, %ymm7, %ymm38714; AVX2-NEXT: vpblendvb %ymm0, %ymm1, %ymm3, %ymm18715; AVX2-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8716; AVX2-NEXT: vpshufb %ymm9, %ymm13, %ymm18717; AVX2-NEXT: vpshufb %xmm2, %xmm12, %xmm28718; AVX2-NEXT: vpshufd {{.*#+}} xmm3 = xmm6[1,1,2,3]8719; AVX2-NEXT: vpshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,5,5,5,5]8720; AVX2-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0],xmm3[1],xmm2[2,3],xmm3[4],xmm2[5,6,7]8721; AVX2-NEXT: vpblendvb %ymm0, %ymm2, %ymm1, %ymm08722; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8723; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload8724; AVX2-NEXT: vpblendd $109, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm5 # 32-byte Folded Reload8725; AVX2-NEXT: # ymm5 = mem[0],ymm0[1],mem[2,3],ymm0[4],mem[5,6],ymm0[7]8726; AVX2-NEXT: vextracti128 $1, %ymm5, %xmm08727; AVX2-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8728; AVX2-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[0,2,0,3]8729; AVX2-NEXT: vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,6,6,7]8730; AVX2-NEXT: vmovdqa {{.*#+}} xmm10 = [0,1,12,13,u,u,4,5,u,u,u,u,12,13,14,15]8731; AVX2-NEXT: vpshufb %xmm10, %xmm5, %xmm18732; AVX2-NEXT: vpblendw {{.*#+}} xmm0 = xmm1[0,1],xmm0[2],xmm1[3],xmm0[4,5],xmm1[6,7]8733; AVX2-NEXT: vmovdqa {{.*#+}} ymm13 = [u,u,u,u,u,u,u,u,u,u,u,u,8,9,4,5,16,17,28,29,24,25,28,29,24,25,28,29,24,25,20,21]8734; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload8735; AVX2-NEXT: vpblendd $189, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload8736; AVX2-NEXT: # ymm1 = mem[0],ymm1[1],mem[2,3,4,5],ymm1[6],mem[7]8737; AVX2-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8738; AVX2-NEXT: vpshufb %ymm13, %ymm1, %ymm18739; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4,5,6,7]8740; AVX2-NEXT: vmovdqa 544(%rdi), %ymm18741; AVX2-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8742; AVX2-NEXT: vmovdqa 512(%rdi), %ymm28743; AVX2-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8744; AVX2-NEXT: vpblendd {{.*#+}} ymm7 = ymm2[0,1],ymm1[2],ymm2[3,4],ymm1[5],ymm2[6,7]8745; AVX2-NEXT: vpshuflw {{.*#+}} xmm1 = xmm7[2,2,2,2,4,5,6,7]8746; AVX2-NEXT: vextracti128 $1, %ymm7, %xmm28747; AVX2-NEXT: vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8748; AVX2-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0,1,2],xmm1[3,4],xmm2[5,6,7]8749; AVX2-NEXT: vmovdqa {{.*#+}} xmm1 = [0,1,4,5,4,5,6,7,0,1,12,13,8,9,4,5]8750; AVX2-NEXT: vpshufb %xmm1, %xmm2, %xmm28751; AVX2-NEXT: vinserti128 $1, %xmm2, %ymm0, %ymm28752; AVX2-NEXT: vpblendw {{.*#+}} ymm2 = ymm0[0,1,2],ymm2[3,4,5,6,7],ymm0[8,9,10],ymm2[11,12,13,14,15]8753; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm2[4,5,6,7]8754; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8755; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload8756; AVX2-NEXT: vpblendd $109, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm6 # 32-byte Folded Reload8757; AVX2-NEXT: # ymm6 = mem[0],ymm0[1],mem[2,3],ymm0[4],mem[5,6],ymm0[7]8758; AVX2-NEXT: vextracti128 $1, %ymm6, %xmm08759; AVX2-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8760; AVX2-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[0,2,0,3]8761; AVX2-NEXT: vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,6,6,7]8762; AVX2-NEXT: vpshufb %xmm10, %xmm6, %xmm28763; AVX2-NEXT: vpblendw {{.*#+}} xmm0 = xmm2[0,1],xmm0[2],xmm2[3],xmm0[4,5],xmm2[6,7]8764; AVX2-NEXT: vpblendd $66, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm2 # 32-byte Folded Reload8765; AVX2-NEXT: # ymm2 = ymm15[0],mem[1],ymm15[2,3,4,5],mem[6],ymm15[7]8766; AVX2-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8767; AVX2-NEXT: vpshufb %ymm13, %ymm2, %ymm28768; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2],ymm2[3,4,5,6,7]8769; AVX2-NEXT: vmovdqa 352(%rdi), %ymm28770; AVX2-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8771; AVX2-NEXT: vmovdqa 320(%rdi), %ymm38772; AVX2-NEXT: vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8773; AVX2-NEXT: vpblendd {{.*#+}} ymm4 = ymm3[0,1],ymm2[2],ymm3[3,4],ymm2[5],ymm3[6,7]8774; AVX2-NEXT: vpshuflw {{.*#+}} xmm2 = xmm4[2,2,2,2,4,5,6,7]8775; AVX2-NEXT: vextracti128 $1, %ymm4, %xmm38776; AVX2-NEXT: vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8777; AVX2-NEXT: vpblendw {{.*#+}} xmm2 = xmm3[0,1,2],xmm2[3,4],xmm3[5,6,7]8778; AVX2-NEXT: vpshufb %xmm1, %xmm2, %xmm28779; AVX2-NEXT: vinserti128 $1, %xmm2, %ymm0, %ymm28780; AVX2-NEXT: vpblendw {{.*#+}} ymm2 = ymm0[0,1,2],ymm2[3,4,5,6,7],ymm0[8,9,10],ymm2[11,12,13,14,15]8781; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm2[4,5,6,7]8782; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8783; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload8784; AVX2-NEXT: vpblendd $109, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm3 # 32-byte Folded Reload8785; AVX2-NEXT: # ymm3 = mem[0],ymm0[1],mem[2,3],ymm0[4],mem[5,6],ymm0[7]8786; AVX2-NEXT: vextracti128 $1, %ymm3, %xmm148787; AVX2-NEXT: vpshufd {{.*#+}} xmm0 = xmm14[0,2,0,3]8788; AVX2-NEXT: vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,6,6,7]8789; AVX2-NEXT: vpshufb %xmm10, %xmm3, %xmm28790; AVX2-NEXT: vpblendw {{.*#+}} xmm0 = xmm2[0,1],xmm0[2],xmm2[3],xmm0[4,5],xmm2[6,7]8791; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload8792; AVX2-NEXT: vpblendd $66, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload8793; AVX2-NEXT: # ymm2 = ymm2[0],mem[1],ymm2[2,3,4,5],mem[6],ymm2[7]8794; AVX2-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8795; AVX2-NEXT: vpshufb %ymm13, %ymm2, %ymm28796; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2],ymm2[3,4,5,6,7]8797; AVX2-NEXT: vmovdqa 736(%rdi), %ymm88798; AVX2-NEXT: vmovdqu %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8799; AVX2-NEXT: vmovdqa 704(%rdi), %ymm28800; AVX2-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8801; AVX2-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1],ymm8[2],ymm2[3,4],ymm8[5],ymm2[6,7]8802; AVX2-NEXT: vpshuflw {{.*#+}} xmm8 = xmm2[2,2,2,2,4,5,6,7]8803; AVX2-NEXT: vextracti128 $1, %ymm2, %xmm128804; AVX2-NEXT: vpblendw {{.*#+}} xmm8 = xmm12[0,1,2],xmm8[3,4],xmm12[5,6,7]8805; AVX2-NEXT: vpshufb %xmm1, %xmm8, %xmm88806; AVX2-NEXT: vinserti128 $1, %xmm8, %ymm0, %ymm88807; AVX2-NEXT: vpblendw {{.*#+}} ymm8 = ymm0[0,1,2],ymm8[3,4,5,6,7],ymm0[8,9,10],ymm8[11,12,13,14,15]8808; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm8[4,5,6,7]8809; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8810; AVX2-NEXT: vmovdqa 160(%rdi), %ymm88811; AVX2-NEXT: vmovdqu %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8812; AVX2-NEXT: vmovdqa 128(%rdi), %ymm08813; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8814; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1],ymm8[2],ymm0[3,4],ymm8[5],ymm0[6,7]8815; AVX2-NEXT: vpshuflw {{.*#+}} xmm8 = xmm0[2,2,2,2,4,5,6,7]8816; AVX2-NEXT: vextracti128 $1, %ymm0, %xmm118817; AVX2-NEXT: vpblendw {{.*#+}} xmm8 = xmm11[0,1,2],xmm8[3,4],xmm11[5,6,7]8818; AVX2-NEXT: vpshufb %xmm1, %xmm8, %xmm98819; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload8820; AVX2-NEXT: vpblendd $146, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload8821; AVX2-NEXT: # ymm1 = ymm1[0],mem[1],ymm1[2,3],mem[4],ymm1[5,6],mem[7]8822; AVX2-NEXT: vpshufb %xmm10, %xmm1, %xmm88823; AVX2-NEXT: vextracti128 $1, %ymm1, %xmm108824; AVX2-NEXT: vpshufd {{.*#+}} xmm15 = xmm10[0,2,0,3]8825; AVX2-NEXT: vpshufhw {{.*#+}} xmm15 = xmm15[0,1,2,3,4,6,6,7]8826; AVX2-NEXT: vpblendw {{.*#+}} xmm15 = xmm8[0,1],xmm15[2],xmm8[3],xmm15[4,5],xmm8[6,7]8827; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload8828; AVX2-NEXT: vpblendd $189, {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm8 # 32-byte Folded Reload8829; AVX2-NEXT: # ymm8 = mem[0],ymm8[1],mem[2,3,4,5],ymm8[6],mem[7]8830; AVX2-NEXT: vpshufb %ymm13, %ymm8, %ymm138831; AVX2-NEXT: vpblendd {{.*#+}} ymm13 = ymm15[0,1,2],ymm13[3,4,5,6,7]8832; AVX2-NEXT: vinserti128 $1, %xmm9, %ymm0, %ymm98833; AVX2-NEXT: vpblendw {{.*#+}} ymm9 = ymm13[0,1,2],ymm9[3,4,5,6,7],ymm13[8,9,10],ymm9[11,12,13,14,15]8834; AVX2-NEXT: vpblendd {{.*#+}} ymm9 = ymm13[0,1,2,3],ymm9[4,5,6,7]8835; AVX2-NEXT: vmovdqu %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8836; AVX2-NEXT: vpshufd $198, {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Folded Reload8837; AVX2-NEXT: # xmm9 = mem[2,1,0,3]8838; AVX2-NEXT: vpshuflw {{.*#+}} xmm9 = xmm9[1,1,1,1,4,5,6,7]8839; AVX2-NEXT: vpshuflw {{.*#+}} xmm5 = xmm5[3,1,2,3,4,5,6,7]8840; AVX2-NEXT: vpshufd {{.*#+}} xmm5 = xmm5[0,3,2,3]8841; AVX2-NEXT: vpblendw {{.*#+}} xmm5 = xmm5[0,1],xmm9[2],xmm5[3,4],xmm9[5],xmm5[6],xmm9[7]8842; AVX2-NEXT: vmovdqa {{.*#+}} ymm9 = [u,u,u,u,u,u,u,u,u,u,u,u,10,11,6,7,18,19,30,31,26,27,26,27,30,31,26,27,26,27,22,23]8843; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm13 # 32-byte Reload8844; AVX2-NEXT: vpshufb %ymm9, %ymm13, %ymm138845; AVX2-NEXT: vpshuflw {{.*#+}} xmm5 = xmm5[1,3,2,0,4,5,6,7]8846; AVX2-NEXT: vpshufhw {{.*#+}} xmm5 = xmm5[0,1,2,3,5,7,6,7]8847; AVX2-NEXT: vpblendd {{.*#+}} ymm13 = ymm5[0,1,2],ymm13[3,4,5,6,7]8848; AVX2-NEXT: vmovdqa {{.*#+}} xmm5 = [6,7,2,3,4,5,u,u,2,3,14,15,u,u,6,7]8849; AVX2-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload8850; AVX2-NEXT: vpshufb %xmm5, %xmm15, %xmm158851; AVX2-NEXT: vpshufhw {{.*#+}} xmm7 = xmm7[0,1,2,3,5,5,5,5]8852; AVX2-NEXT: vpblendw {{.*#+}} xmm7 = xmm15[0,1,2],xmm7[3],xmm15[4,5],xmm7[6],xmm15[7]8853; AVX2-NEXT: vinserti128 $1, %xmm7, %ymm0, %ymm78854; AVX2-NEXT: vpblendw {{.*#+}} ymm7 = ymm13[0,1,2],ymm7[3,4,5,6,7],ymm13[8,9,10],ymm7[11,12,13,14,15]8855; AVX2-NEXT: vpblendd {{.*#+}} ymm7 = ymm13[0,1,2,3],ymm7[4,5,6,7]8856; AVX2-NEXT: vmovdqu %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8857; AVX2-NEXT: vpshufd $198, {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Folded Reload8858; AVX2-NEXT: # xmm7 = mem[2,1,0,3]8859; AVX2-NEXT: vpshuflw {{.*#+}} xmm7 = xmm7[1,1,1,1,4,5,6,7]8860; AVX2-NEXT: vpshuflw {{.*#+}} xmm6 = xmm6[3,1,2,3,4,5,6,7]8861; AVX2-NEXT: vpshufd {{.*#+}} xmm6 = xmm6[0,3,2,3]8862; AVX2-NEXT: vpblendw {{.*#+}} xmm6 = xmm6[0,1],xmm7[2],xmm6[3,4],xmm7[5],xmm6[6],xmm7[7]8863; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload8864; AVX2-NEXT: vpshufb %ymm9, %ymm7, %ymm78865; AVX2-NEXT: vpshuflw {{.*#+}} xmm6 = xmm6[1,3,2,0,4,5,6,7]8866; AVX2-NEXT: vpshufhw {{.*#+}} xmm6 = xmm6[0,1,2,3,5,7,6,7]8867; AVX2-NEXT: vpblendd {{.*#+}} ymm6 = ymm6[0,1,2],ymm7[3,4,5,6,7]8868; AVX2-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload8869; AVX2-NEXT: vpshufb %xmm5, %xmm7, %xmm78870; AVX2-NEXT: vpshufhw {{.*#+}} xmm4 = xmm4[0,1,2,3,5,5,5,5]8871; AVX2-NEXT: vpblendw {{.*#+}} xmm4 = xmm7[0,1,2],xmm4[3],xmm7[4,5],xmm4[6],xmm7[7]8872; AVX2-NEXT: vinserti128 $1, %xmm4, %ymm0, %ymm48873; AVX2-NEXT: vpblendw {{.*#+}} ymm4 = ymm6[0,1,2],ymm4[3,4,5,6,7],ymm6[8,9,10],ymm4[11,12,13,14,15]8874; AVX2-NEXT: vpblendd {{.*#+}} ymm4 = ymm6[0,1,2,3],ymm4[4,5,6,7]8875; AVX2-NEXT: vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8876; AVX2-NEXT: vpshufd {{.*#+}} xmm4 = xmm14[2,1,0,3]8877; AVX2-NEXT: vpshuflw {{.*#+}} xmm4 = xmm4[1,1,1,1,4,5,6,7]8878; AVX2-NEXT: vpshuflw {{.*#+}} xmm3 = xmm3[3,1,2,3,4,5,6,7]8879; AVX2-NEXT: vpshufd {{.*#+}} xmm3 = xmm3[0,3,2,3]8880; AVX2-NEXT: vpblendw {{.*#+}} xmm3 = xmm3[0,1],xmm4[2],xmm3[3,4],xmm4[5],xmm3[6],xmm4[7]8881; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload8882; AVX2-NEXT: vpshufb %ymm9, %ymm4, %ymm48883; AVX2-NEXT: vpshuflw {{.*#+}} xmm3 = xmm3[1,3,2,0,4,5,6,7]8884; AVX2-NEXT: vpshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,5,7,6,7]8885; AVX2-NEXT: vpblendd {{.*#+}} ymm3 = ymm3[0,1,2],ymm4[3,4,5,6,7]8886; AVX2-NEXT: vpshufb %xmm5, %xmm12, %xmm48887; AVX2-NEXT: vpshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,5,5,5,5]8888; AVX2-NEXT: vpblendw {{.*#+}} xmm2 = xmm4[0,1,2],xmm2[3],xmm4[4,5],xmm2[6],xmm4[7]8889; AVX2-NEXT: vinserti128 $1, %xmm2, %ymm0, %ymm28890; AVX2-NEXT: vpblendw {{.*#+}} ymm2 = ymm3[0,1,2],ymm2[3,4,5,6,7],ymm3[8,9,10],ymm2[11,12,13,14,15]8891; AVX2-NEXT: vpblendd {{.*#+}} ymm2 = ymm3[0,1,2,3],ymm2[4,5,6,7]8892; AVX2-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8893; AVX2-NEXT: vpshufb %xmm5, %xmm11, %xmm28894; AVX2-NEXT: vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,5,5,5,5]8895; AVX2-NEXT: vpblendw {{.*#+}} xmm0 = xmm2[0,1,2],xmm0[3],xmm2[4,5],xmm0[6],xmm2[7]8896; AVX2-NEXT: vpshufb %ymm9, %ymm8, %ymm28897; AVX2-NEXT: vpshufd {{.*#+}} xmm3 = xmm10[2,1,0,3]8898; AVX2-NEXT: vpshuflw {{.*#+}} xmm3 = xmm3[1,1,1,1,4,5,6,7]8899; AVX2-NEXT: vpshuflw {{.*#+}} xmm1 = xmm1[3,1,2,3,4,5,6,7]8900; AVX2-NEXT: vpshufd {{.*#+}} xmm1 = xmm1[0,3,2,3]8901; AVX2-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1],xmm3[2],xmm1[3,4],xmm3[5],xmm1[6],xmm3[7]8902; AVX2-NEXT: vpshuflw {{.*#+}} xmm1 = xmm1[1,3,2,0,4,5,6,7]8903; AVX2-NEXT: vpshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,5,7,6,7]8904; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2],ymm2[3,4,5,6,7]8905; AVX2-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm08906; AVX2-NEXT: vpblendw {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3,4,5,6,7],ymm1[8,9,10],ymm0[11,12,13,14,15]8907; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]8908; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8909; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload8910; AVX2-NEXT: vpblendd $107, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm3 # 32-byte Folded Reload8911; AVX2-NEXT: # ymm3 = mem[0,1],ymm0[2],mem[3],ymm0[4],mem[5,6],ymm0[7]8912; AVX2-NEXT: vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8913; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload8914; AVX2-NEXT: vpblendd $36, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload8915; AVX2-NEXT: # ymm0 = ymm0[0,1],mem[2],ymm0[3,4],mem[5],ymm0[6,7]8916; AVX2-NEXT: vextracti128 $1, %ymm0, %xmm18917; AVX2-NEXT: vpshufd {{.*#+}} xmm1 = xmm1[0,1,2,1]8918; AVX2-NEXT: vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8919; AVX2-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[2,1,0,3]8920; AVX2-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8921; AVX2-NEXT: vpshuflw {{.*#+}} xmm0 = xmm0[0,0,0,0,4,5,6,7]8922; AVX2-NEXT: vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,4,6,7]8923; AVX2-NEXT: vpshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,6,5,6,4]8924; AVX2-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2,3],xmm1[4],xmm0[5,6],xmm1[7]8925; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload8926; AVX2-NEXT: vpblendd $219, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload8927; AVX2-NEXT: # ymm1 = mem[0,1],ymm1[2],mem[3,4],ymm1[5],mem[6,7]8928; AVX2-NEXT: vpshufd {{.*#+}} xmm7 = xmm1[2,1,2,3]8929; AVX2-NEXT: vextracti128 $1, %ymm1, %xmm18930; AVX2-NEXT: vpshufd {{.*#+}} xmm6 = xmm1[0,3,2,1]8931; AVX2-NEXT: vpshuflw {{.*#+}} xmm1 = xmm6[0,0,2,3,4,5,6,7]8932; AVX2-NEXT: vpshufd {{.*#+}} xmm1 = xmm1[0,1,3,3]8933; AVX2-NEXT: vpshuflw {{.*#+}} xmm2 = xmm7[2,1,2,0,4,5,6,7]8934; AVX2-NEXT: vpblendw {{.*#+}} xmm1 = xmm2[0],xmm1[1,2],xmm2[3],xmm1[4,5,6,7]8935; AVX2-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm08936; AVX2-NEXT: vmovdqa {{.*#+}} ymm8 = [4,5,0,1,12,13,14,15,8,9,12,13,0,1,u,u,20,21,16,17,28,29,30,31,24,25,28,29,16,17,u,u]8937; AVX2-NEXT: vpshufb %ymm8, %ymm3, %ymm28938; AVX2-NEXT: vpblendw {{.*#+}} ymm0 = ymm2[0,1,2],ymm0[3,4,5,6,7],ymm2[8,9,10],ymm0[11,12,13,14,15]8939; AVX2-NEXT: vpshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,6,5,4]8940; AVX2-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1,2,3,4],xmm2[5,6,7]8941; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]8942; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8943; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload8944; AVX2-NEXT: vpblendd $148, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm3 # 32-byte Folded Reload8945; AVX2-NEXT: # ymm3 = ymm0[0,1],mem[2],ymm0[3],mem[4],ymm0[5,6],mem[7]8946; AVX2-NEXT: vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8947; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload8948; AVX2-NEXT: vpblendd $36, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload8949; AVX2-NEXT: # ymm0 = ymm0[0,1],mem[2],ymm0[3,4],mem[5],ymm0[6,7]8950; AVX2-NEXT: vextracti128 $1, %ymm0, %xmm18951; AVX2-NEXT: vpshufd {{.*#+}} xmm1 = xmm1[0,1,2,1]8952; AVX2-NEXT: vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8953; AVX2-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[2,1,0,3]8954; AVX2-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8955; AVX2-NEXT: vpshuflw {{.*#+}} xmm0 = xmm0[0,0,0,0,4,5,6,7]8956; AVX2-NEXT: vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,4,6,7]8957; AVX2-NEXT: vpshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,6,5,6,4]8958; AVX2-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2,3],xmm1[4],xmm0[5,6],xmm1[7]8959; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload8960; AVX2-NEXT: vpblendd $219, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload8961; AVX2-NEXT: # ymm1 = mem[0,1],ymm1[2],mem[3,4],ymm1[5],mem[6,7]8962; AVX2-NEXT: vpshufd {{.*#+}} xmm2 = xmm1[2,1,2,3]8963; AVX2-NEXT: vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8964; AVX2-NEXT: vextracti128 $1, %ymm1, %xmm18965; AVX2-NEXT: vpshufd {{.*#+}} xmm1 = xmm1[0,3,2,1]8966; AVX2-NEXT: vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8967; AVX2-NEXT: vpshuflw {{.*#+}} xmm1 = xmm1[0,0,2,3,4,5,6,7]8968; AVX2-NEXT: vpshufd {{.*#+}} xmm1 = xmm1[0,1,3,3]8969; AVX2-NEXT: vpshuflw {{.*#+}} xmm2 = xmm2[2,1,2,0,4,5,6,7]8970; AVX2-NEXT: vpblendw {{.*#+}} xmm1 = xmm2[0],xmm1[1,2],xmm2[3],xmm1[4,5,6,7]8971; AVX2-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm08972; AVX2-NEXT: vpshufb %ymm8, %ymm3, %ymm28973; AVX2-NEXT: vpblendw {{.*#+}} ymm0 = ymm2[0,1,2],ymm0[3,4,5,6,7],ymm2[8,9,10],ymm0[11,12,13,14,15]8974; AVX2-NEXT: vpshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,6,5,4]8975; AVX2-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1,2,3,4],xmm2[5,6,7]8976; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]8977; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8978; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload8979; AVX2-NEXT: vpblendd $107, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm9 # 32-byte Folded Reload8980; AVX2-NEXT: # ymm9 = mem[0,1],ymm0[2],mem[3],ymm0[4],mem[5,6],ymm0[7]8981; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload8982; AVX2-NEXT: vpblendd $36, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload8983; AVX2-NEXT: # ymm0 = ymm0[0,1],mem[2],ymm0[3,4],mem[5],ymm0[6,7]8984; AVX2-NEXT: vextracti128 $1, %ymm0, %xmm18985; AVX2-NEXT: vpshufd {{.*#+}} xmm5 = xmm1[0,1,2,1]8986; AVX2-NEXT: vpshufd {{.*#+}} xmm3 = xmm0[2,1,0,3]8987; AVX2-NEXT: vpshuflw {{.*#+}} xmm0 = xmm3[0,0,0,0,4,5,6,7]8988; AVX2-NEXT: vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,4,6,7]8989; AVX2-NEXT: vpshufhw {{.*#+}} xmm1 = xmm5[0,1,2,3,6,5,6,4]8990; AVX2-NEXT: vpblendw {{.*#+}} xmm4 = xmm0[0,1,2,3],xmm1[4],xmm0[5,6],xmm1[7]8991; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload8992; AVX2-NEXT: vpblendd $219, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload8993; AVX2-NEXT: # ymm0 = mem[0,1],ymm0[2],mem[3,4],ymm0[5],mem[6,7]8994; AVX2-NEXT: vpshufd {{.*#+}} xmm2 = xmm0[2,1,2,3]8995; AVX2-NEXT: vextracti128 $1, %ymm0, %xmm08996; AVX2-NEXT: vpshufd {{.*#+}} xmm1 = xmm0[0,3,2,1]8997; AVX2-NEXT: vpshuflw {{.*#+}} xmm12 = xmm1[0,0,2,3,4,5,6,7]8998; AVX2-NEXT: vpshufd {{.*#+}} xmm12 = xmm12[0,1,3,3]8999; AVX2-NEXT: vpshuflw {{.*#+}} xmm13 = xmm2[2,1,2,0,4,5,6,7]9000; AVX2-NEXT: vpblendw {{.*#+}} xmm12 = xmm13[0],xmm12[1,2],xmm13[3],xmm12[4,5,6,7]9001; AVX2-NEXT: vinserti128 $1, %xmm4, %ymm0, %ymm49002; AVX2-NEXT: vpshufb %ymm8, %ymm9, %ymm139003; AVX2-NEXT: vpblendw {{.*#+}} ymm4 = ymm13[0,1,2],ymm4[3,4,5,6,7],ymm13[8,9,10],ymm4[11,12,13,14,15]9004; AVX2-NEXT: vpshufhw {{.*#+}} xmm13 = xmm13[0,1,2,3,4,6,5,4]9005; AVX2-NEXT: vpblendw {{.*#+}} xmm12 = xmm12[0,1,2,3,4],xmm13[5,6,7]9006; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm12[0,1,2,3],ymm4[4,5,6,7]9007; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9008; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload9009; AVX2-NEXT: vpblendd $36, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm4 # 32-byte Folded Reload9010; AVX2-NEXT: # ymm4 = ymm0[0,1],mem[2],ymm0[3,4],mem[5],ymm0[6,7]9011; AVX2-NEXT: vextracti128 $1, %ymm4, %xmm129012; AVX2-NEXT: vpshufd {{.*#+}} xmm12 = xmm12[0,1,2,1]9013; AVX2-NEXT: vpshufd {{.*#+}} xmm14 = xmm4[2,1,0,3]9014; AVX2-NEXT: vpshuflw {{.*#+}} xmm4 = xmm14[0,0,0,0,4,5,6,7]9015; AVX2-NEXT: vpshufhw {{.*#+}} xmm4 = xmm4[0,1,2,3,4,4,6,7]9016; AVX2-NEXT: vpshufhw {{.*#+}} xmm13 = xmm12[0,1,2,3,6,5,6,4]9017; AVX2-NEXT: vpblendw {{.*#+}} xmm0 = xmm4[0,1,2,3],xmm13[4],xmm4[5,6],xmm13[7]9018; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload9019; AVX2-NEXT: vpblendd $107, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm15 # 32-byte Folded Reload9020; AVX2-NEXT: # ymm15 = mem[0,1],ymm4[2],mem[3],ymm4[4],mem[5,6],ymm4[7]9021; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload9022; AVX2-NEXT: vpblendd $36, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm4 # 32-byte Folded Reload9023; AVX2-NEXT: # ymm4 = ymm4[0,1],mem[2],ymm4[3,4],mem[5],ymm4[6,7]9024; AVX2-NEXT: vpshufd {{.*#+}} xmm13 = xmm4[2,1,2,3]9025; AVX2-NEXT: vextracti128 $1, %ymm4, %xmm49026; AVX2-NEXT: vpshufd {{.*#+}} xmm4 = xmm4[0,3,2,1]9027; AVX2-NEXT: vpshuflw {{.*#+}} xmm10 = xmm4[0,0,2,3,4,5,6,7]9028; AVX2-NEXT: vpshufd {{.*#+}} xmm10 = xmm10[0,1,3,3]9029; AVX2-NEXT: vpshuflw {{.*#+}} xmm11 = xmm13[2,1,2,0,4,5,6,7]9030; AVX2-NEXT: vpblendw {{.*#+}} xmm10 = xmm11[0],xmm10[1,2],xmm11[3],xmm10[4,5,6,7]9031; AVX2-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm09032; AVX2-NEXT: vpshufb %ymm8, %ymm15, %ymm89033; AVX2-NEXT: vpblendw {{.*#+}} ymm0 = ymm8[0,1,2],ymm0[3,4,5,6,7],ymm8[8,9,10],ymm0[11,12,13,14,15]9034; AVX2-NEXT: vpshufhw {{.*#+}} xmm8 = xmm8[0,1,2,3,4,6,5,4]9035; AVX2-NEXT: vpblendw {{.*#+}} xmm8 = xmm10[0,1,2,3,4],xmm8[5,6,7]9036; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm8[0,1,2,3],ymm0[4,5,6,7]9037; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9038; AVX2-NEXT: vpshufhw $103, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload9039; AVX2-NEXT: # xmm0 = mem[0,1,2,3,7,5,6,5]9040; AVX2-NEXT: vpshuflw $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Folded Reload9041; AVX2-NEXT: # xmm8 = mem[1,1,1,1,4,5,6,7]9042; AVX2-NEXT: vpshufhw {{.*#+}} xmm8 = xmm8[0,1,2,3,4,5,7,7]9043; AVX2-NEXT: vpblendw {{.*#+}} xmm0 = xmm8[0,1,2,3],xmm0[4],xmm8[5,6],xmm0[7]9044; AVX2-NEXT: vpshuflw {{.*#+}} xmm7 = xmm7[3,1,2,1,4,5,6,7]9045; AVX2-NEXT: vpshuflw {{.*#+}} xmm6 = xmm6[0,1,3,3,4,5,6,7]9046; AVX2-NEXT: vpshufhw {{.*#+}} xmm6 = xmm6[0,1,2,3,7,7,7,7]9047; AVX2-NEXT: vpblendw {{.*#+}} xmm6 = xmm7[0],xmm6[1,2],xmm7[3],xmm6[4,5,6,7]9048; AVX2-NEXT: vmovdqa {{.*#+}} ymm7 = [6,7,2,3,14,15,14,15,14,15,10,11,u,u,2,3,22,23,18,19,30,31,30,31,30,31,26,27,u,u,18,19]9049; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload9050; AVX2-NEXT: vpshufb %ymm7, %ymm8, %ymm89051; AVX2-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm09052; AVX2-NEXT: vpblendw {{.*#+}} ymm0 = ymm8[0,1,2],ymm0[3,4,5,6,7],ymm8[8,9,10],ymm0[11,12,13,14,15]9053; AVX2-NEXT: vpshufd {{.*#+}} xmm8 = xmm8[0,1,3,2]9054; AVX2-NEXT: vpblendw {{.*#+}} xmm6 = xmm6[0,1,2,3,4],xmm8[5,6,7]9055; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm6[0,1,2,3],ymm0[4,5,6,7]9056; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9057; AVX2-NEXT: vpshufhw {{.*#+}} xmm0 = xmm5[0,1,2,3,7,5,6,5]9058; AVX2-NEXT: vpshuflw {{.*#+}} xmm3 = xmm3[1,1,1,1,4,5,6,7]9059; AVX2-NEXT: vpshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,4,5,7,7]9060; AVX2-NEXT: vpblendw {{.*#+}} xmm0 = xmm3[0,1,2,3],xmm0[4],xmm3[5,6],xmm0[7]9061; AVX2-NEXT: vpshuflw {{.*#+}} xmm2 = xmm2[3,1,2,1,4,5,6,7]9062; AVX2-NEXT: vpshuflw {{.*#+}} xmm1 = xmm1[0,1,3,3,4,5,6,7]9063; AVX2-NEXT: vpshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,7,7,7,7]9064; AVX2-NEXT: vpblendw {{.*#+}} xmm1 = xmm2[0],xmm1[1,2],xmm2[3],xmm1[4,5,6,7]9065; AVX2-NEXT: vpshufb %ymm7, %ymm9, %ymm29066; AVX2-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm09067; AVX2-NEXT: vpblendw {{.*#+}} ymm0 = ymm2[0,1,2],ymm0[3,4,5,6,7],ymm2[8,9,10],ymm0[11,12,13,14,15]9068; AVX2-NEXT: vpshufd {{.*#+}} xmm2 = xmm2[0,1,3,2]9069; AVX2-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1,2,3,4],xmm2[5,6,7]9070; AVX2-NEXT: vpblendd {{.*#+}} ymm8 = ymm1[0,1,2,3],ymm0[4,5,6,7]9071; AVX2-NEXT: vpshufhw $103, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload9072; AVX2-NEXT: # xmm0 = mem[0,1,2,3,7,5,6,5]9073; AVX2-NEXT: vpshuflw $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload9074; AVX2-NEXT: # xmm1 = mem[1,1,1,1,4,5,6,7]9075; AVX2-NEXT: vpshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,5,7,7]9076; AVX2-NEXT: vpblendw {{.*#+}} xmm0 = xmm1[0,1,2,3],xmm0[4],xmm1[5,6],xmm0[7]9077; AVX2-NEXT: vpshuflw $103, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload9078; AVX2-NEXT: # xmm1 = mem[3,1,2,1,4,5,6,7]9079; AVX2-NEXT: vpshuflw $244, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload9080; AVX2-NEXT: # xmm2 = mem[0,1,3,3,4,5,6,7]9081; AVX2-NEXT: vpshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,7,7,7,7]9082; AVX2-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0],xmm2[1,2],xmm1[3],xmm2[4,5,6,7]9083; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload9084; AVX2-NEXT: vpshufb %ymm7, %ymm2, %ymm29085; AVX2-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm09086; AVX2-NEXT: vpblendw {{.*#+}} ymm0 = ymm2[0,1,2],ymm0[3,4,5,6,7],ymm2[8,9,10],ymm0[11,12,13,14,15]9087; AVX2-NEXT: vpshufd {{.*#+}} xmm2 = xmm2[0,1,3,2]9088; AVX2-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1,2,3,4],xmm2[5,6,7]9089; AVX2-NEXT: vpblendd {{.*#+}} ymm6 = ymm1[0,1,2,3],ymm0[4,5,6,7]9090; AVX2-NEXT: vpshufhw {{.*#+}} xmm0 = xmm12[0,1,2,3,7,5,6,5]9091; AVX2-NEXT: vpshuflw {{.*#+}} xmm1 = xmm14[1,1,1,1,4,5,6,7]9092; AVX2-NEXT: vpshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,5,7,7]9093; AVX2-NEXT: vpblendw {{.*#+}} xmm0 = xmm1[0,1,2,3],xmm0[4],xmm1[5,6],xmm0[7]9094; AVX2-NEXT: vpshufb %ymm7, %ymm15, %ymm19095; AVX2-NEXT: vpshuflw {{.*#+}} xmm2 = xmm13[3,1,2,1,4,5,6,7]9096; AVX2-NEXT: vpshuflw {{.*#+}} xmm3 = xmm4[0,1,3,3,4,5,6,7]9097; AVX2-NEXT: vpshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,7,7,7,7]9098; AVX2-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0],xmm3[1,2],xmm2[3],xmm3[4,5,6,7]9099; AVX2-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm09100; AVX2-NEXT: vpblendw {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3,4,5,6,7],ymm1[8,9,10],ymm0[11,12,13,14,15]9101; AVX2-NEXT: vpshufd {{.*#+}} xmm1 = xmm1[0,1,3,2]9102; AVX2-NEXT: vpblendw {{.*#+}} xmm1 = xmm2[0,1,2,3,4],xmm1[5,6,7]9103; AVX2-NEXT: vpblendd {{.*#+}} ymm5 = ymm1[0,1,2,3],ymm0[4,5,6,7]9104; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload9105; AVX2-NEXT: vpblendd $109, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload9106; AVX2-NEXT: # ymm0 = mem[0],ymm0[1],mem[2,3],ymm0[4],mem[5,6],ymm0[7]9107; AVX2-NEXT: vextracti128 $1, %ymm0, %xmm19108; AVX2-NEXT: vpshufd {{.*#+}} xmm7 = xmm0[0,3,2,1]9109; AVX2-NEXT: vpshuflw {{.*#+}} xmm0 = xmm7[0,1,0,2,4,5,6,7]9110; AVX2-NEXT: vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,6,6,6,6]9111; AVX2-NEXT: vpbroadcastq {{.*#+}} xmm9 = [8,9,0,0,0,1,12,13,8,9,0,0,0,1,12,13]9112; AVX2-NEXT: vpshufb %xmm9, %xmm1, %xmm39113; AVX2-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2,3],xmm3[4],xmm0[5],xmm3[6,7]9114; AVX2-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm09115; AVX2-NEXT: vpblendd $31, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm3 # 32-byte Folded Reload9116; AVX2-NEXT: # ymm3 = mem[0,1,2,3,4],ymm0[5,6,7]9117; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload9118; AVX2-NEXT: vpblendd $109, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload9119; AVX2-NEXT: # ymm0 = mem[0],ymm0[1],mem[2,3],ymm0[4],mem[5,6],ymm0[7]9120; AVX2-NEXT: vextracti128 $1, %ymm0, %xmm119121; AVX2-NEXT: vpshufd {{.*#+}} xmm12 = xmm0[0,3,2,1]9122; AVX2-NEXT: vpshuflw {{.*#+}} xmm0 = xmm12[0,1,0,2,4,5,6,7]9123; AVX2-NEXT: vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,6,6,6,6]9124; AVX2-NEXT: vpshufb %xmm9, %xmm11, %xmm49125; AVX2-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2,3],xmm4[4],xmm0[5],xmm4[6,7]9126; AVX2-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm09127; AVX2-NEXT: vpblendd $31, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm4 # 32-byte Folded Reload9128; AVX2-NEXT: # ymm4 = mem[0,1,2,3,4],ymm0[5,6,7]9129; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload9130; AVX2-NEXT: vpblendd $109, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload9131; AVX2-NEXT: # ymm0 = mem[0],ymm0[1],mem[2,3],ymm0[4],mem[5,6],ymm0[7]9132; AVX2-NEXT: vextracti128 $1, %ymm0, %xmm139133; AVX2-NEXT: vpshufd {{.*#+}} xmm14 = xmm0[0,3,2,1]9134; AVX2-NEXT: vpshuflw {{.*#+}} xmm0 = xmm14[0,1,0,2,4,5,6,7]9135; AVX2-NEXT: vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,6,6,6,6]9136; AVX2-NEXT: vpshufb %xmm9, %xmm13, %xmm109137; AVX2-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2,3],xmm10[4],xmm0[5],xmm10[6,7]9138; AVX2-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm09139; AVX2-NEXT: vpblendd $31, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm2 # 32-byte Folded Reload9140; AVX2-NEXT: # ymm2 = mem[0,1,2,3,4],ymm0[5,6,7]9141; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload9142; AVX2-NEXT: vpblendd $109, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm10 # 32-byte Folded Reload9143; AVX2-NEXT: # ymm10 = mem[0],ymm0[1],mem[2,3],ymm0[4],mem[5,6],ymm0[7]9144; AVX2-NEXT: vextracti128 $1, %ymm10, %xmm159145; AVX2-NEXT: vpshufb %xmm9, %xmm15, %xmm99146; AVX2-NEXT: vpshufd {{.*#+}} xmm0 = xmm10[0,3,2,1]9147; AVX2-NEXT: vpshuflw {{.*#+}} xmm10 = xmm0[0,1,0,2,4,5,6,7]9148; AVX2-NEXT: vpshufhw {{.*#+}} xmm10 = xmm10[0,1,2,3,6,6,6,6]9149; AVX2-NEXT: vpblendw {{.*#+}} xmm9 = xmm10[0,1,2,3],xmm9[4],xmm10[5],xmm9[6,7]9150; AVX2-NEXT: vinserti128 $1, %xmm9, %ymm0, %ymm99151; AVX2-NEXT: vpblendd $31, {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm10 # 32-byte Folded Reload9152; AVX2-NEXT: # ymm10 = mem[0,1,2,3,4],ymm9[5,6,7]9153; AVX2-NEXT: vpbroadcastq {{.*#+}} xmm9 = [10,11,0,0,2,3,14,15,10,11,0,0,2,3,14,15]9154; AVX2-NEXT: vpshufb %xmm9, %xmm11, %xmm119155; AVX2-NEXT: vpshuflw {{.*#+}} xmm12 = xmm12[0,1,1,3,4,5,6,7]9156; AVX2-NEXT: vpshufd {{.*#+}} xmm12 = xmm12[0,1,3,3]9157; AVX2-NEXT: vpblendw {{.*#+}} xmm11 = xmm12[0,1,2,3],xmm11[4],xmm12[5],xmm11[6,7]9158; AVX2-NEXT: vinserti128 $1, %xmm11, %ymm0, %ymm119159; AVX2-NEXT: vpblendd $31, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm11 # 32-byte Folded Reload9160; AVX2-NEXT: # ymm11 = mem[0,1,2,3,4],ymm11[5,6,7]9161; AVX2-NEXT: vpshufb %xmm9, %xmm1, %xmm19162; AVX2-NEXT: vpshuflw {{.*#+}} xmm7 = xmm7[0,1,1,3,4,5,6,7]9163; AVX2-NEXT: vpshufd {{.*#+}} xmm7 = xmm7[0,1,3,3]9164; AVX2-NEXT: vpblendw {{.*#+}} xmm1 = xmm7[0,1,2,3],xmm1[4],xmm7[5],xmm1[6,7]9165; AVX2-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm19166; AVX2-NEXT: vpblendd $31, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload9167; AVX2-NEXT: # ymm1 = mem[0,1,2,3,4],ymm1[5,6,7]9168; AVX2-NEXT: vpshufb %xmm9, %xmm13, %xmm79169; AVX2-NEXT: vpshuflw {{.*#+}} xmm12 = xmm14[0,1,1,3,4,5,6,7]9170; AVX2-NEXT: vpshufd {{.*#+}} xmm12 = xmm12[0,1,3,3]9171; AVX2-NEXT: vpblendw {{.*#+}} xmm7 = xmm12[0,1,2,3],xmm7[4],xmm12[5],xmm7[6,7]9172; AVX2-NEXT: vinserti128 $1, %xmm7, %ymm0, %ymm79173; AVX2-NEXT: vpblendd $31, {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm7 # 32-byte Folded Reload9174; AVX2-NEXT: # ymm7 = mem[0,1,2,3,4],ymm7[5,6,7]9175; AVX2-NEXT: vpshufb %xmm9, %xmm15, %xmm99176; AVX2-NEXT: vpshuflw {{.*#+}} xmm0 = xmm0[0,1,1,3,4,5,6,7]9177; AVX2-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[0,1,3,3]9178; AVX2-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2,3],xmm9[4],xmm0[5],xmm9[6,7]9179; AVX2-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm09180; AVX2-NEXT: vpblendd $31, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload9181; AVX2-NEXT: # ymm0 = mem[0,1,2,3,4],ymm0[5,6,7]9182; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload9183; AVX2-NEXT: vmovaps %ymm9, 96(%rsi)9184; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload9185; AVX2-NEXT: vmovaps %ymm9, 32(%rsi)9186; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload9187; AVX2-NEXT: vmovaps %ymm9, 64(%rsi)9188; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload9189; AVX2-NEXT: vmovaps %ymm9, (%rsi)9190; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload9191; AVX2-NEXT: vmovaps %ymm9, 96(%rdx)9192; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload9193; AVX2-NEXT: vmovaps %ymm9, 32(%rdx)9194; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload9195; AVX2-NEXT: vmovaps %ymm9, 64(%rdx)9196; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload9197; AVX2-NEXT: vmovaps %ymm9, (%rdx)9198; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload9199; AVX2-NEXT: vmovaps %ymm9, 32(%rcx)9200; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload9201; AVX2-NEXT: vmovaps %ymm9, 96(%rcx)9202; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload9203; AVX2-NEXT: vmovaps %ymm9, 64(%rcx)9204; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload9205; AVX2-NEXT: vmovaps %ymm9, (%rcx)9206; AVX2-NEXT: vmovdqa %ymm6, 96(%r8)9207; AVX2-NEXT: vmovdqa %ymm8, 32(%r8)9208; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload9209; AVX2-NEXT: vmovaps %ymm6, 64(%r8)9210; AVX2-NEXT: vmovdqa %ymm5, (%r8)9211; AVX2-NEXT: vmovdqa %ymm10, 96(%r9)9212; AVX2-NEXT: vmovdqa %ymm2, 32(%r9)9213; AVX2-NEXT: vmovdqa %ymm4, (%r9)9214; AVX2-NEXT: vmovdqa %ymm3, 64(%r9)9215; AVX2-NEXT: movq {{[0-9]+}}(%rsp), %rax9216; AVX2-NEXT: vmovdqa %ymm0, 96(%rax)9217; AVX2-NEXT: vmovdqa %ymm7, 32(%rax)9218; AVX2-NEXT: vmovdqa %ymm1, 64(%rax)9219; AVX2-NEXT: vmovdqa %ymm11, (%rax)9220; AVX2-NEXT: addq $1272, %rsp # imm = 0x4F89221; AVX2-NEXT: vzeroupper9222; AVX2-NEXT: retq9223;9224; AVX2-FP-LABEL: load_i16_stride6_vf64:9225; AVX2-FP: # %bb.0:9226; AVX2-FP-NEXT: subq $1304, %rsp # imm = 0x5189227; AVX2-FP-NEXT: vmovdqa 64(%rdi), %ymm09228; AVX2-FP-NEXT: vmovdqa 96(%rdi), %ymm19229; AVX2-FP-NEXT: vmovaps 672(%rdi), %ymm29230; AVX2-FP-NEXT: vmovaps 640(%rdi), %ymm39231; AVX2-FP-NEXT: vmovdqa 288(%rdi), %ymm49232; AVX2-FP-NEXT: vmovdqa 256(%rdi), %ymm59233; AVX2-FP-NEXT: vmovdqa 416(%rdi), %ymm89234; AVX2-FP-NEXT: vmovdqu %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9235; AVX2-FP-NEXT: vmovdqa 384(%rdi), %ymm99236; AVX2-FP-NEXT: vmovdqu %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9237; AVX2-FP-NEXT: vmovdqa 480(%rdi), %ymm69238; AVX2-FP-NEXT: vmovdqa 448(%rdi), %ymm79239; AVX2-FP-NEXT: vperm2i128 {{.*#+}} ymm10 = ymm7[2,3],ymm6[2,3]9240; AVX2-FP-NEXT: vmovdqu %ymm10, (%rsp) # 32-byte Spill9241; AVX2-FP-NEXT: vperm2i128 {{.*#+}} ymm7 = ymm7[0,1],ymm6[0,1]9242; AVX2-FP-NEXT: vmovdqu %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9243; AVX2-FP-NEXT: vperm2i128 {{.*#+}} ymm13 = ymm5[2,3],ymm4[2,3]9244; AVX2-FP-NEXT: vmovdqu %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9245; AVX2-FP-NEXT: vperm2i128 {{.*#+}} ymm15 = ymm5[0,1],ymm4[0,1]9246; AVX2-FP-NEXT: vperm2f128 {{.*#+}} ymm4 = ymm3[2,3],ymm2[2,3]9247; AVX2-FP-NEXT: vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9248; AVX2-FP-NEXT: vperm2f128 {{.*#+}} ymm2 = ymm3[0,1],ymm2[0,1]9249; AVX2-FP-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9250; AVX2-FP-NEXT: vperm2i128 {{.*#+}} ymm12 = ymm0[2,3],ymm1[2,3]9251; AVX2-FP-NEXT: vmovdqu %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9252; AVX2-FP-NEXT: vperm2i128 {{.*#+}} ymm14 = ymm0[0,1],ymm1[0,1]9253; AVX2-FP-NEXT: vmovdqu %ymm14, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9254; AVX2-FP-NEXT: vmovdqa {{.*#+}} ymm2 = [8,9,4,5,4,5,6,7,0,1,4,5,0,1,12,13,24,25,20,21,20,21,22,23,16,17,20,21,16,17,28,29]9255; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm8[0,1],ymm9[2],ymm8[3,4],ymm9[5],ymm8[6,7]9256; AVX2-FP-NEXT: vmovdqa {{.*#+}} xmm3 = [8,9,u,u,0,1,12,13,u,u,12,13,12,13,14,15]9257; AVX2-FP-NEXT: vpshufb %xmm3, %xmm1, %xmm09258; AVX2-FP-NEXT: vextracti128 $1, %ymm1, %xmm59259; AVX2-FP-NEXT: vpshuflw {{.*#+}} xmm4 = xmm5[2,2,2,2,4,5,6,7]9260; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm6 = xmm0[0],xmm4[1],xmm0[2,3],xmm4[4],xmm0[5,6,7]9261; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm4 = ymm10[0],ymm7[1],ymm10[2,3,4,5],ymm7[6],ymm10[7]9262; AVX2-FP-NEXT: vpshufb %ymm2, %ymm4, %ymm79263; AVX2-FP-NEXT: vpmovsxbw {{.*#+}} xmm0 = [65535,65535,65535,65535,65535,0,0,0]9264; AVX2-FP-NEXT: vpblendvb %ymm0, %ymm6, %ymm7, %ymm69265; AVX2-FP-NEXT: vmovdqu %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9266; AVX2-FP-NEXT: vmovdqa (%rdi), %ymm69267; AVX2-FP-NEXT: vmovdqu %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9268; AVX2-FP-NEXT: vmovdqa 32(%rdi), %ymm79269; AVX2-FP-NEXT: vmovdqu %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9270; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm7 = ymm7[0,1],ymm6[2],ymm7[3,4],ymm6[5],ymm7[6,7]9271; AVX2-FP-NEXT: vpshufb %xmm3, %xmm7, %xmm69272; AVX2-FP-NEXT: vextracti128 $1, %ymm7, %xmm119273; AVX2-FP-NEXT: vpshuflw {{.*#+}} xmm8 = xmm11[2,2,2,2,4,5,6,7]9274; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm6 = xmm6[0],xmm8[1],xmm6[2,3],xmm8[4],xmm6[5,6,7]9275; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm10 = ymm12[0],ymm14[1],ymm12[2,3,4,5],ymm14[6],ymm12[7]9276; AVX2-FP-NEXT: vpshufb %ymm2, %ymm10, %ymm89277; AVX2-FP-NEXT: vpblendvb %ymm0, %ymm6, %ymm8, %ymm69278; AVX2-FP-NEXT: vmovdqu %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9279; AVX2-FP-NEXT: vmovdqa 224(%rdi), %ymm89280; AVX2-FP-NEXT: vmovdqu %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9281; AVX2-FP-NEXT: vmovdqa 192(%rdi), %ymm69282; AVX2-FP-NEXT: vmovdqu %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9283; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm6 = ymm8[0,1],ymm6[2],ymm8[3,4],ymm6[5],ymm8[6,7]9284; AVX2-FP-NEXT: vpshufb %xmm3, %xmm6, %xmm89285; AVX2-FP-NEXT: vextracti128 $1, %ymm6, %xmm99286; AVX2-FP-NEXT: vpshuflw {{.*#+}} xmm12 = xmm9[2,2,2,2,4,5,6,7]9287; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm12 = xmm8[0],xmm12[1],xmm8[2,3],xmm12[4],xmm8[5,6,7]9288; AVX2-FP-NEXT: vmovdqu %ymm15, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9289; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm8 = ymm13[0],ymm15[1],ymm13[2,3,4,5],ymm15[6],ymm13[7]9290; AVX2-FP-NEXT: vpshufb %ymm2, %ymm8, %ymm139291; AVX2-FP-NEXT: vpblendvb %ymm0, %ymm12, %ymm13, %ymm129292; AVX2-FP-NEXT: vmovdqu %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9293; AVX2-FP-NEXT: vmovdqa 608(%rdi), %ymm139294; AVX2-FP-NEXT: vmovdqu %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9295; AVX2-FP-NEXT: vmovdqa 576(%rdi), %ymm129296; AVX2-FP-NEXT: vmovdqu %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9297; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm12 = ymm13[0,1],ymm12[2],ymm13[3,4],ymm12[5],ymm13[6,7]9298; AVX2-FP-NEXT: vpshufb %xmm3, %xmm12, %xmm139299; AVX2-FP-NEXT: vextracti128 $1, %ymm12, %xmm39300; AVX2-FP-NEXT: vpshuflw {{.*#+}} xmm14 = xmm3[2,2,2,2,4,5,6,7]9301; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm14 = xmm13[0],xmm14[1],xmm13[2,3],xmm14[4],xmm13[5,6,7]9302; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm13 # 32-byte Reload9303; AVX2-FP-NEXT: vpblendd $189, {{[-0-9]+}}(%r{{[sb]}}p), %ymm13, %ymm13 # 32-byte Folded Reload9304; AVX2-FP-NEXT: # ymm13 = mem[0],ymm13[1],mem[2,3,4,5],ymm13[6],mem[7]9305; AVX2-FP-NEXT: vpshufb %ymm2, %ymm13, %ymm29306; AVX2-FP-NEXT: vpblendvb %ymm0, %ymm14, %ymm2, %ymm29307; AVX2-FP-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9308; AVX2-FP-NEXT: vmovdqa {{.*#+}} xmm2 = [10,11,6,7,2,3,14,15,10,11,10,11,12,13,14,15]9309; AVX2-FP-NEXT: vpshufb %xmm2, %xmm11, %xmm119310; AVX2-FP-NEXT: vpshufb %xmm2, %xmm7, %xmm79311; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm11 = xmm7[0],xmm11[1],xmm7[2,3],xmm11[4],xmm7[5,6,7]9312; AVX2-FP-NEXT: vmovdqa {{.*#+}} ymm7 = [10,11,6,7,4,5,6,7,6,7,6,7,2,3,14,15,26,27,22,23,20,21,22,23,22,23,22,23,18,19,30,31]9313; AVX2-FP-NEXT: vpshufb %ymm7, %ymm10, %ymm109314; AVX2-FP-NEXT: vpblendvb %ymm0, %ymm11, %ymm10, %ymm109315; AVX2-FP-NEXT: vmovdqu %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9316; AVX2-FP-NEXT: vpshufb %xmm2, %xmm5, %xmm59317; AVX2-FP-NEXT: vpshufb %xmm2, %xmm1, %xmm19318; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0],xmm5[1],xmm1[2,3],xmm5[4],xmm1[5,6,7]9319; AVX2-FP-NEXT: vpshufb %ymm7, %ymm4, %ymm49320; AVX2-FP-NEXT: vpblendvb %ymm0, %ymm1, %ymm4, %ymm19321; AVX2-FP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9322; AVX2-FP-NEXT: vpshufb %xmm2, %xmm9, %xmm19323; AVX2-FP-NEXT: vpshufb %xmm2, %xmm6, %xmm49324; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm1 = xmm4[0],xmm1[1],xmm4[2,3],xmm1[4],xmm4[5,6,7]9325; AVX2-FP-NEXT: vpshufb %ymm7, %ymm8, %ymm49326; AVX2-FP-NEXT: vpblendvb %ymm0, %ymm1, %ymm4, %ymm19327; AVX2-FP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9328; AVX2-FP-NEXT: vpshufb %ymm7, %ymm13, %ymm19329; AVX2-FP-NEXT: vpshufb %xmm2, %xmm3, %xmm39330; AVX2-FP-NEXT: vpshufb %xmm2, %xmm12, %xmm29331; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0],xmm3[1],xmm2[2,3],xmm3[4],xmm2[5,6,7]9332; AVX2-FP-NEXT: vpblendvb %ymm0, %ymm2, %ymm1, %ymm09333; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9334; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload9335; AVX2-FP-NEXT: vpblendd $109, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm7 # 32-byte Folded Reload9336; AVX2-FP-NEXT: # ymm7 = mem[0],ymm0[1],mem[2,3],ymm0[4],mem[5,6],ymm0[7]9337; AVX2-FP-NEXT: vextracti128 $1, %ymm7, %xmm09338; AVX2-FP-NEXT: vpshufd {{.*#+}} xmm2 = xmm0[2,1,0,3]9339; AVX2-FP-NEXT: vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill9340; AVX2-FP-NEXT: vmovdqa {{.*#+}} xmm1 = [0,1,12,13,0,1,4,5,8,9,12,13,12,13,14,15]9341; AVX2-FP-NEXT: vpshufb %xmm1, %xmm7, %xmm09342; AVX2-FP-NEXT: vpshufb %xmm1, %xmm2, %xmm29343; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1],xmm2[2],xmm0[3],xmm2[4,5],xmm0[6,7]9344; AVX2-FP-NEXT: vmovdqa {{.*#+}} ymm5 = [u,u,u,u,u,u,u,u,u,u,u,u,8,9,4,5,16,17,28,29,24,25,28,29,24,25,28,29,24,25,20,21]9345; AVX2-FP-NEXT: vmovdqu (%rsp), %ymm2 # 32-byte Reload9346; AVX2-FP-NEXT: vpblendd $189, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload9347; AVX2-FP-NEXT: # ymm2 = mem[0],ymm2[1],mem[2,3,4,5],ymm2[6],mem[7]9348; AVX2-FP-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9349; AVX2-FP-NEXT: vpshufb %ymm5, %ymm2, %ymm29350; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm2 = ymm0[0,1,2],ymm2[3,4,5,6,7]9351; AVX2-FP-NEXT: vmovdqa 544(%rdi), %ymm09352; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9353; AVX2-FP-NEXT: vmovdqa 512(%rdi), %ymm39354; AVX2-FP-NEXT: vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9355; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm11 = ymm3[0,1],ymm0[2],ymm3[3,4],ymm0[5],ymm3[6,7]9356; AVX2-FP-NEXT: vmovdqa {{.*#+}} xmm0 = [0,1,4,5,4,5,4,5,0,1,12,13,8,9,4,5]9357; AVX2-FP-NEXT: vpshufb %xmm0, %xmm11, %xmm39358; AVX2-FP-NEXT: vextracti128 $1, %ymm11, %xmm49359; AVX2-FP-NEXT: vmovdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill9360; AVX2-FP-NEXT: vpshufb %xmm0, %xmm4, %xmm49361; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm3 = xmm4[0,1,2],xmm3[3],xmm4[4,5],xmm3[6],xmm4[7]9362; AVX2-FP-NEXT: vinserti128 $1, %xmm3, %ymm0, %ymm39363; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm3 = ymm2[0,1,2],ymm3[3,4,5,6,7],ymm2[8,9,10],ymm3[11,12,13,14,15]9364; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4,5,6,7]9365; AVX2-FP-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9366; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload9367; AVX2-FP-NEXT: vpblendd $109, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm6 # 32-byte Folded Reload9368; AVX2-FP-NEXT: # ymm6 = mem[0],ymm2[1],mem[2,3],ymm2[4],mem[5,6],ymm2[7]9369; AVX2-FP-NEXT: vextracti128 $1, %ymm6, %xmm29370; AVX2-FP-NEXT: vpshufd {{.*#+}} xmm3 = xmm2[2,1,0,3]9371; AVX2-FP-NEXT: vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill9372; AVX2-FP-NEXT: vpshufb %xmm1, %xmm6, %xmm29373; AVX2-FP-NEXT: vpshufb %xmm1, %xmm3, %xmm39374; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0,1],xmm3[2],xmm2[3],xmm3[4,5],xmm2[6,7]9375; AVX2-FP-NEXT: vpblendd $66, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm3 # 32-byte Folded Reload9376; AVX2-FP-NEXT: # ymm3 = ymm15[0],mem[1],ymm15[2,3,4,5],mem[6],ymm15[7]9377; AVX2-FP-NEXT: vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9378; AVX2-FP-NEXT: vpshufb %ymm5, %ymm3, %ymm39379; AVX2-FP-NEXT: vmovdqa %ymm5, %ymm159380; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2],ymm3[3,4,5,6,7]9381; AVX2-FP-NEXT: vmovdqa 352(%rdi), %ymm39382; AVX2-FP-NEXT: vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9383; AVX2-FP-NEXT: vmovdqa 320(%rdi), %ymm49384; AVX2-FP-NEXT: vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9385; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm8 = ymm4[0,1],ymm3[2],ymm4[3,4],ymm3[5],ymm4[6,7]9386; AVX2-FP-NEXT: vpshufb %xmm0, %xmm8, %xmm39387; AVX2-FP-NEXT: vextracti128 $1, %ymm8, %xmm49388; AVX2-FP-NEXT: vmovdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill9389; AVX2-FP-NEXT: vpshufb %xmm0, %xmm4, %xmm49390; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm3 = xmm4[0,1,2],xmm3[3],xmm4[4,5],xmm3[6],xmm4[7]9391; AVX2-FP-NEXT: vinserti128 $1, %xmm3, %ymm0, %ymm39392; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm3 = ymm2[0,1,2],ymm3[3,4,5,6,7],ymm2[8,9,10],ymm3[11,12,13,14,15]9393; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4,5,6,7]9394; AVX2-FP-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9395; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload9396; AVX2-FP-NEXT: vpblendd $109, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm5 # 32-byte Folded Reload9397; AVX2-FP-NEXT: # ymm5 = mem[0],ymm2[1],mem[2,3],ymm2[4],mem[5,6],ymm2[7]9398; AVX2-FP-NEXT: vextracti128 $1, %ymm5, %xmm29399; AVX2-FP-NEXT: vpshufd {{.*#+}} xmm3 = xmm2[2,1,0,3]9400; AVX2-FP-NEXT: vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill9401; AVX2-FP-NEXT: vpshufb %xmm1, %xmm5, %xmm29402; AVX2-FP-NEXT: vpshufb %xmm1, %xmm3, %xmm39403; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0,1],xmm3[2],xmm2[3],xmm3[4,5],xmm2[6,7]9404; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload9405; AVX2-FP-NEXT: vpblendd $66, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm3 # 32-byte Folded Reload9406; AVX2-FP-NEXT: # ymm3 = ymm3[0],mem[1],ymm3[2,3,4,5],mem[6],ymm3[7]9407; AVX2-FP-NEXT: vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9408; AVX2-FP-NEXT: vpshufb %ymm15, %ymm3, %ymm39409; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2],ymm3[3,4,5,6,7]9410; AVX2-FP-NEXT: vmovdqa 736(%rdi), %ymm39411; AVX2-FP-NEXT: vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9412; AVX2-FP-NEXT: vmovdqa 704(%rdi), %ymm49413; AVX2-FP-NEXT: vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9414; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm4 = ymm4[0,1],ymm3[2],ymm4[3,4],ymm3[5],ymm4[6,7]9415; AVX2-FP-NEXT: vpshufb %xmm0, %xmm4, %xmm99416; AVX2-FP-NEXT: vextracti128 $1, %ymm4, %xmm39417; AVX2-FP-NEXT: vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill9418; AVX2-FP-NEXT: vpshufb %xmm0, %xmm3, %xmm109419; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm9 = xmm10[0,1,2],xmm9[3],xmm10[4,5],xmm9[6],xmm10[7]9420; AVX2-FP-NEXT: vinserti128 $1, %xmm9, %ymm0, %ymm99421; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm9 = ymm2[0,1,2],ymm9[3,4,5,6,7],ymm2[8,9,10],ymm9[11,12,13,14,15]9422; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm9[4,5,6,7]9423; AVX2-FP-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9424; AVX2-FP-NEXT: vmovdqa 160(%rdi), %ymm29425; AVX2-FP-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9426; AVX2-FP-NEXT: vmovdqa 128(%rdi), %ymm39427; AVX2-FP-NEXT: vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9428; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm3 = ymm3[0,1],ymm2[2],ymm3[3,4],ymm2[5],ymm3[6,7]9429; AVX2-FP-NEXT: vpshufb %xmm0, %xmm3, %xmm99430; AVX2-FP-NEXT: vextracti128 $1, %ymm3, %xmm139431; AVX2-FP-NEXT: vpshufb %xmm0, %xmm13, %xmm09432; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm9 = xmm0[0,1,2],xmm9[3],xmm0[4,5],xmm9[6],xmm0[7]9433; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload9434; AVX2-FP-NEXT: vpblendd $146, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm2 # 32-byte Folded Reload9435; AVX2-FP-NEXT: # ymm2 = ymm0[0],mem[1],ymm0[2,3],mem[4],ymm0[5,6],mem[7]9436; AVX2-FP-NEXT: vextracti128 $1, %ymm2, %xmm109437; AVX2-FP-NEXT: vpshufd {{.*#+}} xmm14 = xmm10[2,1,0,3]9438; AVX2-FP-NEXT: vpshufb %xmm1, %xmm2, %xmm129439; AVX2-FP-NEXT: vpshufb %xmm1, %xmm14, %xmm19440; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm12 = xmm12[0,1],xmm1[2],xmm12[3],xmm1[4,5],xmm12[6,7]9441; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload9442; AVX2-FP-NEXT: vpblendd $189, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm10 # 32-byte Folded Reload9443; AVX2-FP-NEXT: # ymm10 = mem[0],ymm0[1],mem[2,3,4,5],ymm0[6],mem[7]9444; AVX2-FP-NEXT: vpshufb %ymm15, %ymm10, %ymm159445; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm12 = ymm12[0,1,2],ymm15[3,4,5,6,7]9446; AVX2-FP-NEXT: vinserti128 $1, %xmm9, %ymm0, %ymm99447; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm9 = ymm12[0,1,2],ymm9[3,4,5,6,7],ymm12[8,9,10],ymm9[11,12,13,14,15]9448; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm12[0,1,2,3],ymm9[4,5,6,7]9449; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9450; AVX2-FP-NEXT: vpbroadcastq {{.*#+}} xmm12 = [6,7,2,3,12,13,14,15,6,7,2,3,12,13,14,15]9451; AVX2-FP-NEXT: vpshufb %xmm12, %xmm7, %xmm79452; AVX2-FP-NEXT: vpshuflw $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Folded Reload9453; AVX2-FP-NEXT: # xmm9 = mem[1,1,1,1,4,5,6,7]9454; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm15 = xmm7[0,1],xmm9[2],xmm7[3,4],xmm9[5],xmm7[6],xmm9[7]9455; AVX2-FP-NEXT: vmovdqa {{.*#+}} ymm7 = [u,u,u,u,u,u,u,u,u,u,u,u,10,11,6,7,18,19,30,31,26,27,26,27,30,31,26,27,26,27,22,23]9456; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload9457; AVX2-FP-NEXT: vpshufb %ymm7, %ymm0, %ymm09458; AVX2-FP-NEXT: vmovdqa {{.*#+}} xmm9 = [2,3,6,7,4,5,0,1,10,11,14,15,12,13,14,15]9459; AVX2-FP-NEXT: vpshufb %xmm9, %xmm15, %xmm159460; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm15[0,1,2],ymm0[3,4,5,6,7]9461; AVX2-FP-NEXT: vmovdqa {{.*#+}} xmm15 = [6,7,2,3,4,5,u,u,2,3,14,15,u,u,6,7]9462; AVX2-FP-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload9463; AVX2-FP-NEXT: vpshufb %xmm15, %xmm1, %xmm19464; AVX2-FP-NEXT: vpshufhw {{.*#+}} xmm11 = xmm11[0,1,2,3,5,5,5,5]9465; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1,2],xmm11[3],xmm1[4,5],xmm11[6],xmm1[7]9466; AVX2-FP-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm19467; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm1 = ymm0[0,1,2],ymm1[3,4,5,6,7],ymm0[8,9,10],ymm1[11,12,13,14,15]9468; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]9469; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9470; AVX2-FP-NEXT: vpshufb %xmm12, %xmm6, %xmm09471; AVX2-FP-NEXT: vpshuflw $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload9472; AVX2-FP-NEXT: # xmm1 = mem[1,1,1,1,4,5,6,7]9473; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1],xmm1[2],xmm0[3,4],xmm1[5],xmm0[6],xmm1[7]9474; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload9475; AVX2-FP-NEXT: vpshufb %ymm7, %ymm1, %ymm19476; AVX2-FP-NEXT: vpshufb %xmm9, %xmm0, %xmm09477; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4,5,6,7]9478; AVX2-FP-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload9479; AVX2-FP-NEXT: vpshufb %xmm15, %xmm1, %xmm19480; AVX2-FP-NEXT: vpshufhw {{.*#+}} xmm6 = xmm8[0,1,2,3,5,5,5,5]9481; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1,2],xmm6[3],xmm1[4,5],xmm6[6],xmm1[7]9482; AVX2-FP-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm19483; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm1 = ymm0[0,1,2],ymm1[3,4,5,6,7],ymm0[8,9,10],ymm1[11,12,13,14,15]9484; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]9485; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9486; AVX2-FP-NEXT: vpshufb %xmm12, %xmm5, %xmm09487; AVX2-FP-NEXT: vpshuflw $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload9488; AVX2-FP-NEXT: # xmm1 = mem[1,1,1,1,4,5,6,7]9489; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1],xmm1[2],xmm0[3,4],xmm1[5],xmm0[6],xmm1[7]9490; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload9491; AVX2-FP-NEXT: vpshufb %ymm7, %ymm1, %ymm19492; AVX2-FP-NEXT: vpshufb %xmm9, %xmm0, %xmm09493; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4,5,6,7]9494; AVX2-FP-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload9495; AVX2-FP-NEXT: vpshufb %xmm15, %xmm1, %xmm19496; AVX2-FP-NEXT: vpshufhw {{.*#+}} xmm4 = xmm4[0,1,2,3,5,5,5,5]9497; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1,2],xmm4[3],xmm1[4,5],xmm4[6],xmm1[7]9498; AVX2-FP-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm19499; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm1 = ymm0[0,1,2],ymm1[3,4,5,6,7],ymm0[8,9,10],ymm1[11,12,13,14,15]9500; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]9501; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9502; AVX2-FP-NEXT: vpshufb %xmm15, %xmm13, %xmm09503; AVX2-FP-NEXT: vpshufhw {{.*#+}} xmm1 = xmm3[0,1,2,3,5,5,5,5]9504; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2],xmm1[3],xmm0[4,5],xmm1[6],xmm0[7]9505; AVX2-FP-NEXT: vpshufb %ymm7, %ymm10, %ymm19506; AVX2-FP-NEXT: vpshufb %xmm12, %xmm2, %xmm29507; AVX2-FP-NEXT: vpshuflw {{.*#+}} xmm3 = xmm14[1,1,1,1,4,5,6,7]9508; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0,1],xmm3[2],xmm2[3,4],xmm3[5],xmm2[6],xmm3[7]9509; AVX2-FP-NEXT: vpshufb %xmm9, %xmm2, %xmm29510; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3,4,5,6,7]9511; AVX2-FP-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm09512; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3,4,5,6,7],ymm1[8,9,10],ymm0[11,12,13,14,15]9513; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]9514; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9515; AVX2-FP-NEXT: vmovdqu (%rsp), %ymm0 # 32-byte Reload9516; AVX2-FP-NEXT: vpblendd $107, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm3 # 32-byte Folded Reload9517; AVX2-FP-NEXT: # ymm3 = mem[0,1],ymm0[2],mem[3],ymm0[4],mem[5,6],ymm0[7]9518; AVX2-FP-NEXT: vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9519; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload9520; AVX2-FP-NEXT: vpblendd $36, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload9521; AVX2-FP-NEXT: # ymm0 = ymm0[0,1],mem[2],ymm0[3,4],mem[5],ymm0[6,7]9522; AVX2-FP-NEXT: vpshufd {{.*#+}} xmm1 = xmm0[2,1,0,3]9523; AVX2-FP-NEXT: vmovdqa %xmm1, (%rsp) # 16-byte Spill9524; AVX2-FP-NEXT: vextracti128 $1, %ymm0, %xmm09525; AVX2-FP-NEXT: vpshufd {{.*#+}} xmm2 = xmm0[0,1,2,1]9526; AVX2-FP-NEXT: vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill9527; AVX2-FP-NEXT: vmovdqa {{.*#+}} xmm12 = [0,1,0,1,0,1,0,1,u,u,8,9,12,13,u,u]9528; AVX2-FP-NEXT: vpshufb %xmm12, %xmm1, %xmm09529; AVX2-FP-NEXT: vpshufhw {{.*#+}} xmm1 = xmm2[0,1,2,3,6,5,6,4]9530; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2,3],xmm1[4],xmm0[5,6],xmm1[7]9531; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload9532; AVX2-FP-NEXT: vpblendd $219, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload9533; AVX2-FP-NEXT: # ymm1 = mem[0,1],ymm1[2],mem[3,4],ymm1[5],mem[6,7]9534; AVX2-FP-NEXT: vextracti128 $1, %ymm1, %xmm29535; AVX2-FP-NEXT: vpshufd {{.*#+}} xmm9 = xmm2[0,3,2,1]9536; AVX2-FP-NEXT: vpshufd {{.*#+}} xmm7 = xmm1[2,1,2,3]9537; AVX2-FP-NEXT: vpbroadcastq {{.*#+}} xmm10 = [12,13,0,1,4,5,0,0,12,13,0,1,4,5,0,0]9538; AVX2-FP-NEXT: vpshufb %xmm10, %xmm9, %xmm19539; AVX2-FP-NEXT: vpshuflw {{.*#+}} xmm2 = xmm7[2,1,2,0,4,5,6,7]9540; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm1 = xmm2[0],xmm1[1,2],xmm2[3],xmm1[4,5,6,7]9541; AVX2-FP-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm09542; AVX2-FP-NEXT: vmovdqa {{.*#+}} ymm11 = [4,5,0,1,12,13,14,15,8,9,12,13,0,1,u,u,20,21,16,17,28,29,30,31,24,25,28,29,16,17,u,u]9543; AVX2-FP-NEXT: vpshufb %ymm11, %ymm3, %ymm29544; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm0 = ymm2[0,1,2],ymm0[3,4,5,6,7],ymm2[8,9,10],ymm0[11,12,13,14,15]9545; AVX2-FP-NEXT: vpshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,6,5,4]9546; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1,2,3,4],xmm2[5,6,7]9547; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]9548; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9549; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload9550; AVX2-FP-NEXT: vpblendd $148, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm3 # 32-byte Folded Reload9551; AVX2-FP-NEXT: # ymm3 = ymm0[0,1],mem[2],ymm0[3],mem[4],ymm0[5,6],mem[7]9552; AVX2-FP-NEXT: vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9553; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload9554; AVX2-FP-NEXT: vpblendd $36, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload9555; AVX2-FP-NEXT: # ymm0 = ymm0[0,1],mem[2],ymm0[3,4],mem[5],ymm0[6,7]9556; AVX2-FP-NEXT: vpshufd {{.*#+}} xmm1 = xmm0[2,1,0,3]9557; AVX2-FP-NEXT: vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill9558; AVX2-FP-NEXT: vextracti128 $1, %ymm0, %xmm09559; AVX2-FP-NEXT: vpshufd {{.*#+}} xmm2 = xmm0[0,1,2,1]9560; AVX2-FP-NEXT: vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill9561; AVX2-FP-NEXT: vpshufb %xmm12, %xmm1, %xmm09562; AVX2-FP-NEXT: vpshufhw {{.*#+}} xmm1 = xmm2[0,1,2,3,6,5,6,4]9563; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2,3],xmm1[4],xmm0[5,6],xmm1[7]9564; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload9565; AVX2-FP-NEXT: vpblendd $219, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload9566; AVX2-FP-NEXT: # ymm1 = mem[0,1],ymm1[2],mem[3,4],ymm1[5],mem[6,7]9567; AVX2-FP-NEXT: vextracti128 $1, %ymm1, %xmm29568; AVX2-FP-NEXT: vpshufd {{.*#+}} xmm2 = xmm2[0,3,2,1]9569; AVX2-FP-NEXT: vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill9570; AVX2-FP-NEXT: vpshufd {{.*#+}} xmm4 = xmm1[2,1,2,3]9571; AVX2-FP-NEXT: vmovdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill9572; AVX2-FP-NEXT: vpshufb %xmm10, %xmm2, %xmm19573; AVX2-FP-NEXT: vpshuflw {{.*#+}} xmm2 = xmm4[2,1,2,0,4,5,6,7]9574; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm1 = xmm2[0],xmm1[1,2],xmm2[3],xmm1[4,5,6,7]9575; AVX2-FP-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm09576; AVX2-FP-NEXT: vpshufb %ymm11, %ymm3, %ymm29577; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm0 = ymm2[0,1,2],ymm0[3,4,5,6,7],ymm2[8,9,10],ymm0[11,12,13,14,15]9578; AVX2-FP-NEXT: vpshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,6,5,4]9579; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1,2,3,4],xmm2[5,6,7]9580; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]9581; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9582; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload9583; AVX2-FP-NEXT: vpblendd $107, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm13 # 32-byte Folded Reload9584; AVX2-FP-NEXT: # ymm13 = mem[0,1],ymm0[2],mem[3],ymm0[4],mem[5,6],ymm0[7]9585; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload9586; AVX2-FP-NEXT: vpblendd $36, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload9587; AVX2-FP-NEXT: # ymm0 = ymm0[0,1],mem[2],ymm0[3,4],mem[5],ymm0[6,7]9588; AVX2-FP-NEXT: vpshufd {{.*#+}} xmm8 = xmm0[2,1,0,3]9589; AVX2-FP-NEXT: vextracti128 $1, %ymm0, %xmm09590; AVX2-FP-NEXT: vpshufd {{.*#+}} xmm6 = xmm0[0,1,2,1]9591; AVX2-FP-NEXT: vpshufb %xmm12, %xmm8, %xmm09592; AVX2-FP-NEXT: vpshufhw {{.*#+}} xmm1 = xmm6[0,1,2,3,6,5,6,4]9593; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm2 = xmm0[0,1,2,3],xmm1[4],xmm0[5,6],xmm1[7]9594; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload9595; AVX2-FP-NEXT: vpblendd $219, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm1 # 32-byte Folded Reload9596; AVX2-FP-NEXT: # ymm1 = mem[0,1],ymm0[2],mem[3,4],ymm0[5],mem[6,7]9597; AVX2-FP-NEXT: vextracti128 $1, %ymm1, %xmm09598; AVX2-FP-NEXT: vpshufd {{.*#+}} xmm4 = xmm0[0,3,2,1]9599; AVX2-FP-NEXT: vpshufd {{.*#+}} xmm1 = xmm1[2,1,2,3]9600; AVX2-FP-NEXT: vpshufb %xmm10, %xmm4, %xmm39601; AVX2-FP-NEXT: vpshuflw {{.*#+}} xmm5 = xmm1[2,1,2,0,4,5,6,7]9602; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm3 = xmm5[0],xmm3[1,2],xmm5[3],xmm3[4,5,6,7]9603; AVX2-FP-NEXT: vinserti128 $1, %xmm2, %ymm0, %ymm29604; AVX2-FP-NEXT: vpshufb %ymm11, %ymm13, %ymm59605; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm2 = ymm5[0,1,2],ymm2[3,4,5,6,7],ymm5[8,9,10],ymm2[11,12,13,14,15]9606; AVX2-FP-NEXT: vpshufhw {{.*#+}} xmm5 = xmm5[0,1,2,3,4,6,5,4]9607; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm3 = xmm3[0,1,2,3,4],xmm5[5,6,7]9608; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm3[0,1,2,3],ymm2[4,5,6,7]9609; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9610; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload9611; AVX2-FP-NEXT: vpblendd $36, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm2 # 32-byte Folded Reload9612; AVX2-FP-NEXT: # ymm2 = ymm0[0,1],mem[2],ymm0[3,4],mem[5],ymm0[6,7]9613; AVX2-FP-NEXT: vpshufd {{.*#+}} xmm14 = xmm2[2,1,0,3]9614; AVX2-FP-NEXT: vpshufb %xmm12, %xmm14, %xmm39615; AVX2-FP-NEXT: vextracti128 $1, %ymm2, %xmm29616; AVX2-FP-NEXT: vpshufd {{.*#+}} xmm12 = xmm2[0,1,2,1]9617; AVX2-FP-NEXT: vpshufhw {{.*#+}} xmm2 = xmm12[0,1,2,3,6,5,6,4]9618; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm2 = xmm3[0,1,2,3],xmm2[4],xmm3[5,6],xmm2[7]9619; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload9620; AVX2-FP-NEXT: vpblendd $107, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm15 # 32-byte Folded Reload9621; AVX2-FP-NEXT: # ymm15 = mem[0,1],ymm0[2],mem[3],ymm0[4],mem[5,6],ymm0[7]9622; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload9623; AVX2-FP-NEXT: vpblendd $36, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm3 # 32-byte Folded Reload9624; AVX2-FP-NEXT: # ymm3 = ymm0[0,1],mem[2],ymm0[3,4],mem[5],ymm0[6,7]9625; AVX2-FP-NEXT: vextracti128 $1, %ymm3, %xmm59626; AVX2-FP-NEXT: vpshufd {{.*#+}} xmm5 = xmm5[0,3,2,1]9627; AVX2-FP-NEXT: vpshufb %xmm10, %xmm5, %xmm09628; AVX2-FP-NEXT: vpshufd {{.*#+}} xmm10 = xmm3[2,1,2,3]9629; AVX2-FP-NEXT: vpshuflw {{.*#+}} xmm3 = xmm10[2,1,2,0,4,5,6,7]9630; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm0 = xmm3[0],xmm0[1,2],xmm3[3],xmm0[4,5,6,7]9631; AVX2-FP-NEXT: vinserti128 $1, %xmm2, %ymm0, %ymm29632; AVX2-FP-NEXT: vpshufb %ymm11, %ymm15, %ymm39633; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm2 = ymm3[0,1,2],ymm2[3,4,5,6,7],ymm3[8,9,10],ymm2[11,12,13,14,15]9634; AVX2-FP-NEXT: vpshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,4,6,5,4]9635; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2,3,4],xmm3[5,6,7]9636; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm2[4,5,6,7]9637; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9638; AVX2-FP-NEXT: vmovdqa {{.*#+}} xmm2 = [2,3,2,3,2,3,2,3,u,u,10,11,14,15,u,u]9639; AVX2-FP-NEXT: vmovdqa (%rsp), %xmm0 # 16-byte Reload9640; AVX2-FP-NEXT: vpshufb %xmm2, %xmm0, %xmm09641; AVX2-FP-NEXT: vpshufhw $103, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Folded Reload9642; AVX2-FP-NEXT: # xmm3 = mem[0,1,2,3,7,5,6,5]9643; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2,3],xmm3[4],xmm0[5,6],xmm3[7]9644; AVX2-FP-NEXT: vpbroadcastq {{.*#+}} xmm3 = [14,15,2,3,6,7,0,0,14,15,2,3,6,7,0,0]9645; AVX2-FP-NEXT: vpshufb %xmm3, %xmm9, %xmm99646; AVX2-FP-NEXT: vpshuflw {{.*#+}} xmm7 = xmm7[3,1,2,1,4,5,6,7]9647; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm9 = xmm7[0],xmm9[1,2],xmm7[3],xmm9[4,5,6,7]9648; AVX2-FP-NEXT: vmovdqa {{.*#+}} ymm7 = [6,7,2,3,14,15,14,15,14,15,10,11,u,u,2,3,22,23,18,19,30,31,30,31,30,31,26,27,u,u,18,19]9649; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Reload9650; AVX2-FP-NEXT: vpshufb %ymm7, %ymm11, %ymm119651; AVX2-FP-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm09652; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm0 = ymm11[0,1,2],ymm0[3,4,5,6,7],ymm11[8,9,10],ymm0[11,12,13,14,15]9653; AVX2-FP-NEXT: vpshufd {{.*#+}} xmm11 = xmm11[0,1,3,2]9654; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm9 = xmm9[0,1,2,3,4],xmm11[5,6,7]9655; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm9[0,1,2,3],ymm0[4,5,6,7]9656; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9657; AVX2-FP-NEXT: vpshufb %xmm2, %xmm8, %xmm09658; AVX2-FP-NEXT: vpshufhw {{.*#+}} xmm6 = xmm6[0,1,2,3,7,5,6,5]9659; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2,3],xmm6[4],xmm0[5,6],xmm6[7]9660; AVX2-FP-NEXT: vpshufb %xmm3, %xmm4, %xmm49661; AVX2-FP-NEXT: vpshuflw {{.*#+}} xmm1 = xmm1[3,1,2,1,4,5,6,7]9662; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0],xmm4[1,2],xmm1[3],xmm4[4,5,6,7]9663; AVX2-FP-NEXT: vpshufb %ymm7, %ymm13, %ymm49664; AVX2-FP-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm09665; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm0 = ymm4[0,1,2],ymm0[3,4,5,6,7],ymm4[8,9,10],ymm0[11,12,13,14,15]9666; AVX2-FP-NEXT: vpshufd {{.*#+}} xmm4 = xmm4[0,1,3,2]9667; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1,2,3,4],xmm4[5,6,7]9668; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm9 = ymm1[0,1,2,3],ymm0[4,5,6,7]9669; AVX2-FP-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload9670; AVX2-FP-NEXT: vpshufb %xmm2, %xmm0, %xmm19671; AVX2-FP-NEXT: vpshufhw $103, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload9672; AVX2-FP-NEXT: # xmm4 = mem[0,1,2,3,7,5,6,5]9673; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1,2,3],xmm4[4],xmm1[5,6],xmm4[7]9674; AVX2-FP-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload9675; AVX2-FP-NEXT: vpshufb %xmm3, %xmm0, %xmm49676; AVX2-FP-NEXT: vpshuflw $103, {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Folded Reload9677; AVX2-FP-NEXT: # xmm6 = mem[3,1,2,1,4,5,6,7]9678; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm4 = xmm6[0],xmm4[1,2],xmm6[3],xmm4[4,5,6,7]9679; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload9680; AVX2-FP-NEXT: vpshufb %ymm7, %ymm0, %ymm69681; AVX2-FP-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm19682; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm1 = ymm6[0,1,2],ymm1[3,4,5,6,7],ymm6[8,9,10],ymm1[11,12,13,14,15]9683; AVX2-FP-NEXT: vpshufd {{.*#+}} xmm6 = xmm6[0,1,3,2]9684; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm4 = xmm4[0,1,2,3,4],xmm6[5,6,7]9685; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm8 = ymm4[0,1,2,3],ymm1[4,5,6,7]9686; AVX2-FP-NEXT: vpshufb %xmm2, %xmm14, %xmm19687; AVX2-FP-NEXT: vpshufhw {{.*#+}} xmm2 = xmm12[0,1,2,3,7,5,6,5]9688; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1,2,3],xmm2[4],xmm1[5,6],xmm2[7]9689; AVX2-FP-NEXT: vpshufb %ymm7, %ymm15, %ymm29690; AVX2-FP-NEXT: vpshufb %xmm3, %xmm5, %xmm39691; AVX2-FP-NEXT: vpshuflw {{.*#+}} xmm4 = xmm10[3,1,2,1,4,5,6,7]9692; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm3 = xmm4[0],xmm3[1,2],xmm4[3],xmm3[4,5,6,7]9693; AVX2-FP-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm19694; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3,4,5,6,7],ymm2[8,9,10],ymm1[11,12,13,14,15]9695; AVX2-FP-NEXT: vpshufd {{.*#+}} xmm2 = xmm2[0,1,3,2]9696; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm2 = xmm3[0,1,2,3,4],xmm2[5,6,7]9697; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm3 = ymm2[0,1,2,3],ymm1[4,5,6,7]9698; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload9699; AVX2-FP-NEXT: vpblendd $109, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm1 # 32-byte Folded Reload9700; AVX2-FP-NEXT: # ymm1 = mem[0],ymm0[1],mem[2,3],ymm0[4],mem[5,6],ymm0[7]9701; AVX2-FP-NEXT: vextracti128 $1, %ymm1, %xmm29702; AVX2-FP-NEXT: vpshufd {{.*#+}} xmm6 = xmm1[0,3,2,1]9703; AVX2-FP-NEXT: vmovdqa {{.*#+}} xmm7 = [0,1,2,3,0,1,4,5,8,9,12,13,0,1,12,13]9704; AVX2-FP-NEXT: vpshufb %xmm7, %xmm2, %xmm19705; AVX2-FP-NEXT: vpshufb %xmm7, %xmm6, %xmm49706; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm1 = xmm4[0,1,2,3],xmm1[4],xmm4[5],xmm1[6,7]9707; AVX2-FP-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm19708; AVX2-FP-NEXT: vpblendd $31, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm4 # 32-byte Folded Reload9709; AVX2-FP-NEXT: # ymm4 = mem[0,1,2,3,4],ymm1[5,6,7]9710; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload9711; AVX2-FP-NEXT: vpblendd $109, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm1 # 32-byte Folded Reload9712; AVX2-FP-NEXT: # ymm1 = mem[0],ymm0[1],mem[2,3],ymm0[4],mem[5,6],ymm0[7]9713; AVX2-FP-NEXT: vextracti128 $1, %ymm1, %xmm119714; AVX2-FP-NEXT: vpshufd {{.*#+}} xmm12 = xmm1[0,3,2,1]9715; AVX2-FP-NEXT: vpshufb %xmm7, %xmm11, %xmm19716; AVX2-FP-NEXT: vpshufb %xmm7, %xmm12, %xmm59717; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm1 = xmm5[0,1,2,3],xmm1[4],xmm5[5],xmm1[6,7]9718; AVX2-FP-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm19719; AVX2-FP-NEXT: vpblendd $31, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm5 # 32-byte Folded Reload9720; AVX2-FP-NEXT: # ymm5 = mem[0,1,2,3,4],ymm1[5,6,7]9721; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload9722; AVX2-FP-NEXT: vpblendd $109, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm1 # 32-byte Folded Reload9723; AVX2-FP-NEXT: # ymm1 = mem[0],ymm0[1],mem[2,3],ymm0[4],mem[5,6],ymm0[7]9724; AVX2-FP-NEXT: vextracti128 $1, %ymm1, %xmm139725; AVX2-FP-NEXT: vpshufd {{.*#+}} xmm14 = xmm1[0,3,2,1]9726; AVX2-FP-NEXT: vpshufb %xmm7, %xmm13, %xmm19727; AVX2-FP-NEXT: vpshufb %xmm7, %xmm14, %xmm109728; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm1 = xmm10[0,1,2,3],xmm1[4],xmm10[5],xmm1[6,7]9729; AVX2-FP-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm19730; AVX2-FP-NEXT: vpblendd $31, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload9731; AVX2-FP-NEXT: # ymm1 = mem[0,1,2,3,4],ymm1[5,6,7]9732; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload9733; AVX2-FP-NEXT: vpblendd $109, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm10 # 32-byte Folded Reload9734; AVX2-FP-NEXT: # ymm10 = mem[0],ymm0[1],mem[2,3],ymm0[4],mem[5,6],ymm0[7]9735; AVX2-FP-NEXT: vextracti128 $1, %ymm10, %xmm159736; AVX2-FP-NEXT: vpshufd {{.*#+}} xmm0 = xmm10[0,3,2,1]9737; AVX2-FP-NEXT: vpshufb %xmm7, %xmm15, %xmm109738; AVX2-FP-NEXT: vpshufb %xmm7, %xmm0, %xmm79739; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm7 = xmm7[0,1,2,3],xmm10[4],xmm7[5],xmm10[6,7]9740; AVX2-FP-NEXT: vinserti128 $1, %xmm7, %ymm0, %ymm79741; AVX2-FP-NEXT: vpblendd $31, {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm10 # 32-byte Folded Reload9742; AVX2-FP-NEXT: # ymm10 = mem[0,1,2,3,4],ymm7[5,6,7]9743; AVX2-FP-NEXT: vmovdqa {{.*#+}} xmm7 = [0,1,2,3,2,3,6,7,10,11,14,15,2,3,14,15]9744; AVX2-FP-NEXT: vpshufb %xmm7, %xmm11, %xmm119745; AVX2-FP-NEXT: vpshufb %xmm7, %xmm12, %xmm129746; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm11 = xmm12[0,1,2,3],xmm11[4],xmm12[5],xmm11[6,7]9747; AVX2-FP-NEXT: vinserti128 $1, %xmm11, %ymm0, %ymm119748; AVX2-FP-NEXT: vpblendd $31, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm11 # 32-byte Folded Reload9749; AVX2-FP-NEXT: # ymm11 = mem[0,1,2,3,4],ymm11[5,6,7]9750; AVX2-FP-NEXT: vpshufb %xmm7, %xmm2, %xmm29751; AVX2-FP-NEXT: vpshufb %xmm7, %xmm6, %xmm69752; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm2 = xmm6[0,1,2,3],xmm2[4],xmm6[5],xmm2[6,7]9753; AVX2-FP-NEXT: vinserti128 $1, %xmm2, %ymm0, %ymm29754; AVX2-FP-NEXT: vpblendd $31, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload9755; AVX2-FP-NEXT: # ymm2 = mem[0,1,2,3,4],ymm2[5,6,7]9756; AVX2-FP-NEXT: vpshufb %xmm7, %xmm13, %xmm69757; AVX2-FP-NEXT: vpshufb %xmm7, %xmm14, %xmm129758; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm6 = xmm12[0,1,2,3],xmm6[4],xmm12[5],xmm6[6,7]9759; AVX2-FP-NEXT: vinserti128 $1, %xmm6, %ymm0, %ymm69760; AVX2-FP-NEXT: vpblendd $31, {{[-0-9]+}}(%r{{[sb]}}p), %ymm6, %ymm6 # 32-byte Folded Reload9761; AVX2-FP-NEXT: # ymm6 = mem[0,1,2,3,4],ymm6[5,6,7]9762; AVX2-FP-NEXT: vpshufb %xmm7, %xmm15, %xmm129763; AVX2-FP-NEXT: vpshufb %xmm7, %xmm0, %xmm09764; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2,3],xmm12[4],xmm0[5],xmm12[6,7]9765; AVX2-FP-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm09766; AVX2-FP-NEXT: vpblendd $31, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload9767; AVX2-FP-NEXT: # ymm0 = mem[0,1,2,3,4],ymm0[5,6,7]9768; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload9769; AVX2-FP-NEXT: vmovaps %ymm7, 96(%rsi)9770; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload9771; AVX2-FP-NEXT: vmovaps %ymm7, 32(%rsi)9772; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload9773; AVX2-FP-NEXT: vmovaps %ymm7, 64(%rsi)9774; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload9775; AVX2-FP-NEXT: vmovaps %ymm7, (%rsi)9776; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload9777; AVX2-FP-NEXT: vmovaps %ymm7, 96(%rdx)9778; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload9779; AVX2-FP-NEXT: vmovaps %ymm7, 32(%rdx)9780; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload9781; AVX2-FP-NEXT: vmovaps %ymm7, 64(%rdx)9782; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload9783; AVX2-FP-NEXT: vmovaps %ymm7, (%rdx)9784; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload9785; AVX2-FP-NEXT: vmovaps %ymm7, 32(%rcx)9786; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload9787; AVX2-FP-NEXT: vmovaps %ymm7, 96(%rcx)9788; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload9789; AVX2-FP-NEXT: vmovaps %ymm7, 64(%rcx)9790; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload9791; AVX2-FP-NEXT: vmovaps %ymm7, (%rcx)9792; AVX2-FP-NEXT: vmovdqa %ymm8, 96(%r8)9793; AVX2-FP-NEXT: vmovdqa %ymm9, 32(%r8)9794; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload9795; AVX2-FP-NEXT: vmovaps %ymm7, 64(%r8)9796; AVX2-FP-NEXT: vmovdqa %ymm3, (%r8)9797; AVX2-FP-NEXT: vmovdqa %ymm10, 96(%r9)9798; AVX2-FP-NEXT: vmovdqa %ymm1, 32(%r9)9799; AVX2-FP-NEXT: vmovdqa %ymm5, (%r9)9800; AVX2-FP-NEXT: vmovdqa %ymm4, 64(%r9)9801; AVX2-FP-NEXT: movq {{[0-9]+}}(%rsp), %rax9802; AVX2-FP-NEXT: vmovdqa %ymm0, 96(%rax)9803; AVX2-FP-NEXT: vmovdqa %ymm6, 32(%rax)9804; AVX2-FP-NEXT: vmovdqa %ymm2, 64(%rax)9805; AVX2-FP-NEXT: vmovdqa %ymm11, (%rax)9806; AVX2-FP-NEXT: addq $1304, %rsp # imm = 0x5189807; AVX2-FP-NEXT: vzeroupper9808; AVX2-FP-NEXT: retq9809;9810; AVX2-FCP-LABEL: load_i16_stride6_vf64:9811; AVX2-FCP: # %bb.0:9812; AVX2-FCP-NEXT: subq $1304, %rsp # imm = 0x5189813; AVX2-FCP-NEXT: vmovdqa 64(%rdi), %ymm09814; AVX2-FCP-NEXT: vmovdqa 96(%rdi), %ymm19815; AVX2-FCP-NEXT: vmovaps 672(%rdi), %ymm29816; AVX2-FCP-NEXT: vmovaps 640(%rdi), %ymm39817; AVX2-FCP-NEXT: vmovdqa 288(%rdi), %ymm49818; AVX2-FCP-NEXT: vmovdqa 256(%rdi), %ymm59819; AVX2-FCP-NEXT: vmovdqa 416(%rdi), %ymm89820; AVX2-FCP-NEXT: vmovdqu %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9821; AVX2-FCP-NEXT: vmovdqa 384(%rdi), %ymm99822; AVX2-FCP-NEXT: vmovdqu %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9823; AVX2-FCP-NEXT: vmovdqa 480(%rdi), %ymm69824; AVX2-FCP-NEXT: vmovdqa 448(%rdi), %ymm79825; AVX2-FCP-NEXT: vperm2i128 {{.*#+}} ymm10 = ymm7[2,3],ymm6[2,3]9826; AVX2-FCP-NEXT: vmovdqu %ymm10, (%rsp) # 32-byte Spill9827; AVX2-FCP-NEXT: vperm2i128 {{.*#+}} ymm7 = ymm7[0,1],ymm6[0,1]9828; AVX2-FCP-NEXT: vmovdqu %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9829; AVX2-FCP-NEXT: vperm2i128 {{.*#+}} ymm13 = ymm5[2,3],ymm4[2,3]9830; AVX2-FCP-NEXT: vmovdqu %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9831; AVX2-FCP-NEXT: vperm2i128 {{.*#+}} ymm15 = ymm5[0,1],ymm4[0,1]9832; AVX2-FCP-NEXT: vperm2f128 {{.*#+}} ymm4 = ymm3[2,3],ymm2[2,3]9833; AVX2-FCP-NEXT: vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9834; AVX2-FCP-NEXT: vperm2f128 {{.*#+}} ymm2 = ymm3[0,1],ymm2[0,1]9835; AVX2-FCP-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9836; AVX2-FCP-NEXT: vperm2i128 {{.*#+}} ymm12 = ymm0[2,3],ymm1[2,3]9837; AVX2-FCP-NEXT: vmovdqu %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9838; AVX2-FCP-NEXT: vperm2i128 {{.*#+}} ymm14 = ymm0[0,1],ymm1[0,1]9839; AVX2-FCP-NEXT: vmovdqu %ymm14, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9840; AVX2-FCP-NEXT: vmovdqa {{.*#+}} ymm2 = [8,9,4,5,4,5,6,7,0,1,4,5,0,1,12,13,24,25,20,21,20,21,22,23,16,17,20,21,16,17,28,29]9841; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm8[0,1],ymm9[2],ymm8[3,4],ymm9[5],ymm8[6,7]9842; AVX2-FCP-NEXT: vmovdqa {{.*#+}} xmm3 = [8,9,u,u,0,1,12,13,u,u,12,13,12,13,14,15]9843; AVX2-FCP-NEXT: vpshufb %xmm3, %xmm1, %xmm09844; AVX2-FCP-NEXT: vextracti128 $1, %ymm1, %xmm59845; AVX2-FCP-NEXT: vpshuflw {{.*#+}} xmm4 = xmm5[2,2,2,2,4,5,6,7]9846; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm6 = xmm0[0],xmm4[1],xmm0[2,3],xmm4[4],xmm0[5,6,7]9847; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm4 = ymm10[0],ymm7[1],ymm10[2,3,4,5],ymm7[6],ymm10[7]9848; AVX2-FCP-NEXT: vpshufb %ymm2, %ymm4, %ymm79849; AVX2-FCP-NEXT: vpmovsxbw {{.*#+}} xmm0 = [65535,65535,65535,65535,65535,0,0,0]9850; AVX2-FCP-NEXT: vpblendvb %ymm0, %ymm6, %ymm7, %ymm69851; AVX2-FCP-NEXT: vmovdqu %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9852; AVX2-FCP-NEXT: vmovdqa (%rdi), %ymm69853; AVX2-FCP-NEXT: vmovdqu %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9854; AVX2-FCP-NEXT: vmovdqa 32(%rdi), %ymm79855; AVX2-FCP-NEXT: vmovdqu %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9856; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm7 = ymm7[0,1],ymm6[2],ymm7[3,4],ymm6[5],ymm7[6,7]9857; AVX2-FCP-NEXT: vpshufb %xmm3, %xmm7, %xmm69858; AVX2-FCP-NEXT: vextracti128 $1, %ymm7, %xmm119859; AVX2-FCP-NEXT: vpshuflw {{.*#+}} xmm8 = xmm11[2,2,2,2,4,5,6,7]9860; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm6 = xmm6[0],xmm8[1],xmm6[2,3],xmm8[4],xmm6[5,6,7]9861; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm10 = ymm12[0],ymm14[1],ymm12[2,3,4,5],ymm14[6],ymm12[7]9862; AVX2-FCP-NEXT: vpshufb %ymm2, %ymm10, %ymm89863; AVX2-FCP-NEXT: vpblendvb %ymm0, %ymm6, %ymm8, %ymm69864; AVX2-FCP-NEXT: vmovdqu %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9865; AVX2-FCP-NEXT: vmovdqa 224(%rdi), %ymm89866; AVX2-FCP-NEXT: vmovdqu %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9867; AVX2-FCP-NEXT: vmovdqa 192(%rdi), %ymm69868; AVX2-FCP-NEXT: vmovdqu %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9869; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm6 = ymm8[0,1],ymm6[2],ymm8[3,4],ymm6[5],ymm8[6,7]9870; AVX2-FCP-NEXT: vpshufb %xmm3, %xmm6, %xmm89871; AVX2-FCP-NEXT: vextracti128 $1, %ymm6, %xmm99872; AVX2-FCP-NEXT: vpshuflw {{.*#+}} xmm12 = xmm9[2,2,2,2,4,5,6,7]9873; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm12 = xmm8[0],xmm12[1],xmm8[2,3],xmm12[4],xmm8[5,6,7]9874; AVX2-FCP-NEXT: vmovdqu %ymm15, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9875; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm8 = ymm13[0],ymm15[1],ymm13[2,3,4,5],ymm15[6],ymm13[7]9876; AVX2-FCP-NEXT: vpshufb %ymm2, %ymm8, %ymm139877; AVX2-FCP-NEXT: vpblendvb %ymm0, %ymm12, %ymm13, %ymm129878; AVX2-FCP-NEXT: vmovdqu %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9879; AVX2-FCP-NEXT: vmovdqa 608(%rdi), %ymm139880; AVX2-FCP-NEXT: vmovdqu %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9881; AVX2-FCP-NEXT: vmovdqa 576(%rdi), %ymm129882; AVX2-FCP-NEXT: vmovdqu %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9883; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm12 = ymm13[0,1],ymm12[2],ymm13[3,4],ymm12[5],ymm13[6,7]9884; AVX2-FCP-NEXT: vpshufb %xmm3, %xmm12, %xmm139885; AVX2-FCP-NEXT: vextracti128 $1, %ymm12, %xmm39886; AVX2-FCP-NEXT: vpshuflw {{.*#+}} xmm14 = xmm3[2,2,2,2,4,5,6,7]9887; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm14 = xmm13[0],xmm14[1],xmm13[2,3],xmm14[4],xmm13[5,6,7]9888; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm13 # 32-byte Reload9889; AVX2-FCP-NEXT: vpblendd $189, {{[-0-9]+}}(%r{{[sb]}}p), %ymm13, %ymm13 # 32-byte Folded Reload9890; AVX2-FCP-NEXT: # ymm13 = mem[0],ymm13[1],mem[2,3,4,5],ymm13[6],mem[7]9891; AVX2-FCP-NEXT: vpshufb %ymm2, %ymm13, %ymm29892; AVX2-FCP-NEXT: vpblendvb %ymm0, %ymm14, %ymm2, %ymm29893; AVX2-FCP-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9894; AVX2-FCP-NEXT: vmovdqa {{.*#+}} xmm2 = [10,11,6,7,2,3,14,15,10,11,10,11,12,13,14,15]9895; AVX2-FCP-NEXT: vpshufb %xmm2, %xmm11, %xmm119896; AVX2-FCP-NEXT: vpshufb %xmm2, %xmm7, %xmm79897; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm11 = xmm7[0],xmm11[1],xmm7[2,3],xmm11[4],xmm7[5,6,7]9898; AVX2-FCP-NEXT: vmovdqa {{.*#+}} ymm7 = [10,11,6,7,4,5,6,7,6,7,6,7,2,3,14,15,26,27,22,23,20,21,22,23,22,23,22,23,18,19,30,31]9899; AVX2-FCP-NEXT: vpshufb %ymm7, %ymm10, %ymm109900; AVX2-FCP-NEXT: vpblendvb %ymm0, %ymm11, %ymm10, %ymm109901; AVX2-FCP-NEXT: vmovdqu %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9902; AVX2-FCP-NEXT: vpshufb %xmm2, %xmm5, %xmm59903; AVX2-FCP-NEXT: vpshufb %xmm2, %xmm1, %xmm19904; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0],xmm5[1],xmm1[2,3],xmm5[4],xmm1[5,6,7]9905; AVX2-FCP-NEXT: vpshufb %ymm7, %ymm4, %ymm49906; AVX2-FCP-NEXT: vpblendvb %ymm0, %ymm1, %ymm4, %ymm19907; AVX2-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9908; AVX2-FCP-NEXT: vpshufb %xmm2, %xmm9, %xmm19909; AVX2-FCP-NEXT: vpshufb %xmm2, %xmm6, %xmm49910; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm1 = xmm4[0],xmm1[1],xmm4[2,3],xmm1[4],xmm4[5,6,7]9911; AVX2-FCP-NEXT: vpshufb %ymm7, %ymm8, %ymm49912; AVX2-FCP-NEXT: vpblendvb %ymm0, %ymm1, %ymm4, %ymm19913; AVX2-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9914; AVX2-FCP-NEXT: vpshufb %ymm7, %ymm13, %ymm19915; AVX2-FCP-NEXT: vpshufb %xmm2, %xmm3, %xmm39916; AVX2-FCP-NEXT: vpshufb %xmm2, %xmm12, %xmm29917; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0],xmm3[1],xmm2[2,3],xmm3[4],xmm2[5,6,7]9918; AVX2-FCP-NEXT: vpblendvb %ymm0, %ymm2, %ymm1, %ymm09919; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9920; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload9921; AVX2-FCP-NEXT: vpblendd $109, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm7 # 32-byte Folded Reload9922; AVX2-FCP-NEXT: # ymm7 = mem[0],ymm0[1],mem[2,3],ymm0[4],mem[5,6],ymm0[7]9923; AVX2-FCP-NEXT: vextracti128 $1, %ymm7, %xmm09924; AVX2-FCP-NEXT: vpshufd {{.*#+}} xmm2 = xmm0[2,1,0,3]9925; AVX2-FCP-NEXT: vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill9926; AVX2-FCP-NEXT: vmovdqa {{.*#+}} xmm1 = [0,1,12,13,0,1,4,5,8,9,12,13,12,13,14,15]9927; AVX2-FCP-NEXT: vpshufb %xmm1, %xmm7, %xmm09928; AVX2-FCP-NEXT: vpshufb %xmm1, %xmm2, %xmm29929; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1],xmm2[2],xmm0[3],xmm2[4,5],xmm0[6,7]9930; AVX2-FCP-NEXT: vmovdqa {{.*#+}} ymm5 = [u,u,u,u,u,u,u,u,u,u,u,u,8,9,4,5,16,17,28,29,24,25,28,29,24,25,28,29,24,25,20,21]9931; AVX2-FCP-NEXT: vmovdqu (%rsp), %ymm2 # 32-byte Reload9932; AVX2-FCP-NEXT: vpblendd $189, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload9933; AVX2-FCP-NEXT: # ymm2 = mem[0],ymm2[1],mem[2,3,4,5],ymm2[6],mem[7]9934; AVX2-FCP-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9935; AVX2-FCP-NEXT: vpshufb %ymm5, %ymm2, %ymm29936; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm0[0,1,2],ymm2[3,4,5,6,7]9937; AVX2-FCP-NEXT: vmovdqa 544(%rdi), %ymm09938; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9939; AVX2-FCP-NEXT: vmovdqa 512(%rdi), %ymm39940; AVX2-FCP-NEXT: vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9941; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm11 = ymm3[0,1],ymm0[2],ymm3[3,4],ymm0[5],ymm3[6,7]9942; AVX2-FCP-NEXT: vmovdqa {{.*#+}} xmm0 = [0,1,4,5,4,5,4,5,0,1,12,13,8,9,4,5]9943; AVX2-FCP-NEXT: vpshufb %xmm0, %xmm11, %xmm39944; AVX2-FCP-NEXT: vextracti128 $1, %ymm11, %xmm49945; AVX2-FCP-NEXT: vmovdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill9946; AVX2-FCP-NEXT: vpshufb %xmm0, %xmm4, %xmm49947; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm3 = xmm4[0,1,2],xmm3[3],xmm4[4,5],xmm3[6],xmm4[7]9948; AVX2-FCP-NEXT: vinserti128 $1, %xmm3, %ymm0, %ymm39949; AVX2-FCP-NEXT: vpblendw {{.*#+}} ymm3 = ymm2[0,1,2],ymm3[3,4,5,6,7],ymm2[8,9,10],ymm3[11,12,13,14,15]9950; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4,5,6,7]9951; AVX2-FCP-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9952; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload9953; AVX2-FCP-NEXT: vpblendd $109, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm6 # 32-byte Folded Reload9954; AVX2-FCP-NEXT: # ymm6 = mem[0],ymm2[1],mem[2,3],ymm2[4],mem[5,6],ymm2[7]9955; AVX2-FCP-NEXT: vextracti128 $1, %ymm6, %xmm29956; AVX2-FCP-NEXT: vpshufd {{.*#+}} xmm3 = xmm2[2,1,0,3]9957; AVX2-FCP-NEXT: vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill9958; AVX2-FCP-NEXT: vpshufb %xmm1, %xmm6, %xmm29959; AVX2-FCP-NEXT: vpshufb %xmm1, %xmm3, %xmm39960; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0,1],xmm3[2],xmm2[3],xmm3[4,5],xmm2[6,7]9961; AVX2-FCP-NEXT: vpblendd $66, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm3 # 32-byte Folded Reload9962; AVX2-FCP-NEXT: # ymm3 = ymm15[0],mem[1],ymm15[2,3,4,5],mem[6],ymm15[7]9963; AVX2-FCP-NEXT: vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9964; AVX2-FCP-NEXT: vpshufb %ymm5, %ymm3, %ymm39965; AVX2-FCP-NEXT: vmovdqa %ymm5, %ymm159966; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2],ymm3[3,4,5,6,7]9967; AVX2-FCP-NEXT: vmovdqa 352(%rdi), %ymm39968; AVX2-FCP-NEXT: vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9969; AVX2-FCP-NEXT: vmovdqa 320(%rdi), %ymm49970; AVX2-FCP-NEXT: vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9971; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm8 = ymm4[0,1],ymm3[2],ymm4[3,4],ymm3[5],ymm4[6,7]9972; AVX2-FCP-NEXT: vpshufb %xmm0, %xmm8, %xmm39973; AVX2-FCP-NEXT: vextracti128 $1, %ymm8, %xmm49974; AVX2-FCP-NEXT: vmovdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill9975; AVX2-FCP-NEXT: vpshufb %xmm0, %xmm4, %xmm49976; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm3 = xmm4[0,1,2],xmm3[3],xmm4[4,5],xmm3[6],xmm4[7]9977; AVX2-FCP-NEXT: vinserti128 $1, %xmm3, %ymm0, %ymm39978; AVX2-FCP-NEXT: vpblendw {{.*#+}} ymm3 = ymm2[0,1,2],ymm3[3,4,5,6,7],ymm2[8,9,10],ymm3[11,12,13,14,15]9979; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4,5,6,7]9980; AVX2-FCP-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9981; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload9982; AVX2-FCP-NEXT: vpblendd $109, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm5 # 32-byte Folded Reload9983; AVX2-FCP-NEXT: # ymm5 = mem[0],ymm2[1],mem[2,3],ymm2[4],mem[5,6],ymm2[7]9984; AVX2-FCP-NEXT: vextracti128 $1, %ymm5, %xmm29985; AVX2-FCP-NEXT: vpshufd {{.*#+}} xmm3 = xmm2[2,1,0,3]9986; AVX2-FCP-NEXT: vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill9987; AVX2-FCP-NEXT: vpshufb %xmm1, %xmm5, %xmm29988; AVX2-FCP-NEXT: vpshufb %xmm1, %xmm3, %xmm39989; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0,1],xmm3[2],xmm2[3],xmm3[4,5],xmm2[6,7]9990; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload9991; AVX2-FCP-NEXT: vpblendd $66, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm3 # 32-byte Folded Reload9992; AVX2-FCP-NEXT: # ymm3 = ymm3[0],mem[1],ymm3[2,3,4,5],mem[6],ymm3[7]9993; AVX2-FCP-NEXT: vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9994; AVX2-FCP-NEXT: vpshufb %ymm15, %ymm3, %ymm39995; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2],ymm3[3,4,5,6,7]9996; AVX2-FCP-NEXT: vmovdqa 736(%rdi), %ymm39997; AVX2-FCP-NEXT: vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9998; AVX2-FCP-NEXT: vmovdqa 704(%rdi), %ymm49999; AVX2-FCP-NEXT: vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill10000; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm4 = ymm4[0,1],ymm3[2],ymm4[3,4],ymm3[5],ymm4[6,7]10001; AVX2-FCP-NEXT: vpshufb %xmm0, %xmm4, %xmm910002; AVX2-FCP-NEXT: vextracti128 $1, %ymm4, %xmm310003; AVX2-FCP-NEXT: vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill10004; AVX2-FCP-NEXT: vpshufb %xmm0, %xmm3, %xmm1010005; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm9 = xmm10[0,1,2],xmm9[3],xmm10[4,5],xmm9[6],xmm10[7]10006; AVX2-FCP-NEXT: vinserti128 $1, %xmm9, %ymm0, %ymm910007; AVX2-FCP-NEXT: vpblendw {{.*#+}} ymm9 = ymm2[0,1,2],ymm9[3,4,5,6,7],ymm2[8,9,10],ymm9[11,12,13,14,15]10008; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm9[4,5,6,7]10009; AVX2-FCP-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill10010; AVX2-FCP-NEXT: vmovdqa 160(%rdi), %ymm210011; AVX2-FCP-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill10012; AVX2-FCP-NEXT: vmovdqa 128(%rdi), %ymm310013; AVX2-FCP-NEXT: vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill10014; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm3 = ymm3[0,1],ymm2[2],ymm3[3,4],ymm2[5],ymm3[6,7]10015; AVX2-FCP-NEXT: vpshufb %xmm0, %xmm3, %xmm910016; AVX2-FCP-NEXT: vextracti128 $1, %ymm3, %xmm1310017; AVX2-FCP-NEXT: vpshufb %xmm0, %xmm13, %xmm010018; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm9 = xmm0[0,1,2],xmm9[3],xmm0[4,5],xmm9[6],xmm0[7]10019; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload10020; AVX2-FCP-NEXT: vpblendd $146, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm2 # 32-byte Folded Reload10021; AVX2-FCP-NEXT: # ymm2 = ymm0[0],mem[1],ymm0[2,3],mem[4],ymm0[5,6],mem[7]10022; AVX2-FCP-NEXT: vextracti128 $1, %ymm2, %xmm1010023; AVX2-FCP-NEXT: vpshufd {{.*#+}} xmm14 = xmm10[2,1,0,3]10024; AVX2-FCP-NEXT: vpshufb %xmm1, %xmm2, %xmm1210025; AVX2-FCP-NEXT: vpshufb %xmm1, %xmm14, %xmm110026; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm12 = xmm12[0,1],xmm1[2],xmm12[3],xmm1[4,5],xmm12[6,7]10027; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload10028; AVX2-FCP-NEXT: vpblendd $189, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm10 # 32-byte Folded Reload10029; AVX2-FCP-NEXT: # ymm10 = mem[0],ymm0[1],mem[2,3,4,5],ymm0[6],mem[7]10030; AVX2-FCP-NEXT: vpshufb %ymm15, %ymm10, %ymm1510031; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm12 = ymm12[0,1,2],ymm15[3,4,5,6,7]10032; AVX2-FCP-NEXT: vinserti128 $1, %xmm9, %ymm0, %ymm910033; AVX2-FCP-NEXT: vpblendw {{.*#+}} ymm9 = ymm12[0,1,2],ymm9[3,4,5,6,7],ymm12[8,9,10],ymm9[11,12,13,14,15]10034; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm12[0,1,2,3],ymm9[4,5,6,7]10035; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill10036; AVX2-FCP-NEXT: vpbroadcastq {{.*#+}} xmm12 = [6,7,2,3,12,13,14,15,6,7,2,3,12,13,14,15]10037; AVX2-FCP-NEXT: vpshufb %xmm12, %xmm7, %xmm710038; AVX2-FCP-NEXT: vpshuflw $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Folded Reload10039; AVX2-FCP-NEXT: # xmm9 = mem[1,1,1,1,4,5,6,7]10040; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm15 = xmm7[0,1],xmm9[2],xmm7[3,4],xmm9[5],xmm7[6],xmm9[7]10041; AVX2-FCP-NEXT: vmovdqa {{.*#+}} ymm7 = [u,u,u,u,u,u,u,u,u,u,u,u,10,11,6,7,18,19,30,31,26,27,26,27,30,31,26,27,26,27,22,23]10042; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload10043; AVX2-FCP-NEXT: vpshufb %ymm7, %ymm0, %ymm010044; AVX2-FCP-NEXT: vmovdqa {{.*#+}} xmm9 = [2,3,6,7,4,5,0,1,10,11,14,15,12,13,14,15]10045; AVX2-FCP-NEXT: vpshufb %xmm9, %xmm15, %xmm1510046; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm15[0,1,2],ymm0[3,4,5,6,7]10047; AVX2-FCP-NEXT: vmovdqa {{.*#+}} xmm15 = [6,7,2,3,4,5,u,u,2,3,14,15,u,u,6,7]10048; AVX2-FCP-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload10049; AVX2-FCP-NEXT: vpshufb %xmm15, %xmm1, %xmm110050; AVX2-FCP-NEXT: vpshufhw {{.*#+}} xmm11 = xmm11[0,1,2,3,5,5,5,5]10051; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1,2],xmm11[3],xmm1[4,5],xmm11[6],xmm1[7]10052; AVX2-FCP-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm110053; AVX2-FCP-NEXT: vpblendw {{.*#+}} ymm1 = ymm0[0,1,2],ymm1[3,4,5,6,7],ymm0[8,9,10],ymm1[11,12,13,14,15]10054; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]10055; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill10056; AVX2-FCP-NEXT: vpshufb %xmm12, %xmm6, %xmm010057; AVX2-FCP-NEXT: vpshuflw $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload10058; AVX2-FCP-NEXT: # xmm1 = mem[1,1,1,1,4,5,6,7]10059; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1],xmm1[2],xmm0[3,4],xmm1[5],xmm0[6],xmm1[7]10060; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload10061; AVX2-FCP-NEXT: vpshufb %ymm7, %ymm1, %ymm110062; AVX2-FCP-NEXT: vpshufb %xmm9, %xmm0, %xmm010063; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4,5,6,7]10064; AVX2-FCP-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload10065; AVX2-FCP-NEXT: vpshufb %xmm15, %xmm1, %xmm110066; AVX2-FCP-NEXT: vpshufhw {{.*#+}} xmm6 = xmm8[0,1,2,3,5,5,5,5]10067; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1,2],xmm6[3],xmm1[4,5],xmm6[6],xmm1[7]10068; AVX2-FCP-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm110069; AVX2-FCP-NEXT: vpblendw {{.*#+}} ymm1 = ymm0[0,1,2],ymm1[3,4,5,6,7],ymm0[8,9,10],ymm1[11,12,13,14,15]10070; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]10071; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill10072; AVX2-FCP-NEXT: vpshufb %xmm12, %xmm5, %xmm010073; AVX2-FCP-NEXT: vpshuflw $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload10074; AVX2-FCP-NEXT: # xmm1 = mem[1,1,1,1,4,5,6,7]10075; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1],xmm1[2],xmm0[3,4],xmm1[5],xmm0[6],xmm1[7]10076; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload10077; AVX2-FCP-NEXT: vpshufb %ymm7, %ymm1, %ymm110078; AVX2-FCP-NEXT: vpshufb %xmm9, %xmm0, %xmm010079; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4,5,6,7]10080; AVX2-FCP-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload10081; AVX2-FCP-NEXT: vpshufb %xmm15, %xmm1, %xmm110082; AVX2-FCP-NEXT: vpshufhw {{.*#+}} xmm4 = xmm4[0,1,2,3,5,5,5,5]10083; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1,2],xmm4[3],xmm1[4,5],xmm4[6],xmm1[7]10084; AVX2-FCP-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm110085; AVX2-FCP-NEXT: vpblendw {{.*#+}} ymm1 = ymm0[0,1,2],ymm1[3,4,5,6,7],ymm0[8,9,10],ymm1[11,12,13,14,15]10086; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]10087; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill10088; AVX2-FCP-NEXT: vpshufb %xmm15, %xmm13, %xmm010089; AVX2-FCP-NEXT: vpshufhw {{.*#+}} xmm1 = xmm3[0,1,2,3,5,5,5,5]10090; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2],xmm1[3],xmm0[4,5],xmm1[6],xmm0[7]10091; AVX2-FCP-NEXT: vpshufb %ymm7, %ymm10, %ymm110092; AVX2-FCP-NEXT: vpshufb %xmm12, %xmm2, %xmm210093; AVX2-FCP-NEXT: vpshuflw {{.*#+}} xmm3 = xmm14[1,1,1,1,4,5,6,7]10094; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0,1],xmm3[2],xmm2[3,4],xmm3[5],xmm2[6],xmm3[7]10095; AVX2-FCP-NEXT: vpshufb %xmm9, %xmm2, %xmm210096; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3,4,5,6,7]10097; AVX2-FCP-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm010098; AVX2-FCP-NEXT: vpblendw {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3,4,5,6,7],ymm1[8,9,10],ymm0[11,12,13,14,15]10099; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]10100; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill10101; AVX2-FCP-NEXT: vmovdqu (%rsp), %ymm0 # 32-byte Reload10102; AVX2-FCP-NEXT: vpblendd $107, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm3 # 32-byte Folded Reload10103; AVX2-FCP-NEXT: # ymm3 = mem[0,1],ymm0[2],mem[3],ymm0[4],mem[5,6],ymm0[7]10104; AVX2-FCP-NEXT: vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill10105; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload10106; AVX2-FCP-NEXT: vpblendd $36, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload10107; AVX2-FCP-NEXT: # ymm0 = ymm0[0,1],mem[2],ymm0[3,4],mem[5],ymm0[6,7]10108; AVX2-FCP-NEXT: vpshufd {{.*#+}} xmm1 = xmm0[2,1,0,3]10109; AVX2-FCP-NEXT: vmovdqa %xmm1, (%rsp) # 16-byte Spill10110; AVX2-FCP-NEXT: vextracti128 $1, %ymm0, %xmm010111; AVX2-FCP-NEXT: vpshufd {{.*#+}} xmm2 = xmm0[0,1,2,1]10112; AVX2-FCP-NEXT: vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill10113; AVX2-FCP-NEXT: vmovdqa {{.*#+}} xmm12 = [0,1,0,1,0,1,0,1,u,u,8,9,12,13,u,u]10114; AVX2-FCP-NEXT: vpshufb %xmm12, %xmm1, %xmm010115; AVX2-FCP-NEXT: vpshufhw {{.*#+}} xmm1 = xmm2[0,1,2,3,6,5,6,4]10116; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2,3],xmm1[4],xmm0[5,6],xmm1[7]10117; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload10118; AVX2-FCP-NEXT: vpblendd $219, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload10119; AVX2-FCP-NEXT: # ymm1 = mem[0,1],ymm1[2],mem[3,4],ymm1[5],mem[6,7]10120; AVX2-FCP-NEXT: vextracti128 $1, %ymm1, %xmm210121; AVX2-FCP-NEXT: vpshufd {{.*#+}} xmm9 = xmm2[0,3,2,1]10122; AVX2-FCP-NEXT: vpshufd {{.*#+}} xmm7 = xmm1[2,1,2,3]10123; AVX2-FCP-NEXT: vpbroadcastq {{.*#+}} xmm10 = [12,13,0,1,4,5,0,0,12,13,0,1,4,5,0,0]10124; AVX2-FCP-NEXT: vpshufb %xmm10, %xmm9, %xmm110125; AVX2-FCP-NEXT: vpshuflw {{.*#+}} xmm2 = xmm7[2,1,2,0,4,5,6,7]10126; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm1 = xmm2[0],xmm1[1,2],xmm2[3],xmm1[4,5,6,7]10127; AVX2-FCP-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm010128; AVX2-FCP-NEXT: vmovdqa {{.*#+}} ymm11 = [4,5,0,1,12,13,14,15,8,9,12,13,0,1,u,u,20,21,16,17,28,29,30,31,24,25,28,29,16,17,u,u]10129; AVX2-FCP-NEXT: vpshufb %ymm11, %ymm3, %ymm210130; AVX2-FCP-NEXT: vpblendw {{.*#+}} ymm0 = ymm2[0,1,2],ymm0[3,4,5,6,7],ymm2[8,9,10],ymm0[11,12,13,14,15]10131; AVX2-FCP-NEXT: vpshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,6,5,4]10132; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1,2,3,4],xmm2[5,6,7]10133; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]10134; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill10135; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload10136; AVX2-FCP-NEXT: vpblendd $148, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm3 # 32-byte Folded Reload10137; AVX2-FCP-NEXT: # ymm3 = ymm0[0,1],mem[2],ymm0[3],mem[4],ymm0[5,6],mem[7]10138; AVX2-FCP-NEXT: vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill10139; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload10140; AVX2-FCP-NEXT: vpblendd $36, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload10141; AVX2-FCP-NEXT: # ymm0 = ymm0[0,1],mem[2],ymm0[3,4],mem[5],ymm0[6,7]10142; AVX2-FCP-NEXT: vpshufd {{.*#+}} xmm1 = xmm0[2,1,0,3]10143; AVX2-FCP-NEXT: vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill10144; AVX2-FCP-NEXT: vextracti128 $1, %ymm0, %xmm010145; AVX2-FCP-NEXT: vpshufd {{.*#+}} xmm2 = xmm0[0,1,2,1]10146; AVX2-FCP-NEXT: vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill10147; AVX2-FCP-NEXT: vpshufb %xmm12, %xmm1, %xmm010148; AVX2-FCP-NEXT: vpshufhw {{.*#+}} xmm1 = xmm2[0,1,2,3,6,5,6,4]10149; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2,3],xmm1[4],xmm0[5,6],xmm1[7]10150; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload10151; AVX2-FCP-NEXT: vpblendd $219, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload10152; AVX2-FCP-NEXT: # ymm1 = mem[0,1],ymm1[2],mem[3,4],ymm1[5],mem[6,7]10153; AVX2-FCP-NEXT: vextracti128 $1, %ymm1, %xmm210154; AVX2-FCP-NEXT: vpshufd {{.*#+}} xmm2 = xmm2[0,3,2,1]10155; AVX2-FCP-NEXT: vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill10156; AVX2-FCP-NEXT: vpshufd {{.*#+}} xmm4 = xmm1[2,1,2,3]10157; AVX2-FCP-NEXT: vmovdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill10158; AVX2-FCP-NEXT: vpshufb %xmm10, %xmm2, %xmm110159; AVX2-FCP-NEXT: vpshuflw {{.*#+}} xmm2 = xmm4[2,1,2,0,4,5,6,7]10160; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm1 = xmm2[0],xmm1[1,2],xmm2[3],xmm1[4,5,6,7]10161; AVX2-FCP-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm010162; AVX2-FCP-NEXT: vpshufb %ymm11, %ymm3, %ymm210163; AVX2-FCP-NEXT: vpblendw {{.*#+}} ymm0 = ymm2[0,1,2],ymm0[3,4,5,6,7],ymm2[8,9,10],ymm0[11,12,13,14,15]10164; AVX2-FCP-NEXT: vpshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,6,5,4]10165; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1,2,3,4],xmm2[5,6,7]10166; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]10167; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill10168; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload10169; AVX2-FCP-NEXT: vpblendd $107, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm13 # 32-byte Folded Reload10170; AVX2-FCP-NEXT: # ymm13 = mem[0,1],ymm0[2],mem[3],ymm0[4],mem[5,6],ymm0[7]10171; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload10172; AVX2-FCP-NEXT: vpblendd $36, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload10173; AVX2-FCP-NEXT: # ymm0 = ymm0[0,1],mem[2],ymm0[3,4],mem[5],ymm0[6,7]10174; AVX2-FCP-NEXT: vpshufd {{.*#+}} xmm8 = xmm0[2,1,0,3]10175; AVX2-FCP-NEXT: vextracti128 $1, %ymm0, %xmm010176; AVX2-FCP-NEXT: vpshufd {{.*#+}} xmm6 = xmm0[0,1,2,1]10177; AVX2-FCP-NEXT: vpshufb %xmm12, %xmm8, %xmm010178; AVX2-FCP-NEXT: vpshufhw {{.*#+}} xmm1 = xmm6[0,1,2,3,6,5,6,4]10179; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm2 = xmm0[0,1,2,3],xmm1[4],xmm0[5,6],xmm1[7]10180; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload10181; AVX2-FCP-NEXT: vpblendd $219, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm1 # 32-byte Folded Reload10182; AVX2-FCP-NEXT: # ymm1 = mem[0,1],ymm0[2],mem[3,4],ymm0[5],mem[6,7]10183; AVX2-FCP-NEXT: vextracti128 $1, %ymm1, %xmm010184; AVX2-FCP-NEXT: vpshufd {{.*#+}} xmm4 = xmm0[0,3,2,1]10185; AVX2-FCP-NEXT: vpshufd {{.*#+}} xmm1 = xmm1[2,1,2,3]10186; AVX2-FCP-NEXT: vpshufb %xmm10, %xmm4, %xmm310187; AVX2-FCP-NEXT: vpshuflw {{.*#+}} xmm5 = xmm1[2,1,2,0,4,5,6,7]10188; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm3 = xmm5[0],xmm3[1,2],xmm5[3],xmm3[4,5,6,7]10189; AVX2-FCP-NEXT: vinserti128 $1, %xmm2, %ymm0, %ymm210190; AVX2-FCP-NEXT: vpshufb %ymm11, %ymm13, %ymm510191; AVX2-FCP-NEXT: vpblendw {{.*#+}} ymm2 = ymm5[0,1,2],ymm2[3,4,5,6,7],ymm5[8,9,10],ymm2[11,12,13,14,15]10192; AVX2-FCP-NEXT: vpshufhw {{.*#+}} xmm5 = xmm5[0,1,2,3,4,6,5,4]10193; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm3 = xmm3[0,1,2,3,4],xmm5[5,6,7]10194; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm3[0,1,2,3],ymm2[4,5,6,7]10195; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill10196; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload10197; AVX2-FCP-NEXT: vpblendd $36, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm2 # 32-byte Folded Reload10198; AVX2-FCP-NEXT: # ymm2 = ymm0[0,1],mem[2],ymm0[3,4],mem[5],ymm0[6,7]10199; AVX2-FCP-NEXT: vpshufd {{.*#+}} xmm14 = xmm2[2,1,0,3]10200; AVX2-FCP-NEXT: vpshufb %xmm12, %xmm14, %xmm310201; AVX2-FCP-NEXT: vextracti128 $1, %ymm2, %xmm210202; AVX2-FCP-NEXT: vpshufd {{.*#+}} xmm12 = xmm2[0,1,2,1]10203; AVX2-FCP-NEXT: vpshufhw {{.*#+}} xmm2 = xmm12[0,1,2,3,6,5,6,4]10204; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm2 = xmm3[0,1,2,3],xmm2[4],xmm3[5,6],xmm2[7]10205; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload10206; AVX2-FCP-NEXT: vpblendd $107, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm15 # 32-byte Folded Reload10207; AVX2-FCP-NEXT: # ymm15 = mem[0,1],ymm0[2],mem[3],ymm0[4],mem[5,6],ymm0[7]10208; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload10209; AVX2-FCP-NEXT: vpblendd $36, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm3 # 32-byte Folded Reload10210; AVX2-FCP-NEXT: # ymm3 = ymm0[0,1],mem[2],ymm0[3,4],mem[5],ymm0[6,7]10211; AVX2-FCP-NEXT: vextracti128 $1, %ymm3, %xmm510212; AVX2-FCP-NEXT: vpshufd {{.*#+}} xmm5 = xmm5[0,3,2,1]10213; AVX2-FCP-NEXT: vpshufb %xmm10, %xmm5, %xmm010214; AVX2-FCP-NEXT: vpshufd {{.*#+}} xmm10 = xmm3[2,1,2,3]10215; AVX2-FCP-NEXT: vpshuflw {{.*#+}} xmm3 = xmm10[2,1,2,0,4,5,6,7]10216; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm0 = xmm3[0],xmm0[1,2],xmm3[3],xmm0[4,5,6,7]10217; AVX2-FCP-NEXT: vinserti128 $1, %xmm2, %ymm0, %ymm210218; AVX2-FCP-NEXT: vpshufb %ymm11, %ymm15, %ymm310219; AVX2-FCP-NEXT: vpblendw {{.*#+}} ymm2 = ymm3[0,1,2],ymm2[3,4,5,6,7],ymm3[8,9,10],ymm2[11,12,13,14,15]10220; AVX2-FCP-NEXT: vpshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,4,6,5,4]10221; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2,3,4],xmm3[5,6,7]10222; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm2[4,5,6,7]10223; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill10224; AVX2-FCP-NEXT: vmovdqa {{.*#+}} xmm2 = [2,3,2,3,2,3,2,3,u,u,10,11,14,15,u,u]10225; AVX2-FCP-NEXT: vmovdqa (%rsp), %xmm0 # 16-byte Reload10226; AVX2-FCP-NEXT: vpshufb %xmm2, %xmm0, %xmm010227; AVX2-FCP-NEXT: vpshufhw $103, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Folded Reload10228; AVX2-FCP-NEXT: # xmm3 = mem[0,1,2,3,7,5,6,5]10229; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2,3],xmm3[4],xmm0[5,6],xmm3[7]10230; AVX2-FCP-NEXT: vpbroadcastq {{.*#+}} xmm3 = [14,15,2,3,6,7,0,0,14,15,2,3,6,7,0,0]10231; AVX2-FCP-NEXT: vpshufb %xmm3, %xmm9, %xmm910232; AVX2-FCP-NEXT: vpshuflw {{.*#+}} xmm7 = xmm7[3,1,2,1,4,5,6,7]10233; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm9 = xmm7[0],xmm9[1,2],xmm7[3],xmm9[4,5,6,7]10234; AVX2-FCP-NEXT: vmovdqa {{.*#+}} ymm7 = [6,7,2,3,14,15,14,15,14,15,10,11,u,u,2,3,22,23,18,19,30,31,30,31,30,31,26,27,u,u,18,19]10235; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Reload10236; AVX2-FCP-NEXT: vpshufb %ymm7, %ymm11, %ymm1110237; AVX2-FCP-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm010238; AVX2-FCP-NEXT: vpblendw {{.*#+}} ymm0 = ymm11[0,1,2],ymm0[3,4,5,6,7],ymm11[8,9,10],ymm0[11,12,13,14,15]10239; AVX2-FCP-NEXT: vpshufd {{.*#+}} xmm11 = xmm11[0,1,3,2]10240; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm9 = xmm9[0,1,2,3,4],xmm11[5,6,7]10241; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm9[0,1,2,3],ymm0[4,5,6,7]10242; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill10243; AVX2-FCP-NEXT: vpshufb %xmm2, %xmm8, %xmm010244; AVX2-FCP-NEXT: vpshufhw {{.*#+}} xmm6 = xmm6[0,1,2,3,7,5,6,5]10245; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2,3],xmm6[4],xmm0[5,6],xmm6[7]10246; AVX2-FCP-NEXT: vpshufb %xmm3, %xmm4, %xmm410247; AVX2-FCP-NEXT: vpshuflw {{.*#+}} xmm1 = xmm1[3,1,2,1,4,5,6,7]10248; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0],xmm4[1,2],xmm1[3],xmm4[4,5,6,7]10249; AVX2-FCP-NEXT: vpshufb %ymm7, %ymm13, %ymm410250; AVX2-FCP-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm010251; AVX2-FCP-NEXT: vpblendw {{.*#+}} ymm0 = ymm4[0,1,2],ymm0[3,4,5,6,7],ymm4[8,9,10],ymm0[11,12,13,14,15]10252; AVX2-FCP-NEXT: vpshufd {{.*#+}} xmm4 = xmm4[0,1,3,2]10253; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1,2,3,4],xmm4[5,6,7]10254; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm9 = ymm1[0,1,2,3],ymm0[4,5,6,7]10255; AVX2-FCP-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload10256; AVX2-FCP-NEXT: vpshufb %xmm2, %xmm0, %xmm110257; AVX2-FCP-NEXT: vpshufhw $103, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload10258; AVX2-FCP-NEXT: # xmm4 = mem[0,1,2,3,7,5,6,5]10259; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1,2,3],xmm4[4],xmm1[5,6],xmm4[7]10260; AVX2-FCP-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload10261; AVX2-FCP-NEXT: vpshufb %xmm3, %xmm0, %xmm410262; AVX2-FCP-NEXT: vpshuflw $103, {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Folded Reload10263; AVX2-FCP-NEXT: # xmm6 = mem[3,1,2,1,4,5,6,7]10264; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm4 = xmm6[0],xmm4[1,2],xmm6[3],xmm4[4,5,6,7]10265; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload10266; AVX2-FCP-NEXT: vpshufb %ymm7, %ymm0, %ymm610267; AVX2-FCP-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm110268; AVX2-FCP-NEXT: vpblendw {{.*#+}} ymm1 = ymm6[0,1,2],ymm1[3,4,5,6,7],ymm6[8,9,10],ymm1[11,12,13,14,15]10269; AVX2-FCP-NEXT: vpshufd {{.*#+}} xmm6 = xmm6[0,1,3,2]10270; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm4 = xmm4[0,1,2,3,4],xmm6[5,6,7]10271; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm8 = ymm4[0,1,2,3],ymm1[4,5,6,7]10272; AVX2-FCP-NEXT: vpshufb %xmm2, %xmm14, %xmm110273; AVX2-FCP-NEXT: vpshufhw {{.*#+}} xmm2 = xmm12[0,1,2,3,7,5,6,5]10274; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1,2,3],xmm2[4],xmm1[5,6],xmm2[7]10275; AVX2-FCP-NEXT: vpshufb %ymm7, %ymm15, %ymm210276; AVX2-FCP-NEXT: vpshufb %xmm3, %xmm5, %xmm310277; AVX2-FCP-NEXT: vpshuflw {{.*#+}} xmm4 = xmm10[3,1,2,1,4,5,6,7]10278; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm3 = xmm4[0],xmm3[1,2],xmm4[3],xmm3[4,5,6,7]10279; AVX2-FCP-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm110280; AVX2-FCP-NEXT: vpblendw {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3,4,5,6,7],ymm2[8,9,10],ymm1[11,12,13,14,15]10281; AVX2-FCP-NEXT: vpshufd {{.*#+}} xmm2 = xmm2[0,1,3,2]10282; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm2 = xmm3[0,1,2,3,4],xmm2[5,6,7]10283; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm3 = ymm2[0,1,2,3],ymm1[4,5,6,7]10284; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload10285; AVX2-FCP-NEXT: vpblendd $109, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm1 # 32-byte Folded Reload10286; AVX2-FCP-NEXT: # ymm1 = mem[0],ymm0[1],mem[2,3],ymm0[4],mem[5,6],ymm0[7]10287; AVX2-FCP-NEXT: vextracti128 $1, %ymm1, %xmm210288; AVX2-FCP-NEXT: vpshufd {{.*#+}} xmm6 = xmm1[0,3,2,1]10289; AVX2-FCP-NEXT: vmovdqa {{.*#+}} xmm7 = [0,1,2,3,0,1,4,5,8,9,12,13,0,1,12,13]10290; AVX2-FCP-NEXT: vpshufb %xmm7, %xmm2, %xmm110291; AVX2-FCP-NEXT: vpshufb %xmm7, %xmm6, %xmm410292; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm1 = xmm4[0,1,2,3],xmm1[4],xmm4[5],xmm1[6,7]10293; AVX2-FCP-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm110294; AVX2-FCP-NEXT: vpblendd $31, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm4 # 32-byte Folded Reload10295; AVX2-FCP-NEXT: # ymm4 = mem[0,1,2,3,4],ymm1[5,6,7]10296; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload10297; AVX2-FCP-NEXT: vpblendd $109, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm1 # 32-byte Folded Reload10298; AVX2-FCP-NEXT: # ymm1 = mem[0],ymm0[1],mem[2,3],ymm0[4],mem[5,6],ymm0[7]10299; AVX2-FCP-NEXT: vextracti128 $1, %ymm1, %xmm1110300; AVX2-FCP-NEXT: vpshufd {{.*#+}} xmm12 = xmm1[0,3,2,1]10301; AVX2-FCP-NEXT: vpshufb %xmm7, %xmm11, %xmm110302; AVX2-FCP-NEXT: vpshufb %xmm7, %xmm12, %xmm510303; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm1 = xmm5[0,1,2,3],xmm1[4],xmm5[5],xmm1[6,7]10304; AVX2-FCP-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm110305; AVX2-FCP-NEXT: vpblendd $31, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm5 # 32-byte Folded Reload10306; AVX2-FCP-NEXT: # ymm5 = mem[0,1,2,3,4],ymm1[5,6,7]10307; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload10308; AVX2-FCP-NEXT: vpblendd $109, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm1 # 32-byte Folded Reload10309; AVX2-FCP-NEXT: # ymm1 = mem[0],ymm0[1],mem[2,3],ymm0[4],mem[5,6],ymm0[7]10310; AVX2-FCP-NEXT: vextracti128 $1, %ymm1, %xmm1310311; AVX2-FCP-NEXT: vpshufd {{.*#+}} xmm14 = xmm1[0,3,2,1]10312; AVX2-FCP-NEXT: vpshufb %xmm7, %xmm13, %xmm110313; AVX2-FCP-NEXT: vpshufb %xmm7, %xmm14, %xmm1010314; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm1 = xmm10[0,1,2,3],xmm1[4],xmm10[5],xmm1[6,7]10315; AVX2-FCP-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm110316; AVX2-FCP-NEXT: vpblendd $31, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload10317; AVX2-FCP-NEXT: # ymm1 = mem[0,1,2,3,4],ymm1[5,6,7]10318; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload10319; AVX2-FCP-NEXT: vpblendd $109, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm10 # 32-byte Folded Reload10320; AVX2-FCP-NEXT: # ymm10 = mem[0],ymm0[1],mem[2,3],ymm0[4],mem[5,6],ymm0[7]10321; AVX2-FCP-NEXT: vextracti128 $1, %ymm10, %xmm1510322; AVX2-FCP-NEXT: vpshufd {{.*#+}} xmm0 = xmm10[0,3,2,1]10323; AVX2-FCP-NEXT: vpshufb %xmm7, %xmm15, %xmm1010324; AVX2-FCP-NEXT: vpshufb %xmm7, %xmm0, %xmm710325; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm7 = xmm7[0,1,2,3],xmm10[4],xmm7[5],xmm10[6,7]10326; AVX2-FCP-NEXT: vinserti128 $1, %xmm7, %ymm0, %ymm710327; AVX2-FCP-NEXT: vpblendd $31, {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm10 # 32-byte Folded Reload10328; AVX2-FCP-NEXT: # ymm10 = mem[0,1,2,3,4],ymm7[5,6,7]10329; AVX2-FCP-NEXT: vmovdqa {{.*#+}} xmm7 = [0,1,2,3,2,3,6,7,10,11,14,15,2,3,14,15]10330; AVX2-FCP-NEXT: vpshufb %xmm7, %xmm11, %xmm1110331; AVX2-FCP-NEXT: vpshufb %xmm7, %xmm12, %xmm1210332; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm11 = xmm12[0,1,2,3],xmm11[4],xmm12[5],xmm11[6,7]10333; AVX2-FCP-NEXT: vinserti128 $1, %xmm11, %ymm0, %ymm1110334; AVX2-FCP-NEXT: vpblendd $31, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm11 # 32-byte Folded Reload10335; AVX2-FCP-NEXT: # ymm11 = mem[0,1,2,3,4],ymm11[5,6,7]10336; AVX2-FCP-NEXT: vpshufb %xmm7, %xmm2, %xmm210337; AVX2-FCP-NEXT: vpshufb %xmm7, %xmm6, %xmm610338; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm2 = xmm6[0,1,2,3],xmm2[4],xmm6[5],xmm2[6,7]10339; AVX2-FCP-NEXT: vinserti128 $1, %xmm2, %ymm0, %ymm210340; AVX2-FCP-NEXT: vpblendd $31, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload10341; AVX2-FCP-NEXT: # ymm2 = mem[0,1,2,3,4],ymm2[5,6,7]10342; AVX2-FCP-NEXT: vpshufb %xmm7, %xmm13, %xmm610343; AVX2-FCP-NEXT: vpshufb %xmm7, %xmm14, %xmm1210344; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm6 = xmm12[0,1,2,3],xmm6[4],xmm12[5],xmm6[6,7]10345; AVX2-FCP-NEXT: vinserti128 $1, %xmm6, %ymm0, %ymm610346; AVX2-FCP-NEXT: vpblendd $31, {{[-0-9]+}}(%r{{[sb]}}p), %ymm6, %ymm6 # 32-byte Folded Reload10347; AVX2-FCP-NEXT: # ymm6 = mem[0,1,2,3,4],ymm6[5,6,7]10348; AVX2-FCP-NEXT: vpshufb %xmm7, %xmm15, %xmm1210349; AVX2-FCP-NEXT: vpshufb %xmm7, %xmm0, %xmm010350; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2,3],xmm12[4],xmm0[5],xmm12[6,7]10351; AVX2-FCP-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm010352; AVX2-FCP-NEXT: vpblendd $31, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload10353; AVX2-FCP-NEXT: # ymm0 = mem[0,1,2,3,4],ymm0[5,6,7]10354; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload10355; AVX2-FCP-NEXT: vmovaps %ymm7, 96(%rsi)10356; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload10357; AVX2-FCP-NEXT: vmovaps %ymm7, 32(%rsi)10358; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload10359; AVX2-FCP-NEXT: vmovaps %ymm7, 64(%rsi)10360; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload10361; AVX2-FCP-NEXT: vmovaps %ymm7, (%rsi)10362; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload10363; AVX2-FCP-NEXT: vmovaps %ymm7, 96(%rdx)10364; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload10365; AVX2-FCP-NEXT: vmovaps %ymm7, 32(%rdx)10366; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload10367; AVX2-FCP-NEXT: vmovaps %ymm7, 64(%rdx)10368; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload10369; AVX2-FCP-NEXT: vmovaps %ymm7, (%rdx)10370; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload10371; AVX2-FCP-NEXT: vmovaps %ymm7, 32(%rcx)10372; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload10373; AVX2-FCP-NEXT: vmovaps %ymm7, 96(%rcx)10374; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload10375; AVX2-FCP-NEXT: vmovaps %ymm7, 64(%rcx)10376; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload10377; AVX2-FCP-NEXT: vmovaps %ymm7, (%rcx)10378; AVX2-FCP-NEXT: vmovdqa %ymm8, 96(%r8)10379; AVX2-FCP-NEXT: vmovdqa %ymm9, 32(%r8)10380; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload10381; AVX2-FCP-NEXT: vmovaps %ymm7, 64(%r8)10382; AVX2-FCP-NEXT: vmovdqa %ymm3, (%r8)10383; AVX2-FCP-NEXT: vmovdqa %ymm10, 96(%r9)10384; AVX2-FCP-NEXT: vmovdqa %ymm1, 32(%r9)10385; AVX2-FCP-NEXT: vmovdqa %ymm5, (%r9)10386; AVX2-FCP-NEXT: vmovdqa %ymm4, 64(%r9)10387; AVX2-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax10388; AVX2-FCP-NEXT: vmovdqa %ymm0, 96(%rax)10389; AVX2-FCP-NEXT: vmovdqa %ymm6, 32(%rax)10390; AVX2-FCP-NEXT: vmovdqa %ymm2, 64(%rax)10391; AVX2-FCP-NEXT: vmovdqa %ymm11, (%rax)10392; AVX2-FCP-NEXT: addq $1304, %rsp # imm = 0x51810393; AVX2-FCP-NEXT: vzeroupper10394; AVX2-FCP-NEXT: retq10395;10396; AVX512-LABEL: load_i16_stride6_vf64:10397; AVX512: # %bb.0:10398; AVX512-NEXT: subq $1480, %rsp # imm = 0x5C810399; AVX512-NEXT: vmovdqa {{.*#+}} xmm9 = [0,1,12,13,u,u,4,5,u,u,u,u,12,13,14,15]10400; AVX512-NEXT: vmovdqa 608(%rdi), %ymm010401; AVX512-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill10402; AVX512-NEXT: vmovdqa 576(%rdi), %ymm110403; AVX512-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill10404; AVX512-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0],ymm0[1],ymm1[2,3],ymm0[4],ymm1[5,6],ymm0[7]10405; AVX512-NEXT: vpshufb %xmm9, %xmm1, %xmm010406; AVX512-NEXT: vextracti32x4 $1, %ymm1, %xmm2010407; AVX512-NEXT: vmovdqa64 %ymm1, %ymm1610408; AVX512-NEXT: vpshufd {{.*#+}} xmm1 = xmm20[0,2,0,3]10409; AVX512-NEXT: vpshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,6,6,7]10410; AVX512-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1],xmm1[2],xmm0[3],xmm1[4,5],xmm0[6,7]10411; AVX512-NEXT: vmovdqa 544(%rdi), %ymm110412; AVX512-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill10413; AVX512-NEXT: vmovdqa 512(%rdi), %ymm210414; AVX512-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill10415; AVX512-NEXT: vpblendd {{.*#+}} ymm13 = ymm2[0,1],ymm1[2],ymm2[3,4],ymm1[5],ymm2[6,7]10416; AVX512-NEXT: vextracti128 $1, %ymm13, %xmm210417; AVX512-NEXT: vpshuflw {{.*#+}} xmm1 = xmm13[2,2,2,2,4,5,6,7]10418; AVX512-NEXT: vpblendw {{.*#+}} xmm1 = xmm2[0,1,2],xmm1[3,4],xmm2[5,6,7]10419; AVX512-NEXT: vmovdqa64 %xmm2, %xmm2110420; AVX512-NEXT: vmovdqa {{.*#+}} xmm10 = [0,1,4,5,4,5,6,7,0,1,12,13,8,9,4,5]10421; AVX512-NEXT: vpshufb %xmm10, %xmm1, %xmm110422; AVX512-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm110423; AVX512-NEXT: vinserti32x4 $2, %xmm0, %zmm1, %zmm010424; AVX512-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill10425; AVX512-NEXT: vmovdqa 448(%rdi), %ymm010426; AVX512-NEXT: vmovdqa 416(%rdi), %ymm110427; AVX512-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill10428; AVX512-NEXT: vmovdqa 384(%rdi), %ymm210429; AVX512-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill10430; AVX512-NEXT: vpblendd {{.*#+}} ymm12 = ymm2[0],ymm1[1],ymm2[2,3],ymm1[4],ymm2[5,6],ymm1[7]10431; AVX512-NEXT: vpshufb %xmm9, %xmm12, %xmm110432; AVX512-NEXT: vextracti32x4 $1, %ymm12, %xmm2210433; AVX512-NEXT: vpshufd {{.*#+}} xmm2 = xmm22[0,2,0,3]10434; AVX512-NEXT: vpshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,6,6,7]10435; AVX512-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1],xmm2[2],xmm1[3],xmm2[4,5],xmm1[6,7]10436; AVX512-NEXT: vperm2i128 {{.*#+}} ymm2 = ymm0[2,3],mem[2,3]10437; AVX512-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill10438; AVX512-NEXT: vinserti128 $1, 480(%rdi), %ymm0, %ymm010439; AVX512-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill10440; AVX512-NEXT: vpblendd {{.*#+}} ymm2 = ymm0[0],ymm2[1],ymm0[2,3,4,5],ymm2[6],ymm0[7]10441; AVX512-NEXT: vmovdqa {{.*#+}} ymm5 = [0,1,12,13,8,9,12,13,8,9,12,13,8,9,4,5,16,17,28,29,24,25,28,29,24,25,28,29,24,25,20,21]10442; AVX512-NEXT: vpshufb %ymm5, %ymm2, %ymm010443; AVX512-NEXT: vmovdqa64 %ymm2, %ymm2310444; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3,4,5,6,7]10445; AVX512-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill10446; AVX512-NEXT: vmovdqa 640(%rdi), %ymm010447; AVX512-NEXT: vmovdqa 736(%rdi), %ymm110448; AVX512-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill10449; AVX512-NEXT: vmovdqa 704(%rdi), %ymm210450; AVX512-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill10451; AVX512-NEXT: vpblendd {{.*#+}} ymm11 = ymm2[0,1],ymm1[2],ymm2[3,4],ymm1[5],ymm2[6,7]10452; AVX512-NEXT: vextracti128 $1, %ymm11, %xmm210453; AVX512-NEXT: vpshuflw {{.*#+}} xmm1 = xmm11[2,2,2,2,4,5,6,7]10454; AVX512-NEXT: vpblendw {{.*#+}} xmm1 = xmm2[0,1,2],xmm1[3,4],xmm2[5,6,7]10455; AVX512-NEXT: vmovdqa64 %xmm2, %xmm2810456; AVX512-NEXT: vpshufb %xmm10, %xmm1, %xmm110457; AVX512-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm110458; AVX512-NEXT: vperm2i128 {{.*#+}} ymm2 = ymm0[2,3],mem[2,3]10459; AVX512-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill10460; AVX512-NEXT: vinserti128 $1, 672(%rdi), %ymm0, %ymm010461; AVX512-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill10462; AVX512-NEXT: vpblendd {{.*#+}} ymm2 = ymm0[0],ymm2[1],ymm0[2,3,4,5],ymm2[6],ymm0[7]10463; AVX512-NEXT: vmovdqa {{.*#+}} ymm3 = [0,1,12,13,8,9,12,13,8,9,12,13,4,5,u,u,16,17,28,29,24,25,28,29,24,25,28,29,20,21,u,u]10464; AVX512-NEXT: vpshufb %ymm3, %ymm2, %ymm010465; AVX512-NEXT: vmovdqa64 %ymm3, %ymm1710466; AVX512-NEXT: vmovdqa64 %ymm2, %ymm2910467; AVX512-NEXT: vpblendw {{.*#+}} ymm1 = ymm0[0,1,2],ymm1[3,4,5,6,7],ymm0[8,9,10],ymm1[11,12,13,14,15]10468; AVX512-NEXT: vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,5,4,6]10469; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]10470; AVX512-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill10471; AVX512-NEXT: vmovdqa 224(%rdi), %ymm010472; AVX512-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill10473; AVX512-NEXT: vmovdqa 192(%rdi), %ymm110474; AVX512-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill10475; AVX512-NEXT: vpblendd {{.*#+}} ymm14 = ymm1[0],ymm0[1],ymm1[2,3],ymm0[4],ymm1[5,6],ymm0[7]10476; AVX512-NEXT: vextracti128 $1, %ymm14, %xmm1510477; AVX512-NEXT: vpshufd {{.*#+}} xmm0 = xmm15[0,2,0,3]10478; AVX512-NEXT: vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,6,6,7]10479; AVX512-NEXT: vpshufb %xmm9, %xmm14, %xmm110480; AVX512-NEXT: vpblendw {{.*#+}} xmm0 = xmm1[0,1],xmm0[2],xmm1[3],xmm0[4,5],xmm1[6,7]10481; AVX512-NEXT: vmovdqa 160(%rdi), %ymm110482; AVX512-NEXT: vmovdqa 128(%rdi), %ymm210483; AVX512-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill10484; AVX512-NEXT: vpblendd {{.*#+}} ymm4 = ymm2[0,1],ymm1[2],ymm2[3,4],ymm1[5],ymm2[6,7]10485; AVX512-NEXT: vmovdqa64 %ymm1, %ymm3010486; AVX512-NEXT: vextracti128 $1, %ymm4, %xmm710487; AVX512-NEXT: vpshuflw {{.*#+}} xmm1 = xmm4[2,2,2,2,4,5,6,7]10488; AVX512-NEXT: vpblendw {{.*#+}} xmm1 = xmm7[0,1,2],xmm1[3,4],xmm7[5,6,7]10489; AVX512-NEXT: vpshufb %xmm10, %xmm1, %xmm110490; AVX512-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm110491; AVX512-NEXT: vinserti32x4 $2, %xmm0, %zmm1, %zmm010492; AVX512-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill10493; AVX512-NEXT: vmovdqa (%rdi), %ymm010494; AVX512-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill10495; AVX512-NEXT: vmovdqa 32(%rdi), %ymm110496; AVX512-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill10497; AVX512-NEXT: vpblendd {{.*#+}} ymm3 = ymm0[0],ymm1[1],ymm0[2,3],ymm1[4],ymm0[5,6],ymm1[7]10498; AVX512-NEXT: vpshufb %xmm9, %xmm3, %xmm010499; AVX512-NEXT: vextracti128 $1, %ymm3, %xmm910500; AVX512-NEXT: vpshufd {{.*#+}} xmm2 = xmm9[0,2,0,3]10501; AVX512-NEXT: vpshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,6,6,7]10502; AVX512-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1],xmm2[2],xmm0[3],xmm2[4,5],xmm0[6,7]10503; AVX512-NEXT: vmovdqa 64(%rdi), %ymm210504; AVX512-NEXT: vperm2i128 {{.*#+}} ymm1 = ymm2[2,3],mem[2,3]10505; AVX512-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill10506; AVX512-NEXT: vinserti128 $1, 96(%rdi), %ymm2, %ymm210507; AVX512-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill10508; AVX512-NEXT: vpblendd {{.*#+}} ymm8 = ymm2[0],ymm1[1],ymm2[2,3,4,5],ymm1[6],ymm2[7]10509; AVX512-NEXT: vpshufb %ymm5, %ymm8, %ymm210510; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2],ymm2[3,4,5,6,7]10511; AVX512-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill10512; AVX512-NEXT: vmovdqa 352(%rdi), %ymm010513; AVX512-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill10514; AVX512-NEXT: vmovdqa 320(%rdi), %ymm110515; AVX512-NEXT: vmovdqu %ymm1, (%rsp) # 32-byte Spill10516; AVX512-NEXT: vpblendd {{.*#+}} ymm5 = ymm1[0,1],ymm0[2],ymm1[3,4],ymm0[5],ymm1[6,7]10517; AVX512-NEXT: vextracti128 $1, %ymm5, %xmm610518; AVX512-NEXT: vpshuflw {{.*#+}} xmm2 = xmm5[2,2,2,2,4,5,6,7]10519; AVX512-NEXT: vpblendw {{.*#+}} xmm2 = xmm6[0,1,2],xmm2[3,4],xmm6[5,6,7]10520; AVX512-NEXT: vpshufb %xmm10, %xmm2, %xmm1010521; AVX512-NEXT: vmovdqa 256(%rdi), %ymm210522; AVX512-NEXT: vperm2i128 {{.*#+}} ymm1 = ymm2[2,3],mem[2,3]10523; AVX512-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill10524; AVX512-NEXT: vinserti128 $1, 288(%rdi), %ymm2, %ymm010525; AVX512-NEXT: vpblendd {{.*#+}} ymm2 = ymm0[0],ymm1[1],ymm0[2,3,4,5],ymm1[6],ymm0[7]10526; AVX512-NEXT: vmovdqa64 %ymm0, %ymm3110527; AVX512-NEXT: vmovdqa64 %ymm17, %ymm010528; AVX512-NEXT: vpshufb %ymm0, %ymm2, %ymm010529; AVX512-NEXT: vinserti128 $1, %xmm10, %ymm0, %ymm1010530; AVX512-NEXT: vpblendw {{.*#+}} ymm10 = ymm0[0,1,2],ymm10[3,4,5,6,7],ymm0[8,9,10],ymm10[11,12,13,14,15]10531; AVX512-NEXT: vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,5,4,6]10532; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm10[4,5,6,7]10533; AVX512-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill10534; AVX512-NEXT: vmovdqa {{.*#+}} xmm10 = [2,3,14,15,10,11,6,7,2,3,14,15,12,13,14,15]10535; AVX512-NEXT: vpshufb %xmm10, %xmm15, %xmm010536; AVX512-NEXT: vpshufb %xmm10, %xmm14, %xmm1410537; AVX512-NEXT: vpblendw {{.*#+}} xmm0 = xmm14[0,1],xmm0[2],xmm14[3],xmm0[4,5],xmm14[6,7]10538; AVX512-NEXT: vmovdqa {{.*#+}} xmm14 = [6,7,2,3,4,5,u,u,2,3,14,15,u,u,6,7]10539; AVX512-NEXT: vpshufb %xmm14, %xmm7, %xmm710540; AVX512-NEXT: vpshufhw {{.*#+}} xmm4 = xmm4[0,1,2,3,5,5,5,5]10541; AVX512-NEXT: vpblendw {{.*#+}} xmm4 = xmm7[0,1,2],xmm4[3],xmm7[4,5],xmm4[6],xmm7[7]10542; AVX512-NEXT: vinserti128 $1, %xmm4, %ymm0, %ymm410543; AVX512-NEXT: vinserti32x4 $2, %xmm0, %zmm4, %zmm010544; AVX512-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill10545; AVX512-NEXT: vpshufb %xmm10, %xmm9, %xmm010546; AVX512-NEXT: vpshufb %xmm10, %xmm3, %xmm310547; AVX512-NEXT: vpblendw {{.*#+}} xmm0 = xmm3[0,1],xmm0[2],xmm3[3],xmm0[4,5],xmm3[6,7]10548; AVX512-NEXT: vmovdqa {{.*#+}} ymm3 = [2,3,14,15,10,11,10,11,14,15,10,11,10,11,6,7,18,19,30,31,26,27,26,27,30,31,26,27,26,27,22,23]10549; AVX512-NEXT: vpshufb %ymm3, %ymm8, %ymm410550; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2],ymm4[3,4,5,6,7]10551; AVX512-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill10552; AVX512-NEXT: vpshufb %xmm14, %xmm6, %xmm010553; AVX512-NEXT: vpshufhw {{.*#+}} xmm1 = xmm5[0,1,2,3,5,5,5,5]10554; AVX512-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2],xmm1[3],xmm0[4,5],xmm1[6],xmm0[7]10555; AVX512-NEXT: vmovdqa {{.*#+}} ymm1 = [2,3,14,15,10,11,10,11,14,15,10,11,u,u,6,7,18,19,30,31,26,27,26,27,30,31,26,27,u,u,22,23]10556; AVX512-NEXT: vpshufb %ymm1, %ymm2, %ymm210557; AVX512-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm010558; AVX512-NEXT: vpblendw {{.*#+}} ymm0 = ymm2[0,1,2],ymm0[3,4,5,6,7],ymm2[8,9,10],ymm0[11,12,13,14,15]10559; AVX512-NEXT: vpshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,5,5,7]10560; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm2[0,1,2,3],ymm0[4,5,6,7]10561; AVX512-NEXT: vmovdqa64 %ymm0, %ymm2710562; AVX512-NEXT: vmovdqa64 %xmm20, %xmm010563; AVX512-NEXT: vpshufb %xmm10, %xmm0, %xmm010564; AVX512-NEXT: vmovdqa64 %ymm16, %ymm210565; AVX512-NEXT: vpshufb %xmm10, %xmm2, %xmm210566; AVX512-NEXT: vpblendw {{.*#+}} xmm0 = xmm2[0,1],xmm0[2],xmm2[3],xmm0[4,5],xmm2[6,7]10567; AVX512-NEXT: vmovdqa64 %xmm21, %xmm210568; AVX512-NEXT: vpshufb %xmm14, %xmm2, %xmm210569; AVX512-NEXT: vpshufhw {{.*#+}} xmm4 = xmm13[0,1,2,3,5,5,5,5]10570; AVX512-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0,1,2],xmm4[3],xmm2[4,5],xmm4[6],xmm2[7]10571; AVX512-NEXT: vinserti128 $1, %xmm2, %ymm0, %ymm210572; AVX512-NEXT: vinserti32x4 $2, %xmm0, %zmm2, %zmm010573; AVX512-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill10574; AVX512-NEXT: vmovdqa64 %ymm23, %ymm010575; AVX512-NEXT: vpshufb %ymm3, %ymm0, %ymm010576; AVX512-NEXT: vmovdqa64 %xmm22, %xmm210577; AVX512-NEXT: vpshufb %xmm10, %xmm2, %xmm210578; AVX512-NEXT: vpshufb %xmm10, %xmm12, %xmm310579; AVX512-NEXT: vpblendw {{.*#+}} xmm2 = xmm3[0,1],xmm2[2],xmm3[3],xmm2[4,5],xmm3[6,7]10580; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm2[0,1,2],ymm0[3,4,5,6,7]10581; AVX512-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill10582; AVX512-NEXT: vmovdqa64 %ymm29, %ymm010583; AVX512-NEXT: vpshufb %ymm1, %ymm0, %ymm010584; AVX512-NEXT: vmovdqa64 %xmm28, %xmm110585; AVX512-NEXT: vpshufb %xmm14, %xmm1, %xmm110586; AVX512-NEXT: vpshufhw {{.*#+}} xmm2 = xmm11[0,1,2,3,5,5,5,5]10587; AVX512-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1,2],xmm2[3],xmm1[4,5],xmm2[6],xmm1[7]10588; AVX512-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm110589; AVX512-NEXT: vpblendw {{.*#+}} ymm1 = ymm0[0,1,2],ymm1[3,4,5,6,7],ymm0[8,9,10],ymm1[11,12,13,14,15]10590; AVX512-NEXT: vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,5,5,7]10591; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]10592; AVX512-NEXT: vmovdqa64 %ymm0, %ymm2610593; AVX512-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload10594; AVX512-NEXT: vpblendd $36, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload10595; AVX512-NEXT: # ymm0 = ymm0[0,1],mem[2],ymm0[3,4],mem[5],ymm0[6,7]10596; AVX512-NEXT: vextracti128 $1, %ymm0, %xmm110597; AVX512-NEXT: vpshufd {{.*#+}} xmm2 = xmm0[2,1,2,3]10598; AVX512-NEXT: vpshufd {{.*#+}} xmm1 = xmm1[0,3,2,1]10599; AVX512-NEXT: vpshuflw {{.*#+}} xmm0 = xmm1[0,0,2,3,4,5,6,7]10600; AVX512-NEXT: vmovdqa64 %xmm1, %xmm2810601; AVX512-NEXT: vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,6,6,6,6]10602; AVX512-NEXT: vpshuflw {{.*#+}} xmm1 = xmm2[2,1,2,0,4,5,6,7]10603; AVX512-NEXT: vmovdqa64 %xmm2, %xmm2110604; AVX512-NEXT: vpblendw {{.*#+}} xmm0 = xmm1[0],xmm0[1,2],xmm1[3],xmm0[4,5,6,7]10605; AVX512-NEXT: vmovdqa64 %ymm30, %ymm210606; AVX512-NEXT: vpblendd $36, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm1 # 32-byte Folded Reload10607; AVX512-NEXT: # ymm1 = ymm2[0,1],mem[2],ymm2[3,4],mem[5],ymm2[6,7]10608; AVX512-NEXT: vextracti128 $1, %ymm1, %xmm210609; AVX512-NEXT: vpshufd {{.*#+}} xmm3 = xmm1[2,1,0,3]10610; AVX512-NEXT: vpshuflw {{.*#+}} xmm1 = xmm3[0,0,0,0,4,5,6,7]10611; AVX512-NEXT: vmovdqa64 %xmm3, %xmm2010612; AVX512-NEXT: vpshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,4,6,7]10613; AVX512-NEXT: vpshufd {{.*#+}} xmm3 = xmm2[0,1,2,1]10614; AVX512-NEXT: vpshufhw {{.*#+}} xmm2 = xmm3[0,1,2,3,6,5,6,4]10615; AVX512-NEXT: vmovdqa64 %xmm3, %xmm1910616; AVX512-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1,2,3],xmm2[4],xmm1[5,6],xmm2[7]10617; AVX512-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm110618; AVX512-NEXT: vinserti32x4 $2, %xmm0, %zmm1, %zmm210619; AVX512-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload10620; AVX512-NEXT: vpblendd $36, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload10621; AVX512-NEXT: # ymm0 = ymm0[0,1],mem[2],ymm0[3,4],mem[5],ymm0[6,7]10622; AVX512-NEXT: vextracti128 $1, %ymm0, %xmm110623; AVX512-NEXT: vpshufd {{.*#+}} xmm3 = xmm0[2,1,2,3]10624; AVX512-NEXT: vpshufd {{.*#+}} xmm1 = xmm1[0,3,2,1]10625; AVX512-NEXT: vpshuflw {{.*#+}} xmm0 = xmm1[0,0,2,3,4,5,6,7]10626; AVX512-NEXT: vmovdqa64 %xmm1, %xmm1810627; AVX512-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[0,1,3,3]10628; AVX512-NEXT: vpshuflw {{.*#+}} xmm1 = xmm3[2,1,2,0,4,5,6,7]10629; AVX512-NEXT: vmovdqa64 %xmm3, %xmm1610630; AVX512-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0],xmm0[1,2],xmm1[3],xmm0[4,5,6,7]10631; AVX512-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload10632; AVX512-NEXT: vpblendd $148, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm4 # 32-byte Folded Reload10633; AVX512-NEXT: # ymm4 = ymm0[0,1],mem[2],ymm0[3],mem[4],ymm0[5,6],mem[7]10634; AVX512-NEXT: vmovdqa {{.*#+}} ymm0 = [4,5,0,1,12,13,14,15,8,9,0,1,12,13,8,9,20,21,16,17,28,29,30,31,24,25,16,17,28,29,24,25]10635; AVX512-NEXT: vpshufb %ymm0, %ymm4, %ymm310636; AVX512-NEXT: vmovdqa64 %ymm4, %ymm1710637; AVX512-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1,2,3,4],xmm3[5,6,7]10638; AVX512-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm3[4,5,6,7]10639; AVX512-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload10640; AVX512-NEXT: vpblendd $36, (%rsp), %ymm3, %ymm3 # 32-byte Folded Reload10641; AVX512-NEXT: # ymm3 = ymm3[0,1],mem[2],ymm3[3,4],mem[5],ymm3[6,7]10642; AVX512-NEXT: vextracti128 $1, %ymm3, %xmm410643; AVX512-NEXT: vpshufd {{.*#+}} xmm15 = xmm3[2,1,0,3]10644; AVX512-NEXT: vpshuflw {{.*#+}} xmm3 = xmm15[0,0,0,0,4,5,6,7]10645; AVX512-NEXT: vpshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,4,4,6,7]10646; AVX512-NEXT: vpshufd {{.*#+}} xmm10 = xmm4[0,1,2,1]10647; AVX512-NEXT: vpshufhw {{.*#+}} xmm4 = xmm10[0,1,2,3,6,5,6,4]10648; AVX512-NEXT: vpblendw {{.*#+}} xmm3 = xmm3[0,1,2,3],xmm4[4],xmm3[5,6],xmm4[7]10649; AVX512-NEXT: vinserti128 $1, %xmm3, %ymm0, %ymm310650; AVX512-NEXT: vmovdqa64 %ymm31, %ymm410651; AVX512-NEXT: vpblendd $148, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm13 # 32-byte Folded Reload10652; AVX512-NEXT: # ymm13 = ymm4[0,1],mem[2],ymm4[3],mem[4],ymm4[5,6],mem[7]10653; AVX512-NEXT: vmovdqa {{.*#+}} ymm5 = [4,5,0,1,12,13,14,15,8,9,12,13,0,1,u,u,20,21,16,17,28,29,30,31,24,25,28,29,16,17,u,u]10654; AVX512-NEXT: vpshufb %ymm5, %ymm13, %ymm410655; AVX512-NEXT: vmovdqa64 %ymm5, %ymm2410656; AVX512-NEXT: vpblendw {{.*#+}} ymm3 = ymm4[0,1,2],ymm3[3,4,5,6,7],ymm4[8,9,10],ymm3[11,12,13,14,15]10657; AVX512-NEXT: vpshufhw {{.*#+}} xmm4 = xmm4[0,1,2,3,4,6,5,4]10658; AVX512-NEXT: vpblendd {{.*#+}} ymm3 = ymm4[0,1,2,3],ymm3[4,5,6,7]10659; AVX512-NEXT: vinserti64x4 $1, %ymm3, %zmm0, %zmm310660; AVX512-NEXT: vmovdqa64 {{.*#+}} zmm29 = [65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,0,0,0,0,0,0,0,0,0,0,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535]10661; AVX512-NEXT: vpternlogq {{.*#+}} zmm1 = zmm2 ^ (zmm29 & (zmm1 ^ zmm2))10662; AVX512-NEXT: vpmovsxdq {{.*#+}} zmm22 = [18446744073709551615,18446744073709551615,18446744073709551615,18446744073709551615,18446744073709551615,65535,0,0]10663; AVX512-NEXT: vpternlogq {{.*#+}} zmm3 = zmm3 ^ (zmm22 & (zmm3 ^ zmm1))10664; AVX512-NEXT: vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill10665; AVX512-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload10666; AVX512-NEXT: vpblendd $36, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload10667; AVX512-NEXT: # ymm1 = ymm1[0,1],mem[2],ymm1[3,4],mem[5],ymm1[6,7]10668; AVX512-NEXT: vextracti128 $1, %ymm1, %xmm210669; AVX512-NEXT: vpshufd {{.*#+}} xmm11 = xmm1[2,1,2,3]10670; AVX512-NEXT: vpshufd {{.*#+}} xmm12 = xmm2[0,3,2,1]10671; AVX512-NEXT: vpshuflw {{.*#+}} xmm1 = xmm12[0,0,2,3,4,5,6,7]10672; AVX512-NEXT: vpshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,6,6,6,6]10673; AVX512-NEXT: vpshuflw {{.*#+}} xmm2 = xmm11[2,1,2,0,4,5,6,7]10674; AVX512-NEXT: vpblendw {{.*#+}} xmm1 = xmm2[0],xmm1[1,2],xmm2[3],xmm1[4,5,6,7]10675; AVX512-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload10676; AVX512-NEXT: vpblendd $219, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload10677; AVX512-NEXT: # ymm2 = mem[0,1],ymm2[2],mem[3,4],ymm2[5],mem[6,7]10678; AVX512-NEXT: vextracti128 $1, %ymm2, %xmm310679; AVX512-NEXT: vpshufd {{.*#+}} xmm9 = xmm2[2,1,0,3]10680; AVX512-NEXT: vpshuflw {{.*#+}} xmm2 = xmm9[0,0,0,0,4,5,6,7]10681; AVX512-NEXT: vpshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,4,6,7]10682; AVX512-NEXT: vpshufd {{.*#+}} xmm8 = xmm3[0,1,2,1]10683; AVX512-NEXT: vpshufhw {{.*#+}} xmm3 = xmm8[0,1,2,3,6,5,6,4]10684; AVX512-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0,1,2,3],xmm3[4],xmm2[5,6],xmm3[7]10685; AVX512-NEXT: vinserti128 $1, %xmm2, %ymm0, %ymm210686; AVX512-NEXT: vinserti32x4 $2, %xmm1, %zmm2, %zmm2310687; AVX512-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload10688; AVX512-NEXT: vpblendd $36, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload10689; AVX512-NEXT: # ymm1 = ymm1[0,1],mem[2],ymm1[3,4],mem[5],ymm1[6,7]10690; AVX512-NEXT: vextracti128 $1, %ymm1, %xmm210691; AVX512-NEXT: vpshufd {{.*#+}} xmm6 = xmm1[2,1,2,3]10692; AVX512-NEXT: vpshufd {{.*#+}} xmm7 = xmm2[0,3,2,1]10693; AVX512-NEXT: vpshuflw {{.*#+}} xmm1 = xmm7[0,0,2,3,4,5,6,7]10694; AVX512-NEXT: vpshufd {{.*#+}} xmm1 = xmm1[0,1,3,3]10695; AVX512-NEXT: vpshuflw {{.*#+}} xmm2 = xmm6[2,1,2,0,4,5,6,7]10696; AVX512-NEXT: vpblendw {{.*#+}} xmm1 = xmm2[0],xmm1[1,2],xmm2[3],xmm1[4,5,6,7]10697; AVX512-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload10698; AVX512-NEXT: vpblendd $148, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm5 # 32-byte Folded Reload10699; AVX512-NEXT: # ymm5 = ymm2[0,1],mem[2],ymm2[3],mem[4],ymm2[5,6],mem[7]10700; AVX512-NEXT: vpshufb %ymm0, %ymm5, %ymm010701; AVX512-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1,2,3,4],xmm0[5,6,7]10702; AVX512-NEXT: vpblendd {{.*#+}} ymm2 = ymm1[0,1,2,3],ymm0[4,5,6,7]10703; AVX512-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload10704; AVX512-NEXT: vpblendd $36, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm1 # 32-byte Folded Reload10705; AVX512-NEXT: # ymm1 = ymm0[0,1],mem[2],ymm0[3,4],mem[5],ymm0[6,7]10706; AVX512-NEXT: vextracti128 $1, %ymm1, %xmm010707; AVX512-NEXT: vpshufd {{.*#+}} xmm4 = xmm1[2,1,0,3]10708; AVX512-NEXT: vpshuflw {{.*#+}} xmm1 = xmm4[0,0,0,0,4,5,6,7]10709; AVX512-NEXT: vpshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,4,6,7]10710; AVX512-NEXT: vpshufd {{.*#+}} xmm3 = xmm0[0,1,2,1]10711; AVX512-NEXT: vpshufhw {{.*#+}} xmm14 = xmm3[0,1,2,3,6,5,6,4]10712; AVX512-NEXT: vpblendw {{.*#+}} xmm14 = xmm1[0,1,2,3],xmm14[4],xmm1[5,6],xmm14[7]10713; AVX512-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload10714; AVX512-NEXT: vpblendd $107, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm1 # 32-byte Folded Reload10715; AVX512-NEXT: # ymm1 = mem[0,1],ymm0[2],mem[3],ymm0[4],mem[5,6],ymm0[7]10716; AVX512-NEXT: vmovdqa64 %ymm24, %ymm010717; AVX512-NEXT: vpshufb %ymm0, %ymm1, %ymm010718; AVX512-NEXT: vinserti128 $1, %xmm14, %ymm0, %ymm1410719; AVX512-NEXT: vpblendw {{.*#+}} ymm14 = ymm0[0,1,2],ymm14[3,4,5,6,7],ymm0[8,9,10],ymm14[11,12,13,14,15]10720; AVX512-NEXT: vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,6,5,4]10721; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm14[4,5,6,7]10722; AVX512-NEXT: vinserti64x4 $1, %ymm0, %zmm0, %zmm010723; AVX512-NEXT: vpternlogq {{.*#+}} zmm2 = zmm23 ^ (zmm29 & (zmm2 ^ zmm23))10724; AVX512-NEXT: vpternlogq {{.*#+}} zmm0 = zmm0 ^ (zmm22 & (zmm0 ^ zmm2))10725; AVX512-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill10726; AVX512-NEXT: vmovdqa64 %xmm21, %xmm010727; AVX512-NEXT: vpshuflw {{.*#+}} xmm0 = xmm0[3,1,2,1,4,5,6,7]10728; AVX512-NEXT: vmovdqa64 %xmm28, %xmm210729; AVX512-NEXT: vpshuflw {{.*#+}} xmm2 = xmm2[0,1,3,3,4,5,6,7]10730; AVX512-NEXT: vpshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,7,7,7,7]10731; AVX512-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0],xmm2[1,2],xmm0[3],xmm2[4,5,6,7]10732; AVX512-NEXT: vmovdqa64 %xmm19, %xmm210733; AVX512-NEXT: vpshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,7,5,6,5]10734; AVX512-NEXT: vmovdqa64 %xmm20, %xmm1410735; AVX512-NEXT: vpshuflw {{.*#+}} xmm14 = xmm14[1,1,1,1,4,5,6,7]10736; AVX512-NEXT: vpshufhw {{.*#+}} xmm14 = xmm14[0,1,2,3,4,5,7,7]10737; AVX512-NEXT: vpblendw {{.*#+}} xmm2 = xmm14[0,1,2,3],xmm2[4],xmm14[5,6],xmm2[7]10738; AVX512-NEXT: vinserti128 $1, %xmm2, %ymm0, %ymm210739; AVX512-NEXT: vinserti32x4 $2, %xmm0, %zmm2, %zmm2810740; AVX512-NEXT: vmovdqa64 %xmm16, %xmm010741; AVX512-NEXT: vpshuflw {{.*#+}} xmm2 = xmm0[3,1,2,1,4,5,6,7]10742; AVX512-NEXT: vmovdqa64 %xmm18, %xmm010743; AVX512-NEXT: vpshuflw {{.*#+}} xmm14 = xmm0[0,1,3,3,4,5,6,7]10744; AVX512-NEXT: vpshufhw {{.*#+}} xmm14 = xmm14[0,1,2,3,7,7,7,7]10745; AVX512-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0],xmm14[1,2],xmm2[3],xmm14[4,5,6,7]10746; AVX512-NEXT: vmovdqa {{.*#+}} ymm14 = [6,7,2,3,14,15,14,15,14,15,2,3,14,15,10,11,22,23,18,19,30,31,30,31,30,31,18,19,30,31,26,27]10747; AVX512-NEXT: vmovdqa64 %ymm17, %ymm010748; AVX512-NEXT: vpshufb %ymm14, %ymm0, %ymm010749; AVX512-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0,1,2,3,4],xmm0[5,6,7]10750; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm2[0,1,2,3],ymm0[4,5,6,7]10751; AVX512-NEXT: vpshufhw {{.*#+}} xmm2 = xmm10[0,1,2,3,7,5,6,5]10752; AVX512-NEXT: vpshuflw {{.*#+}} xmm10 = xmm15[1,1,1,1,4,5,6,7]10753; AVX512-NEXT: vpshufhw {{.*#+}} xmm10 = xmm10[0,1,2,3,4,5,7,7]10754; AVX512-NEXT: vpblendw {{.*#+}} xmm2 = xmm10[0,1,2,3],xmm2[4],xmm10[5,6],xmm2[7]10755; AVX512-NEXT: vmovdqa {{.*#+}} ymm10 = [6,7,2,3,14,15,14,15,14,15,10,11,u,u,2,3,22,23,18,19,30,31,30,31,30,31,26,27,u,u,18,19]10756; AVX512-NEXT: vpshufb %ymm10, %ymm13, %ymm1310757; AVX512-NEXT: vinserti128 $1, %xmm2, %ymm0, %ymm210758; AVX512-NEXT: vpblendw {{.*#+}} ymm2 = ymm13[0,1,2],ymm2[3,4,5,6,7],ymm13[8,9,10],ymm2[11,12,13,14,15]10759; AVX512-NEXT: vpshufhw {{.*#+}} xmm13 = xmm13[0,1,2,3,4,7,4,5]10760; AVX512-NEXT: vpblendd {{.*#+}} ymm2 = ymm13[0,1,2,3],ymm2[4,5,6,7]10761; AVX512-NEXT: vinserti64x4 $1, {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm13 # 32-byte Folded Reload10762; AVX512-NEXT: vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill10763; AVX512-NEXT: vinserti64x4 $1, {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm13 # 32-byte Folded Reload10764; AVX512-NEXT: vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill10765; AVX512-NEXT: vinserti64x4 $1, %ymm27, %zmm0, %zmm1310766; AVX512-NEXT: vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill10767; AVX512-NEXT: vinserti64x4 $1, %ymm26, %zmm0, %zmm1310768; AVX512-NEXT: vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill10769; AVX512-NEXT: vinserti64x4 $1, %ymm2, %zmm0, %zmm2510770; AVX512-NEXT: vpternlogq {{.*#+}} zmm0 = zmm28 ^ (zmm29 & (zmm0 ^ zmm28))10771; AVX512-NEXT: vpternlogq {{.*#+}} zmm25 = zmm25 ^ (zmm22 & (zmm25 ^ zmm0))10772; AVX512-NEXT: vpshuflw {{.*#+}} xmm0 = xmm11[3,1,2,1,4,5,6,7]10773; AVX512-NEXT: vpshuflw {{.*#+}} xmm2 = xmm12[0,1,3,3,4,5,6,7]10774; AVX512-NEXT: vpshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,7,7,7,7]10775; AVX512-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0],xmm2[1,2],xmm0[3],xmm2[4,5,6,7]10776; AVX512-NEXT: vpshufhw {{.*#+}} xmm2 = xmm8[0,1,2,3,7,5,6,5]10777; AVX512-NEXT: vpshuflw {{.*#+}} xmm8 = xmm9[1,1,1,1,4,5,6,7]10778; AVX512-NEXT: vpshufhw {{.*#+}} xmm8 = xmm8[0,1,2,3,4,5,7,7]10779; AVX512-NEXT: vpblendw {{.*#+}} xmm2 = xmm8[0,1,2,3],xmm2[4],xmm8[5,6],xmm2[7]10780; AVX512-NEXT: vinserti128 $1, %xmm2, %ymm0, %ymm210781; AVX512-NEXT: vinserti32x4 $2, %xmm0, %zmm2, %zmm010782; AVX512-NEXT: vpshuflw {{.*#+}} xmm2 = xmm6[3,1,2,1,4,5,6,7]10783; AVX512-NEXT: vpshuflw {{.*#+}} xmm6 = xmm7[0,1,3,3,4,5,6,7]10784; AVX512-NEXT: vpshufhw {{.*#+}} xmm6 = xmm6[0,1,2,3,7,7,7,7]10785; AVX512-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0],xmm6[1,2],xmm2[3],xmm6[4,5,6,7]10786; AVX512-NEXT: vpshufb %ymm14, %ymm5, %ymm510787; AVX512-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0,1,2,3,4],xmm5[5,6,7]10788; AVX512-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm5[4,5,6,7]10789; AVX512-NEXT: vpshufb %ymm10, %ymm1, %ymm110790; AVX512-NEXT: vpshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,7,5,6,5]10791; AVX512-NEXT: vpshuflw {{.*#+}} xmm4 = xmm4[1,1,1,1,4,5,6,7]10792; AVX512-NEXT: vpshufhw {{.*#+}} xmm4 = xmm4[0,1,2,3,4,5,7,7]10793; AVX512-NEXT: vpblendw {{.*#+}} xmm3 = xmm4[0,1,2,3],xmm3[4],xmm4[5,6],xmm3[7]10794; AVX512-NEXT: vinserti128 $1, %xmm3, %ymm0, %ymm310795; AVX512-NEXT: vpblendw {{.*#+}} ymm3 = ymm1[0,1,2],ymm3[3,4,5,6,7],ymm1[8,9,10],ymm3[11,12,13,14,15]10796; AVX512-NEXT: vpshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,7,4,5]10797; AVX512-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm3[4,5,6,7]10798; AVX512-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm2810799; AVX512-NEXT: vpternlogq {{.*#+}} zmm2 = zmm0 ^ (zmm29 & (zmm2 ^ zmm0))10800; AVX512-NEXT: vpternlogq {{.*#+}} zmm28 = zmm28 ^ (zmm22 & (zmm28 ^ zmm2))10801; AVX512-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload10802; AVX512-NEXT: vpblendd $219, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm2 # 32-byte Folded Reload10803; AVX512-NEXT: # ymm2 = mem[0,1],ymm0[2],mem[3,4],ymm0[5],mem[6,7]10804; AVX512-NEXT: vmovdqa {{.*#+}} xmm1 = [8,9,u,u,0,1,12,13,u,u,12,13,12,13,14,15]10805; AVX512-NEXT: vpshufb %xmm1, %xmm2, %xmm010806; AVX512-NEXT: vextracti128 $1, %ymm2, %xmm410807; AVX512-NEXT: vpshuflw {{.*#+}} xmm3 = xmm4[2,2,2,2,4,5,6,7]10808; AVX512-NEXT: vmovdqa64 %xmm4, %xmm2410809; AVX512-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0],xmm3[1],xmm0[2,3],xmm3[4],xmm0[5,6,7]10810; AVX512-NEXT: vmovdqa64 %ymm30, %ymm410811; AVX512-NEXT: vpblendd $109, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm3 # 32-byte Folded Reload10812; AVX512-NEXT: # ymm3 = mem[0],ymm4[1],mem[2,3],ymm4[4],mem[5,6],ymm4[7]10813; AVX512-NEXT: vextracti128 $1, %ymm3, %xmm510814; AVX512-NEXT: vpshufd {{.*#+}} xmm4 = xmm3[0,3,2,1]10815; AVX512-NEXT: vpshuflw {{.*#+}} xmm3 = xmm4[0,1,0,2,4,5,6,7]10816; AVX512-NEXT: vmovdqa64 %xmm4, %xmm2210817; AVX512-NEXT: vpshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,6,6,6,6]10818; AVX512-NEXT: vpbroadcastq {{.*#+}} xmm13 = [8,9,0,0,0,1,12,13,8,9,0,0,0,1,12,13]10819; AVX512-NEXT: vpshufb %xmm13, %xmm5, %xmm410820; AVX512-NEXT: vmovdqa64 %xmm5, %xmm2010821; AVX512-NEXT: vpblendw {{.*#+}} xmm3 = xmm3[0,1,2,3],xmm4[4],xmm3[5],xmm4[6,7]10822; AVX512-NEXT: vinserti128 $1, %xmm3, %ymm0, %ymm310823; AVX512-NEXT: vinserti32x4 $2, %xmm0, %zmm3, %zmm3010824; AVX512-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload10825; AVX512-NEXT: vpblendd $189, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm5 # 32-byte Folded Reload10826; AVX512-NEXT: # ymm5 = mem[0],ymm0[1],mem[2,3,4,5],ymm0[6],mem[7]10827; AVX512-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload10828; AVX512-NEXT: vpblendd $219, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm10 # 32-byte Folded Reload10829; AVX512-NEXT: # ymm10 = mem[0,1],ymm0[2],mem[3,4],ymm0[5],mem[6,7]10830; AVX512-NEXT: vpshufb %xmm1, %xmm10, %xmm010831; AVX512-NEXT: vextracti128 $1, %ymm10, %xmm410832; AVX512-NEXT: vpshuflw {{.*#+}} xmm3 = xmm4[2,2,2,2,4,5,6,7]10833; AVX512-NEXT: vmovdqa64 %xmm4, %xmm2110834; AVX512-NEXT: vpblendw {{.*#+}} xmm3 = xmm0[0],xmm3[1],xmm0[2,3],xmm3[4],xmm0[5,6,7]10835; AVX512-NEXT: vmovdqa64 {{.*#+}} ymm29 = [65535,65535,65535,65535,65535,0,0,0,0,0,65535,65535,65535,65535,65535,65535]10836; AVX512-NEXT: vmovdqa {{.*#+}} ymm0 = [128,128,128,128,128,128,128,128,128,128,4,5,0,1,12,13,24,25,20,21,128,128,128,128,128,128,128,128,128,128,128,128]10837; AVX512-NEXT: vpshufb %ymm0, %ymm5, %ymm410838; AVX512-NEXT: vmovdqa64 %ymm5, %ymm2610839; AVX512-NEXT: vpternlogq {{.*#+}} ymm3 = (ymm3 & ymm29) | ymm410840; AVX512-NEXT: movw $31, %ax10841; AVX512-NEXT: kmovw %eax, %k110842; AVX512-NEXT: vmovdqa32 %zmm3, %zmm30 {%k1}10843; AVX512-NEXT: vmovdqa64 %ymm31, %ymm310844; AVX512-NEXT: vpblendd $189, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm5 # 32-byte Folded Reload10845; AVX512-NEXT: # ymm5 = mem[0],ymm3[1],mem[2,3,4,5],ymm3[6],mem[7]10846; AVX512-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload10847; AVX512-NEXT: vpblendd $109, (%rsp), %ymm3, %ymm3 # 32-byte Folded Reload10848; AVX512-NEXT: # ymm3 = mem[0],ymm3[1],mem[2,3],ymm3[4],mem[5,6],ymm3[7]10849; AVX512-NEXT: vextracti128 $1, %ymm3, %xmm610850; AVX512-NEXT: vpshufd {{.*#+}} xmm4 = xmm3[0,3,2,1]10851; AVX512-NEXT: vpshuflw {{.*#+}} xmm3 = xmm4[0,1,0,2,4,5,6,7]10852; AVX512-NEXT: vmovdqa64 %xmm4, %xmm2710853; AVX512-NEXT: vpshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,6,6,6,6]10854; AVX512-NEXT: vpshufb %xmm13, %xmm6, %xmm410855; AVX512-NEXT: vmovdqa64 %xmm6, %xmm1810856; AVX512-NEXT: vpblendw {{.*#+}} xmm3 = xmm3[0,1,2,3],xmm4[4],xmm3[5],xmm4[6,7]10857; AVX512-NEXT: vinserti128 $1, %xmm3, %ymm0, %ymm310858; AVX512-NEXT: vmovdqa {{.*#+}} ymm6 = [8,9,4,5,4,5,6,7,0,1,4,5,0,1,12,13,24,25,20,21,20,21,22,23,16,17,20,21,16,17,28,29]10859; AVX512-NEXT: vpshufb %ymm6, %ymm5, %ymm410860; AVX512-NEXT: vmovdqa64 %ymm6, %ymm1610861; AVX512-NEXT: vmovdqa64 %ymm5, %ymm1910862; AVX512-NEXT: vpblendd {{.*#+}} ymm3 = ymm4[0,1,2,3,4],ymm3[5,6,7]10863; AVX512-NEXT: vmovdqa64 %ymm3, %ymm2310864; AVX512-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload10865; AVX512-NEXT: vpblendd $189, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm5 # 32-byte Folded Reload10866; AVX512-NEXT: # ymm5 = mem[0],ymm3[1],mem[2,3,4,5],ymm3[6],mem[7]10867; AVX512-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload10868; AVX512-NEXT: vpblendd $219, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm15 # 32-byte Folded Reload10869; AVX512-NEXT: # ymm15 = mem[0,1],ymm3[2],mem[3,4],ymm3[5],mem[6,7]10870; AVX512-NEXT: vpshufb %xmm1, %xmm15, %xmm310871; AVX512-NEXT: vextracti128 $1, %ymm15, %xmm1410872; AVX512-NEXT: vpshuflw {{.*#+}} xmm4 = xmm14[2,2,2,2,4,5,6,7]10873; AVX512-NEXT: vpblendw {{.*#+}} xmm4 = xmm3[0],xmm4[1],xmm3[2,3],xmm4[4],xmm3[5,6,7]10874; AVX512-NEXT: vpshufb %ymm0, %ymm5, %ymm010875; AVX512-NEXT: vmovdqa64 %ymm5, %ymm1710876; AVX512-NEXT: vpternlogq {{.*#+}} ymm4 = (ymm4 & ymm29) | ymm010877; AVX512-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload10878; AVX512-NEXT: vpblendd $219, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm5 # 32-byte Folded Reload10879; AVX512-NEXT: # ymm5 = mem[0,1],ymm0[2],mem[3,4],ymm0[5],mem[6,7]10880; AVX512-NEXT: vpshufb %xmm1, %xmm5, %xmm110881; AVX512-NEXT: vextracti128 $1, %ymm5, %xmm910882; AVX512-NEXT: vpshuflw {{.*#+}} xmm3 = xmm9[2,2,2,2,4,5,6,7]10883; AVX512-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0],xmm3[1],xmm1[2,3],xmm3[4],xmm1[5,6,7]10884; AVX512-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload10885; AVX512-NEXT: vpblendd $146, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm3 # 32-byte Folded Reload10886; AVX512-NEXT: # ymm3 = ymm0[0],mem[1],ymm0[2,3],mem[4],ymm0[5,6],mem[7]10887; AVX512-NEXT: vextracti128 $1, %ymm3, %xmm1210888; AVX512-NEXT: vpshufd {{.*#+}} xmm11 = xmm3[0,3,2,1]10889; AVX512-NEXT: vpshuflw {{.*#+}} xmm3 = xmm11[0,1,0,2,4,5,6,7]10890; AVX512-NEXT: vpshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,6,6,6,6]10891; AVX512-NEXT: vpshufb %xmm13, %xmm12, %xmm610892; AVX512-NEXT: vpblendw {{.*#+}} xmm3 = xmm3[0,1,2,3],xmm6[4],xmm3[5],xmm6[6,7]10893; AVX512-NEXT: vinserti128 $1, %xmm3, %ymm0, %ymm310894; AVX512-NEXT: vinserti32x4 $2, %xmm1, %zmm3, %zmm3110895; AVX512-NEXT: vmovdqa32 %zmm4, %zmm31 {%k1}10896; AVX512-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload10897; AVX512-NEXT: vpblendd $66, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm8 # 32-byte Folded Reload10898; AVX512-NEXT: # ymm8 = ymm0[0],mem[1],ymm0[2,3,4,5],mem[6],ymm0[7]10899; AVX512-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload10900; AVX512-NEXT: vpblendd $109, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm1 # 32-byte Folded Reload10901; AVX512-NEXT: # ymm1 = mem[0],ymm0[1],mem[2,3],ymm0[4],mem[5,6],ymm0[7]10902; AVX512-NEXT: vextracti128 $1, %ymm1, %xmm710903; AVX512-NEXT: vpshufb %xmm13, %xmm7, %xmm310904; AVX512-NEXT: vpshufd {{.*#+}} xmm4 = xmm1[0,3,2,1]10905; AVX512-NEXT: vpshuflw {{.*#+}} xmm1 = xmm4[0,1,0,2,4,5,6,7]10906; AVX512-NEXT: vpshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,6,6,6,6]10907; AVX512-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1,2,3],xmm3[4],xmm1[5],xmm3[6,7]10908; AVX512-NEXT: vmovdqa64 %ymm16, %ymm010909; AVX512-NEXT: vpshufb %ymm0, %ymm8, %ymm310910; AVX512-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm110911; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm3[0,1,2,3,4],ymm1[5,6,7]10912; AVX512-NEXT: vmovdqa64 %ymm0, %ymm1610913; AVX512-NEXT: vmovdqa {{.*#+}} xmm1 = [10,11,u,u,2,3,14,15,u,u,10,11,12,13,14,15]10914; AVX512-NEXT: vpshufb %xmm1, %xmm2, %xmm210915; AVX512-NEXT: vpshufd {{.*#+}} xmm3 = xmm24[1,1,2,3]10916; AVX512-NEXT: vpshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,5,5,5,5]10917; AVX512-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0],xmm3[1],xmm2[2,3],xmm3[4],xmm2[5,6,7]10918; AVX512-NEXT: vpbroadcastq {{.*#+}} xmm6 = [10,11,0,0,2,3,14,15,10,11,0,0,2,3,14,15]10919; AVX512-NEXT: vmovdqa64 %xmm20, %xmm010920; AVX512-NEXT: vpshufb %xmm6, %xmm0, %xmm310921; AVX512-NEXT: vmovdqa64 %xmm22, %xmm010922; AVX512-NEXT: vpshuflw {{.*#+}} xmm13 = xmm0[0,1,1,3,4,5,6,7]10923; AVX512-NEXT: vpshufd {{.*#+}} xmm13 = xmm13[0,1,3,3]10924; AVX512-NEXT: vpblendw {{.*#+}} xmm3 = xmm13[0,1,2,3],xmm3[4],xmm13[5],xmm3[6,7]10925; AVX512-NEXT: vinserti128 $1, %xmm3, %ymm0, %ymm310926; AVX512-NEXT: vinserti32x4 $2, %xmm2, %zmm3, %zmm210927; AVX512-NEXT: vpshufb %xmm1, %xmm10, %xmm310928; AVX512-NEXT: vpshufd {{.*#+}} xmm10 = xmm21[1,1,2,3]10929; AVX512-NEXT: vpshufhw {{.*#+}} xmm10 = xmm10[0,1,2,3,5,5,5,5]10930; AVX512-NEXT: vpblendw {{.*#+}} xmm3 = xmm3[0],xmm10[1],xmm3[2,3],xmm10[4],xmm3[5,6,7]10931; AVX512-NEXT: vmovdqa {{.*#+}} ymm10 = [128,128,128,128,128,128,128,128,128,128,6,7,2,3,14,15,26,27,22,23,128,128,128,128,128,128,128,128,128,128,128,128]10932; AVX512-NEXT: vmovdqa64 %ymm26, %ymm010933; AVX512-NEXT: vpshufb %ymm10, %ymm0, %ymm1310934; AVX512-NEXT: vpternlogq {{.*#+}} ymm3 = (ymm3 & ymm29) | ymm1310935; AVX512-NEXT: vmovdqa32 %zmm3, %zmm2 {%k1}10936; AVX512-NEXT: vmovdqa64 %xmm18, %xmm010937; AVX512-NEXT: vpshufb %xmm6, %xmm0, %xmm310938; AVX512-NEXT: vmovdqa64 %xmm27, %xmm010939; AVX512-NEXT: vpshuflw {{.*#+}} xmm13 = xmm0[0,1,1,3,4,5,6,7]10940; AVX512-NEXT: vpshufd {{.*#+}} xmm13 = xmm13[0,1,3,3]10941; AVX512-NEXT: vpblendw {{.*#+}} xmm3 = xmm13[0,1,2,3],xmm3[4],xmm13[5],xmm3[6,7]10942; AVX512-NEXT: vmovdqa {{.*#+}} ymm13 = [10,11,6,7,4,5,6,7,6,7,6,7,2,3,14,15,26,27,22,23,20,21,22,23,22,23,22,23,18,19,30,31]10943; AVX512-NEXT: vmovdqa64 %ymm19, %ymm010944; AVX512-NEXT: vpshufb %ymm13, %ymm0, %ymm010945; AVX512-NEXT: vinserti128 $1, %xmm3, %ymm0, %ymm310946; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm3[5,6,7]10947; AVX512-NEXT: vmovdqa64 %ymm17, %ymm310948; AVX512-NEXT: vpshufb %ymm10, %ymm3, %ymm310949; AVX512-NEXT: vpshufb %xmm1, %xmm15, %xmm1010950; AVX512-NEXT: vpshufd {{.*#+}} xmm14 = xmm14[1,1,2,3]10951; AVX512-NEXT: vpshufhw {{.*#+}} xmm14 = xmm14[0,1,2,3,5,5,5,5]10952; AVX512-NEXT: vpblendw {{.*#+}} xmm10 = xmm10[0],xmm14[1],xmm10[2,3],xmm14[4],xmm10[5,6,7]10953; AVX512-NEXT: vpternlogq {{.*#+}} ymm10 = (ymm10 & ymm29) | ymm310954; AVX512-NEXT: vpshufb %xmm1, %xmm5, %xmm110955; AVX512-NEXT: vpshufd {{.*#+}} xmm3 = xmm9[1,1,2,3]10956; AVX512-NEXT: vpshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,5,5,5,5]10957; AVX512-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0],xmm3[1],xmm1[2,3],xmm3[4],xmm1[5,6,7]10958; AVX512-NEXT: vinserti64x4 $1, %ymm23, %zmm0, %zmm310959; AVX512-NEXT: vinserti64x4 $1, %ymm16, %zmm0, %zmm510960; AVX512-NEXT: vinserti64x4 $1, %ymm0, %zmm0, %zmm010961; AVX512-NEXT: vpshufb %xmm6, %xmm12, %xmm910962; AVX512-NEXT: vpshuflw {{.*#+}} xmm11 = xmm11[0,1,1,3,4,5,6,7]10963; AVX512-NEXT: vpshufd {{.*#+}} xmm11 = xmm11[0,1,3,3]10964; AVX512-NEXT: vpblendw {{.*#+}} xmm9 = xmm11[0,1,2,3],xmm9[4],xmm11[5],xmm9[6,7]10965; AVX512-NEXT: vinserti128 $1, %xmm9, %ymm0, %ymm910966; AVX512-NEXT: vinserti32x4 $2, %xmm1, %zmm9, %zmm110967; AVX512-NEXT: vmovdqa32 %zmm10, %zmm1 {%k1}10968; AVX512-NEXT: vpshufb %ymm13, %ymm8, %ymm810969; AVX512-NEXT: vpshufb %xmm6, %xmm7, %xmm610970; AVX512-NEXT: vpshuflw {{.*#+}} xmm4 = xmm4[0,1,1,3,4,5,6,7]10971; AVX512-NEXT: vpshufd {{.*#+}} xmm4 = xmm4[0,1,3,3]10972; AVX512-NEXT: vpblendw {{.*#+}} xmm4 = xmm4[0,1,2,3],xmm6[4],xmm4[5],xmm6[6,7]10973; AVX512-NEXT: vinserti128 $1, %xmm4, %ymm0, %ymm410974; AVX512-NEXT: vpblendd {{.*#+}} ymm4 = ymm8[0,1,2,3,4],ymm4[5,6,7]10975; AVX512-NEXT: vinserti64x4 $1, %ymm4, %zmm0, %zmm410976; AVX512-NEXT: vmovdqa64 {{.*#+}} zmm6 = [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]10977; AVX512-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload10978; AVX512-NEXT: vpternlogq $226, {{[-0-9]+}}(%r{{[sb]}}p), %zmm6, %zmm7 # 64-byte Folded Reload10979; AVX512-NEXT: # zmm7 = mem ^ (zmm6 & (zmm7 ^ mem))10980; AVX512-NEXT: movw $-2048, %ax # imm = 0xF80010981; AVX512-NEXT: kmovw %eax, %k110982; AVX512-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload10983; AVX512-NEXT: vmovdqa32 %zmm8, %zmm7 {%k1}10984; AVX512-NEXT: vmovdqa64 %zmm7, (%rsi)10985; AVX512-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload10986; AVX512-NEXT: vpternlogq $226, {{[-0-9]+}}(%r{{[sb]}}p), %zmm6, %zmm7 # 64-byte Folded Reload10987; AVX512-NEXT: # zmm7 = mem ^ (zmm6 & (zmm7 ^ mem))10988; AVX512-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload10989; AVX512-NEXT: vmovdqa32 %zmm8, %zmm7 {%k1}10990; AVX512-NEXT: vmovdqa64 %zmm7, 64(%rsi)10991; AVX512-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload10992; AVX512-NEXT: vpternlogq $226, {{[-0-9]+}}(%r{{[sb]}}p), %zmm6, %zmm7 # 64-byte Folded Reload10993; AVX512-NEXT: # zmm7 = mem ^ (zmm6 & (zmm7 ^ mem))10994; AVX512-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload10995; AVX512-NEXT: vmovdqa32 %zmm8, %zmm7 {%k1}10996; AVX512-NEXT: vmovdqa64 %zmm7, 64(%rdx)10997; AVX512-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload10998; AVX512-NEXT: vpternlogq $226, {{[-0-9]+}}(%r{{[sb]}}p), %zmm6, %zmm7 # 64-byte Folded Reload10999; AVX512-NEXT: # zmm7 = mem ^ (zmm6 & (zmm7 ^ mem))11000; AVX512-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload11001; AVX512-NEXT: vmovdqa32 %zmm6, %zmm7 {%k1}11002; AVX512-NEXT: vmovdqa64 %zmm7, (%rdx)11003; AVX512-NEXT: vpmovsxdq {{.*#+}} zmm6 = [18446744073709551615,18446744073709551615,18446744073709551615,18446744073709551615,18446744073709551615,65535,0,0]11004; AVX512-NEXT: vpternlogq {{.*#+}} zmm3 = zmm3 ^ (zmm6 & (zmm3 ^ zmm30))11005; AVX512-NEXT: vpternlogq {{.*#+}} zmm5 = zmm5 ^ (zmm6 & (zmm5 ^ zmm31))11006; AVX512-NEXT: vpternlogq {{.*#+}} zmm0 = zmm0 ^ (zmm6 & (zmm0 ^ zmm2))11007; AVX512-NEXT: vpternlogq {{.*#+}} zmm4 = zmm4 ^ (zmm6 & (zmm4 ^ zmm1))11008; AVX512-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload11009; AVX512-NEXT: vmovaps %zmm1, 64(%rcx)11010; AVX512-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload11011; AVX512-NEXT: vmovaps %zmm1, (%rcx)11012; AVX512-NEXT: vmovdqa64 %zmm28, 64(%r8)11013; AVX512-NEXT: vmovdqa64 %zmm25, (%r8)11014; AVX512-NEXT: vmovdqa64 %zmm5, 64(%r9)11015; AVX512-NEXT: vmovdqa64 %zmm3, (%r9)11016; AVX512-NEXT: movq {{[0-9]+}}(%rsp), %rax11017; AVX512-NEXT: vmovdqa64 %zmm4, 64(%rax)11018; AVX512-NEXT: vmovdqa64 %zmm0, (%rax)11019; AVX512-NEXT: addq $1480, %rsp # imm = 0x5C811020; AVX512-NEXT: vzeroupper11021; AVX512-NEXT: retq11022;11023; AVX512-FCP-LABEL: load_i16_stride6_vf64:11024; AVX512-FCP: # %bb.0:11025; AVX512-FCP-NEXT: subq $1416, %rsp # imm = 0x58811026; AVX512-FCP-NEXT: vmovdqa {{.*#+}} xmm11 = [0,1,12,13,0,1,4,5,8,9,12,13,12,13,14,15]11027; AVX512-FCP-NEXT: vmovdqa 608(%rdi), %ymm011028; AVX512-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11029; AVX512-FCP-NEXT: vmovdqa 576(%rdi), %ymm111030; AVX512-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11031; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm1[0],ymm0[1],ymm1[2,3],ymm0[4],ymm1[5,6],ymm0[7]11032; AVX512-FCP-NEXT: vpshufb %xmm11, %xmm2, %xmm011033; AVX512-FCP-NEXT: vextracti128 $1, %ymm2, %xmm111034; AVX512-FCP-NEXT: vmovdqa64 %ymm2, %ymm2011035; AVX512-FCP-NEXT: vpshufd {{.*#+}} xmm2 = xmm1[2,1,0,3]11036; AVX512-FCP-NEXT: vpshufb %xmm11, %xmm2, %xmm111037; AVX512-FCP-NEXT: vmovdqa64 %xmm2, %xmm2111038; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1],xmm1[2],xmm0[3],xmm1[4,5],xmm0[6,7]11039; AVX512-FCP-NEXT: vmovdqa 544(%rdi), %ymm111040; AVX512-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11041; AVX512-FCP-NEXT: vmovdqa 512(%rdi), %ymm211042; AVX512-FCP-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11043; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm13 = ymm2[0,1],ymm1[2],ymm2[3,4],ymm1[5],ymm2[6,7]11044; AVX512-FCP-NEXT: vmovdqa {{.*#+}} xmm10 = [0,1,4,5,4,5,4,5,0,1,12,13,8,9,4,5]11045; AVX512-FCP-NEXT: vpshufb %xmm10, %xmm13, %xmm111046; AVX512-FCP-NEXT: vextracti128 $1, %ymm13, %xmm311047; AVX512-FCP-NEXT: vpshufb %xmm10, %xmm3, %xmm211048; AVX512-FCP-NEXT: vmovdqa64 %xmm3, %xmm2211049; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm1 = xmm2[0,1,2],xmm1[3],xmm2[4,5],xmm1[6],xmm2[7]11050; AVX512-FCP-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm111051; AVX512-FCP-NEXT: vinserti32x4 $2, %xmm0, %zmm1, %zmm011052; AVX512-FCP-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill11053; AVX512-FCP-NEXT: vmovdqa 448(%rdi), %ymm011054; AVX512-FCP-NEXT: vmovdqa 416(%rdi), %ymm111055; AVX512-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11056; AVX512-FCP-NEXT: vmovdqa 384(%rdi), %ymm211057; AVX512-FCP-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11058; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm12 = ymm2[0],ymm1[1],ymm2[2,3],ymm1[4],ymm2[5,6],ymm1[7]11059; AVX512-FCP-NEXT: vpshufb %xmm11, %xmm12, %xmm111060; AVX512-FCP-NEXT: vextracti128 $1, %ymm12, %xmm211061; AVX512-FCP-NEXT: vpshufd {{.*#+}} xmm3 = xmm2[2,1,0,3]11062; AVX512-FCP-NEXT: vpshufb %xmm11, %xmm3, %xmm211063; AVX512-FCP-NEXT: vmovdqa64 %xmm3, %xmm2311064; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1],xmm2[2],xmm1[3],xmm2[4,5],xmm1[6,7]11065; AVX512-FCP-NEXT: vperm2i128 {{.*#+}} ymm2 = ymm0[2,3],mem[2,3]11066; AVX512-FCP-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11067; AVX512-FCP-NEXT: vinserti128 $1, 480(%rdi), %ymm0, %ymm011068; AVX512-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11069; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm0[0],ymm2[1],ymm0[2,3,4,5],ymm2[6],ymm0[7]11070; AVX512-FCP-NEXT: vmovdqa {{.*#+}} ymm4 = [0,1,12,13,8,9,12,13,8,9,12,13,8,9,4,5,16,17,28,29,24,25,28,29,24,25,28,29,24,25,20,21]11071; AVX512-FCP-NEXT: vpshufb %ymm4, %ymm2, %ymm011072; AVX512-FCP-NEXT: vmovdqa64 %ymm2, %ymm2411073; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3,4,5,6,7]11074; AVX512-FCP-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill11075; AVX512-FCP-NEXT: vmovdqa 736(%rdi), %ymm011076; AVX512-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11077; AVX512-FCP-NEXT: vmovdqa 704(%rdi), %ymm111078; AVX512-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11079; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm9 = ymm1[0,1],ymm0[2],ymm1[3,4],ymm0[5],ymm1[6,7]11080; AVX512-FCP-NEXT: vpshufb %xmm10, %xmm9, %xmm011081; AVX512-FCP-NEXT: vextracti128 $1, %ymm9, %xmm211082; AVX512-FCP-NEXT: vpshufb %xmm10, %xmm2, %xmm111083; AVX512-FCP-NEXT: vmovdqa64 %xmm2, %xmm2611084; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm0 = xmm1[0,1,2],xmm0[3],xmm1[4,5],xmm0[6],xmm1[7]11085; AVX512-FCP-NEXT: vmovdqa 640(%rdi), %ymm111086; AVX512-FCP-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm011087; AVX512-FCP-NEXT: vperm2i128 {{.*#+}} ymm2 = ymm1[2,3],mem[2,3]11088; AVX512-FCP-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11089; AVX512-FCP-NEXT: vinserti128 $1, 672(%rdi), %ymm1, %ymm111090; AVX512-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11091; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm1[0],ymm2[1],ymm1[2,3,4,5],ymm2[6],ymm1[7]11092; AVX512-FCP-NEXT: vmovdqa {{.*#+}} ymm3 = [0,1,12,13,8,9,12,13,8,9,12,13,4,5,u,u,16,17,28,29,24,25,28,29,24,25,28,29,20,21,u,u]11093; AVX512-FCP-NEXT: vpshufb %ymm3, %ymm2, %ymm111094; AVX512-FCP-NEXT: vmovdqa64 %ymm3, %ymm1611095; AVX512-FCP-NEXT: vmovdqa64 %ymm2, %ymm2911096; AVX512-FCP-NEXT: vpblendw {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3,4,5,6,7],ymm1[8,9,10],ymm0[11,12,13,14,15]11097; AVX512-FCP-NEXT: vpshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,5,4,6]11098; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]11099; AVX512-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11100; AVX512-FCP-NEXT: vmovdqa 224(%rdi), %ymm011101; AVX512-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11102; AVX512-FCP-NEXT: vmovdqa 192(%rdi), %ymm111103; AVX512-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11104; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm14 = ymm1[0],ymm0[1],ymm1[2,3],ymm0[4],ymm1[5,6],ymm0[7]11105; AVX512-FCP-NEXT: vextracti128 $1, %ymm14, %xmm011106; AVX512-FCP-NEXT: vpshufb %xmm11, %xmm14, %xmm111107; AVX512-FCP-NEXT: vpshufd {{.*#+}} xmm15 = xmm0[2,1,0,3]11108; AVX512-FCP-NEXT: vpshufb %xmm11, %xmm15, %xmm011109; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm0 = xmm1[0,1],xmm0[2],xmm1[3],xmm0[4,5],xmm1[6,7]11110; AVX512-FCP-NEXT: vmovdqa 160(%rdi), %ymm111111; AVX512-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11112; AVX512-FCP-NEXT: vmovdqa 128(%rdi), %ymm211113; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm5 = ymm2[0,1],ymm1[2],ymm2[3,4],ymm1[5],ymm2[6,7]11114; AVX512-FCP-NEXT: vmovdqa64 %ymm2, %ymm3011115; AVX512-FCP-NEXT: vpshufb %xmm10, %xmm5, %xmm111116; AVX512-FCP-NEXT: vextracti128 $1, %ymm5, %xmm711117; AVX512-FCP-NEXT: vpshufb %xmm10, %xmm7, %xmm211118; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm1 = xmm2[0,1,2],xmm1[3],xmm2[4,5],xmm1[6],xmm2[7]11119; AVX512-FCP-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm111120; AVX512-FCP-NEXT: vinserti32x4 $2, %xmm0, %zmm1, %zmm011121; AVX512-FCP-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill11122; AVX512-FCP-NEXT: vmovdqa (%rdi), %ymm011123; AVX512-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11124; AVX512-FCP-NEXT: vmovdqa 32(%rdi), %ymm111125; AVX512-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11126; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm3 = ymm0[0],ymm1[1],ymm0[2,3],ymm1[4],ymm0[5,6],ymm1[7]11127; AVX512-FCP-NEXT: vextracti128 $1, %ymm3, %xmm011128; AVX512-FCP-NEXT: vpshufb %xmm11, %xmm3, %xmm211129; AVX512-FCP-NEXT: vpshufd {{.*#+}} xmm8 = xmm0[2,1,0,3]11130; AVX512-FCP-NEXT: vpshufb %xmm11, %xmm8, %xmm011131; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm0 = xmm2[0,1],xmm0[2],xmm2[3],xmm0[4,5],xmm2[6,7]11132; AVX512-FCP-NEXT: vmovdqa 64(%rdi), %ymm211133; AVX512-FCP-NEXT: vperm2i128 {{.*#+}} ymm1 = ymm2[2,3],mem[2,3]11134; AVX512-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11135; AVX512-FCP-NEXT: vinserti128 $1, 96(%rdi), %ymm2, %ymm211136; AVX512-FCP-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11137; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm11 = ymm2[0],ymm1[1],ymm2[2,3,4,5],ymm1[6],ymm2[7]11138; AVX512-FCP-NEXT: vpshufb %ymm4, %ymm11, %ymm211139; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2],ymm2[3,4,5,6,7]11140; AVX512-FCP-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill11141; AVX512-FCP-NEXT: vmovdqa 352(%rdi), %ymm011142; AVX512-FCP-NEXT: vmovdqu %ymm0, (%rsp) # 32-byte Spill11143; AVX512-FCP-NEXT: vmovdqa 320(%rdi), %ymm111144; AVX512-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11145; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm4 = ymm1[0,1],ymm0[2],ymm1[3,4],ymm0[5],ymm1[6,7]11146; AVX512-FCP-NEXT: vpshufb %xmm10, %xmm4, %xmm211147; AVX512-FCP-NEXT: vextracti128 $1, %ymm4, %xmm611148; AVX512-FCP-NEXT: vpshufb %xmm10, %xmm6, %xmm1011149; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm10 = xmm10[0,1,2],xmm2[3],xmm10[4,5],xmm2[6],xmm10[7]11150; AVX512-FCP-NEXT: vmovdqa 256(%rdi), %ymm211151; AVX512-FCP-NEXT: vperm2i128 {{.*#+}} ymm1 = ymm2[2,3],mem[2,3]11152; AVX512-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11153; AVX512-FCP-NEXT: vinserti128 $1, 288(%rdi), %ymm2, %ymm011154; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm0[0],ymm1[1],ymm0[2,3,4,5],ymm1[6],ymm0[7]11155; AVX512-FCP-NEXT: vmovdqa64 %ymm0, %ymm3111156; AVX512-FCP-NEXT: vmovdqa64 %ymm16, %ymm011157; AVX512-FCP-NEXT: vpshufb %ymm0, %ymm2, %ymm011158; AVX512-FCP-NEXT: vinserti128 $1, %xmm10, %ymm0, %ymm1011159; AVX512-FCP-NEXT: vpblendw {{.*#+}} ymm10 = ymm0[0,1,2],ymm10[3,4,5,6,7],ymm0[8,9,10],ymm10[11,12,13,14,15]11160; AVX512-FCP-NEXT: vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,5,4,6]11161; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm10[4,5,6,7]11162; AVX512-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11163; AVX512-FCP-NEXT: vmovdqa {{.*#+}} xmm10 = [2,3,14,15,2,3,6,7,10,11,14,15,12,13,14,15]11164; AVX512-FCP-NEXT: vpshufb %xmm10, %xmm14, %xmm011165; AVX512-FCP-NEXT: vpshufb %xmm10, %xmm15, %xmm1411166; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1],xmm14[2],xmm0[3],xmm14[4,5],xmm0[6,7]11167; AVX512-FCP-NEXT: vmovdqa {{.*#+}} xmm14 = [6,7,2,3,4,5,u,u,2,3,14,15,u,u,6,7]11168; AVX512-FCP-NEXT: vpshufb %xmm14, %xmm7, %xmm711169; AVX512-FCP-NEXT: vpshufhw {{.*#+}} xmm5 = xmm5[0,1,2,3,5,5,5,5]11170; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm5 = xmm7[0,1,2],xmm5[3],xmm7[4,5],xmm5[6],xmm7[7]11171; AVX512-FCP-NEXT: vinserti128 $1, %xmm5, %ymm0, %ymm511172; AVX512-FCP-NEXT: vinserti32x4 $2, %xmm0, %zmm5, %zmm011173; AVX512-FCP-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill11174; AVX512-FCP-NEXT: vpshufb %xmm10, %xmm3, %xmm011175; AVX512-FCP-NEXT: vpshufb %xmm10, %xmm8, %xmm311176; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1],xmm3[2],xmm0[3],xmm3[4,5],xmm0[6,7]11177; AVX512-FCP-NEXT: vmovdqa {{.*#+}} ymm3 = [2,3,14,15,10,11,10,11,14,15,10,11,10,11,6,7,18,19,30,31,26,27,26,27,30,31,26,27,26,27,22,23]11178; AVX512-FCP-NEXT: vpshufb %ymm3, %ymm11, %ymm511179; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2],ymm5[3,4,5,6,7]11180; AVX512-FCP-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill11181; AVX512-FCP-NEXT: vpshufb %xmm14, %xmm6, %xmm011182; AVX512-FCP-NEXT: vpshufhw {{.*#+}} xmm1 = xmm4[0,1,2,3,5,5,5,5]11183; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2],xmm1[3],xmm0[4,5],xmm1[6],xmm0[7]11184; AVX512-FCP-NEXT: vmovdqa {{.*#+}} ymm1 = [2,3,14,15,10,11,10,11,14,15,10,11,u,u,6,7,18,19,30,31,26,27,26,27,30,31,26,27,u,u,22,23]11185; AVX512-FCP-NEXT: vpshufb %ymm1, %ymm2, %ymm211186; AVX512-FCP-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm011187; AVX512-FCP-NEXT: vpblendw {{.*#+}} ymm0 = ymm2[0,1,2],ymm0[3,4,5,6,7],ymm2[8,9,10],ymm0[11,12,13,14,15]11188; AVX512-FCP-NEXT: vpshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,5,5,7]11189; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm2[0,1,2,3],ymm0[4,5,6,7]11190; AVX512-FCP-NEXT: vmovdqa64 %ymm0, %ymm2811191; AVX512-FCP-NEXT: vmovdqa64 %ymm20, %ymm011192; AVX512-FCP-NEXT: vpshufb %xmm10, %xmm0, %xmm011193; AVX512-FCP-NEXT: vmovdqa64 %xmm21, %xmm211194; AVX512-FCP-NEXT: vpshufb %xmm10, %xmm2, %xmm211195; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1],xmm2[2],xmm0[3],xmm2[4,5],xmm0[6,7]11196; AVX512-FCP-NEXT: vmovdqa64 %xmm22, %xmm211197; AVX512-FCP-NEXT: vpshufb %xmm14, %xmm2, %xmm211198; AVX512-FCP-NEXT: vpshufhw {{.*#+}} xmm4 = xmm13[0,1,2,3,5,5,5,5]11199; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0,1,2],xmm4[3],xmm2[4,5],xmm4[6],xmm2[7]11200; AVX512-FCP-NEXT: vinserti128 $1, %xmm2, %ymm0, %ymm211201; AVX512-FCP-NEXT: vinserti32x4 $2, %xmm0, %zmm2, %zmm011202; AVX512-FCP-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill11203; AVX512-FCP-NEXT: vmovdqa64 %ymm24, %ymm011204; AVX512-FCP-NEXT: vpshufb %ymm3, %ymm0, %ymm011205; AVX512-FCP-NEXT: vpshufb %xmm10, %xmm12, %xmm211206; AVX512-FCP-NEXT: vmovdqa64 %xmm23, %xmm311207; AVX512-FCP-NEXT: vpshufb %xmm10, %xmm3, %xmm311208; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0,1],xmm3[2],xmm2[3],xmm3[4,5],xmm2[6,7]11209; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm2[0,1,2],ymm0[3,4,5,6,7]11210; AVX512-FCP-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill11211; AVX512-FCP-NEXT: vmovdqa64 %ymm29, %ymm011212; AVX512-FCP-NEXT: vpshufb %ymm1, %ymm0, %ymm011213; AVX512-FCP-NEXT: vmovdqa64 %xmm26, %xmm111214; AVX512-FCP-NEXT: vpshufb %xmm14, %xmm1, %xmm111215; AVX512-FCP-NEXT: vpshufhw {{.*#+}} xmm2 = xmm9[0,1,2,3,5,5,5,5]11216; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1,2],xmm2[3],xmm1[4,5],xmm2[6],xmm1[7]11217; AVX512-FCP-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm111218; 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]11219; AVX512-FCP-NEXT: vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,5,5,7]11220; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]11221; AVX512-FCP-NEXT: vmovdqa64 %ymm0, %ymm2711222; AVX512-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload11223; AVX512-FCP-NEXT: vpblendd $36, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload11224; AVX512-FCP-NEXT: # ymm0 = ymm0[0,1],mem[2],ymm0[3,4],mem[5],ymm0[6,7]11225; AVX512-FCP-NEXT: vextracti128 $1, %ymm0, %xmm111226; AVX512-FCP-NEXT: vpshufd {{.*#+}} xmm3 = xmm0[2,1,2,3]11227; AVX512-FCP-NEXT: vmovdqa {{.*#+}} xmm0 = [u,u,0,1,4,5,u,u,12,13,12,13,12,13,12,13]11228; AVX512-FCP-NEXT: vpshufd {{.*#+}} xmm2 = xmm1[0,3,2,1]11229; AVX512-FCP-NEXT: vpshufb %xmm0, %xmm2, %xmm111230; AVX512-FCP-NEXT: vmovdqa64 %xmm2, %xmm2411231; AVX512-FCP-NEXT: vpshuflw {{.*#+}} xmm2 = xmm3[2,1,2,0,4,5,6,7]11232; AVX512-FCP-NEXT: vmovdqa64 %xmm3, %xmm2311233; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm1 = xmm2[0],xmm1[1,2],xmm2[3],xmm1[4,5,6,7]11234; AVX512-FCP-NEXT: vmovdqa64 %ymm30, %ymm211235; AVX512-FCP-NEXT: vpblendd $219, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload11236; AVX512-FCP-NEXT: # ymm2 = mem[0,1],ymm2[2],mem[3,4],ymm2[5],mem[6,7]11237; AVX512-FCP-NEXT: vextracti128 $1, %ymm2, %xmm311238; AVX512-FCP-NEXT: vpshufd {{.*#+}} xmm4 = xmm2[2,1,0,3]11239; AVX512-FCP-NEXT: vmovdqa {{.*#+}} xmm13 = [0,1,0,1,0,1,0,1,u,u,8,9,12,13,u,u]11240; AVX512-FCP-NEXT: vpshufb %xmm13, %xmm4, %xmm211241; AVX512-FCP-NEXT: vmovdqa64 %xmm4, %xmm2111242; AVX512-FCP-NEXT: vpshufd {{.*#+}} xmm4 = xmm3[0,1,2,1]11243; AVX512-FCP-NEXT: vpshufhw {{.*#+}} xmm3 = xmm4[0,1,2,3,6,5,6,4]11244; AVX512-FCP-NEXT: vmovdqa64 %xmm4, %xmm2011245; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0,1,2,3],xmm3[4],xmm2[5,6],xmm3[7]11246; AVX512-FCP-NEXT: vinserti128 $1, %xmm2, %ymm0, %ymm211247; AVX512-FCP-NEXT: vinserti32x4 $2, %xmm1, %zmm2, %zmm311248; AVX512-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload11249; AVX512-FCP-NEXT: vpblendd $219, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload11250; AVX512-FCP-NEXT: # ymm1 = mem[0,1],ymm1[2],mem[3,4],ymm1[5],mem[6,7]11251; AVX512-FCP-NEXT: vextracti128 $1, %ymm1, %xmm411252; AVX512-FCP-NEXT: vpshufd {{.*#+}} xmm5 = xmm1[2,1,2,3]11253; AVX512-FCP-NEXT: vpbroadcastq {{.*#+}} xmm2 = [12,13,0,1,4,5,0,0,12,13,0,1,4,5,0,0]11254; AVX512-FCP-NEXT: vpshufd {{.*#+}} xmm4 = xmm4[0,3,2,1]11255; AVX512-FCP-NEXT: vpshufb %xmm2, %xmm4, %xmm111256; AVX512-FCP-NEXT: vmovdqa64 %xmm4, %xmm1911257; AVX512-FCP-NEXT: vpshuflw {{.*#+}} xmm4 = xmm5[2,1,2,0,4,5,6,7]11258; AVX512-FCP-NEXT: vmovdqa64 %xmm5, %xmm1811259; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm4 = xmm4[0],xmm1[1,2],xmm4[3],xmm1[4,5,6,7]11260; AVX512-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload11261; AVX512-FCP-NEXT: vpblendd $148, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm6 # 32-byte Folded Reload11262; AVX512-FCP-NEXT: # ymm6 = ymm1[0,1],mem[2],ymm1[3],mem[4],ymm1[5,6],mem[7]11263; AVX512-FCP-NEXT: vmovdqa {{.*#+}} ymm1 = [4,5,0,1,12,13,14,15,8,9,0,1,12,13,8,9,20,21,16,17,28,29,30,31,24,25,16,17,28,29,24,25]11264; AVX512-FCP-NEXT: vpshufb %ymm1, %ymm6, %ymm511265; AVX512-FCP-NEXT: vmovdqa64 %ymm6, %ymm1711266; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm4 = xmm4[0,1,2,3,4],xmm5[5,6,7]11267; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm5[4,5,6,7]11268; AVX512-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload11269; AVX512-FCP-NEXT: vpblendd $219, (%rsp), %ymm5, %ymm5 # 32-byte Folded Reload11270; AVX512-FCP-NEXT: # ymm5 = mem[0,1],ymm5[2],mem[3,4],ymm5[5],mem[6,7]11271; AVX512-FCP-NEXT: vextracti128 $1, %ymm5, %xmm611272; AVX512-FCP-NEXT: vpshufd {{.*#+}} xmm7 = xmm5[2,1,0,3]11273; AVX512-FCP-NEXT: vpshufb %xmm13, %xmm7, %xmm511274; AVX512-FCP-NEXT: vmovdqa64 %xmm7, %xmm1611275; AVX512-FCP-NEXT: vpshufd {{.*#+}} xmm14 = xmm6[0,1,2,1]11276; AVX512-FCP-NEXT: vpshufhw {{.*#+}} xmm6 = xmm14[0,1,2,3,6,5,6,4]11277; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm5 = xmm5[0,1,2,3],xmm6[4],xmm5[5,6],xmm6[7]11278; AVX512-FCP-NEXT: vinserti128 $1, %xmm5, %ymm0, %ymm511279; AVX512-FCP-NEXT: vmovdqa64 %ymm31, %ymm611280; AVX512-FCP-NEXT: vpblendd $148, {{[-0-9]+}}(%r{{[sb]}}p), %ymm6, %ymm15 # 32-byte Folded Reload11281; AVX512-FCP-NEXT: # ymm15 = ymm6[0,1],mem[2],ymm6[3],mem[4],ymm6[5,6],mem[7]11282; AVX512-FCP-NEXT: vmovdqa {{.*#+}} ymm7 = [4,5,0,1,12,13,14,15,8,9,12,13,0,1,u,u,20,21,16,17,28,29,30,31,24,25,28,29,16,17,u,u]11283; AVX512-FCP-NEXT: vpshufb %ymm7, %ymm15, %ymm611284; AVX512-FCP-NEXT: vmovdqa64 %ymm7, %ymm2211285; AVX512-FCP-NEXT: vpblendw {{.*#+}} ymm5 = ymm6[0,1,2],ymm5[3,4,5,6,7],ymm6[8,9,10],ymm5[11,12,13,14,15]11286; AVX512-FCP-NEXT: vpshufhw {{.*#+}} xmm6 = xmm6[0,1,2,3,4,6,5,4]11287; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm5 = ymm6[0,1,2,3],ymm5[4,5,6,7]11288; AVX512-FCP-NEXT: vinserti64x4 $1, %ymm5, %zmm0, %zmm511289; AVX512-FCP-NEXT: vmovdqa64 {{.*#+}} zmm29 = [65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,0,0,0,0,0,0,0,0,0,0,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535]11290; AVX512-FCP-NEXT: vpternlogq {{.*#+}} zmm4 = zmm3 ^ (zmm29 & (zmm4 ^ zmm3))11291; AVX512-FCP-NEXT: vpmovsxdq {{.*#+}} zmm26 = [18446744073709551615,18446744073709551615,18446744073709551615,18446744073709551615,18446744073709551615,65535,0,0]11292; AVX512-FCP-NEXT: vpternlogq {{.*#+}} zmm5 = zmm5 ^ (zmm26 & (zmm5 ^ zmm4))11293; AVX512-FCP-NEXT: vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill11294; AVX512-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload11295; AVX512-FCP-NEXT: vpblendd $36, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm3 # 32-byte Folded Reload11296; AVX512-FCP-NEXT: # ymm3 = ymm3[0,1],mem[2],ymm3[3,4],mem[5],ymm3[6,7]11297; AVX512-FCP-NEXT: vextracti128 $1, %ymm3, %xmm411298; AVX512-FCP-NEXT: vpshufd {{.*#+}} xmm10 = xmm4[0,3,2,1]11299; AVX512-FCP-NEXT: vpshufb %xmm0, %xmm10, %xmm011300; AVX512-FCP-NEXT: vpshufd {{.*#+}} xmm12 = xmm3[2,1,2,3]11301; AVX512-FCP-NEXT: vpshuflw {{.*#+}} xmm3 = xmm12[2,1,2,0,4,5,6,7]11302; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm0 = xmm3[0],xmm0[1,2],xmm3[3],xmm0[4,5,6,7]11303; AVX512-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload11304; AVX512-FCP-NEXT: vpblendd $219, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm3 # 32-byte Folded Reload11305; AVX512-FCP-NEXT: # ymm3 = mem[0,1],ymm3[2],mem[3,4],ymm3[5],mem[6,7]11306; AVX512-FCP-NEXT: vextracti128 $1, %ymm3, %xmm411307; AVX512-FCP-NEXT: vpshufd {{.*#+}} xmm9 = xmm3[2,1,0,3]11308; AVX512-FCP-NEXT: vpshufb %xmm13, %xmm9, %xmm311309; AVX512-FCP-NEXT: vpshufd {{.*#+}} xmm8 = xmm4[0,1,2,1]11310; AVX512-FCP-NEXT: vpshufhw {{.*#+}} xmm4 = xmm8[0,1,2,3,6,5,6,4]11311; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm3 = xmm3[0,1,2,3],xmm4[4],xmm3[5,6],xmm4[7]11312; AVX512-FCP-NEXT: vinserti128 $1, %xmm3, %ymm0, %ymm311313; AVX512-FCP-NEXT: vinserti32x4 $2, %xmm0, %zmm3, %zmm1111314; AVX512-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload11315; AVX512-FCP-NEXT: vpblendd $36, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload11316; AVX512-FCP-NEXT: # ymm0 = ymm0[0,1],mem[2],ymm0[3,4],mem[5],ymm0[6,7]11317; AVX512-FCP-NEXT: vextracti128 $1, %ymm0, %xmm311318; AVX512-FCP-NEXT: vpshufd {{.*#+}} xmm7 = xmm3[0,3,2,1]11319; AVX512-FCP-NEXT: vpshufb %xmm2, %xmm7, %xmm211320; AVX512-FCP-NEXT: vpshufd {{.*#+}} xmm6 = xmm0[2,1,2,3]11321; AVX512-FCP-NEXT: vpshuflw {{.*#+}} xmm0 = xmm6[2,1,2,0,4,5,6,7]11322; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0],xmm2[1,2],xmm0[3],xmm2[4,5,6,7]11323; AVX512-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload11324; AVX512-FCP-NEXT: vpblendd $148, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm5 # 32-byte Folded Reload11325; AVX512-FCP-NEXT: # ymm5 = ymm2[0,1],mem[2],ymm2[3],mem[4],ymm2[5,6],mem[7]11326; AVX512-FCP-NEXT: vpshufb %ymm1, %ymm5, %ymm111327; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2,3,4],xmm1[5,6,7]11328; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm0[0,1,2,3],ymm1[4,5,6,7]11329; AVX512-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload11330; AVX512-FCP-NEXT: vpblendd $36, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload11331; AVX512-FCP-NEXT: # ymm0 = ymm0[0,1],mem[2],ymm0[3,4],mem[5],ymm0[6,7]11332; AVX512-FCP-NEXT: vextracti128 $1, %ymm0, %xmm211333; AVX512-FCP-NEXT: vpshufd {{.*#+}} xmm4 = xmm0[2,1,0,3]11334; AVX512-FCP-NEXT: vpshufb %xmm13, %xmm4, %xmm011335; AVX512-FCP-NEXT: vpshufd {{.*#+}} xmm3 = xmm2[0,1,2,1]11336; AVX512-FCP-NEXT: vpshufhw {{.*#+}} xmm13 = xmm3[0,1,2,3,6,5,6,4]11337; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm13 = xmm0[0,1,2,3],xmm13[4],xmm0[5,6],xmm13[7]11338; AVX512-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload11339; AVX512-FCP-NEXT: vpblendd $107, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm2 # 32-byte Folded Reload11340; AVX512-FCP-NEXT: # ymm2 = mem[0,1],ymm0[2],mem[3],ymm0[4],mem[5,6],ymm0[7]11341; AVX512-FCP-NEXT: vmovdqa64 %ymm22, %ymm011342; AVX512-FCP-NEXT: vpshufb %ymm0, %ymm2, %ymm011343; AVX512-FCP-NEXT: vinserti128 $1, %xmm13, %ymm0, %ymm1311344; AVX512-FCP-NEXT: vpblendw {{.*#+}} ymm13 = ymm0[0,1,2],ymm13[3,4,5,6,7],ymm0[8,9,10],ymm13[11,12,13,14,15]11345; AVX512-FCP-NEXT: vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,6,5,4]11346; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm13[4,5,6,7]11347; AVX512-FCP-NEXT: vinserti64x4 $1, %ymm0, %zmm0, %zmm2511348; AVX512-FCP-NEXT: vpternlogq {{.*#+}} zmm1 = zmm11 ^ (zmm29 & (zmm1 ^ zmm11))11349; AVX512-FCP-NEXT: vpternlogq {{.*#+}} zmm25 = zmm25 ^ (zmm26 & (zmm25 ^ zmm1))11350; AVX512-FCP-NEXT: vmovdqa {{.*#+}} xmm1 = [u,u,2,3,6,7,u,u,14,15,14,15,14,15,14,15]11351; AVX512-FCP-NEXT: vmovdqa64 %xmm24, %xmm011352; AVX512-FCP-NEXT: vpshufb %xmm1, %xmm0, %xmm011353; AVX512-FCP-NEXT: vmovdqa64 %xmm1, %xmm2211354; AVX512-FCP-NEXT: vmovdqa64 %xmm23, %xmm111355; AVX512-FCP-NEXT: vpshuflw {{.*#+}} xmm1 = xmm1[3,1,2,1,4,5,6,7]11356; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm0 = xmm1[0],xmm0[1,2],xmm1[3],xmm0[4,5,6,7]11357; AVX512-FCP-NEXT: vmovdqa {{.*#+}} xmm1 = [2,3,2,3,2,3,2,3,u,u,10,11,14,15,u,u]11358; AVX512-FCP-NEXT: vmovdqa64 %xmm21, %xmm1111359; AVX512-FCP-NEXT: vpshufb %xmm1, %xmm11, %xmm1111360; AVX512-FCP-NEXT: vmovdqa64 %xmm20, %xmm1311361; AVX512-FCP-NEXT: vpshufhw {{.*#+}} xmm13 = xmm13[0,1,2,3,7,5,6,5]11362; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm11 = xmm11[0,1,2,3],xmm13[4],xmm11[5,6],xmm13[7]11363; AVX512-FCP-NEXT: vinserti128 $1, %xmm11, %ymm0, %ymm1111364; AVX512-FCP-NEXT: vinserti32x4 $2, %xmm0, %zmm11, %zmm2411365; AVX512-FCP-NEXT: vpbroadcastq {{.*#+}} xmm13 = [14,15,2,3,6,7,0,0,14,15,2,3,6,7,0,0]11366; AVX512-FCP-NEXT: vmovdqa64 %xmm19, %xmm011367; AVX512-FCP-NEXT: vpshufb %xmm13, %xmm0, %xmm1111368; AVX512-FCP-NEXT: vmovdqa64 %xmm13, %xmm1911369; AVX512-FCP-NEXT: vmovdqa64 %xmm18, %xmm011370; AVX512-FCP-NEXT: vpshuflw {{.*#+}} xmm13 = xmm0[3,1,2,1,4,5,6,7]11371; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm13 = xmm13[0],xmm11[1,2],xmm13[3],xmm11[4,5,6,7]11372; AVX512-FCP-NEXT: vmovdqa {{.*#+}} ymm11 = [6,7,2,3,14,15,14,15,14,15,2,3,14,15,10,11,22,23,18,19,30,31,30,31,30,31,18,19,30,31,26,27]11373; AVX512-FCP-NEXT: vmovdqa64 %ymm17, %ymm011374; AVX512-FCP-NEXT: vpshufb %ymm11, %ymm0, %ymm011375; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm13 = xmm13[0,1,2,3,4],xmm0[5,6,7]11376; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm13[0,1,2,3],ymm0[4,5,6,7]11377; AVX512-FCP-NEXT: vmovdqa64 %xmm16, %xmm1311378; AVX512-FCP-NEXT: vpshufb %xmm1, %xmm13, %xmm1311379; AVX512-FCP-NEXT: vpshufhw {{.*#+}} xmm14 = xmm14[0,1,2,3,7,5,6,5]11380; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm13 = xmm13[0,1,2,3],xmm14[4],xmm13[5,6],xmm14[7]11381; AVX512-FCP-NEXT: vmovdqa {{.*#+}} ymm14 = [6,7,2,3,14,15,14,15,14,15,10,11,u,u,2,3,22,23,18,19,30,31,30,31,30,31,26,27,u,u,18,19]11382; AVX512-FCP-NEXT: vpshufb %ymm14, %ymm15, %ymm1511383; AVX512-FCP-NEXT: vinserti128 $1, %xmm13, %ymm0, %ymm1311384; AVX512-FCP-NEXT: vpblendw {{.*#+}} ymm13 = ymm15[0,1,2],ymm13[3,4,5,6,7],ymm15[8,9,10],ymm13[11,12,13,14,15]11385; AVX512-FCP-NEXT: vpshufhw {{.*#+}} xmm15 = xmm15[0,1,2,3,4,7,4,5]11386; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm13 = ymm15[0,1,2,3],ymm13[4,5,6,7]11387; AVX512-FCP-NEXT: vinserti64x4 $1, %ymm13, %zmm0, %zmm2311388; AVX512-FCP-NEXT: vpternlogq {{.*#+}} zmm0 = zmm24 ^ (zmm29 & (zmm0 ^ zmm24))11389; AVX512-FCP-NEXT: vpternlogq {{.*#+}} zmm23 = zmm23 ^ (zmm26 & (zmm23 ^ zmm0))11390; AVX512-FCP-NEXT: vmovdqa64 %xmm22, %xmm011391; AVX512-FCP-NEXT: vpshufb %xmm0, %xmm10, %xmm011392; AVX512-FCP-NEXT: vinserti64x4 $1, {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm10 # 32-byte Folded Reload11393; AVX512-FCP-NEXT: vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill11394; AVX512-FCP-NEXT: vinserti64x4 $1, {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm10 # 32-byte Folded Reload11395; AVX512-FCP-NEXT: vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill11396; AVX512-FCP-NEXT: vinserti64x4 $1, %ymm28, %zmm0, %zmm1011397; AVX512-FCP-NEXT: vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill11398; AVX512-FCP-NEXT: vinserti64x4 $1, %ymm27, %zmm0, %zmm1011399; AVX512-FCP-NEXT: vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill11400; AVX512-FCP-NEXT: vpshuflw {{.*#+}} xmm10 = xmm12[3,1,2,1,4,5,6,7]11401; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm0 = xmm10[0],xmm0[1,2],xmm10[3],xmm0[4,5,6,7]11402; AVX512-FCP-NEXT: vpshufb %xmm1, %xmm9, %xmm911403; AVX512-FCP-NEXT: vpshufhw {{.*#+}} xmm8 = xmm8[0,1,2,3,7,5,6,5]11404; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm8 = xmm9[0,1,2,3],xmm8[4],xmm9[5,6],xmm8[7]11405; AVX512-FCP-NEXT: vinserti128 $1, %xmm8, %ymm0, %ymm811406; AVX512-FCP-NEXT: vinserti32x4 $2, %xmm0, %zmm8, %zmm011407; AVX512-FCP-NEXT: vmovdqa64 %xmm19, %xmm811408; AVX512-FCP-NEXT: vpshufb %xmm8, %xmm7, %xmm711409; AVX512-FCP-NEXT: vpshuflw {{.*#+}} xmm6 = xmm6[3,1,2,1,4,5,6,7]11410; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm6 = xmm6[0],xmm7[1,2],xmm6[3],xmm7[4,5,6,7]11411; AVX512-FCP-NEXT: vpshufb %ymm11, %ymm5, %ymm511412; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm6 = xmm6[0,1,2,3,4],xmm5[5,6,7]11413; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm5 = ymm6[0,1,2,3],ymm5[4,5,6,7]11414; AVX512-FCP-NEXT: vpshufb %ymm14, %ymm2, %ymm211415; AVX512-FCP-NEXT: vpshufb %xmm1, %xmm4, %xmm111416; AVX512-FCP-NEXT: vpshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,7,5,6,5]11417; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1,2,3],xmm3[4],xmm1[5,6],xmm3[7]11418; AVX512-FCP-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm111419; AVX512-FCP-NEXT: vpblendw {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3,4,5,6,7],ymm2[8,9,10],ymm1[11,12,13,14,15]11420; AVX512-FCP-NEXT: vpshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,7,4,5]11421; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]11422; AVX512-FCP-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm2811423; AVX512-FCP-NEXT: vpternlogq {{.*#+}} zmm5 = zmm0 ^ (zmm29 & (zmm5 ^ zmm0))11424; AVX512-FCP-NEXT: vpternlogq {{.*#+}} zmm28 = zmm28 ^ (zmm26 & (zmm28 ^ zmm5))11425; AVX512-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload11426; AVX512-FCP-NEXT: vpblendd $219, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm11 # 32-byte Folded Reload11427; AVX512-FCP-NEXT: # ymm11 = mem[0,1],ymm0[2],mem[3,4],ymm0[5],mem[6,7]11428; AVX512-FCP-NEXT: vmovdqa {{.*#+}} xmm1 = [8,9,u,u,0,1,12,13,u,u,12,13,12,13,14,15]11429; AVX512-FCP-NEXT: vpshufb %xmm1, %xmm11, %xmm011430; AVX512-FCP-NEXT: vextracti128 $1, %ymm11, %xmm311431; AVX512-FCP-NEXT: vpshuflw {{.*#+}} xmm2 = xmm3[2,2,2,2,4,5,6,7]11432; AVX512-FCP-NEXT: vmovdqa64 %xmm3, %xmm2411433; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0],xmm2[1],xmm0[2,3],xmm2[4],xmm0[5,6,7]11434; AVX512-FCP-NEXT: vmovdqa64 %ymm30, %ymm211435; AVX512-FCP-NEXT: vpblendd $146, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload11436; AVX512-FCP-NEXT: # ymm2 = ymm2[0],mem[1],ymm2[2,3],mem[4],ymm2[5,6],mem[7]11437; AVX512-FCP-NEXT: vextracti128 $1, %ymm2, %xmm311438; AVX512-FCP-NEXT: vpshufd {{.*#+}} xmm4 = xmm2[0,3,2,1]11439; AVX512-FCP-NEXT: vmovdqa {{.*#+}} xmm12 = [0,1,2,3,0,1,4,5,8,9,12,13,0,1,12,13]11440; AVX512-FCP-NEXT: vpshufb %xmm12, %xmm3, %xmm211441; AVX512-FCP-NEXT: vmovdqa64 %xmm3, %xmm2211442; AVX512-FCP-NEXT: vpshufb %xmm12, %xmm4, %xmm311443; AVX512-FCP-NEXT: vmovdqa64 %xmm4, %xmm2111444; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm2 = xmm3[0,1,2,3],xmm2[4],xmm3[5],xmm2[6,7]11445; AVX512-FCP-NEXT: vinserti128 $1, %xmm2, %ymm0, %ymm211446; AVX512-FCP-NEXT: vinserti32x4 $2, %xmm0, %zmm2, %zmm3011447; AVX512-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload11448; AVX512-FCP-NEXT: vpblendd $189, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm4 # 32-byte Folded Reload11449; AVX512-FCP-NEXT: # ymm4 = mem[0],ymm0[1],mem[2,3,4,5],ymm0[6],mem[7]11450; AVX512-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload11451; AVX512-FCP-NEXT: vpblendd $36, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm10 # 32-byte Folded Reload11452; AVX512-FCP-NEXT: # ymm10 = ymm0[0,1],mem[2],ymm0[3,4],mem[5],ymm0[6,7]11453; AVX512-FCP-NEXT: vpshufb %xmm1, %xmm10, %xmm011454; AVX512-FCP-NEXT: vextracti128 $1, %ymm10, %xmm1411455; AVX512-FCP-NEXT: vpshuflw {{.*#+}} xmm2 = xmm14[2,2,2,2,4,5,6,7]11456; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm2 = xmm0[0],xmm2[1],xmm0[2,3],xmm2[4],xmm0[5,6,7]11457; AVX512-FCP-NEXT: vmovdqa64 {{.*#+}} ymm29 = [65535,65535,65535,65535,65535,0,0,0,0,0,65535,65535,65535,65535,65535,65535]11458; AVX512-FCP-NEXT: vmovdqa {{.*#+}} ymm0 = [128,128,128,128,128,128,128,128,128,128,4,5,0,1,12,13,24,25,20,21,128,128,128,128,128,128,128,128,128,128,128,128]11459; AVX512-FCP-NEXT: vpshufb %ymm0, %ymm4, %ymm311460; AVX512-FCP-NEXT: vmovdqa64 %ymm4, %ymm1711461; AVX512-FCP-NEXT: vpternlogq {{.*#+}} ymm2 = (ymm2 & ymm29) | ymm311462; AVX512-FCP-NEXT: movw $31, %ax11463; AVX512-FCP-NEXT: kmovw %eax, %k111464; AVX512-FCP-NEXT: vmovdqa32 %zmm2, %zmm30 {%k1}11465; AVX512-FCP-NEXT: vmovdqa64 %ymm31, %ymm211466; AVX512-FCP-NEXT: vpblendd $189, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm4 # 32-byte Folded Reload11467; AVX512-FCP-NEXT: # ymm4 = mem[0],ymm2[1],mem[2,3,4,5],ymm2[6],mem[7]11468; AVX512-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload11469; AVX512-FCP-NEXT: vpblendd $146, (%rsp), %ymm2, %ymm2 # 32-byte Folded Reload11470; AVX512-FCP-NEXT: # ymm2 = ymm2[0],mem[1],ymm2[2,3],mem[4],ymm2[5,6],mem[7]11471; AVX512-FCP-NEXT: vextracti128 $1, %ymm2, %xmm311472; AVX512-FCP-NEXT: vpshufd {{.*#+}} xmm5 = xmm2[0,3,2,1]11473; AVX512-FCP-NEXT: vpshufb %xmm12, %xmm3, %xmm211474; AVX512-FCP-NEXT: vmovdqa64 %xmm3, %xmm2011475; AVX512-FCP-NEXT: vpshufb %xmm12, %xmm5, %xmm311476; AVX512-FCP-NEXT: vmovdqa64 %xmm5, %xmm1911477; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm2 = xmm3[0,1,2,3],xmm2[4],xmm3[5],xmm2[6,7]11478; AVX512-FCP-NEXT: vinserti128 $1, %xmm2, %ymm0, %ymm211479; AVX512-FCP-NEXT: vmovdqa {{.*#+}} ymm5 = [8,9,4,5,4,5,6,7,0,1,4,5,0,1,12,13,24,25,20,21,20,21,22,23,16,17,20,21,16,17,28,29]11480; AVX512-FCP-NEXT: vpshufb %ymm5, %ymm4, %ymm311481; AVX512-FCP-NEXT: vmovdqa64 %ymm5, %ymm1611482; AVX512-FCP-NEXT: vmovdqa64 %ymm4, %ymm1811483; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm3[0,1,2,3,4],ymm2[5,6,7]11484; AVX512-FCP-NEXT: vmovdqa64 %ymm2, %ymm2711485; AVX512-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload11486; AVX512-FCP-NEXT: vpblendd $189, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm15 # 32-byte Folded Reload11487; AVX512-FCP-NEXT: # ymm15 = mem[0],ymm2[1],mem[2,3,4,5],ymm2[6],mem[7]11488; AVX512-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload11489; AVX512-FCP-NEXT: vpblendd $219, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm6 # 32-byte Folded Reload11490; AVX512-FCP-NEXT: # ymm6 = mem[0,1],ymm2[2],mem[3,4],ymm2[5],mem[6,7]11491; AVX512-FCP-NEXT: vpshufb %xmm1, %xmm6, %xmm311492; AVX512-FCP-NEXT: vextracti128 $1, %ymm6, %xmm1311493; AVX512-FCP-NEXT: vpshuflw {{.*#+}} xmm4 = xmm13[2,2,2,2,4,5,6,7]11494; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm3 = xmm3[0],xmm4[1],xmm3[2,3],xmm4[4],xmm3[5,6,7]11495; AVX512-FCP-NEXT: vpshufb %ymm0, %ymm15, %ymm011496; AVX512-FCP-NEXT: vpternlogq {{.*#+}} ymm3 = (ymm3 & ymm29) | ymm011497; AVX512-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload11498; AVX512-FCP-NEXT: vpblendd $219, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm2 # 32-byte Folded Reload11499; AVX512-FCP-NEXT: # ymm2 = mem[0,1],ymm0[2],mem[3,4],ymm0[5],mem[6,7]11500; AVX512-FCP-NEXT: vpshufb %xmm1, %xmm2, %xmm111501; AVX512-FCP-NEXT: vextracti128 $1, %ymm2, %xmm711502; AVX512-FCP-NEXT: vpshuflw {{.*#+}} xmm4 = xmm7[2,2,2,2,4,5,6,7]11503; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0],xmm4[1],xmm1[2,3],xmm4[4],xmm1[5,6,7]11504; AVX512-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload11505; AVX512-FCP-NEXT: vpblendd $146, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm4 # 32-byte Folded Reload11506; AVX512-FCP-NEXT: # ymm4 = ymm0[0],mem[1],ymm0[2,3],mem[4],ymm0[5,6],mem[7]11507; AVX512-FCP-NEXT: vextracti128 $1, %ymm4, %xmm911508; AVX512-FCP-NEXT: vpshufd {{.*#+}} xmm8 = xmm4[0,3,2,1]11509; AVX512-FCP-NEXT: vpshufb %xmm12, %xmm9, %xmm411510; AVX512-FCP-NEXT: vpshufb %xmm12, %xmm8, %xmm511511; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm4 = xmm5[0,1,2,3],xmm4[4],xmm5[5],xmm4[6,7]11512; AVX512-FCP-NEXT: vinserti128 $1, %xmm4, %ymm0, %ymm411513; AVX512-FCP-NEXT: vinserti32x4 $2, %xmm1, %zmm4, %zmm3111514; AVX512-FCP-NEXT: vmovdqa32 %zmm3, %zmm31 {%k1}11515; AVX512-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload11516; AVX512-FCP-NEXT: vpblendd $66, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm5 # 32-byte Folded Reload11517; AVX512-FCP-NEXT: # ymm5 = ymm0[0],mem[1],ymm0[2,3,4,5],mem[6],ymm0[7]11518; AVX512-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload11519; AVX512-FCP-NEXT: vpblendd $109, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm1 # 32-byte Folded Reload11520; AVX512-FCP-NEXT: # ymm1 = mem[0],ymm0[1],mem[2,3],ymm0[4],mem[5,6],ymm0[7]11521; AVX512-FCP-NEXT: vextracti128 $1, %ymm1, %xmm311522; AVX512-FCP-NEXT: vpshufd {{.*#+}} xmm1 = xmm1[0,3,2,1]11523; AVX512-FCP-NEXT: vpshufb %xmm12, %xmm3, %xmm411524; AVX512-FCP-NEXT: vpshufb %xmm12, %xmm1, %xmm1211525; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm4 = xmm12[0,1,2,3],xmm4[4],xmm12[5],xmm4[6,7]11526; AVX512-FCP-NEXT: vmovdqa64 %ymm16, %ymm011527; AVX512-FCP-NEXT: vpshufb %ymm0, %ymm5, %ymm1211528; AVX512-FCP-NEXT: vinserti128 $1, %xmm4, %ymm0, %ymm411529; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm12[0,1,2,3,4],ymm4[5,6,7]11530; AVX512-FCP-NEXT: vmovdqa64 %ymm0, %ymm1611531; AVX512-FCP-NEXT: vmovdqa {{.*#+}} xmm4 = [10,11,6,7,2,3,14,15,10,11,10,11,12,13,14,15]11532; AVX512-FCP-NEXT: vpshufb %xmm4, %xmm14, %xmm1411533; AVX512-FCP-NEXT: vpshufb %xmm4, %xmm10, %xmm1011534; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm14 = xmm10[0],xmm14[1],xmm10[2,3],xmm14[4],xmm10[5,6,7]11535; AVX512-FCP-NEXT: vmovdqa {{.*#+}} ymm12 = [128,128,128,128,128,128,128,128,128,128,6,7,2,3,14,15,26,27,22,23,128,128,128,128,128,128,128,128,128,128,128,128]11536; AVX512-FCP-NEXT: vmovdqa64 %ymm17, %ymm011537; AVX512-FCP-NEXT: vpshufb %ymm12, %ymm0, %ymm1011538; AVX512-FCP-NEXT: vmovdqa64 %ymm12, %ymm1711539; AVX512-FCP-NEXT: vpternlogq {{.*#+}} ymm14 = (ymm14 & ymm29) | ymm1011540; AVX512-FCP-NEXT: vmovdqa64 %xmm24, %xmm011541; AVX512-FCP-NEXT: vpshufb %xmm4, %xmm0, %xmm1011542; AVX512-FCP-NEXT: vpshufb %xmm4, %xmm11, %xmm1111543; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm11 = xmm11[0],xmm10[1],xmm11[2,3],xmm10[4],xmm11[5,6,7]11544; AVX512-FCP-NEXT: vmovdqa {{.*#+}} xmm10 = [0,1,2,3,2,3,6,7,10,11,14,15,2,3,14,15]11545; AVX512-FCP-NEXT: vmovdqa64 %xmm22, %xmm011546; AVX512-FCP-NEXT: vpshufb %xmm10, %xmm0, %xmm011547; AVX512-FCP-NEXT: vmovdqa64 %xmm21, %xmm1211548; AVX512-FCP-NEXT: vpshufb %xmm10, %xmm12, %xmm1211549; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm0 = xmm12[0,1,2,3],xmm0[4],xmm12[5],xmm0[6,7]11550; AVX512-FCP-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm011551; AVX512-FCP-NEXT: vinserti32x4 $2, %xmm11, %zmm0, %zmm011552; AVX512-FCP-NEXT: vmovdqa32 %zmm14, %zmm0 {%k1}11553; AVX512-FCP-NEXT: vmovdqa64 %xmm20, %xmm1111554; AVX512-FCP-NEXT: vpshufb %xmm10, %xmm11, %xmm1111555; AVX512-FCP-NEXT: vmovdqa64 %xmm19, %xmm1211556; AVX512-FCP-NEXT: vpshufb %xmm10, %xmm12, %xmm1211557; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm11 = xmm12[0,1,2,3],xmm11[4],xmm12[5],xmm11[6,7]11558; AVX512-FCP-NEXT: vmovdqa {{.*#+}} ymm12 = [10,11,6,7,4,5,6,7,6,7,6,7,2,3,14,15,26,27,22,23,20,21,22,23,22,23,22,23,18,19,30,31]11559; AVX512-FCP-NEXT: vmovdqa64 %ymm18, %ymm1411560; AVX512-FCP-NEXT: vpshufb %ymm12, %ymm14, %ymm1411561; AVX512-FCP-NEXT: vinserti128 $1, %xmm11, %ymm0, %ymm1111562; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm11 = ymm14[0,1,2,3,4],ymm11[5,6,7]11563; AVX512-FCP-NEXT: vmovdqa64 %ymm17, %ymm1411564; AVX512-FCP-NEXT: vpshufb %ymm14, %ymm15, %ymm1411565; AVX512-FCP-NEXT: vpshufb %xmm4, %xmm13, %xmm1311566; AVX512-FCP-NEXT: vpshufb %xmm4, %xmm6, %xmm611567; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm6 = xmm6[0],xmm13[1],xmm6[2,3],xmm13[4],xmm6[5,6,7]11568; AVX512-FCP-NEXT: vpternlogq {{.*#+}} ymm6 = (ymm6 & ymm29) | ymm1411569; AVX512-FCP-NEXT: vpshufb %xmm4, %xmm7, %xmm711570; AVX512-FCP-NEXT: vpshufb %xmm4, %xmm2, %xmm211571; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0],xmm7[1],xmm2[2,3],xmm7[4],xmm2[5,6,7]11572; AVX512-FCP-NEXT: vinserti64x4 $1, %ymm27, %zmm0, %zmm411573; AVX512-FCP-NEXT: vinserti64x4 $1, %ymm16, %zmm0, %zmm711574; AVX512-FCP-NEXT: vinserti64x4 $1, %ymm11, %zmm0, %zmm1111575; AVX512-FCP-NEXT: vpshufb %xmm10, %xmm9, %xmm911576; AVX512-FCP-NEXT: vpshufb %xmm10, %xmm8, %xmm811577; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm8 = xmm8[0,1,2,3],xmm9[4],xmm8[5],xmm9[6,7]11578; AVX512-FCP-NEXT: vinserti128 $1, %xmm8, %ymm0, %ymm811579; AVX512-FCP-NEXT: vinserti32x4 $2, %xmm2, %zmm8, %zmm211580; AVX512-FCP-NEXT: vmovdqa32 %zmm6, %zmm2 {%k1}11581; AVX512-FCP-NEXT: vpshufb %ymm12, %ymm5, %ymm511582; AVX512-FCP-NEXT: vpshufb %xmm10, %xmm3, %xmm311583; AVX512-FCP-NEXT: vpshufb %xmm10, %xmm1, %xmm111584; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1,2,3],xmm3[4],xmm1[5],xmm3[6,7]11585; AVX512-FCP-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm111586; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm5[0,1,2,3,4],ymm1[5,6,7]11587; AVX512-FCP-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm111588; AVX512-FCP-NEXT: vmovdqa64 {{.*#+}} zmm3 = [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]11589; AVX512-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload11590; AVX512-FCP-NEXT: vpternlogq $226, {{[-0-9]+}}(%r{{[sb]}}p), %zmm3, %zmm5 # 64-byte Folded Reload11591; AVX512-FCP-NEXT: # zmm5 = mem ^ (zmm3 & (zmm5 ^ mem))11592; AVX512-FCP-NEXT: movw $-2048, %ax # imm = 0xF80011593; AVX512-FCP-NEXT: kmovw %eax, %k111594; AVX512-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload11595; AVX512-FCP-NEXT: vmovdqa32 %zmm6, %zmm5 {%k1}11596; AVX512-FCP-NEXT: vmovdqa64 %zmm5, (%rsi)11597; AVX512-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload11598; AVX512-FCP-NEXT: vpternlogq $226, {{[-0-9]+}}(%r{{[sb]}}p), %zmm3, %zmm5 # 64-byte Folded Reload11599; AVX512-FCP-NEXT: # zmm5 = mem ^ (zmm3 & (zmm5 ^ mem))11600; AVX512-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload11601; AVX512-FCP-NEXT: vmovdqa32 %zmm6, %zmm5 {%k1}11602; AVX512-FCP-NEXT: vmovdqa64 %zmm5, 64(%rsi)11603; AVX512-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload11604; AVX512-FCP-NEXT: vpternlogq $226, {{[-0-9]+}}(%r{{[sb]}}p), %zmm3, %zmm5 # 64-byte Folded Reload11605; AVX512-FCP-NEXT: # zmm5 = mem ^ (zmm3 & (zmm5 ^ mem))11606; AVX512-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload11607; AVX512-FCP-NEXT: vmovdqa32 %zmm6, %zmm5 {%k1}11608; AVX512-FCP-NEXT: vmovdqa64 %zmm5, 64(%rdx)11609; AVX512-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload11610; AVX512-FCP-NEXT: vpternlogq $226, {{[-0-9]+}}(%r{{[sb]}}p), %zmm3, %zmm5 # 64-byte Folded Reload11611; AVX512-FCP-NEXT: # zmm5 = mem ^ (zmm3 & (zmm5 ^ mem))11612; AVX512-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload11613; AVX512-FCP-NEXT: vmovdqa32 %zmm3, %zmm5 {%k1}11614; AVX512-FCP-NEXT: vmovdqa64 %zmm5, (%rdx)11615; AVX512-FCP-NEXT: vpternlogq {{.*#+}} zmm4 = zmm4 ^ (zmm26 & (zmm4 ^ zmm30))11616; AVX512-FCP-NEXT: vpternlogq {{.*#+}} zmm7 = zmm7 ^ (zmm26 & (zmm7 ^ zmm31))11617; AVX512-FCP-NEXT: vpternlogq {{.*#+}} zmm11 = zmm11 ^ (zmm26 & (zmm11 ^ zmm0))11618; AVX512-FCP-NEXT: vpternlogq {{.*#+}} zmm1 = zmm1 ^ (zmm26 & (zmm1 ^ zmm2))11619; AVX512-FCP-NEXT: vmovdqa64 %zmm25, 64(%rcx)11620; AVX512-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload11621; AVX512-FCP-NEXT: vmovaps %zmm0, (%rcx)11622; AVX512-FCP-NEXT: vmovdqa64 %zmm28, 64(%r8)11623; AVX512-FCP-NEXT: vmovdqa64 %zmm23, (%r8)11624; AVX512-FCP-NEXT: vmovdqa64 %zmm7, 64(%r9)11625; AVX512-FCP-NEXT: vmovdqa64 %zmm4, (%r9)11626; AVX512-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax11627; AVX512-FCP-NEXT: vmovdqa64 %zmm1, 64(%rax)11628; AVX512-FCP-NEXT: vmovdqa64 %zmm11, (%rax)11629; AVX512-FCP-NEXT: addq $1416, %rsp # imm = 0x58811630; AVX512-FCP-NEXT: vzeroupper11631; AVX512-FCP-NEXT: retq11632;11633; AVX512DQ-LABEL: load_i16_stride6_vf64:11634; AVX512DQ: # %bb.0:11635; AVX512DQ-NEXT: subq $840, %rsp # imm = 0x34811636; AVX512DQ-NEXT: vmovdqa {{.*#+}} xmm9 = [0,1,12,13,u,u,4,5,u,u,u,u,12,13,14,15]11637; AVX512DQ-NEXT: vmovdqa 608(%rdi), %ymm011638; AVX512DQ-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11639; AVX512DQ-NEXT: vmovdqa 576(%rdi), %ymm111640; AVX512DQ-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11641; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0],ymm0[1],ymm1[2,3],ymm0[4],ymm1[5,6],ymm0[7]11642; AVX512DQ-NEXT: vpshufb %xmm9, %xmm1, %xmm011643; AVX512DQ-NEXT: vextracti32x4 $1, %ymm1, %xmm2411644; AVX512DQ-NEXT: vmovdqa64 %ymm1, %ymm2511645; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm1 = xmm24[0,2,0,3]11646; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,6,6,7]11647; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1],xmm1[2],xmm0[3],xmm1[4,5],xmm0[6,7]11648; AVX512DQ-NEXT: vmovdqa 544(%rdi), %ymm111649; AVX512DQ-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11650; AVX512DQ-NEXT: vmovdqa 512(%rdi), %ymm211651; AVX512DQ-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11652; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1],ymm1[2],ymm2[3,4],ymm1[5],ymm2[6,7]11653; AVX512DQ-NEXT: vextracti128 $1, %ymm2, %xmm311654; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm1 = xmm2[2,2,2,2,4,5,6,7]11655; AVX512DQ-NEXT: vmovdqa64 %ymm2, %ymm2311656; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm1 = xmm3[0,1,2],xmm1[3,4],xmm3[5,6,7]11657; AVX512DQ-NEXT: vmovdqa64 %xmm3, %xmm2211658; AVX512DQ-NEXT: vmovdqa {{.*#+}} xmm10 = [0,1,4,5,4,5,6,7,0,1,12,13,8,9,4,5]11659; AVX512DQ-NEXT: vpshufb %xmm10, %xmm1, %xmm111660; AVX512DQ-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm111661; AVX512DQ-NEXT: vinserti32x4 $2, %xmm0, %zmm1, %zmm011662; AVX512DQ-NEXT: vmovdqa 448(%rdi), %ymm111663; AVX512DQ-NEXT: vmovdqa 416(%rdi), %ymm211664; AVX512DQ-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11665; AVX512DQ-NEXT: vmovdqa 384(%rdi), %ymm311666; AVX512DQ-NEXT: vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11667; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm15 = ymm3[0],ymm2[1],ymm3[2,3],ymm2[4],ymm3[5,6],ymm2[7]11668; AVX512DQ-NEXT: vpshufb %xmm9, %xmm15, %xmm211669; AVX512DQ-NEXT: vextracti32x4 $1, %ymm15, %xmm2111670; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm3 = xmm21[0,2,0,3]11671; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,4,6,6,7]11672; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0,1],xmm3[2],xmm2[3],xmm3[4,5],xmm2[6,7]11673; AVX512DQ-NEXT: vperm2i128 {{.*#+}} ymm3 = ymm1[2,3],mem[2,3]11674; AVX512DQ-NEXT: vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11675; AVX512DQ-NEXT: vinserti128 $1, 480(%rdi), %ymm1, %ymm111676; AVX512DQ-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11677; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm3 = ymm1[0],ymm3[1],ymm1[2,3,4,5],ymm3[6],ymm1[7]11678; AVX512DQ-NEXT: vmovdqa {{.*#+}} ymm5 = [0,1,12,13,8,9,12,13,8,9,12,13,8,9,4,5,16,17,28,29,24,25,28,29,24,25,28,29,24,25,20,21]11679; AVX512DQ-NEXT: vpshufb %ymm5, %ymm3, %ymm111680; AVX512DQ-NEXT: vmovdqa64 %ymm3, %ymm2011681; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm3 = ymm2[0,1,2],ymm1[3,4,5,6,7]11682; AVX512DQ-NEXT: vmovdqa 640(%rdi), %ymm111683; AVX512DQ-NEXT: vmovdqa 736(%rdi), %ymm211684; AVX512DQ-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11685; AVX512DQ-NEXT: vmovdqa 704(%rdi), %ymm411686; AVX512DQ-NEXT: vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11687; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm12 = ymm4[0,1],ymm2[2],ymm4[3,4],ymm2[5],ymm4[6,7]11688; AVX512DQ-NEXT: vextracti128 $1, %ymm12, %xmm411689; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm2 = xmm12[2,2,2,2,4,5,6,7]11690; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm2 = xmm4[0,1,2],xmm2[3,4],xmm4[5,6,7]11691; AVX512DQ-NEXT: vmovdqa64 %xmm4, %xmm1911692; AVX512DQ-NEXT: vpshufb %xmm10, %xmm2, %xmm211693; AVX512DQ-NEXT: vinserti128 $1, %xmm2, %ymm0, %ymm211694; AVX512DQ-NEXT: vperm2i128 {{.*#+}} ymm4 = ymm1[2,3],mem[2,3]11695; AVX512DQ-NEXT: vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11696; AVX512DQ-NEXT: vinserti128 $1, 672(%rdi), %ymm1, %ymm111697; AVX512DQ-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11698; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm4 = ymm1[0],ymm4[1],ymm1[2,3,4,5],ymm4[6],ymm1[7]11699; AVX512DQ-NEXT: vmovdqa {{.*#+}} ymm6 = [0,1,12,13,8,9,12,13,8,9,12,13,4,5,u,u,16,17,28,29,24,25,28,29,24,25,28,29,20,21,u,u]11700; AVX512DQ-NEXT: vpshufb %ymm6, %ymm4, %ymm111701; AVX512DQ-NEXT: vmovdqa64 %ymm6, %ymm2711702; AVX512DQ-NEXT: vmovdqa64 %ymm4, %ymm1811703; AVX512DQ-NEXT: vpblendw {{.*#+}} ymm2 = ymm1[0,1,2],ymm2[3,4,5,6,7],ymm1[8,9,10],ymm2[11,12,13,14,15]11704; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,5,4,6]11705; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm2[4,5,6,7]11706; AVX512DQ-NEXT: vmovdqa64 {{.*#+}} zmm16 = [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]11707; AVX512DQ-NEXT: vpternlogq {{.*#+}} zmm3 = zmm0 ^ (zmm16 & (zmm3 ^ zmm0))11708; AVX512DQ-NEXT: movw $-2048, %ax # imm = 0xF80011709; AVX512DQ-NEXT: kmovw %eax, %k111710; AVX512DQ-NEXT: vinserti32x8 $1, %ymm1, %zmm0, %zmm3 {%k1}11711; AVX512DQ-NEXT: vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill11712; AVX512DQ-NEXT: vmovdqa 224(%rdi), %ymm011713; AVX512DQ-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11714; AVX512DQ-NEXT: vmovdqa 192(%rdi), %ymm111715; AVX512DQ-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11716; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm13 = ymm1[0],ymm0[1],ymm1[2,3],ymm0[4],ymm1[5,6],ymm0[7]11717; AVX512DQ-NEXT: vextracti128 $1, %ymm13, %xmm1411718; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm0 = xmm14[0,2,0,3]11719; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,6,6,7]11720; AVX512DQ-NEXT: vpshufb %xmm9, %xmm13, %xmm111721; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm0 = xmm1[0,1],xmm0[2],xmm1[3],xmm0[4,5],xmm1[6,7]11722; AVX512DQ-NEXT: vmovdqa 160(%rdi), %ymm111723; AVX512DQ-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11724; AVX512DQ-NEXT: vmovdqa 128(%rdi), %ymm211725; AVX512DQ-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11726; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm4 = ymm2[0,1],ymm1[2],ymm2[3,4],ymm1[5],ymm2[6,7]11727; AVX512DQ-NEXT: vextracti128 $1, %ymm4, %xmm1111728; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm1 = xmm4[2,2,2,2,4,5,6,7]11729; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm1 = xmm11[0,1,2],xmm1[3,4],xmm11[5,6,7]11730; AVX512DQ-NEXT: vpshufb %xmm10, %xmm1, %xmm111731; AVX512DQ-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm111732; AVX512DQ-NEXT: vinserti32x4 $2, %xmm0, %zmm1, %zmm1711733; AVX512DQ-NEXT: vmovdqa (%rdi), %ymm011734; AVX512DQ-NEXT: vmovdqu %ymm0, (%rsp) # 32-byte Spill11735; AVX512DQ-NEXT: vmovdqa 32(%rdi), %ymm111736; AVX512DQ-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11737; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm3 = ymm0[0],ymm1[1],ymm0[2,3],ymm1[4],ymm0[5,6],ymm1[7]11738; AVX512DQ-NEXT: vpshufb %xmm9, %xmm3, %xmm011739; AVX512DQ-NEXT: vextracti128 $1, %ymm3, %xmm911740; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm2 = xmm9[0,2,0,3]11741; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,6,6,7]11742; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1],xmm2[2],xmm0[3],xmm2[4,5],xmm0[6,7]11743; AVX512DQ-NEXT: vmovdqa 64(%rdi), %ymm211744; AVX512DQ-NEXT: vperm2i128 {{.*#+}} ymm1 = ymm2[2,3],mem[2,3]11745; AVX512DQ-NEXT: vinserti128 $1, 96(%rdi), %ymm2, %ymm211746; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm6 = ymm2[0],ymm1[1],ymm2[2,3,4,5],ymm1[6],ymm2[7]11747; AVX512DQ-NEXT: vmovdqa64 %ymm2, %ymm3111748; AVX512DQ-NEXT: vmovdqa64 %ymm1, %ymm3011749; AVX512DQ-NEXT: vpshufb %ymm5, %ymm6, %ymm211750; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm7 = ymm0[0,1,2],ymm2[3,4,5,6,7]11751; AVX512DQ-NEXT: vmovdqa 352(%rdi), %ymm011752; AVX512DQ-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11753; AVX512DQ-NEXT: vmovdqa 320(%rdi), %ymm111754; AVX512DQ-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11755; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm5 = ymm1[0,1],ymm0[2],ymm1[3,4],ymm0[5],ymm1[6,7]11756; AVX512DQ-NEXT: vextracti128 $1, %ymm5, %xmm811757; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm2 = xmm5[2,2,2,2,4,5,6,7]11758; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm2 = xmm8[0,1,2],xmm2[3,4],xmm8[5,6,7]11759; AVX512DQ-NEXT: vpshufb %xmm10, %xmm2, %xmm1011760; AVX512DQ-NEXT: vmovdqa 256(%rdi), %ymm211761; AVX512DQ-NEXT: vperm2i128 {{.*#+}} ymm1 = ymm2[2,3],mem[2,3]11762; AVX512DQ-NEXT: vinserti128 $1, 288(%rdi), %ymm2, %ymm011763; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm2 = ymm0[0],ymm1[1],ymm0[2,3,4,5],ymm1[6],ymm0[7]11764; AVX512DQ-NEXT: vmovdqa64 %ymm0, %ymm2611765; AVX512DQ-NEXT: vmovdqa64 %ymm1, %ymm2911766; AVX512DQ-NEXT: vmovdqa64 %ymm27, %ymm011767; AVX512DQ-NEXT: vpshufb %ymm0, %ymm2, %ymm011768; AVX512DQ-NEXT: vinserti128 $1, %xmm10, %ymm0, %ymm1011769; AVX512DQ-NEXT: vpblendw {{.*#+}} ymm10 = ymm0[0,1,2],ymm10[3,4,5,6,7],ymm0[8,9,10],ymm10[11,12,13,14,15]11770; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,5,4,6]11771; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm10[4,5,6,7]11772; AVX512DQ-NEXT: vpternlogq {{.*#+}} zmm7 = zmm17 ^ (zmm16 & (zmm7 ^ zmm17))11773; AVX512DQ-NEXT: vinserti32x8 $1, %ymm0, %zmm0, %zmm7 {%k1}11774; AVX512DQ-NEXT: vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill11775; AVX512DQ-NEXT: vmovdqa {{.*#+}} xmm10 = [2,3,14,15,10,11,6,7,2,3,14,15,12,13,14,15]11776; AVX512DQ-NEXT: vpshufb %xmm10, %xmm14, %xmm011777; AVX512DQ-NEXT: vpshufb %xmm10, %xmm13, %xmm1311778; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm0 = xmm13[0,1],xmm0[2],xmm13[3],xmm0[4,5],xmm13[6,7]11779; AVX512DQ-NEXT: vmovdqa {{.*#+}} xmm13 = [6,7,2,3,4,5,u,u,2,3,14,15,u,u,6,7]11780; AVX512DQ-NEXT: vpshufb %xmm13, %xmm11, %xmm711781; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm4 = xmm4[0,1,2,3,5,5,5,5]11782; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm4 = xmm7[0,1,2],xmm4[3],xmm7[4,5],xmm4[6],xmm7[7]11783; AVX512DQ-NEXT: vinserti128 $1, %xmm4, %ymm0, %ymm411784; AVX512DQ-NEXT: vinserti32x4 $2, %xmm0, %zmm4, %zmm011785; AVX512DQ-NEXT: vpshufb %xmm10, %xmm9, %xmm411786; AVX512DQ-NEXT: vpshufb %xmm10, %xmm3, %xmm311787; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm3 = xmm3[0,1],xmm4[2],xmm3[3],xmm4[4,5],xmm3[6,7]11788; AVX512DQ-NEXT: vmovdqa {{.*#+}} ymm4 = [2,3,14,15,10,11,10,11,14,15,10,11,10,11,6,7,18,19,30,31,26,27,26,27,30,31,26,27,26,27,22,23]11789; AVX512DQ-NEXT: vpshufb %ymm4, %ymm6, %ymm611790; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm6 = ymm3[0,1,2],ymm6[3,4,5,6,7]11791; AVX512DQ-NEXT: vpshufb %xmm13, %xmm8, %xmm311792; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm1 = xmm5[0,1,2,3,5,5,5,5]11793; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm1 = xmm3[0,1,2],xmm1[3],xmm3[4,5],xmm1[6],xmm3[7]11794; AVX512DQ-NEXT: vmovdqa {{.*#+}} ymm3 = [2,3,14,15,10,11,10,11,14,15,10,11,u,u,6,7,18,19,30,31,26,27,26,27,30,31,26,27,u,u,22,23]11795; AVX512DQ-NEXT: vpshufb %ymm3, %ymm2, %ymm211796; AVX512DQ-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm111797; AVX512DQ-NEXT: vpblendw {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3,4,5,6,7],ymm2[8,9,10],ymm1[11,12,13,14,15]11798; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,5,5,7]11799; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]11800; AVX512DQ-NEXT: vpternlogq {{.*#+}} zmm6 = zmm0 ^ (zmm16 & (zmm6 ^ zmm0))11801; AVX512DQ-NEXT: vinserti32x8 $1, %ymm1, %zmm0, %zmm6 {%k1}11802; AVX512DQ-NEXT: vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill11803; AVX512DQ-NEXT: vmovdqa64 %xmm24, %xmm011804; AVX512DQ-NEXT: vpshufb %xmm10, %xmm0, %xmm011805; AVX512DQ-NEXT: vmovdqa64 %ymm25, %ymm111806; AVX512DQ-NEXT: vpshufb %xmm10, %xmm1, %xmm111807; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm0 = xmm1[0,1],xmm0[2],xmm1[3],xmm0[4,5],xmm1[6,7]11808; AVX512DQ-NEXT: vmovdqa64 %xmm22, %xmm111809; AVX512DQ-NEXT: vpshufb %xmm13, %xmm1, %xmm111810; AVX512DQ-NEXT: vmovdqa64 %ymm23, %ymm211811; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,5,5,5,5]11812; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1,2],xmm2[3],xmm1[4,5],xmm2[6],xmm1[7]11813; AVX512DQ-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm111814; AVX512DQ-NEXT: vinserti32x4 $2, %xmm0, %zmm1, %zmm011815; AVX512DQ-NEXT: vmovdqa64 %ymm20, %ymm111816; AVX512DQ-NEXT: vpshufb %ymm4, %ymm1, %ymm111817; AVX512DQ-NEXT: vmovdqa64 %xmm21, %xmm211818; AVX512DQ-NEXT: vpshufb %xmm10, %xmm2, %xmm211819; AVX512DQ-NEXT: vpshufb %xmm10, %xmm15, %xmm411820; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm2 = xmm4[0,1],xmm2[2],xmm4[3],xmm2[4,5],xmm4[6,7]11821; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm4 = ymm2[0,1,2],ymm1[3,4,5,6,7]11822; AVX512DQ-NEXT: vmovdqa64 %ymm18, %ymm111823; AVX512DQ-NEXT: vpshufb %ymm3, %ymm1, %ymm111824; AVX512DQ-NEXT: vmovdqa64 %xmm19, %xmm211825; AVX512DQ-NEXT: vpshufb %xmm13, %xmm2, %xmm211826; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm3 = xmm12[0,1,2,3,5,5,5,5]11827; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0,1,2],xmm3[3],xmm2[4,5],xmm3[6],xmm2[7]11828; AVX512DQ-NEXT: vinserti128 $1, %xmm2, %ymm0, %ymm211829; AVX512DQ-NEXT: vpblendw {{.*#+}} ymm2 = ymm1[0,1,2],ymm2[3,4,5,6,7],ymm1[8,9,10],ymm2[11,12,13,14,15]11830; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,5,5,7]11831; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm2[4,5,6,7]11832; AVX512DQ-NEXT: vpternlogq {{.*#+}} zmm4 = zmm0 ^ (zmm16 & (zmm4 ^ zmm0))11833; AVX512DQ-NEXT: vinserti32x8 $1, %ymm1, %zmm0, %zmm4 {%k1}11834; AVX512DQ-NEXT: vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill11835; AVX512DQ-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload11836; AVX512DQ-NEXT: vpblendd $219, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload11837; AVX512DQ-NEXT: # ymm0 = mem[0,1],ymm0[2],mem[3,4],ymm0[5],mem[6,7]11838; AVX512DQ-NEXT: vextracti128 $1, %ymm0, %xmm111839; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm2 = xmm0[2,1,2,3]11840; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm1 = xmm1[0,3,2,1]11841; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm0 = xmm1[0,0,2,3,4,5,6,7]11842; AVX512DQ-NEXT: vmovdqa64 %xmm1, %xmm2011843; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,6,6,6,6]11844; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm1 = xmm2[2,1,2,0,4,5,6,7]11845; AVX512DQ-NEXT: vmovdqa64 %xmm2, %xmm2211846; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm0 = xmm1[0],xmm0[1,2],xmm1[3],xmm0[4,5,6,7]11847; AVX512DQ-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload11848; AVX512DQ-NEXT: vpblendd $36, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload11849; AVX512DQ-NEXT: # ymm1 = ymm1[0,1],mem[2],ymm1[3,4],mem[5],ymm1[6,7]11850; AVX512DQ-NEXT: vextracti128 $1, %ymm1, %xmm211851; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm3 = xmm1[2,1,0,3]11852; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm1 = xmm3[0,0,0,0,4,5,6,7]11853; AVX512DQ-NEXT: vmovdqa64 %xmm3, %xmm2311854; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,4,6,7]11855; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm3 = xmm2[0,1,2,1]11856; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm2 = xmm3[0,1,2,3,6,5,6,4]11857; AVX512DQ-NEXT: vmovdqa64 %xmm3, %xmm2411858; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1,2,3],xmm2[4],xmm1[5,6],xmm2[7]11859; AVX512DQ-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm111860; AVX512DQ-NEXT: vinserti32x4 $2, %xmm0, %zmm1, %zmm211861; AVX512DQ-NEXT: vmovdqu (%rsp), %ymm0 # 32-byte Reload11862; AVX512DQ-NEXT: vpblendd $36, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload11863; AVX512DQ-NEXT: # ymm0 = ymm0[0,1],mem[2],ymm0[3,4],mem[5],ymm0[6,7]11864; AVX512DQ-NEXT: vextracti128 $1, %ymm0, %xmm111865; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm3 = xmm0[2,1,2,3]11866; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm1 = xmm1[0,3,2,1]11867; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm0 = xmm1[0,0,2,3,4,5,6,7]11868; AVX512DQ-NEXT: vmovdqa64 %xmm1, %xmm2511869; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[0,1,3,3]11870; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm1 = xmm3[2,1,2,0,4,5,6,7]11871; AVX512DQ-NEXT: vmovdqa64 %xmm3, %xmm1611872; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0],xmm0[1,2],xmm1[3],xmm0[4,5,6,7]11873; AVX512DQ-NEXT: vmovdqa64 %ymm31, %ymm011874; AVX512DQ-NEXT: vmovdqa64 %ymm30, %ymm311875; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm4 = ymm0[0,1],ymm3[2],ymm0[3],ymm3[4],ymm0[5,6],ymm3[7]11876; AVX512DQ-NEXT: vmovdqa {{.*#+}} ymm0 = [4,5,0,1,12,13,14,15,8,9,0,1,12,13,8,9,20,21,16,17,28,29,30,31,24,25,16,17,28,29,24,25]11877; AVX512DQ-NEXT: vpshufb %ymm0, %ymm4, %ymm311878; AVX512DQ-NEXT: vmovdqa64 %ymm4, %ymm1711879; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1,2,3,4],xmm3[5,6,7]11880; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm3[4,5,6,7]11881; AVX512DQ-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload11882; AVX512DQ-NEXT: vpblendd $36, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm3 # 32-byte Folded Reload11883; AVX512DQ-NEXT: # ymm3 = ymm3[0,1],mem[2],ymm3[3,4],mem[5],ymm3[6,7]11884; AVX512DQ-NEXT: vextracti128 $1, %ymm3, %xmm411885; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm15 = xmm3[2,1,0,3]11886; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm3 = xmm15[0,0,0,0,4,5,6,7]11887; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,4,4,6,7]11888; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm10 = xmm4[0,1,2,1]11889; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm4 = xmm10[0,1,2,3,6,5,6,4]11890; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm3 = xmm3[0,1,2,3],xmm4[4],xmm3[5,6],xmm4[7]11891; AVX512DQ-NEXT: vinserti128 $1, %xmm3, %ymm0, %ymm311892; AVX512DQ-NEXT: vmovdqa64 %ymm26, %ymm411893; AVX512DQ-NEXT: vmovdqa64 %ymm29, %ymm511894; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm13 = ymm4[0,1],ymm5[2],ymm4[3],ymm5[4],ymm4[5,6],ymm5[7]11895; AVX512DQ-NEXT: vmovdqa {{.*#+}} ymm5 = [4,5,0,1,12,13,14,15,8,9,12,13,0,1,u,u,20,21,16,17,28,29,30,31,24,25,28,29,16,17,u,u]11896; AVX512DQ-NEXT: vpshufb %ymm5, %ymm13, %ymm411897; AVX512DQ-NEXT: vmovdqa64 %ymm5, %ymm2711898; AVX512DQ-NEXT: vpblendw {{.*#+}} ymm3 = ymm4[0,1,2],ymm3[3,4,5,6,7],ymm4[8,9,10],ymm3[11,12,13,14,15]11899; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm4 = xmm4[0,1,2,3,4,6,5,4]11900; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm3 = ymm4[0,1,2,3],ymm3[4,5,6,7]11901; AVX512DQ-NEXT: vinserti64x4 $1, %ymm3, %zmm0, %zmm311902; AVX512DQ-NEXT: vmovdqa64 {{.*#+}} zmm21 = [65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,0,0,0,0,0,0,0,0,0,0,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535]11903; AVX512DQ-NEXT: vpternlogq {{.*#+}} zmm1 = zmm2 ^ (zmm21 & (zmm1 ^ zmm2))11904; AVX512DQ-NEXT: vpmovsxdq {{.*#+}} zmm18 = [18446744073709551615,18446744073709551615,18446744073709551615,18446744073709551615,18446744073709551615,65535,0,0]11905; AVX512DQ-NEXT: vpternlogq {{.*#+}} zmm3 = zmm3 ^ (zmm18 & (zmm3 ^ zmm1))11906; AVX512DQ-NEXT: vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill11907; AVX512DQ-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload11908; AVX512DQ-NEXT: vpblendd $219, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload11909; AVX512DQ-NEXT: # ymm1 = mem[0,1],ymm1[2],mem[3,4],ymm1[5],mem[6,7]11910; AVX512DQ-NEXT: vextracti128 $1, %ymm1, %xmm211911; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm11 = xmm1[2,1,2,3]11912; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm12 = xmm2[0,3,2,1]11913; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm1 = xmm12[0,0,2,3,4,5,6,7]11914; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,6,6,6,6]11915; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm2 = xmm11[2,1,2,0,4,5,6,7]11916; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm1 = xmm2[0],xmm1[1,2],xmm2[3],xmm1[4,5,6,7]11917; AVX512DQ-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload11918; AVX512DQ-NEXT: vpblendd $36, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload11919; AVX512DQ-NEXT: # ymm2 = ymm2[0,1],mem[2],ymm2[3,4],mem[5],ymm2[6,7]11920; AVX512DQ-NEXT: vextracti128 $1, %ymm2, %xmm311921; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm9 = xmm2[2,1,0,3]11922; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm2 = xmm9[0,0,0,0,4,5,6,7]11923; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,4,6,7]11924; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm8 = xmm3[0,1,2,1]11925; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm3 = xmm8[0,1,2,3,6,5,6,4]11926; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0,1,2,3],xmm3[4],xmm2[5,6],xmm3[7]11927; AVX512DQ-NEXT: vinserti128 $1, %xmm2, %ymm0, %ymm211928; AVX512DQ-NEXT: vinserti32x4 $2, %xmm1, %zmm2, %zmm1911929; AVX512DQ-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload11930; AVX512DQ-NEXT: vpblendd $36, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload11931; AVX512DQ-NEXT: # ymm1 = ymm1[0,1],mem[2],ymm1[3,4],mem[5],ymm1[6,7]11932; AVX512DQ-NEXT: vextracti128 $1, %ymm1, %xmm211933; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm6 = xmm1[2,1,2,3]11934; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm7 = xmm2[0,3,2,1]11935; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm1 = xmm7[0,0,2,3,4,5,6,7]11936; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm1 = xmm1[0,1,3,3]11937; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm2 = xmm6[2,1,2,0,4,5,6,7]11938; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm1 = xmm2[0],xmm1[1,2],xmm2[3],xmm1[4,5,6,7]11939; AVX512DQ-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload11940; AVX512DQ-NEXT: vpblendd $148, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm5 # 32-byte Folded Reload11941; AVX512DQ-NEXT: # ymm5 = ymm2[0,1],mem[2],ymm2[3],mem[4],ymm2[5,6],mem[7]11942; AVX512DQ-NEXT: vpshufb %ymm0, %ymm5, %ymm011943; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1,2,3,4],xmm0[5,6,7]11944; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm2 = ymm1[0,1,2,3],ymm0[4,5,6,7]11945; AVX512DQ-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload11946; AVX512DQ-NEXT: vpblendd $36, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm1 # 32-byte Folded Reload11947; AVX512DQ-NEXT: # ymm1 = ymm0[0,1],mem[2],ymm0[3,4],mem[5],ymm0[6,7]11948; AVX512DQ-NEXT: vextracti128 $1, %ymm1, %xmm011949; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm4 = xmm1[2,1,0,3]11950; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm1 = xmm4[0,0,0,0,4,5,6,7]11951; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,4,6,7]11952; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm3 = xmm0[0,1,2,1]11953; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm14 = xmm3[0,1,2,3,6,5,6,4]11954; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm14 = xmm1[0,1,2,3],xmm14[4],xmm1[5,6],xmm14[7]11955; AVX512DQ-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload11956; AVX512DQ-NEXT: vpblendd $107, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm1 # 32-byte Folded Reload11957; AVX512DQ-NEXT: # ymm1 = mem[0,1],ymm0[2],mem[3],ymm0[4],mem[5,6],ymm0[7]11958; AVX512DQ-NEXT: vmovdqa64 %ymm27, %ymm011959; AVX512DQ-NEXT: vpshufb %ymm0, %ymm1, %ymm011960; AVX512DQ-NEXT: vinserti128 $1, %xmm14, %ymm0, %ymm1411961; AVX512DQ-NEXT: vpblendw {{.*#+}} ymm14 = ymm0[0,1,2],ymm14[3,4,5,6,7],ymm0[8,9,10],ymm14[11,12,13,14,15]11962; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,6,5,4]11963; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm14[4,5,6,7]11964; AVX512DQ-NEXT: vinserti64x4 $1, %ymm0, %zmm0, %zmm2811965; AVX512DQ-NEXT: vpternlogq {{.*#+}} zmm2 = zmm19 ^ (zmm21 & (zmm2 ^ zmm19))11966; AVX512DQ-NEXT: vpternlogq {{.*#+}} zmm28 = zmm28 ^ (zmm18 & (zmm28 ^ zmm2))11967; AVX512DQ-NEXT: vmovdqa64 %xmm22, %xmm011968; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm0 = xmm0[3,1,2,1,4,5,6,7]11969; AVX512DQ-NEXT: vmovdqa64 %xmm20, %xmm211970; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm2 = xmm2[0,1,3,3,4,5,6,7]11971; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,7,7,7,7]11972; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0],xmm2[1,2],xmm0[3],xmm2[4,5,6,7]11973; AVX512DQ-NEXT: vmovdqa64 %xmm24, %xmm211974; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,7,5,6,5]11975; AVX512DQ-NEXT: vmovdqa64 %xmm23, %xmm1411976; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm14 = xmm14[1,1,1,1,4,5,6,7]11977; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm14 = xmm14[0,1,2,3,4,5,7,7]11978; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm2 = xmm14[0,1,2,3],xmm2[4],xmm14[5,6],xmm2[7]11979; AVX512DQ-NEXT: vinserti128 $1, %xmm2, %ymm0, %ymm211980; AVX512DQ-NEXT: vinserti32x4 $2, %xmm0, %zmm2, %zmm2011981; AVX512DQ-NEXT: vmovdqa64 %xmm16, %xmm011982; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm2 = xmm0[3,1,2,1,4,5,6,7]11983; AVX512DQ-NEXT: vmovdqa64 %xmm25, %xmm011984; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm14 = xmm0[0,1,3,3,4,5,6,7]11985; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm14 = xmm14[0,1,2,3,7,7,7,7]11986; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0],xmm14[1,2],xmm2[3],xmm14[4,5,6,7]11987; AVX512DQ-NEXT: vmovdqa {{.*#+}} ymm14 = [6,7,2,3,14,15,14,15,14,15,2,3,14,15,10,11,22,23,18,19,30,31,30,31,30,31,18,19,30,31,26,27]11988; AVX512DQ-NEXT: vmovdqa64 %ymm17, %ymm011989; AVX512DQ-NEXT: vpshufb %ymm14, %ymm0, %ymm011990; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0,1,2,3,4],xmm0[5,6,7]11991; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm0 = ymm2[0,1,2,3],ymm0[4,5,6,7]11992; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm2 = xmm10[0,1,2,3,7,5,6,5]11993; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm10 = xmm15[1,1,1,1,4,5,6,7]11994; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm10 = xmm10[0,1,2,3,4,5,7,7]11995; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm2 = xmm10[0,1,2,3],xmm2[4],xmm10[5,6],xmm2[7]11996; AVX512DQ-NEXT: vmovdqa {{.*#+}} ymm10 = [6,7,2,3,14,15,14,15,14,15,10,11,u,u,2,3,22,23,18,19,30,31,30,31,30,31,26,27,u,u,18,19]11997; AVX512DQ-NEXT: vpshufb %ymm10, %ymm13, %ymm1311998; AVX512DQ-NEXT: vinserti128 $1, %xmm2, %ymm0, %ymm211999; AVX512DQ-NEXT: vpblendw {{.*#+}} ymm2 = ymm13[0,1,2],ymm2[3,4,5,6,7],ymm13[8,9,10],ymm2[11,12,13,14,15]12000; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm13 = xmm13[0,1,2,3,4,7,4,5]12001; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm2 = ymm13[0,1,2,3],ymm2[4,5,6,7]12002; AVX512DQ-NEXT: vinserti64x4 $1, %ymm2, %zmm0, %zmm2712003; AVX512DQ-NEXT: vpternlogq {{.*#+}} zmm0 = zmm20 ^ (zmm21 & (zmm0 ^ zmm20))12004; AVX512DQ-NEXT: vpternlogq {{.*#+}} zmm27 = zmm27 ^ (zmm18 & (zmm27 ^ zmm0))12005; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm0 = xmm11[3,1,2,1,4,5,6,7]12006; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm2 = xmm12[0,1,3,3,4,5,6,7]12007; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,7,7,7,7]12008; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0],xmm2[1,2],xmm0[3],xmm2[4,5,6,7]12009; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm2 = xmm8[0,1,2,3,7,5,6,5]12010; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm8 = xmm9[1,1,1,1,4,5,6,7]12011; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm8 = xmm8[0,1,2,3,4,5,7,7]12012; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm2 = xmm8[0,1,2,3],xmm2[4],xmm8[5,6],xmm2[7]12013; AVX512DQ-NEXT: vinserti128 $1, %xmm2, %ymm0, %ymm212014; AVX512DQ-NEXT: vinserti32x4 $2, %xmm0, %zmm2, %zmm012015; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm2 = xmm6[3,1,2,1,4,5,6,7]12016; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm6 = xmm7[0,1,3,3,4,5,6,7]12017; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm6 = xmm6[0,1,2,3,7,7,7,7]12018; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0],xmm6[1,2],xmm2[3],xmm6[4,5,6,7]12019; AVX512DQ-NEXT: vpshufb %ymm14, %ymm5, %ymm512020; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0,1,2,3,4],xmm5[5,6,7]12021; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm5[4,5,6,7]12022; AVX512DQ-NEXT: vpshufb %ymm10, %ymm1, %ymm112023; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,7,5,6,5]12024; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm4 = xmm4[1,1,1,1,4,5,6,7]12025; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm4 = xmm4[0,1,2,3,4,5,7,7]12026; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm3 = xmm4[0,1,2,3],xmm3[4],xmm4[5,6],xmm3[7]12027; AVX512DQ-NEXT: vinserti128 $1, %xmm3, %ymm0, %ymm312028; AVX512DQ-NEXT: vpblendw {{.*#+}} ymm3 = ymm1[0,1,2],ymm3[3,4,5,6,7],ymm1[8,9,10],ymm3[11,12,13,14,15]12029; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,7,4,5]12030; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm3[4,5,6,7]12031; AVX512DQ-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm2012032; AVX512DQ-NEXT: vpternlogq {{.*#+}} zmm2 = zmm0 ^ (zmm21 & (zmm2 ^ zmm0))12033; AVX512DQ-NEXT: vpternlogq {{.*#+}} zmm20 = zmm20 ^ (zmm18 & (zmm20 ^ zmm2))12034; AVX512DQ-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload12035; AVX512DQ-NEXT: vpblendd $36, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm3 # 32-byte Folded Reload12036; AVX512DQ-NEXT: # ymm3 = ymm0[0,1],mem[2],ymm0[3,4],mem[5],ymm0[6,7]12037; AVX512DQ-NEXT: vmovdqa {{.*#+}} xmm1 = [8,9,u,u,0,1,12,13,u,u,12,13,12,13,14,15]12038; AVX512DQ-NEXT: vpshufb %xmm1, %xmm3, %xmm012039; AVX512DQ-NEXT: vextracti128 $1, %ymm3, %xmm1312040; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm2 = xmm13[2,2,2,2,4,5,6,7]12041; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0],xmm2[1],xmm0[2,3],xmm2[4],xmm0[5,6,7]12042; AVX512DQ-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload12043; AVX512DQ-NEXT: vpblendd $109, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload12044; AVX512DQ-NEXT: # ymm2 = mem[0],ymm2[1],mem[2,3],ymm2[4],mem[5,6],ymm2[7]12045; AVX512DQ-NEXT: vextracti128 $1, %ymm2, %xmm512046; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm4 = xmm2[0,3,2,1]12047; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm2 = xmm4[0,1,0,2,4,5,6,7]12048; AVX512DQ-NEXT: vmovdqa64 %xmm4, %xmm1912049; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,6,6,6,6]12050; AVX512DQ-NEXT: vpbroadcastq {{.*#+}} xmm11 = [8,9,0,0,0,1,12,13,8,9,0,0,0,1,12,13]12051; AVX512DQ-NEXT: vpshufb %xmm11, %xmm5, %xmm412052; AVX512DQ-NEXT: vmovdqa64 %xmm5, %xmm1812053; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0,1,2,3],xmm4[4],xmm2[5],xmm4[6,7]12054; AVX512DQ-NEXT: vinserti128 $1, %xmm2, %ymm0, %ymm212055; AVX512DQ-NEXT: vinserti32x4 $2, %xmm0, %zmm2, %zmm2312056; AVX512DQ-NEXT: vmovdqa64 %ymm31, %ymm012057; AVX512DQ-NEXT: vmovdqa64 %ymm30, %ymm212058; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm5 = ymm2[0],ymm0[1],ymm2[2,3,4,5],ymm0[6],ymm2[7]12059; AVX512DQ-NEXT: vmovdqu (%rsp), %ymm0 # 32-byte Reload12060; AVX512DQ-NEXT: vpblendd $219, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm9 # 32-byte Folded Reload12061; AVX512DQ-NEXT: # ymm9 = mem[0,1],ymm0[2],mem[3,4],ymm0[5],mem[6,7]12062; AVX512DQ-NEXT: vpshufb %xmm1, %xmm9, %xmm012063; AVX512DQ-NEXT: vextracti128 $1, %ymm9, %xmm412064; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm2 = xmm4[2,2,2,2,4,5,6,7]12065; AVX512DQ-NEXT: vmovdqa64 %xmm4, %xmm3012066; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm2 = xmm0[0],xmm2[1],xmm0[2,3],xmm2[4],xmm0[5,6,7]12067; AVX512DQ-NEXT: vmovdqa64 {{.*#+}} ymm22 = [65535,65535,65535,65535,65535,0,0,0,0,0,65535,65535,65535,65535,65535,65535]12068; AVX512DQ-NEXT: vmovdqa {{.*#+}} ymm0 = [128,128,128,128,128,128,128,128,128,128,4,5,0,1,12,13,24,25,20,21,128,128,128,128,128,128,128,128,128,128,128,128]12069; AVX512DQ-NEXT: vpshufb %ymm0, %ymm5, %ymm412070; AVX512DQ-NEXT: vmovdqa64 %ymm5, %ymm3112071; AVX512DQ-NEXT: vpternlogq {{.*#+}} ymm2 = (ymm2 & ymm22) | ymm412072; AVX512DQ-NEXT: movw $31, %ax12073; AVX512DQ-NEXT: kmovw %eax, %k112074; AVX512DQ-NEXT: vinserti32x8 $0, %ymm2, %zmm0, %zmm23 {%k1}12075; AVX512DQ-NEXT: vmovdqa64 %ymm26, %ymm212076; AVX512DQ-NEXT: vmovdqa64 %ymm29, %ymm412077; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm5 = ymm4[0],ymm2[1],ymm4[2,3,4,5],ymm2[6],ymm4[7]12078; AVX512DQ-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload12079; AVX512DQ-NEXT: vpblendd $109, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload12080; AVX512DQ-NEXT: # ymm2 = mem[0],ymm2[1],mem[2,3],ymm2[4],mem[5,6],ymm2[7]12081; AVX512DQ-NEXT: vextracti128 $1, %ymm2, %xmm612082; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm4 = xmm2[0,3,2,1]12083; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm2 = xmm4[0,1,0,2,4,5,6,7]12084; AVX512DQ-NEXT: vmovdqa64 %xmm4, %xmm2912085; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,6,6,6,6]12086; AVX512DQ-NEXT: vpshufb %xmm11, %xmm6, %xmm412087; AVX512DQ-NEXT: vmovdqa64 %xmm6, %xmm1612088; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0,1,2,3],xmm4[4],xmm2[5],xmm4[6,7]12089; AVX512DQ-NEXT: vinserti128 $1, %xmm2, %ymm0, %ymm212090; AVX512DQ-NEXT: vmovdqa {{.*#+}} ymm6 = [8,9,4,5,4,5,6,7,0,1,4,5,0,1,12,13,24,25,20,21,20,21,22,23,16,17,20,21,16,17,28,29]12091; AVX512DQ-NEXT: vpshufb %ymm6, %ymm5, %ymm412092; AVX512DQ-NEXT: vmovdqa64 %ymm6, %ymm2112093; AVX512DQ-NEXT: vmovdqa64 %ymm5, %ymm1712094; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm2 = ymm4[0,1,2,3,4],ymm2[5,6,7]12095; AVX512DQ-NEXT: vinserti64x4 $1, %ymm2, %zmm0, %zmm2412096; AVX512DQ-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload12097; AVX512DQ-NEXT: vpblendd $189, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm14 # 32-byte Folded Reload12098; AVX512DQ-NEXT: # ymm14 = mem[0],ymm2[1],mem[2,3,4,5],ymm2[6],mem[7]12099; AVX512DQ-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload12100; AVX512DQ-NEXT: vpblendd $219, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm15 # 32-byte Folded Reload12101; AVX512DQ-NEXT: # ymm15 = mem[0,1],ymm2[2],mem[3,4],ymm2[5],mem[6,7]12102; AVX512DQ-NEXT: vpshufb %xmm1, %xmm15, %xmm212103; AVX512DQ-NEXT: vextracti128 $1, %ymm15, %xmm1212104; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm4 = xmm12[2,2,2,2,4,5,6,7]12105; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0],xmm4[1],xmm2[2,3],xmm4[4],xmm2[5,6,7]12106; AVX512DQ-NEXT: vpshufb %ymm0, %ymm14, %ymm012107; AVX512DQ-NEXT: vpternlogq {{.*#+}} ymm2 = (ymm2 & ymm22) | ymm012108; AVX512DQ-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload12109; AVX512DQ-NEXT: vpblendd $36, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm6 # 32-byte Folded Reload12110; AVX512DQ-NEXT: # ymm6 = ymm0[0,1],mem[2],ymm0[3,4],mem[5],ymm0[6,7]12111; AVX512DQ-NEXT: vpshufb %xmm1, %xmm6, %xmm112112; AVX512DQ-NEXT: vextracti128 $1, %ymm6, %xmm1012113; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm4 = xmm10[2,2,2,2,4,5,6,7]12114; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0],xmm4[1],xmm1[2,3],xmm4[4],xmm1[5,6,7]12115; AVX512DQ-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload12116; AVX512DQ-NEXT: vpblendd $109, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm4 # 32-byte Folded Reload12117; AVX512DQ-NEXT: # ymm4 = mem[0],ymm0[1],mem[2,3],ymm0[4],mem[5,6],ymm0[7]12118; AVX512DQ-NEXT: vextracti128 $1, %ymm4, %xmm812119; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm7 = xmm4[0,3,2,1]12120; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm4 = xmm7[0,1,0,2,4,5,6,7]12121; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm4 = xmm4[0,1,2,3,6,6,6,6]12122; AVX512DQ-NEXT: vpshufb %xmm11, %xmm8, %xmm512123; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm4 = xmm4[0,1,2,3],xmm5[4],xmm4[5],xmm5[6,7]12124; AVX512DQ-NEXT: vinserti128 $1, %xmm4, %ymm0, %ymm412125; AVX512DQ-NEXT: vinserti32x4 $2, %xmm1, %zmm4, %zmm2512126; AVX512DQ-NEXT: vinserti32x8 $0, %ymm2, %zmm0, %zmm25 {%k1}12127; AVX512DQ-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload12128; AVX512DQ-NEXT: vpblendd $66, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm5 # 32-byte Folded Reload12129; AVX512DQ-NEXT: # ymm5 = ymm0[0],mem[1],ymm0[2,3,4,5],mem[6],ymm0[7]12130; AVX512DQ-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload12131; AVX512DQ-NEXT: vpblendd $109, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm1 # 32-byte Folded Reload12132; AVX512DQ-NEXT: # ymm1 = mem[0],ymm0[1],mem[2,3],ymm0[4],mem[5,6],ymm0[7]12133; AVX512DQ-NEXT: vextracti128 $1, %ymm1, %xmm412134; AVX512DQ-NEXT: vpshufb %xmm11, %xmm4, %xmm1112135; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm2 = xmm1[0,3,2,1]12136; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm1 = xmm2[0,1,0,2,4,5,6,7]12137; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,6,6,6,6]12138; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1,2,3],xmm11[4],xmm1[5],xmm11[6,7]12139; AVX512DQ-NEXT: vmovdqa64 %ymm21, %ymm012140; AVX512DQ-NEXT: vpshufb %ymm0, %ymm5, %ymm1112141; AVX512DQ-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm112142; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm1 = ymm11[0,1,2,3,4],ymm1[5,6,7]12143; AVX512DQ-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm2112144; AVX512DQ-NEXT: vmovdqa {{.*#+}} xmm1 = [10,11,u,u,2,3,14,15,u,u,10,11,12,13,14,15]12145; AVX512DQ-NEXT: vpshufb %xmm1, %xmm3, %xmm312146; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm11 = xmm13[1,1,2,3]12147; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm11 = xmm11[0,1,2,3,5,5,5,5]12148; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm11 = xmm3[0],xmm11[1],xmm3[2,3],xmm11[4],xmm3[5,6,7]12149; AVX512DQ-NEXT: vpbroadcastq {{.*#+}} xmm3 = [10,11,0,0,2,3,14,15,10,11,0,0,2,3,14,15]12150; AVX512DQ-NEXT: vmovdqa64 %xmm18, %xmm012151; AVX512DQ-NEXT: vpshufb %xmm3, %xmm0, %xmm012152; AVX512DQ-NEXT: vmovdqa64 %xmm19, %xmm1312153; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm13 = xmm13[0,1,1,3,4,5,6,7]12154; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm13 = xmm13[0,1,3,3]12155; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm0 = xmm13[0,1,2,3],xmm0[4],xmm13[5],xmm0[6,7]12156; AVX512DQ-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm012157; AVX512DQ-NEXT: vinserti32x4 $2, %xmm11, %zmm0, %zmm2612158; AVX512DQ-NEXT: vpshufb %xmm1, %xmm9, %xmm912159; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm11 = xmm30[1,1,2,3]12160; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm11 = xmm11[0,1,2,3,5,5,5,5]12161; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm9 = xmm9[0],xmm11[1],xmm9[2,3],xmm11[4],xmm9[5,6,7]12162; AVX512DQ-NEXT: vmovdqa {{.*#+}} ymm11 = [128,128,128,128,128,128,128,128,128,128,6,7,2,3,14,15,26,27,22,23,128,128,128,128,128,128,128,128,128,128,128,128]12163; AVX512DQ-NEXT: vmovdqa64 %ymm31, %ymm012164; AVX512DQ-NEXT: vpshufb %ymm11, %ymm0, %ymm1312165; AVX512DQ-NEXT: vpternlogq {{.*#+}} ymm9 = (ymm9 & ymm22) | ymm1312166; AVX512DQ-NEXT: vinserti32x8 $0, %ymm9, %zmm0, %zmm26 {%k1}12167; AVX512DQ-NEXT: vmovdqa64 %xmm16, %xmm012168; AVX512DQ-NEXT: vpshufb %xmm3, %xmm0, %xmm912169; AVX512DQ-NEXT: vmovdqa64 %xmm29, %xmm012170; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm13 = xmm0[0,1,1,3,4,5,6,7]12171; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm13 = xmm13[0,1,3,3]12172; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm9 = xmm13[0,1,2,3],xmm9[4],xmm13[5],xmm9[6,7]12173; AVX512DQ-NEXT: vmovdqa {{.*#+}} ymm13 = [10,11,6,7,4,5,6,7,6,7,6,7,2,3,14,15,26,27,22,23,20,21,22,23,22,23,22,23,18,19,30,31]12174; AVX512DQ-NEXT: vmovdqa64 %ymm17, %ymm012175; AVX512DQ-NEXT: vpshufb %ymm13, %ymm0, %ymm012176; AVX512DQ-NEXT: vinserti128 $1, %xmm9, %ymm0, %ymm912177; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm9[5,6,7]12178; AVX512DQ-NEXT: vinserti64x4 $1, %ymm0, %zmm0, %zmm012179; AVX512DQ-NEXT: vpshufb %ymm11, %ymm14, %ymm912180; AVX512DQ-NEXT: vpshufb %xmm1, %xmm15, %xmm1112181; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm12 = xmm12[1,1,2,3]12182; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm12 = xmm12[0,1,2,3,5,5,5,5]12183; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm11 = xmm11[0],xmm12[1],xmm11[2,3],xmm12[4],xmm11[5,6,7]12184; AVX512DQ-NEXT: vpternlogq {{.*#+}} ymm11 = (ymm11 & ymm22) | ymm912185; AVX512DQ-NEXT: vpshufb %xmm1, %xmm6, %xmm112186; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm6 = xmm10[1,1,2,3]12187; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm6 = xmm6[0,1,2,3,5,5,5,5]12188; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0],xmm6[1],xmm1[2,3],xmm6[4],xmm1[5,6,7]12189; AVX512DQ-NEXT: vpshufb %xmm3, %xmm8, %xmm612190; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm7 = xmm7[0,1,1,3,4,5,6,7]12191; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm7 = xmm7[0,1,3,3]12192; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm6 = xmm7[0,1,2,3],xmm6[4],xmm7[5],xmm6[6,7]12193; AVX512DQ-NEXT: vinserti128 $1, %xmm6, %ymm0, %ymm612194; AVX512DQ-NEXT: vinserti32x4 $2, %xmm1, %zmm6, %zmm112195; AVX512DQ-NEXT: vinserti32x8 $0, %ymm11, %zmm0, %zmm1 {%k1}12196; AVX512DQ-NEXT: vpshufb %ymm13, %ymm5, %ymm512197; AVX512DQ-NEXT: vpshufb %xmm3, %xmm4, %xmm312198; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm2 = xmm2[0,1,1,3,4,5,6,7]12199; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm2 = xmm2[0,1,3,3]12200; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0,1,2,3],xmm3[4],xmm2[5],xmm3[6,7]12201; AVX512DQ-NEXT: vinserti128 $1, %xmm2, %ymm0, %ymm212202; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm2 = ymm5[0,1,2,3,4],ymm2[5,6,7]12203; AVX512DQ-NEXT: vinserti64x4 $1, %ymm2, %zmm0, %zmm212204; AVX512DQ-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload12205; AVX512DQ-NEXT: vmovaps %zmm3, (%rsi)12206; AVX512DQ-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload12207; AVX512DQ-NEXT: vmovaps %zmm3, 64(%rsi)12208; AVX512DQ-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload12209; AVX512DQ-NEXT: vmovaps %zmm3, 64(%rdx)12210; AVX512DQ-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload12211; AVX512DQ-NEXT: vmovaps %zmm3, (%rdx)12212; AVX512DQ-NEXT: vpmovsxdq {{.*#+}} zmm3 = [18446744073709551615,18446744073709551615,18446744073709551615,18446744073709551615,18446744073709551615,65535,0,0]12213; AVX512DQ-NEXT: vpternlogq {{.*#+}} zmm24 = zmm24 ^ (zmm3 & (zmm24 ^ zmm23))12214; AVX512DQ-NEXT: vpternlogq {{.*#+}} zmm21 = zmm21 ^ (zmm3 & (zmm21 ^ zmm25))12215; AVX512DQ-NEXT: vpternlogq {{.*#+}} zmm0 = zmm0 ^ (zmm3 & (zmm0 ^ zmm26))12216; AVX512DQ-NEXT: vpternlogq {{.*#+}} zmm2 = zmm2 ^ (zmm3 & (zmm2 ^ zmm1))12217; AVX512DQ-NEXT: vmovdqa64 %zmm28, 64(%rcx)12218; AVX512DQ-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload12219; AVX512DQ-NEXT: vmovaps %zmm1, (%rcx)12220; AVX512DQ-NEXT: vmovdqa64 %zmm20, 64(%r8)12221; AVX512DQ-NEXT: vmovdqa64 %zmm27, (%r8)12222; AVX512DQ-NEXT: vmovdqa64 %zmm21, 64(%r9)12223; AVX512DQ-NEXT: vmovdqa64 %zmm24, (%r9)12224; AVX512DQ-NEXT: movq {{[0-9]+}}(%rsp), %rax12225; AVX512DQ-NEXT: vmovdqa64 %zmm2, 64(%rax)12226; AVX512DQ-NEXT: vmovdqa64 %zmm0, (%rax)12227; AVX512DQ-NEXT: addq $840, %rsp # imm = 0x34812228; AVX512DQ-NEXT: vzeroupper12229; AVX512DQ-NEXT: retq12230;12231; AVX512DQ-FCP-LABEL: load_i16_stride6_vf64:12232; AVX512DQ-FCP: # %bb.0:12233; AVX512DQ-FCP-NEXT: subq $872, %rsp # imm = 0x36812234; AVX512DQ-FCP-NEXT: vmovdqa {{.*#+}} xmm9 = [0,1,12,13,0,1,4,5,8,9,12,13,12,13,14,15]12235; AVX512DQ-FCP-NEXT: vmovdqa 608(%rdi), %ymm012236; AVX512DQ-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill12237; AVX512DQ-FCP-NEXT: vmovdqa 576(%rdi), %ymm112238; AVX512DQ-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill12239; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm1[0],ymm0[1],ymm1[2,3],ymm0[4],ymm1[5,6],ymm0[7]12240; AVX512DQ-FCP-NEXT: vpshufb %xmm9, %xmm2, %xmm012241; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm2, %xmm112242; AVX512DQ-FCP-NEXT: vmovdqa64 %ymm2, %ymm2512243; AVX512DQ-FCP-NEXT: vpshufd {{.*#+}} xmm2 = xmm1[2,1,0,3]12244; AVX512DQ-FCP-NEXT: vpshufb %xmm9, %xmm2, %xmm112245; AVX512DQ-FCP-NEXT: vmovdqa64 %xmm2, %xmm2412246; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1],xmm1[2],xmm0[3],xmm1[4,5],xmm0[6,7]12247; AVX512DQ-FCP-NEXT: vmovdqa 544(%rdi), %ymm112248; AVX512DQ-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill12249; AVX512DQ-FCP-NEXT: vmovdqa 512(%rdi), %ymm212250; AVX512DQ-FCP-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill12251; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1],ymm1[2],ymm2[3,4],ymm1[5],ymm2[6,7]12252; AVX512DQ-FCP-NEXT: vmovdqa {{.*#+}} xmm10 = [0,1,4,5,4,5,4,5,0,1,12,13,8,9,4,5]12253; AVX512DQ-FCP-NEXT: vpshufb %xmm10, %xmm2, %xmm112254; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm2, %xmm312255; AVX512DQ-FCP-NEXT: vmovdqa64 %ymm2, %ymm2312256; AVX512DQ-FCP-NEXT: vpshufb %xmm10, %xmm3, %xmm212257; AVX512DQ-FCP-NEXT: vmovdqa64 %xmm3, %xmm2212258; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm1 = xmm2[0,1,2],xmm1[3],xmm2[4,5],xmm1[6],xmm2[7]12259; AVX512DQ-FCP-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm112260; AVX512DQ-FCP-NEXT: vinserti32x4 $2, %xmm0, %zmm1, %zmm012261; AVX512DQ-FCP-NEXT: vmovdqa 448(%rdi), %ymm112262; AVX512DQ-FCP-NEXT: vmovdqa 416(%rdi), %ymm212263; AVX512DQ-FCP-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill12264; AVX512DQ-FCP-NEXT: vmovdqa 384(%rdi), %ymm312265; AVX512DQ-FCP-NEXT: vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill12266; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm15 = ymm3[0],ymm2[1],ymm3[2,3],ymm2[4],ymm3[5,6],ymm2[7]12267; AVX512DQ-FCP-NEXT: vpshufb %xmm9, %xmm15, %xmm212268; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm15, %xmm312269; AVX512DQ-FCP-NEXT: vpshufd {{.*#+}} xmm4 = xmm3[2,1,0,3]12270; AVX512DQ-FCP-NEXT: vpshufb %xmm9, %xmm4, %xmm312271; AVX512DQ-FCP-NEXT: vmovdqa64 %xmm4, %xmm2112272; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0,1],xmm3[2],xmm2[3],xmm3[4,5],xmm2[6,7]12273; AVX512DQ-FCP-NEXT: vperm2i128 {{.*#+}} ymm3 = ymm1[2,3],mem[2,3]12274; AVX512DQ-FCP-NEXT: vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill12275; AVX512DQ-FCP-NEXT: vinserti128 $1, 480(%rdi), %ymm1, %ymm112276; AVX512DQ-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill12277; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm3 = ymm1[0],ymm3[1],ymm1[2,3,4,5],ymm3[6],ymm1[7]12278; AVX512DQ-FCP-NEXT: vmovdqa {{.*#+}} ymm6 = [0,1,12,13,8,9,12,13,8,9,12,13,8,9,4,5,16,17,28,29,24,25,28,29,24,25,28,29,24,25,20,21]12279; AVX512DQ-FCP-NEXT: vpshufb %ymm6, %ymm3, %ymm112280; AVX512DQ-FCP-NEXT: vmovdqa64 %ymm3, %ymm2012281; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm3 = ymm2[0,1,2],ymm1[3,4,5,6,7]12282; AVX512DQ-FCP-NEXT: vmovdqa 736(%rdi), %ymm112283; AVX512DQ-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill12284; AVX512DQ-FCP-NEXT: vmovdqa 704(%rdi), %ymm212285; AVX512DQ-FCP-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill12286; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm12 = ymm2[0,1],ymm1[2],ymm2[3,4],ymm1[5],ymm2[6,7]12287; AVX512DQ-FCP-NEXT: vpshufb %xmm10, %xmm12, %xmm112288; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm12, %xmm412289; AVX512DQ-FCP-NEXT: vpshufb %xmm10, %xmm4, %xmm212290; AVX512DQ-FCP-NEXT: vmovdqa64 %xmm4, %xmm1912291; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm1 = xmm2[0,1,2],xmm1[3],xmm2[4,5],xmm1[6],xmm2[7]12292; AVX512DQ-FCP-NEXT: vmovdqa 640(%rdi), %ymm212293; AVX512DQ-FCP-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm112294; AVX512DQ-FCP-NEXT: vperm2i128 {{.*#+}} ymm4 = ymm2[2,3],mem[2,3]12295; AVX512DQ-FCP-NEXT: vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill12296; AVX512DQ-FCP-NEXT: vinserti128 $1, 672(%rdi), %ymm2, %ymm212297; AVX512DQ-FCP-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill12298; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm4 = ymm2[0],ymm4[1],ymm2[2,3,4,5],ymm4[6],ymm2[7]12299; AVX512DQ-FCP-NEXT: vmovdqa {{.*#+}} ymm5 = [0,1,12,13,8,9,12,13,8,9,12,13,4,5,u,u,16,17,28,29,24,25,28,29,24,25,28,29,20,21,u,u]12300; AVX512DQ-FCP-NEXT: vpshufb %ymm5, %ymm4, %ymm212301; AVX512DQ-FCP-NEXT: vmovdqa64 %ymm5, %ymm2612302; AVX512DQ-FCP-NEXT: vmovdqa64 %ymm4, %ymm1812303; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3,4,5,6,7],ymm2[8,9,10],ymm1[11,12,13,14,15]12304; AVX512DQ-FCP-NEXT: vpshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,5,4,6]12305; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]12306; AVX512DQ-FCP-NEXT: vmovdqa64 {{.*#+}} zmm16 = [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]12307; AVX512DQ-FCP-NEXT: vpternlogq {{.*#+}} zmm3 = zmm0 ^ (zmm16 & (zmm3 ^ zmm0))12308; AVX512DQ-FCP-NEXT: movw $-2048, %ax # imm = 0xF80012309; AVX512DQ-FCP-NEXT: kmovw %eax, %k112310; AVX512DQ-FCP-NEXT: vinserti32x8 $1, %ymm1, %zmm0, %zmm3 {%k1}12311; AVX512DQ-FCP-NEXT: vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill12312; AVX512DQ-FCP-NEXT: vmovdqa 224(%rdi), %ymm012313; AVX512DQ-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill12314; AVX512DQ-FCP-NEXT: vmovdqa 192(%rdi), %ymm112315; AVX512DQ-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill12316; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm13 = ymm1[0],ymm0[1],ymm1[2,3],ymm0[4],ymm1[5,6],ymm0[7]12317; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm13, %xmm012318; AVX512DQ-FCP-NEXT: vpshufb %xmm9, %xmm13, %xmm112319; AVX512DQ-FCP-NEXT: vpshufd {{.*#+}} xmm14 = xmm0[2,1,0,3]12320; AVX512DQ-FCP-NEXT: vpshufb %xmm9, %xmm14, %xmm012321; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm0 = xmm1[0,1],xmm0[2],xmm1[3],xmm0[4,5],xmm1[6,7]12322; AVX512DQ-FCP-NEXT: vmovdqa 160(%rdi), %ymm112323; AVX512DQ-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill12324; AVX512DQ-FCP-NEXT: vmovdqa 128(%rdi), %ymm212325; AVX512DQ-FCP-NEXT: vmovdqu %ymm2, (%rsp) # 32-byte Spill12326; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm5 = ymm2[0,1],ymm1[2],ymm2[3,4],ymm1[5],ymm2[6,7]12327; AVX512DQ-FCP-NEXT: vpshufb %xmm10, %xmm5, %xmm112328; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm5, %xmm712329; AVX512DQ-FCP-NEXT: vpshufb %xmm10, %xmm7, %xmm212330; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm1 = xmm2[0,1,2],xmm1[3],xmm2[4,5],xmm1[6],xmm2[7]12331; AVX512DQ-FCP-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm112332; AVX512DQ-FCP-NEXT: vinserti32x4 $2, %xmm0, %zmm1, %zmm1712333; AVX512DQ-FCP-NEXT: vmovdqa (%rdi), %ymm012334; AVX512DQ-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill12335; AVX512DQ-FCP-NEXT: vmovdqa 32(%rdi), %ymm112336; AVX512DQ-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill12337; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm3 = ymm0[0],ymm1[1],ymm0[2,3],ymm1[4],ymm0[5,6],ymm1[7]12338; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm3, %xmm012339; AVX512DQ-FCP-NEXT: vpshufb %xmm9, %xmm3, %xmm212340; AVX512DQ-FCP-NEXT: vpshufd {{.*#+}} xmm11 = xmm0[2,1,0,3]12341; AVX512DQ-FCP-NEXT: vpshufb %xmm9, %xmm11, %xmm012342; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm0 = xmm2[0,1],xmm0[2],xmm2[3],xmm0[4,5],xmm2[6,7]12343; AVX512DQ-FCP-NEXT: vmovdqa 64(%rdi), %ymm212344; AVX512DQ-FCP-NEXT: vperm2i128 {{.*#+}} ymm1 = ymm2[2,3],mem[2,3]12345; AVX512DQ-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill12346; AVX512DQ-FCP-NEXT: vinserti128 $1, 96(%rdi), %ymm2, %ymm212347; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm9 = ymm2[0],ymm1[1],ymm2[2,3,4,5],ymm1[6],ymm2[7]12348; AVX512DQ-FCP-NEXT: vmovdqa64 %ymm2, %ymm3112349; AVX512DQ-FCP-NEXT: vpshufb %ymm6, %ymm9, %ymm212350; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm6 = ymm0[0,1,2],ymm2[3,4,5,6,7]12351; AVX512DQ-FCP-NEXT: vmovdqa 352(%rdi), %ymm012352; AVX512DQ-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill12353; AVX512DQ-FCP-NEXT: vmovdqa 320(%rdi), %ymm112354; AVX512DQ-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill12355; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm4 = ymm1[0,1],ymm0[2],ymm1[3,4],ymm0[5],ymm1[6,7]12356; AVX512DQ-FCP-NEXT: vpshufb %xmm10, %xmm4, %xmm212357; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm4, %xmm812358; AVX512DQ-FCP-NEXT: vpshufb %xmm10, %xmm8, %xmm1012359; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm10 = xmm10[0,1,2],xmm2[3],xmm10[4,5],xmm2[6],xmm10[7]12360; AVX512DQ-FCP-NEXT: vmovdqa 256(%rdi), %ymm212361; AVX512DQ-FCP-NEXT: vperm2i128 {{.*#+}} ymm1 = ymm2[2,3],mem[2,3]12362; AVX512DQ-FCP-NEXT: vinserti128 $1, 288(%rdi), %ymm2, %ymm012363; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm0[0],ymm1[1],ymm0[2,3,4,5],ymm1[6],ymm0[7]12364; AVX512DQ-FCP-NEXT: vmovdqa64 %ymm0, %ymm2912365; AVX512DQ-FCP-NEXT: vmovdqa64 %ymm1, %ymm3012366; AVX512DQ-FCP-NEXT: vmovdqa64 %ymm26, %ymm012367; AVX512DQ-FCP-NEXT: vpshufb %ymm0, %ymm2, %ymm012368; AVX512DQ-FCP-NEXT: vinserti128 $1, %xmm10, %ymm0, %ymm1012369; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} ymm10 = ymm0[0,1,2],ymm10[3,4,5,6,7],ymm0[8,9,10],ymm10[11,12,13,14,15]12370; AVX512DQ-FCP-NEXT: vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,5,4,6]12371; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm10[4,5,6,7]12372; AVX512DQ-FCP-NEXT: vpternlogq {{.*#+}} zmm6 = zmm17 ^ (zmm16 & (zmm6 ^ zmm17))12373; AVX512DQ-FCP-NEXT: vinserti32x8 $1, %ymm0, %zmm0, %zmm6 {%k1}12374; AVX512DQ-FCP-NEXT: vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill12375; AVX512DQ-FCP-NEXT: vmovdqa {{.*#+}} xmm10 = [2,3,14,15,2,3,6,7,10,11,14,15,12,13,14,15]12376; AVX512DQ-FCP-NEXT: vpshufb %xmm10, %xmm13, %xmm012377; AVX512DQ-FCP-NEXT: vpshufb %xmm10, %xmm14, %xmm1312378; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1],xmm13[2],xmm0[3],xmm13[4,5],xmm0[6,7]12379; AVX512DQ-FCP-NEXT: vmovdqa {{.*#+}} xmm13 = [6,7,2,3,4,5,u,u,2,3,14,15,u,u,6,7]12380; AVX512DQ-FCP-NEXT: vpshufb %xmm13, %xmm7, %xmm712381; AVX512DQ-FCP-NEXT: vpshufhw {{.*#+}} xmm5 = xmm5[0,1,2,3,5,5,5,5]12382; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm5 = xmm7[0,1,2],xmm5[3],xmm7[4,5],xmm5[6],xmm7[7]12383; AVX512DQ-FCP-NEXT: vinserti128 $1, %xmm5, %ymm0, %ymm512384; AVX512DQ-FCP-NEXT: vinserti32x4 $2, %xmm0, %zmm5, %zmm012385; AVX512DQ-FCP-NEXT: vpshufb %xmm10, %xmm3, %xmm312386; AVX512DQ-FCP-NEXT: vpshufb %xmm10, %xmm11, %xmm512387; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm3 = xmm3[0,1],xmm5[2],xmm3[3],xmm5[4,5],xmm3[6,7]12388; AVX512DQ-FCP-NEXT: vmovdqa {{.*#+}} ymm5 = [2,3,14,15,10,11,10,11,14,15,10,11,10,11,6,7,18,19,30,31,26,27,26,27,30,31,26,27,26,27,22,23]12389; AVX512DQ-FCP-NEXT: vpshufb %ymm5, %ymm9, %ymm612390; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm6 = ymm3[0,1,2],ymm6[3,4,5,6,7]12391; AVX512DQ-FCP-NEXT: vpshufb %xmm13, %xmm8, %xmm312392; AVX512DQ-FCP-NEXT: vpshufhw {{.*#+}} xmm1 = xmm4[0,1,2,3,5,5,5,5]12393; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm1 = xmm3[0,1,2],xmm1[3],xmm3[4,5],xmm1[6],xmm3[7]12394; AVX512DQ-FCP-NEXT: vmovdqa {{.*#+}} ymm3 = [2,3,14,15,10,11,10,11,14,15,10,11,u,u,6,7,18,19,30,31,26,27,26,27,30,31,26,27,u,u,22,23]12395; AVX512DQ-FCP-NEXT: vpshufb %ymm3, %ymm2, %ymm212396; AVX512DQ-FCP-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm112397; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3,4,5,6,7],ymm2[8,9,10],ymm1[11,12,13,14,15]12398; AVX512DQ-FCP-NEXT: vpshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,5,5,7]12399; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]12400; AVX512DQ-FCP-NEXT: vpternlogq {{.*#+}} zmm6 = zmm0 ^ (zmm16 & (zmm6 ^ zmm0))12401; AVX512DQ-FCP-NEXT: vinserti32x8 $1, %ymm1, %zmm0, %zmm6 {%k1}12402; AVX512DQ-FCP-NEXT: vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill12403; AVX512DQ-FCP-NEXT: vmovdqa64 %ymm25, %ymm012404; AVX512DQ-FCP-NEXT: vpshufb %xmm10, %xmm0, %xmm012405; AVX512DQ-FCP-NEXT: vmovdqa64 %xmm24, %xmm112406; AVX512DQ-FCP-NEXT: vpshufb %xmm10, %xmm1, %xmm112407; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1],xmm1[2],xmm0[3],xmm1[4,5],xmm0[6,7]12408; AVX512DQ-FCP-NEXT: vmovdqa64 %xmm22, %xmm112409; AVX512DQ-FCP-NEXT: vpshufb %xmm13, %xmm1, %xmm112410; AVX512DQ-FCP-NEXT: vmovdqa64 %ymm23, %ymm212411; AVX512DQ-FCP-NEXT: vpshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,5,5,5,5]12412; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1,2],xmm2[3],xmm1[4,5],xmm2[6],xmm1[7]12413; AVX512DQ-FCP-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm112414; AVX512DQ-FCP-NEXT: vinserti32x4 $2, %xmm0, %zmm1, %zmm012415; AVX512DQ-FCP-NEXT: vmovdqa64 %ymm20, %ymm112416; AVX512DQ-FCP-NEXT: vpshufb %ymm5, %ymm1, %ymm112417; AVX512DQ-FCP-NEXT: vpshufb %xmm10, %xmm15, %xmm212418; AVX512DQ-FCP-NEXT: vmovdqa64 %xmm21, %xmm412419; AVX512DQ-FCP-NEXT: vpshufb %xmm10, %xmm4, %xmm412420; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0,1],xmm4[2],xmm2[3],xmm4[4,5],xmm2[6,7]12421; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm4 = ymm2[0,1,2],ymm1[3,4,5,6,7]12422; AVX512DQ-FCP-NEXT: vmovdqa64 %ymm18, %ymm112423; AVX512DQ-FCP-NEXT: vpshufb %ymm3, %ymm1, %ymm112424; AVX512DQ-FCP-NEXT: vmovdqa64 %xmm19, %xmm212425; AVX512DQ-FCP-NEXT: vpshufb %xmm13, %xmm2, %xmm212426; AVX512DQ-FCP-NEXT: vpshufhw {{.*#+}} xmm3 = xmm12[0,1,2,3,5,5,5,5]12427; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0,1,2],xmm3[3],xmm2[4,5],xmm3[6],xmm2[7]12428; AVX512DQ-FCP-NEXT: vinserti128 $1, %xmm2, %ymm0, %ymm212429; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} ymm2 = ymm1[0,1,2],ymm2[3,4,5,6,7],ymm1[8,9,10],ymm2[11,12,13,14,15]12430; AVX512DQ-FCP-NEXT: vpshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,5,5,7]12431; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm2[4,5,6,7]12432; AVX512DQ-FCP-NEXT: vpternlogq {{.*#+}} zmm4 = zmm0 ^ (zmm16 & (zmm4 ^ zmm0))12433; AVX512DQ-FCP-NEXT: vinserti32x8 $1, %ymm1, %zmm0, %zmm4 {%k1}12434; AVX512DQ-FCP-NEXT: vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill12435; AVX512DQ-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload12436; AVX512DQ-FCP-NEXT: vpblendd $219, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload12437; AVX512DQ-FCP-NEXT: # ymm0 = mem[0,1],ymm0[2],mem[3,4],ymm0[5],mem[6,7]12438; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm0, %xmm112439; AVX512DQ-FCP-NEXT: vpshufd {{.*#+}} xmm14 = xmm0[2,1,2,3]12440; AVX512DQ-FCP-NEXT: vmovdqa {{.*#+}} xmm0 = [u,u,0,1,4,5,u,u,12,13,12,13,12,13,12,13]12441; AVX512DQ-FCP-NEXT: vpshufd {{.*#+}} xmm15 = xmm1[0,3,2,1]12442; AVX512DQ-FCP-NEXT: vpshufb %xmm0, %xmm15, %xmm112443; AVX512DQ-FCP-NEXT: vpshuflw {{.*#+}} xmm2 = xmm14[2,1,2,0,4,5,6,7]12444; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm1 = xmm2[0],xmm1[1,2],xmm2[3],xmm1[4,5,6,7]12445; AVX512DQ-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload12446; AVX512DQ-FCP-NEXT: vpblendd $36, (%rsp), %ymm2, %ymm2 # 32-byte Folded Reload12447; AVX512DQ-FCP-NEXT: # ymm2 = ymm2[0,1],mem[2],ymm2[3,4],mem[5],ymm2[6,7]12448; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm2, %xmm312449; AVX512DQ-FCP-NEXT: vpshufd {{.*#+}} xmm4 = xmm2[2,1,0,3]12450; AVX512DQ-FCP-NEXT: vmovdqa {{.*#+}} xmm10 = [0,1,0,1,0,1,0,1,u,u,8,9,12,13,u,u]12451; AVX512DQ-FCP-NEXT: vpshufb %xmm10, %xmm4, %xmm212452; AVX512DQ-FCP-NEXT: vmovdqa64 %xmm4, %xmm1912453; AVX512DQ-FCP-NEXT: vpshufd {{.*#+}} xmm4 = xmm3[0,1,2,1]12454; AVX512DQ-FCP-NEXT: vpshufhw {{.*#+}} xmm3 = xmm4[0,1,2,3,6,5,6,4]12455; AVX512DQ-FCP-NEXT: vmovdqa64 %xmm4, %xmm2112456; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0,1,2,3],xmm3[4],xmm2[5,6],xmm3[7]12457; AVX512DQ-FCP-NEXT: vinserti128 $1, %xmm2, %ymm0, %ymm212458; AVX512DQ-FCP-NEXT: vinserti32x4 $2, %xmm1, %zmm2, %zmm312459; AVX512DQ-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload12460; AVX512DQ-FCP-NEXT: vpblendd $219, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload12461; AVX512DQ-FCP-NEXT: # ymm1 = mem[0,1],ymm1[2],mem[3,4],ymm1[5],mem[6,7]12462; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm1, %xmm412463; AVX512DQ-FCP-NEXT: vpshufd {{.*#+}} xmm5 = xmm1[2,1,2,3]12464; AVX512DQ-FCP-NEXT: vpbroadcastq {{.*#+}} xmm2 = [12,13,0,1,4,5,0,0,12,13,0,1,4,5,0,0]12465; AVX512DQ-FCP-NEXT: vpshufd {{.*#+}} xmm4 = xmm4[0,3,2,1]12466; AVX512DQ-FCP-NEXT: vpshufb %xmm2, %xmm4, %xmm112467; AVX512DQ-FCP-NEXT: vmovdqa64 %xmm4, %xmm2312468; AVX512DQ-FCP-NEXT: vpshuflw {{.*#+}} xmm4 = xmm5[2,1,2,0,4,5,6,7]12469; AVX512DQ-FCP-NEXT: vmovdqa64 %xmm5, %xmm2212470; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm4 = xmm4[0],xmm1[1,2],xmm4[3],xmm1[4,5,6,7]12471; AVX512DQ-FCP-NEXT: vmovdqa64 %ymm31, %ymm112472; AVX512DQ-FCP-NEXT: vpblendd $148, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm6 # 32-byte Folded Reload12473; AVX512DQ-FCP-NEXT: # ymm6 = ymm1[0,1],mem[2],ymm1[3],mem[4],ymm1[5,6],mem[7]12474; AVX512DQ-FCP-NEXT: vmovdqa {{.*#+}} ymm1 = [4,5,0,1,12,13,14,15,8,9,0,1,12,13,8,9,20,21,16,17,28,29,30,31,24,25,16,17,28,29,24,25]12475; AVX512DQ-FCP-NEXT: vpshufb %ymm1, %ymm6, %ymm512476; AVX512DQ-FCP-NEXT: vmovdqa64 %ymm6, %ymm2412477; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm4 = xmm4[0,1,2,3,4],xmm5[5,6,7]12478; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm5[4,5,6,7]12479; AVX512DQ-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload12480; AVX512DQ-FCP-NEXT: vpblendd $219, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5, %ymm5 # 32-byte Folded Reload12481; AVX512DQ-FCP-NEXT: # ymm5 = mem[0,1],ymm5[2],mem[3,4],ymm5[5],mem[6,7]12482; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm5, %xmm612483; AVX512DQ-FCP-NEXT: vpshufd {{.*#+}} xmm7 = xmm5[2,1,0,3]12484; AVX512DQ-FCP-NEXT: vpshufb %xmm10, %xmm7, %xmm512485; AVX512DQ-FCP-NEXT: vmovdqa64 %xmm7, %xmm2512486; AVX512DQ-FCP-NEXT: vpshufd {{.*#+}} xmm7 = xmm6[0,1,2,1]12487; AVX512DQ-FCP-NEXT: vpshufhw {{.*#+}} xmm6 = xmm7[0,1,2,3,6,5,6,4]12488; AVX512DQ-FCP-NEXT: vmovdqa64 %xmm7, %xmm1812489; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm5 = xmm5[0,1,2,3],xmm6[4],xmm5[5,6],xmm6[7]12490; AVX512DQ-FCP-NEXT: vinserti128 $1, %xmm5, %ymm0, %ymm512491; AVX512DQ-FCP-NEXT: vmovdqa64 %ymm29, %ymm612492; AVX512DQ-FCP-NEXT: vmovdqa64 %ymm30, %ymm712493; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm7 = ymm6[0,1],ymm7[2],ymm6[3],ymm7[4],ymm6[5,6],ymm7[7]12494; AVX512DQ-FCP-NEXT: vmovdqa {{.*#+}} ymm8 = [4,5,0,1,12,13,14,15,8,9,12,13,0,1,u,u,20,21,16,17,28,29,30,31,24,25,28,29,16,17,u,u]12495; AVX512DQ-FCP-NEXT: vpshufb %ymm8, %ymm7, %ymm612496; AVX512DQ-FCP-NEXT: vmovdqa64 %ymm8, %ymm2612497; AVX512DQ-FCP-NEXT: vmovdqa64 %ymm7, %ymm1712498; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} ymm5 = ymm6[0,1,2],ymm5[3,4,5,6,7],ymm6[8,9,10],ymm5[11,12,13,14,15]12499; AVX512DQ-FCP-NEXT: vpshufhw {{.*#+}} xmm6 = xmm6[0,1,2,3,4,6,5,4]12500; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm5 = ymm6[0,1,2,3],ymm5[4,5,6,7]12501; AVX512DQ-FCP-NEXT: vinserti64x4 $1, %ymm5, %zmm0, %zmm512502; AVX512DQ-FCP-NEXT: vmovdqa64 {{.*#+}} zmm20 = [65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,0,0,0,0,0,0,0,0,0,0,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535]12503; AVX512DQ-FCP-NEXT: vpternlogq {{.*#+}} zmm4 = zmm3 ^ (zmm20 & (zmm4 ^ zmm3))12504; AVX512DQ-FCP-NEXT: vpmovsxdq {{.*#+}} zmm28 = [18446744073709551615,18446744073709551615,18446744073709551615,18446744073709551615,18446744073709551615,65535,0,0]12505; AVX512DQ-FCP-NEXT: vpternlogq {{.*#+}} zmm5 = zmm5 ^ (zmm28 & (zmm5 ^ zmm4))12506; AVX512DQ-FCP-NEXT: vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill12507; AVX512DQ-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload12508; AVX512DQ-FCP-NEXT: vpblendd $36, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm3 # 32-byte Folded Reload12509; AVX512DQ-FCP-NEXT: # ymm3 = ymm3[0,1],mem[2],ymm3[3,4],mem[5],ymm3[6,7]12510; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm3, %xmm412511; AVX512DQ-FCP-NEXT: vpshufd {{.*#+}} xmm4 = xmm4[0,3,2,1]12512; AVX512DQ-FCP-NEXT: vpshufb %xmm0, %xmm4, %xmm012513; AVX512DQ-FCP-NEXT: vmovdqa64 %xmm4, %xmm1612514; AVX512DQ-FCP-NEXT: vpshufd {{.*#+}} xmm13 = xmm3[2,1,2,3]12515; AVX512DQ-FCP-NEXT: vpshuflw {{.*#+}} xmm3 = xmm13[2,1,2,0,4,5,6,7]12516; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm0 = xmm3[0],xmm0[1,2],xmm3[3],xmm0[4,5,6,7]12517; AVX512DQ-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload12518; AVX512DQ-FCP-NEXT: vpblendd $36, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm3 # 32-byte Folded Reload12519; AVX512DQ-FCP-NEXT: # ymm3 = ymm3[0,1],mem[2],ymm3[3,4],mem[5],ymm3[6,7]12520; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm3, %xmm412521; AVX512DQ-FCP-NEXT: vpshufd {{.*#+}} xmm12 = xmm3[2,1,0,3]12522; AVX512DQ-FCP-NEXT: vpshufb %xmm10, %xmm12, %xmm312523; AVX512DQ-FCP-NEXT: vpshufd {{.*#+}} xmm11 = xmm4[0,1,2,1]12524; AVX512DQ-FCP-NEXT: vpshufhw {{.*#+}} xmm4 = xmm11[0,1,2,3,6,5,6,4]12525; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm3 = xmm3[0,1,2,3],xmm4[4],xmm3[5,6],xmm4[7]12526; AVX512DQ-FCP-NEXT: vinserti128 $1, %xmm3, %ymm0, %ymm312527; AVX512DQ-FCP-NEXT: vinserti32x4 $2, %xmm0, %zmm3, %zmm912528; AVX512DQ-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload12529; AVX512DQ-FCP-NEXT: vpblendd $219, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload12530; AVX512DQ-FCP-NEXT: # ymm0 = mem[0,1],ymm0[2],mem[3,4],ymm0[5],mem[6,7]12531; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm0, %xmm312532; AVX512DQ-FCP-NEXT: vpshufd {{.*#+}} xmm8 = xmm3[0,3,2,1]12533; AVX512DQ-FCP-NEXT: vpshufb %xmm2, %xmm8, %xmm212534; AVX512DQ-FCP-NEXT: vpshufd {{.*#+}} xmm7 = xmm0[2,1,2,3]12535; AVX512DQ-FCP-NEXT: vpshuflw {{.*#+}} xmm0 = xmm7[2,1,2,0,4,5,6,7]12536; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0],xmm2[1,2],xmm0[3],xmm2[4,5,6,7]12537; AVX512DQ-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload12538; AVX512DQ-FCP-NEXT: vpblendd $107, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm6 # 32-byte Folded Reload12539; AVX512DQ-FCP-NEXT: # ymm6 = mem[0,1],ymm2[2],mem[3],ymm2[4],mem[5,6],ymm2[7]12540; AVX512DQ-FCP-NEXT: vpshufb %ymm1, %ymm6, %ymm112541; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2,3,4],xmm1[5,6,7]12542; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm0[0,1,2,3],ymm1[4,5,6,7]12543; AVX512DQ-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload12544; AVX512DQ-FCP-NEXT: vpblendd $36, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload12545; AVX512DQ-FCP-NEXT: # ymm0 = ymm0[0,1],mem[2],ymm0[3,4],mem[5],ymm0[6,7]12546; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm0, %xmm212547; AVX512DQ-FCP-NEXT: vpshufd {{.*#+}} xmm5 = xmm0[2,1,0,3]12548; AVX512DQ-FCP-NEXT: vpshufb %xmm10, %xmm5, %xmm012549; AVX512DQ-FCP-NEXT: vpshufd {{.*#+}} xmm4 = xmm2[0,1,2,1]12550; AVX512DQ-FCP-NEXT: vpshufhw {{.*#+}} xmm10 = xmm4[0,1,2,3,6,5,6,4]12551; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm10 = xmm0[0,1,2,3],xmm10[4],xmm0[5,6],xmm10[7]12552; AVX512DQ-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload12553; AVX512DQ-FCP-NEXT: vpblendd $148, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm2 # 32-byte Folded Reload12554; AVX512DQ-FCP-NEXT: # ymm2 = ymm0[0,1],mem[2],ymm0[3],mem[4],ymm0[5,6],mem[7]12555; AVX512DQ-FCP-NEXT: vmovdqa64 %ymm26, %ymm012556; AVX512DQ-FCP-NEXT: vpshufb %ymm0, %ymm2, %ymm012557; AVX512DQ-FCP-NEXT: vinserti128 $1, %xmm10, %ymm0, %ymm1012558; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} ymm10 = ymm0[0,1,2],ymm10[3,4,5,6,7],ymm0[8,9,10],ymm10[11,12,13,14,15]12559; AVX512DQ-FCP-NEXT: vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,6,5,4]12560; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm10[4,5,6,7]12561; AVX512DQ-FCP-NEXT: vinserti64x4 $1, %ymm0, %zmm0, %zmm2712562; AVX512DQ-FCP-NEXT: vpternlogq {{.*#+}} zmm1 = zmm9 ^ (zmm20 & (zmm1 ^ zmm9))12563; AVX512DQ-FCP-NEXT: vpternlogq {{.*#+}} zmm27 = zmm27 ^ (zmm28 & (zmm27 ^ zmm1))12564; AVX512DQ-FCP-NEXT: vmovdqa {{.*#+}} xmm1 = [u,u,2,3,6,7,u,u,14,15,14,15,14,15,14,15]12565; AVX512DQ-FCP-NEXT: vpshufb %xmm1, %xmm15, %xmm012566; AVX512DQ-FCP-NEXT: vmovdqa64 %xmm1, %xmm2612567; AVX512DQ-FCP-NEXT: vpshuflw {{.*#+}} xmm1 = xmm14[3,1,2,1,4,5,6,7]12568; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm0 = xmm1[0],xmm0[1,2],xmm1[3],xmm0[4,5,6,7]12569; AVX512DQ-FCP-NEXT: vmovdqa {{.*#+}} xmm3 = [2,3,2,3,2,3,2,3,u,u,10,11,14,15,u,u]12570; AVX512DQ-FCP-NEXT: vmovdqa64 %xmm19, %xmm112571; AVX512DQ-FCP-NEXT: vpshufb %xmm3, %xmm1, %xmm912572; AVX512DQ-FCP-NEXT: vmovdqa64 %xmm21, %xmm112573; AVX512DQ-FCP-NEXT: vpshufhw {{.*#+}} xmm10 = xmm1[0,1,2,3,7,5,6,5]12574; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm9 = xmm9[0,1,2,3],xmm10[4],xmm9[5,6],xmm10[7]12575; AVX512DQ-FCP-NEXT: vinserti128 $1, %xmm9, %ymm0, %ymm912576; AVX512DQ-FCP-NEXT: vinserti32x4 $2, %xmm0, %zmm9, %zmm2112577; AVX512DQ-FCP-NEXT: vpbroadcastq {{.*#+}} xmm10 = [14,15,2,3,6,7,0,0,14,15,2,3,6,7,0,0]12578; AVX512DQ-FCP-NEXT: vmovdqa64 %xmm23, %xmm012579; AVX512DQ-FCP-NEXT: vpshufb %xmm10, %xmm0, %xmm912580; AVX512DQ-FCP-NEXT: vmovdqa64 %xmm22, %xmm012581; AVX512DQ-FCP-NEXT: vpshuflw {{.*#+}} xmm15 = xmm0[3,1,2,1,4,5,6,7]12582; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm15 = xmm15[0],xmm9[1,2],xmm15[3],xmm9[4,5,6,7]12583; AVX512DQ-FCP-NEXT: vmovdqa {{.*#+}} ymm9 = [6,7,2,3,14,15,14,15,14,15,2,3,14,15,10,11,22,23,18,19,30,31,30,31,30,31,18,19,30,31,26,27]12584; AVX512DQ-FCP-NEXT: vmovdqa64 %ymm24, %ymm012585; AVX512DQ-FCP-NEXT: vpshufb %ymm9, %ymm0, %ymm012586; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm15 = xmm15[0,1,2,3,4],xmm0[5,6,7]12587; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm15[0,1,2,3],ymm0[4,5,6,7]12588; AVX512DQ-FCP-NEXT: vmovdqa64 %xmm25, %xmm012589; AVX512DQ-FCP-NEXT: vpshufb %xmm3, %xmm0, %xmm1512590; AVX512DQ-FCP-NEXT: vmovdqa64 %xmm18, %xmm012591; AVX512DQ-FCP-NEXT: vpshufhw {{.*#+}} xmm14 = xmm0[0,1,2,3,7,5,6,5]12592; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm14 = xmm15[0,1,2,3],xmm14[4],xmm15[5,6],xmm14[7]12593; AVX512DQ-FCP-NEXT: vmovdqa {{.*#+}} ymm15 = [6,7,2,3,14,15,14,15,14,15,10,11,u,u,2,3,22,23,18,19,30,31,30,31,30,31,26,27,u,u,18,19]12594; AVX512DQ-FCP-NEXT: vmovdqa64 %ymm17, %ymm012595; AVX512DQ-FCP-NEXT: vpshufb %ymm15, %ymm0, %ymm012596; AVX512DQ-FCP-NEXT: vinserti128 $1, %xmm14, %ymm0, %ymm1412597; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} ymm14 = ymm0[0,1,2],ymm14[3,4,5,6,7],ymm0[8,9,10],ymm14[11,12,13,14,15]12598; AVX512DQ-FCP-NEXT: vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,7,4,5]12599; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm14[4,5,6,7]12600; AVX512DQ-FCP-NEXT: vinserti64x4 $1, %ymm0, %zmm0, %zmm1912601; AVX512DQ-FCP-NEXT: vpternlogq {{.*#+}} zmm1 = zmm21 ^ (zmm20 & (zmm1 ^ zmm21))12602; AVX512DQ-FCP-NEXT: vpternlogq {{.*#+}} zmm19 = zmm19 ^ (zmm28 & (zmm19 ^ zmm1))12603; AVX512DQ-FCP-NEXT: vmovdqa64 %xmm16, %xmm012604; AVX512DQ-FCP-NEXT: vmovdqa64 %xmm26, %xmm112605; AVX512DQ-FCP-NEXT: vpshufb %xmm1, %xmm0, %xmm012606; AVX512DQ-FCP-NEXT: vpshuflw {{.*#+}} xmm1 = xmm13[3,1,2,1,4,5,6,7]12607; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm0 = xmm1[0],xmm0[1,2],xmm1[3],xmm0[4,5,6,7]12608; AVX512DQ-FCP-NEXT: vpshufb %xmm3, %xmm12, %xmm112609; AVX512DQ-FCP-NEXT: vpshufhw {{.*#+}} xmm11 = xmm11[0,1,2,3,7,5,6,5]12610; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1,2,3],xmm11[4],xmm1[5,6],xmm11[7]12611; AVX512DQ-FCP-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm112612; AVX512DQ-FCP-NEXT: vinserti32x4 $2, %xmm0, %zmm1, %zmm012613; AVX512DQ-FCP-NEXT: vpshufb %xmm10, %xmm8, %xmm112614; AVX512DQ-FCP-NEXT: vpshuflw {{.*#+}} xmm7 = xmm7[3,1,2,1,4,5,6,7]12615; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm1 = xmm7[0],xmm1[1,2],xmm7[3],xmm1[4,5,6,7]12616; AVX512DQ-FCP-NEXT: vpshufb %ymm9, %ymm6, %ymm612617; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1,2,3,4],xmm6[5,6,7]12618; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm6[4,5,6,7]12619; AVX512DQ-FCP-NEXT: vpshufb %ymm15, %ymm2, %ymm212620; AVX512DQ-FCP-NEXT: vpshufb %xmm3, %xmm5, %xmm312621; AVX512DQ-FCP-NEXT: vpshufhw {{.*#+}} xmm4 = xmm4[0,1,2,3,7,5,6,5]12622; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm3 = xmm3[0,1,2,3],xmm4[4],xmm3[5,6],xmm4[7]12623; AVX512DQ-FCP-NEXT: vinserti128 $1, %xmm3, %ymm0, %ymm312624; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} ymm3 = ymm2[0,1,2],ymm3[3,4,5,6,7],ymm2[8,9,10],ymm3[11,12,13,14,15]12625; AVX512DQ-FCP-NEXT: vpshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,7,4,5]12626; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4,5,6,7]12627; AVX512DQ-FCP-NEXT: vinserti64x4 $1, %ymm2, %zmm0, %zmm2112628; AVX512DQ-FCP-NEXT: vpternlogq {{.*#+}} zmm1 = zmm0 ^ (zmm20 & (zmm1 ^ zmm0))12629; AVX512DQ-FCP-NEXT: vpternlogq {{.*#+}} zmm21 = zmm21 ^ (zmm28 & (zmm21 ^ zmm1))12630; AVX512DQ-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload12631; AVX512DQ-FCP-NEXT: vpblendd $36, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm9 # 32-byte Folded Reload12632; AVX512DQ-FCP-NEXT: # ymm9 = ymm0[0,1],mem[2],ymm0[3,4],mem[5],ymm0[6,7]12633; AVX512DQ-FCP-NEXT: vmovdqa {{.*#+}} xmm1 = [8,9,u,u,0,1,12,13,u,u,12,13,12,13,14,15]12634; AVX512DQ-FCP-NEXT: vpshufb %xmm1, %xmm9, %xmm012635; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm9, %xmm1112636; AVX512DQ-FCP-NEXT: vpshuflw {{.*#+}} xmm2 = xmm11[2,2,2,2,4,5,6,7]12637; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0],xmm2[1],xmm0[2,3],xmm2[4],xmm0[5,6,7]12638; AVX512DQ-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload12639; AVX512DQ-FCP-NEXT: vpblendd $109, (%rsp), %ymm2, %ymm2 # 32-byte Folded Reload12640; AVX512DQ-FCP-NEXT: # ymm2 = mem[0],ymm2[1],mem[2,3],ymm2[4],mem[5,6],ymm2[7]12641; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm2, %xmm312642; AVX512DQ-FCP-NEXT: vpshufd {{.*#+}} xmm4 = xmm2[0,3,2,1]12643; AVX512DQ-FCP-NEXT: vmovdqa {{.*#+}} xmm13 = [0,1,2,3,0,1,4,5,8,9,12,13,0,1,12,13]12644; AVX512DQ-FCP-NEXT: vpshufb %xmm13, %xmm3, %xmm212645; AVX512DQ-FCP-NEXT: vmovdqa64 %xmm3, %xmm1612646; AVX512DQ-FCP-NEXT: vpshufb %xmm13, %xmm4, %xmm312647; AVX512DQ-FCP-NEXT: vmovdqa64 %xmm4, %xmm1712648; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm2 = xmm3[0,1,2,3],xmm2[4],xmm3[5],xmm2[6,7]12649; AVX512DQ-FCP-NEXT: vinserti128 $1, %xmm2, %ymm0, %ymm212650; AVX512DQ-FCP-NEXT: vinserti32x4 $2, %xmm0, %zmm2, %zmm2212651; AVX512DQ-FCP-NEXT: vmovdqa64 %ymm31, %ymm012652; AVX512DQ-FCP-NEXT: vpblendd $189, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm14 # 32-byte Folded Reload12653; AVX512DQ-FCP-NEXT: # ymm14 = mem[0],ymm0[1],mem[2,3,4,5],ymm0[6],mem[7]12654; AVX512DQ-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload12655; AVX512DQ-FCP-NEXT: vpblendd $36, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm10 # 32-byte Folded Reload12656; AVX512DQ-FCP-NEXT: # ymm10 = ymm0[0,1],mem[2],ymm0[3,4],mem[5],ymm0[6,7]12657; AVX512DQ-FCP-NEXT: vpshufb %xmm1, %xmm10, %xmm012658; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm10, %xmm1512659; AVX512DQ-FCP-NEXT: vpshuflw {{.*#+}} xmm2 = xmm15[2,2,2,2,4,5,6,7]12660; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0],xmm2[1],xmm0[2,3],xmm2[4],xmm0[5,6,7]12661; AVX512DQ-FCP-NEXT: vmovdqa64 {{.*#+}} ymm20 = [65535,65535,65535,65535,65535,0,0,0,0,0,65535,65535,65535,65535,65535,65535]12662; AVX512DQ-FCP-NEXT: vmovdqa {{.*#+}} ymm2 = [128,128,128,128,128,128,128,128,128,128,4,5,0,1,12,13,24,25,20,21,128,128,128,128,128,128,128,128,128,128,128,128]12663; AVX512DQ-FCP-NEXT: vpshufb %ymm2, %ymm14, %ymm312664; AVX512DQ-FCP-NEXT: vpternlogq {{.*#+}} ymm0 = (ymm0 & ymm20) | ymm312665; AVX512DQ-FCP-NEXT: movw $31, %ax12666; AVX512DQ-FCP-NEXT: kmovw %eax, %k112667; AVX512DQ-FCP-NEXT: vinserti32x8 $0, %ymm0, %zmm0, %zmm22 {%k1}12668; AVX512DQ-FCP-NEXT: vmovdqa64 %ymm29, %ymm012669; AVX512DQ-FCP-NEXT: vmovdqa64 %ymm30, %ymm312670; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm4 = ymm3[0],ymm0[1],ymm3[2,3,4,5],ymm0[6],ymm3[7]12671; AVX512DQ-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload12672; AVX512DQ-FCP-NEXT: vpblendd $146, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload12673; AVX512DQ-FCP-NEXT: # ymm0 = ymm0[0],mem[1],ymm0[2,3],mem[4],ymm0[5,6],mem[7]12674; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm0, %xmm312675; AVX512DQ-FCP-NEXT: vpshufd {{.*#+}} xmm5 = xmm0[0,3,2,1]12676; AVX512DQ-FCP-NEXT: vpshufb %xmm13, %xmm3, %xmm012677; AVX512DQ-FCP-NEXT: vmovdqa64 %xmm3, %xmm1812678; AVX512DQ-FCP-NEXT: vpshufb %xmm13, %xmm5, %xmm312679; AVX512DQ-FCP-NEXT: vmovdqa64 %xmm5, %xmm2912680; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm0 = xmm3[0,1,2,3],xmm0[4],xmm3[5],xmm0[6,7]12681; AVX512DQ-FCP-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm012682; AVX512DQ-FCP-NEXT: vmovdqa {{.*#+}} ymm5 = [8,9,4,5,4,5,6,7,0,1,4,5,0,1,12,13,24,25,20,21,20,21,22,23,16,17,20,21,16,17,28,29]12683; AVX512DQ-FCP-NEXT: vpshufb %ymm5, %ymm4, %ymm312684; AVX512DQ-FCP-NEXT: vmovdqa64 %ymm5, %ymm2612685; AVX512DQ-FCP-NEXT: vmovdqa64 %ymm4, %ymm3012686; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm3[0,1,2,3,4],ymm0[5,6,7]12687; AVX512DQ-FCP-NEXT: vinserti64x4 $1, %ymm0, %zmm0, %zmm2312688; AVX512DQ-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload12689; AVX512DQ-FCP-NEXT: vpblendd $66, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm6 # 32-byte Folded Reload12690; AVX512DQ-FCP-NEXT: # ymm6 = ymm0[0],mem[1],ymm0[2,3,4,5],mem[6],ymm0[7]12691; AVX512DQ-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload12692; AVX512DQ-FCP-NEXT: vpblendd $36, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm5 # 32-byte Folded Reload12693; AVX512DQ-FCP-NEXT: # ymm5 = ymm0[0,1],mem[2],ymm0[3,4],mem[5],ymm0[6,7]12694; AVX512DQ-FCP-NEXT: vpshufb %xmm1, %xmm5, %xmm312695; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm5, %xmm012696; AVX512DQ-FCP-NEXT: vpshuflw {{.*#+}} xmm4 = xmm0[2,2,2,2,4,5,6,7]12697; AVX512DQ-FCP-NEXT: vmovdqa64 %xmm0, %xmm2512698; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm3 = xmm3[0],xmm4[1],xmm3[2,3],xmm4[4],xmm3[5,6,7]12699; AVX512DQ-FCP-NEXT: vpshufb %ymm2, %ymm6, %ymm212700; AVX512DQ-FCP-NEXT: vmovdqa64 %ymm6, %ymm3112701; AVX512DQ-FCP-NEXT: vpternlogq {{.*#+}} ymm3 = (ymm3 & ymm20) | ymm212702; AVX512DQ-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload12703; AVX512DQ-FCP-NEXT: vpblendd $219, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm2 # 32-byte Folded Reload12704; AVX512DQ-FCP-NEXT: # ymm2 = mem[0,1],ymm0[2],mem[3,4],ymm0[5],mem[6,7]12705; AVX512DQ-FCP-NEXT: vpshufb %xmm1, %xmm2, %xmm112706; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm2, %xmm812707; AVX512DQ-FCP-NEXT: vpshuflw {{.*#+}} xmm4 = xmm8[2,2,2,2,4,5,6,7]12708; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0],xmm4[1],xmm1[2,3],xmm4[4],xmm1[5,6,7]12709; AVX512DQ-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload12710; AVX512DQ-FCP-NEXT: vpblendd $109, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm4 # 32-byte Folded Reload12711; AVX512DQ-FCP-NEXT: # ymm4 = mem[0],ymm0[1],mem[2,3],ymm0[4],mem[5,6],ymm0[7]12712; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm4, %xmm712713; AVX512DQ-FCP-NEXT: vpshufd {{.*#+}} xmm6 = xmm4[0,3,2,1]12714; AVX512DQ-FCP-NEXT: vpshufb %xmm13, %xmm7, %xmm412715; AVX512DQ-FCP-NEXT: vpshufb %xmm13, %xmm6, %xmm1212716; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm4 = xmm12[0,1,2,3],xmm4[4],xmm12[5],xmm4[6,7]12717; AVX512DQ-FCP-NEXT: vinserti128 $1, %xmm4, %ymm0, %ymm412718; AVX512DQ-FCP-NEXT: vinserti32x4 $2, %xmm1, %zmm4, %zmm2412719; AVX512DQ-FCP-NEXT: vinserti32x8 $0, %ymm3, %zmm0, %zmm24 {%k1}12720; AVX512DQ-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload12721; AVX512DQ-FCP-NEXT: vpblendd $189, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm4 # 32-byte Folded Reload12722; AVX512DQ-FCP-NEXT: # ymm4 = mem[0],ymm0[1],mem[2,3,4,5],ymm0[6],mem[7]12723; AVX512DQ-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload12724; AVX512DQ-FCP-NEXT: vpblendd $109, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm1 # 32-byte Folded Reload12725; AVX512DQ-FCP-NEXT: # ymm1 = mem[0],ymm0[1],mem[2,3],ymm0[4],mem[5,6],ymm0[7]12726; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm1, %xmm312727; AVX512DQ-FCP-NEXT: vpshufd {{.*#+}} xmm1 = xmm1[0,3,2,1]12728; AVX512DQ-FCP-NEXT: vpshufb %xmm13, %xmm3, %xmm1212729; AVX512DQ-FCP-NEXT: vpshufb %xmm13, %xmm1, %xmm1312730; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm12 = xmm13[0,1,2,3],xmm12[4],xmm13[5],xmm12[6,7]12731; AVX512DQ-FCP-NEXT: vmovdqa64 %ymm26, %ymm012732; AVX512DQ-FCP-NEXT: vpshufb %ymm0, %ymm4, %ymm1312733; AVX512DQ-FCP-NEXT: vinserti128 $1, %xmm12, %ymm0, %ymm1212734; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm12 = ymm13[0,1,2,3,4],ymm12[5,6,7]12735; AVX512DQ-FCP-NEXT: vinserti64x4 $1, %ymm12, %zmm0, %zmm1312736; AVX512DQ-FCP-NEXT: vmovdqa {{.*#+}} xmm12 = [10,11,6,7,2,3,14,15,10,11,10,11,12,13,14,15]12737; AVX512DQ-FCP-NEXT: vpshufb %xmm12, %xmm15, %xmm1512738; AVX512DQ-FCP-NEXT: vpshufb %xmm12, %xmm10, %xmm1012739; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm10 = xmm10[0],xmm15[1],xmm10[2,3],xmm15[4],xmm10[5,6,7]12740; AVX512DQ-FCP-NEXT: vmovdqa {{.*#+}} ymm0 = [128,128,128,128,128,128,128,128,128,128,6,7,2,3,14,15,26,27,22,23,128,128,128,128,128,128,128,128,128,128,128,128]12741; AVX512DQ-FCP-NEXT: vpshufb %ymm0, %ymm14, %ymm1412742; AVX512DQ-FCP-NEXT: vmovdqa64 %ymm0, %ymm2612743; AVX512DQ-FCP-NEXT: vpternlogq {{.*#+}} ymm10 = (ymm10 & ymm20) | ymm1412744; AVX512DQ-FCP-NEXT: vpshufb %xmm12, %xmm11, %xmm1412745; AVX512DQ-FCP-NEXT: vpshufb %xmm12, %xmm9, %xmm912746; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm14 = xmm9[0],xmm14[1],xmm9[2,3],xmm14[4],xmm9[5,6,7]12747; AVX512DQ-FCP-NEXT: vmovdqa {{.*#+}} xmm9 = [0,1,2,3,2,3,6,7,10,11,14,15,2,3,14,15]12748; AVX512DQ-FCP-NEXT: vmovdqa64 %xmm16, %xmm012749; AVX512DQ-FCP-NEXT: vpshufb %xmm9, %xmm0, %xmm012750; AVX512DQ-FCP-NEXT: vmovdqa64 %xmm17, %xmm1512751; AVX512DQ-FCP-NEXT: vpshufb %xmm9, %xmm15, %xmm1512752; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm0 = xmm15[0,1,2,3],xmm0[4],xmm15[5],xmm0[6,7]12753; AVX512DQ-FCP-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm012754; AVX512DQ-FCP-NEXT: vinserti32x4 $2, %xmm14, %zmm0, %zmm012755; AVX512DQ-FCP-NEXT: vinserti32x8 $0, %ymm10, %zmm0, %zmm0 {%k1}12756; AVX512DQ-FCP-NEXT: vmovdqa64 %xmm18, %xmm1012757; AVX512DQ-FCP-NEXT: vpshufb %xmm9, %xmm10, %xmm1012758; AVX512DQ-FCP-NEXT: vmovdqa64 %xmm29, %xmm1412759; AVX512DQ-FCP-NEXT: vpshufb %xmm9, %xmm14, %xmm1412760; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm10 = xmm14[0,1,2,3],xmm10[4],xmm14[5],xmm10[6,7]12761; AVX512DQ-FCP-NEXT: vmovdqa {{.*#+}} ymm14 = [10,11,6,7,4,5,6,7,6,7,6,7,2,3,14,15,26,27,22,23,20,21,22,23,22,23,22,23,18,19,30,31]12762; AVX512DQ-FCP-NEXT: vmovdqa64 %ymm30, %ymm1512763; AVX512DQ-FCP-NEXT: vpshufb %ymm14, %ymm15, %ymm1512764; AVX512DQ-FCP-NEXT: vinserti128 $1, %xmm10, %ymm0, %ymm1012765; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm10 = ymm15[0,1,2,3,4],ymm10[5,6,7]12766; AVX512DQ-FCP-NEXT: vinserti64x4 $1, %ymm10, %zmm0, %zmm1012767; AVX512DQ-FCP-NEXT: vmovdqa64 %ymm31, %ymm1512768; AVX512DQ-FCP-NEXT: vmovdqa64 %ymm26, %ymm1112769; AVX512DQ-FCP-NEXT: vpshufb %ymm11, %ymm15, %ymm1512770; AVX512DQ-FCP-NEXT: vmovdqa64 %xmm25, %xmm1112771; AVX512DQ-FCP-NEXT: vpshufb %xmm12, %xmm11, %xmm1112772; AVX512DQ-FCP-NEXT: vpshufb %xmm12, %xmm5, %xmm512773; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm5 = xmm5[0],xmm11[1],xmm5[2,3],xmm11[4],xmm5[5,6,7]12774; AVX512DQ-FCP-NEXT: vpternlogq {{.*#+}} ymm5 = (ymm5 & ymm20) | ymm1512775; AVX512DQ-FCP-NEXT: vpshufb %xmm12, %xmm8, %xmm812776; AVX512DQ-FCP-NEXT: vpshufb %xmm12, %xmm2, %xmm212777; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0],xmm8[1],xmm2[2,3],xmm8[4],xmm2[5,6,7]12778; AVX512DQ-FCP-NEXT: vpshufb %xmm9, %xmm7, %xmm712779; AVX512DQ-FCP-NEXT: vpshufb %xmm9, %xmm6, %xmm612780; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm6 = xmm6[0,1,2,3],xmm7[4],xmm6[5],xmm7[6,7]12781; AVX512DQ-FCP-NEXT: vinserti128 $1, %xmm6, %ymm0, %ymm612782; AVX512DQ-FCP-NEXT: vinserti32x4 $2, %xmm2, %zmm6, %zmm212783; AVX512DQ-FCP-NEXT: vinserti32x8 $0, %ymm5, %zmm0, %zmm2 {%k1}12784; AVX512DQ-FCP-NEXT: vpshufb %ymm14, %ymm4, %ymm412785; AVX512DQ-FCP-NEXT: vpshufb %xmm9, %xmm3, %xmm312786; AVX512DQ-FCP-NEXT: vpshufb %xmm9, %xmm1, %xmm112787; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1,2,3],xmm3[4],xmm1[5],xmm3[6,7]12788; AVX512DQ-FCP-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm112789; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm4[0,1,2,3,4],ymm1[5,6,7]12790; AVX512DQ-FCP-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm112791; AVX512DQ-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload12792; AVX512DQ-FCP-NEXT: vmovaps %zmm3, (%rsi)12793; AVX512DQ-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload12794; AVX512DQ-FCP-NEXT: vmovaps %zmm3, 64(%rsi)12795; AVX512DQ-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload12796; AVX512DQ-FCP-NEXT: vmovaps %zmm3, 64(%rdx)12797; AVX512DQ-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload12798; AVX512DQ-FCP-NEXT: vmovaps %zmm3, (%rdx)12799; AVX512DQ-FCP-NEXT: vpternlogq {{.*#+}} zmm23 = zmm23 ^ (zmm28 & (zmm23 ^ zmm22))12800; AVX512DQ-FCP-NEXT: vpternlogq {{.*#+}} zmm13 = zmm13 ^ (zmm28 & (zmm13 ^ zmm24))12801; AVX512DQ-FCP-NEXT: vpternlogq {{.*#+}} zmm10 = zmm10 ^ (zmm28 & (zmm10 ^ zmm0))12802; AVX512DQ-FCP-NEXT: vpternlogq {{.*#+}} zmm1 = zmm1 ^ (zmm28 & (zmm1 ^ zmm2))12803; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm27, 64(%rcx)12804; AVX512DQ-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload12805; AVX512DQ-FCP-NEXT: vmovaps %zmm0, (%rcx)12806; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm21, 64(%r8)12807; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm19, (%r8)12808; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm13, 64(%r9)12809; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm23, (%r9)12810; AVX512DQ-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax12811; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm1, 64(%rax)12812; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm10, (%rax)12813; AVX512DQ-FCP-NEXT: addq $872, %rsp # imm = 0x36812814; AVX512DQ-FCP-NEXT: vzeroupper12815; AVX512DQ-FCP-NEXT: retq12816;12817; AVX512BW-LABEL: load_i16_stride6_vf64:12818; AVX512BW: # %bb.0:12819; AVX512BW-NEXT: movq {{[0-9]+}}(%rsp), %rax12820; AVX512BW-NEXT: vmovdqa64 448(%rdi), %zmm312821; AVX512BW-NEXT: vmovdqa64 384(%rdi), %zmm212822; AVX512BW-NEXT: vmovdqa64 512(%rdi), %zmm012823; AVX512BW-NEXT: vmovdqa64 576(%rdi), %zmm512824; AVX512BW-NEXT: vmovdqa64 704(%rdi), %zmm412825; AVX512BW-NEXT: vmovdqa64 640(%rdi), %zmm612826; AVX512BW-NEXT: vmovdqa64 (%rdi), %zmm1012827; AVX512BW-NEXT: vmovdqa64 64(%rdi), %zmm1312828; AVX512BW-NEXT: vmovdqa64 128(%rdi), %zmm112829; AVX512BW-NEXT: vmovdqa64 192(%rdi), %zmm1212830; AVX512BW-NEXT: vmovdqa64 320(%rdi), %zmm912831; AVX512BW-NEXT: vmovdqa64 256(%rdi), %zmm1112832; AVX512BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm14 = [0,0,0,0,0,0,4,10,16,22,28,34,40,46,52,58,0,0,0,0,0,0,4,10,16,22,28,34,40,46,52,58]12833; AVX512BW-NEXT: # zmm14 = mem[0,1,2,3,0,1,2,3]12834; AVX512BW-NEXT: vmovdqa64 %zmm11, %zmm1512835; AVX512BW-NEXT: vpermt2w %zmm9, %zmm14, %zmm1512836; AVX512BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm16 = [0,6,12,18,24,30,0,0,0,0,0,34,40,46,52,58,0,6,12,18,24,30,0,0,0,0,0,34,40,46,52,58]12837; AVX512BW-NEXT: # zmm16 = mem[0,1,2,3,0,1,2,3]12838; AVX512BW-NEXT: vmovdqa64 %zmm12, %zmm1712839; AVX512BW-NEXT: vpermt2w %zmm1, %zmm16, %zmm1712840; AVX512BW-NEXT: vpmovsxbw {{.*#+}} ymm7 = [0,6,12,18,24,30,36,42,48,54,60,0,0,0,0,0]12841; AVX512BW-NEXT: vmovdqa64 %zmm10, %zmm812842; AVX512BW-NEXT: vpermt2w %zmm13, %zmm7, %zmm812843; AVX512BW-NEXT: movl $4192256, %edi # imm = 0x3FF80012844; AVX512BW-NEXT: kmovd %edi, %k112845; AVX512BW-NEXT: vmovdqu16 %zmm17, %zmm8 {%k1}12846; AVX512BW-NEXT: movw $-2048, %di # imm = 0xF80012847; AVX512BW-NEXT: kmovd %edi, %k212848; AVX512BW-NEXT: vmovdqa32 %zmm15, %zmm8 {%k2}12849; AVX512BW-NEXT: vpermi2w %zmm4, %zmm6, %zmm1412850; AVX512BW-NEXT: vpermi2w %zmm0, %zmm5, %zmm1612851; AVX512BW-NEXT: vpermi2w %zmm3, %zmm2, %zmm712852; AVX512BW-NEXT: vmovdqu16 %zmm16, %zmm7 {%k1}12853; AVX512BW-NEXT: vmovdqa32 %zmm14, %zmm7 {%k2}12854; AVX512BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm16 = [0,0,0,0,0,0,5,11,17,23,29,35,41,47,53,59,0,0,0,0,0,0,5,11,17,23,29,35,41,47,53,59]12855; AVX512BW-NEXT: # zmm16 = mem[0,1,2,3,0,1,2,3]12856; AVX512BW-NEXT: vmovdqa64 %zmm11, %zmm1712857; AVX512BW-NEXT: vpermt2w %zmm9, %zmm16, %zmm1712858; AVX512BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm18 = [1,7,13,19,25,31,0,0,0,0,0,35,41,47,53,59,1,7,13,19,25,31,0,0,0,0,0,35,41,47,53,59]12859; AVX512BW-NEXT: # zmm18 = mem[0,1,2,3,0,1,2,3]12860; AVX512BW-NEXT: vmovdqa64 %zmm12, %zmm1912861; AVX512BW-NEXT: vpermt2w %zmm1, %zmm18, %zmm1912862; AVX512BW-NEXT: vpmovsxbw {{.*#+}} ymm14 = [1,7,13,19,25,31,37,43,49,55,61,0,0,0,0,0]12863; AVX512BW-NEXT: vmovdqa64 %zmm10, %zmm1512864; AVX512BW-NEXT: vpermt2w %zmm13, %zmm14, %zmm1512865; AVX512BW-NEXT: vmovdqu16 %zmm19, %zmm15 {%k1}12866; AVX512BW-NEXT: vmovdqa32 %zmm17, %zmm15 {%k2}12867; AVX512BW-NEXT: vpermi2w %zmm4, %zmm6, %zmm1612868; AVX512BW-NEXT: vpermi2w %zmm0, %zmm5, %zmm1812869; AVX512BW-NEXT: vpermi2w %zmm3, %zmm2, %zmm1412870; AVX512BW-NEXT: vmovdqu16 %zmm18, %zmm14 {%k1}12871; AVX512BW-NEXT: vmovdqa32 %zmm16, %zmm14 {%k2}12872; AVX512BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm18 = [0,0,0,0,0,0,6,12,18,24,30,36,42,48,54,60,0,0,0,0,0,0,6,12,18,24,30,36,42,48,54,60]12873; AVX512BW-NEXT: # zmm18 = mem[0,1,2,3,0,1,2,3]12874; AVX512BW-NEXT: vmovdqa64 %zmm11, %zmm1912875; AVX512BW-NEXT: vpermt2w %zmm9, %zmm18, %zmm1912876; AVX512BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm20 = [34,40,46,52,58,0,0,0,0,0,0,4,10,16,22,28,34,40,46,52,58,0,0,0,0,0,0,4,10,16,22,28]12877; AVX512BW-NEXT: # zmm20 = mem[0,1,2,3,0,1,2,3]12878; AVX512BW-NEXT: vmovdqa64 %zmm1, %zmm2112879; AVX512BW-NEXT: vpermt2w %zmm12, %zmm20, %zmm2112880; AVX512BW-NEXT: vpmovsxbw {{.*#+}} ymm16 = [34,40,46,52,58,0,6,12,18,24,30,0,0,0,0,0]12881; AVX512BW-NEXT: vmovdqa64 %zmm13, %zmm1712882; AVX512BW-NEXT: vpermt2w %zmm10, %zmm16, %zmm1712883; AVX512BW-NEXT: movl $2095104, %edi # imm = 0x1FF80012884; AVX512BW-NEXT: kmovd %edi, %k212885; AVX512BW-NEXT: vmovdqu16 %zmm21, %zmm17 {%k2}12886; AVX512BW-NEXT: movl $-2097152, %edi # imm = 0xFFE0000012887; AVX512BW-NEXT: kmovd %edi, %k112888; AVX512BW-NEXT: vmovdqu16 %zmm19, %zmm17 {%k1}12889; AVX512BW-NEXT: vpermi2w %zmm4, %zmm6, %zmm1812890; AVX512BW-NEXT: vpermi2w %zmm5, %zmm0, %zmm2012891; AVX512BW-NEXT: vpermi2w %zmm2, %zmm3, %zmm1612892; AVX512BW-NEXT: vmovdqu16 %zmm20, %zmm16 {%k2}12893; AVX512BW-NEXT: vmovdqu16 %zmm18, %zmm16 {%k1}12894; AVX512BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm20 = [0,0,0,0,0,1,7,13,19,25,31,37,43,49,55,61,0,0,0,0,0,1,7,13,19,25,31,37,43,49,55,61]12895; AVX512BW-NEXT: # zmm20 = mem[0,1,2,3,0,1,2,3]12896; AVX512BW-NEXT: vmovdqa64 %zmm11, %zmm2112897; AVX512BW-NEXT: vpermt2w %zmm9, %zmm20, %zmm2112898; AVX512BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm22 = [35,41,47,53,59,0,0,0,0,0,0,5,11,17,23,29,35,41,47,53,59,0,0,0,0,0,0,5,11,17,23,29]12899; AVX512BW-NEXT: # zmm22 = mem[0,1,2,3,0,1,2,3]12900; AVX512BW-NEXT: vmovdqa64 %zmm1, %zmm2312901; AVX512BW-NEXT: vpermt2w %zmm12, %zmm22, %zmm2312902; AVX512BW-NEXT: vpmovsxbw {{.*#+}} ymm18 = [35,41,47,53,59,1,7,13,19,25,31,0,0,0,0,0]12903; AVX512BW-NEXT: vmovdqa64 %zmm13, %zmm1912904; AVX512BW-NEXT: vpermt2w %zmm10, %zmm18, %zmm1912905; AVX512BW-NEXT: vmovdqu16 %zmm23, %zmm19 {%k2}12906; AVX512BW-NEXT: vmovdqu16 %zmm21, %zmm19 {%k1}12907; AVX512BW-NEXT: vpermi2w %zmm4, %zmm6, %zmm2012908; AVX512BW-NEXT: vpermi2w %zmm5, %zmm0, %zmm2212909; AVX512BW-NEXT: vpermi2w %zmm2, %zmm3, %zmm1812910; AVX512BW-NEXT: vmovdqu16 %zmm22, %zmm18 {%k2}12911; AVX512BW-NEXT: vmovdqu16 %zmm20, %zmm18 {%k1}12912; AVX512BW-NEXT: vpmovsxbw {{.*#+}} ymm20 = [4,10,16,22,28,34,40,46,52,58,0,0,0,0,0,0]12913; AVX512BW-NEXT: vmovdqa64 %zmm10, %zmm2112914; AVX512BW-NEXT: vpermt2w %zmm13, %zmm20, %zmm2112915; AVX512BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm22 = [36,42,48,54,60,0,0,0,0,0,0,6,12,18,24,30,36,42,48,54,60,0,0,0,0,0,0,6,12,18,24,30]12916; AVX512BW-NEXT: # zmm22 = mem[0,1,2,3,0,1,2,3]12917; AVX512BW-NEXT: vmovdqa64 %zmm1, %zmm2312918; AVX512BW-NEXT: vpermt2w %zmm12, %zmm22, %zmm2312919; AVX512BW-NEXT: movw $31, %di12920; AVX512BW-NEXT: kmovd %edi, %k212921; AVX512BW-NEXT: vmovdqa32 %zmm21, %zmm23 {%k2}12922; AVX512BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm21 = [0,0,0,0,0,34,40,46,52,58,0,6,12,18,24,30,0,0,0,0,0,34,40,46,52,58,0,6,12,18,24,30]12923; AVX512BW-NEXT: # zmm21 = mem[0,1,2,3,0,1,2,3]12924; AVX512BW-NEXT: vmovdqa64 %zmm9, %zmm2412925; AVX512BW-NEXT: vpermt2w %zmm11, %zmm21, %zmm2412926; AVX512BW-NEXT: vmovdqu16 %zmm24, %zmm23 {%k1}12927; AVX512BW-NEXT: vpermi2w %zmm6, %zmm4, %zmm2112928; AVX512BW-NEXT: vpermi2w %zmm5, %zmm0, %zmm2212929; AVX512BW-NEXT: vpermi2w %zmm3, %zmm2, %zmm2012930; AVX512BW-NEXT: vmovdqa32 %zmm20, %zmm22 {%k2}12931; AVX512BW-NEXT: vmovdqu16 %zmm21, %zmm22 {%k1}12932; AVX512BW-NEXT: vpmovsxbw {{.*#+}} ymm20 = [5,11,17,23,29,35,41,47,53,59,0,0,0,0,0,0]12933; AVX512BW-NEXT: vpermt2w %zmm13, %zmm20, %zmm1012934; AVX512BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm13 = [37,43,49,55,61,0,0,0,0,0,1,7,13,19,25,31,37,43,49,55,61,0,0,0,0,0,1,7,13,19,25,31]12935; AVX512BW-NEXT: # zmm13 = mem[0,1,2,3,0,1,2,3]12936; AVX512BW-NEXT: vpermt2w %zmm12, %zmm13, %zmm112937; AVX512BW-NEXT: vmovdqa32 %zmm10, %zmm1 {%k2}12938; AVX512BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm10 = [0,0,0,0,0,35,41,47,53,59,1,7,13,19,25,31,0,0,0,0,0,35,41,47,53,59,1,7,13,19,25,31]12939; AVX512BW-NEXT: # zmm10 = mem[0,1,2,3,0,1,2,3]12940; AVX512BW-NEXT: vpermt2w %zmm11, %zmm10, %zmm912941; AVX512BW-NEXT: vmovdqu16 %zmm9, %zmm1 {%k1}12942; AVX512BW-NEXT: vpermt2w %zmm6, %zmm10, %zmm412943; AVX512BW-NEXT: vpermt2w %zmm5, %zmm13, %zmm012944; AVX512BW-NEXT: vpermt2w %zmm3, %zmm20, %zmm212945; AVX512BW-NEXT: vmovdqa32 %zmm2, %zmm0 {%k2}12946; AVX512BW-NEXT: vmovdqu16 %zmm4, %zmm0 {%k1}12947; AVX512BW-NEXT: vmovdqa64 %zmm7, 64(%rsi)12948; AVX512BW-NEXT: vmovdqa64 %zmm8, (%rsi)12949; AVX512BW-NEXT: vmovdqa64 %zmm14, 64(%rdx)12950; AVX512BW-NEXT: vmovdqa64 %zmm15, (%rdx)12951; AVX512BW-NEXT: vmovdqa64 %zmm16, 64(%rcx)12952; AVX512BW-NEXT: vmovdqa64 %zmm17, (%rcx)12953; AVX512BW-NEXT: vmovdqa64 %zmm18, 64(%r8)12954; AVX512BW-NEXT: vmovdqa64 %zmm19, (%r8)12955; AVX512BW-NEXT: vmovdqa64 %zmm22, 64(%r9)12956; AVX512BW-NEXT: vmovdqa64 %zmm23, (%r9)12957; AVX512BW-NEXT: vmovdqa64 %zmm0, 64(%rax)12958; AVX512BW-NEXT: vmovdqa64 %zmm1, (%rax)12959; AVX512BW-NEXT: vzeroupper12960; AVX512BW-NEXT: retq12961;12962; AVX512BW-FCP-LABEL: load_i16_stride6_vf64:12963; AVX512BW-FCP: # %bb.0:12964; AVX512BW-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax12965; AVX512BW-FCP-NEXT: vmovdqa64 448(%rdi), %zmm312966; AVX512BW-FCP-NEXT: vmovdqa64 384(%rdi), %zmm212967; AVX512BW-FCP-NEXT: vmovdqa64 512(%rdi), %zmm012968; AVX512BW-FCP-NEXT: vmovdqa64 576(%rdi), %zmm512969; AVX512BW-FCP-NEXT: vmovdqa64 704(%rdi), %zmm412970; AVX512BW-FCP-NEXT: vmovdqa64 640(%rdi), %zmm612971; AVX512BW-FCP-NEXT: vmovdqa64 (%rdi), %zmm1012972; AVX512BW-FCP-NEXT: vmovdqa64 64(%rdi), %zmm1312973; AVX512BW-FCP-NEXT: vmovdqa64 128(%rdi), %zmm112974; AVX512BW-FCP-NEXT: vmovdqa64 192(%rdi), %zmm1212975; AVX512BW-FCP-NEXT: vmovdqa64 320(%rdi), %zmm912976; AVX512BW-FCP-NEXT: vmovdqa64 256(%rdi), %zmm1112977; AVX512BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm14 = [0,0,0,0,0,0,4,10,16,22,28,34,40,46,52,58,0,0,0,0,0,0,4,10,16,22,28,34,40,46,52,58]12978; AVX512BW-FCP-NEXT: # zmm14 = mem[0,1,2,3,0,1,2,3]12979; AVX512BW-FCP-NEXT: vmovdqa64 %zmm11, %zmm1512980; AVX512BW-FCP-NEXT: vpermt2w %zmm9, %zmm14, %zmm1512981; AVX512BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm16 = [0,6,12,18,24,30,0,0,0,0,0,34,40,46,52,58,0,6,12,18,24,30,0,0,0,0,0,34,40,46,52,58]12982; AVX512BW-FCP-NEXT: # zmm16 = mem[0,1,2,3,0,1,2,3]12983; AVX512BW-FCP-NEXT: vmovdqa64 %zmm12, %zmm1712984; AVX512BW-FCP-NEXT: vpermt2w %zmm1, %zmm16, %zmm1712985; AVX512BW-FCP-NEXT: vpmovsxbw {{.*#+}} ymm7 = [0,6,12,18,24,30,36,42,48,54,60,0,0,0,0,0]12986; AVX512BW-FCP-NEXT: vmovdqa64 %zmm10, %zmm812987; AVX512BW-FCP-NEXT: vpermt2w %zmm13, %zmm7, %zmm812988; AVX512BW-FCP-NEXT: movl $4192256, %edi # imm = 0x3FF80012989; AVX512BW-FCP-NEXT: kmovd %edi, %k112990; AVX512BW-FCP-NEXT: vmovdqu16 %zmm17, %zmm8 {%k1}12991; AVX512BW-FCP-NEXT: movw $-2048, %di # imm = 0xF80012992; AVX512BW-FCP-NEXT: kmovd %edi, %k212993; AVX512BW-FCP-NEXT: vmovdqa32 %zmm15, %zmm8 {%k2}12994; AVX512BW-FCP-NEXT: vpermi2w %zmm4, %zmm6, %zmm1412995; AVX512BW-FCP-NEXT: vpermi2w %zmm0, %zmm5, %zmm1612996; AVX512BW-FCP-NEXT: vpermi2w %zmm3, %zmm2, %zmm712997; AVX512BW-FCP-NEXT: vmovdqu16 %zmm16, %zmm7 {%k1}12998; AVX512BW-FCP-NEXT: vmovdqa32 %zmm14, %zmm7 {%k2}12999; AVX512BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm16 = [0,0,0,0,0,0,5,11,17,23,29,35,41,47,53,59,0,0,0,0,0,0,5,11,17,23,29,35,41,47,53,59]13000; AVX512BW-FCP-NEXT: # zmm16 = mem[0,1,2,3,0,1,2,3]13001; AVX512BW-FCP-NEXT: vmovdqa64 %zmm11, %zmm1713002; AVX512BW-FCP-NEXT: vpermt2w %zmm9, %zmm16, %zmm1713003; AVX512BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm18 = [1,7,13,19,25,31,0,0,0,0,0,35,41,47,53,59,1,7,13,19,25,31,0,0,0,0,0,35,41,47,53,59]13004; AVX512BW-FCP-NEXT: # zmm18 = mem[0,1,2,3,0,1,2,3]13005; AVX512BW-FCP-NEXT: vmovdqa64 %zmm12, %zmm1913006; AVX512BW-FCP-NEXT: vpermt2w %zmm1, %zmm18, %zmm1913007; AVX512BW-FCP-NEXT: vpmovsxbw {{.*#+}} ymm14 = [1,7,13,19,25,31,37,43,49,55,61,0,0,0,0,0]13008; AVX512BW-FCP-NEXT: vmovdqa64 %zmm10, %zmm1513009; AVX512BW-FCP-NEXT: vpermt2w %zmm13, %zmm14, %zmm1513010; AVX512BW-FCP-NEXT: vmovdqu16 %zmm19, %zmm15 {%k1}13011; AVX512BW-FCP-NEXT: vmovdqa32 %zmm17, %zmm15 {%k2}13012; AVX512BW-FCP-NEXT: vpermi2w %zmm4, %zmm6, %zmm1613013; AVX512BW-FCP-NEXT: vpermi2w %zmm0, %zmm5, %zmm1813014; AVX512BW-FCP-NEXT: vpermi2w %zmm3, %zmm2, %zmm1413015; AVX512BW-FCP-NEXT: vmovdqu16 %zmm18, %zmm14 {%k1}13016; AVX512BW-FCP-NEXT: vmovdqa32 %zmm16, %zmm14 {%k2}13017; AVX512BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm18 = [0,0,0,0,0,0,6,12,18,24,30,36,42,48,54,60,0,0,0,0,0,0,6,12,18,24,30,36,42,48,54,60]13018; AVX512BW-FCP-NEXT: # zmm18 = mem[0,1,2,3,0,1,2,3]13019; AVX512BW-FCP-NEXT: vmovdqa64 %zmm11, %zmm1913020; AVX512BW-FCP-NEXT: vpermt2w %zmm9, %zmm18, %zmm1913021; AVX512BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm20 = [34,40,46,52,58,0,0,0,0,0,0,4,10,16,22,28,34,40,46,52,58,0,0,0,0,0,0,4,10,16,22,28]13022; AVX512BW-FCP-NEXT: # zmm20 = mem[0,1,2,3,0,1,2,3]13023; AVX512BW-FCP-NEXT: vmovdqa64 %zmm1, %zmm2113024; AVX512BW-FCP-NEXT: vpermt2w %zmm12, %zmm20, %zmm2113025; AVX512BW-FCP-NEXT: vpmovsxbw {{.*#+}} ymm16 = [34,40,46,52,58,0,6,12,18,24,30,0,0,0,0,0]13026; AVX512BW-FCP-NEXT: vmovdqa64 %zmm13, %zmm1713027; AVX512BW-FCP-NEXT: vpermt2w %zmm10, %zmm16, %zmm1713028; AVX512BW-FCP-NEXT: movl $2095104, %edi # imm = 0x1FF80013029; AVX512BW-FCP-NEXT: kmovd %edi, %k213030; AVX512BW-FCP-NEXT: vmovdqu16 %zmm21, %zmm17 {%k2}13031; AVX512BW-FCP-NEXT: movl $-2097152, %edi # imm = 0xFFE0000013032; AVX512BW-FCP-NEXT: kmovd %edi, %k113033; AVX512BW-FCP-NEXT: vmovdqu16 %zmm19, %zmm17 {%k1}13034; AVX512BW-FCP-NEXT: vpermi2w %zmm4, %zmm6, %zmm1813035; AVX512BW-FCP-NEXT: vpermi2w %zmm5, %zmm0, %zmm2013036; AVX512BW-FCP-NEXT: vpermi2w %zmm2, %zmm3, %zmm1613037; AVX512BW-FCP-NEXT: vmovdqu16 %zmm20, %zmm16 {%k2}13038; AVX512BW-FCP-NEXT: vmovdqu16 %zmm18, %zmm16 {%k1}13039; AVX512BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm20 = [0,0,0,0,0,1,7,13,19,25,31,37,43,49,55,61,0,0,0,0,0,1,7,13,19,25,31,37,43,49,55,61]13040; AVX512BW-FCP-NEXT: # zmm20 = mem[0,1,2,3,0,1,2,3]13041; AVX512BW-FCP-NEXT: vmovdqa64 %zmm11, %zmm2113042; AVX512BW-FCP-NEXT: vpermt2w %zmm9, %zmm20, %zmm2113043; AVX512BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm22 = [35,41,47,53,59,0,0,0,0,0,0,5,11,17,23,29,35,41,47,53,59,0,0,0,0,0,0,5,11,17,23,29]13044; AVX512BW-FCP-NEXT: # zmm22 = mem[0,1,2,3,0,1,2,3]13045; AVX512BW-FCP-NEXT: vmovdqa64 %zmm1, %zmm2313046; AVX512BW-FCP-NEXT: vpermt2w %zmm12, %zmm22, %zmm2313047; AVX512BW-FCP-NEXT: vpmovsxbw {{.*#+}} ymm18 = [35,41,47,53,59,1,7,13,19,25,31,0,0,0,0,0]13048; AVX512BW-FCP-NEXT: vmovdqa64 %zmm13, %zmm1913049; AVX512BW-FCP-NEXT: vpermt2w %zmm10, %zmm18, %zmm1913050; AVX512BW-FCP-NEXT: vmovdqu16 %zmm23, %zmm19 {%k2}13051; AVX512BW-FCP-NEXT: vmovdqu16 %zmm21, %zmm19 {%k1}13052; AVX512BW-FCP-NEXT: vpermi2w %zmm4, %zmm6, %zmm2013053; AVX512BW-FCP-NEXT: vpermi2w %zmm5, %zmm0, %zmm2213054; AVX512BW-FCP-NEXT: vpermi2w %zmm2, %zmm3, %zmm1813055; AVX512BW-FCP-NEXT: vmovdqu16 %zmm22, %zmm18 {%k2}13056; AVX512BW-FCP-NEXT: vmovdqu16 %zmm20, %zmm18 {%k1}13057; AVX512BW-FCP-NEXT: vpmovsxbw {{.*#+}} ymm20 = [4,10,16,22,28,34,40,46,52,58,0,0,0,0,0,0]13058; AVX512BW-FCP-NEXT: vmovdqa64 %zmm10, %zmm2113059; AVX512BW-FCP-NEXT: vpermt2w %zmm13, %zmm20, %zmm2113060; AVX512BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm22 = [36,42,48,54,60,0,0,0,0,0,0,6,12,18,24,30,36,42,48,54,60,0,0,0,0,0,0,6,12,18,24,30]13061; AVX512BW-FCP-NEXT: # zmm22 = mem[0,1,2,3,0,1,2,3]13062; AVX512BW-FCP-NEXT: vmovdqa64 %zmm1, %zmm2313063; AVX512BW-FCP-NEXT: vpermt2w %zmm12, %zmm22, %zmm2313064; AVX512BW-FCP-NEXT: movw $31, %di13065; AVX512BW-FCP-NEXT: kmovd %edi, %k213066; AVX512BW-FCP-NEXT: vmovdqa32 %zmm21, %zmm23 {%k2}13067; AVX512BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm21 = [0,0,0,0,0,34,40,46,52,58,0,6,12,18,24,30,0,0,0,0,0,34,40,46,52,58,0,6,12,18,24,30]13068; AVX512BW-FCP-NEXT: # zmm21 = mem[0,1,2,3,0,1,2,3]13069; AVX512BW-FCP-NEXT: vmovdqa64 %zmm9, %zmm2413070; AVX512BW-FCP-NEXT: vpermt2w %zmm11, %zmm21, %zmm2413071; AVX512BW-FCP-NEXT: vmovdqu16 %zmm24, %zmm23 {%k1}13072; AVX512BW-FCP-NEXT: vpermi2w %zmm6, %zmm4, %zmm2113073; AVX512BW-FCP-NEXT: vpermi2w %zmm5, %zmm0, %zmm2213074; AVX512BW-FCP-NEXT: vpermi2w %zmm3, %zmm2, %zmm2013075; AVX512BW-FCP-NEXT: vmovdqa32 %zmm20, %zmm22 {%k2}13076; AVX512BW-FCP-NEXT: vmovdqu16 %zmm21, %zmm22 {%k1}13077; AVX512BW-FCP-NEXT: vpmovsxbw {{.*#+}} ymm20 = [5,11,17,23,29,35,41,47,53,59,0,0,0,0,0,0]13078; AVX512BW-FCP-NEXT: vpermt2w %zmm13, %zmm20, %zmm1013079; AVX512BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm13 = [37,43,49,55,61,0,0,0,0,0,1,7,13,19,25,31,37,43,49,55,61,0,0,0,0,0,1,7,13,19,25,31]13080; AVX512BW-FCP-NEXT: # zmm13 = mem[0,1,2,3,0,1,2,3]13081; AVX512BW-FCP-NEXT: vpermt2w %zmm12, %zmm13, %zmm113082; AVX512BW-FCP-NEXT: vmovdqa32 %zmm10, %zmm1 {%k2}13083; AVX512BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm10 = [0,0,0,0,0,35,41,47,53,59,1,7,13,19,25,31,0,0,0,0,0,35,41,47,53,59,1,7,13,19,25,31]13084; AVX512BW-FCP-NEXT: # zmm10 = mem[0,1,2,3,0,1,2,3]13085; AVX512BW-FCP-NEXT: vpermt2w %zmm11, %zmm10, %zmm913086; AVX512BW-FCP-NEXT: vmovdqu16 %zmm9, %zmm1 {%k1}13087; AVX512BW-FCP-NEXT: vpermt2w %zmm6, %zmm10, %zmm413088; AVX512BW-FCP-NEXT: vpermt2w %zmm5, %zmm13, %zmm013089; AVX512BW-FCP-NEXT: vpermt2w %zmm3, %zmm20, %zmm213090; AVX512BW-FCP-NEXT: vmovdqa32 %zmm2, %zmm0 {%k2}13091; AVX512BW-FCP-NEXT: vmovdqu16 %zmm4, %zmm0 {%k1}13092; AVX512BW-FCP-NEXT: vmovdqa64 %zmm7, 64(%rsi)13093; AVX512BW-FCP-NEXT: vmovdqa64 %zmm8, (%rsi)13094; AVX512BW-FCP-NEXT: vmovdqa64 %zmm14, 64(%rdx)13095; AVX512BW-FCP-NEXT: vmovdqa64 %zmm15, (%rdx)13096; AVX512BW-FCP-NEXT: vmovdqa64 %zmm16, 64(%rcx)13097; AVX512BW-FCP-NEXT: vmovdqa64 %zmm17, (%rcx)13098; AVX512BW-FCP-NEXT: vmovdqa64 %zmm18, 64(%r8)13099; AVX512BW-FCP-NEXT: vmovdqa64 %zmm19, (%r8)13100; AVX512BW-FCP-NEXT: vmovdqa64 %zmm22, 64(%r9)13101; AVX512BW-FCP-NEXT: vmovdqa64 %zmm23, (%r9)13102; AVX512BW-FCP-NEXT: vmovdqa64 %zmm0, 64(%rax)13103; AVX512BW-FCP-NEXT: vmovdqa64 %zmm1, (%rax)13104; AVX512BW-FCP-NEXT: vzeroupper13105; AVX512BW-FCP-NEXT: retq13106;13107; AVX512DQ-BW-LABEL: load_i16_stride6_vf64:13108; AVX512DQ-BW: # %bb.0:13109; AVX512DQ-BW-NEXT: movq {{[0-9]+}}(%rsp), %rax13110; AVX512DQ-BW-NEXT: vmovdqa64 448(%rdi), %zmm313111; AVX512DQ-BW-NEXT: vmovdqa64 384(%rdi), %zmm213112; AVX512DQ-BW-NEXT: vmovdqa64 512(%rdi), %zmm013113; AVX512DQ-BW-NEXT: vmovdqa64 576(%rdi), %zmm513114; AVX512DQ-BW-NEXT: vmovdqa64 704(%rdi), %zmm413115; AVX512DQ-BW-NEXT: vmovdqa64 640(%rdi), %zmm613116; AVX512DQ-BW-NEXT: vmovdqa64 (%rdi), %zmm1013117; AVX512DQ-BW-NEXT: vmovdqa64 64(%rdi), %zmm1313118; AVX512DQ-BW-NEXT: vmovdqa64 128(%rdi), %zmm113119; AVX512DQ-BW-NEXT: vmovdqa64 192(%rdi), %zmm1213120; AVX512DQ-BW-NEXT: vmovdqa64 320(%rdi), %zmm913121; AVX512DQ-BW-NEXT: vmovdqa64 256(%rdi), %zmm1113122; AVX512DQ-BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm14 = [0,0,0,0,0,0,4,10,16,22,28,34,40,46,52,58,0,0,0,0,0,0,4,10,16,22,28,34,40,46,52,58]13123; AVX512DQ-BW-NEXT: # zmm14 = mem[0,1,2,3,0,1,2,3]13124; AVX512DQ-BW-NEXT: vmovdqa64 %zmm11, %zmm1513125; AVX512DQ-BW-NEXT: vpermt2w %zmm9, %zmm14, %zmm1513126; AVX512DQ-BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm16 = [0,6,12,18,24,30,0,0,0,0,0,34,40,46,52,58,0,6,12,18,24,30,0,0,0,0,0,34,40,46,52,58]13127; AVX512DQ-BW-NEXT: # zmm16 = mem[0,1,2,3,0,1,2,3]13128; AVX512DQ-BW-NEXT: vmovdqa64 %zmm12, %zmm1713129; AVX512DQ-BW-NEXT: vpermt2w %zmm1, %zmm16, %zmm1713130; AVX512DQ-BW-NEXT: vpmovsxbw {{.*#+}} ymm7 = [0,6,12,18,24,30,36,42,48,54,60,0,0,0,0,0]13131; AVX512DQ-BW-NEXT: vmovdqa64 %zmm10, %zmm813132; AVX512DQ-BW-NEXT: vpermt2w %zmm13, %zmm7, %zmm813133; AVX512DQ-BW-NEXT: movl $4192256, %edi # imm = 0x3FF80013134; AVX512DQ-BW-NEXT: kmovd %edi, %k113135; AVX512DQ-BW-NEXT: vmovdqu16 %zmm17, %zmm8 {%k1}13136; AVX512DQ-BW-NEXT: movw $-2048, %di # imm = 0xF80013137; AVX512DQ-BW-NEXT: kmovd %edi, %k213138; AVX512DQ-BW-NEXT: vmovdqa32 %zmm15, %zmm8 {%k2}13139; AVX512DQ-BW-NEXT: vpermi2w %zmm4, %zmm6, %zmm1413140; AVX512DQ-BW-NEXT: vpermi2w %zmm0, %zmm5, %zmm1613141; AVX512DQ-BW-NEXT: vpermi2w %zmm3, %zmm2, %zmm713142; AVX512DQ-BW-NEXT: vmovdqu16 %zmm16, %zmm7 {%k1}13143; AVX512DQ-BW-NEXT: vmovdqa32 %zmm14, %zmm7 {%k2}13144; AVX512DQ-BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm16 = [0,0,0,0,0,0,5,11,17,23,29,35,41,47,53,59,0,0,0,0,0,0,5,11,17,23,29,35,41,47,53,59]13145; AVX512DQ-BW-NEXT: # zmm16 = mem[0,1,2,3,0,1,2,3]13146; AVX512DQ-BW-NEXT: vmovdqa64 %zmm11, %zmm1713147; AVX512DQ-BW-NEXT: vpermt2w %zmm9, %zmm16, %zmm1713148; AVX512DQ-BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm18 = [1,7,13,19,25,31,0,0,0,0,0,35,41,47,53,59,1,7,13,19,25,31,0,0,0,0,0,35,41,47,53,59]13149; AVX512DQ-BW-NEXT: # zmm18 = mem[0,1,2,3,0,1,2,3]13150; AVX512DQ-BW-NEXT: vmovdqa64 %zmm12, %zmm1913151; AVX512DQ-BW-NEXT: vpermt2w %zmm1, %zmm18, %zmm1913152; AVX512DQ-BW-NEXT: vpmovsxbw {{.*#+}} ymm14 = [1,7,13,19,25,31,37,43,49,55,61,0,0,0,0,0]13153; AVX512DQ-BW-NEXT: vmovdqa64 %zmm10, %zmm1513154; AVX512DQ-BW-NEXT: vpermt2w %zmm13, %zmm14, %zmm1513155; AVX512DQ-BW-NEXT: vmovdqu16 %zmm19, %zmm15 {%k1}13156; AVX512DQ-BW-NEXT: vmovdqa32 %zmm17, %zmm15 {%k2}13157; AVX512DQ-BW-NEXT: vpermi2w %zmm4, %zmm6, %zmm1613158; AVX512DQ-BW-NEXT: vpermi2w %zmm0, %zmm5, %zmm1813159; AVX512DQ-BW-NEXT: vpermi2w %zmm3, %zmm2, %zmm1413160; AVX512DQ-BW-NEXT: vmovdqu16 %zmm18, %zmm14 {%k1}13161; AVX512DQ-BW-NEXT: vmovdqa32 %zmm16, %zmm14 {%k2}13162; AVX512DQ-BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm18 = [0,0,0,0,0,0,6,12,18,24,30,36,42,48,54,60,0,0,0,0,0,0,6,12,18,24,30,36,42,48,54,60]13163; AVX512DQ-BW-NEXT: # zmm18 = mem[0,1,2,3,0,1,2,3]13164; AVX512DQ-BW-NEXT: vmovdqa64 %zmm11, %zmm1913165; AVX512DQ-BW-NEXT: vpermt2w %zmm9, %zmm18, %zmm1913166; AVX512DQ-BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm20 = [34,40,46,52,58,0,0,0,0,0,0,4,10,16,22,28,34,40,46,52,58,0,0,0,0,0,0,4,10,16,22,28]13167; AVX512DQ-BW-NEXT: # zmm20 = mem[0,1,2,3,0,1,2,3]13168; AVX512DQ-BW-NEXT: vmovdqa64 %zmm1, %zmm2113169; AVX512DQ-BW-NEXT: vpermt2w %zmm12, %zmm20, %zmm2113170; AVX512DQ-BW-NEXT: vpmovsxbw {{.*#+}} ymm16 = [34,40,46,52,58,0,6,12,18,24,30,0,0,0,0,0]13171; AVX512DQ-BW-NEXT: vmovdqa64 %zmm13, %zmm1713172; AVX512DQ-BW-NEXT: vpermt2w %zmm10, %zmm16, %zmm1713173; AVX512DQ-BW-NEXT: movl $2095104, %edi # imm = 0x1FF80013174; AVX512DQ-BW-NEXT: kmovd %edi, %k213175; AVX512DQ-BW-NEXT: vmovdqu16 %zmm21, %zmm17 {%k2}13176; AVX512DQ-BW-NEXT: movl $-2097152, %edi # imm = 0xFFE0000013177; AVX512DQ-BW-NEXT: kmovd %edi, %k113178; AVX512DQ-BW-NEXT: vmovdqu16 %zmm19, %zmm17 {%k1}13179; AVX512DQ-BW-NEXT: vpermi2w %zmm4, %zmm6, %zmm1813180; AVX512DQ-BW-NEXT: vpermi2w %zmm5, %zmm0, %zmm2013181; AVX512DQ-BW-NEXT: vpermi2w %zmm2, %zmm3, %zmm1613182; AVX512DQ-BW-NEXT: vmovdqu16 %zmm20, %zmm16 {%k2}13183; AVX512DQ-BW-NEXT: vmovdqu16 %zmm18, %zmm16 {%k1}13184; AVX512DQ-BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm20 = [0,0,0,0,0,1,7,13,19,25,31,37,43,49,55,61,0,0,0,0,0,1,7,13,19,25,31,37,43,49,55,61]13185; AVX512DQ-BW-NEXT: # zmm20 = mem[0,1,2,3,0,1,2,3]13186; AVX512DQ-BW-NEXT: vmovdqa64 %zmm11, %zmm2113187; AVX512DQ-BW-NEXT: vpermt2w %zmm9, %zmm20, %zmm2113188; AVX512DQ-BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm22 = [35,41,47,53,59,0,0,0,0,0,0,5,11,17,23,29,35,41,47,53,59,0,0,0,0,0,0,5,11,17,23,29]13189; AVX512DQ-BW-NEXT: # zmm22 = mem[0,1,2,3,0,1,2,3]13190; AVX512DQ-BW-NEXT: vmovdqa64 %zmm1, %zmm2313191; AVX512DQ-BW-NEXT: vpermt2w %zmm12, %zmm22, %zmm2313192; AVX512DQ-BW-NEXT: vpmovsxbw {{.*#+}} ymm18 = [35,41,47,53,59,1,7,13,19,25,31,0,0,0,0,0]13193; AVX512DQ-BW-NEXT: vmovdqa64 %zmm13, %zmm1913194; AVX512DQ-BW-NEXT: vpermt2w %zmm10, %zmm18, %zmm1913195; AVX512DQ-BW-NEXT: vmovdqu16 %zmm23, %zmm19 {%k2}13196; AVX512DQ-BW-NEXT: vmovdqu16 %zmm21, %zmm19 {%k1}13197; AVX512DQ-BW-NEXT: vpermi2w %zmm4, %zmm6, %zmm2013198; AVX512DQ-BW-NEXT: vpermi2w %zmm5, %zmm0, %zmm2213199; AVX512DQ-BW-NEXT: vpermi2w %zmm2, %zmm3, %zmm1813200; AVX512DQ-BW-NEXT: vmovdqu16 %zmm22, %zmm18 {%k2}13201; AVX512DQ-BW-NEXT: vmovdqu16 %zmm20, %zmm18 {%k1}13202; AVX512DQ-BW-NEXT: vpmovsxbw {{.*#+}} ymm20 = [4,10,16,22,28,34,40,46,52,58,0,0,0,0,0,0]13203; AVX512DQ-BW-NEXT: vmovdqa64 %zmm10, %zmm2113204; AVX512DQ-BW-NEXT: vpermt2w %zmm13, %zmm20, %zmm2113205; AVX512DQ-BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm22 = [36,42,48,54,60,0,0,0,0,0,0,6,12,18,24,30,36,42,48,54,60,0,0,0,0,0,0,6,12,18,24,30]13206; AVX512DQ-BW-NEXT: # zmm22 = mem[0,1,2,3,0,1,2,3]13207; AVX512DQ-BW-NEXT: vmovdqa64 %zmm1, %zmm2313208; AVX512DQ-BW-NEXT: vpermt2w %zmm12, %zmm22, %zmm2313209; AVX512DQ-BW-NEXT: movw $31, %di13210; AVX512DQ-BW-NEXT: kmovd %edi, %k213211; AVX512DQ-BW-NEXT: vmovdqa32 %zmm21, %zmm23 {%k2}13212; AVX512DQ-BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm21 = [0,0,0,0,0,34,40,46,52,58,0,6,12,18,24,30,0,0,0,0,0,34,40,46,52,58,0,6,12,18,24,30]13213; AVX512DQ-BW-NEXT: # zmm21 = mem[0,1,2,3,0,1,2,3]13214; AVX512DQ-BW-NEXT: vmovdqa64 %zmm9, %zmm2413215; AVX512DQ-BW-NEXT: vpermt2w %zmm11, %zmm21, %zmm2413216; AVX512DQ-BW-NEXT: vmovdqu16 %zmm24, %zmm23 {%k1}13217; AVX512DQ-BW-NEXT: vpermi2w %zmm6, %zmm4, %zmm2113218; AVX512DQ-BW-NEXT: vpermi2w %zmm5, %zmm0, %zmm2213219; AVX512DQ-BW-NEXT: vpermi2w %zmm3, %zmm2, %zmm2013220; AVX512DQ-BW-NEXT: vmovdqa32 %zmm20, %zmm22 {%k2}13221; AVX512DQ-BW-NEXT: vmovdqu16 %zmm21, %zmm22 {%k1}13222; AVX512DQ-BW-NEXT: vpmovsxbw {{.*#+}} ymm20 = [5,11,17,23,29,35,41,47,53,59,0,0,0,0,0,0]13223; AVX512DQ-BW-NEXT: vpermt2w %zmm13, %zmm20, %zmm1013224; AVX512DQ-BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm13 = [37,43,49,55,61,0,0,0,0,0,1,7,13,19,25,31,37,43,49,55,61,0,0,0,0,0,1,7,13,19,25,31]13225; AVX512DQ-BW-NEXT: # zmm13 = mem[0,1,2,3,0,1,2,3]13226; AVX512DQ-BW-NEXT: vpermt2w %zmm12, %zmm13, %zmm113227; AVX512DQ-BW-NEXT: vmovdqa32 %zmm10, %zmm1 {%k2}13228; AVX512DQ-BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm10 = [0,0,0,0,0,35,41,47,53,59,1,7,13,19,25,31,0,0,0,0,0,35,41,47,53,59,1,7,13,19,25,31]13229; AVX512DQ-BW-NEXT: # zmm10 = mem[0,1,2,3,0,1,2,3]13230; AVX512DQ-BW-NEXT: vpermt2w %zmm11, %zmm10, %zmm913231; AVX512DQ-BW-NEXT: vmovdqu16 %zmm9, %zmm1 {%k1}13232; AVX512DQ-BW-NEXT: vpermt2w %zmm6, %zmm10, %zmm413233; AVX512DQ-BW-NEXT: vpermt2w %zmm5, %zmm13, %zmm013234; AVX512DQ-BW-NEXT: vpermt2w %zmm3, %zmm20, %zmm213235; AVX512DQ-BW-NEXT: vmovdqa32 %zmm2, %zmm0 {%k2}13236; AVX512DQ-BW-NEXT: vmovdqu16 %zmm4, %zmm0 {%k1}13237; AVX512DQ-BW-NEXT: vmovdqa64 %zmm7, 64(%rsi)13238; AVX512DQ-BW-NEXT: vmovdqa64 %zmm8, (%rsi)13239; AVX512DQ-BW-NEXT: vmovdqa64 %zmm14, 64(%rdx)13240; AVX512DQ-BW-NEXT: vmovdqa64 %zmm15, (%rdx)13241; AVX512DQ-BW-NEXT: vmovdqa64 %zmm16, 64(%rcx)13242; AVX512DQ-BW-NEXT: vmovdqa64 %zmm17, (%rcx)13243; AVX512DQ-BW-NEXT: vmovdqa64 %zmm18, 64(%r8)13244; AVX512DQ-BW-NEXT: vmovdqa64 %zmm19, (%r8)13245; AVX512DQ-BW-NEXT: vmovdqa64 %zmm22, 64(%r9)13246; AVX512DQ-BW-NEXT: vmovdqa64 %zmm23, (%r9)13247; AVX512DQ-BW-NEXT: vmovdqa64 %zmm0, 64(%rax)13248; AVX512DQ-BW-NEXT: vmovdqa64 %zmm1, (%rax)13249; AVX512DQ-BW-NEXT: vzeroupper13250; AVX512DQ-BW-NEXT: retq13251;13252; AVX512DQ-BW-FCP-LABEL: load_i16_stride6_vf64:13253; AVX512DQ-BW-FCP: # %bb.0:13254; AVX512DQ-BW-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax13255; AVX512DQ-BW-FCP-NEXT: vmovdqa64 448(%rdi), %zmm313256; AVX512DQ-BW-FCP-NEXT: vmovdqa64 384(%rdi), %zmm213257; AVX512DQ-BW-FCP-NEXT: vmovdqa64 512(%rdi), %zmm013258; AVX512DQ-BW-FCP-NEXT: vmovdqa64 576(%rdi), %zmm513259; AVX512DQ-BW-FCP-NEXT: vmovdqa64 704(%rdi), %zmm413260; AVX512DQ-BW-FCP-NEXT: vmovdqa64 640(%rdi), %zmm613261; AVX512DQ-BW-FCP-NEXT: vmovdqa64 (%rdi), %zmm1013262; AVX512DQ-BW-FCP-NEXT: vmovdqa64 64(%rdi), %zmm1313263; AVX512DQ-BW-FCP-NEXT: vmovdqa64 128(%rdi), %zmm113264; AVX512DQ-BW-FCP-NEXT: vmovdqa64 192(%rdi), %zmm1213265; AVX512DQ-BW-FCP-NEXT: vmovdqa64 320(%rdi), %zmm913266; AVX512DQ-BW-FCP-NEXT: vmovdqa64 256(%rdi), %zmm1113267; AVX512DQ-BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm14 = [0,0,0,0,0,0,4,10,16,22,28,34,40,46,52,58,0,0,0,0,0,0,4,10,16,22,28,34,40,46,52,58]13268; AVX512DQ-BW-FCP-NEXT: # zmm14 = mem[0,1,2,3,0,1,2,3]13269; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm11, %zmm1513270; AVX512DQ-BW-FCP-NEXT: vpermt2w %zmm9, %zmm14, %zmm1513271; AVX512DQ-BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm16 = [0,6,12,18,24,30,0,0,0,0,0,34,40,46,52,58,0,6,12,18,24,30,0,0,0,0,0,34,40,46,52,58]13272; AVX512DQ-BW-FCP-NEXT: # zmm16 = mem[0,1,2,3,0,1,2,3]13273; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm12, %zmm1713274; AVX512DQ-BW-FCP-NEXT: vpermt2w %zmm1, %zmm16, %zmm1713275; AVX512DQ-BW-FCP-NEXT: vpmovsxbw {{.*#+}} ymm7 = [0,6,12,18,24,30,36,42,48,54,60,0,0,0,0,0]13276; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm10, %zmm813277; AVX512DQ-BW-FCP-NEXT: vpermt2w %zmm13, %zmm7, %zmm813278; AVX512DQ-BW-FCP-NEXT: movl $4192256, %edi # imm = 0x3FF80013279; AVX512DQ-BW-FCP-NEXT: kmovd %edi, %k113280; AVX512DQ-BW-FCP-NEXT: vmovdqu16 %zmm17, %zmm8 {%k1}13281; AVX512DQ-BW-FCP-NEXT: movw $-2048, %di # imm = 0xF80013282; AVX512DQ-BW-FCP-NEXT: kmovd %edi, %k213283; AVX512DQ-BW-FCP-NEXT: vmovdqa32 %zmm15, %zmm8 {%k2}13284; AVX512DQ-BW-FCP-NEXT: vpermi2w %zmm4, %zmm6, %zmm1413285; AVX512DQ-BW-FCP-NEXT: vpermi2w %zmm0, %zmm5, %zmm1613286; AVX512DQ-BW-FCP-NEXT: vpermi2w %zmm3, %zmm2, %zmm713287; AVX512DQ-BW-FCP-NEXT: vmovdqu16 %zmm16, %zmm7 {%k1}13288; AVX512DQ-BW-FCP-NEXT: vmovdqa32 %zmm14, %zmm7 {%k2}13289; AVX512DQ-BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm16 = [0,0,0,0,0,0,5,11,17,23,29,35,41,47,53,59,0,0,0,0,0,0,5,11,17,23,29,35,41,47,53,59]13290; AVX512DQ-BW-FCP-NEXT: # zmm16 = mem[0,1,2,3,0,1,2,3]13291; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm11, %zmm1713292; AVX512DQ-BW-FCP-NEXT: vpermt2w %zmm9, %zmm16, %zmm1713293; AVX512DQ-BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm18 = [1,7,13,19,25,31,0,0,0,0,0,35,41,47,53,59,1,7,13,19,25,31,0,0,0,0,0,35,41,47,53,59]13294; AVX512DQ-BW-FCP-NEXT: # zmm18 = mem[0,1,2,3,0,1,2,3]13295; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm12, %zmm1913296; AVX512DQ-BW-FCP-NEXT: vpermt2w %zmm1, %zmm18, %zmm1913297; AVX512DQ-BW-FCP-NEXT: vpmovsxbw {{.*#+}} ymm14 = [1,7,13,19,25,31,37,43,49,55,61,0,0,0,0,0]13298; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm10, %zmm1513299; AVX512DQ-BW-FCP-NEXT: vpermt2w %zmm13, %zmm14, %zmm1513300; AVX512DQ-BW-FCP-NEXT: vmovdqu16 %zmm19, %zmm15 {%k1}13301; AVX512DQ-BW-FCP-NEXT: vmovdqa32 %zmm17, %zmm15 {%k2}13302; AVX512DQ-BW-FCP-NEXT: vpermi2w %zmm4, %zmm6, %zmm1613303; AVX512DQ-BW-FCP-NEXT: vpermi2w %zmm0, %zmm5, %zmm1813304; AVX512DQ-BW-FCP-NEXT: vpermi2w %zmm3, %zmm2, %zmm1413305; AVX512DQ-BW-FCP-NEXT: vmovdqu16 %zmm18, %zmm14 {%k1}13306; AVX512DQ-BW-FCP-NEXT: vmovdqa32 %zmm16, %zmm14 {%k2}13307; AVX512DQ-BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm18 = [0,0,0,0,0,0,6,12,18,24,30,36,42,48,54,60,0,0,0,0,0,0,6,12,18,24,30,36,42,48,54,60]13308; AVX512DQ-BW-FCP-NEXT: # zmm18 = mem[0,1,2,3,0,1,2,3]13309; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm11, %zmm1913310; AVX512DQ-BW-FCP-NEXT: vpermt2w %zmm9, %zmm18, %zmm1913311; AVX512DQ-BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm20 = [34,40,46,52,58,0,0,0,0,0,0,4,10,16,22,28,34,40,46,52,58,0,0,0,0,0,0,4,10,16,22,28]13312; AVX512DQ-BW-FCP-NEXT: # zmm20 = mem[0,1,2,3,0,1,2,3]13313; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm1, %zmm2113314; AVX512DQ-BW-FCP-NEXT: vpermt2w %zmm12, %zmm20, %zmm2113315; AVX512DQ-BW-FCP-NEXT: vpmovsxbw {{.*#+}} ymm16 = [34,40,46,52,58,0,6,12,18,24,30,0,0,0,0,0]13316; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm13, %zmm1713317; AVX512DQ-BW-FCP-NEXT: vpermt2w %zmm10, %zmm16, %zmm1713318; AVX512DQ-BW-FCP-NEXT: movl $2095104, %edi # imm = 0x1FF80013319; AVX512DQ-BW-FCP-NEXT: kmovd %edi, %k213320; AVX512DQ-BW-FCP-NEXT: vmovdqu16 %zmm21, %zmm17 {%k2}13321; AVX512DQ-BW-FCP-NEXT: movl $-2097152, %edi # imm = 0xFFE0000013322; AVX512DQ-BW-FCP-NEXT: kmovd %edi, %k113323; AVX512DQ-BW-FCP-NEXT: vmovdqu16 %zmm19, %zmm17 {%k1}13324; AVX512DQ-BW-FCP-NEXT: vpermi2w %zmm4, %zmm6, %zmm1813325; AVX512DQ-BW-FCP-NEXT: vpermi2w %zmm5, %zmm0, %zmm2013326; AVX512DQ-BW-FCP-NEXT: vpermi2w %zmm2, %zmm3, %zmm1613327; AVX512DQ-BW-FCP-NEXT: vmovdqu16 %zmm20, %zmm16 {%k2}13328; AVX512DQ-BW-FCP-NEXT: vmovdqu16 %zmm18, %zmm16 {%k1}13329; AVX512DQ-BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm20 = [0,0,0,0,0,1,7,13,19,25,31,37,43,49,55,61,0,0,0,0,0,1,7,13,19,25,31,37,43,49,55,61]13330; AVX512DQ-BW-FCP-NEXT: # zmm20 = mem[0,1,2,3,0,1,2,3]13331; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm11, %zmm2113332; AVX512DQ-BW-FCP-NEXT: vpermt2w %zmm9, %zmm20, %zmm2113333; AVX512DQ-BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm22 = [35,41,47,53,59,0,0,0,0,0,0,5,11,17,23,29,35,41,47,53,59,0,0,0,0,0,0,5,11,17,23,29]13334; AVX512DQ-BW-FCP-NEXT: # zmm22 = mem[0,1,2,3,0,1,2,3]13335; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm1, %zmm2313336; AVX512DQ-BW-FCP-NEXT: vpermt2w %zmm12, %zmm22, %zmm2313337; AVX512DQ-BW-FCP-NEXT: vpmovsxbw {{.*#+}} ymm18 = [35,41,47,53,59,1,7,13,19,25,31,0,0,0,0,0]13338; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm13, %zmm1913339; AVX512DQ-BW-FCP-NEXT: vpermt2w %zmm10, %zmm18, %zmm1913340; AVX512DQ-BW-FCP-NEXT: vmovdqu16 %zmm23, %zmm19 {%k2}13341; AVX512DQ-BW-FCP-NEXT: vmovdqu16 %zmm21, %zmm19 {%k1}13342; AVX512DQ-BW-FCP-NEXT: vpermi2w %zmm4, %zmm6, %zmm2013343; AVX512DQ-BW-FCP-NEXT: vpermi2w %zmm5, %zmm0, %zmm2213344; AVX512DQ-BW-FCP-NEXT: vpermi2w %zmm2, %zmm3, %zmm1813345; AVX512DQ-BW-FCP-NEXT: vmovdqu16 %zmm22, %zmm18 {%k2}13346; AVX512DQ-BW-FCP-NEXT: vmovdqu16 %zmm20, %zmm18 {%k1}13347; AVX512DQ-BW-FCP-NEXT: vpmovsxbw {{.*#+}} ymm20 = [4,10,16,22,28,34,40,46,52,58,0,0,0,0,0,0]13348; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm10, %zmm2113349; AVX512DQ-BW-FCP-NEXT: vpermt2w %zmm13, %zmm20, %zmm2113350; AVX512DQ-BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm22 = [36,42,48,54,60,0,0,0,0,0,0,6,12,18,24,30,36,42,48,54,60,0,0,0,0,0,0,6,12,18,24,30]13351; AVX512DQ-BW-FCP-NEXT: # zmm22 = mem[0,1,2,3,0,1,2,3]13352; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm1, %zmm2313353; AVX512DQ-BW-FCP-NEXT: vpermt2w %zmm12, %zmm22, %zmm2313354; AVX512DQ-BW-FCP-NEXT: movw $31, %di13355; AVX512DQ-BW-FCP-NEXT: kmovd %edi, %k213356; AVX512DQ-BW-FCP-NEXT: vmovdqa32 %zmm21, %zmm23 {%k2}13357; AVX512DQ-BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm21 = [0,0,0,0,0,34,40,46,52,58,0,6,12,18,24,30,0,0,0,0,0,34,40,46,52,58,0,6,12,18,24,30]13358; AVX512DQ-BW-FCP-NEXT: # zmm21 = mem[0,1,2,3,0,1,2,3]13359; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm9, %zmm2413360; AVX512DQ-BW-FCP-NEXT: vpermt2w %zmm11, %zmm21, %zmm2413361; AVX512DQ-BW-FCP-NEXT: vmovdqu16 %zmm24, %zmm23 {%k1}13362; AVX512DQ-BW-FCP-NEXT: vpermi2w %zmm6, %zmm4, %zmm2113363; AVX512DQ-BW-FCP-NEXT: vpermi2w %zmm5, %zmm0, %zmm2213364; AVX512DQ-BW-FCP-NEXT: vpermi2w %zmm3, %zmm2, %zmm2013365; AVX512DQ-BW-FCP-NEXT: vmovdqa32 %zmm20, %zmm22 {%k2}13366; AVX512DQ-BW-FCP-NEXT: vmovdqu16 %zmm21, %zmm22 {%k1}13367; AVX512DQ-BW-FCP-NEXT: vpmovsxbw {{.*#+}} ymm20 = [5,11,17,23,29,35,41,47,53,59,0,0,0,0,0,0]13368; AVX512DQ-BW-FCP-NEXT: vpermt2w %zmm13, %zmm20, %zmm1013369; AVX512DQ-BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm13 = [37,43,49,55,61,0,0,0,0,0,1,7,13,19,25,31,37,43,49,55,61,0,0,0,0,0,1,7,13,19,25,31]13370; AVX512DQ-BW-FCP-NEXT: # zmm13 = mem[0,1,2,3,0,1,2,3]13371; AVX512DQ-BW-FCP-NEXT: vpermt2w %zmm12, %zmm13, %zmm113372; AVX512DQ-BW-FCP-NEXT: vmovdqa32 %zmm10, %zmm1 {%k2}13373; AVX512DQ-BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm10 = [0,0,0,0,0,35,41,47,53,59,1,7,13,19,25,31,0,0,0,0,0,35,41,47,53,59,1,7,13,19,25,31]13374; AVX512DQ-BW-FCP-NEXT: # zmm10 = mem[0,1,2,3,0,1,2,3]13375; AVX512DQ-BW-FCP-NEXT: vpermt2w %zmm11, %zmm10, %zmm913376; AVX512DQ-BW-FCP-NEXT: vmovdqu16 %zmm9, %zmm1 {%k1}13377; AVX512DQ-BW-FCP-NEXT: vpermt2w %zmm6, %zmm10, %zmm413378; AVX512DQ-BW-FCP-NEXT: vpermt2w %zmm5, %zmm13, %zmm013379; AVX512DQ-BW-FCP-NEXT: vpermt2w %zmm3, %zmm20, %zmm213380; AVX512DQ-BW-FCP-NEXT: vmovdqa32 %zmm2, %zmm0 {%k2}13381; AVX512DQ-BW-FCP-NEXT: vmovdqu16 %zmm4, %zmm0 {%k1}13382; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm7, 64(%rsi)13383; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm8, (%rsi)13384; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm14, 64(%rdx)13385; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm15, (%rdx)13386; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm16, 64(%rcx)13387; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm17, (%rcx)13388; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm18, 64(%r8)13389; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm19, (%r8)13390; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm22, 64(%r9)13391; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm23, (%r9)13392; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm0, 64(%rax)13393; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm1, (%rax)13394; AVX512DQ-BW-FCP-NEXT: vzeroupper13395; AVX512DQ-BW-FCP-NEXT: retq13396 %wide.vec = load <384 x i16>, ptr %in.vec, align 6413397 %strided.vec0 = shufflevector <384 x i16> %wide.vec, <384 x i16> 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>13398 %strided.vec1 = shufflevector <384 x i16> %wide.vec, <384 x i16> 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>13399 %strided.vec2 = shufflevector <384 x i16> %wide.vec, <384 x i16> 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>13400 %strided.vec3 = shufflevector <384 x i16> %wide.vec, <384 x i16> 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>13401 %strided.vec4 = shufflevector <384 x i16> %wide.vec, <384 x i16> 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>13402 %strided.vec5 = shufflevector <384 x i16> %wide.vec, <384 x i16> 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>13403 store <64 x i16> %strided.vec0, ptr %out.vec0, align 6413404 store <64 x i16> %strided.vec1, ptr %out.vec1, align 6413405 store <64 x i16> %strided.vec2, ptr %out.vec2, align 6413406 store <64 x i16> %strided.vec3, ptr %out.vec3, align 6413407 store <64 x i16> %strided.vec4, ptr %out.vec4, align 6413408 store <64 x i16> %strided.vec5, ptr %out.vec5, align 6413409 ret void13410}13411