15154 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_stride7_vf2(ptr %in.vec, ptr %out.vec0, ptr %out.vec1, ptr %out.vec2, ptr %out.vec3, ptr %out.vec4, ptr %out.vec5, ptr %out.vec6) nounwind {19; SSE-LABEL: load_i16_stride7_vf2:20; SSE: # %bb.0:21; SSE-NEXT: movq {{[0-9]+}}(%rsp), %rax22; SSE-NEXT: movq {{[0-9]+}}(%rsp), %r1023; SSE-NEXT: movdqa (%rdi), %xmm024; SSE-NEXT: movdqa 16(%rdi), %xmm125; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm0[0,3,2,3]26; SSE-NEXT: pshuflw {{.*#+}} xmm2 = xmm2[0,3,2,3,4,5,6,7]27; SSE-NEXT: movdqa %xmm0, %xmm328; SSE-NEXT: psrld $16, %xmm329; SSE-NEXT: movdqa %xmm3, %xmm430; SSE-NEXT: punpcklwd {{.*#+}} xmm4 = xmm4[0],xmm1[0],xmm4[1],xmm1[1],xmm4[2],xmm1[2],xmm4[3],xmm1[3]31; SSE-NEXT: movdqa %xmm0, %xmm532; SSE-NEXT: punpcklwd {{.*#+}} xmm5 = xmm5[0],xmm1[0],xmm5[1],xmm1[1],xmm5[2],xmm1[2],xmm5[3],xmm1[3]33; SSE-NEXT: pshufd {{.*#+}} xmm6 = xmm5[2,1,2,3]34; SSE-NEXT: pshuflw {{.*#+}} xmm6 = xmm6[0,3,2,3,4,5,6,7]35; SSE-NEXT: pshufhw {{.*#+}} xmm5 = xmm5[0,1,2,3,6,5,6,7]36; SSE-NEXT: pshufd {{.*#+}} xmm5 = xmm5[2,2,2,2]37; SSE-NEXT: pshufd {{.*#+}} xmm7 = xmm0[2,3,2,3]38; SSE-NEXT: punpckhwd {{.*#+}} xmm3 = xmm3[4],xmm1[4],xmm3[5],xmm1[5],xmm3[6],xmm1[6],xmm3[7],xmm1[7]39; SSE-NEXT: punpckhwd {{.*#+}} xmm0 = xmm0[4],xmm1[4],xmm0[5],xmm1[5],xmm0[6],xmm1[6],xmm0[7],xmm1[7]40; SSE-NEXT: psrlq $48, %xmm141; SSE-NEXT: punpcklwd {{.*#+}} xmm7 = xmm7[0],xmm1[0],xmm7[1],xmm1[1],xmm7[2],xmm1[2],xmm7[3],xmm1[3]42; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[2,1,2,3]43; SSE-NEXT: pshuflw {{.*#+}} xmm0 = xmm0[0,3,2,3,4,5,6,7]44; SSE-NEXT: movd %xmm2, (%rsi)45; SSE-NEXT: movd %xmm4, (%rdx)46; SSE-NEXT: movd %xmm6, (%rcx)47; SSE-NEXT: movd %xmm5, (%r8)48; SSE-NEXT: movd %xmm7, (%r9)49; SSE-NEXT: movd %xmm3, (%r10)50; SSE-NEXT: movd %xmm0, (%rax)51; SSE-NEXT: retq52;53; AVX-LABEL: load_i16_stride7_vf2:54; AVX: # %bb.0:55; AVX-NEXT: movq {{[0-9]+}}(%rsp), %rax56; AVX-NEXT: movq {{[0-9]+}}(%rsp), %r1057; AVX-NEXT: vmovdqa (%rdi), %xmm058; AVX-NEXT: vmovdqa 16(%rdi), %xmm159; AVX-NEXT: vpshufd {{.*#+}} xmm2 = xmm0[0,3,2,3]60; AVX-NEXT: vpshuflw {{.*#+}} xmm2 = xmm2[0,3,2,3,4,5,6,7]61; AVX-NEXT: vpsrld $16, %xmm0, %xmm362; AVX-NEXT: vpunpcklwd {{.*#+}} xmm4 = xmm3[0],xmm1[0],xmm3[1],xmm1[1],xmm3[2],xmm1[2],xmm3[3],xmm1[3]63; AVX-NEXT: vpunpcklwd {{.*#+}} xmm5 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3]64; AVX-NEXT: vpshufd {{.*#+}} xmm6 = xmm5[2,1,2,3]65; AVX-NEXT: vpshuflw {{.*#+}} xmm6 = xmm6[0,3,2,3,4,5,6,7]66; AVX-NEXT: vpshufhw {{.*#+}} xmm5 = xmm5[0,1,2,3,6,5,6,7]67; AVX-NEXT: vpsrlq $48, %xmm1, %xmm768; AVX-NEXT: vpshufd {{.*#+}} xmm8 = xmm0[2,3,2,3]69; AVX-NEXT: vpunpcklwd {{.*#+}} xmm7 = xmm8[0],xmm7[0],xmm8[1],xmm7[1],xmm8[2],xmm7[2],xmm8[3],xmm7[3]70; AVX-NEXT: vpunpckhwd {{.*#+}} xmm3 = xmm3[4],xmm1[4],xmm3[5],xmm1[5],xmm3[6],xmm1[6],xmm3[7],xmm1[7]71; AVX-NEXT: vpunpckhwd {{.*#+}} xmm0 = xmm0[4],xmm1[4],xmm0[5],xmm1[5],xmm0[6],xmm1[6],xmm0[7],xmm1[7]72; AVX-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[2,1,2,3]73; AVX-NEXT: vpshuflw {{.*#+}} xmm0 = xmm0[0,3,2,3,4,5,6,7]74; AVX-NEXT: vmovd %xmm2, (%rsi)75; AVX-NEXT: vmovd %xmm4, (%rdx)76; AVX-NEXT: vmovd %xmm6, (%rcx)77; AVX-NEXT: vpextrd $2, %xmm5, (%r8)78; AVX-NEXT: vmovd %xmm7, (%r9)79; AVX-NEXT: vmovd %xmm3, (%r10)80; AVX-NEXT: vmovd %xmm0, (%rax)81; AVX-NEXT: retq82;83; AVX2-LABEL: load_i16_stride7_vf2:84; AVX2: # %bb.0:85; AVX2-NEXT: movq {{[0-9]+}}(%rsp), %rax86; AVX2-NEXT: movq {{[0-9]+}}(%rsp), %r1087; AVX2-NEXT: vmovdqa (%rdi), %xmm088; AVX2-NEXT: vmovdqa 16(%rdi), %xmm189; AVX2-NEXT: vpshufd {{.*#+}} xmm2 = xmm0[0,3,2,3]90; AVX2-NEXT: vpshuflw {{.*#+}} xmm2 = xmm2[0,3,2,3,4,5,6,7]91; AVX2-NEXT: vpsrld $16, %xmm0, %xmm392; AVX2-NEXT: vpunpcklwd {{.*#+}} xmm4 = xmm3[0],xmm1[0],xmm3[1],xmm1[1],xmm3[2],xmm1[2],xmm3[3],xmm1[3]93; AVX2-NEXT: vpunpcklwd {{.*#+}} xmm5 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3]94; AVX2-NEXT: vpshufd {{.*#+}} xmm6 = xmm5[2,1,2,3]95; AVX2-NEXT: vpshuflw {{.*#+}} xmm6 = xmm6[0,3,2,3,4,5,6,7]96; AVX2-NEXT: vpshufhw {{.*#+}} xmm5 = xmm5[0,1,2,3,6,5,6,7]97; AVX2-NEXT: vpbroadcastw 8(%rdi), %xmm798; AVX2-NEXT: vpsrlq $48, %xmm1, %xmm899; AVX2-NEXT: vpunpcklwd {{.*#+}} xmm7 = xmm7[0],xmm8[0],xmm7[1],xmm8[1],xmm7[2],xmm8[2],xmm7[3],xmm8[3]100; AVX2-NEXT: vpunpckhwd {{.*#+}} xmm3 = xmm3[4],xmm1[4],xmm3[5],xmm1[5],xmm3[6],xmm1[6],xmm3[7],xmm1[7]101; AVX2-NEXT: vpunpckhwd {{.*#+}} xmm0 = xmm0[4],xmm1[4],xmm0[5],xmm1[5],xmm0[6],xmm1[6],xmm0[7],xmm1[7]102; AVX2-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[2,1,2,3]103; AVX2-NEXT: vpshuflw {{.*#+}} xmm0 = xmm0[0,3,2,3,4,5,6,7]104; AVX2-NEXT: vmovd %xmm2, (%rsi)105; AVX2-NEXT: vmovd %xmm4, (%rdx)106; AVX2-NEXT: vmovd %xmm6, (%rcx)107; AVX2-NEXT: vpextrd $2, %xmm5, (%r8)108; AVX2-NEXT: vmovd %xmm7, (%r9)109; AVX2-NEXT: vmovd %xmm3, (%r10)110; AVX2-NEXT: vmovd %xmm0, (%rax)111; AVX2-NEXT: retq112;113; AVX2-FP-LABEL: load_i16_stride7_vf2:114; AVX2-FP: # %bb.0:115; AVX2-FP-NEXT: movq {{[0-9]+}}(%rsp), %rax116; AVX2-FP-NEXT: movq {{[0-9]+}}(%rsp), %r10117; AVX2-FP-NEXT: vmovdqa (%rdi), %xmm0118; AVX2-FP-NEXT: vmovdqa 16(%rdi), %xmm1119; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm2 = xmm0[0,1,14,15,u,u,u,u,u,u,u,u,u,u,u,u]120; AVX2-FP-NEXT: vpsrld $16, %xmm0, %xmm3121; AVX2-FP-NEXT: vpunpcklwd {{.*#+}} xmm4 = xmm3[0],xmm1[0],xmm3[1],xmm1[1],xmm3[2],xmm1[2],xmm3[3],xmm1[3]122; AVX2-FP-NEXT: vpunpcklwd {{.*#+}} xmm5 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3]123; AVX2-FP-NEXT: vmovdqa {{.*#+}} xmm6 = [8,9,6,7,4,5,6,7,8,9,10,11,12,13,14,15]124; AVX2-FP-NEXT: vpshufb %xmm6, %xmm5, %xmm7125; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm5 = xmm5[12,13,10,11,u,u,u,u,u,u,u,u,u,u,u,u]126; AVX2-FP-NEXT: vpbroadcastw 8(%rdi), %xmm8127; AVX2-FP-NEXT: vpsrlq $48, %xmm1, %xmm9128; AVX2-FP-NEXT: vpunpcklwd {{.*#+}} xmm8 = xmm8[0],xmm9[0],xmm8[1],xmm9[1],xmm8[2],xmm9[2],xmm8[3],xmm9[3]129; AVX2-FP-NEXT: vpunpckhwd {{.*#+}} xmm3 = xmm3[4],xmm1[4],xmm3[5],xmm1[5],xmm3[6],xmm1[6],xmm3[7],xmm1[7]130; AVX2-FP-NEXT: vpunpckhwd {{.*#+}} xmm0 = xmm0[4],xmm1[4],xmm0[5],xmm1[5],xmm0[6],xmm1[6],xmm0[7],xmm1[7]131; AVX2-FP-NEXT: vpshufb %xmm6, %xmm0, %xmm0132; AVX2-FP-NEXT: vmovd %xmm2, (%rsi)133; AVX2-FP-NEXT: vmovd %xmm4, (%rdx)134; AVX2-FP-NEXT: vmovd %xmm7, (%rcx)135; AVX2-FP-NEXT: vmovd %xmm5, (%r8)136; AVX2-FP-NEXT: vmovd %xmm8, (%r9)137; AVX2-FP-NEXT: vmovd %xmm3, (%r10)138; AVX2-FP-NEXT: vmovd %xmm0, (%rax)139; AVX2-FP-NEXT: retq140;141; AVX2-FCP-LABEL: load_i16_stride7_vf2:142; AVX2-FCP: # %bb.0:143; AVX2-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax144; AVX2-FCP-NEXT: movq {{[0-9]+}}(%rsp), %r10145; AVX2-FCP-NEXT: vmovdqa (%rdi), %xmm0146; AVX2-FCP-NEXT: vmovdqa 16(%rdi), %xmm1147; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm2 = xmm0[0,1,14,15,u,u,u,u,u,u,u,u,u,u,u,u]148; AVX2-FCP-NEXT: vpsrld $16, %xmm0, %xmm3149; AVX2-FCP-NEXT: vpunpcklwd {{.*#+}} xmm4 = xmm3[0],xmm1[0],xmm3[1],xmm1[1],xmm3[2],xmm1[2],xmm3[3],xmm1[3]150; AVX2-FCP-NEXT: vpunpcklwd {{.*#+}} xmm5 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3]151; AVX2-FCP-NEXT: vmovdqa {{.*#+}} xmm6 = [8,9,6,7,4,5,6,7,8,9,10,11,12,13,14,15]152; AVX2-FCP-NEXT: vpshufb %xmm6, %xmm5, %xmm7153; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm5 = xmm5[12,13,10,11,u,u,u,u,u,u,u,u,u,u,u,u]154; AVX2-FCP-NEXT: vpbroadcastw 8(%rdi), %xmm8155; AVX2-FCP-NEXT: vpsrlq $48, %xmm1, %xmm9156; AVX2-FCP-NEXT: vpunpcklwd {{.*#+}} xmm8 = xmm8[0],xmm9[0],xmm8[1],xmm9[1],xmm8[2],xmm9[2],xmm8[3],xmm9[3]157; AVX2-FCP-NEXT: vpunpckhwd {{.*#+}} xmm3 = xmm3[4],xmm1[4],xmm3[5],xmm1[5],xmm3[6],xmm1[6],xmm3[7],xmm1[7]158; AVX2-FCP-NEXT: vpunpckhwd {{.*#+}} xmm0 = xmm0[4],xmm1[4],xmm0[5],xmm1[5],xmm0[6],xmm1[6],xmm0[7],xmm1[7]159; AVX2-FCP-NEXT: vpshufb %xmm6, %xmm0, %xmm0160; AVX2-FCP-NEXT: vmovd %xmm2, (%rsi)161; AVX2-FCP-NEXT: vmovd %xmm4, (%rdx)162; AVX2-FCP-NEXT: vmovd %xmm7, (%rcx)163; AVX2-FCP-NEXT: vmovd %xmm5, (%r8)164; AVX2-FCP-NEXT: vmovd %xmm8, (%r9)165; AVX2-FCP-NEXT: vmovd %xmm3, (%r10)166; AVX2-FCP-NEXT: vmovd %xmm0, (%rax)167; AVX2-FCP-NEXT: retq168;169; AVX512-LABEL: load_i16_stride7_vf2:170; AVX512: # %bb.0:171; AVX512-NEXT: movq {{[0-9]+}}(%rsp), %rax172; AVX512-NEXT: movq {{[0-9]+}}(%rsp), %r10173; AVX512-NEXT: vmovdqa (%rdi), %xmm0174; AVX512-NEXT: vmovdqa 16(%rdi), %xmm1175; AVX512-NEXT: vpshufd {{.*#+}} xmm2 = xmm0[0,3,2,3]176; AVX512-NEXT: vpshuflw {{.*#+}} xmm2 = xmm2[0,3,2,3,4,5,6,7]177; AVX512-NEXT: vpsrld $16, %xmm0, %xmm3178; AVX512-NEXT: vpunpcklwd {{.*#+}} xmm4 = xmm3[0],xmm1[0],xmm3[1],xmm1[1],xmm3[2],xmm1[2],xmm3[3],xmm1[3]179; AVX512-NEXT: vpunpcklwd {{.*#+}} xmm5 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3]180; AVX512-NEXT: vpshufd {{.*#+}} xmm6 = xmm5[2,1,2,3]181; AVX512-NEXT: vpshuflw {{.*#+}} xmm6 = xmm6[0,3,2,3,4,5,6,7]182; AVX512-NEXT: vpshufhw {{.*#+}} xmm5 = xmm5[0,1,2,3,6,5,6,7]183; AVX512-NEXT: vpbroadcastw 8(%rdi), %xmm7184; AVX512-NEXT: vpsrlq $48, %xmm1, %xmm8185; AVX512-NEXT: vpunpcklwd {{.*#+}} xmm7 = xmm7[0],xmm8[0],xmm7[1],xmm8[1],xmm7[2],xmm8[2],xmm7[3],xmm8[3]186; AVX512-NEXT: vpunpckhwd {{.*#+}} xmm3 = xmm3[4],xmm1[4],xmm3[5],xmm1[5],xmm3[6],xmm1[6],xmm3[7],xmm1[7]187; AVX512-NEXT: vpunpckhwd {{.*#+}} xmm0 = xmm0[4],xmm1[4],xmm0[5],xmm1[5],xmm0[6],xmm1[6],xmm0[7],xmm1[7]188; AVX512-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[2,1,2,3]189; AVX512-NEXT: vpshuflw {{.*#+}} xmm0 = xmm0[0,3,2,3,4,5,6,7]190; AVX512-NEXT: vmovd %xmm2, (%rsi)191; AVX512-NEXT: vmovd %xmm4, (%rdx)192; AVX512-NEXT: vmovd %xmm6, (%rcx)193; AVX512-NEXT: vpextrd $2, %xmm5, (%r8)194; AVX512-NEXT: vmovd %xmm7, (%r9)195; AVX512-NEXT: vmovd %xmm3, (%r10)196; AVX512-NEXT: vmovd %xmm0, (%rax)197; AVX512-NEXT: retq198;199; AVX512-FCP-LABEL: load_i16_stride7_vf2:200; AVX512-FCP: # %bb.0:201; AVX512-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax202; AVX512-FCP-NEXT: movq {{[0-9]+}}(%rsp), %r10203; AVX512-FCP-NEXT: vmovdqa (%rdi), %xmm0204; AVX512-FCP-NEXT: vmovdqa 16(%rdi), %xmm1205; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm2 = xmm0[0,1,14,15,u,u,u,u,u,u,u,u,u,u,u,u]206; AVX512-FCP-NEXT: vpsrld $16, %xmm0, %xmm3207; AVX512-FCP-NEXT: vpunpcklwd {{.*#+}} xmm4 = xmm3[0],xmm1[0],xmm3[1],xmm1[1],xmm3[2],xmm1[2],xmm3[3],xmm1[3]208; AVX512-FCP-NEXT: vpunpcklwd {{.*#+}} xmm5 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3]209; AVX512-FCP-NEXT: vmovdqa {{.*#+}} xmm6 = [8,9,6,7,4,5,6,7,8,9,10,11,12,13,14,15]210; AVX512-FCP-NEXT: vpshufb %xmm6, %xmm5, %xmm7211; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm5 = xmm5[12,13,10,11,u,u,u,u,u,u,u,u,u,u,u,u]212; AVX512-FCP-NEXT: vpbroadcastw 8(%rdi), %xmm8213; AVX512-FCP-NEXT: vpsrlq $48, %xmm1, %xmm9214; AVX512-FCP-NEXT: vpunpcklwd {{.*#+}} xmm8 = xmm8[0],xmm9[0],xmm8[1],xmm9[1],xmm8[2],xmm9[2],xmm8[3],xmm9[3]215; AVX512-FCP-NEXT: vpunpckhwd {{.*#+}} xmm3 = xmm3[4],xmm1[4],xmm3[5],xmm1[5],xmm3[6],xmm1[6],xmm3[7],xmm1[7]216; AVX512-FCP-NEXT: vpunpckhwd {{.*#+}} xmm0 = xmm0[4],xmm1[4],xmm0[5],xmm1[5],xmm0[6],xmm1[6],xmm0[7],xmm1[7]217; AVX512-FCP-NEXT: vpshufb %xmm6, %xmm0, %xmm0218; AVX512-FCP-NEXT: vmovd %xmm2, (%rsi)219; AVX512-FCP-NEXT: vmovd %xmm4, (%rdx)220; AVX512-FCP-NEXT: vmovd %xmm7, (%rcx)221; AVX512-FCP-NEXT: vmovd %xmm5, (%r8)222; AVX512-FCP-NEXT: vmovd %xmm8, (%r9)223; AVX512-FCP-NEXT: vmovd %xmm3, (%r10)224; AVX512-FCP-NEXT: vmovd %xmm0, (%rax)225; AVX512-FCP-NEXT: retq226;227; AVX512DQ-LABEL: load_i16_stride7_vf2:228; AVX512DQ: # %bb.0:229; AVX512DQ-NEXT: movq {{[0-9]+}}(%rsp), %rax230; AVX512DQ-NEXT: movq {{[0-9]+}}(%rsp), %r10231; AVX512DQ-NEXT: vmovdqa (%rdi), %xmm0232; AVX512DQ-NEXT: vmovdqa 16(%rdi), %xmm1233; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm2 = xmm0[0,3,2,3]234; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm2 = xmm2[0,3,2,3,4,5,6,7]235; AVX512DQ-NEXT: vpsrld $16, %xmm0, %xmm3236; AVX512DQ-NEXT: vpunpcklwd {{.*#+}} xmm4 = xmm3[0],xmm1[0],xmm3[1],xmm1[1],xmm3[2],xmm1[2],xmm3[3],xmm1[3]237; AVX512DQ-NEXT: vpunpcklwd {{.*#+}} xmm5 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3]238; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm6 = xmm5[2,1,2,3]239; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm6 = xmm6[0,3,2,3,4,5,6,7]240; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm5 = xmm5[0,1,2,3,6,5,6,7]241; AVX512DQ-NEXT: vpbroadcastw 8(%rdi), %xmm7242; AVX512DQ-NEXT: vpsrlq $48, %xmm1, %xmm8243; AVX512DQ-NEXT: vpunpcklwd {{.*#+}} xmm7 = xmm7[0],xmm8[0],xmm7[1],xmm8[1],xmm7[2],xmm8[2],xmm7[3],xmm8[3]244; AVX512DQ-NEXT: vpunpckhwd {{.*#+}} xmm3 = xmm3[4],xmm1[4],xmm3[5],xmm1[5],xmm3[6],xmm1[6],xmm3[7],xmm1[7]245; AVX512DQ-NEXT: vpunpckhwd {{.*#+}} xmm0 = xmm0[4],xmm1[4],xmm0[5],xmm1[5],xmm0[6],xmm1[6],xmm0[7],xmm1[7]246; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[2,1,2,3]247; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm0 = xmm0[0,3,2,3,4,5,6,7]248; AVX512DQ-NEXT: vmovd %xmm2, (%rsi)249; AVX512DQ-NEXT: vmovd %xmm4, (%rdx)250; AVX512DQ-NEXT: vmovd %xmm6, (%rcx)251; AVX512DQ-NEXT: vpextrd $2, %xmm5, (%r8)252; AVX512DQ-NEXT: vmovd %xmm7, (%r9)253; AVX512DQ-NEXT: vmovd %xmm3, (%r10)254; AVX512DQ-NEXT: vmovd %xmm0, (%rax)255; AVX512DQ-NEXT: retq256;257; AVX512DQ-FCP-LABEL: load_i16_stride7_vf2:258; AVX512DQ-FCP: # %bb.0:259; AVX512DQ-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax260; AVX512DQ-FCP-NEXT: movq {{[0-9]+}}(%rsp), %r10261; AVX512DQ-FCP-NEXT: vmovdqa (%rdi), %xmm0262; AVX512DQ-FCP-NEXT: vmovdqa 16(%rdi), %xmm1263; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm2 = xmm0[0,1,14,15,u,u,u,u,u,u,u,u,u,u,u,u]264; AVX512DQ-FCP-NEXT: vpsrld $16, %xmm0, %xmm3265; AVX512DQ-FCP-NEXT: vpunpcklwd {{.*#+}} xmm4 = xmm3[0],xmm1[0],xmm3[1],xmm1[1],xmm3[2],xmm1[2],xmm3[3],xmm1[3]266; AVX512DQ-FCP-NEXT: vpunpcklwd {{.*#+}} xmm5 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3]267; AVX512DQ-FCP-NEXT: vmovdqa {{.*#+}} xmm6 = [8,9,6,7,4,5,6,7,8,9,10,11,12,13,14,15]268; AVX512DQ-FCP-NEXT: vpshufb %xmm6, %xmm5, %xmm7269; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm5 = xmm5[12,13,10,11,u,u,u,u,u,u,u,u,u,u,u,u]270; AVX512DQ-FCP-NEXT: vpbroadcastw 8(%rdi), %xmm8271; AVX512DQ-FCP-NEXT: vpsrlq $48, %xmm1, %xmm9272; AVX512DQ-FCP-NEXT: vpunpcklwd {{.*#+}} xmm8 = xmm8[0],xmm9[0],xmm8[1],xmm9[1],xmm8[2],xmm9[2],xmm8[3],xmm9[3]273; AVX512DQ-FCP-NEXT: vpunpckhwd {{.*#+}} xmm3 = xmm3[4],xmm1[4],xmm3[5],xmm1[5],xmm3[6],xmm1[6],xmm3[7],xmm1[7]274; AVX512DQ-FCP-NEXT: vpunpckhwd {{.*#+}} xmm0 = xmm0[4],xmm1[4],xmm0[5],xmm1[5],xmm0[6],xmm1[6],xmm0[7],xmm1[7]275; AVX512DQ-FCP-NEXT: vpshufb %xmm6, %xmm0, %xmm0276; AVX512DQ-FCP-NEXT: vmovd %xmm2, (%rsi)277; AVX512DQ-FCP-NEXT: vmovd %xmm4, (%rdx)278; AVX512DQ-FCP-NEXT: vmovd %xmm7, (%rcx)279; AVX512DQ-FCP-NEXT: vmovd %xmm5, (%r8)280; AVX512DQ-FCP-NEXT: vmovd %xmm8, (%r9)281; AVX512DQ-FCP-NEXT: vmovd %xmm3, (%r10)282; AVX512DQ-FCP-NEXT: vmovd %xmm0, (%rax)283; AVX512DQ-FCP-NEXT: retq284;285; AVX512BW-LABEL: load_i16_stride7_vf2:286; AVX512BW: # %bb.0:287; AVX512BW-NEXT: movq {{[0-9]+}}(%rsp), %rax288; AVX512BW-NEXT: movq {{[0-9]+}}(%rsp), %r10289; AVX512BW-NEXT: vmovdqa (%rdi), %xmm0290; AVX512BW-NEXT: vmovdqa 16(%rdi), %xmm1291; AVX512BW-NEXT: vpshufd {{.*#+}} xmm2 = xmm0[0,3,2,3]292; AVX512BW-NEXT: vpshuflw {{.*#+}} xmm2 = xmm2[0,3,2,3,4,5,6,7]293; AVX512BW-NEXT: vpsrld $16, %xmm0, %xmm3294; AVX512BW-NEXT: vpunpcklwd {{.*#+}} xmm4 = xmm3[0],xmm1[0],xmm3[1],xmm1[1],xmm3[2],xmm1[2],xmm3[3],xmm1[3]295; AVX512BW-NEXT: vpunpcklwd {{.*#+}} xmm5 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3]296; AVX512BW-NEXT: vpshufd {{.*#+}} xmm6 = xmm5[2,1,2,3]297; AVX512BW-NEXT: vpshuflw {{.*#+}} xmm6 = xmm6[0,3,2,3,4,5,6,7]298; AVX512BW-NEXT: vpshufhw {{.*#+}} xmm5 = xmm5[0,1,2,3,6,5,6,7]299; AVX512BW-NEXT: vpbroadcastw 8(%rdi), %xmm7300; AVX512BW-NEXT: vpsrlq $48, %xmm1, %xmm8301; AVX512BW-NEXT: vpunpcklwd {{.*#+}} xmm7 = xmm7[0],xmm8[0],xmm7[1],xmm8[1],xmm7[2],xmm8[2],xmm7[3],xmm8[3]302; AVX512BW-NEXT: vpunpckhwd {{.*#+}} xmm3 = xmm3[4],xmm1[4],xmm3[5],xmm1[5],xmm3[6],xmm1[6],xmm3[7],xmm1[7]303; AVX512BW-NEXT: vpunpckhwd {{.*#+}} xmm0 = xmm0[4],xmm1[4],xmm0[5],xmm1[5],xmm0[6],xmm1[6],xmm0[7],xmm1[7]304; AVX512BW-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[2,1,2,3]305; AVX512BW-NEXT: vpshuflw {{.*#+}} xmm0 = xmm0[0,3,2,3,4,5,6,7]306; AVX512BW-NEXT: vmovd %xmm2, (%rsi)307; AVX512BW-NEXT: vmovd %xmm4, (%rdx)308; AVX512BW-NEXT: vmovd %xmm6, (%rcx)309; AVX512BW-NEXT: vpextrd $2, %xmm5, (%r8)310; AVX512BW-NEXT: vmovd %xmm7, (%r9)311; AVX512BW-NEXT: vmovd %xmm3, (%r10)312; AVX512BW-NEXT: vmovd %xmm0, (%rax)313; AVX512BW-NEXT: retq314;315; AVX512BW-FCP-LABEL: load_i16_stride7_vf2:316; AVX512BW-FCP: # %bb.0:317; AVX512BW-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax318; AVX512BW-FCP-NEXT: movq {{[0-9]+}}(%rsp), %r10319; AVX512BW-FCP-NEXT: vmovdqa (%rdi), %xmm0320; AVX512BW-FCP-NEXT: vmovdqa 16(%rdi), %xmm1321; AVX512BW-FCP-NEXT: vpshufb {{.*#+}} xmm2 = xmm0[0,1,14,15,u,u,u,u,u,u,u,u,u,u,u,u]322; AVX512BW-FCP-NEXT: vpsrld $16, %xmm0, %xmm3323; AVX512BW-FCP-NEXT: vpunpcklwd {{.*#+}} xmm4 = xmm3[0],xmm1[0],xmm3[1],xmm1[1],xmm3[2],xmm1[2],xmm3[3],xmm1[3]324; AVX512BW-FCP-NEXT: vpunpcklwd {{.*#+}} xmm5 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3]325; AVX512BW-FCP-NEXT: vmovdqa {{.*#+}} xmm6 = [8,9,6,7,4,5,6,7,8,9,10,11,12,13,14,15]326; AVX512BW-FCP-NEXT: vpshufb %xmm6, %xmm5, %xmm7327; AVX512BW-FCP-NEXT: vpshufb {{.*#+}} xmm5 = xmm5[12,13,10,11,u,u,u,u,u,u,u,u,u,u,u,u]328; AVX512BW-FCP-NEXT: vpbroadcastw 8(%rdi), %xmm8329; AVX512BW-FCP-NEXT: vpsrlq $48, %xmm1, %xmm9330; AVX512BW-FCP-NEXT: vpunpcklwd {{.*#+}} xmm8 = xmm8[0],xmm9[0],xmm8[1],xmm9[1],xmm8[2],xmm9[2],xmm8[3],xmm9[3]331; AVX512BW-FCP-NEXT: vpunpckhwd {{.*#+}} xmm3 = xmm3[4],xmm1[4],xmm3[5],xmm1[5],xmm3[6],xmm1[6],xmm3[7],xmm1[7]332; AVX512BW-FCP-NEXT: vpunpckhwd {{.*#+}} xmm0 = xmm0[4],xmm1[4],xmm0[5],xmm1[5],xmm0[6],xmm1[6],xmm0[7],xmm1[7]333; AVX512BW-FCP-NEXT: vpshufb %xmm6, %xmm0, %xmm0334; AVX512BW-FCP-NEXT: vmovd %xmm2, (%rsi)335; AVX512BW-FCP-NEXT: vmovd %xmm4, (%rdx)336; AVX512BW-FCP-NEXT: vmovd %xmm7, (%rcx)337; AVX512BW-FCP-NEXT: vmovd %xmm5, (%r8)338; AVX512BW-FCP-NEXT: vmovd %xmm8, (%r9)339; AVX512BW-FCP-NEXT: vmovd %xmm3, (%r10)340; AVX512BW-FCP-NEXT: vmovd %xmm0, (%rax)341; AVX512BW-FCP-NEXT: retq342;343; AVX512DQ-BW-LABEL: load_i16_stride7_vf2:344; AVX512DQ-BW: # %bb.0:345; AVX512DQ-BW-NEXT: movq {{[0-9]+}}(%rsp), %rax346; AVX512DQ-BW-NEXT: movq {{[0-9]+}}(%rsp), %r10347; AVX512DQ-BW-NEXT: vmovdqa (%rdi), %xmm0348; AVX512DQ-BW-NEXT: vmovdqa 16(%rdi), %xmm1349; AVX512DQ-BW-NEXT: vpshufd {{.*#+}} xmm2 = xmm0[0,3,2,3]350; AVX512DQ-BW-NEXT: vpshuflw {{.*#+}} xmm2 = xmm2[0,3,2,3,4,5,6,7]351; AVX512DQ-BW-NEXT: vpsrld $16, %xmm0, %xmm3352; AVX512DQ-BW-NEXT: vpunpcklwd {{.*#+}} xmm4 = xmm3[0],xmm1[0],xmm3[1],xmm1[1],xmm3[2],xmm1[2],xmm3[3],xmm1[3]353; AVX512DQ-BW-NEXT: vpunpcklwd {{.*#+}} xmm5 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3]354; AVX512DQ-BW-NEXT: vpshufd {{.*#+}} xmm6 = xmm5[2,1,2,3]355; AVX512DQ-BW-NEXT: vpshuflw {{.*#+}} xmm6 = xmm6[0,3,2,3,4,5,6,7]356; AVX512DQ-BW-NEXT: vpshufhw {{.*#+}} xmm5 = xmm5[0,1,2,3,6,5,6,7]357; AVX512DQ-BW-NEXT: vpbroadcastw 8(%rdi), %xmm7358; AVX512DQ-BW-NEXT: vpsrlq $48, %xmm1, %xmm8359; AVX512DQ-BW-NEXT: vpunpcklwd {{.*#+}} xmm7 = xmm7[0],xmm8[0],xmm7[1],xmm8[1],xmm7[2],xmm8[2],xmm7[3],xmm8[3]360; AVX512DQ-BW-NEXT: vpunpckhwd {{.*#+}} xmm3 = xmm3[4],xmm1[4],xmm3[5],xmm1[5],xmm3[6],xmm1[6],xmm3[7],xmm1[7]361; AVX512DQ-BW-NEXT: vpunpckhwd {{.*#+}} xmm0 = xmm0[4],xmm1[4],xmm0[5],xmm1[5],xmm0[6],xmm1[6],xmm0[7],xmm1[7]362; AVX512DQ-BW-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[2,1,2,3]363; AVX512DQ-BW-NEXT: vpshuflw {{.*#+}} xmm0 = xmm0[0,3,2,3,4,5,6,7]364; AVX512DQ-BW-NEXT: vmovd %xmm2, (%rsi)365; AVX512DQ-BW-NEXT: vmovd %xmm4, (%rdx)366; AVX512DQ-BW-NEXT: vmovd %xmm6, (%rcx)367; AVX512DQ-BW-NEXT: vpextrd $2, %xmm5, (%r8)368; AVX512DQ-BW-NEXT: vmovd %xmm7, (%r9)369; AVX512DQ-BW-NEXT: vmovd %xmm3, (%r10)370; AVX512DQ-BW-NEXT: vmovd %xmm0, (%rax)371; AVX512DQ-BW-NEXT: retq372;373; AVX512DQ-BW-FCP-LABEL: load_i16_stride7_vf2:374; AVX512DQ-BW-FCP: # %bb.0:375; AVX512DQ-BW-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax376; AVX512DQ-BW-FCP-NEXT: movq {{[0-9]+}}(%rsp), %r10377; AVX512DQ-BW-FCP-NEXT: vmovdqa (%rdi), %xmm0378; AVX512DQ-BW-FCP-NEXT: vmovdqa 16(%rdi), %xmm1379; AVX512DQ-BW-FCP-NEXT: vpshufb {{.*#+}} xmm2 = xmm0[0,1,14,15,u,u,u,u,u,u,u,u,u,u,u,u]380; AVX512DQ-BW-FCP-NEXT: vpsrld $16, %xmm0, %xmm3381; AVX512DQ-BW-FCP-NEXT: vpunpcklwd {{.*#+}} xmm4 = xmm3[0],xmm1[0],xmm3[1],xmm1[1],xmm3[2],xmm1[2],xmm3[3],xmm1[3]382; AVX512DQ-BW-FCP-NEXT: vpunpcklwd {{.*#+}} xmm5 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3]383; AVX512DQ-BW-FCP-NEXT: vmovdqa {{.*#+}} xmm6 = [8,9,6,7,4,5,6,7,8,9,10,11,12,13,14,15]384; AVX512DQ-BW-FCP-NEXT: vpshufb %xmm6, %xmm5, %xmm7385; AVX512DQ-BW-FCP-NEXT: vpshufb {{.*#+}} xmm5 = xmm5[12,13,10,11,u,u,u,u,u,u,u,u,u,u,u,u]386; AVX512DQ-BW-FCP-NEXT: vpbroadcastw 8(%rdi), %xmm8387; AVX512DQ-BW-FCP-NEXT: vpsrlq $48, %xmm1, %xmm9388; AVX512DQ-BW-FCP-NEXT: vpunpcklwd {{.*#+}} xmm8 = xmm8[0],xmm9[0],xmm8[1],xmm9[1],xmm8[2],xmm9[2],xmm8[3],xmm9[3]389; AVX512DQ-BW-FCP-NEXT: vpunpckhwd {{.*#+}} xmm3 = xmm3[4],xmm1[4],xmm3[5],xmm1[5],xmm3[6],xmm1[6],xmm3[7],xmm1[7]390; AVX512DQ-BW-FCP-NEXT: vpunpckhwd {{.*#+}} xmm0 = xmm0[4],xmm1[4],xmm0[5],xmm1[5],xmm0[6],xmm1[6],xmm0[7],xmm1[7]391; AVX512DQ-BW-FCP-NEXT: vpshufb %xmm6, %xmm0, %xmm0392; AVX512DQ-BW-FCP-NEXT: vmovd %xmm2, (%rsi)393; AVX512DQ-BW-FCP-NEXT: vmovd %xmm4, (%rdx)394; AVX512DQ-BW-FCP-NEXT: vmovd %xmm7, (%rcx)395; AVX512DQ-BW-FCP-NEXT: vmovd %xmm5, (%r8)396; AVX512DQ-BW-FCP-NEXT: vmovd %xmm8, (%r9)397; AVX512DQ-BW-FCP-NEXT: vmovd %xmm3, (%r10)398; AVX512DQ-BW-FCP-NEXT: vmovd %xmm0, (%rax)399; AVX512DQ-BW-FCP-NEXT: retq400 %wide.vec = load <14 x i16>, ptr %in.vec, align 64401 %strided.vec0 = shufflevector <14 x i16> %wide.vec, <14 x i16> poison, <2 x i32> <i32 0, i32 7>402 %strided.vec1 = shufflevector <14 x i16> %wide.vec, <14 x i16> poison, <2 x i32> <i32 1, i32 8>403 %strided.vec2 = shufflevector <14 x i16> %wide.vec, <14 x i16> poison, <2 x i32> <i32 2, i32 9>404 %strided.vec3 = shufflevector <14 x i16> %wide.vec, <14 x i16> poison, <2 x i32> <i32 3, i32 10>405 %strided.vec4 = shufflevector <14 x i16> %wide.vec, <14 x i16> poison, <2 x i32> <i32 4, i32 11>406 %strided.vec5 = shufflevector <14 x i16> %wide.vec, <14 x i16> poison, <2 x i32> <i32 5, i32 12>407 %strided.vec6 = shufflevector <14 x i16> %wide.vec, <14 x i16> poison, <2 x i32> <i32 6, i32 13>408 store <2 x i16> %strided.vec0, ptr %out.vec0, align 64409 store <2 x i16> %strided.vec1, ptr %out.vec1, align 64410 store <2 x i16> %strided.vec2, ptr %out.vec2, align 64411 store <2 x i16> %strided.vec3, ptr %out.vec3, align 64412 store <2 x i16> %strided.vec4, ptr %out.vec4, align 64413 store <2 x i16> %strided.vec5, ptr %out.vec5, align 64414 store <2 x i16> %strided.vec6, ptr %out.vec6, align 64415 ret void416}417 418define void @load_i16_stride7_vf4(ptr %in.vec, ptr %out.vec0, ptr %out.vec1, ptr %out.vec2, ptr %out.vec3, ptr %out.vec4, ptr %out.vec5, ptr %out.vec6) nounwind {419; SSE-LABEL: load_i16_stride7_vf4:420; SSE: # %bb.0:421; SSE-NEXT: movdqa (%rdi), %xmm0422; SSE-NEXT: movdqa 16(%rdi), %xmm2423; SSE-NEXT: movdqa 32(%rdi), %xmm1424; SSE-NEXT: movdqa 48(%rdi), %xmm4425; SSE-NEXT: pshufd {{.*#+}} xmm3 = xmm1[2,2,3,3]426; SSE-NEXT: movdqa {{.*#+}} xmm5 = [65535,65535,65535,0,65535,65535,65535,65535]427; SSE-NEXT: movdqa %xmm5, %xmm6428; SSE-NEXT: pandn %xmm3, %xmm6429; SSE-NEXT: pshufd {{.*#+}} xmm3 = xmm2[2,2,3,3]430; SSE-NEXT: pshufd {{.*#+}} xmm7 = xmm0[0,1,0,3]431; SSE-NEXT: pshufhw {{.*#+}} xmm7 = xmm7[0,1,2,3,4,7,6,7]432; SSE-NEXT: punpckhdq {{.*#+}} xmm7 = xmm7[2],xmm3[2],xmm7[3],xmm3[3]433; SSE-NEXT: pand %xmm5, %xmm7434; SSE-NEXT: por %xmm6, %xmm7435; SSE-NEXT: movq %xmm7, (%rsi)436; SSE-NEXT: movdqa {{.*#+}} xmm3 = [65535,0,65535,65535,65535,65535,65535,65535]437; SSE-NEXT: movdqa %xmm2, %xmm6438; SSE-NEXT: pand %xmm3, %xmm6439; SSE-NEXT: pandn %xmm0, %xmm3440; SSE-NEXT: por %xmm6, %xmm3441; SSE-NEXT: pshufd {{.*#+}} xmm3 = xmm3[0,3,2,3]442; SSE-NEXT: pshuflw {{.*#+}} xmm6 = xmm3[1,0,3,3,4,5,6,7]443; SSE-NEXT: pand %xmm5, %xmm6444; SSE-NEXT: movdqa %xmm1, %xmm3445; SSE-NEXT: psrldq {{.*#+}} xmm3 = xmm3[6,7,8,9,10,11,12,13,14,15],zero,zero,zero,zero,zero,zero446; SSE-NEXT: pandn %xmm3, %xmm5447; SSE-NEXT: por %xmm6, %xmm5448; SSE-NEXT: movq %xmm5, (%rdx)449; SSE-NEXT: pshufd {{.*#+}} xmm5 = xmm1[0,3,2,3]450; SSE-NEXT: pshuflw {{.*#+}} xmm6 = xmm5[0,3,2,3,4,5,6,7]451; SSE-NEXT: movdqa %xmm0, %xmm5452; SSE-NEXT: punpcklwd {{.*#+}} xmm5 = xmm5[0],xmm2[0],xmm5[1],xmm2[1],xmm5[2],xmm2[2],xmm5[3],xmm2[3]453; SSE-NEXT: pshufd {{.*#+}} xmm7 = xmm5[2,1,2,3]454; SSE-NEXT: pshuflw {{.*#+}} xmm7 = xmm7[0,3,2,3,4,5,6,7]455; SSE-NEXT: punpckldq {{.*#+}} xmm7 = xmm7[0],xmm6[0],xmm7[1],xmm6[1]456; SSE-NEXT: movq %xmm7, (%rcx)457; SSE-NEXT: movdqa %xmm1, %xmm7458; SSE-NEXT: movdqa %xmm1, %xmm6459; SSE-NEXT: psrlq $16, %xmm6460; SSE-NEXT: punpcklwd {{.*#+}} xmm6 = xmm6[0],xmm4[0],xmm6[1],xmm4[1],xmm6[2],xmm4[2],xmm6[3],xmm4[3]461; SSE-NEXT: punpcklwd {{.*#+}} xmm1 = xmm1[0],xmm4[0],xmm1[1],xmm4[1],xmm1[2],xmm4[2],xmm1[3],xmm4[3]462; SSE-NEXT: pshufd {{.*#+}} xmm8 = xmm4[1,1,1,1]463; SSE-NEXT: pslld $16, %xmm4464; SSE-NEXT: punpcklwd {{.*#+}} xmm7 = xmm7[0],xmm4[0],xmm7[1],xmm4[1],xmm7[2],xmm4[2],xmm7[3],xmm4[3]465; SSE-NEXT: movq {{[0-9]+}}(%rsp), %rax466; SSE-NEXT: movq {{[0-9]+}}(%rsp), %rcx467; SSE-NEXT: pshufd {{.*#+}} xmm4 = xmm7[1,1,1,1]468; SSE-NEXT: pshufhw {{.*#+}} xmm5 = xmm5[0,1,2,3,6,5,6,7]469; SSE-NEXT: pshufd {{.*#+}} xmm5 = xmm5[2,2,2,2]470; SSE-NEXT: punpckldq {{.*#+}} xmm5 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]471; SSE-NEXT: movq %xmm5, (%r8)472; SSE-NEXT: pshufd {{.*#+}} xmm4 = xmm0[2,3,2,3]473; SSE-NEXT: movdqa %xmm0, %xmm5474; SSE-NEXT: psrld $16, %xmm5475; SSE-NEXT: punpckhwd {{.*#+}} xmm5 = xmm5[4],xmm2[4],xmm5[5],xmm2[5],xmm5[6],xmm2[6],xmm5[7],xmm2[7]476; SSE-NEXT: punpckhwd {{.*#+}} xmm0 = xmm0[4],xmm2[4],xmm0[5],xmm2[5],xmm0[6],xmm2[6],xmm0[7],xmm2[7]477; SSE-NEXT: psrlq $48, %xmm2478; SSE-NEXT: punpcklwd {{.*#+}} xmm4 = xmm4[0],xmm2[0],xmm4[1],xmm2[1],xmm4[2],xmm2[2],xmm4[3],xmm2[3]479; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm6[1,1,1,1]480; SSE-NEXT: punpckldq {{.*#+}} xmm4 = xmm4[0],xmm2[0],xmm4[1],xmm2[1]481; SSE-NEXT: movq %xmm4, (%r9)482; SSE-NEXT: pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,6,5,6,7]483; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[2,2,2,2]484; SSE-NEXT: punpckldq {{.*#+}} xmm5 = xmm5[0],xmm1[0],xmm5[1],xmm1[1]485; SSE-NEXT: movq %xmm5, (%rcx)486; SSE-NEXT: punpcklwd {{.*#+}} xmm3 = xmm3[0],xmm8[0],xmm3[1],xmm8[1],xmm3[2],xmm8[2],xmm3[3],xmm8[3]487; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm3[1,1,1,1]488; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[2,1,2,3]489; SSE-NEXT: pshuflw {{.*#+}} xmm0 = xmm0[0,3,2,3,4,5,6,7]490; SSE-NEXT: punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]491; SSE-NEXT: movq %xmm0, (%rax)492; SSE-NEXT: retq493;494; AVX-LABEL: load_i16_stride7_vf4:495; AVX: # %bb.0:496; AVX-NEXT: movq {{[0-9]+}}(%rsp), %rax497; AVX-NEXT: movq {{[0-9]+}}(%rsp), %r10498; AVX-NEXT: vmovdqa (%rdi), %xmm0499; AVX-NEXT: vmovdqa 16(%rdi), %xmm1500; AVX-NEXT: vmovdqa 32(%rdi), %xmm3501; AVX-NEXT: vmovdqa 48(%rdi), %xmm2502; AVX-NEXT: vpshufd {{.*#+}} xmm4 = xmm1[2,2,3,3]503; AVX-NEXT: vpshufd {{.*#+}} xmm5 = xmm0[0,1,0,3]504; AVX-NEXT: vpshufhw {{.*#+}} xmm5 = xmm5[0,1,2,3,4,7,6,7]505; AVX-NEXT: vpunpckhdq {{.*#+}} xmm4 = xmm5[2],xmm4[2],xmm5[3],xmm4[3]506; AVX-NEXT: vpshufd {{.*#+}} xmm5 = xmm3[2,2,3,3]507; AVX-NEXT: vpblendw {{.*#+}} xmm4 = xmm4[0,1,2],xmm5[3],xmm4[4,5,6,7]508; AVX-NEXT: vmovq %xmm4, (%rsi)509; AVX-NEXT: vpblendw {{.*#+}} xmm4 = xmm1[0],xmm0[1],xmm1[2,3,4,5,6,7]510; AVX-NEXT: vpshufd {{.*#+}} xmm4 = xmm4[0,3,2,3]511; AVX-NEXT: vpshuflw {{.*#+}} xmm4 = xmm4[1,0,3,3,4,5,6,7]512; AVX-NEXT: vpsrldq {{.*#+}} xmm5 = xmm3[6,7,8,9,10,11,12,13,14,15],zero,zero,zero,zero,zero,zero513; AVX-NEXT: vpblendw {{.*#+}} xmm4 = xmm4[0,1,2],xmm5[3],xmm4[4,5,6,7]514; AVX-NEXT: vmovq %xmm4, (%rdx)515; AVX-NEXT: vpshufd {{.*#+}} xmm4 = xmm3[0,3,2,3]516; AVX-NEXT: vpshuflw {{.*#+}} xmm4 = xmm4[0,3,2,3,4,5,6,7]517; AVX-NEXT: vpunpcklwd {{.*#+}} xmm6 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3]518; AVX-NEXT: vpshufd {{.*#+}} xmm7 = xmm6[2,1,2,3]519; AVX-NEXT: vpshuflw {{.*#+}} xmm7 = xmm7[0,3,2,3,4,5,6,7]520; AVX-NEXT: vpunpckldq {{.*#+}} xmm4 = xmm7[0],xmm4[0],xmm7[1],xmm4[1]521; AVX-NEXT: vmovq %xmm4, (%rcx)522; AVX-NEXT: vpslld $16, %xmm2, %xmm4523; AVX-NEXT: vpunpcklwd {{.*#+}} xmm4 = xmm3[0],xmm4[0],xmm3[1],xmm4[1],xmm3[2],xmm4[2],xmm3[3],xmm4[3]524; AVX-NEXT: vpshufhw {{.*#+}} xmm6 = xmm6[0,1,2,3,6,5,6,7]525; AVX-NEXT: vpshufd {{.*#+}} xmm6 = xmm6[2,2,2,2]526; AVX-NEXT: vpblendw {{.*#+}} xmm4 = xmm6[0,1],xmm4[2,3],xmm6[4,5,6,7]527; AVX-NEXT: vmovq %xmm4, (%r8)528; AVX-NEXT: vpsrlq $16, %xmm3, %xmm4529; AVX-NEXT: vpunpcklwd {{.*#+}} xmm4 = xmm4[0],xmm2[0],xmm4[1],xmm2[1],xmm4[2],xmm2[2],xmm4[3],xmm2[3]530; AVX-NEXT: vpsrlq $48, %xmm1, %xmm6531; AVX-NEXT: vpshufd {{.*#+}} xmm7 = xmm0[2,3,2,3]532; AVX-NEXT: vpunpcklwd {{.*#+}} xmm6 = xmm7[0],xmm6[0],xmm7[1],xmm6[1],xmm7[2],xmm6[2],xmm7[3],xmm6[3]533; AVX-NEXT: vpblendw {{.*#+}} xmm4 = xmm6[0,1],xmm4[2,3],xmm6[4,5,6,7]534; AVX-NEXT: vmovq %xmm4, (%r9)535; AVX-NEXT: vpsrld $16, %xmm0, %xmm4536; AVX-NEXT: vpunpckhwd {{.*#+}} xmm4 = xmm4[4],xmm1[4],xmm4[5],xmm1[5],xmm4[6],xmm1[6],xmm4[7],xmm1[7]537; AVX-NEXT: vpunpcklwd {{.*#+}} xmm3 = xmm3[0],xmm2[0],xmm3[1],xmm2[1],xmm3[2],xmm2[2],xmm3[3],xmm2[3]538; AVX-NEXT: vpshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,6,5,6,7]539; AVX-NEXT: vpshufd {{.*#+}} xmm3 = xmm3[2,2,2,2]540; AVX-NEXT: vpblendw {{.*#+}} xmm3 = xmm4[0,1],xmm3[2,3],xmm4[4,5,6,7]541; AVX-NEXT: vmovq %xmm3, (%r10)542; AVX-NEXT: vpshufd {{.*#+}} xmm2 = xmm2[1,1,1,1]543; AVX-NEXT: vpunpcklwd {{.*#+}} xmm2 = xmm5[0],xmm2[0],xmm5[1],xmm2[1],xmm5[2],xmm2[2],xmm5[3],xmm2[3]544; AVX-NEXT: vpunpckhwd {{.*#+}} xmm0 = xmm0[4],xmm1[4],xmm0[5],xmm1[5],xmm0[6],xmm1[6],xmm0[7],xmm1[7]545; AVX-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[2,1,2,3]546; AVX-NEXT: vpshuflw {{.*#+}} xmm0 = xmm0[0,3,2,3,4,5,6,7]547; AVX-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1],xmm2[2,3],xmm0[4,5,6,7]548; AVX-NEXT: vmovq %xmm0, (%rax)549; AVX-NEXT: retq550;551; AVX2-LABEL: load_i16_stride7_vf4:552; AVX2: # %bb.0:553; AVX2-NEXT: movq {{[0-9]+}}(%rsp), %rax554; AVX2-NEXT: movq {{[0-9]+}}(%rsp), %r10555; AVX2-NEXT: vmovdqa 32(%rdi), %ymm0556; AVX2-NEXT: vmovdqa (%rdi), %ymm1557; AVX2-NEXT: vmovdqa (%rdi), %xmm2558; AVX2-NEXT: vmovdqa 16(%rdi), %xmm3559; AVX2-NEXT: vmovdqa 32(%rdi), %xmm4560; AVX2-NEXT: vpblendd {{.*#+}} xmm5 = xmm2[0,1],xmm4[2],xmm2[3]561; AVX2-NEXT: vpblendw {{.*#+}} xmm5 = xmm5[0,1,2,3,4,5],xmm3[6],xmm5[7]562; AVX2-NEXT: vpshufb {{.*#+}} xmm5 = xmm5[0,1,14,15,12,13,10,11,u,u,u,u,u,u,u,u]563; AVX2-NEXT: vmovdqa (%rdi), %xmm6564; AVX2-NEXT: vpblendd {{.*#+}} xmm6 = xmm6[0,1],mem[2,3]565; AVX2-NEXT: vmovq %xmm5, (%rsi)566; AVX2-NEXT: vpblendw {{.*#+}} xmm5 = xmm3[0],xmm6[1,2,3,4,5,6],xmm3[7]567; AVX2-NEXT: vpshufd {{.*#+}} xmm5 = xmm5[0,3,2,3]568; AVX2-NEXT: vpshuflw {{.*#+}} xmm5 = xmm5[1,0,3,2,4,5,6,7]569; AVX2-NEXT: vmovq %xmm5, (%rdx)570; AVX2-NEXT: vpblendd {{.*#+}} xmm2 = xmm4[0],xmm2[1],xmm4[2,3]571; AVX2-NEXT: vpshufb {{.*#+}} xmm2 = xmm2[4,5,u,u,0,1,14,15,u,u,u,u,u,u,u,u]572; AVX2-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0],xmm3[1],xmm2[2,3,4,5,6,7]573; AVX2-NEXT: vmovq %xmm2, (%rcx)574; AVX2-NEXT: vpblendd {{.*#+}} ymm2 = ymm0[0],ymm1[1],ymm0[2,3,4],ymm1[5],ymm0[6,7]575; AVX2-NEXT: vextracti128 $1, %ymm2, %xmm3576; AVX2-NEXT: vpunpcklwd {{.*#+}} xmm2 = xmm2[0],xmm3[0],xmm2[1],xmm3[1],xmm2[2],xmm3[2],xmm2[3],xmm3[3]577; AVX2-NEXT: vpshufb {{.*#+}} xmm2 = xmm2[12,13,10,11,4,5,2,3,u,u,u,u,u,u,u,u]578; AVX2-NEXT: vmovq %xmm2, (%r8)579; AVX2-NEXT: vpblendd {{.*#+}} ymm2 = ymm0[0,1],ymm1[2],ymm0[3,4],ymm1[5],ymm0[6,7]580; AVX2-NEXT: vextracti128 $1, %ymm2, %xmm3581; AVX2-NEXT: vpshuflw {{.*#+}} xmm3 = xmm3[3,1,2,3,4,5,6,7]582; AVX2-NEXT: vpshufd {{.*#+}} xmm2 = xmm2[2,1,2,3]583; AVX2-NEXT: vpshuflw {{.*#+}} xmm2 = xmm2[0,2,2,3,4,5,6,7]584; AVX2-NEXT: vpunpcklwd {{.*#+}} xmm2 = xmm2[0],xmm3[0],xmm2[1],xmm3[1],xmm2[2],xmm3[2],xmm2[3],xmm3[3]585; AVX2-NEXT: vmovq %xmm2, (%r9)586; AVX2-NEXT: vpblendd {{.*#+}} ymm2 = ymm0[0,1],ymm1[2,3],ymm0[4,5],ymm1[6,7]587; AVX2-NEXT: vextracti128 $1, %ymm2, %xmm3588; AVX2-NEXT: vpshufd {{.*#+}} xmm3 = xmm3[2,1,2,3]589; AVX2-NEXT: vpshuflw {{.*#+}} xmm3 = xmm3[0,2,2,3,4,5,6,7]590; AVX2-NEXT: vpshufd {{.*#+}} xmm2 = xmm2[2,1,2,3]591; AVX2-NEXT: vpshuflw {{.*#+}} xmm2 = xmm2[1,3,2,3,4,5,6,7]592; AVX2-NEXT: vpunpcklwd {{.*#+}} xmm2 = xmm2[0],xmm3[0],xmm2[1],xmm3[1],xmm2[2],xmm3[2],xmm2[3],xmm3[3]593; AVX2-NEXT: vmovq %xmm2, (%r10)594; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3],ymm0[4,5],ymm1[6],ymm0[7]595; AVX2-NEXT: vpshufhw {{.*#+}} xmm1 = xmm0[0,1,2,3,6,4,6,7]596; AVX2-NEXT: vextracti128 $1, %ymm0, %xmm0597; AVX2-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[0,1,2,1]598; AVX2-NEXT: vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,5,7,6,7]599; AVX2-NEXT: vpunpckhwd {{.*#+}} xmm0 = xmm1[4],xmm0[4],xmm1[5],xmm0[5],xmm1[6],xmm0[6],xmm1[7],xmm0[7]600; AVX2-NEXT: vmovq %xmm0, (%rax)601; AVX2-NEXT: vzeroupper602; AVX2-NEXT: retq603;604; AVX2-FP-LABEL: load_i16_stride7_vf4:605; AVX2-FP: # %bb.0:606; AVX2-FP-NEXT: movq {{[0-9]+}}(%rsp), %rax607; AVX2-FP-NEXT: movq {{[0-9]+}}(%rsp), %r10608; AVX2-FP-NEXT: vmovdqa 32(%rdi), %ymm0609; AVX2-FP-NEXT: vmovdqa (%rdi), %ymm1610; AVX2-FP-NEXT: vmovdqa (%rdi), %xmm2611; AVX2-FP-NEXT: vmovdqa 16(%rdi), %xmm3612; AVX2-FP-NEXT: vmovdqa 32(%rdi), %xmm4613; AVX2-FP-NEXT: vpblendd {{.*#+}} xmm5 = xmm2[0,1],xmm4[2],xmm2[3]614; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm5 = xmm5[0,1,2,3,4,5],xmm3[6],xmm5[7]615; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm5 = xmm5[0,1,14,15,12,13,10,11,u,u,u,u,u,u,u,u]616; AVX2-FP-NEXT: vmovdqa (%rdi), %xmm6617; AVX2-FP-NEXT: vpblendd {{.*#+}} xmm6 = xmm6[0,1],mem[2,3]618; AVX2-FP-NEXT: vmovq %xmm5, (%rsi)619; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm5 = xmm3[0],xmm6[1,2,3,4,5,6],xmm3[7]620; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm5 = xmm5[2,3,0,1,14,15,12,13,u,u,u,u,u,u,u,u]621; AVX2-FP-NEXT: vmovq %xmm5, (%rdx)622; AVX2-FP-NEXT: vpblendd {{.*#+}} xmm2 = xmm4[0],xmm2[1],xmm4[2,3]623; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm2 = xmm2[4,5,u,u,0,1,14,15,u,u,u,u,u,u,u,u]624; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0],xmm3[1],xmm2[2,3,4,5,6,7]625; AVX2-FP-NEXT: vmovq %xmm2, (%rcx)626; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm2 = ymm0[0],ymm1[1],ymm0[2,3,4],ymm1[5],ymm0[6,7]627; AVX2-FP-NEXT: vextracti128 $1, %ymm2, %xmm3628; AVX2-FP-NEXT: vpunpcklwd {{.*#+}} xmm2 = xmm2[0],xmm3[0],xmm2[1],xmm3[1],xmm2[2],xmm3[2],xmm2[3],xmm3[3]629; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm2 = xmm2[12,13,10,11,4,5,2,3,u,u,u,u,u,u,u,u]630; AVX2-FP-NEXT: vmovq %xmm2, (%r8)631; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm2 = ymm0[0,1],ymm1[2],ymm0[3,4],ymm1[5],ymm0[6,7]632; AVX2-FP-NEXT: vmovdqa {{.*#+}} xmm3 = [8,9,4,5,4,5,6,7,8,9,10,11,12,13,14,15]633; AVX2-FP-NEXT: vpshufb %xmm3, %xmm2, %xmm4634; AVX2-FP-NEXT: vextracti128 $1, %ymm2, %xmm2635; AVX2-FP-NEXT: vpshuflw {{.*#+}} xmm2 = xmm2[3,1,2,3,4,5,6,7]636; AVX2-FP-NEXT: vpunpcklwd {{.*#+}} xmm2 = xmm4[0],xmm2[0],xmm4[1],xmm2[1],xmm4[2],xmm2[2],xmm4[3],xmm2[3]637; AVX2-FP-NEXT: vmovq %xmm2, (%r9)638; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm2 = ymm0[0,1],ymm1[2,3],ymm0[4,5],ymm1[6,7]639; AVX2-FP-NEXT: vextracti128 $1, %ymm2, %xmm4640; AVX2-FP-NEXT: vpshufb %xmm3, %xmm4, %xmm3641; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm2 = xmm2[10,11,6,7,u,u,u,u,u,u,u,u,u,u,u,u]642; AVX2-FP-NEXT: vpunpcklwd {{.*#+}} xmm2 = xmm2[0],xmm3[0],xmm2[1],xmm3[1],xmm2[2],xmm3[2],xmm2[3],xmm3[3]643; AVX2-FP-NEXT: vmovq %xmm2, (%r10)644; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3],ymm0[4,5],ymm1[6],ymm0[7]645; AVX2-FP-NEXT: vextracti128 $1, %ymm0, %xmm1646; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm1 = xmm1[u,u,u,u,u,u,u,u,10,11,6,7,u,u,u,u]647; AVX2-FP-NEXT: vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,6,4,6,7]648; AVX2-FP-NEXT: vpunpckhwd {{.*#+}} xmm0 = xmm0[4],xmm1[4],xmm0[5],xmm1[5],xmm0[6],xmm1[6],xmm0[7],xmm1[7]649; AVX2-FP-NEXT: vmovq %xmm0, (%rax)650; AVX2-FP-NEXT: vzeroupper651; AVX2-FP-NEXT: retq652;653; AVX2-FCP-LABEL: load_i16_stride7_vf4:654; AVX2-FCP: # %bb.0:655; AVX2-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax656; AVX2-FCP-NEXT: movq {{[0-9]+}}(%rsp), %r10657; AVX2-FCP-NEXT: vmovdqa 32(%rdi), %ymm0658; AVX2-FCP-NEXT: vmovdqa (%rdi), %ymm1659; AVX2-FCP-NEXT: vmovdqa (%rdi), %xmm2660; AVX2-FCP-NEXT: vmovdqa 16(%rdi), %xmm3661; AVX2-FCP-NEXT: vmovdqa 32(%rdi), %xmm4662; AVX2-FCP-NEXT: vpblendd {{.*#+}} xmm5 = xmm2[0,1],xmm4[2],xmm2[3]663; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm5 = xmm5[0,1,2,3,4,5],xmm3[6],xmm5[7]664; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm5 = xmm5[0,1,14,15,12,13,10,11,u,u,u,u,u,u,u,u]665; AVX2-FCP-NEXT: vmovdqa (%rdi), %xmm6666; AVX2-FCP-NEXT: vpblendd {{.*#+}} xmm6 = xmm6[0,1],mem[2,3]667; AVX2-FCP-NEXT: vmovq %xmm5, (%rsi)668; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm5 = xmm3[0],xmm6[1,2,3,4,5,6],xmm3[7]669; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm5 = xmm5[2,3,0,1,14,15,12,13,u,u,u,u,u,u,u,u]670; AVX2-FCP-NEXT: vmovq %xmm5, (%rdx)671; AVX2-FCP-NEXT: vpblendd {{.*#+}} xmm2 = xmm4[0],xmm2[1],xmm4[2,3]672; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm2 = xmm2[4,5,u,u,0,1,14,15,u,u,u,u,u,u,u,u]673; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0],xmm3[1],xmm2[2,3,4,5,6,7]674; AVX2-FCP-NEXT: vmovq %xmm2, (%rcx)675; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm0[0],ymm1[1],ymm0[2,3,4],ymm1[5],ymm0[6,7]676; AVX2-FCP-NEXT: vextracti128 $1, %ymm2, %xmm3677; AVX2-FCP-NEXT: vpunpcklwd {{.*#+}} xmm2 = xmm2[0],xmm3[0],xmm2[1],xmm3[1],xmm2[2],xmm3[2],xmm2[3],xmm3[3]678; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm2 = xmm2[12,13,10,11,4,5,2,3,u,u,u,u,u,u,u,u]679; AVX2-FCP-NEXT: vmovq %xmm2, (%r8)680; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm0[0,1],ymm1[2],ymm0[3,4],ymm1[5],ymm0[6,7]681; AVX2-FCP-NEXT: vmovdqa {{.*#+}} xmm3 = [8,9,4,5,4,5,6,7,8,9,10,11,12,13,14,15]682; AVX2-FCP-NEXT: vpshufb %xmm3, %xmm2, %xmm4683; AVX2-FCP-NEXT: vextracti128 $1, %ymm2, %xmm2684; AVX2-FCP-NEXT: vpshuflw {{.*#+}} xmm2 = xmm2[3,1,2,3,4,5,6,7]685; AVX2-FCP-NEXT: vpunpcklwd {{.*#+}} xmm2 = xmm4[0],xmm2[0],xmm4[1],xmm2[1],xmm4[2],xmm2[2],xmm4[3],xmm2[3]686; AVX2-FCP-NEXT: vmovq %xmm2, (%r9)687; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm0[0,1],ymm1[2,3],ymm0[4,5],ymm1[6,7]688; AVX2-FCP-NEXT: vextracti128 $1, %ymm2, %xmm4689; AVX2-FCP-NEXT: vpshufb %xmm3, %xmm4, %xmm3690; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm2 = xmm2[10,11,6,7,u,u,u,u,u,u,u,u,u,u,u,u]691; AVX2-FCP-NEXT: vpunpcklwd {{.*#+}} xmm2 = xmm2[0],xmm3[0],xmm2[1],xmm3[1],xmm2[2],xmm3[2],xmm2[3],xmm3[3]692; AVX2-FCP-NEXT: vmovq %xmm2, (%r10)693; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3],ymm0[4,5],ymm1[6],ymm0[7]694; AVX2-FCP-NEXT: vextracti128 $1, %ymm0, %xmm1695; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm1 = xmm1[u,u,u,u,u,u,u,u,10,11,6,7,u,u,u,u]696; AVX2-FCP-NEXT: vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,6,4,6,7]697; AVX2-FCP-NEXT: vpunpckhwd {{.*#+}} xmm0 = xmm0[4],xmm1[4],xmm0[5],xmm1[5],xmm0[6],xmm1[6],xmm0[7],xmm1[7]698; AVX2-FCP-NEXT: vmovq %xmm0, (%rax)699; AVX2-FCP-NEXT: vzeroupper700; AVX2-FCP-NEXT: retq701;702; AVX512-LABEL: load_i16_stride7_vf4:703; AVX512: # %bb.0:704; AVX512-NEXT: movq {{[0-9]+}}(%rsp), %rax705; AVX512-NEXT: movq {{[0-9]+}}(%rsp), %r10706; AVX512-NEXT: vmovdqa (%rdi), %xmm2707; AVX512-NEXT: vmovdqa 16(%rdi), %xmm3708; AVX512-NEXT: vmovdqa 32(%rdi), %xmm4709; AVX512-NEXT: vpblendd {{.*#+}} xmm0 = xmm2[0,1],xmm4[2],xmm2[3]710; AVX512-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,5],xmm3[6],xmm0[7]711; AVX512-NEXT: vpshufb {{.*#+}} xmm5 = xmm0[0,1,14,15,12,13,10,11,u,u,u,u,u,u,u,u]712; AVX512-NEXT: vmovdqa (%rdi), %xmm0713; AVX512-NEXT: vpblendd {{.*#+}} xmm6 = xmm0[0,1],mem[2,3]714; AVX512-NEXT: vmovdqa (%rdi), %ymm0715; AVX512-NEXT: vmovdqa 32(%rdi), %ymm1716; AVX512-NEXT: vmovq %xmm5, (%rsi)717; AVX512-NEXT: vpblendw {{.*#+}} xmm5 = xmm3[0],xmm6[1,2,3,4,5,6],xmm3[7]718; AVX512-NEXT: vpshufd {{.*#+}} xmm5 = xmm5[0,3,2,3]719; AVX512-NEXT: vpshuflw {{.*#+}} xmm5 = xmm5[1,0,3,2,4,5,6,7]720; AVX512-NEXT: vmovq %xmm5, (%rdx)721; AVX512-NEXT: vpblendd {{.*#+}} xmm2 = xmm4[0],xmm2[1],xmm4[2,3]722; AVX512-NEXT: vpshufb {{.*#+}} xmm2 = xmm2[4,5,u,u,0,1,14,15,u,u,u,u,u,u,u,u]723; AVX512-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0],xmm3[1],xmm2[2,3,4,5,6,7]724; AVX512-NEXT: vmovq %xmm2, (%rcx)725; AVX512-NEXT: vpblendd {{.*#+}} ymm2 = ymm1[0],ymm0[1],ymm1[2,3,4],ymm0[5],ymm1[6,7]726; AVX512-NEXT: vextracti128 $1, %ymm2, %xmm3727; AVX512-NEXT: vpunpcklwd {{.*#+}} xmm2 = xmm2[0],xmm3[0],xmm2[1],xmm3[1],xmm2[2],xmm3[2],xmm2[3],xmm3[3]728; AVX512-NEXT: vpshufb {{.*#+}} xmm2 = xmm2[12,13,10,11,4,5,2,3,u,u,u,u,u,u,u,u]729; AVX512-NEXT: vmovq %xmm2, (%r8)730; AVX512-NEXT: vpblendd {{.*#+}} ymm2 = ymm1[0,1],ymm0[2],ymm1[3,4],ymm0[5],ymm1[6,7]731; AVX512-NEXT: vextracti128 $1, %ymm2, %xmm3732; AVX512-NEXT: vpshuflw {{.*#+}} xmm3 = xmm3[3,1,2,3,4,5,6,7]733; AVX512-NEXT: vpshufd {{.*#+}} xmm2 = xmm2[2,1,2,3]734; AVX512-NEXT: vpshuflw {{.*#+}} xmm2 = xmm2[0,2,2,3,4,5,6,7]735; AVX512-NEXT: vpunpcklwd {{.*#+}} xmm2 = xmm2[0],xmm3[0],xmm2[1],xmm3[1],xmm2[2],xmm3[2],xmm2[3],xmm3[3]736; AVX512-NEXT: vmovq %xmm2, (%r9)737; AVX512-NEXT: vpblendd {{.*#+}} ymm2 = ymm1[0,1],ymm0[2,3],ymm1[4,5],ymm0[6,7]738; AVX512-NEXT: vextracti128 $1, %ymm2, %xmm3739; AVX512-NEXT: vpshufd {{.*#+}} xmm3 = xmm3[2,1,2,3]740; AVX512-NEXT: vpshuflw {{.*#+}} xmm3 = xmm3[0,2,2,3,4,5,6,7]741; AVX512-NEXT: vpshufd {{.*#+}} xmm2 = xmm2[2,1,2,3]742; AVX512-NEXT: vpshuflw {{.*#+}} xmm2 = xmm2[1,3,2,3,4,5,6,7]743; AVX512-NEXT: vpunpcklwd {{.*#+}} xmm2 = xmm2[0],xmm3[0],xmm2[1],xmm3[1],xmm2[2],xmm3[2],xmm2[3],xmm3[3]744; AVX512-NEXT: vmovq %xmm2, (%r10)745; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3],ymm1[4,5],ymm0[6],ymm1[7]746; AVX512-NEXT: vpshufhw {{.*#+}} xmm1 = xmm0[0,1,2,3,6,4,6,7]747; AVX512-NEXT: vextracti128 $1, %ymm0, %xmm0748; AVX512-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[0,1,2,1]749; AVX512-NEXT: vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,5,7,6,7]750; AVX512-NEXT: vpunpckhwd {{.*#+}} xmm0 = xmm1[4],xmm0[4],xmm1[5],xmm0[5],xmm1[6],xmm0[6],xmm1[7],xmm0[7]751; AVX512-NEXT: vmovq %xmm0, (%rax)752; AVX512-NEXT: vzeroupper753; AVX512-NEXT: retq754;755; AVX512-FCP-LABEL: load_i16_stride7_vf4:756; AVX512-FCP: # %bb.0:757; AVX512-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax758; AVX512-FCP-NEXT: movq {{[0-9]+}}(%rsp), %r10759; AVX512-FCP-NEXT: vmovdqa (%rdi), %xmm0760; AVX512-FCP-NEXT: vmovdqa 16(%rdi), %xmm1761; AVX512-FCP-NEXT: vmovdqa 32(%rdi), %xmm2762; AVX512-FCP-NEXT: vpblendd {{.*#+}} xmm3 = xmm0[0,1],xmm2[2],xmm0[3]763; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm3 = xmm3[0,1,2,3,4,5],xmm1[6],xmm3[7]764; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm3 = xmm3[0,1,14,15,12,13,10,11,u,u,u,u,u,u,u,u]765; AVX512-FCP-NEXT: vmovdqa (%rdi), %xmm4766; AVX512-FCP-NEXT: vpblendd {{.*#+}} xmm4 = xmm4[0,1],mem[2,3]767; AVX512-FCP-NEXT: vmovdqa (%rdi), %ymm5768; AVX512-FCP-NEXT: vmovdqa 32(%rdi), %ymm6769; AVX512-FCP-NEXT: vmovq %xmm3, (%rsi)770; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm3 = xmm1[0],xmm4[1,2,3,4,5,6],xmm1[7]771; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm3 = xmm3[2,3,0,1,14,15,12,13,u,u,u,u,u,u,u,u]772; AVX512-FCP-NEXT: vmovq %xmm3, (%rdx)773; AVX512-FCP-NEXT: vpblendd {{.*#+}} xmm0 = xmm2[0],xmm0[1],xmm2[2,3]774; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[4,5,u,u,0,1,14,15,u,u,u,u,u,u,u,u]775; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0],xmm1[1],xmm0[2,3,4,5,6,7]776; AVX512-FCP-NEXT: vmovq %xmm0, (%rcx)777; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm6[0],ymm5[1],ymm6[2,3,4],ymm5[5],ymm6[6,7]778; AVX512-FCP-NEXT: vextracti128 $1, %ymm0, %xmm1779; AVX512-FCP-NEXT: vpunpcklwd {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3]780; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[12,13,10,11,4,5,2,3,u,u,u,u,u,u,u,u]781; AVX512-FCP-NEXT: vmovq %xmm0, (%r8)782; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm6[0,1],ymm5[2],ymm6[3,4],ymm5[5],ymm6[6,7]783; AVX512-FCP-NEXT: vmovdqa {{.*#+}} xmm1 = [8,9,4,5,4,5,6,7,8,9,10,11,12,13,14,15]784; AVX512-FCP-NEXT: vpshufb %xmm1, %xmm0, %xmm2785; AVX512-FCP-NEXT: vextracti128 $1, %ymm0, %xmm0786; AVX512-FCP-NEXT: vpshuflw {{.*#+}} xmm0 = xmm0[3,1,2,3,4,5,6,7]787; AVX512-FCP-NEXT: vpunpcklwd {{.*#+}} xmm0 = xmm2[0],xmm0[0],xmm2[1],xmm0[1],xmm2[2],xmm0[2],xmm2[3],xmm0[3]788; AVX512-FCP-NEXT: vmovq %xmm0, (%r9)789; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm6[0,1],ymm5[2,3],ymm6[4,5],ymm5[6,7]790; AVX512-FCP-NEXT: vextracti128 $1, %ymm0, %xmm2791; AVX512-FCP-NEXT: vpshufb %xmm1, %xmm2, %xmm1792; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[10,11,6,7,u,u,u,u,u,u,u,u,u,u,u,u]793; AVX512-FCP-NEXT: vpunpcklwd {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3]794; AVX512-FCP-NEXT: vmovq %xmm0, (%r10)795; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm6[0,1,2],ymm5[3],ymm6[4,5],ymm5[6],ymm6[7]796; AVX512-FCP-NEXT: vextracti128 $1, %ymm0, %xmm1797; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm1 = xmm1[u,u,u,u,u,u,u,u,10,11,6,7,u,u,u,u]798; AVX512-FCP-NEXT: vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,6,4,6,7]799; AVX512-FCP-NEXT: vpunpckhwd {{.*#+}} xmm0 = xmm0[4],xmm1[4],xmm0[5],xmm1[5],xmm0[6],xmm1[6],xmm0[7],xmm1[7]800; AVX512-FCP-NEXT: vmovq %xmm0, (%rax)801; AVX512-FCP-NEXT: vzeroupper802; AVX512-FCP-NEXT: retq803;804; AVX512DQ-LABEL: load_i16_stride7_vf4:805; AVX512DQ: # %bb.0:806; AVX512DQ-NEXT: movq {{[0-9]+}}(%rsp), %rax807; AVX512DQ-NEXT: movq {{[0-9]+}}(%rsp), %r10808; AVX512DQ-NEXT: vmovdqa (%rdi), %xmm2809; AVX512DQ-NEXT: vmovdqa 16(%rdi), %xmm3810; AVX512DQ-NEXT: vmovdqa 32(%rdi), %xmm4811; AVX512DQ-NEXT: vpblendd {{.*#+}} xmm0 = xmm2[0,1],xmm4[2],xmm2[3]812; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,5],xmm3[6],xmm0[7]813; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm5 = xmm0[0,1,14,15,12,13,10,11,u,u,u,u,u,u,u,u]814; AVX512DQ-NEXT: vmovdqa (%rdi), %xmm0815; AVX512DQ-NEXT: vpblendd {{.*#+}} xmm6 = xmm0[0,1],mem[2,3]816; AVX512DQ-NEXT: vmovdqa (%rdi), %ymm0817; AVX512DQ-NEXT: vmovdqa 32(%rdi), %ymm1818; AVX512DQ-NEXT: vmovq %xmm5, (%rsi)819; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm5 = xmm3[0],xmm6[1,2,3,4,5,6],xmm3[7]820; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm5 = xmm5[0,3,2,3]821; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm5 = xmm5[1,0,3,2,4,5,6,7]822; AVX512DQ-NEXT: vmovq %xmm5, (%rdx)823; AVX512DQ-NEXT: vpblendd {{.*#+}} xmm2 = xmm4[0],xmm2[1],xmm4[2,3]824; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm2 = xmm2[4,5,u,u,0,1,14,15,u,u,u,u,u,u,u,u]825; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0],xmm3[1],xmm2[2,3,4,5,6,7]826; AVX512DQ-NEXT: vmovq %xmm2, (%rcx)827; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm2 = ymm1[0],ymm0[1],ymm1[2,3,4],ymm0[5],ymm1[6,7]828; AVX512DQ-NEXT: vextracti128 $1, %ymm2, %xmm3829; AVX512DQ-NEXT: vpunpcklwd {{.*#+}} xmm2 = xmm2[0],xmm3[0],xmm2[1],xmm3[1],xmm2[2],xmm3[2],xmm2[3],xmm3[3]830; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm2 = xmm2[12,13,10,11,4,5,2,3,u,u,u,u,u,u,u,u]831; AVX512DQ-NEXT: vmovq %xmm2, (%r8)832; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm2 = ymm1[0,1],ymm0[2],ymm1[3,4],ymm0[5],ymm1[6,7]833; AVX512DQ-NEXT: vextracti128 $1, %ymm2, %xmm3834; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm3 = xmm3[3,1,2,3,4,5,6,7]835; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm2 = xmm2[2,1,2,3]836; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm2 = xmm2[0,2,2,3,4,5,6,7]837; AVX512DQ-NEXT: vpunpcklwd {{.*#+}} xmm2 = xmm2[0],xmm3[0],xmm2[1],xmm3[1],xmm2[2],xmm3[2],xmm2[3],xmm3[3]838; AVX512DQ-NEXT: vmovq %xmm2, (%r9)839; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm2 = ymm1[0,1],ymm0[2,3],ymm1[4,5],ymm0[6,7]840; AVX512DQ-NEXT: vextracti128 $1, %ymm2, %xmm3841; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm3 = xmm3[2,1,2,3]842; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm3 = xmm3[0,2,2,3,4,5,6,7]843; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm2 = xmm2[2,1,2,3]844; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm2 = xmm2[1,3,2,3,4,5,6,7]845; AVX512DQ-NEXT: vpunpcklwd {{.*#+}} xmm2 = xmm2[0],xmm3[0],xmm2[1],xmm3[1],xmm2[2],xmm3[2],xmm2[3],xmm3[3]846; AVX512DQ-NEXT: vmovq %xmm2, (%r10)847; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3],ymm1[4,5],ymm0[6],ymm1[7]848; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm1 = xmm0[0,1,2,3,6,4,6,7]849; AVX512DQ-NEXT: vextracti128 $1, %ymm0, %xmm0850; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[0,1,2,1]851; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,5,7,6,7]852; AVX512DQ-NEXT: vpunpckhwd {{.*#+}} xmm0 = xmm1[4],xmm0[4],xmm1[5],xmm0[5],xmm1[6],xmm0[6],xmm1[7],xmm0[7]853; AVX512DQ-NEXT: vmovq %xmm0, (%rax)854; AVX512DQ-NEXT: vzeroupper855; AVX512DQ-NEXT: retq856;857; AVX512DQ-FCP-LABEL: load_i16_stride7_vf4:858; AVX512DQ-FCP: # %bb.0:859; AVX512DQ-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax860; AVX512DQ-FCP-NEXT: movq {{[0-9]+}}(%rsp), %r10861; AVX512DQ-FCP-NEXT: vmovdqa (%rdi), %xmm0862; AVX512DQ-FCP-NEXT: vmovdqa 16(%rdi), %xmm1863; AVX512DQ-FCP-NEXT: vmovdqa 32(%rdi), %xmm2864; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} xmm3 = xmm0[0,1],xmm2[2],xmm0[3]865; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm3 = xmm3[0,1,2,3,4,5],xmm1[6],xmm3[7]866; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm3 = xmm3[0,1,14,15,12,13,10,11,u,u,u,u,u,u,u,u]867; AVX512DQ-FCP-NEXT: vmovdqa (%rdi), %xmm4868; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} xmm4 = xmm4[0,1],mem[2,3]869; AVX512DQ-FCP-NEXT: vmovdqa (%rdi), %ymm5870; AVX512DQ-FCP-NEXT: vmovdqa 32(%rdi), %ymm6871; AVX512DQ-FCP-NEXT: vmovq %xmm3, (%rsi)872; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm3 = xmm1[0],xmm4[1,2,3,4,5,6],xmm1[7]873; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm3 = xmm3[2,3,0,1,14,15,12,13,u,u,u,u,u,u,u,u]874; AVX512DQ-FCP-NEXT: vmovq %xmm3, (%rdx)875; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} xmm0 = xmm2[0],xmm0[1],xmm2[2,3]876; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[4,5,u,u,0,1,14,15,u,u,u,u,u,u,u,u]877; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0],xmm1[1],xmm0[2,3,4,5,6,7]878; AVX512DQ-FCP-NEXT: vmovq %xmm0, (%rcx)879; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm6[0],ymm5[1],ymm6[2,3,4],ymm5[5],ymm6[6,7]880; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm0, %xmm1881; AVX512DQ-FCP-NEXT: vpunpcklwd {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3]882; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[12,13,10,11,4,5,2,3,u,u,u,u,u,u,u,u]883; AVX512DQ-FCP-NEXT: vmovq %xmm0, (%r8)884; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm6[0,1],ymm5[2],ymm6[3,4],ymm5[5],ymm6[6,7]885; AVX512DQ-FCP-NEXT: vmovdqa {{.*#+}} xmm1 = [8,9,4,5,4,5,6,7,8,9,10,11,12,13,14,15]886; AVX512DQ-FCP-NEXT: vpshufb %xmm1, %xmm0, %xmm2887; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm0, %xmm0888; AVX512DQ-FCP-NEXT: vpshuflw {{.*#+}} xmm0 = xmm0[3,1,2,3,4,5,6,7]889; AVX512DQ-FCP-NEXT: vpunpcklwd {{.*#+}} xmm0 = xmm2[0],xmm0[0],xmm2[1],xmm0[1],xmm2[2],xmm0[2],xmm2[3],xmm0[3]890; AVX512DQ-FCP-NEXT: vmovq %xmm0, (%r9)891; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm6[0,1],ymm5[2,3],ymm6[4,5],ymm5[6,7]892; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm0, %xmm2893; AVX512DQ-FCP-NEXT: vpshufb %xmm1, %xmm2, %xmm1894; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[10,11,6,7,u,u,u,u,u,u,u,u,u,u,u,u]895; AVX512DQ-FCP-NEXT: vpunpcklwd {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3]896; AVX512DQ-FCP-NEXT: vmovq %xmm0, (%r10)897; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm6[0,1,2],ymm5[3],ymm6[4,5],ymm5[6],ymm6[7]898; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm0, %xmm1899; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm1 = xmm1[u,u,u,u,u,u,u,u,10,11,6,7,u,u,u,u]900; AVX512DQ-FCP-NEXT: vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,6,4,6,7]901; AVX512DQ-FCP-NEXT: vpunpckhwd {{.*#+}} xmm0 = xmm0[4],xmm1[4],xmm0[5],xmm1[5],xmm0[6],xmm1[6],xmm0[7],xmm1[7]902; AVX512DQ-FCP-NEXT: vmovq %xmm0, (%rax)903; AVX512DQ-FCP-NEXT: vzeroupper904; AVX512DQ-FCP-NEXT: retq905;906; AVX512BW-LABEL: load_i16_stride7_vf4:907; AVX512BW: # %bb.0:908; AVX512BW-NEXT: movq {{[0-9]+}}(%rsp), %rax909; AVX512BW-NEXT: movq {{[0-9]+}}(%rsp), %r10910; AVX512BW-NEXT: vmovq {{.*#+}} xmm0 = [0,7,14,21,0,0,0,0]911; AVX512BW-NEXT: vmovdqa64 (%rdi), %zmm1912; AVX512BW-NEXT: vpermw %zmm1, %zmm0, %zmm0913; AVX512BW-NEXT: vmovq %xmm0, (%rsi)914; AVX512BW-NEXT: vmovq {{.*#+}} xmm0 = [1,8,15,22,0,0,0,0]915; AVX512BW-NEXT: vpermw %zmm1, %zmm0, %zmm0916; AVX512BW-NEXT: vmovq %xmm0, (%rdx)917; AVX512BW-NEXT: vmovq {{.*#+}} xmm0 = [2,9,16,23,0,0,0,0]918; AVX512BW-NEXT: vpermw %zmm1, %zmm0, %zmm0919; AVX512BW-NEXT: vmovq %xmm0, (%rcx)920; AVX512BW-NEXT: vmovq {{.*#+}} xmm0 = [3,10,17,24,0,0,0,0]921; AVX512BW-NEXT: vpermw %zmm1, %zmm0, %zmm0922; AVX512BW-NEXT: vmovq %xmm0, (%r8)923; AVX512BW-NEXT: vmovq {{.*#+}} xmm0 = [4,11,18,25,0,0,0,0]924; AVX512BW-NEXT: vpermw %zmm1, %zmm0, %zmm0925; AVX512BW-NEXT: vmovq %xmm0, (%r9)926; AVX512BW-NEXT: vmovq {{.*#+}} xmm0 = [5,12,19,26,0,0,0,0]927; AVX512BW-NEXT: vpermw %zmm1, %zmm0, %zmm0928; AVX512BW-NEXT: vmovq %xmm0, (%r10)929; AVX512BW-NEXT: vmovq {{.*#+}} xmm0 = [6,13,20,27,0,0,0,0]930; AVX512BW-NEXT: vpermw %zmm1, %zmm0, %zmm0931; AVX512BW-NEXT: vmovq %xmm0, (%rax)932; AVX512BW-NEXT: vzeroupper933; AVX512BW-NEXT: retq934;935; AVX512BW-FCP-LABEL: load_i16_stride7_vf4:936; AVX512BW-FCP: # %bb.0:937; AVX512BW-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax938; AVX512BW-FCP-NEXT: movq {{[0-9]+}}(%rsp), %r10939; AVX512BW-FCP-NEXT: vmovq {{.*#+}} xmm0 = [0,7,14,21,0,0,0,0]940; AVX512BW-FCP-NEXT: vmovdqa64 (%rdi), %zmm1941; AVX512BW-FCP-NEXT: vpermw %zmm1, %zmm0, %zmm0942; AVX512BW-FCP-NEXT: vmovq %xmm0, (%rsi)943; AVX512BW-FCP-NEXT: vmovq {{.*#+}} xmm0 = [1,8,15,22,0,0,0,0]944; AVX512BW-FCP-NEXT: vpermw %zmm1, %zmm0, %zmm0945; AVX512BW-FCP-NEXT: vmovq %xmm0, (%rdx)946; AVX512BW-FCP-NEXT: vmovq {{.*#+}} xmm0 = [2,9,16,23,0,0,0,0]947; AVX512BW-FCP-NEXT: vpermw %zmm1, %zmm0, %zmm0948; AVX512BW-FCP-NEXT: vmovq %xmm0, (%rcx)949; AVX512BW-FCP-NEXT: vmovq {{.*#+}} xmm0 = [3,10,17,24,0,0,0,0]950; AVX512BW-FCP-NEXT: vpermw %zmm1, %zmm0, %zmm0951; AVX512BW-FCP-NEXT: vmovq %xmm0, (%r8)952; AVX512BW-FCP-NEXT: vmovq {{.*#+}} xmm0 = [4,11,18,25,0,0,0,0]953; AVX512BW-FCP-NEXT: vpermw %zmm1, %zmm0, %zmm0954; AVX512BW-FCP-NEXT: vmovq %xmm0, (%r9)955; AVX512BW-FCP-NEXT: vmovq {{.*#+}} xmm0 = [5,12,19,26,0,0,0,0]956; AVX512BW-FCP-NEXT: vpermw %zmm1, %zmm0, %zmm0957; AVX512BW-FCP-NEXT: vmovq %xmm0, (%r10)958; AVX512BW-FCP-NEXT: vmovq {{.*#+}} xmm0 = [6,13,20,27,0,0,0,0]959; AVX512BW-FCP-NEXT: vpermw %zmm1, %zmm0, %zmm0960; AVX512BW-FCP-NEXT: vmovq %xmm0, (%rax)961; AVX512BW-FCP-NEXT: vzeroupper962; AVX512BW-FCP-NEXT: retq963;964; AVX512DQ-BW-LABEL: load_i16_stride7_vf4:965; AVX512DQ-BW: # %bb.0:966; AVX512DQ-BW-NEXT: movq {{[0-9]+}}(%rsp), %rax967; AVX512DQ-BW-NEXT: movq {{[0-9]+}}(%rsp), %r10968; AVX512DQ-BW-NEXT: vmovq {{.*#+}} xmm0 = [0,7,14,21,0,0,0,0]969; AVX512DQ-BW-NEXT: vmovdqa64 (%rdi), %zmm1970; AVX512DQ-BW-NEXT: vpermw %zmm1, %zmm0, %zmm0971; AVX512DQ-BW-NEXT: vmovq %xmm0, (%rsi)972; AVX512DQ-BW-NEXT: vmovq {{.*#+}} xmm0 = [1,8,15,22,0,0,0,0]973; AVX512DQ-BW-NEXT: vpermw %zmm1, %zmm0, %zmm0974; AVX512DQ-BW-NEXT: vmovq %xmm0, (%rdx)975; AVX512DQ-BW-NEXT: vmovq {{.*#+}} xmm0 = [2,9,16,23,0,0,0,0]976; AVX512DQ-BW-NEXT: vpermw %zmm1, %zmm0, %zmm0977; AVX512DQ-BW-NEXT: vmovq %xmm0, (%rcx)978; AVX512DQ-BW-NEXT: vmovq {{.*#+}} xmm0 = [3,10,17,24,0,0,0,0]979; AVX512DQ-BW-NEXT: vpermw %zmm1, %zmm0, %zmm0980; AVX512DQ-BW-NEXT: vmovq %xmm0, (%r8)981; AVX512DQ-BW-NEXT: vmovq {{.*#+}} xmm0 = [4,11,18,25,0,0,0,0]982; AVX512DQ-BW-NEXT: vpermw %zmm1, %zmm0, %zmm0983; AVX512DQ-BW-NEXT: vmovq %xmm0, (%r9)984; AVX512DQ-BW-NEXT: vmovq {{.*#+}} xmm0 = [5,12,19,26,0,0,0,0]985; AVX512DQ-BW-NEXT: vpermw %zmm1, %zmm0, %zmm0986; AVX512DQ-BW-NEXT: vmovq %xmm0, (%r10)987; AVX512DQ-BW-NEXT: vmovq {{.*#+}} xmm0 = [6,13,20,27,0,0,0,0]988; AVX512DQ-BW-NEXT: vpermw %zmm1, %zmm0, %zmm0989; AVX512DQ-BW-NEXT: vmovq %xmm0, (%rax)990; AVX512DQ-BW-NEXT: vzeroupper991; AVX512DQ-BW-NEXT: retq992;993; AVX512DQ-BW-FCP-LABEL: load_i16_stride7_vf4:994; AVX512DQ-BW-FCP: # %bb.0:995; AVX512DQ-BW-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax996; AVX512DQ-BW-FCP-NEXT: movq {{[0-9]+}}(%rsp), %r10997; AVX512DQ-BW-FCP-NEXT: vmovq {{.*#+}} xmm0 = [0,7,14,21,0,0,0,0]998; AVX512DQ-BW-FCP-NEXT: vmovdqa64 (%rdi), %zmm1999; AVX512DQ-BW-FCP-NEXT: vpermw %zmm1, %zmm0, %zmm01000; AVX512DQ-BW-FCP-NEXT: vmovq %xmm0, (%rsi)1001; AVX512DQ-BW-FCP-NEXT: vmovq {{.*#+}} xmm0 = [1,8,15,22,0,0,0,0]1002; AVX512DQ-BW-FCP-NEXT: vpermw %zmm1, %zmm0, %zmm01003; AVX512DQ-BW-FCP-NEXT: vmovq %xmm0, (%rdx)1004; AVX512DQ-BW-FCP-NEXT: vmovq {{.*#+}} xmm0 = [2,9,16,23,0,0,0,0]1005; AVX512DQ-BW-FCP-NEXT: vpermw %zmm1, %zmm0, %zmm01006; AVX512DQ-BW-FCP-NEXT: vmovq %xmm0, (%rcx)1007; AVX512DQ-BW-FCP-NEXT: vmovq {{.*#+}} xmm0 = [3,10,17,24,0,0,0,0]1008; AVX512DQ-BW-FCP-NEXT: vpermw %zmm1, %zmm0, %zmm01009; AVX512DQ-BW-FCP-NEXT: vmovq %xmm0, (%r8)1010; AVX512DQ-BW-FCP-NEXT: vmovq {{.*#+}} xmm0 = [4,11,18,25,0,0,0,0]1011; AVX512DQ-BW-FCP-NEXT: vpermw %zmm1, %zmm0, %zmm01012; AVX512DQ-BW-FCP-NEXT: vmovq %xmm0, (%r9)1013; AVX512DQ-BW-FCP-NEXT: vmovq {{.*#+}} xmm0 = [5,12,19,26,0,0,0,0]1014; AVX512DQ-BW-FCP-NEXT: vpermw %zmm1, %zmm0, %zmm01015; AVX512DQ-BW-FCP-NEXT: vmovq %xmm0, (%r10)1016; AVX512DQ-BW-FCP-NEXT: vmovq {{.*#+}} xmm0 = [6,13,20,27,0,0,0,0]1017; AVX512DQ-BW-FCP-NEXT: vpermw %zmm1, %zmm0, %zmm01018; AVX512DQ-BW-FCP-NEXT: vmovq %xmm0, (%rax)1019; AVX512DQ-BW-FCP-NEXT: vzeroupper1020; AVX512DQ-BW-FCP-NEXT: retq1021 %wide.vec = load <28 x i16>, ptr %in.vec, align 641022 %strided.vec0 = shufflevector <28 x i16> %wide.vec, <28 x i16> poison, <4 x i32> <i32 0, i32 7, i32 14, i32 21>1023 %strided.vec1 = shufflevector <28 x i16> %wide.vec, <28 x i16> poison, <4 x i32> <i32 1, i32 8, i32 15, i32 22>1024 %strided.vec2 = shufflevector <28 x i16> %wide.vec, <28 x i16> poison, <4 x i32> <i32 2, i32 9, i32 16, i32 23>1025 %strided.vec3 = shufflevector <28 x i16> %wide.vec, <28 x i16> poison, <4 x i32> <i32 3, i32 10, i32 17, i32 24>1026 %strided.vec4 = shufflevector <28 x i16> %wide.vec, <28 x i16> poison, <4 x i32> <i32 4, i32 11, i32 18, i32 25>1027 %strided.vec5 = shufflevector <28 x i16> %wide.vec, <28 x i16> poison, <4 x i32> <i32 5, i32 12, i32 19, i32 26>1028 %strided.vec6 = shufflevector <28 x i16> %wide.vec, <28 x i16> poison, <4 x i32> <i32 6, i32 13, i32 20, i32 27>1029 store <4 x i16> %strided.vec0, ptr %out.vec0, align 641030 store <4 x i16> %strided.vec1, ptr %out.vec1, align 641031 store <4 x i16> %strided.vec2, ptr %out.vec2, align 641032 store <4 x i16> %strided.vec3, ptr %out.vec3, align 641033 store <4 x i16> %strided.vec4, ptr %out.vec4, align 641034 store <4 x i16> %strided.vec5, ptr %out.vec5, align 641035 store <4 x i16> %strided.vec6, ptr %out.vec6, align 641036 ret void1037}1038 1039define void @load_i16_stride7_vf8(ptr %in.vec, ptr %out.vec0, ptr %out.vec1, ptr %out.vec2, ptr %out.vec3, ptr %out.vec4, ptr %out.vec5, ptr %out.vec6) nounwind {1040; SSE-LABEL: load_i16_stride7_vf8:1041; SSE: # %bb.0:1042; SSE-NEXT: movdqa (%rdi), %xmm01043; SSE-NEXT: movdqa 16(%rdi), %xmm91044; SSE-NEXT: movaps 32(%rdi), %xmm21045; SSE-NEXT: movaps 48(%rdi), %xmm81046; SSE-NEXT: movdqa 80(%rdi), %xmm71047; SSE-NEXT: movdqa 64(%rdi), %xmm11048; SSE-NEXT: movdqa 96(%rdi), %xmm61049; SSE-NEXT: pshufd {{.*#+}} xmm3 = xmm6[0,0,0,0]1050; SSE-NEXT: movdqa {{.*#+}} xmm11 = [65535,65535,65535,65535,65535,65535,65535,0]1051; SSE-NEXT: movdqa %xmm11, %xmm41052; SSE-NEXT: pandn %xmm3, %xmm41053; SSE-NEXT: movdqa %xmm1, %xmm51054; SSE-NEXT: punpckldq {{.*#+}} xmm5 = xmm5[0],xmm7[0],xmm5[1],xmm7[1]1055; SSE-NEXT: pand %xmm11, %xmm51056; SSE-NEXT: por %xmm4, %xmm51057; SSE-NEXT: movdqa {{.*#+}} xmm3 = [65535,65535,65535,65535,65535,0,0,0]1058; SSE-NEXT: movdqa %xmm3, %xmm101059; SSE-NEXT: pandn %xmm5, %xmm101060; SSE-NEXT: movaps %xmm2, %xmm51061; SSE-NEXT: shufps {{.*#+}} xmm5 = xmm5[2,2],xmm8[2,2]1062; SSE-NEXT: movaps {{.*#+}} xmm4 = [65535,65535,65535,0,0,65535,65535,65535]1063; SSE-NEXT: movaps %xmm4, %xmm121064; SSE-NEXT: andnps %xmm5, %xmm121065; SSE-NEXT: pshufd {{.*#+}} xmm13 = xmm9[2,2,3,3]1066; SSE-NEXT: pshufd {{.*#+}} xmm5 = xmm0[0,1,0,3]1067; SSE-NEXT: pshufhw {{.*#+}} xmm5 = xmm5[0,1,2,3,4,7,6,7]1068; SSE-NEXT: punpckhdq {{.*#+}} xmm5 = xmm5[2],xmm13[2],xmm5[3],xmm13[3]1069; SSE-NEXT: pand %xmm4, %xmm51070; SSE-NEXT: por %xmm12, %xmm51071; SSE-NEXT: pand %xmm3, %xmm51072; SSE-NEXT: por %xmm10, %xmm51073; SSE-NEXT: pshufd {{.*#+}} xmm14 = xmm6[0,1,0,1]1074; SSE-NEXT: movdqa %xmm6, %xmm101075; SSE-NEXT: pslldq {{.*#+}} xmm10 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,xmm10[0,1,2,3,4,5]1076; SSE-NEXT: movdqa %xmm11, %xmm121077; SSE-NEXT: pandn %xmm10, %xmm121078; SSE-NEXT: movdqa %xmm7, %xmm101079; SSE-NEXT: psrld $16, %xmm101080; SSE-NEXT: movdqa %xmm1, %xmm151081; SSE-NEXT: psrldq {{.*#+}} xmm15 = xmm15[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero1082; SSE-NEXT: punpckldq {{.*#+}} xmm15 = xmm15[0],xmm10[0],xmm15[1],xmm10[1]1083; SSE-NEXT: pand %xmm11, %xmm151084; SSE-NEXT: por %xmm12, %xmm151085; SSE-NEXT: movdqa %xmm3, %xmm131086; SSE-NEXT: pandn %xmm15, %xmm131087; SSE-NEXT: movdqa {{.*#+}} xmm10 = [65535,0,65535,65535,65535,65535,65535,65535]1088; SSE-NEXT: movdqa %xmm10, %xmm121089; SSE-NEXT: pandn %xmm0, %xmm121090; SSE-NEXT: movdqa %xmm9, %xmm151091; SSE-NEXT: pand %xmm10, %xmm151092; SSE-NEXT: por %xmm12, %xmm151093; SSE-NEXT: pshufd {{.*#+}} xmm12 = xmm15[0,3,2,3]1094; SSE-NEXT: pshuflw {{.*#+}} xmm12 = xmm12[1,0,3,3,4,5,6,7]1095; SSE-NEXT: pand %xmm4, %xmm121096; SSE-NEXT: movaps %xmm2, %xmm151097; SSE-NEXT: punpckhwd {{.*#+}} xmm15 = xmm15[4],xmm8[4],xmm15[5],xmm8[5],xmm15[6],xmm8[6],xmm15[7],xmm8[7]1098; SSE-NEXT: pshufd {{.*#+}} xmm15 = xmm15[2,1,2,1]1099; SSE-NEXT: pshuflw {{.*#+}} xmm15 = xmm15[0,0,0,0,4,5,6,7]1100; SSE-NEXT: pshufhw {{.*#+}} xmm15 = xmm15[0,1,2,3,7,7,7,7]1101; SSE-NEXT: pandn %xmm15, %xmm41102; SSE-NEXT: movdqa %xmm1, %xmm151103; SSE-NEXT: punpckhdq {{.*#+}} xmm15 = xmm15[2],xmm7[2],xmm15[3],xmm7[3]1104; SSE-NEXT: por %xmm12, %xmm41105; SSE-NEXT: movdqa %xmm0, %xmm121106; SSE-NEXT: punpcklwd {{.*#+}} xmm12 = xmm12[0],xmm9[0],xmm12[1],xmm9[1],xmm12[2],xmm9[2],xmm12[3],xmm9[3]1107; SSE-NEXT: pand %xmm3, %xmm41108; SSE-NEXT: por %xmm13, %xmm41109; SSE-NEXT: movdqa %xmm1, %xmm131110; SSE-NEXT: punpckhwd {{.*#+}} xmm13 = xmm13[4],xmm7[4],xmm13[5],xmm7[5],xmm13[6],xmm7[6],xmm13[7],xmm7[7]1111; SSE-NEXT: pshufd {{.*#+}} xmm13 = xmm13[0,1,2,1]1112; SSE-NEXT: pshufhw {{.*#+}} xmm13 = xmm13[0,1,2,3,4,4,7,7]1113; SSE-NEXT: punpckhwd {{.*#+}} xmm13 = xmm13[4],xmm6[4],xmm13[5],xmm6[5],xmm13[6],xmm6[6],xmm13[7],xmm6[7]1114; SSE-NEXT: pshufd {{.*#+}} xmm15 = xmm15[0,1,0,1]1115; SSE-NEXT: pand %xmm11, %xmm151116; SSE-NEXT: pandn %xmm14, %xmm111117; SSE-NEXT: por %xmm15, %xmm111118; SSE-NEXT: movdqa %xmm3, %xmm141119; SSE-NEXT: pandn %xmm11, %xmm141120; SSE-NEXT: pshufd {{.*#+}} xmm15 = xmm8[2,2,3,3]1121; SSE-NEXT: pshufd {{.*#+}} xmm11 = xmm2[0,1,0,3]1122; SSE-NEXT: pshufhw {{.*#+}} xmm11 = xmm11[0,1,2,3,4,5,4,7]1123; SSE-NEXT: punpckhqdq {{.*#+}} xmm11 = xmm11[1],xmm15[1]1124; SSE-NEXT: pshufd {{.*#+}} xmm15 = xmm12[2,1,2,3]1125; SSE-NEXT: pshuflw {{.*#+}} xmm15 = xmm15[0,3,2,3,4,5,6,7]1126; SSE-NEXT: movss {{.*#+}} xmm11 = xmm15[0],xmm11[1,2,3]1127; SSE-NEXT: andps %xmm3, %xmm111128; SSE-NEXT: orps %xmm14, %xmm111129; SSE-NEXT: movdqa %xmm10, %xmm141130; SSE-NEXT: pandn %xmm2, %xmm141131; SSE-NEXT: movdqa %xmm8, %xmm151132; SSE-NEXT: pand %xmm10, %xmm151133; SSE-NEXT: por %xmm14, %xmm151134; SSE-NEXT: movdqa %xmm0, %xmm141135; SSE-NEXT: psrld $16, %xmm141136; SSE-NEXT: punpckhwd {{.*#+}} xmm14 = xmm14[4],xmm9[4],xmm14[5],xmm9[5],xmm14[6],xmm9[6],xmm14[7],xmm9[7]1137; SSE-NEXT: pshuflw {{.*#+}} xmm15 = xmm15[0,1,1,0,4,5,6,7]1138; SSE-NEXT: pshufhw {{.*#+}} xmm15 = xmm15[0,1,2,3,7,7,7,7]1139; SSE-NEXT: pshufhw {{.*#+}} xmm12 = xmm12[0,1,2,3,6,5,6,7]1140; SSE-NEXT: pshufd {{.*#+}} xmm12 = xmm12[2,2,2,2]1141; SSE-NEXT: movss {{.*#+}} xmm15 = xmm12[0],xmm15[1,2,3]1142; SSE-NEXT: pshufd {{.*#+}} xmm12 = xmm0[2,3,2,3]1143; SSE-NEXT: punpckhwd {{.*#+}} xmm0 = xmm0[4],xmm9[4],xmm0[5],xmm9[5],xmm0[6],xmm9[6],xmm0[7],xmm9[7]1144; SSE-NEXT: andps %xmm3, %xmm151145; SSE-NEXT: pshuflw {{.*#+}} xmm13 = xmm13[2,1,2,3,4,5,6,7]1146; SSE-NEXT: pshufd {{.*#+}} xmm13 = xmm13[0,1,2,0]1147; SSE-NEXT: pshufhw {{.*#+}} xmm13 = xmm13[0,1,2,3,4,6,4,7]1148; SSE-NEXT: pandn %xmm13, %xmm31149; SSE-NEXT: movdqa %xmm2, %xmm131150; SSE-NEXT: psrlq $16, %xmm131151; SSE-NEXT: punpcklwd {{.*#+}} xmm13 = xmm13[0],xmm8[0],xmm13[1],xmm8[1],xmm13[2],xmm8[2],xmm13[3],xmm8[3]1152; SSE-NEXT: por %xmm15, %xmm31153; SSE-NEXT: movdqa %xmm7, %xmm151154; SSE-NEXT: pand %xmm10, %xmm151155; SSE-NEXT: pandn %xmm1, %xmm101156; SSE-NEXT: por %xmm15, %xmm101157; SSE-NEXT: pshufd {{.*#+}} xmm15 = xmm1[0,1,0,3]1158; SSE-NEXT: pshufhw {{.*#+}} xmm15 = xmm15[0,1,2,3,4,5,4,7]1159; SSE-NEXT: punpckhdq {{.*#+}} xmm15 = xmm15[2],xmm7[2],xmm15[3],xmm7[3]1160; SSE-NEXT: punpckhwd {{.*#+}} xmm15 = xmm15[4],xmm6[4],xmm15[5],xmm6[5],xmm15[6],xmm6[6],xmm15[7],xmm6[7]1161; SSE-NEXT: pshufd {{.*#+}} xmm10 = xmm10[0,1,0,3]1162; SSE-NEXT: pshufhw {{.*#+}} xmm10 = xmm10[0,1,2,3,5,4,7,7]1163; SSE-NEXT: punpckhwd {{.*#+}} xmm10 = xmm10[4],xmm6[4],xmm10[5],xmm6[5],xmm10[6],xmm6[6],xmm10[7],xmm6[7]1164; SSE-NEXT: psrlq $48, %xmm91165; SSE-NEXT: punpcklwd {{.*#+}} xmm12 = xmm12[0],xmm9[0],xmm12[1],xmm9[1],xmm12[2],xmm9[2],xmm12[3],xmm9[3]1166; SSE-NEXT: movdqa %xmm2, %xmm91167; SSE-NEXT: punpcklwd {{.*#+}} xmm9 = xmm9[0],xmm8[0],xmm9[1],xmm8[1],xmm9[2],xmm8[2],xmm9[3],xmm8[3]1168; SSE-NEXT: pshufd {{.*#+}} xmm8 = xmm8[1,1,1,1]1169; SSE-NEXT: pshuflw {{.*#+}} xmm7 = xmm7[1,1,1,1,4,5,6,7]1170; SSE-NEXT: pshufd {{.*#+}} xmm6 = xmm6[0,1,0,3]1171; SSE-NEXT: pshufd {{.*#+}} xmm13 = xmm13[1,1,1,1]1172; SSE-NEXT: punpckldq {{.*#+}} xmm12 = xmm12[0],xmm13[0],xmm12[1],xmm13[1]1173; SSE-NEXT: movq {{[0-9]+}}(%rsp), %rax1174; SSE-NEXT: movq {{[0-9]+}}(%rsp), %rdi1175; SSE-NEXT: pshufd {{.*#+}} xmm13 = xmm15[3,1,2,0]1176; SSE-NEXT: pshufhw {{.*#+}} xmm13 = xmm13[0,1,2,3,4,6,6,7]1177; SSE-NEXT: pshufd {{.*#+}} xmm13 = xmm13[0,1,2,1]1178; SSE-NEXT: pshufhw {{.*#+}} xmm13 = xmm13[0,1,2,3,5,6,4,7]1179; SSE-NEXT: movsd {{.*#+}} xmm13 = xmm12[0],xmm13[1]1180; SSE-NEXT: pshuflw {{.*#+}} xmm10 = xmm10[0,2,2,3,4,5,6,7]1181; SSE-NEXT: pshufhw {{.*#+}} xmm9 = xmm9[0,1,2,3,6,5,6,7]1182; SSE-NEXT: pshufd {{.*#+}} xmm9 = xmm9[2,3,2,3]1183; SSE-NEXT: punpckldq {{.*#+}} xmm14 = xmm14[0],xmm9[0],xmm14[1],xmm9[1]1184; SSE-NEXT: shufps {{.*#+}} xmm14 = xmm14[0,1],xmm10[0,2]1185; SSE-NEXT: psrldq {{.*#+}} xmm2 = xmm2[6,7,8,9,10,11,12,13,14,15],zero,zero,zero,zero,zero,zero1186; SSE-NEXT: punpcklwd {{.*#+}} xmm2 = xmm2[0],xmm8[0],xmm2[1],xmm8[1],xmm2[2],xmm8[2],xmm2[3],xmm8[3]1187; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm2[1,1,1,1]1188; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[2,1,2,3]1189; SSE-NEXT: pshuflw {{.*#+}} xmm0 = xmm0[0,3,2,3,4,5,6,7]1190; SSE-NEXT: punpckldq {{.*#+}} xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1]1191; SSE-NEXT: punpcklwd {{.*#+}} xmm1 = xmm1[0],xmm7[0],xmm1[1],xmm7[1],xmm1[2],xmm7[2],xmm1[3],xmm7[3]1192; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[2,2,2,2]1193; SSE-NEXT: pshufhw {{.*#+}} xmm2 = xmm6[0,1,2,3,4,5,4,7]1194; SSE-NEXT: punpckhdq {{.*#+}} xmm1 = xmm1[2],xmm2[2],xmm1[3],xmm2[3]1195; SSE-NEXT: movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]1196; SSE-NEXT: movdqa %xmm5, (%rsi)1197; SSE-NEXT: movdqa %xmm4, (%rdx)1198; SSE-NEXT: movaps %xmm11, (%rcx)1199; SSE-NEXT: movdqa %xmm3, (%r8)1200; SSE-NEXT: movapd %xmm13, (%r9)1201; SSE-NEXT: movaps %xmm14, (%rdi)1202; SSE-NEXT: movapd %xmm1, (%rax)1203; SSE-NEXT: retq1204;1205; AVX-LABEL: load_i16_stride7_vf8:1206; AVX: # %bb.0:1207; AVX-NEXT: movq {{[0-9]+}}(%rsp), %rax1208; AVX-NEXT: movq {{[0-9]+}}(%rsp), %r101209; AVX-NEXT: vmovdqa 80(%rdi), %xmm21210; AVX-NEXT: vmovdqa 64(%rdi), %xmm31211; AVX-NEXT: vpunpckldq {{.*#+}} xmm0 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]1212; AVX-NEXT: vmovdqa 96(%rdi), %xmm41213; AVX-NEXT: vpshufd {{.*#+}} xmm1 = xmm4[0,0,0,0]1214; AVX-NEXT: vpblendw {{.*#+}} xmm6 = xmm0[0,1,2,3,4,5,6],xmm1[7]1215; AVX-NEXT: vmovdqa (%rdi), %xmm01216; AVX-NEXT: vmovdqa 16(%rdi), %xmm11217; AVX-NEXT: vmovaps 32(%rdi), %xmm51218; AVX-NEXT: vmovaps 48(%rdi), %xmm71219; AVX-NEXT: vpshufd {{.*#+}} xmm8 = xmm1[2,2,3,3]1220; AVX-NEXT: vpshufd {{.*#+}} xmm9 = xmm0[0,1,0,3]1221; AVX-NEXT: vpshufhw {{.*#+}} xmm9 = xmm9[0,1,2,3,4,7,6,7]1222; AVX-NEXT: vpunpckhdq {{.*#+}} xmm8 = xmm9[2],xmm8[2],xmm9[3],xmm8[3]1223; AVX-NEXT: vinsertps {{.*#+}} xmm9 = zero,xmm5[2],xmm7[2],zero1224; AVX-NEXT: vpblendw {{.*#+}} xmm8 = xmm8[0,1,2],xmm9[3,4],xmm8[5,6,7]1225; AVX-NEXT: vpblendw {{.*#+}} xmm6 = xmm8[0,1,2,3,4],xmm6[5,6,7]1226; AVX-NEXT: vpsrld $16, %xmm2, %xmm81227; AVX-NEXT: vpsrldq {{.*#+}} xmm9 = xmm3[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero1228; AVX-NEXT: vpunpckldq {{.*#+}} xmm8 = xmm9[0],xmm8[0],xmm9[1],xmm8[1]1229; AVX-NEXT: vpslldq {{.*#+}} xmm9 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,xmm4[0,1,2,3,4,5]1230; AVX-NEXT: vpblendw {{.*#+}} xmm8 = xmm8[0,1,2,3,4,5,6],xmm9[7]1231; AVX-NEXT: vpunpckhwd {{.*#+}} xmm9 = xmm5[4],xmm7[4],xmm5[5],xmm7[5],xmm5[6],xmm7[6],xmm5[7],xmm7[7]1232; AVX-NEXT: vpshufb {{.*#+}} xmm9 = xmm9[u,u,u,u,u,u,8,9,6,7,u,u,u,u,u,u]1233; AVX-NEXT: vpblendw {{.*#+}} xmm10 = xmm1[0],xmm0[1],xmm1[2,3,4,5,6,7]1234; AVX-NEXT: vpshufd {{.*#+}} xmm10 = xmm10[0,3,2,3]1235; AVX-NEXT: vpshuflw {{.*#+}} xmm10 = xmm10[1,0,3,3,4,5,6,7]1236; AVX-NEXT: vpblendw {{.*#+}} xmm9 = xmm10[0,1,2],xmm9[3,4],xmm10[5,6,7]1237; AVX-NEXT: vpblendw {{.*#+}} xmm8 = xmm9[0,1,2,3,4],xmm8[5,6,7]1238; AVX-NEXT: vpshufd {{.*#+}} xmm9 = xmm2[2,2,2,2]1239; AVX-NEXT: vpblendw {{.*#+}} xmm9 = xmm3[0,1,2,3,4,5],xmm9[6,7]1240; AVX-NEXT: vpshufd {{.*#+}} xmm10 = xmm4[0,1,0,1]1241; AVX-NEXT: vpblendw {{.*#+}} xmm9 = xmm9[0,1,2,3,4,5,6],xmm10[7]1242; AVX-NEXT: vpshufd {{.*#+}} xmm10 = xmm7[2,2,3,3]1243; AVX-NEXT: vpshufd {{.*#+}} xmm11 = xmm5[0,1,0,3]1244; AVX-NEXT: vpshufhw {{.*#+}} xmm11 = xmm11[0,1,2,3,4,5,4,7]1245; AVX-NEXT: vpunpckhqdq {{.*#+}} xmm10 = xmm11[1],xmm10[1]1246; AVX-NEXT: vpunpcklwd {{.*#+}} xmm11 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3]1247; AVX-NEXT: vpshufd {{.*#+}} xmm12 = xmm11[2,1,2,3]1248; AVX-NEXT: vpshuflw {{.*#+}} xmm12 = xmm12[0,3,2,3,4,5,6,7]1249; AVX-NEXT: vpblendw {{.*#+}} xmm10 = xmm12[0,1],xmm10[2,3,4,5,6,7]1250; AVX-NEXT: vpblendw {{.*#+}} xmm9 = xmm10[0,1,2,3,4],xmm9[5,6,7]1251; AVX-NEXT: vpshufhw {{.*#+}} xmm10 = xmm11[0,1,2,3,6,5,6,7]1252; AVX-NEXT: vpshufd {{.*#+}} xmm10 = xmm10[2,2,2,2]1253; AVX-NEXT: vpblendw {{.*#+}} xmm11 = xmm7[0],xmm5[1],xmm7[2,3,4,5,6,7]1254; AVX-NEXT: vpshuflw {{.*#+}} xmm11 = xmm11[0,1,1,0,4,5,6,7]1255; AVX-NEXT: vpshufhw {{.*#+}} xmm11 = xmm11[0,1,2,3,7,7,7,7]1256; AVX-NEXT: vpblendw {{.*#+}} xmm10 = xmm10[0,1],xmm11[2,3,4,5,6,7]1257; AVX-NEXT: vpunpckhwd {{.*#+}} xmm11 = xmm3[4],xmm2[4],xmm3[5],xmm2[5],xmm3[6],xmm2[6],xmm3[7],xmm2[7]1258; AVX-NEXT: vpshufd {{.*#+}} xmm11 = xmm11[0,1,2,1]1259; AVX-NEXT: vpshufhw {{.*#+}} xmm11 = xmm11[0,1,2,3,4,4,7,7]1260; AVX-NEXT: vpunpckhwd {{.*#+}} xmm11 = xmm11[4],xmm4[4],xmm11[5],xmm4[5],xmm11[6],xmm4[6],xmm11[7],xmm4[7]1261; AVX-NEXT: vpshufb {{.*#+}} xmm11 = xmm11[u,u,u,u,u,u,u,u,u,u,4,5,8,9,2,3]1262; AVX-NEXT: vpblendw {{.*#+}} xmm10 = xmm10[0,1,2,3,4],xmm11[5,6,7]1263; AVX-NEXT: vpsrlq $16, %xmm5, %xmm111264; AVX-NEXT: vpunpcklwd {{.*#+}} xmm11 = xmm11[0],xmm7[0],xmm11[1],xmm7[1],xmm11[2],xmm7[2],xmm11[3],xmm7[3]1265; AVX-NEXT: vpsrlq $48, %xmm1, %xmm121266; AVX-NEXT: vpshufd {{.*#+}} xmm13 = xmm0[2,3,2,3]1267; AVX-NEXT: vpunpcklwd {{.*#+}} xmm12 = xmm13[0],xmm12[0],xmm13[1],xmm12[1],xmm13[2],xmm12[2],xmm13[3],xmm12[3]1268; AVX-NEXT: vpblendw {{.*#+}} xmm11 = xmm12[0,1],xmm11[2,3],xmm12[4,5,6,7]1269; AVX-NEXT: vpshufd {{.*#+}} xmm12 = xmm3[0,1,0,3]1270; AVX-NEXT: vpshufhw {{.*#+}} xmm12 = xmm12[0,1,2,3,4,5,4,7]1271; AVX-NEXT: vpunpckhdq {{.*#+}} xmm12 = xmm12[2],xmm2[2],xmm12[3],xmm2[3]1272; AVX-NEXT: vpunpckhwd {{.*#+}} xmm12 = xmm12[4],xmm4[4],xmm12[5],xmm4[5],xmm12[6],xmm4[6],xmm12[7],xmm4[7]1273; AVX-NEXT: vpshufb {{.*#+}} xmm12 = xmm12[u,u,u,u,u,u,u,u,0,1,4,5,8,9,6,7]1274; AVX-NEXT: vpblendw {{.*#+}} xmm11 = xmm11[0,1,2,3],xmm12[4,5,6,7]1275; AVX-NEXT: vpsrld $16, %xmm0, %xmm121276; AVX-NEXT: vpunpckhwd {{.*#+}} xmm12 = xmm12[4],xmm1[4],xmm12[5],xmm1[5],xmm12[6],xmm1[6],xmm12[7],xmm1[7]1277; AVX-NEXT: vpunpcklwd {{.*#+}} xmm13 = xmm5[0],xmm7[0],xmm5[1],xmm7[1],xmm5[2],xmm7[2],xmm5[3],xmm7[3]1278; AVX-NEXT: vpshufhw {{.*#+}} xmm13 = xmm13[0,1,2,3,6,5,6,7]1279; AVX-NEXT: vpshufd {{.*#+}} xmm13 = xmm13[2,2,2,2]1280; AVX-NEXT: vpblendw {{.*#+}} xmm12 = xmm12[0,1],xmm13[2,3],xmm12[4,5,6,7]1281; AVX-NEXT: vpblendw {{.*#+}} xmm13 = xmm2[0],xmm3[1],xmm2[2,3,4,5,6,7]1282; AVX-NEXT: vpshufd {{.*#+}} xmm13 = xmm13[0,1,0,3]1283; AVX-NEXT: vpshufhw {{.*#+}} xmm13 = xmm13[0,1,2,3,5,4,7,7]1284; AVX-NEXT: vpunpckhwd {{.*#+}} xmm13 = xmm13[4],xmm4[4],xmm13[5],xmm4[5],xmm13[6],xmm4[6],xmm13[7],xmm4[7]1285; AVX-NEXT: vpshuflw {{.*#+}} xmm13 = xmm13[0,2,2,3,4,5,6,7]1286; AVX-NEXT: vpshufd {{.*#+}} xmm13 = xmm13[0,1,0,2]1287; AVX-NEXT: vpblendw {{.*#+}} xmm12 = xmm12[0,1,2,3],xmm13[4,5,6,7]1288; AVX-NEXT: vpmovzxwd {{.*#+}} xmm2 = xmm2[0],zero,xmm2[1],zero,xmm2[2],zero,xmm2[3],zero1289; AVX-NEXT: vpunpcklwd {{.*#+}} xmm2 = xmm3[0],xmm2[0],xmm3[1],xmm2[1],xmm3[2],xmm2[2],xmm3[3],xmm2[3]1290; AVX-NEXT: vpshufd {{.*#+}} xmm3 = xmm4[0,1,0,3]1291; AVX-NEXT: vpshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,4,5,4,7]1292; AVX-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,5],xmm3[6,7]1293; AVX-NEXT: vpshufd {{.*#+}} xmm3 = xmm7[1,1,1,1]1294; AVX-NEXT: vpsrldq {{.*#+}} xmm4 = xmm5[6,7,8,9,10,11,12,13,14,15],zero,zero,zero,zero,zero,zero1295; AVX-NEXT: vpunpcklwd {{.*#+}} xmm3 = xmm4[0],xmm3[0],xmm4[1],xmm3[1],xmm4[2],xmm3[2],xmm4[3],xmm3[3]1296; AVX-NEXT: vpunpckhwd {{.*#+}} xmm0 = xmm0[4],xmm1[4],xmm0[5],xmm1[5],xmm0[6],xmm1[6],xmm0[7],xmm1[7]1297; AVX-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[2,1,2,3]1298; AVX-NEXT: vpshuflw {{.*#+}} xmm0 = xmm0[0,3,2,3,4,5,6,7]1299; AVX-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1],xmm3[2,3],xmm0[4,5,6,7]1300; AVX-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2,3],xmm2[4,5,6,7]1301; AVX-NEXT: vmovdqa %xmm6, (%rsi)1302; AVX-NEXT: vmovdqa %xmm8, (%rdx)1303; AVX-NEXT: vmovdqa %xmm9, (%rcx)1304; AVX-NEXT: vmovdqa %xmm10, (%r8)1305; AVX-NEXT: vmovdqa %xmm11, (%r9)1306; AVX-NEXT: vmovdqa %xmm12, (%r10)1307; AVX-NEXT: vmovdqa %xmm0, (%rax)1308; AVX-NEXT: retq1309;1310; AVX2-LABEL: load_i16_stride7_vf8:1311; AVX2: # %bb.0:1312; AVX2-NEXT: movq {{[0-9]+}}(%rsp), %rax1313; AVX2-NEXT: movq {{[0-9]+}}(%rsp), %r101314; AVX2-NEXT: vmovdqa (%rdi), %ymm31315; AVX2-NEXT: vmovdqa 32(%rdi), %ymm41316; AVX2-NEXT: vmovdqa 96(%rdi), %xmm01317; AVX2-NEXT: vmovdqa 64(%rdi), %xmm11318; AVX2-NEXT: vpblendd {{.*#+}} xmm5 = xmm0[0],xmm1[1,2,3]1319; AVX2-NEXT: vmovdqa 80(%rdi), %xmm21320; AVX2-NEXT: vpunpcklwd {{.*#+}} xmm5 = xmm5[0],xmm2[0],xmm5[1],xmm2[1],xmm5[2],xmm2[2],xmm5[3],xmm2[3]1321; AVX2-NEXT: vmovdqa {{.*#+}} xmm6 = [0,1,14,15,12,13,10,11,8,9,12,13,10,11,4,5]1322; AVX2-NEXT: vpshufb %xmm6, %xmm5, %xmm51323; AVX2-NEXT: vpblendd {{.*#+}} ymm7 = ymm3[0,1],ymm4[2],ymm3[3,4,5],ymm4[6],ymm3[7]1324; AVX2-NEXT: vextracti128 $1, %ymm7, %xmm81325; AVX2-NEXT: vpblendw {{.*#+}} xmm7 = xmm7[0,1,2,3],xmm8[4],xmm7[5],xmm8[6],xmm7[7]1326; AVX2-NEXT: vpshufb %xmm6, %xmm7, %xmm61327; AVX2-NEXT: vpblendw {{.*#+}} xmm5 = xmm6[0,1,2,3,4],xmm5[5,6,7]1328; AVX2-NEXT: vmovdqa 96(%rdi), %xmm71329; AVX2-NEXT: vmovdqa 64(%rdi), %xmm81330; AVX2-NEXT: vpblendd {{.*#+}} xmm9 = xmm7[0,1],xmm8[2,3]1331; AVX2-NEXT: vpblendw {{.*#+}} xmm6 = xmm9[0,1,2],xmm2[3],xmm9[4,5,6,7]1332; AVX2-NEXT: vpshufd {{.*#+}} xmm6 = xmm6[0,1,2,1]1333; AVX2-NEXT: vpshufhw {{.*#+}} xmm6 = xmm6[0,1,2,3,4,4,7,6]1334; AVX2-NEXT: vpblendd {{.*#+}} ymm10 = ymm3[0,1,2],ymm4[3],ymm3[4,5],ymm4[6],ymm3[7]1335; AVX2-NEXT: vextracti128 $1, %ymm10, %xmm111336; AVX2-NEXT: vpblendw {{.*#+}} xmm10 = xmm11[0],xmm10[1],xmm11[2,3,4,5],xmm10[6],xmm11[7]1337; AVX2-NEXT: vpshufb {{.*#+}} xmm10 = xmm10[2,3,0,1,14,15,12,13,10,11,u,u,u,u,u,u]1338; AVX2-NEXT: vpblendw {{.*#+}} xmm6 = xmm10[0,1,2,3,4],xmm6[5,6,7]1339; AVX2-NEXT: vpblendw {{.*#+}} xmm9 = xmm9[0,1,2,3],xmm2[4],xmm9[5,6,7]1340; AVX2-NEXT: vpshufd {{.*#+}} xmm9 = xmm9[0,1,2,1]1341; AVX2-NEXT: vpshufhw {{.*#+}} xmm9 = xmm9[0,1,2,3,4,5,4,7]1342; AVX2-NEXT: vpblendd {{.*#+}} ymm10 = ymm4[0],ymm3[1],ymm4[2,3],ymm3[4],ymm4[5,6,7]1343; AVX2-NEXT: vextracti128 $1, %ymm10, %xmm111344; AVX2-NEXT: vpblendw {{.*#+}} xmm10 = xmm10[0],xmm11[1],xmm10[2,3,4,5],xmm11[6],xmm10[7]1345; AVX2-NEXT: vpshufb {{.*#+}} xmm10 = xmm10[4,5,2,3,0,1,14,15,12,13,u,u,u,u,u,u]1346; AVX2-NEXT: vpblendw {{.*#+}} xmm9 = xmm10[0,1,2,3,4],xmm9[5,6,7]1347; AVX2-NEXT: vpblendd {{.*#+}} xmm11 = xmm1[0,1],xmm0[2],xmm1[3]1348; AVX2-NEXT: vpunpckhwd {{.*#+}} xmm10 = xmm11[4],xmm2[4],xmm11[5],xmm2[5],xmm11[6],xmm2[6],xmm11[7],xmm2[7]1349; AVX2-NEXT: vpshufb {{.*#+}} xmm10 = xmm10[u,u,u,u,u,u,u,u,u,u,8,9,6,7,0,1]1350; AVX2-NEXT: vpblendd {{.*#+}} ymm12 = ymm4[0],ymm3[1],ymm4[2,3,4],ymm3[5],ymm4[6,7]1351; AVX2-NEXT: vextracti128 $1, %ymm12, %xmm131352; AVX2-NEXT: vpblendw {{.*#+}} xmm12 = xmm13[0],xmm12[1],xmm13[2],xmm12[3],xmm13[4,5,6,7]1353; AVX2-NEXT: vpshuflw {{.*#+}} xmm12 = xmm12[3,2,1,0,4,5,6,7]1354; AVX2-NEXT: vpshufhw {{.*#+}} xmm12 = xmm12[0,1,2,3,7,7,7,7]1355; AVX2-NEXT: vpblendw {{.*#+}} xmm10 = xmm12[0,1,2,3,4],xmm10[5,6,7]1356; AVX2-NEXT: vpshufb {{.*#+}} xmm11 = xmm11[0,1,2,3,4,5,6,7,0,1,14,15,u,u,10,11]1357; AVX2-NEXT: vpblendw {{.*#+}} xmm11 = xmm11[0,1,2,3,4,5],xmm2[6],xmm11[7]1358; AVX2-NEXT: vpblendd {{.*#+}} ymm12 = ymm4[0,1],ymm3[2],ymm4[3,4],ymm3[5],ymm4[6,7]1359; AVX2-NEXT: vextracti128 $1, %ymm12, %xmm131360; AVX2-NEXT: vpshuflw {{.*#+}} xmm13 = xmm13[3,1,2,3,4,5,6,7]1361; AVX2-NEXT: vpshufd {{.*#+}} xmm12 = xmm12[2,1,2,3]1362; AVX2-NEXT: vpshuflw {{.*#+}} xmm12 = xmm12[0,2,2,3,4,5,6,7]1363; AVX2-NEXT: vpunpcklwd {{.*#+}} xmm12 = xmm12[0],xmm13[0],xmm12[1],xmm13[1],xmm12[2],xmm13[2],xmm12[3],xmm13[3]1364; AVX2-NEXT: vpblendd {{.*#+}} xmm11 = xmm12[0,1],xmm11[2,3]1365; AVX2-NEXT: vpblendd {{.*#+}} ymm12 = ymm4[0,1],ymm3[2,3],ymm4[4,5],ymm3[6,7]1366; AVX2-NEXT: vextracti128 $1, %ymm12, %xmm131367; AVX2-NEXT: vpshufd {{.*#+}} xmm13 = xmm13[2,1,2,3]1368; AVX2-NEXT: vpshuflw {{.*#+}} xmm13 = xmm13[0,2,2,3,4,5,6,7]1369; AVX2-NEXT: vpshufd {{.*#+}} xmm12 = xmm12[2,1,2,3]1370; AVX2-NEXT: vpshuflw {{.*#+}} xmm12 = xmm12[1,3,2,3,4,5,6,7]1371; AVX2-NEXT: vpunpcklwd {{.*#+}} xmm12 = xmm12[0],xmm13[0],xmm12[1],xmm13[1],xmm12[2],xmm13[2],xmm12[3],xmm13[3]1372; AVX2-NEXT: vpblendd {{.*#+}} xmm7 = xmm8[0,1],xmm7[2,3]1373; AVX2-NEXT: vpblendw {{.*#+}} xmm7 = xmm2[0],xmm7[1,2,3,4,5,6],xmm2[7]1374; AVX2-NEXT: vpshufd {{.*#+}} xmm7 = xmm7[0,1,0,3]1375; AVX2-NEXT: vpshufhw {{.*#+}} xmm7 = xmm7[0,1,2,3,5,4,7,6]1376; AVX2-NEXT: vpblendd {{.*#+}} xmm7 = xmm12[0,1],xmm7[2,3]1377; AVX2-NEXT: vpblendd {{.*#+}} ymm3 = ymm4[0,1,2],ymm3[3],ymm4[4,5],ymm3[6],ymm4[7]1378; AVX2-NEXT: vpshufhw {{.*#+}} xmm4 = xmm3[0,1,2,3,6,4,6,7]1379; AVX2-NEXT: vextracti128 $1, %ymm3, %xmm31380; AVX2-NEXT: vpshufd {{.*#+}} xmm3 = xmm3[0,1,2,1]1381; AVX2-NEXT: vpshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,5,7,6,7]1382; AVX2-NEXT: vpunpckhwd {{.*#+}} xmm3 = xmm4[4],xmm3[4],xmm4[5],xmm3[5],xmm4[6],xmm3[6],xmm4[7],xmm3[7]1383; AVX2-NEXT: vpblendd {{.*#+}} xmm0 = xmm0[0],xmm1[1],xmm0[2,3]1384; AVX2-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0],xmm2[1],xmm0[2,3,4,5,6,7]1385; AVX2-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[u,u,u,u,u,u,u,u,4,5,2,3,0,1,14,15]1386; AVX2-NEXT: vpblendd {{.*#+}} xmm0 = xmm3[0,1],xmm0[2,3]1387; AVX2-NEXT: vmovdqa %xmm5, (%rsi)1388; AVX2-NEXT: vmovdqa %xmm6, (%rdx)1389; AVX2-NEXT: vmovdqa %xmm9, (%rcx)1390; AVX2-NEXT: vmovdqa %xmm10, (%r8)1391; AVX2-NEXT: vmovdqa %xmm11, (%r9)1392; AVX2-NEXT: vmovdqa %xmm7, (%r10)1393; AVX2-NEXT: vmovdqa %xmm0, (%rax)1394; AVX2-NEXT: vzeroupper1395; AVX2-NEXT: retq1396;1397; AVX2-FP-LABEL: load_i16_stride7_vf8:1398; AVX2-FP: # %bb.0:1399; AVX2-FP-NEXT: movq {{[0-9]+}}(%rsp), %rax1400; AVX2-FP-NEXT: movq {{[0-9]+}}(%rsp), %r101401; AVX2-FP-NEXT: vmovdqa (%rdi), %ymm31402; AVX2-FP-NEXT: vmovdqa 32(%rdi), %ymm41403; AVX2-FP-NEXT: vmovdqa 96(%rdi), %xmm01404; AVX2-FP-NEXT: vmovdqa 64(%rdi), %xmm11405; AVX2-FP-NEXT: vpblendd {{.*#+}} xmm5 = xmm0[0],xmm1[1,2,3]1406; AVX2-FP-NEXT: vmovdqa 80(%rdi), %xmm21407; AVX2-FP-NEXT: vpunpcklwd {{.*#+}} xmm5 = xmm5[0],xmm2[0],xmm5[1],xmm2[1],xmm5[2],xmm2[2],xmm5[3],xmm2[3]1408; AVX2-FP-NEXT: vmovdqa {{.*#+}} xmm6 = [0,1,14,15,12,13,10,11,8,9,12,13,10,11,4,5]1409; AVX2-FP-NEXT: vpshufb %xmm6, %xmm5, %xmm51410; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm7 = ymm3[0,1],ymm4[2],ymm3[3,4,5],ymm4[6],ymm3[7]1411; AVX2-FP-NEXT: vextracti128 $1, %ymm7, %xmm81412; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm7 = xmm7[0,1,2,3],xmm8[4],xmm7[5],xmm8[6],xmm7[7]1413; AVX2-FP-NEXT: vpshufb %xmm6, %xmm7, %xmm61414; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm5 = xmm6[0,1,2,3,4],xmm5[5,6,7]1415; AVX2-FP-NEXT: vmovdqa 96(%rdi), %xmm71416; AVX2-FP-NEXT: vmovdqa 64(%rdi), %xmm91417; AVX2-FP-NEXT: vpblendd {{.*#+}} xmm8 = xmm7[0,1],xmm9[2,3]1418; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm6 = xmm8[0,1,2],xmm2[3],xmm8[4,5,6,7]1419; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm10 = ymm3[0,1,2],ymm4[3],ymm3[4,5],ymm4[6],ymm3[7]1420; AVX2-FP-NEXT: vextracti128 $1, %ymm10, %xmm111421; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm10 = xmm11[0],xmm10[1],xmm11[2,3,4,5],xmm10[6],xmm11[7]1422; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm6 = xmm10[0,1],xmm6[2,3,4],xmm10[5,6,7]1423; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm6 = xmm6[2,3,0,1,14,15,12,13,10,11,8,9,6,7,4,5]1424; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm8 = xmm8[0,1,2,3],xmm2[4],xmm8[5,6,7]1425; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm10 = ymm4[0],ymm3[1],ymm4[2,3],ymm3[4],ymm4[5,6,7]1426; AVX2-FP-NEXT: vextracti128 $1, %ymm10, %xmm111427; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm10 = xmm10[0],xmm11[1],xmm10[2,3,4,5],xmm11[6],xmm10[7]1428; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm8 = xmm10[0,1,2],xmm8[3,4,5],xmm10[6,7]1429; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm8 = xmm8[4,5,2,3,0,1,14,15,12,13,10,11,8,9,6,7]1430; AVX2-FP-NEXT: vpblendd {{.*#+}} xmm11 = xmm1[0,1],xmm0[2],xmm1[3]1431; AVX2-FP-NEXT: vpunpckhwd {{.*#+}} xmm10 = xmm11[4],xmm2[4],xmm11[5],xmm2[5],xmm11[6],xmm2[6],xmm11[7],xmm2[7]1432; AVX2-FP-NEXT: vmovdqa {{.*#+}} xmm12 = [6,7,4,5,2,3,0,1,14,15,8,9,6,7,0,1]1433; AVX2-FP-NEXT: vpshufb %xmm12, %xmm10, %xmm101434; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm13 = ymm4[0],ymm3[1],ymm4[2,3,4],ymm3[5],ymm4[6,7]1435; AVX2-FP-NEXT: vextracti128 $1, %ymm13, %xmm141436; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm13 = xmm14[0],xmm13[1],xmm14[2],xmm13[3],xmm14[4,5,6,7]1437; AVX2-FP-NEXT: vpshufb %xmm12, %xmm13, %xmm121438; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm10 = xmm12[0,1,2,3,4],xmm10[5,6,7]1439; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm11 = xmm11[0,1,2,3,4,5,6,7,0,1,14,15,u,u,10,11]1440; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm11 = xmm11[0,1,2,3,4,5],xmm2[6],xmm11[7]1441; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm12 = ymm4[0,1],ymm3[2],ymm4[3,4],ymm3[5],ymm4[6,7]1442; AVX2-FP-NEXT: vmovdqa {{.*#+}} xmm13 = [8,9,4,5,4,5,6,7,8,9,10,11,12,13,14,15]1443; AVX2-FP-NEXT: vpshufb %xmm13, %xmm12, %xmm141444; AVX2-FP-NEXT: vextracti128 $1, %ymm12, %xmm121445; AVX2-FP-NEXT: vpshuflw {{.*#+}} xmm12 = xmm12[3,1,2,3,4,5,6,7]1446; AVX2-FP-NEXT: vpunpcklwd {{.*#+}} xmm12 = xmm14[0],xmm12[0],xmm14[1],xmm12[1],xmm14[2],xmm12[2],xmm14[3],xmm12[3]1447; AVX2-FP-NEXT: vpblendd {{.*#+}} xmm11 = xmm12[0,1],xmm11[2,3]1448; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm12 = ymm4[0,1],ymm3[2,3],ymm4[4,5],ymm3[6,7]1449; AVX2-FP-NEXT: vextracti128 $1, %ymm12, %xmm141450; AVX2-FP-NEXT: vpshufb %xmm13, %xmm14, %xmm131451; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm12 = xmm12[10,11,6,7,u,u,u,u,u,u,u,u,u,u,u,u]1452; AVX2-FP-NEXT: vpunpcklwd {{.*#+}} xmm12 = xmm12[0],xmm13[0],xmm12[1],xmm13[1],xmm12[2],xmm13[2],xmm12[3],xmm13[3]1453; AVX2-FP-NEXT: vpblendd {{.*#+}} xmm7 = xmm9[0,1],xmm7[2,3]1454; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm7 = xmm2[0],xmm7[1,2,3,4,5,6],xmm2[7]1455; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm7 = xmm7[u,u,u,u,u,u,u,u,2,3,0,1,14,15,12,13]1456; AVX2-FP-NEXT: vpblendd {{.*#+}} xmm7 = xmm12[0,1],xmm7[2,3]1457; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm3 = ymm4[0,1,2],ymm3[3],ymm4[4,5],ymm3[6],ymm4[7]1458; AVX2-FP-NEXT: vextracti128 $1, %ymm3, %xmm41459; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm4 = xmm4[u,u,u,u,u,u,u,u,10,11,6,7,u,u,u,u]1460; AVX2-FP-NEXT: vpshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,6,4,6,7]1461; AVX2-FP-NEXT: vpunpckhwd {{.*#+}} xmm3 = xmm3[4],xmm4[4],xmm3[5],xmm4[5],xmm3[6],xmm4[6],xmm3[7],xmm4[7]1462; AVX2-FP-NEXT: vpblendd {{.*#+}} xmm0 = xmm0[0],xmm1[1],xmm0[2,3]1463; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0],xmm2[1],xmm0[2,3,4,5,6,7]1464; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[u,u,u,u,u,u,u,u,4,5,2,3,0,1,14,15]1465; AVX2-FP-NEXT: vpblendd {{.*#+}} xmm0 = xmm3[0,1],xmm0[2,3]1466; AVX2-FP-NEXT: vmovdqa %xmm5, (%rsi)1467; AVX2-FP-NEXT: vmovdqa %xmm6, (%rdx)1468; AVX2-FP-NEXT: vmovdqa %xmm8, (%rcx)1469; AVX2-FP-NEXT: vmovdqa %xmm10, (%r8)1470; AVX2-FP-NEXT: vmovdqa %xmm11, (%r9)1471; AVX2-FP-NEXT: vmovdqa %xmm7, (%r10)1472; AVX2-FP-NEXT: vmovdqa %xmm0, (%rax)1473; AVX2-FP-NEXT: vzeroupper1474; AVX2-FP-NEXT: retq1475;1476; AVX2-FCP-LABEL: load_i16_stride7_vf8:1477; AVX2-FCP: # %bb.0:1478; AVX2-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax1479; AVX2-FCP-NEXT: movq {{[0-9]+}}(%rsp), %r101480; AVX2-FCP-NEXT: vmovdqa (%rdi), %ymm31481; AVX2-FCP-NEXT: vmovdqa 32(%rdi), %ymm41482; AVX2-FCP-NEXT: vmovdqa 96(%rdi), %xmm01483; AVX2-FCP-NEXT: vmovdqa 64(%rdi), %xmm11484; AVX2-FCP-NEXT: vpblendd {{.*#+}} xmm5 = xmm0[0],xmm1[1,2,3]1485; AVX2-FCP-NEXT: vmovdqa 80(%rdi), %xmm21486; AVX2-FCP-NEXT: vpunpcklwd {{.*#+}} xmm5 = xmm5[0],xmm2[0],xmm5[1],xmm2[1],xmm5[2],xmm2[2],xmm5[3],xmm2[3]1487; AVX2-FCP-NEXT: vmovdqa {{.*#+}} xmm6 = [0,1,14,15,12,13,10,11,8,9,12,13,10,11,4,5]1488; AVX2-FCP-NEXT: vpshufb %xmm6, %xmm5, %xmm51489; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm7 = ymm3[0,1],ymm4[2],ymm3[3,4,5],ymm4[6],ymm3[7]1490; AVX2-FCP-NEXT: vextracti128 $1, %ymm7, %xmm81491; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm7 = xmm7[0,1,2,3],xmm8[4],xmm7[5],xmm8[6],xmm7[7]1492; AVX2-FCP-NEXT: vpshufb %xmm6, %xmm7, %xmm61493; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm5 = xmm6[0,1,2,3,4],xmm5[5,6,7]1494; AVX2-FCP-NEXT: vmovdqa 96(%rdi), %xmm71495; AVX2-FCP-NEXT: vmovdqa 64(%rdi), %xmm91496; AVX2-FCP-NEXT: vpblendd {{.*#+}} xmm8 = xmm7[0,1],xmm9[2,3]1497; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm6 = xmm8[0,1,2],xmm2[3],xmm8[4,5,6,7]1498; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm10 = ymm3[0,1,2],ymm4[3],ymm3[4,5],ymm4[6],ymm3[7]1499; AVX2-FCP-NEXT: vextracti128 $1, %ymm10, %xmm111500; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm10 = xmm11[0],xmm10[1],xmm11[2,3,4,5],xmm10[6],xmm11[7]1501; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm6 = xmm10[0,1],xmm6[2,3,4],xmm10[5,6,7]1502; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm6 = xmm6[2,3,0,1,14,15,12,13,10,11,8,9,6,7,4,5]1503; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm8 = xmm8[0,1,2,3],xmm2[4],xmm8[5,6,7]1504; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm10 = ymm4[0],ymm3[1],ymm4[2,3],ymm3[4],ymm4[5,6,7]1505; AVX2-FCP-NEXT: vextracti128 $1, %ymm10, %xmm111506; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm10 = xmm10[0],xmm11[1],xmm10[2,3,4,5],xmm11[6],xmm10[7]1507; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm8 = xmm10[0,1,2],xmm8[3,4,5],xmm10[6,7]1508; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm8 = xmm8[4,5,2,3,0,1,14,15,12,13,10,11,8,9,6,7]1509; AVX2-FCP-NEXT: vpblendd {{.*#+}} xmm11 = xmm1[0,1],xmm0[2],xmm1[3]1510; AVX2-FCP-NEXT: vpunpckhwd {{.*#+}} xmm10 = xmm11[4],xmm2[4],xmm11[5],xmm2[5],xmm11[6],xmm2[6],xmm11[7],xmm2[7]1511; AVX2-FCP-NEXT: vmovdqa {{.*#+}} xmm12 = [6,7,4,5,2,3,0,1,14,15,8,9,6,7,0,1]1512; AVX2-FCP-NEXT: vpshufb %xmm12, %xmm10, %xmm101513; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm13 = ymm4[0],ymm3[1],ymm4[2,3,4],ymm3[5],ymm4[6,7]1514; AVX2-FCP-NEXT: vextracti128 $1, %ymm13, %xmm141515; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm13 = xmm14[0],xmm13[1],xmm14[2],xmm13[3],xmm14[4,5,6,7]1516; AVX2-FCP-NEXT: vpshufb %xmm12, %xmm13, %xmm121517; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm10 = xmm12[0,1,2,3,4],xmm10[5,6,7]1518; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm11 = xmm11[0,1,2,3,4,5,6,7,0,1,14,15,u,u,10,11]1519; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm11 = xmm11[0,1,2,3,4,5],xmm2[6],xmm11[7]1520; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm12 = ymm4[0,1],ymm3[2],ymm4[3,4],ymm3[5],ymm4[6,7]1521; AVX2-FCP-NEXT: vmovdqa {{.*#+}} xmm13 = [8,9,4,5,4,5,6,7,8,9,10,11,12,13,14,15]1522; AVX2-FCP-NEXT: vpshufb %xmm13, %xmm12, %xmm141523; AVX2-FCP-NEXT: vextracti128 $1, %ymm12, %xmm121524; AVX2-FCP-NEXT: vpshuflw {{.*#+}} xmm12 = xmm12[3,1,2,3,4,5,6,7]1525; AVX2-FCP-NEXT: vpunpcklwd {{.*#+}} xmm12 = xmm14[0],xmm12[0],xmm14[1],xmm12[1],xmm14[2],xmm12[2],xmm14[3],xmm12[3]1526; AVX2-FCP-NEXT: vpblendd {{.*#+}} xmm11 = xmm12[0,1],xmm11[2,3]1527; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm12 = ymm4[0,1],ymm3[2,3],ymm4[4,5],ymm3[6,7]1528; AVX2-FCP-NEXT: vextracti128 $1, %ymm12, %xmm141529; AVX2-FCP-NEXT: vpshufb %xmm13, %xmm14, %xmm131530; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm12 = xmm12[10,11,6,7,u,u,u,u,u,u,u,u,u,u,u,u]1531; AVX2-FCP-NEXT: vpunpcklwd {{.*#+}} xmm12 = xmm12[0],xmm13[0],xmm12[1],xmm13[1],xmm12[2],xmm13[2],xmm12[3],xmm13[3]1532; AVX2-FCP-NEXT: vpblendd {{.*#+}} xmm7 = xmm9[0,1],xmm7[2,3]1533; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm7 = xmm2[0],xmm7[1,2,3,4,5,6],xmm2[7]1534; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm7 = xmm7[u,u,u,u,u,u,u,u,2,3,0,1,14,15,12,13]1535; AVX2-FCP-NEXT: vpblendd {{.*#+}} xmm7 = xmm12[0,1],xmm7[2,3]1536; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm3 = ymm4[0,1,2],ymm3[3],ymm4[4,5],ymm3[6],ymm4[7]1537; AVX2-FCP-NEXT: vextracti128 $1, %ymm3, %xmm41538; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm4 = xmm4[u,u,u,u,u,u,u,u,10,11,6,7,u,u,u,u]1539; AVX2-FCP-NEXT: vpshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,6,4,6,7]1540; AVX2-FCP-NEXT: vpunpckhwd {{.*#+}} xmm3 = xmm3[4],xmm4[4],xmm3[5],xmm4[5],xmm3[6],xmm4[6],xmm3[7],xmm4[7]1541; AVX2-FCP-NEXT: vpblendd {{.*#+}} xmm0 = xmm0[0],xmm1[1],xmm0[2,3]1542; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0],xmm2[1],xmm0[2,3,4,5,6,7]1543; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[u,u,u,u,u,u,u,u,4,5,2,3,0,1,14,15]1544; AVX2-FCP-NEXT: vpblendd {{.*#+}} xmm0 = xmm3[0,1],xmm0[2,3]1545; AVX2-FCP-NEXT: vmovdqa %xmm5, (%rsi)1546; AVX2-FCP-NEXT: vmovdqa %xmm6, (%rdx)1547; AVX2-FCP-NEXT: vmovdqa %xmm8, (%rcx)1548; AVX2-FCP-NEXT: vmovdqa %xmm10, (%r8)1549; AVX2-FCP-NEXT: vmovdqa %xmm11, (%r9)1550; AVX2-FCP-NEXT: vmovdqa %xmm7, (%r10)1551; AVX2-FCP-NEXT: vmovdqa %xmm0, (%rax)1552; AVX2-FCP-NEXT: vzeroupper1553; AVX2-FCP-NEXT: retq1554;1555; AVX512-LABEL: load_i16_stride7_vf8:1556; AVX512: # %bb.0:1557; AVX512-NEXT: movq {{[0-9]+}}(%rsp), %rax1558; AVX512-NEXT: movq {{[0-9]+}}(%rsp), %r101559; AVX512-NEXT: vmovdqa 96(%rdi), %xmm01560; AVX512-NEXT: vmovdqa 64(%rdi), %xmm11561; AVX512-NEXT: vpblendd {{.*#+}} xmm3 = xmm0[0],xmm1[1,2,3]1562; AVX512-NEXT: vmovdqa 80(%rdi), %xmm21563; AVX512-NEXT: vpunpcklwd {{.*#+}} xmm3 = xmm3[0],xmm2[0],xmm3[1],xmm2[1],xmm3[2],xmm2[2],xmm3[3],xmm2[3]1564; AVX512-NEXT: vmovdqa {{.*#+}} xmm6 = [0,1,14,15,12,13,10,11,8,9,12,13,10,11,4,5]1565; AVX512-NEXT: vpshufb %xmm6, %xmm3, %xmm31566; AVX512-NEXT: vmovdqa (%rdi), %ymm41567; AVX512-NEXT: vmovdqa 32(%rdi), %ymm51568; AVX512-NEXT: vpblendd {{.*#+}} ymm7 = ymm4[0,1],ymm5[2],ymm4[3,4,5],ymm5[6],ymm4[7]1569; AVX512-NEXT: vextracti128 $1, %ymm7, %xmm81570; AVX512-NEXT: vpblendw {{.*#+}} xmm7 = xmm7[0,1,2,3],xmm8[4],xmm7[5],xmm8[6],xmm7[7]1571; AVX512-NEXT: vpshufb %xmm6, %xmm7, %xmm61572; AVX512-NEXT: vpblendw {{.*#+}} xmm3 = xmm6[0,1,2,3,4],xmm3[5,6,7]1573; AVX512-NEXT: vpblendd {{.*#+}} xmm7 = xmm0[0,1],xmm1[2,3]1574; AVX512-NEXT: vpblendw {{.*#+}} xmm6 = xmm7[0,1,2],xmm2[3],xmm7[4,5,6,7]1575; AVX512-NEXT: vpshufd {{.*#+}} xmm6 = xmm6[0,1,2,1]1576; AVX512-NEXT: vpshufhw {{.*#+}} xmm6 = xmm6[0,1,2,3,4,4,7,6]1577; AVX512-NEXT: vpblendd {{.*#+}} ymm8 = ymm4[0,1,2],ymm5[3],ymm4[4,5],ymm5[6],ymm4[7]1578; AVX512-NEXT: vextracti128 $1, %ymm8, %xmm91579; AVX512-NEXT: vpblendw {{.*#+}} xmm8 = xmm9[0],xmm8[1],xmm9[2,3,4,5],xmm8[6],xmm9[7]1580; AVX512-NEXT: vpshufb {{.*#+}} xmm8 = xmm8[2,3,0,1,14,15,12,13,10,11,u,u,u,u,u,u]1581; AVX512-NEXT: vpblendw {{.*#+}} xmm6 = xmm8[0,1,2,3,4],xmm6[5,6,7]1582; AVX512-NEXT: vpblendw {{.*#+}} xmm7 = xmm7[0,1,2,3],xmm2[4],xmm7[5,6,7]1583; AVX512-NEXT: vpshufd {{.*#+}} xmm7 = xmm7[0,1,2,1]1584; AVX512-NEXT: vpshufhw {{.*#+}} xmm7 = xmm7[0,1,2,3,4,5,4,7]1585; AVX512-NEXT: vpblendd {{.*#+}} ymm8 = ymm5[0],ymm4[1],ymm5[2,3],ymm4[4],ymm5[5,6,7]1586; AVX512-NEXT: vextracti128 $1, %ymm8, %xmm91587; AVX512-NEXT: vpblendw {{.*#+}} xmm8 = xmm8[0],xmm9[1],xmm8[2,3,4,5],xmm9[6],xmm8[7]1588; AVX512-NEXT: vpshufb {{.*#+}} xmm8 = xmm8[4,5,2,3,0,1,14,15,12,13,u,u,u,u,u,u]1589; AVX512-NEXT: vpblendw {{.*#+}} xmm7 = xmm8[0,1,2,3,4],xmm7[5,6,7]1590; AVX512-NEXT: vpblendd {{.*#+}} xmm9 = xmm1[0,1],xmm0[2],xmm1[3]1591; AVX512-NEXT: vpunpckhwd {{.*#+}} xmm8 = xmm9[4],xmm2[4],xmm9[5],xmm2[5],xmm9[6],xmm2[6],xmm9[7],xmm2[7]1592; AVX512-NEXT: vpshufb {{.*#+}} xmm8 = xmm8[u,u,u,u,u,u,u,u,u,u,8,9,6,7,0,1]1593; AVX512-NEXT: vpblendd {{.*#+}} ymm10 = ymm5[0],ymm4[1],ymm5[2,3,4],ymm4[5],ymm5[6,7]1594; AVX512-NEXT: vextracti128 $1, %ymm10, %xmm111595; AVX512-NEXT: vpblendw {{.*#+}} xmm10 = xmm11[0],xmm10[1],xmm11[2],xmm10[3],xmm11[4,5,6,7]1596; AVX512-NEXT: vpshuflw {{.*#+}} xmm10 = xmm10[3,2,1,0,4,5,6,7]1597; AVX512-NEXT: vpshufhw {{.*#+}} xmm10 = xmm10[0,1,2,3,7,7,7,7]1598; AVX512-NEXT: vpblendw {{.*#+}} xmm8 = xmm10[0,1,2,3,4],xmm8[5,6,7]1599; AVX512-NEXT: vpshufb {{.*#+}} xmm9 = xmm9[u,u,u,u,u,u,u,u,0,1,14,15,u,u,10,11]1600; AVX512-NEXT: vpblendw {{.*#+}} xmm9 = xmm9[0,1,2,3,4,5],xmm2[6],xmm9[7]1601; AVX512-NEXT: vpblendd {{.*#+}} ymm10 = ymm5[0,1],ymm4[2],ymm5[3,4],ymm4[5],ymm5[6,7]1602; AVX512-NEXT: vextracti128 $1, %ymm10, %xmm111603; AVX512-NEXT: vpshuflw {{.*#+}} xmm11 = xmm11[3,1,2,3,4,5,6,7]1604; AVX512-NEXT: vpshufd {{.*#+}} xmm10 = xmm10[2,1,2,3]1605; AVX512-NEXT: vpshuflw {{.*#+}} xmm10 = xmm10[0,2,2,3,4,5,6,7]1606; AVX512-NEXT: vpunpcklwd {{.*#+}} xmm10 = xmm10[0],xmm11[0],xmm10[1],xmm11[1],xmm10[2],xmm11[2],xmm10[3],xmm11[3]1607; AVX512-NEXT: vpblendd {{.*#+}} xmm9 = xmm10[0,1],xmm9[2,3]1608; AVX512-NEXT: vpblendd {{.*#+}} ymm10 = ymm5[0,1],ymm4[2,3],ymm5[4,5],ymm4[6,7]1609; AVX512-NEXT: vextracti128 $1, %ymm10, %xmm111610; AVX512-NEXT: vpshufd {{.*#+}} xmm11 = xmm11[2,1,2,3]1611; AVX512-NEXT: vpshuflw {{.*#+}} xmm11 = xmm11[0,2,2,3,4,5,6,7]1612; AVX512-NEXT: vpshufd {{.*#+}} xmm10 = xmm10[2,1,2,3]1613; AVX512-NEXT: vpshuflw {{.*#+}} xmm10 = xmm10[1,3,2,3,4,5,6,7]1614; AVX512-NEXT: vpunpcklwd {{.*#+}} xmm10 = xmm10[0],xmm11[0],xmm10[1],xmm11[1],xmm10[2],xmm11[2],xmm10[3],xmm11[3]1615; AVX512-NEXT: vpblendd {{.*#+}} xmm11 = xmm1[0,1],xmm0[2,3]1616; AVX512-NEXT: vpblendw {{.*#+}} xmm11 = xmm2[0],xmm11[1,2,3,4,5,6],xmm2[7]1617; AVX512-NEXT: vpshufd {{.*#+}} xmm11 = xmm11[0,1,0,3]1618; AVX512-NEXT: vpshufhw {{.*#+}} xmm11 = xmm11[0,1,2,3,5,4,7,6]1619; AVX512-NEXT: vpblendd {{.*#+}} xmm10 = xmm10[0,1],xmm11[2,3]1620; AVX512-NEXT: vpblendd {{.*#+}} ymm4 = ymm5[0,1,2],ymm4[3],ymm5[4,5],ymm4[6],ymm5[7]1621; AVX512-NEXT: vpshufhw {{.*#+}} xmm5 = xmm4[0,1,2,3,6,4,6,7]1622; AVX512-NEXT: vextracti128 $1, %ymm4, %xmm41623; AVX512-NEXT: vpshufd {{.*#+}} xmm4 = xmm4[0,1,2,1]1624; AVX512-NEXT: vpshufhw {{.*#+}} xmm4 = xmm4[0,1,2,3,5,7,6,7]1625; AVX512-NEXT: vpunpckhwd {{.*#+}} xmm4 = xmm5[4],xmm4[4],xmm5[5],xmm4[5],xmm5[6],xmm4[6],xmm5[7],xmm4[7]1626; AVX512-NEXT: vpblendd {{.*#+}} xmm0 = xmm0[0],xmm1[1],xmm0[2,3]1627; AVX512-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0],xmm2[1],xmm0[2,3,4,5,6,7]1628; AVX512-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[u,u,u,u,u,u,u,u,4,5,2,3,0,1,14,15]1629; AVX512-NEXT: vpblendd {{.*#+}} xmm0 = xmm4[0,1],xmm0[2,3]1630; AVX512-NEXT: vmovdqa %xmm3, (%rsi)1631; AVX512-NEXT: vmovdqa %xmm6, (%rdx)1632; AVX512-NEXT: vmovdqa %xmm7, (%rcx)1633; AVX512-NEXT: vmovdqa %xmm8, (%r8)1634; AVX512-NEXT: vmovdqa %xmm9, (%r9)1635; AVX512-NEXT: vmovdqa %xmm10, (%r10)1636; AVX512-NEXT: vmovdqa %xmm0, (%rax)1637; AVX512-NEXT: vzeroupper1638; AVX512-NEXT: retq1639;1640; AVX512-FCP-LABEL: load_i16_stride7_vf8:1641; AVX512-FCP: # %bb.0:1642; AVX512-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax1643; AVX512-FCP-NEXT: movq {{[0-9]+}}(%rsp), %r101644; AVX512-FCP-NEXT: vmovdqa 96(%rdi), %xmm01645; AVX512-FCP-NEXT: vmovdqa 64(%rdi), %xmm11646; AVX512-FCP-NEXT: vpblendd {{.*#+}} xmm3 = xmm0[0],xmm1[1,2,3]1647; AVX512-FCP-NEXT: vmovdqa 80(%rdi), %xmm21648; AVX512-FCP-NEXT: vpunpcklwd {{.*#+}} xmm3 = xmm3[0],xmm2[0],xmm3[1],xmm2[1],xmm3[2],xmm2[2],xmm3[3],xmm2[3]1649; AVX512-FCP-NEXT: vmovdqa {{.*#+}} xmm6 = [0,1,14,15,12,13,10,11,8,9,12,13,10,11,4,5]1650; AVX512-FCP-NEXT: vpshufb %xmm6, %xmm3, %xmm31651; AVX512-FCP-NEXT: vmovdqa (%rdi), %ymm41652; AVX512-FCP-NEXT: vmovdqa 32(%rdi), %ymm51653; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm7 = ymm4[0,1],ymm5[2],ymm4[3,4,5],ymm5[6],ymm4[7]1654; AVX512-FCP-NEXT: vextracti128 $1, %ymm7, %xmm81655; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm7 = xmm7[0,1,2,3],xmm8[4],xmm7[5],xmm8[6],xmm7[7]1656; AVX512-FCP-NEXT: vpshufb %xmm6, %xmm7, %xmm61657; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm3 = xmm6[0,1,2,3,4],xmm3[5,6,7]1658; AVX512-FCP-NEXT: vpblendd {{.*#+}} xmm7 = xmm0[0,1],xmm1[2,3]1659; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm6 = xmm7[0,1,2],xmm2[3],xmm7[4,5,6,7]1660; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm8 = ymm4[0,1,2],ymm5[3],ymm4[4,5],ymm5[6],ymm4[7]1661; AVX512-FCP-NEXT: vextracti128 $1, %ymm8, %xmm91662; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm8 = xmm9[0],xmm8[1],xmm9[2,3,4,5],xmm8[6],xmm9[7]1663; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm6 = xmm8[0,1],xmm6[2,3,4],xmm8[5,6,7]1664; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm6 = xmm6[2,3,0,1,14,15,12,13,10,11,8,9,6,7,4,5]1665; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm7 = xmm7[0,1,2,3],xmm2[4],xmm7[5,6,7]1666; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm8 = ymm5[0],ymm4[1],ymm5[2,3],ymm4[4],ymm5[5,6,7]1667; AVX512-FCP-NEXT: vextracti128 $1, %ymm8, %xmm91668; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm8 = xmm8[0],xmm9[1],xmm8[2,3,4,5],xmm9[6],xmm8[7]1669; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm7 = xmm8[0,1,2],xmm7[3,4,5],xmm8[6,7]1670; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm7 = xmm7[4,5,2,3,0,1,14,15,12,13,10,11,8,9,6,7]1671; AVX512-FCP-NEXT: vpblendd {{.*#+}} xmm9 = xmm1[0,1],xmm0[2],xmm1[3]1672; AVX512-FCP-NEXT: vpunpckhwd {{.*#+}} xmm8 = xmm9[4],xmm2[4],xmm9[5],xmm2[5],xmm9[6],xmm2[6],xmm9[7],xmm2[7]1673; AVX512-FCP-NEXT: vmovdqa {{.*#+}} xmm10 = [6,7,4,5,2,3,0,1,14,15,8,9,6,7,0,1]1674; AVX512-FCP-NEXT: vpshufb %xmm10, %xmm8, %xmm81675; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm11 = ymm5[0],ymm4[1],ymm5[2,3,4],ymm4[5],ymm5[6,7]1676; AVX512-FCP-NEXT: vextracti128 $1, %ymm11, %xmm121677; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm11 = xmm12[0],xmm11[1],xmm12[2],xmm11[3],xmm12[4,5,6,7]1678; AVX512-FCP-NEXT: vpshufb %xmm10, %xmm11, %xmm101679; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm8 = xmm10[0,1,2,3,4],xmm8[5,6,7]1680; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm9 = xmm9[u,u,u,u,u,u,u,u,0,1,14,15,u,u,10,11]1681; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm9 = xmm9[0,1,2,3,4,5],xmm2[6],xmm9[7]1682; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm10 = ymm5[0,1],ymm4[2],ymm5[3,4],ymm4[5],ymm5[6,7]1683; AVX512-FCP-NEXT: vmovd {{.*#+}} xmm11 = [8,9,4,5,0,0,0,0,0,0,0,0,0,0,0,0]1684; AVX512-FCP-NEXT: vpshufb %xmm11, %xmm10, %xmm121685; AVX512-FCP-NEXT: vextracti128 $1, %ymm10, %xmm101686; AVX512-FCP-NEXT: vpshuflw {{.*#+}} xmm10 = xmm10[3,1,2,3,4,5,6,7]1687; AVX512-FCP-NEXT: vpunpcklwd {{.*#+}} xmm10 = xmm12[0],xmm10[0],xmm12[1],xmm10[1],xmm12[2],xmm10[2],xmm12[3],xmm10[3]1688; AVX512-FCP-NEXT: vpblendd {{.*#+}} xmm9 = xmm10[0,1],xmm9[2,3]1689; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm10 = ymm5[0,1],ymm4[2,3],ymm5[4,5],ymm4[6,7]1690; AVX512-FCP-NEXT: vextracti128 $1, %ymm10, %xmm121691; AVX512-FCP-NEXT: vpshufb %xmm11, %xmm12, %xmm111692; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm10 = xmm10[10,11,6,7,u,u,u,u,u,u,u,u,u,u,u,u]1693; AVX512-FCP-NEXT: vpunpcklwd {{.*#+}} xmm10 = xmm10[0],xmm11[0],xmm10[1],xmm11[1],xmm10[2],xmm11[2],xmm10[3],xmm11[3]1694; AVX512-FCP-NEXT: vpblendd {{.*#+}} xmm11 = xmm1[0,1],xmm0[2,3]1695; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm11 = xmm2[0],xmm11[1,2,3,4,5,6],xmm2[7]1696; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm11 = xmm11[u,u,u,u,u,u,u,u,2,3,0,1,14,15,12,13]1697; AVX512-FCP-NEXT: vpblendd {{.*#+}} xmm10 = xmm10[0,1],xmm11[2,3]1698; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm4 = ymm5[0,1,2],ymm4[3],ymm5[4,5],ymm4[6],ymm5[7]1699; AVX512-FCP-NEXT: vextracti128 $1, %ymm4, %xmm51700; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm5 = xmm5[u,u,u,u,u,u,u,u,10,11,6,7,u,u,u,u]1701; AVX512-FCP-NEXT: vpshufhw {{.*#+}} xmm4 = xmm4[0,1,2,3,6,4,6,7]1702; AVX512-FCP-NEXT: vpunpckhwd {{.*#+}} xmm4 = xmm4[4],xmm5[4],xmm4[5],xmm5[5],xmm4[6],xmm5[6],xmm4[7],xmm5[7]1703; AVX512-FCP-NEXT: vpblendd {{.*#+}} xmm0 = xmm0[0],xmm1[1],xmm0[2,3]1704; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0],xmm2[1],xmm0[2,3,4,5,6,7]1705; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[u,u,u,u,u,u,u,u,4,5,2,3,0,1,14,15]1706; AVX512-FCP-NEXT: vpblendd {{.*#+}} xmm0 = xmm4[0,1],xmm0[2,3]1707; AVX512-FCP-NEXT: vmovdqa %xmm3, (%rsi)1708; AVX512-FCP-NEXT: vmovdqa %xmm6, (%rdx)1709; AVX512-FCP-NEXT: vmovdqa %xmm7, (%rcx)1710; AVX512-FCP-NEXT: vmovdqa %xmm8, (%r8)1711; AVX512-FCP-NEXT: vmovdqa %xmm9, (%r9)1712; AVX512-FCP-NEXT: vmovdqa %xmm10, (%r10)1713; AVX512-FCP-NEXT: vmovdqa %xmm0, (%rax)1714; AVX512-FCP-NEXT: vzeroupper1715; AVX512-FCP-NEXT: retq1716;1717; AVX512DQ-LABEL: load_i16_stride7_vf8:1718; AVX512DQ: # %bb.0:1719; AVX512DQ-NEXT: movq {{[0-9]+}}(%rsp), %rax1720; AVX512DQ-NEXT: movq {{[0-9]+}}(%rsp), %r101721; AVX512DQ-NEXT: vmovdqa 96(%rdi), %xmm01722; AVX512DQ-NEXT: vmovdqa 64(%rdi), %xmm11723; AVX512DQ-NEXT: vpblendd {{.*#+}} xmm3 = xmm0[0],xmm1[1,2,3]1724; AVX512DQ-NEXT: vmovdqa 80(%rdi), %xmm21725; AVX512DQ-NEXT: vpunpcklwd {{.*#+}} xmm3 = xmm3[0],xmm2[0],xmm3[1],xmm2[1],xmm3[2],xmm2[2],xmm3[3],xmm2[3]1726; AVX512DQ-NEXT: vmovdqa {{.*#+}} xmm6 = [0,1,14,15,12,13,10,11,8,9,12,13,10,11,4,5]1727; AVX512DQ-NEXT: vpshufb %xmm6, %xmm3, %xmm31728; AVX512DQ-NEXT: vmovdqa (%rdi), %ymm41729; AVX512DQ-NEXT: vmovdqa 32(%rdi), %ymm51730; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm7 = ymm4[0,1],ymm5[2],ymm4[3,4,5],ymm5[6],ymm4[7]1731; AVX512DQ-NEXT: vextracti128 $1, %ymm7, %xmm81732; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm7 = xmm7[0,1,2,3],xmm8[4],xmm7[5],xmm8[6],xmm7[7]1733; AVX512DQ-NEXT: vpshufb %xmm6, %xmm7, %xmm61734; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm3 = xmm6[0,1,2,3,4],xmm3[5,6,7]1735; AVX512DQ-NEXT: vpblendd {{.*#+}} xmm7 = xmm0[0,1],xmm1[2,3]1736; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm6 = xmm7[0,1,2],xmm2[3],xmm7[4,5,6,7]1737; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm6 = xmm6[0,1,2,1]1738; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm6 = xmm6[0,1,2,3,4,4,7,6]1739; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm8 = ymm4[0,1,2],ymm5[3],ymm4[4,5],ymm5[6],ymm4[7]1740; AVX512DQ-NEXT: vextracti128 $1, %ymm8, %xmm91741; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm8 = xmm9[0],xmm8[1],xmm9[2,3,4,5],xmm8[6],xmm9[7]1742; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm8 = xmm8[2,3,0,1,14,15,12,13,10,11,u,u,u,u,u,u]1743; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm6 = xmm8[0,1,2,3,4],xmm6[5,6,7]1744; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm7 = xmm7[0,1,2,3],xmm2[4],xmm7[5,6,7]1745; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm7 = xmm7[0,1,2,1]1746; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm7 = xmm7[0,1,2,3,4,5,4,7]1747; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm8 = ymm5[0],ymm4[1],ymm5[2,3],ymm4[4],ymm5[5,6,7]1748; AVX512DQ-NEXT: vextracti128 $1, %ymm8, %xmm91749; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm8 = xmm8[0],xmm9[1],xmm8[2,3,4,5],xmm9[6],xmm8[7]1750; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm8 = xmm8[4,5,2,3,0,1,14,15,12,13,u,u,u,u,u,u]1751; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm7 = xmm8[0,1,2,3,4],xmm7[5,6,7]1752; AVX512DQ-NEXT: vpblendd {{.*#+}} xmm9 = xmm1[0,1],xmm0[2],xmm1[3]1753; AVX512DQ-NEXT: vpunpckhwd {{.*#+}} xmm8 = xmm9[4],xmm2[4],xmm9[5],xmm2[5],xmm9[6],xmm2[6],xmm9[7],xmm2[7]1754; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm8 = xmm8[u,u,u,u,u,u,u,u,u,u,8,9,6,7,0,1]1755; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm10 = ymm5[0],ymm4[1],ymm5[2,3,4],ymm4[5],ymm5[6,7]1756; AVX512DQ-NEXT: vextracti128 $1, %ymm10, %xmm111757; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm10 = xmm11[0],xmm10[1],xmm11[2],xmm10[3],xmm11[4,5,6,7]1758; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm10 = xmm10[3,2,1,0,4,5,6,7]1759; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm10 = xmm10[0,1,2,3,7,7,7,7]1760; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm8 = xmm10[0,1,2,3,4],xmm8[5,6,7]1761; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm9 = xmm9[u,u,u,u,u,u,u,u,0,1,14,15,u,u,10,11]1762; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm9 = xmm9[0,1,2,3,4,5],xmm2[6],xmm9[7]1763; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm10 = ymm5[0,1],ymm4[2],ymm5[3,4],ymm4[5],ymm5[6,7]1764; AVX512DQ-NEXT: vextracti128 $1, %ymm10, %xmm111765; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm11 = xmm11[3,1,2,3,4,5,6,7]1766; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm10 = xmm10[2,1,2,3]1767; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm10 = xmm10[0,2,2,3,4,5,6,7]1768; AVX512DQ-NEXT: vpunpcklwd {{.*#+}} xmm10 = xmm10[0],xmm11[0],xmm10[1],xmm11[1],xmm10[2],xmm11[2],xmm10[3],xmm11[3]1769; AVX512DQ-NEXT: vpblendd {{.*#+}} xmm9 = xmm10[0,1],xmm9[2,3]1770; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm10 = ymm5[0,1],ymm4[2,3],ymm5[4,5],ymm4[6,7]1771; AVX512DQ-NEXT: vextracti128 $1, %ymm10, %xmm111772; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm11 = xmm11[2,1,2,3]1773; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm11 = xmm11[0,2,2,3,4,5,6,7]1774; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm10 = xmm10[2,1,2,3]1775; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm10 = xmm10[1,3,2,3,4,5,6,7]1776; AVX512DQ-NEXT: vpunpcklwd {{.*#+}} xmm10 = xmm10[0],xmm11[0],xmm10[1],xmm11[1],xmm10[2],xmm11[2],xmm10[3],xmm11[3]1777; AVX512DQ-NEXT: vpblendd {{.*#+}} xmm11 = xmm1[0,1],xmm0[2,3]1778; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm11 = xmm2[0],xmm11[1,2,3,4,5,6],xmm2[7]1779; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm11 = xmm11[0,1,0,3]1780; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm11 = xmm11[0,1,2,3,5,4,7,6]1781; AVX512DQ-NEXT: vpblendd {{.*#+}} xmm10 = xmm10[0,1],xmm11[2,3]1782; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm4 = ymm5[0,1,2],ymm4[3],ymm5[4,5],ymm4[6],ymm5[7]1783; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm5 = xmm4[0,1,2,3,6,4,6,7]1784; AVX512DQ-NEXT: vextracti128 $1, %ymm4, %xmm41785; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm4 = xmm4[0,1,2,1]1786; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm4 = xmm4[0,1,2,3,5,7,6,7]1787; AVX512DQ-NEXT: vpunpckhwd {{.*#+}} xmm4 = xmm5[4],xmm4[4],xmm5[5],xmm4[5],xmm5[6],xmm4[6],xmm5[7],xmm4[7]1788; AVX512DQ-NEXT: vpblendd {{.*#+}} xmm0 = xmm0[0],xmm1[1],xmm0[2,3]1789; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0],xmm2[1],xmm0[2,3,4,5,6,7]1790; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[u,u,u,u,u,u,u,u,4,5,2,3,0,1,14,15]1791; AVX512DQ-NEXT: vpblendd {{.*#+}} xmm0 = xmm4[0,1],xmm0[2,3]1792; AVX512DQ-NEXT: vmovdqa %xmm3, (%rsi)1793; AVX512DQ-NEXT: vmovdqa %xmm6, (%rdx)1794; AVX512DQ-NEXT: vmovdqa %xmm7, (%rcx)1795; AVX512DQ-NEXT: vmovdqa %xmm8, (%r8)1796; AVX512DQ-NEXT: vmovdqa %xmm9, (%r9)1797; AVX512DQ-NEXT: vmovdqa %xmm10, (%r10)1798; AVX512DQ-NEXT: vmovdqa %xmm0, (%rax)1799; AVX512DQ-NEXT: vzeroupper1800; AVX512DQ-NEXT: retq1801;1802; AVX512DQ-FCP-LABEL: load_i16_stride7_vf8:1803; AVX512DQ-FCP: # %bb.0:1804; AVX512DQ-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax1805; AVX512DQ-FCP-NEXT: movq {{[0-9]+}}(%rsp), %r101806; AVX512DQ-FCP-NEXT: vmovdqa 96(%rdi), %xmm01807; AVX512DQ-FCP-NEXT: vmovdqa 64(%rdi), %xmm11808; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} xmm3 = xmm0[0],xmm1[1,2,3]1809; AVX512DQ-FCP-NEXT: vmovdqa 80(%rdi), %xmm21810; AVX512DQ-FCP-NEXT: vpunpcklwd {{.*#+}} xmm3 = xmm3[0],xmm2[0],xmm3[1],xmm2[1],xmm3[2],xmm2[2],xmm3[3],xmm2[3]1811; AVX512DQ-FCP-NEXT: vmovdqa {{.*#+}} xmm6 = [0,1,14,15,12,13,10,11,8,9,12,13,10,11,4,5]1812; AVX512DQ-FCP-NEXT: vpshufb %xmm6, %xmm3, %xmm31813; AVX512DQ-FCP-NEXT: vmovdqa (%rdi), %ymm41814; AVX512DQ-FCP-NEXT: vmovdqa 32(%rdi), %ymm51815; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm7 = ymm4[0,1],ymm5[2],ymm4[3,4,5],ymm5[6],ymm4[7]1816; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm7, %xmm81817; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm7 = xmm7[0,1,2,3],xmm8[4],xmm7[5],xmm8[6],xmm7[7]1818; AVX512DQ-FCP-NEXT: vpshufb %xmm6, %xmm7, %xmm61819; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm3 = xmm6[0,1,2,3,4],xmm3[5,6,7]1820; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} xmm7 = xmm0[0,1],xmm1[2,3]1821; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm6 = xmm7[0,1,2],xmm2[3],xmm7[4,5,6,7]1822; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm8 = ymm4[0,1,2],ymm5[3],ymm4[4,5],ymm5[6],ymm4[7]1823; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm8, %xmm91824; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm8 = xmm9[0],xmm8[1],xmm9[2,3,4,5],xmm8[6],xmm9[7]1825; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm6 = xmm8[0,1],xmm6[2,3,4],xmm8[5,6,7]1826; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm6 = xmm6[2,3,0,1,14,15,12,13,10,11,8,9,6,7,4,5]1827; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm7 = xmm7[0,1,2,3],xmm2[4],xmm7[5,6,7]1828; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm8 = ymm5[0],ymm4[1],ymm5[2,3],ymm4[4],ymm5[5,6,7]1829; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm8, %xmm91830; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm8 = xmm8[0],xmm9[1],xmm8[2,3,4,5],xmm9[6],xmm8[7]1831; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm7 = xmm8[0,1,2],xmm7[3,4,5],xmm8[6,7]1832; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm7 = xmm7[4,5,2,3,0,1,14,15,12,13,10,11,8,9,6,7]1833; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} xmm9 = xmm1[0,1],xmm0[2],xmm1[3]1834; AVX512DQ-FCP-NEXT: vpunpckhwd {{.*#+}} xmm8 = xmm9[4],xmm2[4],xmm9[5],xmm2[5],xmm9[6],xmm2[6],xmm9[7],xmm2[7]1835; AVX512DQ-FCP-NEXT: vmovdqa {{.*#+}} xmm10 = [6,7,4,5,2,3,0,1,14,15,8,9,6,7,0,1]1836; AVX512DQ-FCP-NEXT: vpshufb %xmm10, %xmm8, %xmm81837; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm11 = ymm5[0],ymm4[1],ymm5[2,3,4],ymm4[5],ymm5[6,7]1838; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm11, %xmm121839; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm11 = xmm12[0],xmm11[1],xmm12[2],xmm11[3],xmm12[4,5,6,7]1840; AVX512DQ-FCP-NEXT: vpshufb %xmm10, %xmm11, %xmm101841; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm8 = xmm10[0,1,2,3,4],xmm8[5,6,7]1842; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm9 = xmm9[u,u,u,u,u,u,u,u,0,1,14,15,u,u,10,11]1843; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm9 = xmm9[0,1,2,3,4,5],xmm2[6],xmm9[7]1844; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm10 = ymm5[0,1],ymm4[2],ymm5[3,4],ymm4[5],ymm5[6,7]1845; AVX512DQ-FCP-NEXT: vmovd {{.*#+}} xmm11 = [8,9,4,5,0,0,0,0,0,0,0,0,0,0,0,0]1846; AVX512DQ-FCP-NEXT: vpshufb %xmm11, %xmm10, %xmm121847; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm10, %xmm101848; AVX512DQ-FCP-NEXT: vpshuflw {{.*#+}} xmm10 = xmm10[3,1,2,3,4,5,6,7]1849; AVX512DQ-FCP-NEXT: vpunpcklwd {{.*#+}} xmm10 = xmm12[0],xmm10[0],xmm12[1],xmm10[1],xmm12[2],xmm10[2],xmm12[3],xmm10[3]1850; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} xmm9 = xmm10[0,1],xmm9[2,3]1851; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm10 = ymm5[0,1],ymm4[2,3],ymm5[4,5],ymm4[6,7]1852; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm10, %xmm121853; AVX512DQ-FCP-NEXT: vpshufb %xmm11, %xmm12, %xmm111854; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm10 = xmm10[10,11,6,7,u,u,u,u,u,u,u,u,u,u,u,u]1855; AVX512DQ-FCP-NEXT: vpunpcklwd {{.*#+}} xmm10 = xmm10[0],xmm11[0],xmm10[1],xmm11[1],xmm10[2],xmm11[2],xmm10[3],xmm11[3]1856; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} xmm11 = xmm1[0,1],xmm0[2,3]1857; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm11 = xmm2[0],xmm11[1,2,3,4,5,6],xmm2[7]1858; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm11 = xmm11[u,u,u,u,u,u,u,u,2,3,0,1,14,15,12,13]1859; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} xmm10 = xmm10[0,1],xmm11[2,3]1860; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm4 = ymm5[0,1,2],ymm4[3],ymm5[4,5],ymm4[6],ymm5[7]1861; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm4, %xmm51862; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm5 = xmm5[u,u,u,u,u,u,u,u,10,11,6,7,u,u,u,u]1863; AVX512DQ-FCP-NEXT: vpshufhw {{.*#+}} xmm4 = xmm4[0,1,2,3,6,4,6,7]1864; AVX512DQ-FCP-NEXT: vpunpckhwd {{.*#+}} xmm4 = xmm4[4],xmm5[4],xmm4[5],xmm5[5],xmm4[6],xmm5[6],xmm4[7],xmm5[7]1865; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} xmm0 = xmm0[0],xmm1[1],xmm0[2,3]1866; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0],xmm2[1],xmm0[2,3,4,5,6,7]1867; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[u,u,u,u,u,u,u,u,4,5,2,3,0,1,14,15]1868; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} xmm0 = xmm4[0,1],xmm0[2,3]1869; AVX512DQ-FCP-NEXT: vmovdqa %xmm3, (%rsi)1870; AVX512DQ-FCP-NEXT: vmovdqa %xmm6, (%rdx)1871; AVX512DQ-FCP-NEXT: vmovdqa %xmm7, (%rcx)1872; AVX512DQ-FCP-NEXT: vmovdqa %xmm8, (%r8)1873; AVX512DQ-FCP-NEXT: vmovdqa %xmm9, (%r9)1874; AVX512DQ-FCP-NEXT: vmovdqa %xmm10, (%r10)1875; AVX512DQ-FCP-NEXT: vmovdqa %xmm0, (%rax)1876; AVX512DQ-FCP-NEXT: vzeroupper1877; AVX512DQ-FCP-NEXT: retq1878;1879; AVX512BW-LABEL: load_i16_stride7_vf8:1880; AVX512BW: # %bb.0:1881; AVX512BW-NEXT: movq {{[0-9]+}}(%rsp), %rax1882; AVX512BW-NEXT: movq {{[0-9]+}}(%rsp), %r101883; AVX512BW-NEXT: vmovdqa64 (%rdi), %zmm01884; AVX512BW-NEXT: vmovdqa64 64(%rdi), %zmm11885; AVX512BW-NEXT: vpmovsxbw {{.*#+}} xmm2 = [0,7,14,21,28,35,42,49]1886; AVX512BW-NEXT: vpermi2w %zmm1, %zmm0, %zmm21887; AVX512BW-NEXT: vpmovsxbw {{.*#+}} xmm3 = [1,8,15,22,29,36,43,50]1888; AVX512BW-NEXT: vpermi2w %zmm1, %zmm0, %zmm31889; AVX512BW-NEXT: vpmovsxbw {{.*#+}} xmm4 = [2,9,16,23,30,37,44,51]1890; AVX512BW-NEXT: vpermi2w %zmm1, %zmm0, %zmm41891; AVX512BW-NEXT: vpmovsxbw {{.*#+}} xmm5 = [3,10,17,24,31,38,45,52]1892; AVX512BW-NEXT: vpermi2w %zmm1, %zmm0, %zmm51893; AVX512BW-NEXT: vpmovsxbw {{.*#+}} xmm6 = [4,11,18,25,32,39,46,53]1894; AVX512BW-NEXT: vpermi2w %zmm1, %zmm0, %zmm61895; AVX512BW-NEXT: vpmovsxbw {{.*#+}} xmm7 = [5,12,19,26,33,40,47,54]1896; AVX512BW-NEXT: vpermi2w %zmm1, %zmm0, %zmm71897; AVX512BW-NEXT: vpmovsxbw {{.*#+}} xmm8 = [6,13,20,27,34,41,48,55]1898; AVX512BW-NEXT: vpermi2w %zmm1, %zmm0, %zmm81899; AVX512BW-NEXT: vmovdqa %xmm2, (%rsi)1900; AVX512BW-NEXT: vmovdqa %xmm3, (%rdx)1901; AVX512BW-NEXT: vmovdqa %xmm4, (%rcx)1902; AVX512BW-NEXT: vmovdqa %xmm5, (%r8)1903; AVX512BW-NEXT: vmovdqa %xmm6, (%r9)1904; AVX512BW-NEXT: vmovdqa %xmm7, (%r10)1905; AVX512BW-NEXT: vmovdqa %xmm8, (%rax)1906; AVX512BW-NEXT: vzeroupper1907; AVX512BW-NEXT: retq1908;1909; AVX512BW-FCP-LABEL: load_i16_stride7_vf8:1910; AVX512BW-FCP: # %bb.0:1911; AVX512BW-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax1912; AVX512BW-FCP-NEXT: movq {{[0-9]+}}(%rsp), %r101913; AVX512BW-FCP-NEXT: vmovdqa64 (%rdi), %zmm01914; AVX512BW-FCP-NEXT: vmovdqa64 64(%rdi), %zmm11915; AVX512BW-FCP-NEXT: vpmovsxbw {{.*#+}} xmm2 = [0,7,14,21,28,35,42,49]1916; AVX512BW-FCP-NEXT: vpermi2w %zmm1, %zmm0, %zmm21917; AVX512BW-FCP-NEXT: vpmovsxbw {{.*#+}} xmm3 = [1,8,15,22,29,36,43,50]1918; AVX512BW-FCP-NEXT: vpermi2w %zmm1, %zmm0, %zmm31919; AVX512BW-FCP-NEXT: vpmovsxbw {{.*#+}} xmm4 = [2,9,16,23,30,37,44,51]1920; AVX512BW-FCP-NEXT: vpermi2w %zmm1, %zmm0, %zmm41921; AVX512BW-FCP-NEXT: vpmovsxbw {{.*#+}} xmm5 = [3,10,17,24,31,38,45,52]1922; AVX512BW-FCP-NEXT: vpermi2w %zmm1, %zmm0, %zmm51923; AVX512BW-FCP-NEXT: vpmovsxbw {{.*#+}} xmm6 = [4,11,18,25,32,39,46,53]1924; AVX512BW-FCP-NEXT: vpermi2w %zmm1, %zmm0, %zmm61925; AVX512BW-FCP-NEXT: vpmovsxbw {{.*#+}} xmm7 = [5,12,19,26,33,40,47,54]1926; AVX512BW-FCP-NEXT: vpermi2w %zmm1, %zmm0, %zmm71927; AVX512BW-FCP-NEXT: vpmovsxbw {{.*#+}} xmm8 = [6,13,20,27,34,41,48,55]1928; AVX512BW-FCP-NEXT: vpermi2w %zmm1, %zmm0, %zmm81929; AVX512BW-FCP-NEXT: vmovdqa %xmm2, (%rsi)1930; AVX512BW-FCP-NEXT: vmovdqa %xmm3, (%rdx)1931; AVX512BW-FCP-NEXT: vmovdqa %xmm4, (%rcx)1932; AVX512BW-FCP-NEXT: vmovdqa %xmm5, (%r8)1933; AVX512BW-FCP-NEXT: vmovdqa %xmm6, (%r9)1934; AVX512BW-FCP-NEXT: vmovdqa %xmm7, (%r10)1935; AVX512BW-FCP-NEXT: vmovdqa %xmm8, (%rax)1936; AVX512BW-FCP-NEXT: vzeroupper1937; AVX512BW-FCP-NEXT: retq1938;1939; AVX512DQ-BW-LABEL: load_i16_stride7_vf8:1940; AVX512DQ-BW: # %bb.0:1941; AVX512DQ-BW-NEXT: movq {{[0-9]+}}(%rsp), %rax1942; AVX512DQ-BW-NEXT: movq {{[0-9]+}}(%rsp), %r101943; AVX512DQ-BW-NEXT: vmovdqa64 (%rdi), %zmm01944; AVX512DQ-BW-NEXT: vmovdqa64 64(%rdi), %zmm11945; AVX512DQ-BW-NEXT: vpmovsxbw {{.*#+}} xmm2 = [0,7,14,21,28,35,42,49]1946; AVX512DQ-BW-NEXT: vpermi2w %zmm1, %zmm0, %zmm21947; AVX512DQ-BW-NEXT: vpmovsxbw {{.*#+}} xmm3 = [1,8,15,22,29,36,43,50]1948; AVX512DQ-BW-NEXT: vpermi2w %zmm1, %zmm0, %zmm31949; AVX512DQ-BW-NEXT: vpmovsxbw {{.*#+}} xmm4 = [2,9,16,23,30,37,44,51]1950; AVX512DQ-BW-NEXT: vpermi2w %zmm1, %zmm0, %zmm41951; AVX512DQ-BW-NEXT: vpmovsxbw {{.*#+}} xmm5 = [3,10,17,24,31,38,45,52]1952; AVX512DQ-BW-NEXT: vpermi2w %zmm1, %zmm0, %zmm51953; AVX512DQ-BW-NEXT: vpmovsxbw {{.*#+}} xmm6 = [4,11,18,25,32,39,46,53]1954; AVX512DQ-BW-NEXT: vpermi2w %zmm1, %zmm0, %zmm61955; AVX512DQ-BW-NEXT: vpmovsxbw {{.*#+}} xmm7 = [5,12,19,26,33,40,47,54]1956; AVX512DQ-BW-NEXT: vpermi2w %zmm1, %zmm0, %zmm71957; AVX512DQ-BW-NEXT: vpmovsxbw {{.*#+}} xmm8 = [6,13,20,27,34,41,48,55]1958; AVX512DQ-BW-NEXT: vpermi2w %zmm1, %zmm0, %zmm81959; AVX512DQ-BW-NEXT: vmovdqa %xmm2, (%rsi)1960; AVX512DQ-BW-NEXT: vmovdqa %xmm3, (%rdx)1961; AVX512DQ-BW-NEXT: vmovdqa %xmm4, (%rcx)1962; AVX512DQ-BW-NEXT: vmovdqa %xmm5, (%r8)1963; AVX512DQ-BW-NEXT: vmovdqa %xmm6, (%r9)1964; AVX512DQ-BW-NEXT: vmovdqa %xmm7, (%r10)1965; AVX512DQ-BW-NEXT: vmovdqa %xmm8, (%rax)1966; AVX512DQ-BW-NEXT: vzeroupper1967; AVX512DQ-BW-NEXT: retq1968;1969; AVX512DQ-BW-FCP-LABEL: load_i16_stride7_vf8:1970; AVX512DQ-BW-FCP: # %bb.0:1971; AVX512DQ-BW-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax1972; AVX512DQ-BW-FCP-NEXT: movq {{[0-9]+}}(%rsp), %r101973; AVX512DQ-BW-FCP-NEXT: vmovdqa64 (%rdi), %zmm01974; AVX512DQ-BW-FCP-NEXT: vmovdqa64 64(%rdi), %zmm11975; AVX512DQ-BW-FCP-NEXT: vpmovsxbw {{.*#+}} xmm2 = [0,7,14,21,28,35,42,49]1976; AVX512DQ-BW-FCP-NEXT: vpermi2w %zmm1, %zmm0, %zmm21977; AVX512DQ-BW-FCP-NEXT: vpmovsxbw {{.*#+}} xmm3 = [1,8,15,22,29,36,43,50]1978; AVX512DQ-BW-FCP-NEXT: vpermi2w %zmm1, %zmm0, %zmm31979; AVX512DQ-BW-FCP-NEXT: vpmovsxbw {{.*#+}} xmm4 = [2,9,16,23,30,37,44,51]1980; AVX512DQ-BW-FCP-NEXT: vpermi2w %zmm1, %zmm0, %zmm41981; AVX512DQ-BW-FCP-NEXT: vpmovsxbw {{.*#+}} xmm5 = [3,10,17,24,31,38,45,52]1982; AVX512DQ-BW-FCP-NEXT: vpermi2w %zmm1, %zmm0, %zmm51983; AVX512DQ-BW-FCP-NEXT: vpmovsxbw {{.*#+}} xmm6 = [4,11,18,25,32,39,46,53]1984; AVX512DQ-BW-FCP-NEXT: vpermi2w %zmm1, %zmm0, %zmm61985; AVX512DQ-BW-FCP-NEXT: vpmovsxbw {{.*#+}} xmm7 = [5,12,19,26,33,40,47,54]1986; AVX512DQ-BW-FCP-NEXT: vpermi2w %zmm1, %zmm0, %zmm71987; AVX512DQ-BW-FCP-NEXT: vpmovsxbw {{.*#+}} xmm8 = [6,13,20,27,34,41,48,55]1988; AVX512DQ-BW-FCP-NEXT: vpermi2w %zmm1, %zmm0, %zmm81989; AVX512DQ-BW-FCP-NEXT: vmovdqa %xmm2, (%rsi)1990; AVX512DQ-BW-FCP-NEXT: vmovdqa %xmm3, (%rdx)1991; AVX512DQ-BW-FCP-NEXT: vmovdqa %xmm4, (%rcx)1992; AVX512DQ-BW-FCP-NEXT: vmovdqa %xmm5, (%r8)1993; AVX512DQ-BW-FCP-NEXT: vmovdqa %xmm6, (%r9)1994; AVX512DQ-BW-FCP-NEXT: vmovdqa %xmm7, (%r10)1995; AVX512DQ-BW-FCP-NEXT: vmovdqa %xmm8, (%rax)1996; AVX512DQ-BW-FCP-NEXT: vzeroupper1997; AVX512DQ-BW-FCP-NEXT: retq1998 %wide.vec = load <56 x i16>, ptr %in.vec, align 641999 %strided.vec0 = shufflevector <56 x i16> %wide.vec, <56 x i16> poison, <8 x i32> <i32 0, i32 7, i32 14, i32 21, i32 28, i32 35, i32 42, i32 49>2000 %strided.vec1 = shufflevector <56 x i16> %wide.vec, <56 x i16> poison, <8 x i32> <i32 1, i32 8, i32 15, i32 22, i32 29, i32 36, i32 43, i32 50>2001 %strided.vec2 = shufflevector <56 x i16> %wide.vec, <56 x i16> poison, <8 x i32> <i32 2, i32 9, i32 16, i32 23, i32 30, i32 37, i32 44, i32 51>2002 %strided.vec3 = shufflevector <56 x i16> %wide.vec, <56 x i16> poison, <8 x i32> <i32 3, i32 10, i32 17, i32 24, i32 31, i32 38, i32 45, i32 52>2003 %strided.vec4 = shufflevector <56 x i16> %wide.vec, <56 x i16> poison, <8 x i32> <i32 4, i32 11, i32 18, i32 25, i32 32, i32 39, i32 46, i32 53>2004 %strided.vec5 = shufflevector <56 x i16> %wide.vec, <56 x i16> poison, <8 x i32> <i32 5, i32 12, i32 19, i32 26, i32 33, i32 40, i32 47, i32 54>2005 %strided.vec6 = shufflevector <56 x i16> %wide.vec, <56 x i16> poison, <8 x i32> <i32 6, i32 13, i32 20, i32 27, i32 34, i32 41, i32 48, i32 55>2006 store <8 x i16> %strided.vec0, ptr %out.vec0, align 642007 store <8 x i16> %strided.vec1, ptr %out.vec1, align 642008 store <8 x i16> %strided.vec2, ptr %out.vec2, align 642009 store <8 x i16> %strided.vec3, ptr %out.vec3, align 642010 store <8 x i16> %strided.vec4, ptr %out.vec4, align 642011 store <8 x i16> %strided.vec5, ptr %out.vec5, align 642012 store <8 x i16> %strided.vec6, ptr %out.vec6, align 642013 ret void2014}2015 2016define void @load_i16_stride7_vf16(ptr %in.vec, ptr %out.vec0, ptr %out.vec1, ptr %out.vec2, ptr %out.vec3, ptr %out.vec4, ptr %out.vec5, ptr %out.vec6) nounwind {2017; SSE-LABEL: load_i16_stride7_vf16:2018; SSE: # %bb.0:2019; SSE-NEXT: subq $232, %rsp2020; SSE-NEXT: movdqa 80(%rdi), %xmm112021; SSE-NEXT: movdqa %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2022; SSE-NEXT: movdqa 64(%rdi), %xmm92023; SSE-NEXT: movdqa %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2024; SSE-NEXT: movdqa 112(%rdi), %xmm122025; SSE-NEXT: movdqa 128(%rdi), %xmm62026; SSE-NEXT: movaps 160(%rdi), %xmm52027; SSE-NEXT: movaps %xmm5, (%rsp) # 16-byte Spill2028; SSE-NEXT: movaps 144(%rdi), %xmm72029; SSE-NEXT: movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2030; SSE-NEXT: movdqa 192(%rdi), %xmm132031; SSE-NEXT: movdqa 176(%rdi), %xmm152032; SSE-NEXT: movdqa 208(%rdi), %xmm142033; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm14[0,0,0,0]2034; SSE-NEXT: movdqa %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2035; SSE-NEXT: movdqa {{.*#+}} xmm1 = [65535,65535,65535,65535,65535,65535,65535,0]2036; SSE-NEXT: movdqa %xmm1, %xmm22037; SSE-NEXT: pandn %xmm0, %xmm22038; SSE-NEXT: movdqa %xmm15, %xmm02039; SSE-NEXT: punpckldq {{.*#+}} xmm0 = xmm0[0],xmm13[0],xmm0[1],xmm13[1]2040; SSE-NEXT: movdqa %xmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2041; SSE-NEXT: pand %xmm1, %xmm02042; SSE-NEXT: por %xmm2, %xmm02043; SSE-NEXT: movdqa {{.*#+}} xmm3 = [65535,65535,65535,65535,65535,0,0,0]2044; SSE-NEXT: movdqa %xmm3, %xmm22045; SSE-NEXT: movdqa %xmm3, %xmm102046; SSE-NEXT: pandn %xmm0, %xmm22047; SSE-NEXT: movaps %xmm7, %xmm02048; SSE-NEXT: shufps {{.*#+}} xmm0 = xmm0[2,2],xmm5[2,2]2049; SSE-NEXT: movaps {{.*#+}} xmm8 = [65535,65535,65535,0,0,65535,65535,65535]2050; SSE-NEXT: movaps %xmm8, %xmm42051; SSE-NEXT: andnps %xmm0, %xmm42052; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm6[2,2,3,3]2053; SSE-NEXT: movdqa %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2054; SSE-NEXT: pshufd {{.*#+}} xmm5 = xmm12[0,1,0,3]2055; SSE-NEXT: movdqa %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2056; SSE-NEXT: pshufhw {{.*#+}} xmm3 = xmm5[0,1,2,3,4,7,6,7]2057; SSE-NEXT: punpckhdq {{.*#+}} xmm3 = xmm3[2],xmm0[2],xmm3[3],xmm0[3]2058; SSE-NEXT: movdqa 96(%rdi), %xmm02059; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2060; SSE-NEXT: pand %xmm8, %xmm32061; SSE-NEXT: por %xmm4, %xmm32062; SSE-NEXT: pand %xmm10, %xmm32063; SSE-NEXT: por %xmm2, %xmm32064; SSE-NEXT: movdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2065; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,0,0,0]2066; SSE-NEXT: movdqa %xmm1, %xmm22067; SSE-NEXT: pandn %xmm0, %xmm22068; SSE-NEXT: punpckldq {{.*#+}} xmm9 = xmm9[0],xmm11[0],xmm9[1],xmm11[1]2069; SSE-NEXT: pand %xmm1, %xmm92070; SSE-NEXT: por %xmm2, %xmm92071; SSE-NEXT: movdqa %xmm10, %xmm22072; SSE-NEXT: pandn %xmm9, %xmm22073; SSE-NEXT: movaps 32(%rdi), %xmm02074; SSE-NEXT: movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2075; SSE-NEXT: movaps 48(%rdi), %xmm32076; SSE-NEXT: movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2077; SSE-NEXT: shufps {{.*#+}} xmm0 = xmm0[2,2],xmm3[2,2]2078; SSE-NEXT: movaps %xmm8, %xmm42079; SSE-NEXT: andnps %xmm0, %xmm42080; SSE-NEXT: movdqa (%rdi), %xmm02081; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2082; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,1,0,3]2083; SSE-NEXT: pshufhw {{.*#+}} xmm3 = xmm0[0,1,2,3,4,7,6,7]2084; SSE-NEXT: movdqa 16(%rdi), %xmm02085; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2086; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[2,2,3,3]2087; SSE-NEXT: punpckhdq {{.*#+}} xmm3 = xmm3[2],xmm0[2],xmm3[3],xmm0[3]2088; SSE-NEXT: pand %xmm8, %xmm32089; SSE-NEXT: por %xmm4, %xmm32090; SSE-NEXT: pand %xmm10, %xmm32091; SSE-NEXT: por %xmm2, %xmm32092; SSE-NEXT: movdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2093; SSE-NEXT: pslldq {{.*#+}} xmm14 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,xmm14[0,1,2,3,4,5]2094; SSE-NEXT: movdqa %xmm1, %xmm22095; SSE-NEXT: pandn %xmm14, %xmm22096; SSE-NEXT: psrld $16, %xmm132097; SSE-NEXT: movdqa %xmm15, %xmm42098; SSE-NEXT: movdqa %xmm15, %xmm112099; SSE-NEXT: movdqa %xmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2100; SSE-NEXT: psrldq {{.*#+}} xmm4 = xmm4[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero2101; SSE-NEXT: punpckldq {{.*#+}} xmm4 = xmm4[0],xmm13[0],xmm4[1],xmm13[1]2102; SSE-NEXT: pand %xmm1, %xmm42103; SSE-NEXT: por %xmm2, %xmm42104; SSE-NEXT: movdqa %xmm10, %xmm02105; SSE-NEXT: movdqa %xmm10, %xmm142106; SSE-NEXT: pandn %xmm4, %xmm02107; SSE-NEXT: movdqa {{.*#+}} xmm7 = [65535,0,65535,65535,65535,65535,65535,65535]2108; SSE-NEXT: movdqa %xmm7, %xmm42109; SSE-NEXT: pandn %xmm12, %xmm42110; SSE-NEXT: pand %xmm7, %xmm62111; SSE-NEXT: por %xmm4, %xmm62112; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Reload2113; SSE-NEXT: movdqa %xmm9, %xmm42114; SSE-NEXT: movdqa (%rsp), %xmm13 # 16-byte Reload2115; SSE-NEXT: punpckhwd {{.*#+}} xmm4 = xmm4[4],xmm13[4],xmm4[5],xmm13[5],xmm4[6],xmm13[6],xmm4[7],xmm13[7]2116; SSE-NEXT: pshufd {{.*#+}} xmm4 = xmm4[2,1,2,1]2117; SSE-NEXT: pshuflw {{.*#+}} xmm4 = xmm4[0,0,0,0,4,5,6,7]2118; SSE-NEXT: pshufhw {{.*#+}} xmm4 = xmm4[0,1,2,3,7,7,7,7]2119; SSE-NEXT: movdqa %xmm8, %xmm22120; SSE-NEXT: pandn %xmm4, %xmm22121; SSE-NEXT: pshufd {{.*#+}} xmm4 = xmm6[0,3,2,3]2122; SSE-NEXT: pshuflw {{.*#+}} xmm4 = xmm4[1,0,3,3,4,5,6,7]2123; SSE-NEXT: pand %xmm8, %xmm42124; SSE-NEXT: por %xmm4, %xmm22125; SSE-NEXT: pand %xmm10, %xmm22126; SSE-NEXT: por %xmm0, %xmm22127; SSE-NEXT: movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2128; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2129; SSE-NEXT: pslldq {{.*#+}} xmm0 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,xmm0[0,1,2,3,4,5]2130; SSE-NEXT: movdqa %xmm1, %xmm42131; SSE-NEXT: pandn %xmm0, %xmm42132; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload2133; SSE-NEXT: movdqa %xmm3, %xmm02134; SSE-NEXT: psrld $16, %xmm02135; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload2136; SSE-NEXT: movdqa %xmm15, %xmm52137; SSE-NEXT: psrldq {{.*#+}} xmm5 = xmm5[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero2138; SSE-NEXT: punpckldq {{.*#+}} xmm5 = xmm5[0],xmm0[0],xmm5[1],xmm0[1]2139; SSE-NEXT: pand %xmm1, %xmm52140; SSE-NEXT: por %xmm4, %xmm52141; SSE-NEXT: movdqa %xmm10, %xmm02142; SSE-NEXT: pandn %xmm5, %xmm02143; SSE-NEXT: movdqa %xmm7, %xmm42144; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload2145; SSE-NEXT: pandn %xmm10, %xmm42146; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Reload2147; SSE-NEXT: movdqa %xmm12, %xmm52148; SSE-NEXT: pand %xmm7, %xmm52149; SSE-NEXT: por %xmm4, %xmm52150; SSE-NEXT: pshufd {{.*#+}} xmm4 = xmm5[0,3,2,3]2151; SSE-NEXT: pshuflw {{.*#+}} xmm4 = xmm4[1,0,3,3,4,5,6,7]2152; SSE-NEXT: pand %xmm8, %xmm42153; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload2154; SSE-NEXT: punpckhwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Folded Reload2155; SSE-NEXT: # xmm5 = xmm5[4],mem[4],xmm5[5],mem[5],xmm5[6],mem[6],xmm5[7],mem[7]2156; SSE-NEXT: pshufd {{.*#+}} xmm5 = xmm5[2,1,2,1]2157; SSE-NEXT: pshuflw {{.*#+}} xmm5 = xmm5[0,0,0,0,4,5,6,7]2158; SSE-NEXT: pshufhw {{.*#+}} xmm5 = xmm5[0,1,2,3,7,7,7,7]2159; SSE-NEXT: pandn %xmm5, %xmm82160; SSE-NEXT: por %xmm4, %xmm82161; SSE-NEXT: pand %xmm14, %xmm82162; SSE-NEXT: por %xmm0, %xmm82163; SSE-NEXT: movdqa %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2164; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload2165; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm8[0,1,0,1]2166; SSE-NEXT: movdqa %xmm1, %xmm42167; SSE-NEXT: pandn %xmm0, %xmm42168; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload2169; SSE-NEXT: punpckhdq {{.*#+}} xmm11 = xmm11[2],xmm6[2],xmm11[3],xmm6[3]2170; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm11[0,1,0,1]2171; SSE-NEXT: pand %xmm1, %xmm02172; SSE-NEXT: por %xmm4, %xmm02173; SSE-NEXT: movdqa %xmm14, %xmm42174; SSE-NEXT: pandn %xmm0, %xmm42175; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm9[0,1,0,3]2176; SSE-NEXT: pshufhw {{.*#+}} xmm11 = xmm0[0,1,2,3,4,5,4,7]2177; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm13[2,2,3,3]2178; SSE-NEXT: movdqa %xmm13, %xmm22179; SSE-NEXT: punpckhqdq {{.*#+}} xmm11 = xmm11[1],xmm0[1]2180; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload2181; SSE-NEXT: punpcklwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Folded Reload2182; SSE-NEXT: # xmm5 = xmm5[0],mem[0],xmm5[1],mem[1],xmm5[2],mem[2],xmm5[3],mem[3]2183; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm5[2,1,2,3]2184; SSE-NEXT: pshuflw {{.*#+}} xmm0 = xmm0[0,3,2,3,4,5,6,7]2185; SSE-NEXT: movss {{.*#+}} xmm11 = xmm0[0],xmm11[1,2,3]2186; SSE-NEXT: andps %xmm14, %xmm112187; SSE-NEXT: orps %xmm4, %xmm112188; SSE-NEXT: movaps %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2189; SSE-NEXT: movdqa %xmm15, %xmm02190; SSE-NEXT: punpckhdq {{.*#+}} xmm0 = xmm0[2],xmm3[2],xmm0[3],xmm3[3]2191; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,1,0,1]2192; SSE-NEXT: pand %xmm1, %xmm02193; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload2194; SSE-NEXT: pshufd {{.*#+}} xmm4 = xmm3[0,1,0,1]2195; SSE-NEXT: pandn %xmm4, %xmm12196; SSE-NEXT: por %xmm0, %xmm12197; SSE-NEXT: movdqa %xmm14, %xmm02198; SSE-NEXT: movaps %xmm14, %xmm152199; SSE-NEXT: pandn %xmm1, %xmm02200; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload2201; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm13[0,1,0,3]2202; SSE-NEXT: pshufhw {{.*#+}} xmm4 = xmm1[0,1,2,3,4,5,4,7]2203; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload2204; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm14[2,2,3,3]2205; SSE-NEXT: punpckhqdq {{.*#+}} xmm4 = xmm4[1],xmm1[1]2206; SSE-NEXT: movdqa %xmm10, %xmm12207; SSE-NEXT: punpcklwd {{.*#+}} xmm1 = xmm1[0],xmm12[0],xmm1[1],xmm12[1],xmm1[2],xmm12[2],xmm1[3],xmm12[3]2208; SSE-NEXT: pshufd {{.*#+}} xmm11 = xmm1[2,1,2,3]2209; SSE-NEXT: pshuflw {{.*#+}} xmm11 = xmm11[0,3,2,3,4,5,6,7]2210; SSE-NEXT: movss {{.*#+}} xmm4 = xmm11[0],xmm4[1,2,3]2211; SSE-NEXT: andps %xmm15, %xmm42212; SSE-NEXT: orps %xmm0, %xmm42213; SSE-NEXT: movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2214; SSE-NEXT: movdqa %xmm7, %xmm02215; SSE-NEXT: pandn %xmm9, %xmm02216; SSE-NEXT: pand %xmm7, %xmm22217; SSE-NEXT: por %xmm0, %xmm22218; SSE-NEXT: pshuflw {{.*#+}} xmm0 = xmm2[0,1,1,0,4,5,6,7]2219; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,7,7,7,7]2220; SSE-NEXT: pshufhw {{.*#+}} xmm5 = xmm5[0,1,2,3,6,5,6,7]2221; SSE-NEXT: pshufd {{.*#+}} xmm5 = xmm5[2,2,2,2]2222; SSE-NEXT: movss {{.*#+}} xmm0 = xmm5[0],xmm0[1,2,3]2223; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload2224; SSE-NEXT: movdqa %xmm4, %xmm52225; SSE-NEXT: punpckhwd {{.*#+}} xmm5 = xmm5[4],xmm6[4],xmm5[5],xmm6[5],xmm5[6],xmm6[6],xmm5[7],xmm6[7]2226; SSE-NEXT: movdqa %xmm6, %xmm122227; SSE-NEXT: pshufd {{.*#+}} xmm5 = xmm5[0,1,2,1]2228; SSE-NEXT: pshufhw {{.*#+}} xmm5 = xmm5[0,1,2,3,4,4,7,7]2229; SSE-NEXT: punpckhwd {{.*#+}} xmm5 = xmm5[4],xmm8[4],xmm5[5],xmm8[5],xmm5[6],xmm8[6],xmm5[7],xmm8[7]2230; SSE-NEXT: movdqa %xmm8, %xmm62231; SSE-NEXT: pshuflw {{.*#+}} xmm5 = xmm5[2,1,2,3,4,5,6,7]2232; SSE-NEXT: pshufd {{.*#+}} xmm5 = xmm5[0,1,2,0]2233; SSE-NEXT: pshufhw {{.*#+}} xmm5 = xmm5[0,1,2,3,4,6,4,7]2234; SSE-NEXT: movaps %xmm15, %xmm22235; SSE-NEXT: andnps %xmm5, %xmm22236; SSE-NEXT: andps %xmm15, %xmm02237; SSE-NEXT: orps %xmm0, %xmm22238; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2239; SSE-NEXT: movdqa %xmm7, %xmm02240; SSE-NEXT: pandn %xmm13, %xmm02241; SSE-NEXT: movdqa %xmm13, %xmm92242; SSE-NEXT: movdqa %xmm14, %xmm52243; SSE-NEXT: movdqa %xmm14, %xmm132244; SSE-NEXT: pand %xmm7, %xmm52245; SSE-NEXT: por %xmm0, %xmm52246; SSE-NEXT: pshuflw {{.*#+}} xmm0 = xmm5[0,1,1,0,4,5,6,7]2247; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,7,7,7,7]2248; SSE-NEXT: pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,6,5,6,7]2249; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[2,2,2,2]2250; SSE-NEXT: movss {{.*#+}} xmm0 = xmm1[0],xmm0[1,2,3]2251; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload2252; SSE-NEXT: punpckhwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload2253; SSE-NEXT: # xmm1 = xmm1[4],mem[4],xmm1[5],mem[5],xmm1[6],mem[6],xmm1[7],mem[7]2254; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[0,1,2,1]2255; SSE-NEXT: pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,4,7,7]2256; SSE-NEXT: punpckhwd {{.*#+}} xmm1 = xmm1[4],xmm3[4],xmm1[5],xmm3[5],xmm1[6],xmm3[6],xmm1[7],xmm3[7]2257; SSE-NEXT: andps %xmm15, %xmm02258; SSE-NEXT: pshuflw {{.*#+}} xmm1 = xmm1[2,1,2,3,4,5,6,7]2259; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[0,1,2,0]2260; SSE-NEXT: pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,6,4,7]2261; SSE-NEXT: andnps %xmm1, %xmm152262; SSE-NEXT: orps %xmm0, %xmm152263; SSE-NEXT: movaps %xmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2264; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2265; SSE-NEXT: movdqa %xmm0, %xmm142266; SSE-NEXT: psrld $16, %xmm142267; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload2268; SSE-NEXT: punpckhwd {{.*#+}} xmm14 = xmm14[4],xmm2[4],xmm14[5],xmm2[5],xmm14[6],xmm2[6],xmm14[7],xmm2[7]2269; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm0[2,3,2,3]2270; SSE-NEXT: movdqa %xmm0, %xmm52271; SSE-NEXT: movdqa %xmm2, %xmm02272; SSE-NEXT: punpckhwd {{.*#+}} xmm5 = xmm5[4],xmm2[4],xmm5[5],xmm2[5],xmm5[6],xmm2[6],xmm5[7],xmm2[7]2273; SSE-NEXT: movdqa %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2274; SSE-NEXT: psrlq $48, %xmm02275; SSE-NEXT: punpcklwd {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1],xmm1[2],xmm0[2],xmm1[3],xmm0[3]2276; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload2277; SSE-NEXT: movdqa %xmm8, %xmm02278; SSE-NEXT: psrlq $16, %xmm02279; SSE-NEXT: movdqa (%rsp), %xmm11 # 16-byte Reload2280; SSE-NEXT: punpcklwd {{.*#+}} xmm0 = xmm0[0],xmm11[0],xmm0[1],xmm11[1],xmm0[2],xmm11[2],xmm0[3],xmm11[3]2281; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[1,1,1,1]2282; SSE-NEXT: punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]2283; SSE-NEXT: movdqa %xmm4, %xmm52284; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm4[0,1,0,3]2285; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,5,4,7]2286; SSE-NEXT: punpckhdq {{.*#+}} xmm0 = xmm0[2],xmm12[2],xmm0[3],xmm12[3]2287; SSE-NEXT: punpckhwd {{.*#+}} xmm0 = xmm0[4],xmm6[4],xmm0[5],xmm6[5],xmm0[6],xmm6[6],xmm0[7],xmm6[7]2288; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[3,1,2,0]2289; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,6,6,7]2290; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,1,2,1]2291; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,5,6,4,7]2292; SSE-NEXT: movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]2293; SSE-NEXT: movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2294; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload2295; SSE-NEXT: movdqa %xmm10, %xmm152296; SSE-NEXT: psrld $16, %xmm152297; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload2298; SSE-NEXT: punpckhwd {{.*#+}} xmm15 = xmm15[4],xmm1[4],xmm15[5],xmm1[5],xmm15[6],xmm1[6],xmm15[7],xmm1[7]2299; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm10[2,3,2,3]2300; SSE-NEXT: punpckhwd {{.*#+}} xmm10 = xmm10[4],xmm1[4],xmm10[5],xmm1[5],xmm10[6],xmm1[6],xmm10[7],xmm1[7]2301; SSE-NEXT: psrlq $48, %xmm12302; SSE-NEXT: punpcklwd {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3]2303; SSE-NEXT: movdqa %xmm9, %xmm42304; SSE-NEXT: movdqa %xmm9, %xmm12305; SSE-NEXT: psrlq $16, %xmm12306; SSE-NEXT: punpcklwd {{.*#+}} xmm1 = xmm1[0],xmm13[0],xmm1[1],xmm13[1],xmm1[2],xmm13[2],xmm1[3],xmm13[3]2307; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[1,1,1,1]2308; SSE-NEXT: punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]2309; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Reload2310; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm9[0,1,0,3]2311; SSE-NEXT: pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,5,4,7]2312; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload2313; SSE-NEXT: punpckhdq {{.*#+}} xmm1 = xmm1[2],xmm2[2],xmm1[3],xmm2[3]2314; SSE-NEXT: punpckhwd {{.*#+}} xmm1 = xmm1[4],xmm3[4],xmm1[5],xmm3[5],xmm1[6],xmm3[6],xmm1[7],xmm3[7]2315; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[3,1,2,0]2316; SSE-NEXT: pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,6,6,7]2317; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[0,1,2,1]2318; SSE-NEXT: pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,5,6,4,7]2319; SSE-NEXT: movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]2320; SSE-NEXT: movdqa %xmm8, %xmm02321; SSE-NEXT: punpcklwd {{.*#+}} xmm0 = xmm0[0],xmm11[0],xmm0[1],xmm11[1],xmm0[2],xmm11[2],xmm0[3],xmm11[3]2322; SSE-NEXT: movdqa %xmm11, %xmm82323; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,6,5,6,7]2324; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[2,3,2,3]2325; SSE-NEXT: punpckldq {{.*#+}} xmm14 = xmm14[0],xmm0[0],xmm14[1],xmm0[1]2326; SSE-NEXT: movdqa %xmm7, %xmm02327; SSE-NEXT: pandn %xmm5, %xmm02328; SSE-NEXT: movdqa %xmm12, %xmm112329; SSE-NEXT: pand %xmm7, %xmm112330; SSE-NEXT: por %xmm0, %xmm112331; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm11[0,1,0,3]2332; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,5,4,7,7]2333; SSE-NEXT: punpckhwd {{.*#+}} xmm0 = xmm0[4],xmm6[4],xmm0[5],xmm6[5],xmm0[6],xmm6[6],xmm0[7],xmm6[7]2334; SSE-NEXT: pshuflw {{.*#+}} xmm0 = xmm0[0,2,2,3,4,5,6,7]2335; SSE-NEXT: shufps {{.*#+}} xmm14 = xmm14[0,1],xmm0[0,2]2336; SSE-NEXT: pand %xmm7, %xmm22337; SSE-NEXT: movdqa %xmm9, %xmm112338; SSE-NEXT: pandn %xmm9, %xmm72339; SSE-NEXT: por %xmm2, %xmm72340; SSE-NEXT: movdqa %xmm4, %xmm02341; SSE-NEXT: punpcklwd {{.*#+}} xmm0 = xmm0[0],xmm13[0],xmm0[1],xmm13[1],xmm0[2],xmm13[2],xmm0[3],xmm13[3]2342; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,6,5,6,7]2343; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[2,3,2,3]2344; SSE-NEXT: punpckldq {{.*#+}} xmm15 = xmm15[0],xmm0[0],xmm15[1],xmm0[1]2345; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm7[0,1,0,3]2346; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,5,4,7,7]2347; SSE-NEXT: punpckhwd {{.*#+}} xmm0 = xmm0[4],xmm3[4],xmm0[5],xmm3[5],xmm0[6],xmm3[6],xmm0[7],xmm3[7]2348; SSE-NEXT: pshuflw {{.*#+}} xmm0 = xmm0[0,2,2,3,4,5,6,7]2349; SSE-NEXT: shufps {{.*#+}} xmm15 = xmm15[0,1],xmm0[0,2]2350; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm8[1,1,1,1]2351; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload2352; SSE-NEXT: psrldq {{.*#+}} xmm2 = xmm2[6,7,8,9,10,11,12,13,14,15],zero,zero,zero,zero,zero,zero2353; SSE-NEXT: punpcklwd {{.*#+}} xmm2 = xmm2[0],xmm0[0],xmm2[1],xmm0[1],xmm2[2],xmm0[2],xmm2[3],xmm0[3]2354; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm2[1,1,1,1]2355; SSE-NEXT: pshufd $230, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload2356; SSE-NEXT: # xmm2 = mem[2,1,2,3]2357; SSE-NEXT: pshuflw {{.*#+}} xmm2 = xmm2[0,3,2,3,4,5,6,7]2358; SSE-NEXT: punpckldq {{.*#+}} xmm2 = xmm2[0],xmm0[0],xmm2[1],xmm0[1]2359; SSE-NEXT: pshuflw {{.*#+}} xmm0 = xmm12[1,1,1,1,4,5,6,7]2360; SSE-NEXT: punpcklwd {{.*#+}} xmm5 = xmm5[0],xmm0[0],xmm5[1],xmm0[1],xmm5[2],xmm0[2],xmm5[3],xmm0[3]2361; SSE-NEXT: pshufd {{.*#+}} xmm9 = xmm6[0,1,0,3]2362; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm5[2,2,2,2]2363; SSE-NEXT: pshufhw {{.*#+}} xmm9 = xmm9[0,1,2,3,4,5,4,7]2364; SSE-NEXT: punpckhdq {{.*#+}} xmm0 = xmm0[2],xmm9[2],xmm0[3],xmm9[3]2365; SSE-NEXT: movsd {{.*#+}} xmm0 = xmm2[0],xmm0[1]2366; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm13[1,1,1,1]2367; SSE-NEXT: psrldq {{.*#+}} xmm4 = xmm4[6,7,8,9,10,11,12,13,14,15],zero,zero,zero,zero,zero,zero2368; SSE-NEXT: punpcklwd {{.*#+}} xmm4 = xmm4[0],xmm2[0],xmm4[1],xmm2[1],xmm4[2],xmm2[2],xmm4[3],xmm2[3]2369; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm4[1,1,1,1]2370; SSE-NEXT: pshufd {{.*#+}} xmm9 = xmm10[2,1,2,3]2371; SSE-NEXT: pshuflw {{.*#+}} xmm9 = xmm9[0,3,2,3,4,5,6,7]2372; SSE-NEXT: punpckldq {{.*#+}} xmm9 = xmm9[0],xmm2[0],xmm9[1],xmm2[1]2373; SSE-NEXT: pshuflw $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload2374; SSE-NEXT: # xmm2 = mem[1,1,1,1,4,5,6,7]2375; SSE-NEXT: punpcklwd {{.*#+}} xmm11 = xmm11[0],xmm2[0],xmm11[1],xmm2[1],xmm11[2],xmm2[2],xmm11[3],xmm2[3]2376; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm3[0,1,0,3]2377; SSE-NEXT: pshufd {{.*#+}} xmm11 = xmm11[2,2,2,2]2378; SSE-NEXT: pshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,5,4,7]2379; SSE-NEXT: punpckhdq {{.*#+}} xmm11 = xmm11[2],xmm2[2],xmm11[3],xmm2[3]2380; SSE-NEXT: movsd {{.*#+}} xmm11 = xmm9[0],xmm11[1]2381; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload2382; SSE-NEXT: movaps %xmm2, (%rsi)2383; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload2384; SSE-NEXT: movaps %xmm2, 16(%rsi)2385; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload2386; SSE-NEXT: movaps %xmm2, (%rdx)2387; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload2388; SSE-NEXT: movaps %xmm2, 16(%rdx)2389; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload2390; SSE-NEXT: movaps %xmm2, (%rcx)2391; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload2392; SSE-NEXT: movaps %xmm2, 16(%rcx)2393; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload2394; SSE-NEXT: movaps %xmm2, (%r8)2395; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload2396; SSE-NEXT: movaps %xmm2, 16(%r8)2397; SSE-NEXT: movapd %xmm1, (%r9)2398; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload2399; SSE-NEXT: movaps %xmm1, 16(%r9)2400; SSE-NEXT: movq {{[0-9]+}}(%rsp), %rax2401; SSE-NEXT: movaps %xmm15, (%rax)2402; SSE-NEXT: movaps %xmm14, 16(%rax)2403; SSE-NEXT: movq {{[0-9]+}}(%rsp), %rax2404; SSE-NEXT: movapd %xmm11, (%rax)2405; SSE-NEXT: movapd %xmm0, 16(%rax)2406; SSE-NEXT: addq $232, %rsp2407; SSE-NEXT: retq2408;2409; AVX-LABEL: load_i16_stride7_vf16:2410; AVX: # %bb.0:2411; AVX-NEXT: subq $264, %rsp # imm = 0x1082412; AVX-NEXT: vmovdqa 176(%rdi), %xmm02413; AVX-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2414; AVX-NEXT: vpsrld $16, %xmm0, %xmm02415; AVX-NEXT: vmovdqa 160(%rdi), %xmm122416; AVX-NEXT: vpshufd {{.*#+}} xmm1 = xmm12[2,2,3,3]2417; AVX-NEXT: vpunpcklwd {{.*#+}} xmm0 = xmm1[0],xmm0[0],xmm1[1],xmm0[1],xmm1[2],xmm0[2],xmm1[3],xmm0[3]2418; AVX-NEXT: vmovdqa 128(%rdi), %xmm12419; AVX-NEXT: vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2420; AVX-NEXT: vpsrlq $16, %xmm1, %xmm12421; AVX-NEXT: vmovdqa 144(%rdi), %xmm82422; AVX-NEXT: vpunpckhwd {{.*#+}} xmm1 = xmm1[4],xmm8[4],xmm1[5],xmm8[5],xmm1[6],xmm8[6],xmm1[7],xmm8[7]2423; AVX-NEXT: vpblendw {{.*#+}} xmm0 = xmm1[0,1,2,3],xmm0[4,5,6,7]2424; AVX-NEXT: vmovdqa 208(%rdi), %xmm22425; AVX-NEXT: vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2426; AVX-NEXT: vmovdqa 192(%rdi), %xmm12427; AVX-NEXT: vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2428; AVX-NEXT: vpunpcklwd {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1],xmm1[2],xmm2[2],xmm1[3],xmm2[3]2429; AVX-NEXT: vpshufd {{.*#+}} xmm1 = xmm1[0,1,2,1]2430; AVX-NEXT: vpshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,5,4,7]2431; AVX-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,5],xmm1[6,7]2432; AVX-NEXT: vmovdqa 80(%rdi), %xmm52433; AVX-NEXT: vmovdqa 64(%rdi), %xmm22434; AVX-NEXT: vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2435; AVX-NEXT: vpunpckldq {{.*#+}} xmm4 = xmm2[0],xmm5[0],xmm2[1],xmm5[1]2436; AVX-NEXT: vmovdqa %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2437; AVX-NEXT: vmovdqa 96(%rdi), %xmm72438; AVX-NEXT: vpshufd {{.*#+}} xmm10 = xmm7[0,0,0,0]2439; AVX-NEXT: vpblendw {{.*#+}} xmm10 = xmm4[0,1,2,3,4,5,6],xmm10[7]2440; AVX-NEXT: vmovdqa 112(%rdi), %xmm62441; AVX-NEXT: vpshufd {{.*#+}} xmm11 = xmm6[0,3,2,3]2442; AVX-NEXT: vpshuflw {{.*#+}} xmm11 = xmm11[0,3,2,3,4,5,6,7]2443; AVX-NEXT: vinsertf128 $1, %xmm11, %ymm10, %ymm112444; AVX-NEXT: vmovdqa (%rdi), %xmm12445; AVX-NEXT: vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2446; AVX-NEXT: vmovdqa 16(%rdi), %xmm102447; AVX-NEXT: vpshufd {{.*#+}} xmm13 = xmm10[2,2,3,3]2448; AVX-NEXT: vpshufd {{.*#+}} xmm14 = xmm1[0,1,0,3]2449; AVX-NEXT: vpshufhw {{.*#+}} xmm14 = xmm14[0,1,2,3,4,7,6,7]2450; AVX-NEXT: vpunpckhdq {{.*#+}} xmm15 = xmm14[2],xmm13[2],xmm14[3],xmm13[3]2451; AVX-NEXT: vmovaps 32(%rdi), %xmm12452; AVX-NEXT: vmovaps 48(%rdi), %xmm132453; AVX-NEXT: vinsertps {{.*#+}} xmm9 = zero,xmm1[2],xmm13[2],zero2454; AVX-NEXT: vmovaps %xmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2455; AVX-NEXT: vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2456; AVX-NEXT: vpblendw {{.*#+}} xmm9 = xmm15[0,1,2],xmm9[3,4],xmm15[5,6,7]2457; AVX-NEXT: vmovaps {{.*#+}} ymm15 = [65535,65535,65535,65535,65535,0,0,0,0,0,65535,65535,65535,65535,65535,65535]2458; AVX-NEXT: vandnps %ymm11, %ymm15, %ymm112459; AVX-NEXT: vandps %ymm15, %ymm9, %ymm92460; AVX-NEXT: vorps %ymm11, %ymm9, %ymm92461; AVX-NEXT: vinsertf128 $1, %xmm0, %ymm0, %ymm02462; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm9[0,1,2,3,4],ymm0[5,6,7]2463; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2464; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload2465; AVX-NEXT: vpunpckhwd {{.*#+}} xmm0 = xmm12[4],xmm3[4],xmm12[5],xmm3[5],xmm12[6],xmm3[6],xmm12[7],xmm3[7]2466; AVX-NEXT: vmovdqa %xmm12, %xmm42467; AVX-NEXT: vpshuflw {{.*#+}} xmm0 = xmm0[2,1,2,3,4,5,6,7]2468; AVX-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[0,0,0,0]2469; AVX-NEXT: vpblendw $191, {{[-0-9]+}}(%r{{[sb]}}p), %xmm8, %xmm9 # 16-byte Folded Reload2470; AVX-NEXT: # xmm9 = mem[0,1,2,3,4,5],xmm8[6],mem[7]2471; AVX-NEXT: vpshufd {{.*#+}} xmm9 = xmm9[0,3,2,3]2472; AVX-NEXT: vpshuflw {{.*#+}} xmm9 = xmm9[0,0,3,2,4,5,6,7]2473; AVX-NEXT: vpblendw {{.*#+}} xmm0 = xmm9[0,1,2,3],xmm0[4,5,6,7]2474; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload2475; AVX-NEXT: vpslld $16, %xmm2, %xmm92476; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Reload2477; AVX-NEXT: vpunpcklwd {{.*#+}} xmm9 = xmm12[0],xmm9[0],xmm12[1],xmm9[1],xmm12[2],xmm9[2],xmm12[3],xmm9[3]2478; AVX-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,5],xmm9[6,7]2479; AVX-NEXT: vpsrld $16, %xmm5, %xmm92480; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload2481; AVX-NEXT: vpsrldq {{.*#+}} xmm11 = xmm14[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero2482; AVX-NEXT: vpunpckldq {{.*#+}} xmm9 = xmm11[0],xmm9[0],xmm11[1],xmm9[1]2483; AVX-NEXT: vpslldq {{.*#+}} xmm11 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,xmm7[0,1,2,3,4,5]2484; AVX-NEXT: vmovdqa %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2485; AVX-NEXT: vpblendw {{.*#+}} xmm9 = xmm9[0,1,2,3,4,5,6],xmm11[7]2486; AVX-NEXT: vpsrld $16, %xmm6, %xmm112487; AVX-NEXT: vmovdqa %xmm6, %xmm52488; AVX-NEXT: vmovdqa %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2489; AVX-NEXT: vinsertf128 $1, %xmm11, %ymm9, %ymm92490; AVX-NEXT: vpunpckhwd {{.*#+}} xmm11 = xmm1[4],xmm13[4],xmm1[5],xmm13[5],xmm1[6],xmm13[6],xmm1[7],xmm13[7]2491; AVX-NEXT: vpshufb {{.*#+}} xmm11 = xmm11[8,9,8,9,8,9,8,9,6,7,6,7,6,7,6,7]2492; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload2493; AVX-NEXT: vpblendw {{.*#+}} xmm15 = xmm10[0],xmm1[1],xmm10[2,3,4,5,6,7]2494; AVX-NEXT: vmovdqa %xmm10, %xmm132495; AVX-NEXT: vmovdqa %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2496; AVX-NEXT: vpshufd {{.*#+}} xmm15 = xmm15[0,3,2,3]2497; AVX-NEXT: vpshuflw {{.*#+}} xmm15 = xmm15[1,0,3,3,4,5,6,7]2498; AVX-NEXT: vpblendw {{.*#+}} xmm15 = xmm15[0,1,2],xmm11[3,4],xmm15[5,6,7]2499; AVX-NEXT: vmovaps {{.*#+}} ymm6 = [65535,65535,65535,65535,65535,0,0,0,0,65535,65535,65535,65535,65535,65535,65535]2500; AVX-NEXT: vandnps %ymm9, %ymm6, %ymm92501; AVX-NEXT: vandps %ymm6, %ymm15, %ymm152502; AVX-NEXT: vorps %ymm9, %ymm15, %ymm92503; AVX-NEXT: vinsertf128 $1, %xmm0, %ymm0, %ymm02504; AVX-NEXT: vmovaps {{.*#+}} ymm6 = [65535,65535,65535,65535,65535,65535,65535,65535,65535,0,0,0,0,0,0,0]2505; AVX-NEXT: vandnps %ymm0, %ymm6, %ymm02506; AVX-NEXT: vandps %ymm6, %ymm9, %ymm92507; AVX-NEXT: vorps %ymm0, %ymm9, %ymm02508; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2509; AVX-NEXT: vpsllq $16, %xmm3, %xmm02510; AVX-NEXT: vpunpckhwd {{.*#+}} xmm0 = xmm4[4],xmm0[4],xmm4[5],xmm0[5],xmm4[6],xmm0[6],xmm4[7],xmm0[7]2511; AVX-NEXT: vmovdqa %xmm4, %xmm152512; AVX-NEXT: vmovdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2513; AVX-NEXT: vmovdqa %xmm8, (%rsp) # 16-byte Spill2514; AVX-NEXT: vpshufd {{.*#+}} xmm9 = xmm8[0,3,2,3]2515; AVX-NEXT: vpshuflw {{.*#+}} xmm9 = xmm9[0,1,0,3,4,5,6,7]2516; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload2517; AVX-NEXT: vpblendw {{.*#+}} xmm9 = xmm6[0,1],xmm9[2,3],xmm6[4,5,6,7]2518; AVX-NEXT: vpblendw {{.*#+}} xmm0 = xmm9[0,1,2,3],xmm0[4,5,6,7]2519; AVX-NEXT: vpsrldq {{.*#+}} xmm9 = xmm12[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero2520; AVX-NEXT: vmovdqa %xmm12, %xmm112521; AVX-NEXT: vpunpcklwd {{.*#+}} xmm9 = xmm9[0],xmm2[0],xmm9[1],xmm2[1],xmm9[2],xmm2[2],xmm9[3],xmm2[3]2522; AVX-NEXT: vmovdqa %xmm2, %xmm42523; AVX-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,5],xmm9[6,7]2524; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload2525; AVX-NEXT: vpshufd {{.*#+}} xmm9 = xmm3[2,2,2,2]2526; AVX-NEXT: vmovdqa %xmm14, %xmm22527; AVX-NEXT: vpblendw {{.*#+}} xmm9 = xmm14[0,1,2,3,4,5],xmm9[6,7]2528; AVX-NEXT: vpshufd {{.*#+}} xmm10 = xmm7[0,1,0,1]2529; AVX-NEXT: vpblendw {{.*#+}} xmm9 = xmm9[0,1,2,3,4,5,6],xmm10[7]2530; AVX-NEXT: vpshufd {{.*#+}} xmm10 = xmm5[1,1,1,1]2531; AVX-NEXT: vinsertf128 $1, %xmm10, %ymm9, %ymm92532; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload2533; AVX-NEXT: vpshufd {{.*#+}} xmm10 = xmm7[0,1,0,3]2534; AVX-NEXT: vpshufhw {{.*#+}} xmm10 = xmm10[0,1,2,3,4,5,4,7]2535; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload2536; AVX-NEXT: vpshufd {{.*#+}} xmm12 = xmm14[2,2,3,3]2537; AVX-NEXT: vpunpckhqdq {{.*#+}} xmm10 = xmm10[1],xmm12[1]2538; AVX-NEXT: vpunpcklwd {{.*#+}} xmm12 = xmm1[0],xmm13[0],xmm1[1],xmm13[1],xmm1[2],xmm13[2],xmm1[3],xmm13[3]2539; AVX-NEXT: vpshufd {{.*#+}} xmm1 = xmm12[2,1,2,3]2540; AVX-NEXT: vpshuflw {{.*#+}} xmm1 = xmm1[0,3,2,3,4,5,6,7]2541; AVX-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1],xmm10[2,3,4,5,6,7]2542; AVX-NEXT: vmovaps {{.*#+}} ymm5 = [65535,65535,65535,65535,65535,0,0,0,0,65535,65535,65535,65535,65535,65535,65535]2543; AVX-NEXT: vandnps %ymm9, %ymm5, %ymm92544; AVX-NEXT: vandps %ymm5, %ymm1, %ymm12545; AVX-NEXT: vorps %ymm1, %ymm9, %ymm12546; AVX-NEXT: vinsertf128 $1, %xmm0, %ymm0, %ymm02547; AVX-NEXT: vmovaps {{.*#+}} ymm5 = [65535,65535,65535,65535,65535,65535,65535,65535,65535,0,0,0,0,0,0,0]2548; AVX-NEXT: vandnps %ymm0, %ymm5, %ymm02549; AVX-NEXT: vandps %ymm5, %ymm1, %ymm12550; AVX-NEXT: vorps %ymm0, %ymm1, %ymm02551; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2552; AVX-NEXT: vpunpcklwd {{.*#+}} xmm0 = xmm6[0],xmm8[0],xmm6[1],xmm8[1],xmm6[2],xmm8[2],xmm6[3],xmm8[3]2553; AVX-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[2,1,2,3]2554; AVX-NEXT: vpshuflw {{.*#+}} xmm0 = xmm0[0,0,3,3,4,5,6,7]2555; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload2556; AVX-NEXT: vpblendw {{.*#+}} xmm1 = xmm15[0,1,2,3,4,5],xmm5[6],xmm15[7]2557; AVX-NEXT: vpshuflw {{.*#+}} xmm1 = xmm1[0,0,0,0,4,5,6,7]2558; AVX-NEXT: vpshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,7,6,6,7]2559; AVX-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0],xmm0[1,2],xmm1[3,4,5,6,7]2560; AVX-NEXT: vpunpckhwd {{.*#+}} xmm0 = xmm11[4],xmm4[4],xmm11[5],xmm4[5],xmm11[6],xmm4[6],xmm11[7],xmm4[7]2561; AVX-NEXT: vpshuflw {{.*#+}} xmm9 = xmm0[2,1,2,3,4,5,6,7]2562; AVX-NEXT: vpshufd {{.*#+}} xmm9 = xmm9[0,0,0,0]2563; AVX-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,5],xmm9[6,7]2564; AVX-NEXT: vpshufhw {{.*#+}} xmm9 = xmm12[0,1,2,3,6,5,6,7]2565; AVX-NEXT: vpshufd {{.*#+}} xmm9 = xmm9[2,2,2,2]2566; AVX-NEXT: vmovdqa %xmm7, %xmm132567; AVX-NEXT: vpblendw {{.*#+}} xmm10 = xmm14[0],xmm7[1],xmm14[2,3,4,5,6,7]2568; AVX-NEXT: vpshuflw {{.*#+}} xmm10 = xmm10[0,1,1,0,4,5,6,7]2569; AVX-NEXT: vpshufhw {{.*#+}} xmm10 = xmm10[0,1,2,3,7,7,7,7]2570; AVX-NEXT: vpblendw {{.*#+}} xmm9 = xmm9[0,1],xmm10[2,3,4,5,6,7]2571; AVX-NEXT: vpunpckhwd {{.*#+}} xmm10 = xmm2[4],xmm3[4],xmm2[5],xmm3[5],xmm2[6],xmm3[6],xmm2[7],xmm3[7]2572; AVX-NEXT: vmovdqa %xmm2, %xmm112573; AVX-NEXT: vpshufd {{.*#+}} xmm10 = xmm10[0,1,2,1]2574; AVX-NEXT: vpshufhw {{.*#+}} xmm10 = xmm10[0,1,2,3,4,4,7,7]2575; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload2576; AVX-NEXT: vpunpckhwd {{.*#+}} xmm10 = xmm10[4],xmm7[4],xmm10[5],xmm7[5],xmm10[6],xmm7[6],xmm10[7],xmm7[7]2577; AVX-NEXT: vpshufb {{.*#+}} xmm10 = xmm10[u,u,u,u,u,u,u,u,u,u,4,5,8,9,2,3]2578; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload2579; AVX-NEXT: vpsrlq $48, %xmm8, %xmm122580; AVX-NEXT: vinsertf128 $1, %xmm12, %ymm10, %ymm102581; AVX-NEXT: vmovaps {{.*#+}} ymm2 = [65535,65535,65535,65535,65535,0,0,0,0,65535,65535,65535,65535,65535,65535,65535]2582; AVX-NEXT: vandps %ymm2, %ymm9, %ymm92583; AVX-NEXT: vandnps %ymm10, %ymm2, %ymm102584; AVX-NEXT: vorps %ymm10, %ymm9, %ymm92585; AVX-NEXT: vinsertf128 $1, %xmm1, %ymm0, %ymm12586; AVX-NEXT: vmovaps {{.*#+}} ymm15 = [65535,65535,65535,65535,65535,65535,65535,65535,65535,0,0,0,0,0,0,0]2587; AVX-NEXT: vandnps %ymm1, %ymm15, %ymm12588; AVX-NEXT: vandps %ymm15, %ymm9, %ymm92589; AVX-NEXT: vorps %ymm1, %ymm9, %ymm12590; AVX-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2591; AVX-NEXT: vpshufd {{.*#+}} xmm1 = xmm6[1,1,1,1]2592; AVX-NEXT: vmovdqa (%rsp), %xmm6 # 16-byte Reload2593; AVX-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1],xmm6[2,3],xmm1[4,5,6,7]2594; AVX-NEXT: vpshufd {{.*#+}} xmm9 = xmm5[0,3,2,3]2595; AVX-NEXT: vpshuflw {{.*#+}} xmm9 = xmm9[0,1,0,3,4,5,6,7]2596; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload2597; AVX-NEXT: vpunpckldq {{.*#+}} xmm9 = xmm9[0],xmm2[0],xmm9[1],xmm2[1]2598; AVX-NEXT: vpblendw {{.*#+}} xmm1 = xmm9[0],xmm1[1,2],xmm9[3,4,5,6,7]2599; AVX-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[0,1,2,1]2600; AVX-NEXT: vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,5,4,7]2601; AVX-NEXT: vpblendw {{.*#+}} xmm0 = xmm1[0,1,2,3,4,5],xmm0[6,7]2602; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload2603; AVX-NEXT: vpsrlq $48, %xmm4, %xmm12604; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload2605; AVX-NEXT: vpshufd {{.*#+}} xmm9 = xmm3[2,3,2,3]2606; AVX-NEXT: vpunpcklwd {{.*#+}} xmm1 = xmm9[0],xmm1[0],xmm9[1],xmm1[1],xmm9[2],xmm1[2],xmm9[3],xmm1[3]2607; AVX-NEXT: vpsrlq $16, %xmm13, %xmm92608; AVX-NEXT: vpunpcklwd {{.*#+}} xmm9 = xmm9[0],xmm14[0],xmm9[1],xmm14[1],xmm9[2],xmm14[2],xmm9[3],xmm14[3]2609; AVX-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1],xmm9[2,3],xmm1[4,5,6,7]2610; AVX-NEXT: vpshufd {{.*#+}} xmm9 = xmm11[0,1,0,3]2611; AVX-NEXT: vpshufhw {{.*#+}} xmm9 = xmm9[0,1,2,3,4,5,4,7]2612; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Reload2613; AVX-NEXT: vpunpckhdq {{.*#+}} xmm9 = xmm9[2],xmm12[2],xmm9[3],xmm12[3]2614; AVX-NEXT: vpunpckhwd {{.*#+}} xmm9 = xmm9[4],xmm7[4],xmm9[5],xmm7[5],xmm9[6],xmm7[6],xmm9[7],xmm7[7]2615; AVX-NEXT: vpshufb {{.*#+}} xmm9 = xmm9[u,u,u,u,u,u,u,u,0,1,4,5,8,9,6,7]2616; AVX-NEXT: vpshufd {{.*#+}} xmm10 = xmm8[2,3,2,3]2617; AVX-NEXT: vinsertf128 $1, %xmm10, %ymm9, %ymm92618; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm1[0,1],ymm9[2,3,4,5,6,7]2619; AVX-NEXT: vinsertf128 $1, %xmm0, %ymm0, %ymm02620; AVX-NEXT: vandnps %ymm0, %ymm15, %ymm02621; AVX-NEXT: vandps %ymm1, %ymm15, %ymm12622; AVX-NEXT: vorps %ymm0, %ymm1, %ymm02623; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2624; AVX-NEXT: vpunpcklwd {{.*#+}} xmm0 = xmm2[0],xmm5[0],xmm2[1],xmm5[1],xmm2[2],xmm5[2],xmm2[3],xmm5[3]2625; AVX-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[8,9,8,9,8,9,8,9,6,7,6,7,6,7,6,7]2626; AVX-NEXT: vpsrlq $48, %xmm6, %xmm12627; AVX-NEXT: vmovdqa %xmm6, %xmm152628; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload2629; AVX-NEXT: vpsrldq {{.*#+}} xmm9 = xmm5[6,7,8,9,10,11,12,13,14,15],zero,zero,zero,zero,zero,zero2630; AVX-NEXT: vpunpckldq {{.*#+}} xmm1 = xmm9[0],xmm1[0],xmm9[1],xmm1[1]2631; AVX-NEXT: vpblendw {{.*#+}} xmm0 = xmm1[0,1,2],xmm0[3,4],xmm1[5,6,7]2632; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload2633; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload2634; AVX-NEXT: vpblendw {{.*#+}} xmm1 = xmm6[0,1,2,3,4,5],xmm2[6],xmm6[7]2635; AVX-NEXT: vpshufd {{.*#+}} xmm1 = xmm1[0,1,0,3]2636; AVX-NEXT: vpshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,4,7,6]2637; AVX-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2,3,4],xmm1[5,6,7]2638; AVX-NEXT: vpsrld $16, %xmm3, %xmm12639; AVX-NEXT: vpunpckhwd {{.*#+}} xmm1 = xmm1[4],xmm4[4],xmm1[5],xmm4[5],xmm1[6],xmm4[6],xmm1[7],xmm4[7]2640; AVX-NEXT: vpunpcklwd {{.*#+}} xmm9 = xmm13[0],xmm14[0],xmm13[1],xmm14[1],xmm13[2],xmm14[2],xmm13[3],xmm14[3]2641; AVX-NEXT: vpshufhw {{.*#+}} xmm9 = xmm9[0,1,2,3,6,5,6,7]2642; AVX-NEXT: vpshufd {{.*#+}} xmm9 = xmm9[2,2,2,2]2643; AVX-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1],xmm9[2,3],xmm1[4,5,6,7]2644; AVX-NEXT: vpblendw {{.*#+}} xmm9 = xmm12[0],xmm11[1],xmm12[2,3,4,5,6,7]2645; AVX-NEXT: vpshufd {{.*#+}} xmm9 = xmm9[0,1,0,3]2646; AVX-NEXT: vpshufhw {{.*#+}} xmm9 = xmm9[0,1,2,3,5,4,7,7]2647; AVX-NEXT: vpunpckhwd {{.*#+}} xmm9 = xmm9[4],xmm7[4],xmm9[5],xmm7[5],xmm9[6],xmm7[6],xmm9[7],xmm7[7]2648; AVX-NEXT: vpshuflw {{.*#+}} xmm9 = xmm9[0,2,2,3,4,5,6,7]2649; AVX-NEXT: vpshufd {{.*#+}} xmm9 = xmm9[0,1,0,2]2650; AVX-NEXT: vpsrldq {{.*#+}} xmm10 = xmm8[10,11,12,13,14,15],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero2651; AVX-NEXT: vinsertf128 $1, %xmm10, %ymm9, %ymm92652; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm1[0,1],ymm9[2,3,4,5,6,7]2653; AVX-NEXT: vinsertf128 $1, %xmm0, %ymm0, %ymm02654; AVX-NEXT: vmovaps {{.*#+}} ymm9 = [65535,65535,65535,65535,65535,65535,65535,65535,65535,0,0,0,0,0,0,0]2655; AVX-NEXT: vandnps %ymm0, %ymm9, %ymm02656; AVX-NEXT: vandps %ymm1, %ymm9, %ymm12657; AVX-NEXT: vorps %ymm0, %ymm1, %ymm02658; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload2659; AVX-NEXT: vinsertps $41, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload2660; AVX-NEXT: # xmm1 = zero,xmm1[1],mem[0],zero2661; AVX-NEXT: vpunpckhdq {{.*#+}} xmm5 = xmm5[2],xmm15[2],xmm5[3],xmm15[3]2662; AVX-NEXT: vpblendw {{.*#+}} xmm1 = xmm5[0,1,2],xmm1[3,4],xmm5[5,6,7]2663; AVX-NEXT: vpblendw {{.*#+}} xmm5 = xmm2[0],xmm6[1],xmm2[2,3,4,5,6,7]2664; AVX-NEXT: vpshufd {{.*#+}} xmm5 = xmm5[0,1,0,3]2665; AVX-NEXT: vpshufhw {{.*#+}} xmm5 = xmm5[0,1,2,3,4,5,4,7]2666; AVX-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1,2,3,4],xmm5[5,6,7]2667; AVX-NEXT: vpshufd {{.*#+}} xmm5 = xmm14[1,1,1,1]2668; AVX-NEXT: vpsrldq {{.*#+}} xmm6 = xmm13[6,7,8,9,10,11,12,13,14,15],zero,zero,zero,zero,zero,zero2669; AVX-NEXT: vpunpcklwd {{.*#+}} xmm5 = xmm6[0],xmm5[0],xmm6[1],xmm5[1],xmm6[2],xmm5[2],xmm6[3],xmm5[3]2670; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload2671; AVX-NEXT: vpunpckhwd {{.*#+}} xmm6 = xmm2[4],xmm4[4],xmm2[5],xmm4[5],xmm2[6],xmm4[6],xmm2[7],xmm4[7]2672; AVX-NEXT: vpshufd {{.*#+}} xmm6 = xmm6[2,1,2,3]2673; AVX-NEXT: vpshuflw {{.*#+}} xmm6 = xmm6[0,3,2,3,4,5,6,7]2674; AVX-NEXT: vpblendw {{.*#+}} xmm5 = xmm6[0,1],xmm5[2,3],xmm6[4,5,6,7]2675; AVX-NEXT: vpmovzxwd {{.*#+}} xmm6 = xmm12[0],zero,xmm12[1],zero,xmm12[2],zero,xmm12[3],zero2676; AVX-NEXT: vpunpcklwd {{.*#+}} xmm2 = xmm11[0],xmm6[0],xmm11[1],xmm6[1],xmm11[2],xmm6[2],xmm11[3],xmm6[3]2677; AVX-NEXT: vpshufd {{.*#+}} xmm3 = xmm7[0,1,0,3]2678; AVX-NEXT: vpshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,4,5,4,7]2679; AVX-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,5],xmm3[6,7]2680; AVX-NEXT: vpshufd {{.*#+}} xmm3 = xmm8[3,3,3,3]2681; AVX-NEXT: vinsertf128 $1, %xmm3, %ymm2, %ymm22682; AVX-NEXT: vblendps {{.*#+}} ymm2 = ymm5[0,1],ymm2[2,3,4,5,6,7]2683; AVX-NEXT: vinsertf128 $1, %xmm1, %ymm0, %ymm12684; AVX-NEXT: vandnps %ymm1, %ymm9, %ymm12685; AVX-NEXT: vandps %ymm2, %ymm9, %ymm22686; AVX-NEXT: vorps %ymm1, %ymm2, %ymm12687; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload2688; AVX-NEXT: vmovaps %ymm2, (%rsi)2689; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload2690; AVX-NEXT: vmovaps %ymm2, (%rdx)2691; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload2692; AVX-NEXT: vmovaps %ymm2, (%rcx)2693; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload2694; AVX-NEXT: vmovaps %ymm2, (%r8)2695; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload2696; AVX-NEXT: vmovaps %ymm2, (%r9)2697; AVX-NEXT: movq {{[0-9]+}}(%rsp), %rax2698; AVX-NEXT: vmovaps %ymm0, (%rax)2699; AVX-NEXT: movq {{[0-9]+}}(%rsp), %rax2700; AVX-NEXT: vmovaps %ymm1, (%rax)2701; AVX-NEXT: addq $264, %rsp # imm = 0x1082702; AVX-NEXT: vzeroupper2703; AVX-NEXT: retq2704;2705; AVX2-LABEL: load_i16_stride7_vf16:2706; AVX2: # %bb.0:2707; AVX2-NEXT: vmovdqa (%rdi), %ymm02708; AVX2-NEXT: vmovdqa 32(%rdi), %ymm12709; AVX2-NEXT: vmovdqa 64(%rdi), %ymm22710; AVX2-NEXT: vmovdqa 96(%rdi), %ymm32711; AVX2-NEXT: vmovdqa 192(%rdi), %ymm92712; AVX2-NEXT: vmovdqa 128(%rdi), %ymm52713; AVX2-NEXT: vmovdqa 160(%rdi), %ymm62714; AVX2-NEXT: vpblendd {{.*#+}} ymm4 = ymm6[0,1,2],ymm5[3],ymm6[4,5],ymm5[6],ymm6[7]2715; AVX2-NEXT: vpshufhw {{.*#+}} xmm7 = xmm4[0,1,2,3,4,6,4,7]2716; AVX2-NEXT: vextracti128 $1, %ymm4, %xmm42717; AVX2-NEXT: vpshufd {{.*#+}} xmm4 = xmm4[0,1,2,1]2718; AVX2-NEXT: vpshufhw {{.*#+}} xmm4 = xmm4[0,1,2,3,4,5,7,7]2719; AVX2-NEXT: vpunpckhwd {{.*#+}} xmm4 = xmm7[4],xmm4[4],xmm7[5],xmm4[5],xmm7[6],xmm4[6],xmm7[7],xmm4[7]2720; AVX2-NEXT: vinserti128 $1, %xmm4, %ymm0, %ymm42721; AVX2-NEXT: vpermq {{.*#+}} ymm7 = ymm9[0,1,0,2]2722; AVX2-NEXT: vpshufd {{.*#+}} ymm8 = ymm7[0,1,2,1,4,5,6,5]2723; AVX2-NEXT: vpshufhw {{.*#+}} ymm8 = ymm8[0,1,2,3,4,5,6,5,8,9,10,11,12,13,14,13]2724; AVX2-NEXT: vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3,4,5,6],ymm8[7]2725; AVX2-NEXT: vpblendd {{.*#+}} ymm8 = ymm0[0,1],ymm1[2],ymm0[3,4,5],ymm1[6],ymm0[7]2726; AVX2-NEXT: vextracti128 $1, %ymm8, %xmm102727; AVX2-NEXT: vpblendw {{.*#+}} xmm8 = xmm8[0,1,2,3],xmm10[4],xmm8[5],xmm10[6],xmm8[7]2728; AVX2-NEXT: vpshufb {{.*#+}} xmm8 = xmm8[0,1,14,15,12,13,10,11,8,9,8,9,8,9,8,9]2729; AVX2-NEXT: vpblendd {{.*#+}} ymm10 = ymm3[0],ymm2[1],ymm3[2,3,4],ymm2[5],ymm3[6,7]2730; AVX2-NEXT: vpermq {{.*#+}} ymm10 = ymm10[0,2,2,3]2731; AVX2-NEXT: vpshufb {{.*#+}} ymm10 = ymm10[0,1,14,15,12,13,14,15,2,3,6,7,12,13,2,3,16,17,30,31,u,u,u,u,u,u,u,u,u,u,u,u]2732; AVX2-NEXT: vpmovsxbw {{.*#+}} ymm11 = [65535,65535,65535,65535,65535,0,0,0,0,0,0,0,0,0,0,0]2733; AVX2-NEXT: vpblendvb %ymm11, %ymm8, %ymm10, %ymm82734; AVX2-NEXT: vpblendd {{.*#+}} ymm4 = ymm8[0,1,2,3,4],ymm4[5,6,7]2735; AVX2-NEXT: vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2736; AVX2-NEXT: vpblendd {{.*#+}} ymm8 = ymm0[0,1,2],ymm1[3],ymm0[4,5],ymm1[6],ymm0[7]2737; AVX2-NEXT: vextracti128 $1, %ymm8, %xmm102738; AVX2-NEXT: vpblendw {{.*#+}} xmm8 = xmm10[0],xmm8[1],xmm10[2,3,4,5],xmm8[6],xmm10[7]2739; AVX2-NEXT: vpshufb {{.*#+}} xmm8 = xmm8[2,3,0,1,14,15,12,13,10,11,10,11,10,11,10,11]2740; AVX2-NEXT: vpblendd {{.*#+}} ymm10 = ymm3[0,1],ymm2[2],ymm3[3,4],ymm2[5],ymm3[6,7]2741; AVX2-NEXT: vpermq {{.*#+}} ymm12 = ymm10[2,3,0,1]2742; AVX2-NEXT: vpblendw {{.*#+}} ymm10 = ymm10[0,1,2],ymm12[3],ymm10[4,5,6,7,8,9,10],ymm12[11],ymm10[12,13,14,15]2743; AVX2-NEXT: vpshufb {{.*#+}} ymm12 = ymm10[2,3,2,3,2,3,2,3,8,9,8,9,6,7,4,5,18,19,18,19,18,19,18,19,24,25,24,25,22,23,20,21]2744; AVX2-NEXT: vmovdqa %xmm11, %xmm102745; AVX2-NEXT: vpblendvb %ymm10, %ymm8, %ymm12, %ymm82746; AVX2-NEXT: vpblendd {{.*#+}} ymm11 = ymm5[0,1],ymm6[2],ymm5[3,4,5],ymm6[6],ymm5[7]2747; AVX2-NEXT: vextracti128 $1, %ymm11, %xmm122748; AVX2-NEXT: vpblendw {{.*#+}} xmm11 = xmm11[0,1,2,3],xmm12[4],xmm11[5],xmm12[6],xmm11[7]2749; AVX2-NEXT: vpshufb {{.*#+}} xmm11 = xmm11[0,1,0,1,14,15,12,13,10,11,8,9,u,u,u,u]2750; AVX2-NEXT: vinserti128 $1, %xmm11, %ymm0, %ymm112751; AVX2-NEXT: vpshufd {{.*#+}} ymm7 = ymm7[0,1,1,3,4,5,5,7]2752; AVX2-NEXT: vpshufhw {{.*#+}} ymm7 = ymm7[0,1,2,3,4,5,5,6,8,9,10,11,12,13,13,14]2753; AVX2-NEXT: vpblendd {{.*#+}} ymm7 = ymm11[0,1,2,3,4,5,6],ymm7[7]2754; AVX2-NEXT: vpblendw {{.*#+}} ymm7 = ymm8[0],ymm7[1,2,3,4,5,6,7],ymm8[8],ymm7[9,10,11,12,13,14,15]2755; AVX2-NEXT: vpblendd {{.*#+}} ymm7 = ymm8[0,1,2,3],ymm7[4,5,6,7]2756; AVX2-NEXT: vpblendd {{.*#+}} ymm8 = ymm1[0],ymm0[1],ymm1[2,3],ymm0[4],ymm1[5,6,7]2757; AVX2-NEXT: vextracti128 $1, %ymm8, %xmm112758; AVX2-NEXT: vpblendw {{.*#+}} xmm8 = xmm8[0],xmm11[1],xmm8[2,3,4,5],xmm11[6],xmm8[7]2759; AVX2-NEXT: vpshufb {{.*#+}} xmm8 = xmm8[4,5,2,3,0,1,14,15,12,13,12,13,12,13,12,13]2760; AVX2-NEXT: vpermq {{.*#+}} ymm11 = ymm2[2,3,0,1]2761; AVX2-NEXT: vpblendd {{.*#+}} ymm12 = ymm3[0,1],ymm2[2,3],ymm3[4,5],ymm2[6,7]2762; AVX2-NEXT: vpblendw {{.*#+}} ymm11 = ymm12[0,1,2,3],ymm11[4],ymm12[5,6,7,8,9,10,11],ymm11[12],ymm12[13,14,15]2763; AVX2-NEXT: vpshufb {{.*#+}} ymm11 = ymm11[4,5,4,5,4,5,4,5,8,9,10,11,8,9,6,7,20,21,20,21,20,21,20,21,24,25,26,27,24,25,22,23]2764; AVX2-NEXT: vpblendvb %ymm10, %ymm8, %ymm11, %ymm82765; AVX2-NEXT: vpblendd {{.*#+}} ymm11 = ymm5[0,1,2],ymm6[3],ymm5[4,5],ymm6[6],ymm5[7]2766; AVX2-NEXT: vextracti128 $1, %ymm11, %xmm122767; AVX2-NEXT: vpblendw {{.*#+}} xmm11 = xmm12[0],xmm11[1],xmm12[2,3,4,5],xmm11[6],xmm12[7]2768; AVX2-NEXT: vpshufb {{.*#+}} xmm11 = xmm11[0,1,2,3,0,1,14,15,12,13,10,11,u,u,u,u]2769; AVX2-NEXT: vinserti128 $1, %xmm11, %ymm0, %ymm112770; AVX2-NEXT: vpermq {{.*#+}} ymm12 = ymm9[0,1,1,2]2771; AVX2-NEXT: vpshufd {{.*#+}} ymm12 = ymm12[0,1,0,3,4,5,4,7]2772; AVX2-NEXT: vpshufhw {{.*#+}} ymm12 = ymm12[0,1,2,3,4,5,4,7,8,9,10,11,12,13,12,15]2773; AVX2-NEXT: vpblendd {{.*#+}} ymm11 = ymm11[0,1,2,3,4,5,6],ymm12[7]2774; AVX2-NEXT: vpblendw {{.*#+}} ymm11 = ymm8[0],ymm11[1,2,3,4,5,6,7],ymm8[8],ymm11[9,10,11,12,13,14,15]2775; AVX2-NEXT: vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3],ymm11[4,5,6,7]2776; AVX2-NEXT: vpblendd {{.*#+}} ymm11 = ymm6[0],ymm5[1],ymm6[2,3],ymm5[4],ymm6[5,6,7]2777; AVX2-NEXT: vextracti128 $1, %ymm11, %xmm122778; AVX2-NEXT: vpblendw {{.*#+}} xmm11 = xmm11[0],xmm12[1],xmm11[2,3,4,5],xmm12[6],xmm11[7]2779; AVX2-NEXT: vpshuflw {{.*#+}} xmm11 = xmm11[0,2,1,0,4,5,6,7]2780; AVX2-NEXT: vpshufhw {{.*#+}} xmm11 = xmm11[0,1,2,3,7,6,6,7]2781; AVX2-NEXT: vinserti128 $1, %xmm11, %ymm0, %ymm112782; AVX2-NEXT: vpermq {{.*#+}} ymm12 = ymm9[0,1,1,3]2783; AVX2-NEXT: vpshufd {{.*#+}} ymm9 = ymm12[0,1,2,0,4,5,6,4]2784; AVX2-NEXT: vpshufhw {{.*#+}} ymm9 = ymm9[0,1,2,3,4,5,7,4,8,9,10,11,12,13,15,12]2785; AVX2-NEXT: vpblendd {{.*#+}} ymm9 = ymm11[0,1,2,3,4,5,6],ymm9[7]2786; AVX2-NEXT: vpblendd {{.*#+}} ymm11 = ymm1[0],ymm0[1],ymm1[2,3,4],ymm0[5],ymm1[6,7]2787; AVX2-NEXT: vextracti128 $1, %ymm11, %xmm132788; AVX2-NEXT: vpblendw {{.*#+}} xmm11 = xmm13[0],xmm11[1],xmm13[2],xmm11[3],xmm13[4,5,6,7]2789; AVX2-NEXT: vpshuflw {{.*#+}} xmm11 = xmm11[3,2,1,0,4,5,6,7]2790; AVX2-NEXT: vpshufhw {{.*#+}} xmm11 = xmm11[0,1,2,3,7,7,7,7]2791; AVX2-NEXT: vpblendd {{.*#+}} ymm13 = ymm3[0,1,2],ymm2[3],ymm3[4,5],ymm2[6],ymm3[7]2792; AVX2-NEXT: vpermq {{.*#+}} ymm13 = ymm13[1,3,2,3]2793; AVX2-NEXT: vpshufb {{.*#+}} ymm13 = ymm13[6,7,6,7,6,7,6,7,8,9,4,5,10,11,0,1,22,23,22,23,22,23,22,23,24,25,20,21,26,27,16,17]2794; AVX2-NEXT: vpblendvb %ymm10, %ymm11, %ymm13, %ymm102795; AVX2-NEXT: vpblendw {{.*#+}} ymm9 = ymm10[0],ymm9[1,2,3,4,5,6,7],ymm10[8],ymm9[9,10,11,12,13,14,15]2796; AVX2-NEXT: vpblendd {{.*#+}} ymm9 = ymm10[0,1,2,3],ymm9[4,5,6,7]2797; AVX2-NEXT: vpblendd {{.*#+}} ymm10 = ymm6[0],ymm5[1],ymm6[2,3,4],ymm5[5],ymm6[6,7]2798; AVX2-NEXT: vextracti128 $1, %ymm10, %xmm112799; AVX2-NEXT: vpblendw {{.*#+}} xmm10 = xmm11[0],xmm10[1],xmm11[2],xmm10[3],xmm11[4,5,6,7]2800; AVX2-NEXT: vpshufb {{.*#+}} xmm10 = xmm10[0,1,6,7,4,5,2,3,0,1,14,15,u,u,u,u]2801; AVX2-NEXT: vinserti128 $1, %xmm10, %ymm0, %ymm102802; AVX2-NEXT: vpshufd {{.*#+}} ymm11 = ymm12[0,1,2,1,4,5,6,5]2803; AVX2-NEXT: vpshufhw {{.*#+}} ymm11 = ymm11[0,1,2,3,4,5,6,5,8,9,10,11,12,13,14,13]2804; AVX2-NEXT: vpblendd {{.*#+}} ymm10 = ymm10[0,1,2,3,4,5,6],ymm11[7]2805; AVX2-NEXT: vpblendd {{.*#+}} ymm11 = ymm2[0,1],ymm3[2],ymm2[3,4,5],ymm3[6],ymm2[7]2806; AVX2-NEXT: vpshufb {{.*#+}} ymm12 = ymm11[u,u,u,u,u,u,u,u,0,1,14,15,u,u,10,11,24,25,24,25,24,25,24,25,16,17,30,31,u,u,26,27]2807; AVX2-NEXT: vpblendw {{.*#+}} ymm10 = ymm12[0],ymm10[1,2,3,4,5,6,7],ymm12[8],ymm10[9,10,11,12,13,14,15]2808; AVX2-NEXT: vpblendd {{.*#+}} ymm13 = ymm1[0,1],ymm0[2],ymm1[3,4],ymm0[5],ymm1[6,7]2809; AVX2-NEXT: vextracti128 $1, %ymm13, %xmm142810; AVX2-NEXT: vpshuflw {{.*#+}} xmm14 = xmm14[3,1,2,3,4,5,6,7]2811; AVX2-NEXT: vpshufd {{.*#+}} xmm13 = xmm13[2,1,2,3]2812; AVX2-NEXT: vpshuflw {{.*#+}} xmm13 = xmm13[0,2,2,3,4,5,6,7]2813; AVX2-NEXT: vpunpcklwd {{.*#+}} xmm13 = xmm13[0],xmm14[0],xmm13[1],xmm14[1],xmm13[2],xmm14[2],xmm13[3],xmm14[3]2814; AVX2-NEXT: vpermq {{.*#+}} ymm11 = ymm11[2,3,0,1]2815; AVX2-NEXT: vpblendw {{.*#+}} ymm11 = ymm12[0,1,2,3,4,5],ymm11[6],ymm12[7,8,9,10,11,12,13],ymm11[14],ymm12[15]2816; AVX2-NEXT: vpblendd {{.*#+}} xmm11 = xmm13[0,1],xmm11[2,3]2817; AVX2-NEXT: vpblendd {{.*#+}} ymm10 = ymm11[0,1,2,3],ymm10[4,5,6,7]2818; AVX2-NEXT: vpblendd {{.*#+}} ymm11 = ymm6[0,1],ymm5[2],ymm6[3,4],ymm5[5],ymm6[6,7]2819; AVX2-NEXT: vextracti128 $1, %ymm11, %xmm122820; AVX2-NEXT: vpblendw {{.*#+}} xmm11 = xmm12[0,1],xmm11[2],xmm12[3],xmm11[4],xmm12[5,6,7]2821; AVX2-NEXT: vpshufb {{.*#+}} xmm11 = xmm11[u,u,8,9,6,7,4,5,2,3,u,u,u,u,u,u]2822; AVX2-NEXT: vinserti128 $1, %xmm11, %ymm0, %ymm112823; AVX2-NEXT: vmovdqa 208(%rdi), %xmm122824; AVX2-NEXT: vmovdqa 192(%rdi), %xmm132825; AVX2-NEXT: vpblendw {{.*#+}} xmm14 = xmm13[0,1,2,3,4,5],xmm12[6],xmm13[7]2826; AVX2-NEXT: vpshufd {{.*#+}} xmm14 = xmm14[0,1,0,3]2827; AVX2-NEXT: vpshufhw {{.*#+}} xmm14 = xmm14[0,1,2,3,4,4,7,6]2828; AVX2-NEXT: vinserti128 $1, %xmm14, %ymm0, %ymm142829; AVX2-NEXT: vpblendw {{.*#+}} ymm11 = ymm11[0,1,2,3,4],ymm14[5,6,7],ymm11[8,9,10,11,12],ymm14[13,14,15]2830; AVX2-NEXT: vpblendd {{.*#+}} ymm14 = ymm2[0,1,2],ymm3[3],ymm2[4,5],ymm3[6],ymm2[7]2831; AVX2-NEXT: vpermq {{.*#+}} ymm15 = ymm14[2,3,0,1]2832; AVX2-NEXT: vpblendw {{.*#+}} ymm14 = ymm15[0],ymm14[1,2,3,4,5,6],ymm15[7,8],ymm14[9,10,11,12,13,14],ymm15[15]2833; AVX2-NEXT: vpblendd {{.*#+}} ymm15 = ymm1[0,1],ymm0[2,3],ymm1[4,5],ymm0[6,7]2834; AVX2-NEXT: vextracti128 $1, %ymm15, %xmm42835; AVX2-NEXT: vpshufd {{.*#+}} xmm4 = xmm4[2,1,2,3]2836; AVX2-NEXT: vpshuflw {{.*#+}} xmm4 = xmm4[0,2,2,3,4,5,6,7]2837; AVX2-NEXT: vpshufd {{.*#+}} xmm15 = xmm15[2,1,2,3]2838; AVX2-NEXT: vpshuflw {{.*#+}} xmm15 = xmm15[1,3,2,3,4,5,6,7]2839; AVX2-NEXT: vpunpcklwd {{.*#+}} xmm4 = xmm15[0],xmm4[0],xmm15[1],xmm4[1],xmm15[2],xmm4[2],xmm15[3],xmm4[3]2840; AVX2-NEXT: vpshufb {{.*#+}} ymm14 = ymm14[u,u,u,u,u,u,u,u,2,3,0,1,14,15,12,13,26,27,26,27,26,27,26,27,18,19,16,17,30,31,28,29]2841; AVX2-NEXT: vpblendw {{.*#+}} ymm11 = ymm14[0],ymm11[1,2,3,4,5,6,7],ymm14[8],ymm11[9,10,11,12,13,14,15]2842; AVX2-NEXT: vpblendd {{.*#+}} xmm4 = xmm4[0,1],xmm14[2,3]2843; AVX2-NEXT: vpblendd {{.*#+}} ymm11 = ymm4[0,1,2,3],ymm11[4,5,6,7]2844; AVX2-NEXT: vpblendd {{.*#+}} ymm4 = ymm6[0,1],ymm5[2,3],ymm6[4,5],ymm5[6,7]2845; AVX2-NEXT: vextracti128 $1, %ymm4, %xmm52846; AVX2-NEXT: vpblendw {{.*#+}} xmm4 = xmm5[0,1,2],xmm4[3],xmm5[4],xmm4[5],xmm5[6,7]2847; AVX2-NEXT: vpblendw {{.*#+}} xmm5 = xmm12[0],xmm13[1],xmm12[2,3,4,5,6,7]2848; AVX2-NEXT: vpshufb {{.*#+}} xmm4 = xmm4[u,u,10,11,8,9,6,7,4,5,u,u,u,u,u,u]2849; AVX2-NEXT: vinserti128 $1, %xmm4, %ymm0, %ymm42850; AVX2-NEXT: vpshufd {{.*#+}} xmm5 = xmm5[0,1,0,3]2851; AVX2-NEXT: vpshufhw {{.*#+}} xmm5 = xmm5[0,1,2,3,4,5,4,7]2852; AVX2-NEXT: vinserti128 $1, %xmm5, %ymm0, %ymm52853; AVX2-NEXT: vpblendw {{.*#+}} ymm4 = ymm4[0,1,2,3,4],ymm5[5,6,7],ymm4[8,9,10,11,12],ymm5[13,14,15]2854; AVX2-NEXT: vpblendd {{.*#+}} ymm2 = ymm3[0],ymm2[1],ymm3[2,3],ymm2[4],ymm3[5,6,7]2855; AVX2-NEXT: vpermq {{.*#+}} ymm3 = ymm2[2,3,0,1]2856; AVX2-NEXT: vpblendw {{.*#+}} ymm2 = ymm2[0],ymm3[1],ymm2[2,3,4,5,6,7,8],ymm3[9],ymm2[10,11,12,13,14,15]2857; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3],ymm1[4,5],ymm0[6],ymm1[7]2858; AVX2-NEXT: vpshufhw {{.*#+}} xmm1 = xmm0[0,1,2,3,6,4,6,7]2859; AVX2-NEXT: vextracti128 $1, %ymm0, %xmm02860; AVX2-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[0,1,2,1]2861; AVX2-NEXT: vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,5,7,6,7]2862; AVX2-NEXT: vpunpckhwd {{.*#+}} xmm0 = xmm1[4],xmm0[4],xmm1[5],xmm0[5],xmm1[6],xmm0[6],xmm1[7],xmm0[7]2863; AVX2-NEXT: vpshufb {{.*#+}} ymm1 = ymm2[u,u,u,u,u,u,u,u,4,5,2,3,0,1,14,15,28,29,28,29,28,29,28,29,20,21,18,19,16,17,30,31]2864; AVX2-NEXT: vpblendw {{.*#+}} ymm2 = ymm1[0],ymm4[1,2,3,4,5,6,7],ymm1[8],ymm4[9,10,11,12,13,14,15]2865; AVX2-NEXT: vpblendd {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]2866; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm2[4,5,6,7]2867; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload2868; AVX2-NEXT: vmovaps %ymm1, (%rsi)2869; AVX2-NEXT: vmovdqa %ymm7, (%rdx)2870; AVX2-NEXT: vmovdqa %ymm8, (%rcx)2871; AVX2-NEXT: vmovdqa %ymm9, (%r8)2872; AVX2-NEXT: vmovdqa %ymm10, (%r9)2873; AVX2-NEXT: movq {{[0-9]+}}(%rsp), %rax2874; AVX2-NEXT: vmovdqa %ymm11, (%rax)2875; AVX2-NEXT: movq {{[0-9]+}}(%rsp), %rax2876; AVX2-NEXT: vmovdqa %ymm0, (%rax)2877; AVX2-NEXT: vzeroupper2878; AVX2-NEXT: retq2879;2880; AVX2-FP-LABEL: load_i16_stride7_vf16:2881; AVX2-FP: # %bb.0:2882; AVX2-FP-NEXT: vmovdqa (%rdi), %ymm02883; AVX2-FP-NEXT: vmovdqa 32(%rdi), %ymm12884; AVX2-FP-NEXT: vmovdqa 64(%rdi), %ymm22885; AVX2-FP-NEXT: vmovdqa 96(%rdi), %ymm32886; AVX2-FP-NEXT: vmovdqa 192(%rdi), %ymm102887; AVX2-FP-NEXT: vmovdqa 128(%rdi), %ymm52888; AVX2-FP-NEXT: vmovdqa 160(%rdi), %ymm62889; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm4 = ymm6[0,1,2],ymm5[3],ymm6[4,5],ymm5[6],ymm6[7]2890; AVX2-FP-NEXT: vextracti128 $1, %ymm4, %xmm72891; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm7 = xmm7[u,u,u,u,u,u,u,u,8,9,10,11,6,7,6,7]2892; AVX2-FP-NEXT: vpshufhw {{.*#+}} xmm4 = xmm4[0,1,2,3,4,6,4,7]2893; AVX2-FP-NEXT: vpunpckhwd {{.*#+}} xmm4 = xmm4[4],xmm7[4],xmm4[5],xmm7[5],xmm4[6],xmm7[6],xmm4[7],xmm7[7]2894; AVX2-FP-NEXT: vinserti128 $1, %xmm4, %ymm0, %ymm42895; AVX2-FP-NEXT: vpermq {{.*#+}} ymm7 = ymm10[0,1,0,2]2896; AVX2-FP-NEXT: vpbroadcastd {{.*#+}} ymm9 = [20,21,26,27,20,21,26,27,20,21,26,27,20,21,26,27,20,21,26,27,20,21,26,27,20,21,26,27,20,21,26,27]2897; AVX2-FP-NEXT: vpshufb %ymm9, %ymm7, %ymm82898; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3,4,5,6],ymm8[7]2899; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm8 = ymm0[0,1],ymm1[2],ymm0[3,4,5],ymm1[6],ymm0[7]2900; AVX2-FP-NEXT: vextracti128 $1, %ymm8, %xmm112901; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm8 = xmm8[0,1,2,3],xmm11[4],xmm8[5],xmm11[6],xmm8[7]2902; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm8 = xmm8[0,1,14,15,12,13,10,11,8,9,8,9,8,9,8,9]2903; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm11 = ymm3[0],ymm2[1],ymm3[2,3,4],ymm2[5],ymm3[6,7]2904; AVX2-FP-NEXT: vpermq {{.*#+}} ymm11 = ymm11[0,2,2,3]2905; AVX2-FP-NEXT: vpshufb {{.*#+}} ymm11 = ymm11[0,1,14,15,12,13,14,15,2,3,6,7,12,13,2,3,16,17,30,31,u,u,u,u,u,u,u,u,u,u,u,u]2906; AVX2-FP-NEXT: vpmovsxbw {{.*#+}} ymm12 = [65535,65535,65535,65535,65535,0,0,0,0,0,0,0,0,0,0,0]2907; AVX2-FP-NEXT: vpblendvb %ymm12, %ymm8, %ymm11, %ymm82908; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm4 = ymm8[0,1,2,3,4],ymm4[5,6,7]2909; AVX2-FP-NEXT: vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2910; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm8 = ymm0[0,1,2],ymm1[3],ymm0[4,5],ymm1[6],ymm0[7]2911; AVX2-FP-NEXT: vextracti128 $1, %ymm8, %xmm112912; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm8 = xmm11[0],xmm8[1],xmm11[2,3,4,5],xmm8[6],xmm11[7]2913; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm8 = xmm8[2,3,0,1,14,15,12,13,10,11,10,11,10,11,10,11]2914; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm11 = ymm3[0,1],ymm2[2],ymm3[3,4],ymm2[5],ymm3[6,7]2915; AVX2-FP-NEXT: vpermq {{.*#+}} ymm13 = ymm11[2,3,0,1]2916; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm11 = ymm11[0,1,2],ymm13[3],ymm11[4,5,6,7,8,9,10],ymm13[11],ymm11[12,13,14,15]2917; AVX2-FP-NEXT: vpshufb {{.*#+}} ymm13 = ymm11[2,3,2,3,2,3,2,3,8,9,8,9,6,7,4,5,18,19,18,19,18,19,18,19,24,25,24,25,22,23,20,21]2918; AVX2-FP-NEXT: vmovdqa %xmm12, %xmm112919; AVX2-FP-NEXT: vpblendvb %ymm11, %ymm8, %ymm13, %ymm82920; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm12 = ymm5[0,1],ymm6[2],ymm5[3,4,5],ymm6[6],ymm5[7]2921; AVX2-FP-NEXT: vextracti128 $1, %ymm12, %xmm132922; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm12 = xmm12[0,1,2,3],xmm13[4],xmm12[5],xmm13[6],xmm12[7]2923; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm12 = xmm12[0,1,0,1,14,15,12,13,10,11,8,9,u,u,u,u]2924; AVX2-FP-NEXT: vinserti128 $1, %xmm12, %ymm0, %ymm122925; AVX2-FP-NEXT: vpshufb {{.*#+}} ymm7 = ymm7[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,22,23,28,29]2926; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm7 = ymm12[0,1,2,3,4,5,6],ymm7[7]2927; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm7 = ymm8[0],ymm7[1,2,3,4,5,6,7],ymm8[8],ymm7[9,10,11,12,13,14,15]2928; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm4 = ymm8[0,1,2,3],ymm7[4,5,6,7]2929; AVX2-FP-NEXT: vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2930; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm8 = ymm1[0],ymm0[1],ymm1[2,3],ymm0[4],ymm1[5,6,7]2931; AVX2-FP-NEXT: vextracti128 $1, %ymm8, %xmm122932; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm8 = xmm8[0],xmm12[1],xmm8[2,3,4,5],xmm12[6],xmm8[7]2933; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm8 = xmm8[4,5,2,3,0,1,14,15,12,13,12,13,12,13,12,13]2934; AVX2-FP-NEXT: vpermq {{.*#+}} ymm12 = ymm2[2,3,0,1]2935; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm13 = ymm3[0,1],ymm2[2,3],ymm3[4,5],ymm2[6,7]2936; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm12 = ymm13[0,1,2,3],ymm12[4],ymm13[5,6,7,8,9,10,11],ymm12[12],ymm13[13,14,15]2937; AVX2-FP-NEXT: vpshufb {{.*#+}} ymm12 = ymm12[4,5,4,5,4,5,4,5,8,9,10,11,8,9,6,7,20,21,20,21,20,21,20,21,24,25,26,27,24,25,22,23]2938; AVX2-FP-NEXT: vpblendvb %ymm11, %ymm8, %ymm12, %ymm82939; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm12 = ymm5[0,1,2],ymm6[3],ymm5[4,5],ymm6[6],ymm5[7]2940; AVX2-FP-NEXT: vextracti128 $1, %ymm12, %xmm132941; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm12 = xmm13[0],xmm12[1],xmm13[2,3,4,5],xmm12[6],xmm13[7]2942; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm12 = xmm12[0,1,2,3,0,1,14,15,12,13,10,11,u,u,u,u]2943; AVX2-FP-NEXT: vinserti128 $1, %xmm12, %ymm0, %ymm122944; AVX2-FP-NEXT: vpermq {{.*#+}} ymm13 = ymm10[0,1,1,2]2945; AVX2-FP-NEXT: vpshufb {{.*#+}} ymm13 = ymm13[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,16,17,30,31]2946; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm12 = ymm12[0,1,2,3,4,5,6],ymm13[7]2947; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm12 = ymm8[0],ymm12[1,2,3,4,5,6,7],ymm8[8],ymm12[9,10,11,12,13,14,15]2948; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3],ymm12[4,5,6,7]2949; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm12 = ymm6[0],ymm5[1],ymm6[2,3],ymm5[4],ymm6[5,6,7]2950; AVX2-FP-NEXT: vextracti128 $1, %ymm12, %xmm132951; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm12 = xmm12[0],xmm13[1],xmm12[2,3,4,5],xmm13[6],xmm12[7]2952; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm12 = xmm12[0,1,4,5,2,3,0,1,14,15,12,13,u,u,u,u]2953; AVX2-FP-NEXT: vinserti128 $1, %xmm12, %ymm0, %ymm132954; AVX2-FP-NEXT: vpermq {{.*#+}} ymm12 = ymm10[0,1,1,3]2955; AVX2-FP-NEXT: vpshufb {{.*#+}} ymm10 = ymm12[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,18,19,24,25]2956; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm10 = ymm13[0,1,2,3,4,5,6],ymm10[7]2957; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm13 = ymm1[0],ymm0[1],ymm1[2,3,4],ymm0[5],ymm1[6,7]2958; AVX2-FP-NEXT: vextracti128 $1, %ymm13, %xmm142959; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm13 = xmm14[0],xmm13[1],xmm14[2],xmm13[3],xmm14[4,5,6,7]2960; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm13 = xmm13[6,7,4,5,2,3,0,1,14,15,14,15,14,15,14,15]2961; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm14 = ymm3[0,1,2],ymm2[3],ymm3[4,5],ymm2[6],ymm3[7]2962; AVX2-FP-NEXT: vpermq {{.*#+}} ymm14 = ymm14[1,3,2,3]2963; AVX2-FP-NEXT: vpshufb {{.*#+}} ymm14 = ymm14[6,7,6,7,6,7,6,7,8,9,4,5,10,11,0,1,22,23,22,23,22,23,22,23,24,25,20,21,26,27,16,17]2964; AVX2-FP-NEXT: vpblendvb %ymm11, %ymm13, %ymm14, %ymm112965; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm10 = ymm11[0],ymm10[1,2,3,4,5,6,7],ymm11[8],ymm10[9,10,11,12,13,14,15]2966; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm10 = ymm11[0,1,2,3],ymm10[4,5,6,7]2967; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm13 = ymm1[0,1],ymm0[2],ymm1[3,4],ymm0[5],ymm1[6,7]2968; AVX2-FP-NEXT: vmovd {{.*#+}} xmm11 = [8,9,4,5,0,0,0,0,0,0,0,0,0,0,0,0]2969; AVX2-FP-NEXT: vpshufb %xmm11, %xmm13, %xmm142970; AVX2-FP-NEXT: vextracti128 $1, %ymm13, %xmm132971; AVX2-FP-NEXT: vpshuflw {{.*#+}} xmm13 = xmm13[3,1,2,3,4,5,6,7]2972; AVX2-FP-NEXT: vpunpcklwd {{.*#+}} xmm13 = xmm14[0],xmm13[0],xmm14[1],xmm13[1],xmm14[2],xmm13[2],xmm14[3],xmm13[3]2973; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm14 = ymm2[0,1],ymm3[2],ymm2[3,4,5],ymm3[6],ymm2[7]2974; AVX2-FP-NEXT: vpermq {{.*#+}} ymm15 = ymm14[2,3,0,1]2975; AVX2-FP-NEXT: vpshufb {{.*#+}} ymm14 = ymm14[u,u,u,u,u,u,u,u,0,1,14,15,u,u,10,11,24,25,24,25,24,25,24,25,16,17,30,31,u,u,26,27]2976; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm15 = ymm14[0,1,2,3,4,5],ymm15[6],ymm14[7,8,9,10,11,12,13],ymm15[14],ymm14[15]2977; AVX2-FP-NEXT: vpblendd {{.*#+}} xmm13 = xmm13[0,1],xmm15[2,3]2978; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm15 = ymm6[0],ymm5[1],ymm6[2,3,4],ymm5[5],ymm6[6,7]2979; AVX2-FP-NEXT: vextracti128 $1, %ymm15, %xmm42980; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm4 = xmm4[0],xmm15[1],xmm4[2],xmm15[3],xmm4[4,5,6,7]2981; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm4 = xmm4[0,1,6,7,4,5,2,3,0,1,14,15,u,u,u,u]2982; AVX2-FP-NEXT: vinserti128 $1, %xmm4, %ymm0, %ymm42983; AVX2-FP-NEXT: vpshufb %ymm9, %ymm12, %ymm92984; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3,4,5,6],ymm9[7]2985; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm4 = ymm14[0],ymm4[1,2,3,4,5,6,7],ymm14[8],ymm4[9,10,11,12,13,14,15]2986; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm9 = ymm13[0,1,2,3],ymm4[4,5,6,7]2987; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm4 = ymm6[0,1],ymm5[2],ymm6[3,4],ymm5[5],ymm6[6,7]2988; AVX2-FP-NEXT: vextracti128 $1, %ymm4, %xmm122989; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm4 = xmm12[0,1],xmm4[2],xmm12[3],xmm4[4],xmm12[5,6,7]2990; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm4 = xmm4[u,u,8,9,6,7,4,5,2,3,u,u,u,u,u,u]2991; AVX2-FP-NEXT: vinserti128 $1, %xmm4, %ymm0, %ymm42992; AVX2-FP-NEXT: vmovdqa 208(%rdi), %xmm122993; AVX2-FP-NEXT: vmovdqa 192(%rdi), %xmm132994; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm14 = xmm13[0,1,2,3,4,5],xmm12[6],xmm13[7]2995; AVX2-FP-NEXT: vmovdqa {{.*#+}} ymm15 = [u,u,u,u,u,u,u,u,2,3,0,1,14,15,12,13,26,27,26,27,26,27,26,27,18,19,16,17,30,31,28,29]2996; AVX2-FP-NEXT: vpshufb %xmm15, %xmm14, %xmm142997; AVX2-FP-NEXT: vinserti128 $1, %xmm14, %ymm0, %ymm142998; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm4 = ymm4[0,1,2,3,4],ymm14[5,6,7],ymm4[8,9,10,11,12],ymm14[13,14,15]2999; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm14 = ymm2[0,1,2],ymm3[3],ymm2[4,5],ymm3[6],ymm2[7]3000; AVX2-FP-NEXT: vpermq {{.*#+}} ymm7 = ymm14[2,3,0,1]3001; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm7 = ymm7[0],ymm14[1,2,3,4,5,6],ymm7[7,8],ymm14[9,10,11,12,13,14],ymm7[15]3002; AVX2-FP-NEXT: vpshufb %ymm15, %ymm7, %ymm73003; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm14 = ymm1[0,1],ymm0[2,3],ymm1[4,5],ymm0[6,7]3004; AVX2-FP-NEXT: vextracti128 $1, %ymm14, %xmm153005; AVX2-FP-NEXT: vpshufb %xmm11, %xmm15, %xmm113006; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm14 = xmm14[10,11,6,7,u,u,u,u,u,u,u,u,u,u,u,u]3007; AVX2-FP-NEXT: vpunpcklwd {{.*#+}} xmm11 = xmm14[0],xmm11[0],xmm14[1],xmm11[1],xmm14[2],xmm11[2],xmm14[3],xmm11[3]3008; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm4 = ymm7[0],ymm4[1,2,3,4,5,6,7],ymm7[8],ymm4[9,10,11,12,13,14,15]3009; AVX2-FP-NEXT: vpblendd {{.*#+}} xmm7 = xmm11[0,1],xmm7[2,3]3010; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm11 = ymm7[0,1,2,3],ymm4[4,5,6,7]3011; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm4 = ymm6[0,1],ymm5[2,3],ymm6[4,5],ymm5[6,7]3012; AVX2-FP-NEXT: vextracti128 $1, %ymm4, %xmm53013; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm4 = xmm5[0,1,2],xmm4[3],xmm5[4],xmm4[5],xmm5[6,7]3014; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm4 = xmm4[u,u,10,11,8,9,6,7,4,5,u,u,u,u,u,u]3015; AVX2-FP-NEXT: vinserti128 $1, %xmm4, %ymm0, %ymm43016; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm5 = xmm12[0],xmm13[1],xmm12[2,3,4,5,6,7]3017; AVX2-FP-NEXT: vmovdqa {{.*#+}} ymm6 = [u,u,u,u,u,u,u,u,4,5,2,3,0,1,14,15,28,29,28,29,28,29,28,29,20,21,18,19,16,17,30,31]3018; AVX2-FP-NEXT: vpshufb %xmm6, %xmm5, %xmm53019; AVX2-FP-NEXT: vinserti128 $1, %xmm5, %ymm0, %ymm53020; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm4 = ymm4[0,1,2,3,4],ymm5[5,6,7],ymm4[8,9,10,11,12],ymm5[13,14,15]3021; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm2 = ymm3[0],ymm2[1],ymm3[2,3],ymm2[4],ymm3[5,6,7]3022; AVX2-FP-NEXT: vpermq {{.*#+}} ymm3 = ymm2[2,3,0,1]3023; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm2 = ymm2[0],ymm3[1],ymm2[2,3,4,5,6,7,8],ymm3[9],ymm2[10,11,12,13,14,15]3024; AVX2-FP-NEXT: vpshufb %ymm6, %ymm2, %ymm23025; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3],ymm1[4,5],ymm0[6],ymm1[7]3026; AVX2-FP-NEXT: vextracti128 $1, %ymm0, %xmm13027; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm1 = xmm1[u,u,u,u,u,u,u,u,10,11,6,7,u,u,u,u]3028; AVX2-FP-NEXT: vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,6,4,6,7]3029; AVX2-FP-NEXT: vpunpckhwd {{.*#+}} xmm0 = xmm0[4],xmm1[4],xmm0[5],xmm1[5],xmm0[6],xmm1[6],xmm0[7],xmm1[7]3030; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm1 = ymm2[0],ymm4[1,2,3,4,5,6,7],ymm2[8],ymm4[9,10,11,12,13,14,15]3031; AVX2-FP-NEXT: vpblendd {{.*#+}} xmm0 = xmm0[0,1],xmm2[2,3]3032; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]3033; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload3034; AVX2-FP-NEXT: vmovaps %ymm1, (%rsi)3035; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload3036; AVX2-FP-NEXT: vmovaps %ymm1, (%rdx)3037; AVX2-FP-NEXT: vmovdqa %ymm8, (%rcx)3038; AVX2-FP-NEXT: vmovdqa %ymm10, (%r8)3039; AVX2-FP-NEXT: vmovdqa %ymm9, (%r9)3040; AVX2-FP-NEXT: movq {{[0-9]+}}(%rsp), %rax3041; AVX2-FP-NEXT: vmovdqa %ymm11, (%rax)3042; AVX2-FP-NEXT: movq {{[0-9]+}}(%rsp), %rax3043; AVX2-FP-NEXT: vmovdqa %ymm0, (%rax)3044; AVX2-FP-NEXT: vzeroupper3045; AVX2-FP-NEXT: retq3046;3047; AVX2-FCP-LABEL: load_i16_stride7_vf16:3048; AVX2-FCP: # %bb.0:3049; AVX2-FCP-NEXT: vmovdqa (%rdi), %ymm03050; AVX2-FCP-NEXT: vmovdqa 32(%rdi), %ymm13051; AVX2-FCP-NEXT: vmovdqa 64(%rdi), %ymm23052; AVX2-FCP-NEXT: vmovdqa 96(%rdi), %ymm33053; AVX2-FCP-NEXT: vmovdqa 128(%rdi), %ymm53054; AVX2-FCP-NEXT: vmovdqa 160(%rdi), %ymm63055; AVX2-FCP-NEXT: vmovdqa 192(%rdi), %ymm73056; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm8 = ymm7[0,1,0,2]3057; AVX2-FCP-NEXT: vmovdqa {{.*#+}} ymm4 = [0,1,2,3,0,1,6,7,8,9,14,15,12,13,14,15,16,17,18,19,16,17,22,23,24,25,30,31,20,21,26,27]3058; AVX2-FCP-NEXT: vpshufb %ymm4, %ymm8, %ymm93059; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm10 = ymm6[0,1,2],ymm5[3],ymm6[4,5],ymm5[6],ymm6[7]3060; AVX2-FCP-NEXT: vbroadcasti128 {{.*#+}} ymm11 = [3,6,2,5,3,6,2,5]3061; AVX2-FCP-NEXT: # ymm11 = mem[0,1,0,1]3062; AVX2-FCP-NEXT: vpermd %ymm10, %ymm11, %ymm103063; AVX2-FCP-NEXT: vpshufb %ymm4, %ymm10, %ymm43064; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3,4,5,6],ymm9[7]3065; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm9 = ymm0[0,1],ymm1[2],ymm0[3,4,5],ymm1[6],ymm0[7]3066; AVX2-FCP-NEXT: vextracti128 $1, %ymm9, %xmm103067; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm9 = xmm9[0,1,2,3],xmm10[4],xmm9[5],xmm10[6],xmm9[7]3068; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm9 = xmm9[0,1,14,15,12,13,10,11,8,9,8,9,8,9,8,9]3069; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm10 = ymm3[0],ymm2[1],ymm3[2,3,4],ymm2[5],ymm3[6,7]3070; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm10 = ymm10[0,2,2,3]3071; AVX2-FCP-NEXT: vpshufb {{.*#+}} ymm10 = ymm10[0,1,14,15,12,13,14,15,2,3,6,7,12,13,2,3,16,17,30,31,u,u,u,u,u,u,u,u,u,u,u,u]3072; AVX2-FCP-NEXT: vpmovsxbw {{.*#+}} ymm11 = [65535,65535,65535,65535,65535,0,0,0,0,0,0,0,0,0,0,0]3073; AVX2-FCP-NEXT: vpblendvb %ymm11, %ymm9, %ymm10, %ymm93074; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm4 = ymm9[0,1,2,3,4],ymm4[5,6,7]3075; AVX2-FCP-NEXT: vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3076; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm9 = ymm0[0,1,2],ymm1[3],ymm0[4,5],ymm1[6],ymm0[7]3077; AVX2-FCP-NEXT: vextracti128 $1, %ymm9, %xmm103078; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm9 = xmm10[0],xmm9[1],xmm10[2,3,4,5],xmm9[6],xmm10[7]3079; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm9 = xmm9[2,3,0,1,14,15,12,13,10,11,10,11,10,11,10,11]3080; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm10 = ymm3[0,1],ymm2[2],ymm3[3,4],ymm2[5],ymm3[6,7]3081; AVX2-FCP-NEXT: vpmovsxbd {{.*#+}} ymm12 = [2,5,1,0,4,0,0,0]3082; AVX2-FCP-NEXT: vpermd %ymm10, %ymm12, %ymm103083; AVX2-FCP-NEXT: vpshufb {{.*#+}} ymm12 = ymm10[2,3,2,3,2,3,2,3,8,9,0,1,6,7,8,9,18,19,18,19,18,19,18,19,24,25,16,17,22,23,24,25]3084; AVX2-FCP-NEXT: vmovdqa %xmm11, %xmm103085; AVX2-FCP-NEXT: vpblendvb %ymm10, %ymm9, %ymm12, %ymm93086; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm11 = ymm5[0,1],ymm6[2],ymm5[3,4,5],ymm6[6],ymm5[7]3087; AVX2-FCP-NEXT: vextracti128 $1, %ymm11, %xmm123088; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm11 = xmm11[0,1,2,3],xmm12[4],xmm11[5],xmm12[6],xmm11[7]3089; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm11 = xmm11[0,1,0,1,14,15,12,13,10,11,8,9,u,u,u,u]3090; AVX2-FCP-NEXT: vinserti128 $1, %xmm11, %ymm0, %ymm113091; AVX2-FCP-NEXT: vpshufb {{.*#+}} ymm8 = ymm8[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,22,23,28,29]3092; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm8 = ymm11[0,1,2,3,4,5,6],ymm8[7]3093; AVX2-FCP-NEXT: vpblendw {{.*#+}} ymm8 = ymm9[0],ymm8[1,2,3,4,5,6,7],ymm9[8],ymm8[9,10,11,12,13,14,15]3094; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm4 = ymm9[0,1,2,3],ymm8[4,5,6,7]3095; AVX2-FCP-NEXT: vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3096; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm9 = ymm1[0],ymm0[1],ymm1[2,3],ymm0[4],ymm1[5,6,7]3097; AVX2-FCP-NEXT: vextracti128 $1, %ymm9, %xmm113098; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm9 = xmm9[0],xmm11[1],xmm9[2,3,4,5],xmm11[6],xmm9[7]3099; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm9 = xmm9[4,5,2,3,0,1,14,15,12,13,12,13,12,13,12,13]3100; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm11 = ymm3[0,1],ymm2[2,3],ymm3[4,5],ymm2[6,7]3101; AVX2-FCP-NEXT: vpmovsxbd {{.*#+}} ymm12 = [2,6,1,0,5,0,0,0]3102; AVX2-FCP-NEXT: vpermd %ymm11, %ymm12, %ymm113103; AVX2-FCP-NEXT: vpshufb {{.*#+}} ymm11 = ymm11[0,1,2,3,4,5,2,3,8,9,2,3,4,5,10,11,16,17,18,19,20,21,18,19,24,25,18,19,20,21,26,27]3104; AVX2-FCP-NEXT: vpblendvb %ymm10, %ymm9, %ymm11, %ymm93105; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm11 = ymm5[0,1,2],ymm6[3],ymm5[4,5],ymm6[6],ymm5[7]3106; AVX2-FCP-NEXT: vextracti128 $1, %ymm11, %xmm123107; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm11 = xmm12[0],xmm11[1],xmm12[2,3,4,5],xmm11[6],xmm12[7]3108; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm11 = xmm11[0,1,2,3,0,1,14,15,12,13,10,11,u,u,u,u]3109; AVX2-FCP-NEXT: vinserti128 $1, %xmm11, %ymm0, %ymm113110; AVX2-FCP-NEXT: vpbroadcastq {{.*#+}} ymm12 = [2,5,2,5,2,5,2,5]3111; AVX2-FCP-NEXT: vpermd %ymm7, %ymm12, %ymm123112; AVX2-FCP-NEXT: vpshufhw {{.*#+}} ymm12 = ymm12[0,1,2,3,4,5,4,7,8,9,10,11,12,13,12,15]3113; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm11 = ymm11[0,1,2,3,4,5,6],ymm12[7]3114; AVX2-FCP-NEXT: vpblendw {{.*#+}} ymm11 = ymm9[0],ymm11[1,2,3,4,5,6,7],ymm9[8],ymm11[9,10,11,12,13,14,15]3115; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm9 = ymm9[0,1,2,3],ymm11[4,5,6,7]3116; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm11 = ymm6[0],ymm5[1],ymm6[2,3],ymm5[4],ymm6[5,6,7]3117; AVX2-FCP-NEXT: vextracti128 $1, %ymm11, %xmm123118; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm11 = xmm11[0],xmm12[1],xmm11[2,3,4,5],xmm12[6],xmm11[7]3119; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm11 = xmm11[0,1,4,5,2,3,0,1,14,15,12,13,u,u,u,u]3120; AVX2-FCP-NEXT: vinserti128 $1, %xmm11, %ymm0, %ymm123121; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm11 = ymm7[0,1,1,3]3122; AVX2-FCP-NEXT: vpshufb {{.*#+}} ymm13 = ymm11[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,18,19,24,25]3123; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm12 = ymm12[0,1,2,3,4,5,6],ymm13[7]3124; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm13 = ymm1[0],ymm0[1],ymm1[2,3,4],ymm0[5],ymm1[6,7]3125; AVX2-FCP-NEXT: vextracti128 $1, %ymm13, %xmm143126; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm13 = xmm14[0],xmm13[1],xmm14[2],xmm13[3],xmm14[4,5,6,7]3127; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm13 = xmm13[6,7,4,5,2,3,0,1,14,15,14,15,14,15,14,15]3128; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm14 = ymm3[0,1,2],ymm2[3],ymm3[4,5],ymm2[6],ymm3[7]3129; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm14 = ymm14[1,3,2,3]3130; AVX2-FCP-NEXT: vpshufb {{.*#+}} ymm14 = ymm14[6,7,6,7,6,7,6,7,8,9,4,5,10,11,0,1,22,23,22,23,22,23,22,23,24,25,20,21,26,27,16,17]3131; AVX2-FCP-NEXT: vpblendvb %ymm10, %ymm13, %ymm14, %ymm103132; AVX2-FCP-NEXT: vpblendw {{.*#+}} ymm12 = ymm10[0],ymm12[1,2,3,4,5,6,7],ymm10[8],ymm12[9,10,11,12,13,14,15]3133; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm10 = ymm10[0,1,2,3],ymm12[4,5,6,7]3134; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm12 = ymm1[0,1],ymm0[2],ymm1[3,4],ymm0[5],ymm1[6,7]3135; AVX2-FCP-NEXT: vmovd {{.*#+}} xmm13 = [8,9,4,5,0,0,0,0,0,0,0,0,0,0,0,0]3136; AVX2-FCP-NEXT: vpshufb %xmm13, %xmm12, %xmm143137; AVX2-FCP-NEXT: vextracti128 $1, %ymm12, %xmm123138; AVX2-FCP-NEXT: vpshuflw {{.*#+}} xmm12 = xmm12[3,1,2,3,4,5,6,7]3139; AVX2-FCP-NEXT: vpunpcklwd {{.*#+}} xmm14 = xmm14[0],xmm12[0],xmm14[1],xmm12[1],xmm14[2],xmm12[2],xmm14[3],xmm12[3]3140; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm12 = ymm2[0,1],ymm3[2],ymm2[3,4,5],ymm3[6],ymm2[7]3141; AVX2-FCP-NEXT: vpmovsxbd {{.*#+}} ymm15 = [0,3,7,2,6,0,0,0]3142; AVX2-FCP-NEXT: vpermd %ymm12, %ymm15, %ymm153143; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm12 = ymm6[0],ymm5[1],ymm6[2,3,4],ymm5[5],ymm6[6,7]3144; AVX2-FCP-NEXT: vextracti128 $1, %ymm12, %xmm43145; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm4 = xmm4[0],xmm12[1],xmm4[2],xmm12[3],xmm4[4,5,6,7]3146; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm4 = xmm4[0,1,6,7,4,5,2,3,0,1,14,15,u,u,u,u]3147; AVX2-FCP-NEXT: vinserti128 $1, %xmm4, %ymm0, %ymm43148; AVX2-FCP-NEXT: vpshufb {{.*#+}} ymm11 = ymm11[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,20,21,26,27]3149; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3,4,5,6],ymm11[7]3150; AVX2-FCP-NEXT: vmovdqa {{.*#+}} ymm12 = [u,u,u,u,u,u,u,u,0,1,6,7,8,9,14,15,16,17,22,23,20,21,22,23,16,17,22,23,24,25,30,31]3151; AVX2-FCP-NEXT: vpshufb %ymm12, %ymm15, %ymm113152; AVX2-FCP-NEXT: vpblendd {{.*#+}} xmm14 = xmm14[0,1],xmm11[2,3]3153; AVX2-FCP-NEXT: vpblendw {{.*#+}} ymm4 = ymm11[0],ymm4[1,2,3,4,5,6,7],ymm11[8],ymm4[9,10,11,12,13,14,15]3154; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm11 = ymm14[0,1,2,3],ymm4[4,5,6,7]3155; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm4 = ymm6[0,1],ymm5[2],ymm6[3,4],ymm5[5],ymm6[6,7]3156; AVX2-FCP-NEXT: vbroadcasti128 {{.*#+}} ymm14 = [2,5,1,4,2,5,1,4]3157; AVX2-FCP-NEXT: # ymm14 = mem[0,1,0,1]3158; AVX2-FCP-NEXT: vpermd %ymm4, %ymm14, %ymm43159; AVX2-FCP-NEXT: vpmovsxbd {{.*#+}} ymm14 = [0,0,0,0,0,3,7,0]3160; AVX2-FCP-NEXT: vpermd %ymm7, %ymm14, %ymm143161; AVX2-FCP-NEXT: vpbroadcastq {{.*#+}} ymm15 = [30,31,16,17,22,23,24,25,30,31,16,17,22,23,24,25,30,31,16,17,22,23,24,25,30,31,16,17,22,23,24,25]3162; AVX2-FCP-NEXT: vpshufb %ymm15, %ymm14, %ymm143163; AVX2-FCP-NEXT: vpshufb %ymm15, %ymm4, %ymm43164; AVX2-FCP-NEXT: vpblendw {{.*#+}} ymm4 = ymm4[0,1,2,3,4],ymm14[5,6,7],ymm4[8,9,10,11,12],ymm14[13,14,15]3165; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm14 = ymm2[0,1,2],ymm3[3],ymm2[4,5],ymm3[6],ymm2[7]3166; AVX2-FCP-NEXT: vpmovsxbd {{.*#+}} ymm15 = [0,4,7,3,6,0,0,0]3167; AVX2-FCP-NEXT: vpermd %ymm14, %ymm15, %ymm143168; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm15 = ymm1[0,1],ymm0[2,3],ymm1[4,5],ymm0[6,7]3169; AVX2-FCP-NEXT: vextracti128 $1, %ymm15, %xmm83170; AVX2-FCP-NEXT: vpshufb %xmm13, %xmm8, %xmm83171; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm13 = xmm15[10,11,6,7,u,u,u,u,u,u,u,u,u,u,u,u]3172; AVX2-FCP-NEXT: vpunpcklwd {{.*#+}} xmm8 = xmm13[0],xmm8[0],xmm13[1],xmm8[1],xmm13[2],xmm8[2],xmm13[3],xmm8[3]3173; AVX2-FCP-NEXT: vpshufb {{.*#+}} ymm13 = ymm14[u,u,u,u,u,u,u,u,2,3,4,5,10,11,12,13,18,19,18,19,18,19,18,19,18,19,20,21,26,27,28,29]3174; AVX2-FCP-NEXT: vpblendw {{.*#+}} ymm4 = ymm13[0],ymm4[1,2,3,4,5,6,7],ymm13[8],ymm4[9,10,11,12,13,14,15]3175; AVX2-FCP-NEXT: vpblendd {{.*#+}} xmm8 = xmm8[0,1],xmm13[2,3]3176; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm13 = ymm8[0,1,2,3],ymm4[4,5,6,7]3177; AVX2-FCP-NEXT: vbroadcasti128 {{.*#+}} ymm4 = [0,4,7,0,0,4,7,0]3178; AVX2-FCP-NEXT: # ymm4 = mem[0,1,0,1]3179; AVX2-FCP-NEXT: vpermd %ymm7, %ymm4, %ymm43180; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm5 = ymm6[0,1],ymm5[2,3],ymm6[4,5],ymm5[6,7]3181; AVX2-FCP-NEXT: vbroadcasti128 {{.*#+}} ymm6 = [2,6,1,5,2,6,1,5]3182; AVX2-FCP-NEXT: # ymm6 = mem[0,1,0,1]3183; AVX2-FCP-NEXT: vpermd %ymm5, %ymm6, %ymm53184; AVX2-FCP-NEXT: vpbroadcastq {{.*#+}} ymm6 = [28,29,18,19,20,21,26,27,28,29,18,19,20,21,26,27,28,29,18,19,20,21,26,27,28,29,18,19,20,21,26,27]3185; AVX2-FCP-NEXT: vpshufb %ymm6, %ymm4, %ymm43186; AVX2-FCP-NEXT: vpshufb %ymm6, %ymm5, %ymm53187; AVX2-FCP-NEXT: vpblendw {{.*#+}} ymm4 = ymm5[0,1,2,3,4],ymm4[5,6,7],ymm5[8,9,10,11,12],ymm4[13,14,15]3188; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm3[0],ymm2[1],ymm3[2,3],ymm2[4],ymm3[5,6,7]3189; AVX2-FCP-NEXT: vpmovsxbd {{.*#+}} ymm3 = [1,4,0,3,7,0,0,0]3190; AVX2-FCP-NEXT: vpermd %ymm2, %ymm3, %ymm23191; AVX2-FCP-NEXT: vpshufb %ymm12, %ymm2, %ymm23192; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3],ymm1[4,5],ymm0[6],ymm1[7]3193; AVX2-FCP-NEXT: vextracti128 $1, %ymm0, %xmm13194; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm1 = xmm1[u,u,u,u,u,u,u,u,10,11,6,7,u,u,u,u]3195; AVX2-FCP-NEXT: vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,6,4,6,7]3196; AVX2-FCP-NEXT: vpunpckhwd {{.*#+}} xmm0 = xmm0[4],xmm1[4],xmm0[5],xmm1[5],xmm0[6],xmm1[6],xmm0[7],xmm1[7]3197; AVX2-FCP-NEXT: vpblendw {{.*#+}} ymm1 = ymm2[0],ymm4[1,2,3,4,5,6,7],ymm2[8],ymm4[9,10,11,12,13,14,15]3198; AVX2-FCP-NEXT: vpblendd {{.*#+}} xmm0 = xmm0[0,1],xmm2[2,3]3199; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]3200; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload3201; AVX2-FCP-NEXT: vmovaps %ymm1, (%rsi)3202; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload3203; AVX2-FCP-NEXT: vmovaps %ymm1, (%rdx)3204; AVX2-FCP-NEXT: vmovdqa %ymm9, (%rcx)3205; AVX2-FCP-NEXT: vmovdqa %ymm10, (%r8)3206; AVX2-FCP-NEXT: vmovdqa %ymm11, (%r9)3207; AVX2-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax3208; AVX2-FCP-NEXT: vmovdqa %ymm13, (%rax)3209; AVX2-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax3210; AVX2-FCP-NEXT: vmovdqa %ymm0, (%rax)3211; AVX2-FCP-NEXT: vzeroupper3212; AVX2-FCP-NEXT: retq3213;3214; AVX512-LABEL: load_i16_stride7_vf16:3215; AVX512: # %bb.0:3216; AVX512-NEXT: vmovdqa (%rdi), %ymm03217; AVX512-NEXT: vmovdqa 32(%rdi), %ymm13218; AVX512-NEXT: vmovdqa 64(%rdi), %ymm23219; AVX512-NEXT: vmovdqa 96(%rdi), %ymm33220; AVX512-NEXT: vpblendd {{.*#+}} ymm4 = ymm3[0],ymm2[1],ymm3[2,3,4],ymm2[5],ymm3[6,7]3221; AVX512-NEXT: vpermq {{.*#+}} ymm4 = ymm4[0,2,2,3]3222; AVX512-NEXT: vpshufb {{.*#+}} ymm4 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm4[6,7,12,13,2,3,16,17,30,31,u,u,u,u,u,u,u,u,u,u,u,u]3223; AVX512-NEXT: vpblendd {{.*#+}} ymm5 = ymm0[0,1],ymm1[2],ymm0[3,4,5],ymm1[6],ymm0[7]3224; AVX512-NEXT: vextracti128 $1, %ymm5, %xmm63225; AVX512-NEXT: vpblendw {{.*#+}} xmm5 = xmm5[0,1,2,3],xmm6[4],xmm5[5],xmm6[6],xmm5[7]3226; AVX512-NEXT: vpshufb {{.*#+}} ymm5 = ymm5[0,1,14,15,12,13,10,11,8,9],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm5[u,u,u,u,u,u,u,u,u,u,u,u]3227; AVX512-NEXT: vpor %ymm4, %ymm5, %ymm43228; AVX512-NEXT: vmovdqa 128(%rdi), %ymm53229; AVX512-NEXT: vmovdqa 160(%rdi), %ymm63230; AVX512-NEXT: vpblendd {{.*#+}} ymm7 = ymm6[0,1,2],ymm5[3],ymm6[4,5],ymm5[6],ymm6[7]3231; AVX512-NEXT: vpshufhw {{.*#+}} xmm8 = xmm7[0,1,2,3,4,6,4,7]3232; AVX512-NEXT: vextracti128 $1, %ymm7, %xmm73233; AVX512-NEXT: vpshufd {{.*#+}} xmm7 = xmm7[0,1,2,1]3234; AVX512-NEXT: vpshufhw {{.*#+}} xmm7 = xmm7[0,1,2,3,4,5,7,7]3235; AVX512-NEXT: vpunpckhwd {{.*#+}} xmm7 = xmm8[4],xmm7[4],xmm8[5],xmm7[5],xmm8[6],xmm7[6],xmm8[7],xmm7[7]3236; AVX512-NEXT: vinserti128 $1, %xmm7, %ymm0, %ymm73237; AVX512-NEXT: vmovdqa 192(%rdi), %ymm93238; AVX512-NEXT: vpermq {{.*#+}} ymm8 = ymm9[0,1,0,2]3239; AVX512-NEXT: vpshufd {{.*#+}} ymm10 = ymm8[0,1,2,1,4,5,6,5]3240; AVX512-NEXT: vpshufhw {{.*#+}} ymm10 = ymm10[0,1,2,3,4,5,6,5,8,9,10,11,12,13,14,13]3241; AVX512-NEXT: vpblendd {{.*#+}} ymm7 = ymm7[0,1,2,3,4,5,6],ymm10[7]3242; AVX512-NEXT: vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3,4],ymm7[5,6,7]3243; AVX512-NEXT: vmovdqa64 %ymm4, %ymm173244; AVX512-NEXT: vpblendd {{.*#+}} ymm7 = ymm5[0,1],ymm6[2],ymm5[3,4,5],ymm6[6],ymm5[7]3245; AVX512-NEXT: vextracti128 $1, %ymm7, %xmm103246; AVX512-NEXT: vpblendw {{.*#+}} xmm7 = xmm7[0,1,2,3],xmm10[4],xmm7[5],xmm10[6],xmm7[7]3247; AVX512-NEXT: vpshufb {{.*#+}} xmm7 = xmm7[0,1,0,1,14,15,12,13,10,11,8,9,u,u,u,u]3248; AVX512-NEXT: vinserti128 $1, %xmm7, %ymm0, %ymm73249; AVX512-NEXT: vpshufd {{.*#+}} ymm8 = ymm8[0,1,1,3,4,5,5,7]3250; AVX512-NEXT: vpshufhw {{.*#+}} ymm8 = ymm8[0,1,2,3,4,5,5,6,8,9,10,11,12,13,13,14]3251; AVX512-NEXT: vpblendd {{.*#+}} ymm7 = ymm7[0,1,2,3,4,5,6],ymm8[7]3252; AVX512-NEXT: vmovdqa 80(%rdi), %xmm83253; AVX512-NEXT: vpblendd {{.*#+}} ymm10 = ymm3[0,1],ymm2[2],ymm3[3,4],ymm2[5],ymm3[6,7]3254; AVX512-NEXT: vpblendw {{.*#+}} ymm8 = ymm10[0,1,2],ymm8[3],ymm10[4,5,6,7,8,9,10],ymm8[11],ymm10[12,13,14,15]3255; AVX512-NEXT: vpshufb {{.*#+}} ymm8 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm8[8,9,6,7,4,5,18,19],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero3256; AVX512-NEXT: vpblendd {{.*#+}} ymm10 = ymm0[0,1,2],ymm1[3],ymm0[4,5],ymm1[6],ymm0[7]3257; AVX512-NEXT: vextracti128 $1, %ymm10, %xmm113258; AVX512-NEXT: vpblendw {{.*#+}} xmm10 = xmm11[0],xmm10[1],xmm11[2,3,4,5],xmm10[6],xmm11[7]3259; AVX512-NEXT: vpshufb {{.*#+}} ymm10 = ymm10[2,3,0,1,14,15,12,13,10,11],zero,zero,zero,zero,zero,zero,zero,zero,ymm10[u,u,u,u,u,u,u,u,u,u,u,u,u,u]3260; AVX512-NEXT: vpor %ymm8, %ymm10, %ymm83261; AVX512-NEXT: vpblendw {{.*#+}} ymm7 = ymm8[0],ymm7[1,2,3,4,5,6,7],ymm8[8],ymm7[9,10,11,12,13,14,15]3262; AVX512-NEXT: vpblendd {{.*#+}} ymm7 = ymm8[0,1,2,3],ymm7[4,5,6,7]3263; AVX512-NEXT: vpblendd {{.*#+}} ymm8 = ymm5[0,1,2],ymm6[3],ymm5[4,5],ymm6[6],ymm5[7]3264; AVX512-NEXT: vextracti128 $1, %ymm8, %xmm103265; AVX512-NEXT: vpblendw {{.*#+}} xmm8 = xmm10[0],xmm8[1],xmm10[2,3,4,5],xmm8[6],xmm10[7]3266; AVX512-NEXT: vpshufb {{.*#+}} xmm8 = xmm8[0,1,2,3,0,1,14,15,12,13,10,11,u,u,u,u]3267; AVX512-NEXT: vinserti128 $1, %xmm8, %ymm0, %ymm83268; AVX512-NEXT: vpermq {{.*#+}} ymm10 = ymm9[0,1,1,2]3269; AVX512-NEXT: vpshufd {{.*#+}} ymm10 = ymm10[0,1,0,3,4,5,4,7]3270; AVX512-NEXT: vpshufhw {{.*#+}} ymm10 = ymm10[0,1,2,3,4,5,4,7,8,9,10,11,12,13,12,15]3271; AVX512-NEXT: vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3,4,5,6],ymm10[7]3272; AVX512-NEXT: vpblendd {{.*#+}} ymm10 = ymm3[0,1],ymm2[2,3],ymm3[4,5],ymm2[6,7]3273; AVX512-NEXT: vextracti128 $1, %ymm10, %xmm113274; AVX512-NEXT: vpblendw {{.*#+}} ymm10 = ymm10[0,1,2,3],ymm11[4],ymm10[5,6,7,8,9,10,11],ymm11[12],ymm10[13,14,15]3275; AVX512-NEXT: vpshufb {{.*#+}} ymm10 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm10[10,11,8,9,6,7,20,21],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero3276; AVX512-NEXT: vpblendd {{.*#+}} ymm11 = ymm1[0],ymm0[1],ymm1[2,3],ymm0[4],ymm1[5,6,7]3277; AVX512-NEXT: vextracti128 $1, %ymm11, %xmm123278; AVX512-NEXT: vpblendw {{.*#+}} xmm11 = xmm11[0],xmm12[1],xmm11[2,3,4,5],xmm12[6],xmm11[7]3279; AVX512-NEXT: vpshufb {{.*#+}} ymm11 = ymm11[4,5,2,3,0,1,14,15,12,13],zero,zero,zero,zero,zero,zero,zero,zero,ymm11[u,u,u,u,u,u,u,u,u,u,u,u,u,u]3280; AVX512-NEXT: vpor %ymm10, %ymm11, %ymm103281; AVX512-NEXT: vpblendw {{.*#+}} ymm8 = ymm10[0],ymm8[1,2,3,4,5,6,7],ymm10[8],ymm8[9,10,11,12,13,14,15]3282; AVX512-NEXT: vpblendd {{.*#+}} ymm8 = ymm10[0,1,2,3],ymm8[4,5,6,7]3283; AVX512-NEXT: vpblendd {{.*#+}} ymm10 = ymm3[0,1,2],ymm2[3],ymm3[4,5],ymm2[6],ymm3[7]3284; AVX512-NEXT: vpermq {{.*#+}} ymm10 = ymm10[1,3,2,3]3285; AVX512-NEXT: vpshufb {{.*#+}} ymm10 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm10[4,5,10,11,0,1,22,23],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero3286; AVX512-NEXT: vpblendd {{.*#+}} ymm11 = ymm1[0],ymm0[1],ymm1[2,3,4],ymm0[5],ymm1[6,7]3287; AVX512-NEXT: vextracti128 $1, %ymm11, %xmm123288; AVX512-NEXT: vpblendw {{.*#+}} xmm11 = xmm12[0],xmm11[1],xmm12[2],xmm11[3],xmm12[4,5,6,7]3289; AVX512-NEXT: vpshufb {{.*#+}} ymm11 = ymm11[6,7,4,5,2,3,0,1,14,15],zero,zero,zero,zero,zero,zero,zero,zero,ymm11[u,u,u,u,u,u,u,u,u,u,u,u,u,u]3290; AVX512-NEXT: vpor %ymm10, %ymm11, %ymm103291; AVX512-NEXT: vpblendd {{.*#+}} ymm11 = ymm6[0],ymm5[1],ymm6[2,3],ymm5[4],ymm6[5,6,7]3292; AVX512-NEXT: vextracti128 $1, %ymm11, %xmm123293; AVX512-NEXT: vpblendw {{.*#+}} xmm11 = xmm11[0],xmm12[1],xmm11[2,3,4,5],xmm12[6],xmm11[7]3294; AVX512-NEXT: vpshuflw {{.*#+}} xmm11 = xmm11[0,2,1,0,4,5,6,7]3295; AVX512-NEXT: vpshufhw {{.*#+}} xmm11 = xmm11[0,1,2,3,7,6,6,7]3296; AVX512-NEXT: vinserti128 $1, %xmm11, %ymm0, %ymm113297; AVX512-NEXT: vpermq {{.*#+}} ymm12 = ymm9[0,1,1,3]3298; AVX512-NEXT: vpshufd {{.*#+}} ymm9 = ymm12[0,1,2,0,4,5,6,4]3299; AVX512-NEXT: vpshufhw {{.*#+}} ymm9 = ymm9[0,1,2,3,4,5,7,4,8,9,10,11,12,13,15,12]3300; AVX512-NEXT: vpblendd {{.*#+}} ymm9 = ymm11[0,1,2,3,4,5,6],ymm9[7]3301; AVX512-NEXT: vpblendw {{.*#+}} ymm9 = ymm10[0],ymm9[1,2,3,4,5,6,7],ymm10[8],ymm9[9,10,11,12,13,14,15]3302; AVX512-NEXT: vpblendd {{.*#+}} ymm9 = ymm10[0,1,2,3],ymm9[4,5,6,7]3303; AVX512-NEXT: vpblendd {{.*#+}} ymm10 = ymm6[0],ymm5[1],ymm6[2,3,4],ymm5[5],ymm6[6,7]3304; AVX512-NEXT: vextracti128 $1, %ymm10, %xmm113305; AVX512-NEXT: vpblendw {{.*#+}} xmm10 = xmm11[0],xmm10[1],xmm11[2],xmm10[3],xmm11[4,5,6,7]3306; AVX512-NEXT: vpshufb {{.*#+}} xmm10 = xmm10[0,1,6,7,4,5,2,3,0,1,14,15,u,u,u,u]3307; AVX512-NEXT: vinserti128 $1, %xmm10, %ymm0, %ymm103308; AVX512-NEXT: vpshufd {{.*#+}} ymm11 = ymm12[0,1,2,1,4,5,6,5]3309; AVX512-NEXT: vpshufhw {{.*#+}} ymm11 = ymm11[0,1,2,3,4,5,6,5,8,9,10,11,12,13,14,13]3310; AVX512-NEXT: vpblendd {{.*#+}} ymm10 = ymm10[0,1,2,3,4,5,6],ymm11[7]3311; AVX512-NEXT: vpblendd {{.*#+}} ymm11 = ymm2[0,1],ymm3[2],ymm2[3,4,5],ymm3[6],ymm2[7]3312; AVX512-NEXT: vpermq {{.*#+}} ymm12 = ymm11[2,3,0,1]3313; AVX512-NEXT: vpshufb {{.*#+}} ymm11 = ymm11[u,u,u,u,u,u,u,u,0,1,14,15,u,u,10,11,24,25,24,25,24,25,24,25,16,17,30,31,u,u,26,27]3314; AVX512-NEXT: vpblendw {{.*#+}} ymm11 = ymm11[0,1,2,3,4,5],ymm12[6],ymm11[7,8,9,10,11,12,13],ymm12[14],ymm11[15]3315; AVX512-NEXT: vpblendd {{.*#+}} ymm12 = ymm1[0,1],ymm0[2],ymm1[3,4],ymm0[5],ymm1[6,7]3316; AVX512-NEXT: vextracti128 $1, %ymm12, %xmm133317; AVX512-NEXT: vpshuflw {{.*#+}} xmm13 = xmm13[3,1,2,3,4,5,6,7]3318; AVX512-NEXT: vpshufd {{.*#+}} xmm12 = xmm12[2,1,2,3]3319; AVX512-NEXT: vpshuflw {{.*#+}} xmm12 = xmm12[0,2,2,3,4,5,6,7]3320; AVX512-NEXT: vpunpcklwd {{.*#+}} xmm12 = xmm12[0],xmm13[0],xmm12[1],xmm13[1],xmm12[2],xmm13[2],xmm12[3],xmm13[3]3321; AVX512-NEXT: vpblendd {{.*#+}} ymm11 = ymm12[0,1],ymm11[2,3,4,5,6,7]3322; AVX512-NEXT: vpblendw {{.*#+}} ymm10 = ymm11[0],ymm10[1,2,3,4,5,6,7],ymm11[8],ymm10[9,10,11,12,13,14,15]3323; AVX512-NEXT: vpblendd {{.*#+}} ymm10 = ymm11[0,1,2,3],ymm10[4,5,6,7]3324; AVX512-NEXT: vpblendd {{.*#+}} ymm11 = ymm6[0,1],ymm5[2],ymm6[3,4],ymm5[5],ymm6[6,7]3325; AVX512-NEXT: vextracti128 $1, %ymm11, %xmm123326; AVX512-NEXT: vpblendw {{.*#+}} xmm11 = xmm12[0,1],xmm11[2],xmm12[3],xmm11[4],xmm12[5,6,7]3327; AVX512-NEXT: vpshufb {{.*#+}} xmm11 = xmm11[u,u,8,9,6,7,4,5,2,3,u,u,u,u,u,u]3328; AVX512-NEXT: vinserti128 $1, %xmm11, %ymm0, %ymm113329; AVX512-NEXT: vmovdqa 208(%rdi), %xmm123330; AVX512-NEXT: vmovdqa 192(%rdi), %xmm133331; AVX512-NEXT: vpblendw {{.*#+}} xmm14 = xmm13[0,1,2,3,4,5],xmm12[6],xmm13[7]3332; AVX512-NEXT: vpshufd {{.*#+}} xmm14 = xmm14[0,1,0,3]3333; AVX512-NEXT: vpshufhw {{.*#+}} xmm14 = xmm14[0,1,2,3,4,4,7,6]3334; AVX512-NEXT: vinserti128 $1, %xmm14, %ymm0, %ymm143335; AVX512-NEXT: vpblendw {{.*#+}} ymm11 = ymm11[0,1,2,3,4],ymm14[5,6,7],ymm11[8,9,10,11,12],ymm14[13,14,15]3336; AVX512-NEXT: vpblendd {{.*#+}} ymm14 = ymm2[0,1,2],ymm3[3],ymm2[4,5],ymm3[6],ymm2[7]3337; AVX512-NEXT: vpermq {{.*#+}} ymm15 = ymm14[2,3,0,1]3338; AVX512-NEXT: vpblendw {{.*#+}} ymm14 = ymm15[0],ymm14[1,2,3,4,5,6],ymm15[7,8],ymm14[9,10,11,12,13,14],ymm15[15]3339; AVX512-NEXT: vpblendd {{.*#+}} ymm15 = ymm1[0,1],ymm0[2,3],ymm1[4,5],ymm0[6,7]3340; AVX512-NEXT: vextracti32x4 $1, %ymm15, %xmm163341; AVX512-NEXT: vpshufd {{.*#+}} xmm4 = xmm16[2,1,2,3]3342; AVX512-NEXT: vpshuflw {{.*#+}} xmm4 = xmm4[0,2,2,3,4,5,6,7]3343; AVX512-NEXT: vpshufd {{.*#+}} xmm15 = xmm15[2,1,2,3]3344; AVX512-NEXT: vpshuflw {{.*#+}} xmm15 = xmm15[1,3,2,3,4,5,6,7]3345; AVX512-NEXT: vpunpcklwd {{.*#+}} xmm4 = xmm15[0],xmm4[0],xmm15[1],xmm4[1],xmm15[2],xmm4[2],xmm15[3],xmm4[3]3346; AVX512-NEXT: vpshufb {{.*#+}} ymm14 = ymm14[u,u,u,u,u,u,u,u,2,3,0,1,14,15,12,13,26,27,26,27,26,27,26,27,18,19,16,17,30,31,28,29]3347; AVX512-NEXT: vpblendd {{.*#+}} ymm4 = ymm4[0,1],ymm14[2,3,4,5,6,7]3348; AVX512-NEXT: vpblendw {{.*#+}} ymm11 = ymm4[0],ymm11[1,2,3,4,5,6,7],ymm4[8],ymm11[9,10,11,12,13,14,15]3349; AVX512-NEXT: vpblendd {{.*#+}} ymm11 = ymm4[0,1,2,3],ymm11[4,5,6,7]3350; AVX512-NEXT: vpblendd {{.*#+}} ymm4 = ymm6[0,1],ymm5[2,3],ymm6[4,5],ymm5[6,7]3351; AVX512-NEXT: vextracti128 $1, %ymm4, %xmm53352; AVX512-NEXT: vpblendw {{.*#+}} xmm4 = xmm5[0,1,2],xmm4[3],xmm5[4],xmm4[5],xmm5[6,7]3353; AVX512-NEXT: vpblendw {{.*#+}} xmm5 = xmm12[0],xmm13[1],xmm12[2,3,4,5,6,7]3354; AVX512-NEXT: vpshufb {{.*#+}} xmm4 = xmm4[u,u,10,11,8,9,6,7,4,5,u,u,u,u,u,u]3355; AVX512-NEXT: vinserti128 $1, %xmm4, %ymm0, %ymm43356; AVX512-NEXT: vpshufd {{.*#+}} xmm5 = xmm5[0,1,0,3]3357; AVX512-NEXT: vpshufhw {{.*#+}} xmm5 = xmm5[0,1,2,3,4,5,4,7]3358; AVX512-NEXT: vinserti128 $1, %xmm5, %ymm0, %ymm53359; AVX512-NEXT: vpblendw {{.*#+}} ymm4 = ymm4[0,1,2,3,4],ymm5[5,6,7],ymm4[8,9,10,11,12],ymm5[13,14,15]3360; AVX512-NEXT: vpblendd {{.*#+}} ymm2 = ymm3[0],ymm2[1],ymm3[2,3],ymm2[4],ymm3[5,6,7]3361; AVX512-NEXT: vpermq {{.*#+}} ymm3 = ymm2[2,3,0,1]3362; AVX512-NEXT: vpblendw {{.*#+}} ymm2 = ymm2[0],ymm3[1],ymm2[2,3,4,5,6,7,8],ymm3[9],ymm2[10,11,12,13,14,15]3363; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3],ymm1[4,5],ymm0[6],ymm1[7]3364; AVX512-NEXT: vpshufhw {{.*#+}} xmm1 = xmm0[0,1,2,3,6,4,6,7]3365; AVX512-NEXT: vextracti128 $1, %ymm0, %xmm03366; AVX512-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[0,1,2,1]3367; AVX512-NEXT: vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,5,7,6,7]3368; AVX512-NEXT: vpunpckhwd {{.*#+}} xmm0 = xmm1[4],xmm0[4],xmm1[5],xmm0[5],xmm1[6],xmm0[6],xmm1[7],xmm0[7]3369; AVX512-NEXT: vpshufb {{.*#+}} ymm1 = ymm2[u,u,u,u,u,u,u,u,4,5,2,3,0,1,14,15,28,29,28,29,28,29,28,29,20,21,18,19,16,17,30,31]3370; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3,4,5,6,7]3371; AVX512-NEXT: vpblendw {{.*#+}} ymm1 = ymm0[0],ymm4[1,2,3,4,5,6,7],ymm0[8],ymm4[9,10,11,12,13,14,15]3372; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]3373; AVX512-NEXT: vmovdqa64 %ymm17, (%rsi)3374; AVX512-NEXT: vmovdqa %ymm7, (%rdx)3375; AVX512-NEXT: vmovdqa %ymm8, (%rcx)3376; AVX512-NEXT: vmovdqa %ymm9, (%r8)3377; AVX512-NEXT: vmovdqa %ymm10, (%r9)3378; AVX512-NEXT: movq {{[0-9]+}}(%rsp), %rax3379; AVX512-NEXT: vmovdqa %ymm11, (%rax)3380; AVX512-NEXT: movq {{[0-9]+}}(%rsp), %rax3381; AVX512-NEXT: vmovdqa %ymm0, (%rax)3382; AVX512-NEXT: vzeroupper3383; AVX512-NEXT: retq3384;3385; AVX512-FCP-LABEL: load_i16_stride7_vf16:3386; AVX512-FCP: # %bb.0:3387; AVX512-FCP-NEXT: vmovdqa64 64(%rdi), %zmm03388; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} ymm16 = [2,6,9,13,2,6,9,13]3389; AVX512-FCP-NEXT: vmovdqa64 128(%rdi), %zmm23390; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} ymm17 = [2,5,9,12,2,5,9,12]3391; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} ymm10 = [10,3,6,15,12,13,6,15]3392; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} ymm3 = [2,6,9,0,13,0,0,0]3393; AVX512-FCP-NEXT: vpermd %zmm0, %zmm3, %zmm93394; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} ymm3 = [2,5,9,0,12,0,0,0]3395; AVX512-FCP-NEXT: vpermd %zmm0, %zmm3, %zmm73396; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} ymm3 = [8,1,12,5,12,5,14,15]3397; AVX512-FCP-NEXT: vpermd %zmm0, %zmm3, %zmm33398; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} ymm4 = [3,6,10,13,3,6,10,13]3399; AVX512-FCP-NEXT: vpermd %zmm2, %zmm4, %zmm43400; AVX512-FCP-NEXT: vmovdqa 192(%rdi), %ymm53401; AVX512-FCP-NEXT: vpermq {{.*#+}} ymm14 = ymm5[0,1,0,2]3402; AVX512-FCP-NEXT: vpbroadcastd {{.*#+}} ymm11 = [20,21,26,27,20,21,26,27,20,21,26,27,20,21,26,27,20,21,26,27,20,21,26,27,20,21,26,27,20,21,26,27]3403; AVX512-FCP-NEXT: vpshufb %ymm11, %ymm14, %ymm63404; AVX512-FCP-NEXT: vpshufb {{.*#+}} ymm4 = ymm4[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,16,17,22,23,24,25,30,31,u,u,u,u]3405; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm12 = ymm4[0,1,2,3,4,5,6],ymm6[7]3406; AVX512-FCP-NEXT: vpshufb {{.*#+}} ymm3 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm3[6,7,12,13,2,3,16,17,30,31,u,u,u,u,u,u,u,u,u,u,u,u]3407; AVX512-FCP-NEXT: vmovdqa (%rdi), %ymm43408; AVX512-FCP-NEXT: vmovdqa 32(%rdi), %ymm63409; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm13 = ymm4[0,1],ymm6[2],ymm4[3,4,5],ymm6[6],ymm4[7]3410; AVX512-FCP-NEXT: vextracti128 $1, %ymm13, %xmm153411; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm13 = xmm13[0,1,2,3],xmm15[4],xmm13[5],xmm15[6],xmm13[7]3412; AVX512-FCP-NEXT: vpshufb {{.*#+}} ymm13 = ymm13[0,1,14,15,12,13,10,11,8,9],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm13[u,u,u,u,u,u,u,u,u,u,u,u]3413; AVX512-FCP-NEXT: vpor %ymm3, %ymm13, %ymm33414; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm3 = ymm3[0,1,2,3,4],ymm12[5,6,7]3415; AVX512-FCP-NEXT: vmovdqa 160(%rdi), %ymm123416; AVX512-FCP-NEXT: vmovdqa 128(%rdi), %ymm133417; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm15 = ymm13[0,1],ymm12[2],ymm13[3,4,5],ymm12[6],ymm13[7]3418; AVX512-FCP-NEXT: vextracti128 $1, %ymm15, %xmm13419; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm1 = xmm15[0,1,2,3],xmm1[4],xmm15[5],xmm1[6],xmm15[7]3420; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm1 = xmm1[0,1,0,1,14,15,12,13,10,11,8,9,u,u,u,u]3421; AVX512-FCP-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm13422; AVX512-FCP-NEXT: vpshufb {{.*#+}} ymm14 = ymm14[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,22,23,28,29]3423; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,6],ymm14[7]3424; AVX512-FCP-NEXT: vpshufb {{.*#+}} ymm7 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm7[0,1,6,7,8,9,18,19],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero3425; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm14 = ymm4[0,1,2],ymm6[3],ymm4[4,5],ymm6[6],ymm4[7]3426; AVX512-FCP-NEXT: vextracti128 $1, %ymm14, %xmm153427; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm14 = xmm15[0],xmm14[1],xmm15[2,3,4,5],xmm14[6],xmm15[7]3428; AVX512-FCP-NEXT: vpshufb {{.*#+}} ymm14 = ymm14[2,3,0,1,14,15,12,13,10,11],zero,zero,zero,zero,zero,zero,zero,zero,ymm14[u,u,u,u,u,u,u,u,u,u,u,u,u,u]3429; AVX512-FCP-NEXT: vpor %ymm7, %ymm14, %ymm73430; AVX512-FCP-NEXT: vpblendw {{.*#+}} ymm1 = ymm7[0],ymm1[1,2,3,4,5,6,7],ymm7[8],ymm1[9,10,11,12,13,14,15]3431; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm7 = ymm7[0,1,2,3],ymm1[4,5,6,7]3432; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm13[0,1,2],ymm12[3],ymm13[4,5],ymm12[6],ymm13[7]3433; AVX512-FCP-NEXT: vextracti128 $1, %ymm1, %xmm143434; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm1 = xmm14[0],xmm1[1],xmm14[2,3,4,5],xmm1[6],xmm14[7]3435; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm1 = xmm1[0,1,2,3,0,1,14,15,12,13,10,11,u,u,u,u]3436; AVX512-FCP-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm13437; AVX512-FCP-NEXT: vpbroadcastq {{.*#+}} ymm14 = [2,5,2,5,2,5,2,5]3438; AVX512-FCP-NEXT: vpermd %ymm5, %ymm14, %ymm143439; AVX512-FCP-NEXT: vpshufhw {{.*#+}} ymm14 = ymm14[0,1,2,3,4,5,4,7,8,9,10,11,12,13,12,15]3440; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,6],ymm14[7]3441; AVX512-FCP-NEXT: vpshufb {{.*#+}} ymm9 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm9[2,3,4,5,10,11,16,17],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero3442; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm14 = ymm6[0],ymm4[1],ymm6[2,3],ymm4[4],ymm6[5,6,7]3443; AVX512-FCP-NEXT: vextracti128 $1, %ymm14, %xmm153444; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm14 = xmm14[0],xmm15[1],xmm14[2,3,4,5],xmm15[6],xmm14[7]3445; AVX512-FCP-NEXT: vpshufb {{.*#+}} ymm14 = ymm14[4,5,2,3,0,1,14,15,12,13],zero,zero,zero,zero,zero,zero,zero,zero,ymm14[u,u,u,u,u,u,u,u,u,u,u,u,u,u]3446; AVX512-FCP-NEXT: vpor %ymm9, %ymm14, %ymm93447; AVX512-FCP-NEXT: vpblendw {{.*#+}} ymm1 = ymm9[0],ymm1[1,2,3,4,5,6,7],ymm9[8],ymm1[9,10,11,12,13,14,15]3448; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm9 = ymm9[0,1,2,3],ymm1[4,5,6,7]3449; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm12[0],ymm13[1],ymm12[2,3],ymm13[4],ymm12[5,6,7]3450; AVX512-FCP-NEXT: vextracti128 $1, %ymm1, %xmm143451; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0],xmm14[1],xmm1[2,3,4,5],xmm14[6],xmm1[7]3452; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm1 = xmm1[0,1,4,5,2,3,0,1,14,15,12,13,u,u,u,u]3453; AVX512-FCP-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm13454; AVX512-FCP-NEXT: vpermq {{.*#+}} ymm15 = ymm5[0,1,1,3]3455; AVX512-FCP-NEXT: vpshufb {{.*#+}} ymm14 = ymm15[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,18,19,24,25]3456; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,6],ymm14[7]3457; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm14 = ymm6[0],ymm4[1],ymm6[2,3,4],ymm4[5],ymm6[6,7]3458; AVX512-FCP-NEXT: vextracti128 $1, %ymm14, %xmm83459; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm8 = xmm8[0],xmm14[1],xmm8[2],xmm14[3],xmm8[4,5,6,7]3460; AVX512-FCP-NEXT: vpermd %zmm0, %zmm10, %zmm103461; AVX512-FCP-NEXT: vpshufb {{.*#+}} ymm10 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm10[4,5,10,11,0,1,22,23],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero3462; AVX512-FCP-NEXT: vpshufb {{.*#+}} ymm8 = ymm8[6,7,4,5,2,3,0,1,14,15],zero,zero,zero,zero,zero,zero,zero,zero,ymm8[u,u,u,u,u,u,u,u,u,u,u,u,u,u]3463; AVX512-FCP-NEXT: vpor %ymm10, %ymm8, %ymm83464; AVX512-FCP-NEXT: vpermd %zmm2, %zmm17, %zmm143465; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} ymm10 = [0,3,7,10,14,0,0,0]3466; AVX512-FCP-NEXT: vpblendw {{.*#+}} ymm1 = ymm8[0],ymm1[1,2,3,4,5,6,7],ymm8[8],ymm1[9,10,11,12,13,14,15]3467; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3],ymm1[4,5,6,7]3468; AVX512-FCP-NEXT: vpermd %zmm0, %zmm10, %zmm13469; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm10 = ymm12[0],ymm13[1],ymm12[2,3,4],ymm13[5],ymm12[6,7]3470; AVX512-FCP-NEXT: vextracti128 $1, %ymm10, %xmm123471; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm10 = xmm12[0],xmm10[1],xmm12[2],xmm10[3],xmm12[4,5,6,7]3472; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm10 = xmm10[0,1,6,7,4,5,2,3,0,1,14,15,u,u,u,u]3473; AVX512-FCP-NEXT: vinserti128 $1, %xmm10, %ymm0, %ymm103474; AVX512-FCP-NEXT: vpshufb %ymm11, %ymm15, %ymm113475; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm10 = ymm10[0,1,2,3,4,5,6],ymm11[7]3476; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm11 = ymm6[0,1],ymm4[2],ymm6[3,4],ymm4[5],ymm6[6,7]3477; AVX512-FCP-NEXT: vmovdqa {{.*#+}} xmm12 = [8,9,4,5,4,5,6,7,8,9,10,11,12,13,14,15]3478; AVX512-FCP-NEXT: vpshufb %xmm12, %xmm11, %xmm133479; AVX512-FCP-NEXT: vextracti128 $1, %ymm11, %xmm113480; AVX512-FCP-NEXT: vpshuflw {{.*#+}} xmm11 = xmm11[3,1,2,3,4,5,6,7]3481; AVX512-FCP-NEXT: vpunpcklwd {{.*#+}} xmm13 = xmm13[0],xmm11[0],xmm13[1],xmm11[1],xmm13[2],xmm11[2],xmm13[3],xmm11[3]3482; AVX512-FCP-NEXT: vmovdqa {{.*#+}} ymm11 = [u,u,u,u,u,u,u,u,0,1,6,7,8,9,14,15,16,17,22,23,20,21,22,23,16,17,22,23,24,25,30,31]3483; AVX512-FCP-NEXT: vpshufb %ymm11, %ymm1, %ymm13484; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm13[0,1],ymm1[2,3,4,5,6,7]3485; AVX512-FCP-NEXT: vpblendw {{.*#+}} ymm10 = ymm1[0],ymm10[1,2,3,4,5,6,7],ymm1[8],ymm10[9,10,11,12,13,14,15]3486; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm10 = ymm1[0,1,2,3],ymm10[4,5,6,7]3487; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} ymm1 = [0,3,3,0,0,3,7,0]3488; AVX512-FCP-NEXT: vpermd %ymm5, %ymm1, %ymm13489; AVX512-FCP-NEXT: vmovdqa {{.*#+}} ymm13 = [0,1,0,1,6,7,8,9,14,15,0,1,6,7,8,9,16,17,16,17,22,23,24,25,30,31,16,17,22,23,24,25]3490; AVX512-FCP-NEXT: vpshufb %ymm13, %ymm1, %ymm13491; AVX512-FCP-NEXT: vpshufb %ymm13, %ymm14, %ymm133492; AVX512-FCP-NEXT: vpblendw {{.*#+}} ymm1 = ymm13[0,1,2,3,4],ymm1[5,6,7],ymm13[8,9,10,11,12],ymm1[13,14,15]3493; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm13 = ymm6[0,1],ymm4[2,3],ymm6[4,5],ymm4[6,7]3494; AVX512-FCP-NEXT: vextracti128 $1, %ymm13, %xmm143495; AVX512-FCP-NEXT: vpshufb %xmm12, %xmm14, %xmm123496; AVX512-FCP-NEXT: vpermd %zmm2, %zmm16, %zmm23497; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} ymm14 = [0,4,7,11,14,0,0,0]3498; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm13 = xmm13[10,11,6,7,4,5,6,7,u,u,u,u,u,u,u,u]3499; AVX512-FCP-NEXT: vpunpcklwd {{.*#+}} xmm12 = xmm13[0],xmm12[0],xmm13[1],xmm12[1],xmm13[2],xmm12[2],xmm13[3],xmm12[3]3500; AVX512-FCP-NEXT: vpermd %zmm0, %zmm14, %zmm133501; AVX512-FCP-NEXT: vpshufb {{.*#+}} ymm13 = ymm13[u,u,u,u,u,u,u,u,2,3,4,5,10,11,12,13,18,19,18,19,18,19,18,19,18,19,20,21,26,27,28,29]3502; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm12 = ymm12[0,1],ymm13[2,3,4,5,6,7]3503; AVX512-FCP-NEXT: vpblendw {{.*#+}} ymm1 = ymm12[0],ymm1[1,2,3,4,5,6,7],ymm12[8],ymm1[9,10,11,12,13,14,15]3504; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]3505; AVX512-FCP-NEXT: vbroadcasti128 {{.*#+}} ymm12 = [0,4,7,0,0,4,7,0]3506; AVX512-FCP-NEXT: # ymm12 = mem[0,1,0,1]3507; AVX512-FCP-NEXT: vpermd %ymm5, %ymm12, %ymm53508; AVX512-FCP-NEXT: vmovdqa {{.*#+}} ymm12 = [4,5,2,3,4,5,10,11,12,13,2,3,4,5,10,11,20,21,18,19,20,21,26,27,28,29,18,19,20,21,26,27]3509; AVX512-FCP-NEXT: vpshufb %ymm12, %ymm5, %ymm53510; AVX512-FCP-NEXT: vpshufb %ymm12, %ymm2, %ymm23511; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} ymm12 = [1,4,8,11,15,0,0,0]3512; AVX512-FCP-NEXT: vpblendw {{.*#+}} ymm2 = ymm2[0,1,2,3,4],ymm5[5,6,7],ymm2[8,9,10,11,12],ymm5[13,14,15]3513; AVX512-FCP-NEXT: vpermd %zmm0, %zmm12, %zmm03514; AVX512-FCP-NEXT: vpshufb %ymm11, %ymm0, %ymm03515; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm4 = ymm6[0,1,2],ymm4[3],ymm6[4,5],ymm4[6],ymm6[7]3516; AVX512-FCP-NEXT: vextracti128 $1, %ymm4, %xmm53517; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm5 = xmm5[u,u,u,u,u,u,u,u,10,11,6,7,4,5,6,7]3518; AVX512-FCP-NEXT: vpshufhw {{.*#+}} xmm4 = xmm4[0,1,2,3,6,4,6,7]3519; AVX512-FCP-NEXT: vpunpckhwd {{.*#+}} xmm4 = xmm4[4],xmm5[4],xmm4[5],xmm5[5],xmm4[6],xmm5[6],xmm4[7],xmm5[7]3520; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm4[0,1],ymm0[2,3,4,5,6,7]3521; AVX512-FCP-NEXT: vpblendw {{.*#+}} ymm2 = ymm0[0],ymm2[1,2,3,4,5,6,7],ymm0[8],ymm2[9,10,11,12,13,14,15]3522; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm2[4,5,6,7]3523; AVX512-FCP-NEXT: vmovdqa %ymm3, (%rsi)3524; AVX512-FCP-NEXT: vmovdqa %ymm7, (%rdx)3525; AVX512-FCP-NEXT: vmovdqa %ymm9, (%rcx)3526; AVX512-FCP-NEXT: vmovdqa %ymm8, (%r8)3527; AVX512-FCP-NEXT: vmovdqa %ymm10, (%r9)3528; AVX512-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax3529; AVX512-FCP-NEXT: vmovdqa %ymm1, (%rax)3530; AVX512-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax3531; AVX512-FCP-NEXT: vmovdqa %ymm0, (%rax)3532; AVX512-FCP-NEXT: vzeroupper3533; AVX512-FCP-NEXT: retq3534;3535; AVX512DQ-LABEL: load_i16_stride7_vf16:3536; AVX512DQ: # %bb.0:3537; AVX512DQ-NEXT: vmovdqa (%rdi), %ymm03538; AVX512DQ-NEXT: vmovdqa 32(%rdi), %ymm13539; AVX512DQ-NEXT: vmovdqa 64(%rdi), %ymm23540; AVX512DQ-NEXT: vmovdqa 96(%rdi), %ymm33541; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm4 = ymm3[0],ymm2[1],ymm3[2,3,4],ymm2[5],ymm3[6,7]3542; AVX512DQ-NEXT: vpermq {{.*#+}} ymm4 = ymm4[0,2,2,3]3543; AVX512DQ-NEXT: vpshufb {{.*#+}} ymm4 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm4[6,7,12,13,2,3,16,17,30,31,u,u,u,u,u,u,u,u,u,u,u,u]3544; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm5 = ymm0[0,1],ymm1[2],ymm0[3,4,5],ymm1[6],ymm0[7]3545; AVX512DQ-NEXT: vextracti128 $1, %ymm5, %xmm63546; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm5 = xmm5[0,1,2,3],xmm6[4],xmm5[5],xmm6[6],xmm5[7]3547; AVX512DQ-NEXT: vpshufb {{.*#+}} ymm5 = ymm5[0,1,14,15,12,13,10,11,8,9],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm5[u,u,u,u,u,u,u,u,u,u,u,u]3548; AVX512DQ-NEXT: vpor %ymm4, %ymm5, %ymm43549; AVX512DQ-NEXT: vmovdqa 128(%rdi), %ymm53550; AVX512DQ-NEXT: vmovdqa 160(%rdi), %ymm63551; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm7 = ymm6[0,1,2],ymm5[3],ymm6[4,5],ymm5[6],ymm6[7]3552; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm8 = xmm7[0,1,2,3,4,6,4,7]3553; AVX512DQ-NEXT: vextracti128 $1, %ymm7, %xmm73554; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm7 = xmm7[0,1,2,1]3555; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm7 = xmm7[0,1,2,3,4,5,7,7]3556; AVX512DQ-NEXT: vpunpckhwd {{.*#+}} xmm7 = xmm8[4],xmm7[4],xmm8[5],xmm7[5],xmm8[6],xmm7[6],xmm8[7],xmm7[7]3557; AVX512DQ-NEXT: vinserti128 $1, %xmm7, %ymm0, %ymm73558; AVX512DQ-NEXT: vmovdqa 192(%rdi), %ymm93559; AVX512DQ-NEXT: vpermq {{.*#+}} ymm8 = ymm9[0,1,0,2]3560; AVX512DQ-NEXT: vpshufd {{.*#+}} ymm10 = ymm8[0,1,2,1,4,5,6,5]3561; AVX512DQ-NEXT: vpshufhw {{.*#+}} ymm10 = ymm10[0,1,2,3,4,5,6,5,8,9,10,11,12,13,14,13]3562; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm7 = ymm7[0,1,2,3,4,5,6],ymm10[7]3563; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3,4],ymm7[5,6,7]3564; AVX512DQ-NEXT: vmovdqa64 %ymm4, %ymm173565; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm7 = ymm5[0,1],ymm6[2],ymm5[3,4,5],ymm6[6],ymm5[7]3566; AVX512DQ-NEXT: vextracti128 $1, %ymm7, %xmm103567; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm7 = xmm7[0,1,2,3],xmm10[4],xmm7[5],xmm10[6],xmm7[7]3568; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm7 = xmm7[0,1,0,1,14,15,12,13,10,11,8,9,u,u,u,u]3569; AVX512DQ-NEXT: vinserti128 $1, %xmm7, %ymm0, %ymm73570; AVX512DQ-NEXT: vpshufd {{.*#+}} ymm8 = ymm8[0,1,1,3,4,5,5,7]3571; AVX512DQ-NEXT: vpshufhw {{.*#+}} ymm8 = ymm8[0,1,2,3,4,5,5,6,8,9,10,11,12,13,13,14]3572; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm7 = ymm7[0,1,2,3,4,5,6],ymm8[7]3573; AVX512DQ-NEXT: vmovdqa 80(%rdi), %xmm83574; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm10 = ymm3[0,1],ymm2[2],ymm3[3,4],ymm2[5],ymm3[6,7]3575; AVX512DQ-NEXT: vpblendw {{.*#+}} ymm8 = ymm10[0,1,2],ymm8[3],ymm10[4,5,6,7,8,9,10],ymm8[11],ymm10[12,13,14,15]3576; AVX512DQ-NEXT: vpshufb {{.*#+}} ymm8 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm8[8,9,6,7,4,5,18,19],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero3577; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm10 = ymm0[0,1,2],ymm1[3],ymm0[4,5],ymm1[6],ymm0[7]3578; AVX512DQ-NEXT: vextracti128 $1, %ymm10, %xmm113579; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm10 = xmm11[0],xmm10[1],xmm11[2,3,4,5],xmm10[6],xmm11[7]3580; AVX512DQ-NEXT: vpshufb {{.*#+}} ymm10 = ymm10[2,3,0,1,14,15,12,13,10,11],zero,zero,zero,zero,zero,zero,zero,zero,ymm10[u,u,u,u,u,u,u,u,u,u,u,u,u,u]3581; AVX512DQ-NEXT: vpor %ymm8, %ymm10, %ymm83582; AVX512DQ-NEXT: vpblendw {{.*#+}} ymm7 = ymm8[0],ymm7[1,2,3,4,5,6,7],ymm8[8],ymm7[9,10,11,12,13,14,15]3583; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm7 = ymm8[0,1,2,3],ymm7[4,5,6,7]3584; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm8 = ymm5[0,1,2],ymm6[3],ymm5[4,5],ymm6[6],ymm5[7]3585; AVX512DQ-NEXT: vextracti128 $1, %ymm8, %xmm103586; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm8 = xmm10[0],xmm8[1],xmm10[2,3,4,5],xmm8[6],xmm10[7]3587; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm8 = xmm8[0,1,2,3,0,1,14,15,12,13,10,11,u,u,u,u]3588; AVX512DQ-NEXT: vinserti128 $1, %xmm8, %ymm0, %ymm83589; AVX512DQ-NEXT: vpermq {{.*#+}} ymm10 = ymm9[0,1,1,2]3590; AVX512DQ-NEXT: vpshufd {{.*#+}} ymm10 = ymm10[0,1,0,3,4,5,4,7]3591; AVX512DQ-NEXT: vpshufhw {{.*#+}} ymm10 = ymm10[0,1,2,3,4,5,4,7,8,9,10,11,12,13,12,15]3592; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3,4,5,6],ymm10[7]3593; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm10 = ymm3[0,1],ymm2[2,3],ymm3[4,5],ymm2[6,7]3594; AVX512DQ-NEXT: vextracti128 $1, %ymm10, %xmm113595; AVX512DQ-NEXT: vpblendw {{.*#+}} ymm10 = ymm10[0,1,2,3],ymm11[4],ymm10[5,6,7,8,9,10,11],ymm11[12],ymm10[13,14,15]3596; AVX512DQ-NEXT: vpshufb {{.*#+}} ymm10 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm10[10,11,8,9,6,7,20,21],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero3597; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm11 = ymm1[0],ymm0[1],ymm1[2,3],ymm0[4],ymm1[5,6,7]3598; AVX512DQ-NEXT: vextracti128 $1, %ymm11, %xmm123599; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm11 = xmm11[0],xmm12[1],xmm11[2,3,4,5],xmm12[6],xmm11[7]3600; AVX512DQ-NEXT: vpshufb {{.*#+}} ymm11 = ymm11[4,5,2,3,0,1,14,15,12,13],zero,zero,zero,zero,zero,zero,zero,zero,ymm11[u,u,u,u,u,u,u,u,u,u,u,u,u,u]3601; AVX512DQ-NEXT: vpor %ymm10, %ymm11, %ymm103602; AVX512DQ-NEXT: vpblendw {{.*#+}} ymm8 = ymm10[0],ymm8[1,2,3,4,5,6,7],ymm10[8],ymm8[9,10,11,12,13,14,15]3603; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm8 = ymm10[0,1,2,3],ymm8[4,5,6,7]3604; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm10 = ymm3[0,1,2],ymm2[3],ymm3[4,5],ymm2[6],ymm3[7]3605; AVX512DQ-NEXT: vpermq {{.*#+}} ymm10 = ymm10[1,3,2,3]3606; AVX512DQ-NEXT: vpshufb {{.*#+}} ymm10 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm10[4,5,10,11,0,1,22,23],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero3607; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm11 = ymm1[0],ymm0[1],ymm1[2,3,4],ymm0[5],ymm1[6,7]3608; AVX512DQ-NEXT: vextracti128 $1, %ymm11, %xmm123609; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm11 = xmm12[0],xmm11[1],xmm12[2],xmm11[3],xmm12[4,5,6,7]3610; AVX512DQ-NEXT: vpshufb {{.*#+}} ymm11 = ymm11[6,7,4,5,2,3,0,1,14,15],zero,zero,zero,zero,zero,zero,zero,zero,ymm11[u,u,u,u,u,u,u,u,u,u,u,u,u,u]3611; AVX512DQ-NEXT: vpor %ymm10, %ymm11, %ymm103612; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm11 = ymm6[0],ymm5[1],ymm6[2,3],ymm5[4],ymm6[5,6,7]3613; AVX512DQ-NEXT: vextracti128 $1, %ymm11, %xmm123614; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm11 = xmm11[0],xmm12[1],xmm11[2,3,4,5],xmm12[6],xmm11[7]3615; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm11 = xmm11[0,2,1,0,4,5,6,7]3616; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm11 = xmm11[0,1,2,3,7,6,6,7]3617; AVX512DQ-NEXT: vinserti128 $1, %xmm11, %ymm0, %ymm113618; AVX512DQ-NEXT: vpermq {{.*#+}} ymm12 = ymm9[0,1,1,3]3619; AVX512DQ-NEXT: vpshufd {{.*#+}} ymm9 = ymm12[0,1,2,0,4,5,6,4]3620; AVX512DQ-NEXT: vpshufhw {{.*#+}} ymm9 = ymm9[0,1,2,3,4,5,7,4,8,9,10,11,12,13,15,12]3621; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm9 = ymm11[0,1,2,3,4,5,6],ymm9[7]3622; AVX512DQ-NEXT: vpblendw {{.*#+}} ymm9 = ymm10[0],ymm9[1,2,3,4,5,6,7],ymm10[8],ymm9[9,10,11,12,13,14,15]3623; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm9 = ymm10[0,1,2,3],ymm9[4,5,6,7]3624; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm10 = ymm6[0],ymm5[1],ymm6[2,3,4],ymm5[5],ymm6[6,7]3625; AVX512DQ-NEXT: vextracti128 $1, %ymm10, %xmm113626; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm10 = xmm11[0],xmm10[1],xmm11[2],xmm10[3],xmm11[4,5,6,7]3627; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm10 = xmm10[0,1,6,7,4,5,2,3,0,1,14,15,u,u,u,u]3628; AVX512DQ-NEXT: vinserti128 $1, %xmm10, %ymm0, %ymm103629; AVX512DQ-NEXT: vpshufd {{.*#+}} ymm11 = ymm12[0,1,2,1,4,5,6,5]3630; AVX512DQ-NEXT: vpshufhw {{.*#+}} ymm11 = ymm11[0,1,2,3,4,5,6,5,8,9,10,11,12,13,14,13]3631; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm10 = ymm10[0,1,2,3,4,5,6],ymm11[7]3632; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm11 = ymm2[0,1],ymm3[2],ymm2[3,4,5],ymm3[6],ymm2[7]3633; AVX512DQ-NEXT: vpermq {{.*#+}} ymm12 = ymm11[2,3,0,1]3634; AVX512DQ-NEXT: vpshufb {{.*#+}} ymm11 = ymm11[u,u,u,u,u,u,u,u,0,1,14,15,u,u,10,11,24,25,24,25,24,25,24,25,16,17,30,31,u,u,26,27]3635; AVX512DQ-NEXT: vpblendw {{.*#+}} ymm11 = ymm11[0,1,2,3,4,5],ymm12[6],ymm11[7,8,9,10,11,12,13],ymm12[14],ymm11[15]3636; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm12 = ymm1[0,1],ymm0[2],ymm1[3,4],ymm0[5],ymm1[6,7]3637; AVX512DQ-NEXT: vextracti128 $1, %ymm12, %xmm133638; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm13 = xmm13[3,1,2,3,4,5,6,7]3639; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm12 = xmm12[2,1,2,3]3640; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm12 = xmm12[0,2,2,3,4,5,6,7]3641; AVX512DQ-NEXT: vpunpcklwd {{.*#+}} xmm12 = xmm12[0],xmm13[0],xmm12[1],xmm13[1],xmm12[2],xmm13[2],xmm12[3],xmm13[3]3642; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm11 = ymm12[0,1],ymm11[2,3,4,5,6,7]3643; AVX512DQ-NEXT: vpblendw {{.*#+}} ymm10 = ymm11[0],ymm10[1,2,3,4,5,6,7],ymm11[8],ymm10[9,10,11,12,13,14,15]3644; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm10 = ymm11[0,1,2,3],ymm10[4,5,6,7]3645; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm11 = ymm6[0,1],ymm5[2],ymm6[3,4],ymm5[5],ymm6[6,7]3646; AVX512DQ-NEXT: vextracti128 $1, %ymm11, %xmm123647; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm11 = xmm12[0,1],xmm11[2],xmm12[3],xmm11[4],xmm12[5,6,7]3648; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm11 = xmm11[u,u,8,9,6,7,4,5,2,3,u,u,u,u,u,u]3649; AVX512DQ-NEXT: vinserti128 $1, %xmm11, %ymm0, %ymm113650; AVX512DQ-NEXT: vmovdqa 208(%rdi), %xmm123651; AVX512DQ-NEXT: vmovdqa 192(%rdi), %xmm133652; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm14 = xmm13[0,1,2,3,4,5],xmm12[6],xmm13[7]3653; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm14 = xmm14[0,1,0,3]3654; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm14 = xmm14[0,1,2,3,4,4,7,6]3655; AVX512DQ-NEXT: vinserti128 $1, %xmm14, %ymm0, %ymm143656; AVX512DQ-NEXT: vpblendw {{.*#+}} ymm11 = ymm11[0,1,2,3,4],ymm14[5,6,7],ymm11[8,9,10,11,12],ymm14[13,14,15]3657; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm14 = ymm2[0,1,2],ymm3[3],ymm2[4,5],ymm3[6],ymm2[7]3658; AVX512DQ-NEXT: vpermq {{.*#+}} ymm15 = ymm14[2,3,0,1]3659; AVX512DQ-NEXT: vpblendw {{.*#+}} ymm14 = ymm15[0],ymm14[1,2,3,4,5,6],ymm15[7,8],ymm14[9,10,11,12,13,14],ymm15[15]3660; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm15 = ymm1[0,1],ymm0[2,3],ymm1[4,5],ymm0[6,7]3661; AVX512DQ-NEXT: vextracti32x4 $1, %ymm15, %xmm163662; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm4 = xmm16[2,1,2,3]3663; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm4 = xmm4[0,2,2,3,4,5,6,7]3664; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm15 = xmm15[2,1,2,3]3665; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm15 = xmm15[1,3,2,3,4,5,6,7]3666; AVX512DQ-NEXT: vpunpcklwd {{.*#+}} xmm4 = xmm15[0],xmm4[0],xmm15[1],xmm4[1],xmm15[2],xmm4[2],xmm15[3],xmm4[3]3667; AVX512DQ-NEXT: vpshufb {{.*#+}} ymm14 = ymm14[u,u,u,u,u,u,u,u,2,3,0,1,14,15,12,13,26,27,26,27,26,27,26,27,18,19,16,17,30,31,28,29]3668; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm4 = ymm4[0,1],ymm14[2,3,4,5,6,7]3669; AVX512DQ-NEXT: vpblendw {{.*#+}} ymm11 = ymm4[0],ymm11[1,2,3,4,5,6,7],ymm4[8],ymm11[9,10,11,12,13,14,15]3670; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm11 = ymm4[0,1,2,3],ymm11[4,5,6,7]3671; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm4 = ymm6[0,1],ymm5[2,3],ymm6[4,5],ymm5[6,7]3672; AVX512DQ-NEXT: vextracti128 $1, %ymm4, %xmm53673; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm4 = xmm5[0,1,2],xmm4[3],xmm5[4],xmm4[5],xmm5[6,7]3674; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm5 = xmm12[0],xmm13[1],xmm12[2,3,4,5,6,7]3675; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm4 = xmm4[u,u,10,11,8,9,6,7,4,5,u,u,u,u,u,u]3676; AVX512DQ-NEXT: vinserti128 $1, %xmm4, %ymm0, %ymm43677; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm5 = xmm5[0,1,0,3]3678; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm5 = xmm5[0,1,2,3,4,5,4,7]3679; AVX512DQ-NEXT: vinserti128 $1, %xmm5, %ymm0, %ymm53680; AVX512DQ-NEXT: vpblendw {{.*#+}} ymm4 = ymm4[0,1,2,3,4],ymm5[5,6,7],ymm4[8,9,10,11,12],ymm5[13,14,15]3681; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm2 = ymm3[0],ymm2[1],ymm3[2,3],ymm2[4],ymm3[5,6,7]3682; AVX512DQ-NEXT: vpermq {{.*#+}} ymm3 = ymm2[2,3,0,1]3683; AVX512DQ-NEXT: vpblendw {{.*#+}} ymm2 = ymm2[0],ymm3[1],ymm2[2,3,4,5,6,7,8],ymm3[9],ymm2[10,11,12,13,14,15]3684; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3],ymm1[4,5],ymm0[6],ymm1[7]3685; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm1 = xmm0[0,1,2,3,6,4,6,7]3686; AVX512DQ-NEXT: vextracti128 $1, %ymm0, %xmm03687; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[0,1,2,1]3688; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,5,7,6,7]3689; AVX512DQ-NEXT: vpunpckhwd {{.*#+}} xmm0 = xmm1[4],xmm0[4],xmm1[5],xmm0[5],xmm1[6],xmm0[6],xmm1[7],xmm0[7]3690; AVX512DQ-NEXT: vpshufb {{.*#+}} ymm1 = ymm2[u,u,u,u,u,u,u,u,4,5,2,3,0,1,14,15,28,29,28,29,28,29,28,29,20,21,18,19,16,17,30,31]3691; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3,4,5,6,7]3692; AVX512DQ-NEXT: vpblendw {{.*#+}} ymm1 = ymm0[0],ymm4[1,2,3,4,5,6,7],ymm0[8],ymm4[9,10,11,12,13,14,15]3693; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]3694; AVX512DQ-NEXT: vmovdqa64 %ymm17, (%rsi)3695; AVX512DQ-NEXT: vmovdqa %ymm7, (%rdx)3696; AVX512DQ-NEXT: vmovdqa %ymm8, (%rcx)3697; AVX512DQ-NEXT: vmovdqa %ymm9, (%r8)3698; AVX512DQ-NEXT: vmovdqa %ymm10, (%r9)3699; AVX512DQ-NEXT: movq {{[0-9]+}}(%rsp), %rax3700; AVX512DQ-NEXT: vmovdqa %ymm11, (%rax)3701; AVX512DQ-NEXT: movq {{[0-9]+}}(%rsp), %rax3702; AVX512DQ-NEXT: vmovdqa %ymm0, (%rax)3703; AVX512DQ-NEXT: vzeroupper3704; AVX512DQ-NEXT: retq3705;3706; AVX512DQ-FCP-LABEL: load_i16_stride7_vf16:3707; AVX512DQ-FCP: # %bb.0:3708; AVX512DQ-FCP-NEXT: vmovdqa64 64(%rdi), %zmm03709; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} ymm16 = [2,6,9,13,2,6,9,13]3710; AVX512DQ-FCP-NEXT: vmovdqa64 128(%rdi), %zmm23711; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} ymm17 = [2,5,9,12,2,5,9,12]3712; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} ymm10 = [10,3,6,15,12,13,6,15]3713; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} ymm3 = [2,6,9,0,13,0,0,0]3714; AVX512DQ-FCP-NEXT: vpermd %zmm0, %zmm3, %zmm93715; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} ymm3 = [2,5,9,0,12,0,0,0]3716; AVX512DQ-FCP-NEXT: vpermd %zmm0, %zmm3, %zmm73717; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} ymm3 = [8,1,12,5,12,5,14,15]3718; AVX512DQ-FCP-NEXT: vpermd %zmm0, %zmm3, %zmm33719; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} ymm4 = [3,6,10,13,3,6,10,13]3720; AVX512DQ-FCP-NEXT: vpermd %zmm2, %zmm4, %zmm43721; AVX512DQ-FCP-NEXT: vmovdqa 192(%rdi), %ymm53722; AVX512DQ-FCP-NEXT: vpermq {{.*#+}} ymm14 = ymm5[0,1,0,2]3723; AVX512DQ-FCP-NEXT: vpbroadcastd {{.*#+}} ymm11 = [20,21,26,27,20,21,26,27,20,21,26,27,20,21,26,27,20,21,26,27,20,21,26,27,20,21,26,27,20,21,26,27]3724; AVX512DQ-FCP-NEXT: vpshufb %ymm11, %ymm14, %ymm63725; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} ymm4 = ymm4[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,16,17,22,23,24,25,30,31,u,u,u,u]3726; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm12 = ymm4[0,1,2,3,4,5,6],ymm6[7]3727; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} ymm3 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm3[6,7,12,13,2,3,16,17,30,31,u,u,u,u,u,u,u,u,u,u,u,u]3728; AVX512DQ-FCP-NEXT: vmovdqa (%rdi), %ymm43729; AVX512DQ-FCP-NEXT: vmovdqa 32(%rdi), %ymm63730; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm13 = ymm4[0,1],ymm6[2],ymm4[3,4,5],ymm6[6],ymm4[7]3731; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm13, %xmm153732; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm13 = xmm13[0,1,2,3],xmm15[4],xmm13[5],xmm15[6],xmm13[7]3733; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} ymm13 = ymm13[0,1,14,15,12,13,10,11,8,9],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm13[u,u,u,u,u,u,u,u,u,u,u,u]3734; AVX512DQ-FCP-NEXT: vpor %ymm3, %ymm13, %ymm33735; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm3 = ymm3[0,1,2,3,4],ymm12[5,6,7]3736; AVX512DQ-FCP-NEXT: vmovdqa 160(%rdi), %ymm123737; AVX512DQ-FCP-NEXT: vmovdqa 128(%rdi), %ymm133738; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm15 = ymm13[0,1],ymm12[2],ymm13[3,4,5],ymm12[6],ymm13[7]3739; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm15, %xmm13740; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm1 = xmm15[0,1,2,3],xmm1[4],xmm15[5],xmm1[6],xmm15[7]3741; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm1 = xmm1[0,1,0,1,14,15,12,13,10,11,8,9,u,u,u,u]3742; AVX512DQ-FCP-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm13743; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} ymm14 = ymm14[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,22,23,28,29]3744; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,6],ymm14[7]3745; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} ymm7 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm7[0,1,6,7,8,9,18,19],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero3746; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm14 = ymm4[0,1,2],ymm6[3],ymm4[4,5],ymm6[6],ymm4[7]3747; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm14, %xmm153748; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm14 = xmm15[0],xmm14[1],xmm15[2,3,4,5],xmm14[6],xmm15[7]3749; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} ymm14 = ymm14[2,3,0,1,14,15,12,13,10,11],zero,zero,zero,zero,zero,zero,zero,zero,ymm14[u,u,u,u,u,u,u,u,u,u,u,u,u,u]3750; AVX512DQ-FCP-NEXT: vpor %ymm7, %ymm14, %ymm73751; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} ymm1 = ymm7[0],ymm1[1,2,3,4,5,6,7],ymm7[8],ymm1[9,10,11,12,13,14,15]3752; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm7 = ymm7[0,1,2,3],ymm1[4,5,6,7]3753; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm13[0,1,2],ymm12[3],ymm13[4,5],ymm12[6],ymm13[7]3754; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm1, %xmm143755; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm1 = xmm14[0],xmm1[1],xmm14[2,3,4,5],xmm1[6],xmm14[7]3756; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm1 = xmm1[0,1,2,3,0,1,14,15,12,13,10,11,u,u,u,u]3757; AVX512DQ-FCP-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm13758; AVX512DQ-FCP-NEXT: vpbroadcastq {{.*#+}} ymm14 = [2,5,2,5,2,5,2,5]3759; AVX512DQ-FCP-NEXT: vpermd %ymm5, %ymm14, %ymm143760; AVX512DQ-FCP-NEXT: vpshufhw {{.*#+}} ymm14 = ymm14[0,1,2,3,4,5,4,7,8,9,10,11,12,13,12,15]3761; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,6],ymm14[7]3762; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} ymm9 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm9[2,3,4,5,10,11,16,17],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero3763; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm14 = ymm6[0],ymm4[1],ymm6[2,3],ymm4[4],ymm6[5,6,7]3764; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm14, %xmm153765; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm14 = xmm14[0],xmm15[1],xmm14[2,3,4,5],xmm15[6],xmm14[7]3766; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} ymm14 = ymm14[4,5,2,3,0,1,14,15,12,13],zero,zero,zero,zero,zero,zero,zero,zero,ymm14[u,u,u,u,u,u,u,u,u,u,u,u,u,u]3767; AVX512DQ-FCP-NEXT: vpor %ymm9, %ymm14, %ymm93768; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} ymm1 = ymm9[0],ymm1[1,2,3,4,5,6,7],ymm9[8],ymm1[9,10,11,12,13,14,15]3769; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm9 = ymm9[0,1,2,3],ymm1[4,5,6,7]3770; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm12[0],ymm13[1],ymm12[2,3],ymm13[4],ymm12[5,6,7]3771; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm1, %xmm143772; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0],xmm14[1],xmm1[2,3,4,5],xmm14[6],xmm1[7]3773; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm1 = xmm1[0,1,4,5,2,3,0,1,14,15,12,13,u,u,u,u]3774; AVX512DQ-FCP-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm13775; AVX512DQ-FCP-NEXT: vpermq {{.*#+}} ymm15 = ymm5[0,1,1,3]3776; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} ymm14 = ymm15[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,18,19,24,25]3777; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,6],ymm14[7]3778; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm14 = ymm6[0],ymm4[1],ymm6[2,3,4],ymm4[5],ymm6[6,7]3779; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm14, %xmm83780; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm8 = xmm8[0],xmm14[1],xmm8[2],xmm14[3],xmm8[4,5,6,7]3781; AVX512DQ-FCP-NEXT: vpermd %zmm0, %zmm10, %zmm103782; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} ymm10 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm10[4,5,10,11,0,1,22,23],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero3783; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} ymm8 = ymm8[6,7,4,5,2,3,0,1,14,15],zero,zero,zero,zero,zero,zero,zero,zero,ymm8[u,u,u,u,u,u,u,u,u,u,u,u,u,u]3784; AVX512DQ-FCP-NEXT: vpor %ymm10, %ymm8, %ymm83785; AVX512DQ-FCP-NEXT: vpermd %zmm2, %zmm17, %zmm143786; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} ymm10 = [0,3,7,10,14,0,0,0]3787; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} ymm1 = ymm8[0],ymm1[1,2,3,4,5,6,7],ymm8[8],ymm1[9,10,11,12,13,14,15]3788; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3],ymm1[4,5,6,7]3789; AVX512DQ-FCP-NEXT: vpermd %zmm0, %zmm10, %zmm13790; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm10 = ymm12[0],ymm13[1],ymm12[2,3,4],ymm13[5],ymm12[6,7]3791; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm10, %xmm123792; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm10 = xmm12[0],xmm10[1],xmm12[2],xmm10[3],xmm12[4,5,6,7]3793; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm10 = xmm10[0,1,6,7,4,5,2,3,0,1,14,15,u,u,u,u]3794; AVX512DQ-FCP-NEXT: vinserti128 $1, %xmm10, %ymm0, %ymm103795; AVX512DQ-FCP-NEXT: vpshufb %ymm11, %ymm15, %ymm113796; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm10 = ymm10[0,1,2,3,4,5,6],ymm11[7]3797; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm11 = ymm6[0,1],ymm4[2],ymm6[3,4],ymm4[5],ymm6[6,7]3798; AVX512DQ-FCP-NEXT: vmovdqa {{.*#+}} xmm12 = [8,9,4,5,4,5,6,7,8,9,10,11,12,13,14,15]3799; AVX512DQ-FCP-NEXT: vpshufb %xmm12, %xmm11, %xmm133800; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm11, %xmm113801; AVX512DQ-FCP-NEXT: vpshuflw {{.*#+}} xmm11 = xmm11[3,1,2,3,4,5,6,7]3802; AVX512DQ-FCP-NEXT: vpunpcklwd {{.*#+}} xmm13 = xmm13[0],xmm11[0],xmm13[1],xmm11[1],xmm13[2],xmm11[2],xmm13[3],xmm11[3]3803; AVX512DQ-FCP-NEXT: vmovdqa {{.*#+}} ymm11 = [u,u,u,u,u,u,u,u,0,1,6,7,8,9,14,15,16,17,22,23,20,21,22,23,16,17,22,23,24,25,30,31]3804; AVX512DQ-FCP-NEXT: vpshufb %ymm11, %ymm1, %ymm13805; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm13[0,1],ymm1[2,3,4,5,6,7]3806; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} ymm10 = ymm1[0],ymm10[1,2,3,4,5,6,7],ymm1[8],ymm10[9,10,11,12,13,14,15]3807; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm10 = ymm1[0,1,2,3],ymm10[4,5,6,7]3808; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} ymm1 = [0,3,3,0,0,3,7,0]3809; AVX512DQ-FCP-NEXT: vpermd %ymm5, %ymm1, %ymm13810; AVX512DQ-FCP-NEXT: vmovdqa {{.*#+}} ymm13 = [0,1,0,1,6,7,8,9,14,15,0,1,6,7,8,9,16,17,16,17,22,23,24,25,30,31,16,17,22,23,24,25]3811; AVX512DQ-FCP-NEXT: vpshufb %ymm13, %ymm1, %ymm13812; AVX512DQ-FCP-NEXT: vpshufb %ymm13, %ymm14, %ymm133813; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} ymm1 = ymm13[0,1,2,3,4],ymm1[5,6,7],ymm13[8,9,10,11,12],ymm1[13,14,15]3814; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm13 = ymm6[0,1],ymm4[2,3],ymm6[4,5],ymm4[6,7]3815; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm13, %xmm143816; AVX512DQ-FCP-NEXT: vpshufb %xmm12, %xmm14, %xmm123817; AVX512DQ-FCP-NEXT: vpermd %zmm2, %zmm16, %zmm23818; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} ymm14 = [0,4,7,11,14,0,0,0]3819; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm13 = xmm13[10,11,6,7,4,5,6,7,u,u,u,u,u,u,u,u]3820; AVX512DQ-FCP-NEXT: vpunpcklwd {{.*#+}} xmm12 = xmm13[0],xmm12[0],xmm13[1],xmm12[1],xmm13[2],xmm12[2],xmm13[3],xmm12[3]3821; AVX512DQ-FCP-NEXT: vpermd %zmm0, %zmm14, %zmm133822; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} ymm13 = ymm13[u,u,u,u,u,u,u,u,2,3,4,5,10,11,12,13,18,19,18,19,18,19,18,19,18,19,20,21,26,27,28,29]3823; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm12 = ymm12[0,1],ymm13[2,3,4,5,6,7]3824; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} ymm1 = ymm12[0],ymm1[1,2,3,4,5,6,7],ymm12[8],ymm1[9,10,11,12,13,14,15]3825; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]3826; AVX512DQ-FCP-NEXT: vbroadcasti128 {{.*#+}} ymm12 = [0,4,7,0,0,4,7,0]3827; AVX512DQ-FCP-NEXT: # ymm12 = mem[0,1,0,1]3828; AVX512DQ-FCP-NEXT: vpermd %ymm5, %ymm12, %ymm53829; AVX512DQ-FCP-NEXT: vmovdqa {{.*#+}} ymm12 = [4,5,2,3,4,5,10,11,12,13,2,3,4,5,10,11,20,21,18,19,20,21,26,27,28,29,18,19,20,21,26,27]3830; AVX512DQ-FCP-NEXT: vpshufb %ymm12, %ymm5, %ymm53831; AVX512DQ-FCP-NEXT: vpshufb %ymm12, %ymm2, %ymm23832; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} ymm12 = [1,4,8,11,15,0,0,0]3833; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} ymm2 = ymm2[0,1,2,3,4],ymm5[5,6,7],ymm2[8,9,10,11,12],ymm5[13,14,15]3834; AVX512DQ-FCP-NEXT: vpermd %zmm0, %zmm12, %zmm03835; AVX512DQ-FCP-NEXT: vpshufb %ymm11, %ymm0, %ymm03836; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm4 = ymm6[0,1,2],ymm4[3],ymm6[4,5],ymm4[6],ymm6[7]3837; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm4, %xmm53838; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm5 = xmm5[u,u,u,u,u,u,u,u,10,11,6,7,4,5,6,7]3839; AVX512DQ-FCP-NEXT: vpshufhw {{.*#+}} xmm4 = xmm4[0,1,2,3,6,4,6,7]3840; AVX512DQ-FCP-NEXT: vpunpckhwd {{.*#+}} xmm4 = xmm4[4],xmm5[4],xmm4[5],xmm5[5],xmm4[6],xmm5[6],xmm4[7],xmm5[7]3841; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm4[0,1],ymm0[2,3,4,5,6,7]3842; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} ymm2 = ymm0[0],ymm2[1,2,3,4,5,6,7],ymm0[8],ymm2[9,10,11,12,13,14,15]3843; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm2[4,5,6,7]3844; AVX512DQ-FCP-NEXT: vmovdqa %ymm3, (%rsi)3845; AVX512DQ-FCP-NEXT: vmovdqa %ymm7, (%rdx)3846; AVX512DQ-FCP-NEXT: vmovdqa %ymm9, (%rcx)3847; AVX512DQ-FCP-NEXT: vmovdqa %ymm8, (%r8)3848; AVX512DQ-FCP-NEXT: vmovdqa %ymm10, (%r9)3849; AVX512DQ-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax3850; AVX512DQ-FCP-NEXT: vmovdqa %ymm1, (%rax)3851; AVX512DQ-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax3852; AVX512DQ-FCP-NEXT: vmovdqa %ymm0, (%rax)3853; AVX512DQ-FCP-NEXT: vzeroupper3854; AVX512DQ-FCP-NEXT: retq3855;3856; AVX512BW-LABEL: load_i16_stride7_vf16:3857; AVX512BW: # %bb.0:3858; AVX512BW-NEXT: movq {{[0-9]+}}(%rsp), %rax3859; AVX512BW-NEXT: movq {{[0-9]+}}(%rsp), %r103860; AVX512BW-NEXT: vmovdqa64 (%rdi), %zmm03861; AVX512BW-NEXT: vmovdqa64 64(%rdi), %zmm13862; AVX512BW-NEXT: vmovdqa64 128(%rdi), %zmm23863; AVX512BW-NEXT: vmovdqa64 192(%rdi), %zmm33864; AVX512BW-NEXT: vbroadcasti128 {{.*#+}} ymm4 = [0,0,6,13,20,27,34,41,0,0,6,13,20,27,34,41]3865; AVX512BW-NEXT: # ymm4 = mem[0,1,0,1]3866; AVX512BW-NEXT: vpermi2w %zmm3, %zmm2, %zmm43867; AVX512BW-NEXT: vpmovsxbw {{.*#+}} ymm5 = [0,7,14,21,28,35,42,49,56,63,0,0,0,0,0,0]3868; AVX512BW-NEXT: vpermi2w %zmm1, %zmm0, %zmm53869; AVX512BW-NEXT: vpblendd {{.*#+}} ymm4 = ymm5[0,1,2,3,4],ymm4[5,6,7]3870; AVX512BW-NEXT: vbroadcasti128 {{.*#+}} ymm5 = [0,0,7,14,21,28,35,42,0,0,7,14,21,28,35,42]3871; AVX512BW-NEXT: # ymm5 = mem[0,1,0,1]3872; AVX512BW-NEXT: vpermi2w %zmm3, %zmm2, %zmm53873; AVX512BW-NEXT: vpmovsxbw {{.*#+}} ymm6 = [1,8,15,22,29,36,43,50,57,0,0,0,0,0,0,0]3874; AVX512BW-NEXT: vpermi2w %zmm1, %zmm0, %zmm63875; AVX512BW-NEXT: vpblendw {{.*#+}} ymm5 = ymm6[0],ymm5[1,2,3,4,5,6,7],ymm6[8],ymm5[9,10,11,12,13,14,15]3876; AVX512BW-NEXT: vpblendd {{.*#+}} ymm5 = ymm6[0,1,2,3],ymm5[4,5,6,7]3877; AVX512BW-NEXT: vbroadcasti128 {{.*#+}} ymm6 = [0,1,8,15,22,29,36,43,0,1,8,15,22,29,36,43]3878; AVX512BW-NEXT: # ymm6 = mem[0,1,0,1]3879; AVX512BW-NEXT: vpermi2w %zmm3, %zmm2, %zmm63880; AVX512BW-NEXT: vpmovsxbw {{.*#+}} ymm7 = [2,9,16,23,30,37,44,51,58,0,0,0,0,0,0,0]3881; AVX512BW-NEXT: vpermi2w %zmm1, %zmm0, %zmm73882; AVX512BW-NEXT: vpblendw {{.*#+}} ymm6 = ymm7[0],ymm6[1,2,3,4,5,6,7],ymm7[8],ymm6[9,10,11,12,13,14,15]3883; AVX512BW-NEXT: vpblendd {{.*#+}} ymm6 = ymm7[0,1,2,3],ymm6[4,5,6,7]3884; AVX512BW-NEXT: vbroadcasti128 {{.*#+}} ymm7 = [0,2,9,16,23,30,37,44,0,2,9,16,23,30,37,44]3885; AVX512BW-NEXT: # ymm7 = mem[0,1,0,1]3886; AVX512BW-NEXT: vpermi2w %zmm3, %zmm2, %zmm73887; AVX512BW-NEXT: vpmovsxbw {{.*#+}} ymm8 = [3,10,17,24,31,38,45,52,59,0,0,0,0,0,0,0]3888; AVX512BW-NEXT: vpermi2w %zmm1, %zmm0, %zmm83889; AVX512BW-NEXT: vpblendw {{.*#+}} ymm7 = ymm8[0],ymm7[1,2,3,4,5,6,7],ymm8[8],ymm7[9,10,11,12,13,14,15]3890; AVX512BW-NEXT: vpblendd {{.*#+}} ymm7 = ymm8[0,1,2,3],ymm7[4,5,6,7]3891; AVX512BW-NEXT: vbroadcasti128 {{.*#+}} ymm8 = [0,3,10,17,24,31,38,45,0,3,10,17,24,31,38,45]3892; AVX512BW-NEXT: # ymm8 = mem[0,1,0,1]3893; AVX512BW-NEXT: vpermi2w %zmm3, %zmm2, %zmm83894; AVX512BW-NEXT: vpmovsxbw {{.*#+}} ymm9 = [36,43,50,57,0,7,14,21,28,0,0,0,0,0,0,0]3895; AVX512BW-NEXT: vpermi2w %zmm0, %zmm1, %zmm93896; AVX512BW-NEXT: vpblendw {{.*#+}} ymm8 = ymm9[0],ymm8[1,2,3,4,5,6,7],ymm9[8],ymm8[9,10,11,12,13,14,15]3897; AVX512BW-NEXT: vpblendd {{.*#+}} ymm8 = ymm9[0,1,2,3],ymm8[4,5,6,7]3898; AVX512BW-NEXT: vbroadcasti128 {{.*#+}} ymm9 = [0,4,11,18,25,32,39,46,0,4,11,18,25,32,39,46]3899; AVX512BW-NEXT: # ymm9 = mem[0,1,0,1]3900; AVX512BW-NEXT: vpermi2w %zmm3, %zmm2, %zmm93901; AVX512BW-NEXT: vpmovsxbw {{.*#+}} ymm10 = [37,44,51,58,1,8,15,22,29,0,0,0,0,0,0,0]3902; AVX512BW-NEXT: vpermi2w %zmm0, %zmm1, %zmm103903; AVX512BW-NEXT: vpblendw {{.*#+}} ymm9 = ymm10[0],ymm9[1,2,3,4,5,6,7],ymm10[8],ymm9[9,10,11,12,13,14,15]3904; AVX512BW-NEXT: vpblendd {{.*#+}} ymm9 = ymm10[0,1,2,3],ymm9[4,5,6,7]3905; AVX512BW-NEXT: vbroadcasti128 {{.*#+}} ymm10 = [0,5,12,19,26,33,40,47,0,5,12,19,26,33,40,47]3906; AVX512BW-NEXT: # ymm10 = mem[0,1,0,1]3907; AVX512BW-NEXT: vpermi2w %zmm3, %zmm2, %zmm103908; AVX512BW-NEXT: vpmovsxbw {{.*#+}} ymm2 = [38,45,52,59,2,9,16,23,30,0,0,0,0,0,0,0]3909; AVX512BW-NEXT: vpermi2w %zmm0, %zmm1, %zmm23910; AVX512BW-NEXT: vpblendw {{.*#+}} ymm0 = ymm2[0],ymm10[1,2,3,4,5,6,7],ymm2[8],ymm10[9,10,11,12,13,14,15]3911; AVX512BW-NEXT: vpblendd {{.*#+}} ymm0 = ymm2[0,1,2,3],ymm0[4,5,6,7]3912; AVX512BW-NEXT: vmovdqa %ymm4, (%rsi)3913; AVX512BW-NEXT: vmovdqa %ymm5, (%rdx)3914; AVX512BW-NEXT: vmovdqa %ymm6, (%rcx)3915; AVX512BW-NEXT: vmovdqa %ymm7, (%r8)3916; AVX512BW-NEXT: vmovdqa %ymm8, (%r9)3917; AVX512BW-NEXT: vmovdqa %ymm9, (%r10)3918; AVX512BW-NEXT: vmovdqa %ymm0, (%rax)3919; AVX512BW-NEXT: vzeroupper3920; AVX512BW-NEXT: retq3921;3922; AVX512BW-FCP-LABEL: load_i16_stride7_vf16:3923; AVX512BW-FCP: # %bb.0:3924; AVX512BW-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax3925; AVX512BW-FCP-NEXT: movq {{[0-9]+}}(%rsp), %r103926; AVX512BW-FCP-NEXT: vmovdqa64 (%rdi), %zmm03927; AVX512BW-FCP-NEXT: vmovdqa64 64(%rdi), %zmm13928; AVX512BW-FCP-NEXT: vmovdqa64 128(%rdi), %zmm23929; AVX512BW-FCP-NEXT: vmovdqa64 192(%rdi), %zmm33930; AVX512BW-FCP-NEXT: vbroadcasti128 {{.*#+}} ymm4 = [0,0,6,13,20,27,34,41,0,0,6,13,20,27,34,41]3931; AVX512BW-FCP-NEXT: # ymm4 = mem[0,1,0,1]3932; AVX512BW-FCP-NEXT: vpermi2w %zmm3, %zmm2, %zmm43933; AVX512BW-FCP-NEXT: vpmovsxbw {{.*#+}} ymm5 = [0,7,14,21,28,35,42,49,56,63,0,0,0,0,0,0]3934; AVX512BW-FCP-NEXT: vpermi2w %zmm1, %zmm0, %zmm53935; AVX512BW-FCP-NEXT: vpblendd {{.*#+}} ymm4 = ymm5[0,1,2,3,4],ymm4[5,6,7]3936; AVX512BW-FCP-NEXT: vbroadcasti128 {{.*#+}} ymm5 = [0,0,7,14,21,28,35,42,0,0,7,14,21,28,35,42]3937; AVX512BW-FCP-NEXT: # ymm5 = mem[0,1,0,1]3938; AVX512BW-FCP-NEXT: vpermi2w %zmm3, %zmm2, %zmm53939; AVX512BW-FCP-NEXT: vpmovsxbw {{.*#+}} ymm6 = [1,8,15,22,29,36,43,50,57,0,0,0,0,0,0,0]3940; AVX512BW-FCP-NEXT: vpermi2w %zmm1, %zmm0, %zmm63941; AVX512BW-FCP-NEXT: vpblendw {{.*#+}} ymm5 = ymm6[0],ymm5[1,2,3,4,5,6,7],ymm6[8],ymm5[9,10,11,12,13,14,15]3942; AVX512BW-FCP-NEXT: vpblendd {{.*#+}} ymm5 = ymm6[0,1,2,3],ymm5[4,5,6,7]3943; AVX512BW-FCP-NEXT: vbroadcasti128 {{.*#+}} ymm6 = [0,1,8,15,22,29,36,43,0,1,8,15,22,29,36,43]3944; AVX512BW-FCP-NEXT: # ymm6 = mem[0,1,0,1]3945; AVX512BW-FCP-NEXT: vpermi2w %zmm3, %zmm2, %zmm63946; AVX512BW-FCP-NEXT: vpmovsxbw {{.*#+}} ymm7 = [2,9,16,23,30,37,44,51,58,0,0,0,0,0,0,0]3947; AVX512BW-FCP-NEXT: vpermi2w %zmm1, %zmm0, %zmm73948; AVX512BW-FCP-NEXT: vpblendw {{.*#+}} ymm6 = ymm7[0],ymm6[1,2,3,4,5,6,7],ymm7[8],ymm6[9,10,11,12,13,14,15]3949; AVX512BW-FCP-NEXT: vpblendd {{.*#+}} ymm6 = ymm7[0,1,2,3],ymm6[4,5,6,7]3950; AVX512BW-FCP-NEXT: vbroadcasti128 {{.*#+}} ymm7 = [0,2,9,16,23,30,37,44,0,2,9,16,23,30,37,44]3951; AVX512BW-FCP-NEXT: # ymm7 = mem[0,1,0,1]3952; AVX512BW-FCP-NEXT: vpermi2w %zmm3, %zmm2, %zmm73953; AVX512BW-FCP-NEXT: vpmovsxbw {{.*#+}} ymm8 = [3,10,17,24,31,38,45,52,59,0,0,0,0,0,0,0]3954; AVX512BW-FCP-NEXT: vpermi2w %zmm1, %zmm0, %zmm83955; AVX512BW-FCP-NEXT: vpblendw {{.*#+}} ymm7 = ymm8[0],ymm7[1,2,3,4,5,6,7],ymm8[8],ymm7[9,10,11,12,13,14,15]3956; AVX512BW-FCP-NEXT: vpblendd {{.*#+}} ymm7 = ymm8[0,1,2,3],ymm7[4,5,6,7]3957; AVX512BW-FCP-NEXT: vbroadcasti128 {{.*#+}} ymm8 = [0,3,10,17,24,31,38,45,0,3,10,17,24,31,38,45]3958; AVX512BW-FCP-NEXT: # ymm8 = mem[0,1,0,1]3959; AVX512BW-FCP-NEXT: vpermi2w %zmm3, %zmm2, %zmm83960; AVX512BW-FCP-NEXT: vpmovsxbw {{.*#+}} ymm9 = [36,43,50,57,0,7,14,21,28,0,0,0,0,0,0,0]3961; AVX512BW-FCP-NEXT: vpermi2w %zmm0, %zmm1, %zmm93962; AVX512BW-FCP-NEXT: vpblendw {{.*#+}} ymm8 = ymm9[0],ymm8[1,2,3,4,5,6,7],ymm9[8],ymm8[9,10,11,12,13,14,15]3963; AVX512BW-FCP-NEXT: vpblendd {{.*#+}} ymm8 = ymm9[0,1,2,3],ymm8[4,5,6,7]3964; AVX512BW-FCP-NEXT: vbroadcasti128 {{.*#+}} ymm9 = [0,4,11,18,25,32,39,46,0,4,11,18,25,32,39,46]3965; AVX512BW-FCP-NEXT: # ymm9 = mem[0,1,0,1]3966; AVX512BW-FCP-NEXT: vpermi2w %zmm3, %zmm2, %zmm93967; AVX512BW-FCP-NEXT: vpmovsxbw {{.*#+}} ymm10 = [37,44,51,58,1,8,15,22,29,0,0,0,0,0,0,0]3968; AVX512BW-FCP-NEXT: vpermi2w %zmm0, %zmm1, %zmm103969; AVX512BW-FCP-NEXT: vpblendw {{.*#+}} ymm9 = ymm10[0],ymm9[1,2,3,4,5,6,7],ymm10[8],ymm9[9,10,11,12,13,14,15]3970; AVX512BW-FCP-NEXT: vpblendd {{.*#+}} ymm9 = ymm10[0,1,2,3],ymm9[4,5,6,7]3971; AVX512BW-FCP-NEXT: vbroadcasti128 {{.*#+}} ymm10 = [0,5,12,19,26,33,40,47,0,5,12,19,26,33,40,47]3972; AVX512BW-FCP-NEXT: # ymm10 = mem[0,1,0,1]3973; AVX512BW-FCP-NEXT: vpermi2w %zmm3, %zmm2, %zmm103974; AVX512BW-FCP-NEXT: vpmovsxbw {{.*#+}} ymm2 = [38,45,52,59,2,9,16,23,30,0,0,0,0,0,0,0]3975; AVX512BW-FCP-NEXT: vpermi2w %zmm0, %zmm1, %zmm23976; AVX512BW-FCP-NEXT: vpblendw {{.*#+}} ymm0 = ymm2[0],ymm10[1,2,3,4,5,6,7],ymm2[8],ymm10[9,10,11,12,13,14,15]3977; AVX512BW-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm2[0,1,2,3],ymm0[4,5,6,7]3978; AVX512BW-FCP-NEXT: vmovdqa %ymm4, (%rsi)3979; AVX512BW-FCP-NEXT: vmovdqa %ymm5, (%rdx)3980; AVX512BW-FCP-NEXT: vmovdqa %ymm6, (%rcx)3981; AVX512BW-FCP-NEXT: vmovdqa %ymm7, (%r8)3982; AVX512BW-FCP-NEXT: vmovdqa %ymm8, (%r9)3983; AVX512BW-FCP-NEXT: vmovdqa %ymm9, (%r10)3984; AVX512BW-FCP-NEXT: vmovdqa %ymm0, (%rax)3985; AVX512BW-FCP-NEXT: vzeroupper3986; AVX512BW-FCP-NEXT: retq3987;3988; AVX512DQ-BW-LABEL: load_i16_stride7_vf16:3989; AVX512DQ-BW: # %bb.0:3990; AVX512DQ-BW-NEXT: movq {{[0-9]+}}(%rsp), %rax3991; AVX512DQ-BW-NEXT: movq {{[0-9]+}}(%rsp), %r103992; AVX512DQ-BW-NEXT: vmovdqa64 (%rdi), %zmm03993; AVX512DQ-BW-NEXT: vmovdqa64 64(%rdi), %zmm13994; AVX512DQ-BW-NEXT: vmovdqa64 128(%rdi), %zmm23995; AVX512DQ-BW-NEXT: vmovdqa64 192(%rdi), %zmm33996; AVX512DQ-BW-NEXT: vbroadcasti128 {{.*#+}} ymm4 = [0,0,6,13,20,27,34,41,0,0,6,13,20,27,34,41]3997; AVX512DQ-BW-NEXT: # ymm4 = mem[0,1,0,1]3998; AVX512DQ-BW-NEXT: vpermi2w %zmm3, %zmm2, %zmm43999; AVX512DQ-BW-NEXT: vpmovsxbw {{.*#+}} ymm5 = [0,7,14,21,28,35,42,49,56,63,0,0,0,0,0,0]4000; AVX512DQ-BW-NEXT: vpermi2w %zmm1, %zmm0, %zmm54001; AVX512DQ-BW-NEXT: vpblendd {{.*#+}} ymm4 = ymm5[0,1,2,3,4],ymm4[5,6,7]4002; AVX512DQ-BW-NEXT: vbroadcasti128 {{.*#+}} ymm5 = [0,0,7,14,21,28,35,42,0,0,7,14,21,28,35,42]4003; AVX512DQ-BW-NEXT: # ymm5 = mem[0,1,0,1]4004; AVX512DQ-BW-NEXT: vpermi2w %zmm3, %zmm2, %zmm54005; AVX512DQ-BW-NEXT: vpmovsxbw {{.*#+}} ymm6 = [1,8,15,22,29,36,43,50,57,0,0,0,0,0,0,0]4006; AVX512DQ-BW-NEXT: vpermi2w %zmm1, %zmm0, %zmm64007; AVX512DQ-BW-NEXT: vpblendw {{.*#+}} ymm5 = ymm6[0],ymm5[1,2,3,4,5,6,7],ymm6[8],ymm5[9,10,11,12,13,14,15]4008; AVX512DQ-BW-NEXT: vpblendd {{.*#+}} ymm5 = ymm6[0,1,2,3],ymm5[4,5,6,7]4009; AVX512DQ-BW-NEXT: vbroadcasti128 {{.*#+}} ymm6 = [0,1,8,15,22,29,36,43,0,1,8,15,22,29,36,43]4010; AVX512DQ-BW-NEXT: # ymm6 = mem[0,1,0,1]4011; AVX512DQ-BW-NEXT: vpermi2w %zmm3, %zmm2, %zmm64012; AVX512DQ-BW-NEXT: vpmovsxbw {{.*#+}} ymm7 = [2,9,16,23,30,37,44,51,58,0,0,0,0,0,0,0]4013; AVX512DQ-BW-NEXT: vpermi2w %zmm1, %zmm0, %zmm74014; AVX512DQ-BW-NEXT: vpblendw {{.*#+}} ymm6 = ymm7[0],ymm6[1,2,3,4,5,6,7],ymm7[8],ymm6[9,10,11,12,13,14,15]4015; AVX512DQ-BW-NEXT: vpblendd {{.*#+}} ymm6 = ymm7[0,1,2,3],ymm6[4,5,6,7]4016; AVX512DQ-BW-NEXT: vbroadcasti128 {{.*#+}} ymm7 = [0,2,9,16,23,30,37,44,0,2,9,16,23,30,37,44]4017; AVX512DQ-BW-NEXT: # ymm7 = mem[0,1,0,1]4018; AVX512DQ-BW-NEXT: vpermi2w %zmm3, %zmm2, %zmm74019; AVX512DQ-BW-NEXT: vpmovsxbw {{.*#+}} ymm8 = [3,10,17,24,31,38,45,52,59,0,0,0,0,0,0,0]4020; AVX512DQ-BW-NEXT: vpermi2w %zmm1, %zmm0, %zmm84021; AVX512DQ-BW-NEXT: vpblendw {{.*#+}} ymm7 = ymm8[0],ymm7[1,2,3,4,5,6,7],ymm8[8],ymm7[9,10,11,12,13,14,15]4022; AVX512DQ-BW-NEXT: vpblendd {{.*#+}} ymm7 = ymm8[0,1,2,3],ymm7[4,5,6,7]4023; AVX512DQ-BW-NEXT: vbroadcasti128 {{.*#+}} ymm8 = [0,3,10,17,24,31,38,45,0,3,10,17,24,31,38,45]4024; AVX512DQ-BW-NEXT: # ymm8 = mem[0,1,0,1]4025; AVX512DQ-BW-NEXT: vpermi2w %zmm3, %zmm2, %zmm84026; AVX512DQ-BW-NEXT: vpmovsxbw {{.*#+}} ymm9 = [36,43,50,57,0,7,14,21,28,0,0,0,0,0,0,0]4027; AVX512DQ-BW-NEXT: vpermi2w %zmm0, %zmm1, %zmm94028; AVX512DQ-BW-NEXT: vpblendw {{.*#+}} ymm8 = ymm9[0],ymm8[1,2,3,4,5,6,7],ymm9[8],ymm8[9,10,11,12,13,14,15]4029; AVX512DQ-BW-NEXT: vpblendd {{.*#+}} ymm8 = ymm9[0,1,2,3],ymm8[4,5,6,7]4030; AVX512DQ-BW-NEXT: vbroadcasti128 {{.*#+}} ymm9 = [0,4,11,18,25,32,39,46,0,4,11,18,25,32,39,46]4031; AVX512DQ-BW-NEXT: # ymm9 = mem[0,1,0,1]4032; AVX512DQ-BW-NEXT: vpermi2w %zmm3, %zmm2, %zmm94033; AVX512DQ-BW-NEXT: vpmovsxbw {{.*#+}} ymm10 = [37,44,51,58,1,8,15,22,29,0,0,0,0,0,0,0]4034; AVX512DQ-BW-NEXT: vpermi2w %zmm0, %zmm1, %zmm104035; AVX512DQ-BW-NEXT: vpblendw {{.*#+}} ymm9 = ymm10[0],ymm9[1,2,3,4,5,6,7],ymm10[8],ymm9[9,10,11,12,13,14,15]4036; AVX512DQ-BW-NEXT: vpblendd {{.*#+}} ymm9 = ymm10[0,1,2,3],ymm9[4,5,6,7]4037; AVX512DQ-BW-NEXT: vbroadcasti128 {{.*#+}} ymm10 = [0,5,12,19,26,33,40,47,0,5,12,19,26,33,40,47]4038; AVX512DQ-BW-NEXT: # ymm10 = mem[0,1,0,1]4039; AVX512DQ-BW-NEXT: vpermi2w %zmm3, %zmm2, %zmm104040; AVX512DQ-BW-NEXT: vpmovsxbw {{.*#+}} ymm2 = [38,45,52,59,2,9,16,23,30,0,0,0,0,0,0,0]4041; AVX512DQ-BW-NEXT: vpermi2w %zmm0, %zmm1, %zmm24042; AVX512DQ-BW-NEXT: vpblendw {{.*#+}} ymm0 = ymm2[0],ymm10[1,2,3,4,5,6,7],ymm2[8],ymm10[9,10,11,12,13,14,15]4043; AVX512DQ-BW-NEXT: vpblendd {{.*#+}} ymm0 = ymm2[0,1,2,3],ymm0[4,5,6,7]4044; AVX512DQ-BW-NEXT: vmovdqa %ymm4, (%rsi)4045; AVX512DQ-BW-NEXT: vmovdqa %ymm5, (%rdx)4046; AVX512DQ-BW-NEXT: vmovdqa %ymm6, (%rcx)4047; AVX512DQ-BW-NEXT: vmovdqa %ymm7, (%r8)4048; AVX512DQ-BW-NEXT: vmovdqa %ymm8, (%r9)4049; AVX512DQ-BW-NEXT: vmovdqa %ymm9, (%r10)4050; AVX512DQ-BW-NEXT: vmovdqa %ymm0, (%rax)4051; AVX512DQ-BW-NEXT: vzeroupper4052; AVX512DQ-BW-NEXT: retq4053;4054; AVX512DQ-BW-FCP-LABEL: load_i16_stride7_vf16:4055; AVX512DQ-BW-FCP: # %bb.0:4056; AVX512DQ-BW-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax4057; AVX512DQ-BW-FCP-NEXT: movq {{[0-9]+}}(%rsp), %r104058; AVX512DQ-BW-FCP-NEXT: vmovdqa64 (%rdi), %zmm04059; AVX512DQ-BW-FCP-NEXT: vmovdqa64 64(%rdi), %zmm14060; AVX512DQ-BW-FCP-NEXT: vmovdqa64 128(%rdi), %zmm24061; AVX512DQ-BW-FCP-NEXT: vmovdqa64 192(%rdi), %zmm34062; AVX512DQ-BW-FCP-NEXT: vbroadcasti128 {{.*#+}} ymm4 = [0,0,6,13,20,27,34,41,0,0,6,13,20,27,34,41]4063; AVX512DQ-BW-FCP-NEXT: # ymm4 = mem[0,1,0,1]4064; AVX512DQ-BW-FCP-NEXT: vpermi2w %zmm3, %zmm2, %zmm44065; AVX512DQ-BW-FCP-NEXT: vpmovsxbw {{.*#+}} ymm5 = [0,7,14,21,28,35,42,49,56,63,0,0,0,0,0,0]4066; AVX512DQ-BW-FCP-NEXT: vpermi2w %zmm1, %zmm0, %zmm54067; AVX512DQ-BW-FCP-NEXT: vpblendd {{.*#+}} ymm4 = ymm5[0,1,2,3,4],ymm4[5,6,7]4068; AVX512DQ-BW-FCP-NEXT: vbroadcasti128 {{.*#+}} ymm5 = [0,0,7,14,21,28,35,42,0,0,7,14,21,28,35,42]4069; AVX512DQ-BW-FCP-NEXT: # ymm5 = mem[0,1,0,1]4070; AVX512DQ-BW-FCP-NEXT: vpermi2w %zmm3, %zmm2, %zmm54071; AVX512DQ-BW-FCP-NEXT: vpmovsxbw {{.*#+}} ymm6 = [1,8,15,22,29,36,43,50,57,0,0,0,0,0,0,0]4072; AVX512DQ-BW-FCP-NEXT: vpermi2w %zmm1, %zmm0, %zmm64073; AVX512DQ-BW-FCP-NEXT: vpblendw {{.*#+}} ymm5 = ymm6[0],ymm5[1,2,3,4,5,6,7],ymm6[8],ymm5[9,10,11,12,13,14,15]4074; AVX512DQ-BW-FCP-NEXT: vpblendd {{.*#+}} ymm5 = ymm6[0,1,2,3],ymm5[4,5,6,7]4075; AVX512DQ-BW-FCP-NEXT: vbroadcasti128 {{.*#+}} ymm6 = [0,1,8,15,22,29,36,43,0,1,8,15,22,29,36,43]4076; AVX512DQ-BW-FCP-NEXT: # ymm6 = mem[0,1,0,1]4077; AVX512DQ-BW-FCP-NEXT: vpermi2w %zmm3, %zmm2, %zmm64078; AVX512DQ-BW-FCP-NEXT: vpmovsxbw {{.*#+}} ymm7 = [2,9,16,23,30,37,44,51,58,0,0,0,0,0,0,0]4079; AVX512DQ-BW-FCP-NEXT: vpermi2w %zmm1, %zmm0, %zmm74080; AVX512DQ-BW-FCP-NEXT: vpblendw {{.*#+}} ymm6 = ymm7[0],ymm6[1,2,3,4,5,6,7],ymm7[8],ymm6[9,10,11,12,13,14,15]4081; AVX512DQ-BW-FCP-NEXT: vpblendd {{.*#+}} ymm6 = ymm7[0,1,2,3],ymm6[4,5,6,7]4082; AVX512DQ-BW-FCP-NEXT: vbroadcasti128 {{.*#+}} ymm7 = [0,2,9,16,23,30,37,44,0,2,9,16,23,30,37,44]4083; AVX512DQ-BW-FCP-NEXT: # ymm7 = mem[0,1,0,1]4084; AVX512DQ-BW-FCP-NEXT: vpermi2w %zmm3, %zmm2, %zmm74085; AVX512DQ-BW-FCP-NEXT: vpmovsxbw {{.*#+}} ymm8 = [3,10,17,24,31,38,45,52,59,0,0,0,0,0,0,0]4086; AVX512DQ-BW-FCP-NEXT: vpermi2w %zmm1, %zmm0, %zmm84087; AVX512DQ-BW-FCP-NEXT: vpblendw {{.*#+}} ymm7 = ymm8[0],ymm7[1,2,3,4,5,6,7],ymm8[8],ymm7[9,10,11,12,13,14,15]4088; AVX512DQ-BW-FCP-NEXT: vpblendd {{.*#+}} ymm7 = ymm8[0,1,2,3],ymm7[4,5,6,7]4089; AVX512DQ-BW-FCP-NEXT: vbroadcasti128 {{.*#+}} ymm8 = [0,3,10,17,24,31,38,45,0,3,10,17,24,31,38,45]4090; AVX512DQ-BW-FCP-NEXT: # ymm8 = mem[0,1,0,1]4091; AVX512DQ-BW-FCP-NEXT: vpermi2w %zmm3, %zmm2, %zmm84092; AVX512DQ-BW-FCP-NEXT: vpmovsxbw {{.*#+}} ymm9 = [36,43,50,57,0,7,14,21,28,0,0,0,0,0,0,0]4093; AVX512DQ-BW-FCP-NEXT: vpermi2w %zmm0, %zmm1, %zmm94094; AVX512DQ-BW-FCP-NEXT: vpblendw {{.*#+}} ymm8 = ymm9[0],ymm8[1,2,3,4,5,6,7],ymm9[8],ymm8[9,10,11,12,13,14,15]4095; AVX512DQ-BW-FCP-NEXT: vpblendd {{.*#+}} ymm8 = ymm9[0,1,2,3],ymm8[4,5,6,7]4096; AVX512DQ-BW-FCP-NEXT: vbroadcasti128 {{.*#+}} ymm9 = [0,4,11,18,25,32,39,46,0,4,11,18,25,32,39,46]4097; AVX512DQ-BW-FCP-NEXT: # ymm9 = mem[0,1,0,1]4098; AVX512DQ-BW-FCP-NEXT: vpermi2w %zmm3, %zmm2, %zmm94099; AVX512DQ-BW-FCP-NEXT: vpmovsxbw {{.*#+}} ymm10 = [37,44,51,58,1,8,15,22,29,0,0,0,0,0,0,0]4100; AVX512DQ-BW-FCP-NEXT: vpermi2w %zmm0, %zmm1, %zmm104101; AVX512DQ-BW-FCP-NEXT: vpblendw {{.*#+}} ymm9 = ymm10[0],ymm9[1,2,3,4,5,6,7],ymm10[8],ymm9[9,10,11,12,13,14,15]4102; AVX512DQ-BW-FCP-NEXT: vpblendd {{.*#+}} ymm9 = ymm10[0,1,2,3],ymm9[4,5,6,7]4103; AVX512DQ-BW-FCP-NEXT: vbroadcasti128 {{.*#+}} ymm10 = [0,5,12,19,26,33,40,47,0,5,12,19,26,33,40,47]4104; AVX512DQ-BW-FCP-NEXT: # ymm10 = mem[0,1,0,1]4105; AVX512DQ-BW-FCP-NEXT: vpermi2w %zmm3, %zmm2, %zmm104106; AVX512DQ-BW-FCP-NEXT: vpmovsxbw {{.*#+}} ymm2 = [38,45,52,59,2,9,16,23,30,0,0,0,0,0,0,0]4107; AVX512DQ-BW-FCP-NEXT: vpermi2w %zmm0, %zmm1, %zmm24108; AVX512DQ-BW-FCP-NEXT: vpblendw {{.*#+}} ymm0 = ymm2[0],ymm10[1,2,3,4,5,6,7],ymm2[8],ymm10[9,10,11,12,13,14,15]4109; AVX512DQ-BW-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm2[0,1,2,3],ymm0[4,5,6,7]4110; AVX512DQ-BW-FCP-NEXT: vmovdqa %ymm4, (%rsi)4111; AVX512DQ-BW-FCP-NEXT: vmovdqa %ymm5, (%rdx)4112; AVX512DQ-BW-FCP-NEXT: vmovdqa %ymm6, (%rcx)4113; AVX512DQ-BW-FCP-NEXT: vmovdqa %ymm7, (%r8)4114; AVX512DQ-BW-FCP-NEXT: vmovdqa %ymm8, (%r9)4115; AVX512DQ-BW-FCP-NEXT: vmovdqa %ymm9, (%r10)4116; AVX512DQ-BW-FCP-NEXT: vmovdqa %ymm0, (%rax)4117; AVX512DQ-BW-FCP-NEXT: vzeroupper4118; AVX512DQ-BW-FCP-NEXT: retq4119 %wide.vec = load <112 x i16>, ptr %in.vec, align 644120 %strided.vec0 = shufflevector <112 x i16> %wide.vec, <112 x i16> poison, <16 x i32> <i32 0, i32 7, i32 14, i32 21, i32 28, i32 35, i32 42, i32 49, i32 56, i32 63, i32 70, i32 77, i32 84, i32 91, i32 98, i32 105>4121 %strided.vec1 = shufflevector <112 x i16> %wide.vec, <112 x i16> poison, <16 x i32> <i32 1, i32 8, i32 15, i32 22, i32 29, i32 36, i32 43, i32 50, i32 57, i32 64, i32 71, i32 78, i32 85, i32 92, i32 99, i32 106>4122 %strided.vec2 = shufflevector <112 x i16> %wide.vec, <112 x i16> poison, <16 x i32> <i32 2, i32 9, i32 16, i32 23, i32 30, i32 37, i32 44, i32 51, i32 58, i32 65, i32 72, i32 79, i32 86, i32 93, i32 100, i32 107>4123 %strided.vec3 = shufflevector <112 x i16> %wide.vec, <112 x i16> poison, <16 x i32> <i32 3, i32 10, i32 17, i32 24, i32 31, i32 38, i32 45, i32 52, i32 59, i32 66, i32 73, i32 80, i32 87, i32 94, i32 101, i32 108>4124 %strided.vec4 = shufflevector <112 x i16> %wide.vec, <112 x i16> poison, <16 x i32> <i32 4, i32 11, i32 18, i32 25, i32 32, i32 39, i32 46, i32 53, i32 60, i32 67, i32 74, i32 81, i32 88, i32 95, i32 102, i32 109>4125 %strided.vec5 = shufflevector <112 x i16> %wide.vec, <112 x i16> poison, <16 x i32> <i32 5, i32 12, i32 19, i32 26, i32 33, i32 40, i32 47, i32 54, i32 61, i32 68, i32 75, i32 82, i32 89, i32 96, i32 103, i32 110>4126 %strided.vec6 = shufflevector <112 x i16> %wide.vec, <112 x i16> poison, <16 x i32> <i32 6, i32 13, i32 20, i32 27, i32 34, i32 41, i32 48, i32 55, i32 62, i32 69, i32 76, i32 83, i32 90, i32 97, i32 104, i32 111>4127 store <16 x i16> %strided.vec0, ptr %out.vec0, align 644128 store <16 x i16> %strided.vec1, ptr %out.vec1, align 644129 store <16 x i16> %strided.vec2, ptr %out.vec2, align 644130 store <16 x i16> %strided.vec3, ptr %out.vec3, align 644131 store <16 x i16> %strided.vec4, ptr %out.vec4, align 644132 store <16 x i16> %strided.vec5, ptr %out.vec5, align 644133 store <16 x i16> %strided.vec6, ptr %out.vec6, align 644134 ret void4135}4136 4137define void @load_i16_stride7_vf32(ptr %in.vec, ptr %out.vec0, ptr %out.vec1, ptr %out.vec2, ptr %out.vec3, ptr %out.vec4, ptr %out.vec5, ptr %out.vec6) nounwind {4138; SSE-LABEL: load_i16_stride7_vf32:4139; SSE: # %bb.0:4140; SSE-NEXT: subq $600, %rsp # imm = 0x2584141; SSE-NEXT: movdqa 304(%rdi), %xmm54142; SSE-NEXT: movdqa 288(%rdi), %xmm64143; SSE-NEXT: movdqa 112(%rdi), %xmm134144; SSE-NEXT: movdqa 128(%rdi), %xmm84145; SSE-NEXT: movdqa %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4146; SSE-NEXT: movaps 160(%rdi), %xmm74147; SSE-NEXT: movaps 144(%rdi), %xmm104148; SSE-NEXT: movaps %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4149; SSE-NEXT: movdqa 192(%rdi), %xmm94150; SSE-NEXT: movdqa 176(%rdi), %xmm124151; SSE-NEXT: movdqa 208(%rdi), %xmm114152; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm11[0,0,0,0]4153; SSE-NEXT: movdqa %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4154; SSE-NEXT: movdqa {{.*#+}} xmm2 = [65535,65535,65535,65535,65535,65535,65535,0]4155; SSE-NEXT: movdqa %xmm2, %xmm14156; SSE-NEXT: pandn %xmm0, %xmm14157; SSE-NEXT: movdqa %xmm12, %xmm04158; SSE-NEXT: movdqa %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4159; SSE-NEXT: punpckldq {{.*#+}} xmm0 = xmm0[0],xmm9[0],xmm0[1],xmm9[1]4160; SSE-NEXT: pand %xmm2, %xmm04161; SSE-NEXT: por %xmm1, %xmm04162; SSE-NEXT: movdqa {{.*#+}} xmm15 = [65535,65535,65535,65535,65535,0,0,0]4163; SSE-NEXT: movdqa %xmm15, %xmm14164; SSE-NEXT: pandn %xmm0, %xmm14165; SSE-NEXT: movaps %xmm10, %xmm04166; SSE-NEXT: shufps {{.*#+}} xmm0 = xmm0[2,2],xmm7[2,2]4167; SSE-NEXT: movaps %xmm7, %xmm104168; SSE-NEXT: movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4169; SSE-NEXT: movaps {{.*#+}} xmm14 = [65535,65535,65535,0,0,65535,65535,65535]4170; SSE-NEXT: movaps %xmm14, %xmm34171; SSE-NEXT: andnps %xmm0, %xmm34172; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm8[2,2,3,3]4173; SSE-NEXT: pshufd {{.*#+}} xmm4 = xmm13[0,1,0,3]4174; SSE-NEXT: movdqa %xmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4175; SSE-NEXT: pshufhw {{.*#+}} xmm4 = xmm4[0,1,2,3,4,7,6,7]4176; SSE-NEXT: punpckhdq {{.*#+}} xmm4 = xmm4[2],xmm0[2],xmm4[3],xmm0[3]4177; SSE-NEXT: movdqa 320(%rdi), %xmm04178; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4179; SSE-NEXT: pand %xmm14, %xmm44180; SSE-NEXT: por %xmm3, %xmm44181; SSE-NEXT: pand %xmm15, %xmm44182; SSE-NEXT: por %xmm1, %xmm44183; SSE-NEXT: movdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4184; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,0,0,0]4185; SSE-NEXT: movdqa %xmm2, %xmm14186; SSE-NEXT: pandn %xmm0, %xmm14187; SSE-NEXT: movdqa %xmm6, %xmm04188; SSE-NEXT: movdqa %xmm6, %xmm74189; SSE-NEXT: movdqa %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4190; SSE-NEXT: punpckldq {{.*#+}} xmm0 = xmm0[0],xmm5[0],xmm0[1],xmm5[1]4191; SSE-NEXT: movdqa %xmm5, %xmm64192; SSE-NEXT: movdqa %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4193; SSE-NEXT: pand %xmm2, %xmm04194; SSE-NEXT: por %xmm1, %xmm04195; SSE-NEXT: movdqa %xmm15, %xmm14196; SSE-NEXT: pandn %xmm0, %xmm14197; SSE-NEXT: movaps 272(%rdi), %xmm34198; SSE-NEXT: movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4199; SSE-NEXT: movaps 256(%rdi), %xmm04200; SSE-NEXT: movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4201; SSE-NEXT: shufps {{.*#+}} xmm0 = xmm0[2,2],xmm3[2,2]4202; SSE-NEXT: movaps %xmm14, %xmm34203; SSE-NEXT: andnps %xmm0, %xmm34204; SSE-NEXT: movdqa 224(%rdi), %xmm04205; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4206; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,1,0,3]4207; SSE-NEXT: pshufhw {{.*#+}} xmm4 = xmm0[0,1,2,3,4,7,6,7]4208; SSE-NEXT: movdqa 240(%rdi), %xmm04209; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4210; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[2,2,3,3]4211; SSE-NEXT: punpckhdq {{.*#+}} xmm4 = xmm4[2],xmm0[2],xmm4[3],xmm0[3]4212; SSE-NEXT: pand %xmm14, %xmm44213; SSE-NEXT: por %xmm3, %xmm44214; SSE-NEXT: pand %xmm15, %xmm44215; SSE-NEXT: por %xmm1, %xmm44216; SSE-NEXT: movdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4217; SSE-NEXT: movdqa 432(%rdi), %xmm04218; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4219; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,0,0,0]4220; SSE-NEXT: movdqa %xmm2, %xmm14221; SSE-NEXT: pandn %xmm0, %xmm14222; SSE-NEXT: movdqa 416(%rdi), %xmm34223; SSE-NEXT: movdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4224; SSE-NEXT: movdqa 400(%rdi), %xmm04225; SSE-NEXT: movdqa %xmm0, (%rsp) # 16-byte Spill4226; SSE-NEXT: punpckldq {{.*#+}} xmm0 = xmm0[0],xmm3[0],xmm0[1],xmm3[1]4227; SSE-NEXT: pand %xmm2, %xmm04228; SSE-NEXT: por %xmm1, %xmm04229; SSE-NEXT: movdqa %xmm15, %xmm14230; SSE-NEXT: pandn %xmm0, %xmm14231; SSE-NEXT: movaps 384(%rdi), %xmm34232; SSE-NEXT: movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4233; SSE-NEXT: movaps 368(%rdi), %xmm04234; SSE-NEXT: movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4235; SSE-NEXT: shufps {{.*#+}} xmm0 = xmm0[2,2],xmm3[2,2]4236; SSE-NEXT: movaps %xmm14, %xmm34237; SSE-NEXT: andnps %xmm0, %xmm34238; SSE-NEXT: movdqa 336(%rdi), %xmm04239; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4240; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,1,0,3]4241; SSE-NEXT: pshufhw {{.*#+}} xmm4 = xmm0[0,1,2,3,4,7,6,7]4242; SSE-NEXT: movdqa 352(%rdi), %xmm84243; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm8[2,2,3,3]4244; SSE-NEXT: movdqa %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4245; SSE-NEXT: punpckhdq {{.*#+}} xmm4 = xmm4[2],xmm0[2],xmm4[3],xmm0[3]4246; SSE-NEXT: pand %xmm14, %xmm44247; SSE-NEXT: por %xmm3, %xmm44248; SSE-NEXT: pand %xmm15, %xmm44249; SSE-NEXT: por %xmm1, %xmm44250; SSE-NEXT: movdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4251; SSE-NEXT: movdqa 96(%rdi), %xmm04252; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4253; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,0,0,0]4254; SSE-NEXT: movdqa %xmm2, %xmm14255; SSE-NEXT: pandn %xmm0, %xmm14256; SSE-NEXT: movdqa 80(%rdi), %xmm44257; SSE-NEXT: movdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4258; SSE-NEXT: movdqa 64(%rdi), %xmm04259; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4260; SSE-NEXT: punpckldq {{.*#+}} xmm0 = xmm0[0],xmm4[0],xmm0[1],xmm4[1]4261; SSE-NEXT: pand %xmm2, %xmm04262; SSE-NEXT: por %xmm1, %xmm04263; SSE-NEXT: movdqa %xmm15, %xmm14264; SSE-NEXT: pandn %xmm0, %xmm14265; SSE-NEXT: movaps 32(%rdi), %xmm04266; SSE-NEXT: movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4267; SSE-NEXT: movaps 48(%rdi), %xmm44268; SSE-NEXT: movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4269; SSE-NEXT: shufps {{.*#+}} xmm0 = xmm0[2,2],xmm4[2,2]4270; SSE-NEXT: movaps %xmm14, %xmm34271; SSE-NEXT: andnps %xmm0, %xmm34272; SSE-NEXT: movdqa (%rdi), %xmm04273; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4274; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,1,0,3]4275; SSE-NEXT: pshufhw {{.*#+}} xmm4 = xmm0[0,1,2,3,4,7,6,7]4276; SSE-NEXT: movdqa 16(%rdi), %xmm04277; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4278; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[2,2,3,3]4279; SSE-NEXT: punpckhdq {{.*#+}} xmm4 = xmm4[2],xmm0[2],xmm4[3],xmm0[3]4280; SSE-NEXT: pand %xmm14, %xmm44281; SSE-NEXT: por %xmm3, %xmm44282; SSE-NEXT: pand %xmm15, %xmm44283; SSE-NEXT: por %xmm1, %xmm44284; SSE-NEXT: movdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4285; SSE-NEXT: movdqa %xmm11, %xmm04286; SSE-NEXT: pslldq {{.*#+}} xmm0 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,xmm0[0,1,2,3,4,5]4287; SSE-NEXT: movdqa %xmm2, %xmm14288; SSE-NEXT: pandn %xmm0, %xmm14289; SSE-NEXT: movdqa %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4290; SSE-NEXT: movdqa %xmm9, %xmm04291; SSE-NEXT: psrld $16, %xmm04292; SSE-NEXT: psrldq {{.*#+}} xmm12 = xmm12[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero4293; SSE-NEXT: punpckldq {{.*#+}} xmm12 = xmm12[0],xmm0[0],xmm12[1],xmm0[1]4294; SSE-NEXT: pand %xmm2, %xmm124295; SSE-NEXT: por %xmm1, %xmm124296; SSE-NEXT: movdqa %xmm15, %xmm04297; SSE-NEXT: pandn %xmm12, %xmm04298; SSE-NEXT: movdqa {{.*#+}} xmm11 = [65535,0,65535,65535,65535,65535,65535,65535]4299; SSE-NEXT: movdqa %xmm11, %xmm14300; SSE-NEXT: pandn %xmm13, %xmm14301; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload4302; SSE-NEXT: movdqa %xmm13, %xmm44303; SSE-NEXT: pand %xmm11, %xmm44304; SSE-NEXT: por %xmm1, %xmm44305; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Reload4306; SSE-NEXT: movdqa %xmm12, %xmm14307; SSE-NEXT: punpckhwd {{.*#+}} xmm1 = xmm1[4],xmm10[4],xmm1[5],xmm10[5],xmm1[6],xmm10[6],xmm1[7],xmm10[7]4308; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[2,1,2,1]4309; SSE-NEXT: pshuflw {{.*#+}} xmm1 = xmm1[0,0,0,0,4,5,6,7]4310; SSE-NEXT: pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,7,7,7,7]4311; SSE-NEXT: movdqa %xmm14, %xmm34312; SSE-NEXT: pandn %xmm1, %xmm34313; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm4[0,3,2,3]4314; SSE-NEXT: pshuflw {{.*#+}} xmm1 = xmm1[1,0,3,3,4,5,6,7]4315; SSE-NEXT: pand %xmm14, %xmm14316; SSE-NEXT: por %xmm1, %xmm34317; SSE-NEXT: pand %xmm15, %xmm34318; SSE-NEXT: por %xmm0, %xmm34319; SSE-NEXT: movdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4320; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload4321; SSE-NEXT: movdqa %xmm5, %xmm04322; SSE-NEXT: pslldq {{.*#+}} xmm0 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,xmm0[0,1,2,3,4,5]4323; SSE-NEXT: movdqa %xmm2, %xmm14324; SSE-NEXT: pandn %xmm0, %xmm14325; SSE-NEXT: psrld $16, %xmm64326; SSE-NEXT: psrldq {{.*#+}} xmm7 = xmm7[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero4327; SSE-NEXT: punpckldq {{.*#+}} xmm7 = xmm7[0],xmm6[0],xmm7[1],xmm6[1]4328; SSE-NEXT: pand %xmm2, %xmm74329; SSE-NEXT: por %xmm1, %xmm74330; SSE-NEXT: movdqa %xmm15, %xmm04331; SSE-NEXT: pandn %xmm7, %xmm04332; SSE-NEXT: movdqa %xmm11, %xmm14333; SSE-NEXT: pandn {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload4334; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload4335; SSE-NEXT: pand %xmm11, %xmm44336; SSE-NEXT: por %xmm1, %xmm44337; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload4338; SSE-NEXT: punpckhwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload4339; SSE-NEXT: # xmm1 = xmm1[4],mem[4],xmm1[5],mem[5],xmm1[6],mem[6],xmm1[7],mem[7]4340; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[2,1,2,1]4341; SSE-NEXT: pshuflw {{.*#+}} xmm1 = xmm1[0,0,0,0,4,5,6,7]4342; SSE-NEXT: pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,7,7,7,7]4343; SSE-NEXT: movdqa %xmm14, %xmm34344; SSE-NEXT: pandn %xmm1, %xmm34345; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm4[0,3,2,3]4346; SSE-NEXT: pshuflw {{.*#+}} xmm1 = xmm1[1,0,3,3,4,5,6,7]4347; SSE-NEXT: pand %xmm14, %xmm14348; SSE-NEXT: por %xmm1, %xmm34349; SSE-NEXT: pand %xmm15, %xmm34350; SSE-NEXT: por %xmm0, %xmm34351; SSE-NEXT: movdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4352; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4353; SSE-NEXT: pslldq {{.*#+}} xmm0 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,xmm0[0,1,2,3,4,5]4354; SSE-NEXT: movdqa %xmm2, %xmm14355; SSE-NEXT: pandn %xmm0, %xmm14356; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4357; SSE-NEXT: psrld $16, %xmm04358; SSE-NEXT: movdqa (%rsp), %xmm7 # 16-byte Reload4359; SSE-NEXT: movdqa %xmm7, %xmm44360; SSE-NEXT: psrldq {{.*#+}} xmm4 = xmm4[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero4361; SSE-NEXT: punpckldq {{.*#+}} xmm4 = xmm4[0],xmm0[0],xmm4[1],xmm0[1]4362; SSE-NEXT: pand %xmm2, %xmm44363; SSE-NEXT: por %xmm1, %xmm44364; SSE-NEXT: movdqa %xmm15, %xmm04365; SSE-NEXT: pandn %xmm4, %xmm04366; SSE-NEXT: movdqa %xmm11, %xmm14367; SSE-NEXT: pandn {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload4368; SSE-NEXT: movdqa %xmm8, %xmm44369; SSE-NEXT: pand %xmm11, %xmm44370; SSE-NEXT: por %xmm1, %xmm44371; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload4372; SSE-NEXT: movdqa %xmm3, %xmm14373; SSE-NEXT: punpckhwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload4374; SSE-NEXT: # xmm1 = xmm1[4],mem[4],xmm1[5],mem[5],xmm1[6],mem[6],xmm1[7],mem[7]4375; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[2,1,2,1]4376; SSE-NEXT: pshuflw {{.*#+}} xmm1 = xmm1[0,0,0,0,4,5,6,7]4377; SSE-NEXT: pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,7,7,7,7]4378; SSE-NEXT: movdqa %xmm14, %xmm84379; SSE-NEXT: pandn %xmm1, %xmm84380; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm4[0,3,2,3]4381; SSE-NEXT: pshuflw {{.*#+}} xmm1 = xmm1[1,0,3,3,4,5,6,7]4382; SSE-NEXT: pand %xmm14, %xmm14383; SSE-NEXT: por %xmm1, %xmm84384; SSE-NEXT: pand %xmm15, %xmm84385; SSE-NEXT: por %xmm0, %xmm84386; SSE-NEXT: movdqa %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4387; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4388; SSE-NEXT: pslldq {{.*#+}} xmm0 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,xmm0[0,1,2,3,4,5]4389; SSE-NEXT: movdqa %xmm2, %xmm14390; SSE-NEXT: pandn %xmm0, %xmm14391; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4392; SSE-NEXT: psrld $16, %xmm04393; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload4394; SSE-NEXT: movdqa %xmm10, %xmm44395; SSE-NEXT: psrldq {{.*#+}} xmm4 = xmm4[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero4396; SSE-NEXT: punpckldq {{.*#+}} xmm4 = xmm4[0],xmm0[0],xmm4[1],xmm0[1]4397; SSE-NEXT: pand %xmm2, %xmm44398; SSE-NEXT: por %xmm1, %xmm44399; SSE-NEXT: movdqa %xmm15, %xmm04400; SSE-NEXT: pandn %xmm4, %xmm04401; SSE-NEXT: movdqa %xmm11, %xmm14402; SSE-NEXT: pandn {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload4403; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload4404; SSE-NEXT: pand %xmm11, %xmm44405; SSE-NEXT: por %xmm1, %xmm44406; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm4[0,3,2,3]4407; SSE-NEXT: pshuflw {{.*#+}} xmm1 = xmm1[1,0,3,3,4,5,6,7]4408; SSE-NEXT: pand %xmm14, %xmm14409; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload4410; SSE-NEXT: punpckhwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload4411; SSE-NEXT: # xmm4 = xmm4[4],mem[4],xmm4[5],mem[5],xmm4[6],mem[6],xmm4[7],mem[7]4412; SSE-NEXT: pshufd {{.*#+}} xmm4 = xmm4[2,1,2,1]4413; SSE-NEXT: pshuflw {{.*#+}} xmm4 = xmm4[0,0,0,0,4,5,6,7]4414; SSE-NEXT: pshufhw {{.*#+}} xmm4 = xmm4[0,1,2,3,7,7,7,7]4415; SSE-NEXT: pandn %xmm4, %xmm144416; SSE-NEXT: por %xmm1, %xmm144417; SSE-NEXT: pand %xmm15, %xmm144418; SSE-NEXT: por %xmm0, %xmm144419; SSE-NEXT: movdqa %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4420; SSE-NEXT: pshufd $68, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload4421; SSE-NEXT: # xmm0 = mem[0,1,0,1]4422; SSE-NEXT: movdqa %xmm2, %xmm14423; SSE-NEXT: pandn %xmm0, %xmm14424; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4425; SSE-NEXT: punpckhdq {{.*#+}} xmm0 = xmm0[2],xmm9[2],xmm0[3],xmm9[3]4426; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,1,0,1]4427; SSE-NEXT: pand %xmm2, %xmm04428; SSE-NEXT: por %xmm1, %xmm04429; SSE-NEXT: movdqa %xmm15, %xmm14430; SSE-NEXT: pandn %xmm0, %xmm14431; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm12[0,1,0,3]4432; SSE-NEXT: pshufhw {{.*#+}} xmm8 = xmm0[0,1,2,3,4,5,4,7]4433; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Reload4434; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm9[2,2,3,3]4435; SSE-NEXT: punpckhqdq {{.*#+}} xmm8 = xmm8[1],xmm0[1]4436; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload4437; SSE-NEXT: punpcklwd {{.*#+}} xmm6 = xmm6[0],xmm13[0],xmm6[1],xmm13[1],xmm6[2],xmm13[2],xmm6[3],xmm13[3]4438; SSE-NEXT: pshufd {{.*#+}} xmm4 = xmm6[2,1,2,3]4439; SSE-NEXT: pshuflw {{.*#+}} xmm4 = xmm4[0,3,2,3,4,5,6,7]4440; SSE-NEXT: movss {{.*#+}} xmm8 = xmm4[0],xmm8[1,2,3]4441; SSE-NEXT: andps %xmm15, %xmm84442; SSE-NEXT: orps %xmm1, %xmm84443; SSE-NEXT: movaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4444; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm5[0,1,0,1]4445; SSE-NEXT: movdqa %xmm2, %xmm44446; SSE-NEXT: pandn %xmm1, %xmm44447; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload4448; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload4449; SSE-NEXT: punpckhdq {{.*#+}} xmm1 = xmm1[2],xmm13[2],xmm1[3],xmm13[3]4450; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[0,1,0,1]4451; SSE-NEXT: pand %xmm2, %xmm14452; SSE-NEXT: por %xmm4, %xmm14453; SSE-NEXT: movdqa %xmm15, %xmm44454; SSE-NEXT: pandn %xmm1, %xmm44455; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload4456; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm8[0,1,0,3]4457; SSE-NEXT: pshufhw {{.*#+}} xmm14 = xmm1[0,1,2,3,4,5,4,7]4458; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Reload4459; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm12[2,2,3,3]4460; SSE-NEXT: punpckhqdq {{.*#+}} xmm14 = xmm14[1],xmm1[1]4461; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload4462; SSE-NEXT: punpcklwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload4463; SSE-NEXT: # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1],xmm1[2],mem[2],xmm1[3],mem[3]4464; SSE-NEXT: pshufd {{.*#+}} xmm5 = xmm1[2,1,2,3]4465; SSE-NEXT: pshuflw {{.*#+}} xmm5 = xmm5[0,3,2,3,4,5,6,7]4466; SSE-NEXT: movss {{.*#+}} xmm14 = xmm5[0],xmm14[1,2,3]4467; SSE-NEXT: andps %xmm15, %xmm144468; SSE-NEXT: orps %xmm4, %xmm144469; SSE-NEXT: movaps %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4470; SSE-NEXT: pshufd $68, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload4471; SSE-NEXT: # xmm4 = mem[0,1,0,1]4472; SSE-NEXT: movdqa %xmm2, %xmm54473; SSE-NEXT: pandn %xmm4, %xmm54474; SSE-NEXT: movdqa %xmm7, %xmm44475; SSE-NEXT: punpckhdq {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload4476; SSE-NEXT: # xmm4 = xmm4[2],mem[2],xmm4[3],mem[3]4477; SSE-NEXT: pshufd {{.*#+}} xmm4 = xmm4[0,1,0,1]4478; SSE-NEXT: pand %xmm2, %xmm44479; SSE-NEXT: por %xmm5, %xmm44480; SSE-NEXT: movdqa %xmm15, %xmm74481; SSE-NEXT: pandn %xmm4, %xmm74482; SSE-NEXT: pshufd {{.*#+}} xmm4 = xmm3[0,1,0,3]4483; SSE-NEXT: pshufhw {{.*#+}} xmm3 = xmm4[0,1,2,3,4,5,4,7]4484; SSE-NEXT: pshufd $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload4485; SSE-NEXT: # xmm4 = mem[2,2,3,3]4486; SSE-NEXT: punpckhqdq {{.*#+}} xmm3 = xmm3[1],xmm4[1]4487; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload4488; SSE-NEXT: punpcklwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Folded Reload4489; SSE-NEXT: # xmm5 = xmm5[0],mem[0],xmm5[1],mem[1],xmm5[2],mem[2],xmm5[3],mem[3]4490; SSE-NEXT: pshufd {{.*#+}} xmm4 = xmm5[2,1,2,3]4491; SSE-NEXT: pshuflw {{.*#+}} xmm4 = xmm4[0,3,2,3,4,5,6,7]4492; SSE-NEXT: movss {{.*#+}} xmm3 = xmm4[0],xmm3[1,2,3]4493; SSE-NEXT: andps %xmm15, %xmm34494; SSE-NEXT: orps %xmm7, %xmm34495; SSE-NEXT: movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4496; SSE-NEXT: movdqa %xmm10, %xmm44497; SSE-NEXT: punpckhdq {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload4498; SSE-NEXT: # xmm4 = xmm4[2],mem[2],xmm4[3],mem[3]4499; SSE-NEXT: pshufd {{.*#+}} xmm4 = xmm4[0,1,0,1]4500; SSE-NEXT: pand %xmm2, %xmm44501; SSE-NEXT: pshufd $68, {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Folded Reload4502; SSE-NEXT: # xmm7 = mem[0,1,0,1]4503; SSE-NEXT: pandn %xmm7, %xmm24504; SSE-NEXT: por %xmm4, %xmm24505; SSE-NEXT: movdqa %xmm15, %xmm44506; SSE-NEXT: pandn %xmm2, %xmm44507; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload4508; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm3[0,1,0,3]4509; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm2[0,1,2,3,4,5,4,7]4510; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload4511; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm14[2,2,3,3]4512; SSE-NEXT: punpckhqdq {{.*#+}} xmm0 = xmm0[1],xmm2[1]4513; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload4514; SSE-NEXT: punpcklwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload4515; SSE-NEXT: # xmm2 = xmm2[0],mem[0],xmm2[1],mem[1],xmm2[2],mem[2],xmm2[3],mem[3]4516; SSE-NEXT: pshufd {{.*#+}} xmm7 = xmm2[2,1,2,3]4517; SSE-NEXT: pshuflw {{.*#+}} xmm7 = xmm7[0,3,2,3,4,5,6,7]4518; SSE-NEXT: movss {{.*#+}} xmm0 = xmm7[0],xmm0[1,2,3]4519; SSE-NEXT: andps %xmm15, %xmm04520; SSE-NEXT: orps %xmm4, %xmm04521; SSE-NEXT: movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4522; SSE-NEXT: movdqa %xmm11, %xmm44523; SSE-NEXT: pandn {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload4524; SSE-NEXT: movdqa %xmm9, %xmm74525; SSE-NEXT: pand %xmm11, %xmm74526; SSE-NEXT: por %xmm4, %xmm74527; SSE-NEXT: pshuflw {{.*#+}} xmm4 = xmm7[0,1,1,0,4,5,6,7]4528; SSE-NEXT: pshufhw {{.*#+}} xmm4 = xmm4[0,1,2,3,7,7,7,7]4529; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm6[0,1,2,3,6,5,6,7]4530; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[2,2,2,2]4531; SSE-NEXT: movss {{.*#+}} xmm4 = xmm0[0],xmm4[1,2,3]4532; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4533; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload4534; SSE-NEXT: punpckhwd {{.*#+}} xmm0 = xmm0[4],xmm6[4],xmm0[5],xmm6[5],xmm0[6],xmm6[6],xmm0[7],xmm6[7]4535; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,1,2,1]4536; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,4,7,7]4537; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload4538; SSE-NEXT: punpckhwd {{.*#+}} xmm0 = xmm0[4],xmm7[4],xmm0[5],xmm7[5],xmm0[6],xmm7[6],xmm0[7],xmm7[7]4539; SSE-NEXT: pshuflw {{.*#+}} xmm0 = xmm0[2,1,2,3,4,5,6,7]4540; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,1,2,0]4541; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,6,4,7]4542; SSE-NEXT: movdqa %xmm15, %xmm94543; SSE-NEXT: pandn %xmm0, %xmm94544; SSE-NEXT: andps %xmm15, %xmm44545; SSE-NEXT: por %xmm4, %xmm94546; SSE-NEXT: movdqa %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4547; SSE-NEXT: movdqa %xmm11, %xmm04548; SSE-NEXT: pandn %xmm8, %xmm04549; SSE-NEXT: movdqa %xmm12, %xmm44550; SSE-NEXT: pand %xmm11, %xmm44551; SSE-NEXT: por %xmm0, %xmm44552; SSE-NEXT: pshuflw {{.*#+}} xmm0 = xmm4[0,1,1,0,4,5,6,7]4553; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,7,7,7,7]4554; SSE-NEXT: pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,6,5,6,7]4555; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[2,2,2,2]4556; SSE-NEXT: movss {{.*#+}} xmm0 = xmm1[0],xmm0[1,2,3]4557; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload4558; SSE-NEXT: punpckhwd {{.*#+}} xmm1 = xmm1[4],xmm13[4],xmm1[5],xmm13[5],xmm1[6],xmm13[6],xmm1[7],xmm13[7]4559; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[0,1,2,1]4560; SSE-NEXT: pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,4,7,7]4561; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload4562; SSE-NEXT: punpckhwd {{.*#+}} xmm1 = xmm1[4],xmm8[4],xmm1[5],xmm8[5],xmm1[6],xmm8[6],xmm1[7],xmm8[7]4563; SSE-NEXT: pshuflw {{.*#+}} xmm1 = xmm1[2,1,2,3,4,5,6,7]4564; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[0,1,2,0]4565; SSE-NEXT: pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,6,4,7]4566; SSE-NEXT: movdqa %xmm15, %xmm44567; SSE-NEXT: pandn %xmm1, %xmm44568; SSE-NEXT: andps %xmm15, %xmm04569; SSE-NEXT: por %xmm0, %xmm44570; SSE-NEXT: movdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4571; SSE-NEXT: movdqa %xmm11, %xmm04572; SSE-NEXT: pandn {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload4573; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Reload4574; SSE-NEXT: movdqa %xmm12, %xmm14575; SSE-NEXT: pand %xmm11, %xmm14576; SSE-NEXT: por %xmm0, %xmm14577; SSE-NEXT: pshuflw {{.*#+}} xmm0 = xmm1[0,1,1,0,4,5,6,7]4578; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,7,7,7,7]4579; SSE-NEXT: pshufhw {{.*#+}} xmm1 = xmm5[0,1,2,3,6,5,6,7]4580; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[2,2,2,2]4581; SSE-NEXT: movss {{.*#+}} xmm0 = xmm1[0],xmm0[1,2,3]4582; SSE-NEXT: movdqa (%rsp), %xmm1 # 16-byte Reload4583; SSE-NEXT: punpckhwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload4584; SSE-NEXT: # xmm1 = xmm1[4],mem[4],xmm1[5],mem[5],xmm1[6],mem[6],xmm1[7],mem[7]4585; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[0,1,2,1]4586; SSE-NEXT: pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,4,7,7]4587; SSE-NEXT: punpckhwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload4588; SSE-NEXT: # xmm1 = xmm1[4],mem[4],xmm1[5],mem[5],xmm1[6],mem[6],xmm1[7],mem[7]4589; SSE-NEXT: pshuflw {{.*#+}} xmm1 = xmm1[2,1,2,3,4,5,6,7]4590; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[0,1,2,0]4591; SSE-NEXT: pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,6,4,7]4592; SSE-NEXT: movdqa %xmm15, %xmm44593; SSE-NEXT: pandn %xmm1, %xmm44594; SSE-NEXT: andps %xmm15, %xmm04595; SSE-NEXT: por %xmm0, %xmm44596; SSE-NEXT: movdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4597; SSE-NEXT: movdqa %xmm11, %xmm04598; SSE-NEXT: pandn %xmm3, %xmm04599; SSE-NEXT: movdqa %xmm14, %xmm14600; SSE-NEXT: pand %xmm11, %xmm14601; SSE-NEXT: por %xmm0, %xmm14602; SSE-NEXT: pshuflw {{.*#+}} xmm0 = xmm1[0,1,1,0,4,5,6,7]4603; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,7,7,7,7]4604; SSE-NEXT: pshufhw {{.*#+}} xmm1 = xmm2[0,1,2,3,6,5,6,7]4605; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[2,2,2,2]4606; SSE-NEXT: movss {{.*#+}} xmm0 = xmm1[0],xmm0[1,2,3]4607; SSE-NEXT: movdqa %xmm10, %xmm24608; SSE-NEXT: movdqa %xmm10, %xmm14609; SSE-NEXT: punpckhwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload4610; SSE-NEXT: # xmm1 = xmm1[4],mem[4],xmm1[5],mem[5],xmm1[6],mem[6],xmm1[7],mem[7]4611; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[0,1,2,1]4612; SSE-NEXT: pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,4,7,7]4613; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload4614; SSE-NEXT: punpckhwd {{.*#+}} xmm1 = xmm1[4],xmm3[4],xmm1[5],xmm3[5],xmm1[6],xmm3[6],xmm1[7],xmm3[7]4615; SSE-NEXT: andps %xmm15, %xmm04616; SSE-NEXT: pshuflw {{.*#+}} xmm1 = xmm1[2,1,2,3,4,5,6,7]4617; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[0,1,2,0]4618; SSE-NEXT: pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,6,4,7]4619; SSE-NEXT: pandn %xmm1, %xmm154620; SSE-NEXT: por %xmm0, %xmm154621; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Reload4622; SSE-NEXT: movdqa %xmm9, %xmm04623; SSE-NEXT: psrld $16, %xmm04624; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload4625; SSE-NEXT: punpckhwd {{.*#+}} xmm0 = xmm0[4],xmm1[4],xmm0[5],xmm1[5],xmm0[6],xmm1[6],xmm0[7],xmm1[7]4626; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4627; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm9[2,3,2,3]4628; SSE-NEXT: punpckhwd {{.*#+}} xmm9 = xmm9[4],xmm1[4],xmm9[5],xmm1[5],xmm9[6],xmm1[6],xmm9[7],xmm1[7]4629; SSE-NEXT: movdqa %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4630; SSE-NEXT: psrlq $48, %xmm14631; SSE-NEXT: punpcklwd {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3]4632; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload4633; SSE-NEXT: movdqa %xmm4, %xmm14634; SSE-NEXT: psrlq $16, %xmm14635; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload4636; SSE-NEXT: punpcklwd {{.*#+}} xmm1 = xmm1[0],xmm5[0],xmm1[1],xmm5[1],xmm1[2],xmm5[2],xmm1[3],xmm5[3]4637; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[1,1,1,1]4638; SSE-NEXT: punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]4639; SSE-NEXT: pshufd $196, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload4640; SSE-NEXT: # xmm1 = mem[0,1,0,3]4641; SSE-NEXT: pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,5,4,7]4642; SSE-NEXT: punpckhdq {{.*#+}} xmm1 = xmm1[2],xmm6[2],xmm1[3],xmm6[3]4643; SSE-NEXT: punpckhwd {{.*#+}} xmm1 = xmm1[4],xmm7[4],xmm1[5],xmm7[5],xmm1[6],xmm7[6],xmm1[7],xmm7[7]4644; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[3,1,2,0]4645; SSE-NEXT: pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,6,6,7]4646; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[0,1,2,1]4647; SSE-NEXT: pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,5,6,4,7]4648; SSE-NEXT: movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]4649; SSE-NEXT: movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4650; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload4651; SSE-NEXT: movdqa %xmm1, %xmm04652; SSE-NEXT: psrld $16, %xmm04653; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload4654; SSE-NEXT: punpckhwd {{.*#+}} xmm0 = xmm0[4],xmm7[4],xmm0[5],xmm7[5],xmm0[6],xmm7[6],xmm0[7],xmm7[7]4655; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4656; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm1[2,3,2,3]4657; SSE-NEXT: movdqa %xmm1, %xmm64658; SSE-NEXT: movdqa %xmm7, %xmm14659; SSE-NEXT: punpckhwd {{.*#+}} xmm6 = xmm6[4],xmm7[4],xmm6[5],xmm7[5],xmm6[6],xmm7[6],xmm6[7],xmm7[7]4660; SSE-NEXT: movdqa %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4661; SSE-NEXT: psrlq $48, %xmm14662; SSE-NEXT: punpcklwd {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3]4663; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload4664; SSE-NEXT: movdqa %xmm14, %xmm14665; SSE-NEXT: psrlq $16, %xmm14666; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload4667; SSE-NEXT: punpcklwd {{.*#+}} xmm1 = xmm1[0],xmm10[0],xmm1[1],xmm10[1],xmm1[2],xmm10[2],xmm1[3],xmm10[3]4668; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[1,1,1,1]4669; SSE-NEXT: punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]4670; SSE-NEXT: pshufd $196, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload4671; SSE-NEXT: # xmm1 = mem[0,1,0,3]4672; SSE-NEXT: pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,5,4,7]4673; SSE-NEXT: punpckhdq {{.*#+}} xmm1 = xmm1[2],xmm13[2],xmm1[3],xmm13[3]4674; SSE-NEXT: punpckhwd {{.*#+}} xmm1 = xmm1[4],xmm8[4],xmm1[5],xmm8[5],xmm1[6],xmm8[6],xmm1[7],xmm8[7]4675; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[3,1,2,0]4676; SSE-NEXT: pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,6,6,7]4677; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[0,1,2,1]4678; SSE-NEXT: pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,5,6,4,7]4679; SSE-NEXT: movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]4680; SSE-NEXT: movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4681; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload4682; SSE-NEXT: movdqa %xmm1, %xmm74683; SSE-NEXT: psrld $16, %xmm74684; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload4685; SSE-NEXT: punpckhwd {{.*#+}} xmm7 = xmm7[4],xmm8[4],xmm7[5],xmm8[5],xmm7[6],xmm8[6],xmm7[7],xmm8[7]4686; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm1[2,3,2,3]4687; SSE-NEXT: movdqa %xmm1, %xmm64688; SSE-NEXT: movdqa %xmm8, %xmm14689; SSE-NEXT: punpckhwd {{.*#+}} xmm6 = xmm6[4],xmm8[4],xmm6[5],xmm8[5],xmm6[6],xmm8[6],xmm6[7],xmm8[7]4690; SSE-NEXT: movdqa %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4691; SSE-NEXT: psrlq $48, %xmm14692; SSE-NEXT: punpcklwd {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3]4693; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload4694; SSE-NEXT: movdqa %xmm13, %xmm14695; SSE-NEXT: psrlq $16, %xmm14696; SSE-NEXT: punpcklwd {{.*#+}} xmm1 = xmm1[0],xmm12[0],xmm1[1],xmm12[1],xmm1[2],xmm12[2],xmm1[3],xmm12[3]4697; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[1,1,1,1]4698; SSE-NEXT: punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]4699; SSE-NEXT: pshufd $196, (%rsp), %xmm1 # 16-byte Folded Reload4700; SSE-NEXT: # xmm1 = mem[0,1,0,3]4701; SSE-NEXT: pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,5,4,7]4702; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload4703; SSE-NEXT: punpckhdq {{.*#+}} xmm1 = xmm1[2],xmm8[2],xmm1[3],xmm8[3]4704; SSE-NEXT: punpckhwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload4705; SSE-NEXT: # xmm1 = xmm1[4],mem[4],xmm1[5],mem[5],xmm1[6],mem[6],xmm1[7],mem[7]4706; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[3,1,2,0]4707; SSE-NEXT: pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,6,6,7]4708; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[0,1,2,1]4709; SSE-NEXT: pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,5,6,4,7]4710; SSE-NEXT: movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]4711; SSE-NEXT: movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4712; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload4713; SSE-NEXT: movdqa %xmm1, %xmm64714; SSE-NEXT: psrld $16, %xmm64715; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Reload4716; SSE-NEXT: punpckhwd {{.*#+}} xmm6 = xmm6[4],xmm9[4],xmm6[5],xmm9[5],xmm6[6],xmm9[6],xmm6[7],xmm9[7]4717; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm1[2,3,2,3]4718; SSE-NEXT: movdqa %xmm1, %xmm124719; SSE-NEXT: movdqa %xmm9, %xmm14720; SSE-NEXT: punpckhwd {{.*#+}} xmm12 = xmm12[4],xmm9[4],xmm12[5],xmm9[5],xmm12[6],xmm9[6],xmm12[7],xmm9[7]4721; SSE-NEXT: movdqa %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4722; SSE-NEXT: psrlq $48, %xmm14723; SSE-NEXT: punpcklwd {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3]4724; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload4725; SSE-NEXT: psrlq $16, %xmm14726; SSE-NEXT: punpcklwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload4727; SSE-NEXT: # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1],xmm1[2],mem[2],xmm1[3],mem[3]4728; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[1,1,1,1]4729; SSE-NEXT: punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]4730; SSE-NEXT: movdqa %xmm2, %xmm124731; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm2[0,1,0,3]4732; SSE-NEXT: pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,5,4,7]4733; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload4734; SSE-NEXT: punpckhdq {{.*#+}} xmm1 = xmm1[2],xmm2[2],xmm1[3],xmm2[3]4735; SSE-NEXT: punpckhwd {{.*#+}} xmm1 = xmm1[4],xmm3[4],xmm1[5],xmm3[5],xmm1[6],xmm3[6],xmm1[7],xmm3[7]4736; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[3,1,2,0]4737; SSE-NEXT: pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,6,6,7]4738; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[0,1,2,1]4739; SSE-NEXT: pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,5,6,4,7]4740; SSE-NEXT: movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]4741; SSE-NEXT: movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4742; SSE-NEXT: punpcklwd {{.*#+}} xmm4 = xmm4[0],xmm5[0],xmm4[1],xmm5[1],xmm4[2],xmm5[2],xmm4[3],xmm5[3]4743; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm4[0,1,2,3,6,5,6,7]4744; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[2,3,2,3]4745; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload4746; SSE-NEXT: punpckldq {{.*#+}} xmm4 = xmm4[0],xmm0[0],xmm4[1],xmm0[1]4747; SSE-NEXT: movdqa %xmm11, %xmm04748; SSE-NEXT: pandn {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload4749; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload4750; SSE-NEXT: pand %xmm11, %xmm14751; SSE-NEXT: por %xmm0, %xmm14752; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm1[0,1,0,3]4753; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,5,4,7,7]4754; SSE-NEXT: punpckhwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload4755; SSE-NEXT: # xmm0 = xmm0[4],mem[4],xmm0[5],mem[5],xmm0[6],mem[6],xmm0[7],mem[7]4756; SSE-NEXT: pshuflw {{.*#+}} xmm0 = xmm0[0,2,2,3,4,5,6,7]4757; SSE-NEXT: shufps {{.*#+}} xmm4 = xmm4[0,1],xmm0[0,2]4758; SSE-NEXT: movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4759; SSE-NEXT: movdqa %xmm14, %xmm04760; SSE-NEXT: punpcklwd {{.*#+}} xmm0 = xmm0[0],xmm10[0],xmm0[1],xmm10[1],xmm0[2],xmm10[2],xmm0[3],xmm10[3]4761; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,6,5,6,7]4762; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[2,3,2,3]4763; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Reload4764; SSE-NEXT: punpckldq {{.*#+}} xmm9 = xmm9[0],xmm0[0],xmm9[1],xmm0[1]4765; SSE-NEXT: movdqa %xmm11, %xmm04766; SSE-NEXT: pandn {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload4767; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload4768; SSE-NEXT: pand %xmm11, %xmm14769; SSE-NEXT: por %xmm0, %xmm14770; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm1[0,1,0,3]4771; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,5,4,7,7]4772; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload4773; SSE-NEXT: punpckhwd {{.*#+}} xmm0 = xmm0[4],xmm4[4],xmm0[5],xmm4[5],xmm0[6],xmm4[6],xmm0[7],xmm4[7]4774; SSE-NEXT: pshuflw {{.*#+}} xmm0 = xmm0[0,2,2,3,4,5,6,7]4775; SSE-NEXT: shufps {{.*#+}} xmm9 = xmm9[0,1],xmm0[0,2]4776; SSE-NEXT: movaps %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4777; SSE-NEXT: movdqa %xmm13, %xmm04778; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload4779; SSE-NEXT: punpcklwd {{.*#+}} xmm0 = xmm0[0],xmm10[0],xmm0[1],xmm10[1],xmm0[2],xmm10[2],xmm0[3],xmm10[3]4780; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,6,5,6,7]4781; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[2,3,2,3]4782; SSE-NEXT: punpckldq {{.*#+}} xmm7 = xmm7[0],xmm0[0],xmm7[1],xmm0[1]4783; SSE-NEXT: movdqa %xmm11, %xmm04784; SSE-NEXT: pandn (%rsp), %xmm0 # 16-byte Folded Reload4785; SSE-NEXT: pand %xmm11, %xmm84786; SSE-NEXT: por %xmm0, %xmm84787; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm8[0,1,0,3]4788; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,5,4,7,7]4789; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Reload4790; SSE-NEXT: punpckhwd {{.*#+}} xmm0 = xmm0[4],xmm9[4],xmm0[5],xmm9[5],xmm0[6],xmm9[6],xmm0[7],xmm9[7]4791; SSE-NEXT: pshuflw {{.*#+}} xmm0 = xmm0[0,2,2,3,4,5,6,7]4792; SSE-NEXT: shufps {{.*#+}} xmm7 = xmm7[0,1],xmm0[0,2]4793; SSE-NEXT: pand %xmm11, %xmm24794; SSE-NEXT: pandn %xmm12, %xmm114795; SSE-NEXT: por %xmm2, %xmm114796; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Reload4797; SSE-NEXT: movdqa %xmm12, %xmm04798; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload4799; SSE-NEXT: punpcklwd {{.*#+}} xmm0 = xmm0[0],xmm8[0],xmm0[1],xmm8[1],xmm0[2],xmm8[2],xmm0[3],xmm8[3]4800; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,6,5,6,7]4801; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[2,3,2,3]4802; SSE-NEXT: punpckldq {{.*#+}} xmm6 = xmm6[0],xmm0[0],xmm6[1],xmm0[1]4803; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm11[0,1,0,3]4804; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,5,4,7,7]4805; SSE-NEXT: punpckhwd {{.*#+}} xmm0 = xmm0[4],xmm3[4],xmm0[5],xmm3[5],xmm0[6],xmm3[6],xmm0[7],xmm3[7]4806; SSE-NEXT: movdqa %xmm3, %xmm114807; SSE-NEXT: pshuflw {{.*#+}} xmm0 = xmm0[0,2,2,3,4,5,6,7]4808; SSE-NEXT: shufps {{.*#+}} xmm6 = xmm6[0,1],xmm0[0,2]4809; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm5[1,1,1,1]4810; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload4811; SSE-NEXT: psrldq {{.*#+}} xmm1 = xmm1[6,7,8,9,10,11,12,13,14,15],zero,zero,zero,zero,zero,zero4812; SSE-NEXT: punpcklwd {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1],xmm1[2],xmm0[2],xmm1[3],xmm0[3]4813; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm1[1,1,1,1]4814; SSE-NEXT: pshufd $230, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload4815; SSE-NEXT: # xmm1 = mem[2,1,2,3]4816; SSE-NEXT: pshuflw {{.*#+}} xmm1 = xmm1[0,3,2,3,4,5,6,7]4817; SSE-NEXT: punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]4818; SSE-NEXT: pshuflw $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload4819; SSE-NEXT: # xmm0 = mem[1,1,1,1,4,5,6,7]4820; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload4821; SSE-NEXT: punpcklwd {{.*#+}} xmm2 = xmm2[0],xmm0[0],xmm2[1],xmm0[1],xmm2[2],xmm0[2],xmm2[3],xmm0[3]4822; SSE-NEXT: pshufd $196, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload4823; SSE-NEXT: # xmm0 = mem[0,1,0,3]4824; SSE-NEXT: pshufd {{.*#+}} xmm5 = xmm2[2,2,2,2]4825; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,5,4,7]4826; SSE-NEXT: punpckhdq {{.*#+}} xmm5 = xmm5[2],xmm0[2],xmm5[3],xmm0[3]4827; SSE-NEXT: movsd {{.*#+}} xmm5 = xmm1[0],xmm5[1]4828; SSE-NEXT: pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload4829; SSE-NEXT: # xmm0 = mem[1,1,1,1]4830; SSE-NEXT: psrldq {{.*#+}} xmm14 = xmm14[6,7,8,9,10,11,12,13,14,15],zero,zero,zero,zero,zero,zero4831; SSE-NEXT: punpcklwd {{.*#+}} xmm14 = xmm14[0],xmm0[0],xmm14[1],xmm0[1],xmm14[2],xmm0[2],xmm14[3],xmm0[3]4832; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm14[1,1,1,1]4833; SSE-NEXT: pshufd $230, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload4834; SSE-NEXT: # xmm1 = mem[2,1,2,3]4835; SSE-NEXT: pshuflw {{.*#+}} xmm0 = xmm1[0,3,2,3,4,5,6,7]4836; SSE-NEXT: punpckldq {{.*#+}} xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1]4837; SSE-NEXT: pshuflw $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload4838; SSE-NEXT: # xmm1 = mem[1,1,1,1,4,5,6,7]4839; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload4840; SSE-NEXT: punpcklwd {{.*#+}} xmm3 = xmm3[0],xmm1[0],xmm3[1],xmm1[1],xmm3[2],xmm1[2],xmm3[3],xmm1[3]4841; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm4[0,1,0,3]4842; SSE-NEXT: pshufd {{.*#+}} xmm4 = xmm3[2,2,2,2]4843; SSE-NEXT: pshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,5,4,7]4844; SSE-NEXT: punpckhdq {{.*#+}} xmm4 = xmm4[2],xmm2[2],xmm4[3],xmm2[3]4845; SSE-NEXT: movsd {{.*#+}} xmm4 = xmm0[0],xmm4[1]4846; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm10[1,1,1,1]4847; SSE-NEXT: psrldq {{.*#+}} xmm13 = xmm13[6,7,8,9,10,11,12,13,14,15],zero,zero,zero,zero,zero,zero4848; SSE-NEXT: punpcklwd {{.*#+}} xmm13 = xmm13[0],xmm0[0],xmm13[1],xmm0[1],xmm13[2],xmm0[2],xmm13[3],xmm0[3]4849; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm13[1,1,1,1]4850; SSE-NEXT: pshufd $230, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload4851; SSE-NEXT: # xmm2 = mem[2,1,2,3]4852; SSE-NEXT: pshuflw {{.*#+}} xmm2 = xmm2[0,3,2,3,4,5,6,7]4853; SSE-NEXT: punpckldq {{.*#+}} xmm2 = xmm2[0],xmm0[0],xmm2[1],xmm0[1]4854; SSE-NEXT: pshuflw $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload4855; SSE-NEXT: # xmm0 = mem[1,1,1,1,4,5,6,7]4856; SSE-NEXT: movdqa (%rsp), %xmm3 # 16-byte Reload4857; SSE-NEXT: punpcklwd {{.*#+}} xmm3 = xmm3[0],xmm0[0],xmm3[1],xmm0[1],xmm3[2],xmm0[2],xmm3[3],xmm0[3]4858; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm9[0,1,0,3]4859; SSE-NEXT: pshufd {{.*#+}} xmm3 = xmm3[2,2,2,2]4860; SSE-NEXT: pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,5,4,7]4861; SSE-NEXT: punpckhdq {{.*#+}} xmm3 = xmm3[2],xmm1[2],xmm3[3],xmm1[3]4862; SSE-NEXT: movsd {{.*#+}} xmm3 = xmm2[0],xmm3[1]4863; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm8[1,1,1,1]4864; SSE-NEXT: psrldq {{.*#+}} xmm12 = xmm12[6,7,8,9,10,11,12,13,14,15],zero,zero,zero,zero,zero,zero4865; SSE-NEXT: punpcklwd {{.*#+}} xmm12 = xmm12[0],xmm1[0],xmm12[1],xmm1[1],xmm12[2],xmm1[2],xmm12[3],xmm1[3]4866; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm12[1,1,1,1]4867; SSE-NEXT: pshufd $230, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload4868; SSE-NEXT: # xmm2 = mem[2,1,2,3]4869; SSE-NEXT: pshuflw {{.*#+}} xmm2 = xmm2[0,3,2,3,4,5,6,7]4870; SSE-NEXT: punpckldq {{.*#+}} xmm2 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]4871; SSE-NEXT: pshuflw $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload4872; SSE-NEXT: # xmm1 = mem[1,1,1,1,4,5,6,7]4873; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4874; SSE-NEXT: punpcklwd {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3]4875; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm11[0,1,0,3]4876; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[2,2,2,2]4877; SSE-NEXT: pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,5,4,7]4878; SSE-NEXT: punpckhdq {{.*#+}} xmm0 = xmm0[2],xmm1[2],xmm0[3],xmm1[3]4879; SSE-NEXT: movsd {{.*#+}} xmm0 = xmm2[0],xmm0[1]4880; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload4881; SSE-NEXT: movaps %xmm1, (%rsi)4882; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload4883; SSE-NEXT: movaps %xmm1, 48(%rsi)4884; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload4885; SSE-NEXT: movaps %xmm1, 32(%rsi)4886; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload4887; SSE-NEXT: movaps %xmm1, 16(%rsi)4888; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload4889; SSE-NEXT: movaps %xmm1, (%rdx)4890; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload4891; SSE-NEXT: movaps %xmm1, 48(%rdx)4892; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload4893; SSE-NEXT: movaps %xmm1, 32(%rdx)4894; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload4895; SSE-NEXT: movaps %xmm1, 16(%rdx)4896; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload4897; SSE-NEXT: movaps %xmm1, (%rcx)4898; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload4899; SSE-NEXT: movaps %xmm1, 48(%rcx)4900; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload4901; SSE-NEXT: movaps %xmm1, 32(%rcx)4902; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload4903; SSE-NEXT: movaps %xmm1, 16(%rcx)4904; SSE-NEXT: movdqa %xmm15, (%r8)4905; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload4906; SSE-NEXT: movaps %xmm1, 48(%r8)4907; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload4908; SSE-NEXT: movaps %xmm1, 32(%r8)4909; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload4910; SSE-NEXT: movaps %xmm1, 16(%r8)4911; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload4912; SSE-NEXT: movaps %xmm1, (%r9)4913; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload4914; SSE-NEXT: movaps %xmm1, 48(%r9)4915; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload4916; SSE-NEXT: movaps %xmm1, 32(%r9)4917; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload4918; SSE-NEXT: movaps %xmm1, 16(%r9)4919; SSE-NEXT: movq {{[0-9]+}}(%rsp), %rax4920; SSE-NEXT: movaps %xmm6, (%rax)4921; SSE-NEXT: movaps %xmm7, 48(%rax)4922; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload4923; SSE-NEXT: movaps %xmm1, 32(%rax)4924; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload4925; SSE-NEXT: movaps %xmm1, 16(%rax)4926; SSE-NEXT: movq {{[0-9]+}}(%rsp), %rax4927; SSE-NEXT: movapd %xmm0, (%rax)4928; SSE-NEXT: movapd %xmm3, 48(%rax)4929; SSE-NEXT: movapd %xmm4, 32(%rax)4930; SSE-NEXT: movapd %xmm5, 16(%rax)4931; SSE-NEXT: addq $600, %rsp # imm = 0x2584932; SSE-NEXT: retq4933;4934; AVX-LABEL: load_i16_stride7_vf32:4935; AVX: # %bb.0:4936; AVX-NEXT: subq $680, %rsp # imm = 0x2A84937; AVX-NEXT: vmovdqa 176(%rdi), %xmm154938; AVX-NEXT: vpsrld $16, %xmm15, %xmm04939; AVX-NEXT: vmovdqa %xmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4940; AVX-NEXT: vmovdqa 160(%rdi), %xmm84941; AVX-NEXT: vpshufd {{.*#+}} xmm1 = xmm8[2,2,3,3]4942; AVX-NEXT: vmovdqa %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4943; AVX-NEXT: vpunpcklwd {{.*#+}} xmm0 = xmm1[0],xmm0[0],xmm1[1],xmm0[1],xmm1[2],xmm0[2],xmm1[3],xmm0[3]4944; AVX-NEXT: vmovdqa 128(%rdi), %xmm14945; AVX-NEXT: vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4946; AVX-NEXT: vpsrlq $16, %xmm1, %xmm14947; AVX-NEXT: vmovdqa 144(%rdi), %xmm24948; AVX-NEXT: vmovdqa %xmm2, (%rsp) # 16-byte Spill4949; AVX-NEXT: vpunpckhwd {{.*#+}} xmm1 = xmm1[4],xmm2[4],xmm1[5],xmm2[5],xmm1[6],xmm2[6],xmm1[7],xmm2[7]4950; AVX-NEXT: vpblendw {{.*#+}} xmm0 = xmm1[0,1,2,3],xmm0[4,5,6,7]4951; AVX-NEXT: vmovdqa 208(%rdi), %xmm14952; AVX-NEXT: vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4953; AVX-NEXT: vmovdqa 192(%rdi), %xmm24954; AVX-NEXT: vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4955; AVX-NEXT: vpunpcklwd {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1],xmm2[2],xmm1[2],xmm2[3],xmm1[3]4956; AVX-NEXT: vpshufd {{.*#+}} xmm1 = xmm1[0,1,2,1]4957; AVX-NEXT: vpshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,5,4,7]4958; AVX-NEXT: vpblendw {{.*#+}} xmm1 = xmm0[0,1,2,3,4,5],xmm1[6,7]4959; AVX-NEXT: vmovdqa 80(%rdi), %xmm04960; AVX-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4961; AVX-NEXT: vmovdqa 64(%rdi), %xmm24962; AVX-NEXT: vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4963; AVX-NEXT: vpunpckldq {{.*#+}} xmm0 = xmm2[0],xmm0[0],xmm2[1],xmm0[1]4964; AVX-NEXT: vmovdqa 96(%rdi), %xmm24965; AVX-NEXT: vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4966; AVX-NEXT: vpshufd {{.*#+}} xmm2 = xmm2[0,0,0,0]4967; AVX-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,5,6],xmm2[7]4968; AVX-NEXT: vmovdqa 112(%rdi), %xmm134969; AVX-NEXT: vpshufd {{.*#+}} xmm2 = xmm13[0,3,2,3]4970; AVX-NEXT: vmovdqa %xmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4971; AVX-NEXT: vpshuflw {{.*#+}} xmm2 = xmm2[0,3,2,3,4,5,6,7]4972; AVX-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm24973; AVX-NEXT: vmovdqa (%rdi), %xmm34974; AVX-NEXT: vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4975; AVX-NEXT: vmovdqa 16(%rdi), %xmm04976; AVX-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4977; AVX-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[2,2,3,3]4978; AVX-NEXT: vpshufd {{.*#+}} xmm3 = xmm3[0,1,0,3]4979; AVX-NEXT: vpshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,4,7,6,7]4980; AVX-NEXT: vpunpckhdq {{.*#+}} xmm0 = xmm3[2],xmm0[2],xmm3[3],xmm0[3]4981; AVX-NEXT: vmovaps 32(%rdi), %xmm64982; AVX-NEXT: vmovaps 48(%rdi), %xmm74983; AVX-NEXT: vinsertps {{.*#+}} xmm3 = zero,xmm6[2],xmm7[2],zero4984; AVX-NEXT: vmovaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4985; AVX-NEXT: vmovaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4986; AVX-NEXT: vpblendw {{.*#+}} xmm3 = xmm0[0,1,2],xmm3[3,4],xmm0[5,6,7]4987; AVX-NEXT: vmovaps {{.*#+}} ymm0 = [65535,65535,65535,65535,65535,0,0,0,0,0,65535,65535,65535,65535,65535,65535]4988; AVX-NEXT: vandnps %ymm2, %ymm0, %ymm24989; AVX-NEXT: vandps %ymm0, %ymm3, %ymm34990; AVX-NEXT: vorps %ymm2, %ymm3, %ymm24991; AVX-NEXT: vinsertf128 $1, %xmm1, %ymm0, %ymm14992; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4],ymm1[5,6,7]4993; AVX-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4994; AVX-NEXT: vmovdqa 400(%rdi), %xmm14995; AVX-NEXT: vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4996; AVX-NEXT: vpsrld $16, %xmm1, %xmm14997; AVX-NEXT: vmovdqa 384(%rdi), %xmm24998; AVX-NEXT: vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4999; AVX-NEXT: vpshufd {{.*#+}} xmm2 = xmm2[2,2,3,3]5000; AVX-NEXT: vpunpcklwd {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1],xmm2[2],xmm1[2],xmm2[3],xmm1[3]5001; AVX-NEXT: vmovdqa 352(%rdi), %xmm95002; AVX-NEXT: vpsrlq $16, %xmm9, %xmm25003; AVX-NEXT: vmovdqa %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5004; AVX-NEXT: vmovdqa 368(%rdi), %xmm35005; AVX-NEXT: vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5006; AVX-NEXT: vpunpckhwd {{.*#+}} xmm2 = xmm2[4],xmm3[4],xmm2[5],xmm3[5],xmm2[6],xmm3[6],xmm2[7],xmm3[7]5007; AVX-NEXT: vpblendw {{.*#+}} xmm1 = xmm2[0,1,2,3],xmm1[4,5,6,7]5008; AVX-NEXT: vmovdqa 432(%rdi), %xmm35009; AVX-NEXT: vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5010; AVX-NEXT: vmovdqa 416(%rdi), %xmm25011; AVX-NEXT: vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5012; AVX-NEXT: vpunpcklwd {{.*#+}} xmm2 = xmm2[0],xmm3[0],xmm2[1],xmm3[1],xmm2[2],xmm3[2],xmm2[3],xmm3[3]5013; AVX-NEXT: vpshufd {{.*#+}} xmm2 = xmm2[0,1,2,1]5014; AVX-NEXT: vpshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,5,4,7]5015; AVX-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,5],xmm2[6,7]5016; AVX-NEXT: vmovdqa 224(%rdi), %xmm25017; AVX-NEXT: vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5018; AVX-NEXT: vpshufd {{.*#+}} xmm2 = xmm2[0,1,0,3]5019; AVX-NEXT: vpshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,7,6,7]5020; AVX-NEXT: vmovdqa 240(%rdi), %xmm145021; AVX-NEXT: vpshufd {{.*#+}} xmm3 = xmm14[2,2,3,3]5022; AVX-NEXT: vmovdqa %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5023; AVX-NEXT: vpunpckhdq {{.*#+}} xmm2 = xmm2[2],xmm3[2],xmm2[3],xmm3[3]5024; AVX-NEXT: vmovaps 256(%rdi), %xmm55025; AVX-NEXT: vmovaps 272(%rdi), %xmm115026; AVX-NEXT: vinsertps {{.*#+}} xmm3 = zero,xmm5[2],xmm11[2],zero5027; AVX-NEXT: vmovaps %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5028; AVX-NEXT: vmovaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5029; AVX-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0,1,2],xmm3[3,4],xmm2[5,6,7]5030; AVX-NEXT: vmovdqa 304(%rdi), %xmm45031; AVX-NEXT: vmovdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5032; AVX-NEXT: vmovdqa 288(%rdi), %xmm35033; AVX-NEXT: vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5034; AVX-NEXT: vpunpckldq {{.*#+}} xmm3 = xmm3[0],xmm4[0],xmm3[1],xmm4[1]5035; AVX-NEXT: vmovdqa 320(%rdi), %xmm45036; AVX-NEXT: vmovdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5037; AVX-NEXT: vpshufd {{.*#+}} xmm4 = xmm4[0,0,0,0]5038; AVX-NEXT: vpblendw {{.*#+}} xmm3 = xmm3[0,1,2,3,4,5,6],xmm4[7]5039; AVX-NEXT: vmovdqa 336(%rdi), %xmm45040; AVX-NEXT: vmovdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5041; AVX-NEXT: vpshufd {{.*#+}} xmm4 = xmm4[0,3,2,3]5042; AVX-NEXT: vpshuflw {{.*#+}} xmm4 = xmm4[0,3,2,3,4,5,6,7]5043; AVX-NEXT: vinsertf128 $1, %xmm4, %ymm3, %ymm35044; AVX-NEXT: vandps %ymm0, %ymm2, %ymm25045; AVX-NEXT: vandnps %ymm3, %ymm0, %ymm05046; AVX-NEXT: vorps %ymm0, %ymm2, %ymm05047; AVX-NEXT: vinsertf128 $1, %xmm1, %ymm0, %ymm15048; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]5049; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5050; AVX-NEXT: vpunpckhwd {{.*#+}} xmm0 = xmm8[4],xmm15[4],xmm8[5],xmm15[5],xmm8[6],xmm15[6],xmm8[7],xmm15[7]5051; AVX-NEXT: vpshuflw {{.*#+}} xmm0 = xmm0[2,1,2,3,4,5,6,7]5052; AVX-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[0,0,0,0]5053; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload5054; AVX-NEXT: vmovdqa (%rsp), %xmm10 # 16-byte Reload5055; AVX-NEXT: vpblendw {{.*#+}} xmm1 = xmm15[0,1,2,3,4,5],xmm10[6],xmm15[7]5056; AVX-NEXT: vpshufd {{.*#+}} xmm1 = xmm1[0,3,2,3]5057; AVX-NEXT: vpshuflw {{.*#+}} xmm1 = xmm1[0,0,3,2,4,5,6,7]5058; AVX-NEXT: vpblendw {{.*#+}} xmm0 = xmm1[0,1,2,3],xmm0[4,5,6,7]5059; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload5060; AVX-NEXT: vpslld $16, %xmm1, %xmm15061; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload5062; AVX-NEXT: vpunpcklwd {{.*#+}} xmm1 = xmm8[0],xmm1[0],xmm8[1],xmm1[1],xmm8[2],xmm1[2],xmm8[3],xmm1[3]5063; AVX-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,5],xmm1[6,7]5064; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload5065; AVX-NEXT: vpsrld $16, %xmm1, %xmm15066; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload5067; AVX-NEXT: vpsrldq {{.*#+}} xmm2 = xmm2[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero5068; AVX-NEXT: vpunpckldq {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]5069; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload5070; AVX-NEXT: vpslldq {{.*#+}} xmm2 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,xmm2[0,1,2,3,4,5]5071; AVX-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,5,6],xmm2[7]5072; AVX-NEXT: vpsrld $16, %xmm13, %xmm25073; AVX-NEXT: vinsertf128 $1, %xmm2, %ymm1, %ymm15074; AVX-NEXT: vpunpckhwd {{.*#+}} xmm2 = xmm6[4],xmm7[4],xmm6[5],xmm7[5],xmm6[6],xmm7[6],xmm6[7],xmm7[7]5075; AVX-NEXT: vmovdqa {{.*#+}} xmm4 = [8,9,8,9,8,9,8,9,6,7,6,7,6,7,6,7]5076; AVX-NEXT: vpshufb %xmm4, %xmm2, %xmm25077; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload5078; AVX-NEXT: vpblendw $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm13, %xmm3 # 16-byte Folded Reload5079; AVX-NEXT: # xmm3 = xmm13[0],mem[1],xmm13[2,3,4,5,6,7]5080; AVX-NEXT: vpshufd {{.*#+}} xmm3 = xmm3[0,3,2,3]5081; AVX-NEXT: vpshuflw {{.*#+}} xmm3 = xmm3[1,0,3,3,4,5,6,7]5082; AVX-NEXT: vpblendw {{.*#+}} xmm3 = xmm3[0,1,2],xmm2[3,4],xmm3[5,6,7]5083; AVX-NEXT: vmovaps {{.*#+}} ymm2 = [65535,65535,65535,65535,65535,0,0,0,0,65535,65535,65535,65535,65535,65535,65535]5084; AVX-NEXT: vandnps %ymm1, %ymm2, %ymm15085; AVX-NEXT: vandps %ymm2, %ymm3, %ymm35086; AVX-NEXT: vorps %ymm1, %ymm3, %ymm15087; AVX-NEXT: vinsertf128 $1, %xmm0, %ymm0, %ymm05088; AVX-NEXT: vmovaps {{.*#+}} ymm2 = [65535,65535,65535,65535,65535,65535,65535,65535,65535,0,0,0,0,0,0,0]5089; AVX-NEXT: vandnps %ymm0, %ymm2, %ymm05090; AVX-NEXT: vandps %ymm2, %ymm1, %ymm15091; AVX-NEXT: vorps %ymm0, %ymm1, %ymm05092; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5093; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload5094; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5095; AVX-NEXT: vpunpckhwd {{.*#+}} xmm0 = xmm0[4],xmm3[4],xmm0[5],xmm3[5],xmm0[6],xmm3[6],xmm0[7],xmm3[7]5096; AVX-NEXT: vpshuflw {{.*#+}} xmm0 = xmm0[2,1,2,3,4,5,6,7]5097; AVX-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[0,0,0,0]5098; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload5099; AVX-NEXT: vpblendw {{.*#+}} xmm1 = xmm9[0,1,2,3,4,5],xmm7[6],xmm9[7]5100; AVX-NEXT: vpshufd {{.*#+}} xmm1 = xmm1[0,3,2,3]5101; AVX-NEXT: vpshuflw {{.*#+}} xmm1 = xmm1[0,0,3,2,4,5,6,7]5102; AVX-NEXT: vpblendw {{.*#+}} xmm0 = xmm1[0,1,2,3],xmm0[4,5,6,7]5103; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload5104; AVX-NEXT: vpslld $16, %xmm6, %xmm15105; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Reload5106; AVX-NEXT: vpunpcklwd {{.*#+}} xmm1 = xmm9[0],xmm1[0],xmm9[1],xmm1[1],xmm9[2],xmm1[2],xmm9[3],xmm1[3]5107; AVX-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,5],xmm1[6,7]5108; AVX-NEXT: vpunpckhwd {{.*#+}} xmm1 = xmm5[4],xmm11[4],xmm5[5],xmm11[5],xmm5[6],xmm11[6],xmm5[7],xmm11[7]5109; AVX-NEXT: vpshufb %xmm4, %xmm1, %xmm15110; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Reload5111; AVX-NEXT: vpblendw {{.*#+}} xmm4 = xmm14[0],xmm11[1],xmm14[2,3,4,5,6,7]5112; AVX-NEXT: vpshufd {{.*#+}} xmm4 = xmm4[0,3,2,3]5113; AVX-NEXT: vpshuflw {{.*#+}} xmm4 = xmm4[1,0,3,3,4,5,6,7]5114; AVX-NEXT: vpblendw {{.*#+}} xmm1 = xmm4[0,1,2],xmm1[3,4],xmm4[5,6,7]5115; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload5116; AVX-NEXT: vpsrld $16, %xmm14, %xmm45117; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Reload5118; AVX-NEXT: vpsrldq {{.*#+}} xmm5 = xmm12[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero5119; AVX-NEXT: vpunpckldq {{.*#+}} xmm4 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]5120; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload5121; AVX-NEXT: vpslldq {{.*#+}} xmm5 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,xmm2[0,1,2,3,4,5]5122; AVX-NEXT: vpblendw {{.*#+}} xmm4 = xmm4[0,1,2,3,4,5,6],xmm5[7]5123; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload5124; AVX-NEXT: vpsrld $16, %xmm2, %xmm55125; AVX-NEXT: vinsertf128 $1, %xmm5, %ymm4, %ymm45126; AVX-NEXT: vmovaps {{.*#+}} ymm2 = [65535,65535,65535,65535,65535,0,0,0,0,65535,65535,65535,65535,65535,65535,65535]5127; AVX-NEXT: vandps %ymm2, %ymm1, %ymm15128; AVX-NEXT: vandnps %ymm4, %ymm2, %ymm45129; AVX-NEXT: vorps %ymm4, %ymm1, %ymm15130; AVX-NEXT: vinsertf128 $1, %xmm0, %ymm0, %ymm05131; AVX-NEXT: vmovaps {{.*#+}} ymm2 = [65535,65535,65535,65535,65535,65535,65535,65535,65535,0,0,0,0,0,0,0]5132; AVX-NEXT: vandnps %ymm0, %ymm2, %ymm05133; AVX-NEXT: vandps %ymm2, %ymm1, %ymm15134; AVX-NEXT: vorps %ymm0, %ymm1, %ymm05135; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5136; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5137; AVX-NEXT: vpsllq $16, %xmm0, %xmm05138; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload5139; AVX-NEXT: vpunpckhwd {{.*#+}} xmm0 = xmm1[4],xmm0[4],xmm1[5],xmm0[5],xmm1[6],xmm0[6],xmm1[7],xmm0[7]5140; AVX-NEXT: vpshufd {{.*#+}} xmm1 = xmm10[0,3,2,3]5141; AVX-NEXT: vpshuflw {{.*#+}} xmm1 = xmm1[0,1,0,3,4,5,6,7]5142; AVX-NEXT: vpblendw {{.*#+}} xmm1 = xmm15[0,1],xmm1[2,3],xmm15[4,5,6,7]5143; AVX-NEXT: vpblendw {{.*#+}} xmm0 = xmm1[0,1,2,3],xmm0[4,5,6,7]5144; AVX-NEXT: vpsrldq {{.*#+}} xmm1 = xmm8[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero5145; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload5146; AVX-NEXT: vpunpcklwd {{.*#+}} xmm1 = xmm1[0],xmm10[0],xmm1[1],xmm10[1],xmm1[2],xmm10[2],xmm1[3],xmm10[3]5147; AVX-NEXT: vpblendw {{.*#+}} xmm1 = xmm0[0,1,2,3,4,5],xmm1[6,7]5148; AVX-NEXT: vpshufd $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload5149; AVX-NEXT: # xmm0 = mem[2,2,2,2]5150; AVX-NEXT: vpblendw $63, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload5151; AVX-NEXT: # xmm0 = mem[0,1,2,3,4,5],xmm0[6,7]5152; AVX-NEXT: vpshufd $68, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload5153; AVX-NEXT: # xmm4 = mem[0,1,0,1]5154; AVX-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,5,6],xmm4[7]5155; AVX-NEXT: vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload5156; AVX-NEXT: # xmm4 = mem[1,1,1,1]5157; AVX-NEXT: vinsertf128 $1, %xmm4, %ymm0, %ymm45158; AVX-NEXT: vpshufd $196, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload5159; AVX-NEXT: # xmm0 = mem[0,1,0,3]5160; AVX-NEXT: vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,5,4,7]5161; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload5162; AVX-NEXT: vpshufd {{.*#+}} xmm5 = xmm2[2,2,3,3]5163; AVX-NEXT: vpunpckhqdq {{.*#+}} xmm5 = xmm0[1],xmm5[1]5164; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5165; AVX-NEXT: vpunpcklwd {{.*#+}} xmm0 = xmm0[0],xmm13[0],xmm0[1],xmm13[1],xmm0[2],xmm13[2],xmm0[3],xmm13[3]5166; AVX-NEXT: vpshufd {{.*#+}} xmm15 = xmm0[2,1,2,3]5167; AVX-NEXT: vpshuflw {{.*#+}} xmm15 = xmm15[0,3,2,3,4,5,6,7]5168; AVX-NEXT: vpblendw {{.*#+}} xmm5 = xmm15[0,1],xmm5[2,3,4,5,6,7]5169; AVX-NEXT: vmovaps {{.*#+}} ymm8 = [65535,65535,65535,65535,65535,0,0,0,0,65535,65535,65535,65535,65535,65535,65535]5170; AVX-NEXT: vandnps %ymm4, %ymm8, %ymm45171; AVX-NEXT: vandps %ymm5, %ymm8, %ymm55172; AVX-NEXT: vorps %ymm4, %ymm5, %ymm45173; AVX-NEXT: vinsertf128 $1, %xmm1, %ymm0, %ymm15174; AVX-NEXT: vmovaps {{.*#+}} ymm13 = [65535,65535,65535,65535,65535,65535,65535,65535,65535,0,0,0,0,0,0,0]5175; AVX-NEXT: vandnps %ymm1, %ymm13, %ymm15176; AVX-NEXT: vandps %ymm4, %ymm13, %ymm45177; AVX-NEXT: vorps %ymm1, %ymm4, %ymm15178; AVX-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5179; AVX-NEXT: vpsllq $16, %xmm3, %xmm15180; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload5181; AVX-NEXT: vpunpckhwd {{.*#+}} xmm1 = xmm3[4],xmm1[4],xmm3[5],xmm1[5],xmm3[6],xmm1[6],xmm3[7],xmm1[7]5182; AVX-NEXT: vpshufd {{.*#+}} xmm4 = xmm7[0,3,2,3]5183; AVX-NEXT: vpshuflw {{.*#+}} xmm4 = xmm4[0,1,0,3,4,5,6,7]5184; AVX-NEXT: vpblendw $243, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4, %xmm4 # 16-byte Folded Reload5185; AVX-NEXT: # xmm4 = mem[0,1],xmm4[2,3],mem[4,5,6,7]5186; AVX-NEXT: vpblendw {{.*#+}} xmm1 = xmm4[0,1,2,3],xmm1[4,5,6,7]5187; AVX-NEXT: vpsrldq {{.*#+}} xmm4 = xmm9[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero5188; AVX-NEXT: vpunpcklwd {{.*#+}} xmm4 = xmm4[0],xmm6[0],xmm4[1],xmm6[1],xmm4[2],xmm6[2],xmm4[3],xmm6[3]5189; AVX-NEXT: vpblendw {{.*#+}} xmm4 = xmm1[0,1,2,3,4,5],xmm4[6,7]5190; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload5191; AVX-NEXT: vpshufd {{.*#+}} xmm1 = xmm8[0,1,0,3]5192; AVX-NEXT: vpshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,5,4,7]5193; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload5194; AVX-NEXT: vpshufd {{.*#+}} xmm5 = xmm7[2,2,3,3]5195; AVX-NEXT: vpunpckhqdq {{.*#+}} xmm5 = xmm1[1],xmm5[1]5196; AVX-NEXT: vpunpcklwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm11, %xmm1 # 16-byte Folded Reload5197; AVX-NEXT: # xmm1 = xmm11[0],mem[0],xmm11[1],mem[1],xmm11[2],mem[2],xmm11[3],mem[3]5198; AVX-NEXT: vpshufd {{.*#+}} xmm15 = xmm1[2,1,2,3]5199; AVX-NEXT: vpshuflw {{.*#+}} xmm15 = xmm15[0,3,2,3,4,5,6,7]5200; AVX-NEXT: vpblendw {{.*#+}} xmm5 = xmm15[0,1],xmm5[2,3,4,5,6,7]5201; AVX-NEXT: vpshufd {{.*#+}} xmm15 = xmm14[2,2,2,2]5202; AVX-NEXT: vpblendw {{.*#+}} xmm15 = xmm12[0,1,2,3,4,5],xmm15[6,7]5203; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Reload5204; AVX-NEXT: vpshufd {{.*#+}} xmm14 = xmm9[0,1,0,1]5205; AVX-NEXT: vpblendw {{.*#+}} xmm14 = xmm15[0,1,2,3,4,5,6],xmm14[7]5206; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Reload5207; AVX-NEXT: vpshufd {{.*#+}} xmm15 = xmm11[1,1,1,1]5208; AVX-NEXT: vinsertf128 $1, %xmm15, %ymm14, %ymm145209; AVX-NEXT: vmovaps {{.*#+}} ymm3 = [65535,65535,65535,65535,65535,0,0,0,0,65535,65535,65535,65535,65535,65535,65535]5210; AVX-NEXT: vandps %ymm3, %ymm5, %ymm55211; AVX-NEXT: vandnps %ymm14, %ymm3, %ymm145212; AVX-NEXT: vorps %ymm5, %ymm14, %ymm55213; AVX-NEXT: vinsertf128 $1, %xmm4, %ymm0, %ymm45214; AVX-NEXT: vandnps %ymm4, %ymm13, %ymm45215; AVX-NEXT: vandps %ymm5, %ymm13, %ymm55216; AVX-NEXT: vmovaps %ymm13, %ymm65217; AVX-NEXT: vorps %ymm4, %ymm5, %ymm45218; AVX-NEXT: vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5219; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload5220; AVX-NEXT: vpunpcklwd (%rsp), %xmm3, %xmm4 # 16-byte Folded Reload5221; AVX-NEXT: # xmm4 = xmm3[0],mem[0],xmm3[1],mem[1],xmm3[2],mem[2],xmm3[3],mem[3]5222; AVX-NEXT: vpshufd {{.*#+}} xmm4 = xmm4[2,1,2,3]5223; AVX-NEXT: vpshuflw {{.*#+}} xmm4 = xmm4[0,0,3,3,4,5,6,7]5224; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload5225; AVX-NEXT: vpblendw $191, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3, %xmm5 # 16-byte Folded Reload5226; AVX-NEXT: # xmm5 = mem[0,1,2,3,4,5],xmm3[6],mem[7]5227; AVX-NEXT: vpshuflw {{.*#+}} xmm5 = xmm5[0,0,0,0,4,5,6,7]5228; AVX-NEXT: vpshufhw {{.*#+}} xmm5 = xmm5[0,1,2,3,7,6,6,7]5229; AVX-NEXT: vpblendw {{.*#+}} xmm5 = xmm5[0],xmm4[1,2],xmm5[3,4,5,6,7]5230; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload5231; AVX-NEXT: vpunpckhwd {{.*#+}} xmm4 = xmm4[4],xmm10[4],xmm4[5],xmm10[5],xmm4[6],xmm10[6],xmm4[7],xmm10[7]5232; AVX-NEXT: vpshuflw {{.*#+}} xmm14 = xmm4[2,1,2,3,4,5,6,7]5233; AVX-NEXT: vpshufd {{.*#+}} xmm14 = xmm14[0,0,0,0]5234; AVX-NEXT: vpblendw {{.*#+}} xmm14 = xmm5[0,1,2,3,4,5],xmm14[6,7]5235; AVX-NEXT: vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,6,5,6,7]5236; AVX-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[2,2,2,2]5237; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload5238; AVX-NEXT: vpblendw {{.*#+}} xmm5 = xmm2[0],xmm10[1],xmm2[2,3,4,5,6,7]5239; AVX-NEXT: vpshuflw {{.*#+}} xmm5 = xmm5[0,1,1,0,4,5,6,7]5240; AVX-NEXT: vpshufhw {{.*#+}} xmm5 = xmm5[0,1,2,3,7,7,7,7]5241; AVX-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1],xmm5[2,3,4,5,6,7]5242; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload5243; AVX-NEXT: vpunpckhwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm3, %xmm5 # 16-byte Folded Reload5244; AVX-NEXT: # xmm5 = xmm3[4],mem[4],xmm3[5],mem[5],xmm3[6],mem[6],xmm3[7],mem[7]5245; AVX-NEXT: vpshufd {{.*#+}} xmm5 = xmm5[0,1,2,1]5246; AVX-NEXT: vpshufhw {{.*#+}} xmm5 = xmm5[0,1,2,3,4,4,7,7]5247; AVX-NEXT: vpunpckhwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm5, %xmm15 # 16-byte Folded Reload5248; AVX-NEXT: # xmm15 = xmm5[4],mem[4],xmm5[5],mem[5],xmm5[6],mem[6],xmm5[7],mem[7]5249; AVX-NEXT: vmovdqa {{.*#+}} xmm5 = [4,5,2,3,4,5,6,7,8,9,4,5,8,9,2,3]5250; AVX-NEXT: vpshufb %xmm5, %xmm15, %xmm155251; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Reload5252; AVX-NEXT: vpsrlq $48, %xmm12, %xmm135253; AVX-NEXT: vinsertf128 $1, %xmm13, %ymm15, %ymm135254; AVX-NEXT: vmovaps {{.*#+}} ymm15 = [65535,65535,65535,65535,65535,0,0,0,0,65535,65535,65535,65535,65535,65535,65535]5255; AVX-NEXT: vandps %ymm0, %ymm15, %ymm05256; AVX-NEXT: vandnps %ymm13, %ymm15, %ymm135257; AVX-NEXT: vorps %ymm0, %ymm13, %ymm05258; AVX-NEXT: vinsertf128 $1, %xmm14, %ymm0, %ymm135259; AVX-NEXT: vandnps %ymm13, %ymm6, %ymm135260; AVX-NEXT: vandps %ymm6, %ymm0, %ymm05261; AVX-NEXT: vorps %ymm0, %ymm13, %ymm05262; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5263; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload5264; AVX-NEXT: vpunpcklwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm3, %xmm0 # 16-byte Folded Reload5265; AVX-NEXT: # xmm0 = xmm3[0],mem[0],xmm3[1],mem[1],xmm3[2],mem[2],xmm3[3],mem[3]5266; AVX-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[2,1,2,3]5267; AVX-NEXT: vpshuflw {{.*#+}} xmm0 = xmm0[0,0,3,3,4,5,6,7]5268; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload5269; AVX-NEXT: vpblendw $64, {{[-0-9]+}}(%r{{[sb]}}p), %xmm6, %xmm13 # 16-byte Folded Reload5270; AVX-NEXT: # xmm13 = xmm6[0,1,2,3,4,5],mem[6],xmm6[7]5271; AVX-NEXT: vpshuflw {{.*#+}} xmm13 = xmm13[0,0,0,0,4,5,6,7]5272; AVX-NEXT: vpshufhw {{.*#+}} xmm13 = xmm13[0,1,2,3,7,6,6,7]5273; AVX-NEXT: vpblendw {{.*#+}} xmm13 = xmm13[0],xmm0[1,2],xmm13[3,4,5,6,7]5274; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5275; AVX-NEXT: vpunpckhwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload5276; AVX-NEXT: # xmm0 = xmm0[4],mem[4],xmm0[5],mem[5],xmm0[6],mem[6],xmm0[7],mem[7]5277; AVX-NEXT: vpshuflw {{.*#+}} xmm14 = xmm0[2,1,2,3,4,5,6,7]5278; AVX-NEXT: vpshufd {{.*#+}} xmm14 = xmm14[0,0,0,0]5279; AVX-NEXT: vpblendw {{.*#+}} xmm13 = xmm13[0,1,2,3,4,5],xmm14[6,7]5280; AVX-NEXT: vpshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,6,5,6,7]5281; AVX-NEXT: vpshufd {{.*#+}} xmm1 = xmm1[2,2,2,2]5282; AVX-NEXT: vpblendw {{.*#+}} xmm14 = xmm7[0],xmm8[1],xmm7[2,3,4,5,6,7]5283; AVX-NEXT: vpshuflw {{.*#+}} xmm14 = xmm14[0,1,1,0,4,5,6,7]5284; AVX-NEXT: vpshufhw {{.*#+}} xmm14 = xmm14[0,1,2,3,7,7,7,7]5285; AVX-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1],xmm14[2,3,4,5,6,7]5286; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload5287; AVX-NEXT: vpunpckhwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm14 # 16-byte Folded Reload5288; AVX-NEXT: # xmm14 = xmm2[4],mem[4],xmm2[5],mem[5],xmm2[6],mem[6],xmm2[7],mem[7]5289; AVX-NEXT: vpshufd {{.*#+}} xmm14 = xmm14[0,1,2,1]5290; AVX-NEXT: vpshufhw {{.*#+}} xmm14 = xmm14[0,1,2,3,4,4,7,7]5291; AVX-NEXT: vpunpckhwd {{.*#+}} xmm14 = xmm14[4],xmm9[4],xmm14[5],xmm9[5],xmm14[6],xmm9[6],xmm14[7],xmm9[7]5292; AVX-NEXT: vpshufb %xmm5, %xmm14, %xmm55293; AVX-NEXT: vpsrlq $48, %xmm11, %xmm145294; AVX-NEXT: vinsertf128 $1, %xmm14, %ymm5, %ymm55295; AVX-NEXT: vandps %ymm1, %ymm15, %ymm15296; AVX-NEXT: vandnps %ymm5, %ymm15, %ymm25297; AVX-NEXT: vorps %ymm2, %ymm1, %ymm15298; AVX-NEXT: vinsertf128 $1, %xmm13, %ymm0, %ymm25299; AVX-NEXT: vmovaps {{.*#+}} ymm5 = [65535,65535,65535,65535,65535,65535,65535,65535,65535,0,0,0,0,0,0,0]5300; AVX-NEXT: vandnps %ymm2, %ymm5, %ymm25301; AVX-NEXT: vandps %ymm5, %ymm1, %ymm15302; AVX-NEXT: vorps %ymm2, %ymm1, %ymm15303; AVX-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5304; AVX-NEXT: vpshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload5305; AVX-NEXT: # xmm1 = mem[1,1,1,1]5306; AVX-NEXT: vmovdqa (%rsp), %xmm11 # 16-byte Reload5307; AVX-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1],xmm11[2,3],xmm1[4,5,6,7]5308; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload5309; AVX-NEXT: vpshufd {{.*#+}} xmm2 = xmm15[0,3,2,3]5310; AVX-NEXT: vpshuflw {{.*#+}} xmm2 = xmm2[0,1,0,3,4,5,6,7]5311; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload5312; AVX-NEXT: vpunpckldq {{.*#+}} xmm2 = xmm2[0],xmm8[0],xmm2[1],xmm8[1]5313; AVX-NEXT: vpblendw {{.*#+}} xmm1 = xmm2[0],xmm1[1,2],xmm2[3,4,5,6,7]5314; AVX-NEXT: vpshufd {{.*#+}} xmm2 = xmm4[0,1,2,1]5315; AVX-NEXT: vpshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,5,4,7]5316; AVX-NEXT: vpblendw {{.*#+}} xmm2 = xmm1[0,1,2,3,4,5],xmm2[6,7]5317; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload5318; AVX-NEXT: vpsrlq $48, %xmm1, %xmm15319; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload5320; AVX-NEXT: vpshufd {{.*#+}} xmm4 = xmm7[2,3,2,3]5321; AVX-NEXT: vpunpcklwd {{.*#+}} xmm1 = xmm4[0],xmm1[0],xmm4[1],xmm1[1],xmm4[2],xmm1[2],xmm4[3],xmm1[3]5322; AVX-NEXT: vpsrlq $16, %xmm10, %xmm45323; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Reload5324; AVX-NEXT: vpunpcklwd {{.*#+}} xmm4 = xmm4[0],xmm9[0],xmm4[1],xmm9[1],xmm4[2],xmm9[2],xmm4[3],xmm9[3]5325; AVX-NEXT: vpblendw {{.*#+}} xmm4 = xmm1[0,1],xmm4[2,3],xmm1[4,5,6,7]5326; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload5327; AVX-NEXT: vpshufd {{.*#+}} xmm1 = xmm14[0,1,0,3]5328; AVX-NEXT: vpshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,5,4,7]5329; AVX-NEXT: vpunpckhdq {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload5330; AVX-NEXT: # xmm1 = xmm1[2],mem[2],xmm1[3],mem[3]5331; AVX-NEXT: vpunpckhwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm5 # 16-byte Folded Reload5332; AVX-NEXT: # xmm5 = xmm1[4],mem[4],xmm1[5],mem[5],xmm1[6],mem[6],xmm1[7],mem[7]5333; AVX-NEXT: vmovdqa {{.*#+}} xmm1 = [12,13,14,15,4,5,6,7,0,1,4,5,8,9,6,7]5334; AVX-NEXT: vpshufb %xmm1, %xmm5, %xmm55335; AVX-NEXT: vpshufd {{.*#+}} xmm13 = xmm12[2,3,2,3]5336; AVX-NEXT: vinsertf128 $1, %xmm13, %ymm5, %ymm55337; AVX-NEXT: vblendps {{.*#+}} ymm4 = ymm4[0,1],ymm5[2,3,4,5,6,7]5338; AVX-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm25339; AVX-NEXT: vmovaps {{.*#+}} ymm13 = [65535,65535,65535,65535,65535,65535,65535,65535,65535,0,0,0,0,0,0,0]5340; AVX-NEXT: vandnps %ymm2, %ymm13, %ymm25341; AVX-NEXT: vandps %ymm4, %ymm13, %ymm45342; AVX-NEXT: vorps %ymm2, %ymm4, %ymm25343; AVX-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5344; AVX-NEXT: vpshufd {{.*#+}} xmm2 = xmm3[1,1,1,1]5345; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Reload5346; AVX-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0,1],xmm12[2,3],xmm2[4,5,6,7]5347; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload5348; AVX-NEXT: vpshufd {{.*#+}} xmm4 = xmm5[0,3,2,3]5349; AVX-NEXT: vpshuflw {{.*#+}} xmm4 = xmm4[0,1,0,3,4,5,6,7]5350; AVX-NEXT: vpunpckldq {{.*#+}} xmm4 = xmm4[0],xmm6[0],xmm4[1],xmm6[1]5351; AVX-NEXT: vpblendw {{.*#+}} xmm2 = xmm4[0],xmm2[1,2],xmm4[3,4,5,6,7]5352; AVX-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[0,1,2,1]5353; AVX-NEXT: vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,5,4,7]5354; AVX-NEXT: vpblendw {{.*#+}} xmm0 = xmm2[0,1,2,3,4,5],xmm0[6,7]5355; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload5356; AVX-NEXT: vpsrlq $48, %xmm10, %xmm25357; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload5358; AVX-NEXT: vpshufd {{.*#+}} xmm4 = xmm6[2,3,2,3]5359; AVX-NEXT: vpunpcklwd {{.*#+}} xmm2 = xmm4[0],xmm2[0],xmm4[1],xmm2[1],xmm4[2],xmm2[2],xmm4[3],xmm2[3]5360; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload5361; AVX-NEXT: vpsrlq $16, %xmm3, %xmm45362; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload5363; AVX-NEXT: vpunpcklwd {{.*#+}} xmm4 = xmm4[0],xmm3[0],xmm4[1],xmm3[1],xmm4[2],xmm3[2],xmm4[3],xmm3[3]5364; AVX-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0,1],xmm4[2,3],xmm2[4,5,6,7]5365; AVX-NEXT: vpshufd $196, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload5366; AVX-NEXT: # xmm4 = mem[0,1,0,3]5367; AVX-NEXT: vpshufhw {{.*#+}} xmm4 = xmm4[0,1,2,3,4,5,4,7]5368; AVX-NEXT: vpunpckhdq {{[-0-9]+}}(%r{{[sb]}}p), %xmm4, %xmm4 # 16-byte Folded Reload5369; AVX-NEXT: # xmm4 = xmm4[2],mem[2],xmm4[3],mem[3]5370; AVX-NEXT: vpunpckhwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm4, %xmm4 # 16-byte Folded Reload5371; AVX-NEXT: # xmm4 = xmm4[4],mem[4],xmm4[5],mem[5],xmm4[6],mem[6],xmm4[7],mem[7]5372; AVX-NEXT: vpshufb %xmm1, %xmm4, %xmm15373; AVX-NEXT: vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload5374; AVX-NEXT: # xmm4 = mem[2,3,2,3]5375; AVX-NEXT: vinsertf128 $1, %xmm4, %ymm1, %ymm15376; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3,4,5,6,7]5377; AVX-NEXT: vinsertf128 $1, %xmm0, %ymm0, %ymm05378; AVX-NEXT: vandnps %ymm0, %ymm13, %ymm05379; AVX-NEXT: vandps %ymm1, %ymm13, %ymm15380; AVX-NEXT: vorps %ymm0, %ymm1, %ymm05381; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5382; AVX-NEXT: vpsrlq $48, %xmm11, %xmm05383; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload5384; AVX-NEXT: vpsrldq {{.*#+}} xmm1 = xmm1[6,7,8,9,10,11,12,13,14,15],zero,zero,zero,zero,zero,zero5385; AVX-NEXT: vpunpckldq {{.*#+}} xmm0 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]5386; AVX-NEXT: vpunpcklwd {{.*#+}} xmm1 = xmm8[0],xmm15[0],xmm8[1],xmm15[1],xmm8[2],xmm15[2],xmm8[3],xmm15[3]5387; AVX-NEXT: vmovdqa {{.*#+}} xmm15 = [8,9,8,9,8,9,8,9,6,7,6,7,6,7,6,7]5388; AVX-NEXT: vpshufb %xmm15, %xmm1, %xmm15389; AVX-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2],xmm1[3,4],xmm0[5,6,7]5390; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload5391; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Reload5392; AVX-NEXT: vpblendw {{.*#+}} xmm1 = xmm13[0,1,2,3,4,5],xmm11[6],xmm13[7]5393; AVX-NEXT: vpshufd {{.*#+}} xmm1 = xmm1[0,1,0,3]5394; AVX-NEXT: vpshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,4,7,6]5395; AVX-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2,3,4],xmm1[5,6,7]5396; AVX-NEXT: vpsrld $16, %xmm7, %xmm15397; AVX-NEXT: vpunpckhwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload5398; AVX-NEXT: # xmm1 = xmm1[4],mem[4],xmm1[5],mem[5],xmm1[6],mem[6],xmm1[7],mem[7]5399; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload5400; AVX-NEXT: vpunpcklwd {{.*#+}} xmm2 = xmm2[0],xmm9[0],xmm2[1],xmm9[1],xmm2[2],xmm9[2],xmm2[3],xmm9[3]5401; AVX-NEXT: vpshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,6,5,6,7]5402; AVX-NEXT: vpshufd {{.*#+}} xmm2 = xmm2[2,2,2,2]5403; AVX-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1],xmm2[2,3],xmm1[4,5,6,7]5404; AVX-NEXT: vpblendw $253, {{[-0-9]+}}(%r{{[sb]}}p), %xmm14, %xmm2 # 16-byte Folded Reload5405; AVX-NEXT: # xmm2 = mem[0],xmm14[1],mem[2,3,4,5,6,7]5406; AVX-NEXT: vpshufd {{.*#+}} xmm2 = xmm2[0,1,0,3]5407; AVX-NEXT: vpshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,5,4,7,7]5408; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload5409; AVX-NEXT: vpunpckhwd {{.*#+}} xmm2 = xmm2[4],xmm14[4],xmm2[5],xmm14[5],xmm2[6],xmm14[6],xmm2[7],xmm14[7]5410; AVX-NEXT: vpshuflw {{.*#+}} xmm2 = xmm2[0,2,2,3,4,5,6,7]5411; AVX-NEXT: vpshufd {{.*#+}} xmm2 = xmm2[0,1,0,2]5412; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload5413; AVX-NEXT: vpsrldq {{.*#+}} xmm4 = xmm4[10,11,12,13,14,15],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero5414; AVX-NEXT: vinsertf128 $1, %xmm4, %ymm2, %ymm25415; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm1[0,1],ymm2[2,3,4,5,6,7]5416; AVX-NEXT: vinsertf128 $1, %xmm0, %ymm0, %ymm05417; AVX-NEXT: vmovaps {{.*#+}} ymm2 = [65535,65535,65535,65535,65535,65535,65535,65535,65535,0,0,0,0,0,0,0]5418; AVX-NEXT: vandnps %ymm0, %ymm2, %ymm05419; AVX-NEXT: vandps %ymm2, %ymm1, %ymm15420; AVX-NEXT: vorps %ymm0, %ymm1, %ymm05421; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5422; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5423; AVX-NEXT: vpunpcklwd {{.*#+}} xmm1 = xmm0[0],xmm5[0],xmm0[1],xmm5[1],xmm0[2],xmm5[2],xmm0[3],xmm5[3]5424; AVX-NEXT: vpshufb %xmm15, %xmm1, %xmm15425; AVX-NEXT: vpsrlq $48, %xmm12, %xmm25426; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5427; AVX-NEXT: vpsrldq {{.*#+}} xmm4 = xmm0[6,7,8,9,10,11,12,13,14,15],zero,zero,zero,zero,zero,zero5428; AVX-NEXT: vpunpckldq {{.*#+}} xmm2 = xmm4[0],xmm2[0],xmm4[1],xmm2[1]5429; AVX-NEXT: vpblendw {{.*#+}} xmm1 = xmm2[0,1,2],xmm1[3,4],xmm2[5,6,7]5430; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload5431; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5432; AVX-NEXT: vpblendw {{.*#+}} xmm2 = xmm7[0,1,2,3,4,5],xmm0[6],xmm7[7]5433; AVX-NEXT: vpshufd {{.*#+}} xmm2 = xmm2[0,1,0,3]5434; AVX-NEXT: vpshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,4,7,6]5435; AVX-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1,2,3,4],xmm2[5,6,7]5436; AVX-NEXT: vpsrld $16, %xmm6, %xmm25437; AVX-NEXT: vpunpckhwd {{.*#+}} xmm2 = xmm2[4],xmm10[4],xmm2[5],xmm10[5],xmm2[6],xmm10[6],xmm2[7],xmm10[7]5438; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload5439; AVX-NEXT: vpunpcklwd {{.*#+}} xmm4 = xmm6[0],xmm3[0],xmm6[1],xmm3[1],xmm6[2],xmm3[2],xmm6[3],xmm3[3]5440; AVX-NEXT: vmovdqa %xmm3, %xmm105441; AVX-NEXT: vpshufhw {{.*#+}} xmm4 = xmm4[0,1,2,3,6,5,6,7]5442; AVX-NEXT: vpshufd {{.*#+}} xmm4 = xmm4[2,2,2,2]5443; AVX-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0,1],xmm4[2,3],xmm2[4,5,6,7]5444; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload5445; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Reload5446; AVX-NEXT: vpblendw {{.*#+}} xmm4 = xmm9[0],xmm15[1],xmm9[2,3,4,5,6,7]5447; AVX-NEXT: vpshufd {{.*#+}} xmm4 = xmm4[0,1,0,3]5448; AVX-NEXT: vpshufhw {{.*#+}} xmm4 = xmm4[0,1,2,3,5,4,7,7]5449; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload5450; AVX-NEXT: vpunpckhwd {{.*#+}} xmm4 = xmm4[4],xmm8[4],xmm4[5],xmm8[5],xmm4[6],xmm8[6],xmm4[7],xmm8[7]5451; AVX-NEXT: vpshuflw {{.*#+}} xmm4 = xmm4[0,2,2,3,4,5,6,7]5452; AVX-NEXT: vpshufd {{.*#+}} xmm4 = xmm4[0,1,0,2]5453; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload5454; AVX-NEXT: vpsrldq {{.*#+}} xmm5 = xmm3[10,11,12,13,14,15],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero5455; AVX-NEXT: vinsertf128 $1, %xmm5, %ymm4, %ymm45456; AVX-NEXT: vblendps {{.*#+}} ymm2 = ymm2[0,1],ymm4[2,3,4,5,6,7]5457; AVX-NEXT: vinsertf128 $1, %xmm1, %ymm0, %ymm15458; AVX-NEXT: vmovaps {{.*#+}} ymm4 = [65535,65535,65535,65535,65535,65535,65535,65535,65535,0,0,0,0,0,0,0]5459; AVX-NEXT: vandnps %ymm1, %ymm4, %ymm15460; AVX-NEXT: vandps %ymm4, %ymm2, %ymm25461; AVX-NEXT: vorps %ymm1, %ymm2, %ymm15462; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload5463; AVX-NEXT: vinsertps $41, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm2 # 16-byte Folded Reload5464; AVX-NEXT: # xmm2 = zero,xmm2[1],mem[0],zero5465; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload5466; AVX-NEXT: vpunpckhdq (%rsp), %xmm4, %xmm4 # 16-byte Folded Reload5467; AVX-NEXT: # xmm4 = xmm4[2],mem[2],xmm4[3],mem[3]5468; AVX-NEXT: vpblendw {{.*#+}} xmm2 = xmm4[0,1,2],xmm2[3,4],xmm4[5,6,7]5469; AVX-NEXT: vpblendw {{.*#+}} xmm4 = xmm11[0],xmm13[1],xmm11[2,3,4,5,6,7]5470; AVX-NEXT: vpshufd {{.*#+}} xmm4 = xmm4[0,1,0,3]5471; AVX-NEXT: vpshufhw {{.*#+}} xmm4 = xmm4[0,1,2,3,4,5,4,7]5472; AVX-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0,1,2,3,4],xmm4[5,6,7]5473; AVX-NEXT: vpshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload5474; AVX-NEXT: # xmm4 = mem[1,1,1,1]5475; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload5476; AVX-NEXT: vpsrldq {{.*#+}} xmm5 = xmm5[6,7,8,9,10,11,12,13,14,15],zero,zero,zero,zero,zero,zero5477; AVX-NEXT: vpunpcklwd {{.*#+}} xmm4 = xmm5[0],xmm4[0],xmm5[1],xmm4[1],xmm5[2],xmm4[2],xmm5[3],xmm4[3]5478; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload5479; AVX-NEXT: vpunpckhwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm5, %xmm5 # 16-byte Folded Reload5480; AVX-NEXT: # xmm5 = xmm5[4],mem[4],xmm5[5],mem[5],xmm5[6],mem[6],xmm5[7],mem[7]5481; AVX-NEXT: vpshufd {{.*#+}} xmm5 = xmm5[2,1,2,3]5482; AVX-NEXT: vpshuflw {{.*#+}} xmm5 = xmm5[0,3,2,3,4,5,6,7]5483; AVX-NEXT: vpblendw {{.*#+}} xmm4 = xmm5[0,1],xmm4[2,3],xmm5[4,5,6,7]5484; AVX-NEXT: vpmovzxwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Folded Reload5485; AVX-NEXT: # xmm5 = mem[0],zero,mem[1],zero,mem[2],zero,mem[3],zero5486; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Reload5487; AVX-NEXT: vpunpcklwd {{.*#+}} xmm5 = xmm11[0],xmm5[0],xmm11[1],xmm5[1],xmm11[2],xmm5[2],xmm11[3],xmm5[3]5488; AVX-NEXT: vpshufd {{.*#+}} xmm12 = xmm14[0,1,0,3]5489; AVX-NEXT: vpshufhw {{.*#+}} xmm12 = xmm12[0,1,2,3,4,5,4,7]5490; AVX-NEXT: vpblendw {{.*#+}} xmm5 = xmm5[0,1,2,3,4,5],xmm12[6,7]5491; AVX-NEXT: vpermilps $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Folded Reload5492; AVX-NEXT: # xmm12 = mem[3,3,3,3]5493; AVX-NEXT: vinsertf128 $1, %xmm12, %ymm5, %ymm55494; AVX-NEXT: vblendps {{.*#+}} ymm4 = ymm4[0,1],ymm5[2,3,4,5,6,7]5495; AVX-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm25496; AVX-NEXT: vmovaps {{.*#+}} ymm11 = [65535,65535,65535,65535,65535,65535,65535,65535,65535,0,0,0,0,0,0,0]5497; AVX-NEXT: vandnps %ymm2, %ymm11, %ymm25498; AVX-NEXT: vandps %ymm4, %ymm11, %ymm45499; AVX-NEXT: vorps %ymm2, %ymm4, %ymm25500; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload5501; AVX-NEXT: vinsertps $41, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4, %xmm4 # 16-byte Folded Reload5502; AVX-NEXT: # xmm4 = zero,xmm4[1],mem[0],zero5503; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload5504; AVX-NEXT: vpunpckhdq {{[-0-9]+}}(%r{{[sb]}}p), %xmm5, %xmm5 # 16-byte Folded Reload5505; AVX-NEXT: # xmm5 = xmm5[2],mem[2],xmm5[3],mem[3]5506; AVX-NEXT: vpblendw {{.*#+}} xmm4 = xmm5[0,1,2],xmm4[3,4],xmm5[5,6,7]5507; AVX-NEXT: vpblendw {{.*#+}} xmm5 = xmm0[0],xmm7[1],xmm0[2,3,4,5,6,7]5508; AVX-NEXT: vpshufd {{.*#+}} xmm5 = xmm5[0,1,0,3]5509; AVX-NEXT: vpshufhw {{.*#+}} xmm5 = xmm5[0,1,2,3,4,5,4,7]5510; AVX-NEXT: vpblendw {{.*#+}} xmm4 = xmm4[0,1,2,3,4],xmm5[5,6,7]5511; AVX-NEXT: vpshufd {{.*#+}} xmm5 = xmm10[1,1,1,1]5512; AVX-NEXT: vpsrldq {{.*#+}} xmm6 = xmm6[6,7,8,9,10,11,12,13,14,15],zero,zero,zero,zero,zero,zero5513; AVX-NEXT: vpunpcklwd {{.*#+}} xmm5 = xmm6[0],xmm5[0],xmm6[1],xmm5[1],xmm6[2],xmm5[2],xmm6[3],xmm5[3]5514; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5515; AVX-NEXT: vpunpckhwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm6 # 16-byte Folded Reload5516; AVX-NEXT: # xmm6 = xmm0[4],mem[4],xmm0[5],mem[5],xmm0[6],mem[6],xmm0[7],mem[7]5517; AVX-NEXT: vpshufd {{.*#+}} xmm6 = xmm6[2,1,2,3]5518; AVX-NEXT: vpshuflw {{.*#+}} xmm6 = xmm6[0,3,2,3,4,5,6,7]5519; AVX-NEXT: vpblendw {{.*#+}} xmm5 = xmm6[0,1],xmm5[2,3],xmm6[4,5,6,7]5520; AVX-NEXT: vpmovzxwd {{.*#+}} xmm6 = xmm9[0],zero,xmm9[1],zero,xmm9[2],zero,xmm9[3],zero5521; AVX-NEXT: vpunpcklwd {{.*#+}} xmm6 = xmm15[0],xmm6[0],xmm15[1],xmm6[1],xmm15[2],xmm6[2],xmm15[3],xmm6[3]5522; AVX-NEXT: vpshufd {{.*#+}} xmm7 = xmm8[0,1,0,3]5523; AVX-NEXT: vpshufhw {{.*#+}} xmm7 = xmm7[0,1,2,3,4,5,4,7]5524; AVX-NEXT: vpblendw {{.*#+}} xmm6 = xmm6[0,1,2,3,4,5],xmm7[6,7]5525; AVX-NEXT: vpshufd {{.*#+}} xmm7 = xmm3[3,3,3,3]5526; AVX-NEXT: vinsertf128 $1, %xmm7, %ymm6, %ymm65527; AVX-NEXT: vblendps {{.*#+}} ymm5 = ymm5[0,1],ymm6[2,3,4,5,6,7]5528; AVX-NEXT: vinsertf128 $1, %xmm4, %ymm0, %ymm45529; AVX-NEXT: vandnps %ymm4, %ymm11, %ymm45530; AVX-NEXT: vandps %ymm5, %ymm11, %ymm35531; AVX-NEXT: vorps %ymm4, %ymm3, %ymm35532; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5533; AVX-NEXT: vmovaps %ymm0, 32(%rsi)5534; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload5535; AVX-NEXT: vmovaps %ymm4, (%rsi)5536; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5537; AVX-NEXT: vmovaps %ymm0, 32(%rdx)5538; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5539; AVX-NEXT: vmovaps %ymm0, (%rdx)5540; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5541; AVX-NEXT: vmovaps %ymm0, 32(%rcx)5542; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5543; AVX-NEXT: vmovaps %ymm0, (%rcx)5544; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5545; AVX-NEXT: vmovaps %ymm0, 32(%r8)5546; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5547; AVX-NEXT: vmovaps %ymm0, (%r8)5548; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5549; AVX-NEXT: vmovaps %ymm0, 32(%r9)5550; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5551; AVX-NEXT: vmovaps %ymm0, (%r9)5552; AVX-NEXT: movq {{[0-9]+}}(%rsp), %rax5553; AVX-NEXT: vmovaps %ymm1, 32(%rax)5554; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5555; AVX-NEXT: vmovaps %ymm0, (%rax)5556; AVX-NEXT: movq {{[0-9]+}}(%rsp), %rax5557; AVX-NEXT: vmovaps %ymm3, 32(%rax)5558; AVX-NEXT: vmovaps %ymm2, (%rax)5559; AVX-NEXT: addq $680, %rsp # imm = 0x2A85560; AVX-NEXT: vzeroupper5561; AVX-NEXT: retq5562;5563; AVX2-LABEL: load_i16_stride7_vf32:5564; AVX2: # %bb.0:5565; AVX2-NEXT: subq $520, %rsp # imm = 0x2085566; AVX2-NEXT: vmovdqa 288(%rdi), %ymm145567; AVX2-NEXT: vmovdqa 320(%rdi), %ymm95568; AVX2-NEXT: vmovdqa 256(%rdi), %ymm55569; AVX2-NEXT: vmovdqa 224(%rdi), %ymm135570; AVX2-NEXT: vmovdqa (%rdi), %ymm75571; AVX2-NEXT: vmovdqa 32(%rdi), %ymm65572; AVX2-NEXT: vmovdqa 64(%rdi), %ymm115573; AVX2-NEXT: vmovdqa 96(%rdi), %ymm85574; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm8[0],ymm11[1],ymm8[2,3,4],ymm11[5],ymm8[6,7]5575; AVX2-NEXT: vpermq {{.*#+}} ymm1 = ymm0[0,2,2,3]5576; AVX2-NEXT: vmovdqa {{.*#+}} ymm0 = [0,1,14,15,12,13,14,15,2,3,6,7,12,13,2,3,16,17,30,31,28,29,30,31,18,19,22,23,28,29,18,19]5577; AVX2-NEXT: vpshufb %ymm0, %ymm1, %ymm25578; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm7[0,1],ymm6[2],ymm7[3,4,5],ymm6[6],ymm7[7]5579; AVX2-NEXT: vextracti128 $1, %ymm1, %xmm35580; AVX2-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1,2,3],xmm3[4],xmm1[5],xmm3[6],xmm1[7]5581; AVX2-NEXT: vmovdqa {{.*#+}} xmm4 = [0,1,14,15,12,13,10,11,8,9,8,9,8,9,8,9]5582; AVX2-NEXT: vpshufb %xmm4, %xmm1, %xmm35583; AVX2-NEXT: vpmovsxbw {{.*#+}} xmm12 = [65535,65535,65535,65535,65535,0,0,0]5584; AVX2-NEXT: vpblendvb %ymm12, %ymm3, %ymm2, %ymm15585; AVX2-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5586; AVX2-NEXT: vmovdqa %ymm5, %ymm35587; AVX2-NEXT: vpblendd {{.*#+}} ymm2 = ymm13[0,1],ymm5[2],ymm13[3,4,5],ymm5[6],ymm13[7]5588; AVX2-NEXT: vextracti128 $1, %ymm2, %xmm55589; AVX2-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0,1,2,3],xmm5[4],xmm2[5],xmm5[6],xmm2[7]5590; AVX2-NEXT: vpshufb %xmm4, %xmm2, %xmm25591; AVX2-NEXT: vpblendd {{.*#+}} ymm4 = ymm9[0],ymm14[1],ymm9[2,3,4],ymm14[5],ymm9[6,7]5592; AVX2-NEXT: vpermq {{.*#+}} ymm4 = ymm4[0,2,2,3]5593; AVX2-NEXT: vpshufb %ymm0, %ymm4, %ymm05594; AVX2-NEXT: vpblendvb %ymm12, %ymm2, %ymm0, %ymm05595; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5596; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm9[0,1],ymm14[2],ymm9[3,4],ymm14[5],ymm9[6,7]5597; AVX2-NEXT: vpermq {{.*#+}} ymm2 = ymm0[2,3,0,1]5598; AVX2-NEXT: vpblendw {{.*#+}} ymm0 = ymm0[0,1,2],ymm2[3],ymm0[4,5,6,7,8,9,10],ymm2[11],ymm0[12,13,14,15]5599; AVX2-NEXT: vmovdqa {{.*#+}} ymm2 = [2,3,2,3,2,3,2,3,8,9,8,9,6,7,4,5,18,19,18,19,18,19,18,19,24,25,24,25,22,23,20,21]5600; AVX2-NEXT: vpshufb %ymm2, %ymm0, %ymm05601; AVX2-NEXT: vpblendd {{.*#+}} ymm4 = ymm13[0,1,2],ymm3[3],ymm13[4,5],ymm3[6],ymm13[7]5602; AVX2-NEXT: vmovdqa %ymm13, %ymm15603; AVX2-NEXT: vextracti128 $1, %ymm4, %xmm55604; AVX2-NEXT: vpblendw {{.*#+}} xmm4 = xmm5[0],xmm4[1],xmm5[2,3,4,5],xmm4[6],xmm5[7]5605; AVX2-NEXT: vmovdqa {{.*#+}} xmm5 = [2,3,0,1,14,15,12,13,10,11,10,11,10,11,10,11]5606; AVX2-NEXT: vpshufb %xmm5, %xmm4, %xmm45607; AVX2-NEXT: vpblendvb %ymm12, %ymm4, %ymm0, %ymm05608; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5609; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm8[0,1],ymm11[2],ymm8[3,4],ymm11[5],ymm8[6,7]5610; AVX2-NEXT: vpermq {{.*#+}} ymm4 = ymm0[2,3,0,1]5611; AVX2-NEXT: vpblendw {{.*#+}} ymm0 = ymm0[0,1,2],ymm4[3],ymm0[4,5,6,7,8,9,10],ymm4[11],ymm0[12,13,14,15]5612; AVX2-NEXT: vpshufb %ymm2, %ymm0, %ymm05613; AVX2-NEXT: vpblendd {{.*#+}} ymm2 = ymm7[0,1,2],ymm6[3],ymm7[4,5],ymm6[6],ymm7[7]5614; AVX2-NEXT: vextracti128 $1, %ymm2, %xmm45615; AVX2-NEXT: vpblendw {{.*#+}} xmm2 = xmm4[0],xmm2[1],xmm4[2,3,4,5],xmm2[6],xmm4[7]5616; AVX2-NEXT: vpshufb %xmm5, %xmm2, %xmm25617; AVX2-NEXT: vpblendvb %ymm12, %ymm2, %ymm0, %ymm05618; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5619; AVX2-NEXT: vpermq {{.*#+}} ymm0 = ymm11[2,3,0,1]5620; AVX2-NEXT: vpblendd {{.*#+}} ymm2 = ymm8[0,1],ymm11[2,3],ymm8[4,5],ymm11[6,7]5621; AVX2-NEXT: vmovdqu %ymm11, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5622; AVX2-NEXT: vmovdqu %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5623; AVX2-NEXT: vpblendw {{.*#+}} ymm0 = ymm2[0,1,2,3],ymm0[4],ymm2[5,6,7,8,9,10,11],ymm0[12],ymm2[13,14,15]5624; AVX2-NEXT: vpblendd {{.*#+}} ymm2 = ymm6[0],ymm7[1],ymm6[2,3],ymm7[4],ymm6[5,6,7]5625; AVX2-NEXT: vmovdqu %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5626; AVX2-NEXT: vextracti128 $1, %ymm2, %xmm45627; AVX2-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0],xmm4[1],xmm2[2,3,4,5],xmm4[6],xmm2[7]5628; AVX2-NEXT: vmovdqa {{.*#+}} ymm15 = [4,5,4,5,4,5,4,5,8,9,10,11,8,9,6,7,20,21,20,21,20,21,20,21,24,25,26,27,24,25,22,23]5629; AVX2-NEXT: vpshufb %ymm15, %ymm0, %ymm05630; AVX2-NEXT: vmovdqa {{.*#+}} xmm5 = [4,5,2,3,0,1,14,15,12,13,12,13,12,13,12,13]5631; AVX2-NEXT: vpshufb %xmm5, %xmm2, %xmm25632; AVX2-NEXT: vpblendvb %ymm12, %ymm2, %ymm0, %ymm135633; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm3[0],ymm1[1],ymm3[2,3],ymm1[4],ymm3[5,6,7]5634; AVX2-NEXT: vmovdqa %ymm1, %ymm45635; AVX2-NEXT: vmovdqu %ymm1, (%rsp) # 32-byte Spill5636; AVX2-NEXT: vmovdqa %ymm3, %ymm15637; AVX2-NEXT: vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5638; AVX2-NEXT: vextracti128 $1, %ymm0, %xmm25639; AVX2-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0],xmm2[1],xmm0[2,3,4,5],xmm2[6],xmm0[7]5640; AVX2-NEXT: vpshufb %xmm5, %xmm0, %xmm05641; AVX2-NEXT: vmovdqa %ymm9, %ymm35642; AVX2-NEXT: vmovdqu %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5643; AVX2-NEXT: vpblendd {{.*#+}} ymm2 = ymm9[0,1],ymm14[2,3],ymm9[4,5],ymm14[6,7]5644; AVX2-NEXT: vpermq {{.*#+}} ymm5 = ymm14[2,3,0,1]5645; AVX2-NEXT: vmovdqu %ymm14, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5646; AVX2-NEXT: vpblendw {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm5[4],ymm2[5,6,7,8,9,10,11],ymm5[12],ymm2[13,14,15]5647; AVX2-NEXT: vpshufb %ymm15, %ymm2, %ymm25648; AVX2-NEXT: vpblendvb %ymm12, %ymm0, %ymm2, %ymm105649; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm6[0],ymm7[1],ymm6[2,3,4],ymm7[5],ymm6[6,7]5650; AVX2-NEXT: vmovdqu %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5651; AVX2-NEXT: vextracti128 $1, %ymm0, %xmm25652; AVX2-NEXT: vpblendw {{.*#+}} xmm0 = xmm2[0],xmm0[1],xmm2[2],xmm0[3],xmm2[4,5,6,7]5653; AVX2-NEXT: vpblendd {{.*#+}} ymm2 = ymm8[0,1,2],ymm11[3],ymm8[4,5],ymm11[6],ymm8[7]5654; AVX2-NEXT: vpermq {{.*#+}} ymm2 = ymm2[1,3,2,3]5655; AVX2-NEXT: vmovdqa {{.*#+}} ymm5 = [6,7,6,7,6,7,6,7,8,9,4,5,10,11,0,1,22,23,22,23,22,23,22,23,24,25,20,21,26,27,16,17]5656; AVX2-NEXT: vpshufb %ymm5, %ymm2, %ymm25657; AVX2-NEXT: vpshuflw {{.*#+}} xmm0 = xmm0[3,2,1,0,4,5,6,7]5658; AVX2-NEXT: vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,7,7,7,7]5659; AVX2-NEXT: vpblendvb %ymm12, %ymm0, %ymm2, %ymm95660; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0],ymm4[1],ymm1[2,3,4],ymm4[5],ymm1[6,7]5661; AVX2-NEXT: vextracti128 $1, %ymm0, %xmm25662; AVX2-NEXT: vpblendw {{.*#+}} xmm0 = xmm2[0],xmm0[1],xmm2[2],xmm0[3],xmm2[4,5,6,7]5663; AVX2-NEXT: vpblendd {{.*#+}} ymm2 = ymm3[0,1,2],ymm14[3],ymm3[4,5],ymm14[6],ymm3[7]5664; AVX2-NEXT: vpermq {{.*#+}} ymm2 = ymm2[1,3,2,3]5665; AVX2-NEXT: vpshufb %ymm5, %ymm2, %ymm25666; AVX2-NEXT: vpshuflw {{.*#+}} xmm0 = xmm0[3,2,1,0,4,5,6,7]5667; AVX2-NEXT: vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,7,7,7,7]5668; AVX2-NEXT: vpblendvb %ymm12, %ymm0, %ymm2, %ymm85669; AVX2-NEXT: vmovdqa 128(%rdi), %ymm125670; AVX2-NEXT: vmovdqa 160(%rdi), %ymm155671; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm15[0,1,2],ymm12[3],ymm15[4,5],ymm12[6],ymm15[7]5672; AVX2-NEXT: vpshufhw {{.*#+}} xmm1 = xmm0[0,1,2,3,4,6,4,7]5673; AVX2-NEXT: vextracti128 $1, %ymm0, %xmm05674; AVX2-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[0,1,2,1]5675; AVX2-NEXT: vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,5,7,7]5676; AVX2-NEXT: vpunpckhwd {{.*#+}} xmm0 = xmm1[4],xmm0[4],xmm1[5],xmm0[5],xmm1[6],xmm0[6],xmm1[7],xmm0[7]5677; AVX2-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm15678; AVX2-NEXT: vmovdqa 192(%rdi), %ymm55679; AVX2-NEXT: vpermq {{.*#+}} ymm2 = ymm5[0,1,0,2]5680; AVX2-NEXT: vpshufd {{.*#+}} ymm4 = ymm2[0,1,2,1,4,5,6,5]5681; AVX2-NEXT: vpshufhw {{.*#+}} ymm4 = ymm4[0,1,2,3,4,5,6,5,8,9,10,11,12,13,14,13]5682; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,6],ymm4[7]5683; AVX2-NEXT: vpblendd $31, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm0 # 32-byte Folded Reload5684; AVX2-NEXT: # ymm0 = mem[0,1,2,3,4],ymm1[5,6,7]5685; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5686; AVX2-NEXT: vmovdqa 352(%rdi), %ymm65687; AVX2-NEXT: vmovdqa 384(%rdi), %ymm45688; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm4[0,1,2],ymm6[3],ymm4[4,5],ymm6[6],ymm4[7]5689; AVX2-NEXT: vpshufhw {{.*#+}} xmm0 = xmm1[0,1,2,3,4,6,4,7]5690; AVX2-NEXT: vextracti128 $1, %ymm1, %xmm15691; AVX2-NEXT: vpshufd {{.*#+}} xmm1 = xmm1[0,1,2,1]5692; AVX2-NEXT: vpshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,5,7,7]5693; AVX2-NEXT: vpunpckhwd {{.*#+}} xmm0 = xmm0[4],xmm1[4],xmm0[5],xmm1[5],xmm0[6],xmm1[6],xmm0[7],xmm1[7]5694; AVX2-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm15695; AVX2-NEXT: vmovdqa 416(%rdi), %ymm35696; AVX2-NEXT: vpermq {{.*#+}} ymm0 = ymm3[0,1,0,2]5697; AVX2-NEXT: vpshufd {{.*#+}} ymm14 = ymm0[0,1,2,1,4,5,6,5]5698; AVX2-NEXT: vpshufhw {{.*#+}} ymm14 = ymm14[0,1,2,3,4,5,6,5,8,9,10,11,12,13,14,13]5699; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,6],ymm14[7]5700; AVX2-NEXT: vpblendd $31, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload5701; AVX2-NEXT: # ymm1 = mem[0,1,2,3,4],ymm1[5,6,7]5702; AVX2-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5703; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm6[0,1],ymm4[2],ymm6[3,4,5],ymm4[6],ymm6[7]5704; AVX2-NEXT: vextracti128 $1, %ymm1, %xmm145705; AVX2-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1,2,3],xmm14[4],xmm1[5],xmm14[6],xmm1[7]5706; AVX2-NEXT: vmovdqa {{.*#+}} xmm14 = [0,1,0,1,14,15,12,13,10,11,8,9,12,13,14,15]5707; AVX2-NEXT: vpshufb %xmm14, %xmm1, %xmm15708; AVX2-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm15709; AVX2-NEXT: vpshufd {{.*#+}} ymm0 = ymm0[0,1,1,3,4,5,5,7]5710; AVX2-NEXT: vpshufhw {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5,5,6,8,9,10,11,12,13,13,14]5711; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5,6],ymm0[7]5712; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload5713; AVX2-NEXT: vpblendw {{.*#+}} ymm0 = ymm1[0],ymm0[1,2,3,4,5,6,7],ymm1[8],ymm0[9,10,11,12,13,14,15]5714; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]5715; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5716; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm12[0,1],ymm15[2],ymm12[3,4,5],ymm15[6],ymm12[7]5717; AVX2-NEXT: vextracti128 $1, %ymm0, %xmm15718; AVX2-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2,3],xmm1[4],xmm0[5],xmm1[6],xmm0[7]5719; AVX2-NEXT: vpshufb %xmm14, %xmm0, %xmm05720; AVX2-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm05721; AVX2-NEXT: vpshufd {{.*#+}} ymm1 = ymm2[0,1,1,3,4,5,5,7]5722; AVX2-NEXT: vpshufhw {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,5,6,8,9,10,11,12,13,13,14]5723; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5,6],ymm1[7]5724; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload5725; AVX2-NEXT: vpblendw {{.*#+}} ymm0 = ymm1[0],ymm0[1,2,3,4,5,6,7],ymm1[8],ymm0[9,10,11,12,13,14,15]5726; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]5727; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5728; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm12[0,1,2],ymm15[3],ymm12[4,5],ymm15[6],ymm12[7]5729; AVX2-NEXT: vextracti128 $1, %ymm0, %xmm15730; AVX2-NEXT: vpblendw {{.*#+}} xmm0 = xmm1[0],xmm0[1],xmm1[2,3,4,5],xmm0[6],xmm1[7]5731; AVX2-NEXT: vmovdqa {{.*#+}} xmm1 = [0,1,2,3,0,1,14,15,12,13,10,11,12,13,14,15]5732; AVX2-NEXT: vpshufb %xmm1, %xmm0, %xmm05733; AVX2-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm05734; AVX2-NEXT: vpermq {{.*#+}} ymm2 = ymm5[0,1,1,2]5735; AVX2-NEXT: vpshufd {{.*#+}} ymm2 = ymm2[0,1,0,3,4,5,4,7]5736; AVX2-NEXT: vpshufhw {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5,4,7,8,9,10,11,12,13,12,15]5737; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5,6],ymm2[7]5738; AVX2-NEXT: vpblendw {{.*#+}} ymm0 = ymm13[0],ymm0[1,2,3,4,5,6,7],ymm13[8],ymm0[9,10,11,12,13,14,15]5739; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm13[0,1,2,3],ymm0[4,5,6,7]5740; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5741; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm6[0,1,2],ymm4[3],ymm6[4,5],ymm4[6],ymm6[7]5742; AVX2-NEXT: vextracti128 $1, %ymm0, %xmm25743; AVX2-NEXT: vpblendw {{.*#+}} xmm0 = xmm2[0],xmm0[1],xmm2[2,3,4,5],xmm0[6],xmm2[7]5744; AVX2-NEXT: vpshufb %xmm1, %xmm0, %xmm05745; AVX2-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm05746; AVX2-NEXT: vpermq {{.*#+}} ymm1 = ymm3[0,1,1,2]5747; AVX2-NEXT: vpshufd {{.*#+}} ymm1 = ymm1[0,1,0,3,4,5,4,7]5748; AVX2-NEXT: vpshufhw {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,4,7,8,9,10,11,12,13,12,15]5749; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5,6],ymm1[7]5750; AVX2-NEXT: vpblendw {{.*#+}} ymm0 = ymm10[0],ymm0[1,2,3,4,5,6,7],ymm10[8],ymm0[9,10,11,12,13,14,15]5751; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm10[0,1,2,3],ymm0[4,5,6,7]5752; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5753; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm15[0],ymm12[1],ymm15[2,3],ymm12[4],ymm15[5,6,7]5754; AVX2-NEXT: vextracti128 $1, %ymm0, %xmm15755; AVX2-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0],xmm1[1],xmm0[2,3,4,5],xmm1[6],xmm0[7]5756; AVX2-NEXT: vpshuflw {{.*#+}} xmm0 = xmm0[0,2,1,0,4,5,6,7]5757; AVX2-NEXT: vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,7,6,6,7]5758; AVX2-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm05759; AVX2-NEXT: vpermq {{.*#+}} ymm2 = ymm5[0,1,1,3]5760; AVX2-NEXT: vpshufd {{.*#+}} ymm1 = ymm2[0,1,2,0,4,5,6,4]5761; AVX2-NEXT: vpshufhw {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,7,4,8,9,10,11,12,13,15,12]5762; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5,6],ymm1[7]5763; AVX2-NEXT: vpblendw {{.*#+}} ymm0 = ymm9[0],ymm0[1,2,3,4,5,6,7],ymm9[8],ymm0[9,10,11,12,13,14,15]5764; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm9[0,1,2,3],ymm0[4,5,6,7]5765; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5766; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm4[0],ymm6[1],ymm4[2,3],ymm6[4],ymm4[5,6,7]5767; AVX2-NEXT: vextracti128 $1, %ymm0, %xmm15768; AVX2-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0],xmm1[1],xmm0[2,3,4,5],xmm1[6],xmm0[7]5769; AVX2-NEXT: vpshuflw {{.*#+}} xmm0 = xmm0[0,2,1,0,4,5,6,7]5770; AVX2-NEXT: vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,7,6,6,7]5771; AVX2-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm15772; AVX2-NEXT: vpermq {{.*#+}} ymm0 = ymm3[0,1,1,3]5773; AVX2-NEXT: vpshufd {{.*#+}} ymm3 = ymm0[0,1,2,0,4,5,6,4]5774; AVX2-NEXT: vpshufhw {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5,7,4,8,9,10,11,12,13,15,12]5775; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,6],ymm3[7]5776; AVX2-NEXT: vpblendw {{.*#+}} ymm1 = ymm8[0],ymm1[1,2,3,4,5,6,7],ymm8[8],ymm1[9,10,11,12,13,14,15]5777; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm8[0,1,2,3],ymm1[4,5,6,7]5778; AVX2-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5779; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm15[0],ymm12[1],ymm15[2,3,4],ymm12[5],ymm15[6,7]5780; AVX2-NEXT: vmovdqu %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5781; AVX2-NEXT: vextracti128 $1, %ymm1, %xmm35782; AVX2-NEXT: vpblendw {{.*#+}} xmm3 = xmm3[0],xmm1[1],xmm3[2],xmm1[3],xmm3[4,5,6,7]5783; AVX2-NEXT: vmovdqa {{.*#+}} xmm1 = [0,1,6,7,4,5,2,3,0,1,14,15,12,13,14,15]5784; AVX2-NEXT: vpshufb %xmm1, %xmm3, %xmm35785; AVX2-NEXT: vinserti128 $1, %xmm3, %ymm0, %ymm35786; AVX2-NEXT: vpshufd {{.*#+}} ymm2 = ymm2[0,1,2,1,4,5,6,5]5787; AVX2-NEXT: vpshufhw {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5,6,5,8,9,10,11,12,13,14,13]5788; AVX2-NEXT: vpblendd {{.*#+}} ymm2 = ymm3[0,1,2,3,4,5,6],ymm2[7]5789; AVX2-NEXT: vpblendd $219, {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm3 # 32-byte Folded Reload5790; AVX2-NEXT: # ymm3 = mem[0,1],ymm7[2],mem[3,4],ymm7[5],mem[6,7]5791; AVX2-NEXT: vextracti128 $1, %ymm3, %xmm55792; AVX2-NEXT: vpshuflw {{.*#+}} xmm5 = xmm5[3,1,2,3,4,5,6,7]5793; AVX2-NEXT: vpshufd {{.*#+}} xmm3 = xmm3[2,1,2,3]5794; AVX2-NEXT: vpshuflw {{.*#+}} xmm3 = xmm3[0,2,2,3,4,5,6,7]5795; AVX2-NEXT: vpunpcklwd {{.*#+}} xmm3 = xmm3[0],xmm5[0],xmm3[1],xmm5[1],xmm3[2],xmm5[2],xmm3[3],xmm5[3]5796; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Reload5797; AVX2-NEXT: vpblendd $187, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm5 # 32-byte Folded Reload5798; AVX2-NEXT: # ymm5 = mem[0,1],ymm14[2],mem[3,4,5],ymm14[6],mem[7]5799; AVX2-NEXT: vmovdqa {{.*#+}} ymm7 = [u,u,u,u,u,u,u,u,0,1,14,15,u,u,10,11,24,25,24,25,24,25,24,25,16,17,30,31,u,u,26,27]5800; AVX2-NEXT: vpshufb %ymm7, %ymm5, %ymm85801; AVX2-NEXT: vpblendw {{.*#+}} ymm2 = ymm8[0],ymm2[1,2,3,4,5,6,7],ymm8[8],ymm2[9,10,11,12,13,14,15]5802; AVX2-NEXT: vpermq {{.*#+}} ymm5 = ymm5[2,3,0,1]5803; AVX2-NEXT: vpblendw {{.*#+}} ymm5 = ymm8[0,1,2,3,4,5],ymm5[6],ymm8[7,8,9,10,11,12,13],ymm5[14],ymm8[15]5804; AVX2-NEXT: vpblendd {{.*#+}} xmm3 = xmm3[0,1],xmm5[2,3]5805; AVX2-NEXT: vpblendd {{.*#+}} ymm2 = ymm3[0,1,2,3],ymm2[4,5,6,7]5806; AVX2-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5807; AVX2-NEXT: vmovdqu (%rsp), %ymm13 # 32-byte Reload5808; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload5809; AVX2-NEXT: vpblendd {{.*#+}} ymm2 = ymm8[0,1],ymm13[2],ymm8[3,4],ymm13[5],ymm8[6,7]5810; AVX2-NEXT: vextracti128 $1, %ymm2, %xmm35811; AVX2-NEXT: vpshuflw {{.*#+}} xmm3 = xmm3[3,1,2,3,4,5,6,7]5812; AVX2-NEXT: vpshufd {{.*#+}} xmm2 = xmm2[2,1,2,3]5813; AVX2-NEXT: vpshuflw {{.*#+}} xmm2 = xmm2[0,2,2,3,4,5,6,7]5814; AVX2-NEXT: vpunpcklwd {{.*#+}} xmm2 = xmm2[0],xmm3[0],xmm2[1],xmm3[1],xmm2[2],xmm3[2],xmm2[3],xmm3[3]5815; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload5816; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload5817; AVX2-NEXT: vpblendd {{.*#+}} ymm3 = ymm9[0,1],ymm10[2],ymm9[3,4,5],ymm10[6],ymm9[7]5818; AVX2-NEXT: vpshufb %ymm7, %ymm3, %ymm55819; AVX2-NEXT: vpermq {{.*#+}} ymm3 = ymm3[2,3,0,1]5820; AVX2-NEXT: vpblendw {{.*#+}} ymm3 = ymm5[0,1,2,3,4,5],ymm3[6],ymm5[7,8,9,10,11,12,13],ymm3[14],ymm5[15]5821; AVX2-NEXT: vpblendd {{.*#+}} xmm2 = xmm2[0,1],xmm3[2,3]5822; AVX2-NEXT: vpblendd {{.*#+}} ymm3 = ymm4[0],ymm6[1],ymm4[2,3,4],ymm6[5],ymm4[6,7]5823; AVX2-NEXT: vextracti128 $1, %ymm3, %xmm75824; AVX2-NEXT: vpblendw {{.*#+}} xmm3 = xmm7[0],xmm3[1],xmm7[2],xmm3[3],xmm7[4,5,6,7]5825; AVX2-NEXT: vpshufb %xmm1, %xmm3, %xmm15826; AVX2-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm15827; AVX2-NEXT: vpshufd {{.*#+}} ymm0 = ymm0[0,1,2,1,4,5,6,5]5828; AVX2-NEXT: vpshufhw {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5,6,5,8,9,10,11,12,13,14,13]5829; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5,6],ymm0[7]5830; AVX2-NEXT: vpblendw {{.*#+}} ymm0 = ymm5[0],ymm0[1,2,3,4,5,6,7],ymm5[8],ymm0[9,10,11,12,13,14,15]5831; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm2[0,1,2,3],ymm0[4,5,6,7]5832; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5833; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm9[0,1,2],ymm10[3],ymm9[4,5],ymm10[6],ymm9[7]5834; AVX2-NEXT: vpermq {{.*#+}} ymm1 = ymm0[2,3,0,1]5835; AVX2-NEXT: vpblendw {{.*#+}} ymm1 = ymm1[0],ymm0[1,2,3,4,5,6],ymm1[7,8],ymm0[9,10,11,12,13,14],ymm1[15]5836; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm4[0,1],ymm6[2],ymm4[3,4],ymm6[5],ymm4[6,7]5837; AVX2-NEXT: vextracti128 $1, %ymm0, %xmm25838; AVX2-NEXT: vpblendw {{.*#+}} xmm0 = xmm2[0,1],xmm0[2],xmm2[3],xmm0[4],xmm2[5,6,7]5839; AVX2-NEXT: vmovdqa {{.*#+}} xmm5 = [8,9,8,9,6,7,4,5,2,3,2,3,2,3,2,3]5840; AVX2-NEXT: vpshufb %xmm5, %xmm0, %xmm05841; AVX2-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm25842; AVX2-NEXT: vmovdqa 432(%rdi), %xmm35843; AVX2-NEXT: vmovdqa 416(%rdi), %xmm05844; AVX2-NEXT: vpblendw {{.*#+}} xmm7 = xmm0[0,1,2,3,4,5],xmm3[6],xmm0[7]5845; AVX2-NEXT: vpshufd {{.*#+}} xmm7 = xmm7[0,1,0,3]5846; AVX2-NEXT: vpshufhw {{.*#+}} xmm7 = xmm7[0,1,2,3,4,4,7,6]5847; AVX2-NEXT: vinserti128 $1, %xmm7, %ymm0, %ymm75848; AVX2-NEXT: vpblendw {{.*#+}} ymm2 = ymm2[0,1,2,3,4],ymm7[5,6,7],ymm2[8,9,10,11,12],ymm7[13,14,15]5849; AVX2-NEXT: vpblendd {{.*#+}} ymm7 = ymm8[0,1],ymm13[2,3],ymm8[4,5],ymm13[6,7]5850; AVX2-NEXT: vextracti128 $1, %ymm7, %xmm85851; AVX2-NEXT: vpshufd {{.*#+}} xmm8 = xmm8[2,1,2,3]5852; AVX2-NEXT: vpshuflw {{.*#+}} xmm8 = xmm8[0,2,2,3,4,5,6,7]5853; AVX2-NEXT: vpshufd {{.*#+}} xmm7 = xmm7[2,1,2,3]5854; AVX2-NEXT: vpshuflw {{.*#+}} xmm7 = xmm7[1,3,2,3,4,5,6,7]5855; AVX2-NEXT: vpunpcklwd {{.*#+}} xmm7 = xmm7[0],xmm8[0],xmm7[1],xmm8[1],xmm7[2],xmm8[2],xmm7[3],xmm8[3]5856; AVX2-NEXT: vmovdqa {{.*#+}} ymm8 = [u,u,u,u,u,u,u,u,2,3,0,1,14,15,12,13,26,27,26,27,26,27,26,27,18,19,16,17,30,31,28,29]5857; AVX2-NEXT: vpshufb %ymm8, %ymm1, %ymm15858; AVX2-NEXT: vpblendw {{.*#+}} ymm2 = ymm1[0],ymm2[1,2,3,4,5,6,7],ymm1[8],ymm2[9,10,11,12,13,14,15]5859; AVX2-NEXT: vpblendd {{.*#+}} xmm1 = xmm7[0,1],xmm1[2,3]5860; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm2[4,5,6,7]5861; AVX2-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5862; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm15[0,1],ymm12[2],ymm15[3,4],ymm12[5],ymm15[6,7]5863; AVX2-NEXT: vextracti128 $1, %ymm1, %xmm75864; AVX2-NEXT: vpblendw {{.*#+}} xmm1 = xmm7[0,1],xmm1[2],xmm7[3],xmm1[4],xmm7[5,6,7]5865; AVX2-NEXT: vpshufb %xmm5, %xmm1, %xmm15866; AVX2-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm55867; AVX2-NEXT: vmovdqa 208(%rdi), %xmm115868; AVX2-NEXT: vmovdqa 192(%rdi), %xmm15869; AVX2-NEXT: vpblendw {{.*#+}} xmm12 = xmm1[0,1,2,3,4,5],xmm11[6],xmm1[7]5870; AVX2-NEXT: vpshufd {{.*#+}} xmm12 = xmm12[0,1,0,3]5871; AVX2-NEXT: vpshufhw {{.*#+}} xmm12 = xmm12[0,1,2,3,4,4,7,6]5872; AVX2-NEXT: vinserti128 $1, %xmm12, %ymm0, %ymm125873; AVX2-NEXT: vpblendw {{.*#+}} ymm5 = ymm5[0,1,2,3,4],ymm12[5,6,7],ymm5[8,9,10,11,12],ymm12[13,14,15]5874; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload5875; AVX2-NEXT: vpblendd {{.*#+}} ymm12 = ymm7[0,1,2],ymm14[3],ymm7[4,5],ymm14[6],ymm7[7]5876; AVX2-NEXT: vmovdqa %ymm14, %ymm135877; AVX2-NEXT: vpermq {{.*#+}} ymm14 = ymm12[2,3,0,1]5878; AVX2-NEXT: vpblendw {{.*#+}} ymm12 = ymm14[0],ymm12[1,2,3,4,5,6],ymm14[7,8],ymm12[9,10,11,12,13,14],ymm14[15]5879; AVX2-NEXT: vpshufb %ymm8, %ymm12, %ymm85880; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload5881; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload5882; AVX2-NEXT: vpblendd {{.*#+}} ymm12 = ymm9[0,1],ymm2[2,3],ymm9[4,5],ymm2[6,7]5883; AVX2-NEXT: vextracti128 $1, %ymm12, %xmm145884; AVX2-NEXT: vpshufd {{.*#+}} xmm14 = xmm14[2,1,2,3]5885; AVX2-NEXT: vpshuflw {{.*#+}} xmm14 = xmm14[0,2,2,3,4,5,6,7]5886; AVX2-NEXT: vpshufd {{.*#+}} xmm12 = xmm12[2,1,2,3]5887; AVX2-NEXT: vpshuflw {{.*#+}} xmm12 = xmm12[1,3,2,3,4,5,6,7]5888; AVX2-NEXT: vpunpcklwd {{.*#+}} xmm12 = xmm12[0],xmm14[0],xmm12[1],xmm14[1],xmm12[2],xmm14[2],xmm12[3],xmm14[3]5889; AVX2-NEXT: vpblendw {{.*#+}} ymm5 = ymm8[0],ymm5[1,2,3,4,5,6,7],ymm8[8],ymm5[9,10,11,12,13,14,15]5890; AVX2-NEXT: vpblendd {{.*#+}} xmm8 = xmm12[0,1],xmm8[2,3]5891; AVX2-NEXT: vpblendd {{.*#+}} ymm5 = ymm8[0,1,2,3],ymm5[4,5,6,7]5892; AVX2-NEXT: vpblendd $18, {{[-0-9]+}}(%r{{[sb]}}p), %ymm10, %ymm8 # 32-byte Folded Reload5893; AVX2-NEXT: # ymm8 = ymm10[0],mem[1],ymm10[2,3],mem[4],ymm10[5,6,7]5894; AVX2-NEXT: vpermq {{.*#+}} ymm10 = ymm8[2,3,0,1]5895; AVX2-NEXT: vpblendw {{.*#+}} ymm8 = ymm8[0],ymm10[1],ymm8[2,3,4,5,6,7,8],ymm10[9],ymm8[10,11,12,13,14,15]5896; AVX2-NEXT: vpblendd {{.*#+}} ymm4 = ymm4[0,1],ymm6[2,3],ymm4[4,5],ymm6[6,7]5897; AVX2-NEXT: vextracti128 $1, %ymm4, %xmm65898; AVX2-NEXT: vpblendw {{.*#+}} xmm4 = xmm6[0,1,2],xmm4[3],xmm6[4],xmm4[5],xmm6[6,7]5899; AVX2-NEXT: vpblendw {{.*#+}} xmm0 = xmm3[0],xmm0[1],xmm3[2,3,4,5,6,7]5900; AVX2-NEXT: vmovdqa {{.*#+}} xmm3 = [8,9,10,11,8,9,6,7,4,5,4,5,4,5,4,5]5901; AVX2-NEXT: vpshufb %xmm3, %xmm4, %xmm45902; AVX2-NEXT: vinserti128 $1, %xmm4, %ymm0, %ymm45903; AVX2-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[0,1,0,3]5904; AVX2-NEXT: vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,5,4,7]5905; AVX2-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm05906; AVX2-NEXT: vpblendw {{.*#+}} ymm0 = ymm4[0,1,2,3,4],ymm0[5,6,7],ymm4[8,9,10,11,12],ymm0[13,14,15]5907; AVX2-NEXT: vmovdqu (%rsp), %ymm4 # 32-byte Reload5908; AVX2-NEXT: vpblendd $183, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm4 # 32-byte Folded Reload5909; AVX2-NEXT: # ymm4 = mem[0,1,2],ymm4[3],mem[4,5],ymm4[6],mem[7]5910; AVX2-NEXT: vpshufhw {{.*#+}} xmm6 = xmm4[0,1,2,3,6,4,6,7]5911; AVX2-NEXT: vextracti128 $1, %ymm4, %xmm45912; AVX2-NEXT: vpshufd {{.*#+}} xmm4 = xmm4[0,1,2,1]5913; AVX2-NEXT: vpshufhw {{.*#+}} xmm4 = xmm4[0,1,2,3,5,7,6,7]5914; AVX2-NEXT: vpunpckhwd {{.*#+}} xmm4 = xmm6[4],xmm4[4],xmm6[5],xmm4[5],xmm6[6],xmm4[6],xmm6[7],xmm4[7]5915; AVX2-NEXT: vmovdqa {{.*#+}} ymm6 = [u,u,u,u,u,u,u,u,4,5,2,3,0,1,14,15,28,29,28,29,28,29,28,29,20,21,18,19,16,17,30,31]5916; AVX2-NEXT: vpshufb %ymm6, %ymm8, %ymm85917; AVX2-NEXT: vpblendw {{.*#+}} ymm0 = ymm8[0],ymm0[1,2,3,4,5,6,7],ymm8[8],ymm0[9,10,11,12,13,14,15]5918; AVX2-NEXT: vpblendd {{.*#+}} xmm4 = xmm4[0,1],xmm8[2,3]5919; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm4[0,1,2,3],ymm0[4,5,6,7]5920; AVX2-NEXT: vpblendd $204, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm4 # 32-byte Folded Reload5921; AVX2-NEXT: # ymm4 = ymm15[0,1],mem[2,3],ymm15[4,5],mem[6,7]5922; AVX2-NEXT: vextracti128 $1, %ymm4, %xmm85923; AVX2-NEXT: vpblendw {{.*#+}} xmm4 = xmm8[0,1,2],xmm4[3],xmm8[4],xmm4[5],xmm8[6,7]5924; AVX2-NEXT: vpshufb %xmm3, %xmm4, %xmm35925; AVX2-NEXT: vpblendw {{.*#+}} xmm1 = xmm11[0],xmm1[1],xmm11[2,3,4,5,6,7]5926; AVX2-NEXT: vinserti128 $1, %xmm3, %ymm0, %ymm35927; AVX2-NEXT: vpshufd {{.*#+}} xmm1 = xmm1[0,1,0,3]5928; AVX2-NEXT: vpshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,5,4,7]5929; AVX2-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm15930; AVX2-NEXT: vpblendw {{.*#+}} ymm1 = ymm3[0,1,2,3,4],ymm1[5,6,7],ymm3[8,9,10,11,12],ymm1[13,14,15]5931; AVX2-NEXT: vpblendd {{.*#+}} ymm3 = ymm13[0],ymm7[1],ymm13[2,3],ymm7[4],ymm13[5,6,7]5932; AVX2-NEXT: vpermq {{.*#+}} ymm4 = ymm3[2,3,0,1]5933; AVX2-NEXT: vpblendw {{.*#+}} ymm3 = ymm3[0],ymm4[1],ymm3[2,3,4,5,6,7,8],ymm4[9],ymm3[10,11,12,13,14,15]5934; AVX2-NEXT: vpshufb %ymm6, %ymm3, %ymm35935; AVX2-NEXT: vpblendd {{.*#+}} ymm4 = ymm9[0,1,2],ymm2[3],ymm9[4,5],ymm2[6],ymm9[7]5936; AVX2-NEXT: vpshufhw {{.*#+}} xmm6 = xmm4[0,1,2,3,6,4,6,7]5937; AVX2-NEXT: vextracti128 $1, %ymm4, %xmm45938; AVX2-NEXT: vpshufd {{.*#+}} xmm4 = xmm4[0,1,2,1]5939; AVX2-NEXT: vpshufhw {{.*#+}} xmm4 = xmm4[0,1,2,3,5,7,6,7]5940; AVX2-NEXT: vpunpckhwd {{.*#+}} xmm4 = xmm6[4],xmm4[4],xmm6[5],xmm4[5],xmm6[6],xmm4[6],xmm6[7],xmm4[7]5941; AVX2-NEXT: vpblendw {{.*#+}} ymm1 = ymm3[0],ymm1[1,2,3,4,5,6,7],ymm3[8],ymm1[9,10,11,12,13,14,15]5942; AVX2-NEXT: vpblendd {{.*#+}} xmm3 = xmm4[0,1],xmm3[2,3]5943; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm3[0,1,2,3],ymm1[4,5,6,7]5944; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload5945; AVX2-NEXT: vmovaps %ymm2, 32(%rsi)5946; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload5947; AVX2-NEXT: vmovaps %ymm2, (%rsi)5948; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload5949; AVX2-NEXT: vmovaps %ymm2, 32(%rdx)5950; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload5951; AVX2-NEXT: vmovaps %ymm2, (%rdx)5952; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload5953; AVX2-NEXT: vmovaps %ymm2, 32(%rcx)5954; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload5955; AVX2-NEXT: vmovaps %ymm2, (%rcx)5956; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload5957; AVX2-NEXT: vmovaps %ymm2, 32(%r8)5958; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload5959; AVX2-NEXT: vmovaps %ymm2, (%r8)5960; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload5961; AVX2-NEXT: vmovaps %ymm2, 32(%r9)5962; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload5963; AVX2-NEXT: vmovaps %ymm2, (%r9)5964; AVX2-NEXT: movq {{[0-9]+}}(%rsp), %rax5965; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload5966; AVX2-NEXT: vmovaps %ymm2, 32(%rax)5967; AVX2-NEXT: vmovdqa %ymm5, (%rax)5968; AVX2-NEXT: movq {{[0-9]+}}(%rsp), %rax5969; AVX2-NEXT: vmovdqa %ymm0, 32(%rax)5970; AVX2-NEXT: vmovdqa %ymm1, (%rax)5971; AVX2-NEXT: addq $520, %rsp # imm = 0x2085972; AVX2-NEXT: vzeroupper5973; AVX2-NEXT: retq5974;5975; AVX2-FP-LABEL: load_i16_stride7_vf32:5976; AVX2-FP: # %bb.0:5977; AVX2-FP-NEXT: subq $552, %rsp # imm = 0x2285978; AVX2-FP-NEXT: vmovdqa 288(%rdi), %ymm115979; AVX2-FP-NEXT: vmovdqa 320(%rdi), %ymm135980; AVX2-FP-NEXT: vmovdqa 256(%rdi), %ymm55981; AVX2-FP-NEXT: vmovdqa 224(%rdi), %ymm125982; AVX2-FP-NEXT: vmovdqa (%rdi), %ymm85983; AVX2-FP-NEXT: vmovdqa 32(%rdi), %ymm75984; AVX2-FP-NEXT: vmovdqa 64(%rdi), %ymm65985; AVX2-FP-NEXT: vmovdqa 96(%rdi), %ymm95986; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm9[0],ymm6[1],ymm9[2,3,4],ymm6[5],ymm9[6,7]5987; AVX2-FP-NEXT: vpermq {{.*#+}} ymm1 = ymm0[0,2,2,3]5988; AVX2-FP-NEXT: vmovdqa {{.*#+}} ymm0 = [0,1,14,15,12,13,14,15,2,3,6,7,12,13,2,3,16,17,30,31,28,29,30,31,18,19,22,23,28,29,18,19]5989; AVX2-FP-NEXT: vpshufb %ymm0, %ymm1, %ymm25990; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm8[0,1],ymm7[2],ymm8[3,4,5],ymm7[6],ymm8[7]5991; AVX2-FP-NEXT: vextracti128 $1, %ymm1, %xmm35992; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1,2,3],xmm3[4],xmm1[5],xmm3[6],xmm1[7]5993; AVX2-FP-NEXT: vmovdqa {{.*#+}} xmm4 = [0,1,14,15,12,13,10,11,8,9,8,9,8,9,8,9]5994; AVX2-FP-NEXT: vpshufb %xmm4, %xmm1, %xmm35995; AVX2-FP-NEXT: vpmovsxbw {{.*#+}} xmm14 = [65535,65535,65535,65535,65535,0,0,0]5996; AVX2-FP-NEXT: vpblendvb %ymm14, %ymm3, %ymm2, %ymm15997; AVX2-FP-NEXT: vmovdqu %ymm1, (%rsp) # 32-byte Spill5998; AVX2-FP-NEXT: vmovdqa %ymm5, %ymm15999; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm2 = ymm12[0,1],ymm5[2],ymm12[3,4,5],ymm5[6],ymm12[7]6000; AVX2-FP-NEXT: vextracti128 $1, %ymm2, %xmm56001; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0,1,2,3],xmm5[4],xmm2[5],xmm5[6],xmm2[7]6002; AVX2-FP-NEXT: vpshufb %xmm4, %xmm2, %xmm26003; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm4 = ymm13[0],ymm11[1],ymm13[2,3,4],ymm11[5],ymm13[6,7]6004; AVX2-FP-NEXT: vpermq {{.*#+}} ymm4 = ymm4[0,2,2,3]6005; AVX2-FP-NEXT: vpshufb %ymm0, %ymm4, %ymm06006; AVX2-FP-NEXT: vpblendvb %ymm14, %ymm2, %ymm0, %ymm06007; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6008; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm13[0,1],ymm11[2],ymm13[3,4],ymm11[5],ymm13[6,7]6009; AVX2-FP-NEXT: vpermq {{.*#+}} ymm2 = ymm0[2,3,0,1]6010; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm0 = ymm0[0,1,2],ymm2[3],ymm0[4,5,6,7,8,9,10],ymm2[11],ymm0[12,13,14,15]6011; AVX2-FP-NEXT: vmovdqa {{.*#+}} ymm2 = [2,3,2,3,2,3,2,3,8,9,8,9,6,7,4,5,18,19,18,19,18,19,18,19,24,25,24,25,22,23,20,21]6012; AVX2-FP-NEXT: vpshufb %ymm2, %ymm0, %ymm06013; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm4 = ymm12[0,1,2],ymm1[3],ymm12[4,5],ymm1[6],ymm12[7]6014; AVX2-FP-NEXT: vextracti128 $1, %ymm4, %xmm56015; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm4 = xmm5[0],xmm4[1],xmm5[2,3,4,5],xmm4[6],xmm5[7]6016; AVX2-FP-NEXT: vmovdqa {{.*#+}} xmm5 = [2,3,0,1,14,15,12,13,10,11,10,11,10,11,10,11]6017; AVX2-FP-NEXT: vpshufb %xmm5, %xmm4, %xmm46018; AVX2-FP-NEXT: vpblendvb %ymm14, %ymm4, %ymm0, %ymm06019; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6020; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm9[0,1],ymm6[2],ymm9[3,4],ymm6[5],ymm9[6,7]6021; AVX2-FP-NEXT: vpermq {{.*#+}} ymm4 = ymm0[2,3,0,1]6022; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm0 = ymm0[0,1,2],ymm4[3],ymm0[4,5,6,7,8,9,10],ymm4[11],ymm0[12,13,14,15]6023; AVX2-FP-NEXT: vpshufb %ymm2, %ymm0, %ymm06024; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm2 = ymm8[0,1,2],ymm7[3],ymm8[4,5],ymm7[6],ymm8[7]6025; AVX2-FP-NEXT: vextracti128 $1, %ymm2, %xmm46026; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm2 = xmm4[0],xmm2[1],xmm4[2,3,4,5],xmm2[6],xmm4[7]6027; AVX2-FP-NEXT: vpshufb %xmm5, %xmm2, %xmm26028; AVX2-FP-NEXT: vpblendvb %ymm14, %ymm2, %ymm0, %ymm06029; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6030; AVX2-FP-NEXT: vpermq {{.*#+}} ymm0 = ymm6[2,3,0,1]6031; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm2 = ymm9[0,1],ymm6[2,3],ymm9[4,5],ymm6[6,7]6032; AVX2-FP-NEXT: vmovdqu %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6033; AVX2-FP-NEXT: vmovdqu %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6034; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm0 = ymm2[0,1,2,3],ymm0[4],ymm2[5,6,7,8,9,10,11],ymm0[12],ymm2[13,14,15]6035; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm2 = ymm7[0],ymm8[1],ymm7[2,3],ymm8[4],ymm7[5,6,7]6036; AVX2-FP-NEXT: vmovdqu %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6037; AVX2-FP-NEXT: vmovdqa %ymm7, %ymm36038; AVX2-FP-NEXT: vextracti128 $1, %ymm2, %xmm46039; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0],xmm4[1],xmm2[2,3,4,5],xmm4[6],xmm2[7]6040; AVX2-FP-NEXT: vmovdqa {{.*#+}} ymm4 = [4,5,4,5,4,5,4,5,8,9,10,11,8,9,6,7,20,21,20,21,20,21,20,21,24,25,26,27,24,25,22,23]6041; AVX2-FP-NEXT: vpshufb %ymm4, %ymm0, %ymm06042; AVX2-FP-NEXT: vmovdqa {{.*#+}} xmm5 = [4,5,2,3,0,1,14,15,12,13,12,13,12,13,12,13]6043; AVX2-FP-NEXT: vpshufb %xmm5, %xmm2, %xmm26044; AVX2-FP-NEXT: vpblendvb %ymm14, %ymm2, %ymm0, %ymm06045; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6046; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0],ymm12[1],ymm1[2,3],ymm12[4],ymm1[5,6,7]6047; AVX2-FP-NEXT: vmovdqu %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6048; AVX2-FP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6049; AVX2-FP-NEXT: vextracti128 $1, %ymm0, %xmm26050; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0],xmm2[1],xmm0[2,3,4,5],xmm2[6],xmm0[7]6051; AVX2-FP-NEXT: vpshufb %xmm5, %xmm0, %xmm06052; AVX2-FP-NEXT: vmovdqu %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6053; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm2 = ymm13[0,1],ymm11[2,3],ymm13[4,5],ymm11[6,7]6054; AVX2-FP-NEXT: vpermq {{.*#+}} ymm5 = ymm11[2,3,0,1]6055; AVX2-FP-NEXT: vmovdqu %ymm11, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6056; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm5[4],ymm2[5,6,7,8,9,10,11],ymm5[12],ymm2[13,14,15]6057; AVX2-FP-NEXT: vpshufb %ymm4, %ymm2, %ymm26058; AVX2-FP-NEXT: vpblendvb %ymm14, %ymm0, %ymm2, %ymm76059; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm3[0],ymm8[1],ymm3[2,3,4],ymm8[5],ymm3[6,7]6060; AVX2-FP-NEXT: vmovdqa %ymm3, %ymm156061; AVX2-FP-NEXT: vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6062; AVX2-FP-NEXT: vextracti128 $1, %ymm0, %xmm26063; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm0 = xmm2[0],xmm0[1],xmm2[2],xmm0[3],xmm2[4,5,6,7]6064; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm2 = ymm9[0,1,2],ymm6[3],ymm9[4,5],ymm6[6],ymm9[7]6065; AVX2-FP-NEXT: vpermq {{.*#+}} ymm2 = ymm2[1,3,2,3]6066; AVX2-FP-NEXT: vmovdqa {{.*#+}} ymm4 = [6,7,6,7,6,7,6,7,8,9,4,5,10,11,0,1,22,23,22,23,22,23,22,23,24,25,20,21,26,27,16,17]6067; AVX2-FP-NEXT: vpshufb %ymm4, %ymm2, %ymm26068; AVX2-FP-NEXT: vmovdqa {{.*#+}} xmm5 = [6,7,4,5,2,3,0,1,14,15,14,15,14,15,14,15]6069; AVX2-FP-NEXT: vpshufb %xmm5, %xmm0, %xmm06070; AVX2-FP-NEXT: vpblendvb %ymm14, %ymm0, %ymm2, %ymm106071; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0],ymm12[1],ymm1[2,3,4],ymm12[5],ymm1[6,7]6072; AVX2-FP-NEXT: vextracti128 $1, %ymm0, %xmm26073; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm0 = xmm2[0],xmm0[1],xmm2[2],xmm0[3],xmm2[4,5,6,7]6074; AVX2-FP-NEXT: vpshufb %xmm5, %xmm0, %xmm06075; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm2 = ymm13[0,1,2],ymm11[3],ymm13[4,5],ymm11[6],ymm13[7]6076; AVX2-FP-NEXT: vpermq {{.*#+}} ymm2 = ymm2[1,3,2,3]6077; AVX2-FP-NEXT: vpshufb %ymm4, %ymm2, %ymm26078; AVX2-FP-NEXT: vpblendvb %ymm14, %ymm0, %ymm2, %ymm86079; AVX2-FP-NEXT: vmovdqa 128(%rdi), %ymm66080; AVX2-FP-NEXT: vmovdqa 160(%rdi), %ymm116081; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm11[0,1,2],ymm6[3],ymm11[4,5],ymm6[6],ymm11[7]6082; AVX2-FP-NEXT: vextracti128 $1, %ymm0, %xmm16083; AVX2-FP-NEXT: vmovdqa {{.*#+}} xmm3 = [0,1,2,3,4,5,6,7,8,9,10,11,6,7,6,7]6084; AVX2-FP-NEXT: vpshufb %xmm3, %xmm1, %xmm16085; AVX2-FP-NEXT: vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,6,4,7]6086; AVX2-FP-NEXT: vpunpckhwd {{.*#+}} xmm0 = xmm0[4],xmm1[4],xmm0[5],xmm1[5],xmm0[6],xmm1[6],xmm0[7],xmm1[7]6087; AVX2-FP-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm16088; AVX2-FP-NEXT: vmovdqa 192(%rdi), %ymm56089; AVX2-FP-NEXT: vpermq {{.*#+}} ymm0 = ymm5[0,1,0,2]6090; AVX2-FP-NEXT: vpbroadcastd {{.*#+}} ymm2 = [20,21,26,27,20,21,26,27,20,21,26,27,20,21,26,27,20,21,26,27,20,21,26,27,20,21,26,27,20,21,26,27]6091; AVX2-FP-NEXT: vpshufb %ymm2, %ymm0, %ymm46092; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,6],ymm4[7]6093; AVX2-FP-NEXT: vpblendd $31, (%rsp), %ymm1, %ymm1 # 32-byte Folded Reload6094; AVX2-FP-NEXT: # ymm1 = mem[0,1,2,3,4],ymm1[5,6,7]6095; AVX2-FP-NEXT: vmovdqu %ymm1, (%rsp) # 32-byte Spill6096; AVX2-FP-NEXT: vmovdqa 352(%rdi), %ymm96097; AVX2-FP-NEXT: vmovdqa 384(%rdi), %ymm46098; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm4[0,1,2],ymm9[3],ymm4[4,5],ymm9[6],ymm4[7]6099; AVX2-FP-NEXT: vextracti128 $1, %ymm1, %xmm146100; AVX2-FP-NEXT: vpshufb %xmm3, %xmm14, %xmm36101; AVX2-FP-NEXT: vpshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,6,4,7]6102; AVX2-FP-NEXT: vpunpckhwd {{.*#+}} xmm1 = xmm1[4],xmm3[4],xmm1[5],xmm3[5],xmm1[6],xmm3[6],xmm1[7],xmm3[7]6103; AVX2-FP-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm36104; AVX2-FP-NEXT: vmovdqa 416(%rdi), %ymm16105; AVX2-FP-NEXT: vpermq {{.*#+}} ymm14 = ymm1[0,1,0,2]6106; AVX2-FP-NEXT: vpshufb %ymm2, %ymm14, %ymm136107; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5,6],ymm13[7]6108; AVX2-FP-NEXT: vpblendd $31, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm2 # 32-byte Folded Reload6109; AVX2-FP-NEXT: # ymm2 = mem[0,1,2,3,4],ymm3[5,6,7]6110; AVX2-FP-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6111; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm3 = ymm9[0,1],ymm4[2],ymm9[3,4,5],ymm4[6],ymm9[7]6112; AVX2-FP-NEXT: vextracti128 $1, %ymm3, %xmm136113; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm3 = xmm3[0,1,2,3],xmm13[4],xmm3[5],xmm13[6],xmm3[7]6114; AVX2-FP-NEXT: vmovdqa {{.*#+}} xmm13 = [0,1,0,1,14,15,12,13,10,11,8,9,12,13,14,15]6115; AVX2-FP-NEXT: vpshufb %xmm13, %xmm3, %xmm36116; AVX2-FP-NEXT: vinserti128 $1, %xmm3, %ymm0, %ymm36117; AVX2-FP-NEXT: vpbroadcastd {{.*#+}} ymm2 = [22,23,28,29,22,23,28,29,22,23,28,29,22,23,28,29,22,23,28,29,22,23,28,29,22,23,28,29,22,23,28,29]6118; AVX2-FP-NEXT: vpshufb %ymm2, %ymm14, %ymm146119; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5,6],ymm14[7]6120; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm12 # 32-byte Reload6121; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm3 = ymm12[0],ymm3[1,2,3,4,5,6,7],ymm12[8],ymm3[9,10,11,12,13,14,15]6122; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm3 = ymm12[0,1,2,3],ymm3[4,5,6,7]6123; AVX2-FP-NEXT: vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6124; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm3 = ymm6[0,1],ymm11[2],ymm6[3,4,5],ymm11[6],ymm6[7]6125; AVX2-FP-NEXT: vextracti128 $1, %ymm3, %xmm146126; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm3 = xmm3[0,1,2,3],xmm14[4],xmm3[5],xmm14[6],xmm3[7]6127; AVX2-FP-NEXT: vpshufb %xmm13, %xmm3, %xmm36128; AVX2-FP-NEXT: vpshufb %ymm2, %ymm0, %ymm06129; AVX2-FP-NEXT: vinserti128 $1, %xmm3, %ymm0, %ymm26130; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm2[0,1,2,3,4,5,6],ymm0[7]6131; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload6132; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm0 = ymm2[0],ymm0[1,2,3,4,5,6,7],ymm2[8],ymm0[9,10,11,12,13,14,15]6133; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm2[0,1,2,3],ymm0[4,5,6,7]6134; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6135; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm6[0,1,2],ymm11[3],ymm6[4,5],ymm11[6],ymm6[7]6136; AVX2-FP-NEXT: vextracti128 $1, %ymm0, %xmm26137; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm0 = xmm2[0],xmm0[1],xmm2[2,3,4,5],xmm0[6],xmm2[7]6138; AVX2-FP-NEXT: vmovdqa {{.*#+}} xmm2 = [0,1,2,3,0,1,14,15,12,13,10,11,12,13,14,15]6139; AVX2-FP-NEXT: vpshufb %xmm2, %xmm0, %xmm06140; AVX2-FP-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm06141; AVX2-FP-NEXT: vpermq {{.*#+}} ymm3 = ymm5[0,1,1,2]6142; AVX2-FP-NEXT: vpbroadcastd {{.*#+}} ymm13 = [16,17,30,31,16,17,30,31,16,17,30,31,16,17,30,31,16,17,30,31,16,17,30,31,16,17,30,31,16,17,30,31]6143; AVX2-FP-NEXT: vpshufb %ymm13, %ymm3, %ymm36144; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5,6],ymm3[7]6145; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload6146; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm0 = ymm3[0],ymm0[1,2,3,4,5,6,7],ymm3[8],ymm0[9,10,11,12,13,14,15]6147; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm3[0,1,2,3],ymm0[4,5,6,7]6148; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6149; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm9[0,1,2],ymm4[3],ymm9[4,5],ymm4[6],ymm9[7]6150; AVX2-FP-NEXT: vextracti128 $1, %ymm0, %xmm36151; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm0 = xmm3[0],xmm0[1],xmm3[2,3,4,5],xmm0[6],xmm3[7]6152; AVX2-FP-NEXT: vpshufb %xmm2, %xmm0, %xmm06153; AVX2-FP-NEXT: vpermq {{.*#+}} ymm2 = ymm1[0,1,1,2]6154; AVX2-FP-NEXT: vpshufb %ymm13, %ymm2, %ymm26155; AVX2-FP-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm06156; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5,6],ymm2[7]6157; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm0 = ymm7[0],ymm0[1,2,3,4,5,6,7],ymm7[8],ymm0[9,10,11,12,13,14,15]6158; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm7[0,1,2,3],ymm0[4,5,6,7]6159; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6160; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm11[0],ymm6[1],ymm11[2,3],ymm6[4],ymm11[5,6,7]6161; AVX2-FP-NEXT: vextracti128 $1, %ymm0, %xmm26162; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0],xmm2[1],xmm0[2,3,4,5],xmm2[6],xmm0[7]6163; AVX2-FP-NEXT: vmovdqa {{.*#+}} xmm2 = [0,1,4,5,2,3,0,1,14,15,12,13,12,13,14,15]6164; AVX2-FP-NEXT: vpshufb %xmm2, %xmm0, %xmm06165; AVX2-FP-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm06166; AVX2-FP-NEXT: vpermq {{.*#+}} ymm7 = ymm5[0,1,1,3]6167; AVX2-FP-NEXT: vpbroadcastd {{.*#+}} ymm3 = [18,19,24,25,18,19,24,25,18,19,24,25,18,19,24,25,18,19,24,25,18,19,24,25,18,19,24,25,18,19,24,25]6168; AVX2-FP-NEXT: vpshufb %ymm3, %ymm7, %ymm56169; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5,6],ymm5[7]6170; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm0 = ymm10[0],ymm0[1,2,3,4,5,6,7],ymm10[8],ymm0[9,10,11,12,13,14,15]6171; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm10[0,1,2,3],ymm0[4,5,6,7]6172; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6173; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm4[0],ymm9[1],ymm4[2,3],ymm9[4],ymm4[5,6,7]6174; AVX2-FP-NEXT: vextracti128 $1, %ymm0, %xmm56175; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0],xmm5[1],xmm0[2,3,4,5],xmm5[6],xmm0[7]6176; AVX2-FP-NEXT: vpshufb %xmm2, %xmm0, %xmm06177; AVX2-FP-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm26178; AVX2-FP-NEXT: vpermq {{.*#+}} ymm0 = ymm1[0,1,1,3]6179; AVX2-FP-NEXT: vpshufb %ymm3, %ymm0, %ymm16180; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5,6],ymm1[7]6181; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm1 = ymm8[0],ymm1[1,2,3,4,5,6,7],ymm8[8],ymm1[9,10,11,12,13,14,15]6182; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm8[0,1,2,3],ymm1[4,5,6,7]6183; AVX2-FP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6184; AVX2-FP-NEXT: vpblendd $36, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm2 # 32-byte Folded Reload6185; AVX2-FP-NEXT: # ymm2 = ymm15[0,1],mem[2],ymm15[3,4],mem[5],ymm15[6,7]6186; AVX2-FP-NEXT: vmovd {{.*#+}} xmm14 = [8,9,4,5,0,0,0,0,0,0,0,0,0,0,0,0]6187; AVX2-FP-NEXT: vpshufb %xmm14, %xmm2, %xmm36188; AVX2-FP-NEXT: vextracti128 $1, %ymm2, %xmm26189; AVX2-FP-NEXT: vpshuflw {{.*#+}} xmm2 = xmm2[3,1,2,3,4,5,6,7]6190; AVX2-FP-NEXT: vpunpcklwd {{.*#+}} xmm2 = xmm3[0],xmm2[0],xmm3[1],xmm2[1],xmm3[2],xmm2[2],xmm3[3],xmm2[3]6191; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload6192; AVX2-FP-NEXT: vpblendd $187, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm3 # 32-byte Folded Reload6193; AVX2-FP-NEXT: # ymm3 = mem[0,1],ymm1[2],mem[3,4,5],ymm1[6],mem[7]6194; AVX2-FP-NEXT: vmovdqa {{.*#+}} ymm5 = [u,u,u,u,u,u,u,u,0,1,14,15,u,u,10,11,24,25,24,25,24,25,24,25,16,17,30,31,u,u,26,27]6195; AVX2-FP-NEXT: vpshufb %ymm5, %ymm3, %ymm86196; AVX2-FP-NEXT: vpermq {{.*#+}} ymm3 = ymm3[2,3,0,1]6197; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm3 = ymm8[0,1,2,3,4,5],ymm3[6],ymm8[7,8,9,10,11,12,13],ymm3[14],ymm8[15]6198; AVX2-FP-NEXT: vpblendd {{.*#+}} xmm2 = xmm2[0,1],xmm3[2,3]6199; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm3 = ymm11[0],ymm6[1],ymm11[2,3,4],ymm6[5],ymm11[6,7]6200; AVX2-FP-NEXT: vmovdqu %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6201; AVX2-FP-NEXT: vmovdqu %ymm11, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6202; AVX2-FP-NEXT: vextracti128 $1, %ymm3, %xmm106203; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm3 = xmm10[0],xmm3[1],xmm10[2],xmm3[3],xmm10[4,5,6,7]6204; AVX2-FP-NEXT: vmovdqa {{.*#+}} xmm10 = [0,1,6,7,4,5,2,3,0,1,14,15,12,13,14,15]6205; AVX2-FP-NEXT: vpshufb %xmm10, %xmm3, %xmm36206; AVX2-FP-NEXT: vinserti128 $1, %xmm3, %ymm0, %ymm36207; AVX2-FP-NEXT: vpbroadcastd {{.*#+}} ymm13 = [20,21,26,27,20,21,26,27,20,21,26,27,20,21,26,27,20,21,26,27,20,21,26,27,20,21,26,27,20,21,26,27]6208; AVX2-FP-NEXT: vpshufb %ymm13, %ymm7, %ymm76209; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5,6],ymm7[7]6210; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm3 = ymm8[0],ymm3[1,2,3,4,5,6,7],ymm8[8],ymm3[9,10,11,12,13,14,15]6211; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm3[4,5,6,7]6212; AVX2-FP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6213; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm12 # 32-byte Reload6214; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Reload6215; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm2 = ymm15[0,1],ymm12[2],ymm15[3,4],ymm12[5],ymm15[6,7]6216; AVX2-FP-NEXT: vpshufb %xmm14, %xmm2, %xmm36217; AVX2-FP-NEXT: vextracti128 $1, %ymm2, %xmm26218; AVX2-FP-NEXT: vpshuflw {{.*#+}} xmm2 = xmm2[3,1,2,3,4,5,6,7]6219; AVX2-FP-NEXT: vpunpcklwd {{.*#+}} xmm2 = xmm3[0],xmm2[0],xmm3[1],xmm2[1],xmm3[2],xmm2[2],xmm3[3],xmm2[3]6220; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload6221; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload6222; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm3 = ymm8[0,1],ymm1[2],ymm8[3,4,5],ymm1[6],ymm8[7]6223; AVX2-FP-NEXT: vpshufb %ymm5, %ymm3, %ymm56224; AVX2-FP-NEXT: vpermq {{.*#+}} ymm3 = ymm3[2,3,0,1]6225; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm3 = ymm5[0,1,2,3,4,5],ymm3[6],ymm5[7,8,9,10,11,12,13],ymm3[14],ymm5[15]6226; AVX2-FP-NEXT: vpblendd {{.*#+}} xmm2 = xmm2[0,1],xmm3[2,3]6227; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm3 = ymm4[0],ymm9[1],ymm4[2,3,4],ymm9[5],ymm4[6,7]6228; AVX2-FP-NEXT: vextracti128 $1, %ymm3, %xmm76229; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm3 = xmm7[0],xmm3[1],xmm7[2],xmm3[3],xmm7[4,5,6,7]6230; AVX2-FP-NEXT: vpshufb %xmm10, %xmm3, %xmm36231; AVX2-FP-NEXT: vpshufb %ymm13, %ymm0, %ymm06232; AVX2-FP-NEXT: vinserti128 $1, %xmm3, %ymm0, %ymm36233; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm3[0,1,2,3,4,5,6],ymm0[7]6234; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm0 = ymm5[0],ymm0[1,2,3,4,5,6,7],ymm5[8],ymm0[9,10,11,12,13,14,15]6235; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm2[0,1,2,3],ymm0[4,5,6,7]6236; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6237; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm8[0,1,2],ymm1[3],ymm8[4,5],ymm1[6],ymm8[7]6238; AVX2-FP-NEXT: vpermq {{.*#+}} ymm2 = ymm0[2,3,0,1]6239; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm2 = ymm2[0],ymm0[1,2,3,4,5,6],ymm2[7,8],ymm0[9,10,11,12,13,14],ymm2[15]6240; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm4[0,1],ymm9[2],ymm4[3,4],ymm9[5],ymm4[6,7]6241; AVX2-FP-NEXT: vextracti128 $1, %ymm0, %xmm36242; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm0 = xmm3[0,1],xmm0[2],xmm3[3],xmm0[4],xmm3[5,6,7]6243; AVX2-FP-NEXT: vmovdqa {{.*#+}} xmm7 = [8,9,8,9,6,7,4,5,2,3,2,3,2,3,2,3]6244; AVX2-FP-NEXT: vpshufb %xmm7, %xmm0, %xmm06245; AVX2-FP-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm86246; AVX2-FP-NEXT: vmovdqa 432(%rdi), %xmm36247; AVX2-FP-NEXT: vmovdqa 416(%rdi), %xmm06248; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm10 = xmm0[0,1,2,3,4,5],xmm3[6],xmm0[7]6249; AVX2-FP-NEXT: vmovdqa {{.*#+}} xmm13 = [0,1,2,3,4,5,6,7,0,1,0,1,14,15,12,13]6250; AVX2-FP-NEXT: vpshufb %xmm13, %xmm10, %xmm106251; AVX2-FP-NEXT: vinserti128 $1, %xmm10, %ymm0, %ymm106252; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm8 = ymm8[0,1,2,3,4],ymm10[5,6,7],ymm8[8,9,10,11,12],ymm10[13,14,15]6253; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm10 = ymm15[0,1],ymm12[2,3],ymm15[4,5],ymm12[6,7]6254; AVX2-FP-NEXT: vextracti128 $1, %ymm10, %xmm146255; AVX2-FP-NEXT: vmovd {{.*#+}} xmm1 = [8,9,4,5,0,0,0,0,0,0,0,0,0,0,0,0]6256; AVX2-FP-NEXT: vpshufb %xmm1, %xmm14, %xmm146257; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm10 = xmm10[10,11,6,7,u,u,u,u,u,u,u,u,u,u,u,u]6258; AVX2-FP-NEXT: vpunpcklwd {{.*#+}} xmm10 = xmm10[0],xmm14[0],xmm10[1],xmm14[1],xmm10[2],xmm14[2],xmm10[3],xmm14[3]6259; AVX2-FP-NEXT: vmovdqa {{.*#+}} ymm14 = [u,u,u,u,u,u,u,u,2,3,0,1,14,15,12,13,26,27,26,27,26,27,26,27,18,19,16,17,30,31,28,29]6260; AVX2-FP-NEXT: vpshufb %ymm14, %ymm2, %ymm26261; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm8 = ymm2[0],ymm8[1,2,3,4,5,6,7],ymm2[8],ymm8[9,10,11,12,13,14,15]6262; AVX2-FP-NEXT: vpblendd {{.*#+}} xmm2 = xmm10[0,1],xmm2[2,3]6263; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm8[4,5,6,7]6264; AVX2-FP-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6265; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm8 = ymm11[0,1],ymm6[2],ymm11[3,4],ymm6[5],ymm11[6,7]6266; AVX2-FP-NEXT: vextracti128 $1, %ymm8, %xmm106267; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm8 = xmm10[0,1],xmm8[2],xmm10[3],xmm8[4],xmm10[5,6,7]6268; AVX2-FP-NEXT: vpshufb %xmm7, %xmm8, %xmm106269; AVX2-FP-NEXT: vmovdqa 208(%rdi), %xmm156270; AVX2-FP-NEXT: vmovdqa 192(%rdi), %xmm126271; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm5 = xmm12[0,1,2,3,4,5],xmm15[6],xmm12[7]6272; AVX2-FP-NEXT: vpshufb %xmm13, %xmm5, %xmm56273; AVX2-FP-NEXT: vinserti128 $1, %xmm10, %ymm0, %ymm106274; AVX2-FP-NEXT: vinserti128 $1, %xmm5, %ymm0, %ymm56275; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm5 = ymm10[0,1,2,3,4],ymm5[5,6,7],ymm10[8,9,10,11,12],ymm5[13,14,15]6276; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Reload6277; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload6278; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm10 = ymm11[0,1,2],ymm7[3],ymm11[4,5],ymm7[6],ymm11[7]6279; AVX2-FP-NEXT: vpermq {{.*#+}} ymm13 = ymm10[2,3,0,1]6280; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm10 = ymm13[0],ymm10[1,2,3,4,5,6],ymm13[7,8],ymm10[9,10,11,12,13,14],ymm13[15]6281; AVX2-FP-NEXT: vpshufb %ymm14, %ymm10, %ymm106282; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload6283; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload6284; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm13 = ymm2[0,1],ymm8[2,3],ymm2[4,5],ymm8[6,7]6285; AVX2-FP-NEXT: vextracti128 $1, %ymm13, %xmm146286; AVX2-FP-NEXT: vpshufb %xmm1, %xmm14, %xmm146287; AVX2-FP-NEXT: vpshufb {{.*#+}} xmm1 = xmm13[10,11,6,7,u,u,u,u,u,u,u,u,u,u,u,u]6288; AVX2-FP-NEXT: vpunpcklwd {{.*#+}} xmm1 = xmm1[0],xmm14[0],xmm1[1],xmm14[1],xmm1[2],xmm14[2],xmm1[3],xmm14[3]6289; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm5 = ymm10[0],ymm5[1,2,3,4,5,6,7],ymm10[8],ymm5[9,10,11,12,13,14,15]6290; AVX2-FP-NEXT: vpblendd {{.*#+}} xmm1 = xmm1[0,1],xmm10[2,3]6291; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm5[4,5,6,7]6292; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload6293; AVX2-FP-NEXT: vpblendd $18, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5, %ymm5 # 32-byte Folded Reload6294; AVX2-FP-NEXT: # ymm5 = ymm5[0],mem[1],ymm5[2,3],mem[4],ymm5[5,6,7]6295; AVX2-FP-NEXT: vpermq {{.*#+}} ymm10 = ymm5[2,3,0,1]6296; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm5 = ymm5[0],ymm10[1],ymm5[2,3,4,5,6,7,8],ymm10[9],ymm5[10,11,12,13,14,15]6297; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm4 = ymm4[0,1],ymm9[2,3],ymm4[4,5],ymm9[6,7]6298; AVX2-FP-NEXT: vextracti128 $1, %ymm4, %xmm66299; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm4 = xmm6[0,1,2],xmm4[3],xmm6[4],xmm4[5],xmm6[6,7]6300; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm0 = xmm3[0],xmm0[1],xmm3[2,3,4,5,6,7]6301; AVX2-FP-NEXT: vmovdqa {{.*#+}} xmm3 = [8,9,10,11,8,9,6,7,4,5,4,5,4,5,4,5]6302; AVX2-FP-NEXT: vpshufb %xmm3, %xmm4, %xmm46303; AVX2-FP-NEXT: vinserti128 $1, %xmm4, %ymm0, %ymm46304; AVX2-FP-NEXT: vmovdqa {{.*#+}} xmm6 = [0,1,2,3,4,5,6,7,0,1,2,3,0,1,14,15]6305; AVX2-FP-NEXT: vpshufb %xmm6, %xmm0, %xmm06306; AVX2-FP-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm06307; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm0 = ymm4[0,1,2,3,4],ymm0[5,6,7],ymm4[8,9,10,11,12],ymm0[13,14,15]6308; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload6309; AVX2-FP-NEXT: vpblendd $183, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm4 # 32-byte Folded Reload6310; AVX2-FP-NEXT: # ymm4 = mem[0,1,2],ymm4[3],mem[4,5],ymm4[6],mem[7]6311; AVX2-FP-NEXT: vextracti128 $1, %ymm4, %xmm106312; AVX2-FP-NEXT: vpbroadcastd {{.*#+}} xmm9 = [10,11,6,7,10,11,6,7,10,11,6,7,10,11,6,7]6313; AVX2-FP-NEXT: vpshufb %xmm9, %xmm10, %xmm106314; AVX2-FP-NEXT: vpshufhw {{.*#+}} xmm4 = xmm4[0,1,2,3,6,4,6,7]6315; AVX2-FP-NEXT: vpunpckhwd {{.*#+}} xmm4 = xmm4[4],xmm10[4],xmm4[5],xmm10[5],xmm4[6],xmm10[6],xmm4[7],xmm10[7]6316; AVX2-FP-NEXT: vmovdqa {{.*#+}} ymm10 = [u,u,u,u,u,u,u,u,4,5,2,3,0,1,14,15,28,29,28,29,28,29,28,29,20,21,18,19,16,17,30,31]6317; AVX2-FP-NEXT: vpshufb %ymm10, %ymm5, %ymm56318; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm0 = ymm5[0],ymm0[1,2,3,4,5,6,7],ymm5[8],ymm0[9,10,11,12,13,14,15]6319; AVX2-FP-NEXT: vpblendd {{.*#+}} xmm4 = xmm4[0,1],xmm5[2,3]6320; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm4[0,1,2,3],ymm0[4,5,6,7]6321; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload6322; AVX2-FP-NEXT: vpblendd $51, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm4 # 32-byte Folded Reload6323; AVX2-FP-NEXT: # ymm4 = mem[0,1],ymm4[2,3],mem[4,5],ymm4[6,7]6324; AVX2-FP-NEXT: vextracti128 $1, %ymm4, %xmm56325; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm4 = xmm5[0,1,2],xmm4[3],xmm5[4],xmm4[5],xmm5[6,7]6326; AVX2-FP-NEXT: vpshufb %xmm3, %xmm4, %xmm36327; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm4 = xmm15[0],xmm12[1],xmm15[2,3,4,5,6,7]6328; AVX2-FP-NEXT: vpshufb %xmm6, %xmm4, %xmm46329; AVX2-FP-NEXT: vinserti128 $1, %xmm3, %ymm0, %ymm36330; AVX2-FP-NEXT: vinserti128 $1, %xmm4, %ymm0, %ymm46331; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm3 = ymm3[0,1,2,3,4],ymm4[5,6,7],ymm3[8,9,10,11,12],ymm4[13,14,15]6332; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm4 = ymm7[0],ymm11[1],ymm7[2,3],ymm11[4],ymm7[5,6,7]6333; AVX2-FP-NEXT: vpermq {{.*#+}} ymm5 = ymm4[2,3,0,1]6334; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm4 = ymm4[0],ymm5[1],ymm4[2,3,4,5,6,7,8],ymm5[9],ymm4[10,11,12,13,14,15]6335; AVX2-FP-NEXT: vpshufb %ymm10, %ymm4, %ymm46336; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm5 = ymm2[0,1,2],ymm8[3],ymm2[4,5],ymm8[6],ymm2[7]6337; AVX2-FP-NEXT: vextracti128 $1, %ymm5, %xmm66338; AVX2-FP-NEXT: vpshufb %xmm9, %xmm6, %xmm66339; AVX2-FP-NEXT: vpshufhw {{.*#+}} xmm5 = xmm5[0,1,2,3,6,4,6,7]6340; AVX2-FP-NEXT: vpunpckhwd {{.*#+}} xmm5 = xmm5[4],xmm6[4],xmm5[5],xmm6[5],xmm5[6],xmm6[6],xmm5[7],xmm6[7]6341; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm3 = ymm4[0],ymm3[1,2,3,4,5,6,7],ymm4[8],ymm3[9,10,11,12,13,14,15]6342; AVX2-FP-NEXT: vpblendd {{.*#+}} xmm4 = xmm5[0,1],xmm4[2,3]6343; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm3 = ymm4[0,1,2,3],ymm3[4,5,6,7]6344; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload6345; AVX2-FP-NEXT: vmovaps %ymm2, 32(%rsi)6346; AVX2-FP-NEXT: vmovups (%rsp), %ymm2 # 32-byte Reload6347; AVX2-FP-NEXT: vmovaps %ymm2, (%rsi)6348; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload6349; AVX2-FP-NEXT: vmovaps %ymm2, 32(%rdx)6350; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload6351; AVX2-FP-NEXT: vmovaps %ymm2, (%rdx)6352; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload6353; AVX2-FP-NEXT: vmovaps %ymm2, 32(%rcx)6354; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload6355; AVX2-FP-NEXT: vmovaps %ymm2, (%rcx)6356; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload6357; AVX2-FP-NEXT: vmovaps %ymm2, 32(%r8)6358; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload6359; AVX2-FP-NEXT: vmovaps %ymm2, (%r8)6360; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload6361; AVX2-FP-NEXT: vmovaps %ymm2, 32(%r9)6362; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload6363; AVX2-FP-NEXT: vmovaps %ymm2, (%r9)6364; AVX2-FP-NEXT: movq {{[0-9]+}}(%rsp), %rax6365; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload6366; AVX2-FP-NEXT: vmovaps %ymm2, 32(%rax)6367; AVX2-FP-NEXT: vmovdqa %ymm1, (%rax)6368; AVX2-FP-NEXT: movq {{[0-9]+}}(%rsp), %rax6369; AVX2-FP-NEXT: vmovdqa %ymm0, 32(%rax)6370; AVX2-FP-NEXT: vmovdqa %ymm3, (%rax)6371; AVX2-FP-NEXT: addq $552, %rsp # imm = 0x2286372; AVX2-FP-NEXT: vzeroupper6373; AVX2-FP-NEXT: retq6374;6375; AVX2-FCP-LABEL: load_i16_stride7_vf32:6376; AVX2-FCP: # %bb.0:6377; AVX2-FCP-NEXT: subq $648, %rsp # imm = 0x2886378; AVX2-FCP-NEXT: vmovdqa 288(%rdi), %ymm76379; AVX2-FCP-NEXT: vmovdqa 320(%rdi), %ymm86380; AVX2-FCP-NEXT: vmovdqa 256(%rdi), %ymm106381; AVX2-FCP-NEXT: vmovdqa 224(%rdi), %ymm96382; AVX2-FCP-NEXT: vmovdqa (%rdi), %ymm126383; AVX2-FCP-NEXT: vmovdqa 32(%rdi), %ymm116384; AVX2-FCP-NEXT: vmovdqa 64(%rdi), %ymm146385; AVX2-FCP-NEXT: vmovdqa 96(%rdi), %ymm136386; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm13[0],ymm14[1],ymm13[2,3,4],ymm14[5],ymm13[6,7]6387; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm0 = ymm0[0,2,2,3]6388; AVX2-FCP-NEXT: vmovdqa {{.*#+}} ymm1 = [0,1,14,15,12,13,14,15,2,3,6,7,12,13,2,3,16,17,30,31,28,29,30,31,18,19,22,23,28,29,18,19]6389; AVX2-FCP-NEXT: vpshufb %ymm1, %ymm0, %ymm26390; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm12[0,1],ymm11[2],ymm12[3,4,5],ymm11[6],ymm12[7]6391; AVX2-FCP-NEXT: vextracti128 $1, %ymm0, %xmm36392; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2,3],xmm3[4],xmm0[5],xmm3[6],xmm0[7]6393; AVX2-FCP-NEXT: vmovdqa {{.*#+}} xmm3 = [0,1,14,15,12,13,10,11,8,9,8,9,8,9,8,9]6394; AVX2-FCP-NEXT: vpshufb %xmm3, %xmm0, %xmm46395; AVX2-FCP-NEXT: vpmovsxbw {{.*#+}} xmm0 = [65535,65535,65535,65535,65535,0,0,0]6396; AVX2-FCP-NEXT: vpblendvb %ymm0, %ymm4, %ymm2, %ymm156397; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm9[0,1],ymm10[2],ymm9[3,4,5],ymm10[6],ymm9[7]6398; AVX2-FCP-NEXT: vextracti128 $1, %ymm2, %xmm46399; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0,1,2,3],xmm4[4],xmm2[5],xmm4[6],xmm2[7]6400; AVX2-FCP-NEXT: vpshufb %xmm3, %xmm2, %xmm26401; AVX2-FCP-NEXT: vmovdqa %ymm7, %ymm66402; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm3 = ymm8[0],ymm7[1],ymm8[2,3,4],ymm7[5],ymm8[6,7]6403; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm3 = ymm3[0,2,2,3]6404; AVX2-FCP-NEXT: vpshufb %ymm1, %ymm3, %ymm16405; AVX2-FCP-NEXT: vpblendvb %ymm0, %ymm2, %ymm1, %ymm16406; AVX2-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6407; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm13[0,1],ymm14[2],ymm13[3,4],ymm14[5],ymm13[6,7]6408; AVX2-FCP-NEXT: vpmovsxbd {{.*#+}} ymm2 = [2,5,1,0,4,0,0,0]6409; AVX2-FCP-NEXT: vpermd %ymm1, %ymm2, %ymm16410; AVX2-FCP-NEXT: vmovdqa {{.*#+}} ymm3 = [2,3,2,3,2,3,2,3,8,9,0,1,6,7,8,9,18,19,18,19,18,19,18,19,24,25,16,17,22,23,24,25]6411; AVX2-FCP-NEXT: vpshufb %ymm3, %ymm1, %ymm16412; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm4 = ymm12[0,1,2],ymm11[3],ymm12[4,5],ymm11[6],ymm12[7]6413; AVX2-FCP-NEXT: vextracti128 $1, %ymm4, %xmm56414; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm4 = xmm5[0],xmm4[1],xmm5[2,3,4,5],xmm4[6],xmm5[7]6415; AVX2-FCP-NEXT: vmovdqa {{.*#+}} xmm5 = [2,3,0,1,14,15,12,13,10,11,10,11,10,11,10,11]6416; AVX2-FCP-NEXT: vpshufb %xmm5, %xmm4, %xmm46417; AVX2-FCP-NEXT: vpblendvb %ymm0, %ymm4, %ymm1, %ymm16418; AVX2-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6419; AVX2-FCP-NEXT: vmovdqa %ymm9, %ymm76420; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm9[0,1,2],ymm10[3],ymm9[4,5],ymm10[6],ymm9[7]6421; AVX2-FCP-NEXT: vextracti128 $1, %ymm1, %xmm46422; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm1 = xmm4[0],xmm1[1],xmm4[2,3,4,5],xmm1[6],xmm4[7]6423; AVX2-FCP-NEXT: vpshufb %xmm5, %xmm1, %xmm16424; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm4 = ymm8[0,1],ymm6[2],ymm8[3,4],ymm6[5],ymm8[6,7]6425; AVX2-FCP-NEXT: vpermd %ymm4, %ymm2, %ymm26426; AVX2-FCP-NEXT: vpshufb %ymm3, %ymm2, %ymm26427; AVX2-FCP-NEXT: vpblendvb %ymm0, %ymm1, %ymm2, %ymm16428; AVX2-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6429; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm13[0,1],ymm14[2,3],ymm13[4,5],ymm14[6,7]6430; AVX2-FCP-NEXT: vmovdqu %ymm14, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6431; AVX2-FCP-NEXT: vmovdqu %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6432; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm11[0],ymm12[1],ymm11[2,3],ymm12[4],ymm11[5,6,7]6433; AVX2-FCP-NEXT: vmovdqu %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6434; AVX2-FCP-NEXT: vmovdqu %ymm11, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6435; AVX2-FCP-NEXT: vextracti128 $1, %ymm2, %xmm36436; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0],xmm3[1],xmm2[2,3,4,5],xmm3[6],xmm2[7]6437; AVX2-FCP-NEXT: vpmovsxbd {{.*#+}} ymm3 = [2,6,1,0,5,0,0,0]6438; AVX2-FCP-NEXT: vpermd %ymm1, %ymm3, %ymm16439; AVX2-FCP-NEXT: vmovdqa {{.*#+}} ymm4 = [0,1,2,3,4,5,2,3,8,9,2,3,4,5,10,11,16,17,18,19,20,21,18,19,24,25,18,19,20,21,26,27]6440; AVX2-FCP-NEXT: vpshufb %ymm4, %ymm1, %ymm16441; AVX2-FCP-NEXT: vmovdqa {{.*#+}} xmm5 = [4,5,2,3,0,1,14,15,12,13,12,13,12,13,12,13]6442; AVX2-FCP-NEXT: vpshufb %xmm5, %xmm2, %xmm26443; AVX2-FCP-NEXT: vpblendvb %ymm0, %ymm2, %ymm1, %ymm96444; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm10[0],ymm7[1],ymm10[2,3],ymm7[4],ymm10[5,6,7]6445; AVX2-FCP-NEXT: vmovdqu %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6446; AVX2-FCP-NEXT: vmovdqu %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6447; AVX2-FCP-NEXT: vextracti128 $1, %ymm1, %xmm26448; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0],xmm2[1],xmm1[2,3,4,5],xmm2[6],xmm1[7]6449; AVX2-FCP-NEXT: vpshufb %xmm5, %xmm1, %xmm16450; AVX2-FCP-NEXT: vmovdqu %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6451; AVX2-FCP-NEXT: vmovdqa %ymm6, %ymm56452; AVX2-FCP-NEXT: vmovdqu %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6453; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm8[0,1],ymm6[2,3],ymm8[4,5],ymm6[6,7]6454; AVX2-FCP-NEXT: vpermd %ymm2, %ymm3, %ymm26455; AVX2-FCP-NEXT: vpshufb %ymm4, %ymm2, %ymm26456; AVX2-FCP-NEXT: vpblendvb %ymm0, %ymm1, %ymm2, %ymm66457; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm11[0],ymm12[1],ymm11[2,3,4],ymm12[5],ymm11[6,7]6458; AVX2-FCP-NEXT: vextracti128 $1, %ymm1, %xmm26459; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm1 = xmm2[0],xmm1[1],xmm2[2],xmm1[3],xmm2[4,5,6,7]6460; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm13[0,1,2],ymm14[3],ymm13[4,5],ymm14[6],ymm13[7]6461; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm2 = ymm2[1,3,2,3]6462; AVX2-FCP-NEXT: vmovdqa {{.*#+}} ymm3 = [6,7,6,7,6,7,6,7,8,9,4,5,10,11,0,1,22,23,22,23,22,23,22,23,24,25,20,21,26,27,16,17]6463; AVX2-FCP-NEXT: vpshufb %ymm3, %ymm2, %ymm26464; AVX2-FCP-NEXT: vmovdqa {{.*#+}} xmm12 = [6,7,4,5,2,3,0,1,14,15,14,15,14,15,14,15]6465; AVX2-FCP-NEXT: vpshufb %xmm12, %xmm1, %xmm16466; AVX2-FCP-NEXT: vpblendvb %ymm0, %ymm1, %ymm2, %ymm16467; AVX2-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6468; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm10[0],ymm7[1],ymm10[2,3,4],ymm7[5],ymm10[6,7]6469; AVX2-FCP-NEXT: vextracti128 $1, %ymm1, %xmm26470; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm1 = xmm2[0],xmm1[1],xmm2[2],xmm1[3],xmm2[4,5,6,7]6471; AVX2-FCP-NEXT: vpshufb %xmm12, %xmm1, %xmm16472; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm8[0,1,2],ymm5[3],ymm8[4,5],ymm5[6],ymm8[7]6473; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm2 = ymm2[1,3,2,3]6474; AVX2-FCP-NEXT: vpshufb %ymm3, %ymm2, %ymm26475; AVX2-FCP-NEXT: vpblendvb %ymm0, %ymm1, %ymm2, %ymm86476; AVX2-FCP-NEXT: vmovdqa 128(%rdi), %ymm76477; AVX2-FCP-NEXT: vmovdqa 160(%rdi), %ymm56478; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm5[0,1,2],ymm7[3],ymm5[4,5],ymm7[6],ymm5[7]6479; AVX2-FCP-NEXT: vbroadcasti128 {{.*#+}} ymm13 = [3,6,2,5,3,6,2,5]6480; AVX2-FCP-NEXT: # ymm13 = mem[0,1,0,1]6481; AVX2-FCP-NEXT: vpermd %ymm2, %ymm13, %ymm26482; AVX2-FCP-NEXT: vmovdqa {{.*#+}} ymm1 = [0,1,2,3,0,1,6,7,8,9,14,15,12,13,14,15,16,17,18,19,16,17,22,23,24,25,30,31,28,29,30,31]6483; AVX2-FCP-NEXT: vpshufb %ymm1, %ymm2, %ymm126484; AVX2-FCP-NEXT: vmovdqa 192(%rdi), %ymm46485; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm0 = ymm4[0,1,0,2]6486; AVX2-FCP-NEXT: vpbroadcastd {{.*#+}} ymm10 = [20,21,26,27,20,21,26,27,20,21,26,27,20,21,26,27,20,21,26,27,20,21,26,27,20,21,26,27,20,21,26,27]6487; AVX2-FCP-NEXT: vpshufb %ymm10, %ymm0, %ymm116488; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm11 = ymm12[0,1,2,3,4,5,6],ymm11[7]6489; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm15[0,1,2,3,4],ymm11[5,6,7]6490; AVX2-FCP-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6491; AVX2-FCP-NEXT: vmovdqa 352(%rdi), %ymm116492; AVX2-FCP-NEXT: vmovdqa 384(%rdi), %ymm126493; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm14 = ymm12[0,1,2],ymm11[3],ymm12[4,5],ymm11[6],ymm12[7]6494; AVX2-FCP-NEXT: vpermd %ymm14, %ymm13, %ymm136495; AVX2-FCP-NEXT: vpshufb %ymm1, %ymm13, %ymm16496; AVX2-FCP-NEXT: vmovdqa 416(%rdi), %ymm36497; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm14 = ymm3[0,1,0,2]6498; AVX2-FCP-NEXT: vpshufb %ymm10, %ymm14, %ymm156499; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,6],ymm15[7]6500; AVX2-FCP-NEXT: vpblendd $31, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload6501; AVX2-FCP-NEXT: # ymm1 = mem[0,1,2,3,4],ymm1[5,6,7]6502; AVX2-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6503; AVX2-FCP-NEXT: vmovdqa %ymm7, %ymm106504; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm7[0,1],ymm5[2],ymm7[3,4,5],ymm5[6],ymm7[7]6505; AVX2-FCP-NEXT: vextracti128 $1, %ymm1, %xmm156506; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1,2,3],xmm15[4],xmm1[5],xmm15[6],xmm1[7]6507; AVX2-FCP-NEXT: vmovdqa {{.*#+}} xmm15 = [0,1,0,1,14,15,12,13,10,11,8,9,12,13,14,15]6508; AVX2-FCP-NEXT: vpshufb %xmm15, %xmm1, %xmm16509; AVX2-FCP-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm16510; AVX2-FCP-NEXT: vpbroadcastd {{.*#+}} ymm2 = [22,23,28,29,22,23,28,29,22,23,28,29,22,23,28,29,22,23,28,29,22,23,28,29,22,23,28,29,22,23,28,29]6511; AVX2-FCP-NEXT: vpshufb %ymm2, %ymm0, %ymm06512; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5,6],ymm0[7]6513; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload6514; AVX2-FCP-NEXT: vpblendw {{.*#+}} ymm0 = ymm1[0],ymm0[1,2,3,4,5,6,7],ymm1[8],ymm0[9,10,11,12,13,14,15]6515; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]6516; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6517; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm11[0,1],ymm12[2],ymm11[3,4,5],ymm12[6],ymm11[7]6518; AVX2-FCP-NEXT: vextracti128 $1, %ymm0, %xmm16519; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2,3],xmm1[4],xmm0[5],xmm1[6],xmm0[7]6520; AVX2-FCP-NEXT: vpshufb %xmm15, %xmm0, %xmm06521; AVX2-FCP-NEXT: vpshufb %ymm2, %ymm14, %ymm16522; AVX2-FCP-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm06523; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5,6],ymm1[7]6524; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload6525; AVX2-FCP-NEXT: vpblendw {{.*#+}} ymm0 = ymm1[0],ymm0[1,2,3,4,5,6,7],ymm1[8],ymm0[9,10,11,12,13,14,15]6526; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]6527; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6528; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm7[0,1,2],ymm5[3],ymm7[4,5],ymm5[6],ymm7[7]6529; AVX2-FCP-NEXT: vmovdqa %ymm5, %ymm76530; AVX2-FCP-NEXT: vextracti128 $1, %ymm0, %xmm16531; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm0 = xmm1[0],xmm0[1],xmm1[2,3,4,5],xmm0[6],xmm1[7]6532; AVX2-FCP-NEXT: vmovdqa {{.*#+}} xmm1 = [0,1,2,3,0,1,14,15,12,13,10,11,12,13,14,15]6533; AVX2-FCP-NEXT: vpshufb %xmm1, %xmm0, %xmm06534; AVX2-FCP-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm06535; AVX2-FCP-NEXT: vpbroadcastq {{.*#+}} ymm2 = [2,5,2,5,2,5,2,5]6536; AVX2-FCP-NEXT: vmovdqu %ymm4, (%rsp) # 32-byte Spill6537; AVX2-FCP-NEXT: vpermd %ymm4, %ymm2, %ymm146538; AVX2-FCP-NEXT: vpshufhw {{.*#+}} ymm14 = ymm14[0,1,2,3,4,5,4,7,8,9,10,11,12,13,12,15]6539; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5,6],ymm14[7]6540; AVX2-FCP-NEXT: vpblendw {{.*#+}} ymm0 = ymm9[0],ymm0[1,2,3,4,5,6,7],ymm9[8],ymm0[9,10,11,12,13,14,15]6541; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm9[0,1,2,3],ymm0[4,5,6,7]6542; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6543; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm11[0,1,2],ymm12[3],ymm11[4,5],ymm12[6],ymm11[7]6544; AVX2-FCP-NEXT: vmovdqa %ymm12, %ymm146545; AVX2-FCP-NEXT: vextracti128 $1, %ymm0, %xmm96546; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm0 = xmm9[0],xmm0[1],xmm9[2,3,4,5],xmm0[6],xmm9[7]6547; AVX2-FCP-NEXT: vpshufb %xmm1, %xmm0, %xmm06548; AVX2-FCP-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm06549; AVX2-FCP-NEXT: vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6550; AVX2-FCP-NEXT: vpermd %ymm3, %ymm2, %ymm16551; AVX2-FCP-NEXT: vpshufhw {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,4,7,8,9,10,11,12,13,12,15]6552; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5,6],ymm1[7]6553; AVX2-FCP-NEXT: vpblendw {{.*#+}} ymm0 = ymm6[0],ymm0[1,2,3,4,5,6,7],ymm6[8],ymm0[9,10,11,12,13,14,15]6554; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm6[0,1,2,3],ymm0[4,5,6,7]6555; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6556; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm5[0],ymm10[1],ymm5[2,3],ymm10[4],ymm5[5,6,7]6557; AVX2-FCP-NEXT: vextracti128 $1, %ymm0, %xmm16558; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0],xmm1[1],xmm0[2,3,4,5],xmm1[6],xmm0[7]6559; AVX2-FCP-NEXT: vmovdqa {{.*#+}} xmm1 = [0,1,4,5,2,3,0,1,14,15,12,13,12,13,14,15]6560; AVX2-FCP-NEXT: vpshufb %xmm1, %xmm0, %xmm06561; AVX2-FCP-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm06562; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm6 = ymm4[0,1,1,3]6563; AVX2-FCP-NEXT: vpbroadcastd {{.*#+}} ymm2 = [18,19,24,25,18,19,24,25,18,19,24,25,18,19,24,25,18,19,24,25,18,19,24,25,18,19,24,25,18,19,24,25]6564; AVX2-FCP-NEXT: vpshufb %ymm2, %ymm6, %ymm96565; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5,6],ymm9[7]6566; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload6567; AVX2-FCP-NEXT: vpblendw {{.*#+}} ymm0 = ymm4[0],ymm0[1,2,3,4,5,6,7],ymm4[8],ymm0[9,10,11,12,13,14,15]6568; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm4[0,1,2,3],ymm0[4,5,6,7]6569; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6570; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm12[0],ymm11[1],ymm12[2,3],ymm11[4],ymm12[5,6,7]6571; AVX2-FCP-NEXT: vmovdqa %ymm11, %ymm126572; AVX2-FCP-NEXT: vextracti128 $1, %ymm0, %xmm46573; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0],xmm4[1],xmm0[2,3,4,5],xmm4[6],xmm0[7]6574; AVX2-FCP-NEXT: vpshufb %xmm1, %xmm0, %xmm06575; AVX2-FCP-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm06576; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm4 = ymm3[0,1,1,3]6577; AVX2-FCP-NEXT: vpshufb %ymm2, %ymm4, %ymm16578; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5,6],ymm1[7]6579; AVX2-FCP-NEXT: vpblendw {{.*#+}} ymm0 = ymm8[0],ymm0[1,2,3,4,5,6,7],ymm8[8],ymm0[9,10,11,12,13,14,15]6580; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm8[0,1,2,3],ymm0[4,5,6,7]6581; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6582; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Reload6583; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Reload6584; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm15[0,1],ymm11[2],ymm15[3,4],ymm11[5],ymm15[6,7]6585; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm2 = xmm1[8,9,4,5,u,u,u,u,u,u,u,u,u,u,u,u]6586; AVX2-FCP-NEXT: vextracti128 $1, %ymm1, %xmm16587; AVX2-FCP-NEXT: vpshuflw {{.*#+}} xmm1 = xmm1[3,1,2,3,4,5,6,7]6588; AVX2-FCP-NEXT: vpunpcklwd {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1],xmm2[2],xmm1[2],xmm2[3],xmm1[3]6589; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm5[0],ymm10[1],ymm5[2,3,4],ymm10[5],ymm5[6,7]6590; AVX2-FCP-NEXT: vmovdqu %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6591; AVX2-FCP-NEXT: vmovdqu %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6592; AVX2-FCP-NEXT: vextracti128 $1, %ymm2, %xmm86593; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm2 = xmm8[0],xmm2[1],xmm8[2],xmm2[3],xmm8[4,5,6,7]6594; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm2 = xmm2[0,1,6,7,4,5,2,3,0,1,14,15,12,13,14,15]6595; AVX2-FCP-NEXT: vinserti128 $1, %xmm2, %ymm0, %ymm26596; AVX2-FCP-NEXT: vpshufb {{.*#+}} ymm6 = ymm6[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,20,21,26,27]6597; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5,6],ymm6[7]6598; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload6599; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6600; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm6 = ymm0[0,1],ymm3[2],ymm0[3,4,5],ymm3[6],ymm0[7]6601; AVX2-FCP-NEXT: vpmovsxbd {{.*#+}} ymm9 = [0,3,7,2,6,0,0,0]6602; AVX2-FCP-NEXT: vpermd %ymm6, %ymm9, %ymm66603; AVX2-FCP-NEXT: vmovdqa {{.*#+}} ymm8 = [u,u,u,u,u,u,u,u,0,1,6,7,8,9,14,15,16,17,22,23,20,21,22,23,16,17,22,23,24,25,30,31]6604; AVX2-FCP-NEXT: vpshufb %ymm8, %ymm6, %ymm66605; AVX2-FCP-NEXT: vpblendd {{.*#+}} xmm1 = xmm1[0,1],xmm6[2,3]6606; AVX2-FCP-NEXT: vpblendw {{.*#+}} ymm2 = ymm6[0],ymm2[1,2,3,4,5,6,7],ymm6[8],ymm2[9,10,11,12,13,14,15]6607; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm2[4,5,6,7]6608; AVX2-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6609; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload6610; AVX2-FCP-NEXT: vpblendd $219, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload6611; AVX2-FCP-NEXT: # ymm1 = mem[0,1],ymm1[2],mem[3,4],ymm1[5],mem[6,7]6612; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm2 = xmm1[8,9,4,5,u,u,u,u,u,u,u,u,u,u,u,u]6613; AVX2-FCP-NEXT: vextracti128 $1, %ymm1, %xmm16614; AVX2-FCP-NEXT: vpshuflw {{.*#+}} xmm1 = xmm1[3,1,2,3,4,5,6,7]6615; AVX2-FCP-NEXT: vpunpcklwd {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1],xmm2[2],xmm1[2],xmm2[3],xmm1[3]6616; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm13 # 32-byte Reload6617; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload6618; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm13[0,1],ymm5[2],ymm13[3,4,5],ymm5[6],ymm13[7]6619; AVX2-FCP-NEXT: vpermd %ymm2, %ymm9, %ymm26620; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm6 = ymm14[0],ymm12[1],ymm14[2,3,4],ymm12[5],ymm14[6,7]6621; AVX2-FCP-NEXT: vextracti128 $1, %ymm6, %xmm96622; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm6 = xmm9[0],xmm6[1],xmm9[2],xmm6[3],xmm9[4,5,6,7]6623; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm6 = xmm6[0,1,6,7,4,5,2,3,0,1,14,15,12,13,14,15]6624; AVX2-FCP-NEXT: vpshufb {{.*#+}} ymm4 = ymm4[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,20,21,26,27]6625; AVX2-FCP-NEXT: vinserti128 $1, %xmm6, %ymm0, %ymm66626; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm4 = ymm6[0,1,2,3,4,5,6],ymm4[7]6627; AVX2-FCP-NEXT: vpshufb %ymm8, %ymm2, %ymm26628; AVX2-FCP-NEXT: vpblendd {{.*#+}} xmm1 = xmm1[0,1],xmm2[2,3]6629; AVX2-FCP-NEXT: vpblendw {{.*#+}} ymm2 = ymm2[0],ymm4[1,2,3,4,5,6,7],ymm2[8],ymm4[9,10,11,12,13,14,15]6630; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm2[4,5,6,7]6631; AVX2-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6632; AVX2-FCP-NEXT: vpmovsxbd {{.*#+}} ymm1 = [0,3,3,3,0,3,7,7]6633; AVX2-FCP-NEXT: vpermd (%rsp), %ymm1, %ymm1 # 32-byte Folded Reload6634; AVX2-FCP-NEXT: vpshufb {{.*#+}} ymm1 = ymm1[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,16,17,22,23,24,25]6635; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm6 = ymm7[0,1],ymm10[2],ymm7[3,4],ymm10[5],ymm7[6,7]6636; AVX2-FCP-NEXT: vbroadcasti128 {{.*#+}} ymm8 = [2,5,1,4,2,5,1,4]6637; AVX2-FCP-NEXT: # ymm8 = mem[0,1,0,1]6638; AVX2-FCP-NEXT: vpermd %ymm6, %ymm8, %ymm66639; AVX2-FCP-NEXT: vpshufb {{.*#+}} ymm6 = ymm6[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,16,17,22,23,24,25,30,31,u,u,u,u,u,u]6640; AVX2-FCP-NEXT: vpblendw {{.*#+}} ymm1 = ymm6[0,1,2,3,4],ymm1[5,6,7],ymm6[8,9,10,11,12],ymm1[13,14,15]6641; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm6 = ymm15[0,1],ymm11[2,3],ymm15[4,5],ymm11[6,7]6642; AVX2-FCP-NEXT: vextracti128 $1, %ymm6, %xmm156643; AVX2-FCP-NEXT: vmovd {{.*#+}} xmm2 = [8,9,4,5,0,0,0,0,0,0,0,0,0,0,0,0]6644; AVX2-FCP-NEXT: vpshufb %xmm2, %xmm15, %xmm156645; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm6 = xmm6[10,11,6,7,u,u,u,u,u,u,u,u,u,u,u,u]6646; AVX2-FCP-NEXT: vpunpcklwd {{.*#+}} xmm6 = xmm6[0],xmm15[0],xmm6[1],xmm15[1],xmm6[2],xmm15[2],xmm6[3],xmm15[3]6647; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm15 = ymm0[0,1,2],ymm3[3],ymm0[4,5],ymm3[6],ymm0[7]6648; AVX2-FCP-NEXT: vmovdqa %ymm0, %ymm96649; AVX2-FCP-NEXT: vmovdqa %ymm3, %ymm76650; AVX2-FCP-NEXT: vpmovsxbd {{.*#+}} ymm2 = [0,4,7,3,6,0,0,0]6651; AVX2-FCP-NEXT: vpermd %ymm15, %ymm2, %ymm156652; AVX2-FCP-NEXT: vmovdqa {{.*#+}} ymm0 = [u,u,u,u,u,u,u,u,2,3,4,5,10,11,12,13,18,19,18,19,18,19,18,19,18,19,20,21,26,27,28,29]6653; AVX2-FCP-NEXT: vpshufb %ymm0, %ymm15, %ymm156654; AVX2-FCP-NEXT: vpblendw {{.*#+}} ymm1 = ymm15[0],ymm1[1,2,3,4,5,6,7],ymm15[8],ymm1[9,10,11,12,13,14,15]6655; AVX2-FCP-NEXT: vpblendd {{.*#+}} xmm6 = xmm6[0,1],xmm15[2,3]6656; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm6[0,1,2,3],ymm1[4,5,6,7]6657; AVX2-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6658; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload6659; AVX2-FCP-NEXT: vpmovsxbd {{.*#+}} ymm1 = [0,3,3,3,0,3,7,7]6660; AVX2-FCP-NEXT: vpermd %ymm4, %ymm1, %ymm16661; AVX2-FCP-NEXT: vpshufb {{.*#+}} ymm1 = ymm1[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,16,17,22,23,24,25]6662; AVX2-FCP-NEXT: vmovdqa %ymm12, %ymm116663; AVX2-FCP-NEXT: vmovdqa %ymm14, %ymm126664; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm10 = ymm14[0,1],ymm11[2],ymm14[3,4],ymm11[5],ymm14[6,7]6665; AVX2-FCP-NEXT: vpermd %ymm10, %ymm8, %ymm86666; AVX2-FCP-NEXT: vpshufb {{.*#+}} ymm8 = ymm8[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,16,17,22,23,24,25,30,31,u,u,u,u,u,u]6667; AVX2-FCP-NEXT: vpblendw {{.*#+}} ymm1 = ymm8[0,1,2,3,4],ymm1[5,6,7],ymm8[8,9,10,11,12],ymm1[13,14,15]6668; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm8 = ymm13[0,1,2],ymm5[3],ymm13[4,5],ymm5[6],ymm13[7]6669; AVX2-FCP-NEXT: vpermd %ymm8, %ymm2, %ymm26670; AVX2-FCP-NEXT: vpshufb %ymm0, %ymm2, %ymm06671; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Reload6672; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Reload6673; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm15[0,1],ymm14[2,3],ymm15[4,5],ymm14[6,7]6674; AVX2-FCP-NEXT: vextracti128 $1, %ymm2, %xmm86675; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm8 = xmm8[8,9,4,5,u,u,u,u,u,u,u,u,u,u,u,u]6676; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm2 = xmm2[10,11,6,7,u,u,u,u,u,u,u,u,u,u,u,u]6677; AVX2-FCP-NEXT: vpunpcklwd {{.*#+}} xmm2 = xmm2[0],xmm8[0],xmm2[1],xmm8[1],xmm2[2],xmm8[2],xmm2[3],xmm8[3]6678; AVX2-FCP-NEXT: vpblendw {{.*#+}} ymm1 = ymm0[0],ymm1[1,2,3,4,5,6,7],ymm0[8],ymm1[9,10,11,12,13,14,15]6679; AVX2-FCP-NEXT: vpblendd {{.*#+}} xmm0 = xmm2[0,1],xmm0[2,3]6680; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]6681; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6682; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6683; AVX2-FCP-NEXT: vpblendd $51, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload6684; AVX2-FCP-NEXT: # ymm0 = mem[0,1],ymm0[2,3],mem[4,5],ymm0[6,7]6685; AVX2-FCP-NEXT: vbroadcasti128 {{.*#+}} ymm2 = [0,4,7,0,0,4,7,0]6686; AVX2-FCP-NEXT: # ymm2 = mem[0,1,0,1]6687; AVX2-FCP-NEXT: vpermd (%rsp), %ymm2, %ymm3 # 32-byte Folded Reload6688; AVX2-FCP-NEXT: vpbroadcastq {{.*#+}} ymm6 = [0,0,18,19,20,21,26,27,0,0,18,19,20,21,26,27,0,0,18,19,20,21,26,27,0,0,18,19,20,21,26,27]6689; AVX2-FCP-NEXT: vpshufb %ymm6, %ymm3, %ymm36690; AVX2-FCP-NEXT: vbroadcasti128 {{.*#+}} ymm5 = [2,6,1,5,2,6,1,5]6691; AVX2-FCP-NEXT: # ymm5 = mem[0,1,0,1]6692; AVX2-FCP-NEXT: vpermd %ymm0, %ymm5, %ymm06693; AVX2-FCP-NEXT: vpbroadcastq {{.*#+}} ymm1 = [28,29,18,19,20,21,26,27,28,29,18,19,20,21,26,27,28,29,18,19,20,21,26,27,28,29,18,19,20,21,26,27]6694; AVX2-FCP-NEXT: vpshufb %ymm1, %ymm0, %ymm06695; AVX2-FCP-NEXT: vpblendw {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm3[5,6,7],ymm0[8,9,10,11,12],ymm3[13,14,15]6696; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm3 = ymm7[0],ymm9[1],ymm7[2,3],ymm9[4],ymm7[5,6,7]6697; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload6698; AVX2-FCP-NEXT: vpblendd $183, {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm8 # 32-byte Folded Reload6699; AVX2-FCP-NEXT: # ymm8 = mem[0,1,2],ymm7[3],mem[4,5],ymm7[6],mem[7]6700; AVX2-FCP-NEXT: vextracti128 $1, %ymm8, %xmm96701; AVX2-FCP-NEXT: vpbroadcastd {{.*#+}} xmm10 = [10,11,6,7,10,11,6,7,10,11,6,7,10,11,6,7]6702; AVX2-FCP-NEXT: vpshufb %xmm10, %xmm9, %xmm96703; AVX2-FCP-NEXT: vpshufhw {{.*#+}} xmm8 = xmm8[0,1,2,3,6,4,6,7]6704; AVX2-FCP-NEXT: vpunpckhwd {{.*#+}} xmm8 = xmm8[4],xmm9[4],xmm8[5],xmm9[5],xmm8[6],xmm9[6],xmm8[7],xmm9[7]6705; AVX2-FCP-NEXT: vpmovsxbd {{.*#+}} ymm9 = [1,4,0,3,7,0,0,0]6706; AVX2-FCP-NEXT: vpermd %ymm3, %ymm9, %ymm36707; AVX2-FCP-NEXT: vmovdqa {{.*#+}} ymm7 = [u,u,u,u,u,u,u,u,0,1,6,7,8,9,14,15,16,17,22,23,20,21,22,23,16,17,22,23,24,25,30,31]6708; AVX2-FCP-NEXT: vpshufb %ymm7, %ymm3, %ymm36709; AVX2-FCP-NEXT: vpblendw {{.*#+}} ymm0 = ymm3[0],ymm0[1,2,3,4,5,6,7],ymm3[8],ymm0[9,10,11,12,13,14,15]6710; AVX2-FCP-NEXT: vpblendd {{.*#+}} xmm3 = xmm8[0,1],xmm3[2,3]6711; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm3[0,1,2,3],ymm0[4,5,6,7]6712; AVX2-FCP-NEXT: vpermd %ymm4, %ymm2, %ymm26713; AVX2-FCP-NEXT: vpshufb %ymm6, %ymm2, %ymm26714; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm3 = ymm12[0,1],ymm11[2,3],ymm12[4,5],ymm11[6,7]6715; AVX2-FCP-NEXT: vpermd %ymm3, %ymm5, %ymm36716; AVX2-FCP-NEXT: vpshufb %ymm1, %ymm3, %ymm36717; AVX2-FCP-NEXT: vpblendw {{.*#+}} ymm2 = ymm3[0,1,2,3,4],ymm2[5,6,7],ymm3[8,9,10,11,12],ymm2[13,14,15]6718; AVX2-FCP-NEXT: vpblendd $237, {{[-0-9]+}}(%r{{[sb]}}p), %ymm13, %ymm3 # 32-byte Folded Reload6719; AVX2-FCP-NEXT: # ymm3 = mem[0],ymm13[1],mem[2,3],ymm13[4],mem[5,6,7]6720; AVX2-FCP-NEXT: vpermd %ymm3, %ymm9, %ymm36721; AVX2-FCP-NEXT: vpshufb %ymm7, %ymm3, %ymm36722; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm4 = ymm15[0,1,2],ymm14[3],ymm15[4,5],ymm14[6],ymm15[7]6723; AVX2-FCP-NEXT: vextracti128 $1, %ymm4, %xmm56724; AVX2-FCP-NEXT: vpshufb %xmm10, %xmm5, %xmm56725; AVX2-FCP-NEXT: vpshufhw {{.*#+}} xmm4 = xmm4[0,1,2,3,6,4,6,7]6726; AVX2-FCP-NEXT: vpunpckhwd {{.*#+}} xmm4 = xmm4[4],xmm5[4],xmm4[5],xmm5[5],xmm4[6],xmm5[6],xmm4[7],xmm5[7]6727; AVX2-FCP-NEXT: vpblendw {{.*#+}} ymm2 = ymm3[0],ymm2[1,2,3,4,5,6,7],ymm3[8],ymm2[9,10,11,12,13,14,15]6728; AVX2-FCP-NEXT: vpblendd {{.*#+}} xmm3 = xmm4[0,1],xmm3[2,3]6729; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm3[0,1,2,3],ymm2[4,5,6,7]6730; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload6731; AVX2-FCP-NEXT: vmovaps %ymm1, 32(%rsi)6732; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload6733; AVX2-FCP-NEXT: vmovaps %ymm1, (%rsi)6734; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload6735; AVX2-FCP-NEXT: vmovaps %ymm1, 32(%rdx)6736; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload6737; AVX2-FCP-NEXT: vmovaps %ymm1, (%rdx)6738; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload6739; AVX2-FCP-NEXT: vmovaps %ymm1, 32(%rcx)6740; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload6741; AVX2-FCP-NEXT: vmovaps %ymm1, (%rcx)6742; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload6743; AVX2-FCP-NEXT: vmovaps %ymm1, 32(%r8)6744; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload6745; AVX2-FCP-NEXT: vmovaps %ymm1, (%r8)6746; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload6747; AVX2-FCP-NEXT: vmovaps %ymm1, 32(%r9)6748; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload6749; AVX2-FCP-NEXT: vmovaps %ymm1, (%r9)6750; AVX2-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax6751; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload6752; AVX2-FCP-NEXT: vmovaps %ymm1, 32(%rax)6753; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload6754; AVX2-FCP-NEXT: vmovaps %ymm1, (%rax)6755; AVX2-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax6756; AVX2-FCP-NEXT: vmovdqa %ymm2, 32(%rax)6757; AVX2-FCP-NEXT: vmovdqa %ymm0, (%rax)6758; AVX2-FCP-NEXT: addq $648, %rsp # imm = 0x2886759; AVX2-FCP-NEXT: vzeroupper6760; AVX2-FCP-NEXT: retq6761;6762; AVX512-LABEL: load_i16_stride7_vf32:6763; AVX512: # %bb.0:6764; AVX512-NEXT: vmovdqa (%rdi), %ymm86765; AVX512-NEXT: vmovdqa 32(%rdi), %ymm46766; AVX512-NEXT: vmovdqa 64(%rdi), %ymm126767; AVX512-NEXT: vmovdqa 96(%rdi), %ymm116768; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm11[0],ymm12[1],ymm11[2,3,4],ymm12[5],ymm11[6,7]6769; AVX512-NEXT: vpermq {{.*#+}} ymm0 = ymm0[0,2,2,3]6770; AVX512-NEXT: vpshufb {{.*#+}} ymm0 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm0[6,7,12,13,2,3,16,17,30,31],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero6771; AVX512-NEXT: vpblendd {{.*#+}} ymm1 = ymm8[0,1],ymm4[2],ymm8[3,4,5],ymm4[6],ymm8[7]6772; AVX512-NEXT: vextracti128 $1, %ymm1, %xmm26773; AVX512-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1,2,3],xmm2[4],xmm1[5],xmm2[6],xmm1[7]6774; AVX512-NEXT: vpshufb {{.*#+}} ymm1 = ymm1[0,1,14,15,12,13,10,11,8,9],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm1[u,u,u,u,u,u,u,u,u,u,u,u]6775; AVX512-NEXT: vporq %ymm0, %ymm1, %ymm216776; AVX512-NEXT: vmovdqa 128(%rdi), %ymm96777; AVX512-NEXT: vmovdqa 160(%rdi), %ymm106778; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm10[0,1,2],ymm9[3],ymm10[4,5],ymm9[6],ymm10[7]6779; AVX512-NEXT: vpshufhw {{.*#+}} xmm1 = xmm0[0,1,2,3,4,6,4,7]6780; AVX512-NEXT: vextracti128 $1, %ymm0, %xmm06781; AVX512-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[0,1,2,1]6782; AVX512-NEXT: vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,5,7,7]6783; AVX512-NEXT: vpunpckhwd {{.*#+}} xmm0 = xmm1[4],xmm0[4],xmm1[5],xmm0[5],xmm1[6],xmm0[6],xmm1[7],xmm0[7]6784; AVX512-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm26785; AVX512-NEXT: vmovdqa 192(%rdi), %ymm06786; AVX512-NEXT: vpermq {{.*#+}} ymm1 = ymm0[0,1,0,2]6787; AVX512-NEXT: vpshufd {{.*#+}} ymm3 = ymm1[0,1,2,1,4,5,6,5]6788; AVX512-NEXT: vpshufhw {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5,6,5,8,9,10,11,12,13,14,13]6789; AVX512-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5,6],ymm3[7]6790; AVX512-NEXT: vpbroadcastw 252(%rdi), %xmm36791; AVX512-NEXT: vmovdqa 224(%rdi), %xmm136792; AVX512-NEXT: vpshufd {{.*#+}} xmm5 = xmm13[0,1,0,3]6793; AVX512-NEXT: vpshufhw {{.*#+}} xmm5 = xmm5[0,1,2,3,4,7,6,7]6794; AVX512-NEXT: vpunpckhdq {{.*#+}} xmm3 = xmm5[2],xmm3[2],xmm5[3],xmm3[3]6795; AVX512-NEXT: movw $992, %ax # imm = 0x3E06796; AVX512-NEXT: kmovw %eax, %k16797; AVX512-NEXT: vinserti32x4 $2, %xmm3, %zmm2, %zmm21 {%k1}6798; AVX512-NEXT: vmovdqa 256(%rdi), %ymm56799; AVX512-NEXT: vmovdqa 288(%rdi), %ymm66800; AVX512-NEXT: vmovdqa 240(%rdi), %xmm146801; AVX512-NEXT: vmovdqa 80(%rdi), %xmm26802; AVX512-NEXT: vpblendd {{.*#+}} ymm3 = ymm11[0,1],ymm12[2],ymm11[3,4],ymm12[5],ymm11[6,7]6803; AVX512-NEXT: vpblendw {{.*#+}} ymm2 = ymm3[0,1,2],ymm2[3],ymm3[4,5,6,7,8,9,10],ymm2[11],ymm3[12,13,14,15]6804; AVX512-NEXT: vpshufb {{.*#+}} ymm2 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm2[8,9,6,7,4,5,18,19],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero6805; AVX512-NEXT: vpblendd {{.*#+}} ymm3 = ymm8[0,1,2],ymm4[3],ymm8[4,5],ymm4[6],ymm8[7]6806; AVX512-NEXT: vextracti128 $1, %ymm3, %xmm76807; AVX512-NEXT: vpblendw {{.*#+}} xmm3 = xmm7[0],xmm3[1],xmm7[2,3,4,5],xmm3[6],xmm7[7]6808; AVX512-NEXT: vpshufb {{.*#+}} ymm3 = ymm3[2,3,0,1,14,15,12,13,10,11],zero,zero,zero,zero,zero,zero,zero,zero,ymm3[u,u,u,u,u,u,u,u,u,u,u,u,u,u]6809; AVX512-NEXT: vpor %ymm2, %ymm3, %ymm26810; AVX512-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill6811; AVX512-NEXT: vpblendd {{.*#+}} ymm2 = ymm9[0,1],ymm10[2],ymm9[3,4,5],ymm10[6],ymm9[7]6812; AVX512-NEXT: vextracti128 $1, %ymm2, %xmm36813; AVX512-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0,1,2,3],xmm3[4],xmm2[5],xmm3[6],xmm2[7]6814; AVX512-NEXT: vpshufb {{.*#+}} xmm2 = xmm2[0,1,0,1,14,15,12,13,10,11,8,9,u,u,u,u]6815; AVX512-NEXT: vinserti128 $1, %xmm2, %ymm0, %ymm26816; AVX512-NEXT: vpshufd {{.*#+}} ymm1 = ymm1[0,1,1,3,4,5,5,7]6817; AVX512-NEXT: vpshufhw {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,5,6,8,9,10,11,12,13,13,14]6818; AVX512-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5,6],ymm1[7]6819; AVX512-NEXT: vpblendw {{.*#+}} xmm2 = xmm14[0],xmm13[1],xmm14[2,3,4,5,6,7]6820; AVX512-NEXT: vpshufd {{.*#+}} xmm2 = xmm2[0,3,2,3]6821; AVX512-NEXT: vpshuflw {{.*#+}} xmm2 = xmm2[1,0,3,3,4,5,6,7]6822; AVX512-NEXT: vinserti32x4 $2, %xmm2, %zmm1, %zmm226823; AVX512-NEXT: vpblendd {{.*#+}} ymm1 = ymm11[0,1],ymm12[2,3],ymm11[4,5],ymm12[6,7]6824; AVX512-NEXT: vextracti128 $1, %ymm1, %xmm26825; AVX512-NEXT: vpblendw {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm2[4],ymm1[5,6,7,8,9,10,11],ymm2[12],ymm1[13,14,15]6826; AVX512-NEXT: vpshufb {{.*#+}} ymm1 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm1[10,11,8,9,6,7,20,21],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero6827; AVX512-NEXT: vpblendd {{.*#+}} ymm2 = ymm4[0],ymm8[1],ymm4[2,3],ymm8[4],ymm4[5,6,7]6828; AVX512-NEXT: vextracti128 $1, %ymm2, %xmm36829; AVX512-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0],xmm3[1],xmm2[2,3,4,5],xmm3[6],xmm2[7]6830; AVX512-NEXT: vpshufb {{.*#+}} ymm2 = ymm2[4,5,2,3,0,1,14,15,12,13],zero,zero,zero,zero,zero,zero,zero,zero,ymm2[u,u,u,u,u,u,u,u,u,u,u,u,u,u]6831; AVX512-NEXT: vporq %ymm1, %ymm2, %ymm196832; AVX512-NEXT: vpblendd {{.*#+}} ymm1 = ymm9[0,1,2],ymm10[3],ymm9[4,5],ymm10[6],ymm9[7]6833; AVX512-NEXT: vextracti128 $1, %ymm1, %xmm26834; AVX512-NEXT: vpblendw {{.*#+}} xmm1 = xmm2[0],xmm1[1],xmm2[2,3,4,5],xmm1[6],xmm2[7]6835; AVX512-NEXT: vmovdqa {{.*#+}} ymm2 = [0,1,2,3,0,1,14,15,12,13,10,11,8,9,128,128,128,128,128,128,128,128,128,128,u,u,u,u,u,u,u,u]6836; AVX512-NEXT: vpshufb %xmm2, %xmm1, %xmm16837; AVX512-NEXT: vmovdqa64 %ymm2, %ymm286838; AVX512-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm16839; AVX512-NEXT: vpermq {{.*#+}} ymm2 = ymm0[0,1,1,2]6840; AVX512-NEXT: vpshufd {{.*#+}} ymm2 = ymm2[0,1,0,3,4,5,4,7]6841; AVX512-NEXT: vpshufhw {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5,4,7,8,9,10,11,12,13,12,15]6842; AVX512-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,6],ymm2[7]6843; AVX512-NEXT: vpunpcklwd {{.*#+}} xmm3 = xmm13[0],xmm14[0],xmm13[1],xmm14[1],xmm13[2],xmm14[2],xmm13[3],xmm14[3]6844; AVX512-NEXT: vpshufd {{.*#+}} xmm2 = xmm3[2,1,2,3]6845; AVX512-NEXT: vmovdqa64 %xmm3, %xmm276846; AVX512-NEXT: vpshuflw {{.*#+}} xmm2 = xmm2[0,3,2,3,4,5,6,7]6847; AVX512-NEXT: vinserti32x4 $2, %xmm2, %zmm1, %zmm236848; AVX512-NEXT: vpblendd {{.*#+}} ymm1 = ymm11[0,1,2],ymm12[3],ymm11[4,5],ymm12[6],ymm11[7]6849; AVX512-NEXT: vpermq {{.*#+}} ymm1 = ymm1[1,3,2,3]6850; AVX512-NEXT: vpshufb {{.*#+}} ymm1 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm1[4,5,10,11,0,1,22,23],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero6851; AVX512-NEXT: vpblendd {{.*#+}} ymm2 = ymm4[0],ymm8[1],ymm4[2,3,4],ymm8[5],ymm4[6,7]6852; AVX512-NEXT: vmovdqa64 %ymm8, %ymm256853; AVX512-NEXT: vmovdqa64 %ymm4, %ymm266854; AVX512-NEXT: vextracti128 $1, %ymm2, %xmm36855; AVX512-NEXT: vpblendw {{.*#+}} xmm2 = xmm3[0],xmm2[1],xmm3[2],xmm2[3],xmm3[4,5,6,7]6856; AVX512-NEXT: vpshufb {{.*#+}} ymm2 = ymm2[6,7,4,5,2,3,0,1,14,15],zero,zero,zero,zero,zero,zero,zero,zero,ymm2[u,u,u,u,u,u,u,u,u,u,u,u,u,u]6857; AVX512-NEXT: vporq %ymm1, %ymm2, %ymm206858; AVX512-NEXT: vpermq {{.*#+}} ymm24 = ymm0[0,1,1,3]6859; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm10[0],ymm9[1],ymm10[2,3,4],ymm9[5],ymm10[6,7]6860; AVX512-NEXT: vextracti128 $1, %ymm0, %xmm16861; AVX512-NEXT: vpblendw {{.*#+}} xmm0 = xmm1[0],xmm0[1],xmm1[2],xmm0[3],xmm1[4,5,6,7]6862; AVX512-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[0,1,6,7,4,5,2,3,0,1,14,15,u,u,u,u]6863; AVX512-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm06864; AVX512-NEXT: vpshufd {{.*#+}} ymm1 = ymm24[0,1,2,1,4,5,6,5]6865; AVX512-NEXT: vpshufhw {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,6,5,8,9,10,11,12,13,14,13]6866; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5,6],ymm1[7]6867; AVX512-NEXT: vpbroadcastw 232(%rdi), %xmm16868; AVX512-NEXT: vpsrlq $48, %xmm14, %xmm26869; AVX512-NEXT: vpunpcklwd {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1],xmm1[2],xmm2[2],xmm1[3],xmm2[3]6870; AVX512-NEXT: vinserti32x4 $2, %xmm1, %zmm0, %zmm186871; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm10[0,1],ymm9[2],ymm10[3,4],ymm9[5],ymm10[6,7]6872; AVX512-NEXT: vextracti128 $1, %ymm0, %xmm16873; AVX512-NEXT: vpblendw {{.*#+}} xmm0 = xmm1[0,1],xmm0[2],xmm1[3],xmm0[4],xmm1[5,6,7]6874; AVX512-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[8,9,8,9,6,7,4,5,2,3,u,u,u,u,u,u]6875; AVX512-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm06876; AVX512-NEXT: vmovdqa 208(%rdi), %xmm26877; AVX512-NEXT: vmovdqa 192(%rdi), %xmm16878; AVX512-NEXT: vpblendw {{.*#+}} xmm3 = xmm1[0,1,2,3,4,5],xmm2[6],xmm1[7]6879; AVX512-NEXT: vpshufd {{.*#+}} xmm3 = xmm3[0,1,0,3]6880; AVX512-NEXT: vpshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,4,4,7,6]6881; AVX512-NEXT: vinserti128 $1, %xmm3, %ymm0, %ymm36882; AVX512-NEXT: vpblendw {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm3[5,6,7],ymm0[8,9,10,11,12],ymm3[13,14,15]6883; AVX512-NEXT: vpsrld $16, %xmm13, %xmm36884; AVX512-NEXT: vmovdqa64 %xmm13, %xmm316885; AVX512-NEXT: vpunpckhwd {{.*#+}} xmm3 = xmm3[4],xmm14[4],xmm3[5],xmm14[5],xmm3[6],xmm14[6],xmm3[7],xmm14[7]6886; AVX512-NEXT: vmovdqa64 %xmm14, %xmm166887; AVX512-NEXT: vinserti32x4 $2, %xmm3, %zmm0, %zmm176888; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm6[0,1],ymm5[2,3],ymm6[4,5],ymm5[6,7]6889; AVX512-NEXT: vextracti128 $1, %ymm0, %xmm36890; AVX512-NEXT: vpblendw {{.*#+}} xmm3 = xmm3[0,1,2],xmm0[3],xmm3[4],xmm0[5],xmm3[6,7]6891; AVX512-NEXT: vmovdqa 352(%rdi), %ymm156892; AVX512-NEXT: vmovdqa 320(%rdi), %ymm46893; AVX512-NEXT: vpblendd {{.*#+}} ymm8 = ymm4[0,1,2],ymm15[3],ymm4[4,5],ymm15[6],ymm4[7]6894; AVX512-NEXT: vpermq {{.*#+}} ymm13 = ymm8[2,3,0,1]6895; AVX512-NEXT: vpblendw {{.*#+}} ymm8 = ymm8[0,1,2,3,4,5],ymm13[6],ymm8[7,8,9,10,11,12,13],ymm13[14],ymm8[15]6896; AVX512-NEXT: vpshufd {{.*#+}} xmm3 = xmm3[0,2,2,1]6897; AVX512-NEXT: vpshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,4,7,6,7]6898; AVX512-NEXT: vpshufb {{.*#+}} ymm8 = ymm8[0,1,14,15,12,13,10,11,4,5,6,7,8,9,2,3,16,17,30,31,28,29,26,27,20,21,22,23,24,25,18,19]6899; AVX512-NEXT: vpblendw {{.*#+}} xmm3 = xmm8[0,1,2],xmm3[3,4,5,6],xmm8[7]6900; AVX512-NEXT: vpblendd {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm8[4,5,6,7]6901; AVX512-NEXT: vmovdqa 384(%rdi), %ymm86902; AVX512-NEXT: vmovdqa 416(%rdi), %ymm136903; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm13[0,1],ymm8[2],ymm13[3,4],ymm8[5],ymm13[6,7]6904; AVX512-NEXT: vextracti128 $1, %ymm0, %xmm76905; AVX512-NEXT: vpshuflw {{.*#+}} xmm7 = xmm7[0,1,3,1,4,5,6,7]6906; AVX512-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[2,1,2,3]6907; AVX512-NEXT: vpshuflw {{.*#+}} xmm0 = xmm0[0,1,0,2,4,5,6,7]6908; AVX512-NEXT: vpunpcklwd {{.*#+}} xmm0 = xmm0[0],xmm7[0],xmm0[1],xmm7[1],xmm0[2],xmm7[2],xmm0[3],xmm7[3]6909; AVX512-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm06910; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm3[0,1,2,3,4,5],ymm0[6,7]6911; AVX512-NEXT: vmovdqa64 %ymm0, %ymm296912; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm6[0,1,2],ymm5[3],ymm6[4,5],ymm5[6],ymm6[7]6913; AVX512-NEXT: vextracti128 $1, %ymm0, %xmm36914; AVX512-NEXT: vpblendw {{.*#+}} xmm0 = xmm3[0,1,2,3],xmm0[4],xmm3[5],xmm0[6],xmm3[7]6915; AVX512-NEXT: vpblendd {{.*#+}} ymm3 = ymm15[0],ymm4[1],ymm15[2,3],ymm4[4],ymm15[5,6,7]6916; AVX512-NEXT: vpermq {{.*#+}} ymm7 = ymm3[2,3,0,1]6917; AVX512-NEXT: vpblendw {{.*#+}} ymm3 = ymm7[0],ymm3[1,2,3,4,5,6],ymm7[7,8],ymm3[9,10,11,12,13,14],ymm7[15]6918; AVX512-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[u,u,u,u,u,u,12,13,10,11,8,9,6,7,u,u]6919; AVX512-NEXT: vpshufb {{.*#+}} ymm3 = ymm3[2,3,0,1,14,15,12,13,4,5,4,5,4,5,4,5,18,19,16,17,30,31,28,29,20,21,20,21,20,21,20,21]6920; AVX512-NEXT: vpblendw {{.*#+}} xmm0 = xmm3[0,1,2],xmm0[3,4,5,6],xmm3[7]6921; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm3[4,5,6,7]6922; AVX512-NEXT: vpblendd {{.*#+}} ymm3 = ymm13[0,1],ymm8[2,3],ymm13[4,5],ymm8[6,7]6923; AVX512-NEXT: vextracti128 $1, %ymm3, %xmm76924; AVX512-NEXT: vpshufd {{.*#+}} xmm7 = xmm7[2,1,2,3]6925; AVX512-NEXT: vpshuflw {{.*#+}} xmm7 = xmm7[0,1,0,2,4,5,6,7]6926; AVX512-NEXT: vpshufd {{.*#+}} xmm3 = xmm3[2,1,2,3]6927; AVX512-NEXT: vpshuflw {{.*#+}} xmm3 = xmm3[0,1,1,3,4,5,6,7]6928; AVX512-NEXT: vpunpcklwd {{.*#+}} xmm3 = xmm3[0],xmm7[0],xmm3[1],xmm7[1],xmm3[2],xmm7[2],xmm3[3],xmm7[3]6929; AVX512-NEXT: vinserti128 $1, %xmm3, %ymm0, %ymm36930; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm3[6,7]6931; AVX512-NEXT: vmovdqa64 %ymm0, %ymm306932; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm15[0],ymm4[1],ymm15[2,3,4],ymm4[5],ymm15[6,7]6933; AVX512-NEXT: vpermq {{.*#+}} ymm3 = ymm0[2,3,0,1]6934; AVX512-NEXT: vpshufb {{.*#+}} ymm0 = ymm0[u,u,u,u,u,u,u,u,u,u,u,u,u,u,6,7,20,21,u,u,16,17,30,31,u,u,u,u,u,u,u,u]6935; AVX512-NEXT: vpblendw {{.*#+}} ymm0 = ymm0[0],ymm3[1],ymm0[2,3,4,5,6,7,8],ymm3[9],ymm0[10,11,12,13,14,15]6936; AVX512-NEXT: vpblendd {{.*#+}} ymm3 = ymm5[0,1],ymm6[2],ymm5[3,4,5],ymm6[6],ymm5[7]6937; AVX512-NEXT: vextracti128 $1, %ymm3, %xmm76938; AVX512-NEXT: vpblendw {{.*#+}} xmm3 = xmm3[0,1,2,3],xmm7[4],xmm3[5],xmm7[6],xmm3[7]6939; AVX512-NEXT: vmovdqa64 %ymm28, %ymm76940; AVX512-NEXT: vpshufb %ymm7, %ymm3, %ymm36941; AVX512-NEXT: vpternlogq {{.*#+}} ymm3 = ymm3 | (ymm0 & ~mem)6942; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm13[0,1,2],ymm8[3],ymm13[4,5],ymm8[6],ymm13[7]6943; AVX512-NEXT: vextracti128 $1, %ymm0, %xmm76944; AVX512-NEXT: vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,5,6,4]6945; AVX512-NEXT: vpshufd {{.*#+}} xmm7 = xmm7[0,1,2,1]6946; AVX512-NEXT: vpshufhw {{.*#+}} xmm7 = xmm7[0,1,2,3,4,5,5,7]6947; AVX512-NEXT: vpunpckhwd {{.*#+}} xmm0 = xmm0[4],xmm7[4],xmm0[5],xmm7[5],xmm0[6],xmm7[6],xmm0[7],xmm7[7]6948; AVX512-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm06949; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm3[0,1,2,3,4,5],ymm0[6,7]6950; AVX512-NEXT: vmovdqa64 %ymm0, %ymm286951; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm10[0],ymm9[1],ymm10[2,3],ymm9[4],ymm10[5,6,7]6952; AVX512-NEXT: vextracti128 $1, %ymm0, %xmm36953; AVX512-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0],xmm3[1],xmm0[2,3,4,5],xmm3[6],xmm0[7]6954; AVX512-NEXT: vpshuflw {{.*#+}} xmm0 = xmm0[0,2,1,0,4,5,6,7]6955; AVX512-NEXT: vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,7,6,6,7]6956; AVX512-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm06957; AVX512-NEXT: vpshufd {{.*#+}} ymm3 = ymm24[0,1,2,0,4,5,6,4]6958; AVX512-NEXT: vpshufhw {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5,7,4,8,9,10,11,12,13,15,12]6959; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5,6],ymm3[7]6960; AVX512-NEXT: vmovdqa64 %xmm27, %xmm36961; AVX512-NEXT: vpshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,6,5,6,7]6962; AVX512-NEXT: vpshufd {{.*#+}} xmm3 = xmm3[2,2,2,2]6963; AVX512-NEXT: vinserti32x4 $2, %xmm3, %zmm0, %zmm276964; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm5[0,1,2],ymm6[3],ymm5[4,5],ymm6[6],ymm5[7]6965; AVX512-NEXT: vextracti128 $1, %ymm0, %xmm36966; AVX512-NEXT: vpblendw {{.*#+}} xmm0 = xmm3[0],xmm0[1],xmm3[2,3,4,5],xmm0[6],xmm3[7]6967; AVX512-NEXT: vpblendd {{.*#+}} ymm3 = ymm8[0,1],ymm13[2],ymm8[3,4,5],ymm13[6],ymm8[7]6968; AVX512-NEXT: vextracti128 $1, %ymm3, %xmm146969; AVX512-NEXT: vpblendw {{.*#+}} xmm3 = xmm3[0,1,2,3],xmm14[4],xmm3[5],xmm14[6],xmm3[7]6970; AVX512-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[0,1,2,3,2,3,0,1,14,15,12,13,10,11],zero,zero6971; AVX512-NEXT: vpblendd {{.*#+}} ymm14 = ymm15[0,1],ymm4[2],ymm15[3,4],ymm4[5],ymm15[6,7]6972; AVX512-NEXT: vpermq {{.*#+}} ymm14 = ymm14[1,1,2,0]6973; AVX512-NEXT: vpshufb {{.*#+}} ymm14 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm14[0,1,22,23,28,29,18,19],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero6974; AVX512-NEXT: vpor %ymm0, %ymm14, %ymm06975; AVX512-NEXT: vpshuflw {{.*#+}} xmm3 = xmm3[0,0,0,0,4,5,6,7]6976; AVX512-NEXT: vpshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,7,6,5,4]6977; AVX512-NEXT: vinserti128 $1, %xmm3, %ymm0, %ymm36978; AVX512-NEXT: vpblendw {{.*#+}} ymm3 = ymm14[0,1,2],ymm3[3,4,5,6,7],ymm14[8,9,10],ymm3[11,12,13,14,15]6979; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm3[4,5,6,7]6980; AVX512-NEXT: vmovdqa64 %ymm0, %ymm246981; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm10[0,1],ymm9[2,3],ymm10[4,5],ymm9[6,7]6982; AVX512-NEXT: vextracti128 $1, %ymm0, %xmm96983; AVX512-NEXT: vpblendw {{.*#+}} xmm0 = xmm9[0,1,2],xmm0[3],xmm9[4],xmm0[5],xmm9[6,7]6984; AVX512-NEXT: vpblendw {{.*#+}} xmm1 = xmm2[0],xmm1[1],xmm2[2,3,4,5,6,7]6985; AVX512-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[8,9,10,11,8,9,6,7,4,5,u,u,u,u,u,u]6986; AVX512-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm06987; AVX512-NEXT: vpshufd {{.*#+}} xmm1 = xmm1[0,1,0,3]6988; AVX512-NEXT: vpshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,5,4,7]6989; AVX512-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm16990; AVX512-NEXT: vpblendw {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7],ymm0[8,9,10,11,12],ymm1[13,14,15]6991; AVX512-NEXT: vmovdqa64 %xmm31, %xmm16992; AVX512-NEXT: vmovdqa64 %xmm16, %xmm26993; AVX512-NEXT: vpunpckhwd {{.*#+}} xmm1 = xmm1[4],xmm2[4],xmm1[5],xmm2[5],xmm1[6],xmm2[6],xmm1[7],xmm2[7]6994; AVX512-NEXT: vpshufd {{.*#+}} xmm1 = xmm1[2,1,2,3]6995; AVX512-NEXT: vpshuflw {{.*#+}} xmm1 = xmm1[0,3,2,3,4,5,6,7]6996; AVX512-NEXT: vinserti32x4 $2, %xmm1, %zmm0, %zmm166997; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm12[0,1],ymm11[2],ymm12[3,4,5],ymm11[6],ymm12[7]6998; AVX512-NEXT: vpermq {{.*#+}} ymm1 = ymm0[2,3,0,1]6999; AVX512-NEXT: vpshufb {{.*#+}} ymm0 = ymm0[u,u,u,u,u,u,u,u,0,1,14,15,u,u,10,11,24,25,24,25,24,25,24,25,16,17,30,31,u,u,26,27]7000; AVX512-NEXT: vpblendw {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6],ymm0[7,8,9,10,11,12,13],ymm1[14],ymm0[15]7001; AVX512-NEXT: vmovdqa64 %ymm25, %ymm37002; AVX512-NEXT: vmovdqa64 %ymm26, %ymm77003; AVX512-NEXT: vpblendd {{.*#+}} ymm1 = ymm7[0,1],ymm3[2],ymm7[3,4],ymm3[5],ymm7[6,7]7004; AVX512-NEXT: vextracti128 $1, %ymm1, %xmm27005; AVX512-NEXT: vpshuflw {{.*#+}} xmm2 = xmm2[3,1,2,3,4,5,6,7]7006; AVX512-NEXT: vpshufd {{.*#+}} xmm1 = xmm1[2,1,2,3]7007; AVX512-NEXT: vpshuflw {{.*#+}} xmm1 = xmm1[0,2,2,3,4,5,6,7]7008; AVX512-NEXT: vpunpcklwd {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1],xmm1[2],xmm2[2],xmm1[3],xmm2[3]7009; AVX512-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1],ymm0[2,3,4,5,6,7]7010; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm8[0,1,2],ymm13[3],ymm8[4,5],ymm13[6],ymm8[7]7011; AVX512-NEXT: vextracti128 $1, %ymm0, %xmm27012; AVX512-NEXT: vpblendw {{.*#+}} xmm0 = xmm2[0],xmm0[1],xmm2[2,3,4,5],xmm0[6],xmm2[7]7013; AVX512-NEXT: vpblendd {{.*#+}} ymm2 = ymm15[0,1],ymm4[2,3],ymm15[4,5],ymm4[6,7]7014; AVX512-NEXT: vpermq {{.*#+}} ymm10 = ymm15[0,1,0,1]7015; AVX512-NEXT: vpblendw {{.*#+}} ymm2 = ymm2[0,1,2],ymm10[3],ymm2[4,5,6,7,8,9,10],ymm10[11],ymm2[12,13,14,15]7016; AVX512-NEXT: vpblendd {{.*#+}} ymm10 = ymm6[0],ymm5[1],ymm6[2,3],ymm5[4],ymm6[5,6,7]7017; AVX512-NEXT: vextracti128 $1, %ymm10, %xmm147018; AVX512-NEXT: vpblendw {{.*#+}} xmm10 = xmm10[0],xmm14[1],xmm10[2,3,4,5],xmm14[6],xmm10[7]7019; AVX512-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[u,u,u,u,u,u,2,3,0,1,14,15,12,13,10,11]7020; AVX512-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm07021; AVX512-NEXT: vpshufb {{.*#+}} ymm2 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm2[10,11,24,25,22,23,20,21],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero7022; AVX512-NEXT: vpblendw {{.*#+}} ymm0 = ymm2[0,1,2],ymm0[3,4,5,6,7],ymm2[8,9,10],ymm0[11,12,13,14,15]7023; AVX512-NEXT: vpshufb {{.*#+}} xmm10 = xmm10[0,1,2,3,4,5,2,3,0,1,14,15,12,13],zero,zero7024; AVX512-NEXT: vpor %ymm2, %ymm10, %ymm27025; AVX512-NEXT: vpblendd {{.*#+}} ymm10 = ymm2[0,1,2,3],ymm0[4,5,6,7]7026; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm13[0],ymm8[1],ymm13[2,3],ymm8[4],ymm13[5,6,7]7027; AVX512-NEXT: vextracti128 $1, %ymm0, %xmm27028; AVX512-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0],xmm2[1],xmm0[2,3,4,5],xmm2[6],xmm0[7]7029; AVX512-NEXT: vpblendd {{.*#+}} ymm2 = ymm15[0,1,2],ymm4[3],ymm15[4,5],ymm4[6],ymm15[7]7030; AVX512-NEXT: vpermq {{.*#+}} ymm14 = ymm2[2,3,0,1]7031; AVX512-NEXT: vpblendw {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm14[4],ymm2[5,6,7,8,9,10,11],ymm14[12],ymm2[13,14,15]7032; AVX512-NEXT: vpblendd {{.*#+}} ymm14 = ymm6[0],ymm5[1],ymm6[2,3,4],ymm5[5],ymm6[6,7]7033; AVX512-NEXT: vextracti128 $1, %ymm14, %xmm97034; AVX512-NEXT: vpblendw {{.*#+}} xmm9 = xmm9[0],xmm14[1],xmm9[2],xmm14[3],xmm9[4,5,6,7]7035; AVX512-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[u,u,u,u,u,u,4,5,2,3,0,1,14,15,12,13]7036; AVX512-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm07037; AVX512-NEXT: vpshufb {{.*#+}} ymm2 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm2[12,13,26,27,24,25,22,23],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero7038; AVX512-NEXT: vpblendw {{.*#+}} ymm0 = ymm2[0,1,2],ymm0[3,4,5,6,7],ymm2[8,9,10],ymm0[11,12,13,14,15]7039; AVX512-NEXT: vpshufb {{.*#+}} xmm9 = xmm9[0,1,2,3,6,7,4,5,2,3,0,1,14,15],zero,zero7040; AVX512-NEXT: vpor %ymm2, %ymm9, %ymm27041; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm2[0,1,2,3],ymm0[4,5,6,7]7042; AVX512-NEXT: vpblendd {{.*#+}} ymm2 = ymm12[0,1,2],ymm11[3],ymm12[4,5],ymm11[6],ymm12[7]7043; AVX512-NEXT: vpermq {{.*#+}} ymm9 = ymm2[2,3,0,1]7044; AVX512-NEXT: vpblendw {{.*#+}} ymm2 = ymm9[0],ymm2[1,2,3,4,5,6],ymm9[7,8],ymm2[9,10,11,12,13,14],ymm9[15]7045; AVX512-NEXT: vpblendd {{.*#+}} ymm9 = ymm7[0,1],ymm3[2,3],ymm7[4,5],ymm3[6,7]7046; AVX512-NEXT: vextracti128 $1, %ymm9, %xmm147047; AVX512-NEXT: vpshufd {{.*#+}} xmm14 = xmm14[2,1,2,3]7048; AVX512-NEXT: vpshuflw {{.*#+}} xmm14 = xmm14[0,2,2,3,4,5,6,7]7049; AVX512-NEXT: vpshufd {{.*#+}} xmm9 = xmm9[2,1,2,3]7050; AVX512-NEXT: vpshuflw {{.*#+}} xmm9 = xmm9[1,3,2,3,4,5,6,7]7051; AVX512-NEXT: vpunpcklwd {{.*#+}} xmm9 = xmm9[0],xmm14[0],xmm9[1],xmm14[1],xmm9[2],xmm14[2],xmm9[3],xmm14[3]7052; AVX512-NEXT: vpshufb {{.*#+}} ymm2 = ymm2[u,u,u,u,u,u,u,u,2,3,0,1,14,15,12,13,26,27,26,27,26,27,26,27,18,19,16,17,30,31,28,29]7053; AVX512-NEXT: vpblendd {{.*#+}} ymm2 = ymm9[0,1],ymm2[2,3,4,5,6,7]7054; AVX512-NEXT: vpblendd {{.*#+}} ymm9 = ymm11[0],ymm12[1],ymm11[2,3],ymm12[4],ymm11[5,6,7]7055; AVX512-NEXT: vpermq {{.*#+}} ymm11 = ymm9[2,3,0,1]7056; AVX512-NEXT: vpblendw {{.*#+}} ymm9 = ymm9[0],ymm11[1],ymm9[2,3,4,5,6,7,8],ymm11[9],ymm9[10,11,12,13,14,15]7057; AVX512-NEXT: vinserti64x4 $1, %ymm29, %zmm0, %zmm117058; AVX512-NEXT: vinserti64x4 $1, %ymm30, %zmm0, %zmm127059; AVX512-NEXT: vinserti64x4 $1, %ymm28, %zmm0, %zmm147060; AVX512-NEXT: vinserti64x4 $1, %ymm24, %zmm0, %zmm257061; AVX512-NEXT: vinserti64x4 $1, %ymm10, %zmm0, %zmm107062; AVX512-NEXT: vinserti64x4 $1, %ymm0, %zmm0, %zmm267063; AVX512-NEXT: vpblendd {{.*#+}} ymm3 = ymm7[0,1,2],ymm3[3],ymm7[4,5],ymm3[6],ymm7[7]7064; AVX512-NEXT: vpshufhw {{.*#+}} xmm0 = xmm3[0,1,2,3,6,4,6,7]7065; AVX512-NEXT: vextracti128 $1, %ymm3, %xmm37066; AVX512-NEXT: vpshufd {{.*#+}} xmm3 = xmm3[0,1,2,1]7067; AVX512-NEXT: vpshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,5,7,6,7]7068; AVX512-NEXT: vpunpckhwd {{.*#+}} xmm0 = xmm0[4],xmm3[4],xmm0[5],xmm3[5],xmm0[6],xmm3[6],xmm0[7],xmm3[7]7069; AVX512-NEXT: vpshufb {{.*#+}} ymm3 = ymm9[u,u,u,u,u,u,u,u,4,5,2,3,0,1,14,15,28,29,28,29,28,29,28,29,20,21,18,19,16,17,30,31]7070; AVX512-NEXT: vpblendd {{.*#+}} ymm3 = ymm0[0,1],ymm3[2,3,4,5,6,7]7071; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm13[0],ymm8[1],ymm13[2,3,4],ymm8[5],ymm13[6,7]7072; AVX512-NEXT: vextracti128 $1, %ymm0, %xmm87073; AVX512-NEXT: vpblendw {{.*#+}} xmm0 = xmm8[0],xmm0[1],xmm8[2],xmm0[3],xmm8[4,5,6,7]7074; AVX512-NEXT: vpblendd {{.*#+}} ymm5 = ymm6[0,1],ymm5[2],ymm6[3,4],ymm5[5],ymm6[6,7]7075; AVX512-NEXT: vextracti128 $1, %ymm5, %xmm67076; AVX512-NEXT: vpshuflw {{.*#+}} xmm6 = xmm6[0,3,1,3,4,5,6,7]7077; AVX512-NEXT: vpshufd {{.*#+}} xmm5 = xmm5[2,1,2,3]7078; AVX512-NEXT: vpshuflw {{.*#+}} xmm5 = xmm5[0,0,2,3,4,5,6,7]7079; AVX512-NEXT: vpunpcklwd {{.*#+}} xmm5 = xmm5[0],xmm6[0],xmm5[1],xmm6[1],xmm5[2],xmm6[2],xmm5[3],xmm6[3]7080; AVX512-NEXT: vpblendd {{.*#+}} ymm4 = ymm4[0,1],ymm15[2],ymm4[3,4,5],ymm15[6],ymm4[7]7081; AVX512-NEXT: vpermq {{.*#+}} ymm4 = ymm4[0,1,3,1]7082; AVX512-NEXT: vpshufb {{.*#+}} ymm4 = ymm4[4,5,10,11,u,u,u,u,u,u,u,u,0,1,14,15,20,21,26,27,16,17,26,27,16,17,20,21,16,17,30,31]7083; AVX512-NEXT: vpblendd {{.*#+}} ymm4 = ymm4[0],ymm5[1,2],ymm4[3,4,5,6,7]7084; AVX512-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[u,u,u,u,u,u,6,7,4,5,2,3,0,1,14,15]7085; AVX512-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm07086; AVX512-NEXT: vpblendw {{.*#+}} ymm0 = ymm4[0,1,2],ymm0[3,4,5,6,7],ymm4[8,9,10],ymm0[11,12,13,14,15]7087; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm4[0,1,2,3],ymm0[4,5,6,7]7088; AVX512-NEXT: vinserti64x4 $1, %ymm0, %zmm0, %zmm07089; AVX512-NEXT: vmovdqa64 {{.*#+}} zmm4 = [65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,0,0,0,0,0,0,0,0,0,0,0,0,0]7090; AVX512-NEXT: vpternlogq {{.*#+}} zmm11 = zmm11 ^ (zmm4 & (zmm11 ^ zmm21))7091; AVX512-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload7092; AVX512-NEXT: vpternlogq {{.*#+}} zmm22 = zmm5 ^ (mem & (zmm22 ^ zmm5))7093; AVX512-NEXT: vpternlogq {{.*#+}} zmm12 = zmm12 ^ (zmm4 & (zmm12 ^ zmm22))7094; AVX512-NEXT: vmovdqa64 {{.*#+}} zmm4 = [65535,65535,65535,65535,65535,65535,65535,65535,65535,0,0,0,0,0,0,0,0,0,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535]7095; AVX512-NEXT: vpternlogq {{.*#+}} zmm23 = zmm23 ^ (zmm4 & (zmm23 ^ zmm19))7096; AVX512-NEXT: movw $-512, %ax # imm = 0xFE007097; AVX512-NEXT: kmovw %eax, %k17098; AVX512-NEXT: vmovdqa32 %zmm14, %zmm23 {%k1}7099; AVX512-NEXT: vpternlogq {{.*#+}} zmm27 = zmm27 ^ (zmm4 & (zmm27 ^ zmm20))7100; AVX512-NEXT: vmovdqa32 %zmm25, %zmm27 {%k1}7101; AVX512-NEXT: vpternlogq {{.*#+}} zmm1 = zmm18 ^ (zmm4 & (zmm1 ^ zmm18))7102; AVX512-NEXT: vmovdqa32 %zmm10, %zmm1 {%k1}7103; AVX512-NEXT: vmovdqa64 %zmm11, (%rsi)7104; AVX512-NEXT: vmovdqa64 %zmm12, (%rdx)7105; AVX512-NEXT: vmovdqa64 %zmm23, (%rcx)7106; AVX512-NEXT: vmovdqa64 %zmm27, (%r8)7107; AVX512-NEXT: vmovdqa64 %zmm1, (%r9)7108; AVX512-NEXT: movq {{[0-9]+}}(%rsp), %rax7109; AVX512-NEXT: vpternlogq {{.*#+}} zmm2 = zmm17 ^ (zmm4 & (zmm2 ^ zmm17))7110; AVX512-NEXT: vmovdqa32 %zmm26, %zmm2 {%k1}7111; AVX512-NEXT: vmovdqa64 %zmm2, (%rax)7112; AVX512-NEXT: movq {{[0-9]+}}(%rsp), %rax7113; AVX512-NEXT: vpternlogq {{.*#+}} zmm3 = zmm16 ^ (zmm4 & (zmm3 ^ zmm16))7114; AVX512-NEXT: vmovdqa32 %zmm0, %zmm3 {%k1}7115; AVX512-NEXT: vmovdqa64 %zmm3, (%rax)7116; AVX512-NEXT: vzeroupper7117; AVX512-NEXT: retq7118;7119; AVX512-FCP-LABEL: load_i16_stride7_vf32:7120; AVX512-FCP: # %bb.0:7121; AVX512-FCP-NEXT: vmovdqa64 320(%rdi), %zmm297122; AVX512-FCP-NEXT: vmovdqa64 64(%rdi), %zmm317123; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} ymm10 = [2,6,9,13,2,6,9,13]7124; AVX512-FCP-NEXT: vmovdqa64 128(%rdi), %zmm227125; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} ymm16 = [2,5,9,12,2,5,9,12]7126; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} ymm19 = [3,6,10,13,3,6,10,13]7127; AVX512-FCP-NEXT: vmovdqa64 384(%rdi), %zmm97128; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} ymm0 = [2,6,9,0,13,0,0,0]7129; AVX512-FCP-NEXT: vpermd %zmm31, %zmm0, %zmm137130; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} ymm18 = [1,0,0,0,4,8,11,15]7131; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} ymm0 = [2,5,9,0,12,0,0,0]7132; AVX512-FCP-NEXT: vpermd %zmm31, %zmm0, %zmm47133; AVX512-FCP-NEXT: vpermd %zmm9, %zmm16, %zmm07134; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} ymm2 = [0,0,0,0,4,7,11,14]7135; AVX512-FCP-NEXT: vpermd %zmm29, %zmm2, %zmm27136; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} ymm5 = [8,1,12,5,12,5,14,15]7137; AVX512-FCP-NEXT: vpermd %zmm31, %zmm5, %zmm57138; AVX512-FCP-NEXT: vpermd %zmm22, %zmm19, %zmm67139; AVX512-FCP-NEXT: vmovdqa64 192(%rdi), %ymm287140; AVX512-FCP-NEXT: vpermq {{.*#+}} ymm15 = ymm28[0,1,0,2]7141; AVX512-FCP-NEXT: vpbroadcastd {{.*#+}} ymm1 = [20,21,26,27,20,21,26,27,20,21,26,27,20,21,26,27,20,21,26,27,20,21,26,27,20,21,26,27,20,21,26,27]7142; AVX512-FCP-NEXT: vpshufb %ymm1, %ymm15, %ymm77143; AVX512-FCP-NEXT: vmovdqa64 %ymm1, %ymm257144; AVX512-FCP-NEXT: vpshufb {{.*#+}} ymm6 = ymm6[0,1,2,3,0,1,6,7,8,9,14,15,12,13,14,15,16,17,18,19,16,17,22,23,24,25,30,31,u,u,u,u]7145; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm7 = ymm6[0,1,2,3,4,5,6],ymm7[7]7146; AVX512-FCP-NEXT: vpshufb {{.*#+}} ymm8 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm5[6,7,12,13,2,3,16,17,30,31],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero7147; AVX512-FCP-NEXT: vmovdqa (%rdi), %ymm57148; AVX512-FCP-NEXT: vmovdqa 32(%rdi), %ymm67149; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm11 = ymm5[0,1],ymm6[2],ymm5[3,4,5],ymm6[6],ymm5[7]7150; AVX512-FCP-NEXT: vextracti128 $1, %ymm11, %xmm127151; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm11 = xmm11[0,1,2,3],xmm12[4],xmm11[5],xmm12[6],xmm11[7]7152; AVX512-FCP-NEXT: vpshufb {{.*#+}} ymm11 = ymm11[0,1,14,15,12,13,10,11,8,9],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm11[u,u,u,u,u,u,u,u,u,u,u,u]7153; AVX512-FCP-NEXT: vporq %ymm8, %ymm11, %ymm237154; AVX512-FCP-NEXT: vpbroadcastw 252(%rdi), %xmm87155; AVX512-FCP-NEXT: vmovdqa 224(%rdi), %xmm127156; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm11 = xmm12[u,u,u,u,u,u,u,u,0,1,14,15,12,13,14,15]7157; AVX512-FCP-NEXT: vpunpckhdq {{.*#+}} xmm8 = xmm11[2],xmm8[2],xmm11[3],xmm8[3]7158; AVX512-FCP-NEXT: movw $992, %ax # imm = 0x3E07159; AVX512-FCP-NEXT: kmovw %eax, %k17160; AVX512-FCP-NEXT: vinserti32x4 $2, %xmm8, %zmm7, %zmm23 {%k1}7161; AVX512-FCP-NEXT: vmovdqa 256(%rdi), %ymm77162; AVX512-FCP-NEXT: vmovdqa 288(%rdi), %ymm87163; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm11 = ymm8[0,1],ymm7[2,3],ymm8[4,5],ymm7[6,7]7164; AVX512-FCP-NEXT: vextracti128 $1, %ymm11, %xmm147165; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm11 = xmm14[0,1,2],xmm11[3],xmm14[4],xmm11[5],xmm14[6,7]7166; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm11 = xmm11[u,u,u,u,u,u,10,11,8,9,6,7,4,5,u,u]7167; AVX512-FCP-NEXT: vpshufb {{.*#+}} ymm2 = ymm2[0,1,6,7,8,9,14,15,8,9,14,15,4,5,2,3,16,17,22,23,24,25,30,31,24,25,30,31,20,21,18,19]7168; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm11 = xmm2[0,1,2],xmm11[3,4,5,6],xmm2[7]7169; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm11 = ymm11[0,1,2,3],ymm2[4,5,6,7]7170; AVX512-FCP-NEXT: vpbroadcastq {{.*#+}} ymm1 = [16,17,22,23,24,25,30,31,16,17,22,23,24,25,30,31,16,17,22,23,24,25,30,31,16,17,22,23,24,25,30,31]7171; AVX512-FCP-NEXT: vpshufb %ymm1, %ymm0, %ymm07172; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm11[0,1,2,3,4,5],ymm0[6,7]7173; AVX512-FCP-NEXT: vmovdqa64 %ymm0, %ymm267174; AVX512-FCP-NEXT: vmovdqa 240(%rdi), %xmm147175; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm5[0,1,2],ymm6[3],ymm5[4,5],ymm6[6],ymm5[7]7176; AVX512-FCP-NEXT: vextracti128 $1, %ymm0, %xmm117177; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm0 = xmm11[0],xmm0[1],xmm11[2,3,4,5],xmm0[6],xmm11[7]7178; AVX512-FCP-NEXT: vmovdqa {{.*#+}} ymm3 = [2,3,0,1,14,15,12,13,10,11,128,128,128,128,128,128,128,128,u,u,u,u,u,u,u,u,u,u,u,u,u,u]7179; AVX512-FCP-NEXT: vpshufb %ymm3, %ymm0, %ymm07180; AVX512-FCP-NEXT: vpshufb {{.*#+}} ymm4 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm4[0,1,6,7,8,9,18,19],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero7181; AVX512-FCP-NEXT: vporq %ymm4, %ymm0, %ymm207182; AVX512-FCP-NEXT: vmovdqa 160(%rdi), %ymm47183; AVX512-FCP-NEXT: vmovdqa 128(%rdi), %ymm117184; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm11[0,1],ymm4[2],ymm11[3,4,5],ymm4[6],ymm11[7]7185; AVX512-FCP-NEXT: vextracti128 $1, %ymm0, %xmm27186; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2,3],xmm2[4],xmm0[5],xmm2[6],xmm0[7]7187; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[0,1,0,1,14,15,12,13,10,11,8,9,u,u,u,u]7188; AVX512-FCP-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm07189; AVX512-FCP-NEXT: vpshufb {{.*#+}} ymm2 = ymm15[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,22,23,28,29]7190; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5,6],ymm2[7]7191; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm2 = xmm14[0],xmm12[1],xmm14[2,3,4,5,6,7]7192; AVX512-FCP-NEXT: vpshufb %xmm3, %xmm2, %xmm27193; AVX512-FCP-NEXT: vinserti64x4 $1, %ymm2, %zmm0, %zmm247194; AVX512-FCP-NEXT: vpshufb {{.*#+}} ymm0 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm13[2,3,4,5,10,11,16,17],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero7195; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm6[0],ymm5[1],ymm6[2,3],ymm5[4],ymm6[5,6,7]7196; AVX512-FCP-NEXT: vextracti128 $1, %ymm2, %xmm37197; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0],xmm3[1],xmm2[2,3,4,5],xmm3[6],xmm2[7]7198; AVX512-FCP-NEXT: vpshufb {{.*#+}} ymm2 = ymm2[4,5,2,3,0,1,14,15,12,13],zero,zero,zero,zero,zero,zero,zero,zero,ymm2[u,u,u,u,u,u,u,u,u,u,u,u,u,u]7199; AVX512-FCP-NEXT: vporq %ymm0, %ymm2, %ymm217200; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm11[0,1,2],ymm4[3],ymm11[4,5],ymm4[6],ymm11[7]7201; AVX512-FCP-NEXT: vextracti128 $1, %ymm0, %xmm27202; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm0 = xmm2[0],xmm0[1],xmm2[2,3,4,5],xmm0[6],xmm2[7]7203; AVX512-FCP-NEXT: vmovdqa {{.*#+}} ymm13 = [0,1,2,3,0,1,14,15,12,13,10,11,8,9,128,128,128,128,128,128,128,128,128,128,u,u,u,u,u,u,u,u]7204; AVX512-FCP-NEXT: vpshufb %xmm13, %xmm0, %xmm07205; AVX512-FCP-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm07206; AVX512-FCP-NEXT: vpbroadcastq {{.*#+}} ymm2 = [2,5,2,5,2,5,2,5]7207; AVX512-FCP-NEXT: vpermd %ymm28, %ymm2, %ymm27208; AVX512-FCP-NEXT: vpshufhw {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5,4,7,8,9,10,11,12,13,12,15]7209; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm0[0,1,2,3,4,5,6],ymm2[7]7210; AVX512-FCP-NEXT: vpunpcklwd {{.*#+}} xmm0 = xmm12[0],xmm14[0],xmm12[1],xmm14[1],xmm12[2],xmm14[2],xmm12[3],xmm14[3]7211; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm3 = xmm0[8,9,6,7,4,5,6,7,8,9,10,11,12,13,14,15]7212; AVX512-FCP-NEXT: vinserti64x4 $1, %ymm3, %zmm2, %zmm157213; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm8[0,1,2],ymm7[3],ymm8[4,5],ymm7[6],ymm8[7]7214; AVX512-FCP-NEXT: vextracti128 $1, %ymm2, %xmm37215; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm2 = xmm3[0,1,2,3],xmm2[4],xmm3[5],xmm2[6],xmm3[7]7216; AVX512-FCP-NEXT: vpermd %zmm29, %zmm18, %zmm37217; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm2 = xmm2[u,u,u,u,u,u,12,13,10,11,8,9,6,7,u,u]7218; AVX512-FCP-NEXT: vpshufb {{.*#+}} ymm3 = ymm3[2,3,4,5,10,11,12,13,0,1,0,1,0,1,0,1,18,19,20,21,26,27,28,29,16,17,16,17,16,17,16,17]7219; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm2 = xmm3[0,1,2],xmm2[3,4,5,6],xmm3[7]7220; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4,5,6,7]7221; AVX512-FCP-NEXT: vpermd %zmm9, %zmm10, %zmm37222; AVX512-FCP-NEXT: vpshufb {{.*#+}} ymm3 = ymm3[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,18,19,20,21,26,27,28,29]7223; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5],ymm3[6,7]7224; AVX512-FCP-NEXT: vmovdqa64 %ymm2, %ymm277225; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm7[0,1],ymm8[2],ymm7[3,4,5],ymm8[6],ymm7[7]7226; AVX512-FCP-NEXT: vextracti128 $1, %ymm2, %xmm37227; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0,1,2,3],xmm3[4],xmm2[5],xmm3[6],xmm2[7]7228; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} ymm3 = [10,3,6,15,12,13,6,15]7229; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} ymm18 = [1,0,0,0,5,8,12,15]7230; AVX512-FCP-NEXT: vpshufb %ymm13, %ymm2, %ymm27231; AVX512-FCP-NEXT: vpermd %zmm29, %zmm18, %zmm137232; AVX512-FCP-NEXT: vpshufb {{.*#+}} ymm13 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm13[2,3,16,17,22,23,24,25,30,31,u,u,u,u,u,u,u,u]7233; AVX512-FCP-NEXT: vpor %ymm2, %ymm13, %ymm27234; AVX512-FCP-NEXT: vpermd %zmm9, %zmm19, %zmm97235; AVX512-FCP-NEXT: vpshufb %ymm1, %ymm9, %ymm97236; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm9[6,7]7237; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm6[0],ymm5[1],ymm6[2,3,4],ymm5[5],ymm6[6,7]7238; AVX512-FCP-NEXT: vextracti128 $1, %ymm2, %xmm97239; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm2 = xmm9[0],xmm2[1],xmm9[2],xmm2[3],xmm9[4,5,6,7]7240; AVX512-FCP-NEXT: vpermd %zmm31, %zmm3, %zmm37241; AVX512-FCP-NEXT: vpshufb {{.*#+}} ymm3 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm3[4,5,10,11,0,1,22,23],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero7242; AVX512-FCP-NEXT: vpshufb {{.*#+}} ymm2 = ymm2[6,7,4,5,2,3,0,1,14,15],zero,zero,zero,zero,zero,zero,zero,zero,ymm2[u,u,u,u,u,u,u,u,u,u,u,u,u,u]7243; AVX512-FCP-NEXT: vporq %ymm3, %ymm2, %ymm187244; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm4[0],ymm11[1],ymm4[2,3],ymm11[4],ymm4[5,6,7]7245; AVX512-FCP-NEXT: vextracti128 $1, %ymm2, %xmm37246; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0],xmm3[1],xmm2[2,3,4,5],xmm3[6],xmm2[7]7247; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm2 = xmm2[0,1,4,5,2,3,0,1,14,15,12,13,u,u,u,u]7248; AVX512-FCP-NEXT: vinserti128 $1, %xmm2, %ymm0, %ymm37249; AVX512-FCP-NEXT: vpermq {{.*#+}} ymm2 = ymm28[0,1,1,3]7250; AVX512-FCP-NEXT: vpshufb {{.*#+}} ymm9 = ymm2[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,18,19,24,25]7251; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5,6],ymm9[7]7252; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[12,13,10,11,u,u,u,u,u,u,u,u,u,u,u,u]7253; AVX512-FCP-NEXT: vinserti64x4 $1, %ymm0, %zmm3, %zmm197254; AVX512-FCP-NEXT: vmovdqa 416(%rdi), %ymm137255; AVX512-FCP-NEXT: vmovdqa 384(%rdi), %ymm37256; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm3[0,1],ymm13[2],ymm3[3,4,5],ymm13[6],ymm3[7]7257; AVX512-FCP-NEXT: vextracti128 $1, %ymm0, %xmm97258; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2,3],xmm9[4],xmm0[5],xmm9[6],xmm0[7]7259; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm9 = ymm7[0,1,2],ymm8[3],ymm7[4,5],ymm8[6],ymm7[7]7260; AVX512-FCP-NEXT: vextracti128 $1, %ymm9, %xmm107261; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm9 = xmm10[0],xmm9[1],xmm10[2,3,4,5],xmm9[6],xmm10[7]7262; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} ymm10 = [2,11,2,11,12,5,8,9]7263; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[u,u,u,u,u,u,0,1,14,15,12,13,10,11,8,9]7264; AVX512-FCP-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm07265; AVX512-FCP-NEXT: vpermd %zmm29, %zmm10, %zmm107266; AVX512-FCP-NEXT: vpshufb {{.*#+}} ymm10 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm10[0,1,22,23,28,29,18,19],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero7267; AVX512-FCP-NEXT: vpblendw {{.*#+}} ymm0 = ymm10[0,1,2],ymm0[3,4,5,6,7],ymm10[8,9,10],ymm0[11,12,13,14,15]7268; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm9 = xmm9[0,1,2,3,2,3,0,1,14,15,12,13,10,11],zero,zero7269; AVX512-FCP-NEXT: vpor %ymm10, %ymm9, %ymm97270; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm9[0,1,2,3],ymm0[4,5,6,7]7271; AVX512-FCP-NEXT: vmovdqa64 %ymm0, %ymm177272; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm4[0],ymm11[1],ymm4[2,3,4],ymm11[5],ymm4[6,7]7273; AVX512-FCP-NEXT: vextracti128 $1, %ymm0, %xmm47274; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm0 = xmm4[0],xmm0[1],xmm4[2],xmm0[3],xmm4[4,5,6,7]7275; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[0,1,6,7,4,5,2,3,0,1,14,15,u,u,u,u]7276; AVX512-FCP-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm07277; AVX512-FCP-NEXT: vmovdqa64 %ymm25, %ymm47278; AVX512-FCP-NEXT: vpshufb %ymm4, %ymm2, %ymm27279; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5,6],ymm2[7]7280; AVX512-FCP-NEXT: vpbroadcastw 232(%rdi), %xmm27281; AVX512-FCP-NEXT: vpsrlq $48, %xmm14, %xmm47282; AVX512-FCP-NEXT: vpunpcklwd {{.*#+}} xmm2 = xmm2[0],xmm4[0],xmm2[1],xmm4[1],xmm2[2],xmm4[2],xmm2[3],xmm4[3]7283; AVX512-FCP-NEXT: vpermd %zmm22, %zmm16, %zmm47284; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} ymm10 = [0,3,7,10,14,0,0,0]7285; AVX512-FCP-NEXT: vinserti32x4 $2, %xmm2, %zmm0, %zmm167286; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} ymm0 = [0,3,3,0,0,3,7,0]7287; AVX512-FCP-NEXT: vpermd %ymm28, %ymm0, %ymm07288; AVX512-FCP-NEXT: vmovdqa {{.*#+}} ymm2 = [0,1,0,1,6,7,8,9,14,15,0,1,6,7,8,9,16,17,16,17,22,23,24,25,30,31,16,17,22,23,24,25]7289; AVX512-FCP-NEXT: vpshufb %ymm2, %ymm0, %ymm07290; AVX512-FCP-NEXT: vpshufb %ymm2, %ymm4, %ymm27291; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm4 = ymm6[0,1],ymm5[2],ymm6[3,4],ymm5[5],ymm6[6,7]7292; AVX512-FCP-NEXT: vpblendw {{.*#+}} ymm0 = ymm2[0,1,2,3,4],ymm0[5,6,7],ymm2[8,9,10,11,12],ymm0[13,14,15]7293; AVX512-FCP-NEXT: vpsrld $16, %xmm12, %xmm27294; AVX512-FCP-NEXT: vpunpckhwd {{.*#+}} xmm2 = xmm2[4],xmm14[4],xmm2[5],xmm14[5],xmm2[6],xmm14[6],xmm2[7],xmm14[7]7295; AVX512-FCP-NEXT: vinserti32x4 $2, %xmm2, %zmm0, %zmm257296; AVX512-FCP-NEXT: vmovdqa {{.*#+}} xmm11 = [8,9,4,5,4,5,6,7,8,9,10,11,12,13,14,15]7297; AVX512-FCP-NEXT: vpshufb %xmm11, %xmm4, %xmm07298; AVX512-FCP-NEXT: vextracti128 $1, %ymm4, %xmm27299; AVX512-FCP-NEXT: vpshuflw {{.*#+}} xmm2 = xmm2[3,1,2,3,4,5,6,7]7300; AVX512-FCP-NEXT: vpunpcklwd {{.*#+}} xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1],xmm0[2],xmm2[2],xmm0[3],xmm2[3]7301; AVX512-FCP-NEXT: vpermd %zmm31, %zmm10, %zmm47302; AVX512-FCP-NEXT: vmovdqa {{.*#+}} ymm2 = [u,u,u,u,u,u,u,u,0,1,6,7,8,9,14,15,16,17,22,23,20,21,22,23,16,17,22,23,24,25,30,31]7303; AVX512-FCP-NEXT: vpshufb %ymm2, %ymm4, %ymm47304; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1],ymm4[2,3,4,5,6,7]7305; AVX512-FCP-NEXT: vmovdqa64 {{.*#+}} zmm30 = [65535,65535,65535,65535,65535,65535,65535,65535,65535,0,0,0,0,0,0,0,0,0,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535]7306; AVX512-FCP-NEXT: vpternlogq {{.*#+}} zmm16 = zmm16 ^ (zmm30 & (zmm16 ^ zmm0))7307; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm3[0,1,2],ymm13[3],ymm3[4,5],ymm13[6],ymm3[7]7308; AVX512-FCP-NEXT: vextracti128 $1, %ymm0, %xmm47309; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm0 = xmm4[0],xmm0[1],xmm4[2,3,4,5],xmm0[6],xmm4[7]7310; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm4 = ymm8[0],ymm7[1],ymm8[2,3],ymm7[4],ymm8[5,6,7]7311; AVX512-FCP-NEXT: vextracti128 $1, %ymm4, %xmm107312; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm4 = xmm4[0],xmm10[1],xmm4[2,3,4,5],xmm10[6],xmm4[7]7313; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[u,u,u,u,u,u,2,3,0,1,14,15,12,13,10,11]7314; AVX512-FCP-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm07315; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} ymm10 = [2,0,0,0,6,9,13,0]7316; AVX512-FCP-NEXT: vpermd %zmm29, %zmm10, %zmm107317; AVX512-FCP-NEXT: vpshufb {{.*#+}} ymm10 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm10[2,3,16,17,22,23,24,25],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero7318; AVX512-FCP-NEXT: vpblendw {{.*#+}} ymm0 = ymm10[0,1,2],ymm0[3,4,5,6,7],ymm10[8,9,10],ymm0[11,12,13,14,15]7319; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm4 = xmm4[0,1,2,3,4,5,2,3,0,1,14,15,12,13],zero,zero7320; AVX512-FCP-NEXT: vpor %ymm4, %ymm10, %ymm47321; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm4[0,1,2,3],ymm0[4,5,6,7]7322; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm4 = ymm6[0,1],ymm5[2,3],ymm6[4,5],ymm5[6,7]7323; AVX512-FCP-NEXT: vextracti128 $1, %ymm4, %xmm107324; AVX512-FCP-NEXT: vpshufb %xmm11, %xmm10, %xmm107325; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm4 = xmm4[10,11,6,7,4,5,6,7,u,u,u,u,u,u,u,u]7326; AVX512-FCP-NEXT: vpunpcklwd {{.*#+}} xmm4 = xmm4[0],xmm10[0],xmm4[1],xmm10[1],xmm4[2],xmm10[2],xmm4[3],xmm10[3]7327; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} ymm10 = [0,4,7,11,14,0,0,0]7328; AVX512-FCP-NEXT: vinserti64x4 $1, %ymm26, %zmm0, %zmm267329; AVX512-FCP-NEXT: vpermd %zmm31, %zmm10, %zmm107330; AVX512-FCP-NEXT: vpshufb {{.*#+}} ymm10 = ymm10[u,u,u,u,u,u,u,u,2,3,4,5,10,11,12,13,18,19,18,19,18,19,18,19,18,19,20,21,26,27,28,29]7331; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm11 = ymm4[0,1],ymm10[2,3,4,5,6,7]7332; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm4 = ymm13[0],ymm3[1],ymm13[2,3],ymm3[4],ymm13[5,6,7]7333; AVX512-FCP-NEXT: vextracti128 $1, %ymm4, %xmm107334; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm4 = xmm4[0],xmm10[1],xmm4[2,3,4,5],xmm10[6],xmm4[7]7335; AVX512-FCP-NEXT: vinserti64x4 $1, %ymm27, %zmm0, %zmm277336; AVX512-FCP-NEXT: vbroadcasti128 {{.*#+}} ymm10 = [0,4,7,0,0,4,7,0]7337; AVX512-FCP-NEXT: # ymm10 = mem[0,1,0,1]7338; AVX512-FCP-NEXT: vpermd %ymm28, %ymm10, %ymm107339; AVX512-FCP-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm287340; AVX512-FCP-NEXT: vmovdqa {{.*#+}} ymm1 = [4,5,2,3,4,5,10,11,12,13,2,3,4,5,10,11,20,21,18,19,20,21,26,27,28,29,18,19,20,21,26,27]7341; AVX512-FCP-NEXT: vpshufb %ymm1, %ymm10, %ymm107342; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} ymm9 = [2,6,9,13,2,6,9,13]7343; AVX512-FCP-NEXT: vpermd %zmm22, %zmm9, %zmm97344; AVX512-FCP-NEXT: vpshufb %ymm1, %ymm9, %ymm17345; AVX512-FCP-NEXT: vpblendw {{.*#+}} ymm1 = ymm1[0,1,2,3,4],ymm10[5,6,7],ymm1[8,9,10,11,12],ymm10[13,14,15]7346; AVX512-FCP-NEXT: vpunpckhwd {{.*#+}} xmm9 = xmm12[4],xmm14[4],xmm12[5],xmm14[5],xmm12[6],xmm14[6],xmm12[7],xmm14[7]7347; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm9 = xmm9[8,9,6,7,4,5,6,7,8,9,10,11,12,13,14,15]7348; AVX512-FCP-NEXT: vinserti64x4 $1, %ymm9, %zmm1, %zmm107349; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm8[0],ymm7[1],ymm8[2,3,4],ymm7[5],ymm8[6,7]7350; AVX512-FCP-NEXT: vextracti128 $1, %ymm1, %xmm97351; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm1 = xmm9[0],xmm1[1],xmm9[2],xmm1[3],xmm9[4,5,6,7]7352; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} ymm9 = [3,0,0,0,6,10,13,0]7353; AVX512-FCP-NEXT: vinserti64x4 $1, %ymm17, %zmm0, %zmm127354; AVX512-FCP-NEXT: vpermd %zmm29, %zmm9, %zmm97355; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm4 = xmm4[u,u,u,u,u,u,4,5,2,3,0,1,14,15,12,13]7356; AVX512-FCP-NEXT: vinserti128 $1, %xmm4, %ymm0, %ymm47357; AVX512-FCP-NEXT: vpshufb {{.*#+}} ymm9 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm9[0,1,18,19,20,21,26,27],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero7358; AVX512-FCP-NEXT: vpblendw {{.*#+}} ymm4 = ymm9[0,1,2],ymm4[3,4,5,6,7],ymm9[8,9,10],ymm4[11,12,13,14,15]7359; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm1 = xmm1[0,1,2,3,6,7,4,5,2,3,0,1,14,15],zero,zero7360; AVX512-FCP-NEXT: vpor %ymm1, %ymm9, %ymm17361; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm4[4,5,6,7]7362; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} ymm4 = [1,4,8,11,15,0,0,0]7363; AVX512-FCP-NEXT: vinserti64x4 $1, %ymm0, %zmm0, %zmm97364; AVX512-FCP-NEXT: vpermd %zmm31, %zmm4, %zmm07365; AVX512-FCP-NEXT: vpshufb %ymm2, %ymm0, %ymm07366; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm6[0,1,2],ymm5[3],ymm6[4,5],ymm5[6],ymm6[7]7367; AVX512-FCP-NEXT: vextracti128 $1, %ymm2, %xmm47368; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm4 = xmm4[u,u,u,u,u,u,u,u,10,11,6,7,4,5,6,7]7369; AVX512-FCP-NEXT: vpshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,6,4,6,7]7370; AVX512-FCP-NEXT: vpunpckhwd {{.*#+}} xmm2 = xmm2[4],xmm4[4],xmm2[5],xmm4[5],xmm2[6],xmm4[6],xmm2[7],xmm4[7]7371; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm2[0,1],ymm0[2,3,4,5,6,7]7372; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm13[0],ymm3[1],ymm13[2,3,4],ymm3[5],ymm13[6,7]7373; AVX512-FCP-NEXT: vextracti128 $1, %ymm2, %xmm37374; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm2 = xmm3[0],xmm2[1],xmm3[2],xmm2[3],xmm3[4,5,6,7]7375; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm3 = ymm8[0,1],ymm7[2],ymm8[3,4],ymm7[5],ymm8[6,7]7376; AVX512-FCP-NEXT: vextracti128 $1, %ymm3, %xmm47377; AVX512-FCP-NEXT: vpshuflw {{.*#+}} xmm4 = xmm4[0,3,1,3,4,5,6,7]7378; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm3 = xmm3[8,9,8,9,4,5,6,7,u,u,u,u,u,u,u,u]7379; AVX512-FCP-NEXT: vpunpcklwd {{.*#+}} xmm3 = xmm3[0],xmm4[0],xmm3[1],xmm4[1],xmm3[2],xmm4[2],xmm3[3],xmm4[3]7380; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} ymm4 = [0,1,10,3,14,7,10,3]7381; AVX512-FCP-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm17382; AVX512-FCP-NEXT: vpermd %zmm29, %zmm4, %zmm47383; AVX512-FCP-NEXT: vpshufb {{.*#+}} ymm4 = ymm4[4,5,10,11,u,u,u,u,u,u,u,u,0,1,14,15,20,21,26,27,16,17,26,27,16,17,20,21,16,17,30,31]7384; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm3 = ymm4[0],ymm3[1,2],ymm4[3,4,5,6,7]7385; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm2 = xmm2[u,u,u,u,u,u,6,7,4,5,2,3,0,1,14,15]7386; AVX512-FCP-NEXT: vinserti128 $1, %xmm2, %ymm0, %ymm27387; AVX512-FCP-NEXT: vpblendw {{.*#+}} ymm2 = ymm3[0,1,2],ymm2[3,4,5,6,7],ymm3[8,9,10],ymm2[11,12,13,14,15]7388; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm3[0,1,2,3],ymm2[4,5,6,7]7389; AVX512-FCP-NEXT: vinserti64x4 $1, %ymm2, %zmm0, %zmm27390; AVX512-FCP-NEXT: vmovdqa64 {{.*#+}} zmm3 = [65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,0,0,0,0,0,0,0,0,0,0,0,0,0]7391; AVX512-FCP-NEXT: vpternlogq {{.*#+}} zmm26 = zmm26 ^ (zmm3 & (zmm26 ^ zmm23))7392; AVX512-FCP-NEXT: vpternlogq {{.*#+}} zmm24 = zmm20 ^ (mem & (zmm24 ^ zmm20))7393; AVX512-FCP-NEXT: vpternlogq {{.*#+}} zmm27 = zmm27 ^ (zmm3 & (zmm27 ^ zmm24))7394; AVX512-FCP-NEXT: vpternlogq {{.*#+}} zmm15 = zmm15 ^ (zmm30 & (zmm15 ^ zmm21))7395; AVX512-FCP-NEXT: movw $-512, %ax # imm = 0xFE007396; AVX512-FCP-NEXT: kmovw %eax, %k17397; AVX512-FCP-NEXT: vmovdqa32 %zmm28, %zmm15 {%k1}7398; AVX512-FCP-NEXT: vpternlogq {{.*#+}} zmm19 = zmm19 ^ (zmm30 & (zmm19 ^ zmm18))7399; AVX512-FCP-NEXT: vmovdqa32 %zmm12, %zmm19 {%k1}7400; AVX512-FCP-NEXT: vmovdqa32 %zmm9, %zmm16 {%k1}7401; AVX512-FCP-NEXT: vpternlogq {{.*#+}} zmm11 = zmm25 ^ (zmm30 & (zmm11 ^ zmm25))7402; AVX512-FCP-NEXT: vmovdqa32 %zmm1, %zmm11 {%k1}7403; AVX512-FCP-NEXT: vmovdqa64 %zmm26, (%rsi)7404; AVX512-FCP-NEXT: vmovdqa64 %zmm27, (%rdx)7405; AVX512-FCP-NEXT: vmovdqa64 %zmm15, (%rcx)7406; AVX512-FCP-NEXT: vmovdqa64 %zmm19, (%r8)7407; AVX512-FCP-NEXT: vmovdqa64 %zmm16, (%r9)7408; AVX512-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax7409; AVX512-FCP-NEXT: vmovdqa64 %zmm11, (%rax)7410; AVX512-FCP-NEXT: vpternlogq {{.*#+}} zmm0 = zmm10 ^ (zmm30 & (zmm0 ^ zmm10))7411; AVX512-FCP-NEXT: vmovdqa32 %zmm2, %zmm0 {%k1}7412; AVX512-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax7413; AVX512-FCP-NEXT: vmovdqa64 %zmm0, (%rax)7414; AVX512-FCP-NEXT: vzeroupper7415; AVX512-FCP-NEXT: retq7416;7417; AVX512DQ-LABEL: load_i16_stride7_vf32:7418; AVX512DQ: # %bb.0:7419; AVX512DQ-NEXT: vmovdqa (%rdi), %ymm117420; AVX512DQ-NEXT: vmovdqa 32(%rdi), %ymm157421; AVX512DQ-NEXT: vmovdqa 64(%rdi), %ymm47422; AVX512DQ-NEXT: vmovdqa 96(%rdi), %ymm107423; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm0 = ymm10[0],ymm4[1],ymm10[2,3,4],ymm4[5],ymm10[6,7]7424; AVX512DQ-NEXT: vpermq {{.*#+}} ymm0 = ymm0[0,2,2,3]7425; AVX512DQ-NEXT: vpshufb {{.*#+}} ymm0 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm0[6,7,12,13,2,3,16,17,30,31],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero7426; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm1 = ymm11[0,1],ymm15[2],ymm11[3,4,5],ymm15[6],ymm11[7]7427; AVX512DQ-NEXT: vextracti128 $1, %ymm1, %xmm27428; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1,2,3],xmm2[4],xmm1[5],xmm2[6],xmm1[7]7429; AVX512DQ-NEXT: vpshufb {{.*#+}} ymm1 = ymm1[0,1,14,15,12,13,10,11,8,9],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm1[u,u,u,u,u,u,u,u,u,u,u,u]7430; AVX512DQ-NEXT: vporq %ymm0, %ymm1, %ymm187431; AVX512DQ-NEXT: vmovdqa 128(%rdi), %ymm87432; AVX512DQ-NEXT: vmovdqa 160(%rdi), %ymm97433; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm0 = ymm9[0,1,2],ymm8[3],ymm9[4,5],ymm8[6],ymm9[7]7434; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm1 = xmm0[0,1,2,3,4,6,4,7]7435; AVX512DQ-NEXT: vextracti128 $1, %ymm0, %xmm07436; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[0,1,2,1]7437; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,5,7,7]7438; AVX512DQ-NEXT: vpunpckhwd {{.*#+}} xmm0 = xmm1[4],xmm0[4],xmm1[5],xmm0[5],xmm1[6],xmm0[6],xmm1[7],xmm0[7]7439; AVX512DQ-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm27440; AVX512DQ-NEXT: vmovdqa 192(%rdi), %ymm07441; AVX512DQ-NEXT: vpermq {{.*#+}} ymm1 = ymm0[0,1,0,2]7442; AVX512DQ-NEXT: vpshufd {{.*#+}} ymm3 = ymm1[0,1,2,1,4,5,6,5]7443; AVX512DQ-NEXT: vpshufhw {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5,6,5,8,9,10,11,12,13,14,13]7444; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5,6],ymm3[7]7445; AVX512DQ-NEXT: vpbroadcastw 252(%rdi), %xmm37446; AVX512DQ-NEXT: vmovdqa 224(%rdi), %xmm137447; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm5 = xmm13[0,1,0,3]7448; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm5 = xmm5[0,1,2,3,4,7,6,7]7449; AVX512DQ-NEXT: vpunpckhdq {{.*#+}} xmm3 = xmm5[2],xmm3[2],xmm5[3],xmm3[3]7450; AVX512DQ-NEXT: movw $992, %ax # imm = 0x3E07451; AVX512DQ-NEXT: kmovw %eax, %k17452; AVX512DQ-NEXT: vinserti32x4 $2, %xmm3, %zmm2, %zmm18 {%k1}7453; AVX512DQ-NEXT: vmovdqa 256(%rdi), %ymm67454; AVX512DQ-NEXT: vmovdqa 288(%rdi), %ymm57455; AVX512DQ-NEXT: vmovdqa 240(%rdi), %xmm147456; AVX512DQ-NEXT: vmovdqa 80(%rdi), %xmm27457; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm3 = ymm10[0,1],ymm4[2],ymm10[3,4],ymm4[5],ymm10[6,7]7458; AVX512DQ-NEXT: vpblendw {{.*#+}} ymm2 = ymm3[0,1,2],ymm2[3],ymm3[4,5,6,7,8,9,10],ymm2[11],ymm3[12,13,14,15]7459; AVX512DQ-NEXT: vpshufb {{.*#+}} ymm2 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm2[8,9,6,7,4,5,18,19],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero7460; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm3 = ymm11[0,1,2],ymm15[3],ymm11[4,5],ymm15[6],ymm11[7]7461; AVX512DQ-NEXT: vextracti128 $1, %ymm3, %xmm77462; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm3 = xmm7[0],xmm3[1],xmm7[2,3,4,5],xmm3[6],xmm7[7]7463; AVX512DQ-NEXT: vpshufb {{.*#+}} ymm3 = ymm3[2,3,0,1,14,15,12,13,10,11],zero,zero,zero,zero,zero,zero,zero,zero,ymm3[u,u,u,u,u,u,u,u,u,u,u,u,u,u]7464; AVX512DQ-NEXT: vpor %ymm2, %ymm3, %ymm27465; AVX512DQ-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7466; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm2 = ymm8[0,1],ymm9[2],ymm8[3,4,5],ymm9[6],ymm8[7]7467; AVX512DQ-NEXT: vextracti128 $1, %ymm2, %xmm37468; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0,1,2,3],xmm3[4],xmm2[5],xmm3[6],xmm2[7]7469; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm2 = xmm2[0,1,0,1,14,15,12,13,10,11,8,9,u,u,u,u]7470; AVX512DQ-NEXT: vinserti128 $1, %xmm2, %ymm0, %ymm27471; AVX512DQ-NEXT: vpshufd {{.*#+}} ymm1 = ymm1[0,1,1,3,4,5,5,7]7472; AVX512DQ-NEXT: vpshufhw {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,5,6,8,9,10,11,12,13,13,14]7473; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5,6],ymm1[7]7474; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm2 = xmm14[0],xmm13[1],xmm14[2,3,4,5,6,7]7475; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm2 = xmm2[0,3,2,3]7476; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm2 = xmm2[1,0,3,3,4,5,6,7]7477; AVX512DQ-NEXT: vinserti32x4 $2, %xmm2, %zmm1, %zmm217478; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm1 = ymm10[0,1],ymm4[2,3],ymm10[4,5],ymm4[6,7]7479; AVX512DQ-NEXT: vextracti128 $1, %ymm1, %xmm27480; AVX512DQ-NEXT: vpblendw {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm2[4],ymm1[5,6,7,8,9,10,11],ymm2[12],ymm1[13,14,15]7481; AVX512DQ-NEXT: vpshufb {{.*#+}} ymm1 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm1[10,11,8,9,6,7,20,21],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero7482; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm2 = ymm15[0],ymm11[1],ymm15[2,3],ymm11[4],ymm15[5,6,7]7483; AVX512DQ-NEXT: vextracti128 $1, %ymm2, %xmm37484; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0],xmm3[1],xmm2[2,3,4,5],xmm3[6],xmm2[7]7485; AVX512DQ-NEXT: vpshufb {{.*#+}} ymm2 = ymm2[4,5,2,3,0,1,14,15,12,13],zero,zero,zero,zero,zero,zero,zero,zero,ymm2[u,u,u,u,u,u,u,u,u,u,u,u,u,u]7486; AVX512DQ-NEXT: vporq %ymm1, %ymm2, %ymm197487; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm1 = ymm8[0,1,2],ymm9[3],ymm8[4,5],ymm9[6],ymm8[7]7488; AVX512DQ-NEXT: vextracti128 $1, %ymm1, %xmm27489; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm1 = xmm2[0],xmm1[1],xmm2[2,3,4,5],xmm1[6],xmm2[7]7490; AVX512DQ-NEXT: vmovdqa {{.*#+}} ymm2 = [0,1,2,3,0,1,14,15,12,13,10,11,8,9,128,128,128,128,128,128,128,128,128,128,u,u,u,u,u,u,u,u]7491; AVX512DQ-NEXT: vpshufb %xmm2, %xmm1, %xmm17492; AVX512DQ-NEXT: vmovdqa64 %ymm2, %ymm257493; AVX512DQ-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm17494; AVX512DQ-NEXT: vpermq {{.*#+}} ymm2 = ymm0[0,1,1,2]7495; AVX512DQ-NEXT: vpshufd {{.*#+}} ymm2 = ymm2[0,1,0,3,4,5,4,7]7496; AVX512DQ-NEXT: vpshufhw {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5,4,7,8,9,10,11,12,13,12,15]7497; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,6],ymm2[7]7498; AVX512DQ-NEXT: vpunpcklwd {{.*#+}} xmm3 = xmm13[0],xmm14[0],xmm13[1],xmm14[1],xmm13[2],xmm14[2],xmm13[3],xmm14[3]7499; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm2 = xmm3[2,1,2,3]7500; AVX512DQ-NEXT: vmovdqa64 %xmm3, %xmm267501; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm2 = xmm2[0,3,2,3,4,5,6,7]7502; AVX512DQ-NEXT: vinserti32x4 $2, %xmm2, %zmm1, %zmm227503; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm1 = ymm10[0,1,2],ymm4[3],ymm10[4,5],ymm4[6],ymm10[7]7504; AVX512DQ-NEXT: vpermq {{.*#+}} ymm1 = ymm1[1,3,2,3]7505; AVX512DQ-NEXT: vpshufb {{.*#+}} ymm1 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm1[4,5,10,11,0,1,22,23],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero7506; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm2 = ymm15[0],ymm11[1],ymm15[2,3,4],ymm11[5],ymm15[6,7]7507; AVX512DQ-NEXT: vextracti128 $1, %ymm2, %xmm37508; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm2 = xmm3[0],xmm2[1],xmm3[2],xmm2[3],xmm3[4,5,6,7]7509; AVX512DQ-NEXT: vpshufb {{.*#+}} ymm2 = ymm2[6,7,4,5,2,3,0,1,14,15],zero,zero,zero,zero,zero,zero,zero,zero,ymm2[u,u,u,u,u,u,u,u,u,u,u,u,u,u]7510; AVX512DQ-NEXT: vporq %ymm1, %ymm2, %ymm177511; AVX512DQ-NEXT: vpermq {{.*#+}} ymm23 = ymm0[0,1,1,3]7512; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm0 = ymm9[0],ymm8[1],ymm9[2,3,4],ymm8[5],ymm9[6,7]7513; AVX512DQ-NEXT: vextracti128 $1, %ymm0, %xmm17514; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm0 = xmm1[0],xmm0[1],xmm1[2],xmm0[3],xmm1[4,5,6,7]7515; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[0,1,6,7,4,5,2,3,0,1,14,15,u,u,u,u]7516; AVX512DQ-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm07517; AVX512DQ-NEXT: vpshufd {{.*#+}} ymm1 = ymm23[0,1,2,1,4,5,6,5]7518; AVX512DQ-NEXT: vpshufhw {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,6,5,8,9,10,11,12,13,14,13]7519; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5,6],ymm1[7]7520; AVX512DQ-NEXT: vpbroadcastw 232(%rdi), %xmm17521; AVX512DQ-NEXT: vpsrlq $48, %xmm14, %xmm27522; AVX512DQ-NEXT: vpunpcklwd {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1],xmm1[2],xmm2[2],xmm1[3],xmm2[3]7523; AVX512DQ-NEXT: vinserti32x4 $2, %xmm1, %zmm0, %zmm207524; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm0 = ymm9[0,1],ymm8[2],ymm9[3,4],ymm8[5],ymm9[6,7]7525; AVX512DQ-NEXT: vextracti128 $1, %ymm0, %xmm17526; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm0 = xmm1[0,1],xmm0[2],xmm1[3],xmm0[4],xmm1[5,6,7]7527; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[8,9,8,9,6,7,4,5,2,3,u,u,u,u,u,u]7528; AVX512DQ-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm07529; AVX512DQ-NEXT: vmovdqa 208(%rdi), %xmm27530; AVX512DQ-NEXT: vmovdqa 192(%rdi), %xmm77531; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm1 = xmm7[0,1,2,3,4,5],xmm2[6],xmm7[7]7532; AVX512DQ-NEXT: vmovdqa64 %xmm2, %xmm297533; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm1 = xmm1[0,1,0,3]7534; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,4,7,6]7535; AVX512DQ-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm17536; AVX512DQ-NEXT: vpblendw {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7],ymm0[8,9,10,11,12],ymm1[13,14,15]7537; AVX512DQ-NEXT: vpsrld $16, %xmm13, %xmm17538; AVX512DQ-NEXT: vmovdqa64 %xmm13, %xmm277539; AVX512DQ-NEXT: vpunpckhwd {{.*#+}} xmm1 = xmm1[4],xmm14[4],xmm1[5],xmm14[5],xmm1[6],xmm14[6],xmm1[7],xmm14[7]7540; AVX512DQ-NEXT: vmovdqa64 %xmm14, %xmm287541; AVX512DQ-NEXT: vinserti32x4 $2, %xmm1, %zmm0, %zmm247542; AVX512DQ-NEXT: vmovdqa %ymm5, %ymm127543; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm0 = ymm5[0,1],ymm6[2,3],ymm5[4,5],ymm6[6,7]7544; AVX512DQ-NEXT: vextracti128 $1, %ymm0, %xmm17545; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm0 = xmm1[0,1,2],xmm0[3],xmm1[4],xmm0[5],xmm1[6,7]7546; AVX512DQ-NEXT: vmovdqa 352(%rdi), %ymm17547; AVX512DQ-NEXT: vmovdqa 320(%rdi), %ymm147548; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm2 = ymm14[0,1,2],ymm1[3],ymm14[4,5],ymm1[6],ymm14[7]7549; AVX512DQ-NEXT: vpermq {{.*#+}} ymm3 = ymm2[2,3,0,1]7550; AVX512DQ-NEXT: vpblendw {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5],ymm3[6],ymm2[7,8,9,10,11,12,13],ymm3[14],ymm2[15]7551; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[0,2,2,1]7552; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,7,6,7]7553; AVX512DQ-NEXT: vpshufb {{.*#+}} ymm2 = ymm2[0,1,14,15,12,13,10,11,4,5,6,7,8,9,2,3,16,17,30,31,28,29,26,27,20,21,22,23,24,25,18,19]7554; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm0 = xmm2[0,1,2],xmm0[3,4,5,6],xmm2[7]7555; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm2[4,5,6,7]7556; AVX512DQ-NEXT: vmovdqa 384(%rdi), %ymm57557; AVX512DQ-NEXT: vmovdqa 416(%rdi), %ymm137558; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm2 = ymm13[0,1],ymm5[2],ymm13[3,4],ymm5[5],ymm13[6,7]7559; AVX512DQ-NEXT: vextracti128 $1, %ymm2, %xmm37560; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm3 = xmm3[0,1,3,1,4,5,6,7]7561; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm2 = xmm2[2,1,2,3]7562; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm2 = xmm2[0,1,0,2,4,5,6,7]7563; AVX512DQ-NEXT: vpunpcklwd {{.*#+}} xmm2 = xmm2[0],xmm3[0],xmm2[1],xmm3[1],xmm2[2],xmm3[2],xmm2[3],xmm3[3]7564; AVX512DQ-NEXT: vinserti128 $1, %xmm2, %ymm0, %ymm27565; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm2[6,7]7566; AVX512DQ-NEXT: vmovdqa64 %ymm0, %ymm307567; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm0 = ymm12[0,1,2],ymm6[3],ymm12[4,5],ymm6[6],ymm12[7]7568; AVX512DQ-NEXT: vextracti128 $1, %ymm0, %xmm27569; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm0 = xmm2[0,1,2,3],xmm0[4],xmm2[5],xmm0[6],xmm2[7]7570; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm2 = ymm1[0],ymm14[1],ymm1[2,3],ymm14[4],ymm1[5,6,7]7571; AVX512DQ-NEXT: vpermq {{.*#+}} ymm3 = ymm2[2,3,0,1]7572; AVX512DQ-NEXT: vpblendw {{.*#+}} ymm2 = ymm3[0],ymm2[1,2,3,4,5,6],ymm3[7,8],ymm2[9,10,11,12,13,14],ymm3[15]7573; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[u,u,u,u,u,u,12,13,10,11,8,9,6,7,u,u]7574; AVX512DQ-NEXT: vpshufb {{.*#+}} ymm2 = ymm2[2,3,0,1,14,15,12,13,4,5,4,5,4,5,4,5,18,19,16,17,30,31,28,29,20,21,20,21,20,21,20,21]7575; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm0 = xmm2[0,1,2],xmm0[3,4,5,6],xmm2[7]7576; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm2[4,5,6,7]7577; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm2 = ymm13[0,1],ymm5[2,3],ymm13[4,5],ymm5[6,7]7578; AVX512DQ-NEXT: vextracti128 $1, %ymm2, %xmm37579; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm3 = xmm3[2,1,2,3]7580; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm3 = xmm3[0,1,0,2,4,5,6,7]7581; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm2 = xmm2[2,1,2,3]7582; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm2 = xmm2[0,1,1,3,4,5,6,7]7583; AVX512DQ-NEXT: vpunpcklwd {{.*#+}} xmm2 = xmm2[0],xmm3[0],xmm2[1],xmm3[1],xmm2[2],xmm3[2],xmm2[3],xmm3[3]7584; AVX512DQ-NEXT: vinserti128 $1, %xmm2, %ymm0, %ymm27585; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm2[6,7]7586; AVX512DQ-NEXT: vmovdqa64 %ymm0, %ymm317587; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0],ymm14[1],ymm1[2,3,4],ymm14[5],ymm1[6,7]7588; AVX512DQ-NEXT: vpermq {{.*#+}} ymm2 = ymm0[2,3,0,1]7589; AVX512DQ-NEXT: vpshufb {{.*#+}} ymm0 = ymm0[u,u,u,u,u,u,u,u,u,u,u,u,u,u,6,7,20,21,u,u,16,17,30,31,u,u,u,u,u,u,u,u]7590; AVX512DQ-NEXT: vpblendw {{.*#+}} ymm0 = ymm0[0],ymm2[1],ymm0[2,3,4,5,6,7,8],ymm2[9],ymm0[10,11,12,13,14,15]7591; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm2 = ymm6[0,1],ymm12[2],ymm6[3,4,5],ymm12[6],ymm6[7]7592; AVX512DQ-NEXT: vextracti128 $1, %ymm2, %xmm37593; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0,1,2,3],xmm3[4],xmm2[5],xmm3[6],xmm2[7]7594; AVX512DQ-NEXT: vmovdqa64 %ymm25, %ymm37595; AVX512DQ-NEXT: vpshufb %ymm3, %ymm2, %ymm27596; AVX512DQ-NEXT: vpternlogq {{.*#+}} ymm2 = ymm2 | (ymm0 & ~mem)7597; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm0 = ymm13[0,1,2],ymm5[3],ymm13[4,5],ymm5[6],ymm13[7]7598; AVX512DQ-NEXT: vextracti128 $1, %ymm0, %xmm37599; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,5,6,4]7600; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm3 = xmm3[0,1,2,1]7601; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,4,5,5,7]7602; AVX512DQ-NEXT: vpunpckhwd {{.*#+}} xmm0 = xmm0[4],xmm3[4],xmm0[5],xmm3[5],xmm0[6],xmm3[6],xmm0[7],xmm3[7]7603; AVX512DQ-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm07604; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm0 = ymm2[0,1,2,3,4,5],ymm0[6,7]7605; AVX512DQ-NEXT: vmovdqa64 {{.*#+}} zmm25 = [65535,65535,65535,65535,65535,65535,65535,65535,65535,0,0,0,0,0,0,0,0,0,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535]7606; AVX512DQ-NEXT: vpternlogq {{.*#+}} zmm22 = zmm22 ^ (zmm25 & (zmm22 ^ zmm19))7607; AVX512DQ-NEXT: movw $-512, %ax # imm = 0xFE007608; AVX512DQ-NEXT: kmovw %eax, %k17609; AVX512DQ-NEXT: vinserti32x8 $1, %ymm0, %zmm0, %zmm22 {%k1}7610; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm0 = ymm9[0],ymm8[1],ymm9[2,3],ymm8[4],ymm9[5,6,7]7611; AVX512DQ-NEXT: vextracti128 $1, %ymm0, %xmm27612; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0],xmm2[1],xmm0[2,3,4,5],xmm2[6],xmm0[7]7613; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm0 = xmm0[0,2,1,0,4,5,6,7]7614; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,7,6,6,7]7615; AVX512DQ-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm07616; AVX512DQ-NEXT: vpshufd {{.*#+}} ymm2 = ymm23[0,1,2,0,4,5,6,4]7617; AVX512DQ-NEXT: vpshufhw {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5,7,4,8,9,10,11,12,13,15,12]7618; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5,6],ymm2[7]7619; AVX512DQ-NEXT: vmovdqa64 %xmm26, %xmm27620; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,6,5,6,7]7621; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm2 = xmm2[2,2,2,2]7622; AVX512DQ-NEXT: vinserti32x4 $2, %xmm2, %zmm0, %zmm197623; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm0 = ymm6[0,1,2],ymm12[3],ymm6[4,5],ymm12[6],ymm6[7]7624; AVX512DQ-NEXT: vextracti128 $1, %ymm0, %xmm27625; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm0 = xmm2[0],xmm0[1],xmm2[2,3,4,5],xmm0[6],xmm2[7]7626; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm2 = ymm5[0,1],ymm13[2],ymm5[3,4,5],ymm13[6],ymm5[7]7627; AVX512DQ-NEXT: vextracti128 $1, %ymm2, %xmm37628; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0,1,2,3],xmm3[4],xmm2[5],xmm3[6],xmm2[7]7629; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[0,1,2,3,2,3,0,1,14,15,12,13,10,11],zero,zero7630; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm3 = ymm1[0,1],ymm14[2],ymm1[3,4],ymm14[5],ymm1[6,7]7631; AVX512DQ-NEXT: vpermq {{.*#+}} ymm3 = ymm3[1,1,2,0]7632; AVX512DQ-NEXT: vpshufb {{.*#+}} ymm3 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm3[0,1,22,23,28,29,18,19],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero7633; AVX512DQ-NEXT: vpor %ymm3, %ymm0, %ymm07634; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm2 = xmm2[0,0,0,0,4,5,6,7]7635; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,7,6,5,4]7636; AVX512DQ-NEXT: vinserti128 $1, %xmm2, %ymm0, %ymm27637; AVX512DQ-NEXT: vpblendw {{.*#+}} ymm2 = ymm3[0,1,2],ymm2[3,4,5,6,7],ymm3[8,9,10],ymm2[11,12,13,14,15]7638; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm2[4,5,6,7]7639; AVX512DQ-NEXT: vpternlogq {{.*#+}} zmm19 = zmm19 ^ (zmm25 & (zmm19 ^ zmm17))7640; AVX512DQ-NEXT: vinserti32x8 $1, %ymm0, %zmm0, %zmm19 {%k1}7641; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm0 = ymm4[0,1],ymm10[2],ymm4[3,4,5],ymm10[6],ymm4[7]7642; AVX512DQ-NEXT: vpermq {{.*#+}} ymm2 = ymm0[2,3,0,1]7643; AVX512DQ-NEXT: vpshufb {{.*#+}} ymm0 = ymm0[u,u,u,u,u,u,u,u,0,1,14,15,u,u,10,11,24,25,24,25,24,25,24,25,16,17,30,31,u,u,26,27]7644; AVX512DQ-NEXT: vpblendw {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm2[6],ymm0[7,8,9,10,11,12,13],ymm2[14],ymm0[15]7645; AVX512DQ-NEXT: vmovdqa64 %ymm15, %ymm237646; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm2 = ymm15[0,1],ymm11[2],ymm15[3,4],ymm11[5],ymm15[6,7]7647; AVX512DQ-NEXT: vmovdqa64 %ymm11, %ymm267648; AVX512DQ-NEXT: vextracti128 $1, %ymm2, %xmm37649; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm3 = xmm3[3,1,2,3,4,5,6,7]7650; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm2 = xmm2[2,1,2,3]7651; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm2 = xmm2[0,2,2,3,4,5,6,7]7652; AVX512DQ-NEXT: vpunpcklwd {{.*#+}} xmm2 = xmm2[0],xmm3[0],xmm2[1],xmm3[1],xmm2[2],xmm3[2],xmm2[3],xmm3[3]7653; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm11 = ymm2[0,1],ymm0[2,3,4,5,6,7]7654; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm2 = ymm5[0,1,2],ymm13[3],ymm5[4,5],ymm13[6],ymm5[7]7655; AVX512DQ-NEXT: vextracti128 $1, %ymm2, %xmm37656; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm2 = xmm3[0],xmm2[1],xmm3[2,3,4,5],xmm2[6],xmm3[7]7657; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm3 = ymm1[0,1],ymm14[2,3],ymm1[4,5],ymm14[6,7]7658; AVX512DQ-NEXT: vpermq {{.*#+}} ymm15 = ymm1[0,1,0,1]7659; AVX512DQ-NEXT: vpblendw {{.*#+}} ymm3 = ymm3[0,1,2],ymm15[3],ymm3[4,5,6,7,8,9,10],ymm15[11],ymm3[12,13,14,15]7660; AVX512DQ-NEXT: vmovdqa %ymm12, %ymm07661; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm15 = ymm12[0],ymm6[1],ymm12[2,3],ymm6[4],ymm12[5,6,7]7662; AVX512DQ-NEXT: vextracti128 $1, %ymm15, %xmm127663; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm12 = xmm15[0],xmm12[1],xmm15[2,3,4,5],xmm12[6],xmm15[7]7664; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm2 = xmm2[u,u,u,u,u,u,2,3,0,1,14,15,12,13,10,11]7665; AVX512DQ-NEXT: vinserti128 $1, %xmm2, %ymm0, %ymm27666; AVX512DQ-NEXT: vpshufb {{.*#+}} ymm3 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm3[10,11,24,25,22,23,20,21],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero7667; AVX512DQ-NEXT: vpblendw {{.*#+}} ymm2 = ymm3[0,1,2],ymm2[3,4,5,6,7],ymm3[8,9,10],ymm2[11,12,13,14,15]7668; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm12 = xmm12[0,1,2,3,4,5,2,3,0,1,14,15,12,13],zero,zero7669; AVX512DQ-NEXT: vpor %ymm3, %ymm12, %ymm37670; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm2 = ymm3[0,1,2,3],ymm2[4,5,6,7]7671; AVX512DQ-NEXT: vpternlogq {{.*#+}} zmm11 = zmm20 ^ (zmm25 & (zmm11 ^ zmm20))7672; AVX512DQ-NEXT: vinserti32x8 $1, %ymm2, %zmm0, %zmm11 {%k1}7673; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm2 = ymm13[0],ymm5[1],ymm13[2,3],ymm5[4],ymm13[5,6,7]7674; AVX512DQ-NEXT: vextracti128 $1, %ymm2, %xmm37675; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0],xmm3[1],xmm2[2,3,4,5],xmm3[6],xmm2[7]7676; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm3 = ymm1[0,1,2],ymm14[3],ymm1[4,5],ymm14[6],ymm1[7]7677; AVX512DQ-NEXT: vpermq {{.*#+}} ymm12 = ymm3[2,3,0,1]7678; AVX512DQ-NEXT: vpblendw {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm12[4],ymm3[5,6,7,8,9,10,11],ymm12[12],ymm3[13,14,15]7679; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm12 = ymm0[0],ymm6[1],ymm0[2,3,4],ymm6[5],ymm0[6,7]7680; AVX512DQ-NEXT: vmovdqa64 %ymm0, %ymm207681; AVX512DQ-NEXT: vextracti128 $1, %ymm12, %xmm157682; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm12 = xmm15[0],xmm12[1],xmm15[2],xmm12[3],xmm15[4,5,6,7]7683; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm2 = xmm2[u,u,u,u,u,u,4,5,2,3,0,1,14,15,12,13]7684; AVX512DQ-NEXT: vinserti128 $1, %xmm2, %ymm0, %ymm27685; AVX512DQ-NEXT: vpshufb {{.*#+}} ymm3 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm3[12,13,26,27,24,25,22,23],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero7686; AVX512DQ-NEXT: vpblendw {{.*#+}} ymm2 = ymm3[0,1,2],ymm2[3,4,5,6,7],ymm3[8,9,10],ymm2[11,12,13,14,15]7687; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm12 = xmm12[0,1,2,3,6,7,4,5,2,3,0,1,14,15],zero,zero7688; AVX512DQ-NEXT: vpor %ymm3, %ymm12, %ymm37689; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm0 = ymm3[0,1,2,3],ymm2[4,5,6,7]7690; AVX512DQ-NEXT: vmovdqa64 %ymm0, %ymm177691; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm2 = ymm4[0,1,2],ymm10[3],ymm4[4,5],ymm10[6],ymm4[7]7692; AVX512DQ-NEXT: vmovdqa %ymm4, %ymm37693; AVX512DQ-NEXT: vpermq {{.*#+}} ymm12 = ymm2[2,3,0,1]7694; AVX512DQ-NEXT: vpblendw {{.*#+}} ymm2 = ymm12[0],ymm2[1,2,3,4,5,6],ymm12[7,8],ymm2[9,10,11,12,13,14],ymm12[15]7695; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm8 = ymm9[0,1],ymm8[2,3],ymm9[4,5],ymm8[6,7]7696; AVX512DQ-NEXT: vextracti128 $1, %ymm8, %xmm97697; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm12 = xmm9[0,1,2],xmm8[3],xmm9[4],xmm8[5],xmm9[6,7]7698; AVX512DQ-NEXT: vinserti64x4 $1, %ymm30, %zmm0, %zmm87699; AVX512DQ-NEXT: vinserti64x4 $1, %ymm31, %zmm0, %zmm97700; AVX512DQ-NEXT: vmovdqa64 %xmm29, %xmm07701; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm7 = xmm0[0],xmm7[1],xmm0[2,3,4,5,6,7]7702; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm12 = xmm12[8,9,10,11,8,9,6,7,4,5,u,u,u,u,u,u]7703; AVX512DQ-NEXT: vinserti128 $1, %xmm12, %ymm0, %ymm127704; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm7 = xmm7[0,1,0,3]7705; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm7 = xmm7[0,1,2,3,4,5,4,7]7706; AVX512DQ-NEXT: vinserti128 $1, %xmm7, %ymm0, %ymm77707; AVX512DQ-NEXT: vpblendw {{.*#+}} ymm7 = ymm12[0,1,2,3,4],ymm7[5,6,7],ymm12[8,9,10,11,12],ymm7[13,14,15]7708; AVX512DQ-NEXT: vmovdqa64 %xmm27, %xmm07709; AVX512DQ-NEXT: vmovdqa64 %xmm28, %xmm47710; AVX512DQ-NEXT: vpunpckhwd {{.*#+}} xmm12 = xmm0[4],xmm4[4],xmm0[5],xmm4[5],xmm0[6],xmm4[6],xmm0[7],xmm4[7]7711; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm12 = xmm12[2,1,2,3]7712; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm12 = xmm12[0,3,2,3,4,5,6,7]7713; AVX512DQ-NEXT: vinserti32x4 $2, %xmm12, %zmm7, %zmm277714; AVX512DQ-NEXT: vmovdqa64 %ymm23, %ymm77715; AVX512DQ-NEXT: vmovdqa64 %ymm26, %ymm07716; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm12 = ymm7[0,1],ymm0[2,3],ymm7[4,5],ymm0[6,7]7717; AVX512DQ-NEXT: vextracti128 $1, %ymm12, %xmm157718; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm15 = xmm15[2,1,2,3]7719; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm15 = xmm15[0,2,2,3,4,5,6,7]7720; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm12 = xmm12[2,1,2,3]7721; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm12 = xmm12[1,3,2,3,4,5,6,7]7722; AVX512DQ-NEXT: vpunpcklwd {{.*#+}} xmm12 = xmm12[0],xmm15[0],xmm12[1],xmm15[1],xmm12[2],xmm15[2],xmm12[3],xmm15[3]7723; AVX512DQ-NEXT: vpshufb {{.*#+}} ymm2 = ymm2[u,u,u,u,u,u,u,u,2,3,0,1,14,15,12,13,26,27,26,27,26,27,26,27,18,19,16,17,30,31,28,29]7724; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm2 = ymm12[0,1],ymm2[2,3,4,5,6,7]7725; AVX512DQ-NEXT: vpternlogq {{.*#+}} zmm2 = zmm24 ^ (zmm25 & (zmm2 ^ zmm24))7726; AVX512DQ-NEXT: vinserti32x8 $1, %ymm17, %zmm0, %zmm2 {%k1}7727; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm3 = ymm10[0],ymm3[1],ymm10[2,3],ymm3[4],ymm10[5,6,7]7728; AVX512DQ-NEXT: vpermq {{.*#+}} ymm4 = ymm3[2,3,0,1]7729; AVX512DQ-NEXT: vpblendw {{.*#+}} ymm3 = ymm3[0],ymm4[1],ymm3[2,3,4,5,6,7,8],ymm4[9],ymm3[10,11,12,13,14,15]7730; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm4 = ymm7[0,1,2],ymm0[3],ymm7[4,5],ymm0[6],ymm7[7]7731; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm10 = xmm4[0,1,2,3,6,4,6,7]7732; AVX512DQ-NEXT: vextracti128 $1, %ymm4, %xmm47733; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm4 = xmm4[0,1,2,1]7734; AVX512DQ-NEXT: vpshufhw {{.*#+}} xmm4 = xmm4[0,1,2,3,5,7,6,7]7735; AVX512DQ-NEXT: vpunpckhwd {{.*#+}} xmm4 = xmm10[4],xmm4[4],xmm10[5],xmm4[5],xmm10[6],xmm4[6],xmm10[7],xmm4[7]7736; AVX512DQ-NEXT: vpshufb {{.*#+}} ymm3 = ymm3[u,u,u,u,u,u,u,u,4,5,2,3,0,1,14,15,28,29,28,29,28,29,28,29,20,21,18,19,16,17,30,31]7737; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm3 = ymm4[0,1],ymm3[2,3,4,5,6,7]7738; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm4 = ymm13[0],ymm5[1],ymm13[2,3,4],ymm5[5],ymm13[6,7]7739; AVX512DQ-NEXT: vextracti128 $1, %ymm4, %xmm107740; AVX512DQ-NEXT: vpblendw {{.*#+}} xmm4 = xmm10[0],xmm4[1],xmm10[2],xmm4[3],xmm10[4,5,6,7]7741; AVX512DQ-NEXT: vmovdqa64 %ymm20, %ymm07742; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm5 = ymm0[0,1],ymm6[2],ymm0[3,4],ymm6[5],ymm0[6,7]7743; AVX512DQ-NEXT: vextracti128 $1, %ymm5, %xmm67744; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm6 = xmm6[0,3,1,3,4,5,6,7]7745; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm5 = xmm5[2,1,2,3]7746; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm5 = xmm5[0,0,2,3,4,5,6,7]7747; AVX512DQ-NEXT: vpunpcklwd {{.*#+}} xmm5 = xmm5[0],xmm6[0],xmm5[1],xmm6[1],xmm5[2],xmm6[2],xmm5[3],xmm6[3]7748; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm1 = ymm14[0,1],ymm1[2],ymm14[3,4,5],ymm1[6],ymm14[7]7749; AVX512DQ-NEXT: vpermq {{.*#+}} ymm1 = ymm1[0,1,3,1]7750; AVX512DQ-NEXT: vpshufb {{.*#+}} ymm1 = ymm1[4,5,10,11,u,u,u,u,u,u,u,u,0,1,14,15,20,21,26,27,16,17,26,27,16,17,20,21,16,17,30,31]7751; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0],ymm5[1,2],ymm1[3,4,5,6,7]7752; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm4 = xmm4[u,u,u,u,u,u,6,7,4,5,2,3,0,1,14,15]7753; AVX512DQ-NEXT: vinserti128 $1, %xmm4, %ymm0, %ymm47754; AVX512DQ-NEXT: vpblendw {{.*#+}} ymm4 = ymm1[0,1,2],ymm4[3,4,5,6,7],ymm1[8,9,10],ymm4[11,12,13,14,15]7755; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm4[4,5,6,7]7756; AVX512DQ-NEXT: vpternlogq {{.*#+}} zmm3 = zmm27 ^ (zmm25 & (zmm3 ^ zmm27))7757; AVX512DQ-NEXT: vinserti32x8 $1, %ymm1, %zmm0, %zmm3 {%k1}7758; AVX512DQ-NEXT: vmovdqa64 {{.*#+}} zmm1 = [65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,0,0,0,0,0,0,0,0,0,0,0,0,0]7759; AVX512DQ-NEXT: vpternlogq {{.*#+}} zmm8 = zmm8 ^ (zmm1 & (zmm8 ^ zmm18))7760; AVX512DQ-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload7761; AVX512DQ-NEXT: vpternlogq {{.*#+}} zmm21 = zmm0 ^ (mem & (zmm21 ^ zmm0))7762; AVX512DQ-NEXT: vpternlogq {{.*#+}} zmm9 = zmm9 ^ (zmm1 & (zmm9 ^ zmm21))7763; AVX512DQ-NEXT: vmovdqa64 %zmm8, (%rsi)7764; AVX512DQ-NEXT: vmovdqa64 %zmm9, (%rdx)7765; AVX512DQ-NEXT: vmovdqa64 %zmm22, (%rcx)7766; AVX512DQ-NEXT: vmovdqa64 %zmm19, (%r8)7767; AVX512DQ-NEXT: vmovdqa64 %zmm11, (%r9)7768; AVX512DQ-NEXT: movq {{[0-9]+}}(%rsp), %rax7769; AVX512DQ-NEXT: vmovdqa64 %zmm2, (%rax)7770; AVX512DQ-NEXT: movq {{[0-9]+}}(%rsp), %rax7771; AVX512DQ-NEXT: vmovdqa64 %zmm3, (%rax)7772; AVX512DQ-NEXT: vzeroupper7773; AVX512DQ-NEXT: retq7774;7775; AVX512DQ-FCP-LABEL: load_i16_stride7_vf32:7776; AVX512DQ-FCP: # %bb.0:7777; AVX512DQ-FCP-NEXT: vmovdqa64 320(%rdi), %zmm267778; AVX512DQ-FCP-NEXT: vmovdqa64 64(%rdi), %zmm307779; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} ymm17 = [2,6,9,13,2,6,9,13]7780; AVX512DQ-FCP-NEXT: vmovdqa64 128(%rdi), %zmm227781; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} ymm18 = [2,5,9,12,2,5,9,12]7782; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} ymm19 = [3,6,10,13,3,6,10,13]7783; AVX512DQ-FCP-NEXT: vmovdqa64 384(%rdi), %zmm37784; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} ymm0 = [2,6,9,0,13,0,0,0]7785; AVX512DQ-FCP-NEXT: vpermd %zmm30, %zmm0, %zmm47786; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} ymm20 = [1,0,0,0,4,8,11,15]7787; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} ymm0 = [2,5,9,0,12,0,0,0]7788; AVX512DQ-FCP-NEXT: vpermd %zmm30, %zmm0, %zmm107789; AVX512DQ-FCP-NEXT: vpermd %zmm3, %zmm18, %zmm07790; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} ymm2 = [0,0,0,0,4,7,11,14]7791; AVX512DQ-FCP-NEXT: vpermd %zmm26, %zmm2, %zmm27792; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} ymm5 = [8,1,12,5,12,5,14,15]7793; AVX512DQ-FCP-NEXT: vpermd %zmm30, %zmm5, %zmm57794; AVX512DQ-FCP-NEXT: vpermd %zmm22, %zmm19, %zmm67795; AVX512DQ-FCP-NEXT: vmovdqa64 192(%rdi), %ymm257796; AVX512DQ-FCP-NEXT: vpermq {{.*#+}} ymm12 = ymm25[0,1,0,2]7797; AVX512DQ-FCP-NEXT: vpbroadcastd {{.*#+}} ymm8 = [20,21,26,27,20,21,26,27,20,21,26,27,20,21,26,27,20,21,26,27,20,21,26,27,20,21,26,27,20,21,26,27]7798; AVX512DQ-FCP-NEXT: vpshufb %ymm8, %ymm12, %ymm77799; AVX512DQ-FCP-NEXT: vmovdqa64 %ymm8, %ymm297800; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} ymm6 = ymm6[0,1,2,3,0,1,6,7,8,9,14,15,12,13,14,15,16,17,18,19,16,17,22,23,24,25,30,31,u,u,u,u]7801; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm7 = ymm6[0,1,2,3,4,5,6],ymm7[7]7802; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} ymm8 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm5[6,7,12,13,2,3,16,17,30,31],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero7803; AVX512DQ-FCP-NEXT: vmovdqa (%rdi), %ymm57804; AVX512DQ-FCP-NEXT: vmovdqa 32(%rdi), %ymm67805; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm11 = ymm5[0,1],ymm6[2],ymm5[3,4,5],ymm6[6],ymm5[7]7806; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm11, %xmm137807; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm11 = xmm11[0,1,2,3],xmm13[4],xmm11[5],xmm13[6],xmm11[7]7808; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} ymm11 = ymm11[0,1,14,15,12,13,10,11,8,9],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm11[u,u,u,u,u,u,u,u,u,u,u,u]7809; AVX512DQ-FCP-NEXT: vporq %ymm8, %ymm11, %ymm237810; AVX512DQ-FCP-NEXT: vpbroadcastw 252(%rdi), %xmm87811; AVX512DQ-FCP-NEXT: vmovdqa 224(%rdi), %xmm137812; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm11 = xmm13[u,u,u,u,u,u,u,u,0,1,14,15,12,13,14,15]7813; AVX512DQ-FCP-NEXT: vpunpckhdq {{.*#+}} xmm8 = xmm11[2],xmm8[2],xmm11[3],xmm8[3]7814; AVX512DQ-FCP-NEXT: movw $992, %ax # imm = 0x3E07815; AVX512DQ-FCP-NEXT: kmovw %eax, %k17816; AVX512DQ-FCP-NEXT: vinserti32x4 $2, %xmm8, %zmm7, %zmm23 {%k1}7817; AVX512DQ-FCP-NEXT: vmovdqa 256(%rdi), %ymm77818; AVX512DQ-FCP-NEXT: vmovdqa 288(%rdi), %ymm87819; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm11 = ymm8[0,1],ymm7[2,3],ymm8[4,5],ymm7[6,7]7820; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm11, %xmm147821; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm11 = xmm14[0,1,2],xmm11[3],xmm14[4],xmm11[5],xmm14[6,7]7822; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm11 = xmm11[u,u,u,u,u,u,10,11,8,9,6,7,4,5,u,u]7823; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} ymm2 = ymm2[0,1,6,7,8,9,14,15,8,9,14,15,4,5,2,3,16,17,22,23,24,25,30,31,24,25,30,31,20,21,18,19]7824; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm11 = xmm2[0,1,2],xmm11[3,4,5,6],xmm2[7]7825; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm11 = ymm11[0,1,2,3],ymm2[4,5,6,7]7826; AVX512DQ-FCP-NEXT: vpbroadcastq {{.*#+}} ymm2 = [16,17,22,23,24,25,30,31,16,17,22,23,24,25,30,31,16,17,22,23,24,25,30,31,16,17,22,23,24,25,30,31]7827; AVX512DQ-FCP-NEXT: vpshufb %ymm2, %ymm0, %ymm07828; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm11[0,1,2,3,4,5],ymm0[6,7]7829; AVX512DQ-FCP-NEXT: vmovdqa64 %ymm0, %ymm277830; AVX512DQ-FCP-NEXT: vmovdqa 240(%rdi), %xmm157831; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm5[0,1,2],ymm6[3],ymm5[4,5],ymm6[6],ymm5[7]7832; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm0, %xmm117833; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm0 = xmm11[0],xmm0[1],xmm11[2,3,4,5],xmm0[6],xmm11[7]7834; AVX512DQ-FCP-NEXT: vmovdqa {{.*#+}} ymm14 = [2,3,0,1,14,15,12,13,10,11,128,128,128,128,128,128,128,128,u,u,u,u,u,u,u,u,u,u,u,u,u,u]7835; AVX512DQ-FCP-NEXT: vpshufb %ymm14, %ymm0, %ymm07836; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} ymm10 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm10[0,1,6,7,8,9,18,19],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero7837; AVX512DQ-FCP-NEXT: vporq %ymm10, %ymm0, %ymm217838; AVX512DQ-FCP-NEXT: vmovdqa 160(%rdi), %ymm117839; AVX512DQ-FCP-NEXT: vmovdqa 128(%rdi), %ymm107840; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm10[0,1],ymm11[2],ymm10[3,4,5],ymm11[6],ymm10[7]7841; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm0, %xmm97842; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2,3],xmm9[4],xmm0[5],xmm9[6],xmm0[7]7843; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[0,1,0,1,14,15,12,13,10,11,8,9,u,u,u,u]7844; AVX512DQ-FCP-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm07845; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} ymm9 = ymm12[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,22,23,28,29]7846; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5,6],ymm9[7]7847; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm9 = xmm15[0],xmm13[1],xmm15[2,3,4,5,6,7]7848; AVX512DQ-FCP-NEXT: vpshufb %xmm14, %xmm9, %xmm97849; AVX512DQ-FCP-NEXT: vinserti64x4 $1, %ymm9, %zmm0, %zmm247850; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} ymm0 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm4[2,3,4,5,10,11,16,17],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero7851; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm4 = ymm6[0],ymm5[1],ymm6[2,3],ymm5[4],ymm6[5,6,7]7852; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm4, %xmm97853; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm4 = xmm4[0],xmm9[1],xmm4[2,3,4,5],xmm9[6],xmm4[7]7854; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} ymm4 = ymm4[4,5,2,3,0,1,14,15,12,13],zero,zero,zero,zero,zero,zero,zero,zero,ymm4[u,u,u,u,u,u,u,u,u,u,u,u,u,u]7855; AVX512DQ-FCP-NEXT: vpor %ymm0, %ymm4, %ymm97856; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm10[0,1,2],ymm11[3],ymm10[4,5],ymm11[6],ymm10[7]7857; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm0, %xmm47858; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm4 = xmm4[0],xmm0[1],xmm4[2,3,4,5],xmm0[6],xmm4[7]7859; AVX512DQ-FCP-NEXT: vmovdqa {{.*#+}} ymm0 = [0,1,2,3,0,1,14,15,12,13,10,11,8,9,128,128,128,128,128,128,128,128,128,128,u,u,u,u,u,u,u,u]7860; AVX512DQ-FCP-NEXT: vpshufb %xmm0, %xmm4, %xmm47861; AVX512DQ-FCP-NEXT: vinserti128 $1, %xmm4, %ymm0, %ymm47862; AVX512DQ-FCP-NEXT: vpbroadcastq {{.*#+}} ymm12 = [2,5,2,5,2,5,2,5]7863; AVX512DQ-FCP-NEXT: vpermd %ymm25, %ymm12, %ymm127864; AVX512DQ-FCP-NEXT: vpshufhw {{.*#+}} ymm12 = ymm12[0,1,2,3,4,5,4,7,8,9,10,11,12,13,12,15]7865; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm12 = ymm4[0,1,2,3,4,5,6],ymm12[7]7866; AVX512DQ-FCP-NEXT: vpunpcklwd {{.*#+}} xmm4 = xmm13[0],xmm15[0],xmm13[1],xmm15[1],xmm13[2],xmm15[2],xmm13[3],xmm15[3]7867; AVX512DQ-FCP-NEXT: vmovdqa {{.*#+}} xmm1 = [8,9,6,7,4,5,6,7,8,9,10,11,12,13,14,15]7868; AVX512DQ-FCP-NEXT: vpshufb %xmm1, %xmm4, %xmm147869; AVX512DQ-FCP-NEXT: vmovdqa64 %xmm1, %xmm317870; AVX512DQ-FCP-NEXT: vinserti64x4 $1, %ymm14, %zmm12, %zmm167871; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm12 = ymm8[0,1,2],ymm7[3],ymm8[4,5],ymm7[6],ymm8[7]7872; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm12, %xmm147873; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm12 = xmm14[0,1,2,3],xmm12[4],xmm14[5],xmm12[6],xmm14[7]7874; AVX512DQ-FCP-NEXT: vpermd %zmm26, %zmm20, %zmm147875; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm12 = xmm12[u,u,u,u,u,u,12,13,10,11,8,9,6,7,u,u]7876; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} ymm14 = ymm14[2,3,4,5,10,11,12,13,0,1,0,1,0,1,0,1,18,19,20,21,26,27,28,29,16,17,16,17,16,17,16,17]7877; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm12 = xmm14[0,1,2],xmm12[3,4,5,6],xmm14[7]7878; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm12 = ymm12[0,1,2,3],ymm14[4,5,6,7]7879; AVX512DQ-FCP-NEXT: vpermd %zmm3, %zmm17, %zmm147880; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} ymm14 = ymm14[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,18,19,20,21,26,27,28,29]7881; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm12 = ymm12[0,1,2,3,4,5],ymm14[6,7]7882; AVX512DQ-FCP-NEXT: vmovdqa64 %ymm12, %ymm287883; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm14 = ymm7[0,1],ymm8[2],ymm7[3,4,5],ymm8[6],ymm7[7]7884; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm14, %xmm127885; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm12 = xmm14[0,1,2,3],xmm12[4],xmm14[5],xmm12[6],xmm14[7]7886; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} ymm14 = [10,3,6,15,12,13,6,15]7887; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} ymm20 = [1,0,0,0,5,8,12,15]7888; AVX512DQ-FCP-NEXT: vpshufb %ymm0, %ymm12, %ymm07889; AVX512DQ-FCP-NEXT: vpermd %zmm26, %zmm20, %zmm127890; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} ymm12 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm12[2,3,16,17,22,23,24,25,30,31,u,u,u,u,u,u,u,u]7891; AVX512DQ-FCP-NEXT: vpor %ymm0, %ymm12, %ymm07892; AVX512DQ-FCP-NEXT: vpermd %zmm3, %zmm19, %zmm37893; AVX512DQ-FCP-NEXT: vpshufb %ymm2, %ymm3, %ymm27894; AVX512DQ-FCP-NEXT: vpermd %zmm30, %zmm14, %zmm37895; AVX512DQ-FCP-NEXT: vmovdqa64 {{.*#+}} zmm19 = [65535,65535,65535,65535,65535,65535,65535,65535,65535,0,0,0,0,0,0,0,0,0,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535]7896; AVX512DQ-FCP-NEXT: vpternlogq {{.*#+}} zmm16 = zmm16 ^ (zmm19 & (zmm16 ^ zmm9))7897; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm2[6,7]7898; AVX512DQ-FCP-NEXT: movw $-512, %ax # imm = 0xFE007899; AVX512DQ-FCP-NEXT: kmovw %eax, %k17900; AVX512DQ-FCP-NEXT: vinserti32x8 $1, %ymm0, %zmm0, %zmm16 {%k1}7901; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} ymm0 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm3[4,5,10,11,0,1,22,23],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero7902; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm6[0],ymm5[1],ymm6[2,3,4],ymm5[5],ymm6[6,7]7903; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm2, %xmm37904; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm2 = xmm3[0],xmm2[1],xmm3[2],xmm2[3],xmm3[4,5,6,7]7905; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} ymm2 = ymm2[6,7,4,5,2,3,0,1,14,15],zero,zero,zero,zero,zero,zero,zero,zero,ymm2[u,u,u,u,u,u,u,u,u,u,u,u,u,u]7906; AVX512DQ-FCP-NEXT: vpor %ymm0, %ymm2, %ymm27907; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm11[0],ymm10[1],ymm11[2,3],ymm10[4],ymm11[5,6,7]7908; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm0, %xmm37909; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0],xmm3[1],xmm0[2,3,4,5],xmm3[6],xmm0[7]7910; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[0,1,4,5,2,3,0,1,14,15,12,13,u,u,u,u]7911; AVX512DQ-FCP-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm37912; AVX512DQ-FCP-NEXT: vpermq {{.*#+}} ymm0 = ymm25[0,1,1,3]7913; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} ymm9 = ymm0[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,18,19,24,25]7914; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5,6],ymm9[7]7915; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm4 = xmm4[12,13,10,11,u,u,u,u,u,u,u,u,u,u,u,u]7916; AVX512DQ-FCP-NEXT: vinserti64x4 $1, %ymm4, %zmm3, %zmm207917; AVX512DQ-FCP-NEXT: vmovdqa 416(%rdi), %ymm37918; AVX512DQ-FCP-NEXT: vmovdqa 384(%rdi), %ymm47919; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm9 = ymm4[0,1],ymm3[2],ymm4[3,4,5],ymm3[6],ymm4[7]7920; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm9, %xmm127921; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm9 = xmm9[0,1,2,3],xmm12[4],xmm9[5],xmm12[6],xmm9[7]7922; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm12 = ymm7[0,1,2],ymm8[3],ymm7[4,5],ymm8[6],ymm7[7]7923; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm12, %xmm147924; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm12 = xmm14[0],xmm12[1],xmm14[2,3,4,5],xmm12[6],xmm14[7]7925; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} ymm14 = [2,11,2,11,12,5,8,9]7926; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm9 = xmm9[u,u,u,u,u,u,0,1,14,15,12,13,10,11,8,9]7927; AVX512DQ-FCP-NEXT: vinserti128 $1, %xmm9, %ymm0, %ymm97928; AVX512DQ-FCP-NEXT: vpermd %zmm26, %zmm14, %zmm147929; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} ymm14 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm14[0,1,22,23,28,29,18,19],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero7930; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} ymm9 = ymm14[0,1,2],ymm9[3,4,5,6,7],ymm14[8,9,10],ymm9[11,12,13,14,15]7931; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm12 = xmm12[0,1,2,3,2,3,0,1,14,15,12,13,10,11],zero,zero7932; AVX512DQ-FCP-NEXT: vpor %ymm14, %ymm12, %ymm127933; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm9 = ymm12[0,1,2,3],ymm9[4,5,6,7]7934; AVX512DQ-FCP-NEXT: vpternlogq {{.*#+}} zmm20 = zmm20 ^ (zmm19 & (zmm20 ^ zmm2))7935; AVX512DQ-FCP-NEXT: vinserti32x8 $1, %ymm9, %zmm0, %zmm20 {%k1}7936; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm9 = ymm6[0,1],ymm5[2],ymm6[3,4],ymm5[5],ymm6[6,7]7937; AVX512DQ-FCP-NEXT: vmovdqa {{.*#+}} xmm2 = [8,9,4,5,4,5,6,7,8,9,10,11,12,13,14,15]7938; AVX512DQ-FCP-NEXT: vpshufb %xmm2, %xmm9, %xmm127939; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm9, %xmm97940; AVX512DQ-FCP-NEXT: vpshuflw {{.*#+}} xmm9 = xmm9[3,1,2,3,4,5,6,7]7941; AVX512DQ-FCP-NEXT: vpunpcklwd {{.*#+}} xmm12 = xmm12[0],xmm9[0],xmm12[1],xmm9[1],xmm12[2],xmm9[2],xmm12[3],xmm9[3]7942; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} ymm9 = [0,3,7,10,14,0,0,0]7943; AVX512DQ-FCP-NEXT: vpermd %zmm30, %zmm9, %zmm147944; AVX512DQ-FCP-NEXT: vmovdqa {{.*#+}} ymm1 = [u,u,u,u,u,u,u,u,0,1,6,7,8,9,14,15,16,17,22,23,20,21,22,23,16,17,22,23,24,25,30,31]7945; AVX512DQ-FCP-NEXT: vpshufb %ymm1, %ymm14, %ymm147946; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm12 = ymm12[0,1],ymm14[2,3,4,5,6,7]7947; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm10 = ymm11[0],ymm10[1],ymm11[2,3,4],ymm10[5],ymm11[6,7]7948; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm10, %xmm117949; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm10 = xmm11[0],xmm10[1],xmm11[2],xmm10[3],xmm11[4,5,6,7]7950; AVX512DQ-FCP-NEXT: vmovdqa64 %ymm29, %ymm97951; AVX512DQ-FCP-NEXT: vpshufb %ymm9, %ymm0, %ymm07952; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm10 = xmm10[0,1,6,7,4,5,2,3,0,1,14,15,u,u,u,u]7953; AVX512DQ-FCP-NEXT: vinserti128 $1, %xmm10, %ymm0, %ymm107954; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm10[0,1,2,3,4,5,6],ymm0[7]7955; AVX512DQ-FCP-NEXT: vpbroadcastw 232(%rdi), %xmm107956; AVX512DQ-FCP-NEXT: vpsrlq $48, %xmm15, %xmm117957; AVX512DQ-FCP-NEXT: vpunpcklwd {{.*#+}} xmm10 = xmm10[0],xmm11[0],xmm10[1],xmm11[1],xmm10[2],xmm11[2],xmm10[3],xmm11[3]7958; AVX512DQ-FCP-NEXT: vinserti32x4 $2, %xmm10, %zmm0, %zmm107959; AVX512DQ-FCP-NEXT: vpternlogq {{.*#+}} zmm10 = zmm10 ^ (zmm19 & (zmm10 ^ zmm12))7960; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm4[0,1,2],ymm3[3],ymm4[4,5],ymm3[6],ymm4[7]7961; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm0, %xmm117962; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm0 = xmm11[0],xmm0[1],xmm11[2,3,4,5],xmm0[6],xmm11[7]7963; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm11 = ymm8[0],ymm7[1],ymm8[2,3],ymm7[4],ymm8[5,6,7]7964; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm11, %xmm127965; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm11 = xmm11[0],xmm12[1],xmm11[2,3,4,5],xmm12[6],xmm11[7]7966; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} ymm12 = [2,0,0,0,6,9,13,0]7967; AVX512DQ-FCP-NEXT: vpermd %zmm26, %zmm12, %zmm127968; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[u,u,u,u,u,u,2,3,0,1,14,15,12,13,10,11]7969; AVX512DQ-FCP-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm07970; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} ymm12 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm12[2,3,16,17,22,23,24,25],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero7971; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} ymm0 = ymm12[0,1,2],ymm0[3,4,5,6,7],ymm12[8,9,10],ymm0[11,12,13,14,15]7972; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm11 = xmm11[0,1,2,3,4,5,2,3,0,1,14,15,12,13],zero,zero7973; AVX512DQ-FCP-NEXT: vpor %ymm12, %ymm11, %ymm117974; AVX512DQ-FCP-NEXT: vpermd %zmm22, %zmm18, %zmm127975; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm11[0,1,2,3],ymm0[4,5,6,7]7976; AVX512DQ-FCP-NEXT: vinserti32x8 $1, %ymm0, %zmm0, %zmm10 {%k1}7977; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} ymm0 = [0,3,3,0,0,3,7,0]7978; AVX512DQ-FCP-NEXT: vpermd %ymm25, %ymm0, %ymm07979; AVX512DQ-FCP-NEXT: vmovdqa {{.*#+}} ymm11 = [0,1,0,1,6,7,8,9,14,15,0,1,6,7,8,9,16,17,16,17,22,23,24,25,30,31,16,17,22,23,24,25]7980; AVX512DQ-FCP-NEXT: vpshufb %ymm11, %ymm0, %ymm07981; AVX512DQ-FCP-NEXT: vpshufb %ymm11, %ymm12, %ymm117982; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} ymm0 = ymm11[0,1,2,3,4],ymm0[5,6,7],ymm11[8,9,10,11,12],ymm0[13,14,15]7983; AVX512DQ-FCP-NEXT: vpsrld $16, %xmm13, %xmm117984; AVX512DQ-FCP-NEXT: vpunpckhwd {{.*#+}} xmm11 = xmm11[4],xmm15[4],xmm11[5],xmm15[5],xmm11[6],xmm15[6],xmm11[7],xmm15[7]7985; AVX512DQ-FCP-NEXT: vinserti32x4 $2, %xmm11, %zmm0, %zmm127986; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm6[0,1],ymm5[2,3],ymm6[4,5],ymm5[6,7]7987; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm0, %xmm117988; AVX512DQ-FCP-NEXT: vpshufb %xmm2, %xmm11, %xmm27989; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} ymm11 = [0,4,7,11,14,0,0,0]7990; AVX512DQ-FCP-NEXT: vpermd %zmm30, %zmm11, %zmm117991; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[10,11,6,7,4,5,6,7,u,u,u,u,u,u,u,u]7992; AVX512DQ-FCP-NEXT: vpunpcklwd {{.*#+}} xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1],xmm0[2],xmm2[2],xmm0[3],xmm2[3]7993; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} ymm2 = ymm11[u,u,u,u,u,u,u,u,2,3,4,5,10,11,12,13,18,19,18,19,18,19,18,19,18,19,20,21,26,27,28,29]7994; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm11 = ymm0[0,1],ymm2[2,3,4,5,6,7]7995; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm3[0],ymm4[1],ymm3[2,3],ymm4[4],ymm3[5,6,7]7996; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm0, %xmm27997; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0],xmm2[1],xmm0[2,3,4,5],xmm2[6],xmm0[7]7998; AVX512DQ-FCP-NEXT: vbroadcasti128 {{.*#+}} ymm2 = [0,4,7,0,0,4,7,0]7999; AVX512DQ-FCP-NEXT: # ymm2 = mem[0,1,0,1]8000; AVX512DQ-FCP-NEXT: vpermd %ymm25, %ymm2, %ymm28001; AVX512DQ-FCP-NEXT: vmovdqa {{.*#+}} ymm14 = [4,5,2,3,4,5,10,11,12,13,2,3,4,5,10,11,20,21,18,19,20,21,26,27,28,29,18,19,20,21,26,27]8002; AVX512DQ-FCP-NEXT: vpshufb %ymm14, %ymm2, %ymm28003; AVX512DQ-FCP-NEXT: vpermd %zmm22, %zmm17, %zmm98004; AVX512DQ-FCP-NEXT: vpshufb %ymm14, %ymm9, %ymm98005; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} ymm2 = ymm9[0,1,2,3,4],ymm2[5,6,7],ymm9[8,9,10,11,12],ymm2[13,14,15]8006; AVX512DQ-FCP-NEXT: vpunpckhwd {{.*#+}} xmm9 = xmm13[4],xmm15[4],xmm13[5],xmm15[5],xmm13[6],xmm15[6],xmm13[7],xmm15[7]8007; AVX512DQ-FCP-NEXT: vmovdqa64 %xmm31, %xmm138008; AVX512DQ-FCP-NEXT: vpshufb %xmm13, %xmm9, %xmm98009; AVX512DQ-FCP-NEXT: vinserti64x4 $1, %ymm9, %zmm2, %zmm28010; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm9 = ymm8[0],ymm7[1],ymm8[2,3,4],ymm7[5],ymm8[6,7]8011; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm9, %xmm138012; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm9 = xmm13[0],xmm9[1],xmm13[2],xmm9[3],xmm13[4,5,6,7]8013; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} ymm13 = [3,0,0,0,6,10,13,0]8014; AVX512DQ-FCP-NEXT: vpermd %zmm26, %zmm13, %zmm138015; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[u,u,u,u,u,u,4,5,2,3,0,1,14,15,12,13]8016; AVX512DQ-FCP-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm08017; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} ymm13 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm13[0,1,18,19,20,21,26,27],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero8018; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} ymm0 = ymm13[0,1,2],ymm0[3,4,5,6,7],ymm13[8,9,10],ymm0[11,12,13,14,15]8019; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm9 = xmm9[0,1,2,3,6,7,4,5,2,3,0,1,14,15],zero,zero8020; AVX512DQ-FCP-NEXT: vpor %ymm13, %ymm9, %ymm98021; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm9[0,1,2,3],ymm0[4,5,6,7]8022; AVX512DQ-FCP-NEXT: vpternlogq {{.*#+}} zmm11 = zmm12 ^ (zmm19 & (zmm11 ^ zmm12))8023; AVX512DQ-FCP-NEXT: vinserti32x8 $1, %ymm0, %zmm0, %zmm11 {%k1}8024; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} ymm0 = [1,4,8,11,15,0,0,0]8025; AVX512DQ-FCP-NEXT: vinserti64x4 $1, %ymm27, %zmm0, %zmm98026; AVX512DQ-FCP-NEXT: vpermd %zmm30, %zmm0, %zmm08027; AVX512DQ-FCP-NEXT: vpshufb %ymm1, %ymm0, %ymm08028; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm6[0,1,2],ymm5[3],ymm6[4,5],ymm5[6],ymm6[7]8029; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm1, %xmm58030; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm5 = xmm5[u,u,u,u,u,u,u,u,10,11,6,7,4,5,6,7]8031; AVX512DQ-FCP-NEXT: vpshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,6,4,6,7]8032; AVX512DQ-FCP-NEXT: vpunpckhwd {{.*#+}} xmm1 = xmm1[4],xmm5[4],xmm1[5],xmm5[5],xmm1[6],xmm5[6],xmm1[7],xmm5[7]8033; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]8034; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm3[0],ymm4[1],ymm3[2,3,4],ymm4[5],ymm3[6,7]8035; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm1, %xmm38036; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} xmm1 = xmm3[0],xmm1[1],xmm3[2],xmm1[3],xmm3[4,5,6,7]8037; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm3 = ymm8[0,1],ymm7[2],ymm8[3,4],ymm7[5],ymm8[6,7]8038; AVX512DQ-FCP-NEXT: vextracti128 $1, %ymm3, %xmm48039; AVX512DQ-FCP-NEXT: vpshuflw {{.*#+}} xmm4 = xmm4[0,3,1,3,4,5,6,7]8040; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm3 = xmm3[8,9,8,9,4,5,6,7,u,u,u,u,u,u,u,u]8041; AVX512DQ-FCP-NEXT: vpunpcklwd {{.*#+}} xmm3 = xmm3[0],xmm4[0],xmm3[1],xmm4[1],xmm3[2],xmm4[2],xmm3[3],xmm4[3]8042; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} ymm4 = [0,1,10,3,14,7,10,3]8043; AVX512DQ-FCP-NEXT: vinserti64x4 $1, %ymm28, %zmm0, %zmm58044; AVX512DQ-FCP-NEXT: vpermd %zmm26, %zmm4, %zmm48045; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} ymm4 = ymm4[4,5,10,11,u,u,u,u,u,u,u,u,0,1,14,15,20,21,26,27,16,17,26,27,16,17,20,21,16,17,30,31]8046; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm3 = ymm4[0],ymm3[1,2],ymm4[3,4,5,6,7]8047; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm1 = xmm1[u,u,u,u,u,u,6,7,4,5,2,3,0,1,14,15]8048; AVX512DQ-FCP-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm18049; AVX512DQ-FCP-NEXT: vpblendw {{.*#+}} ymm1 = ymm3[0,1,2],ymm1[3,4,5,6,7],ymm3[8,9,10],ymm1[11,12,13,14,15]8050; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm3[0,1,2,3],ymm1[4,5,6,7]8051; AVX512DQ-FCP-NEXT: vpternlogq {{.*#+}} zmm0 = zmm2 ^ (zmm19 & (zmm0 ^ zmm2))8052; AVX512DQ-FCP-NEXT: vinserti32x8 $1, %ymm1, %zmm0, %zmm0 {%k1}8053; AVX512DQ-FCP-NEXT: vmovdqa64 {{.*#+}} zmm1 = [65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,0,0,0,0,0,0,0,0,0,0,0,0,0]8054; AVX512DQ-FCP-NEXT: vpternlogq {{.*#+}} zmm9 = zmm9 ^ (zmm1 & (zmm9 ^ zmm23))8055; AVX512DQ-FCP-NEXT: vpternlogq {{.*#+}} zmm24 = zmm21 ^ (mem & (zmm24 ^ zmm21))8056; AVX512DQ-FCP-NEXT: vpternlogq {{.*#+}} zmm5 = zmm5 ^ (zmm1 & (zmm5 ^ zmm24))8057; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm9, (%rsi)8058; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm5, (%rdx)8059; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm16, (%rcx)8060; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm20, (%r8)8061; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm10, (%r9)8062; AVX512DQ-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax8063; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm11, (%rax)8064; AVX512DQ-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax8065; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm0, (%rax)8066; AVX512DQ-FCP-NEXT: vzeroupper8067; AVX512DQ-FCP-NEXT: retq8068;8069; AVX512BW-LABEL: load_i16_stride7_vf32:8070; AVX512BW: # %bb.0:8071; AVX512BW-NEXT: movq {{[0-9]+}}(%rsp), %rax8072; AVX512BW-NEXT: movq {{[0-9]+}}(%rsp), %r108073; AVX512BW-NEXT: vmovdqa64 384(%rdi), %zmm38074; AVX512BW-NEXT: vmovdqa64 256(%rdi), %zmm68075; AVX512BW-NEXT: vmovdqa64 320(%rdi), %zmm78076; AVX512BW-NEXT: vmovdqa64 (%rdi), %zmm08077; AVX512BW-NEXT: vmovdqa64 64(%rdi), %zmm18078; AVX512BW-NEXT: vmovdqa64 128(%rdi), %zmm48079; AVX512BW-NEXT: vmovdqa64 192(%rdi), %zmm58080; AVX512BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm8 = [16,23,30,0,0,0,0,0,0,0,38,45,52,59,2,9,16,23,30,0,0,0,0,0,0,0,38,45,52,59,2,9]8081; AVX512BW-NEXT: # zmm8 = mem[0,1,2,3,0,1,2,3]8082; AVX512BW-NEXT: vpermi2w %zmm4, %zmm5, %zmm88083; AVX512BW-NEXT: vpmovsxbw {{.*#+}} ymm2 = [0,7,14,21,28,35,42,49,56,63,0,0,0,0,0,0]8084; AVX512BW-NEXT: vpermi2w %zmm1, %zmm0, %zmm28085; AVX512BW-NEXT: movw $992, %di # imm = 0x3E08086; AVX512BW-NEXT: kmovd %edi, %k18087; AVX512BW-NEXT: vmovdqa32 %zmm8, %zmm2 {%k1}8088; AVX512BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm8 = [0,0,0,37,44,51,58,1,8,15,22,29,0,0,0,0,0,0,0,37,44,51,58,1,8,15,22,29,0,0,0,0]8089; AVX512BW-NEXT: # zmm8 = mem[0,1,2,3,0,1,2,3]8090; AVX512BW-NEXT: vpermi2w %zmm6, %zmm7, %zmm88091; AVX512BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm9 = [0,0,0,19,20,21,22,23,24,25,26,27,36,43,50,57,0,0,0,19,20,21,22,23,24,25,26,27,36,43,50,57]8092; AVX512BW-NEXT: # zmm9 = mem[0,1,2,3,0,1,2,3]8093; AVX512BW-NEXT: vpermi2w %zmm3, %zmm8, %zmm98094; AVX512BW-NEXT: movl $-524288, %edi # imm = 0xFFF800008095; AVX512BW-NEXT: kmovd %edi, %k18096; AVX512BW-NEXT: vmovdqu16 %zmm9, %zmm2 {%k1}8097; AVX512BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm8 = [0,0,0,38,45,52,59,2,9,16,23,30,0,0,0,0,0,0,0,38,45,52,59,2,9,16,23,30,0,0,0,0]8098; AVX512BW-NEXT: # zmm8 = mem[0,1,2,3,0,1,2,3]8099; AVX512BW-NEXT: vpermi2w %zmm6, %zmm7, %zmm88100; AVX512BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm9 = [0,0,0,19,20,21,22,23,24,25,26,27,37,44,51,58,0,0,0,19,20,21,22,23,24,25,26,27,37,44,51,58]8101; AVX512BW-NEXT: # zmm9 = mem[0,1,2,3,0,1,2,3]8102; AVX512BW-NEXT: vpermi2w %zmm3, %zmm8, %zmm98103; AVX512BW-NEXT: vpmovsxbw {{.*#+}} ymm10 = [1,8,15,22,29,36,43,50,57,0,0,0,0,0,0,0]8104; AVX512BW-NEXT: vpermi2w %zmm1, %zmm0, %zmm108105; AVX512BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm8 = [49,56,63,0,0,0,0,0,0,0,7,14,21,28,35,42,49,56,63,0,0,0,0,0,0,0,7,14,21,28,35,42]8106; AVX512BW-NEXT: # zmm8 = mem[0,1,2,3,0,1,2,3]8107; AVX512BW-NEXT: vpermi2w %zmm5, %zmm4, %zmm88108; AVX512BW-NEXT: movl $511, %edi # imm = 0x1FF8109; AVX512BW-NEXT: kmovd %edi, %k28110; AVX512BW-NEXT: vmovdqu16 %zmm10, %zmm8 {%k2}8111; AVX512BW-NEXT: vmovdqu16 %zmm9, %zmm8 {%k1}8112; AVX512BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm9 = [0,0,0,7,14,21,28,35,42,49,56,63,0,0,0,0,0,0,0,7,14,21,28,35,42,49,56,63,0,0,0,0]8113; AVX512BW-NEXT: # zmm9 = mem[0,1,2,3,0,1,2,3]8114; AVX512BW-NEXT: vpermi2w %zmm7, %zmm6, %zmm98115; AVX512BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm10 = [0,0,18,19,20,21,22,23,24,25,26,27,38,45,52,59,0,0,18,19,20,21,22,23,24,25,26,27,38,45,52,59]8116; AVX512BW-NEXT: # zmm10 = mem[0,1,2,3,0,1,2,3]8117; AVX512BW-NEXT: vpermi2w %zmm3, %zmm9, %zmm108118; AVX512BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm11 = [50,57,0,0,0,0,0,0,0,1,8,15,22,29,36,43,50,57,0,0,0,0,0,0,0,1,8,15,22,29,36,43]8119; AVX512BW-NEXT: # zmm11 = mem[0,1,2,3,0,1,2,3]8120; AVX512BW-NEXT: vpermi2w %zmm5, %zmm4, %zmm118121; AVX512BW-NEXT: vpmovsxbw {{.*#+}} ymm9 = [2,9,16,23,30,37,44,51,58,0,0,0,0,0,0,0]8122; AVX512BW-NEXT: vpermi2w %zmm1, %zmm0, %zmm98123; AVX512BW-NEXT: movl $261632, %edi # imm = 0x3FE008124; AVX512BW-NEXT: kmovd %edi, %k18125; AVX512BW-NEXT: vmovdqu16 %zmm11, %zmm9 {%k1}8126; AVX512BW-NEXT: movw $-512, %di # imm = 0xFE008127; AVX512BW-NEXT: kmovd %edi, %k28128; AVX512BW-NEXT: vmovdqa32 %zmm10, %zmm9 {%k2}8129; AVX512BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm10 = [0,0,1,8,15,22,29,36,43,50,57,0,0,0,0,0,0,0,1,8,15,22,29,36,43,50,57,0,0,0,0,0]8130; AVX512BW-NEXT: # zmm10 = mem[0,1,2,3,0,1,2,3]8131; AVX512BW-NEXT: vpermi2w %zmm7, %zmm6, %zmm108132; AVX512BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm11 = [0,0,18,19,20,21,22,23,24,25,26,32,39,46,53,60,0,0,18,19,20,21,22,23,24,25,26,32,39,46,53,60]8133; AVX512BW-NEXT: # zmm11 = mem[0,1,2,3,0,1,2,3]8134; AVX512BW-NEXT: vpermi2w %zmm3, %zmm10, %zmm118135; AVX512BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm10 = [51,58,0,0,0,0,0,0,0,2,9,16,23,30,37,44,51,58,0,0,0,0,0,0,0,2,9,16,23,30,37,44]8136; AVX512BW-NEXT: # zmm10 = mem[0,1,2,3,0,1,2,3]8137; AVX512BW-NEXT: vpermi2w %zmm5, %zmm4, %zmm108138; AVX512BW-NEXT: vpmovsxbw {{.*#+}} ymm12 = [3,10,17,24,31,38,45,52,59,0,0,0,0,0,0,0]8139; AVX512BW-NEXT: vpermi2w %zmm1, %zmm0, %zmm128140; AVX512BW-NEXT: vmovdqu16 %zmm10, %zmm12 {%k1}8141; AVX512BW-NEXT: vmovdqa32 %zmm11, %zmm12 {%k2}8142; AVX512BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm10 = [0,0,2,9,16,23,30,37,44,51,58,0,0,0,0,0,0,0,2,9,16,23,30,37,44,51,58,0,0,0,0,0]8143; AVX512BW-NEXT: # zmm10 = mem[0,1,2,3,0,1,2,3]8144; AVX512BW-NEXT: vpermi2w %zmm7, %zmm6, %zmm108145; AVX512BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm11 = [0,0,18,19,20,21,22,23,24,25,26,33,40,47,54,61,0,0,18,19,20,21,22,23,24,25,26,33,40,47,54,61]8146; AVX512BW-NEXT: # zmm11 = mem[0,1,2,3,0,1,2,3]8147; AVX512BW-NEXT: vpermi2w %zmm3, %zmm10, %zmm118148; AVX512BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm10 = [52,59,0,0,0,0,0,0,0,3,10,17,24,31,38,45,52,59,0,0,0,0,0,0,0,3,10,17,24,31,38,45]8149; AVX512BW-NEXT: # zmm10 = mem[0,1,2,3,0,1,2,3]8150; AVX512BW-NEXT: vpermi2w %zmm5, %zmm4, %zmm108151; AVX512BW-NEXT: vpmovsxbw {{.*#+}} ymm13 = [36,43,50,57,0,7,14,21,28,0,0,0,0,0,0,0]8152; AVX512BW-NEXT: vpermi2w %zmm0, %zmm1, %zmm138153; AVX512BW-NEXT: vmovdqu16 %zmm10, %zmm13 {%k1}8154; AVX512BW-NEXT: vmovdqa32 %zmm11, %zmm13 {%k2}8155; AVX512BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm10 = [0,0,3,10,17,24,31,38,45,52,59,0,0,0,0,0,0,0,3,10,17,24,31,38,45,52,59,0,0,0,0,0]8156; AVX512BW-NEXT: # zmm10 = mem[0,1,2,3,0,1,2,3]8157; AVX512BW-NEXT: vpermi2w %zmm7, %zmm6, %zmm108158; AVX512BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm11 = [0,0,18,19,20,21,22,23,24,25,26,34,41,48,55,62,0,0,18,19,20,21,22,23,24,25,26,34,41,48,55,62]8159; AVX512BW-NEXT: # zmm11 = mem[0,1,2,3,0,1,2,3]8160; AVX512BW-NEXT: vpermi2w %zmm3, %zmm10, %zmm118161; AVX512BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm10 = [21,28,0,0,0,0,0,0,0,36,43,50,57,0,7,14,21,28,0,0,0,0,0,0,0,36,43,50,57,0,7,14]8162; AVX512BW-NEXT: # zmm10 = mem[0,1,2,3,0,1,2,3]8163; AVX512BW-NEXT: vpermi2w %zmm4, %zmm5, %zmm108164; AVX512BW-NEXT: vpmovsxbw {{.*#+}} ymm14 = [37,44,51,58,1,8,15,22,29,0,0,0,0,0,0,0]8165; AVX512BW-NEXT: vpermi2w %zmm0, %zmm1, %zmm148166; AVX512BW-NEXT: vmovdqu16 %zmm10, %zmm14 {%k1}8167; AVX512BW-NEXT: vmovdqa32 %zmm11, %zmm14 {%k2}8168; AVX512BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm10 = [0,0,36,43,50,57,0,7,14,21,28,0,0,0,0,0,0,0,36,43,50,57,0,7,14,21,28,0,0,0,0,0]8169; AVX512BW-NEXT: # zmm10 = mem[0,1,2,3,0,1,2,3]8170; AVX512BW-NEXT: vpermi2w %zmm6, %zmm7, %zmm108171; AVX512BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm6 = [0,0,18,19,20,21,22,23,24,25,26,35,42,49,56,63,0,0,18,19,20,21,22,23,24,25,26,35,42,49,56,63]8172; AVX512BW-NEXT: # zmm6 = mem[0,1,2,3,0,1,2,3]8173; AVX512BW-NEXT: vpermi2w %zmm3, %zmm10, %zmm68174; AVX512BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm3 = [22,29,0,0,0,0,0,0,0,37,44,51,58,1,8,15,22,29,0,0,0,0,0,0,0,37,44,51,58,1,8,15]8175; AVX512BW-NEXT: # zmm3 = mem[0,1,2,3,0,1,2,3]8176; AVX512BW-NEXT: vpermi2w %zmm4, %zmm5, %zmm38177; AVX512BW-NEXT: vpmovsxbw {{.*#+}} ymm4 = [38,45,52,59,2,9,16,23,30,0,0,0,0,0,0,0]8178; AVX512BW-NEXT: vpermi2w %zmm0, %zmm1, %zmm48179; AVX512BW-NEXT: vmovdqu16 %zmm3, %zmm4 {%k1}8180; AVX512BW-NEXT: vmovdqa32 %zmm6, %zmm4 {%k2}8181; AVX512BW-NEXT: vmovdqa64 %zmm2, (%rsi)8182; AVX512BW-NEXT: vmovdqa64 %zmm8, (%rdx)8183; AVX512BW-NEXT: vmovdqa64 %zmm9, (%rcx)8184; AVX512BW-NEXT: vmovdqa64 %zmm12, (%r8)8185; AVX512BW-NEXT: vmovdqa64 %zmm13, (%r9)8186; AVX512BW-NEXT: vmovdqa64 %zmm14, (%r10)8187; AVX512BW-NEXT: vmovdqa64 %zmm4, (%rax)8188; AVX512BW-NEXT: vzeroupper8189; AVX512BW-NEXT: retq8190;8191; AVX512BW-FCP-LABEL: load_i16_stride7_vf32:8192; AVX512BW-FCP: # %bb.0:8193; AVX512BW-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax8194; AVX512BW-FCP-NEXT: movq {{[0-9]+}}(%rsp), %r108195; AVX512BW-FCP-NEXT: vmovdqa64 384(%rdi), %zmm38196; AVX512BW-FCP-NEXT: vmovdqa64 256(%rdi), %zmm68197; AVX512BW-FCP-NEXT: vmovdqa64 320(%rdi), %zmm78198; AVX512BW-FCP-NEXT: vmovdqa64 (%rdi), %zmm08199; AVX512BW-FCP-NEXT: vmovdqa64 64(%rdi), %zmm18200; AVX512BW-FCP-NEXT: vmovdqa64 128(%rdi), %zmm48201; AVX512BW-FCP-NEXT: vmovdqa64 192(%rdi), %zmm58202; AVX512BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm8 = [16,23,30,0,0,0,0,0,0,0,38,45,52,59,2,9,16,23,30,0,0,0,0,0,0,0,38,45,52,59,2,9]8203; AVX512BW-FCP-NEXT: # zmm8 = mem[0,1,2,3,0,1,2,3]8204; AVX512BW-FCP-NEXT: vpermi2w %zmm4, %zmm5, %zmm88205; AVX512BW-FCP-NEXT: vpmovsxbw {{.*#+}} ymm2 = [0,7,14,21,28,35,42,49,56,63,0,0,0,0,0,0]8206; AVX512BW-FCP-NEXT: vpermi2w %zmm1, %zmm0, %zmm28207; AVX512BW-FCP-NEXT: movw $992, %di # imm = 0x3E08208; AVX512BW-FCP-NEXT: kmovd %edi, %k18209; AVX512BW-FCP-NEXT: vmovdqa32 %zmm8, %zmm2 {%k1}8210; AVX512BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm8 = [0,0,0,37,44,51,58,1,8,15,22,29,0,0,0,0,0,0,0,37,44,51,58,1,8,15,22,29,0,0,0,0]8211; AVX512BW-FCP-NEXT: # zmm8 = mem[0,1,2,3,0,1,2,3]8212; AVX512BW-FCP-NEXT: vpermi2w %zmm6, %zmm7, %zmm88213; AVX512BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm9 = [0,0,0,19,20,21,22,23,24,25,26,27,36,43,50,57,0,0,0,19,20,21,22,23,24,25,26,27,36,43,50,57]8214; AVX512BW-FCP-NEXT: # zmm9 = mem[0,1,2,3,0,1,2,3]8215; AVX512BW-FCP-NEXT: vpermi2w %zmm3, %zmm8, %zmm98216; AVX512BW-FCP-NEXT: movl $-524288, %edi # imm = 0xFFF800008217; AVX512BW-FCP-NEXT: kmovd %edi, %k18218; AVX512BW-FCP-NEXT: vmovdqu16 %zmm9, %zmm2 {%k1}8219; AVX512BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm8 = [0,0,0,38,45,52,59,2,9,16,23,30,0,0,0,0,0,0,0,38,45,52,59,2,9,16,23,30,0,0,0,0]8220; AVX512BW-FCP-NEXT: # zmm8 = mem[0,1,2,3,0,1,2,3]8221; AVX512BW-FCP-NEXT: vpermi2w %zmm6, %zmm7, %zmm88222; AVX512BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm9 = [0,0,0,19,20,21,22,23,24,25,26,27,37,44,51,58,0,0,0,19,20,21,22,23,24,25,26,27,37,44,51,58]8223; AVX512BW-FCP-NEXT: # zmm9 = mem[0,1,2,3,0,1,2,3]8224; AVX512BW-FCP-NEXT: vpermi2w %zmm3, %zmm8, %zmm98225; AVX512BW-FCP-NEXT: vpmovsxbw {{.*#+}} ymm10 = [1,8,15,22,29,36,43,50,57,0,0,0,0,0,0,0]8226; AVX512BW-FCP-NEXT: vpermi2w %zmm1, %zmm0, %zmm108227; AVX512BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm8 = [49,56,63,0,0,0,0,0,0,0,7,14,21,28,35,42,49,56,63,0,0,0,0,0,0,0,7,14,21,28,35,42]8228; AVX512BW-FCP-NEXT: # zmm8 = mem[0,1,2,3,0,1,2,3]8229; AVX512BW-FCP-NEXT: vpermi2w %zmm5, %zmm4, %zmm88230; AVX512BW-FCP-NEXT: movl $511, %edi # imm = 0x1FF8231; AVX512BW-FCP-NEXT: kmovd %edi, %k28232; AVX512BW-FCP-NEXT: vmovdqu16 %zmm10, %zmm8 {%k2}8233; AVX512BW-FCP-NEXT: vmovdqu16 %zmm9, %zmm8 {%k1}8234; AVX512BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm9 = [0,0,0,7,14,21,28,35,42,49,56,63,0,0,0,0,0,0,0,7,14,21,28,35,42,49,56,63,0,0,0,0]8235; AVX512BW-FCP-NEXT: # zmm9 = mem[0,1,2,3,0,1,2,3]8236; AVX512BW-FCP-NEXT: vpermi2w %zmm7, %zmm6, %zmm98237; AVX512BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm10 = [0,0,18,19,20,21,22,23,24,25,26,27,38,45,52,59,0,0,18,19,20,21,22,23,24,25,26,27,38,45,52,59]8238; AVX512BW-FCP-NEXT: # zmm10 = mem[0,1,2,3,0,1,2,3]8239; AVX512BW-FCP-NEXT: vpermi2w %zmm3, %zmm9, %zmm108240; AVX512BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm11 = [50,57,0,0,0,0,0,0,0,1,8,15,22,29,36,43,50,57,0,0,0,0,0,0,0,1,8,15,22,29,36,43]8241; AVX512BW-FCP-NEXT: # zmm11 = mem[0,1,2,3,0,1,2,3]8242; AVX512BW-FCP-NEXT: vpermi2w %zmm5, %zmm4, %zmm118243; AVX512BW-FCP-NEXT: vpmovsxbw {{.*#+}} ymm9 = [2,9,16,23,30,37,44,51,58,0,0,0,0,0,0,0]8244; AVX512BW-FCP-NEXT: vpermi2w %zmm1, %zmm0, %zmm98245; AVX512BW-FCP-NEXT: movl $261632, %edi # imm = 0x3FE008246; AVX512BW-FCP-NEXT: kmovd %edi, %k18247; AVX512BW-FCP-NEXT: vmovdqu16 %zmm11, %zmm9 {%k1}8248; AVX512BW-FCP-NEXT: movw $-512, %di # imm = 0xFE008249; AVX512BW-FCP-NEXT: kmovd %edi, %k28250; AVX512BW-FCP-NEXT: vmovdqa32 %zmm10, %zmm9 {%k2}8251; AVX512BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm10 = [0,0,1,8,15,22,29,36,43,50,57,0,0,0,0,0,0,0,1,8,15,22,29,36,43,50,57,0,0,0,0,0]8252; AVX512BW-FCP-NEXT: # zmm10 = mem[0,1,2,3,0,1,2,3]8253; AVX512BW-FCP-NEXT: vpermi2w %zmm7, %zmm6, %zmm108254; AVX512BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm11 = [0,0,18,19,20,21,22,23,24,25,26,32,39,46,53,60,0,0,18,19,20,21,22,23,24,25,26,32,39,46,53,60]8255; AVX512BW-FCP-NEXT: # zmm11 = mem[0,1,2,3,0,1,2,3]8256; AVX512BW-FCP-NEXT: vpermi2w %zmm3, %zmm10, %zmm118257; AVX512BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm10 = [51,58,0,0,0,0,0,0,0,2,9,16,23,30,37,44,51,58,0,0,0,0,0,0,0,2,9,16,23,30,37,44]8258; AVX512BW-FCP-NEXT: # zmm10 = mem[0,1,2,3,0,1,2,3]8259; AVX512BW-FCP-NEXT: vpermi2w %zmm5, %zmm4, %zmm108260; AVX512BW-FCP-NEXT: vpmovsxbw {{.*#+}} ymm12 = [3,10,17,24,31,38,45,52,59,0,0,0,0,0,0,0]8261; AVX512BW-FCP-NEXT: vpermi2w %zmm1, %zmm0, %zmm128262; AVX512BW-FCP-NEXT: vmovdqu16 %zmm10, %zmm12 {%k1}8263; AVX512BW-FCP-NEXT: vmovdqa32 %zmm11, %zmm12 {%k2}8264; AVX512BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm10 = [0,0,2,9,16,23,30,37,44,51,58,0,0,0,0,0,0,0,2,9,16,23,30,37,44,51,58,0,0,0,0,0]8265; AVX512BW-FCP-NEXT: # zmm10 = mem[0,1,2,3,0,1,2,3]8266; AVX512BW-FCP-NEXT: vpermi2w %zmm7, %zmm6, %zmm108267; AVX512BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm11 = [0,0,18,19,20,21,22,23,24,25,26,33,40,47,54,61,0,0,18,19,20,21,22,23,24,25,26,33,40,47,54,61]8268; AVX512BW-FCP-NEXT: # zmm11 = mem[0,1,2,3,0,1,2,3]8269; AVX512BW-FCP-NEXT: vpermi2w %zmm3, %zmm10, %zmm118270; AVX512BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm10 = [52,59,0,0,0,0,0,0,0,3,10,17,24,31,38,45,52,59,0,0,0,0,0,0,0,3,10,17,24,31,38,45]8271; AVX512BW-FCP-NEXT: # zmm10 = mem[0,1,2,3,0,1,2,3]8272; AVX512BW-FCP-NEXT: vpermi2w %zmm5, %zmm4, %zmm108273; AVX512BW-FCP-NEXT: vpmovsxbw {{.*#+}} ymm13 = [36,43,50,57,0,7,14,21,28,0,0,0,0,0,0,0]8274; AVX512BW-FCP-NEXT: vpermi2w %zmm0, %zmm1, %zmm138275; AVX512BW-FCP-NEXT: vmovdqu16 %zmm10, %zmm13 {%k1}8276; AVX512BW-FCP-NEXT: vmovdqa32 %zmm11, %zmm13 {%k2}8277; AVX512BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm10 = [0,0,3,10,17,24,31,38,45,52,59,0,0,0,0,0,0,0,3,10,17,24,31,38,45,52,59,0,0,0,0,0]8278; AVX512BW-FCP-NEXT: # zmm10 = mem[0,1,2,3,0,1,2,3]8279; AVX512BW-FCP-NEXT: vpermi2w %zmm7, %zmm6, %zmm108280; AVX512BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm11 = [0,0,18,19,20,21,22,23,24,25,26,34,41,48,55,62,0,0,18,19,20,21,22,23,24,25,26,34,41,48,55,62]8281; AVX512BW-FCP-NEXT: # zmm11 = mem[0,1,2,3,0,1,2,3]8282; AVX512BW-FCP-NEXT: vpermi2w %zmm3, %zmm10, %zmm118283; AVX512BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm10 = [21,28,0,0,0,0,0,0,0,36,43,50,57,0,7,14,21,28,0,0,0,0,0,0,0,36,43,50,57,0,7,14]8284; AVX512BW-FCP-NEXT: # zmm10 = mem[0,1,2,3,0,1,2,3]8285; AVX512BW-FCP-NEXT: vpermi2w %zmm4, %zmm5, %zmm108286; AVX512BW-FCP-NEXT: vpmovsxbw {{.*#+}} ymm14 = [37,44,51,58,1,8,15,22,29,0,0,0,0,0,0,0]8287; AVX512BW-FCP-NEXT: vpermi2w %zmm0, %zmm1, %zmm148288; AVX512BW-FCP-NEXT: vmovdqu16 %zmm10, %zmm14 {%k1}8289; AVX512BW-FCP-NEXT: vmovdqa32 %zmm11, %zmm14 {%k2}8290; AVX512BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm10 = [0,0,36,43,50,57,0,7,14,21,28,0,0,0,0,0,0,0,36,43,50,57,0,7,14,21,28,0,0,0,0,0]8291; AVX512BW-FCP-NEXT: # zmm10 = mem[0,1,2,3,0,1,2,3]8292; AVX512BW-FCP-NEXT: vpermi2w %zmm6, %zmm7, %zmm108293; AVX512BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm6 = [0,0,18,19,20,21,22,23,24,25,26,35,42,49,56,63,0,0,18,19,20,21,22,23,24,25,26,35,42,49,56,63]8294; AVX512BW-FCP-NEXT: # zmm6 = mem[0,1,2,3,0,1,2,3]8295; AVX512BW-FCP-NEXT: vpermi2w %zmm3, %zmm10, %zmm68296; AVX512BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm3 = [22,29,0,0,0,0,0,0,0,37,44,51,58,1,8,15,22,29,0,0,0,0,0,0,0,37,44,51,58,1,8,15]8297; AVX512BW-FCP-NEXT: # zmm3 = mem[0,1,2,3,0,1,2,3]8298; AVX512BW-FCP-NEXT: vpermi2w %zmm4, %zmm5, %zmm38299; AVX512BW-FCP-NEXT: vpmovsxbw {{.*#+}} ymm4 = [38,45,52,59,2,9,16,23,30,0,0,0,0,0,0,0]8300; AVX512BW-FCP-NEXT: vpermi2w %zmm0, %zmm1, %zmm48301; AVX512BW-FCP-NEXT: vmovdqu16 %zmm3, %zmm4 {%k1}8302; AVX512BW-FCP-NEXT: vmovdqa32 %zmm6, %zmm4 {%k2}8303; AVX512BW-FCP-NEXT: vmovdqa64 %zmm2, (%rsi)8304; AVX512BW-FCP-NEXT: vmovdqa64 %zmm8, (%rdx)8305; AVX512BW-FCP-NEXT: vmovdqa64 %zmm9, (%rcx)8306; AVX512BW-FCP-NEXT: vmovdqa64 %zmm12, (%r8)8307; AVX512BW-FCP-NEXT: vmovdqa64 %zmm13, (%r9)8308; AVX512BW-FCP-NEXT: vmovdqa64 %zmm14, (%r10)8309; AVX512BW-FCP-NEXT: vmovdqa64 %zmm4, (%rax)8310; AVX512BW-FCP-NEXT: vzeroupper8311; AVX512BW-FCP-NEXT: retq8312;8313; AVX512DQ-BW-LABEL: load_i16_stride7_vf32:8314; AVX512DQ-BW: # %bb.0:8315; AVX512DQ-BW-NEXT: movq {{[0-9]+}}(%rsp), %rax8316; AVX512DQ-BW-NEXT: movq {{[0-9]+}}(%rsp), %r108317; AVX512DQ-BW-NEXT: vmovdqa64 384(%rdi), %zmm38318; AVX512DQ-BW-NEXT: vmovdqa64 256(%rdi), %zmm68319; AVX512DQ-BW-NEXT: vmovdqa64 320(%rdi), %zmm78320; AVX512DQ-BW-NEXT: vmovdqa64 (%rdi), %zmm08321; AVX512DQ-BW-NEXT: vmovdqa64 64(%rdi), %zmm18322; AVX512DQ-BW-NEXT: vmovdqa64 128(%rdi), %zmm48323; AVX512DQ-BW-NEXT: vmovdqa64 192(%rdi), %zmm58324; AVX512DQ-BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm8 = [16,23,30,0,0,0,0,0,0,0,38,45,52,59,2,9,16,23,30,0,0,0,0,0,0,0,38,45,52,59,2,9]8325; AVX512DQ-BW-NEXT: # zmm8 = mem[0,1,2,3,0,1,2,3]8326; AVX512DQ-BW-NEXT: vpermi2w %zmm4, %zmm5, %zmm88327; AVX512DQ-BW-NEXT: vpmovsxbw {{.*#+}} ymm2 = [0,7,14,21,28,35,42,49,56,63,0,0,0,0,0,0]8328; AVX512DQ-BW-NEXT: vpermi2w %zmm1, %zmm0, %zmm28329; AVX512DQ-BW-NEXT: movw $992, %di # imm = 0x3E08330; AVX512DQ-BW-NEXT: kmovd %edi, %k18331; AVX512DQ-BW-NEXT: vmovdqa32 %zmm8, %zmm2 {%k1}8332; AVX512DQ-BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm8 = [0,0,0,37,44,51,58,1,8,15,22,29,0,0,0,0,0,0,0,37,44,51,58,1,8,15,22,29,0,0,0,0]8333; AVX512DQ-BW-NEXT: # zmm8 = mem[0,1,2,3,0,1,2,3]8334; AVX512DQ-BW-NEXT: vpermi2w %zmm6, %zmm7, %zmm88335; AVX512DQ-BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm9 = [0,0,0,19,20,21,22,23,24,25,26,27,36,43,50,57,0,0,0,19,20,21,22,23,24,25,26,27,36,43,50,57]8336; AVX512DQ-BW-NEXT: # zmm9 = mem[0,1,2,3,0,1,2,3]8337; AVX512DQ-BW-NEXT: vpermi2w %zmm3, %zmm8, %zmm98338; AVX512DQ-BW-NEXT: movl $-524288, %edi # imm = 0xFFF800008339; AVX512DQ-BW-NEXT: kmovd %edi, %k18340; AVX512DQ-BW-NEXT: vmovdqu16 %zmm9, %zmm2 {%k1}8341; AVX512DQ-BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm8 = [0,0,0,38,45,52,59,2,9,16,23,30,0,0,0,0,0,0,0,38,45,52,59,2,9,16,23,30,0,0,0,0]8342; AVX512DQ-BW-NEXT: # zmm8 = mem[0,1,2,3,0,1,2,3]8343; AVX512DQ-BW-NEXT: vpermi2w %zmm6, %zmm7, %zmm88344; AVX512DQ-BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm9 = [0,0,0,19,20,21,22,23,24,25,26,27,37,44,51,58,0,0,0,19,20,21,22,23,24,25,26,27,37,44,51,58]8345; AVX512DQ-BW-NEXT: # zmm9 = mem[0,1,2,3,0,1,2,3]8346; AVX512DQ-BW-NEXT: vpermi2w %zmm3, %zmm8, %zmm98347; AVX512DQ-BW-NEXT: vpmovsxbw {{.*#+}} ymm10 = [1,8,15,22,29,36,43,50,57,0,0,0,0,0,0,0]8348; AVX512DQ-BW-NEXT: vpermi2w %zmm1, %zmm0, %zmm108349; AVX512DQ-BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm8 = [49,56,63,0,0,0,0,0,0,0,7,14,21,28,35,42,49,56,63,0,0,0,0,0,0,0,7,14,21,28,35,42]8350; AVX512DQ-BW-NEXT: # zmm8 = mem[0,1,2,3,0,1,2,3]8351; AVX512DQ-BW-NEXT: vpermi2w %zmm5, %zmm4, %zmm88352; AVX512DQ-BW-NEXT: movl $511, %edi # imm = 0x1FF8353; AVX512DQ-BW-NEXT: kmovd %edi, %k28354; AVX512DQ-BW-NEXT: vmovdqu16 %zmm10, %zmm8 {%k2}8355; AVX512DQ-BW-NEXT: vmovdqu16 %zmm9, %zmm8 {%k1}8356; AVX512DQ-BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm9 = [0,0,0,7,14,21,28,35,42,49,56,63,0,0,0,0,0,0,0,7,14,21,28,35,42,49,56,63,0,0,0,0]8357; AVX512DQ-BW-NEXT: # zmm9 = mem[0,1,2,3,0,1,2,3]8358; AVX512DQ-BW-NEXT: vpermi2w %zmm7, %zmm6, %zmm98359; AVX512DQ-BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm10 = [0,0,18,19,20,21,22,23,24,25,26,27,38,45,52,59,0,0,18,19,20,21,22,23,24,25,26,27,38,45,52,59]8360; AVX512DQ-BW-NEXT: # zmm10 = mem[0,1,2,3,0,1,2,3]8361; AVX512DQ-BW-NEXT: vpermi2w %zmm3, %zmm9, %zmm108362; AVX512DQ-BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm11 = [50,57,0,0,0,0,0,0,0,1,8,15,22,29,36,43,50,57,0,0,0,0,0,0,0,1,8,15,22,29,36,43]8363; AVX512DQ-BW-NEXT: # zmm11 = mem[0,1,2,3,0,1,2,3]8364; AVX512DQ-BW-NEXT: vpermi2w %zmm5, %zmm4, %zmm118365; AVX512DQ-BW-NEXT: vpmovsxbw {{.*#+}} ymm9 = [2,9,16,23,30,37,44,51,58,0,0,0,0,0,0,0]8366; AVX512DQ-BW-NEXT: vpermi2w %zmm1, %zmm0, %zmm98367; AVX512DQ-BW-NEXT: movl $261632, %edi # imm = 0x3FE008368; AVX512DQ-BW-NEXT: kmovd %edi, %k18369; AVX512DQ-BW-NEXT: vmovdqu16 %zmm11, %zmm9 {%k1}8370; AVX512DQ-BW-NEXT: movw $-512, %di # imm = 0xFE008371; AVX512DQ-BW-NEXT: kmovd %edi, %k28372; AVX512DQ-BW-NEXT: vmovdqa32 %zmm10, %zmm9 {%k2}8373; AVX512DQ-BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm10 = [0,0,1,8,15,22,29,36,43,50,57,0,0,0,0,0,0,0,1,8,15,22,29,36,43,50,57,0,0,0,0,0]8374; AVX512DQ-BW-NEXT: # zmm10 = mem[0,1,2,3,0,1,2,3]8375; AVX512DQ-BW-NEXT: vpermi2w %zmm7, %zmm6, %zmm108376; AVX512DQ-BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm11 = [0,0,18,19,20,21,22,23,24,25,26,32,39,46,53,60,0,0,18,19,20,21,22,23,24,25,26,32,39,46,53,60]8377; AVX512DQ-BW-NEXT: # zmm11 = mem[0,1,2,3,0,1,2,3]8378; AVX512DQ-BW-NEXT: vpermi2w %zmm3, %zmm10, %zmm118379; AVX512DQ-BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm10 = [51,58,0,0,0,0,0,0,0,2,9,16,23,30,37,44,51,58,0,0,0,0,0,0,0,2,9,16,23,30,37,44]8380; AVX512DQ-BW-NEXT: # zmm10 = mem[0,1,2,3,0,1,2,3]8381; AVX512DQ-BW-NEXT: vpermi2w %zmm5, %zmm4, %zmm108382; AVX512DQ-BW-NEXT: vpmovsxbw {{.*#+}} ymm12 = [3,10,17,24,31,38,45,52,59,0,0,0,0,0,0,0]8383; AVX512DQ-BW-NEXT: vpermi2w %zmm1, %zmm0, %zmm128384; AVX512DQ-BW-NEXT: vmovdqu16 %zmm10, %zmm12 {%k1}8385; AVX512DQ-BW-NEXT: vmovdqa32 %zmm11, %zmm12 {%k2}8386; AVX512DQ-BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm10 = [0,0,2,9,16,23,30,37,44,51,58,0,0,0,0,0,0,0,2,9,16,23,30,37,44,51,58,0,0,0,0,0]8387; AVX512DQ-BW-NEXT: # zmm10 = mem[0,1,2,3,0,1,2,3]8388; AVX512DQ-BW-NEXT: vpermi2w %zmm7, %zmm6, %zmm108389; AVX512DQ-BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm11 = [0,0,18,19,20,21,22,23,24,25,26,33,40,47,54,61,0,0,18,19,20,21,22,23,24,25,26,33,40,47,54,61]8390; AVX512DQ-BW-NEXT: # zmm11 = mem[0,1,2,3,0,1,2,3]8391; AVX512DQ-BW-NEXT: vpermi2w %zmm3, %zmm10, %zmm118392; AVX512DQ-BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm10 = [52,59,0,0,0,0,0,0,0,3,10,17,24,31,38,45,52,59,0,0,0,0,0,0,0,3,10,17,24,31,38,45]8393; AVX512DQ-BW-NEXT: # zmm10 = mem[0,1,2,3,0,1,2,3]8394; AVX512DQ-BW-NEXT: vpermi2w %zmm5, %zmm4, %zmm108395; AVX512DQ-BW-NEXT: vpmovsxbw {{.*#+}} ymm13 = [36,43,50,57,0,7,14,21,28,0,0,0,0,0,0,0]8396; AVX512DQ-BW-NEXT: vpermi2w %zmm0, %zmm1, %zmm138397; AVX512DQ-BW-NEXT: vmovdqu16 %zmm10, %zmm13 {%k1}8398; AVX512DQ-BW-NEXT: vmovdqa32 %zmm11, %zmm13 {%k2}8399; AVX512DQ-BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm10 = [0,0,3,10,17,24,31,38,45,52,59,0,0,0,0,0,0,0,3,10,17,24,31,38,45,52,59,0,0,0,0,0]8400; AVX512DQ-BW-NEXT: # zmm10 = mem[0,1,2,3,0,1,2,3]8401; AVX512DQ-BW-NEXT: vpermi2w %zmm7, %zmm6, %zmm108402; AVX512DQ-BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm11 = [0,0,18,19,20,21,22,23,24,25,26,34,41,48,55,62,0,0,18,19,20,21,22,23,24,25,26,34,41,48,55,62]8403; AVX512DQ-BW-NEXT: # zmm11 = mem[0,1,2,3,0,1,2,3]8404; AVX512DQ-BW-NEXT: vpermi2w %zmm3, %zmm10, %zmm118405; AVX512DQ-BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm10 = [21,28,0,0,0,0,0,0,0,36,43,50,57,0,7,14,21,28,0,0,0,0,0,0,0,36,43,50,57,0,7,14]8406; AVX512DQ-BW-NEXT: # zmm10 = mem[0,1,2,3,0,1,2,3]8407; AVX512DQ-BW-NEXT: vpermi2w %zmm4, %zmm5, %zmm108408; AVX512DQ-BW-NEXT: vpmovsxbw {{.*#+}} ymm14 = [37,44,51,58,1,8,15,22,29,0,0,0,0,0,0,0]8409; AVX512DQ-BW-NEXT: vpermi2w %zmm0, %zmm1, %zmm148410; AVX512DQ-BW-NEXT: vmovdqu16 %zmm10, %zmm14 {%k1}8411; AVX512DQ-BW-NEXT: vmovdqa32 %zmm11, %zmm14 {%k2}8412; AVX512DQ-BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm10 = [0,0,36,43,50,57,0,7,14,21,28,0,0,0,0,0,0,0,36,43,50,57,0,7,14,21,28,0,0,0,0,0]8413; AVX512DQ-BW-NEXT: # zmm10 = mem[0,1,2,3,0,1,2,3]8414; AVX512DQ-BW-NEXT: vpermi2w %zmm6, %zmm7, %zmm108415; AVX512DQ-BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm6 = [0,0,18,19,20,21,22,23,24,25,26,35,42,49,56,63,0,0,18,19,20,21,22,23,24,25,26,35,42,49,56,63]8416; AVX512DQ-BW-NEXT: # zmm6 = mem[0,1,2,3,0,1,2,3]8417; AVX512DQ-BW-NEXT: vpermi2w %zmm3, %zmm10, %zmm68418; AVX512DQ-BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm3 = [22,29,0,0,0,0,0,0,0,37,44,51,58,1,8,15,22,29,0,0,0,0,0,0,0,37,44,51,58,1,8,15]8419; AVX512DQ-BW-NEXT: # zmm3 = mem[0,1,2,3,0,1,2,3]8420; AVX512DQ-BW-NEXT: vpermi2w %zmm4, %zmm5, %zmm38421; AVX512DQ-BW-NEXT: vpmovsxbw {{.*#+}} ymm4 = [38,45,52,59,2,9,16,23,30,0,0,0,0,0,0,0]8422; AVX512DQ-BW-NEXT: vpermi2w %zmm0, %zmm1, %zmm48423; AVX512DQ-BW-NEXT: vmovdqu16 %zmm3, %zmm4 {%k1}8424; AVX512DQ-BW-NEXT: vmovdqa32 %zmm6, %zmm4 {%k2}8425; AVX512DQ-BW-NEXT: vmovdqa64 %zmm2, (%rsi)8426; AVX512DQ-BW-NEXT: vmovdqa64 %zmm8, (%rdx)8427; AVX512DQ-BW-NEXT: vmovdqa64 %zmm9, (%rcx)8428; AVX512DQ-BW-NEXT: vmovdqa64 %zmm12, (%r8)8429; AVX512DQ-BW-NEXT: vmovdqa64 %zmm13, (%r9)8430; AVX512DQ-BW-NEXT: vmovdqa64 %zmm14, (%r10)8431; AVX512DQ-BW-NEXT: vmovdqa64 %zmm4, (%rax)8432; AVX512DQ-BW-NEXT: vzeroupper8433; AVX512DQ-BW-NEXT: retq8434;8435; AVX512DQ-BW-FCP-LABEL: load_i16_stride7_vf32:8436; AVX512DQ-BW-FCP: # %bb.0:8437; AVX512DQ-BW-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax8438; AVX512DQ-BW-FCP-NEXT: movq {{[0-9]+}}(%rsp), %r108439; AVX512DQ-BW-FCP-NEXT: vmovdqa64 384(%rdi), %zmm38440; AVX512DQ-BW-FCP-NEXT: vmovdqa64 256(%rdi), %zmm68441; AVX512DQ-BW-FCP-NEXT: vmovdqa64 320(%rdi), %zmm78442; AVX512DQ-BW-FCP-NEXT: vmovdqa64 (%rdi), %zmm08443; AVX512DQ-BW-FCP-NEXT: vmovdqa64 64(%rdi), %zmm18444; AVX512DQ-BW-FCP-NEXT: vmovdqa64 128(%rdi), %zmm48445; AVX512DQ-BW-FCP-NEXT: vmovdqa64 192(%rdi), %zmm58446; AVX512DQ-BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm8 = [16,23,30,0,0,0,0,0,0,0,38,45,52,59,2,9,16,23,30,0,0,0,0,0,0,0,38,45,52,59,2,9]8447; AVX512DQ-BW-FCP-NEXT: # zmm8 = mem[0,1,2,3,0,1,2,3]8448; AVX512DQ-BW-FCP-NEXT: vpermi2w %zmm4, %zmm5, %zmm88449; AVX512DQ-BW-FCP-NEXT: vpmovsxbw {{.*#+}} ymm2 = [0,7,14,21,28,35,42,49,56,63,0,0,0,0,0,0]8450; AVX512DQ-BW-FCP-NEXT: vpermi2w %zmm1, %zmm0, %zmm28451; AVX512DQ-BW-FCP-NEXT: movw $992, %di # imm = 0x3E08452; AVX512DQ-BW-FCP-NEXT: kmovd %edi, %k18453; AVX512DQ-BW-FCP-NEXT: vmovdqa32 %zmm8, %zmm2 {%k1}8454; AVX512DQ-BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm8 = [0,0,0,37,44,51,58,1,8,15,22,29,0,0,0,0,0,0,0,37,44,51,58,1,8,15,22,29,0,0,0,0]8455; AVX512DQ-BW-FCP-NEXT: # zmm8 = mem[0,1,2,3,0,1,2,3]8456; AVX512DQ-BW-FCP-NEXT: vpermi2w %zmm6, %zmm7, %zmm88457; AVX512DQ-BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm9 = [0,0,0,19,20,21,22,23,24,25,26,27,36,43,50,57,0,0,0,19,20,21,22,23,24,25,26,27,36,43,50,57]8458; AVX512DQ-BW-FCP-NEXT: # zmm9 = mem[0,1,2,3,0,1,2,3]8459; AVX512DQ-BW-FCP-NEXT: vpermi2w %zmm3, %zmm8, %zmm98460; AVX512DQ-BW-FCP-NEXT: movl $-524288, %edi # imm = 0xFFF800008461; AVX512DQ-BW-FCP-NEXT: kmovd %edi, %k18462; AVX512DQ-BW-FCP-NEXT: vmovdqu16 %zmm9, %zmm2 {%k1}8463; AVX512DQ-BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm8 = [0,0,0,38,45,52,59,2,9,16,23,30,0,0,0,0,0,0,0,38,45,52,59,2,9,16,23,30,0,0,0,0]8464; AVX512DQ-BW-FCP-NEXT: # zmm8 = mem[0,1,2,3,0,1,2,3]8465; AVX512DQ-BW-FCP-NEXT: vpermi2w %zmm6, %zmm7, %zmm88466; AVX512DQ-BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm9 = [0,0,0,19,20,21,22,23,24,25,26,27,37,44,51,58,0,0,0,19,20,21,22,23,24,25,26,27,37,44,51,58]8467; AVX512DQ-BW-FCP-NEXT: # zmm9 = mem[0,1,2,3,0,1,2,3]8468; AVX512DQ-BW-FCP-NEXT: vpermi2w %zmm3, %zmm8, %zmm98469; AVX512DQ-BW-FCP-NEXT: vpmovsxbw {{.*#+}} ymm10 = [1,8,15,22,29,36,43,50,57,0,0,0,0,0,0,0]8470; AVX512DQ-BW-FCP-NEXT: vpermi2w %zmm1, %zmm0, %zmm108471; AVX512DQ-BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm8 = [49,56,63,0,0,0,0,0,0,0,7,14,21,28,35,42,49,56,63,0,0,0,0,0,0,0,7,14,21,28,35,42]8472; AVX512DQ-BW-FCP-NEXT: # zmm8 = mem[0,1,2,3,0,1,2,3]8473; AVX512DQ-BW-FCP-NEXT: vpermi2w %zmm5, %zmm4, %zmm88474; AVX512DQ-BW-FCP-NEXT: movl $511, %edi # imm = 0x1FF8475; AVX512DQ-BW-FCP-NEXT: kmovd %edi, %k28476; AVX512DQ-BW-FCP-NEXT: vmovdqu16 %zmm10, %zmm8 {%k2}8477; AVX512DQ-BW-FCP-NEXT: vmovdqu16 %zmm9, %zmm8 {%k1}8478; AVX512DQ-BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm9 = [0,0,0,7,14,21,28,35,42,49,56,63,0,0,0,0,0,0,0,7,14,21,28,35,42,49,56,63,0,0,0,0]8479; AVX512DQ-BW-FCP-NEXT: # zmm9 = mem[0,1,2,3,0,1,2,3]8480; AVX512DQ-BW-FCP-NEXT: vpermi2w %zmm7, %zmm6, %zmm98481; AVX512DQ-BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm10 = [0,0,18,19,20,21,22,23,24,25,26,27,38,45,52,59,0,0,18,19,20,21,22,23,24,25,26,27,38,45,52,59]8482; AVX512DQ-BW-FCP-NEXT: # zmm10 = mem[0,1,2,3,0,1,2,3]8483; AVX512DQ-BW-FCP-NEXT: vpermi2w %zmm3, %zmm9, %zmm108484; AVX512DQ-BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm11 = [50,57,0,0,0,0,0,0,0,1,8,15,22,29,36,43,50,57,0,0,0,0,0,0,0,1,8,15,22,29,36,43]8485; AVX512DQ-BW-FCP-NEXT: # zmm11 = mem[0,1,2,3,0,1,2,3]8486; AVX512DQ-BW-FCP-NEXT: vpermi2w %zmm5, %zmm4, %zmm118487; AVX512DQ-BW-FCP-NEXT: vpmovsxbw {{.*#+}} ymm9 = [2,9,16,23,30,37,44,51,58,0,0,0,0,0,0,0]8488; AVX512DQ-BW-FCP-NEXT: vpermi2w %zmm1, %zmm0, %zmm98489; AVX512DQ-BW-FCP-NEXT: movl $261632, %edi # imm = 0x3FE008490; AVX512DQ-BW-FCP-NEXT: kmovd %edi, %k18491; AVX512DQ-BW-FCP-NEXT: vmovdqu16 %zmm11, %zmm9 {%k1}8492; AVX512DQ-BW-FCP-NEXT: movw $-512, %di # imm = 0xFE008493; AVX512DQ-BW-FCP-NEXT: kmovd %edi, %k28494; AVX512DQ-BW-FCP-NEXT: vmovdqa32 %zmm10, %zmm9 {%k2}8495; AVX512DQ-BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm10 = [0,0,1,8,15,22,29,36,43,50,57,0,0,0,0,0,0,0,1,8,15,22,29,36,43,50,57,0,0,0,0,0]8496; AVX512DQ-BW-FCP-NEXT: # zmm10 = mem[0,1,2,3,0,1,2,3]8497; AVX512DQ-BW-FCP-NEXT: vpermi2w %zmm7, %zmm6, %zmm108498; AVX512DQ-BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm11 = [0,0,18,19,20,21,22,23,24,25,26,32,39,46,53,60,0,0,18,19,20,21,22,23,24,25,26,32,39,46,53,60]8499; AVX512DQ-BW-FCP-NEXT: # zmm11 = mem[0,1,2,3,0,1,2,3]8500; AVX512DQ-BW-FCP-NEXT: vpermi2w %zmm3, %zmm10, %zmm118501; AVX512DQ-BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm10 = [51,58,0,0,0,0,0,0,0,2,9,16,23,30,37,44,51,58,0,0,0,0,0,0,0,2,9,16,23,30,37,44]8502; AVX512DQ-BW-FCP-NEXT: # zmm10 = mem[0,1,2,3,0,1,2,3]8503; AVX512DQ-BW-FCP-NEXT: vpermi2w %zmm5, %zmm4, %zmm108504; AVX512DQ-BW-FCP-NEXT: vpmovsxbw {{.*#+}} ymm12 = [3,10,17,24,31,38,45,52,59,0,0,0,0,0,0,0]8505; AVX512DQ-BW-FCP-NEXT: vpermi2w %zmm1, %zmm0, %zmm128506; AVX512DQ-BW-FCP-NEXT: vmovdqu16 %zmm10, %zmm12 {%k1}8507; AVX512DQ-BW-FCP-NEXT: vmovdqa32 %zmm11, %zmm12 {%k2}8508; AVX512DQ-BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm10 = [0,0,2,9,16,23,30,37,44,51,58,0,0,0,0,0,0,0,2,9,16,23,30,37,44,51,58,0,0,0,0,0]8509; AVX512DQ-BW-FCP-NEXT: # zmm10 = mem[0,1,2,3,0,1,2,3]8510; AVX512DQ-BW-FCP-NEXT: vpermi2w %zmm7, %zmm6, %zmm108511; AVX512DQ-BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm11 = [0,0,18,19,20,21,22,23,24,25,26,33,40,47,54,61,0,0,18,19,20,21,22,23,24,25,26,33,40,47,54,61]8512; AVX512DQ-BW-FCP-NEXT: # zmm11 = mem[0,1,2,3,0,1,2,3]8513; AVX512DQ-BW-FCP-NEXT: vpermi2w %zmm3, %zmm10, %zmm118514; AVX512DQ-BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm10 = [52,59,0,0,0,0,0,0,0,3,10,17,24,31,38,45,52,59,0,0,0,0,0,0,0,3,10,17,24,31,38,45]8515; AVX512DQ-BW-FCP-NEXT: # zmm10 = mem[0,1,2,3,0,1,2,3]8516; AVX512DQ-BW-FCP-NEXT: vpermi2w %zmm5, %zmm4, %zmm108517; AVX512DQ-BW-FCP-NEXT: vpmovsxbw {{.*#+}} ymm13 = [36,43,50,57,0,7,14,21,28,0,0,0,0,0,0,0]8518; AVX512DQ-BW-FCP-NEXT: vpermi2w %zmm0, %zmm1, %zmm138519; AVX512DQ-BW-FCP-NEXT: vmovdqu16 %zmm10, %zmm13 {%k1}8520; AVX512DQ-BW-FCP-NEXT: vmovdqa32 %zmm11, %zmm13 {%k2}8521; AVX512DQ-BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm10 = [0,0,3,10,17,24,31,38,45,52,59,0,0,0,0,0,0,0,3,10,17,24,31,38,45,52,59,0,0,0,0,0]8522; AVX512DQ-BW-FCP-NEXT: # zmm10 = mem[0,1,2,3,0,1,2,3]8523; AVX512DQ-BW-FCP-NEXT: vpermi2w %zmm7, %zmm6, %zmm108524; AVX512DQ-BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm11 = [0,0,18,19,20,21,22,23,24,25,26,34,41,48,55,62,0,0,18,19,20,21,22,23,24,25,26,34,41,48,55,62]8525; AVX512DQ-BW-FCP-NEXT: # zmm11 = mem[0,1,2,3,0,1,2,3]8526; AVX512DQ-BW-FCP-NEXT: vpermi2w %zmm3, %zmm10, %zmm118527; AVX512DQ-BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm10 = [21,28,0,0,0,0,0,0,0,36,43,50,57,0,7,14,21,28,0,0,0,0,0,0,0,36,43,50,57,0,7,14]8528; AVX512DQ-BW-FCP-NEXT: # zmm10 = mem[0,1,2,3,0,1,2,3]8529; AVX512DQ-BW-FCP-NEXT: vpermi2w %zmm4, %zmm5, %zmm108530; AVX512DQ-BW-FCP-NEXT: vpmovsxbw {{.*#+}} ymm14 = [37,44,51,58,1,8,15,22,29,0,0,0,0,0,0,0]8531; AVX512DQ-BW-FCP-NEXT: vpermi2w %zmm0, %zmm1, %zmm148532; AVX512DQ-BW-FCP-NEXT: vmovdqu16 %zmm10, %zmm14 {%k1}8533; AVX512DQ-BW-FCP-NEXT: vmovdqa32 %zmm11, %zmm14 {%k2}8534; AVX512DQ-BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm10 = [0,0,36,43,50,57,0,7,14,21,28,0,0,0,0,0,0,0,36,43,50,57,0,7,14,21,28,0,0,0,0,0]8535; AVX512DQ-BW-FCP-NEXT: # zmm10 = mem[0,1,2,3,0,1,2,3]8536; AVX512DQ-BW-FCP-NEXT: vpermi2w %zmm6, %zmm7, %zmm108537; AVX512DQ-BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm6 = [0,0,18,19,20,21,22,23,24,25,26,35,42,49,56,63,0,0,18,19,20,21,22,23,24,25,26,35,42,49,56,63]8538; AVX512DQ-BW-FCP-NEXT: # zmm6 = mem[0,1,2,3,0,1,2,3]8539; AVX512DQ-BW-FCP-NEXT: vpermi2w %zmm3, %zmm10, %zmm68540; AVX512DQ-BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm3 = [22,29,0,0,0,0,0,0,0,37,44,51,58,1,8,15,22,29,0,0,0,0,0,0,0,37,44,51,58,1,8,15]8541; AVX512DQ-BW-FCP-NEXT: # zmm3 = mem[0,1,2,3,0,1,2,3]8542; AVX512DQ-BW-FCP-NEXT: vpermi2w %zmm4, %zmm5, %zmm38543; AVX512DQ-BW-FCP-NEXT: vpmovsxbw {{.*#+}} ymm4 = [38,45,52,59,2,9,16,23,30,0,0,0,0,0,0,0]8544; AVX512DQ-BW-FCP-NEXT: vpermi2w %zmm0, %zmm1, %zmm48545; AVX512DQ-BW-FCP-NEXT: vmovdqu16 %zmm3, %zmm4 {%k1}8546; AVX512DQ-BW-FCP-NEXT: vmovdqa32 %zmm6, %zmm4 {%k2}8547; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm2, (%rsi)8548; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm8, (%rdx)8549; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm9, (%rcx)8550; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm12, (%r8)8551; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm13, (%r9)8552; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm14, (%r10)8553; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm4, (%rax)8554; AVX512DQ-BW-FCP-NEXT: vzeroupper8555; AVX512DQ-BW-FCP-NEXT: retq8556 %wide.vec = load <224 x i16>, ptr %in.vec, align 648557 %strided.vec0 = shufflevector <224 x i16> %wide.vec, <224 x i16> poison, <32 x i32> <i32 0, i32 7, i32 14, i32 21, i32 28, i32 35, i32 42, i32 49, i32 56, i32 63, i32 70, i32 77, i32 84, i32 91, i32 98, i32 105, i32 112, i32 119, i32 126, i32 133, i32 140, i32 147, i32 154, i32 161, i32 168, i32 175, i32 182, i32 189, i32 196, i32 203, i32 210, i32 217>8558 %strided.vec1 = shufflevector <224 x i16> %wide.vec, <224 x i16> poison, <32 x i32> <i32 1, i32 8, i32 15, i32 22, i32 29, i32 36, i32 43, i32 50, i32 57, i32 64, i32 71, i32 78, i32 85, i32 92, i32 99, i32 106, i32 113, i32 120, i32 127, i32 134, i32 141, i32 148, i32 155, i32 162, i32 169, i32 176, i32 183, i32 190, i32 197, i32 204, i32 211, i32 218>8559 %strided.vec2 = shufflevector <224 x i16> %wide.vec, <224 x i16> poison, <32 x i32> <i32 2, i32 9, i32 16, i32 23, i32 30, i32 37, i32 44, i32 51, i32 58, i32 65, i32 72, i32 79, i32 86, i32 93, i32 100, i32 107, i32 114, i32 121, i32 128, i32 135, i32 142, i32 149, i32 156, i32 163, i32 170, i32 177, i32 184, i32 191, i32 198, i32 205, i32 212, i32 219>8560 %strided.vec3 = shufflevector <224 x i16> %wide.vec, <224 x i16> poison, <32 x i32> <i32 3, i32 10, i32 17, i32 24, i32 31, i32 38, i32 45, i32 52, i32 59, i32 66, i32 73, i32 80, i32 87, i32 94, i32 101, i32 108, i32 115, i32 122, i32 129, i32 136, i32 143, i32 150, i32 157, i32 164, i32 171, i32 178, i32 185, i32 192, i32 199, i32 206, i32 213, i32 220>8561 %strided.vec4 = shufflevector <224 x i16> %wide.vec, <224 x i16> poison, <32 x i32> <i32 4, i32 11, i32 18, i32 25, i32 32, i32 39, i32 46, i32 53, i32 60, i32 67, i32 74, i32 81, i32 88, i32 95, i32 102, i32 109, i32 116, i32 123, i32 130, i32 137, i32 144, i32 151, i32 158, i32 165, i32 172, i32 179, i32 186, i32 193, i32 200, i32 207, i32 214, i32 221>8562 %strided.vec5 = shufflevector <224 x i16> %wide.vec, <224 x i16> poison, <32 x i32> <i32 5, i32 12, i32 19, i32 26, i32 33, i32 40, i32 47, i32 54, i32 61, i32 68, i32 75, i32 82, i32 89, i32 96, i32 103, i32 110, i32 117, i32 124, i32 131, i32 138, i32 145, i32 152, i32 159, i32 166, i32 173, i32 180, i32 187, i32 194, i32 201, i32 208, i32 215, i32 222>8563 %strided.vec6 = shufflevector <224 x i16> %wide.vec, <224 x i16> poison, <32 x i32> <i32 6, i32 13, i32 20, i32 27, i32 34, i32 41, i32 48, i32 55, i32 62, i32 69, i32 76, i32 83, i32 90, i32 97, i32 104, i32 111, i32 118, i32 125, i32 132, i32 139, i32 146, i32 153, i32 160, i32 167, i32 174, i32 181, i32 188, i32 195, i32 202, i32 209, i32 216, i32 223>8564 store <32 x i16> %strided.vec0, ptr %out.vec0, align 648565 store <32 x i16> %strided.vec1, ptr %out.vec1, align 648566 store <32 x i16> %strided.vec2, ptr %out.vec2, align 648567 store <32 x i16> %strided.vec3, ptr %out.vec3, align 648568 store <32 x i16> %strided.vec4, ptr %out.vec4, align 648569 store <32 x i16> %strided.vec5, ptr %out.vec5, align 648570 store <32 x i16> %strided.vec6, ptr %out.vec6, align 648571 ret void8572}8573 8574define void @load_i16_stride7_vf64(ptr %in.vec, ptr %out.vec0, ptr %out.vec1, ptr %out.vec2, ptr %out.vec3, ptr %out.vec4, ptr %out.vec5, ptr %out.vec6) nounwind {8575; SSE-LABEL: load_i16_stride7_vf64:8576; SSE: # %bb.0:8577; SSE-NEXT: subq $1352, %rsp # imm = 0x5488578; SSE-NEXT: movdqa 640(%rdi), %xmm98579; SSE-NEXT: movdqa 624(%rdi), %xmm128580; SSE-NEXT: movdqa %xmm12, (%rsp) # 16-byte Spill8581; SSE-NEXT: movdqa 112(%rdi), %xmm88582; SSE-NEXT: movdqa 128(%rdi), %xmm108583; SSE-NEXT: movaps 160(%rdi), %xmm68584; SSE-NEXT: movaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8585; SSE-NEXT: movaps 144(%rdi), %xmm138586; SSE-NEXT: movdqa 192(%rdi), %xmm28587; SSE-NEXT: movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8588; SSE-NEXT: movdqa 176(%rdi), %xmm48589; SSE-NEXT: movdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8590; SSE-NEXT: movdqa 208(%rdi), %xmm118591; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm11[0,0,0,0]8592; SSE-NEXT: movdqa %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8593; SSE-NEXT: movdqa {{.*#+}} xmm3 = [65535,65535,65535,65535,65535,65535,65535,0]8594; SSE-NEXT: movdqa %xmm3, %xmm18595; SSE-NEXT: pandn %xmm0, %xmm18596; SSE-NEXT: movdqa %xmm4, %xmm08597; SSE-NEXT: punpckldq {{.*#+}} xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1]8598; SSE-NEXT: pand %xmm3, %xmm08599; SSE-NEXT: por %xmm1, %xmm08600; SSE-NEXT: movdqa {{.*#+}} xmm14 = [65535,65535,65535,65535,65535,0,0,0]8601; SSE-NEXT: movdqa %xmm14, %xmm18602; SSE-NEXT: pandn %xmm0, %xmm18603; SSE-NEXT: movaps %xmm13, %xmm08604; SSE-NEXT: movaps %xmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8605; SSE-NEXT: shufps {{.*#+}} xmm0 = xmm0[2,2],xmm6[2,2]8606; SSE-NEXT: movaps {{.*#+}} xmm6 = [65535,65535,65535,0,0,65535,65535,65535]8607; SSE-NEXT: movaps %xmm6, %xmm28608; SSE-NEXT: andnps %xmm0, %xmm28609; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm10[2,2,3,3]8610; SSE-NEXT: movdqa %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8611; SSE-NEXT: pshufd {{.*#+}} xmm4 = xmm8[0,1,0,3]8612; SSE-NEXT: movdqa %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8613; SSE-NEXT: pshufhw {{.*#+}} xmm4 = xmm4[0,1,2,3,4,7,6,7]8614; SSE-NEXT: punpckhdq {{.*#+}} xmm4 = xmm4[2],xmm0[2],xmm4[3],xmm0[3]8615; SSE-NEXT: movdqa 656(%rdi), %xmm08616; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8617; SSE-NEXT: pand %xmm6, %xmm48618; SSE-NEXT: por %xmm2, %xmm48619; SSE-NEXT: pand %xmm14, %xmm48620; SSE-NEXT: por %xmm1, %xmm48621; SSE-NEXT: movdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8622; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,0,0,0]8623; SSE-NEXT: movdqa %xmm3, %xmm18624; SSE-NEXT: pandn %xmm0, %xmm18625; SSE-NEXT: movdqa %xmm12, %xmm08626; SSE-NEXT: punpckldq {{.*#+}} xmm0 = xmm0[0],xmm9[0],xmm0[1],xmm9[1]8627; SSE-NEXT: movdqa %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8628; SSE-NEXT: pand %xmm3, %xmm08629; SSE-NEXT: por %xmm1, %xmm08630; SSE-NEXT: movdqa %xmm14, %xmm18631; SSE-NEXT: pandn %xmm0, %xmm18632; SSE-NEXT: movaps 608(%rdi), %xmm28633; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8634; SSE-NEXT: movaps 592(%rdi), %xmm08635; SSE-NEXT: movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8636; SSE-NEXT: shufps {{.*#+}} xmm0 = xmm0[2,2],xmm2[2,2]8637; SSE-NEXT: movaps %xmm6, %xmm28638; SSE-NEXT: andnps %xmm0, %xmm28639; SSE-NEXT: movdqa 560(%rdi), %xmm158640; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm15[0,1,0,3]8641; SSE-NEXT: movdqa %xmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8642; SSE-NEXT: pshufhw {{.*#+}} xmm4 = xmm0[0,1,2,3,4,7,6,7]8643; SSE-NEXT: movdqa 576(%rdi), %xmm58644; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm5[2,2,3,3]8645; SSE-NEXT: movdqa %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8646; SSE-NEXT: punpckhdq {{.*#+}} xmm4 = xmm4[2],xmm0[2],xmm4[3],xmm0[3]8647; SSE-NEXT: pand %xmm6, %xmm48648; SSE-NEXT: por %xmm2, %xmm48649; SSE-NEXT: pand %xmm14, %xmm48650; SSE-NEXT: por %xmm1, %xmm48651; SSE-NEXT: movdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8652; SSE-NEXT: movdqa 96(%rdi), %xmm08653; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8654; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,0,0,0]8655; SSE-NEXT: movdqa %xmm3, %xmm18656; SSE-NEXT: pandn %xmm0, %xmm18657; SSE-NEXT: movdqa 80(%rdi), %xmm28658; SSE-NEXT: movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8659; SSE-NEXT: movdqa 64(%rdi), %xmm08660; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8661; SSE-NEXT: punpckldq {{.*#+}} xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1]8662; SSE-NEXT: pand %xmm3, %xmm08663; SSE-NEXT: por %xmm1, %xmm08664; SSE-NEXT: movdqa %xmm14, %xmm18665; SSE-NEXT: pandn %xmm0, %xmm18666; SSE-NEXT: movaps 32(%rdi), %xmm08667; SSE-NEXT: movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8668; SSE-NEXT: movaps 48(%rdi), %xmm48669; SSE-NEXT: movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8670; SSE-NEXT: shufps {{.*#+}} xmm0 = xmm0[2,2],xmm4[2,2]8671; SSE-NEXT: movaps %xmm6, %xmm28672; SSE-NEXT: andnps %xmm0, %xmm28673; SSE-NEXT: movdqa (%rdi), %xmm08674; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8675; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,1,0,3]8676; SSE-NEXT: pshufhw {{.*#+}} xmm4 = xmm0[0,1,2,3,4,7,6,7]8677; SSE-NEXT: movdqa 16(%rdi), %xmm08678; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8679; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[2,2,3,3]8680; SSE-NEXT: punpckhdq {{.*#+}} xmm4 = xmm4[2],xmm0[2],xmm4[3],xmm0[3]8681; SSE-NEXT: pand %xmm6, %xmm48682; SSE-NEXT: por %xmm2, %xmm48683; SSE-NEXT: pand %xmm14, %xmm48684; SSE-NEXT: por %xmm1, %xmm48685; SSE-NEXT: movdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8686; SSE-NEXT: movdqa 544(%rdi), %xmm08687; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8688; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,0,0,0]8689; SSE-NEXT: movdqa %xmm3, %xmm18690; SSE-NEXT: pandn %xmm0, %xmm18691; SSE-NEXT: movdqa 528(%rdi), %xmm28692; SSE-NEXT: movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8693; SSE-NEXT: movdqa 512(%rdi), %xmm08694; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8695; SSE-NEXT: punpckldq {{.*#+}} xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1]8696; SSE-NEXT: pand %xmm3, %xmm08697; SSE-NEXT: por %xmm1, %xmm08698; SSE-NEXT: movdqa %xmm14, %xmm18699; SSE-NEXT: pandn %xmm0, %xmm18700; SSE-NEXT: movaps 496(%rdi), %xmm28701; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8702; SSE-NEXT: movaps 480(%rdi), %xmm08703; SSE-NEXT: movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8704; SSE-NEXT: shufps {{.*#+}} xmm0 = xmm0[2,2],xmm2[2,2]8705; SSE-NEXT: movaps %xmm6, %xmm28706; SSE-NEXT: andnps %xmm0, %xmm28707; SSE-NEXT: movdqa 448(%rdi), %xmm08708; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8709; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,1,0,3]8710; SSE-NEXT: pshufhw {{.*#+}} xmm4 = xmm0[0,1,2,3,4,7,6,7]8711; SSE-NEXT: movdqa 464(%rdi), %xmm128712; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm12[2,2,3,3]8713; SSE-NEXT: movdqa %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8714; SSE-NEXT: punpckhdq {{.*#+}} xmm4 = xmm4[2],xmm0[2],xmm4[3],xmm0[3]8715; SSE-NEXT: pand %xmm6, %xmm48716; SSE-NEXT: por %xmm2, %xmm48717; SSE-NEXT: pand %xmm14, %xmm48718; SSE-NEXT: por %xmm1, %xmm48719; SSE-NEXT: movdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8720; SSE-NEXT: movdqa 432(%rdi), %xmm08721; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8722; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,0,0,0]8723; SSE-NEXT: movdqa %xmm3, %xmm18724; SSE-NEXT: pandn %xmm0, %xmm18725; SSE-NEXT: movdqa 416(%rdi), %xmm28726; SSE-NEXT: movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8727; SSE-NEXT: movdqa 400(%rdi), %xmm08728; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8729; SSE-NEXT: punpckldq {{.*#+}} xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1]8730; SSE-NEXT: pand %xmm3, %xmm08731; SSE-NEXT: por %xmm1, %xmm08732; SSE-NEXT: movdqa %xmm14, %xmm18733; SSE-NEXT: pandn %xmm0, %xmm18734; SSE-NEXT: movaps 384(%rdi), %xmm28735; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8736; SSE-NEXT: movaps 368(%rdi), %xmm08737; SSE-NEXT: movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8738; SSE-NEXT: shufps {{.*#+}} xmm0 = xmm0[2,2],xmm2[2,2]8739; SSE-NEXT: movaps %xmm6, %xmm28740; SSE-NEXT: andnps %xmm0, %xmm28741; SSE-NEXT: movdqa 336(%rdi), %xmm08742; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8743; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,1,0,3]8744; SSE-NEXT: pshufhw {{.*#+}} xmm4 = xmm0[0,1,2,3,4,7,6,7]8745; SSE-NEXT: movdqa 352(%rdi), %xmm08746; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8747; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[2,2,3,3]8748; SSE-NEXT: punpckhdq {{.*#+}} xmm4 = xmm4[2],xmm0[2],xmm4[3],xmm0[3]8749; SSE-NEXT: pand %xmm6, %xmm48750; SSE-NEXT: por %xmm2, %xmm48751; SSE-NEXT: pand %xmm14, %xmm48752; SSE-NEXT: por %xmm1, %xmm48753; SSE-NEXT: movdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8754; SSE-NEXT: movdqa 880(%rdi), %xmm08755; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8756; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,0,0,0]8757; SSE-NEXT: movdqa %xmm3, %xmm18758; SSE-NEXT: pandn %xmm0, %xmm18759; SSE-NEXT: movdqa 864(%rdi), %xmm48760; SSE-NEXT: movdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8761; SSE-NEXT: movdqa 848(%rdi), %xmm08762; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8763; SSE-NEXT: punpckldq {{.*#+}} xmm0 = xmm0[0],xmm4[0],xmm0[1],xmm4[1]8764; SSE-NEXT: pand %xmm3, %xmm08765; SSE-NEXT: por %xmm1, %xmm08766; SSE-NEXT: movdqa %xmm14, %xmm18767; SSE-NEXT: pandn %xmm0, %xmm18768; SSE-NEXT: movaps 832(%rdi), %xmm28769; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8770; SSE-NEXT: movaps 816(%rdi), %xmm08771; SSE-NEXT: movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8772; SSE-NEXT: shufps {{.*#+}} xmm0 = xmm0[2,2],xmm2[2,2]8773; SSE-NEXT: movaps %xmm6, %xmm28774; SSE-NEXT: andnps %xmm0, %xmm28775; SSE-NEXT: movdqa 784(%rdi), %xmm08776; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8777; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,1,0,3]8778; SSE-NEXT: pshufhw {{.*#+}} xmm4 = xmm0[0,1,2,3,4,7,6,7]8779; SSE-NEXT: movdqa 800(%rdi), %xmm08780; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8781; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[2,2,3,3]8782; SSE-NEXT: punpckhdq {{.*#+}} xmm4 = xmm4[2],xmm0[2],xmm4[3],xmm0[3]8783; SSE-NEXT: pand %xmm6, %xmm48784; SSE-NEXT: por %xmm2, %xmm48785; SSE-NEXT: pand %xmm14, %xmm48786; SSE-NEXT: por %xmm1, %xmm48787; SSE-NEXT: movdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8788; SSE-NEXT: movdqa 320(%rdi), %xmm08789; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8790; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,0,0,0]8791; SSE-NEXT: movdqa %xmm3, %xmm18792; SSE-NEXT: pandn %xmm0, %xmm18793; SSE-NEXT: movdqa 304(%rdi), %xmm28794; SSE-NEXT: movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8795; SSE-NEXT: movdqa 288(%rdi), %xmm08796; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8797; SSE-NEXT: punpckldq {{.*#+}} xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1]8798; SSE-NEXT: pand %xmm3, %xmm08799; SSE-NEXT: por %xmm1, %xmm08800; SSE-NEXT: movdqa %xmm14, %xmm18801; SSE-NEXT: pandn %xmm0, %xmm18802; SSE-NEXT: movaps 272(%rdi), %xmm28803; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8804; SSE-NEXT: movaps 256(%rdi), %xmm08805; SSE-NEXT: movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8806; SSE-NEXT: shufps {{.*#+}} xmm0 = xmm0[2,2],xmm2[2,2]8807; SSE-NEXT: movaps %xmm6, %xmm28808; SSE-NEXT: andnps %xmm0, %xmm28809; SSE-NEXT: movdqa 224(%rdi), %xmm08810; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8811; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,1,0,3]8812; SSE-NEXT: pshufhw {{.*#+}} xmm4 = xmm0[0,1,2,3,4,7,6,7]8813; SSE-NEXT: movdqa 240(%rdi), %xmm08814; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8815; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[2,2,3,3]8816; SSE-NEXT: punpckhdq {{.*#+}} xmm4 = xmm4[2],xmm0[2],xmm4[3],xmm0[3]8817; SSE-NEXT: pand %xmm6, %xmm48818; SSE-NEXT: por %xmm2, %xmm48819; SSE-NEXT: pand %xmm14, %xmm48820; SSE-NEXT: por %xmm1, %xmm48821; SSE-NEXT: movdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8822; SSE-NEXT: movdqa 768(%rdi), %xmm08823; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8824; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,0,0,0]8825; SSE-NEXT: movdqa %xmm3, %xmm18826; SSE-NEXT: pandn %xmm0, %xmm18827; SSE-NEXT: movdqa 752(%rdi), %xmm28828; SSE-NEXT: movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8829; SSE-NEXT: movdqa 736(%rdi), %xmm08830; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8831; SSE-NEXT: punpckldq {{.*#+}} xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1]8832; SSE-NEXT: pand %xmm3, %xmm08833; SSE-NEXT: por %xmm1, %xmm08834; SSE-NEXT: movdqa %xmm14, %xmm18835; SSE-NEXT: pandn %xmm0, %xmm18836; SSE-NEXT: movaps 720(%rdi), %xmm28837; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8838; SSE-NEXT: movaps 704(%rdi), %xmm08839; SSE-NEXT: movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8840; SSE-NEXT: shufps {{.*#+}} xmm0 = xmm0[2,2],xmm2[2,2]8841; SSE-NEXT: movaps %xmm6, %xmm28842; SSE-NEXT: andnps %xmm0, %xmm28843; SSE-NEXT: movdqa 672(%rdi), %xmm08844; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8845; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,1,0,3]8846; SSE-NEXT: pshufhw {{.*#+}} xmm4 = xmm0[0,1,2,3,4,7,6,7]8847; SSE-NEXT: movdqa 688(%rdi), %xmm08848; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8849; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[2,2,3,3]8850; SSE-NEXT: punpckhdq {{.*#+}} xmm4 = xmm4[2],xmm0[2],xmm4[3],xmm0[3]8851; SSE-NEXT: pand %xmm6, %xmm48852; SSE-NEXT: por %xmm2, %xmm48853; SSE-NEXT: pand %xmm14, %xmm48854; SSE-NEXT: por %xmm1, %xmm48855; SSE-NEXT: movdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8856; SSE-NEXT: pslldq {{.*#+}} xmm11 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,xmm11[0,1,2,3,4,5]8857; SSE-NEXT: movdqa %xmm3, %xmm18858; SSE-NEXT: pandn %xmm11, %xmm18859; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload8860; SSE-NEXT: psrld $16, %xmm08861; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload8862; SSE-NEXT: psrldq {{.*#+}} xmm2 = xmm2[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero8863; SSE-NEXT: punpckldq {{.*#+}} xmm2 = xmm2[0],xmm0[0],xmm2[1],xmm0[1]8864; SSE-NEXT: pand %xmm3, %xmm28865; SSE-NEXT: por %xmm1, %xmm28866; SSE-NEXT: movdqa %xmm14, %xmm18867; SSE-NEXT: pandn %xmm2, %xmm18868; SSE-NEXT: movdqa {{.*#+}} xmm7 = [65535,0,65535,65535,65535,65535,65535,65535]8869; SSE-NEXT: movdqa %xmm7, %xmm28870; SSE-NEXT: pandn %xmm8, %xmm28871; SSE-NEXT: pand %xmm7, %xmm108872; SSE-NEXT: por %xmm2, %xmm108873; SSE-NEXT: punpckhwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Folded Reload8874; SSE-NEXT: # xmm13 = xmm13[4],mem[4],xmm13[5],mem[5],xmm13[6],mem[6],xmm13[7],mem[7]8875; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm13[2,1,2,1]8876; SSE-NEXT: pshuflw {{.*#+}} xmm2 = xmm2[0,0,0,0,4,5,6,7]8877; SSE-NEXT: pshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,7,7,7,7]8878; SSE-NEXT: movdqa %xmm6, %xmm08879; SSE-NEXT: pandn %xmm2, %xmm08880; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm10[0,3,2,3]8881; SSE-NEXT: pshuflw {{.*#+}} xmm2 = xmm2[1,0,3,3,4,5,6,7]8882; SSE-NEXT: pand %xmm6, %xmm28883; SSE-NEXT: por %xmm2, %xmm08884; SSE-NEXT: pand %xmm14, %xmm08885; SSE-NEXT: por %xmm1, %xmm08886; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8887; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload8888; SSE-NEXT: pslldq {{.*#+}} xmm1 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,xmm1[0,1,2,3,4,5]8889; SSE-NEXT: movdqa %xmm3, %xmm28890; SSE-NEXT: pandn %xmm1, %xmm28891; SSE-NEXT: psrld $16, %xmm98892; SSE-NEXT: movdqa (%rsp), %xmm4 # 16-byte Reload8893; SSE-NEXT: psrldq {{.*#+}} xmm4 = xmm4[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero8894; SSE-NEXT: punpckldq {{.*#+}} xmm4 = xmm4[0],xmm9[0],xmm4[1],xmm9[1]8895; SSE-NEXT: pand %xmm3, %xmm48896; SSE-NEXT: por %xmm2, %xmm48897; SSE-NEXT: movdqa %xmm14, %xmm18898; SSE-NEXT: pandn %xmm4, %xmm18899; SSE-NEXT: movdqa %xmm7, %xmm28900; SSE-NEXT: pandn %xmm15, %xmm28901; SSE-NEXT: pand %xmm7, %xmm58902; SSE-NEXT: por %xmm2, %xmm58903; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload8904; SSE-NEXT: punpckhwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload8905; SSE-NEXT: # xmm2 = xmm2[4],mem[4],xmm2[5],mem[5],xmm2[6],mem[6],xmm2[7],mem[7]8906; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm2[2,1,2,1]8907; SSE-NEXT: pshuflw {{.*#+}} xmm2 = xmm2[0,0,0,0,4,5,6,7]8908; SSE-NEXT: pshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,7,7,7,7]8909; SSE-NEXT: movdqa %xmm6, %xmm08910; SSE-NEXT: pandn %xmm2, %xmm08911; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm5[0,3,2,3]8912; SSE-NEXT: pshuflw {{.*#+}} xmm2 = xmm2[1,0,3,3,4,5,6,7]8913; SSE-NEXT: pand %xmm6, %xmm28914; SSE-NEXT: por %xmm2, %xmm08915; SSE-NEXT: pand %xmm14, %xmm08916; SSE-NEXT: por %xmm1, %xmm08917; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8918; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload8919; SSE-NEXT: pslldq {{.*#+}} xmm1 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,xmm1[0,1,2,3,4,5]8920; SSE-NEXT: movdqa %xmm3, %xmm28921; SSE-NEXT: pandn %xmm1, %xmm28922; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload8923; SSE-NEXT: psrld $16, %xmm18924; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload8925; SSE-NEXT: psrldq {{.*#+}} xmm4 = xmm4[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero8926; SSE-NEXT: punpckldq {{.*#+}} xmm4 = xmm4[0],xmm1[0],xmm4[1],xmm1[1]8927; SSE-NEXT: pand %xmm3, %xmm48928; SSE-NEXT: por %xmm2, %xmm48929; SSE-NEXT: movdqa %xmm14, %xmm18930; SSE-NEXT: pandn %xmm4, %xmm18931; SSE-NEXT: movdqa %xmm7, %xmm28932; SSE-NEXT: pandn {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload8933; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload8934; SSE-NEXT: pand %xmm7, %xmm48935; SSE-NEXT: por %xmm2, %xmm48936; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload8937; SSE-NEXT: punpckhwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload8938; SSE-NEXT: # xmm2 = xmm2[4],mem[4],xmm2[5],mem[5],xmm2[6],mem[6],xmm2[7],mem[7]8939; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm2[2,1,2,1]8940; SSE-NEXT: pshuflw {{.*#+}} xmm2 = xmm2[0,0,0,0,4,5,6,7]8941; SSE-NEXT: pshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,7,7,7,7]8942; SSE-NEXT: movdqa %xmm6, %xmm08943; SSE-NEXT: pandn %xmm2, %xmm08944; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm4[0,3,2,3]8945; SSE-NEXT: pshuflw {{.*#+}} xmm2 = xmm2[1,0,3,3,4,5,6,7]8946; SSE-NEXT: pand %xmm6, %xmm28947; SSE-NEXT: por %xmm2, %xmm08948; SSE-NEXT: pand %xmm14, %xmm08949; SSE-NEXT: por %xmm1, %xmm08950; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8951; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload8952; SSE-NEXT: pslldq {{.*#+}} xmm1 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,xmm1[0,1,2,3,4,5]8953; SSE-NEXT: movdqa %xmm3, %xmm28954; SSE-NEXT: pandn %xmm1, %xmm28955; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload8956; SSE-NEXT: psrld $16, %xmm18957; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload8958; SSE-NEXT: psrldq {{.*#+}} xmm4 = xmm4[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero8959; SSE-NEXT: punpckldq {{.*#+}} xmm4 = xmm4[0],xmm1[0],xmm4[1],xmm1[1]8960; SSE-NEXT: pand %xmm3, %xmm48961; SSE-NEXT: por %xmm2, %xmm48962; SSE-NEXT: movdqa %xmm14, %xmm18963; SSE-NEXT: pandn %xmm4, %xmm18964; SSE-NEXT: movdqa %xmm7, %xmm28965; SSE-NEXT: pandn {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload8966; SSE-NEXT: pand %xmm7, %xmm128967; SSE-NEXT: por %xmm2, %xmm128968; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload8969; SSE-NEXT: punpckhwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload8970; SSE-NEXT: # xmm2 = xmm2[4],mem[4],xmm2[5],mem[5],xmm2[6],mem[6],xmm2[7],mem[7]8971; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm2[2,1,2,1]8972; SSE-NEXT: pshuflw {{.*#+}} xmm2 = xmm2[0,0,0,0,4,5,6,7]8973; SSE-NEXT: pshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,7,7,7,7]8974; SSE-NEXT: movdqa %xmm6, %xmm08975; SSE-NEXT: pandn %xmm2, %xmm08976; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm12[0,3,2,3]8977; SSE-NEXT: pshuflw {{.*#+}} xmm2 = xmm2[1,0,3,3,4,5,6,7]8978; SSE-NEXT: pand %xmm6, %xmm28979; SSE-NEXT: por %xmm2, %xmm08980; SSE-NEXT: pand %xmm14, %xmm08981; SSE-NEXT: por %xmm1, %xmm08982; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8983; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload8984; SSE-NEXT: pslldq {{.*#+}} xmm1 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,xmm1[0,1,2,3,4,5]8985; SSE-NEXT: movdqa %xmm3, %xmm28986; SSE-NEXT: pandn %xmm1, %xmm28987; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload8988; SSE-NEXT: psrld $16, %xmm18989; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload8990; SSE-NEXT: psrldq {{.*#+}} xmm4 = xmm4[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero8991; SSE-NEXT: punpckldq {{.*#+}} xmm4 = xmm4[0],xmm1[0],xmm4[1],xmm1[1]8992; SSE-NEXT: pand %xmm3, %xmm48993; SSE-NEXT: por %xmm2, %xmm48994; SSE-NEXT: movdqa %xmm14, %xmm18995; SSE-NEXT: pandn %xmm4, %xmm18996; SSE-NEXT: movdqa %xmm7, %xmm28997; SSE-NEXT: pandn {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload8998; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload8999; SSE-NEXT: pand %xmm7, %xmm49000; SSE-NEXT: por %xmm2, %xmm49001; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload9002; SSE-NEXT: punpckhwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload9003; SSE-NEXT: # xmm2 = xmm2[4],mem[4],xmm2[5],mem[5],xmm2[6],mem[6],xmm2[7],mem[7]9004; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm2[2,1,2,1]9005; SSE-NEXT: pshuflw {{.*#+}} xmm2 = xmm2[0,0,0,0,4,5,6,7]9006; SSE-NEXT: pshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,7,7,7,7]9007; SSE-NEXT: movdqa %xmm6, %xmm09008; SSE-NEXT: pandn %xmm2, %xmm09009; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm4[0,3,2,3]9010; SSE-NEXT: pshuflw {{.*#+}} xmm2 = xmm2[1,0,3,3,4,5,6,7]9011; SSE-NEXT: pand %xmm6, %xmm29012; SSE-NEXT: por %xmm2, %xmm09013; SSE-NEXT: pand %xmm14, %xmm09014; SSE-NEXT: por %xmm1, %xmm09015; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill9016; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload9017; SSE-NEXT: pslldq {{.*#+}} xmm1 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,xmm1[0,1,2,3,4,5]9018; SSE-NEXT: movdqa %xmm3, %xmm29019; SSE-NEXT: pandn %xmm1, %xmm29020; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload9021; SSE-NEXT: psrld $16, %xmm19022; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload9023; SSE-NEXT: psrldq {{.*#+}} xmm4 = xmm4[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero9024; SSE-NEXT: punpckldq {{.*#+}} xmm4 = xmm4[0],xmm1[0],xmm4[1],xmm1[1]9025; SSE-NEXT: pand %xmm3, %xmm49026; SSE-NEXT: por %xmm2, %xmm49027; SSE-NEXT: movdqa %xmm14, %xmm19028; SSE-NEXT: pandn %xmm4, %xmm19029; SSE-NEXT: movdqa %xmm7, %xmm29030; SSE-NEXT: pandn {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload9031; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload9032; SSE-NEXT: pand %xmm7, %xmm49033; SSE-NEXT: por %xmm2, %xmm49034; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload9035; SSE-NEXT: punpckhwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload9036; SSE-NEXT: # xmm2 = xmm2[4],mem[4],xmm2[5],mem[5],xmm2[6],mem[6],xmm2[7],mem[7]9037; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm2[2,1,2,1]9038; SSE-NEXT: pshuflw {{.*#+}} xmm2 = xmm2[0,0,0,0,4,5,6,7]9039; SSE-NEXT: pshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,7,7,7,7]9040; SSE-NEXT: movdqa %xmm6, %xmm09041; SSE-NEXT: pandn %xmm2, %xmm09042; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm4[0,3,2,3]9043; SSE-NEXT: pshuflw {{.*#+}} xmm2 = xmm2[1,0,3,3,4,5,6,7]9044; SSE-NEXT: pand %xmm6, %xmm29045; SSE-NEXT: por %xmm2, %xmm09046; SSE-NEXT: pand %xmm14, %xmm09047; SSE-NEXT: por %xmm1, %xmm09048; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill9049; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload9050; SSE-NEXT: movdqa %xmm10, %xmm19051; SSE-NEXT: pslldq {{.*#+}} xmm1 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,xmm1[0,1,2,3,4,5]9052; SSE-NEXT: movdqa %xmm3, %xmm29053; SSE-NEXT: pandn %xmm1, %xmm29054; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Reload9055; SSE-NEXT: movdqa %xmm11, %xmm19056; SSE-NEXT: psrld $16, %xmm19057; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Reload9058; SSE-NEXT: movdqa %xmm9, %xmm49059; SSE-NEXT: psrldq {{.*#+}} xmm4 = xmm4[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero9060; SSE-NEXT: punpckldq {{.*#+}} xmm4 = xmm4[0],xmm1[0],xmm4[1],xmm1[1]9061; SSE-NEXT: pand %xmm3, %xmm49062; SSE-NEXT: por %xmm2, %xmm49063; SSE-NEXT: movdqa %xmm14, %xmm19064; SSE-NEXT: pandn %xmm4, %xmm19065; SSE-NEXT: movdqa %xmm7, %xmm29066; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Reload9067; SSE-NEXT: pandn %xmm12, %xmm29068; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload9069; SSE-NEXT: movdqa %xmm13, %xmm49070; SSE-NEXT: pand %xmm7, %xmm49071; SSE-NEXT: por %xmm2, %xmm49072; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload9073; SSE-NEXT: movdqa %xmm5, %xmm29074; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload9075; SSE-NEXT: punpckhwd {{.*#+}} xmm2 = xmm2[4],xmm8[4],xmm2[5],xmm8[5],xmm2[6],xmm8[6],xmm2[7],xmm8[7]9076; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm2[2,1,2,1]9077; SSE-NEXT: pshuflw {{.*#+}} xmm2 = xmm2[0,0,0,0,4,5,6,7]9078; SSE-NEXT: pshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,7,7,7,7]9079; SSE-NEXT: movdqa %xmm6, %xmm159080; SSE-NEXT: pandn %xmm2, %xmm159081; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm4[0,3,2,3]9082; SSE-NEXT: pshuflw {{.*#+}} xmm2 = xmm2[1,0,3,3,4,5,6,7]9083; SSE-NEXT: pand %xmm6, %xmm29084; SSE-NEXT: por %xmm2, %xmm159085; SSE-NEXT: pand %xmm14, %xmm159086; SSE-NEXT: por %xmm1, %xmm159087; SSE-NEXT: movdqa %xmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill9088; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload9089; SSE-NEXT: movdqa %xmm15, %xmm19090; SSE-NEXT: pslldq {{.*#+}} xmm1 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,xmm1[0,1,2,3,4,5]9091; SSE-NEXT: movdqa %xmm3, %xmm29092; SSE-NEXT: pandn %xmm1, %xmm29093; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload9094; SSE-NEXT: psrld $16, %xmm19095; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload9096; SSE-NEXT: psrldq {{.*#+}} xmm4 = xmm4[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero9097; SSE-NEXT: punpckldq {{.*#+}} xmm4 = xmm4[0],xmm1[0],xmm4[1],xmm1[1]9098; SSE-NEXT: pand %xmm3, %xmm49099; SSE-NEXT: por %xmm2, %xmm49100; SSE-NEXT: movdqa %xmm14, %xmm19101; SSE-NEXT: pandn %xmm4, %xmm19102; SSE-NEXT: movdqa %xmm7, %xmm29103; SSE-NEXT: pandn {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload9104; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload9105; SSE-NEXT: pand %xmm7, %xmm49106; SSE-NEXT: por %xmm2, %xmm49107; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm4[0,3,2,3]9108; SSE-NEXT: pshuflw {{.*#+}} xmm2 = xmm2[1,0,3,3,4,5,6,7]9109; SSE-NEXT: pand %xmm6, %xmm29110; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload9111; SSE-NEXT: punpckhwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload9112; SSE-NEXT: # xmm4 = xmm4[4],mem[4],xmm4[5],mem[5],xmm4[6],mem[6],xmm4[7],mem[7]9113; SSE-NEXT: pshufd {{.*#+}} xmm4 = xmm4[2,1,2,1]9114; SSE-NEXT: pshuflw {{.*#+}} xmm4 = xmm4[0,0,0,0,4,5,6,7]9115; SSE-NEXT: pshufhw {{.*#+}} xmm4 = xmm4[0,1,2,3,7,7,7,7]9116; SSE-NEXT: pandn %xmm4, %xmm69117; SSE-NEXT: por %xmm2, %xmm69118; SSE-NEXT: pand %xmm14, %xmm69119; SSE-NEXT: por %xmm1, %xmm69120; SSE-NEXT: movdqa %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill9121; SSE-NEXT: pshufd $68, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload9122; SSE-NEXT: # xmm1 = mem[0,1,0,1]9123; SSE-NEXT: movdqa %xmm3, %xmm29124; SSE-NEXT: pandn %xmm1, %xmm29125; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload9126; SSE-NEXT: punpckhdq {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload9127; SSE-NEXT: # xmm1 = xmm1[2],mem[2],xmm1[3],mem[3]9128; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[0,1,0,1]9129; SSE-NEXT: pand %xmm3, %xmm19130; SSE-NEXT: por %xmm2, %xmm19131; SSE-NEXT: movdqa %xmm14, %xmm29132; SSE-NEXT: pandn %xmm1, %xmm29133; SSE-NEXT: pshufd $196, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload9134; SSE-NEXT: # xmm1 = mem[0,1,0,3]9135; SSE-NEXT: pshufhw {{.*#+}} xmm4 = xmm1[0,1,2,3,4,5,4,7]9136; SSE-NEXT: pshufd $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload9137; SSE-NEXT: # xmm1 = mem[2,2,3,3]9138; SSE-NEXT: punpckhqdq {{.*#+}} xmm4 = xmm4[1],xmm1[1]9139; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload9140; SSE-NEXT: punpcklwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload9141; SSE-NEXT: # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1],xmm1[2],mem[2],xmm1[3],mem[3]9142; SSE-NEXT: movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill9143; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[2,1,2,3]9144; SSE-NEXT: pshuflw {{.*#+}} xmm1 = xmm1[0,3,2,3,4,5,6,7]9145; SSE-NEXT: movss {{.*#+}} xmm4 = xmm1[0],xmm4[1,2,3]9146; SSE-NEXT: andps %xmm14, %xmm49147; SSE-NEXT: orps %xmm2, %xmm49148; SSE-NEXT: movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill9149; SSE-NEXT: pshufd $68, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload9150; SSE-NEXT: # xmm1 = mem[0,1,0,1]9151; SSE-NEXT: movdqa %xmm3, %xmm29152; SSE-NEXT: pandn %xmm1, %xmm29153; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload9154; SSE-NEXT: punpckhdq {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload9155; SSE-NEXT: # xmm1 = xmm1[2],mem[2],xmm1[3],mem[3]9156; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[0,1,0,1]9157; SSE-NEXT: pand %xmm3, %xmm19158; SSE-NEXT: por %xmm2, %xmm19159; SSE-NEXT: movdqa %xmm14, %xmm29160; SSE-NEXT: pandn %xmm1, %xmm29161; SSE-NEXT: pshufd $196, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload9162; SSE-NEXT: # xmm1 = mem[0,1,0,3]9163; SSE-NEXT: pshufhw {{.*#+}} xmm6 = xmm1[0,1,2,3,4,5,4,7]9164; SSE-NEXT: pshufd $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload9165; SSE-NEXT: # xmm1 = mem[2,2,3,3]9166; SSE-NEXT: punpckhqdq {{.*#+}} xmm6 = xmm6[1],xmm1[1]9167; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload9168; SSE-NEXT: punpcklwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload9169; SSE-NEXT: # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1],xmm1[2],mem[2],xmm1[3],mem[3]9170; SSE-NEXT: movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill9171; SSE-NEXT: pshufd {{.*#+}} xmm4 = xmm1[2,1,2,3]9172; SSE-NEXT: pshuflw {{.*#+}} xmm4 = xmm4[0,3,2,3,4,5,6,7]9173; SSE-NEXT: movss {{.*#+}} xmm6 = xmm4[0],xmm6[1,2,3]9174; SSE-NEXT: andps %xmm14, %xmm69175; SSE-NEXT: orps %xmm2, %xmm69176; SSE-NEXT: movaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill9177; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm10[0,1,0,1]9178; SSE-NEXT: movdqa %xmm3, %xmm49179; SSE-NEXT: pandn %xmm2, %xmm49180; SSE-NEXT: punpckhdq {{.*#+}} xmm9 = xmm9[2],xmm11[2],xmm9[3],xmm11[3]9181; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm9[0,1,0,1]9182; SSE-NEXT: pand %xmm3, %xmm29183; SSE-NEXT: por %xmm4, %xmm29184; SSE-NEXT: movdqa %xmm14, %xmm49185; SSE-NEXT: pandn %xmm2, %xmm49186; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm5[0,1,0,3]9187; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm2[0,1,2,3,4,5,4,7]9188; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm8[2,2,3,3]9189; SSE-NEXT: punpckhqdq {{.*#+}} xmm0 = xmm0[1],xmm2[1]9190; SSE-NEXT: punpcklwd {{.*#+}} xmm12 = xmm12[0],xmm13[0],xmm12[1],xmm13[1],xmm12[2],xmm13[2],xmm12[3],xmm13[3]9191; SSE-NEXT: movdqa %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill9192; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm12[2,1,2,3]9193; SSE-NEXT: pshuflw {{.*#+}} xmm2 = xmm2[0,3,2,3,4,5,6,7]9194; SSE-NEXT: movss {{.*#+}} xmm0 = xmm2[0],xmm0[1,2,3]9195; SSE-NEXT: andps %xmm14, %xmm09196; SSE-NEXT: orps %xmm4, %xmm09197; SSE-NEXT: movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill9198; SSE-NEXT: pshufd $68, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload9199; SSE-NEXT: # xmm2 = mem[0,1,0,1]9200; SSE-NEXT: movdqa %xmm3, %xmm49201; SSE-NEXT: pandn %xmm2, %xmm49202; SSE-NEXT: movdqa (%rsp), %xmm2 # 16-byte Reload9203; SSE-NEXT: punpckhdq {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload9204; SSE-NEXT: # xmm2 = xmm2[2],mem[2],xmm2[3],mem[3]9205; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm2[0,1,0,1]9206; SSE-NEXT: pand %xmm3, %xmm29207; SSE-NEXT: por %xmm4, %xmm29208; SSE-NEXT: movdqa %xmm14, %xmm49209; SSE-NEXT: pandn %xmm2, %xmm49210; SSE-NEXT: pshufd $196, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload9211; SSE-NEXT: # xmm2 = mem[0,1,0,3]9212; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm2[0,1,2,3,4,5,4,7]9213; SSE-NEXT: pshufd $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload9214; SSE-NEXT: # xmm2 = mem[2,2,3,3]9215; SSE-NEXT: punpckhqdq {{.*#+}} xmm0 = xmm0[1],xmm2[1]9216; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload9217; SSE-NEXT: punpcklwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload9218; SSE-NEXT: # xmm2 = xmm2[0],mem[0],xmm2[1],mem[1],xmm2[2],mem[2],xmm2[3],mem[3]9219; SSE-NEXT: pshufd {{.*#+}} xmm6 = xmm2[2,1,2,3]9220; SSE-NEXT: pshuflw {{.*#+}} xmm6 = xmm6[0,3,2,3,4,5,6,7]9221; SSE-NEXT: movss {{.*#+}} xmm0 = xmm6[0],xmm0[1,2,3]9222; SSE-NEXT: andps %xmm14, %xmm09223; SSE-NEXT: orps %xmm4, %xmm09224; SSE-NEXT: movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill9225; SSE-NEXT: pshufd $68, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload9226; SSE-NEXT: # xmm4 = mem[0,1,0,1]9227; SSE-NEXT: movdqa %xmm3, %xmm69228; SSE-NEXT: pandn %xmm4, %xmm69229; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload9230; SSE-NEXT: punpckhdq {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload9231; SSE-NEXT: # xmm4 = xmm4[2],mem[2],xmm4[3],mem[3]9232; SSE-NEXT: pshufd {{.*#+}} xmm4 = xmm4[0,1,0,1]9233; SSE-NEXT: pand %xmm3, %xmm49234; SSE-NEXT: por %xmm6, %xmm49235; SSE-NEXT: movdqa %xmm14, %xmm69236; SSE-NEXT: pandn %xmm4, %xmm69237; SSE-NEXT: pshufd $196, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload9238; SSE-NEXT: # xmm4 = mem[0,1,0,3]9239; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm4[0,1,2,3,4,5,4,7]9240; SSE-NEXT: pshufd $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload9241; SSE-NEXT: # xmm4 = mem[2,2,3,3]9242; SSE-NEXT: punpckhqdq {{.*#+}} xmm0 = xmm0[1],xmm4[1]9243; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload9244; SSE-NEXT: punpcklwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Folded Reload9245; SSE-NEXT: # xmm8 = xmm8[0],mem[0],xmm8[1],mem[1],xmm8[2],mem[2],xmm8[3],mem[3]9246; SSE-NEXT: pshufd {{.*#+}} xmm4 = xmm8[2,1,2,3]9247; SSE-NEXT: pshuflw {{.*#+}} xmm4 = xmm4[0,3,2,3,4,5,6,7]9248; SSE-NEXT: movss {{.*#+}} xmm0 = xmm4[0],xmm0[1,2,3]9249; SSE-NEXT: andps %xmm14, %xmm09250; SSE-NEXT: orps %xmm6, %xmm09251; SSE-NEXT: movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill9252; SSE-NEXT: pshufd $68, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload9253; SSE-NEXT: # xmm4 = mem[0,1,0,1]9254; SSE-NEXT: movdqa %xmm3, %xmm69255; SSE-NEXT: pandn %xmm4, %xmm69256; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload9257; SSE-NEXT: punpckhdq {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload9258; SSE-NEXT: # xmm4 = xmm4[2],mem[2],xmm4[3],mem[3]9259; SSE-NEXT: pshufd {{.*#+}} xmm4 = xmm4[0,1,0,1]9260; SSE-NEXT: pand %xmm3, %xmm49261; SSE-NEXT: por %xmm6, %xmm49262; SSE-NEXT: movdqa %xmm14, %xmm69263; SSE-NEXT: pandn %xmm4, %xmm69264; SSE-NEXT: pshufd $196, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload9265; SSE-NEXT: # xmm4 = mem[0,1,0,3]9266; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm4[0,1,2,3,4,5,4,7]9267; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Reload9268; SSE-NEXT: pshufd {{.*#+}} xmm4 = xmm12[2,2,3,3]9269; SSE-NEXT: punpckhqdq {{.*#+}} xmm0 = xmm0[1],xmm4[1]9270; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload9271; SSE-NEXT: punpcklwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload9272; SSE-NEXT: # xmm4 = xmm4[0],mem[0],xmm4[1],mem[1],xmm4[2],mem[2],xmm4[3],mem[3]9273; SSE-NEXT: pshufd {{.*#+}} xmm10 = xmm4[2,1,2,3]9274; SSE-NEXT: pshuflw {{.*#+}} xmm10 = xmm10[0,3,2,3,4,5,6,7]9275; SSE-NEXT: movss {{.*#+}} xmm0 = xmm10[0],xmm0[1,2,3]9276; SSE-NEXT: andps %xmm14, %xmm09277; SSE-NEXT: orps %xmm6, %xmm09278; SSE-NEXT: movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill9279; SSE-NEXT: pshufd {{.*#+}} xmm6 = xmm15[0,1,0,1]9280; SSE-NEXT: movdqa %xmm3, %xmm109281; SSE-NEXT: pandn %xmm6, %xmm109282; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload9283; SSE-NEXT: punpckhdq {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Folded Reload9284; SSE-NEXT: # xmm6 = xmm6[2],mem[2],xmm6[3],mem[3]9285; SSE-NEXT: pshufd {{.*#+}} xmm6 = xmm6[0,1,0,1]9286; SSE-NEXT: pand %xmm3, %xmm69287; SSE-NEXT: por %xmm10, %xmm69288; SSE-NEXT: movdqa %xmm14, %xmm119289; SSE-NEXT: pandn %xmm6, %xmm119290; SSE-NEXT: pshufd $196, {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Folded Reload9291; SSE-NEXT: # xmm6 = mem[0,1,0,3]9292; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm6[0,1,2,3,4,5,4,7]9293; SSE-NEXT: pshufd $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Folded Reload9294; SSE-NEXT: # xmm6 = mem[2,2,3,3]9295; SSE-NEXT: punpckhqdq {{.*#+}} xmm0 = xmm0[1],xmm6[1]9296; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload9297; SSE-NEXT: punpcklwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Folded Reload9298; SSE-NEXT: # xmm10 = xmm10[0],mem[0],xmm10[1],mem[1],xmm10[2],mem[2],xmm10[3],mem[3]9299; SSE-NEXT: pshufd {{.*#+}} xmm6 = xmm10[2,1,2,3]9300; SSE-NEXT: pshuflw {{.*#+}} xmm6 = xmm6[0,3,2,3,4,5,6,7]9301; SSE-NEXT: movss {{.*#+}} xmm0 = xmm6[0],xmm0[1,2,3]9302; SSE-NEXT: andps %xmm14, %xmm09303; SSE-NEXT: orps %xmm11, %xmm09304; SSE-NEXT: movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill9305; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload9306; SSE-NEXT: movdqa %xmm0, %xmm69307; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload9308; SSE-NEXT: punpckhdq {{.*#+}} xmm6 = xmm6[2],xmm1[2],xmm6[3],xmm1[3]9309; SSE-NEXT: pshufd {{.*#+}} xmm6 = xmm6[0,1,0,1]9310; SSE-NEXT: pand %xmm3, %xmm69311; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Reload9312; SSE-NEXT: pshufd {{.*#+}} xmm11 = xmm9[0,1,0,1]9313; SSE-NEXT: pandn %xmm11, %xmm39314; SSE-NEXT: por %xmm6, %xmm39315; SSE-NEXT: movdqa %xmm14, %xmm69316; SSE-NEXT: pandn %xmm3, %xmm69317; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload9318; SSE-NEXT: pshufd {{.*#+}} xmm3 = xmm13[0,1,0,3]9319; SSE-NEXT: pshufhw {{.*#+}} xmm5 = xmm3[0,1,2,3,4,5,4,7]9320; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload9321; SSE-NEXT: pshufd {{.*#+}} xmm3 = xmm15[2,2,3,3]9322; SSE-NEXT: punpckhqdq {{.*#+}} xmm5 = xmm5[1],xmm3[1]9323; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload9324; SSE-NEXT: punpcklwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Folded Reload9325; SSE-NEXT: # xmm3 = xmm3[0],mem[0],xmm3[1],mem[1],xmm3[2],mem[2],xmm3[3],mem[3]9326; SSE-NEXT: pshufd {{.*#+}} xmm11 = xmm3[2,1,2,3]9327; SSE-NEXT: pshuflw {{.*#+}} xmm11 = xmm11[0,3,2,3,4,5,6,7]9328; SSE-NEXT: movss {{.*#+}} xmm5 = xmm11[0],xmm5[1,2,3]9329; SSE-NEXT: andps %xmm14, %xmm59330; SSE-NEXT: orps %xmm6, %xmm59331; SSE-NEXT: movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill9332; SSE-NEXT: movdqa %xmm7, %xmm69333; SSE-NEXT: pandn %xmm13, %xmm69334; SSE-NEXT: movdqa %xmm15, %xmm119335; SSE-NEXT: pand %xmm7, %xmm119336; SSE-NEXT: por %xmm6, %xmm119337; SSE-NEXT: pshuflw {{.*#+}} xmm6 = xmm11[0,1,1,0,4,5,6,7]9338; SSE-NEXT: pshufhw {{.*#+}} xmm6 = xmm6[0,1,2,3,7,7,7,7]9339; SSE-NEXT: pshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,6,5,6,7]9340; SSE-NEXT: pshufd {{.*#+}} xmm3 = xmm3[2,2,2,2]9341; SSE-NEXT: movss {{.*#+}} xmm6 = xmm3[0],xmm6[1,2,3]9342; SSE-NEXT: punpckhwd {{.*#+}} xmm0 = xmm0[4],xmm1[4],xmm0[5],xmm1[5],xmm0[6],xmm1[6],xmm0[7],xmm1[7]9343; SSE-NEXT: pshufd {{.*#+}} xmm3 = xmm0[0,1,2,1]9344; SSE-NEXT: pshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,4,4,7,7]9345; SSE-NEXT: punpckhwd {{.*#+}} xmm3 = xmm3[4],xmm9[4],xmm3[5],xmm9[5],xmm3[6],xmm9[6],xmm3[7],xmm9[7]9346; SSE-NEXT: pshuflw {{.*#+}} xmm3 = xmm3[2,1,2,3,4,5,6,7]9347; SSE-NEXT: pshufd {{.*#+}} xmm3 = xmm3[0,1,2,0]9348; SSE-NEXT: pshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,4,6,4,7]9349; SSE-NEXT: movdqa %xmm14, %xmm09350; SSE-NEXT: pandn %xmm3, %xmm09351; SSE-NEXT: andps %xmm14, %xmm69352; SSE-NEXT: por %xmm6, %xmm09353; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill9354; SSE-NEXT: movdqa %xmm7, %xmm39355; SSE-NEXT: pandn {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Folded Reload9356; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Reload9357; SSE-NEXT: movdqa %xmm9, %xmm69358; SSE-NEXT: pand %xmm7, %xmm69359; SSE-NEXT: por %xmm3, %xmm69360; SSE-NEXT: pshuflw {{.*#+}} xmm3 = xmm6[0,1,1,0,4,5,6,7]9361; SSE-NEXT: pshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,7,7,7,7]9362; SSE-NEXT: pshufhw $230, {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Folded Reload9363; SSE-NEXT: # xmm5 = mem[0,1,2,3,6,5,6,7]9364; SSE-NEXT: pshufd {{.*#+}} xmm5 = xmm5[2,2,2,2]9365; SSE-NEXT: movss {{.*#+}} xmm3 = xmm5[0],xmm3[1,2,3]9366; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload9367; SSE-NEXT: movdqa %xmm0, %xmm59368; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload9369; SSE-NEXT: punpckhwd {{.*#+}} xmm5 = xmm5[4],xmm6[4],xmm5[5],xmm6[5],xmm5[6],xmm6[6],xmm5[7],xmm6[7]9370; SSE-NEXT: pshufd {{.*#+}} xmm5 = xmm5[0,1,2,1]9371; SSE-NEXT: pshufhw {{.*#+}} xmm5 = xmm5[0,1,2,3,4,4,7,7]9372; SSE-NEXT: punpckhwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Folded Reload9373; SSE-NEXT: # xmm5 = xmm5[4],mem[4],xmm5[5],mem[5],xmm5[6],mem[6],xmm5[7],mem[7]9374; SSE-NEXT: pshuflw {{.*#+}} xmm5 = xmm5[2,1,2,3,4,5,6,7]9375; SSE-NEXT: pshufd {{.*#+}} xmm5 = xmm5[0,1,2,0]9376; SSE-NEXT: pshufhw {{.*#+}} xmm5 = xmm5[0,1,2,3,4,6,4,7]9377; SSE-NEXT: movdqa %xmm14, %xmm19378; SSE-NEXT: pandn %xmm5, %xmm19379; SSE-NEXT: andps %xmm14, %xmm39380; SSE-NEXT: por %xmm3, %xmm19381; SSE-NEXT: movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill9382; SSE-NEXT: movdqa %xmm7, %xmm39383; SSE-NEXT: pandn {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Folded Reload9384; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload9385; SSE-NEXT: pand %xmm7, %xmm59386; SSE-NEXT: por %xmm3, %xmm59387; SSE-NEXT: pshuflw {{.*#+}} xmm3 = xmm5[0,1,1,0,4,5,6,7]9388; SSE-NEXT: pshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,7,7,7,7]9389; SSE-NEXT: pshufhw $230, {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Folded Reload9390; SSE-NEXT: # xmm5 = mem[0,1,2,3,6,5,6,7]9391; SSE-NEXT: pshufd {{.*#+}} xmm5 = xmm5[2,2,2,2]9392; SSE-NEXT: movss {{.*#+}} xmm3 = xmm5[0],xmm3[1,2,3]9393; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload9394; SSE-NEXT: punpckhwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Folded Reload9395; SSE-NEXT: # xmm5 = xmm5[4],mem[4],xmm5[5],mem[5],xmm5[6],mem[6],xmm5[7],mem[7]9396; SSE-NEXT: pshufd {{.*#+}} xmm5 = xmm5[0,1,2,1]9397; SSE-NEXT: pshufhw {{.*#+}} xmm5 = xmm5[0,1,2,3,4,4,7,7]9398; SSE-NEXT: punpckhwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Folded Reload9399; SSE-NEXT: # xmm5 = xmm5[4],mem[4],xmm5[5],mem[5],xmm5[6],mem[6],xmm5[7],mem[7]9400; SSE-NEXT: pshuflw {{.*#+}} xmm5 = xmm5[2,1,2,3,4,5,6,7]9401; SSE-NEXT: pshufd {{.*#+}} xmm5 = xmm5[0,1,2,0]9402; SSE-NEXT: pshufhw {{.*#+}} xmm5 = xmm5[0,1,2,3,4,6,4,7]9403; SSE-NEXT: movdqa %xmm14, %xmm19404; SSE-NEXT: pandn %xmm5, %xmm19405; SSE-NEXT: andps %xmm14, %xmm39406; SSE-NEXT: por %xmm3, %xmm19407; SSE-NEXT: movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill9408; SSE-NEXT: movdqa %xmm7, %xmm39409; SSE-NEXT: pandn {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Folded Reload9410; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload9411; SSE-NEXT: pand %xmm7, %xmm59412; SSE-NEXT: por %xmm3, %xmm59413; SSE-NEXT: pshuflw {{.*#+}} xmm3 = xmm5[0,1,1,0,4,5,6,7]9414; SSE-NEXT: pshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,7,7,7,7]9415; SSE-NEXT: pshufhw $230, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload9416; SSE-NEXT: # xmm1 = mem[0,1,2,3,6,5,6,7]9417; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[2,2,2,2]9418; SSE-NEXT: movss {{.*#+}} xmm3 = xmm1[0],xmm3[1,2,3]9419; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Reload9420; SSE-NEXT: movdqa %xmm11, %xmm19421; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload9422; SSE-NEXT: punpckhwd {{.*#+}} xmm1 = xmm1[4],xmm15[4],xmm1[5],xmm15[5],xmm1[6],xmm15[6],xmm1[7],xmm15[7]9423; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[0,1,2,1]9424; SSE-NEXT: pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,4,7,7]9425; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload9426; SSE-NEXT: punpckhwd {{.*#+}} xmm1 = xmm1[4],xmm5[4],xmm1[5],xmm5[5],xmm1[6],xmm5[6],xmm1[7],xmm5[7]9427; SSE-NEXT: pshuflw {{.*#+}} xmm1 = xmm1[2,1,2,3,4,5,6,7]9428; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[0,1,2,0]9429; SSE-NEXT: pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,6,4,7]9430; SSE-NEXT: movdqa %xmm14, %xmm139431; SSE-NEXT: pandn %xmm1, %xmm139432; SSE-NEXT: andps %xmm14, %xmm39433; SSE-NEXT: por %xmm3, %xmm139434; SSE-NEXT: movdqa %xmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill9435; SSE-NEXT: movdqa %xmm7, %xmm19436; SSE-NEXT: pandn {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload9437; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload9438; SSE-NEXT: pand %xmm7, %xmm39439; SSE-NEXT: por %xmm1, %xmm39440; SSE-NEXT: pshuflw {{.*#+}} xmm1 = xmm3[0,1,1,0,4,5,6,7]9441; SSE-NEXT: pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,7,7,7,7]9442; SSE-NEXT: pshufhw {{.*#+}} xmm3 = xmm8[0,1,2,3,6,5,6,7]9443; SSE-NEXT: pshufd {{.*#+}} xmm3 = xmm3[2,2,2,2]9444; SSE-NEXT: movss {{.*#+}} xmm1 = xmm3[0],xmm1[1,2,3]9445; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload9446; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload9447; SSE-NEXT: punpckhwd {{.*#+}} xmm3 = xmm3[4],xmm8[4],xmm3[5],xmm8[5],xmm3[6],xmm8[6],xmm3[7],xmm8[7]9448; SSE-NEXT: pshufd {{.*#+}} xmm3 = xmm3[0,1,2,1]9449; SSE-NEXT: pshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,4,4,7,7]9450; SSE-NEXT: punpckhwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Folded Reload9451; SSE-NEXT: # xmm3 = xmm3[4],mem[4],xmm3[5],mem[5],xmm3[6],mem[6],xmm3[7],mem[7]9452; SSE-NEXT: pshuflw {{.*#+}} xmm3 = xmm3[2,1,2,3,4,5,6,7]9453; SSE-NEXT: pshufd {{.*#+}} xmm3 = xmm3[0,1,2,0]9454; SSE-NEXT: pshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,4,6,4,7]9455; SSE-NEXT: movdqa %xmm14, %xmm139456; SSE-NEXT: pandn %xmm3, %xmm139457; SSE-NEXT: andps %xmm14, %xmm19458; SSE-NEXT: por %xmm1, %xmm139459; SSE-NEXT: movdqa %xmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill9460; SSE-NEXT: movdqa %xmm7, %xmm19461; SSE-NEXT: pandn {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload9462; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload9463; SSE-NEXT: pand %xmm7, %xmm39464; SSE-NEXT: por %xmm1, %xmm39465; SSE-NEXT: pshuflw {{.*#+}} xmm1 = xmm3[0,1,1,0,4,5,6,7]9466; SSE-NEXT: pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,7,7,7,7]9467; SSE-NEXT: pshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,6,5,6,7]9468; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm2[2,2,2,2]9469; SSE-NEXT: movss {{.*#+}} xmm1 = xmm2[0],xmm1[1,2,3]9470; SSE-NEXT: movdqa (%rsp), %xmm2 # 16-byte Reload9471; SSE-NEXT: punpckhwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload9472; SSE-NEXT: # xmm2 = xmm2[4],mem[4],xmm2[5],mem[5],xmm2[6],mem[6],xmm2[7],mem[7]9473; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm2[0,1,2,1]9474; SSE-NEXT: pshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,4,7,7]9475; SSE-NEXT: punpckhwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload9476; SSE-NEXT: # xmm2 = xmm2[4],mem[4],xmm2[5],mem[5],xmm2[6],mem[6],xmm2[7],mem[7]9477; SSE-NEXT: pshuflw {{.*#+}} xmm2 = xmm2[2,1,2,3,4,5,6,7]9478; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm2[0,1,2,0]9479; SSE-NEXT: pshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,6,4,7]9480; SSE-NEXT: movdqa %xmm14, %xmm39481; SSE-NEXT: pandn %xmm2, %xmm39482; SSE-NEXT: andps %xmm14, %xmm19483; SSE-NEXT: por %xmm1, %xmm39484; SSE-NEXT: movdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill9485; SSE-NEXT: movdqa %xmm7, %xmm19486; SSE-NEXT: pandn {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload9487; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload9488; SSE-NEXT: pand %xmm7, %xmm29489; SSE-NEXT: por %xmm1, %xmm29490; SSE-NEXT: pshuflw {{.*#+}} xmm1 = xmm2[0,1,1,0,4,5,6,7]9491; SSE-NEXT: pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,7,7,7,7]9492; SSE-NEXT: pshufhw {{.*#+}} xmm2 = xmm10[0,1,2,3,6,5,6,7]9493; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm2[2,2,2,2]9494; SSE-NEXT: movss {{.*#+}} xmm1 = xmm2[0],xmm1[1,2,3]9495; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload9496; SSE-NEXT: punpckhwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload9497; SSE-NEXT: # xmm2 = xmm2[4],mem[4],xmm2[5],mem[5],xmm2[6],mem[6],xmm2[7],mem[7]9498; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm2[0,1,2,1]9499; SSE-NEXT: pshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,4,7,7]9500; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload9501; SSE-NEXT: punpckhwd {{.*#+}} xmm2 = xmm2[4],xmm3[4],xmm2[5],xmm3[5],xmm2[6],xmm3[6],xmm2[7],xmm3[7]9502; SSE-NEXT: pshuflw {{.*#+}} xmm2 = xmm2[2,1,2,3,4,5,6,7]9503; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm2[0,1,2,0]9504; SSE-NEXT: pshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,6,4,7]9505; SSE-NEXT: movdqa %xmm14, %xmm109506; SSE-NEXT: pandn %xmm2, %xmm109507; SSE-NEXT: andps %xmm14, %xmm19508; SSE-NEXT: por %xmm1, %xmm109509; SSE-NEXT: movdqa %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill9510; SSE-NEXT: movdqa %xmm7, %xmm19511; SSE-NEXT: pandn {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload9512; SSE-NEXT: pand %xmm7, %xmm129513; SSE-NEXT: por %xmm1, %xmm129514; SSE-NEXT: pshuflw {{.*#+}} xmm1 = xmm12[0,1,1,0,4,5,6,7]9515; SSE-NEXT: pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,7,7,7,7]9516; SSE-NEXT: pshufhw {{.*#+}} xmm2 = xmm4[0,1,2,3,6,5,6,7]9517; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm2[2,2,2,2]9518; SSE-NEXT: movss {{.*#+}} xmm1 = xmm2[0],xmm1[1,2,3]9519; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload9520; SSE-NEXT: punpckhwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload9521; SSE-NEXT: # xmm2 = xmm2[4],mem[4],xmm2[5],mem[5],xmm2[6],mem[6],xmm2[7],mem[7]9522; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm2[0,1,2,1]9523; SSE-NEXT: pshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,4,7,7]9524; SSE-NEXT: punpckhwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload9525; SSE-NEXT: # xmm2 = xmm2[4],mem[4],xmm2[5],mem[5],xmm2[6],mem[6],xmm2[7],mem[7]9526; SSE-NEXT: andps %xmm14, %xmm19527; SSE-NEXT: pshuflw {{.*#+}} xmm2 = xmm2[2,1,2,3,4,5,6,7]9528; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm2[0,1,2,0]9529; SSE-NEXT: pshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,6,4,7]9530; SSE-NEXT: pandn %xmm2, %xmm149531; SSE-NEXT: por %xmm1, %xmm149532; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload9533; SSE-NEXT: movdqa %xmm2, %xmm19534; SSE-NEXT: psrld $16, %xmm19535; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload9536; SSE-NEXT: punpckhwd {{.*#+}} xmm1 = xmm1[4],xmm10[4],xmm1[5],xmm10[5],xmm1[6],xmm10[6],xmm1[7],xmm10[7]9537; SSE-NEXT: movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill9538; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm2[2,3,2,3]9539; SSE-NEXT: movdqa %xmm2, %xmm49540; SSE-NEXT: movdqa %xmm10, %xmm29541; SSE-NEXT: punpckhwd {{.*#+}} xmm4 = xmm4[4],xmm10[4],xmm4[5],xmm10[5],xmm4[6],xmm10[6],xmm4[7],xmm10[7]9542; SSE-NEXT: movdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill9543; SSE-NEXT: psrlq $48, %xmm29544; SSE-NEXT: punpcklwd {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1],xmm1[2],xmm2[2],xmm1[3],xmm2[3]9545; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload9546; SSE-NEXT: psrlq $16, %xmm29547; SSE-NEXT: punpcklwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload9548; SSE-NEXT: # xmm2 = xmm2[0],mem[0],xmm2[1],mem[1],xmm2[2],mem[2],xmm2[3],mem[3]9549; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm2[1,1,1,1]9550; SSE-NEXT: punpckldq {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]9551; SSE-NEXT: pshufd $196, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload9552; SSE-NEXT: # xmm2 = mem[0,1,0,3]9553; SSE-NEXT: pshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,5,4,7]9554; SSE-NEXT: punpckhdq {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload9555; SSE-NEXT: # xmm2 = xmm2[2],mem[2],xmm2[3],mem[3]9556; SSE-NEXT: punpckhwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload9557; SSE-NEXT: # xmm2 = xmm2[4],mem[4],xmm2[5],mem[5],xmm2[6],mem[6],xmm2[7],mem[7]9558; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm2[3,1,2,0]9559; SSE-NEXT: pshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,6,6,7]9560; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm2[0,1,2,1]9561; SSE-NEXT: pshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,5,6,4,7]9562; SSE-NEXT: movsd {{.*#+}} xmm2 = xmm1[0],xmm2[1]9563; SSE-NEXT: movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill9564; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload9565; SSE-NEXT: movdqa %xmm13, %xmm19566; SSE-NEXT: psrld $16, %xmm19567; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload9568; SSE-NEXT: punpckhwd {{.*#+}} xmm1 = xmm1[4],xmm2[4],xmm1[5],xmm2[5],xmm1[6],xmm2[6],xmm1[7],xmm2[7]9569; SSE-NEXT: movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill9570; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm13[2,3,2,3]9571; SSE-NEXT: punpckhwd {{.*#+}} xmm13 = xmm13[4],xmm2[4],xmm13[5],xmm2[5],xmm13[6],xmm2[6],xmm13[7],xmm2[7]9572; SSE-NEXT: movdqa %xmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill9573; SSE-NEXT: psrlq $48, %xmm29574; SSE-NEXT: punpcklwd {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1],xmm1[2],xmm2[2],xmm1[3],xmm2[3]9575; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload9576; SSE-NEXT: psrlq $16, %xmm29577; SSE-NEXT: punpcklwd {{.*#+}} xmm2 = xmm2[0],xmm9[0],xmm2[1],xmm9[1],xmm2[2],xmm9[2],xmm2[3],xmm9[3]9578; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm2[1,1,1,1]9579; SSE-NEXT: punpckldq {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]9580; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm0[0,1,0,3]9581; SSE-NEXT: pshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,5,4,7]9582; SSE-NEXT: punpckhdq {{.*#+}} xmm2 = xmm2[2],xmm6[2],xmm2[3],xmm6[3]9583; SSE-NEXT: punpckhwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload9584; SSE-NEXT: # xmm2 = xmm2[4],mem[4],xmm2[5],mem[5],xmm2[6],mem[6],xmm2[7],mem[7]9585; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm2[3,1,2,0]9586; SSE-NEXT: pshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,6,6,7]9587; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm2[0,1,2,1]9588; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm2[0,1,2,3,5,6,4,7]9589; SSE-NEXT: movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]9590; SSE-NEXT: movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill9591; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload9592; SSE-NEXT: movdqa %xmm0, %xmm19593; SSE-NEXT: psrld $16, %xmm19594; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload9595; SSE-NEXT: punpckhwd {{.*#+}} xmm1 = xmm1[4],xmm2[4],xmm1[5],xmm2[5],xmm1[6],xmm2[6],xmm1[7],xmm2[7]9596; SSE-NEXT: movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill9597; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm0[2,3,2,3]9598; SSE-NEXT: punpckhwd {{.*#+}} xmm0 = xmm0[4],xmm2[4],xmm0[5],xmm2[5],xmm0[6],xmm2[6],xmm0[7],xmm2[7]9599; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill9600; SSE-NEXT: psrlq $48, %xmm29601; SSE-NEXT: punpcklwd {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1],xmm1[2],xmm2[2],xmm1[3],xmm2[3]9602; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload9603; SSE-NEXT: psrlq $16, %xmm29604; SSE-NEXT: punpcklwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload9605; SSE-NEXT: # xmm2 = xmm2[0],mem[0],xmm2[1],mem[1],xmm2[2],mem[2],xmm2[3],mem[3]9606; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm2[1,1,1,1]9607; SSE-NEXT: punpckldq {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]9608; SSE-NEXT: pshufd $196, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload9609; SSE-NEXT: # xmm2 = mem[0,1,0,3]9610; SSE-NEXT: pshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,5,4,7]9611; SSE-NEXT: punpckhdq {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload9612; SSE-NEXT: # xmm2 = xmm2[2],mem[2],xmm2[3],mem[3]9613; SSE-NEXT: punpckhwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload9614; SSE-NEXT: # xmm2 = xmm2[4],mem[4],xmm2[5],mem[5],xmm2[6],mem[6],xmm2[7],mem[7]9615; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm2[3,1,2,0]9616; SSE-NEXT: pshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,6,6,7]9617; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm2[0,1,2,1]9618; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm2[0,1,2,3,5,6,4,7]9619; SSE-NEXT: movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]9620; SSE-NEXT: movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill9621; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload9622; SSE-NEXT: movdqa %xmm0, %xmm19623; SSE-NEXT: psrld $16, %xmm19624; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload9625; SSE-NEXT: punpckhwd {{.*#+}} xmm1 = xmm1[4],xmm2[4],xmm1[5],xmm2[5],xmm1[6],xmm2[6],xmm1[7],xmm2[7]9626; SSE-NEXT: movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill9627; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm0[2,3,2,3]9628; SSE-NEXT: punpckhwd {{.*#+}} xmm0 = xmm0[4],xmm2[4],xmm0[5],xmm2[5],xmm0[6],xmm2[6],xmm0[7],xmm2[7]9629; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill9630; SSE-NEXT: psrlq $48, %xmm29631; SSE-NEXT: punpcklwd {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1],xmm1[2],xmm2[2],xmm1[3],xmm2[3]9632; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload9633; SSE-NEXT: psrlq $16, %xmm29634; SSE-NEXT: punpcklwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload9635; SSE-NEXT: # xmm2 = xmm2[0],mem[0],xmm2[1],mem[1],xmm2[2],mem[2],xmm2[3],mem[3]9636; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm2[1,1,1,1]9637; SSE-NEXT: punpckldq {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]9638; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm11[0,1,0,3]9639; SSE-NEXT: pshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,5,4,7]9640; SSE-NEXT: punpckhdq {{.*#+}} xmm2 = xmm2[2],xmm15[2],xmm2[3],xmm15[3]9641; SSE-NEXT: punpckhwd {{.*#+}} xmm2 = xmm2[4],xmm5[4],xmm2[5],xmm5[5],xmm2[6],xmm5[6],xmm2[7],xmm5[7]9642; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm2[3,1,2,0]9643; SSE-NEXT: pshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,6,6,7]9644; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm2[0,1,2,1]9645; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm2[0,1,2,3,5,6,4,7]9646; SSE-NEXT: movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]9647; SSE-NEXT: movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill9648; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload9649; SSE-NEXT: movdqa %xmm2, %xmm19650; SSE-NEXT: psrld $16, %xmm19651; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload9652; SSE-NEXT: punpckhwd {{.*#+}} xmm1 = xmm1[4],xmm0[4],xmm1[5],xmm0[5],xmm1[6],xmm0[6],xmm1[7],xmm0[7]9653; SSE-NEXT: movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill9654; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm2[2,3,2,3]9655; SSE-NEXT: movdqa %xmm2, %xmm49656; SSE-NEXT: movdqa %xmm0, %xmm29657; SSE-NEXT: punpckhwd {{.*#+}} xmm4 = xmm4[4],xmm0[4],xmm4[5],xmm0[5],xmm4[6],xmm0[6],xmm4[7],xmm0[7]9658; SSE-NEXT: movdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill9659; SSE-NEXT: psrlq $48, %xmm29660; SSE-NEXT: punpcklwd {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1],xmm1[2],xmm2[2],xmm1[3],xmm2[3]9661; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload9662; SSE-NEXT: psrlq $16, %xmm29663; SSE-NEXT: punpcklwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload9664; SSE-NEXT: # xmm2 = xmm2[0],mem[0],xmm2[1],mem[1],xmm2[2],mem[2],xmm2[3],mem[3]9665; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm2[1,1,1,1]9666; SSE-NEXT: punpckldq {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]9667; SSE-NEXT: pshufd $196, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload9668; SSE-NEXT: # xmm2 = mem[0,1,0,3]9669; SSE-NEXT: pshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,5,4,7]9670; SSE-NEXT: punpckhdq {{.*#+}} xmm2 = xmm2[2],xmm8[2],xmm2[3],xmm8[3]9671; SSE-NEXT: punpckhwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload9672; SSE-NEXT: # xmm2 = xmm2[4],mem[4],xmm2[5],mem[5],xmm2[6],mem[6],xmm2[7],mem[7]9673; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm2[3,1,2,0]9674; SSE-NEXT: pshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,6,6,7]9675; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm2[0,1,2,1]9676; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm2[0,1,2,3,5,6,4,7]9677; SSE-NEXT: movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]9678; SSE-NEXT: movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill9679; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Reload9680; SSE-NEXT: movdqa %xmm12, %xmm139681; SSE-NEXT: psrld $16, %xmm139682; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload9683; SSE-NEXT: punpckhwd {{.*#+}} xmm13 = xmm13[4],xmm2[4],xmm13[5],xmm2[5],xmm13[6],xmm2[6],xmm13[7],xmm2[7]9684; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm12[2,3,2,3]9685; SSE-NEXT: punpckhwd {{.*#+}} xmm12 = xmm12[4],xmm2[4],xmm12[5],xmm2[5],xmm12[6],xmm2[6],xmm12[7],xmm2[7]9686; SSE-NEXT: movdqa %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill9687; SSE-NEXT: psrlq $48, %xmm29688; SSE-NEXT: punpcklwd {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1],xmm1[2],xmm2[2],xmm1[3],xmm2[3]9689; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload9690; SSE-NEXT: psrlq $16, %xmm29691; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload9692; SSE-NEXT: punpcklwd {{.*#+}} xmm2 = xmm2[0],xmm10[0],xmm2[1],xmm10[1],xmm2[2],xmm10[2],xmm2[3],xmm10[3]9693; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm2[1,1,1,1]9694; SSE-NEXT: punpckldq {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]9695; SSE-NEXT: pshufd $196, (%rsp), %xmm2 # 16-byte Folded Reload9696; SSE-NEXT: # xmm2 = mem[0,1,0,3]9697; SSE-NEXT: pshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,5,4,7]9698; SSE-NEXT: punpckhdq {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload9699; SSE-NEXT: # xmm2 = xmm2[2],mem[2],xmm2[3],mem[3]9700; SSE-NEXT: punpckhwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload9701; SSE-NEXT: # xmm2 = xmm2[4],mem[4],xmm2[5],mem[5],xmm2[6],mem[6],xmm2[7],mem[7]9702; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm2[3,1,2,0]9703; SSE-NEXT: pshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,6,6,7]9704; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm2[0,1,2,1]9705; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm2[0,1,2,3,5,6,4,7]9706; SSE-NEXT: movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]9707; SSE-NEXT: movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill9708; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload9709; SSE-NEXT: movdqa %xmm0, %xmm129710; SSE-NEXT: psrld $16, %xmm129711; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload9712; SSE-NEXT: punpckhwd {{.*#+}} xmm12 = xmm12[4],xmm2[4],xmm12[5],xmm2[5],xmm12[6],xmm2[6],xmm12[7],xmm2[7]9713; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm0[2,3,2,3]9714; SSE-NEXT: punpckhwd {{.*#+}} xmm0 = xmm0[4],xmm2[4],xmm0[5],xmm2[5],xmm0[6],xmm2[6],xmm0[7],xmm2[7]9715; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill9716; SSE-NEXT: psrlq $48, %xmm29717; SSE-NEXT: punpcklwd {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1],xmm1[2],xmm2[2],xmm1[3],xmm2[3]9718; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Reload9719; SSE-NEXT: movdqa %xmm9, %xmm29720; SSE-NEXT: psrlq $16, %xmm29721; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload9722; SSE-NEXT: punpcklwd {{.*#+}} xmm2 = xmm2[0],xmm8[0],xmm2[1],xmm8[1],xmm2[2],xmm8[2],xmm2[3],xmm8[3]9723; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm2[1,1,1,1]9724; SSE-NEXT: punpckldq {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]9725; SSE-NEXT: pshufd $196, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload9726; SSE-NEXT: # xmm2 = mem[0,1,0,3]9727; SSE-NEXT: pshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,5,4,7]9728; SSE-NEXT: punpckhdq {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload9729; SSE-NEXT: # xmm2 = xmm2[2],mem[2],xmm2[3],mem[3]9730; SSE-NEXT: punpckhwd {{.*#+}} xmm2 = xmm2[4],xmm3[4],xmm2[5],xmm3[5],xmm2[6],xmm3[6],xmm2[7],xmm3[7]9731; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm2[3,1,2,0]9732; SSE-NEXT: pshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,6,6,7]9733; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm2[0,1,2,1]9734; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm2[0,1,2,3,5,6,4,7]9735; SSE-NEXT: movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]9736; SSE-NEXT: movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill9737; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload9738; SSE-NEXT: movdqa %xmm2, %xmm119739; SSE-NEXT: psrld $16, %xmm119740; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload9741; SSE-NEXT: punpckhwd {{.*#+}} xmm11 = xmm11[4],xmm0[4],xmm11[5],xmm0[5],xmm11[6],xmm0[6],xmm11[7],xmm0[7]9742; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm2[2,3,2,3]9743; SSE-NEXT: movdqa %xmm2, %xmm39744; SSE-NEXT: movdqa %xmm0, %xmm29745; SSE-NEXT: punpckhwd {{.*#+}} xmm3 = xmm3[4],xmm0[4],xmm3[5],xmm0[5],xmm3[6],xmm0[6],xmm3[7],xmm0[7]9746; SSE-NEXT: movdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill9747; SSE-NEXT: psrlq $48, %xmm29748; SSE-NEXT: punpcklwd {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1],xmm1[2],xmm2[2],xmm1[3],xmm2[3]9749; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload9750; SSE-NEXT: movdqa %xmm4, %xmm29751; SSE-NEXT: psrlq $16, %xmm29752; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload9753; SSE-NEXT: punpcklwd {{.*#+}} xmm2 = xmm2[0],xmm15[0],xmm2[1],xmm15[1],xmm2[2],xmm15[2],xmm2[3],xmm15[3]9754; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm2[1,1,1,1]9755; SSE-NEXT: punpckldq {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]9756; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload9757; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm5[0,1,0,3]9758; SSE-NEXT: pshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,5,4,7]9759; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload9760; SSE-NEXT: punpckhdq {{.*#+}} xmm2 = xmm2[2],xmm3[2],xmm2[3],xmm3[3]9761; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload9762; SSE-NEXT: punpckhwd {{.*#+}} xmm2 = xmm2[4],xmm6[4],xmm2[5],xmm6[5],xmm2[6],xmm6[6],xmm2[7],xmm6[7]9763; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm2[3,1,2,0]9764; SSE-NEXT: pshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,6,6,7]9765; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm2[0,1,2,1]9766; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm2[0,1,2,3,5,6,4,7]9767; SSE-NEXT: movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]9768; SSE-NEXT: movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill9769; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload9770; SSE-NEXT: punpcklwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload9771; SSE-NEXT: # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1],xmm1[2],mem[2],xmm1[3],mem[3]9772; SSE-NEXT: pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,6,5,6,7]9773; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[2,3,2,3]9774; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload9775; SSE-NEXT: punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]9776; SSE-NEXT: movdqa %xmm7, %xmm19777; SSE-NEXT: pandn {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload9778; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload9779; SSE-NEXT: pand %xmm7, %xmm29780; SSE-NEXT: por %xmm1, %xmm29781; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm2[0,1,0,3]9782; SSE-NEXT: pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,5,4,7,7]9783; SSE-NEXT: punpckhwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload9784; SSE-NEXT: # xmm1 = xmm1[4],mem[4],xmm1[5],mem[5],xmm1[6],mem[6],xmm1[7],mem[7]9785; SSE-NEXT: pshuflw {{.*#+}} xmm1 = xmm1[0,2,2,3,4,5,6,7]9786; SSE-NEXT: shufps {{.*#+}} xmm0 = xmm0[0,1],xmm1[0,2]9787; SSE-NEXT: movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill9788; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload9789; SSE-NEXT: punpcklwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload9790; SSE-NEXT: # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1],xmm1[2],mem[2],xmm1[3],mem[3]9791; SSE-NEXT: pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,6,5,6,7]9792; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[2,3,2,3]9793; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload9794; SSE-NEXT: punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]9795; SSE-NEXT: movdqa %xmm7, %xmm19796; SSE-NEXT: pandn {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload9797; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload9798; SSE-NEXT: pand %xmm7, %xmm29799; SSE-NEXT: por %xmm1, %xmm29800; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm2[0,1,0,3]9801; SSE-NEXT: pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,5,4,7,7]9802; SSE-NEXT: punpckhwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload9803; SSE-NEXT: # xmm1 = xmm1[4],mem[4],xmm1[5],mem[5],xmm1[6],mem[6],xmm1[7],mem[7]9804; SSE-NEXT: pshuflw {{.*#+}} xmm1 = xmm1[0,2,2,3,4,5,6,7]9805; SSE-NEXT: shufps {{.*#+}} xmm0 = xmm0[0,1],xmm1[0,2]9806; SSE-NEXT: movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill9807; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload9808; SSE-NEXT: punpcklwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload9809; SSE-NEXT: # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1],xmm1[2],mem[2],xmm1[3],mem[3]9810; SSE-NEXT: pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,6,5,6,7]9811; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[2,3,2,3]9812; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload9813; SSE-NEXT: punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]9814; SSE-NEXT: movdqa %xmm7, %xmm19815; SSE-NEXT: pandn {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload9816; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload9817; SSE-NEXT: pand %xmm7, %xmm29818; SSE-NEXT: por %xmm1, %xmm29819; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm2[0,1,0,3]9820; SSE-NEXT: pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,5,4,7,7]9821; SSE-NEXT: punpckhwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload9822; SSE-NEXT: # xmm1 = xmm1[4],mem[4],xmm1[5],mem[5],xmm1[6],mem[6],xmm1[7],mem[7]9823; SSE-NEXT: pshuflw {{.*#+}} xmm1 = xmm1[0,2,2,3,4,5,6,7]9824; SSE-NEXT: shufps {{.*#+}} xmm0 = xmm0[0,1],xmm1[0,2]9825; SSE-NEXT: movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill9826; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload9827; SSE-NEXT: punpcklwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload9828; SSE-NEXT: # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1],xmm1[2],mem[2],xmm1[3],mem[3]9829; SSE-NEXT: pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,6,5,6,7]9830; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[2,3,2,3]9831; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload9832; SSE-NEXT: punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]9833; SSE-NEXT: movdqa %xmm7, %xmm19834; SSE-NEXT: pandn {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload9835; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload9836; SSE-NEXT: pand %xmm7, %xmm29837; SSE-NEXT: por %xmm1, %xmm29838; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm2[0,1,0,3]9839; SSE-NEXT: pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,5,4,7,7]9840; SSE-NEXT: punpckhwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload9841; SSE-NEXT: # xmm1 = xmm1[4],mem[4],xmm1[5],mem[5],xmm1[6],mem[6],xmm1[7],mem[7]9842; SSE-NEXT: pshuflw {{.*#+}} xmm1 = xmm1[0,2,2,3,4,5,6,7]9843; SSE-NEXT: shufps {{.*#+}} xmm0 = xmm0[0,1],xmm1[0,2]9844; SSE-NEXT: movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill9845; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload9846; SSE-NEXT: punpcklwd {{.*#+}} xmm1 = xmm1[0],xmm10[0],xmm1[1],xmm10[1],xmm1[2],xmm10[2],xmm1[3],xmm10[3]9847; SSE-NEXT: pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,6,5,6,7]9848; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[2,3,2,3]9849; SSE-NEXT: punpckldq {{.*#+}} xmm13 = xmm13[0],xmm1[0],xmm13[1],xmm1[1]9850; SSE-NEXT: movdqa %xmm7, %xmm19851; SSE-NEXT: pandn (%rsp), %xmm1 # 16-byte Folded Reload9852; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload9853; SSE-NEXT: pand %xmm7, %xmm29854; SSE-NEXT: por %xmm1, %xmm29855; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm2[0,1,0,3]9856; SSE-NEXT: pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,5,4,7,7]9857; SSE-NEXT: punpckhwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload9858; SSE-NEXT: # xmm1 = xmm1[4],mem[4],xmm1[5],mem[5],xmm1[6],mem[6],xmm1[7],mem[7]9859; SSE-NEXT: pshuflw {{.*#+}} xmm1 = xmm1[0,2,2,3,4,5,6,7]9860; SSE-NEXT: shufps {{.*#+}} xmm13 = xmm13[0,1],xmm1[0,2]9861; SSE-NEXT: punpcklwd {{.*#+}} xmm9 = xmm9[0],xmm8[0],xmm9[1],xmm8[1],xmm9[2],xmm8[2],xmm9[3],xmm8[3]9862; SSE-NEXT: pshufhw {{.*#+}} xmm1 = xmm9[0,1,2,3,6,5,6,7]9863; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[2,3,2,3]9864; SSE-NEXT: punpckldq {{.*#+}} xmm12 = xmm12[0],xmm1[0],xmm12[1],xmm1[1]9865; SSE-NEXT: movdqa %xmm7, %xmm19866; SSE-NEXT: pandn {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload9867; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload9868; SSE-NEXT: pand %xmm7, %xmm29869; SSE-NEXT: por %xmm1, %xmm29870; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm2[0,1,0,3]9871; SSE-NEXT: pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,5,4,7,7]9872; SSE-NEXT: punpckhwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload9873; SSE-NEXT: # xmm1 = xmm1[4],mem[4],xmm1[5],mem[5],xmm1[6],mem[6],xmm1[7],mem[7]9874; SSE-NEXT: pshuflw {{.*#+}} xmm1 = xmm1[0,2,2,3,4,5,6,7]9875; SSE-NEXT: shufps {{.*#+}} xmm12 = xmm12[0,1],xmm1[0,2]9876; SSE-NEXT: punpcklwd {{.*#+}} xmm4 = xmm4[0],xmm15[0],xmm4[1],xmm15[1],xmm4[2],xmm15[2],xmm4[3],xmm15[3]9877; SSE-NEXT: pshufhw {{.*#+}} xmm1 = xmm4[0,1,2,3,6,5,6,7]9878; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[2,3,2,3]9879; SSE-NEXT: punpckldq {{.*#+}} xmm11 = xmm11[0],xmm1[0],xmm11[1],xmm1[1]9880; SSE-NEXT: movdqa %xmm7, %xmm19881; SSE-NEXT: pandn %xmm5, %xmm19882; SSE-NEXT: pand %xmm7, %xmm39883; SSE-NEXT: por %xmm1, %xmm39884; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm3[0,1,0,3]9885; SSE-NEXT: pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,5,4,7,7]9886; SSE-NEXT: punpckhwd {{.*#+}} xmm1 = xmm1[4],xmm6[4],xmm1[5],xmm6[5],xmm1[6],xmm6[6],xmm1[7],xmm6[7]9887; SSE-NEXT: pshuflw {{.*#+}} xmm1 = xmm1[0,2,2,3,4,5,6,7]9888; SSE-NEXT: shufps {{.*#+}} xmm11 = xmm11[0,1],xmm1[0,2]9889; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload9890; SSE-NEXT: movdqa %xmm3, %xmm19891; SSE-NEXT: pand %xmm7, %xmm19892; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload9893; SSE-NEXT: pandn %xmm5, %xmm79894; SSE-NEXT: por %xmm1, %xmm79895; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload9896; SSE-NEXT: movdqa %xmm4, %xmm19897; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload9898; SSE-NEXT: punpcklwd {{.*#+}} xmm1 = xmm1[0],xmm6[0],xmm1[1],xmm6[1],xmm1[2],xmm6[2],xmm1[3],xmm6[3]9899; SSE-NEXT: pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,6,5,6,7]9900; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[2,3,2,3]9901; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload9902; SSE-NEXT: punpckldq {{.*#+}} xmm8 = xmm8[0],xmm1[0],xmm8[1],xmm1[1]9903; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm7[0,1,0,3]9904; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,5,4,7,7]9905; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload9906; SSE-NEXT: punpckhwd {{.*#+}} xmm0 = xmm0[4],xmm2[4],xmm0[5],xmm2[5],xmm0[6],xmm2[6],xmm0[7],xmm2[7]9907; SSE-NEXT: pshuflw {{.*#+}} xmm0 = xmm0[0,2,2,3,4,5,6,7]9908; SSE-NEXT: shufps {{.*#+}} xmm8 = xmm8[0,1],xmm0[0,2]9909; SSE-NEXT: movaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill9910; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm6[1,1,1,1]9911; SSE-NEXT: movdqa %xmm4, %xmm19912; SSE-NEXT: psrldq {{.*#+}} xmm1 = xmm1[6,7,8,9,10,11,12,13,14,15],zero,zero,zero,zero,zero,zero9913; SSE-NEXT: punpcklwd {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1],xmm1[2],xmm0[2],xmm1[3],xmm0[3]9914; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm1[1,1,1,1]9915; SSE-NEXT: pshufd $230, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload9916; SSE-NEXT: # xmm1 = mem[2,1,2,3]9917; SSE-NEXT: pshuflw {{.*#+}} xmm1 = xmm1[0,3,2,3,4,5,6,7]9918; SSE-NEXT: punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]9919; SSE-NEXT: pshuflw {{.*#+}} xmm0 = xmm3[1,1,1,1,4,5,6,7]9920; SSE-NEXT: punpcklwd {{.*#+}} xmm5 = xmm5[0],xmm0[0],xmm5[1],xmm0[1],xmm5[2],xmm0[2],xmm5[3],xmm0[3]9921; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm2[0,1,0,3]9922; SSE-NEXT: pshufd {{.*#+}} xmm10 = xmm5[2,2,2,2]9923; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,5,4,7]9924; SSE-NEXT: punpckhdq {{.*#+}} xmm10 = xmm10[2],xmm0[2],xmm10[3],xmm0[3]9925; SSE-NEXT: movsd {{.*#+}} xmm10 = xmm1[0],xmm10[1]9926; SSE-NEXT: pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload9927; SSE-NEXT: # xmm0 = mem[1,1,1,1]9928; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload9929; SSE-NEXT: psrldq {{.*#+}} xmm1 = xmm1[6,7,8,9,10,11,12,13,14,15],zero,zero,zero,zero,zero,zero9930; SSE-NEXT: punpcklwd {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1],xmm1[2],xmm0[2],xmm1[3],xmm0[3]9931; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm1[1,1,1,1]9932; SSE-NEXT: pshufd $230, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload9933; SSE-NEXT: # xmm1 = mem[2,1,2,3]9934; SSE-NEXT: pshuflw {{.*#+}} xmm1 = xmm1[0,3,2,3,4,5,6,7]9935; SSE-NEXT: punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]9936; SSE-NEXT: pshuflw $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload9937; SSE-NEXT: # xmm0 = mem[1,1,1,1,4,5,6,7]9938; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload9939; SSE-NEXT: punpcklwd {{.*#+}} xmm2 = xmm2[0],xmm0[0],xmm2[1],xmm0[1],xmm2[2],xmm0[2],xmm2[3],xmm0[3]9940; SSE-NEXT: pshufd $196, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload9941; SSE-NEXT: # xmm0 = mem[0,1,0,3]9942; SSE-NEXT: pshufd {{.*#+}} xmm9 = xmm2[2,2,2,2]9943; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,5,4,7]9944; SSE-NEXT: punpckhdq {{.*#+}} xmm9 = xmm9[2],xmm0[2],xmm9[3],xmm0[3]9945; SSE-NEXT: movsd {{.*#+}} xmm9 = xmm1[0],xmm9[1]9946; SSE-NEXT: pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload9947; SSE-NEXT: # xmm0 = mem[1,1,1,1]9948; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload9949; SSE-NEXT: psrldq {{.*#+}} xmm1 = xmm1[6,7,8,9,10,11,12,13,14,15],zero,zero,zero,zero,zero,zero9950; SSE-NEXT: punpcklwd {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1],xmm1[2],xmm0[2],xmm1[3],xmm0[3]9951; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm1[1,1,1,1]9952; SSE-NEXT: pshufd $230, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload9953; SSE-NEXT: # xmm1 = mem[2,1,2,3]9954; SSE-NEXT: pshuflw {{.*#+}} xmm1 = xmm1[0,3,2,3,4,5,6,7]9955; SSE-NEXT: punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]9956; SSE-NEXT: pshuflw $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload9957; SSE-NEXT: # xmm0 = mem[1,1,1,1,4,5,6,7]9958; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload9959; SSE-NEXT: punpcklwd {{.*#+}} xmm2 = xmm2[0],xmm0[0],xmm2[1],xmm0[1],xmm2[2],xmm0[2],xmm2[3],xmm0[3]9960; SSE-NEXT: pshufd $196, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload9961; SSE-NEXT: # xmm0 = mem[0,1,0,3]9962; SSE-NEXT: pshufd {{.*#+}} xmm8 = xmm2[2,2,2,2]9963; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,5,4,7]9964; SSE-NEXT: punpckhdq {{.*#+}} xmm8 = xmm8[2],xmm0[2],xmm8[3],xmm0[3]9965; SSE-NEXT: movsd {{.*#+}} xmm8 = xmm1[0],xmm8[1]9966; SSE-NEXT: pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload9967; SSE-NEXT: # xmm0 = mem[1,1,1,1]9968; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload9969; SSE-NEXT: psrldq {{.*#+}} xmm1 = xmm1[6,7,8,9,10,11,12,13,14,15],zero,zero,zero,zero,zero,zero9970; SSE-NEXT: punpcklwd {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1],xmm1[2],xmm0[2],xmm1[3],xmm0[3]9971; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm1[1,1,1,1]9972; SSE-NEXT: pshufd $230, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload9973; SSE-NEXT: # xmm1 = mem[2,1,2,3]9974; SSE-NEXT: pshuflw {{.*#+}} xmm1 = xmm1[0,3,2,3,4,5,6,7]9975; SSE-NEXT: punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]9976; SSE-NEXT: pshuflw $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload9977; SSE-NEXT: # xmm0 = mem[1,1,1,1,4,5,6,7]9978; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload9979; SSE-NEXT: punpcklwd {{.*#+}} xmm2 = xmm2[0],xmm0[0],xmm2[1],xmm0[1],xmm2[2],xmm0[2],xmm2[3],xmm0[3]9980; SSE-NEXT: pshufd $196, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload9981; SSE-NEXT: # xmm0 = mem[0,1,0,3]9982; SSE-NEXT: pshufd {{.*#+}} xmm7 = xmm2[2,2,2,2]9983; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,5,4,7]9984; SSE-NEXT: punpckhdq {{.*#+}} xmm7 = xmm7[2],xmm0[2],xmm7[3],xmm0[3]9985; SSE-NEXT: movsd {{.*#+}} xmm7 = xmm1[0],xmm7[1]9986; SSE-NEXT: pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload9987; SSE-NEXT: # xmm0 = mem[1,1,1,1]9988; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload9989; SSE-NEXT: psrldq {{.*#+}} xmm1 = xmm1[6,7,8,9,10,11,12,13,14,15],zero,zero,zero,zero,zero,zero9990; SSE-NEXT: punpcklwd {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1],xmm1[2],xmm0[2],xmm1[3],xmm0[3]9991; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm1[1,1,1,1]9992; SSE-NEXT: pshufd $230, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload9993; SSE-NEXT: # xmm1 = mem[2,1,2,3]9994; SSE-NEXT: pshuflw {{.*#+}} xmm1 = xmm1[0,3,2,3,4,5,6,7]9995; SSE-NEXT: punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]9996; SSE-NEXT: pshuflw $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload9997; SSE-NEXT: # xmm0 = mem[1,1,1,1,4,5,6,7]9998; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload9999; SSE-NEXT: punpcklwd {{.*#+}} xmm2 = xmm2[0],xmm0[0],xmm2[1],xmm0[1],xmm2[2],xmm0[2],xmm2[3],xmm0[3]10000; SSE-NEXT: pshufd $196, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload10001; SSE-NEXT: # xmm0 = mem[0,1,0,3]10002; SSE-NEXT: pshufd {{.*#+}} xmm6 = xmm2[2,2,2,2]10003; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,5,4,7]10004; SSE-NEXT: punpckhdq {{.*#+}} xmm6 = xmm6[2],xmm0[2],xmm6[3],xmm0[3]10005; SSE-NEXT: movsd {{.*#+}} xmm6 = xmm1[0],xmm6[1]10006; SSE-NEXT: pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload10007; SSE-NEXT: # xmm0 = mem[1,1,1,1]10008; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload10009; SSE-NEXT: psrldq {{.*#+}} xmm1 = xmm1[6,7,8,9,10,11,12,13,14,15],zero,zero,zero,zero,zero,zero10010; SSE-NEXT: punpcklwd {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1],xmm1[2],xmm0[2],xmm1[3],xmm0[3]10011; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm1[1,1,1,1]10012; SSE-NEXT: pshufd $230, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload10013; SSE-NEXT: # xmm1 = mem[2,1,2,3]10014; SSE-NEXT: pshuflw {{.*#+}} xmm1 = xmm1[0,3,2,3,4,5,6,7]10015; SSE-NEXT: punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]10016; SSE-NEXT: pshuflw $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload10017; SSE-NEXT: # xmm0 = mem[1,1,1,1,4,5,6,7]10018; SSE-NEXT: movdqa (%rsp), %xmm2 # 16-byte Reload10019; SSE-NEXT: punpcklwd {{.*#+}} xmm2 = xmm2[0],xmm0[0],xmm2[1],xmm0[1],xmm2[2],xmm0[2],xmm2[3],xmm0[3]10020; SSE-NEXT: pshufd $196, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload10021; SSE-NEXT: # xmm0 = mem[0,1,0,3]10022; SSE-NEXT: pshufd {{.*#+}} xmm5 = xmm2[2,2,2,2]10023; SSE-NEXT: pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,5,4,7]10024; SSE-NEXT: punpckhdq {{.*#+}} xmm5 = xmm5[2],xmm0[2],xmm5[3],xmm0[3]10025; SSE-NEXT: movsd {{.*#+}} xmm5 = xmm1[0],xmm5[1]10026; SSE-NEXT: pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload10027; SSE-NEXT: # xmm0 = mem[1,1,1,1]10028; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload10029; SSE-NEXT: psrldq {{.*#+}} xmm1 = xmm1[6,7,8,9,10,11,12,13,14,15],zero,zero,zero,zero,zero,zero10030; SSE-NEXT: punpcklwd {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1],xmm1[2],xmm0[2],xmm1[3],xmm0[3]10031; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm1[1,1,1,1]10032; SSE-NEXT: pshufd $230, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload10033; SSE-NEXT: # xmm1 = mem[2,1,2,3]10034; SSE-NEXT: pshuflw {{.*#+}} xmm0 = xmm1[0,3,2,3,4,5,6,7]10035; SSE-NEXT: punpckldq {{.*#+}} xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1]10036; SSE-NEXT: pshuflw $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload10037; SSE-NEXT: # xmm1 = mem[1,1,1,1,4,5,6,7]10038; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload10039; SSE-NEXT: punpcklwd {{.*#+}} xmm3 = xmm3[0],xmm1[0],xmm3[1],xmm1[1],xmm3[2],xmm1[2],xmm3[3],xmm1[3]10040; SSE-NEXT: pshufd $196, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload10041; SSE-NEXT: # xmm2 = mem[0,1,0,3]10042; SSE-NEXT: pshufd {{.*#+}} xmm4 = xmm3[2,2,2,2]10043; SSE-NEXT: pshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,5,4,7]10044; SSE-NEXT: punpckhdq {{.*#+}} xmm4 = xmm4[2],xmm2[2],xmm4[3],xmm2[3]10045; SSE-NEXT: movsd {{.*#+}} xmm4 = xmm0[0],xmm4[1]10046; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm15[1,1,1,1]10047; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload10048; SSE-NEXT: psrldq {{.*#+}} xmm1 = xmm1[6,7,8,9,10,11,12,13,14,15],zero,zero,zero,zero,zero,zero10049; SSE-NEXT: punpcklwd {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1],xmm1[2],xmm0[2],xmm1[3],xmm0[3]10050; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm1[1,1,1,1]10051; SSE-NEXT: pshufd $230, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload10052; SSE-NEXT: # xmm2 = mem[2,1,2,3]10053; SSE-NEXT: pshuflw {{.*#+}} xmm2 = xmm2[0,3,2,3,4,5,6,7]10054; SSE-NEXT: punpckldq {{.*#+}} xmm2 = xmm2[0],xmm0[0],xmm2[1],xmm0[1]10055; SSE-NEXT: pshuflw $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload10056; SSE-NEXT: # xmm0 = mem[1,1,1,1,4,5,6,7]10057; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload10058; SSE-NEXT: punpcklwd {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1],xmm1[2],xmm0[2],xmm1[3],xmm0[3]10059; SSE-NEXT: pshufd $196, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Folded Reload10060; SSE-NEXT: # xmm3 = mem[0,1,0,3]10061; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm1[2,2,2,2]10062; SSE-NEXT: pshufhw {{.*#+}} xmm1 = xmm3[0,1,2,3,4,5,4,7]10063; SSE-NEXT: punpckhdq {{.*#+}} xmm0 = xmm0[2],xmm1[2],xmm0[3],xmm1[3]10064; SSE-NEXT: movsd {{.*#+}} xmm0 = xmm2[0],xmm0[1]10065; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload10066; SSE-NEXT: movaps %xmm1, 96(%rsi)10067; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload10068; SSE-NEXT: movaps %xmm1, 32(%rsi)10069; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload10070; SSE-NEXT: movaps %xmm1, 112(%rsi)10071; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload10072; SSE-NEXT: movaps %xmm1, 48(%rsi)10073; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload10074; SSE-NEXT: movaps %xmm1, 64(%rsi)10075; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload10076; SSE-NEXT: movaps %xmm1, (%rsi)10077; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload10078; SSE-NEXT: movaps %xmm1, 80(%rsi)10079; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload10080; SSE-NEXT: movaps %xmm1, 16(%rsi)10081; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload10082; SSE-NEXT: movaps %xmm1, 96(%rdx)10083; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload10084; SSE-NEXT: movaps %xmm1, 32(%rdx)10085; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload10086; SSE-NEXT: movaps %xmm1, 112(%rdx)10087; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload10088; SSE-NEXT: movaps %xmm1, 48(%rdx)10089; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload10090; SSE-NEXT: movaps %xmm1, 64(%rdx)10091; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload10092; SSE-NEXT: movaps %xmm1, (%rdx)10093; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload10094; SSE-NEXT: movaps %xmm1, 80(%rdx)10095; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload10096; SSE-NEXT: movaps %xmm1, 16(%rdx)10097; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload10098; SSE-NEXT: movaps %xmm1, 96(%rcx)10099; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload10100; SSE-NEXT: movaps %xmm1, 112(%rcx)10101; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload10102; SSE-NEXT: movaps %xmm1, 64(%rcx)10103; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload10104; SSE-NEXT: movaps %xmm1, 80(%rcx)10105; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload10106; SSE-NEXT: movaps %xmm1, 32(%rcx)10107; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload10108; SSE-NEXT: movaps %xmm1, 48(%rcx)10109; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload10110; SSE-NEXT: movaps %xmm1, (%rcx)10111; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload10112; SSE-NEXT: movaps %xmm1, 16(%rcx)10113; SSE-NEXT: movdqa %xmm14, 112(%r8)10114; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload10115; SSE-NEXT: movaps %xmm1, 96(%r8)10116; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload10117; SSE-NEXT: movaps %xmm1, 80(%r8)10118; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload10119; SSE-NEXT: movaps %xmm1, 64(%r8)10120; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload10121; SSE-NEXT: movaps %xmm1, 48(%r8)10122; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload10123; SSE-NEXT: movaps %xmm1, 32(%r8)10124; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload10125; SSE-NEXT: movaps %xmm1, 16(%r8)10126; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload10127; SSE-NEXT: movaps %xmm1, (%r8)10128; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload10129; SSE-NEXT: movaps %xmm1, 112(%r9)10130; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload10131; SSE-NEXT: movaps %xmm1, 96(%r9)10132; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload10133; SSE-NEXT: movaps %xmm1, 80(%r9)10134; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload10135; SSE-NEXT: movaps %xmm1, 64(%r9)10136; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload10137; SSE-NEXT: movaps %xmm1, 48(%r9)10138; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload10139; SSE-NEXT: movaps %xmm1, 32(%r9)10140; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload10141; SSE-NEXT: movaps %xmm1, 16(%r9)10142; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload10143; SSE-NEXT: movaps %xmm1, (%r9)10144; SSE-NEXT: movq {{[0-9]+}}(%rsp), %rax10145; SSE-NEXT: movaps %xmm11, 112(%rax)10146; SSE-NEXT: movaps %xmm12, 96(%rax)10147; SSE-NEXT: movaps %xmm13, 80(%rax)10148; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload10149; SSE-NEXT: movaps %xmm1, 64(%rax)10150; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload10151; SSE-NEXT: movaps %xmm1, 48(%rax)10152; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload10153; SSE-NEXT: movaps %xmm1, 32(%rax)10154; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload10155; SSE-NEXT: movaps %xmm1, 16(%rax)10156; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload10157; SSE-NEXT: movaps %xmm1, (%rax)10158; SSE-NEXT: movq {{[0-9]+}}(%rsp), %rax10159; SSE-NEXT: movapd %xmm0, 112(%rax)10160; SSE-NEXT: movapd %xmm4, 96(%rax)10161; SSE-NEXT: movapd %xmm5, 80(%rax)10162; SSE-NEXT: movapd %xmm6, 64(%rax)10163; SSE-NEXT: movapd %xmm7, 48(%rax)10164; SSE-NEXT: movapd %xmm8, 32(%rax)10165; SSE-NEXT: movapd %xmm9, 16(%rax)10166; SSE-NEXT: movapd %xmm10, (%rax)10167; SSE-NEXT: addq $1352, %rsp # imm = 0x54810168; SSE-NEXT: retq10169;10170; AVX-LABEL: load_i16_stride7_vf64:10171; AVX: # %bb.0:10172; AVX-NEXT: subq $1544, %rsp # imm = 0x60810173; AVX-NEXT: vmovdqa 176(%rdi), %xmm010174; AVX-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill10175; AVX-NEXT: vpsrld $16, %xmm0, %xmm010176; AVX-NEXT: vmovdqa 160(%rdi), %xmm110177; AVX-NEXT: vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill10178; AVX-NEXT: vpshufd {{.*#+}} xmm1 = xmm1[2,2,3,3]10179; AVX-NEXT: vpunpcklwd {{.*#+}} xmm0 = xmm1[0],xmm0[0],xmm1[1],xmm0[1],xmm1[2],xmm0[2],xmm1[3],xmm0[3]10180; AVX-NEXT: vmovdqa 128(%rdi), %xmm110181; AVX-NEXT: vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill10182; AVX-NEXT: vpsrlq $16, %xmm1, %xmm110183; AVX-NEXT: vmovdqa 144(%rdi), %xmm210184; AVX-NEXT: vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill10185; AVX-NEXT: vpunpckhwd {{.*#+}} xmm1 = xmm1[4],xmm2[4],xmm1[5],xmm2[5],xmm1[6],xmm2[6],xmm1[7],xmm2[7]10186; AVX-NEXT: vpblendw {{.*#+}} xmm0 = xmm1[0,1,2,3],xmm0[4,5,6,7]10187; AVX-NEXT: vmovdqa 208(%rdi), %xmm210188; AVX-NEXT: vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill10189; AVX-NEXT: vmovdqa 192(%rdi), %xmm110190; AVX-NEXT: vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill10191; AVX-NEXT: vpunpcklwd {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1],xmm1[2],xmm2[2],xmm1[3],xmm2[3]10192; AVX-NEXT: vpshufd {{.*#+}} xmm1 = xmm1[0,1,2,1]10193; AVX-NEXT: vpshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,5,4,7]10194; AVX-NEXT: vpblendw {{.*#+}} xmm1 = xmm0[0,1,2,3,4,5],xmm1[6,7]10195; AVX-NEXT: vmovdqa 80(%rdi), %xmm710196; AVX-NEXT: vmovdqa 64(%rdi), %xmm010197; AVX-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill10198; AVX-NEXT: vpunpckldq {{.*#+}} xmm0 = xmm0[0],xmm7[0],xmm0[1],xmm7[1]10199; AVX-NEXT: vmovdqa %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill10200; AVX-NEXT: vmovdqa 96(%rdi), %xmm210201; AVX-NEXT: vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill10202; AVX-NEXT: vpshufd {{.*#+}} xmm2 = xmm2[0,0,0,0]10203; AVX-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,5,6],xmm2[7]10204; AVX-NEXT: vmovdqa 112(%rdi), %xmm210205; AVX-NEXT: vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill10206; AVX-NEXT: vpshufd {{.*#+}} xmm2 = xmm2[0,3,2,3]10207; AVX-NEXT: vpshuflw {{.*#+}} xmm2 = xmm2[0,3,2,3,4,5,6,7]10208; AVX-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm210209; AVX-NEXT: vmovdqa (%rdi), %xmm310210; AVX-NEXT: vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill10211; AVX-NEXT: vmovdqa 16(%rdi), %xmm010212; AVX-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill10213; AVX-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[2,2,3,3]10214; AVX-NEXT: vpshufd {{.*#+}} xmm3 = xmm3[0,1,0,3]10215; AVX-NEXT: vpshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,4,7,6,7]10216; AVX-NEXT: vpunpckhdq {{.*#+}} xmm0 = xmm3[2],xmm0[2],xmm3[3],xmm0[3]10217; AVX-NEXT: vmovaps 32(%rdi), %xmm310218; AVX-NEXT: vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill10219; AVX-NEXT: vmovaps 48(%rdi), %xmm610220; AVX-NEXT: vinsertps {{.*#+}} xmm3 = zero,xmm3[2],xmm6[2],zero10221; AVX-NEXT: vmovaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill10222; AVX-NEXT: vpblendw {{.*#+}} xmm3 = xmm0[0,1,2],xmm3[3,4],xmm0[5,6,7]10223; AVX-NEXT: vmovaps {{.*#+}} ymm0 = [65535,65535,65535,65535,65535,0,0,0,0,0,65535,65535,65535,65535,65535,65535]10224; AVX-NEXT: vandnps %ymm2, %ymm0, %ymm210225; AVX-NEXT: vandps %ymm0, %ymm3, %ymm310226; AVX-NEXT: vorps %ymm2, %ymm3, %ymm210227; AVX-NEXT: vinsertf128 $1, %xmm1, %ymm0, %ymm110228; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4],ymm1[5,6,7]10229; AVX-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill10230; AVX-NEXT: vmovdqa 624(%rdi), %xmm110231; AVX-NEXT: vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill10232; AVX-NEXT: vpsrld $16, %xmm1, %xmm110233; AVX-NEXT: vmovdqa 608(%rdi), %xmm210234; AVX-NEXT: vmovdqa %xmm2, (%rsp) # 16-byte Spill10235; AVX-NEXT: vpshufd {{.*#+}} xmm2 = xmm2[2,2,3,3]10236; AVX-NEXT: vpunpcklwd {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1],xmm2[2],xmm1[2],xmm2[3],xmm1[3]10237; AVX-NEXT: vmovdqa 576(%rdi), %xmm210238; AVX-NEXT: vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill10239; AVX-NEXT: vpsrlq $16, %xmm2, %xmm210240; AVX-NEXT: vmovdqa 592(%rdi), %xmm310241; AVX-NEXT: vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill10242; AVX-NEXT: vpunpckhwd {{.*#+}} xmm2 = xmm2[4],xmm3[4],xmm2[5],xmm3[5],xmm2[6],xmm3[6],xmm2[7],xmm3[7]10243; AVX-NEXT: vpblendw {{.*#+}} xmm1 = xmm2[0,1,2,3],xmm1[4,5,6,7]10244; AVX-NEXT: vmovdqa 656(%rdi), %xmm210245; AVX-NEXT: vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill10246; AVX-NEXT: vmovdqa 640(%rdi), %xmm310247; AVX-NEXT: vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill10248; AVX-NEXT: vpunpcklwd {{.*#+}} xmm2 = xmm3[0],xmm2[0],xmm3[1],xmm2[1],xmm3[2],xmm2[2],xmm3[3],xmm2[3]10249; AVX-NEXT: vpshufd {{.*#+}} xmm2 = xmm2[0,1,2,1]10250; AVX-NEXT: vpshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,5,4,7]10251; AVX-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,5],xmm2[6,7]10252; AVX-NEXT: vmovdqa 448(%rdi), %xmm210253; AVX-NEXT: vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill10254; AVX-NEXT: vpshufd {{.*#+}} xmm2 = xmm2[0,1,0,3]10255; AVX-NEXT: vpshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,7,6,7]10256; AVX-NEXT: vmovdqa 464(%rdi), %xmm310257; AVX-NEXT: vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill10258; AVX-NEXT: vpshufd {{.*#+}} xmm3 = xmm3[2,2,3,3]10259; AVX-NEXT: vpunpckhdq {{.*#+}} xmm2 = xmm2[2],xmm3[2],xmm2[3],xmm3[3]10260; AVX-NEXT: vmovaps 480(%rdi), %xmm510261; AVX-NEXT: vmovaps 496(%rdi), %xmm1510262; AVX-NEXT: vinsertps {{.*#+}} xmm3 = zero,xmm5[2],xmm15[2],zero10263; AVX-NEXT: vmovaps %xmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill10264; AVX-NEXT: vmovaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill10265; AVX-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0,1,2],xmm3[3,4],xmm2[5,6,7]10266; AVX-NEXT: vmovdqa 528(%rdi), %xmm410267; AVX-NEXT: vmovdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill10268; AVX-NEXT: vmovdqa 512(%rdi), %xmm310269; AVX-NEXT: vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill10270; AVX-NEXT: vpunpckldq {{.*#+}} xmm3 = xmm3[0],xmm4[0],xmm3[1],xmm4[1]10271; AVX-NEXT: vmovdqa 544(%rdi), %xmm410272; AVX-NEXT: vmovdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill10273; AVX-NEXT: vpshufd {{.*#+}} xmm4 = xmm4[0,0,0,0]10274; AVX-NEXT: vpblendw {{.*#+}} xmm3 = xmm3[0,1,2,3,4,5,6],xmm4[7]10275; AVX-NEXT: vmovdqa 560(%rdi), %xmm410276; AVX-NEXT: vmovdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill10277; AVX-NEXT: vpshufd {{.*#+}} xmm4 = xmm4[0,3,2,3]10278; AVX-NEXT: vpshuflw {{.*#+}} xmm4 = xmm4[0,3,2,3,4,5,6,7]10279; AVX-NEXT: vinsertf128 $1, %xmm4, %ymm3, %ymm310280; AVX-NEXT: vandps %ymm0, %ymm2, %ymm210281; AVX-NEXT: vandnps %ymm3, %ymm0, %ymm310282; AVX-NEXT: vorps %ymm3, %ymm2, %ymm210283; AVX-NEXT: vinsertf128 $1, %xmm1, %ymm0, %ymm110284; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4],ymm1[5,6,7]10285; AVX-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill10286; AVX-NEXT: vmovdqa 400(%rdi), %xmm110287; AVX-NEXT: vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill10288; AVX-NEXT: vpsrld $16, %xmm1, %xmm110289; AVX-NEXT: vmovdqa 384(%rdi), %xmm210290; AVX-NEXT: vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill10291; AVX-NEXT: vpshufd {{.*#+}} xmm2 = xmm2[2,2,3,3]10292; AVX-NEXT: vpunpcklwd {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1],xmm2[2],xmm1[2],xmm2[3],xmm1[3]10293; AVX-NEXT: vmovdqa 352(%rdi), %xmm210294; AVX-NEXT: vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill10295; AVX-NEXT: vpsrlq $16, %xmm2, %xmm210296; AVX-NEXT: vmovdqa 368(%rdi), %xmm310297; AVX-NEXT: vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill10298; AVX-NEXT: vpunpckhwd {{.*#+}} xmm2 = xmm2[4],xmm3[4],xmm2[5],xmm3[5],xmm2[6],xmm3[6],xmm2[7],xmm3[7]10299; AVX-NEXT: vpblendw {{.*#+}} xmm1 = xmm2[0,1,2,3],xmm1[4,5,6,7]10300; AVX-NEXT: vmovdqa 432(%rdi), %xmm310301; AVX-NEXT: vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill10302; AVX-NEXT: vmovdqa 416(%rdi), %xmm210303; AVX-NEXT: vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill10304; AVX-NEXT: vpunpcklwd {{.*#+}} xmm2 = xmm2[0],xmm3[0],xmm2[1],xmm3[1],xmm2[2],xmm3[2],xmm2[3],xmm3[3]10305; AVX-NEXT: vpshufd {{.*#+}} xmm2 = xmm2[0,1,2,1]10306; AVX-NEXT: vpshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,5,4,7]10307; AVX-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,5],xmm2[6,7]10308; AVX-NEXT: vmovdqa 224(%rdi), %xmm1010309; AVX-NEXT: vpshufd {{.*#+}} xmm2 = xmm10[0,1,0,3]10310; AVX-NEXT: vmovdqa %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill10311; AVX-NEXT: vpshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,7,6,7]10312; AVX-NEXT: vmovdqa 240(%rdi), %xmm1210313; AVX-NEXT: vpshufd {{.*#+}} xmm3 = xmm12[2,2,3,3]10314; AVX-NEXT: vmovdqa %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill10315; AVX-NEXT: vpunpckhdq {{.*#+}} xmm2 = xmm2[2],xmm3[2],xmm2[3],xmm3[3]10316; AVX-NEXT: vmovaps 256(%rdi), %xmm910317; AVX-NEXT: vmovaps 272(%rdi), %xmm310318; AVX-NEXT: vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill10319; AVX-NEXT: vinsertps {{.*#+}} xmm3 = zero,xmm9[2],xmm3[2],zero10320; AVX-NEXT: vmovaps %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill10321; AVX-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0,1,2],xmm3[3,4],xmm2[5,6,7]10322; AVX-NEXT: vmovdqa 304(%rdi), %xmm410323; AVX-NEXT: vmovdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill10324; AVX-NEXT: vmovdqa 288(%rdi), %xmm310325; AVX-NEXT: vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill10326; AVX-NEXT: vpunpckldq {{.*#+}} xmm3 = xmm3[0],xmm4[0],xmm3[1],xmm4[1]10327; AVX-NEXT: vmovdqa 320(%rdi), %xmm410328; AVX-NEXT: vmovdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill10329; AVX-NEXT: vpshufd {{.*#+}} xmm4 = xmm4[0,0,0,0]10330; AVX-NEXT: vpblendw {{.*#+}} xmm3 = xmm3[0,1,2,3,4,5,6],xmm4[7]10331; AVX-NEXT: vmovdqa 336(%rdi), %xmm1110332; AVX-NEXT: vpshufd {{.*#+}} xmm4 = xmm11[0,3,2,3]10333; AVX-NEXT: vmovdqa %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill10334; AVX-NEXT: vpshuflw {{.*#+}} xmm4 = xmm4[0,3,2,3,4,5,6,7]10335; AVX-NEXT: vinsertf128 $1, %xmm4, %ymm3, %ymm310336; AVX-NEXT: vandps %ymm0, %ymm2, %ymm210337; AVX-NEXT: vandnps %ymm3, %ymm0, %ymm310338; AVX-NEXT: vorps %ymm3, %ymm2, %ymm210339; AVX-NEXT: vinsertf128 $1, %xmm1, %ymm0, %ymm110340; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4],ymm1[5,6,7]10341; AVX-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill10342; AVX-NEXT: vmovdqa 848(%rdi), %xmm110343; AVX-NEXT: vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill10344; AVX-NEXT: vpsrld $16, %xmm1, %xmm110345; AVX-NEXT: vmovdqa 832(%rdi), %xmm210346; AVX-NEXT: vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill10347; AVX-NEXT: vpshufd {{.*#+}} xmm2 = xmm2[2,2,3,3]10348; AVX-NEXT: vpunpcklwd {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1],xmm2[2],xmm1[2],xmm2[3],xmm1[3]10349; AVX-NEXT: vmovdqa 800(%rdi), %xmm210350; AVX-NEXT: vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill10351; AVX-NEXT: vpsrlq $16, %xmm2, %xmm210352; AVX-NEXT: vmovdqa 816(%rdi), %xmm310353; AVX-NEXT: vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill10354; AVX-NEXT: vpunpckhwd {{.*#+}} xmm2 = xmm2[4],xmm3[4],xmm2[5],xmm3[5],xmm2[6],xmm3[6],xmm2[7],xmm3[7]10355; AVX-NEXT: vpblendw {{.*#+}} xmm1 = xmm2[0,1,2,3],xmm1[4,5,6,7]10356; AVX-NEXT: vmovdqa 880(%rdi), %xmm210357; AVX-NEXT: vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill10358; AVX-NEXT: vmovdqa 864(%rdi), %xmm1310359; AVX-NEXT: vpunpcklwd {{.*#+}} xmm2 = xmm13[0],xmm2[0],xmm13[1],xmm2[1],xmm13[2],xmm2[2],xmm13[3],xmm2[3]10360; AVX-NEXT: vmovdqa %xmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill10361; AVX-NEXT: vpshufd {{.*#+}} xmm2 = xmm2[0,1,2,1]10362; AVX-NEXT: vpshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,5,4,7]10363; AVX-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,5],xmm2[6,7]10364; AVX-NEXT: vmovdqa 672(%rdi), %xmm210365; AVX-NEXT: vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill10366; AVX-NEXT: vpshufd {{.*#+}} xmm2 = xmm2[0,1,0,3]10367; AVX-NEXT: vpshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,7,6,7]10368; AVX-NEXT: vmovdqa 688(%rdi), %xmm310369; AVX-NEXT: vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill10370; AVX-NEXT: vpshufd {{.*#+}} xmm3 = xmm3[2,2,3,3]10371; AVX-NEXT: vpunpckhdq {{.*#+}} xmm2 = xmm2[2],xmm3[2],xmm2[3],xmm3[3]10372; AVX-NEXT: vmovaps 704(%rdi), %xmm1410373; AVX-NEXT: vmovaps 720(%rdi), %xmm310374; AVX-NEXT: vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill10375; AVX-NEXT: vinsertps {{.*#+}} xmm3 = zero,xmm14[2],xmm3[2],zero10376; AVX-NEXT: vmovaps %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill10377; AVX-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0,1,2],xmm3[3,4],xmm2[5,6,7]10378; AVX-NEXT: vmovdqa 752(%rdi), %xmm410379; AVX-NEXT: vmovdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill10380; AVX-NEXT: vmovdqa 736(%rdi), %xmm310381; AVX-NEXT: vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill10382; AVX-NEXT: vpunpckldq {{.*#+}} xmm3 = xmm3[0],xmm4[0],xmm3[1],xmm4[1]10383; AVX-NEXT: vmovdqa 768(%rdi), %xmm410384; AVX-NEXT: vmovdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill10385; AVX-NEXT: vpshufd {{.*#+}} xmm4 = xmm4[0,0,0,0]10386; AVX-NEXT: vpblendw {{.*#+}} xmm3 = xmm3[0,1,2,3,4,5,6],xmm4[7]10387; AVX-NEXT: vmovdqa 784(%rdi), %xmm410388; AVX-NEXT: vmovdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill10389; AVX-NEXT: vpshufd {{.*#+}} xmm4 = xmm4[0,3,2,3]10390; AVX-NEXT: vpshuflw {{.*#+}} xmm4 = xmm4[0,3,2,3,4,5,6,7]10391; AVX-NEXT: vinsertf128 $1, %xmm4, %ymm3, %ymm310392; AVX-NEXT: vandps %ymm0, %ymm2, %ymm210393; AVX-NEXT: vandnps %ymm3, %ymm0, %ymm010394; AVX-NEXT: vorps %ymm0, %ymm2, %ymm010395; AVX-NEXT: vinsertf128 $1, %xmm1, %ymm0, %ymm110396; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]10397; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill10398; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload10399; AVX-NEXT: vpunpckhwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload10400; AVX-NEXT: # xmm0 = xmm0[4],mem[4],xmm0[5],mem[5],xmm0[6],mem[6],xmm0[7],mem[7]10401; AVX-NEXT: vpshuflw {{.*#+}} xmm0 = xmm0[2,1,2,3,4,5,6,7]10402; AVX-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[0,0,0,0]10403; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload10404; AVX-NEXT: vpblendw $191, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload10405; AVX-NEXT: # xmm1 = mem[0,1,2,3,4,5],xmm1[6],mem[7]10406; AVX-NEXT: vpshufd {{.*#+}} xmm1 = xmm1[0,3,2,3]10407; AVX-NEXT: vpshuflw {{.*#+}} xmm1 = xmm1[0,0,3,2,4,5,6,7]10408; AVX-NEXT: vpblendw {{.*#+}} xmm0 = xmm1[0,1,2,3],xmm0[4,5,6,7]10409; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload10410; AVX-NEXT: vpslld $16, %xmm1, %xmm110411; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload10412; AVX-NEXT: vpunpcklwd {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1],xmm2[2],xmm1[2],xmm2[3],xmm1[3]10413; AVX-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,5],xmm1[6,7]10414; AVX-NEXT: vpsrld $16, %xmm7, %xmm110415; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload10416; AVX-NEXT: vpsrldq {{.*#+}} xmm2 = xmm2[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero10417; AVX-NEXT: vpunpckldq {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]10418; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload10419; AVX-NEXT: vpslldq {{.*#+}} xmm2 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,xmm2[0,1,2,3,4,5]10420; AVX-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,5,6],xmm2[7]10421; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload10422; AVX-NEXT: vpsrld $16, %xmm2, %xmm210423; AVX-NEXT: vinsertf128 $1, %xmm2, %ymm1, %ymm210424; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload10425; AVX-NEXT: vpunpckhwd {{.*#+}} xmm1 = xmm1[4],xmm6[4],xmm1[5],xmm6[5],xmm1[6],xmm6[6],xmm1[7],xmm6[7]10426; AVX-NEXT: vmovdqa {{.*#+}} xmm4 = [8,9,8,9,8,9,8,9,6,7,6,7,6,7,6,7]10427; AVX-NEXT: vpshufb %xmm4, %xmm1, %xmm110428; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload10429; AVX-NEXT: vpblendw $253, {{[-0-9]+}}(%r{{[sb]}}p), %xmm6, %xmm3 # 16-byte Folded Reload10430; AVX-NEXT: # xmm3 = mem[0],xmm6[1],mem[2,3,4,5,6,7]10431; AVX-NEXT: vpshufd {{.*#+}} xmm3 = xmm3[0,3,2,3]10432; AVX-NEXT: vpshuflw {{.*#+}} xmm3 = xmm3[1,0,3,3,4,5,6,7]10433; AVX-NEXT: vpblendw {{.*#+}} xmm3 = xmm3[0,1,2],xmm1[3,4],xmm3[5,6,7]10434; AVX-NEXT: vmovaps {{.*#+}} ymm8 = [65535,65535,65535,65535,65535,0,0,0,0,65535,65535,65535,65535,65535,65535,65535]10435; AVX-NEXT: vandnps %ymm2, %ymm8, %ymm210436; AVX-NEXT: vandps %ymm3, %ymm8, %ymm310437; AVX-NEXT: vorps %ymm2, %ymm3, %ymm210438; AVX-NEXT: vinsertf128 $1, %xmm0, %ymm0, %ymm310439; AVX-NEXT: vmovaps {{.*#+}} ymm7 = [65535,65535,65535,65535,65535,65535,65535,65535,65535,0,0,0,0,0,0,0]10440; AVX-NEXT: vandnps %ymm3, %ymm7, %ymm310441; AVX-NEXT: vandps %ymm7, %ymm2, %ymm210442; AVX-NEXT: vorps %ymm3, %ymm2, %ymm010443; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill10444; AVX-NEXT: vmovdqa (%rsp), %xmm0 # 16-byte Reload10445; AVX-NEXT: vpunpckhwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm2 # 16-byte Folded Reload10446; AVX-NEXT: # xmm2 = xmm0[4],mem[4],xmm0[5],mem[5],xmm0[6],mem[6],xmm0[7],mem[7]10447; AVX-NEXT: vpshuflw {{.*#+}} xmm2 = xmm2[2,1,2,3,4,5,6,7]10448; AVX-NEXT: vpshufd {{.*#+}} xmm2 = xmm2[0,0,0,0]10449; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload10450; AVX-NEXT: vpblendw $191, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm3 # 16-byte Folded Reload10451; AVX-NEXT: # xmm3 = mem[0,1,2,3,4,5],xmm0[6],mem[7]10452; AVX-NEXT: vpshufd {{.*#+}} xmm3 = xmm3[0,3,2,3]10453; AVX-NEXT: vpshuflw {{.*#+}} xmm3 = xmm3[0,0,3,2,4,5,6,7]10454; AVX-NEXT: vpblendw {{.*#+}} xmm2 = xmm3[0,1,2,3],xmm2[4,5,6,7]10455; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload10456; AVX-NEXT: vpslld $16, %xmm0, %xmm310457; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload10458; AVX-NEXT: vpunpcklwd {{.*#+}} xmm3 = xmm0[0],xmm3[0],xmm0[1],xmm3[1],xmm0[2],xmm3[2],xmm0[3],xmm3[3]10459; AVX-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,5],xmm3[6,7]10460; AVX-NEXT: vpunpckhwd {{.*#+}} xmm3 = xmm5[4],xmm15[4],xmm5[5],xmm15[5],xmm5[6],xmm15[6],xmm5[7],xmm15[7]10461; AVX-NEXT: vmovdqa %xmm4, %xmm110462; AVX-NEXT: vpshufb %xmm4, %xmm3, %xmm310463; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload10464; AVX-NEXT: vpblendw $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm4 # 16-byte Folded Reload10465; AVX-NEXT: # xmm4 = xmm0[0],mem[1],xmm0[2,3,4,5,6,7]10466; AVX-NEXT: vpshufd {{.*#+}} xmm4 = xmm4[0,3,2,3]10467; AVX-NEXT: vpshuflw {{.*#+}} xmm4 = xmm4[1,0,3,3,4,5,6,7]10468; AVX-NEXT: vpblendw {{.*#+}} xmm3 = xmm4[0,1,2],xmm3[3,4],xmm4[5,6,7]10469; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload10470; AVX-NEXT: vpsrld $16, %xmm0, %xmm410471; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload10472; AVX-NEXT: vpsrldq {{.*#+}} xmm5 = xmm0[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero10473; AVX-NEXT: vpunpckldq {{.*#+}} xmm4 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]10474; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload10475; AVX-NEXT: vpslldq {{.*#+}} xmm5 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,xmm0[0,1,2,3,4,5]10476; AVX-NEXT: vpblendw {{.*#+}} xmm4 = xmm4[0,1,2,3,4,5,6],xmm5[7]10477; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload10478; AVX-NEXT: vpsrld $16, %xmm0, %xmm510479; AVX-NEXT: vinsertf128 $1, %xmm5, %ymm4, %ymm410480; AVX-NEXT: vandps %ymm3, %ymm8, %ymm310481; AVX-NEXT: vandnps %ymm4, %ymm8, %ymm410482; AVX-NEXT: vorps %ymm4, %ymm3, %ymm310483; AVX-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm210484; AVX-NEXT: vandnps %ymm2, %ymm7, %ymm210485; AVX-NEXT: vandps %ymm7, %ymm3, %ymm310486; AVX-NEXT: vorps %ymm2, %ymm3, %ymm010487; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill10488; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload10489; AVX-NEXT: vpunpckhwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm2 # 16-byte Folded Reload10490; AVX-NEXT: # xmm2 = xmm0[4],mem[4],xmm0[5],mem[5],xmm0[6],mem[6],xmm0[7],mem[7]10491; AVX-NEXT: vpshuflw {{.*#+}} xmm2 = xmm2[2,1,2,3,4,5,6,7]10492; AVX-NEXT: vpshufd {{.*#+}} xmm2 = xmm2[0,0,0,0]10493; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload10494; AVX-NEXT: vpblendw $64, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm3 # 16-byte Folded Reload10495; AVX-NEXT: # xmm3 = xmm0[0,1,2,3,4,5],mem[6],xmm0[7]10496; AVX-NEXT: vpshufd {{.*#+}} xmm3 = xmm3[0,3,2,3]10497; AVX-NEXT: vpshuflw {{.*#+}} xmm3 = xmm3[0,0,3,2,4,5,6,7]10498; AVX-NEXT: vpblendw {{.*#+}} xmm2 = xmm3[0,1,2,3],xmm2[4,5,6,7]10499; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload10500; AVX-NEXT: vpslld $16, %xmm0, %xmm310501; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload10502; AVX-NEXT: vpunpcklwd {{.*#+}} xmm3 = xmm0[0],xmm3[0],xmm0[1],xmm3[1],xmm0[2],xmm3[2],xmm0[3],xmm3[3]10503; AVX-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,5],xmm3[6,7]10504; AVX-NEXT: vpunpckhwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm9, %xmm3 # 16-byte Folded Reload10505; AVX-NEXT: # xmm3 = xmm9[4],mem[4],xmm9[5],mem[5],xmm9[6],mem[6],xmm9[7],mem[7]10506; AVX-NEXT: vpshufb %xmm1, %xmm3, %xmm310507; AVX-NEXT: vmovdqa %xmm1, %xmm1510508; AVX-NEXT: vpblendw {{.*#+}} xmm4 = xmm12[0],xmm10[1],xmm12[2,3,4,5,6,7]10509; AVX-NEXT: vpshufd {{.*#+}} xmm4 = xmm4[0,3,2,3]10510; AVX-NEXT: vpshuflw {{.*#+}} xmm4 = xmm4[1,0,3,3,4,5,6,7]10511; AVX-NEXT: vpblendw {{.*#+}} xmm3 = xmm4[0,1,2],xmm3[3,4],xmm4[5,6,7]10512; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload10513; AVX-NEXT: vpsrld $16, %xmm0, %xmm410514; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload10515; AVX-NEXT: vpsrldq {{.*#+}} xmm5 = xmm0[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero10516; AVX-NEXT: vpunpckldq {{.*#+}} xmm4 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]10517; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload10518; AVX-NEXT: vpslldq {{.*#+}} xmm5 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,xmm0[0,1,2,3,4,5]10519; AVX-NEXT: vpblendw {{.*#+}} xmm4 = xmm4[0,1,2,3,4,5,6],xmm5[7]10520; AVX-NEXT: vpsrld $16, %xmm11, %xmm510521; AVX-NEXT: vinsertf128 $1, %xmm5, %ymm4, %ymm410522; AVX-NEXT: vandps %ymm3, %ymm8, %ymm310523; AVX-NEXT: vandnps %ymm4, %ymm8, %ymm410524; AVX-NEXT: vorps %ymm4, %ymm3, %ymm310525; AVX-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm210526; AVX-NEXT: vandnps %ymm2, %ymm7, %ymm210527; AVX-NEXT: vandps %ymm7, %ymm3, %ymm310528; AVX-NEXT: vorps %ymm2, %ymm3, %ymm010529; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill10530; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Reload10531; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload10532; AVX-NEXT: vpunpckhwd {{.*#+}} xmm2 = xmm9[4],xmm1[4],xmm9[5],xmm1[5],xmm9[6],xmm1[6],xmm9[7],xmm1[7]10533; AVX-NEXT: vpshuflw {{.*#+}} xmm2 = xmm2[2,1,2,3,4,5,6,7]10534; AVX-NEXT: vpshufd {{.*#+}} xmm2 = xmm2[0,0,0,0]10535; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload10536; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload10537; AVX-NEXT: vpblendw {{.*#+}} xmm3 = xmm10[0,1,2,3,4,5],xmm0[6],xmm10[7]10538; AVX-NEXT: vpshufd {{.*#+}} xmm3 = xmm3[0,3,2,3]10539; AVX-NEXT: vpshuflw {{.*#+}} xmm3 = xmm3[0,0,3,2,4,5,6,7]10540; AVX-NEXT: vpblendw {{.*#+}} xmm2 = xmm3[0,1,2,3],xmm2[4,5,6,7]10541; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload10542; AVX-NEXT: vpslld $16, %xmm8, %xmm310543; AVX-NEXT: vpunpcklwd {{.*#+}} xmm3 = xmm13[0],xmm3[0],xmm13[1],xmm3[1],xmm13[2],xmm3[2],xmm13[3],xmm3[3]10544; AVX-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,5],xmm3[6,7]10545; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload10546; AVX-NEXT: vpunpckhwd {{.*#+}} xmm3 = xmm14[4],xmm13[4],xmm14[5],xmm13[5],xmm14[6],xmm13[6],xmm14[7],xmm13[7]10547; AVX-NEXT: vpshufb %xmm15, %xmm3, %xmm310548; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload10549; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Reload10550; AVX-NEXT: vpblendw {{.*#+}} xmm4 = xmm11[0],xmm15[1],xmm11[2,3,4,5,6,7]10551; AVX-NEXT: vpshufd {{.*#+}} xmm4 = xmm4[0,3,2,3]10552; AVX-NEXT: vpshuflw {{.*#+}} xmm4 = xmm4[1,0,3,3,4,5,6,7]10553; AVX-NEXT: vpblendw {{.*#+}} xmm3 = xmm4[0,1,2],xmm3[3,4],xmm4[5,6,7]10554; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload10555; AVX-NEXT: vpsrld $16, %xmm14, %xmm410556; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Reload10557; AVX-NEXT: vpsrldq {{.*#+}} xmm5 = xmm12[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero10558; AVX-NEXT: vpunpckldq {{.*#+}} xmm4 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]10559; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload10560; AVX-NEXT: vpslldq {{.*#+}} xmm5 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,xmm5[0,1,2,3,4,5]10561; AVX-NEXT: vpblendw {{.*#+}} xmm4 = xmm4[0,1,2,3,4,5,6],xmm5[7]10562; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload10563; AVX-NEXT: vpsrld $16, %xmm5, %xmm510564; AVX-NEXT: vinsertf128 $1, %xmm5, %ymm4, %ymm410565; AVX-NEXT: vmovaps {{.*#+}} ymm5 = [65535,65535,65535,65535,65535,0,0,0,0,65535,65535,65535,65535,65535,65535,65535]10566; AVX-NEXT: vandps %ymm5, %ymm3, %ymm310567; AVX-NEXT: vandnps %ymm4, %ymm5, %ymm410568; AVX-NEXT: vorps %ymm4, %ymm3, %ymm310569; AVX-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm210570; AVX-NEXT: vandnps %ymm2, %ymm7, %ymm210571; AVX-NEXT: vandps %ymm7, %ymm3, %ymm310572; AVX-NEXT: vorps %ymm2, %ymm3, %ymm210573; AVX-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill10574; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload10575; AVX-NEXT: vpsllq $16, %xmm2, %xmm210576; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload10577; AVX-NEXT: vpunpckhwd {{.*#+}} xmm2 = xmm3[4],xmm2[4],xmm3[5],xmm2[5],xmm3[6],xmm2[6],xmm3[7],xmm2[7]10578; AVX-NEXT: vpshufd $236, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Folded Reload10579; AVX-NEXT: # xmm3 = mem[0,3,2,3]10580; AVX-NEXT: vpshuflw {{.*#+}} xmm3 = xmm3[0,1,0,3,4,5,6,7]10581; AVX-NEXT: vpblendw $243, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3, %xmm3 # 16-byte Folded Reload10582; AVX-NEXT: # xmm3 = mem[0,1],xmm3[2,3],mem[4,5,6,7]10583; AVX-NEXT: vpblendw {{.*#+}} xmm2 = xmm3[0,1,2,3],xmm2[4,5,6,7]10584; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload10585; AVX-NEXT: vpsrldq {{.*#+}} xmm3 = xmm3[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero10586; AVX-NEXT: vpunpcklwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm3, %xmm3 # 16-byte Folded Reload10587; AVX-NEXT: # xmm3 = xmm3[0],mem[0],xmm3[1],mem[1],xmm3[2],mem[2],xmm3[3],mem[3]10588; AVX-NEXT: vpblendw {{.*#+}} xmm3 = xmm2[0,1,2,3,4,5],xmm3[6,7]10589; AVX-NEXT: vpshufd $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload10590; AVX-NEXT: # xmm2 = mem[2,2,2,2]10591; AVX-NEXT: vpblendw $63, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm2 # 16-byte Folded Reload10592; AVX-NEXT: # xmm2 = mem[0,1,2,3,4,5],xmm2[6,7]10593; AVX-NEXT: vpshufd $68, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload10594; AVX-NEXT: # xmm4 = mem[0,1,0,1]10595; AVX-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,5,6],xmm4[7]10596; AVX-NEXT: vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload10597; AVX-NEXT: # xmm4 = mem[1,1,1,1]10598; AVX-NEXT: vinsertf128 $1, %xmm4, %ymm2, %ymm410599; AVX-NEXT: vpshufd $196, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload10600; AVX-NEXT: # xmm2 = mem[0,1,0,3]10601; AVX-NEXT: vpshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,5,4,7]10602; AVX-NEXT: vpshufd $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Folded Reload10603; AVX-NEXT: # xmm5 = mem[2,2,3,3]10604; AVX-NEXT: vpunpckhqdq {{.*#+}} xmm5 = xmm2[1],xmm5[1]10605; AVX-NEXT: vpunpcklwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm6, %xmm2 # 16-byte Folded Reload10606; AVX-NEXT: # xmm2 = xmm6[0],mem[0],xmm6[1],mem[1],xmm6[2],mem[2],xmm6[3],mem[3]10607; AVX-NEXT: vpshufd {{.*#+}} xmm6 = xmm2[2,1,2,3]10608; AVX-NEXT: vpshuflw {{.*#+}} xmm6 = xmm6[0,3,2,3,4,5,6,7]10609; AVX-NEXT: vpblendw {{.*#+}} xmm5 = xmm6[0,1],xmm5[2,3,4,5,6,7]10610; AVX-NEXT: vmovaps {{.*#+}} ymm6 = [65535,65535,65535,65535,65535,0,0,0,0,65535,65535,65535,65535,65535,65535,65535]10611; AVX-NEXT: vandnps %ymm4, %ymm6, %ymm410612; AVX-NEXT: vandps %ymm6, %ymm5, %ymm510613; AVX-NEXT: vorps %ymm4, %ymm5, %ymm410614; AVX-NEXT: vinsertf128 $1, %xmm3, %ymm0, %ymm310615; AVX-NEXT: vandnps %ymm3, %ymm7, %ymm310616; AVX-NEXT: vandps %ymm7, %ymm4, %ymm410617; AVX-NEXT: vorps %ymm3, %ymm4, %ymm310618; AVX-NEXT: vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill10619; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload10620; AVX-NEXT: vpsllq $16, %xmm3, %xmm310621; AVX-NEXT: vmovdqa (%rsp), %xmm4 # 16-byte Reload10622; AVX-NEXT: vpunpckhwd {{.*#+}} xmm3 = xmm4[4],xmm3[4],xmm4[5],xmm3[5],xmm4[6],xmm3[6],xmm4[7],xmm3[7]10623; AVX-NEXT: vpshufd $236, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload10624; AVX-NEXT: # xmm4 = mem[0,3,2,3]10625; AVX-NEXT: vpshuflw {{.*#+}} xmm4 = xmm4[0,1,0,3,4,5,6,7]10626; AVX-NEXT: vpblendw $243, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4, %xmm4 # 16-byte Folded Reload10627; AVX-NEXT: # xmm4 = mem[0,1],xmm4[2,3],mem[4,5,6,7]10628; AVX-NEXT: vpblendw {{.*#+}} xmm3 = xmm4[0,1,2,3],xmm3[4,5,6,7]10629; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload10630; AVX-NEXT: vpsrldq {{.*#+}} xmm4 = xmm4[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero10631; AVX-NEXT: vpunpcklwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm4, %xmm4 # 16-byte Folded Reload10632; AVX-NEXT: # xmm4 = xmm4[0],mem[0],xmm4[1],mem[1],xmm4[2],mem[2],xmm4[3],mem[3]10633; AVX-NEXT: vpblendw {{.*#+}} xmm3 = xmm3[0,1,2,3,4,5],xmm4[6,7]10634; AVX-NEXT: vpshufd $196, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload10635; AVX-NEXT: # xmm4 = mem[0,1,0,3]10636; AVX-NEXT: vpshufhw {{.*#+}} xmm4 = xmm4[0,1,2,3,4,5,4,7]10637; AVX-NEXT: vpshufd $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Folded Reload10638; AVX-NEXT: # xmm5 = mem[2,2,3,3]10639; AVX-NEXT: vpunpckhqdq {{.*#+}} xmm5 = xmm4[1],xmm5[1]10640; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload10641; AVX-NEXT: vpunpcklwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm4, %xmm4 # 16-byte Folded Reload10642; AVX-NEXT: # xmm4 = xmm4[0],mem[0],xmm4[1],mem[1],xmm4[2],mem[2],xmm4[3],mem[3]10643; AVX-NEXT: vpshufd {{.*#+}} xmm6 = xmm4[2,1,2,3]10644; AVX-NEXT: vpshuflw {{.*#+}} xmm6 = xmm6[0,3,2,3,4,5,6,7]10645; AVX-NEXT: vpblendw {{.*#+}} xmm5 = xmm6[0,1],xmm5[2,3,4,5,6,7]10646; AVX-NEXT: vpshufd $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Folded Reload10647; AVX-NEXT: # xmm6 = mem[2,2,2,2]10648; AVX-NEXT: vpblendw $63, {{[-0-9]+}}(%r{{[sb]}}p), %xmm6, %xmm6 # 16-byte Folded Reload10649; AVX-NEXT: # xmm6 = mem[0,1,2,3,4,5],xmm6[6,7]10650; AVX-NEXT: vpshufd $68, {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Folded Reload10651; AVX-NEXT: # xmm7 = mem[0,1,0,1]10652; AVX-NEXT: vpblendw {{.*#+}} xmm6 = xmm6[0,1,2,3,4,5,6],xmm7[7]10653; AVX-NEXT: vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Folded Reload10654; AVX-NEXT: # xmm7 = mem[1,1,1,1]10655; AVX-NEXT: vinsertf128 $1, %xmm7, %ymm6, %ymm610656; AVX-NEXT: vmovaps {{.*#+}} ymm7 = [65535,65535,65535,65535,65535,0,0,0,0,65535,65535,65535,65535,65535,65535,65535]10657; AVX-NEXT: vandps %ymm7, %ymm5, %ymm510658; AVX-NEXT: vandnps %ymm6, %ymm7, %ymm610659; AVX-NEXT: vorps %ymm6, %ymm5, %ymm510660; AVX-NEXT: vinsertf128 $1, %xmm3, %ymm0, %ymm310661; AVX-NEXT: vmovaps {{.*#+}} ymm6 = [65535,65535,65535,65535,65535,65535,65535,65535,65535,0,0,0,0,0,0,0]10662; AVX-NEXT: vandnps %ymm3, %ymm6, %ymm310663; AVX-NEXT: vandps %ymm6, %ymm5, %ymm510664; AVX-NEXT: vorps %ymm3, %ymm5, %ymm310665; AVX-NEXT: vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill10666; AVX-NEXT: vpsllq $16, %xmm1, %xmm310667; AVX-NEXT: vpunpckhwd {{.*#+}} xmm3 = xmm9[4],xmm3[4],xmm9[5],xmm3[5],xmm9[6],xmm3[6],xmm9[7],xmm3[7]10668; AVX-NEXT: vpshufd {{.*#+}} xmm5 = xmm0[0,3,2,3]10669; AVX-NEXT: vpshuflw {{.*#+}} xmm5 = xmm5[0,1,0,3,4,5,6,7]10670; AVX-NEXT: vpblendw {{.*#+}} xmm5 = xmm10[0,1],xmm5[2,3],xmm10[4,5,6,7]10671; AVX-NEXT: vpblendw {{.*#+}} xmm3 = xmm5[0,1,2,3],xmm3[4,5,6,7]10672; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload10673; AVX-NEXT: vpsrldq {{.*#+}} xmm5 = xmm0[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero10674; AVX-NEXT: vpunpcklwd {{.*#+}} xmm5 = xmm5[0],xmm8[0],xmm5[1],xmm8[1],xmm5[2],xmm8[2],xmm5[3],xmm8[3]10675; AVX-NEXT: vpblendw {{.*#+}} xmm3 = xmm3[0,1,2,3,4,5],xmm5[6,7]10676; AVX-NEXT: vpshufd $196, {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Folded Reload10677; AVX-NEXT: # xmm5 = mem[0,1,0,3]10678; AVX-NEXT: vpshufhw {{.*#+}} xmm5 = xmm5[0,1,2,3,4,5,4,7]10679; AVX-NEXT: vpshufd {{.*#+}} xmm6 = xmm13[2,2,3,3]10680; AVX-NEXT: vpunpckhqdq {{.*#+}} xmm5 = xmm5[1],xmm6[1]10681; AVX-NEXT: vpunpcklwd {{.*#+}} xmm0 = xmm15[0],xmm11[0],xmm15[1],xmm11[1],xmm15[2],xmm11[2],xmm15[3],xmm11[3]10682; AVX-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill10683; AVX-NEXT: vpshufd {{.*#+}} xmm7 = xmm0[2,1,2,3]10684; AVX-NEXT: vpshuflw {{.*#+}} xmm7 = xmm7[0,3,2,3,4,5,6,7]10685; AVX-NEXT: vpblendw {{.*#+}} xmm5 = xmm7[0,1],xmm5[2,3,4,5,6,7]10686; AVX-NEXT: vpshufd {{.*#+}} xmm7 = xmm14[2,2,2,2]10687; AVX-NEXT: vpblendw {{.*#+}} xmm7 = xmm12[0,1,2,3,4,5],xmm7[6,7]10688; AVX-NEXT: vpshufd $68, {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Folded Reload10689; AVX-NEXT: # xmm15 = mem[0,1,0,1]10690; AVX-NEXT: vpblendw {{.*#+}} xmm7 = xmm7[0,1,2,3,4,5,6],xmm15[7]10691; AVX-NEXT: vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Folded Reload10692; AVX-NEXT: # xmm15 = mem[1,1,1,1]10693; AVX-NEXT: vinsertf128 $1, %xmm15, %ymm7, %ymm710694; AVX-NEXT: vmovaps {{.*#+}} ymm11 = [65535,65535,65535,65535,65535,0,0,0,0,65535,65535,65535,65535,65535,65535,65535]10695; AVX-NEXT: vandps %ymm5, %ymm11, %ymm510696; AVX-NEXT: vandnps %ymm7, %ymm11, %ymm710697; AVX-NEXT: vorps %ymm7, %ymm5, %ymm510698; AVX-NEXT: vinsertf128 $1, %xmm3, %ymm0, %ymm310699; AVX-NEXT: vmovaps {{.*#+}} ymm9 = [65535,65535,65535,65535,65535,65535,65535,65535,65535,0,0,0,0,0,0,0]10700; AVX-NEXT: vandnps %ymm3, %ymm9, %ymm310701; AVX-NEXT: vandps %ymm5, %ymm9, %ymm510702; AVX-NEXT: vorps %ymm3, %ymm5, %ymm010703; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill10704; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload10705; AVX-NEXT: vpsllq $16, %xmm0, %xmm310706; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload10707; AVX-NEXT: vpunpckhwd {{.*#+}} xmm3 = xmm13[4],xmm3[4],xmm13[5],xmm3[5],xmm13[6],xmm3[6],xmm13[7],xmm3[7]10708; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload10709; AVX-NEXT: vpshufd {{.*#+}} xmm5 = xmm6[0,3,2,3]10710; AVX-NEXT: vpshuflw {{.*#+}} xmm5 = xmm5[0,1,0,3,4,5,6,7]10711; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload10712; AVX-NEXT: vpblendw {{.*#+}} xmm5 = xmm0[0,1],xmm5[2,3],xmm0[4,5,6,7]10713; AVX-NEXT: vpblendw {{.*#+}} xmm3 = xmm5[0,1,2,3],xmm3[4,5,6,7]10714; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload10715; AVX-NEXT: vpsrldq {{.*#+}} xmm5 = xmm1[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero10716; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload10717; AVX-NEXT: vpunpcklwd {{.*#+}} xmm5 = xmm5[0],xmm10[0],xmm5[1],xmm10[1],xmm5[2],xmm10[2],xmm5[3],xmm10[3]10718; AVX-NEXT: vpblendw {{.*#+}} xmm5 = xmm3[0,1,2,3,4,5],xmm5[6,7]10719; AVX-NEXT: vpshufd $196, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Folded Reload10720; AVX-NEXT: # xmm3 = mem[0,1,0,3]10721; AVX-NEXT: vpshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,4,5,4,7]10722; AVX-NEXT: vpshufd $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Folded Reload10723; AVX-NEXT: # xmm7 = mem[2,2,3,3]10724; AVX-NEXT: vpunpckhqdq {{.*#+}} xmm7 = xmm3[1],xmm7[1]10725; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload10726; AVX-NEXT: vpunpcklwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm3 # 16-byte Folded Reload10727; AVX-NEXT: # xmm3 = xmm1[0],mem[0],xmm1[1],mem[1],xmm1[2],mem[2],xmm1[3],mem[3]10728; AVX-NEXT: vpshufd {{.*#+}} xmm15 = xmm3[2,1,2,3]10729; AVX-NEXT: vpshuflw {{.*#+}} xmm15 = xmm15[0,3,2,3,4,5,6,7]10730; AVX-NEXT: vpblendw {{.*#+}} xmm7 = xmm15[0,1],xmm7[2,3,4,5,6,7]10731; AVX-NEXT: vpshufd $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Folded Reload10732; AVX-NEXT: # xmm15 = mem[2,2,2,2]10733; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload10734; AVX-NEXT: vpblendw {{.*#+}} xmm15 = xmm1[0,1,2,3,4,5],xmm15[6,7]10735; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload10736; AVX-NEXT: vpshufd {{.*#+}} xmm14 = xmm8[0,1,0,1]10737; AVX-NEXT: vpblendw {{.*#+}} xmm14 = xmm15[0,1,2,3,4,5,6],xmm14[7]10738; AVX-NEXT: vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Folded Reload10739; AVX-NEXT: # xmm15 = mem[1,1,1,1]10740; AVX-NEXT: vinsertf128 $1, %xmm15, %ymm14, %ymm1410741; AVX-NEXT: vandps %ymm7, %ymm11, %ymm710742; AVX-NEXT: vandnps %ymm14, %ymm11, %ymm1410743; AVX-NEXT: vorps %ymm7, %ymm14, %ymm710744; AVX-NEXT: vinsertf128 $1, %xmm5, %ymm0, %ymm510745; AVX-NEXT: vandnps %ymm5, %ymm9, %ymm510746; AVX-NEXT: vandps %ymm7, %ymm9, %ymm710747; AVX-NEXT: vorps %ymm5, %ymm7, %ymm510748; AVX-NEXT: vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill10749; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload10750; AVX-NEXT: vpunpcklwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm5, %xmm5 # 16-byte Folded Reload10751; AVX-NEXT: # xmm5 = xmm5[0],mem[0],xmm5[1],mem[1],xmm5[2],mem[2],xmm5[3],mem[3]10752; AVX-NEXT: vpshufd {{.*#+}} xmm5 = xmm5[2,1,2,3]10753; AVX-NEXT: vpshuflw {{.*#+}} xmm5 = xmm5[0,0,3,3,4,5,6,7]10754; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload10755; AVX-NEXT: vpblendw $64, {{[-0-9]+}}(%r{{[sb]}}p), %xmm7, %xmm7 # 16-byte Folded Reload10756; AVX-NEXT: # xmm7 = xmm7[0,1,2,3,4,5],mem[6],xmm7[7]10757; AVX-NEXT: vpshuflw {{.*#+}} xmm7 = xmm7[0,0,0,0,4,5,6,7]10758; AVX-NEXT: vpshufhw {{.*#+}} xmm7 = xmm7[0,1,2,3,7,6,6,7]10759; AVX-NEXT: vpblendw {{.*#+}} xmm5 = xmm7[0],xmm5[1,2],xmm7[3,4,5,6,7]10760; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload10761; AVX-NEXT: vpunpckhwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm7, %xmm7 # 16-byte Folded Reload10762; AVX-NEXT: # xmm7 = xmm7[4],mem[4],xmm7[5],mem[5],xmm7[6],mem[6],xmm7[7],mem[7]10763; AVX-NEXT: vmovdqa %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill10764; AVX-NEXT: vpshuflw {{.*#+}} xmm14 = xmm7[2,1,2,3,4,5,6,7]10765; AVX-NEXT: vpshufd {{.*#+}} xmm14 = xmm14[0,0,0,0]10766; AVX-NEXT: vpblendw {{.*#+}} xmm14 = xmm5[0,1,2,3,4,5],xmm14[6,7]10767; AVX-NEXT: vpshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,6,5,6,7]10768; AVX-NEXT: vpshufd {{.*#+}} xmm2 = xmm2[2,2,2,2]10769; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload10770; AVX-NEXT: vpblendw $253, {{[-0-9]+}}(%r{{[sb]}}p), %xmm5, %xmm5 # 16-byte Folded Reload10771; AVX-NEXT: # xmm5 = mem[0],xmm5[1],mem[2,3,4,5,6,7]10772; AVX-NEXT: vpshuflw {{.*#+}} xmm5 = xmm5[0,1,1,0,4,5,6,7]10773; AVX-NEXT: vpshufhw {{.*#+}} xmm5 = xmm5[0,1,2,3,7,7,7,7]10774; AVX-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0,1],xmm5[2,3,4,5,6,7]10775; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload10776; AVX-NEXT: vpunpckhwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm5, %xmm5 # 16-byte Folded Reload10777; AVX-NEXT: # xmm5 = xmm5[4],mem[4],xmm5[5],mem[5],xmm5[6],mem[6],xmm5[7],mem[7]10778; AVX-NEXT: vpshufd {{.*#+}} xmm5 = xmm5[0,1,2,1]10779; AVX-NEXT: vpshufhw {{.*#+}} xmm5 = xmm5[0,1,2,3,4,4,7,7]10780; AVX-NEXT: vpunpckhwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm5, %xmm15 # 16-byte Folded Reload10781; AVX-NEXT: # xmm15 = xmm5[4],mem[4],xmm5[5],mem[5],xmm5[6],mem[6],xmm5[7],mem[7]10782; AVX-NEXT: vmovdqa {{.*#+}} xmm5 = [4,5,2,3,4,5,6,7,8,9,4,5,8,9,2,3]10783; AVX-NEXT: vpshufb %xmm5, %xmm15, %xmm1510784; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload10785; AVX-NEXT: vpsrlq $48, %xmm7, %xmm1210786; AVX-NEXT: vinsertf128 $1, %xmm12, %ymm15, %ymm1210787; AVX-NEXT: vandps %ymm2, %ymm11, %ymm210788; AVX-NEXT: vandnps %ymm12, %ymm11, %ymm1210789; AVX-NEXT: vorps %ymm2, %ymm12, %ymm210790; AVX-NEXT: vinsertf128 $1, %xmm14, %ymm0, %ymm1210791; AVX-NEXT: vandnps %ymm12, %ymm9, %ymm1210792; AVX-NEXT: vandps %ymm2, %ymm9, %ymm210793; AVX-NEXT: vorps %ymm2, %ymm12, %ymm210794; AVX-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill10795; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Reload10796; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload10797; AVX-NEXT: vpunpcklwd {{.*#+}} xmm2 = xmm9[0],xmm7[0],xmm9[1],xmm7[1],xmm9[2],xmm7[2],xmm9[3],xmm7[3]10798; AVX-NEXT: vpshufd {{.*#+}} xmm2 = xmm2[2,1,2,3]10799; AVX-NEXT: vpshuflw {{.*#+}} xmm2 = xmm2[0,0,3,3,4,5,6,7]10800; AVX-NEXT: vmovdqa (%rsp), %xmm11 # 16-byte Reload10801; AVX-NEXT: vpblendw $64, {{[-0-9]+}}(%r{{[sb]}}p), %xmm11, %xmm12 # 16-byte Folded Reload10802; AVX-NEXT: # xmm12 = xmm11[0,1,2,3,4,5],mem[6],xmm11[7]10803; AVX-NEXT: vpshuflw {{.*#+}} xmm12 = xmm12[0,0,0,0,4,5,6,7]10804; AVX-NEXT: vpshufhw {{.*#+}} xmm12 = xmm12[0,1,2,3,7,6,6,7]10805; AVX-NEXT: vpblendw {{.*#+}} xmm12 = xmm12[0],xmm2[1,2],xmm12[3,4,5,6,7]10806; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload10807; AVX-NEXT: vpunpckhwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm2 # 16-byte Folded Reload10808; AVX-NEXT: # xmm2 = xmm2[4],mem[4],xmm2[5],mem[5],xmm2[6],mem[6],xmm2[7],mem[7]10809; AVX-NEXT: vpshuflw {{.*#+}} xmm14 = xmm2[2,1,2,3,4,5,6,7]10810; AVX-NEXT: vpshufd {{.*#+}} xmm14 = xmm14[0,0,0,0]10811; AVX-NEXT: vpblendw {{.*#+}} xmm12 = xmm12[0,1,2,3,4,5],xmm14[6,7]10812; AVX-NEXT: vpshufhw {{.*#+}} xmm4 = xmm4[0,1,2,3,6,5,6,7]10813; AVX-NEXT: vpshufd {{.*#+}} xmm4 = xmm4[2,2,2,2]10814; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Reload10815; AVX-NEXT: vpblendw $253, {{[-0-9]+}}(%r{{[sb]}}p), %xmm11, %xmm14 # 16-byte Folded Reload10816; AVX-NEXT: # xmm14 = mem[0],xmm11[1],mem[2,3,4,5,6,7]10817; AVX-NEXT: vpshuflw {{.*#+}} xmm14 = xmm14[0,1,1,0,4,5,6,7]10818; AVX-NEXT: vpshufhw {{.*#+}} xmm14 = xmm14[0,1,2,3,7,7,7,7]10819; AVX-NEXT: vpblendw {{.*#+}} xmm4 = xmm4[0,1],xmm14[2,3,4,5,6,7]10820; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload10821; AVX-NEXT: vpunpckhwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm14, %xmm14 # 16-byte Folded Reload10822; AVX-NEXT: # xmm14 = xmm14[4],mem[4],xmm14[5],mem[5],xmm14[6],mem[6],xmm14[7],mem[7]10823; AVX-NEXT: vpshufd {{.*#+}} xmm14 = xmm14[0,1,2,1]10824; AVX-NEXT: vpshufhw {{.*#+}} xmm14 = xmm14[0,1,2,3,4,4,7,7]10825; AVX-NEXT: vpunpckhwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm14, %xmm14 # 16-byte Folded Reload10826; AVX-NEXT: # xmm14 = xmm14[4],mem[4],xmm14[5],mem[5],xmm14[6],mem[6],xmm14[7],mem[7]10827; AVX-NEXT: vpshufb %xmm5, %xmm14, %xmm1410828; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload10829; AVX-NEXT: vpsrlq $48, %xmm15, %xmm1510830; AVX-NEXT: vinsertf128 $1, %xmm15, %ymm14, %ymm1410831; AVX-NEXT: vmovaps {{.*#+}} ymm15 = [65535,65535,65535,65535,65535,0,0,0,0,65535,65535,65535,65535,65535,65535,65535]10832; AVX-NEXT: vandps %ymm4, %ymm15, %ymm410833; AVX-NEXT: vandnps %ymm14, %ymm15, %ymm1410834; AVX-NEXT: vorps %ymm4, %ymm14, %ymm410835; AVX-NEXT: vinsertf128 $1, %xmm12, %ymm0, %ymm1210836; AVX-NEXT: vmovaps {{.*#+}} ymm14 = [65535,65535,65535,65535,65535,65535,65535,65535,65535,0,0,0,0,0,0,0]10837; AVX-NEXT: vandnps %ymm12, %ymm14, %ymm1210838; AVX-NEXT: vandps %ymm4, %ymm14, %ymm410839; AVX-NEXT: vorps %ymm4, %ymm12, %ymm410840; AVX-NEXT: vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill10841; AVX-NEXT: vpunpcklwd {{.*#+}} xmm4 = xmm0[0],xmm6[0],xmm0[1],xmm6[1],xmm0[2],xmm6[2],xmm0[3],xmm6[3]10842; AVX-NEXT: vpshufd {{.*#+}} xmm4 = xmm4[2,1,2,3]10843; AVX-NEXT: vpshuflw {{.*#+}} xmm4 = xmm4[0,0,3,3,4,5,6,7]10844; AVX-NEXT: vpblendw $64, {{[-0-9]+}}(%r{{[sb]}}p), %xmm13, %xmm12 # 16-byte Folded Reload10845; AVX-NEXT: # xmm12 = xmm13[0,1,2,3,4,5],mem[6],xmm13[7]10846; AVX-NEXT: vpshuflw {{.*#+}} xmm12 = xmm12[0,0,0,0,4,5,6,7]10847; AVX-NEXT: vpshufhw {{.*#+}} xmm12 = xmm12[0,1,2,3,7,6,6,7]10848; AVX-NEXT: vpblendw {{.*#+}} xmm12 = xmm12[0],xmm4[1,2],xmm12[3,4,5,6,7]10849; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload10850; AVX-NEXT: vpunpckhwd {{.*#+}} xmm4 = xmm0[4],xmm10[4],xmm0[5],xmm10[5],xmm0[6],xmm10[6],xmm0[7],xmm10[7]10851; AVX-NEXT: vpshuflw {{.*#+}} xmm14 = xmm4[2,1,2,3,4,5,6,7]10852; AVX-NEXT: vpshufd {{.*#+}} xmm14 = xmm14[0,0,0,0]10853; AVX-NEXT: vpblendw {{.*#+}} xmm12 = xmm12[0,1,2,3,4,5],xmm14[6,7]10854; AVX-NEXT: vpshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,6,5,6,7]10855; AVX-NEXT: vpshufd {{.*#+}} xmm3 = xmm3[2,2,2,2]10856; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload10857; AVX-NEXT: vpblendw $253, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm14 # 16-byte Folded Reload10858; AVX-NEXT: # xmm14 = mem[0],xmm0[1],mem[2,3,4,5,6,7]10859; AVX-NEXT: vpshuflw {{.*#+}} xmm14 = xmm14[0,1,1,0,4,5,6,7]10860; AVX-NEXT: vpshufhw {{.*#+}} xmm14 = xmm14[0,1,2,3,7,7,7,7]10861; AVX-NEXT: vpblendw {{.*#+}} xmm3 = xmm3[0,1],xmm14[2,3,4,5,6,7]10862; AVX-NEXT: vpunpckhwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm14 # 16-byte Folded Reload10863; AVX-NEXT: # xmm14 = xmm1[4],mem[4],xmm1[5],mem[5],xmm1[6],mem[6],xmm1[7],mem[7]10864; AVX-NEXT: vpshufd {{.*#+}} xmm14 = xmm14[0,1,2,1]10865; AVX-NEXT: vpshufhw {{.*#+}} xmm14 = xmm14[0,1,2,3,4,4,7,7]10866; AVX-NEXT: vpunpckhwd {{.*#+}} xmm14 = xmm14[4],xmm8[4],xmm14[5],xmm8[5],xmm14[6],xmm8[6],xmm14[7],xmm8[7]10867; AVX-NEXT: vpshufb %xmm5, %xmm14, %xmm1410868; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload10869; AVX-NEXT: vpsrlq $48, %xmm0, %xmm1510870; AVX-NEXT: vinsertf128 $1, %xmm15, %ymm14, %ymm1410871; AVX-NEXT: vmovaps {{.*#+}} ymm1 = [65535,65535,65535,65535,65535,0,0,0,0,65535,65535,65535,65535,65535,65535,65535]10872; AVX-NEXT: vandps %ymm1, %ymm3, %ymm310873; AVX-NEXT: vandnps %ymm14, %ymm1, %ymm1410874; AVX-NEXT: vorps %ymm3, %ymm14, %ymm310875; AVX-NEXT: vinsertf128 $1, %xmm12, %ymm0, %ymm1210876; AVX-NEXT: vmovaps {{.*#+}} ymm13 = [65535,65535,65535,65535,65535,65535,65535,65535,65535,0,0,0,0,0,0,0]10877; AVX-NEXT: vandnps %ymm12, %ymm13, %ymm1210878; AVX-NEXT: vandps %ymm3, %ymm13, %ymm310879; AVX-NEXT: vorps %ymm3, %ymm12, %ymm010880; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill10881; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload10882; AVX-NEXT: vpunpcklwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm3 # 16-byte Folded Reload10883; AVX-NEXT: # xmm3 = xmm0[0],mem[0],xmm0[1],mem[1],xmm0[2],mem[2],xmm0[3],mem[3]10884; AVX-NEXT: vpshufd {{.*#+}} xmm3 = xmm3[2,1,2,3]10885; AVX-NEXT: vpshuflw {{.*#+}} xmm3 = xmm3[0,0,3,3,4,5,6,7]10886; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload10887; AVX-NEXT: vpblendw $191, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm12 # 16-byte Folded Reload10888; AVX-NEXT: # xmm12 = mem[0,1,2,3,4,5],xmm0[6],mem[7]10889; AVX-NEXT: vpshuflw {{.*#+}} xmm12 = xmm12[0,0,0,0,4,5,6,7]10890; AVX-NEXT: vpshufhw {{.*#+}} xmm12 = xmm12[0,1,2,3,7,6,6,7]10891; AVX-NEXT: vpblendw {{.*#+}} xmm12 = xmm12[0],xmm3[1,2],xmm12[3,4,5,6,7]10892; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload10893; AVX-NEXT: vpunpckhwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm3 # 16-byte Folded Reload10894; AVX-NEXT: # xmm3 = xmm0[4],mem[4],xmm0[5],mem[5],xmm0[6],mem[6],xmm0[7],mem[7]10895; AVX-NEXT: vpshuflw {{.*#+}} xmm14 = xmm3[2,1,2,3,4,5,6,7]10896; AVX-NEXT: vpshufd {{.*#+}} xmm14 = xmm14[0,0,0,0]10897; AVX-NEXT: vpblendw {{.*#+}} xmm12 = xmm12[0,1,2,3,4,5],xmm14[6,7]10898; AVX-NEXT: vpshufhw $230, {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Folded Reload10899; AVX-NEXT: # xmm6 = mem[0,1,2,3,6,5,6,7]10900; AVX-NEXT: vpshufd {{.*#+}} xmm6 = xmm6[2,2,2,2]10901; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload10902; AVX-NEXT: vpblendw $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm14 # 16-byte Folded Reload10903; AVX-NEXT: # xmm14 = xmm0[0],mem[1],xmm0[2,3,4,5,6,7]10904; AVX-NEXT: vpshuflw {{.*#+}} xmm14 = xmm14[0,1,1,0,4,5,6,7]10905; AVX-NEXT: vpshufhw {{.*#+}} xmm14 = xmm14[0,1,2,3,7,7,7,7]10906; AVX-NEXT: vpblendw {{.*#+}} xmm6 = xmm6[0,1],xmm14[2,3,4,5,6,7]10907; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload10908; AVX-NEXT: vpunpckhwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm14 # 16-byte Folded Reload10909; AVX-NEXT: # xmm14 = xmm0[4],mem[4],xmm0[5],mem[5],xmm0[6],mem[6],xmm0[7],mem[7]10910; AVX-NEXT: vpshufd {{.*#+}} xmm14 = xmm14[0,1,2,1]10911; AVX-NEXT: vpshufhw {{.*#+}} xmm14 = xmm14[0,1,2,3,4,4,7,7]10912; AVX-NEXT: vpunpckhwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm14, %xmm14 # 16-byte Folded Reload10913; AVX-NEXT: # xmm14 = xmm14[4],mem[4],xmm14[5],mem[5],xmm14[6],mem[6],xmm14[7],mem[7]10914; AVX-NEXT: vpshufb %xmm5, %xmm14, %xmm510915; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload10916; AVX-NEXT: vpsrlq $48, %xmm0, %xmm1410917; AVX-NEXT: vinsertf128 $1, %xmm14, %ymm5, %ymm510918; AVX-NEXT: vandps %ymm1, %ymm6, %ymm610919; AVX-NEXT: vandnps %ymm5, %ymm1, %ymm110920; AVX-NEXT: vorps %ymm1, %ymm6, %ymm110921; AVX-NEXT: vinsertf128 $1, %xmm12, %ymm0, %ymm510922; AVX-NEXT: vandnps %ymm5, %ymm13, %ymm510923; AVX-NEXT: vandps %ymm1, %ymm13, %ymm110924; AVX-NEXT: vorps %ymm5, %ymm1, %ymm010925; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill10926; AVX-NEXT: vpshufd {{.*#+}} xmm1 = xmm9[1,1,1,1]10927; AVX-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1],xmm7[2,3],xmm1[4,5,6,7]10928; AVX-NEXT: vpshufd $236, {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Folded Reload10929; AVX-NEXT: # xmm5 = mem[0,3,2,3]10930; AVX-NEXT: vpshuflw {{.*#+}} xmm5 = xmm5[0,1,0,3,4,5,6,7]10931; AVX-NEXT: vpunpckldq (%rsp), %xmm5, %xmm5 # 16-byte Folded Reload10932; AVX-NEXT: # xmm5 = xmm5[0],mem[0],xmm5[1],mem[1]10933; AVX-NEXT: vpblendw {{.*#+}} xmm1 = xmm5[0],xmm1[1,2],xmm5[3,4,5,6,7]10934; AVX-NEXT: vpshufd {{.*#+}} xmm2 = xmm2[0,1,2,1]10935; AVX-NEXT: vpshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,5,4,7]10936; AVX-NEXT: vpblendw {{.*#+}} xmm2 = xmm1[0,1,2,3,4,5],xmm2[6,7]10937; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload10938; AVX-NEXT: vpsrlq $48, %xmm0, %xmm110939; AVX-NEXT: vpshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Folded Reload10940; AVX-NEXT: # xmm5 = mem[2,3,2,3]10941; AVX-NEXT: vpunpcklwd {{.*#+}} xmm1 = xmm5[0],xmm1[0],xmm5[1],xmm1[1],xmm5[2],xmm1[2],xmm5[3],xmm1[3]10942; AVX-NEXT: vpsrlq $16, %xmm11, %xmm510943; AVX-NEXT: vpunpcklwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm5, %xmm5 # 16-byte Folded Reload10944; AVX-NEXT: # xmm5 = xmm5[0],mem[0],xmm5[1],mem[1],xmm5[2],mem[2],xmm5[3],mem[3]10945; AVX-NEXT: vpblendw {{.*#+}} xmm5 = xmm1[0,1],xmm5[2,3],xmm1[4,5,6,7]10946; AVX-NEXT: vpshufd $196, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload10947; AVX-NEXT: # xmm1 = mem[0,1,0,3]10948; AVX-NEXT: vpshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,5,4,7]10949; AVX-NEXT: vpunpckhdq {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload10950; AVX-NEXT: # xmm1 = xmm1[2],mem[2],xmm1[3],mem[3]10951; AVX-NEXT: vpunpckhwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm6 # 16-byte Folded Reload10952; AVX-NEXT: # xmm6 = xmm1[4],mem[4],xmm1[5],mem[5],xmm1[6],mem[6],xmm1[7],mem[7]10953; AVX-NEXT: vmovdqa {{.*#+}} xmm1 = [12,13,14,15,4,5,6,7,0,1,4,5,8,9,6,7]10954; AVX-NEXT: vpshufb %xmm1, %xmm6, %xmm610955; AVX-NEXT: vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Folded Reload10956; AVX-NEXT: # xmm12 = mem[2,3,2,3]10957; AVX-NEXT: vinsertf128 $1, %xmm12, %ymm6, %ymm610958; AVX-NEXT: vblendps {{.*#+}} ymm5 = ymm5[0,1],ymm6[2,3,4,5,6,7]10959; AVX-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm210960; AVX-NEXT: vandnps %ymm2, %ymm13, %ymm210961; AVX-NEXT: vandps %ymm5, %ymm13, %ymm510962; AVX-NEXT: vorps %ymm2, %ymm5, %ymm010963; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill10964; AVX-NEXT: vpshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload10965; AVX-NEXT: # xmm2 = mem[1,1,1,1]10966; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload10967; AVX-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0,1],xmm10[2,3],xmm2[4,5,6,7]10968; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload10969; AVX-NEXT: vpshufd {{.*#+}} xmm5 = xmm14[0,3,2,3]10970; AVX-NEXT: vpshuflw {{.*#+}} xmm5 = xmm5[0,1,0,3,4,5,6,7]10971; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Reload10972; AVX-NEXT: vpunpckldq {{.*#+}} xmm5 = xmm5[0],xmm9[0],xmm5[1],xmm9[1]10973; AVX-NEXT: vpblendw {{.*#+}} xmm2 = xmm5[0],xmm2[1,2],xmm5[3,4,5,6,7]10974; AVX-NEXT: vpshufd $100, {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Folded Reload10975; AVX-NEXT: # xmm5 = mem[0,1,2,1]10976; AVX-NEXT: vpshufhw {{.*#+}} xmm5 = xmm5[0,1,2,3,4,5,4,7]10977; AVX-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,5],xmm5[6,7]10978; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload10979; AVX-NEXT: vpsrlq $48, %xmm5, %xmm510980; AVX-NEXT: vpshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Folded Reload10981; AVX-NEXT: # xmm6 = mem[2,3,2,3]10982; AVX-NEXT: vpunpcklwd {{.*#+}} xmm5 = xmm6[0],xmm5[0],xmm6[1],xmm5[1],xmm6[2],xmm5[2],xmm6[3],xmm5[3]10983; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload10984; AVX-NEXT: vpsrlq $16, %xmm6, %xmm610985; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload10986; AVX-NEXT: vpunpcklwd {{.*#+}} xmm6 = xmm6[0],xmm8[0],xmm6[1],xmm8[1],xmm6[2],xmm8[2],xmm6[3],xmm8[3]10987; AVX-NEXT: vpblendw {{.*#+}} xmm5 = xmm5[0,1],xmm6[2,3],xmm5[4,5,6,7]10988; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Reload10989; AVX-NEXT: vpshufd {{.*#+}} xmm6 = xmm12[0,1,0,3]10990; AVX-NEXT: vpshufhw {{.*#+}} xmm6 = xmm6[0,1,2,3,4,5,4,7]10991; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload10992; AVX-NEXT: vpunpckhdq {{.*#+}} xmm6 = xmm6[2],xmm15[2],xmm6[3],xmm15[3]10993; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Reload10994; AVX-NEXT: vpunpckhwd {{.*#+}} xmm6 = xmm6[4],xmm11[4],xmm6[5],xmm11[5],xmm6[6],xmm11[6],xmm6[7],xmm11[7]10995; AVX-NEXT: vpshufb %xmm1, %xmm6, %xmm610996; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload10997; AVX-NEXT: vpshufd {{.*#+}} xmm7 = xmm13[2,3,2,3]10998; AVX-NEXT: vinsertf128 $1, %xmm7, %ymm6, %ymm610999; AVX-NEXT: vblendps {{.*#+}} ymm5 = ymm5[0,1],ymm6[2,3,4,5,6,7]11000; AVX-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm211001; AVX-NEXT: vmovaps {{.*#+}} ymm7 = [65535,65535,65535,65535,65535,65535,65535,65535,65535,0,0,0,0,0,0,0]11002; AVX-NEXT: vandnps %ymm2, %ymm7, %ymm211003; AVX-NEXT: vandps %ymm7, %ymm5, %ymm511004; AVX-NEXT: vorps %ymm2, %ymm5, %ymm211005; AVX-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11006; AVX-NEXT: vpshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload11007; AVX-NEXT: # xmm2 = mem[1,1,1,1]11008; AVX-NEXT: vpblendw $12, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm2 # 16-byte Folded Reload11009; AVX-NEXT: # xmm2 = xmm2[0,1],mem[2,3],xmm2[4,5,6,7]11010; AVX-NEXT: vpshufd $236, {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Folded Reload11011; AVX-NEXT: # xmm5 = mem[0,3,2,3]11012; AVX-NEXT: vpshuflw {{.*#+}} xmm5 = xmm5[0,1,0,3,4,5,6,7]11013; AVX-NEXT: vpunpckldq {{[-0-9]+}}(%r{{[sb]}}p), %xmm5, %xmm5 # 16-byte Folded Reload11014; AVX-NEXT: # xmm5 = xmm5[0],mem[0],xmm5[1],mem[1]11015; AVX-NEXT: vpblendw {{.*#+}} xmm2 = xmm5[0],xmm2[1,2],xmm5[3,4,5,6,7]11016; AVX-NEXT: vpshufd {{.*#+}} xmm4 = xmm4[0,1,2,1]11017; AVX-NEXT: vpshufhw {{.*#+}} xmm4 = xmm4[0,1,2,3,4,5,4,7]11018; AVX-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,5],xmm4[6,7]11019; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload11020; AVX-NEXT: vpsrlq $48, %xmm0, %xmm411021; AVX-NEXT: vpshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Folded Reload11022; AVX-NEXT: # xmm5 = mem[2,3,2,3]11023; AVX-NEXT: vpunpcklwd {{.*#+}} xmm4 = xmm5[0],xmm4[0],xmm5[1],xmm4[1],xmm5[2],xmm4[2],xmm5[3],xmm4[3]11024; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload11025; AVX-NEXT: vpsrlq $16, %xmm0, %xmm511026; AVX-NEXT: vpunpcklwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm5, %xmm5 # 16-byte Folded Reload11027; AVX-NEXT: # xmm5 = xmm5[0],mem[0],xmm5[1],mem[1],xmm5[2],mem[2],xmm5[3],mem[3]11028; AVX-NEXT: vpblendw {{.*#+}} xmm4 = xmm4[0,1],xmm5[2,3],xmm4[4,5,6,7]11029; AVX-NEXT: vpshufd $196, {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Folded Reload11030; AVX-NEXT: # xmm5 = mem[0,1,0,3]11031; AVX-NEXT: vpshufhw {{.*#+}} xmm5 = xmm5[0,1,2,3,4,5,4,7]11032; AVX-NEXT: vpunpckhdq {{[-0-9]+}}(%r{{[sb]}}p), %xmm5, %xmm5 # 16-byte Folded Reload11033; AVX-NEXT: # xmm5 = xmm5[2],mem[2],xmm5[3],mem[3]11034; AVX-NEXT: vpunpckhwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm5, %xmm5 # 16-byte Folded Reload11035; AVX-NEXT: # xmm5 = xmm5[4],mem[4],xmm5[5],mem[5],xmm5[6],mem[6],xmm5[7],mem[7]11036; AVX-NEXT: vpshufb %xmm1, %xmm5, %xmm511037; AVX-NEXT: vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Folded Reload11038; AVX-NEXT: # xmm6 = mem[2,3,2,3]11039; AVX-NEXT: vinsertf128 $1, %xmm6, %ymm5, %ymm511040; AVX-NEXT: vblendps {{.*#+}} ymm4 = ymm4[0,1],ymm5[2,3,4,5,6,7]11041; AVX-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm211042; AVX-NEXT: vandnps %ymm2, %ymm7, %ymm211043; AVX-NEXT: vandps %ymm7, %ymm4, %ymm411044; AVX-NEXT: vorps %ymm2, %ymm4, %ymm211045; AVX-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11046; AVX-NEXT: vpshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload11047; AVX-NEXT: # xmm2 = mem[1,1,1,1]11048; AVX-NEXT: vpblendw $12, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm2 # 16-byte Folded Reload11049; AVX-NEXT: # xmm2 = xmm2[0,1],mem[2,3],xmm2[4,5,6,7]11050; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload11051; AVX-NEXT: vpshufd {{.*#+}} xmm4 = xmm6[0,3,2,3]11052; AVX-NEXT: vpshuflw {{.*#+}} xmm4 = xmm4[0,1,0,3,4,5,6,7]11053; AVX-NEXT: vpunpckldq {{[-0-9]+}}(%r{{[sb]}}p), %xmm4, %xmm4 # 16-byte Folded Reload11054; AVX-NEXT: # xmm4 = xmm4[0],mem[0],xmm4[1],mem[1]11055; AVX-NEXT: vpblendw {{.*#+}} xmm2 = xmm4[0],xmm2[1,2],xmm4[3,4,5,6,7]11056; AVX-NEXT: vpshufd {{.*#+}} xmm3 = xmm3[0,1,2,1]11057; AVX-NEXT: vpshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,4,5,4,7]11058; AVX-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,5],xmm3[6,7]11059; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload11060; AVX-NEXT: vpsrlq $48, %xmm3, %xmm311061; AVX-NEXT: vpshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload11062; AVX-NEXT: # xmm4 = mem[2,3,2,3]11063; AVX-NEXT: vpunpcklwd {{.*#+}} xmm3 = xmm4[0],xmm3[0],xmm4[1],xmm3[1],xmm4[2],xmm3[2],xmm4[3],xmm3[3]11064; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload11065; AVX-NEXT: vpsrlq $16, %xmm4, %xmm411066; AVX-NEXT: vpunpcklwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm4, %xmm4 # 16-byte Folded Reload11067; AVX-NEXT: # xmm4 = xmm4[0],mem[0],xmm4[1],mem[1],xmm4[2],mem[2],xmm4[3],mem[3]11068; AVX-NEXT: vpblendw {{.*#+}} xmm3 = xmm3[0,1],xmm4[2,3],xmm3[4,5,6,7]11069; AVX-NEXT: vpshufd $196, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload11070; AVX-NEXT: # xmm4 = mem[0,1,0,3]11071; AVX-NEXT: vpshufhw {{.*#+}} xmm4 = xmm4[0,1,2,3,4,5,4,7]11072; AVX-NEXT: vpunpckhdq {{[-0-9]+}}(%r{{[sb]}}p), %xmm4, %xmm4 # 16-byte Folded Reload11073; AVX-NEXT: # xmm4 = xmm4[2],mem[2],xmm4[3],mem[3]11074; AVX-NEXT: vpunpckhwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm4, %xmm4 # 16-byte Folded Reload11075; AVX-NEXT: # xmm4 = xmm4[4],mem[4],xmm4[5],mem[5],xmm4[6],mem[6],xmm4[7],mem[7]11076; AVX-NEXT: vpshufb %xmm1, %xmm4, %xmm111077; AVX-NEXT: vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload11078; AVX-NEXT: # xmm4 = mem[2,3,2,3]11079; AVX-NEXT: vinsertf128 $1, %xmm4, %ymm1, %ymm111080; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm3[0,1],ymm1[2,3,4,5,6,7]11081; AVX-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm211082; AVX-NEXT: vandnps %ymm2, %ymm7, %ymm211083; AVX-NEXT: vandps %ymm7, %ymm1, %ymm111084; AVX-NEXT: vorps %ymm2, %ymm1, %ymm111085; AVX-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11086; AVX-NEXT: vpsrlq $48, %xmm10, %xmm111087; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload11088; AVX-NEXT: vpsrldq {{.*#+}} xmm2 = xmm0[6,7,8,9,10,11,12,13,14,15],zero,zero,zero,zero,zero,zero11089; AVX-NEXT: vpunpckldq {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]11090; AVX-NEXT: vpunpcklwd {{.*#+}} xmm2 = xmm9[0],xmm14[0],xmm9[1],xmm14[1],xmm9[2],xmm14[2],xmm9[3],xmm14[3]11091; AVX-NEXT: vmovdqa {{.*#+}} xmm0 = [8,9,8,9,8,9,8,9,6,7,6,7,6,7,6,7]11092; AVX-NEXT: vpshufb %xmm0, %xmm2, %xmm211093; AVX-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1,2],xmm2[3,4],xmm1[5,6,7]11094; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload11095; AVX-NEXT: vpblendw $64, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm2 # 16-byte Folded Reload11096; AVX-NEXT: # xmm2 = xmm2[0,1,2,3,4,5],mem[6],xmm2[7]11097; AVX-NEXT: vpshufd {{.*#+}} xmm2 = xmm2[0,1,0,3]11098; AVX-NEXT: vpshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,4,7,6]11099; AVX-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1,2,3,4],xmm2[5,6,7]11100; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload11101; AVX-NEXT: vpsrld $16, %xmm2, %xmm211102; AVX-NEXT: vpunpckhwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm2 # 16-byte Folded Reload11103; AVX-NEXT: # xmm2 = xmm2[4],mem[4],xmm2[5],mem[5],xmm2[6],mem[6],xmm2[7],mem[7]11104; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload11105; AVX-NEXT: vpunpcklwd {{.*#+}} xmm3 = xmm3[0],xmm8[0],xmm3[1],xmm8[1],xmm3[2],xmm8[2],xmm3[3],xmm8[3]11106; AVX-NEXT: vpshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,6,5,6,7]11107; AVX-NEXT: vpshufd {{.*#+}} xmm3 = xmm3[2,2,2,2]11108; AVX-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0,1],xmm3[2,3],xmm2[4,5,6,7]11109; AVX-NEXT: vpblendw {{.*#+}} xmm3 = xmm15[0],xmm12[1],xmm15[2,3,4,5,6,7]11110; AVX-NEXT: vpshufd {{.*#+}} xmm3 = xmm3[0,1,0,3]11111; AVX-NEXT: vpshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,5,4,7,7]11112; AVX-NEXT: vpunpckhwd {{.*#+}} xmm3 = xmm3[4],xmm11[4],xmm3[5],xmm11[5],xmm3[6],xmm11[6],xmm3[7],xmm11[7]11113; AVX-NEXT: vpshuflw {{.*#+}} xmm3 = xmm3[0,2,2,3,4,5,6,7]11114; AVX-NEXT: vpshufd {{.*#+}} xmm3 = xmm3[0,1,0,2]11115; AVX-NEXT: vpsrldq {{.*#+}} xmm4 = xmm13[10,11,12,13,14,15],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero11116; AVX-NEXT: vinsertf128 $1, %xmm4, %ymm3, %ymm311117; AVX-NEXT: vblendps {{.*#+}} ymm2 = ymm2[0,1],ymm3[2,3,4,5,6,7]11118; AVX-NEXT: vinsertf128 $1, %xmm1, %ymm0, %ymm111119; AVX-NEXT: vandnps %ymm1, %ymm7, %ymm111120; AVX-NEXT: vandps %ymm7, %ymm2, %ymm211121; AVX-NEXT: vorps %ymm1, %ymm2, %ymm111122; AVX-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11123; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload11124; AVX-NEXT: vpsrlq $48, %xmm1, %xmm111125; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload11126; AVX-NEXT: vpsrldq {{.*#+}} xmm2 = xmm2[6,7,8,9,10,11,12,13,14,15],zero,zero,zero,zero,zero,zero11127; AVX-NEXT: vpunpckldq {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]11128; AVX-NEXT: vmovdqa (%rsp), %xmm2 # 16-byte Reload11129; AVX-NEXT: vpunpcklwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm2 # 16-byte Folded Reload11130; AVX-NEXT: # xmm2 = xmm2[0],mem[0],xmm2[1],mem[1],xmm2[2],mem[2],xmm2[3],mem[3]11131; AVX-NEXT: vpshufb %xmm0, %xmm2, %xmm211132; AVX-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1,2],xmm2[3,4],xmm1[5,6,7]11133; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload11134; AVX-NEXT: vpblendw $64, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm2 # 16-byte Folded Reload11135; AVX-NEXT: # xmm2 = xmm2[0,1,2,3,4,5],mem[6],xmm2[7]11136; AVX-NEXT: vpshufd {{.*#+}} xmm2 = xmm2[0,1,0,3]11137; AVX-NEXT: vpshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,4,7,6]11138; AVX-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1,2,3,4],xmm2[5,6,7]11139; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload11140; AVX-NEXT: vpsrld $16, %xmm2, %xmm211141; AVX-NEXT: vpunpckhwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm2 # 16-byte Folded Reload11142; AVX-NEXT: # xmm2 = xmm2[4],mem[4],xmm2[5],mem[5],xmm2[6],mem[6],xmm2[7],mem[7]11143; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload11144; AVX-NEXT: vpunpcklwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm3, %xmm3 # 16-byte Folded Reload11145; AVX-NEXT: # xmm3 = xmm3[0],mem[0],xmm3[1],mem[1],xmm3[2],mem[2],xmm3[3],mem[3]11146; AVX-NEXT: vpshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,6,5,6,7]11147; AVX-NEXT: vpshufd {{.*#+}} xmm3 = xmm3[2,2,2,2]11148; AVX-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0,1],xmm3[2,3],xmm2[4,5,6,7]11149; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload11150; AVX-NEXT: vpblendw $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3, %xmm3 # 16-byte Folded Reload11151; AVX-NEXT: # xmm3 = xmm3[0],mem[1],xmm3[2,3,4,5,6,7]11152; AVX-NEXT: vpshufd {{.*#+}} xmm3 = xmm3[0,1,0,3]11153; AVX-NEXT: vpshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,5,4,7,7]11154; AVX-NEXT: vpunpckhwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm3, %xmm3 # 16-byte Folded Reload11155; AVX-NEXT: # xmm3 = xmm3[4],mem[4],xmm3[5],mem[5],xmm3[6],mem[6],xmm3[7],mem[7]11156; AVX-NEXT: vpshuflw {{.*#+}} xmm3 = xmm3[0,2,2,3,4,5,6,7]11157; AVX-NEXT: vpshufd {{.*#+}} xmm3 = xmm3[0,1,0,2]11158; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload11159; AVX-NEXT: vpsrldq {{.*#+}} xmm4 = xmm4[10,11,12,13,14,15],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero11160; AVX-NEXT: vinsertf128 $1, %xmm4, %ymm3, %ymm311161; AVX-NEXT: vblendps {{.*#+}} ymm2 = ymm2[0,1],ymm3[2,3,4,5,6,7]11162; AVX-NEXT: vinsertf128 $1, %xmm1, %ymm0, %ymm111163; AVX-NEXT: vandnps %ymm1, %ymm7, %ymm111164; AVX-NEXT: vandps %ymm7, %ymm2, %ymm211165; AVX-NEXT: vorps %ymm1, %ymm2, %ymm111166; AVX-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11167; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload11168; AVX-NEXT: vpsrlq $48, %xmm1, %xmm211169; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload11170; AVX-NEXT: vpsrldq {{.*#+}} xmm3 = xmm1[6,7,8,9,10,11,12,13,14,15],zero,zero,zero,zero,zero,zero11171; AVX-NEXT: vpunpckldq {{.*#+}} xmm2 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]11172; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload11173; AVX-NEXT: vpunpcklwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm3 # 16-byte Folded Reload11174; AVX-NEXT: # xmm3 = xmm1[0],mem[0],xmm1[1],mem[1],xmm1[2],mem[2],xmm1[3],mem[3]11175; AVX-NEXT: vpshufb %xmm0, %xmm3, %xmm311176; AVX-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0,1,2],xmm3[3,4],xmm2[5,6,7]11177; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload11178; AVX-NEXT: vpblendw $64, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm3 # 16-byte Folded Reload11179; AVX-NEXT: # xmm3 = xmm1[0,1,2,3,4,5],mem[6],xmm1[7]11180; AVX-NEXT: vpshufd {{.*#+}} xmm3 = xmm3[0,1,0,3]11181; AVX-NEXT: vpshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,4,4,7,6]11182; AVX-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0,1,2,3,4],xmm3[5,6,7]11183; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload11184; AVX-NEXT: vpsrld $16, %xmm1, %xmm311185; AVX-NEXT: vpunpckhwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm3, %xmm3 # 16-byte Folded Reload11186; AVX-NEXT: # xmm3 = xmm3[4],mem[4],xmm3[5],mem[5],xmm3[6],mem[6],xmm3[7],mem[7]11187; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload11188; AVX-NEXT: vpunpcklwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm4 # 16-byte Folded Reload11189; AVX-NEXT: # xmm4 = xmm1[0],mem[0],xmm1[1],mem[1],xmm1[2],mem[2],xmm1[3],mem[3]11190; AVX-NEXT: vpshufhw {{.*#+}} xmm4 = xmm4[0,1,2,3,6,5,6,7]11191; AVX-NEXT: vpshufd {{.*#+}} xmm4 = xmm4[2,2,2,2]11192; AVX-NEXT: vpblendw {{.*#+}} xmm3 = xmm3[0,1],xmm4[2,3],xmm3[4,5,6,7]11193; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload11194; AVX-NEXT: vpblendw $253, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm4 # 16-byte Folded Reload11195; AVX-NEXT: # xmm4 = mem[0],xmm1[1],mem[2,3,4,5,6,7]11196; AVX-NEXT: vpshufd {{.*#+}} xmm4 = xmm4[0,1,0,3]11197; AVX-NEXT: vpshufhw {{.*#+}} xmm4 = xmm4[0,1,2,3,5,4,7,7]11198; AVX-NEXT: vpunpckhwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm4, %xmm4 # 16-byte Folded Reload11199; AVX-NEXT: # xmm4 = xmm4[4],mem[4],xmm4[5],mem[5],xmm4[6],mem[6],xmm4[7],mem[7]11200; AVX-NEXT: vpshuflw {{.*#+}} xmm4 = xmm4[0,2,2,3,4,5,6,7]11201; AVX-NEXT: vpshufd {{.*#+}} xmm4 = xmm4[0,1,0,2]11202; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload11203; AVX-NEXT: vpsrldq {{.*#+}} xmm5 = xmm1[10,11,12,13,14,15],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero11204; AVX-NEXT: vinsertf128 $1, %xmm5, %ymm4, %ymm411205; AVX-NEXT: vblendps {{.*#+}} ymm3 = ymm3[0,1],ymm4[2,3,4,5,6,7]11206; AVX-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm211207; AVX-NEXT: vandnps %ymm2, %ymm7, %ymm211208; AVX-NEXT: vandps %ymm7, %ymm3, %ymm311209; AVX-NEXT: vorps %ymm2, %ymm3, %ymm111210; AVX-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11211; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload11212; AVX-NEXT: vpunpcklwd {{.*#+}} xmm3 = xmm15[0],xmm6[0],xmm15[1],xmm6[1],xmm15[2],xmm6[2],xmm15[3],xmm6[3]11213; AVX-NEXT: vpshufb %xmm0, %xmm3, %xmm311214; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload11215; AVX-NEXT: vpsrlq $48, %xmm14, %xmm411216; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Reload11217; AVX-NEXT: vpsrldq {{.*#+}} xmm5 = xmm11[6,7,8,9,10,11,12,13,14,15],zero,zero,zero,zero,zero,zero11218; AVX-NEXT: vpunpckldq {{.*#+}} xmm4 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]11219; AVX-NEXT: vpblendw {{.*#+}} xmm3 = xmm4[0,1,2],xmm3[3,4],xmm4[5,6,7]11220; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload11221; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload11222; AVX-NEXT: vpblendw {{.*#+}} xmm4 = xmm8[0,1,2,3,4,5],xmm2[6],xmm8[7]11223; AVX-NEXT: vpshufd {{.*#+}} xmm4 = xmm4[0,1,0,3]11224; AVX-NEXT: vpshufhw {{.*#+}} xmm4 = xmm4[0,1,2,3,4,4,7,6]11225; AVX-NEXT: vpblendw {{.*#+}} xmm3 = xmm3[0,1,2,3,4],xmm4[5,6,7]11226; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload11227; AVX-NEXT: vpsrld $16, %xmm0, %xmm411228; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Reload11229; AVX-NEXT: vpunpckhwd {{.*#+}} xmm4 = xmm4[4],xmm12[4],xmm4[5],xmm12[5],xmm4[6],xmm12[6],xmm4[7],xmm12[7]11230; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload11231; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload11232; AVX-NEXT: vpunpcklwd {{.*#+}} xmm5 = xmm1[0],xmm0[0],xmm1[1],xmm0[1],xmm1[2],xmm0[2],xmm1[3],xmm0[3]11233; AVX-NEXT: vpshufhw {{.*#+}} xmm5 = xmm5[0,1,2,3,6,5,6,7]11234; AVX-NEXT: vpshufd {{.*#+}} xmm5 = xmm5[2,2,2,2]11235; AVX-NEXT: vpblendw {{.*#+}} xmm4 = xmm4[0,1],xmm5[2,3],xmm4[4,5,6,7]11236; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload11237; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload11238; AVX-NEXT: vpblendw {{.*#+}} xmm5 = xmm10[0],xmm13[1],xmm10[2,3,4,5,6,7]11239; AVX-NEXT: vpshufd {{.*#+}} xmm5 = xmm5[0,1,0,3]11240; AVX-NEXT: vpshufhw {{.*#+}} xmm5 = xmm5[0,1,2,3,5,4,7,7]11241; AVX-NEXT: vpunpckhwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm5, %xmm5 # 16-byte Folded Reload11242; AVX-NEXT: # xmm5 = xmm5[4],mem[4],xmm5[5],mem[5],xmm5[6],mem[6],xmm5[7],mem[7]11243; AVX-NEXT: vpshuflw {{.*#+}} xmm5 = xmm5[0,2,2,3,4,5,6,7]11244; AVX-NEXT: vpshufd {{.*#+}} xmm5 = xmm5[0,1,0,2]11245; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Reload11246; AVX-NEXT: vpsrldq {{.*#+}} xmm6 = xmm9[10,11,12,13,14,15],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero11247; AVX-NEXT: vinsertf128 $1, %xmm6, %ymm5, %ymm511248; AVX-NEXT: vblendps {{.*#+}} ymm4 = ymm4[0,1],ymm5[2,3,4,5,6,7]11249; AVX-NEXT: vinsertf128 $1, %xmm3, %ymm0, %ymm311250; AVX-NEXT: vandnps %ymm3, %ymm7, %ymm311251; AVX-NEXT: vandps %ymm7, %ymm4, %ymm411252; AVX-NEXT: vorps %ymm3, %ymm4, %ymm311253; AVX-NEXT: vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11254; AVX-NEXT: vmovaps (%rsp), %xmm4 # 16-byte Reload11255; AVX-NEXT: vinsertps $41, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4, %xmm4 # 16-byte Folded Reload11256; AVX-NEXT: # xmm4 = zero,xmm4[1],mem[0],zero11257; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload11258; AVX-NEXT: vpunpckhdq {{[-0-9]+}}(%r{{[sb]}}p), %xmm3, %xmm5 # 16-byte Folded Reload11259; AVX-NEXT: # xmm5 = xmm3[2],mem[2],xmm3[3],mem[3]11260; AVX-NEXT: vpblendw {{.*#+}} xmm4 = xmm5[0,1,2],xmm4[3,4],xmm5[5,6,7]11261; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload11262; AVX-NEXT: vpblendw $253, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3, %xmm5 # 16-byte Folded Reload11263; AVX-NEXT: # xmm5 = mem[0],xmm3[1],mem[2,3,4,5,6,7]11264; AVX-NEXT: vpshufd {{.*#+}} xmm5 = xmm5[0,1,0,3]11265; AVX-NEXT: vpshufhw {{.*#+}} xmm5 = xmm5[0,1,2,3,4,5,4,7]11266; AVX-NEXT: vpblendw {{.*#+}} xmm4 = xmm4[0,1,2,3,4],xmm5[5,6,7]11267; AVX-NEXT: vpshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Folded Reload11268; AVX-NEXT: # xmm5 = mem[1,1,1,1]11269; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload11270; AVX-NEXT: vpsrldq {{.*#+}} xmm6 = xmm3[6,7,8,9,10,11,12,13,14,15],zero,zero,zero,zero,zero,zero11271; AVX-NEXT: vpunpcklwd {{.*#+}} xmm5 = xmm6[0],xmm5[0],xmm6[1],xmm5[1],xmm6[2],xmm5[2],xmm6[3],xmm5[3]11272; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload11273; AVX-NEXT: vpunpckhwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm3, %xmm6 # 16-byte Folded Reload11274; AVX-NEXT: # xmm6 = xmm3[4],mem[4],xmm3[5],mem[5],xmm3[6],mem[6],xmm3[7],mem[7]11275; AVX-NEXT: vpshufd {{.*#+}} xmm6 = xmm6[2,1,2,3]11276; AVX-NEXT: vpshuflw {{.*#+}} xmm6 = xmm6[0,3,2,3,4,5,6,7]11277; AVX-NEXT: vpblendw {{.*#+}} xmm5 = xmm6[0,1],xmm5[2,3],xmm6[4,5,6,7]11278; AVX-NEXT: vpmovzxwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Folded Reload11279; AVX-NEXT: # xmm6 = mem[0],zero,mem[1],zero,mem[2],zero,mem[3],zero11280; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload11281; AVX-NEXT: vpunpcklwd {{.*#+}} xmm6 = xmm7[0],xmm6[0],xmm7[1],xmm6[1],xmm7[2],xmm6[2],xmm7[3],xmm6[3]11282; AVX-NEXT: vpshufd $196, {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Folded Reload11283; AVX-NEXT: # xmm7 = mem[0,1,0,3]11284; AVX-NEXT: vpshufhw {{.*#+}} xmm7 = xmm7[0,1,2,3,4,5,4,7]11285; AVX-NEXT: vpblendw {{.*#+}} xmm6 = xmm6[0,1,2,3,4,5],xmm7[6,7]11286; AVX-NEXT: vpermilps $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Folded Reload11287; AVX-NEXT: # xmm7 = mem[3,3,3,3]11288; AVX-NEXT: vinsertf128 $1, %xmm7, %ymm6, %ymm611289; AVX-NEXT: vblendps {{.*#+}} ymm5 = ymm5[0,1],ymm6[2,3,4,5,6,7]11290; AVX-NEXT: vinsertf128 $1, %xmm4, %ymm0, %ymm411291; AVX-NEXT: vmovaps {{.*#+}} ymm3 = [65535,65535,65535,65535,65535,65535,65535,65535,65535,0,0,0,0,0,0,0]11292; AVX-NEXT: vandnps %ymm4, %ymm3, %ymm411293; AVX-NEXT: vandps %ymm3, %ymm5, %ymm511294; AVX-NEXT: vorps %ymm4, %ymm5, %ymm411295; AVX-NEXT: vinsertps $41, {{[-0-9]+}}(%r{{[sb]}}p), %xmm15, %xmm5 # 16-byte Folded Reload11296; AVX-NEXT: # xmm5 = zero,xmm15[1],mem[0],zero11297; AVX-NEXT: vpunpckhdq {{.*#+}} xmm6 = xmm11[2],xmm14[2],xmm11[3],xmm14[3]11298; AVX-NEXT: vpblendw {{.*#+}} xmm5 = xmm6[0,1,2],xmm5[3,4],xmm6[5,6,7]11299; AVX-NEXT: vpblendw {{.*#+}} xmm6 = xmm2[0],xmm8[1],xmm2[2,3,4,5,6,7]11300; AVX-NEXT: vpshufd {{.*#+}} xmm6 = xmm6[0,1,0,3]11301; AVX-NEXT: vpshufhw {{.*#+}} xmm6 = xmm6[0,1,2,3,4,5,4,7]11302; AVX-NEXT: vpblendw {{.*#+}} xmm5 = xmm5[0,1,2,3,4],xmm6[5,6,7]11303; AVX-NEXT: vpshufd {{.*#+}} xmm6 = xmm0[1,1,1,1]11304; AVX-NEXT: vpsrldq {{.*#+}} xmm7 = xmm1[6,7,8,9,10,11,12,13,14,15],zero,zero,zero,zero,zero,zero11305; AVX-NEXT: vpunpcklwd {{.*#+}} xmm6 = xmm7[0],xmm6[0],xmm7[1],xmm6[1],xmm7[2],xmm6[2],xmm7[3],xmm6[3]11306; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload11307; AVX-NEXT: vpunpckhwd {{.*#+}} xmm7 = xmm0[4],xmm12[4],xmm0[5],xmm12[5],xmm0[6],xmm12[6],xmm0[7],xmm12[7]11308; AVX-NEXT: vpshufd {{.*#+}} xmm7 = xmm7[2,1,2,3]11309; AVX-NEXT: vpshuflw {{.*#+}} xmm7 = xmm7[0,3,2,3,4,5,6,7]11310; AVX-NEXT: vpblendw {{.*#+}} xmm6 = xmm7[0,1],xmm6[2,3],xmm7[4,5,6,7]11311; AVX-NEXT: vpmovzxwd {{.*#+}} xmm7 = xmm10[0],zero,xmm10[1],zero,xmm10[2],zero,xmm10[3],zero11312; AVX-NEXT: vpunpcklwd {{.*#+}} xmm7 = xmm13[0],xmm7[0],xmm13[1],xmm7[1],xmm13[2],xmm7[2],xmm13[3],xmm7[3]11313; AVX-NEXT: vpshufd $196, {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Folded Reload11314; AVX-NEXT: # xmm8 = mem[0,1,0,3]11315; AVX-NEXT: vpshufhw {{.*#+}} xmm8 = xmm8[0,1,2,3,4,5,4,7]11316; AVX-NEXT: vpblendw {{.*#+}} xmm7 = xmm7[0,1,2,3,4,5],xmm8[6,7]11317; AVX-NEXT: vpshufd {{.*#+}} xmm8 = xmm9[3,3,3,3]11318; AVX-NEXT: vinsertf128 $1, %xmm8, %ymm7, %ymm711319; AVX-NEXT: vblendps {{.*#+}} ymm6 = ymm6[0,1],ymm7[2,3,4,5,6,7]11320; AVX-NEXT: vinsertf128 $1, %xmm5, %ymm0, %ymm511321; AVX-NEXT: vandnps %ymm5, %ymm3, %ymm511322; AVX-NEXT: vandps %ymm3, %ymm6, %ymm611323; AVX-NEXT: vorps %ymm5, %ymm6, %ymm511324; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload11325; AVX-NEXT: vinsertps $41, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm6 # 16-byte Folded Reload11326; AVX-NEXT: # xmm6 = zero,xmm0[1],mem[0],zero11327; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload11328; AVX-NEXT: vpunpckhdq {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm7 # 16-byte Folded Reload11329; AVX-NEXT: # xmm7 = xmm0[2],mem[2],xmm0[3],mem[3]11330; AVX-NEXT: vpblendw {{.*#+}} xmm6 = xmm7[0,1,2],xmm6[3,4],xmm7[5,6,7]11331; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload11332; AVX-NEXT: vpblendw $253, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm7 # 16-byte Folded Reload11333; AVX-NEXT: # xmm7 = mem[0],xmm0[1],mem[2,3,4,5,6,7]11334; AVX-NEXT: vpshufd {{.*#+}} xmm7 = xmm7[0,1,0,3]11335; AVX-NEXT: vpshufhw {{.*#+}} xmm7 = xmm7[0,1,2,3,4,5,4,7]11336; AVX-NEXT: vpblendw {{.*#+}} xmm6 = xmm6[0,1,2,3,4],xmm7[5,6,7]11337; AVX-NEXT: vpshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Folded Reload11338; AVX-NEXT: # xmm7 = mem[1,1,1,1]11339; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload11340; AVX-NEXT: vpsrldq {{.*#+}} xmm8 = xmm0[6,7,8,9,10,11,12,13,14,15],zero,zero,zero,zero,zero,zero11341; AVX-NEXT: vpunpcklwd {{.*#+}} xmm7 = xmm8[0],xmm7[0],xmm8[1],xmm7[1],xmm8[2],xmm7[2],xmm8[3],xmm7[3]11342; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload11343; AVX-NEXT: vpunpckhwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm8 # 16-byte Folded Reload11344; AVX-NEXT: # xmm8 = xmm0[4],mem[4],xmm0[5],mem[5],xmm0[6],mem[6],xmm0[7],mem[7]11345; AVX-NEXT: vpshufd {{.*#+}} xmm8 = xmm8[2,1,2,3]11346; AVX-NEXT: vpshuflw {{.*#+}} xmm8 = xmm8[0,3,2,3,4,5,6,7]11347; AVX-NEXT: vpblendw {{.*#+}} xmm7 = xmm8[0,1],xmm7[2,3],xmm8[4,5,6,7]11348; AVX-NEXT: vpmovzxwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Folded Reload11349; AVX-NEXT: # xmm8 = mem[0],zero,mem[1],zero,mem[2],zero,mem[3],zero11350; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload11351; AVX-NEXT: vpunpcklwd {{.*#+}} xmm8 = xmm0[0],xmm8[0],xmm0[1],xmm8[1],xmm0[2],xmm8[2],xmm0[3],xmm8[3]11352; AVX-NEXT: vpshufd $196, {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Folded Reload11353; AVX-NEXT: # xmm9 = mem[0,1,0,3]11354; AVX-NEXT: vpshufhw {{.*#+}} xmm9 = xmm9[0,1,2,3,4,5,4,7]11355; AVX-NEXT: vpblendw {{.*#+}} xmm8 = xmm8[0,1,2,3,4,5],xmm9[6,7]11356; AVX-NEXT: vpermilps $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Folded Reload11357; AVX-NEXT: # xmm9 = mem[3,3,3,3]11358; AVX-NEXT: vinsertf128 $1, %xmm9, %ymm8, %ymm811359; AVX-NEXT: vblendps {{.*#+}} ymm7 = ymm7[0,1],ymm8[2,3,4,5,6,7]11360; AVX-NEXT: vinsertf128 $1, %xmm6, %ymm0, %ymm611361; AVX-NEXT: vandnps %ymm6, %ymm3, %ymm611362; AVX-NEXT: vandps %ymm3, %ymm7, %ymm711363; AVX-NEXT: vorps %ymm6, %ymm7, %ymm611364; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload11365; AVX-NEXT: vinsertps $41, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm7 # 16-byte Folded Reload11366; AVX-NEXT: # xmm7 = zero,xmm0[1],mem[0],zero11367; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload11368; AVX-NEXT: vpunpckhdq {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm8 # 16-byte Folded Reload11369; AVX-NEXT: # xmm8 = xmm0[2],mem[2],xmm0[3],mem[3]11370; AVX-NEXT: vpblendw {{.*#+}} xmm7 = xmm8[0,1,2],xmm7[3,4],xmm8[5,6,7]11371; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload11372; AVX-NEXT: vpblendw $253, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm8 # 16-byte Folded Reload11373; AVX-NEXT: # xmm8 = mem[0],xmm0[1],mem[2,3,4,5,6,7]11374; AVX-NEXT: vpshufd {{.*#+}} xmm8 = xmm8[0,1,0,3]11375; AVX-NEXT: vpshufhw {{.*#+}} xmm8 = xmm8[0,1,2,3,4,5,4,7]11376; AVX-NEXT: vpblendw {{.*#+}} xmm7 = xmm7[0,1,2,3,4],xmm8[5,6,7]11377; AVX-NEXT: vpshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Folded Reload11378; AVX-NEXT: # xmm8 = mem[1,1,1,1]11379; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload11380; AVX-NEXT: vpsrldq {{.*#+}} xmm9 = xmm0[6,7,8,9,10,11,12,13,14,15],zero,zero,zero,zero,zero,zero11381; AVX-NEXT: vpunpcklwd {{.*#+}} xmm8 = xmm9[0],xmm8[0],xmm9[1],xmm8[1],xmm9[2],xmm8[2],xmm9[3],xmm8[3]11382; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload11383; AVX-NEXT: vpunpckhwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm9 # 16-byte Folded Reload11384; AVX-NEXT: # xmm9 = xmm0[4],mem[4],xmm0[5],mem[5],xmm0[6],mem[6],xmm0[7],mem[7]11385; AVX-NEXT: vpshufd {{.*#+}} xmm9 = xmm9[2,1,2,3]11386; AVX-NEXT: vpshuflw {{.*#+}} xmm9 = xmm9[0,3,2,3,4,5,6,7]11387; AVX-NEXT: vpblendw {{.*#+}} xmm8 = xmm9[0,1],xmm8[2,3],xmm9[4,5,6,7]11388; AVX-NEXT: vpmovzxwd {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Folded Reload11389; AVX-NEXT: # xmm9 = mem[0],zero,mem[1],zero,mem[2],zero,mem[3],zero11390; AVX-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload11391; AVX-NEXT: vpunpcklwd {{.*#+}} xmm9 = xmm0[0],xmm9[0],xmm0[1],xmm9[1],xmm0[2],xmm9[2],xmm0[3],xmm9[3]11392; AVX-NEXT: vpshufd $196, {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Folded Reload11393; AVX-NEXT: # xmm10 = mem[0,1,0,3]11394; AVX-NEXT: vpshufhw {{.*#+}} xmm10 = xmm10[0,1,2,3,4,5,4,7]11395; AVX-NEXT: vpblendw {{.*#+}} xmm9 = xmm9[0,1,2,3,4,5],xmm10[6,7]11396; AVX-NEXT: vpermilps $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Folded Reload11397; AVX-NEXT: # xmm10 = mem[3,3,3,3]11398; AVX-NEXT: vinsertf128 $1, %xmm10, %ymm9, %ymm911399; AVX-NEXT: vblendps {{.*#+}} ymm8 = ymm8[0,1],ymm9[2,3,4,5,6,7]11400; AVX-NEXT: vinsertf128 $1, %xmm7, %ymm0, %ymm711401; AVX-NEXT: vandnps %ymm7, %ymm3, %ymm711402; AVX-NEXT: vandps %ymm3, %ymm8, %ymm011403; AVX-NEXT: vorps %ymm7, %ymm0, %ymm011404; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload11405; AVX-NEXT: vmovaps %ymm1, 96(%rsi)11406; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload11407; AVX-NEXT: vmovaps %ymm1, 32(%rsi)11408; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload11409; AVX-NEXT: vmovaps %ymm7, 64(%rsi)11410; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload11411; AVX-NEXT: vmovaps %ymm7, (%rsi)11412; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload11413; AVX-NEXT: vmovaps %ymm1, 96(%rdx)11414; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload11415; AVX-NEXT: vmovaps %ymm1, 32(%rdx)11416; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload11417; AVX-NEXT: vmovaps %ymm1, 64(%rdx)11418; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload11419; AVX-NEXT: vmovaps %ymm1, (%rdx)11420; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload11421; AVX-NEXT: vmovaps %ymm1, 32(%rcx)11422; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload11423; AVX-NEXT: vmovaps %ymm1, 96(%rcx)11424; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload11425; AVX-NEXT: vmovaps %ymm1, 64(%rcx)11426; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload11427; AVX-NEXT: vmovaps %ymm1, (%rcx)11428; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload11429; AVX-NEXT: vmovaps %ymm1, 96(%r8)11430; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload11431; AVX-NEXT: vmovaps %ymm1, 32(%r8)11432; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload11433; AVX-NEXT: vmovaps %ymm1, 64(%r8)11434; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload11435; AVX-NEXT: vmovaps %ymm1, (%r8)11436; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload11437; AVX-NEXT: vmovaps %ymm1, 96(%r9)11438; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload11439; AVX-NEXT: vmovaps %ymm1, 32(%r9)11440; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload11441; AVX-NEXT: vmovaps %ymm1, (%r9)11442; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload11443; AVX-NEXT: vmovaps %ymm1, 64(%r9)11444; AVX-NEXT: movq {{[0-9]+}}(%rsp), %rax11445; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload11446; AVX-NEXT: vmovaps %ymm1, 96(%rax)11447; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload11448; AVX-NEXT: vmovaps %ymm1, 32(%rax)11449; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload11450; AVX-NEXT: vmovaps %ymm1, 64(%rax)11451; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload11452; AVX-NEXT: vmovaps %ymm1, (%rax)11453; AVX-NEXT: movq {{[0-9]+}}(%rsp), %rax11454; AVX-NEXT: vmovaps %ymm0, 32(%rax)11455; AVX-NEXT: vmovaps %ymm6, (%rax)11456; AVX-NEXT: vmovaps %ymm5, 96(%rax)11457; AVX-NEXT: vmovaps %ymm4, 64(%rax)11458; AVX-NEXT: addq $1544, %rsp # imm = 0x60811459; AVX-NEXT: vzeroupper11460; AVX-NEXT: retq11461;11462; AVX2-LABEL: load_i16_stride7_vf64:11463; AVX2: # %bb.0:11464; AVX2-NEXT: subq $1448, %rsp # imm = 0x5A811465; AVX2-NEXT: vmovdqa 256(%rdi), %ymm1311466; AVX2-NEXT: vmovdqa 224(%rdi), %ymm1411467; AVX2-NEXT: vmovdqa 512(%rdi), %ymm1511468; AVX2-NEXT: vmovdqa 544(%rdi), %ymm1211469; AVX2-NEXT: vmovdqa 480(%rdi), %ymm911470; AVX2-NEXT: vmovdqa 448(%rdi), %ymm1011471; AVX2-NEXT: vmovdqa (%rdi), %ymm311472; AVX2-NEXT: vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11473; AVX2-NEXT: vmovdqa 32(%rdi), %ymm411474; AVX2-NEXT: vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11475; AVX2-NEXT: vmovdqa 64(%rdi), %ymm011476; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11477; AVX2-NEXT: vmovdqa 96(%rdi), %ymm111478; AVX2-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11479; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0],ymm0[1],ymm1[2,3,4],ymm0[5],ymm1[6,7]11480; AVX2-NEXT: vpermq {{.*#+}} ymm0 = ymm0[0,2,2,3]11481; AVX2-NEXT: vmovdqa {{.*#+}} ymm2 = [0,1,14,15,12,13,14,15,2,3,6,7,12,13,2,3,16,17,30,31,28,29,30,31,18,19,22,23,28,29,18,19]11482; AVX2-NEXT: vpshufb %ymm2, %ymm0, %ymm011483; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm3[0,1],ymm4[2],ymm3[3,4,5],ymm4[6],ymm3[7]11484; AVX2-NEXT: vextracti128 $1, %ymm1, %xmm311485; AVX2-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1,2,3],xmm3[4],xmm1[5],xmm3[6],xmm1[7]11486; AVX2-NEXT: vmovdqa {{.*#+}} xmm3 = [0,1,14,15,12,13,10,11,8,9,8,9,8,9,8,9]11487; AVX2-NEXT: vpshufb %xmm3, %xmm1, %xmm411488; AVX2-NEXT: vpmovsxbw {{.*#+}} xmm1 = [65535,65535,65535,65535,65535,0,0,0]11489; AVX2-NEXT: vpblendvb %ymm1, %ymm4, %ymm0, %ymm011490; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11491; AVX2-NEXT: vpblendd {{.*#+}} ymm4 = ymm10[0,1],ymm9[2],ymm10[3,4,5],ymm9[6],ymm10[7]11492; AVX2-NEXT: vmovdqu %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11493; AVX2-NEXT: vmovdqu %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11494; AVX2-NEXT: vextracti128 $1, %ymm4, %xmm511495; AVX2-NEXT: vpblendw {{.*#+}} xmm4 = xmm4[0,1,2,3],xmm5[4],xmm4[5],xmm5[6],xmm4[7]11496; AVX2-NEXT: vpshufb %xmm3, %xmm4, %xmm411497; AVX2-NEXT: vpblendd {{.*#+}} ymm5 = ymm12[0],ymm15[1],ymm12[2,3,4],ymm15[5],ymm12[6,7]11498; AVX2-NEXT: vmovdqu %ymm15, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11499; AVX2-NEXT: vmovdqu %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11500; AVX2-NEXT: vpermq {{.*#+}} ymm5 = ymm5[0,2,2,3]11501; AVX2-NEXT: vpshufb %ymm2, %ymm5, %ymm511502; AVX2-NEXT: vpblendvb %ymm1, %ymm4, %ymm5, %ymm011503; AVX2-NEXT: vmovdqa %ymm1, %ymm811504; AVX2-NEXT: vmovdqu %ymm0, (%rsp) # 32-byte Spill11505; AVX2-NEXT: vpblendd {{.*#+}} ymm4 = ymm14[0,1],ymm13[2],ymm14[3,4,5],ymm13[6],ymm14[7]11506; AVX2-NEXT: vmovdqu %ymm14, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11507; AVX2-NEXT: vmovdqu %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11508; AVX2-NEXT: vextracti128 $1, %ymm4, %xmm511509; AVX2-NEXT: vpblendw {{.*#+}} xmm4 = xmm4[0,1,2,3],xmm5[4],xmm4[5],xmm5[6],xmm4[7]11510; AVX2-NEXT: vpshufb %xmm3, %xmm4, %xmm411511; AVX2-NEXT: vmovdqa 288(%rdi), %ymm711512; AVX2-NEXT: vmovdqa 320(%rdi), %ymm111513; AVX2-NEXT: vpblendd {{.*#+}} ymm5 = ymm1[0],ymm7[1],ymm1[2,3,4],ymm7[5],ymm1[6,7]11514; AVX2-NEXT: vmovdqu %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11515; AVX2-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11516; AVX2-NEXT: vpermq {{.*#+}} ymm5 = ymm5[0,2,2,3]11517; AVX2-NEXT: vpshufb %ymm2, %ymm5, %ymm511518; AVX2-NEXT: vpblendvb %ymm8, %ymm4, %ymm5, %ymm011519; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11520; AVX2-NEXT: vmovdqa 704(%rdi), %ymm011521; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11522; AVX2-NEXT: vmovdqa 672(%rdi), %ymm811523; AVX2-NEXT: vpblendd {{.*#+}} ymm4 = ymm8[0,1],ymm0[2],ymm8[3,4,5],ymm0[6],ymm8[7]11524; AVX2-NEXT: vextracti128 $1, %ymm4, %xmm511525; AVX2-NEXT: vpblendw {{.*#+}} xmm4 = xmm4[0,1,2,3],xmm5[4],xmm4[5],xmm5[6],xmm4[7]11526; AVX2-NEXT: vpshufb %xmm3, %xmm4, %xmm311527; AVX2-NEXT: vmovdqa 736(%rdi), %ymm1111528; AVX2-NEXT: vmovdqa 768(%rdi), %ymm011529; AVX2-NEXT: vpblendd {{.*#+}} ymm4 = ymm0[0],ymm11[1],ymm0[2,3,4],ymm11[5],ymm0[6,7]11530; AVX2-NEXT: vpermq {{.*#+}} ymm4 = ymm4[0,2,2,3]11531; AVX2-NEXT: vpshufb %ymm2, %ymm4, %ymm211532; AVX2-NEXT: vpmovsxbw {{.*#+}} xmm6 = [65535,65535,65535,65535,65535,0,0,0]11533; AVX2-NEXT: vpblendvb %ymm6, %ymm3, %ymm2, %ymm211534; AVX2-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11535; AVX2-NEXT: vpblendd {{.*#+}} ymm2 = ymm12[0,1],ymm15[2],ymm12[3,4],ymm15[5],ymm12[6,7]11536; AVX2-NEXT: vpermq {{.*#+}} ymm3 = ymm2[2,3,0,1]11537; AVX2-NEXT: vpblendw {{.*#+}} ymm2 = ymm2[0,1,2],ymm3[3],ymm2[4,5,6,7,8,9,10],ymm3[11],ymm2[12,13,14,15]11538; AVX2-NEXT: vpblendd {{.*#+}} ymm3 = ymm10[0,1,2],ymm9[3],ymm10[4,5],ymm9[6],ymm10[7]11539; AVX2-NEXT: vextracti128 $1, %ymm3, %xmm411540; AVX2-NEXT: vpblendw {{.*#+}} xmm4 = xmm4[0],xmm3[1],xmm4[2,3,4,5],xmm3[6],xmm4[7]11541; AVX2-NEXT: vmovdqa {{.*#+}} ymm3 = [2,3,2,3,2,3,2,3,8,9,8,9,6,7,4,5,18,19,18,19,18,19,18,19,24,25,24,25,22,23,20,21]11542; AVX2-NEXT: vpshufb %ymm3, %ymm2, %ymm511543; AVX2-NEXT: vmovdqa {{.*#+}} xmm2 = [2,3,0,1,14,15,12,13,10,11,10,11,10,11,10,11]11544; AVX2-NEXT: vpshufb %xmm2, %xmm4, %xmm411545; AVX2-NEXT: vpblendvb %ymm6, %ymm4, %ymm5, %ymm411546; AVX2-NEXT: vmovdqa %ymm6, %ymm911547; AVX2-NEXT: vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11548; AVX2-NEXT: vpblendd {{.*#+}} ymm4 = ymm1[0,1],ymm7[2],ymm1[3,4],ymm7[5],ymm1[6,7]11549; AVX2-NEXT: vpermq {{.*#+}} ymm5 = ymm4[2,3,0,1]11550; AVX2-NEXT: vpblendw {{.*#+}} ymm4 = ymm4[0,1,2],ymm5[3],ymm4[4,5,6,7,8,9,10],ymm5[11],ymm4[12,13,14,15]11551; AVX2-NEXT: vpblendd {{.*#+}} ymm5 = ymm14[0,1,2],ymm13[3],ymm14[4,5],ymm13[6],ymm14[7]11552; AVX2-NEXT: vextracti128 $1, %ymm5, %xmm611553; AVX2-NEXT: vpblendw {{.*#+}} xmm5 = xmm6[0],xmm5[1],xmm6[2,3,4,5],xmm5[6],xmm6[7]11554; AVX2-NEXT: vpshufb %ymm3, %ymm4, %ymm411555; AVX2-NEXT: vpshufb %xmm2, %xmm5, %xmm511556; AVX2-NEXT: vpblendvb %ymm9, %ymm5, %ymm4, %ymm411557; AVX2-NEXT: vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11558; AVX2-NEXT: vmovdqa %ymm11, %ymm1511559; AVX2-NEXT: vpblendd {{.*#+}} ymm4 = ymm0[0,1],ymm11[2],ymm0[3,4],ymm11[5],ymm0[6,7]11560; AVX2-NEXT: vmovdqa %ymm0, %ymm1411561; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11562; AVX2-NEXT: vpermq {{.*#+}} ymm5 = ymm4[2,3,0,1]11563; AVX2-NEXT: vpblendw {{.*#+}} ymm4 = ymm4[0,1,2],ymm5[3],ymm4[4,5,6,7,8,9,10],ymm5[11],ymm4[12,13,14,15]11564; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm12 # 32-byte Reload11565; AVX2-NEXT: vpblendd {{.*#+}} ymm5 = ymm8[0,1,2],ymm12[3],ymm8[4,5],ymm12[6],ymm8[7]11566; AVX2-NEXT: vmovdqa %ymm8, %ymm1311567; AVX2-NEXT: vmovdqu %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11568; AVX2-NEXT: vextracti128 $1, %ymm5, %xmm611569; AVX2-NEXT: vpblendw {{.*#+}} xmm5 = xmm6[0],xmm5[1],xmm6[2,3,4,5],xmm5[6],xmm6[7]11570; AVX2-NEXT: vpshufb %ymm3, %ymm4, %ymm411571; AVX2-NEXT: vpshufb %xmm2, %xmm5, %xmm511572; AVX2-NEXT: vmovdqa %ymm9, %ymm711573; AVX2-NEXT: vpblendvb %ymm9, %ymm5, %ymm4, %ymm011574; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11575; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload11576; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload11577; AVX2-NEXT: vpblendd {{.*#+}} ymm4 = ymm9[0,1],ymm1[2],ymm9[3,4],ymm1[5],ymm9[6,7]11578; AVX2-NEXT: vpermq {{.*#+}} ymm5 = ymm4[2,3,0,1]11579; AVX2-NEXT: vpblendw {{.*#+}} ymm4 = ymm4[0,1,2],ymm5[3],ymm4[4,5,6,7,8,9,10],ymm5[11],ymm4[12,13,14,15]11580; AVX2-NEXT: vpshufb %ymm3, %ymm4, %ymm311581; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload11582; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Reload11583; AVX2-NEXT: vpblendd {{.*#+}} ymm4 = ymm11[0,1,2],ymm10[3],ymm11[4,5],ymm10[6],ymm11[7]11584; AVX2-NEXT: vextracti128 $1, %ymm4, %xmm511585; AVX2-NEXT: vpblendw {{.*#+}} xmm4 = xmm5[0],xmm4[1],xmm5[2,3,4,5],xmm4[6],xmm5[7]11586; AVX2-NEXT: vpshufb %xmm2, %xmm4, %xmm211587; AVX2-NEXT: vpblendvb %ymm7, %ymm2, %ymm3, %ymm011588; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11589; AVX2-NEXT: vpermq {{.*#+}} ymm2 = ymm1[2,3,0,1]11590; AVX2-NEXT: vpblendd {{.*#+}} ymm3 = ymm9[0,1],ymm1[2,3],ymm9[4,5],ymm1[6,7]11591; AVX2-NEXT: vpblendw {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm2[4],ymm3[5,6,7,8,9,10,11],ymm2[12],ymm3[13,14,15]11592; AVX2-NEXT: vpblendd {{.*#+}} ymm2 = ymm10[0],ymm11[1],ymm10[2,3],ymm11[4],ymm10[5,6,7]11593; AVX2-NEXT: vextracti128 $1, %ymm2, %xmm411594; AVX2-NEXT: vpblendw {{.*#+}} xmm4 = xmm2[0],xmm4[1],xmm2[2,3,4,5],xmm4[6],xmm2[7]11595; AVX2-NEXT: vmovdqa {{.*#+}} ymm2 = [4,5,4,5,4,5,4,5,8,9,10,11,8,9,6,7,20,21,20,21,20,21,20,21,24,25,26,27,24,25,22,23]11596; AVX2-NEXT: vpshufb %ymm2, %ymm3, %ymm511597; AVX2-NEXT: vmovdqa {{.*#+}} xmm3 = [4,5,2,3,0,1,14,15,12,13,12,13,12,13,12,13]11598; AVX2-NEXT: vpshufb %xmm3, %xmm4, %xmm411599; AVX2-NEXT: vpblendvb %ymm7, %ymm4, %ymm5, %ymm011600; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11601; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload11602; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload11603; AVX2-NEXT: vpblendd {{.*#+}} ymm4 = ymm7[0],ymm1[1],ymm7[2,3],ymm1[4],ymm7[5,6,7]11604; AVX2-NEXT: vextracti128 $1, %ymm4, %xmm511605; AVX2-NEXT: vpblendw {{.*#+}} xmm4 = xmm4[0],xmm5[1],xmm4[2,3,4,5],xmm5[6],xmm4[7]11606; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload11607; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload11608; AVX2-NEXT: vpblendd {{.*#+}} ymm5 = ymm8[0,1],ymm9[2,3],ymm8[4,5],ymm9[6,7]11609; AVX2-NEXT: vpermq {{.*#+}} ymm6 = ymm9[2,3,0,1]11610; AVX2-NEXT: vpblendw {{.*#+}} ymm5 = ymm5[0,1,2,3],ymm6[4],ymm5[5,6,7,8,9,10,11],ymm6[12],ymm5[13,14,15]11611; AVX2-NEXT: vpshufb %xmm3, %xmm4, %xmm411612; AVX2-NEXT: vpshufb %ymm2, %ymm5, %ymm511613; AVX2-NEXT: vpmovsxbw {{.*#+}} xmm0 = [65535,65535,65535,65535,65535,0,0,0]11614; AVX2-NEXT: vpblendvb %ymm0, %ymm4, %ymm5, %ymm411615; AVX2-NEXT: vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11616; AVX2-NEXT: vpblendd {{.*#+}} ymm4 = ymm12[0],ymm13[1],ymm12[2,3],ymm13[4],ymm12[5,6,7]11617; AVX2-NEXT: vextracti128 $1, %ymm4, %xmm511618; AVX2-NEXT: vpblendw {{.*#+}} xmm4 = xmm4[0],xmm5[1],xmm4[2,3,4,5],xmm5[6],xmm4[7]11619; AVX2-NEXT: vmovdqu %ymm15, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11620; AVX2-NEXT: vpblendd {{.*#+}} ymm5 = ymm14[0,1],ymm15[2,3],ymm14[4,5],ymm15[6,7]11621; AVX2-NEXT: vpermq {{.*#+}} ymm6 = ymm15[2,3,0,1]11622; AVX2-NEXT: vpblendw {{.*#+}} ymm5 = ymm5[0,1,2,3],ymm6[4],ymm5[5,6,7,8,9,10,11],ymm6[12],ymm5[13,14,15]11623; AVX2-NEXT: vpshufb %xmm3, %xmm4, %xmm411624; AVX2-NEXT: vpshufb %ymm2, %ymm5, %ymm511625; AVX2-NEXT: vpblendvb %ymm0, %ymm4, %ymm5, %ymm411626; AVX2-NEXT: vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11627; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm13 # 32-byte Reload11628; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Reload11629; AVX2-NEXT: vpblendd {{.*#+}} ymm4 = ymm13[0],ymm14[1],ymm13[2,3],ymm14[4],ymm13[5,6,7]11630; AVX2-NEXT: vextracti128 $1, %ymm4, %xmm511631; AVX2-NEXT: vpblendw {{.*#+}} xmm4 = xmm4[0],xmm5[1],xmm4[2,3,4,5],xmm5[6],xmm4[7]11632; AVX2-NEXT: vpshufb %xmm3, %xmm4, %xmm311633; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Reload11634; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload11635; AVX2-NEXT: vpblendd {{.*#+}} ymm4 = ymm6[0,1],ymm15[2,3],ymm6[4,5],ymm15[6,7]11636; AVX2-NEXT: vpermq {{.*#+}} ymm5 = ymm15[2,3,0,1]11637; AVX2-NEXT: vpblendw {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm5[4],ymm4[5,6,7,8,9,10,11],ymm5[12],ymm4[13,14,15]11638; AVX2-NEXT: vpshufb %ymm2, %ymm4, %ymm211639; AVX2-NEXT: vmovdqa %ymm0, %ymm511640; AVX2-NEXT: vpblendvb %ymm0, %ymm3, %ymm2, %ymm211641; AVX2-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11642; AVX2-NEXT: vpblendd {{.*#+}} ymm2 = ymm10[0],ymm11[1],ymm10[2,3,4],ymm11[5],ymm10[6,7]11643; AVX2-NEXT: vextracti128 $1, %ymm2, %xmm311644; AVX2-NEXT: vpblendw {{.*#+}} xmm3 = xmm3[0],xmm2[1],xmm3[2],xmm2[3],xmm3[4,5,6,7]11645; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload11646; AVX2-NEXT: vpblendd $72, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm2 # 32-byte Folded Reload11647; AVX2-NEXT: # ymm2 = ymm0[0,1,2],mem[3],ymm0[4,5],mem[6],ymm0[7]11648; AVX2-NEXT: vpermq {{.*#+}} ymm4 = ymm2[1,3,2,3]11649; AVX2-NEXT: vmovdqa {{.*#+}} ymm2 = [6,7,6,7,6,7,6,7,8,9,4,5,10,11,0,1,22,23,22,23,22,23,22,23,24,25,20,21,26,27,16,17]11650; AVX2-NEXT: vpshufb %ymm2, %ymm4, %ymm411651; AVX2-NEXT: vpshuflw {{.*#+}} xmm3 = xmm3[3,2,1,0,4,5,6,7]11652; AVX2-NEXT: vpshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,7,7,7,7]11653; AVX2-NEXT: vpblendvb %ymm5, %ymm3, %ymm4, %ymm311654; AVX2-NEXT: vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11655; AVX2-NEXT: vpblendd {{.*#+}} ymm3 = ymm7[0],ymm1[1],ymm7[2,3,4],ymm1[5],ymm7[6,7]11656; AVX2-NEXT: vextracti128 $1, %ymm3, %xmm411657; AVX2-NEXT: vpblendw {{.*#+}} xmm3 = xmm4[0],xmm3[1],xmm4[2],xmm3[3],xmm4[4,5,6,7]11658; AVX2-NEXT: vpshuflw {{.*#+}} xmm3 = xmm3[3,2,1,0,4,5,6,7]11659; AVX2-NEXT: vpshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,7,7,7,7]11660; AVX2-NEXT: vpblendd {{.*#+}} ymm4 = ymm8[0,1,2],ymm9[3],ymm8[4,5],ymm9[6],ymm8[7]11661; AVX2-NEXT: vpermq {{.*#+}} ymm4 = ymm4[1,3,2,3]11662; AVX2-NEXT: vpshufb %ymm2, %ymm4, %ymm411663; AVX2-NEXT: vpblendvb %ymm5, %ymm3, %ymm4, %ymm011664; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11665; AVX2-NEXT: vpblendd {{.*#+}} ymm3 = ymm13[0],ymm14[1],ymm13[2,3,4],ymm14[5],ymm13[6,7]11666; AVX2-NEXT: vextracti128 $1, %ymm3, %xmm411667; AVX2-NEXT: vpblendw {{.*#+}} xmm3 = xmm4[0],xmm3[1],xmm4[2],xmm3[3],xmm4[4,5,6,7]11668; AVX2-NEXT: vpshuflw {{.*#+}} xmm3 = xmm3[3,2,1,0,4,5,6,7]11669; AVX2-NEXT: vpshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,7,7,7,7]11670; AVX2-NEXT: vpblendd {{.*#+}} ymm4 = ymm6[0,1,2],ymm15[3],ymm6[4,5],ymm15[6],ymm6[7]11671; AVX2-NEXT: vpermq {{.*#+}} ymm4 = ymm4[1,3,2,3]11672; AVX2-NEXT: vpshufb %ymm2, %ymm4, %ymm411673; AVX2-NEXT: vpblendvb %ymm5, %ymm3, %ymm4, %ymm011674; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11675; AVX2-NEXT: vpblendd $34, {{[-0-9]+}}(%r{{[sb]}}p), %ymm12, %ymm3 # 32-byte Folded Reload11676; AVX2-NEXT: # ymm3 = ymm12[0],mem[1],ymm12[2,3,4],mem[5],ymm12[6,7]11677; AVX2-NEXT: vextracti128 $1, %ymm3, %xmm411678; AVX2-NEXT: vpblendw {{.*#+}} xmm3 = xmm4[0],xmm3[1],xmm4[2],xmm3[3],xmm4[4,5,6,7]11679; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload11680; AVX2-NEXT: vpblendd $183, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm4 # 32-byte Folded Reload11681; AVX2-NEXT: # ymm4 = mem[0,1,2],ymm0[3],mem[4,5],ymm0[6],mem[7]11682; AVX2-NEXT: vpermq {{.*#+}} ymm4 = ymm4[1,3,2,3]11683; AVX2-NEXT: vpshufb %ymm2, %ymm4, %ymm211684; AVX2-NEXT: vpshuflw {{.*#+}} xmm3 = xmm3[3,2,1,0,4,5,6,7]11685; AVX2-NEXT: vpshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,7,7,7,7]11686; AVX2-NEXT: vpblendvb %ymm5, %ymm3, %ymm2, %ymm011687; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11688; AVX2-NEXT: vmovdqa 128(%rdi), %ymm1211689; AVX2-NEXT: vmovdqa 160(%rdi), %ymm1011690; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm10[0,1,2],ymm12[3],ymm10[4,5],ymm12[6],ymm10[7]11691; AVX2-NEXT: vpshufhw {{.*#+}} xmm2 = xmm1[0,1,2,3,4,6,4,7]11692; AVX2-NEXT: vextracti128 $1, %ymm1, %xmm111693; AVX2-NEXT: vpshufd {{.*#+}} xmm1 = xmm1[0,1,2,1]11694; AVX2-NEXT: vpshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,5,7,7]11695; AVX2-NEXT: vpunpckhwd {{.*#+}} xmm1 = xmm2[4],xmm1[4],xmm2[5],xmm1[5],xmm2[6],xmm1[6],xmm2[7],xmm1[7]11696; AVX2-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm111697; AVX2-NEXT: vmovdqa 192(%rdi), %ymm011698; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11699; AVX2-NEXT: vpermq {{.*#+}} ymm8 = ymm0[0,1,0,2]11700; AVX2-NEXT: vpshufd {{.*#+}} ymm2 = ymm8[0,1,2,1,4,5,6,5]11701; AVX2-NEXT: vpshufhw {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5,6,5,8,9,10,11,12,13,14,13]11702; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,6],ymm2[7]11703; AVX2-NEXT: vpblendd $31, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm0 # 32-byte Folded Reload11704; AVX2-NEXT: # ymm0 = mem[0,1,2,3,4],ymm1[5,6,7]11705; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11706; AVX2-NEXT: vmovdqa 576(%rdi), %ymm1311707; AVX2-NEXT: vmovdqa 608(%rdi), %ymm1111708; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm11[0,1,2],ymm13[3],ymm11[4,5],ymm13[6],ymm11[7]11709; AVX2-NEXT: vpshufhw {{.*#+}} xmm1 = xmm0[0,1,2,3,4,6,4,7]11710; AVX2-NEXT: vextracti128 $1, %ymm0, %xmm011711; AVX2-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[0,1,2,1]11712; AVX2-NEXT: vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,5,7,7]11713; AVX2-NEXT: vpunpckhwd {{.*#+}} xmm0 = xmm1[4],xmm0[4],xmm1[5],xmm0[5],xmm1[6],xmm0[6],xmm1[7],xmm0[7]11714; AVX2-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm011715; AVX2-NEXT: vmovdqa 640(%rdi), %ymm111716; AVX2-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11717; AVX2-NEXT: vpermq {{.*#+}} ymm4 = ymm1[0,1,0,2]11718; AVX2-NEXT: vpshufd {{.*#+}} ymm2 = ymm4[0,1,2,1,4,5,6,5]11719; AVX2-NEXT: vpshufhw {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5,6,5,8,9,10,11,12,13,14,13]11720; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5,6],ymm2[7]11721; AVX2-NEXT: vpblendd $31, (%rsp), %ymm0, %ymm0 # 32-byte Folded Reload11722; AVX2-NEXT: # ymm0 = mem[0,1,2,3,4],ymm0[5,6,7]11723; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11724; AVX2-NEXT: vmovdqa 352(%rdi), %ymm511725; AVX2-NEXT: vmovdqa 384(%rdi), %ymm611726; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm6[0,1,2],ymm5[3],ymm6[4,5],ymm5[6],ymm6[7]11727; AVX2-NEXT: vmovdqu %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11728; AVX2-NEXT: vmovdqu %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11729; AVX2-NEXT: vpshufhw {{.*#+}} xmm2 = xmm0[0,1,2,3,4,6,4,7]11730; AVX2-NEXT: vextracti128 $1, %ymm0, %xmm011731; AVX2-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[0,1,2,1]11732; AVX2-NEXT: vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,5,7,7]11733; AVX2-NEXT: vpunpckhwd {{.*#+}} xmm0 = xmm2[4],xmm0[4],xmm2[5],xmm0[5],xmm2[6],xmm0[6],xmm2[7],xmm0[7]11734; AVX2-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm211735; AVX2-NEXT: vmovdqa 416(%rdi), %ymm1411736; AVX2-NEXT: vpermq {{.*#+}} ymm3 = ymm14[0,1,0,2]11737; AVX2-NEXT: vpshufd {{.*#+}} ymm9 = ymm3[0,1,2,1,4,5,6,5]11738; AVX2-NEXT: vpshufhw {{.*#+}} ymm9 = ymm9[0,1,2,3,4,5,6,5,8,9,10,11,12,13,14,13]11739; AVX2-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5,6],ymm9[7]11740; AVX2-NEXT: vpblendd $31, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm0 # 32-byte Folded Reload11741; AVX2-NEXT: # ymm0 = mem[0,1,2,3,4],ymm2[5,6,7]11742; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11743; AVX2-NEXT: vmovdqa 800(%rdi), %ymm711744; AVX2-NEXT: vmovdqa 832(%rdi), %ymm911745; AVX2-NEXT: vpblendd {{.*#+}} ymm2 = ymm9[0,1,2],ymm7[3],ymm9[4,5],ymm7[6],ymm9[7]11746; AVX2-NEXT: vpshufhw {{.*#+}} xmm0 = xmm2[0,1,2,3,4,6,4,7]11747; AVX2-NEXT: vextracti128 $1, %ymm2, %xmm211748; AVX2-NEXT: vpshufd {{.*#+}} xmm2 = xmm2[0,1,2,1]11749; AVX2-NEXT: vpshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,5,7,7]11750; AVX2-NEXT: vpunpckhwd {{.*#+}} xmm0 = xmm0[4],xmm2[4],xmm0[5],xmm2[5],xmm0[6],xmm2[6],xmm0[7],xmm2[7]11751; AVX2-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm011752; AVX2-NEXT: vmovdqa 864(%rdi), %ymm211753; AVX2-NEXT: vpermq {{.*#+}} ymm1 = ymm2[0,1,0,2]11754; AVX2-NEXT: vpshufd {{.*#+}} ymm15 = ymm1[0,1,2,1,4,5,6,5]11755; AVX2-NEXT: vpshufhw {{.*#+}} ymm15 = ymm15[0,1,2,3,4,5,6,5,8,9,10,11,12,13,14,13]11756; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5,6],ymm15[7]11757; AVX2-NEXT: vpblendd $31, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload11758; AVX2-NEXT: # ymm0 = mem[0,1,2,3,4],ymm0[5,6,7]11759; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11760; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm13[0,1],ymm11[2],ymm13[3,4,5],ymm11[6],ymm13[7]11761; AVX2-NEXT: vextracti128 $1, %ymm0, %xmm1511762; AVX2-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2,3],xmm15[4],xmm0[5],xmm15[6],xmm0[7]11763; AVX2-NEXT: vmovdqa {{.*#+}} xmm15 = [0,1,0,1,14,15,12,13,10,11,8,9,12,13,14,15]11764; AVX2-NEXT: vpshufb %xmm15, %xmm0, %xmm011765; AVX2-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm011766; AVX2-NEXT: vpshufd {{.*#+}} ymm4 = ymm4[0,1,1,3,4,5,5,7]11767; AVX2-NEXT: vpshufhw {{.*#+}} ymm4 = ymm4[0,1,2,3,4,5,5,6,8,9,10,11,12,13,13,14]11768; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5,6],ymm4[7]11769; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload11770; AVX2-NEXT: vpblendw {{.*#+}} ymm0 = ymm4[0],ymm0[1,2,3,4,5,6,7],ymm4[8],ymm0[9,10,11,12,13,14,15]11771; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm4[0,1,2,3],ymm0[4,5,6,7]11772; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11773; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm5[0,1],ymm6[2],ymm5[3,4,5],ymm6[6],ymm5[7]11774; AVX2-NEXT: vextracti128 $1, %ymm0, %xmm411775; AVX2-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2,3],xmm4[4],xmm0[5],xmm4[6],xmm0[7]11776; AVX2-NEXT: vpshufb %xmm15, %xmm0, %xmm011777; AVX2-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm011778; AVX2-NEXT: vpshufd {{.*#+}} ymm3 = ymm3[0,1,1,3,4,5,5,7]11779; AVX2-NEXT: vpshufhw {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5,5,6,8,9,10,11,12,13,13,14]11780; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5,6],ymm3[7]11781; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload11782; AVX2-NEXT: vpblendw {{.*#+}} ymm0 = ymm3[0],ymm0[1,2,3,4,5,6,7],ymm3[8],ymm0[9,10,11,12,13,14,15]11783; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm3[0,1,2,3],ymm0[4,5,6,7]11784; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11785; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm7[0,1],ymm9[2],ymm7[3,4,5],ymm9[6],ymm7[7]11786; AVX2-NEXT: vextracti128 $1, %ymm0, %xmm311787; AVX2-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2,3],xmm3[4],xmm0[5],xmm3[6],xmm0[7]11788; AVX2-NEXT: vpshufb %xmm15, %xmm0, %xmm011789; AVX2-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm011790; AVX2-NEXT: vpshufd {{.*#+}} ymm1 = ymm1[0,1,1,3,4,5,5,7]11791; AVX2-NEXT: vpshufhw {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,5,6,8,9,10,11,12,13,13,14]11792; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5,6],ymm1[7]11793; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload11794; AVX2-NEXT: vpblendw {{.*#+}} ymm0 = ymm1[0],ymm0[1,2,3,4,5,6,7],ymm1[8],ymm0[9,10,11,12,13,14,15]11795; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]11796; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11797; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm12[0,1],ymm10[2],ymm12[3,4,5],ymm10[6],ymm12[7]11798; AVX2-NEXT: vextracti128 $1, %ymm0, %xmm111799; AVX2-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2,3],xmm1[4],xmm0[5],xmm1[6],xmm0[7]11800; AVX2-NEXT: vpshufb %xmm15, %xmm0, %xmm011801; AVX2-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm011802; AVX2-NEXT: vpshufd {{.*#+}} ymm1 = ymm8[0,1,1,3,4,5,5,7]11803; AVX2-NEXT: vpshufhw {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,5,6,8,9,10,11,12,13,13,14]11804; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5,6],ymm1[7]11805; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload11806; AVX2-NEXT: vpblendw {{.*#+}} ymm0 = ymm1[0],ymm0[1,2,3,4,5,6,7],ymm1[8],ymm0[9,10,11,12,13,14,15]11807; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]11808; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11809; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm12[0,1,2],ymm10[3],ymm12[4,5],ymm10[6],ymm12[7]11810; AVX2-NEXT: vextracti128 $1, %ymm0, %xmm111811; AVX2-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0],xmm0[1],xmm1[2,3,4,5],xmm0[6],xmm1[7]11812; AVX2-NEXT: vmovdqa {{.*#+}} xmm0 = [0,1,2,3,0,1,14,15,12,13,10,11,12,13,14,15]11813; AVX2-NEXT: vpshufb %xmm0, %xmm1, %xmm111814; AVX2-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm111815; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload11816; AVX2-NEXT: vpermq {{.*#+}} ymm3 = ymm8[0,1,1,2]11817; AVX2-NEXT: vpshufd {{.*#+}} ymm3 = ymm3[0,1,0,3,4,5,4,7]11818; AVX2-NEXT: vpshufhw {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5,4,7,8,9,10,11,12,13,12,15]11819; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,6],ymm3[7]11820; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload11821; AVX2-NEXT: vpblendw {{.*#+}} ymm1 = ymm3[0],ymm1[1,2,3,4,5,6,7],ymm3[8],ymm1[9,10,11,12,13,14,15]11822; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm3[0,1,2,3],ymm1[4,5,6,7]11823; AVX2-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11824; AVX2-NEXT: vmovdqa %ymm11, %ymm611825; AVX2-NEXT: vmovdqa %ymm13, %ymm411826; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm13[0,1,2],ymm11[3],ymm13[4,5],ymm11[6],ymm13[7]11827; AVX2-NEXT: vextracti128 $1, %ymm1, %xmm311828; AVX2-NEXT: vpblendw {{.*#+}} xmm1 = xmm3[0],xmm1[1],xmm3[2,3,4,5],xmm1[6],xmm3[7]11829; AVX2-NEXT: vpshufb %xmm0, %xmm1, %xmm111830; AVX2-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm111831; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm13 # 32-byte Reload11832; AVX2-NEXT: vpermq {{.*#+}} ymm3 = ymm13[0,1,1,2]11833; AVX2-NEXT: vpshufd {{.*#+}} ymm3 = ymm3[0,1,0,3,4,5,4,7]11834; AVX2-NEXT: vpshufhw {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5,4,7,8,9,10,11,12,13,12,15]11835; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,6],ymm3[7]11836; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload11837; AVX2-NEXT: vpblendw {{.*#+}} ymm1 = ymm3[0],ymm1[1,2,3,4,5,6,7],ymm3[8],ymm1[9,10,11,12,13,14,15]11838; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm3[0,1,2,3],ymm1[4,5,6,7]11839; AVX2-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11840; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm7[0,1,2],ymm9[3],ymm7[4,5],ymm9[6],ymm7[7]11841; AVX2-NEXT: vmovdqa %ymm7, %ymm511842; AVX2-NEXT: vmovdqu %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11843; AVX2-NEXT: vmovdqu %ymm9, (%rsp) # 32-byte Spill11844; AVX2-NEXT: vextracti128 $1, %ymm1, %xmm311845; AVX2-NEXT: vpblendw {{.*#+}} xmm1 = xmm3[0],xmm1[1],xmm3[2,3,4,5],xmm1[6],xmm3[7]11846; AVX2-NEXT: vpshufb %xmm0, %xmm1, %xmm111847; AVX2-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm111848; AVX2-NEXT: vpermq {{.*#+}} ymm3 = ymm2[0,1,1,2]11849; AVX2-NEXT: vpshufd {{.*#+}} ymm3 = ymm3[0,1,0,3,4,5,4,7]11850; AVX2-NEXT: vpshufhw {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5,4,7,8,9,10,11,12,13,12,15]11851; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,6],ymm3[7]11852; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload11853; AVX2-NEXT: vpblendw {{.*#+}} ymm1 = ymm3[0],ymm1[1,2,3,4,5,6,7],ymm3[8],ymm1[9,10,11,12,13,14,15]11854; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm3[0,1,2,3],ymm1[4,5,6,7]11855; AVX2-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11856; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Reload11857; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload11858; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm7[0,1,2],ymm11[3],ymm7[4,5],ymm11[6],ymm7[7]11859; AVX2-NEXT: vextracti128 $1, %ymm1, %xmm311860; AVX2-NEXT: vpblendw {{.*#+}} xmm1 = xmm3[0],xmm1[1],xmm3[2,3,4,5],xmm1[6],xmm3[7]11861; AVX2-NEXT: vpshufb %xmm0, %xmm1, %xmm011862; AVX2-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm011863; AVX2-NEXT: vpermq {{.*#+}} ymm1 = ymm14[0,1,1,2]11864; AVX2-NEXT: vpshufd {{.*#+}} ymm1 = ymm1[0,1,0,3,4,5,4,7]11865; AVX2-NEXT: vpshufhw {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,4,7,8,9,10,11,12,13,12,15]11866; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5,6],ymm1[7]11867; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload11868; AVX2-NEXT: vpblendw {{.*#+}} ymm0 = ymm1[0],ymm0[1,2,3,4,5,6,7],ymm1[8],ymm0[9,10,11,12,13,14,15]11869; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]11870; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11871; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm10[0],ymm12[1],ymm10[2,3],ymm12[4],ymm10[5,6,7]11872; AVX2-NEXT: vmovdqu %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11873; AVX2-NEXT: vmovdqu %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11874; AVX2-NEXT: vextracti128 $1, %ymm0, %xmm111875; AVX2-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0],xmm1[1],xmm0[2,3,4,5],xmm1[6],xmm0[7]11876; AVX2-NEXT: vpshuflw {{.*#+}} xmm0 = xmm0[0,2,1,0,4,5,6,7]11877; AVX2-NEXT: vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,7,6,6,7]11878; AVX2-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm011879; AVX2-NEXT: vpermq {{.*#+}} ymm1 = ymm8[0,1,1,3]11880; AVX2-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11881; AVX2-NEXT: vpshufd {{.*#+}} ymm1 = ymm1[0,1,2,0,4,5,6,4]11882; AVX2-NEXT: vpshufhw {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,7,4,8,9,10,11,12,13,15,12]11883; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5,6],ymm1[7]11884; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload11885; AVX2-NEXT: vpblendw {{.*#+}} ymm0 = ymm1[0],ymm0[1,2,3,4,5,6,7],ymm1[8],ymm0[9,10,11,12,13,14,15]11886; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]11887; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11888; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm6[0],ymm4[1],ymm6[2,3],ymm4[4],ymm6[5,6,7]11889; AVX2-NEXT: vmovdqa %ymm4, %ymm811890; AVX2-NEXT: vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11891; AVX2-NEXT: vmovdqu %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11892; AVX2-NEXT: vextracti128 $1, %ymm0, %xmm111893; AVX2-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0],xmm1[1],xmm0[2,3,4,5],xmm1[6],xmm0[7]11894; AVX2-NEXT: vpshuflw {{.*#+}} xmm0 = xmm0[0,2,1,0,4,5,6,7]11895; AVX2-NEXT: vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,7,6,6,7]11896; AVX2-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm011897; AVX2-NEXT: vpermq {{.*#+}} ymm15 = ymm13[0,1,1,3]11898; AVX2-NEXT: vpshufd {{.*#+}} ymm1 = ymm15[0,1,2,0,4,5,6,4]11899; AVX2-NEXT: vpshufhw {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,7,4,8,9,10,11,12,13,15,12]11900; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5,6],ymm1[7]11901; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload11902; AVX2-NEXT: vpblendw {{.*#+}} ymm0 = ymm1[0],ymm0[1,2,3,4,5,6,7],ymm1[8],ymm0[9,10,11,12,13,14,15]11903; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]11904; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11905; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm11[0],ymm7[1],ymm11[2,3],ymm7[4],ymm11[5,6,7]11906; AVX2-NEXT: vextracti128 $1, %ymm0, %xmm111907; AVX2-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0],xmm1[1],xmm0[2,3,4,5],xmm1[6],xmm0[7]11908; AVX2-NEXT: vpshuflw {{.*#+}} xmm0 = xmm0[0,2,1,0,4,5,6,7]11909; AVX2-NEXT: vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,7,6,6,7]11910; AVX2-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm011911; AVX2-NEXT: vpermq {{.*#+}} ymm1 = ymm14[0,1,1,3]11912; AVX2-NEXT: vpshufd {{.*#+}} ymm3 = ymm1[0,1,2,0,4,5,6,4]11913; AVX2-NEXT: vpshufhw {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5,7,4,8,9,10,11,12,13,15,12]11914; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5,6],ymm3[7]11915; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload11916; AVX2-NEXT: vpblendw {{.*#+}} ymm0 = ymm3[0],ymm0[1,2,3,4,5,6,7],ymm3[8],ymm0[9,10,11,12,13,14,15]11917; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm3[0,1,2,3],ymm0[4,5,6,7]11918; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11919; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm9[0],ymm5[1],ymm9[2,3],ymm5[4],ymm9[5,6,7]11920; AVX2-NEXT: vextracti128 $1, %ymm0, %xmm311921; AVX2-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0],xmm3[1],xmm0[2,3,4,5],xmm3[6],xmm0[7]11922; AVX2-NEXT: vpshuflw {{.*#+}} xmm0 = xmm0[0,2,1,0,4,5,6,7]11923; AVX2-NEXT: vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,7,6,6,7]11924; AVX2-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm311925; AVX2-NEXT: vpermq {{.*#+}} ymm0 = ymm2[0,1,1,3]11926; AVX2-NEXT: vpshufd {{.*#+}} ymm2 = ymm0[0,1,2,0,4,5,6,4]11927; AVX2-NEXT: vpshufhw {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5,7,4,8,9,10,11,12,13,15,12]11928; AVX2-NEXT: vpblendd {{.*#+}} ymm2 = ymm3[0,1,2,3,4,5,6],ymm2[7]11929; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload11930; AVX2-NEXT: vpblendw {{.*#+}} ymm2 = ymm3[0],ymm2[1,2,3,4,5,6,7],ymm3[8],ymm2[9,10,11,12,13,14,15]11931; AVX2-NEXT: vpblendd {{.*#+}} ymm2 = ymm3[0,1,2,3],ymm2[4,5,6,7]11932; AVX2-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11933; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload11934; AVX2-NEXT: vpblendd $36, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload11935; AVX2-NEXT: # ymm2 = ymm2[0,1],mem[2],ymm2[3,4],mem[5],ymm2[6,7]11936; AVX2-NEXT: vextracti128 $1, %ymm2, %xmm311937; AVX2-NEXT: vpshuflw {{.*#+}} xmm3 = xmm3[3,1,2,3,4,5,6,7]11938; AVX2-NEXT: vpshufd {{.*#+}} xmm2 = xmm2[2,1,2,3]11939; AVX2-NEXT: vpshuflw {{.*#+}} xmm2 = xmm2[0,2,2,3,4,5,6,7]11940; AVX2-NEXT: vpunpcklwd {{.*#+}} xmm3 = xmm2[0],xmm3[0],xmm2[1],xmm3[1],xmm2[2],xmm3[2],xmm2[3],xmm3[3]11941; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm13 # 32-byte Reload11942; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Reload11943; AVX2-NEXT: vpblendd {{.*#+}} ymm4 = ymm14[0,1],ymm13[2],ymm14[3,4,5],ymm13[6],ymm14[7]11944; AVX2-NEXT: vmovdqa {{.*#+}} ymm2 = [u,u,u,u,u,u,u,u,0,1,14,15,u,u,10,11,24,25,24,25,24,25,24,25,16,17,30,31,u,u,26,27]11945; AVX2-NEXT: vpshufb %ymm2, %ymm4, %ymm511946; AVX2-NEXT: vpermq {{.*#+}} ymm4 = ymm4[2,3,0,1]11947; AVX2-NEXT: vpblendw {{.*#+}} ymm4 = ymm5[0,1,2,3,4,5],ymm4[6],ymm5[7,8,9,10,11,12,13],ymm4[14],ymm5[15]11948; AVX2-NEXT: vpblendd {{.*#+}} xmm4 = xmm3[0,1],xmm4[2,3]11949; AVX2-NEXT: vpblendd {{.*#+}} ymm3 = ymm6[0],ymm8[1],ymm6[2,3,4],ymm8[5],ymm6[6,7]11950; AVX2-NEXT: vextracti128 $1, %ymm3, %xmm611951; AVX2-NEXT: vpblendw {{.*#+}} xmm6 = xmm6[0],xmm3[1],xmm6[2],xmm3[3],xmm6[4,5,6,7]11952; AVX2-NEXT: vmovdqa {{.*#+}} xmm3 = [0,1,6,7,4,5,2,3,0,1,14,15,12,13,14,15]11953; AVX2-NEXT: vpshufb %xmm3, %xmm6, %xmm611954; AVX2-NEXT: vinserti128 $1, %xmm6, %ymm0, %ymm611955; AVX2-NEXT: vpshufd {{.*#+}} ymm7 = ymm15[0,1,2,1,4,5,6,5]11956; AVX2-NEXT: vpshufhw {{.*#+}} ymm7 = ymm7[0,1,2,3,4,5,6,5,8,9,10,11,12,13,14,13]11957; AVX2-NEXT: vpblendd {{.*#+}} ymm6 = ymm6[0,1,2,3,4,5,6],ymm7[7]11958; AVX2-NEXT: vpblendw {{.*#+}} ymm5 = ymm5[0],ymm6[1,2,3,4,5,6,7],ymm5[8],ymm6[9,10,11,12,13,14,15]11959; AVX2-NEXT: vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm5[4,5,6,7]11960; AVX2-NEXT: vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11961; AVX2-NEXT: vpblendd {{.*#+}} ymm4 = ymm10[0],ymm12[1],ymm10[2,3,4],ymm12[5],ymm10[6,7]11962; AVX2-NEXT: vextracti128 $1, %ymm4, %xmm511963; AVX2-NEXT: vpblendw {{.*#+}} xmm4 = xmm5[0],xmm4[1],xmm5[2],xmm4[3],xmm5[4,5,6,7]11964; AVX2-NEXT: vpshufb %xmm3, %xmm4, %xmm411965; AVX2-NEXT: vinserti128 $1, %xmm4, %ymm0, %ymm411966; AVX2-NEXT: vpshufd $100, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Folded Reload11967; AVX2-NEXT: # ymm5 = mem[0,1,2,1,4,5,6,5]11968; AVX2-NEXT: vpshufhw {{.*#+}} ymm5 = ymm5[0,1,2,3,4,5,6,5,8,9,10,11,12,13,14,13]11969; AVX2-NEXT: vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3,4,5,6],ymm5[7]11970; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload11971; AVX2-NEXT: vpblendd $219, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5, %ymm5 # 32-byte Folded Reload11972; AVX2-NEXT: # ymm5 = mem[0,1],ymm5[2],mem[3,4],ymm5[5],mem[6,7]11973; AVX2-NEXT: vextracti128 $1, %ymm5, %xmm611974; AVX2-NEXT: vpshuflw {{.*#+}} xmm6 = xmm6[3,1,2,3,4,5,6,7]11975; AVX2-NEXT: vpshufd {{.*#+}} xmm5 = xmm5[2,1,2,3]11976; AVX2-NEXT: vpshuflw {{.*#+}} xmm5 = xmm5[0,2,2,3,4,5,6,7]11977; AVX2-NEXT: vpunpcklwd {{.*#+}} xmm5 = xmm5[0],xmm6[0],xmm5[1],xmm6[1],xmm5[2],xmm6[2],xmm5[3],xmm6[3]11978; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload11979; AVX2-NEXT: vpblendd $187, {{[-0-9]+}}(%r{{[sb]}}p), %ymm6, %ymm6 # 32-byte Folded Reload11980; AVX2-NEXT: # ymm6 = mem[0,1],ymm6[2],mem[3,4,5],ymm6[6],mem[7]11981; AVX2-NEXT: vpshufb %ymm2, %ymm6, %ymm711982; AVX2-NEXT: vpblendw {{.*#+}} ymm4 = ymm7[0],ymm4[1,2,3,4,5,6,7],ymm7[8],ymm4[9,10,11,12,13,14,15]11983; AVX2-NEXT: vpermq {{.*#+}} ymm6 = ymm6[2,3,0,1]11984; AVX2-NEXT: vpblendw {{.*#+}} ymm6 = ymm7[0,1,2,3,4,5],ymm6[6],ymm7[7,8,9,10,11,12,13],ymm6[14],ymm7[15]11985; AVX2-NEXT: vpblendd {{.*#+}} xmm5 = xmm5[0,1],xmm6[2,3]11986; AVX2-NEXT: vpblendd {{.*#+}} ymm4 = ymm5[0,1,2,3],ymm4[4,5,6,7]11987; AVX2-NEXT: vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill11988; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Reload11989; AVX2-NEXT: vpblendd $36, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm4 # 32-byte Folded Reload11990; AVX2-NEXT: # ymm4 = ymm15[0,1],mem[2],ymm15[3,4],mem[5],ymm15[6,7]11991; AVX2-NEXT: vextracti128 $1, %ymm4, %xmm511992; AVX2-NEXT: vpshuflw {{.*#+}} xmm5 = xmm5[3,1,2,3,4,5,6,7]11993; AVX2-NEXT: vpshufd {{.*#+}} xmm4 = xmm4[2,1,2,3]11994; AVX2-NEXT: vpshuflw {{.*#+}} xmm4 = xmm4[0,2,2,3,4,5,6,7]11995; AVX2-NEXT: vpunpcklwd {{.*#+}} xmm4 = xmm4[0],xmm5[0],xmm4[1],xmm5[1],xmm4[2],xmm5[2],xmm4[3],xmm5[3]11996; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload11997; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm12 # 32-byte Reload11998; AVX2-NEXT: vpblendd {{.*#+}} ymm5 = ymm12[0,1],ymm10[2],ymm12[3,4,5],ymm10[6],ymm12[7]11999; AVX2-NEXT: vpshufb %ymm2, %ymm5, %ymm612000; AVX2-NEXT: vpermq {{.*#+}} ymm5 = ymm5[2,3,0,1]12001; AVX2-NEXT: vpblendw {{.*#+}} ymm5 = ymm6[0,1,2,3,4,5],ymm5[6],ymm6[7,8,9,10,11,12,13],ymm5[14],ymm6[15]12002; AVX2-NEXT: vpblendd {{.*#+}} xmm4 = xmm4[0,1],xmm5[2,3]12003; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload12004; AVX2-NEXT: vmovdqa %ymm11, %ymm812005; AVX2-NEXT: vpblendd {{.*#+}} ymm5 = ymm11[0],ymm9[1],ymm11[2,3,4],ymm9[5],ymm11[6,7]12006; AVX2-NEXT: vextracti128 $1, %ymm5, %xmm712007; AVX2-NEXT: vpblendw {{.*#+}} xmm5 = xmm7[0],xmm5[1],xmm7[2],xmm5[3],xmm7[4,5,6,7]12008; AVX2-NEXT: vpshufb %xmm3, %xmm5, %xmm512009; AVX2-NEXT: vinserti128 $1, %xmm5, %ymm0, %ymm512010; AVX2-NEXT: vpshufd {{.*#+}} ymm1 = ymm1[0,1,2,1,4,5,6,5]12011; AVX2-NEXT: vpshufhw {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,6,5,8,9,10,11,12,13,14,13]12012; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm5[0,1,2,3,4,5,6],ymm1[7]12013; AVX2-NEXT: vpblendw {{.*#+}} ymm1 = ymm6[0],ymm1[1,2,3,4,5,6,7],ymm6[8],ymm1[9,10,11,12,13,14,15]12014; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm4[0,1,2,3],ymm1[4,5,6,7]12015; AVX2-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill12016; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload12017; AVX2-NEXT: vpblendd $219, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload12018; AVX2-NEXT: # ymm1 = mem[0,1],ymm1[2],mem[3,4],ymm1[5],mem[6,7]12019; AVX2-NEXT: vextracti128 $1, %ymm1, %xmm412020; AVX2-NEXT: vpshuflw {{.*#+}} xmm4 = xmm4[3,1,2,3,4,5,6,7]12021; AVX2-NEXT: vpshufd {{.*#+}} xmm1 = xmm1[2,1,2,3]12022; AVX2-NEXT: vpshuflw {{.*#+}} xmm1 = xmm1[0,2,2,3,4,5,6,7]12023; AVX2-NEXT: vpunpcklwd {{.*#+}} xmm1 = xmm1[0],xmm4[0],xmm1[1],xmm4[1],xmm1[2],xmm4[2],xmm1[3],xmm4[3]12024; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Reload12025; AVX2-NEXT: vpblendd $187, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm4 # 32-byte Folded Reload12026; AVX2-NEXT: # ymm4 = mem[0,1],ymm11[2],mem[3,4,5],ymm11[6],mem[7]12027; AVX2-NEXT: vpshufb %ymm2, %ymm4, %ymm212028; AVX2-NEXT: vpermq {{.*#+}} ymm4 = ymm4[2,3,0,1]12029; AVX2-NEXT: vpblendw {{.*#+}} ymm4 = ymm2[0,1,2,3,4,5],ymm4[6],ymm2[7,8,9,10,11,12,13],ymm4[14],ymm2[15]12030; AVX2-NEXT: vpblendd {{.*#+}} xmm1 = xmm1[0,1],xmm4[2,3]12031; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload12032; AVX2-NEXT: vpblendd $221, (%rsp), %ymm7, %ymm4 # 32-byte Folded Reload12033; AVX2-NEXT: # ymm4 = mem[0],ymm7[1],mem[2,3,4],ymm7[5],mem[6,7]12034; AVX2-NEXT: vextracti128 $1, %ymm4, %xmm512035; AVX2-NEXT: vpblendw {{.*#+}} xmm4 = xmm5[0],xmm4[1],xmm5[2],xmm4[3],xmm5[4,5,6,7]12036; AVX2-NEXT: vpshufb %xmm3, %xmm4, %xmm312037; AVX2-NEXT: vinserti128 $1, %xmm3, %ymm0, %ymm312038; AVX2-NEXT: vpshufd {{.*#+}} ymm0 = ymm0[0,1,2,1,4,5,6,5]12039; AVX2-NEXT: vpshufhw {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5,6,5,8,9,10,11,12,13,14,13]12040; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm3[0,1,2,3,4,5,6],ymm0[7]12041; AVX2-NEXT: vpblendw {{.*#+}} ymm0 = ymm2[0],ymm0[1,2,3,4,5,6,7],ymm2[8],ymm0[9,10,11,12,13,14,15]12042; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]12043; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill12044; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm14[0,1,2],ymm13[3],ymm14[4,5],ymm13[6],ymm14[7]12045; AVX2-NEXT: vpermq {{.*#+}} ymm1 = ymm0[2,3,0,1]12046; AVX2-NEXT: vpblendw {{.*#+}} ymm0 = ymm1[0],ymm0[1,2,3,4,5,6],ymm1[7,8],ymm0[9,10,11,12,13,14],ymm1[15]12047; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload12048; AVX2-NEXT: vpblendd $219, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload12049; AVX2-NEXT: # ymm1 = mem[0,1],ymm1[2],mem[3,4],ymm1[5],mem[6,7]12050; AVX2-NEXT: vextracti128 $1, %ymm1, %xmm212051; AVX2-NEXT: vpblendw {{.*#+}} xmm1 = xmm2[0,1],xmm1[2],xmm2[3],xmm1[4],xmm2[5,6,7]12052; AVX2-NEXT: vmovdqa {{.*#+}} xmm3 = [8,9,8,9,6,7,4,5,2,3,2,3,2,3,2,3]12053; AVX2-NEXT: vpshufb %xmm3, %xmm1, %xmm112054; AVX2-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm112055; AVX2-NEXT: vmovdqa 656(%rdi), %xmm1312056; AVX2-NEXT: vmovdqa 640(%rdi), %xmm1412057; AVX2-NEXT: vpblendw {{.*#+}} xmm2 = xmm14[0,1,2,3,4,5],xmm13[6],xmm14[7]12058; AVX2-NEXT: vpshufd {{.*#+}} xmm2 = xmm2[0,1,0,3]12059; AVX2-NEXT: vpshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,4,7,6]12060; AVX2-NEXT: vinserti128 $1, %xmm2, %ymm0, %ymm212061; AVX2-NEXT: vpblendw {{.*#+}} ymm1 = ymm1[0,1,2,3,4],ymm2[5,6,7],ymm1[8,9,10,11,12],ymm2[13,14,15]12062; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload12063; AVX2-NEXT: vpblendd $204, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload12064; AVX2-NEXT: # ymm2 = ymm2[0,1],mem[2,3],ymm2[4,5],mem[6,7]12065; AVX2-NEXT: vextracti128 $1, %ymm2, %xmm412066; AVX2-NEXT: vpshufd {{.*#+}} xmm4 = xmm4[2,1,2,3]12067; AVX2-NEXT: vpshuflw {{.*#+}} xmm4 = xmm4[0,2,2,3,4,5,6,7]12068; AVX2-NEXT: vpshufd {{.*#+}} xmm2 = xmm2[2,1,2,3]12069; AVX2-NEXT: vpshuflw {{.*#+}} xmm2 = xmm2[1,3,2,3,4,5,6,7]12070; AVX2-NEXT: vpunpcklwd {{.*#+}} xmm4 = xmm2[0],xmm4[0],xmm2[1],xmm4[1],xmm2[2],xmm4[2],xmm2[3],xmm4[3]12071; AVX2-NEXT: vmovdqa {{.*#+}} ymm2 = [u,u,u,u,u,u,u,u,2,3,0,1,14,15,12,13,26,27,26,27,26,27,26,27,18,19,16,17,30,31,28,29]12072; AVX2-NEXT: vpshufb %ymm2, %ymm0, %ymm012073; AVX2-NEXT: vpblendw {{.*#+}} ymm1 = ymm0[0],ymm1[1,2,3,4,5,6,7],ymm0[8],ymm1[9,10,11,12,13,14,15]12074; AVX2-NEXT: vpblendd {{.*#+}} xmm0 = xmm4[0,1],xmm0[2,3]12075; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]12076; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill12077; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm12[0,1,2],ymm10[3],ymm12[4,5],ymm10[6],ymm12[7]12078; AVX2-NEXT: vpermq {{.*#+}} ymm1 = ymm0[2,3,0,1]12079; AVX2-NEXT: vpblendw {{.*#+}} ymm0 = ymm1[0],ymm0[1,2,3,4,5,6],ymm1[7,8],ymm0[9,10,11,12,13,14],ymm1[15]12080; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm8[0,1],ymm9[2],ymm8[3,4],ymm9[5],ymm8[6,7]12081; AVX2-NEXT: vextracti128 $1, %ymm1, %xmm412082; AVX2-NEXT: vpblendw {{.*#+}} xmm1 = xmm4[0,1],xmm1[2],xmm4[3],xmm1[4],xmm4[5,6,7]12083; AVX2-NEXT: vpshufb %xmm3, %xmm1, %xmm112084; AVX2-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm112085; AVX2-NEXT: vmovdqa 432(%rdi), %xmm412086; AVX2-NEXT: vmovdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill12087; AVX2-NEXT: vmovdqa 416(%rdi), %xmm512088; AVX2-NEXT: vmovdqa %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill12089; AVX2-NEXT: vpblendw {{.*#+}} xmm5 = xmm5[0,1,2,3,4,5],xmm4[6],xmm5[7]12090; AVX2-NEXT: vpshufd {{.*#+}} xmm5 = xmm5[0,1,0,3]12091; AVX2-NEXT: vpshufhw {{.*#+}} xmm5 = xmm5[0,1,2,3,4,4,7,6]12092; AVX2-NEXT: vinserti128 $1, %xmm5, %ymm0, %ymm512093; AVX2-NEXT: vpblendw {{.*#+}} ymm1 = ymm1[0,1,2,3,4],ymm5[5,6,7],ymm1[8,9,10,11,12],ymm5[13,14,15]12094; AVX2-NEXT: vpblendd $204, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm5 # 32-byte Folded Reload12095; AVX2-NEXT: # ymm5 = ymm15[0,1],mem[2,3],ymm15[4,5],mem[6,7]12096; AVX2-NEXT: vextracti128 $1, %ymm5, %xmm612097; AVX2-NEXT: vpshufd {{.*#+}} xmm6 = xmm6[2,1,2,3]12098; AVX2-NEXT: vpshuflw {{.*#+}} xmm6 = xmm6[0,2,2,3,4,5,6,7]12099; AVX2-NEXT: vpshufd {{.*#+}} xmm5 = xmm5[2,1,2,3]12100; AVX2-NEXT: vpshuflw {{.*#+}} xmm5 = xmm5[1,3,2,3,4,5,6,7]12101; AVX2-NEXT: vpunpcklwd {{.*#+}} xmm5 = xmm5[0],xmm6[0],xmm5[1],xmm6[1],xmm5[2],xmm6[2],xmm5[3],xmm6[3]12102; AVX2-NEXT: vpshufb %ymm2, %ymm0, %ymm012103; AVX2-NEXT: vpblendw {{.*#+}} ymm1 = ymm0[0],ymm1[1,2,3,4,5,6,7],ymm0[8],ymm1[9,10,11,12,13,14,15]12104; AVX2-NEXT: vpblendd {{.*#+}} xmm0 = xmm5[0,1],xmm0[2,3]12105; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]12106; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill12107; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload12108; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm9[0,1,2],ymm11[3],ymm9[4,5],ymm11[6],ymm9[7]12109; AVX2-NEXT: vpermq {{.*#+}} ymm1 = ymm0[2,3,0,1]12110; AVX2-NEXT: vpblendw {{.*#+}} ymm5 = ymm1[0],ymm0[1,2,3,4,5,6],ymm1[7,8],ymm0[9,10,11,12,13,14],ymm1[15]12111; AVX2-NEXT: vmovdqu (%rsp), %ymm8 # 32-byte Reload12112; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm8[0,1],ymm7[2],ymm8[3,4],ymm7[5],ymm8[6,7]12113; AVX2-NEXT: vextracti128 $1, %ymm0, %xmm112114; AVX2-NEXT: vpblendw {{.*#+}} xmm0 = xmm1[0,1],xmm0[2],xmm1[3],xmm0[4],xmm1[5,6,7]12115; AVX2-NEXT: vpshufb %xmm3, %xmm0, %xmm012116; AVX2-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm612117; AVX2-NEXT: vmovdqa 880(%rdi), %xmm112118; AVX2-NEXT: vmovdqa 864(%rdi), %xmm012119; AVX2-NEXT: vpblendw {{.*#+}} xmm7 = xmm0[0,1,2,3,4,5],xmm1[6],xmm0[7]12120; AVX2-NEXT: vpshufd {{.*#+}} xmm7 = xmm7[0,1,0,3]12121; AVX2-NEXT: vpshufhw {{.*#+}} xmm7 = xmm7[0,1,2,3,4,4,7,6]12122; AVX2-NEXT: vinserti128 $1, %xmm7, %ymm0, %ymm712123; AVX2-NEXT: vpblendw {{.*#+}} ymm6 = ymm6[0,1,2,3,4],ymm7[5,6,7],ymm6[8,9,10,11,12],ymm7[13,14,15]12124; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload12125; AVX2-NEXT: vpblendd $204, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm7 # 32-byte Folded Reload12126; AVX2-NEXT: # ymm7 = ymm4[0,1],mem[2,3],ymm4[4,5],mem[6,7]12127; AVX2-NEXT: vextracti128 $1, %ymm7, %xmm1512128; AVX2-NEXT: vpshufd {{.*#+}} xmm15 = xmm15[2,1,2,3]12129; AVX2-NEXT: vpshuflw {{.*#+}} xmm15 = xmm15[0,2,2,3,4,5,6,7]12130; AVX2-NEXT: vpshufd {{.*#+}} xmm7 = xmm7[2,1,2,3]12131; AVX2-NEXT: vpshuflw {{.*#+}} xmm7 = xmm7[1,3,2,3,4,5,6,7]12132; AVX2-NEXT: vpunpcklwd {{.*#+}} xmm7 = xmm7[0],xmm15[0],xmm7[1],xmm15[1],xmm7[2],xmm15[2],xmm7[3],xmm15[3]12133; AVX2-NEXT: vpshufb %ymm2, %ymm5, %ymm512134; AVX2-NEXT: vpblendw {{.*#+}} ymm6 = ymm5[0],ymm6[1,2,3,4,5,6,7],ymm5[8],ymm6[9,10,11,12,13,14,15]12135; AVX2-NEXT: vpblendd {{.*#+}} xmm5 = xmm7[0,1],xmm5[2,3]12136; AVX2-NEXT: vpblendd {{.*#+}} ymm5 = ymm5[0,1,2,3],ymm6[4,5,6,7]12137; AVX2-NEXT: vmovdqu %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill12138; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload12139; AVX2-NEXT: vpblendd $36, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5, %ymm5 # 32-byte Folded Reload12140; AVX2-NEXT: # ymm5 = ymm5[0,1],mem[2],ymm5[3,4],mem[5],ymm5[6,7]12141; AVX2-NEXT: vextracti128 $1, %ymm5, %xmm612142; AVX2-NEXT: vpblendw {{.*#+}} xmm5 = xmm6[0,1],xmm5[2],xmm6[3],xmm5[4],xmm6[5,6,7]12143; AVX2-NEXT: vpshufb %xmm3, %xmm5, %xmm312144; AVX2-NEXT: vinserti128 $1, %xmm3, %ymm0, %ymm512145; AVX2-NEXT: vmovdqa 208(%rdi), %xmm1512146; AVX2-NEXT: vmovdqa 192(%rdi), %xmm312147; AVX2-NEXT: vpblendw {{.*#+}} xmm6 = xmm3[0,1,2,3,4,5],xmm15[6],xmm3[7]12148; AVX2-NEXT: vpshufd {{.*#+}} xmm6 = xmm6[0,1,0,3]12149; AVX2-NEXT: vpshufhw {{.*#+}} xmm6 = xmm6[0,1,2,3,4,4,7,6]12150; AVX2-NEXT: vinserti128 $1, %xmm6, %ymm0, %ymm612151; AVX2-NEXT: vpblendw {{.*#+}} ymm5 = ymm5[0,1,2,3,4],ymm6[5,6,7],ymm5[8,9,10,11,12],ymm6[13,14,15]12152; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload12153; AVX2-NEXT: vpblendd $72, {{[-0-9]+}}(%r{{[sb]}}p), %ymm6, %ymm6 # 32-byte Folded Reload12154; AVX2-NEXT: # ymm6 = ymm6[0,1,2],mem[3],ymm6[4,5],mem[6],ymm6[7]12155; AVX2-NEXT: vpermq {{.*#+}} ymm7 = ymm6[2,3,0,1]12156; AVX2-NEXT: vpblendw {{.*#+}} ymm6 = ymm7[0],ymm6[1,2,3,4,5,6],ymm7[7,8],ymm6[9,10,11,12,13,14],ymm7[15]12157; AVX2-NEXT: vpshufb %ymm2, %ymm6, %ymm212158; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm12 # 32-byte Reload12159; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Reload12160; AVX2-NEXT: vpblendd {{.*#+}} ymm6 = ymm12[0,1],ymm11[2,3],ymm12[4,5],ymm11[6,7]12161; AVX2-NEXT: vextracti128 $1, %ymm6, %xmm712162; AVX2-NEXT: vpshufd {{.*#+}} xmm7 = xmm7[2,1,2,3]12163; AVX2-NEXT: vpshuflw {{.*#+}} xmm7 = xmm7[0,2,2,3,4,5,6,7]12164; AVX2-NEXT: vpshufd {{.*#+}} xmm6 = xmm6[2,1,2,3]12165; AVX2-NEXT: vpshuflw {{.*#+}} xmm6 = xmm6[1,3,2,3,4,5,6,7]12166; AVX2-NEXT: vpunpcklwd {{.*#+}} xmm6 = xmm6[0],xmm7[0],xmm6[1],xmm7[1],xmm6[2],xmm7[2],xmm6[3],xmm7[3]12167; AVX2-NEXT: vpblendw {{.*#+}} ymm5 = ymm2[0],ymm5[1,2,3,4,5,6,7],ymm2[8],ymm5[9,10,11,12,13,14,15]12168; AVX2-NEXT: vpblendd {{.*#+}} xmm2 = xmm6[0,1],xmm2[2,3]12169; AVX2-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm5[4,5,6,7]12170; AVX2-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill12171; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload12172; AVX2-NEXT: vpblendd $18, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload12173; AVX2-NEXT: # ymm2 = ymm2[0],mem[1],ymm2[2,3],mem[4],ymm2[5,6,7]12174; AVX2-NEXT: vpermq {{.*#+}} ymm5 = ymm2[2,3,0,1]12175; AVX2-NEXT: vpblendw {{.*#+}} ymm6 = ymm2[0],ymm5[1],ymm2[2,3,4,5,6,7,8],ymm5[9],ymm2[10,11,12,13,14,15]12176; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload12177; AVX2-NEXT: vpblendd $51, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload12178; AVX2-NEXT: # ymm2 = mem[0,1],ymm2[2,3],mem[4,5],ymm2[6,7]12179; AVX2-NEXT: vextracti128 $1, %ymm2, %xmm512180; AVX2-NEXT: vpblendw {{.*#+}} xmm2 = xmm5[0,1,2],xmm2[3],xmm5[4],xmm2[5],xmm5[6,7]12181; AVX2-NEXT: vpblendw {{.*#+}} xmm7 = xmm13[0],xmm14[1],xmm13[2,3,4,5,6,7]12182; AVX2-NEXT: vmovdqa {{.*#+}} xmm5 = [8,9,10,11,8,9,6,7,4,5,4,5,4,5,4,5]12183; AVX2-NEXT: vpshufb %xmm5, %xmm2, %xmm212184; AVX2-NEXT: vinserti128 $1, %xmm2, %ymm0, %ymm212185; AVX2-NEXT: vpshufd {{.*#+}} xmm7 = xmm7[0,1,0,3]12186; AVX2-NEXT: vpshufhw {{.*#+}} xmm7 = xmm7[0,1,2,3,4,5,4,7]12187; AVX2-NEXT: vinserti128 $1, %xmm7, %ymm0, %ymm712188; AVX2-NEXT: vpblendw {{.*#+}} ymm7 = ymm2[0,1,2,3,4],ymm7[5,6,7],ymm2[8,9,10,11,12],ymm7[13,14,15]12189; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload12190; AVX2-NEXT: vpblendd $72, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload12191; AVX2-NEXT: # ymm2 = ymm2[0,1,2],mem[3],ymm2[4,5],mem[6],ymm2[7]12192; AVX2-NEXT: vpshufhw {{.*#+}} xmm10 = xmm2[0,1,2,3,6,4,6,7]12193; AVX2-NEXT: vextracti128 $1, %ymm2, %xmm212194; AVX2-NEXT: vpshufd {{.*#+}} xmm2 = xmm2[0,1,2,1]12195; AVX2-NEXT: vpshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,5,7,6,7]12196; AVX2-NEXT: vpunpckhwd {{.*#+}} xmm10 = xmm10[4],xmm2[4],xmm10[5],xmm2[5],xmm10[6],xmm2[6],xmm10[7],xmm2[7]12197; AVX2-NEXT: vmovdqa {{.*#+}} ymm2 = [u,u,u,u,u,u,u,u,4,5,2,3,0,1,14,15,28,29,28,29,28,29,28,29,20,21,18,19,16,17,30,31]12198; AVX2-NEXT: vpshufb %ymm2, %ymm6, %ymm612199; AVX2-NEXT: vpblendw {{.*#+}} ymm7 = ymm6[0],ymm7[1,2,3,4,5,6,7],ymm6[8],ymm7[9,10,11,12,13,14,15]12200; AVX2-NEXT: vpblendd {{.*#+}} xmm6 = xmm10[0,1],xmm6[2,3]12201; AVX2-NEXT: vpblendd {{.*#+}} ymm6 = ymm6[0,1,2,3],ymm7[4,5,6,7]12202; AVX2-NEXT: vpblendd $237, {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm7 # 32-byte Folded Reload12203; AVX2-NEXT: # ymm7 = mem[0],ymm9[1],mem[2,3],ymm9[4],mem[5,6,7]12204; AVX2-NEXT: vpermq {{.*#+}} ymm10 = ymm7[2,3,0,1]12205; AVX2-NEXT: vpblendw {{.*#+}} ymm7 = ymm7[0],ymm10[1],ymm7[2,3,4,5,6,7,8],ymm10[9],ymm7[10,11,12,13,14,15]12206; AVX2-NEXT: vpblendd $204, {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm9 # 32-byte Folded Reload12207; AVX2-NEXT: # ymm9 = ymm8[0,1],mem[2,3],ymm8[4,5],mem[6,7]12208; AVX2-NEXT: vextracti128 $1, %ymm9, %xmm1012209; AVX2-NEXT: vpblendw {{.*#+}} xmm9 = xmm10[0,1,2],xmm9[3],xmm10[4],xmm9[5],xmm10[6,7]12210; AVX2-NEXT: vpblendw {{.*#+}} xmm0 = xmm1[0],xmm0[1],xmm1[2,3,4,5,6,7]12211; AVX2-NEXT: vpshufb %xmm5, %xmm9, %xmm112212; AVX2-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm112213; AVX2-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[0,1,0,3]12214; AVX2-NEXT: vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,5,4,7]12215; AVX2-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm012216; AVX2-NEXT: vpblendw {{.*#+}} ymm0 = ymm1[0,1,2,3,4],ymm0[5,6,7],ymm1[8,9,10,11,12],ymm0[13,14,15]12217; AVX2-NEXT: vpblendd $72, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm1 # 32-byte Folded Reload12218; AVX2-NEXT: # ymm1 = ymm4[0,1,2],mem[3],ymm4[4,5],mem[6],ymm4[7]12219; AVX2-NEXT: vpshufhw {{.*#+}} xmm9 = xmm1[0,1,2,3,6,4,6,7]12220; AVX2-NEXT: vextracti128 $1, %ymm1, %xmm112221; AVX2-NEXT: vpshufd {{.*#+}} xmm1 = xmm1[0,1,2,1]12222; AVX2-NEXT: vpshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,5,7,6,7]12223; AVX2-NEXT: vpunpckhwd {{.*#+}} xmm1 = xmm9[4],xmm1[4],xmm9[5],xmm1[5],xmm9[6],xmm1[6],xmm9[7],xmm1[7]12224; AVX2-NEXT: vpshufb %ymm2, %ymm7, %ymm712225; AVX2-NEXT: vpblendw {{.*#+}} ymm0 = ymm7[0],ymm0[1,2,3,4,5,6,7],ymm7[8],ymm0[9,10,11,12,13,14,15]12226; AVX2-NEXT: vpblendd {{.*#+}} xmm1 = xmm1[0,1],xmm7[2,3]12227; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]12228; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload12229; AVX2-NEXT: vpblendd $18, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload12230; AVX2-NEXT: # ymm1 = ymm1[0],mem[1],ymm1[2,3],mem[4],ymm1[5,6,7]12231; AVX2-NEXT: vpermq {{.*#+}} ymm7 = ymm1[2,3,0,1]12232; AVX2-NEXT: vpblendw {{.*#+}} ymm1 = ymm1[0],ymm7[1],ymm1[2,3,4,5,6,7,8],ymm7[9],ymm1[10,11,12,13,14,15]12233; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload12234; AVX2-NEXT: vpblendd $51, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm7 # 32-byte Folded Reload12235; AVX2-NEXT: # ymm7 = mem[0,1],ymm4[2,3],mem[4,5],ymm4[6,7]12236; AVX2-NEXT: vextracti128 $1, %ymm7, %xmm912237; AVX2-NEXT: vpblendw {{.*#+}} xmm7 = xmm9[0,1,2],xmm7[3],xmm9[4],xmm7[5],xmm9[6,7]12238; AVX2-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload12239; AVX2-NEXT: vpblendw $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4, %xmm4 # 16-byte Folded Reload12240; AVX2-NEXT: # xmm4 = xmm4[0],mem[1],xmm4[2,3,4,5,6,7]12241; AVX2-NEXT: vpshufb %xmm5, %xmm7, %xmm712242; AVX2-NEXT: vinserti128 $1, %xmm7, %ymm0, %ymm712243; AVX2-NEXT: vpshufd {{.*#+}} xmm4 = xmm4[0,1,0,3]12244; AVX2-NEXT: vpshufhw {{.*#+}} xmm4 = xmm4[0,1,2,3,4,5,4,7]12245; AVX2-NEXT: vinserti128 $1, %xmm4, %ymm0, %ymm412246; AVX2-NEXT: vpblendw {{.*#+}} ymm4 = ymm7[0,1,2,3,4],ymm4[5,6,7],ymm7[8,9,10,11,12],ymm4[13,14,15]12247; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload12248; AVX2-NEXT: vpblendd $183, {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm7 # 32-byte Folded Reload12249; AVX2-NEXT: # ymm7 = mem[0,1,2],ymm7[3],mem[4,5],ymm7[6],mem[7]12250; AVX2-NEXT: vpshufhw {{.*#+}} xmm8 = xmm7[0,1,2,3,6,4,6,7]12251; AVX2-NEXT: vextracti128 $1, %ymm7, %xmm712252; AVX2-NEXT: vpshufd {{.*#+}} xmm7 = xmm7[0,1,2,1]12253; AVX2-NEXT: vpshufhw {{.*#+}} xmm7 = xmm7[0,1,2,3,5,7,6,7]12254; AVX2-NEXT: vpunpckhwd {{.*#+}} xmm7 = xmm8[4],xmm7[4],xmm8[5],xmm7[5],xmm8[6],xmm7[6],xmm8[7],xmm7[7]12255; AVX2-NEXT: vpshufb %ymm2, %ymm1, %ymm112256; AVX2-NEXT: vpblendw {{.*#+}} ymm4 = ymm1[0],ymm4[1,2,3,4,5,6,7],ymm1[8],ymm4[9,10,11,12,13,14,15]12257; AVX2-NEXT: vpblendd {{.*#+}} xmm1 = xmm7[0,1],xmm1[2,3]12258; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm4[4,5,6,7]12259; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload12260; AVX2-NEXT: vpblendd $204, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm4 # 32-byte Folded Reload12261; AVX2-NEXT: # ymm4 = ymm4[0,1],mem[2,3],ymm4[4,5],mem[6,7]12262; AVX2-NEXT: vextracti128 $1, %ymm4, %xmm712263; AVX2-NEXT: vpblendw {{.*#+}} xmm4 = xmm7[0,1,2],xmm4[3],xmm7[4],xmm4[5],xmm7[6,7]12264; AVX2-NEXT: vpshufb %xmm5, %xmm4, %xmm412265; AVX2-NEXT: vpblendw {{.*#+}} xmm3 = xmm15[0],xmm3[1],xmm15[2,3,4,5,6,7]12266; AVX2-NEXT: vinserti128 $1, %xmm4, %ymm0, %ymm412267; AVX2-NEXT: vpshufd {{.*#+}} xmm3 = xmm3[0,1,0,3]12268; AVX2-NEXT: vpshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,4,5,4,7]12269; AVX2-NEXT: vinserti128 $1, %xmm3, %ymm0, %ymm312270; AVX2-NEXT: vpblendw {{.*#+}} ymm3 = ymm4[0,1,2,3,4],ymm3[5,6,7],ymm4[8,9,10,11,12],ymm3[13,14,15]12271; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload12272; AVX2-NEXT: vpblendd $237, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm4 # 32-byte Folded Reload12273; AVX2-NEXT: # ymm4 = mem[0],ymm4[1],mem[2,3],ymm4[4],mem[5,6,7]12274; AVX2-NEXT: vpermq {{.*#+}} ymm5 = ymm4[2,3,0,1]12275; AVX2-NEXT: vpblendw {{.*#+}} ymm4 = ymm4[0],ymm5[1],ymm4[2,3,4,5,6,7,8],ymm5[9],ymm4[10,11,12,13,14,15]12276; AVX2-NEXT: vpshufb %ymm2, %ymm4, %ymm212277; AVX2-NEXT: vpblendd {{.*#+}} ymm4 = ymm12[0,1,2],ymm11[3],ymm12[4,5],ymm11[6],ymm12[7]12278; AVX2-NEXT: vpshufhw {{.*#+}} xmm5 = xmm4[0,1,2,3,6,4,6,7]12279; AVX2-NEXT: vextracti128 $1, %ymm4, %xmm412280; AVX2-NEXT: vpshufd {{.*#+}} xmm4 = xmm4[0,1,2,1]12281; AVX2-NEXT: vpshufhw {{.*#+}} xmm4 = xmm4[0,1,2,3,5,7,6,7]12282; AVX2-NEXT: vpunpckhwd {{.*#+}} xmm4 = xmm5[4],xmm4[4],xmm5[5],xmm4[5],xmm5[6],xmm4[6],xmm5[7],xmm4[7]12283; AVX2-NEXT: vpblendw {{.*#+}} ymm3 = ymm2[0],ymm3[1,2,3,4,5,6,7],ymm2[8],ymm3[9,10,11,12,13,14,15]12284; AVX2-NEXT: vpblendd {{.*#+}} xmm2 = xmm4[0,1],xmm2[2,3]12285; AVX2-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4,5,6,7]12286; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload12287; AVX2-NEXT: vmovaps %ymm3, 96(%rsi)12288; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload12289; AVX2-NEXT: vmovaps %ymm3, 32(%rsi)12290; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload12291; AVX2-NEXT: vmovaps %ymm3, 64(%rsi)12292; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload12293; AVX2-NEXT: vmovaps %ymm3, (%rsi)12294; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload12295; AVX2-NEXT: vmovaps %ymm3, 96(%rdx)12296; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload12297; AVX2-NEXT: vmovaps %ymm3, 32(%rdx)12298; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload12299; AVX2-NEXT: vmovaps %ymm3, 64(%rdx)12300; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload12301; AVX2-NEXT: vmovaps %ymm3, (%rdx)12302; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload12303; AVX2-NEXT: vmovaps %ymm3, 32(%rcx)12304; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload12305; AVX2-NEXT: vmovaps %ymm3, 96(%rcx)12306; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload12307; AVX2-NEXT: vmovaps %ymm3, 64(%rcx)12308; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload12309; AVX2-NEXT: vmovaps %ymm3, (%rcx)12310; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload12311; AVX2-NEXT: vmovaps %ymm3, 96(%r8)12312; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload12313; AVX2-NEXT: vmovaps %ymm3, 32(%r8)12314; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload12315; AVX2-NEXT: vmovaps %ymm3, 64(%r8)12316; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload12317; AVX2-NEXT: vmovaps %ymm3, (%r8)12318; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload12319; AVX2-NEXT: vmovaps %ymm3, 96(%r9)12320; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload12321; AVX2-NEXT: vmovaps %ymm3, 32(%r9)12322; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload12323; AVX2-NEXT: vmovaps %ymm3, (%r9)12324; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload12325; AVX2-NEXT: vmovaps %ymm3, 64(%r9)12326; AVX2-NEXT: movq {{[0-9]+}}(%rsp), %rax12327; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload12328; AVX2-NEXT: vmovaps %ymm3, 96(%rax)12329; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload12330; AVX2-NEXT: vmovaps %ymm3, 32(%rax)12331; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload12332; AVX2-NEXT: vmovaps %ymm3, 64(%rax)12333; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload12334; AVX2-NEXT: vmovaps %ymm3, (%rax)12335; AVX2-NEXT: movq {{[0-9]+}}(%rsp), %rax12336; AVX2-NEXT: vmovdqa %ymm1, 32(%rax)12337; AVX2-NEXT: vmovdqa %ymm2, (%rax)12338; AVX2-NEXT: vmovdqa %ymm0, 96(%rax)12339; AVX2-NEXT: vmovdqa %ymm6, 64(%rax)12340; AVX2-NEXT: addq $1448, %rsp # imm = 0x5A812341; AVX2-NEXT: vzeroupper12342; AVX2-NEXT: retq12343;12344; AVX2-FP-LABEL: load_i16_stride7_vf64:12345; AVX2-FP: # %bb.0:12346; AVX2-FP-NEXT: subq $1448, %rsp # imm = 0x5A812347; AVX2-FP-NEXT: vmovdqa 256(%rdi), %ymm1312348; AVX2-FP-NEXT: vmovdqa 224(%rdi), %ymm1512349; AVX2-FP-NEXT: vmovdqa 512(%rdi), %ymm1112350; AVX2-FP-NEXT: vmovdqa 544(%rdi), %ymm1412351; AVX2-FP-NEXT: vmovdqa 480(%rdi), %ymm912352; AVX2-FP-NEXT: vmovdqa 448(%rdi), %ymm1212353; AVX2-FP-NEXT: vmovdqa (%rdi), %ymm312354; AVX2-FP-NEXT: vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill12355; AVX2-FP-NEXT: vmovdqa 32(%rdi), %ymm412356; AVX2-FP-NEXT: vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill12357; AVX2-FP-NEXT: vmovdqa 64(%rdi), %ymm112358; AVX2-FP-NEXT: vmovdqu %ymm1, (%rsp) # 32-byte Spill12359; AVX2-FP-NEXT: vmovdqa 96(%rdi), %ymm012360; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill12361; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2,3,4],ymm1[5],ymm0[6,7]12362; AVX2-FP-NEXT: vpermq {{.*#+}} ymm0 = ymm0[0,2,2,3]12363; AVX2-FP-NEXT: vmovdqa {{.*#+}} ymm2 = [0,1,14,15,12,13,14,15,2,3,6,7,12,13,2,3,16,17,30,31,28,29,30,31,18,19,22,23,28,29,18,19]12364; AVX2-FP-NEXT: vpshufb %ymm2, %ymm0, %ymm012365; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm3[0,1],ymm4[2],ymm3[3,4,5],ymm4[6],ymm3[7]12366; AVX2-FP-NEXT: vextracti128 $1, %ymm1, %xmm312367; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1,2,3],xmm3[4],xmm1[5],xmm3[6],xmm1[7]12368; AVX2-FP-NEXT: vmovdqa {{.*#+}} xmm3 = [0,1,14,15,12,13,10,11,8,9,8,9,8,9,8,9]12369; AVX2-FP-NEXT: vpshufb %xmm3, %xmm1, %xmm412370; AVX2-FP-NEXT: vpmovsxbw {{.*#+}} xmm1 = [65535,65535,65535,65535,65535,0,0,0]12371; AVX2-FP-NEXT: vpblendvb %ymm1, %ymm4, %ymm0, %ymm012372; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill12373; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm12[0,1],ymm9[2],ymm12[3,4,5],ymm9[6],ymm12[7]12374; AVX2-FP-NEXT: vmovdqu %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill12375; AVX2-FP-NEXT: vextracti128 $1, %ymm0, %xmm412376; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2,3],xmm4[4],xmm0[5],xmm4[6],xmm0[7]12377; AVX2-FP-NEXT: vpshufb %xmm3, %xmm0, %xmm012378; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm4 = ymm14[0],ymm11[1],ymm14[2,3,4],ymm11[5],ymm14[6,7]12379; AVX2-FP-NEXT: vmovdqu %ymm11, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill12380; AVX2-FP-NEXT: vmovdqu %ymm14, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill12381; AVX2-FP-NEXT: vpermq {{.*#+}} ymm4 = ymm4[0,2,2,3]12382; AVX2-FP-NEXT: vpshufb %ymm2, %ymm4, %ymm412383; AVX2-FP-NEXT: vpblendvb %ymm1, %ymm0, %ymm4, %ymm012384; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill12385; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm15[0,1],ymm13[2],ymm15[3,4,5],ymm13[6],ymm15[7]12386; AVX2-FP-NEXT: vmovdqu %ymm15, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill12387; AVX2-FP-NEXT: vmovdqu %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill12388; AVX2-FP-NEXT: vextracti128 $1, %ymm0, %xmm412389; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2,3],xmm4[4],xmm0[5],xmm4[6],xmm0[7]12390; AVX2-FP-NEXT: vpshufb %xmm3, %xmm0, %xmm012391; AVX2-FP-NEXT: vmovdqa 288(%rdi), %ymm812392; AVX2-FP-NEXT: vmovdqa 320(%rdi), %ymm712393; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm4 = ymm7[0],ymm8[1],ymm7[2,3,4],ymm8[5],ymm7[6,7]12394; AVX2-FP-NEXT: vmovdqu %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill12395; AVX2-FP-NEXT: vmovdqu %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill12396; AVX2-FP-NEXT: vpermq {{.*#+}} ymm4 = ymm4[0,2,2,3]12397; AVX2-FP-NEXT: vpshufb %ymm2, %ymm4, %ymm412398; AVX2-FP-NEXT: vpblendvb %ymm1, %ymm0, %ymm4, %ymm012399; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill12400; AVX2-FP-NEXT: vmovdqa 704(%rdi), %ymm012401; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill12402; AVX2-FP-NEXT: vmovdqa 672(%rdi), %ymm1012403; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm10[0,1],ymm0[2],ymm10[3,4,5],ymm0[6],ymm10[7]12404; AVX2-FP-NEXT: vextracti128 $1, %ymm0, %xmm412405; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2,3],xmm4[4],xmm0[5],xmm4[6],xmm0[7]12406; AVX2-FP-NEXT: vpshufb %xmm3, %xmm0, %xmm012407; AVX2-FP-NEXT: vmovdqa 736(%rdi), %ymm612408; AVX2-FP-NEXT: vmovdqa 768(%rdi), %ymm112409; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm3 = ymm1[0],ymm6[1],ymm1[2,3,4],ymm6[5],ymm1[6,7]12410; AVX2-FP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill12411; AVX2-FP-NEXT: vpermq {{.*#+}} ymm3 = ymm3[0,2,2,3]12412; AVX2-FP-NEXT: vpshufb %ymm2, %ymm3, %ymm212413; AVX2-FP-NEXT: vpmovsxbw {{.*#+}} xmm5 = [65535,65535,65535,65535,65535,0,0,0]12414; AVX2-FP-NEXT: vpblendvb %ymm5, %ymm0, %ymm2, %ymm012415; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill12416; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm14[0,1],ymm11[2],ymm14[3,4],ymm11[5],ymm14[6,7]12417; AVX2-FP-NEXT: vpermq {{.*#+}} ymm2 = ymm0[2,3,0,1]12418; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm0 = ymm0[0,1,2],ymm2[3],ymm0[4,5,6,7,8,9,10],ymm2[11],ymm0[12,13,14,15]12419; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm2 = ymm12[0,1,2],ymm9[3],ymm12[4,5],ymm9[6],ymm12[7]12420; AVX2-FP-NEXT: vextracti128 $1, %ymm2, %xmm312421; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm4 = xmm3[0],xmm2[1],xmm3[2,3,4,5],xmm2[6],xmm3[7]12422; AVX2-FP-NEXT: vmovdqa {{.*#+}} ymm3 = [2,3,2,3,2,3,2,3,8,9,8,9,6,7,4,5,18,19,18,19,18,19,18,19,24,25,24,25,22,23,20,21]12423; AVX2-FP-NEXT: vpshufb %ymm3, %ymm0, %ymm012424; AVX2-FP-NEXT: vmovdqa {{.*#+}} xmm2 = [2,3,0,1,14,15,12,13,10,11,10,11,10,11,10,11]12425; AVX2-FP-NEXT: vpshufb %xmm2, %xmm4, %xmm412426; AVX2-FP-NEXT: vpblendvb %ymm5, %ymm4, %ymm0, %ymm012427; AVX2-FP-NEXT: vmovdqa %ymm5, %ymm912428; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill12429; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm7[0,1],ymm8[2],ymm7[3,4],ymm8[5],ymm7[6,7]12430; AVX2-FP-NEXT: vpermq {{.*#+}} ymm4 = ymm0[2,3,0,1]12431; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm0 = ymm0[0,1,2],ymm4[3],ymm0[4,5,6,7,8,9,10],ymm4[11],ymm0[12,13,14,15]12432; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm4 = ymm15[0,1,2],ymm13[3],ymm15[4,5],ymm13[6],ymm15[7]12433; AVX2-FP-NEXT: vextracti128 $1, %ymm4, %xmm512434; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm4 = xmm5[0],xmm4[1],xmm5[2,3,4,5],xmm4[6],xmm5[7]12435; AVX2-FP-NEXT: vpshufb %ymm3, %ymm0, %ymm012436; AVX2-FP-NEXT: vpshufb %xmm2, %xmm4, %xmm412437; AVX2-FP-NEXT: vpblendvb %ymm9, %ymm4, %ymm0, %ymm012438; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill12439; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1],ymm6[2],ymm1[3,4],ymm6[5],ymm1[6,7]12440; AVX2-FP-NEXT: vmovdqa %ymm6, %ymm812441; AVX2-FP-NEXT: vpermq {{.*#+}} ymm4 = ymm0[2,3,0,1]12442; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm0 = ymm0[0,1,2],ymm4[3],ymm0[4,5,6,7,8,9,10],ymm4[11],ymm0[12,13,14,15]12443; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm13 # 32-byte Reload12444; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm4 = ymm10[0,1,2],ymm13[3],ymm10[4,5],ymm13[6],ymm10[7]12445; AVX2-FP-NEXT: vmovdqa %ymm10, %ymm1412446; AVX2-FP-NEXT: vmovdqu %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill12447; AVX2-FP-NEXT: vextracti128 $1, %ymm4, %xmm512448; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm4 = xmm5[0],xmm4[1],xmm5[2,3,4,5],xmm4[6],xmm5[7]12449; AVX2-FP-NEXT: vpshufb %ymm3, %ymm0, %ymm012450; AVX2-FP-NEXT: vpshufb %xmm2, %xmm4, %xmm412451; AVX2-FP-NEXT: vpblendvb %ymm9, %ymm4, %ymm0, %ymm012452; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill12453; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload12454; AVX2-FP-NEXT: vmovdqu (%rsp), %ymm1 # 32-byte Reload12455; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm5[0,1],ymm1[2],ymm5[3,4],ymm1[5],ymm5[6,7]12456; AVX2-FP-NEXT: vpermq {{.*#+}} ymm4 = ymm0[2,3,0,1]12457; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm0 = ymm0[0,1,2],ymm4[3],ymm0[4,5,6,7,8,9,10],ymm4[11],ymm0[12,13,14,15]12458; AVX2-FP-NEXT: vpshufb %ymm3, %ymm0, %ymm012459; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload12460; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload12461; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm3 = ymm10[0,1,2],ymm7[3],ymm10[4,5],ymm7[6],ymm10[7]12462; AVX2-FP-NEXT: vextracti128 $1, %ymm3, %xmm412463; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm3 = xmm4[0],xmm3[1],xmm4[2,3,4,5],xmm3[6],xmm4[7]12464; AVX2-FP-NEXT: vpshufb %xmm2, %xmm3, %xmm212465; AVX2-FP-NEXT: vpblendvb %ymm9, %ymm2, %ymm0, %ymm012466; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill12467; AVX2-FP-NEXT: vmovdqa %ymm9, %ymm1112468; AVX2-FP-NEXT: vpermq {{.*#+}} ymm0 = ymm1[2,3,0,1]12469; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm2 = ymm5[0,1],ymm1[2,3],ymm5[4,5],ymm1[6,7]12470; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm0 = ymm2[0,1,2,3],ymm0[4],ymm2[5,6,7,8,9,10,11],ymm0[12],ymm2[13,14,15]12471; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm2 = ymm7[0],ymm10[1],ymm7[2,3],ymm10[4],ymm7[5,6,7]12472; AVX2-FP-NEXT: vextracti128 $1, %ymm2, %xmm312473; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm4 = xmm2[0],xmm3[1],xmm2[2,3,4,5],xmm3[6],xmm2[7]12474; AVX2-FP-NEXT: vmovdqa {{.*#+}} ymm2 = [4,5,4,5,4,5,4,5,8,9,10,11,8,9,6,7,20,21,20,21,20,21,20,21,24,25,26,27,24,25,22,23]12475; AVX2-FP-NEXT: vpshufb %ymm2, %ymm0, %ymm012476; AVX2-FP-NEXT: vmovdqa {{.*#+}} xmm3 = [4,5,2,3,0,1,14,15,12,13,12,13,12,13,12,13]12477; AVX2-FP-NEXT: vpshufb %xmm3, %xmm4, %xmm412478; AVX2-FP-NEXT: vpblendvb %ymm9, %ymm4, %ymm0, %ymm012479; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill12480; AVX2-FP-NEXT: vmovdqu %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill12481; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload12482; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm6[0],ymm12[1],ymm6[2,3],ymm12[4],ymm6[5,6,7]12483; AVX2-FP-NEXT: vextracti128 $1, %ymm0, %xmm412484; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0],xmm4[1],xmm0[2,3,4,5],xmm4[6],xmm0[7]12485; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Reload12486; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload12487; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm4 = ymm1[0,1],ymm15[2,3],ymm1[4,5],ymm15[6,7]12488; AVX2-FP-NEXT: vpermq {{.*#+}} ymm5 = ymm15[2,3,0,1]12489; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm5[4],ymm4[5,6,7,8,9,10,11],ymm5[12],ymm4[13,14,15]12490; AVX2-FP-NEXT: vpshufb %xmm3, %xmm0, %xmm012491; AVX2-FP-NEXT: vpshufb %ymm2, %ymm4, %ymm412492; AVX2-FP-NEXT: vpblendvb %ymm9, %ymm0, %ymm4, %ymm012493; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill12494; AVX2-FP-NEXT: vmovdqa %ymm13, %ymm712495; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm13[0],ymm14[1],ymm13[2,3],ymm14[4],ymm13[5,6,7]12496; AVX2-FP-NEXT: vextracti128 $1, %ymm0, %xmm412497; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0],xmm4[1],xmm0[2,3,4,5],xmm4[6],xmm0[7]12498; AVX2-FP-NEXT: vmovdqu %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill12499; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload12500; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm4 = ymm9[0,1],ymm8[2,3],ymm9[4,5],ymm8[6,7]12501; AVX2-FP-NEXT: vpermq {{.*#+}} ymm5 = ymm8[2,3,0,1]12502; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm5[4],ymm4[5,6,7,8,9,10,11],ymm5[12],ymm4[13,14,15]12503; AVX2-FP-NEXT: vpshufb %xmm3, %xmm0, %xmm012504; AVX2-FP-NEXT: vpshufb %ymm2, %ymm4, %ymm412505; AVX2-FP-NEXT: vmovdqa %ymm11, %ymm812506; AVX2-FP-NEXT: vpblendvb %ymm11, %ymm0, %ymm4, %ymm012507; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill12508; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Reload12509; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm13 # 32-byte Reload12510; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm11[0],ymm13[1],ymm11[2,3],ymm13[4],ymm11[5,6,7]12511; AVX2-FP-NEXT: vextracti128 $1, %ymm0, %xmm412512; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0],xmm4[1],xmm0[2,3,4,5],xmm4[6],xmm0[7]12513; AVX2-FP-NEXT: vpshufb %xmm3, %xmm0, %xmm012514; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Reload12515; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload12516; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm3 = ymm5[0,1],ymm14[2,3],ymm5[4,5],ymm14[6,7]12517; AVX2-FP-NEXT: vpermq {{.*#+}} ymm4 = ymm14[2,3,0,1]12518; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm4[4],ymm3[5,6,7,8,9,10,11],ymm4[12],ymm3[13,14,15]12519; AVX2-FP-NEXT: vpshufb %ymm2, %ymm3, %ymm212520; AVX2-FP-NEXT: vpblendvb %ymm8, %ymm0, %ymm2, %ymm012521; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill12522; AVX2-FP-NEXT: vpblendd $221, {{[-0-9]+}}(%r{{[sb]}}p), %ymm10, %ymm0 # 32-byte Folded Reload12523; AVX2-FP-NEXT: # ymm0 = mem[0],ymm10[1],mem[2,3,4],ymm10[5],mem[6,7]12524; AVX2-FP-NEXT: vextracti128 $1, %ymm0, %xmm212525; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm0 = xmm2[0],xmm0[1],xmm2[2],xmm0[3],xmm2[4,5,6,7]12526; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload12527; AVX2-FP-NEXT: vpblendd $72, (%rsp), %ymm2, %ymm2 # 32-byte Folded Reload12528; AVX2-FP-NEXT: # ymm2 = ymm2[0,1,2],mem[3],ymm2[4,5],mem[6],ymm2[7]12529; AVX2-FP-NEXT: vpermq {{.*#+}} ymm3 = ymm2[1,3,2,3]12530; AVX2-FP-NEXT: vmovdqa {{.*#+}} ymm2 = [6,7,6,7,6,7,6,7,8,9,4,5,10,11,0,1,22,23,22,23,22,23,22,23,24,25,20,21,26,27,16,17]12531; AVX2-FP-NEXT: vpshufb %ymm2, %ymm3, %ymm412532; AVX2-FP-NEXT: vmovdqa {{.*#+}} xmm3 = [6,7,4,5,2,3,0,1,14,15,14,15,14,15,14,15]12533; AVX2-FP-NEXT: vpshufb %xmm3, %xmm0, %xmm012534; AVX2-FP-NEXT: vpblendvb %ymm8, %ymm0, %ymm4, %ymm012535; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill12536; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm6[0],ymm12[1],ymm6[2,3,4],ymm12[5],ymm6[6,7]12537; AVX2-FP-NEXT: vextracti128 $1, %ymm0, %xmm412538; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm0 = xmm4[0],xmm0[1],xmm4[2],xmm0[3],xmm4[4,5,6,7]12539; AVX2-FP-NEXT: vpshufb %xmm3, %xmm0, %xmm012540; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm4 = ymm1[0,1,2],ymm15[3],ymm1[4,5],ymm15[6],ymm1[7]12541; AVX2-FP-NEXT: vpermq {{.*#+}} ymm4 = ymm4[1,3,2,3]12542; AVX2-FP-NEXT: vpshufb %ymm2, %ymm4, %ymm412543; AVX2-FP-NEXT: vpblendvb %ymm8, %ymm0, %ymm4, %ymm012544; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill12545; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm11[0],ymm13[1],ymm11[2,3,4],ymm13[5],ymm11[6,7]12546; AVX2-FP-NEXT: vextracti128 $1, %ymm0, %xmm412547; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm0 = xmm4[0],xmm0[1],xmm4[2],xmm0[3],xmm4[4,5,6,7]12548; AVX2-FP-NEXT: vpshufb %xmm3, %xmm0, %xmm012549; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm4 = ymm5[0,1,2],ymm14[3],ymm5[4,5],ymm14[6],ymm5[7]12550; AVX2-FP-NEXT: vpermq {{.*#+}} ymm4 = ymm4[1,3,2,3]12551; AVX2-FP-NEXT: vpshufb %ymm2, %ymm4, %ymm412552; AVX2-FP-NEXT: vpblendvb %ymm8, %ymm0, %ymm4, %ymm012553; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill12554; AVX2-FP-NEXT: vpblendd $34, {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm0 # 32-byte Folded Reload12555; AVX2-FP-NEXT: # ymm0 = ymm7[0],mem[1],ymm7[2,3,4],mem[5],ymm7[6,7]12556; AVX2-FP-NEXT: vextracti128 $1, %ymm0, %xmm412557; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm0 = xmm4[0],xmm0[1],xmm4[2],xmm0[3],xmm4[4,5,6,7]12558; AVX2-FP-NEXT: vpshufb %xmm3, %xmm0, %xmm012559; AVX2-FP-NEXT: vpblendd $72, {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm3 # 32-byte Folded Reload12560; AVX2-FP-NEXT: # ymm3 = ymm9[0,1,2],mem[3],ymm9[4,5],mem[6],ymm9[7]12561; AVX2-FP-NEXT: vpermq {{.*#+}} ymm3 = ymm3[1,3,2,3]12562; AVX2-FP-NEXT: vpshufb %ymm2, %ymm3, %ymm212563; AVX2-FP-NEXT: vpblendvb %ymm8, %ymm0, %ymm2, %ymm012564; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill12565; AVX2-FP-NEXT: vmovdqa 128(%rdi), %ymm912566; AVX2-FP-NEXT: vmovdqa 160(%rdi), %ymm012567; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill12568; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2],ymm9[3],ymm0[4,5],ymm9[6],ymm0[7]12569; AVX2-FP-NEXT: vextracti128 $1, %ymm0, %xmm112570; AVX2-FP-NEXT: vmovdqa {{.*#+}} xmm2 = [0,1,2,3,4,5,6,7,8,9,10,11,6,7,6,7]12571; AVX2-FP-NEXT: vpshufb %xmm2, %xmm1, %xmm112572; AVX2-FP-NEXT: vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,6,4,7]12573; AVX2-FP-NEXT: vpunpckhwd {{.*#+}} xmm0 = xmm0[4],xmm1[4],xmm0[5],xmm1[5],xmm0[6],xmm1[6],xmm0[7],xmm1[7]12574; AVX2-FP-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm012575; AVX2-FP-NEXT: vmovdqa 192(%rdi), %ymm112576; AVX2-FP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill12577; AVX2-FP-NEXT: vpermq {{.*#+}} ymm15 = ymm1[0,1,0,2]12578; AVX2-FP-NEXT: vpbroadcastd {{.*#+}} ymm10 = [20,21,26,27,20,21,26,27,20,21,26,27,20,21,26,27,20,21,26,27,20,21,26,27,20,21,26,27,20,21,26,27]12579; AVX2-FP-NEXT: vpshufb %ymm10, %ymm15, %ymm112580; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5,6],ymm1[7]12581; AVX2-FP-NEXT: vpblendd $31, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload12582; AVX2-FP-NEXT: # ymm0 = mem[0,1,2,3,4],ymm0[5,6,7]12583; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill12584; AVX2-FP-NEXT: vmovdqa 576(%rdi), %ymm812585; AVX2-FP-NEXT: vmovdqa 608(%rdi), %ymm712586; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm7[0,1,2],ymm8[3],ymm7[4,5],ymm8[6],ymm7[7]12587; AVX2-FP-NEXT: vextracti128 $1, %ymm0, %xmm112588; AVX2-FP-NEXT: vpshufb %xmm2, %xmm1, %xmm112589; AVX2-FP-NEXT: vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,6,4,7]12590; AVX2-FP-NEXT: vpunpckhwd {{.*#+}} xmm0 = xmm0[4],xmm1[4],xmm0[5],xmm1[5],xmm0[6],xmm1[6],xmm0[7],xmm1[7]12591; AVX2-FP-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm012592; AVX2-FP-NEXT: vmovdqa 640(%rdi), %ymm112593; AVX2-FP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill12594; AVX2-FP-NEXT: vpermq {{.*#+}} ymm5 = ymm1[0,1,0,2]12595; AVX2-FP-NEXT: vpshufb %ymm10, %ymm5, %ymm112596; AVX2-FP-NEXT: vmovdqa %ymm10, %ymm1112597; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5,6],ymm1[7]12598; AVX2-FP-NEXT: vpblendd $31, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload12599; AVX2-FP-NEXT: # ymm0 = mem[0,1,2,3,4],ymm0[5,6,7]12600; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill12601; AVX2-FP-NEXT: vmovdqa 352(%rdi), %ymm312602; AVX2-FP-NEXT: vmovdqa 384(%rdi), %ymm612603; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm6[0,1,2],ymm3[3],ymm6[4,5],ymm3[6],ymm6[7]12604; AVX2-FP-NEXT: vmovdqu %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill12605; AVX2-FP-NEXT: vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill12606; AVX2-FP-NEXT: vextracti128 $1, %ymm0, %xmm112607; AVX2-FP-NEXT: vpshufb %xmm2, %xmm1, %xmm112608; AVX2-FP-NEXT: vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,6,4,7]12609; AVX2-FP-NEXT: vpunpckhwd {{.*#+}} xmm0 = xmm0[4],xmm1[4],xmm0[5],xmm1[5],xmm0[6],xmm1[6],xmm0[7],xmm1[7]12610; AVX2-FP-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm1212611; AVX2-FP-NEXT: vmovdqa 416(%rdi), %ymm012612; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill12613; AVX2-FP-NEXT: vpermq {{.*#+}} ymm1 = ymm0[0,1,0,2]12614; AVX2-FP-NEXT: vpshufb %ymm10, %ymm1, %ymm1312615; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm12 = ymm12[0,1,2,3,4,5,6],ymm13[7]12616; AVX2-FP-NEXT: vpblendd $31, {{[-0-9]+}}(%r{{[sb]}}p), %ymm12, %ymm0 # 32-byte Folded Reload12617; AVX2-FP-NEXT: # ymm0 = mem[0,1,2,3,4],ymm12[5,6,7]12618; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill12619; AVX2-FP-NEXT: vmovdqa 800(%rdi), %ymm1312620; AVX2-FP-NEXT: vmovdqa 832(%rdi), %ymm1212621; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm12[0,1,2],ymm13[3],ymm12[4,5],ymm13[6],ymm12[7]12622; AVX2-FP-NEXT: vextracti128 $1, %ymm0, %xmm1012623; AVX2-FP-NEXT: vpshufb %xmm2, %xmm10, %xmm212624; AVX2-FP-NEXT: vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,6,4,7]12625; AVX2-FP-NEXT: vpunpckhwd {{.*#+}} xmm0 = xmm0[4],xmm2[4],xmm0[5],xmm2[5],xmm0[6],xmm2[6],xmm0[7],xmm2[7]12626; AVX2-FP-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm012627; AVX2-FP-NEXT: vmovdqa 864(%rdi), %ymm1412628; AVX2-FP-NEXT: vpermq {{.*#+}} ymm10 = ymm14[0,1,0,2]12629; AVX2-FP-NEXT: vmovdqu %ymm14, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill12630; AVX2-FP-NEXT: vpshufb %ymm11, %ymm10, %ymm1112631; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5,6],ymm11[7]12632; AVX2-FP-NEXT: vpblendd $31, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload12633; AVX2-FP-NEXT: # ymm0 = mem[0,1,2,3,4],ymm0[5,6,7]12634; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill12635; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm8[0,1],ymm7[2],ymm8[3,4,5],ymm7[6],ymm8[7]12636; AVX2-FP-NEXT: vextracti128 $1, %ymm0, %xmm1112637; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2,3],xmm11[4],xmm0[5],xmm11[6],xmm0[7]12638; AVX2-FP-NEXT: vmovdqa {{.*#+}} xmm11 = [0,1,0,1,14,15,12,13,10,11,8,9,12,13,14,15]12639; AVX2-FP-NEXT: vpshufb %xmm11, %xmm0, %xmm012640; AVX2-FP-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm012641; AVX2-FP-NEXT: vpbroadcastd {{.*#+}} ymm2 = [22,23,28,29,22,23,28,29,22,23,28,29,22,23,28,29,22,23,28,29,22,23,28,29,22,23,28,29,22,23,28,29]12642; AVX2-FP-NEXT: vpshufb %ymm2, %ymm5, %ymm512643; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5,6],ymm5[7]12644; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload12645; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm0 = ymm5[0],ymm0[1,2,3,4,5,6,7],ymm5[8],ymm0[9,10,11,12,13,14,15]12646; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm5[0,1,2,3],ymm0[4,5,6,7]12647; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill12648; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm3[0,1],ymm6[2],ymm3[3,4,5],ymm6[6],ymm3[7]12649; AVX2-FP-NEXT: vextracti128 $1, %ymm0, %xmm512650; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2,3],xmm5[4],xmm0[5],xmm5[6],xmm0[7]12651; AVX2-FP-NEXT: vpshufb %xmm11, %xmm0, %xmm012652; AVX2-FP-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm012653; AVX2-FP-NEXT: vpshufb %ymm2, %ymm1, %ymm112654; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5,6],ymm1[7]12655; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload12656; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm0 = ymm1[0],ymm0[1,2,3,4,5,6,7],ymm1[8],ymm0[9,10,11,12,13,14,15]12657; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]12658; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill12659; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm13[0,1],ymm12[2],ymm13[3,4,5],ymm12[6],ymm13[7]12660; AVX2-FP-NEXT: vextracti128 $1, %ymm0, %xmm112661; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2,3],xmm1[4],xmm0[5],xmm1[6],xmm0[7]12662; AVX2-FP-NEXT: vpshufb %xmm11, %xmm0, %xmm012663; AVX2-FP-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm012664; AVX2-FP-NEXT: vpshufb %ymm2, %ymm10, %ymm112665; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5,6],ymm1[7]12666; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload12667; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm0 = ymm1[0],ymm0[1,2,3,4,5,6,7],ymm1[8],ymm0[9,10,11,12,13,14,15]12668; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]12669; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill12670; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload12671; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm9[0,1],ymm10[2],ymm9[3,4,5],ymm10[6],ymm9[7]12672; AVX2-FP-NEXT: vextracti128 $1, %ymm0, %xmm112673; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2,3],xmm1[4],xmm0[5],xmm1[6],xmm0[7]12674; AVX2-FP-NEXT: vpshufb %xmm11, %xmm0, %xmm012675; AVX2-FP-NEXT: vpshufb %ymm2, %ymm15, %ymm112676; AVX2-FP-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm012677; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5,6],ymm1[7]12678; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload12679; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm0 = ymm1[0],ymm0[1,2,3,4,5,6,7],ymm1[8],ymm0[9,10,11,12,13,14,15]12680; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]12681; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill12682; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm9[0,1,2],ymm10[3],ymm9[4,5],ymm10[6],ymm9[7]12683; AVX2-FP-NEXT: vmovdqa %ymm9, %ymm612684; AVX2-FP-NEXT: vextracti128 $1, %ymm0, %xmm112685; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm0 = xmm1[0],xmm0[1],xmm1[2,3,4,5],xmm0[6],xmm1[7]12686; AVX2-FP-NEXT: vmovdqa {{.*#+}} xmm1 = [0,1,2,3,0,1,14,15,12,13,10,11,12,13,14,15]12687; AVX2-FP-NEXT: vpshufb %xmm1, %xmm0, %xmm012688; AVX2-FP-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm012689; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Reload12690; AVX2-FP-NEXT: vpermq {{.*#+}} ymm2 = ymm11[0,1,1,2]12691; AVX2-FP-NEXT: vpbroadcastd {{.*#+}} ymm5 = [16,17,30,31,16,17,30,31,16,17,30,31,16,17,30,31,16,17,30,31,16,17,30,31,16,17,30,31,16,17,30,31]12692; AVX2-FP-NEXT: vpshufb %ymm5, %ymm2, %ymm212693; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5,6],ymm2[7]12694; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload12695; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm0 = ymm2[0],ymm0[1,2,3,4,5,6,7],ymm2[8],ymm0[9,10,11,12,13,14,15]12696; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm2[0,1,2,3],ymm0[4,5,6,7]12697; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill12698; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm8[0,1,2],ymm7[3],ymm8[4,5],ymm7[6],ymm8[7]12699; AVX2-FP-NEXT: vextracti128 $1, %ymm0, %xmm212700; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm0 = xmm2[0],xmm0[1],xmm2[2,3,4,5],xmm0[6],xmm2[7]12701; AVX2-FP-NEXT: vpshufb %xmm1, %xmm0, %xmm012702; AVX2-FP-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm012703; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload12704; AVX2-FP-NEXT: vpermq {{.*#+}} ymm2 = ymm4[0,1,1,2]12705; AVX2-FP-NEXT: vpshufb %ymm5, %ymm2, %ymm212706; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5,6],ymm2[7]12707; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload12708; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm0 = ymm2[0],ymm0[1,2,3,4,5,6,7],ymm2[8],ymm0[9,10,11,12,13,14,15]12709; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm2[0,1,2,3],ymm0[4,5,6,7]12710; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill12711; AVX2-FP-NEXT: vmovdqu %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill12712; AVX2-FP-NEXT: vmovdqu %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill12713; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm13[0,1,2],ymm12[3],ymm13[4,5],ymm12[6],ymm13[7]12714; AVX2-FP-NEXT: vextracti128 $1, %ymm0, %xmm212715; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm0 = xmm2[0],xmm0[1],xmm2[2,3,4,5],xmm0[6],xmm2[7]12716; AVX2-FP-NEXT: vpshufb %xmm1, %xmm0, %xmm012717; AVX2-FP-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm012718; AVX2-FP-NEXT: vpermq {{.*#+}} ymm2 = ymm14[0,1,1,2]12719; AVX2-FP-NEXT: vpshufb %ymm5, %ymm2, %ymm212720; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5,6],ymm2[7]12721; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload12722; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm0 = ymm2[0],ymm0[1,2,3,4,5,6,7],ymm2[8],ymm0[9,10,11,12,13,14,15]12723; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm2[0,1,2,3],ymm0[4,5,6,7]12724; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill12725; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Reload12726; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload12727; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm9[0,1,2],ymm15[3],ymm9[4,5],ymm15[6],ymm9[7]12728; AVX2-FP-NEXT: vextracti128 $1, %ymm0, %xmm212729; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm0 = xmm2[0],xmm0[1],xmm2[2,3,4,5],xmm0[6],xmm2[7]12730; AVX2-FP-NEXT: vpshufb %xmm1, %xmm0, %xmm012731; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload12732; AVX2-FP-NEXT: vpermq {{.*#+}} ymm1 = ymm2[0,1,1,2]12733; AVX2-FP-NEXT: vpshufb %ymm5, %ymm1, %ymm112734; AVX2-FP-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm012735; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5,6],ymm1[7]12736; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload12737; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm0 = ymm1[0],ymm0[1,2,3,4,5,6,7],ymm1[8],ymm0[9,10,11,12,13,14,15]12738; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]12739; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill12740; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm10[0],ymm6[1],ymm10[2,3],ymm6[4],ymm10[5,6,7]12741; AVX2-FP-NEXT: vmovdqa %ymm6, %ymm1412742; AVX2-FP-NEXT: vmovdqu %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill12743; AVX2-FP-NEXT: vextracti128 $1, %ymm0, %xmm112744; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm1 = xmm0[0],xmm1[1],xmm0[2,3,4,5],xmm1[6],xmm0[7]12745; AVX2-FP-NEXT: vmovdqa {{.*#+}} xmm0 = [0,1,4,5,2,3,0,1,14,15,12,13,12,13,14,15]12746; AVX2-FP-NEXT: vpshufb %xmm0, %xmm1, %xmm112747; AVX2-FP-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm112748; AVX2-FP-NEXT: vpermq {{.*#+}} ymm5 = ymm11[0,1,1,3]12749; AVX2-FP-NEXT: vmovdqu %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill12750; AVX2-FP-NEXT: vpbroadcastd {{.*#+}} ymm3 = [18,19,24,25,18,19,24,25,18,19,24,25,18,19,24,25,18,19,24,25,18,19,24,25,18,19,24,25,18,19,24,25]12751; AVX2-FP-NEXT: vpshufb %ymm3, %ymm5, %ymm512752; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,6],ymm5[7]12753; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload12754; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm1 = ymm5[0],ymm1[1,2,3,4,5,6,7],ymm5[8],ymm1[9,10,11,12,13,14,15]12755; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm5[0,1,2,3],ymm1[4,5,6,7]12756; AVX2-FP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill12757; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm7[0],ymm8[1],ymm7[2,3],ymm8[4],ymm7[5,6,7]12758; AVX2-FP-NEXT: vmovdqu %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill12759; AVX2-FP-NEXT: vmovdqa %ymm7, %ymm1112760; AVX2-FP-NEXT: vmovdqu %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill12761; AVX2-FP-NEXT: vextracti128 $1, %ymm1, %xmm512762; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0],xmm5[1],xmm1[2,3,4,5],xmm5[6],xmm1[7]12763; AVX2-FP-NEXT: vpshufb %xmm0, %xmm1, %xmm112764; AVX2-FP-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm112765; AVX2-FP-NEXT: vpermq {{.*#+}} ymm5 = ymm4[0,1,1,3]12766; AVX2-FP-NEXT: vpshufb %ymm3, %ymm5, %ymm612767; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,6],ymm6[7]12768; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload12769; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm1 = ymm6[0],ymm1[1,2,3,4,5,6,7],ymm6[8],ymm1[9,10,11,12,13,14,15]12770; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm6[0,1,2,3],ymm1[4,5,6,7]12771; AVX2-FP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill12772; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm15[0],ymm9[1],ymm15[2,3],ymm9[4],ymm15[5,6,7]12773; AVX2-FP-NEXT: vextracti128 $1, %ymm1, %xmm612774; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0],xmm6[1],xmm1[2,3,4,5],xmm6[6],xmm1[7]12775; AVX2-FP-NEXT: vpshufb %xmm0, %xmm1, %xmm112776; AVX2-FP-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm612777; AVX2-FP-NEXT: vpermq {{.*#+}} ymm1 = ymm2[0,1,1,3]12778; AVX2-FP-NEXT: vpshufb %ymm3, %ymm1, %ymm712779; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm6 = ymm6[0,1,2,3,4,5,6],ymm7[7]12780; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload12781; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm6 = ymm7[0],ymm6[1,2,3,4,5,6,7],ymm7[8],ymm6[9,10,11,12,13,14,15]12782; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm6 = ymm7[0,1,2,3],ymm6[4,5,6,7]12783; AVX2-FP-NEXT: vmovdqu %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill12784; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm6 = ymm12[0],ymm13[1],ymm12[2,3],ymm13[4],ymm12[5,6,7]12785; AVX2-FP-NEXT: vextracti128 $1, %ymm6, %xmm712786; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm6 = xmm6[0],xmm7[1],xmm6[2,3,4,5],xmm7[6],xmm6[7]12787; AVX2-FP-NEXT: vpshufb %xmm0, %xmm6, %xmm012788; AVX2-FP-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm612789; AVX2-FP-NEXT: vpermq $212, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Folded Reload12790; AVX2-FP-NEXT: # ymm0 = mem[0,1,1,3]12791; AVX2-FP-NEXT: vpshufb %ymm3, %ymm0, %ymm212792; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm2 = ymm6[0,1,2,3,4,5,6],ymm2[7]12793; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload12794; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm2 = ymm4[0],ymm2[1,2,3,4,5,6,7],ymm4[8],ymm2[9,10,11,12,13,14,15]12795; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm2 = ymm4[0,1,2,3],ymm2[4,5,6,7]12796; AVX2-FP-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill12797; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload12798; AVX2-FP-NEXT: vpblendd $219, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload12799; AVX2-FP-NEXT: # ymm2 = mem[0,1],ymm2[2],mem[3,4],ymm2[5],mem[6,7]12800; AVX2-FP-NEXT: vmovd {{.*#+}} xmm12 = [8,9,4,5,0,0,0,0,0,0,0,0,0,0,0,0]12801; AVX2-FP-NEXT: vpshufb %xmm12, %xmm2, %xmm412802; AVX2-FP-NEXT: vextracti128 $1, %ymm2, %xmm212803; AVX2-FP-NEXT: vpshuflw {{.*#+}} xmm2 = xmm2[3,1,2,3,4,5,6,7]12804; AVX2-FP-NEXT: vpunpcklwd {{.*#+}} xmm4 = xmm4[0],xmm2[0],xmm4[1],xmm2[1],xmm4[2],xmm2[2],xmm4[3],xmm2[3]12805; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm13 # 32-byte Reload12806; AVX2-FP-NEXT: vpblendd $187, {{[-0-9]+}}(%r{{[sb]}}p), %ymm13, %ymm6 # 32-byte Folded Reload12807; AVX2-FP-NEXT: # ymm6 = mem[0,1],ymm13[2],mem[3,4,5],ymm13[6],mem[7]12808; AVX2-FP-NEXT: vmovdqa {{.*#+}} ymm2 = [u,u,u,u,u,u,u,u,0,1,14,15,u,u,10,11,24,25,24,25,24,25,24,25,16,17,30,31,u,u,26,27]12809; AVX2-FP-NEXT: vpshufb %ymm2, %ymm6, %ymm712810; AVX2-FP-NEXT: vpermq {{.*#+}} ymm6 = ymm6[2,3,0,1]12811; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm6 = ymm7[0,1,2,3,4,5],ymm6[6],ymm7[7,8,9,10,11,12,13],ymm6[14],ymm7[15]12812; AVX2-FP-NEXT: vpblendd {{.*#+}} xmm6 = xmm4[0,1],xmm6[2,3]12813; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm4 = ymm11[0],ymm8[1],ymm11[2,3,4],ymm8[5],ymm11[6,7]12814; AVX2-FP-NEXT: vextracti128 $1, %ymm4, %xmm812815; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm8 = xmm8[0],xmm4[1],xmm8[2],xmm4[3],xmm8[4,5,6,7]12816; AVX2-FP-NEXT: vmovdqa {{.*#+}} xmm4 = [0,1,6,7,4,5,2,3,0,1,14,15,12,13,14,15]12817; AVX2-FP-NEXT: vpshufb %xmm4, %xmm8, %xmm812818; AVX2-FP-NEXT: vinserti128 $1, %xmm8, %ymm0, %ymm812819; AVX2-FP-NEXT: vpbroadcastd {{.*#+}} ymm9 = [20,21,26,27,20,21,26,27,20,21,26,27,20,21,26,27,20,21,26,27,20,21,26,27,20,21,26,27,20,21,26,27]12820; AVX2-FP-NEXT: vpshufb %ymm9, %ymm5, %ymm512821; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm5 = ymm8[0,1,2,3,4,5,6],ymm5[7]12822; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm5 = ymm7[0],ymm5[1,2,3,4,5,6,7],ymm7[8],ymm5[9,10,11,12,13,14,15]12823; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm5 = ymm6[0,1,2,3],ymm5[4,5,6,7]12824; AVX2-FP-NEXT: vmovdqu %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill12825; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload12826; AVX2-FP-NEXT: vpblendd $36, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5, %ymm5 # 32-byte Folded Reload12827; AVX2-FP-NEXT: # ymm5 = ymm5[0,1],mem[2],ymm5[3,4],mem[5],ymm5[6,7]12828; AVX2-FP-NEXT: vpshufb %xmm12, %xmm5, %xmm612829; AVX2-FP-NEXT: vextracti128 $1, %ymm5, %xmm512830; AVX2-FP-NEXT: vpshuflw {{.*#+}} xmm5 = xmm5[3,1,2,3,4,5,6,7]12831; AVX2-FP-NEXT: vpunpcklwd {{.*#+}} xmm5 = xmm6[0],xmm5[0],xmm6[1],xmm5[1],xmm6[2],xmm5[2],xmm6[3],xmm5[3]12832; AVX2-FP-NEXT: vmovdqu (%rsp), %ymm6 # 32-byte Reload12833; AVX2-FP-NEXT: vpblendd $68, {{[-0-9]+}}(%r{{[sb]}}p), %ymm6, %ymm6 # 32-byte Folded Reload12834; AVX2-FP-NEXT: # ymm6 = ymm6[0,1],mem[2],ymm6[3,4,5],mem[6],ymm6[7]12835; AVX2-FP-NEXT: vpshufb %ymm2, %ymm6, %ymm712836; AVX2-FP-NEXT: vpermq {{.*#+}} ymm6 = ymm6[2,3,0,1]12837; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm6 = ymm7[0,1,2,3,4,5],ymm6[6],ymm7[7,8,9,10,11,12,13],ymm6[14],ymm7[15]12838; AVX2-FP-NEXT: vpblendd {{.*#+}} xmm5 = xmm5[0,1],xmm6[2,3]12839; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm6 = ymm10[0],ymm14[1],ymm10[2,3,4],ymm14[5],ymm10[6,7]12840; AVX2-FP-NEXT: vextracti128 $1, %ymm6, %xmm812841; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm6 = xmm8[0],xmm6[1],xmm8[2],xmm6[3],xmm8[4,5,6,7]12842; AVX2-FP-NEXT: vpshufb %xmm4, %xmm6, %xmm612843; AVX2-FP-NEXT: vinserti128 $1, %xmm6, %ymm0, %ymm612844; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload12845; AVX2-FP-NEXT: vpshufb %ymm9, %ymm3, %ymm312846; AVX2-FP-NEXT: vmovdqa %ymm9, %ymm812847; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm3 = ymm6[0,1,2,3,4,5,6],ymm3[7]12848; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm3 = ymm7[0],ymm3[1,2,3,4,5,6,7],ymm7[8],ymm3[9,10,11,12,13,14,15]12849; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm3 = ymm5[0,1,2,3],ymm3[4,5,6,7]12850; AVX2-FP-NEXT: vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill12851; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload12852; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Reload12853; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm3 = ymm15[0,1],ymm3[2],ymm15[3,4],ymm3[5],ymm15[6,7]12854; AVX2-FP-NEXT: vpshufb %xmm12, %xmm3, %xmm512855; AVX2-FP-NEXT: vmovdqa %xmm12, %xmm1412856; AVX2-FP-NEXT: vextracti128 $1, %ymm3, %xmm312857; AVX2-FP-NEXT: vpshuflw {{.*#+}} xmm3 = xmm3[3,1,2,3,4,5,6,7]12858; AVX2-FP-NEXT: vpunpcklwd {{.*#+}} xmm3 = xmm5[0],xmm3[0],xmm5[1],xmm3[1],xmm5[2],xmm3[2],xmm5[3],xmm3[3]12859; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm12 # 32-byte Reload12860; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Reload12861; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm5 = ymm12[0,1],ymm11[2],ymm12[3,4,5],ymm11[6],ymm12[7]12862; AVX2-FP-NEXT: vpshufb %ymm2, %ymm5, %ymm612863; AVX2-FP-NEXT: vpermq {{.*#+}} ymm5 = ymm5[2,3,0,1]12864; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm5 = ymm6[0,1,2,3,4,5],ymm5[6],ymm6[7,8,9,10,11,12,13],ymm5[14],ymm6[15]12865; AVX2-FP-NEXT: vpblendd {{.*#+}} xmm3 = xmm3[0,1],xmm5[2,3]12866; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload12867; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload12868; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm5 = ymm9[0],ymm10[1],ymm9[2,3,4],ymm10[5],ymm9[6,7]12869; AVX2-FP-NEXT: vextracti128 $1, %ymm5, %xmm712870; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm5 = xmm7[0],xmm5[1],xmm7[2],xmm5[3],xmm7[4,5,6,7]12871; AVX2-FP-NEXT: vpshufb %xmm4, %xmm5, %xmm512872; AVX2-FP-NEXT: vinserti128 $1, %xmm5, %ymm0, %ymm512873; AVX2-FP-NEXT: vpshufb %ymm8, %ymm1, %ymm112874; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm5[0,1,2,3,4,5,6],ymm1[7]12875; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm1 = ymm6[0],ymm1[1,2,3,4,5,6,7],ymm6[8],ymm1[9,10,11,12,13,14,15]12876; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm3[0,1,2,3],ymm1[4,5,6,7]12877; AVX2-FP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill12878; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload12879; AVX2-FP-NEXT: vpblendd $36, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload12880; AVX2-FP-NEXT: # ymm1 = ymm1[0,1],mem[2],ymm1[3,4],mem[5],ymm1[6,7]12881; AVX2-FP-NEXT: vpshufb %xmm14, %xmm1, %xmm312882; AVX2-FP-NEXT: vextracti128 $1, %ymm1, %xmm112883; AVX2-FP-NEXT: vpshuflw {{.*#+}} xmm1 = xmm1[3,1,2,3,4,5,6,7]12884; AVX2-FP-NEXT: vpunpcklwd {{.*#+}} xmm1 = xmm3[0],xmm1[0],xmm3[1],xmm1[1],xmm3[2],xmm1[2],xmm3[3],xmm1[3]12885; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Reload12886; AVX2-FP-NEXT: vpblendd $68, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm3 # 32-byte Folded Reload12887; AVX2-FP-NEXT: # ymm3 = ymm14[0,1],mem[2],ymm14[3,4,5],mem[6],ymm14[7]12888; AVX2-FP-NEXT: vpshufb %ymm2, %ymm3, %ymm212889; AVX2-FP-NEXT: vpermq {{.*#+}} ymm3 = ymm3[2,3,0,1]12890; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm3 = ymm2[0,1,2,3,4,5],ymm3[6],ymm2[7,8,9,10,11,12,13],ymm3[14],ymm2[15]12891; AVX2-FP-NEXT: vpblendd {{.*#+}} xmm1 = xmm1[0,1],xmm3[2,3]12892; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload12893; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload12894; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm3 = ymm7[0],ymm6[1],ymm7[2,3,4],ymm6[5],ymm7[6,7]12895; AVX2-FP-NEXT: vextracti128 $1, %ymm3, %xmm512896; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm3 = xmm5[0],xmm3[1],xmm5[2],xmm3[3],xmm5[4,5,6,7]12897; AVX2-FP-NEXT: vpshufb %xmm4, %xmm3, %xmm312898; AVX2-FP-NEXT: vpshufb %ymm8, %ymm0, %ymm012899; AVX2-FP-NEXT: vinserti128 $1, %xmm3, %ymm0, %ymm312900; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm3[0,1,2,3,4,5,6],ymm0[7]12901; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm0 = ymm2[0],ymm0[1,2,3,4,5,6,7],ymm2[8],ymm0[9,10,11,12,13,14,15]12902; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]12903; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill12904; AVX2-FP-NEXT: vpblendd $183, {{[-0-9]+}}(%r{{[sb]}}p), %ymm13, %ymm0 # 32-byte Folded Reload12905; AVX2-FP-NEXT: # ymm0 = mem[0,1,2],ymm13[3],mem[4,5],ymm13[6],mem[7]12906; AVX2-FP-NEXT: vpermq {{.*#+}} ymm1 = ymm0[2,3,0,1]12907; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm0 = ymm1[0],ymm0[1,2,3,4,5,6],ymm1[7,8],ymm0[9,10,11,12,13,14],ymm1[15]12908; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload12909; AVX2-FP-NEXT: vpblendd $219, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload12910; AVX2-FP-NEXT: # ymm1 = mem[0,1],ymm1[2],mem[3,4],ymm1[5],mem[6,7]12911; AVX2-FP-NEXT: vextracti128 $1, %ymm1, %xmm212912; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm1 = xmm2[0,1],xmm1[2],xmm2[3],xmm1[4],xmm2[5,6,7]12913; AVX2-FP-NEXT: vmovdqa {{.*#+}} xmm5 = [8,9,8,9,6,7,4,5,2,3,2,3,2,3,2,3]12914; AVX2-FP-NEXT: vpshufb %xmm5, %xmm1, %xmm112915; AVX2-FP-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm112916; AVX2-FP-NEXT: vmovdqa 656(%rdi), %xmm312917; AVX2-FP-NEXT: vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill12918; AVX2-FP-NEXT: vmovdqa 640(%rdi), %xmm212919; AVX2-FP-NEXT: vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill12920; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,5],xmm3[6],xmm2[7]12921; AVX2-FP-NEXT: vmovdqa {{.*#+}} xmm3 = [0,1,2,3,4,5,6,7,0,1,0,1,14,15,12,13]12922; AVX2-FP-NEXT: vpshufb %xmm3, %xmm2, %xmm212923; AVX2-FP-NEXT: vinserti128 $1, %xmm2, %ymm0, %ymm212924; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm1 = ymm1[0,1,2,3,4],ymm2[5,6,7],ymm1[8,9,10,11,12],ymm2[13,14,15]12925; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload12926; AVX2-FP-NEXT: vpblendd $51, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload12927; AVX2-FP-NEXT: # ymm2 = mem[0,1],ymm2[2,3],mem[4,5],ymm2[6,7]12928; AVX2-FP-NEXT: vextracti128 $1, %ymm2, %xmm412929; AVX2-FP-NEXT: vmovd {{.*#+}} xmm13 = [8,9,4,5,0,0,0,0,0,0,0,0,0,0,0,0]12930; AVX2-FP-NEXT: vpshufb %xmm13, %xmm4, %xmm812931; AVX2-FP-NEXT: vmovd {{.*#+}} xmm4 = [10,11,6,7,0,0,0,0,0,0,0,0,0,0,0,0]12932; AVX2-FP-NEXT: vpshufb %xmm4, %xmm2, %xmm212933; AVX2-FP-NEXT: vpunpcklwd {{.*#+}} xmm8 = xmm2[0],xmm8[0],xmm2[1],xmm8[1],xmm2[2],xmm8[2],xmm2[3],xmm8[3]12934; AVX2-FP-NEXT: vmovdqa {{.*#+}} ymm2 = [u,u,u,u,u,u,u,u,2,3,0,1,14,15,12,13,26,27,26,27,26,27,26,27,18,19,16,17,30,31,28,29]12935; AVX2-FP-NEXT: vpshufb %ymm2, %ymm0, %ymm012936; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm1 = ymm0[0],ymm1[1,2,3,4,5,6,7],ymm0[8],ymm1[9,10,11,12,13,14,15]12937; AVX2-FP-NEXT: vpblendd {{.*#+}} xmm0 = xmm8[0,1],xmm0[2,3]12938; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]12939; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill12940; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm12[0,1,2],ymm11[3],ymm12[4,5],ymm11[6],ymm12[7]12941; AVX2-FP-NEXT: vpermq {{.*#+}} ymm1 = ymm0[2,3,0,1]12942; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm0 = ymm1[0],ymm0[1,2,3,4,5,6],ymm1[7,8],ymm0[9,10,11,12,13,14],ymm1[15]12943; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm9[0,1],ymm10[2],ymm9[3,4],ymm10[5],ymm9[6,7]12944; AVX2-FP-NEXT: vextracti128 $1, %ymm1, %xmm812945; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm1 = xmm8[0,1],xmm1[2],xmm8[3],xmm1[4],xmm8[5,6,7]12946; AVX2-FP-NEXT: vpshufb %xmm5, %xmm1, %xmm112947; AVX2-FP-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm112948; AVX2-FP-NEXT: vmovdqa 432(%rdi), %xmm912949; AVX2-FP-NEXT: vmovdqa %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill12950; AVX2-FP-NEXT: vmovdqa 416(%rdi), %xmm812951; AVX2-FP-NEXT: vmovdqa %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill12952; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm8 = xmm8[0,1,2,3,4,5],xmm9[6],xmm8[7]12953; AVX2-FP-NEXT: vpshufb %xmm3, %xmm8, %xmm812954; AVX2-FP-NEXT: vinserti128 $1, %xmm8, %ymm0, %ymm812955; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm1 = ymm1[0,1,2,3,4],ymm8[5,6,7],ymm1[8,9,10,11,12],ymm8[13,14,15]12956; AVX2-FP-NEXT: vpblendd $204, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm8 # 32-byte Folded Reload12957; AVX2-FP-NEXT: # ymm8 = ymm15[0,1],mem[2,3],ymm15[4,5],mem[6,7]12958; AVX2-FP-NEXT: vextracti128 $1, %ymm8, %xmm1112959; AVX2-FP-NEXT: vmovdqa %xmm13, %xmm912960; AVX2-FP-NEXT: vpshufb %xmm13, %xmm11, %xmm1112961; AVX2-FP-NEXT: vpshufb %xmm4, %xmm8, %xmm812962; AVX2-FP-NEXT: vpunpcklwd {{.*#+}} xmm8 = xmm8[0],xmm11[0],xmm8[1],xmm11[1],xmm8[2],xmm11[2],xmm8[3],xmm11[3]12963; AVX2-FP-NEXT: vpshufb %ymm2, %ymm0, %ymm012964; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm1 = ymm0[0],ymm1[1,2,3,4,5,6,7],ymm0[8],ymm1[9,10,11,12,13,14,15]12965; AVX2-FP-NEXT: vpblendd {{.*#+}} xmm0 = xmm8[0,1],xmm0[2,3]12966; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]12967; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill12968; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm12 # 32-byte Reload12969; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm14[0,1,2],ymm12[3],ymm14[4,5],ymm12[6],ymm14[7]12970; AVX2-FP-NEXT: vpermq {{.*#+}} ymm1 = ymm0[2,3,0,1]12971; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm8 = ymm1[0],ymm0[1,2,3,4,5,6],ymm1[7,8],ymm0[9,10,11,12,13,14],ymm1[15]12972; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm7[0,1],ymm6[2],ymm7[3,4],ymm6[5],ymm7[6,7]12973; AVX2-FP-NEXT: vextracti128 $1, %ymm0, %xmm112974; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm0 = xmm1[0,1],xmm0[2],xmm1[3],xmm0[4],xmm1[5,6,7]12975; AVX2-FP-NEXT: vpshufb %xmm5, %xmm0, %xmm012976; AVX2-FP-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm1112977; AVX2-FP-NEXT: vmovdqa 880(%rdi), %xmm112978; AVX2-FP-NEXT: vmovdqa 864(%rdi), %xmm012979; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm15 = xmm0[0,1,2,3,4,5],xmm1[6],xmm0[7]12980; AVX2-FP-NEXT: vpshufb %xmm3, %xmm15, %xmm1512981; AVX2-FP-NEXT: vinserti128 $1, %xmm15, %ymm0, %ymm1512982; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm11 = ymm11[0,1,2,3,4],ymm15[5,6,7],ymm11[8,9,10,11,12],ymm15[13,14,15]12983; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload12984; AVX2-FP-NEXT: vpblendd $51, {{[-0-9]+}}(%r{{[sb]}}p), %ymm6, %ymm15 # 32-byte Folded Reload12985; AVX2-FP-NEXT: # ymm15 = mem[0,1],ymm6[2,3],mem[4,5],ymm6[6,7]12986; AVX2-FP-NEXT: vextracti128 $1, %ymm15, %xmm1312987; AVX2-FP-NEXT: vpshufb %xmm9, %xmm13, %xmm1312988; AVX2-FP-NEXT: vpshufb %xmm4, %xmm15, %xmm1512989; AVX2-FP-NEXT: vpunpcklwd {{.*#+}} xmm13 = xmm15[0],xmm13[0],xmm15[1],xmm13[1],xmm15[2],xmm13[2],xmm15[3],xmm13[3]12990; AVX2-FP-NEXT: vpshufb %ymm2, %ymm8, %ymm812991; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm11 = ymm8[0],ymm11[1,2,3,4,5,6,7],ymm8[8],ymm11[9,10,11,12,13,14,15]12992; AVX2-FP-NEXT: vpblendd {{.*#+}} xmm8 = xmm13[0,1],xmm8[2,3]12993; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm6 = ymm8[0,1,2,3],ymm11[4,5,6,7]12994; AVX2-FP-NEXT: vmovdqu %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill12995; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload12996; AVX2-FP-NEXT: vpblendd $219, {{[-0-9]+}}(%r{{[sb]}}p), %ymm6, %ymm8 # 32-byte Folded Reload12997; AVX2-FP-NEXT: # ymm8 = mem[0,1],ymm6[2],mem[3,4],ymm6[5],mem[6,7]12998; AVX2-FP-NEXT: vextracti128 $1, %ymm8, %xmm1112999; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm8 = xmm11[0,1],xmm8[2],xmm11[3],xmm8[4],xmm11[5,6,7]13000; AVX2-FP-NEXT: vpshufb %xmm5, %xmm8, %xmm813001; AVX2-FP-NEXT: vmovdqa 208(%rdi), %xmm1413002; AVX2-FP-NEXT: vmovdqa 192(%rdi), %xmm513003; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm13 = xmm5[0,1,2,3,4,5],xmm14[6],xmm5[7]13004; AVX2-FP-NEXT: vpshufb %xmm3, %xmm13, %xmm313005; AVX2-FP-NEXT: vinserti128 $1, %xmm8, %ymm0, %ymm813006; AVX2-FP-NEXT: vinserti128 $1, %xmm3, %ymm0, %ymm313007; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm3 = ymm8[0,1,2,3,4],ymm3[5,6,7],ymm8[8,9,10,11,12],ymm3[13,14,15]13008; AVX2-FP-NEXT: vmovdqu (%rsp), %ymm6 # 32-byte Reload13009; AVX2-FP-NEXT: vpblendd $72, {{[-0-9]+}}(%r{{[sb]}}p), %ymm6, %ymm8 # 32-byte Folded Reload13010; AVX2-FP-NEXT: # ymm8 = ymm6[0,1,2],mem[3],ymm6[4,5],mem[6],ymm6[7]13011; AVX2-FP-NEXT: vpermq {{.*#+}} ymm13 = ymm8[2,3,0,1]13012; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm8 = ymm13[0],ymm8[1,2,3,4,5,6],ymm13[7,8],ymm8[9,10,11,12,13,14],ymm13[15]13013; AVX2-FP-NEXT: vpshufb %ymm2, %ymm8, %ymm213014; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Reload13015; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Reload13016; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm8 = ymm15[0,1],ymm11[2,3],ymm15[4,5],ymm11[6,7]13017; AVX2-FP-NEXT: vextracti128 $1, %ymm8, %xmm1313018; AVX2-FP-NEXT: vpshufb %xmm9, %xmm13, %xmm1013019; AVX2-FP-NEXT: vpshufb %xmm4, %xmm8, %xmm413020; AVX2-FP-NEXT: vpunpcklwd {{.*#+}} xmm4 = xmm4[0],xmm10[0],xmm4[1],xmm10[1],xmm4[2],xmm10[2],xmm4[3],xmm10[3]13021; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm3 = ymm2[0],ymm3[1,2,3,4,5,6,7],ymm2[8],ymm3[9,10,11,12,13,14,15]13022; AVX2-FP-NEXT: vpblendd {{.*#+}} xmm2 = xmm4[0,1],xmm2[2,3]13023; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm10 = ymm2[0,1,2,3],ymm3[4,5,6,7]13024; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload13025; AVX2-FP-NEXT: vpblendd $18, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload13026; AVX2-FP-NEXT: # ymm2 = ymm2[0],mem[1],ymm2[2,3],mem[4],ymm2[5,6,7]13027; AVX2-FP-NEXT: vpermq {{.*#+}} ymm3 = ymm2[2,3,0,1]13028; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm2 = ymm2[0],ymm3[1],ymm2[2,3,4,5,6,7,8],ymm3[9],ymm2[10,11,12,13,14,15]13029; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload13030; AVX2-FP-NEXT: vpblendd $51, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm3 # 32-byte Folded Reload13031; AVX2-FP-NEXT: # ymm3 = mem[0,1],ymm3[2,3],mem[4,5],ymm3[6,7]13032; AVX2-FP-NEXT: vextracti128 $1, %ymm3, %xmm413033; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm3 = xmm4[0,1,2],xmm3[3],xmm4[4],xmm3[5],xmm4[6,7]13034; AVX2-FP-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload13035; AVX2-FP-NEXT: vpblendw $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4, %xmm7 # 16-byte Folded Reload13036; AVX2-FP-NEXT: # xmm7 = xmm4[0],mem[1],xmm4[2,3,4,5,6,7]13037; AVX2-FP-NEXT: vmovdqa {{.*#+}} xmm4 = [8,9,10,11,8,9,6,7,4,5,4,5,4,5,4,5]13038; AVX2-FP-NEXT: vpshufb %xmm4, %xmm3, %xmm313039; AVX2-FP-NEXT: vinserti128 $1, %xmm3, %ymm0, %ymm313040; AVX2-FP-NEXT: vmovdqa {{.*#+}} xmm6 = [0,1,2,3,4,5,6,7,0,1,2,3,0,1,14,15]13041; AVX2-FP-NEXT: vpshufb %xmm6, %xmm7, %xmm713042; AVX2-FP-NEXT: vinserti128 $1, %xmm7, %ymm0, %ymm713043; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm8 = ymm3[0,1,2,3,4],ymm7[5,6,7],ymm3[8,9,10,11,12],ymm7[13,14,15]13044; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload13045; AVX2-FP-NEXT: vpblendd $183, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm7 # 32-byte Folded Reload13046; AVX2-FP-NEXT: # ymm7 = mem[0,1,2],ymm3[3],mem[4,5],ymm3[6],mem[7]13047; AVX2-FP-NEXT: vextracti128 $1, %ymm7, %xmm913048; AVX2-FP-NEXT: vpbroadcastd {{.*#+}} xmm3 = [10,11,6,7,10,11,6,7,10,11,6,7,10,11,6,7]13049; AVX2-FP-NEXT: vpshufb %xmm3, %xmm9, %xmm913050; AVX2-FP-NEXT: vpshufhw {{.*#+}} xmm7 = xmm7[0,1,2,3,6,4,6,7]13051; AVX2-FP-NEXT: vpunpckhwd {{.*#+}} xmm9 = xmm7[4],xmm9[4],xmm7[5],xmm9[5],xmm7[6],xmm9[6],xmm7[7],xmm9[7]13052; AVX2-FP-NEXT: vmovdqa {{.*#+}} ymm7 = [u,u,u,u,u,u,u,u,4,5,2,3,0,1,14,15,28,29,28,29,28,29,28,29,20,21,18,19,16,17,30,31]13053; AVX2-FP-NEXT: vpshufb %ymm7, %ymm2, %ymm213054; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm8 = ymm2[0],ymm8[1,2,3,4,5,6,7],ymm2[8],ymm8[9,10,11,12,13,14,15]13055; AVX2-FP-NEXT: vpblendd {{.*#+}} xmm2 = xmm9[0,1],xmm2[2,3]13056; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm8[4,5,6,7]13057; AVX2-FP-NEXT: vpblendd $18, {{[-0-9]+}}(%r{{[sb]}}p), %ymm12, %ymm8 # 32-byte Folded Reload13058; AVX2-FP-NEXT: # ymm8 = ymm12[0],mem[1],ymm12[2,3],mem[4],ymm12[5,6,7]13059; AVX2-FP-NEXT: vpermq {{.*#+}} ymm9 = ymm8[2,3,0,1]13060; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm8 = ymm8[0],ymm9[1],ymm8[2,3,4,5,6,7,8],ymm9[9],ymm8[10,11,12,13,14,15]13061; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload13062; AVX2-FP-NEXT: vpblendd $204, {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm9 # 32-byte Folded Reload13063; AVX2-FP-NEXT: # ymm9 = ymm9[0,1],mem[2,3],ymm9[4,5],mem[6,7]13064; AVX2-FP-NEXT: vextracti128 $1, %ymm9, %xmm1213065; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm9 = xmm12[0,1,2],xmm9[3],xmm12[4],xmm9[5],xmm12[6,7]13066; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm0 = xmm1[0],xmm0[1],xmm1[2,3,4,5,6,7]13067; AVX2-FP-NEXT: vpshufb %xmm4, %xmm9, %xmm113068; AVX2-FP-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm113069; AVX2-FP-NEXT: vpshufb %xmm6, %xmm0, %xmm013070; AVX2-FP-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm013071; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm0 = ymm1[0,1,2,3,4],ymm0[5,6,7],ymm1[8,9,10,11,12],ymm0[13,14,15]13072; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload13073; AVX2-FP-NEXT: vpblendd $183, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload13074; AVX2-FP-NEXT: # ymm1 = mem[0,1,2],ymm1[3],mem[4,5],ymm1[6],mem[7]13075; AVX2-FP-NEXT: vextracti128 $1, %ymm1, %xmm913076; AVX2-FP-NEXT: vpshufb %xmm3, %xmm9, %xmm913077; AVX2-FP-NEXT: vpshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,6,4,6,7]13078; AVX2-FP-NEXT: vpunpckhwd {{.*#+}} xmm1 = xmm1[4],xmm9[4],xmm1[5],xmm9[5],xmm1[6],xmm9[6],xmm1[7],xmm9[7]13079; AVX2-FP-NEXT: vpshufb %ymm7, %ymm8, %ymm813080; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm0 = ymm8[0],ymm0[1,2,3,4,5,6,7],ymm8[8],ymm0[9,10,11,12,13,14,15]13081; AVX2-FP-NEXT: vpblendd {{.*#+}} xmm1 = xmm1[0,1],xmm8[2,3]13082; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]13083; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload13084; AVX2-FP-NEXT: vpblendd $237, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload13085; AVX2-FP-NEXT: # ymm1 = mem[0],ymm1[1],mem[2,3],ymm1[4],mem[5,6,7]13086; AVX2-FP-NEXT: vpermq {{.*#+}} ymm8 = ymm1[2,3,0,1]13087; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm1 = ymm1[0],ymm8[1],ymm1[2,3,4,5,6,7,8],ymm8[9],ymm1[10,11,12,13,14,15]13088; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload13089; AVX2-FP-NEXT: vpblendd $51, {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm8 # 32-byte Folded Reload13090; AVX2-FP-NEXT: # ymm8 = mem[0,1],ymm8[2,3],mem[4,5],ymm8[6,7]13091; AVX2-FP-NEXT: vextracti128 $1, %ymm8, %xmm913092; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm8 = xmm9[0,1,2],xmm8[3],xmm9[4],xmm8[5],xmm9[6,7]13093; AVX2-FP-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Reload13094; AVX2-FP-NEXT: vpblendw $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm9, %xmm9 # 16-byte Folded Reload13095; AVX2-FP-NEXT: # xmm9 = xmm9[0],mem[1],xmm9[2,3,4,5,6,7]13096; AVX2-FP-NEXT: vpshufb %xmm4, %xmm8, %xmm813097; AVX2-FP-NEXT: vinserti128 $1, %xmm8, %ymm0, %ymm813098; AVX2-FP-NEXT: vpshufb %xmm6, %xmm9, %xmm913099; AVX2-FP-NEXT: vinserti128 $1, %xmm9, %ymm0, %ymm913100; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm8 = ymm8[0,1,2,3,4],ymm9[5,6,7],ymm8[8,9,10,11,12],ymm9[13,14,15]13101; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload13102; AVX2-FP-NEXT: vpblendd $183, {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm9 # 32-byte Folded Reload13103; AVX2-FP-NEXT: # ymm9 = mem[0,1,2],ymm9[3],mem[4,5],ymm9[6],mem[7]13104; AVX2-FP-NEXT: vextracti128 $1, %ymm9, %xmm1213105; AVX2-FP-NEXT: vpshufb %xmm3, %xmm12, %xmm1213106; AVX2-FP-NEXT: vpshufhw {{.*#+}} xmm9 = xmm9[0,1,2,3,6,4,6,7]13107; AVX2-FP-NEXT: vpunpckhwd {{.*#+}} xmm9 = xmm9[4],xmm12[4],xmm9[5],xmm12[5],xmm9[6],xmm12[6],xmm9[7],xmm12[7]13108; AVX2-FP-NEXT: vpshufb %ymm7, %ymm1, %ymm113109; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm8 = ymm1[0],ymm8[1,2,3,4,5,6,7],ymm1[8],ymm8[9,10,11,12,13,14,15]13110; AVX2-FP-NEXT: vpblendd {{.*#+}} xmm1 = xmm9[0,1],xmm1[2,3]13111; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm8[4,5,6,7]13112; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload13113; AVX2-FP-NEXT: vpblendd $51, {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm8 # 32-byte Folded Reload13114; AVX2-FP-NEXT: # ymm8 = mem[0,1],ymm8[2,3],mem[4,5],ymm8[6,7]13115; AVX2-FP-NEXT: vextracti128 $1, %ymm8, %xmm913116; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm8 = xmm9[0,1,2],xmm8[3],xmm9[4],xmm8[5],xmm9[6,7]13117; AVX2-FP-NEXT: vpshufb %xmm4, %xmm8, %xmm413118; AVX2-FP-NEXT: vpblendw {{.*#+}} xmm5 = xmm14[0],xmm5[1],xmm14[2,3,4,5,6,7]13119; AVX2-FP-NEXT: vpshufb %xmm6, %xmm5, %xmm513120; AVX2-FP-NEXT: vinserti128 $1, %xmm4, %ymm0, %ymm413121; AVX2-FP-NEXT: vinserti128 $1, %xmm5, %ymm0, %ymm513122; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm4 = ymm4[0,1,2,3,4],ymm5[5,6,7],ymm4[8,9,10,11,12],ymm5[13,14,15]13123; AVX2-FP-NEXT: vmovdqu (%rsp), %ymm5 # 32-byte Reload13124; AVX2-FP-NEXT: vpblendd $237, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5, %ymm5 # 32-byte Folded Reload13125; AVX2-FP-NEXT: # ymm5 = mem[0],ymm5[1],mem[2,3],ymm5[4],mem[5,6,7]13126; AVX2-FP-NEXT: vpermq {{.*#+}} ymm6 = ymm5[2,3,0,1]13127; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm5 = ymm5[0],ymm6[1],ymm5[2,3,4,5,6,7,8],ymm6[9],ymm5[10,11,12,13,14,15]13128; AVX2-FP-NEXT: vpshufb %ymm7, %ymm5, %ymm513129; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm6 = ymm15[0,1,2],ymm11[3],ymm15[4,5],ymm11[6],ymm15[7]13130; AVX2-FP-NEXT: vextracti128 $1, %ymm6, %xmm713131; AVX2-FP-NEXT: vpshufb %xmm3, %xmm7, %xmm313132; AVX2-FP-NEXT: vpshufhw {{.*#+}} xmm6 = xmm6[0,1,2,3,6,4,6,7]13133; AVX2-FP-NEXT: vpunpckhwd {{.*#+}} xmm3 = xmm6[4],xmm3[4],xmm6[5],xmm3[5],xmm6[6],xmm3[6],xmm6[7],xmm3[7]13134; AVX2-FP-NEXT: vpblendw {{.*#+}} ymm4 = ymm5[0],ymm4[1,2,3,4,5,6,7],ymm5[8],ymm4[9,10,11,12,13,14,15]13135; AVX2-FP-NEXT: vpblendd {{.*#+}} xmm3 = xmm3[0,1],xmm5[2,3]13136; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm4[4,5,6,7]13137; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload13138; AVX2-FP-NEXT: vmovaps %ymm4, 96(%rsi)13139; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload13140; AVX2-FP-NEXT: vmovaps %ymm4, 32(%rsi)13141; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload13142; AVX2-FP-NEXT: vmovaps %ymm4, 64(%rsi)13143; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload13144; AVX2-FP-NEXT: vmovaps %ymm4, (%rsi)13145; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload13146; AVX2-FP-NEXT: vmovaps %ymm4, 96(%rdx)13147; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload13148; AVX2-FP-NEXT: vmovaps %ymm4, 32(%rdx)13149; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload13150; AVX2-FP-NEXT: vmovaps %ymm4, 64(%rdx)13151; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload13152; AVX2-FP-NEXT: vmovaps %ymm4, (%rdx)13153; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload13154; AVX2-FP-NEXT: vmovaps %ymm4, 32(%rcx)13155; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload13156; AVX2-FP-NEXT: vmovaps %ymm4, 96(%rcx)13157; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload13158; AVX2-FP-NEXT: vmovaps %ymm4, 64(%rcx)13159; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload13160; AVX2-FP-NEXT: vmovaps %ymm4, (%rcx)13161; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload13162; AVX2-FP-NEXT: vmovaps %ymm4, 96(%r8)13163; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload13164; AVX2-FP-NEXT: vmovaps %ymm4, 32(%r8)13165; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload13166; AVX2-FP-NEXT: vmovaps %ymm4, 64(%r8)13167; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload13168; AVX2-FP-NEXT: vmovaps %ymm4, (%r8)13169; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload13170; AVX2-FP-NEXT: vmovaps %ymm4, 96(%r9)13171; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload13172; AVX2-FP-NEXT: vmovaps %ymm4, 32(%r9)13173; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload13174; AVX2-FP-NEXT: vmovaps %ymm4, (%r9)13175; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload13176; AVX2-FP-NEXT: vmovaps %ymm4, 64(%r9)13177; AVX2-FP-NEXT: movq {{[0-9]+}}(%rsp), %rax13178; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload13179; AVX2-FP-NEXT: vmovaps %ymm4, 96(%rax)13180; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload13181; AVX2-FP-NEXT: vmovaps %ymm4, 32(%rax)13182; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload13183; AVX2-FP-NEXT: vmovaps %ymm4, 64(%rax)13184; AVX2-FP-NEXT: vmovdqa %ymm10, (%rax)13185; AVX2-FP-NEXT: movq {{[0-9]+}}(%rsp), %rax13186; AVX2-FP-NEXT: vmovdqa %ymm1, 32(%rax)13187; AVX2-FP-NEXT: vmovdqa %ymm3, (%rax)13188; AVX2-FP-NEXT: vmovdqa %ymm0, 96(%rax)13189; AVX2-FP-NEXT: vmovdqa %ymm2, 64(%rax)13190; AVX2-FP-NEXT: addq $1448, %rsp # imm = 0x5A813191; AVX2-FP-NEXT: vzeroupper13192; AVX2-FP-NEXT: retq13193;13194; AVX2-FCP-LABEL: load_i16_stride7_vf64:13195; AVX2-FCP: # %bb.0:13196; AVX2-FCP-NEXT: subq $1544, %rsp # imm = 0x60813197; AVX2-FCP-NEXT: vmovdqa 256(%rdi), %ymm613198; AVX2-FCP-NEXT: vmovdqa 224(%rdi), %ymm713199; AVX2-FCP-NEXT: vmovdqa 512(%rdi), %ymm1413200; AVX2-FCP-NEXT: vmovdqa 544(%rdi), %ymm1513201; AVX2-FCP-NEXT: vmovdqu %ymm15, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill13202; AVX2-FCP-NEXT: vmovdqa 480(%rdi), %ymm1213203; AVX2-FCP-NEXT: vmovdqu %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill13204; AVX2-FCP-NEXT: vmovdqa 448(%rdi), %ymm1313205; AVX2-FCP-NEXT: vmovdqu %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill13206; AVX2-FCP-NEXT: vmovdqa (%rdi), %ymm1013207; AVX2-FCP-NEXT: vmovdqa 32(%rdi), %ymm913208; AVX2-FCP-NEXT: vmovdqa 64(%rdi), %ymm1113209; AVX2-FCP-NEXT: vmovdqa 96(%rdi), %ymm013210; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill13211; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0],ymm11[1],ymm0[2,3,4],ymm11[5],ymm0[6,7]13212; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm0 = ymm0[0,2,2,3]13213; AVX2-FCP-NEXT: vmovdqa {{.*#+}} ymm4 = [0,1,14,15,12,13,14,15,2,3,6,7,12,13,2,3,16,17,30,31,28,29,30,31,18,19,22,23,28,29,18,19]13214; AVX2-FCP-NEXT: vpshufb %ymm4, %ymm0, %ymm013215; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm10[0,1],ymm9[2],ymm10[3,4,5],ymm9[6],ymm10[7]13216; AVX2-FCP-NEXT: vextracti128 $1, %ymm1, %xmm213217; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1,2,3],xmm2[4],xmm1[5],xmm2[6],xmm1[7]13218; AVX2-FCP-NEXT: vmovdqa {{.*#+}} xmm5 = [0,1,14,15,12,13,10,11,8,9,8,9,8,9,8,9]13219; AVX2-FCP-NEXT: vpshufb %xmm5, %xmm1, %xmm213220; AVX2-FCP-NEXT: vpmovsxbw {{.*#+}} xmm8 = [65535,65535,65535,65535,65535,0,0,0]13221; AVX2-FCP-NEXT: vpblendvb %ymm8, %ymm2, %ymm0, %ymm013222; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill13223; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm13[0,1],ymm12[2],ymm13[3,4,5],ymm12[6],ymm13[7]13224; AVX2-FCP-NEXT: vextracti128 $1, %ymm2, %xmm313225; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0,1,2,3],xmm3[4],xmm2[5],xmm3[6],xmm2[7]13226; AVX2-FCP-NEXT: vpshufb %xmm5, %xmm2, %xmm213227; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm3 = ymm15[0],ymm14[1],ymm15[2,3,4],ymm14[5],ymm15[6,7]13228; AVX2-FCP-NEXT: vmovdqu %ymm14, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill13229; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm3 = ymm3[0,2,2,3]13230; AVX2-FCP-NEXT: vpshufb %ymm4, %ymm3, %ymm313231; AVX2-FCP-NEXT: vpblendvb %ymm8, %ymm2, %ymm3, %ymm013232; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill13233; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm3 = ymm7[0,1],ymm6[2],ymm7[3,4,5],ymm6[6],ymm7[7]13234; AVX2-FCP-NEXT: vmovdqa %ymm7, %ymm1513235; AVX2-FCP-NEXT: vmovdqu %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill13236; AVX2-FCP-NEXT: vmovdqa %ymm6, %ymm1313237; AVX2-FCP-NEXT: vmovdqu %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill13238; AVX2-FCP-NEXT: vextracti128 $1, %ymm3, %xmm613239; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm3 = xmm3[0,1,2,3],xmm6[4],xmm3[5],xmm6[6],xmm3[7]13240; AVX2-FCP-NEXT: vpshufb %xmm5, %xmm3, %xmm313241; AVX2-FCP-NEXT: vmovdqa 288(%rdi), %ymm113242; AVX2-FCP-NEXT: vmovdqa 320(%rdi), %ymm1213243; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm6 = ymm12[0],ymm1[1],ymm12[2,3,4],ymm1[5],ymm12[6,7]13244; AVX2-FCP-NEXT: vmovdqu %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill13245; AVX2-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill13246; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm6 = ymm6[0,2,2,3]13247; AVX2-FCP-NEXT: vpshufb %ymm4, %ymm6, %ymm613248; AVX2-FCP-NEXT: vpblendvb %ymm8, %ymm3, %ymm6, %ymm013249; AVX2-FCP-NEXT: vmovdqu %ymm0, (%rsp) # 32-byte Spill13250; AVX2-FCP-NEXT: vmovdqa 704(%rdi), %ymm213251; AVX2-FCP-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill13252; AVX2-FCP-NEXT: vmovdqa 672(%rdi), %ymm013253; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill13254; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm6 = ymm0[0,1],ymm2[2],ymm0[3,4,5],ymm2[6],ymm0[7]13255; AVX2-FCP-NEXT: vextracti128 $1, %ymm6, %xmm713256; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm6 = xmm6[0,1,2,3],xmm7[4],xmm6[5],xmm7[6],xmm6[7]13257; AVX2-FCP-NEXT: vpshufb %xmm5, %xmm6, %xmm513258; AVX2-FCP-NEXT: vmovdqa 736(%rdi), %ymm313259; AVX2-FCP-NEXT: vmovdqa 768(%rdi), %ymm013260; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill13261; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm6 = ymm0[0],ymm3[1],ymm0[2,3,4],ymm3[5],ymm0[6,7]13262; AVX2-FCP-NEXT: vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill13263; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm6 = ymm6[0,2,2,3]13264; AVX2-FCP-NEXT: vpshufb %ymm4, %ymm6, %ymm413265; AVX2-FCP-NEXT: vmovdqa %ymm8, %ymm013266; AVX2-FCP-NEXT: vpblendvb %ymm8, %ymm5, %ymm4, %ymm213267; AVX2-FCP-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill13268; AVX2-FCP-NEXT: vmovdqa %ymm9, %ymm213269; AVX2-FCP-NEXT: vmovdqu %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill13270; AVX2-FCP-NEXT: vmovdqu %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill13271; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm4 = ymm10[0,1,2],ymm9[3],ymm10[4,5],ymm9[6],ymm10[7]13272; AVX2-FCP-NEXT: vextracti128 $1, %ymm4, %xmm513273; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm7 = xmm5[0],xmm4[1],xmm5[2,3,4,5],xmm4[6],xmm5[7]13274; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload13275; AVX2-FCP-NEXT: vmovdqu %ymm11, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill13276; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm5 = ymm9[0,1],ymm11[2],ymm9[3,4],ymm11[5],ymm9[6,7]13277; AVX2-FCP-NEXT: vpmovsxbd {{.*#+}} ymm4 = [2,5,1,0,4,0,0,0]13278; AVX2-FCP-NEXT: vpermd %ymm5, %ymm4, %ymm613279; AVX2-FCP-NEXT: vmovdqa {{.*#+}} ymm5 = [2,3,2,3,2,3,2,3,8,9,0,1,6,7,8,9,18,19,18,19,18,19,18,19,24,25,16,17,22,23,24,25]13280; AVX2-FCP-NEXT: vpshufb %ymm5, %ymm6, %ymm813281; AVX2-FCP-NEXT: vmovdqa {{.*#+}} xmm6 = [2,3,0,1,14,15,12,13,10,11,10,11,10,11,10,11]13282; AVX2-FCP-NEXT: vpshufb %xmm6, %xmm7, %xmm713283; AVX2-FCP-NEXT: vpblendvb %ymm0, %ymm7, %ymm8, %ymm713284; AVX2-FCP-NEXT: vmovdqu %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill13285; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload13286; AVX2-FCP-NEXT: vpblendd $72, {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm7 # 32-byte Folded Reload13287; AVX2-FCP-NEXT: # ymm7 = ymm7[0,1,2],mem[3],ymm7[4,5],mem[6],ymm7[7]13288; AVX2-FCP-NEXT: vextracti128 $1, %ymm7, %xmm813289; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm7 = xmm8[0],xmm7[1],xmm8[2,3,4,5],xmm7[6],xmm8[7]13290; AVX2-FCP-NEXT: vpshufb %xmm6, %xmm7, %xmm713291; AVX2-FCP-NEXT: vpblendd $219, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm8 # 32-byte Folded Reload13292; AVX2-FCP-NEXT: # ymm8 = mem[0,1],ymm14[2],mem[3,4],ymm14[5],mem[6,7]13293; AVX2-FCP-NEXT: vpermd %ymm8, %ymm4, %ymm813294; AVX2-FCP-NEXT: vpshufb %ymm5, %ymm8, %ymm813295; AVX2-FCP-NEXT: vpblendvb %ymm0, %ymm7, %ymm8, %ymm713296; AVX2-FCP-NEXT: vmovdqa %ymm0, %ymm1413297; AVX2-FCP-NEXT: vmovdqu %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill13298; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm7 = ymm15[0,1,2],ymm13[3],ymm15[4,5],ymm13[6],ymm15[7]13299; AVX2-FCP-NEXT: vextracti128 $1, %ymm7, %xmm813300; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm7 = xmm8[0],xmm7[1],xmm8[2,3,4,5],xmm7[6],xmm8[7]13301; AVX2-FCP-NEXT: vpshufb %xmm6, %xmm7, %xmm713302; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm8 = ymm12[0,1],ymm1[2],ymm12[3,4],ymm1[5],ymm12[6,7]13303; AVX2-FCP-NEXT: vpermd %ymm8, %ymm4, %ymm813304; AVX2-FCP-NEXT: vpshufb %ymm5, %ymm8, %ymm813305; AVX2-FCP-NEXT: vpblendvb %ymm0, %ymm7, %ymm8, %ymm713306; AVX2-FCP-NEXT: vmovdqu %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill13307; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload13308; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm12 # 32-byte Reload13309; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm7 = ymm0[0,1,2],ymm12[3],ymm0[4,5],ymm12[6],ymm0[7]13310; AVX2-FCP-NEXT: vextracti128 $1, %ymm7, %xmm813311; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm7 = xmm8[0],xmm7[1],xmm8[2,3,4,5],xmm7[6],xmm8[7]13312; AVX2-FCP-NEXT: vpshufb %xmm6, %xmm7, %xmm613313; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Reload13314; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm7 = ymm15[0,1],ymm3[2],ymm15[3,4],ymm3[5],ymm15[6,7]13315; AVX2-FCP-NEXT: vpermd %ymm7, %ymm4, %ymm413316; AVX2-FCP-NEXT: vpshufb %ymm5, %ymm4, %ymm413317; AVX2-FCP-NEXT: vpblendvb %ymm14, %ymm6, %ymm4, %ymm313318; AVX2-FCP-NEXT: vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill13319; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm4 = ymm2[0],ymm10[1],ymm2[2,3],ymm10[4],ymm2[5,6,7]13320; AVX2-FCP-NEXT: vextracti128 $1, %ymm4, %xmm513321; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm7 = xmm4[0],xmm5[1],xmm4[2,3,4,5],xmm5[6],xmm4[7]13322; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm5 = ymm9[0,1],ymm11[2,3],ymm9[4,5],ymm11[6,7]13323; AVX2-FCP-NEXT: vpmovsxbd {{.*#+}} ymm4 = [2,6,1,0,5,0,0,0]13324; AVX2-FCP-NEXT: vpermd %ymm5, %ymm4, %ymm613325; AVX2-FCP-NEXT: vmovdqa {{.*#+}} ymm5 = [0,1,2,3,4,5,2,3,8,9,2,3,4,5,10,11,16,17,18,19,20,21,18,19,24,25,18,19,20,21,26,27]13326; AVX2-FCP-NEXT: vpshufb %ymm5, %ymm6, %ymm813327; AVX2-FCP-NEXT: vmovdqa {{.*#+}} xmm6 = [4,5,2,3,0,1,14,15,12,13,12,13,12,13,12,13]13328; AVX2-FCP-NEXT: vpshufb %xmm6, %xmm7, %xmm713329; AVX2-FCP-NEXT: vpblendvb %ymm14, %ymm7, %ymm8, %ymm213330; AVX2-FCP-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill13331; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm13 # 32-byte Reload13332; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload13333; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm7 = ymm3[0],ymm13[1],ymm3[2,3],ymm13[4],ymm3[5,6,7]13334; AVX2-FCP-NEXT: vextracti128 $1, %ymm7, %xmm813335; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm7 = xmm7[0],xmm8[1],xmm7[2,3,4,5],xmm8[6],xmm7[7]13336; AVX2-FCP-NEXT: vpshufb %xmm6, %xmm7, %xmm713337; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload13338; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload13339; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm8 = ymm9[0,1],ymm10[2,3],ymm9[4,5],ymm10[6,7]13340; AVX2-FCP-NEXT: vpermd %ymm8, %ymm4, %ymm813341; AVX2-FCP-NEXT: vpshufb %ymm5, %ymm8, %ymm813342; AVX2-FCP-NEXT: vpblendvb %ymm14, %ymm7, %ymm8, %ymm113343; AVX2-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill13344; AVX2-FCP-NEXT: vmovdqa %ymm12, %ymm113345; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm7 = ymm12[0],ymm0[1],ymm12[2,3],ymm0[4],ymm12[5,6,7]13346; AVX2-FCP-NEXT: vextracti128 $1, %ymm7, %xmm813347; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm7 = xmm7[0],xmm8[1],xmm7[2,3,4,5],xmm8[6],xmm7[7]13348; AVX2-FCP-NEXT: vpshufb %xmm6, %xmm7, %xmm713349; AVX2-FCP-NEXT: vmovdqa %ymm15, %ymm1113350; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload13351; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm8 = ymm15[0,1],ymm0[2,3],ymm15[4,5],ymm0[6,7]13352; AVX2-FCP-NEXT: vpermd %ymm8, %ymm4, %ymm813353; AVX2-FCP-NEXT: vpshufb %ymm5, %ymm8, %ymm813354; AVX2-FCP-NEXT: vpblendvb %ymm14, %ymm7, %ymm8, %ymm713355; AVX2-FCP-NEXT: vmovdqu %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill13356; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm12 # 32-byte Reload13357; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload13358; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm7 = ymm2[0],ymm12[1],ymm2[2,3],ymm12[4],ymm2[5,6,7]13359; AVX2-FCP-NEXT: vextracti128 $1, %ymm7, %xmm813360; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm7 = xmm7[0],xmm8[1],xmm7[2,3,4,5],xmm8[6],xmm7[7]13361; AVX2-FCP-NEXT: vpshufb %xmm6, %xmm7, %xmm613362; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Reload13363; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Reload13364; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm7 = ymm14[0,1],ymm15[2,3],ymm14[4,5],ymm15[6,7]13365; AVX2-FCP-NEXT: vpermd %ymm7, %ymm4, %ymm413366; AVX2-FCP-NEXT: vpshufb %ymm5, %ymm4, %ymm413367; AVX2-FCP-NEXT: vpmovsxbw {{.*#+}} xmm8 = [65535,65535,65535,65535,65535,0,0,0]13368; AVX2-FCP-NEXT: vpblendvb %ymm8, %ymm6, %ymm4, %ymm413369; AVX2-FCP-NEXT: vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill13370; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload13371; AVX2-FCP-NEXT: vpblendd $34, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm4 # 32-byte Folded Reload13372; AVX2-FCP-NEXT: # ymm4 = ymm4[0],mem[1],ymm4[2,3,4],mem[5],ymm4[6,7]13373; AVX2-FCP-NEXT: vextracti128 $1, %ymm4, %xmm513374; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm6 = xmm5[0],xmm4[1],xmm5[2],xmm4[3],xmm5[4,5,6,7]13375; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload13376; AVX2-FCP-NEXT: vpblendd $72, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm4 # 32-byte Folded Reload13377; AVX2-FCP-NEXT: # ymm4 = ymm4[0,1,2],mem[3],ymm4[4,5],mem[6],ymm4[7]13378; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm5 = ymm4[1,3,2,3]13379; AVX2-FCP-NEXT: vmovdqa {{.*#+}} ymm4 = [6,7,6,7,6,7,6,7,8,9,4,5,10,11,0,1,22,23,22,23,22,23,22,23,24,25,20,21,26,27,16,17]13380; AVX2-FCP-NEXT: vpshufb %ymm4, %ymm5, %ymm713381; AVX2-FCP-NEXT: vmovdqa {{.*#+}} xmm5 = [6,7,4,5,2,3,0,1,14,15,14,15,14,15,14,15]13382; AVX2-FCP-NEXT: vpshufb %xmm5, %xmm6, %xmm613383; AVX2-FCP-NEXT: vpblendvb %ymm8, %ymm6, %ymm7, %ymm613384; AVX2-FCP-NEXT: vmovdqu %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill13385; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm6 = ymm3[0],ymm13[1],ymm3[2,3,4],ymm13[5],ymm3[6,7]13386; AVX2-FCP-NEXT: vextracti128 $1, %ymm6, %xmm713387; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm6 = xmm7[0],xmm6[1],xmm7[2],xmm6[3],xmm7[4,5,6,7]13388; AVX2-FCP-NEXT: vpshufb %xmm5, %xmm6, %xmm613389; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm7 = ymm9[0,1,2],ymm10[3],ymm9[4,5],ymm10[6],ymm9[7]13390; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm7 = ymm7[1,3,2,3]13391; AVX2-FCP-NEXT: vpshufb %ymm4, %ymm7, %ymm713392; AVX2-FCP-NEXT: vpblendvb %ymm8, %ymm6, %ymm7, %ymm313393; AVX2-FCP-NEXT: vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill13394; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm6 = ymm2[0],ymm12[1],ymm2[2,3,4],ymm12[5],ymm2[6,7]13395; AVX2-FCP-NEXT: vextracti128 $1, %ymm6, %xmm713396; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm6 = xmm7[0],xmm6[1],xmm7[2],xmm6[3],xmm7[4,5,6,7]13397; AVX2-FCP-NEXT: vpshufb %xmm5, %xmm6, %xmm613398; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm7 = ymm14[0,1,2],ymm15[3],ymm14[4,5],ymm15[6],ymm14[7]13399; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm7 = ymm7[1,3,2,3]13400; AVX2-FCP-NEXT: vpshufb %ymm4, %ymm7, %ymm713401; AVX2-FCP-NEXT: vpblendvb %ymm8, %ymm6, %ymm7, %ymm213402; AVX2-FCP-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill13403; AVX2-FCP-NEXT: vpblendd $34, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm6 # 32-byte Folded Reload13404; AVX2-FCP-NEXT: # ymm6 = ymm1[0],mem[1],ymm1[2,3,4],mem[5],ymm1[6,7]13405; AVX2-FCP-NEXT: vextracti128 $1, %ymm6, %xmm713406; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm6 = xmm7[0],xmm6[1],xmm7[2],xmm6[3],xmm7[4,5,6,7]13407; AVX2-FCP-NEXT: vpshufb %xmm5, %xmm6, %xmm513408; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm6 = ymm11[0,1,2],ymm0[3],ymm11[4,5],ymm0[6],ymm11[7]13409; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm6 = ymm6[1,3,2,3]13410; AVX2-FCP-NEXT: vpshufb %ymm4, %ymm6, %ymm413411; AVX2-FCP-NEXT: vpblendvb %ymm8, %ymm5, %ymm4, %ymm013412; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill13413; AVX2-FCP-NEXT: vmovdqa 128(%rdi), %ymm1013414; AVX2-FCP-NEXT: vmovdqa 160(%rdi), %ymm1113415; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm4 = ymm11[0,1,2],ymm10[3],ymm11[4,5],ymm10[6],ymm11[7]13416; AVX2-FCP-NEXT: vbroadcasti128 {{.*#+}} ymm5 = [3,6,2,5,3,6,2,5]13417; AVX2-FCP-NEXT: # ymm5 = mem[0,1,0,1]13418; AVX2-FCP-NEXT: vpermd %ymm4, %ymm5, %ymm413419; AVX2-FCP-NEXT: vmovdqa {{.*#+}} ymm3 = [0,1,2,3,0,1,6,7,8,9,14,15,12,13,14,15,16,17,18,19,16,17,22,23,24,25,30,31,28,29,30,31]13420; AVX2-FCP-NEXT: vpshufb %ymm3, %ymm4, %ymm613421; AVX2-FCP-NEXT: vmovdqa 192(%rdi), %ymm013422; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill13423; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm4 = ymm0[0,1,0,2]13424; AVX2-FCP-NEXT: vpbroadcastd {{.*#+}} ymm13 = [20,21,26,27,20,21,26,27,20,21,26,27,20,21,26,27,20,21,26,27,20,21,26,27,20,21,26,27,20,21,26,27]13425; AVX2-FCP-NEXT: vpshufb %ymm13, %ymm4, %ymm713426; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm6 = ymm6[0,1,2,3,4,5,6],ymm7[7]13427; AVX2-FCP-NEXT: vpblendd $31, {{[-0-9]+}}(%r{{[sb]}}p), %ymm6, %ymm0 # 32-byte Folded Reload13428; AVX2-FCP-NEXT: # ymm0 = mem[0,1,2,3,4],ymm6[5,6,7]13429; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill13430; AVX2-FCP-NEXT: vmovdqa 576(%rdi), %ymm1213431; AVX2-FCP-NEXT: vmovdqa 608(%rdi), %ymm713432; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm7[0,1,2],ymm12[3],ymm7[4,5],ymm12[6],ymm7[7]13433; AVX2-FCP-NEXT: vpermd %ymm0, %ymm5, %ymm013434; AVX2-FCP-NEXT: vpshufb %ymm3, %ymm0, %ymm813435; AVX2-FCP-NEXT: vmovdqa 640(%rdi), %ymm013436; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill13437; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm1 = ymm0[0,1,0,2]13438; AVX2-FCP-NEXT: vpshufb %ymm13, %ymm1, %ymm213439; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm8[0,1,2,3,4,5,6],ymm2[7]13440; AVX2-FCP-NEXT: vpblendd $31, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm0 # 32-byte Folded Reload13441; AVX2-FCP-NEXT: # ymm0 = mem[0,1,2,3,4],ymm2[5,6,7]13442; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill13443; AVX2-FCP-NEXT: vmovdqa 352(%rdi), %ymm1513444; AVX2-FCP-NEXT: vmovdqa 384(%rdi), %ymm613445; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm6[0,1,2],ymm15[3],ymm6[4,5],ymm15[6],ymm6[7]13446; AVX2-FCP-NEXT: vmovdqu %ymm15, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill13447; AVX2-FCP-NEXT: vpermd %ymm2, %ymm5, %ymm213448; AVX2-FCP-NEXT: vpshufb %ymm3, %ymm2, %ymm813449; AVX2-FCP-NEXT: vmovdqa 416(%rdi), %ymm013450; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill13451; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm2 = ymm0[0,1,0,2]13452; AVX2-FCP-NEXT: vpshufb %ymm13, %ymm2, %ymm913453; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3,4,5,6],ymm9[7]13454; AVX2-FCP-NEXT: vpblendd $31, (%rsp), %ymm8, %ymm0 # 32-byte Folded Reload13455; AVX2-FCP-NEXT: # ymm0 = mem[0,1,2,3,4],ymm8[5,6,7]13456; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill13457; AVX2-FCP-NEXT: vmovdqa 800(%rdi), %ymm913458; AVX2-FCP-NEXT: vmovdqa 832(%rdi), %ymm813459; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm14 = ymm8[0,1,2],ymm9[3],ymm8[4,5],ymm9[6],ymm8[7]13460; AVX2-FCP-NEXT: vpermd %ymm14, %ymm5, %ymm513461; AVX2-FCP-NEXT: vpshufb %ymm3, %ymm5, %ymm513462; AVX2-FCP-NEXT: vmovdqa 864(%rdi), %ymm013463; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill13464; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm3 = ymm0[0,1,0,2]13465; AVX2-FCP-NEXT: vpshufb %ymm13, %ymm3, %ymm1413466; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm5 = ymm5[0,1,2,3,4,5,6],ymm14[7]13467; AVX2-FCP-NEXT: vpblendd $31, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5, %ymm0 # 32-byte Folded Reload13468; AVX2-FCP-NEXT: # ymm0 = mem[0,1,2,3,4],ymm5[5,6,7]13469; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill13470; AVX2-FCP-NEXT: vmovdqa %ymm11, %ymm1313471; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm5 = ymm10[0,1],ymm11[2],ymm10[3,4,5],ymm11[6],ymm10[7]13472; AVX2-FCP-NEXT: vextracti128 $1, %ymm5, %xmm1413473; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm5 = xmm5[0,1,2,3],xmm14[4],xmm5[5],xmm14[6],xmm5[7]13474; AVX2-FCP-NEXT: vmovdqa {{.*#+}} xmm14 = [0,1,0,1,14,15,12,13,10,11,8,9,12,13,14,15]13475; AVX2-FCP-NEXT: vpshufb %xmm14, %xmm5, %xmm513476; AVX2-FCP-NEXT: vinserti128 $1, %xmm5, %ymm0, %ymm513477; AVX2-FCP-NEXT: vpbroadcastd {{.*#+}} ymm0 = [22,23,28,29,22,23,28,29,22,23,28,29,22,23,28,29,22,23,28,29,22,23,28,29,22,23,28,29,22,23,28,29]13478; AVX2-FCP-NEXT: vpshufb %ymm0, %ymm4, %ymm413479; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm4 = ymm5[0,1,2,3,4,5,6],ymm4[7]13480; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload13481; AVX2-FCP-NEXT: vpblendw {{.*#+}} ymm4 = ymm5[0],ymm4[1,2,3,4,5,6,7],ymm5[8],ymm4[9,10,11,12,13,14,15]13482; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm4 = ymm5[0,1,2,3],ymm4[4,5,6,7]13483; AVX2-FCP-NEXT: vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill13484; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm4 = ymm12[0,1],ymm7[2],ymm12[3,4,5],ymm7[6],ymm12[7]13485; AVX2-FCP-NEXT: vextracti128 $1, %ymm4, %xmm513486; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm4 = xmm4[0,1,2,3],xmm5[4],xmm4[5],xmm5[6],xmm4[7]13487; AVX2-FCP-NEXT: vpshufb %xmm14, %xmm4, %xmm413488; AVX2-FCP-NEXT: vinserti128 $1, %xmm4, %ymm0, %ymm413489; AVX2-FCP-NEXT: vpshufb %ymm0, %ymm1, %ymm113490; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm4[0,1,2,3,4,5,6],ymm1[7]13491; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload13492; AVX2-FCP-NEXT: vpblendw {{.*#+}} ymm1 = ymm4[0],ymm1[1,2,3,4,5,6,7],ymm4[8],ymm1[9,10,11,12,13,14,15]13493; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm4[0,1,2,3],ymm1[4,5,6,7]13494; AVX2-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill13495; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm15[0,1],ymm6[2],ymm15[3,4,5],ymm6[6],ymm15[7]13496; AVX2-FCP-NEXT: vextracti128 $1, %ymm1, %xmm413497; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1,2,3],xmm4[4],xmm1[5],xmm4[6],xmm1[7]13498; AVX2-FCP-NEXT: vpshufb %xmm14, %xmm1, %xmm113499; AVX2-FCP-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm113500; AVX2-FCP-NEXT: vpshufb %ymm0, %ymm2, %ymm213501; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,6],ymm2[7]13502; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload13503; AVX2-FCP-NEXT: vpblendw {{.*#+}} ymm1 = ymm2[0],ymm1[1,2,3,4,5,6,7],ymm2[8],ymm1[9,10,11,12,13,14,15]13504; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]13505; AVX2-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill13506; AVX2-FCP-NEXT: vmovdqa %ymm9, %ymm1513507; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm9[0,1],ymm8[2],ymm9[3,4,5],ymm8[6],ymm9[7]13508; AVX2-FCP-NEXT: vextracti128 $1, %ymm1, %xmm213509; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1,2,3],xmm2[4],xmm1[5],xmm2[6],xmm1[7]13510; AVX2-FCP-NEXT: vpshufb %xmm14, %xmm1, %xmm113511; AVX2-FCP-NEXT: vpshufb %ymm0, %ymm3, %ymm013512; AVX2-FCP-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm113513; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5,6],ymm0[7]13514; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload13515; AVX2-FCP-NEXT: vpblendw {{.*#+}} ymm0 = ymm1[0],ymm0[1,2,3,4,5,6,7],ymm1[8],ymm0[9,10,11,12,13,14,15]13516; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]13517; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill13518; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm10[0,1,2],ymm11[3],ymm10[4,5],ymm11[6],ymm10[7]13519; AVX2-FCP-NEXT: vmovdqa %ymm10, %ymm1413520; AVX2-FCP-NEXT: vmovdqu %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill13521; AVX2-FCP-NEXT: vmovdqu %ymm11, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill13522; AVX2-FCP-NEXT: vextracti128 $1, %ymm0, %xmm113523; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm0 = xmm1[0],xmm0[1],xmm1[2,3,4,5],xmm0[6],xmm1[7]13524; AVX2-FCP-NEXT: vmovdqa {{.*#+}} xmm1 = [0,1,2,3,0,1,14,15,12,13,10,11,12,13,14,15]13525; AVX2-FCP-NEXT: vpshufb %xmm1, %xmm0, %xmm013526; AVX2-FCP-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm013527; AVX2-FCP-NEXT: vpbroadcastq {{.*#+}} ymm2 = [2,5,2,5,2,5,2,5]13528; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload13529; AVX2-FCP-NEXT: vpermd %ymm4, %ymm2, %ymm313530; AVX2-FCP-NEXT: vpshufhw {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5,4,7,8,9,10,11,12,13,12,15]13531; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5,6],ymm3[7]13532; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload13533; AVX2-FCP-NEXT: vpblendw {{.*#+}} ymm0 = ymm3[0],ymm0[1,2,3,4,5,6,7],ymm3[8],ymm0[9,10,11,12,13,14,15]13534; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm3[0,1,2,3],ymm0[4,5,6,7]13535; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill13536; AVX2-FCP-NEXT: vmovdqa %ymm7, %ymm513537; AVX2-FCP-NEXT: vmovdqa %ymm12, %ymm1013538; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm12[0,1,2],ymm7[3],ymm12[4,5],ymm7[6],ymm12[7]13539; AVX2-FCP-NEXT: vextracti128 $1, %ymm0, %xmm313540; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm0 = xmm3[0],xmm0[1],xmm3[2,3,4,5],xmm0[6],xmm3[7]13541; AVX2-FCP-NEXT: vpshufb %xmm1, %xmm0, %xmm013542; AVX2-FCP-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm013543; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Reload13544; AVX2-FCP-NEXT: vpermd %ymm11, %ymm2, %ymm313545; AVX2-FCP-NEXT: vpshufhw {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5,4,7,8,9,10,11,12,13,12,15]13546; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5,6],ymm3[7]13547; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload13548; AVX2-FCP-NEXT: vpblendw {{.*#+}} ymm0 = ymm3[0],ymm0[1,2,3,4,5,6,7],ymm3[8],ymm0[9,10,11,12,13,14,15]13549; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm3[0,1,2,3],ymm0[4,5,6,7]13550; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill13551; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm9[0,1,2],ymm8[3],ymm9[4,5],ymm8[6],ymm9[7]13552; AVX2-FCP-NEXT: vmovdqu %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill13553; AVX2-FCP-NEXT: vmovdqu %ymm8, (%rsp) # 32-byte Spill13554; AVX2-FCP-NEXT: vextracti128 $1, %ymm0, %xmm313555; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm0 = xmm3[0],xmm0[1],xmm3[2,3,4,5],xmm0[6],xmm3[7]13556; AVX2-FCP-NEXT: vpshufb %xmm1, %xmm0, %xmm013557; AVX2-FCP-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm013558; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload13559; AVX2-FCP-NEXT: vpermd %ymm9, %ymm2, %ymm313560; AVX2-FCP-NEXT: vpshufhw {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5,4,7,8,9,10,11,12,13,12,15]13561; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5,6],ymm3[7]13562; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload13563; AVX2-FCP-NEXT: vpblendw {{.*#+}} ymm0 = ymm3[0],ymm0[1,2,3,4,5,6,7],ymm3[8],ymm0[9,10,11,12,13,14,15]13564; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm3[0,1,2,3],ymm0[4,5,6,7]13565; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill13566; AVX2-FCP-NEXT: vmovdqu %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill13567; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload13568; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm7[0,1,2],ymm6[3],ymm7[4,5],ymm6[6],ymm7[7]13569; AVX2-FCP-NEXT: vextracti128 $1, %ymm0, %xmm313570; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm0 = xmm3[0],xmm0[1],xmm3[2,3,4,5],xmm0[6],xmm3[7]13571; AVX2-FCP-NEXT: vpshufb %xmm1, %xmm0, %xmm013572; AVX2-FCP-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm013573; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm12 # 32-byte Reload13574; AVX2-FCP-NEXT: vpermd %ymm12, %ymm2, %ymm113575; AVX2-FCP-NEXT: vpshufhw {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,4,7,8,9,10,11,12,13,12,15]13576; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5,6],ymm1[7]13577; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload13578; AVX2-FCP-NEXT: vpblendw {{.*#+}} ymm0 = ymm1[0],ymm0[1,2,3,4,5,6,7],ymm1[8],ymm0[9,10,11,12,13,14,15]13579; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]13580; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill13581; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm13[0],ymm14[1],ymm13[2,3],ymm14[4],ymm13[5,6,7]13582; AVX2-FCP-NEXT: vextracti128 $1, %ymm0, %xmm113583; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0],xmm1[1],xmm0[2,3,4,5],xmm1[6],xmm0[7]13584; AVX2-FCP-NEXT: vmovdqa {{.*#+}} xmm3 = [0,1,4,5,2,3,0,1,14,15,12,13,12,13,14,15]13585; AVX2-FCP-NEXT: vpshufb %xmm3, %xmm0, %xmm013586; AVX2-FCP-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm113587; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm0 = ymm4[0,1,1,3]13588; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill13589; AVX2-FCP-NEXT: vpbroadcastd {{.*#+}} ymm4 = [18,19,24,25,18,19,24,25,18,19,24,25,18,19,24,25,18,19,24,25,18,19,24,25,18,19,24,25,18,19,24,25]13590; AVX2-FCP-NEXT: vpshufb %ymm4, %ymm0, %ymm213591; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,6],ymm2[7]13592; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload13593; AVX2-FCP-NEXT: vpblendw {{.*#+}} ymm1 = ymm2[0],ymm1[1,2,3,4,5,6,7],ymm2[8],ymm1[9,10,11,12,13,14,15]13594; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]13595; AVX2-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill13596; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm5[0],ymm10[1],ymm5[2,3],ymm10[4],ymm5[5,6,7]13597; AVX2-FCP-NEXT: vmovdqa %ymm10, %ymm1413598; AVX2-FCP-NEXT: vmovdqu %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill13599; AVX2-FCP-NEXT: vmovdqa %ymm5, %ymm013600; AVX2-FCP-NEXT: vmovdqu %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill13601; AVX2-FCP-NEXT: vextracti128 $1, %ymm1, %xmm213602; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0],xmm2[1],xmm1[2,3,4,5],xmm2[6],xmm1[7]13603; AVX2-FCP-NEXT: vpshufb %xmm3, %xmm1, %xmm113604; AVX2-FCP-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm113605; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm2 = ymm11[0,1,1,3]13606; AVX2-FCP-NEXT: vpshufb %ymm4, %ymm2, %ymm513607; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,6],ymm5[7]13608; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload13609; AVX2-FCP-NEXT: vpblendw {{.*#+}} ymm1 = ymm5[0],ymm1[1,2,3,4,5,6,7],ymm5[8],ymm1[9,10,11,12,13,14,15]13610; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm5[0,1,2,3],ymm1[4,5,6,7]13611; AVX2-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill13612; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm6[0],ymm7[1],ymm6[2,3],ymm7[4],ymm6[5,6,7]13613; AVX2-FCP-NEXT: vextracti128 $1, %ymm1, %xmm513614; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0],xmm5[1],xmm1[2,3,4,5],xmm5[6],xmm1[7]13615; AVX2-FCP-NEXT: vpshufb %xmm3, %xmm1, %xmm113616; AVX2-FCP-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm113617; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm5 = ymm12[0,1,1,3]13618; AVX2-FCP-NEXT: vmovdqu %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill13619; AVX2-FCP-NEXT: vpshufb %ymm4, %ymm5, %ymm513620; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,6],ymm5[7]13621; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload13622; AVX2-FCP-NEXT: vpblendw {{.*#+}} ymm1 = ymm5[0],ymm1[1,2,3,4,5,6,7],ymm5[8],ymm1[9,10,11,12,13,14,15]13623; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm5[0,1,2,3],ymm1[4,5,6,7]13624; AVX2-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill13625; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm8[0],ymm15[1],ymm8[2,3],ymm15[4],ymm8[5,6,7]13626; AVX2-FCP-NEXT: vextracti128 $1, %ymm1, %xmm513627; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0],xmm5[1],xmm1[2,3,4,5],xmm5[6],xmm1[7]13628; AVX2-FCP-NEXT: vpshufb %xmm3, %xmm1, %xmm113629; AVX2-FCP-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm113630; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm3 = ymm9[0,1,1,3]13631; AVX2-FCP-NEXT: vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill13632; AVX2-FCP-NEXT: vpshufb %ymm4, %ymm3, %ymm313633; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,6],ymm3[7]13634; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload13635; AVX2-FCP-NEXT: vpblendw {{.*#+}} ymm1 = ymm3[0],ymm1[1,2,3,4,5,6,7],ymm3[8],ymm1[9,10,11,12,13,14,15]13636; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm3[0,1,2,3],ymm1[4,5,6,7]13637; AVX2-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill13638; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload13639; AVX2-FCP-NEXT: vpblendd $219, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload13640; AVX2-FCP-NEXT: # ymm1 = mem[0,1],ymm1[2],mem[3,4],ymm1[5],mem[6,7]13641; AVX2-FCP-NEXT: vmovd {{.*#+}} xmm10 = [8,9,4,5,0,0,0,0,0,0,0,0,0,0,0,0]13642; AVX2-FCP-NEXT: vpshufb %xmm10, %xmm1, %xmm313643; AVX2-FCP-NEXT: vextracti128 $1, %ymm1, %xmm113644; AVX2-FCP-NEXT: vpshuflw {{.*#+}} xmm1 = xmm1[3,1,2,3,4,5,6,7]13645; AVX2-FCP-NEXT: vpunpcklwd {{.*#+}} xmm3 = xmm3[0],xmm1[0],xmm3[1],xmm1[1],xmm3[2],xmm1[2],xmm3[3],xmm1[3]13646; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm0[0],ymm14[1],ymm0[2,3,4],ymm14[5],ymm0[6,7]13647; AVX2-FCP-NEXT: vextracti128 $1, %ymm1, %xmm413648; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm4 = xmm4[0],xmm1[1],xmm4[2],xmm1[3],xmm4[4,5,6,7]13649; AVX2-FCP-NEXT: vmovdqa {{.*#+}} xmm1 = [0,1,6,7,4,5,2,3,0,1,14,15,12,13,14,15]13650; AVX2-FCP-NEXT: vpshufb %xmm1, %xmm4, %xmm413651; AVX2-FCP-NEXT: vinserti128 $1, %xmm4, %ymm0, %ymm413652; AVX2-FCP-NEXT: vpbroadcastd {{.*#+}} ymm11 = [20,21,26,27,20,21,26,27,20,21,26,27,20,21,26,27,20,21,26,27,20,21,26,27,20,21,26,27,20,21,26,27]13653; AVX2-FCP-NEXT: vpshufb %ymm11, %ymm2, %ymm213654; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3,4,5,6],ymm2[7]13655; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload13656; AVX2-FCP-NEXT: vpblendd $68, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm5 # 32-byte Folded Reload13657; AVX2-FCP-NEXT: # ymm5 = ymm0[0,1],mem[2],ymm0[3,4,5],mem[6],ymm0[7]13658; AVX2-FCP-NEXT: vpmovsxbd {{.*#+}} ymm12 = [0,3,7,2,6,0,0,0]13659; AVX2-FCP-NEXT: vpermd %ymm5, %ymm12, %ymm513660; AVX2-FCP-NEXT: vmovdqa {{.*#+}} ymm2 = [u,u,u,u,u,u,u,u,0,1,6,7,8,9,14,15,16,17,22,23,20,21,22,23,16,17,22,23,24,25,30,31]13661; AVX2-FCP-NEXT: vpshufb %ymm2, %ymm5, %ymm513662; AVX2-FCP-NEXT: vpblendd {{.*#+}} xmm3 = xmm3[0,1],xmm5[2,3]13663; AVX2-FCP-NEXT: vpblendw {{.*#+}} ymm4 = ymm5[0],ymm4[1,2,3,4,5,6,7],ymm5[8],ymm4[9,10,11,12,13,14,15]13664; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm4[4,5,6,7]13665; AVX2-FCP-NEXT: vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill13666; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload13667; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm13 # 32-byte Reload13668; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm3 = ymm13[0,1],ymm7[2],ymm13[3,4],ymm7[5],ymm13[6,7]13669; AVX2-FCP-NEXT: vpshufb %xmm10, %xmm3, %xmm413670; AVX2-FCP-NEXT: vextracti128 $1, %ymm3, %xmm313671; AVX2-FCP-NEXT: vpshuflw {{.*#+}} xmm3 = xmm3[3,1,2,3,4,5,6,7]13672; AVX2-FCP-NEXT: vpunpcklwd {{.*#+}} xmm3 = xmm4[0],xmm3[0],xmm4[1],xmm3[1],xmm4[2],xmm3[2],xmm4[3],xmm3[3]13673; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Reload13674; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Reload13675; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm4 = ymm14[0],ymm15[1],ymm14[2,3,4],ymm15[5],ymm14[6,7]13676; AVX2-FCP-NEXT: vextracti128 $1, %ymm4, %xmm513677; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm4 = xmm5[0],xmm4[1],xmm5[2],xmm4[3],xmm5[4,5,6,7]13678; AVX2-FCP-NEXT: vpshufb %xmm1, %xmm4, %xmm413679; AVX2-FCP-NEXT: vmovdqa %xmm1, %xmm1013680; AVX2-FCP-NEXT: vinserti128 $1, %xmm4, %ymm0, %ymm413681; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload13682; AVX2-FCP-NEXT: vpshufb %ymm11, %ymm0, %ymm013683; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm4[0,1,2,3,4,5,6],ymm0[7]13684; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload13685; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload13686; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm4 = ymm6[0,1],ymm5[2],ymm6[3,4,5],ymm5[6],ymm6[7]13687; AVX2-FCP-NEXT: vpermd %ymm4, %ymm12, %ymm413688; AVX2-FCP-NEXT: vpshufb %ymm2, %ymm4, %ymm413689; AVX2-FCP-NEXT: vpblendd {{.*#+}} xmm3 = xmm3[0,1],xmm4[2,3]13690; AVX2-FCP-NEXT: vpblendw {{.*#+}} ymm0 = ymm4[0],ymm0[1,2,3,4,5,6,7],ymm4[8],ymm0[9,10,11,12,13,14,15]13691; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm3[0,1,2,3],ymm0[4,5,6,7]13692; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill13693; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload13694; AVX2-FCP-NEXT: vpblendd $219, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload13695; AVX2-FCP-NEXT: # ymm0 = mem[0,1],ymm0[2],mem[3,4],ymm0[5],mem[6,7]13696; AVX2-FCP-NEXT: vmovd {{.*#+}} xmm1 = [8,9,4,5,0,0,0,0,0,0,0,0,0,0,0,0]13697; AVX2-FCP-NEXT: vpshufb %xmm1, %xmm0, %xmm313698; AVX2-FCP-NEXT: vextracti128 $1, %ymm0, %xmm013699; AVX2-FCP-NEXT: vpshuflw {{.*#+}} xmm0 = xmm0[3,1,2,3,4,5,6,7]13700; AVX2-FCP-NEXT: vpunpcklwd {{.*#+}} xmm0 = xmm3[0],xmm0[0],xmm3[1],xmm0[1],xmm3[2],xmm0[2],xmm3[3],xmm0[3]13701; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload13702; AVX2-FCP-NEXT: vpblendd $34, {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm3 # 32-byte Folded Reload13703; AVX2-FCP-NEXT: # ymm3 = ymm8[0],mem[1],ymm8[2,3,4],mem[5],ymm8[6,7]13704; AVX2-FCP-NEXT: vextracti128 $1, %ymm3, %xmm413705; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm3 = xmm4[0],xmm3[1],xmm4[2],xmm3[3],xmm4[4,5,6,7]13706; AVX2-FCP-NEXT: vpshufb %xmm10, %xmm3, %xmm313707; AVX2-FCP-NEXT: vinserti128 $1, %xmm3, %ymm0, %ymm313708; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload13709; AVX2-FCP-NEXT: vpshufb %ymm11, %ymm4, %ymm413710; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5,6],ymm4[7]13711; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload13712; AVX2-FCP-NEXT: vpblendd $68, {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm4 # 32-byte Folded Reload13713; AVX2-FCP-NEXT: # ymm4 = ymm9[0,1],mem[2],ymm9[3,4,5],mem[6],ymm9[7]13714; AVX2-FCP-NEXT: vpermd %ymm4, %ymm12, %ymm413715; AVX2-FCP-NEXT: vpshufb %ymm2, %ymm4, %ymm413716; AVX2-FCP-NEXT: vmovdqa %ymm2, %ymm1013717; AVX2-FCP-NEXT: vpblendd {{.*#+}} xmm0 = xmm0[0,1],xmm4[2,3]13718; AVX2-FCP-NEXT: vpblendw {{.*#+}} ymm3 = ymm4[0],ymm3[1,2,3,4,5,6,7],ymm4[8],ymm3[9,10,11,12,13,14,15]13719; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm3[4,5,6,7]13720; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill13721; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload13722; AVX2-FCP-NEXT: vpblendd $219, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload13723; AVX2-FCP-NEXT: # ymm0 = mem[0,1],ymm0[2],mem[3,4],ymm0[5],mem[6,7]13724; AVX2-FCP-NEXT: vpshufb %xmm1, %xmm0, %xmm313725; AVX2-FCP-NEXT: vextracti128 $1, %ymm0, %xmm013726; AVX2-FCP-NEXT: vpshuflw {{.*#+}} xmm0 = xmm0[3,1,2,3,4,5,6,7]13727; AVX2-FCP-NEXT: vpunpcklwd {{.*#+}} xmm0 = xmm3[0],xmm0[0],xmm3[1],xmm0[1],xmm3[2],xmm0[2],xmm3[3],xmm0[3]13728; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload13729; AVX2-FCP-NEXT: vpblendd $187, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm3 # 32-byte Folded Reload13730; AVX2-FCP-NEXT: # ymm3 = mem[0,1],ymm3[2],mem[3,4,5],ymm3[6],mem[7]13731; AVX2-FCP-NEXT: vpermd %ymm3, %ymm12, %ymm213732; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload13733; AVX2-FCP-NEXT: vpblendd $221, (%rsp), %ymm3, %ymm3 # 32-byte Folded Reload13734; AVX2-FCP-NEXT: # ymm3 = mem[0],ymm3[1],mem[2,3,4],ymm3[5],mem[6,7]13735; AVX2-FCP-NEXT: vextracti128 $1, %ymm3, %xmm413736; AVX2-FCP-NEXT: vpblendw {{.*#+}} xmm3 = xmm4[0],xmm3[1],xmm4[2],xmm3[3],xmm4[4,5,6,7]13737; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm1 = xmm3[0,1,6,7,4,5,2,3,0,1,14,15,12,13,14,15]13738; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload13739; AVX2-FCP-NEXT: vpshufb %ymm11, %ymm3, %ymm313740; AVX2-FCP-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm113741; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,6],ymm3[7]13742; AVX2-FCP-NEXT: vpshufb %ymm10, %ymm2, %ymm213743; AVX2-FCP-NEXT: vpblendd {{.*#+}} xmm0 = xmm0[0,1],xmm2[2,3]13744; AVX2-FCP-NEXT: vpblendw {{.*#+}} ymm1 = ymm2[0],ymm1[1,2,3,4,5,6,7],ymm2[8],ymm1[9,10,11,12,13,14,15]13745; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]13746; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill13747; AVX2-FCP-NEXT: vpmovsxbd {{.*#+}} ymm11 = [0,3,3,3,0,3,7,7]13748; AVX2-FCP-NEXT: vpermd {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm0 # 32-byte Folded Reload13749; AVX2-FCP-NEXT: vpshufb {{.*#+}} ymm1 = ymm0[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,16,17,22,23,24,25]13750; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm14[0,1],ymm15[2],ymm14[3,4],ymm15[5],ymm14[6,7]13751; AVX2-FCP-NEXT: vbroadcasti128 {{.*#+}} ymm3 = [2,5,1,4,2,5,1,4]13752; AVX2-FCP-NEXT: # ymm3 = mem[0,1,0,1]13753; AVX2-FCP-NEXT: vpermd %ymm2, %ymm3, %ymm213754; AVX2-FCP-NEXT: vpshufb {{.*#+}} ymm2 = ymm2[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,16,17,22,23,24,25,30,31,u,u,u,u,u,u]13755; AVX2-FCP-NEXT: vpblendw {{.*#+}} ymm12 = ymm2[0,1,2,3,4],ymm1[5,6,7],ymm2[8,9,10,11,12],ymm1[13,14,15]13756; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm13[0,1],ymm7[2,3],ymm13[4,5],ymm7[6,7]13757; AVX2-FCP-NEXT: vextracti128 $1, %ymm1, %xmm213758; AVX2-FCP-NEXT: vmovd {{.*#+}} xmm4 = [8,9,4,5,0,0,0,0,0,0,0,0,0,0,0,0]13759; AVX2-FCP-NEXT: vpshufb %xmm4, %xmm2, %xmm213760; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm1 = xmm1[10,11,6,7,u,u,u,u,u,u,u,u,u,u,u,u]13761; AVX2-FCP-NEXT: vpunpcklwd {{.*#+}} xmm13 = xmm1[0],xmm2[0],xmm1[1],xmm2[1],xmm1[2],xmm2[2],xmm1[3],xmm2[3]13762; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm6[0,1,2],ymm5[3],ymm6[4,5],ymm5[6],ymm6[7]13763; AVX2-FCP-NEXT: vpmovsxbd {{.*#+}} ymm5 = [0,4,7,3,6,0,0,0]13764; AVX2-FCP-NEXT: vpermd %ymm1, %ymm5, %ymm013765; AVX2-FCP-NEXT: vpshufb {{.*#+}} ymm0 = ymm0[u,u,u,u,u,u,u,u,2,3,4,5,10,11,12,13,18,19,18,19,18,19,18,19,18,19,20,21,26,27,28,29]13766; AVX2-FCP-NEXT: vpblendw {{.*#+}} ymm12 = ymm0[0],ymm12[1,2,3,4,5,6,7],ymm0[8],ymm12[9,10,11,12,13,14,15]13767; AVX2-FCP-NEXT: vpblendd {{.*#+}} xmm0 = xmm13[0,1],xmm0[2,3]13768; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm12[4,5,6,7]13769; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill13770; AVX2-FCP-NEXT: vpermd {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm0 # 32-byte Folded Reload13771; AVX2-FCP-NEXT: vpbroadcastq {{.*#+}} ymm15 = [0,0,16,17,22,23,24,25,0,0,16,17,22,23,24,25,0,0,16,17,22,23,24,25,0,0,16,17,22,23,24,25]13772; AVX2-FCP-NEXT: vpshufb %ymm15, %ymm0, %ymm013773; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Reload13774; AVX2-FCP-NEXT: vpblendd $219, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm12 # 32-byte Folded Reload13775; AVX2-FCP-NEXT: # ymm12 = mem[0,1],ymm14[2],mem[3,4],ymm14[5],mem[6,7]13776; AVX2-FCP-NEXT: vpermd %ymm12, %ymm3, %ymm1213777; AVX2-FCP-NEXT: vpbroadcastq {{.*#+}} ymm1 = [30,31,16,17,22,23,24,25,30,31,16,17,22,23,24,25,30,31,16,17,22,23,24,25,30,31,16,17,22,23,24,25]13778; AVX2-FCP-NEXT: vpshufb %ymm1, %ymm12, %ymm1213779; AVX2-FCP-NEXT: vpblendw {{.*#+}} ymm0 = ymm12[0,1,2,3,4],ymm0[5,6,7],ymm12[8,9,10,11,12],ymm0[13,14,15]13780; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload13781; AVX2-FCP-NEXT: vpblendd $204, {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm12 # 32-byte Folded Reload13782; AVX2-FCP-NEXT: # ymm12 = ymm7[0,1],mem[2,3],ymm7[4,5],mem[6,7]13783; AVX2-FCP-NEXT: vextracti128 $1, %ymm12, %xmm1313784; AVX2-FCP-NEXT: vpshufb %xmm4, %xmm13, %xmm1313785; AVX2-FCP-NEXT: vmovdqa %xmm4, %xmm613786; AVX2-FCP-NEXT: vmovd {{.*#+}} xmm2 = [10,11,6,7,0,0,0,0,0,0,0,0,0,0,0,0]13787; AVX2-FCP-NEXT: vpshufb %xmm2, %xmm12, %xmm1213788; AVX2-FCP-NEXT: vpunpcklwd {{.*#+}} xmm12 = xmm12[0],xmm13[0],xmm12[1],xmm13[1],xmm12[2],xmm13[2],xmm12[3],xmm13[3]13789; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload13790; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload13791; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm13 = ymm7[0,1,2],ymm10[3],ymm7[4,5],ymm10[6],ymm7[7]13792; AVX2-FCP-NEXT: vmovdqa %ymm5, %ymm413793; AVX2-FCP-NEXT: vpermd %ymm13, %ymm5, %ymm1313794; AVX2-FCP-NEXT: vmovdqa {{.*#+}} ymm5 = [u,u,u,u,u,u,u,u,2,3,4,5,10,11,12,13,18,19,18,19,18,19,18,19,18,19,20,21,26,27,28,29]13795; AVX2-FCP-NEXT: vpshufb %ymm5, %ymm13, %ymm1313796; AVX2-FCP-NEXT: vpblendw {{.*#+}} ymm0 = ymm13[0],ymm0[1,2,3,4,5,6,7],ymm13[8],ymm0[9,10,11,12,13,14,15]13797; AVX2-FCP-NEXT: vpblendd {{.*#+}} xmm12 = xmm12[0,1],xmm13[2,3]13798; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm12[0,1,2,3],ymm0[4,5,6,7]13799; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill13800; AVX2-FCP-NEXT: vpermd {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm0 # 32-byte Folded Reload13801; AVX2-FCP-NEXT: vpshufb %ymm15, %ymm0, %ymm013802; AVX2-FCP-NEXT: vpblendd $36, {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm12 # 32-byte Folded Reload13803; AVX2-FCP-NEXT: # ymm12 = ymm8[0,1],mem[2],ymm8[3,4],mem[5],ymm8[6,7]13804; AVX2-FCP-NEXT: vpermd %ymm12, %ymm3, %ymm1213805; AVX2-FCP-NEXT: vpshufb %ymm1, %ymm12, %ymm1213806; AVX2-FCP-NEXT: vpblendw {{.*#+}} ymm0 = ymm12[0,1,2,3,4],ymm0[5,6,7],ymm12[8,9,10,11,12],ymm0[13,14,15]13807; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload13808; AVX2-FCP-NEXT: vpblendd $51, {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm12 # 32-byte Folded Reload13809; AVX2-FCP-NEXT: # ymm12 = mem[0,1],ymm8[2,3],mem[4,5],ymm8[6,7]13810; AVX2-FCP-NEXT: vextracti128 $1, %ymm12, %xmm1313811; AVX2-FCP-NEXT: vpshufb %xmm6, %xmm13, %xmm1313812; AVX2-FCP-NEXT: vpshufb %xmm2, %xmm12, %xmm1213813; AVX2-FCP-NEXT: vpunpcklwd {{.*#+}} xmm12 = xmm12[0],xmm13[0],xmm12[1],xmm13[1],xmm12[2],xmm13[2],xmm12[3],xmm13[3]13814; AVX2-FCP-NEXT: vpblendd $72, {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm13 # 32-byte Folded Reload13815; AVX2-FCP-NEXT: # ymm13 = ymm9[0,1,2],mem[3],ymm9[4,5],mem[6],ymm9[7]13816; AVX2-FCP-NEXT: vpermd %ymm13, %ymm4, %ymm1313817; AVX2-FCP-NEXT: vmovdqa %ymm4, %ymm213818; AVX2-FCP-NEXT: vpshufb %ymm5, %ymm13, %ymm1313819; AVX2-FCP-NEXT: vpblendw {{.*#+}} ymm0 = ymm13[0],ymm0[1,2,3,4,5,6,7],ymm13[8],ymm0[9,10,11,12,13,14,15]13820; AVX2-FCP-NEXT: vpblendd {{.*#+}} xmm12 = xmm12[0,1],xmm13[2,3]13821; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm12[0,1,2,3],ymm0[4,5,6,7]13822; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill13823; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Reload13824; AVX2-FCP-NEXT: vpermd %ymm15, %ymm11, %ymm013825; AVX2-FCP-NEXT: vpshufb {{.*#+}} ymm0 = ymm0[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,16,17,22,23,24,25]13826; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload13827; AVX2-FCP-NEXT: vmovdqu (%rsp), %ymm4 # 32-byte Reload13828; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm6 = ymm4[0,1],ymm9[2],ymm4[3,4],ymm9[5],ymm4[6,7]13829; AVX2-FCP-NEXT: vpermd %ymm6, %ymm3, %ymm313830; AVX2-FCP-NEXT: vpshufb %ymm1, %ymm3, %ymm313831; AVX2-FCP-NEXT: vpblendw {{.*#+}} ymm0 = ymm3[0,1,2,3,4],ymm0[5,6,7],ymm3[8,9,10,11,12],ymm0[13,14,15]13832; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm12 # 32-byte Reload13833; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload13834; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm3 = ymm12[0,1,2],ymm8[3],ymm12[4,5],ymm8[6],ymm12[7]13835; AVX2-FCP-NEXT: vpermd %ymm3, %ymm2, %ymm213836; AVX2-FCP-NEXT: vpshufb %ymm5, %ymm2, %ymm113837; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm13 # 32-byte Reload13838; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Reload13839; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm11[0,1],ymm13[2,3],ymm11[4,5],ymm13[6,7]13840; AVX2-FCP-NEXT: vextracti128 $1, %ymm2, %xmm313841; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm3 = xmm3[8,9,4,5,u,u,u,u,u,u,u,u,u,u,u,u]13842; AVX2-FCP-NEXT: vpshufb {{.*#+}} xmm2 = xmm2[10,11,6,7,u,u,u,u,u,u,u,u,u,u,u,u]13843; AVX2-FCP-NEXT: vpunpcklwd {{.*#+}} xmm2 = xmm2[0],xmm3[0],xmm2[1],xmm3[1],xmm2[2],xmm3[2],xmm2[3],xmm3[3]13844; AVX2-FCP-NEXT: vpblendw {{.*#+}} ymm0 = ymm1[0],ymm0[1,2,3,4,5,6,7],ymm1[8],ymm0[9,10,11,12,13,14,15]13845; AVX2-FCP-NEXT: vpblendd {{.*#+}} xmm1 = xmm2[0,1],xmm1[2,3]13846; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]13847; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill13848; AVX2-FCP-NEXT: vpblendd $51, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm0 # 32-byte Folded Reload13849; AVX2-FCP-NEXT: # ymm0 = mem[0,1],ymm14[2,3],mem[4,5],ymm14[6,7]13850; AVX2-FCP-NEXT: vbroadcasti128 {{.*#+}} ymm1 = [0,4,7,0,0,4,7,0]13851; AVX2-FCP-NEXT: # ymm1 = mem[0,1,0,1]13852; AVX2-FCP-NEXT: vpermd {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm3 # 32-byte Folded Reload13853; AVX2-FCP-NEXT: vpbroadcastq {{.*#+}} ymm2 = [0,0,18,19,20,21,26,27,0,0,18,19,20,21,26,27,0,0,18,19,20,21,26,27,0,0,18,19,20,21,26,27]13854; AVX2-FCP-NEXT: vpshufb %ymm2, %ymm3, %ymm513855; AVX2-FCP-NEXT: vbroadcasti128 {{.*#+}} ymm3 = [2,6,1,5,2,6,1,5]13856; AVX2-FCP-NEXT: # ymm3 = mem[0,1,0,1]13857; AVX2-FCP-NEXT: vpermd %ymm0, %ymm3, %ymm013858; AVX2-FCP-NEXT: vpshufb {{.*#+}} ymm0 = ymm0[u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,18,19,20,21,26,27,28,29,u,u,u,u,u,u]13859; AVX2-FCP-NEXT: vpblendw {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm5[5,6,7],ymm0[8,9,10,11,12],ymm5[13,14,15]13860; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm6 = ymm10[0],ymm7[1],ymm10[2,3],ymm7[4],ymm10[5,6,7]13861; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload13862; AVX2-FCP-NEXT: vpblendd $72, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5, %ymm7 # 32-byte Folded Reload13863; AVX2-FCP-NEXT: # ymm7 = ymm5[0,1,2],mem[3],ymm5[4,5],mem[6],ymm5[7]13864; AVX2-FCP-NEXT: vextracti128 $1, %ymm7, %xmm1013865; AVX2-FCP-NEXT: vpbroadcastd {{.*#+}} xmm5 = [10,11,6,7,10,11,6,7,10,11,6,7,10,11,6,7]13866; AVX2-FCP-NEXT: vpshufb %xmm5, %xmm10, %xmm1013867; AVX2-FCP-NEXT: vpshufhw {{.*#+}} xmm7 = xmm7[0,1,2,3,6,4,6,7]13868; AVX2-FCP-NEXT: vpunpckhwd {{.*#+}} xmm7 = xmm7[4],xmm10[4],xmm7[5],xmm10[5],xmm7[6],xmm10[6],xmm7[7],xmm10[7]13869; AVX2-FCP-NEXT: vpmovsxbd {{.*#+}} ymm10 = [1,4,0,3,7,0,0,0]13870; AVX2-FCP-NEXT: vpermd %ymm6, %ymm10, %ymm613871; AVX2-FCP-NEXT: vmovdqa {{.*#+}} ymm14 = [u,u,u,u,u,u,u,u,0,1,6,7,8,9,14,15,16,17,22,23,20,21,22,23,16,17,22,23,24,25,30,31]13872; AVX2-FCP-NEXT: vpshufb %ymm14, %ymm6, %ymm613873; AVX2-FCP-NEXT: vpblendw {{.*#+}} ymm0 = ymm6[0],ymm0[1,2,3,4,5,6,7],ymm6[8],ymm0[9,10,11,12,13,14,15]13874; AVX2-FCP-NEXT: vpblendd {{.*#+}} xmm6 = xmm7[0,1],xmm6[2,3]13875; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm6[0,1,2,3],ymm0[4,5,6,7]13876; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm6 = ymm4[0,1],ymm9[2,3],ymm4[4,5],ymm9[6,7]13877; AVX2-FCP-NEXT: vpermd %ymm15, %ymm1, %ymm713878; AVX2-FCP-NEXT: vpshufb %ymm2, %ymm7, %ymm713879; AVX2-FCP-NEXT: vpermd %ymm6, %ymm3, %ymm613880; AVX2-FCP-NEXT: vpbroadcastq {{.*#+}} ymm15 = [28,29,18,19,20,21,26,27,28,29,18,19,20,21,26,27,28,29,18,19,20,21,26,27,28,29,18,19,20,21,26,27]13881; AVX2-FCP-NEXT: vpshufb %ymm15, %ymm6, %ymm613882; AVX2-FCP-NEXT: vpblendw {{.*#+}} ymm6 = ymm6[0,1,2,3,4],ymm7[5,6,7],ymm6[8,9,10,11,12],ymm7[13,14,15]13883; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm7 = ymm8[0],ymm12[1],ymm8[2,3],ymm12[4],ymm8[5,6,7]13884; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm8 = ymm11[0,1,2],ymm13[3],ymm11[4,5],ymm13[6],ymm11[7]13885; AVX2-FCP-NEXT: vextracti128 $1, %ymm8, %xmm913886; AVX2-FCP-NEXT: vpshufb %xmm5, %xmm9, %xmm913887; AVX2-FCP-NEXT: vpshufhw {{.*#+}} xmm8 = xmm8[0,1,2,3,6,4,6,7]13888; AVX2-FCP-NEXT: vpunpckhwd {{.*#+}} xmm8 = xmm8[4],xmm9[4],xmm8[5],xmm9[5],xmm8[6],xmm9[6],xmm8[7],xmm9[7]13889; AVX2-FCP-NEXT: vpermd %ymm7, %ymm10, %ymm713890; AVX2-FCP-NEXT: vpshufb %ymm14, %ymm7, %ymm713891; AVX2-FCP-NEXT: vpblendw {{.*#+}} ymm6 = ymm7[0],ymm6[1,2,3,4,5,6,7],ymm7[8],ymm6[9,10,11,12,13,14,15]13892; AVX2-FCP-NEXT: vpblendd {{.*#+}} xmm7 = xmm8[0,1],xmm7[2,3]13893; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm6 = ymm7[0,1,2,3],ymm6[4,5,6,7]13894; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload13895; AVX2-FCP-NEXT: vpblendd $204, {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm7 # 32-byte Folded Reload13896; AVX2-FCP-NEXT: # ymm7 = ymm7[0,1],mem[2,3],ymm7[4,5],mem[6,7]13897; AVX2-FCP-NEXT: vpermd {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm8 # 32-byte Folded Reload13898; AVX2-FCP-NEXT: vpshufb %ymm2, %ymm8, %ymm813899; AVX2-FCP-NEXT: vpermd %ymm7, %ymm3, %ymm713900; AVX2-FCP-NEXT: vpshufb %ymm15, %ymm7, %ymm713901; AVX2-FCP-NEXT: vpblendw {{.*#+}} ymm7 = ymm7[0,1,2,3,4],ymm8[5,6,7],ymm7[8,9,10,11,12],ymm8[13,14,15]13902; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload13903; AVX2-FCP-NEXT: vpblendd $237, {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm8 # 32-byte Folded Reload13904; AVX2-FCP-NEXT: # ymm8 = mem[0],ymm8[1],mem[2,3],ymm8[4],mem[5,6,7]13905; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload13906; AVX2-FCP-NEXT: vpblendd $183, {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm9 # 32-byte Folded Reload13907; AVX2-FCP-NEXT: # ymm9 = mem[0,1,2],ymm9[3],mem[4,5],ymm9[6],mem[7]13908; AVX2-FCP-NEXT: vextracti128 $1, %ymm9, %xmm1113909; AVX2-FCP-NEXT: vpshufb %xmm5, %xmm11, %xmm1113910; AVX2-FCP-NEXT: vpshufhw {{.*#+}} xmm9 = xmm9[0,1,2,3,6,4,6,7]13911; AVX2-FCP-NEXT: vpunpckhwd {{.*#+}} xmm9 = xmm9[4],xmm11[4],xmm9[5],xmm11[5],xmm9[6],xmm11[6],xmm9[7],xmm11[7]13912; AVX2-FCP-NEXT: vpermd %ymm8, %ymm10, %ymm813913; AVX2-FCP-NEXT: vpshufb %ymm14, %ymm8, %ymm813914; AVX2-FCP-NEXT: vpblendw {{.*#+}} ymm7 = ymm8[0],ymm7[1,2,3,4,5,6,7],ymm8[8],ymm7[9,10,11,12,13,14,15]13915; AVX2-FCP-NEXT: vpblendd {{.*#+}} xmm8 = xmm9[0,1],xmm8[2,3]13916; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm7 = ymm8[0,1,2,3],ymm7[4,5,6,7]13917; AVX2-FCP-NEXT: vpermd {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload13918; AVX2-FCP-NEXT: vpshufb %ymm2, %ymm1, %ymm113919; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload13920; AVX2-FCP-NEXT: vpblendd $204, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload13921; AVX2-FCP-NEXT: # ymm2 = ymm2[0,1],mem[2,3],ymm2[4,5],mem[6,7]13922; AVX2-FCP-NEXT: vpermd %ymm2, %ymm3, %ymm213923; AVX2-FCP-NEXT: vpshufb %ymm15, %ymm2, %ymm213924; AVX2-FCP-NEXT: vpblendw {{.*#+}} ymm1 = ymm2[0,1,2,3,4],ymm1[5,6,7],ymm2[8,9,10,11,12],ymm1[13,14,15]13925; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload13926; AVX2-FCP-NEXT: vpblendd $237, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload13927; AVX2-FCP-NEXT: # ymm2 = mem[0],ymm2[1],mem[2,3],ymm2[4],mem[5,6,7]13928; AVX2-FCP-NEXT: vpermd %ymm2, %ymm10, %ymm213929; AVX2-FCP-NEXT: vpshufb %ymm14, %ymm2, %ymm213930; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload13931; AVX2-FCP-NEXT: vpblendd $72, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm3 # 32-byte Folded Reload13932; AVX2-FCP-NEXT: # ymm3 = ymm3[0,1,2],mem[3],ymm3[4,5],mem[6],ymm3[7]13933; AVX2-FCP-NEXT: vextracti128 $1, %ymm3, %xmm413934; AVX2-FCP-NEXT: vpshufb %xmm5, %xmm4, %xmm413935; AVX2-FCP-NEXT: vpshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,6,4,6,7]13936; AVX2-FCP-NEXT: vpunpckhwd {{.*#+}} xmm3 = xmm3[4],xmm4[4],xmm3[5],xmm4[5],xmm3[6],xmm4[6],xmm3[7],xmm4[7]13937; AVX2-FCP-NEXT: vpblendw {{.*#+}} ymm1 = ymm2[0],ymm1[1,2,3,4,5,6,7],ymm2[8],ymm1[9,10,11,12,13,14,15]13938; AVX2-FCP-NEXT: vpblendd {{.*#+}} xmm2 = xmm3[0,1],xmm2[2,3]13939; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]13940; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload13941; AVX2-FCP-NEXT: vmovaps %ymm2, 96(%rsi)13942; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload13943; AVX2-FCP-NEXT: vmovaps %ymm2, 32(%rsi)13944; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload13945; AVX2-FCP-NEXT: vmovaps %ymm2, 64(%rsi)13946; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload13947; AVX2-FCP-NEXT: vmovaps %ymm2, (%rsi)13948; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload13949; AVX2-FCP-NEXT: vmovaps %ymm2, 96(%rdx)13950; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload13951; AVX2-FCP-NEXT: vmovaps %ymm2, 32(%rdx)13952; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload13953; AVX2-FCP-NEXT: vmovaps %ymm2, 64(%rdx)13954; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload13955; AVX2-FCP-NEXT: vmovaps %ymm2, (%rdx)13956; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload13957; AVX2-FCP-NEXT: vmovaps %ymm2, 32(%rcx)13958; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload13959; AVX2-FCP-NEXT: vmovaps %ymm2, 96(%rcx)13960; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload13961; AVX2-FCP-NEXT: vmovaps %ymm2, 64(%rcx)13962; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload13963; AVX2-FCP-NEXT: vmovaps %ymm2, (%rcx)13964; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload13965; AVX2-FCP-NEXT: vmovaps %ymm2, 96(%r8)13966; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload13967; AVX2-FCP-NEXT: vmovaps %ymm2, 32(%r8)13968; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload13969; AVX2-FCP-NEXT: vmovaps %ymm2, 64(%r8)13970; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload13971; AVX2-FCP-NEXT: vmovaps %ymm2, (%r8)13972; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload13973; AVX2-FCP-NEXT: vmovaps %ymm2, 96(%r9)13974; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload13975; AVX2-FCP-NEXT: vmovaps %ymm2, 32(%r9)13976; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload13977; AVX2-FCP-NEXT: vmovaps %ymm2, (%r9)13978; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload13979; AVX2-FCP-NEXT: vmovaps %ymm2, 64(%r9)13980; AVX2-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax13981; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload13982; AVX2-FCP-NEXT: vmovaps %ymm2, 96(%rax)13983; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload13984; AVX2-FCP-NEXT: vmovaps %ymm2, 32(%rax)13985; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload13986; AVX2-FCP-NEXT: vmovaps %ymm2, 64(%rax)13987; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload13988; AVX2-FCP-NEXT: vmovaps %ymm2, (%rax)13989; AVX2-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax13990; AVX2-FCP-NEXT: vmovdqa %ymm1, 32(%rax)13991; AVX2-FCP-NEXT: vmovdqa %ymm7, (%rax)13992; AVX2-FCP-NEXT: vmovdqa %ymm6, 96(%rax)13993; AVX2-FCP-NEXT: vmovdqa %ymm0, 64(%rax)13994; AVX2-FCP-NEXT: addq $1544, %rsp # imm = 0x60813995; AVX2-FCP-NEXT: vzeroupper13996; AVX2-FCP-NEXT: retq13997;13998; AVX512-LABEL: load_i16_stride7_vf64:13999; AVX512: # %bb.0:14000; AVX512-NEXT: subq $1864, %rsp # imm = 0x74814001; AVX512-NEXT: vmovdqa 480(%rdi), %ymm114002; AVX512-NEXT: vmovdqa 448(%rdi), %ymm214003; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm2[0,1],ymm1[2],ymm2[3,4,5],ymm1[6],ymm2[7]14004; AVX512-NEXT: vmovdqa64 %ymm2, %ymm1614005; AVX512-NEXT: vmovdqa64 %ymm1, %ymm1814006; AVX512-NEXT: vextracti128 $1, %ymm0, %xmm114007; AVX512-NEXT: vpblendw {{.*#+}} xmm1 = xmm0[0,1,2,3],xmm1[4],xmm0[5],xmm1[6],xmm0[7]14008; AVX512-NEXT: vmovdqa {{.*#+}} ymm0 = [0,1,14,15,12,13,10,11,8,9,128,128,128,128,128,128,128,128,128,128,u,u,u,u,u,u,u,u,u,u,u,u]14009; AVX512-NEXT: vpshufb %ymm0, %ymm1, %ymm214010; AVX512-NEXT: vmovdqa 512(%rdi), %ymm1314011; AVX512-NEXT: vmovdqa 544(%rdi), %ymm1014012; AVX512-NEXT: vpblendd {{.*#+}} ymm1 = ymm10[0],ymm13[1],ymm10[2,3,4],ymm13[5],ymm10[6,7]14013; AVX512-NEXT: vpermq {{.*#+}} ymm3 = ymm1[0,2,2,3]14014; AVX512-NEXT: vmovdqa {{.*#+}} ymm1 = [128,128,128,128,128,128,128,128,128,128,6,7,12,13,2,3,16,17,30,31,128,128,128,128,128,128,128,128,128,128,128,128]14015; AVX512-NEXT: vpshufb %ymm1, %ymm3, %ymm314016; AVX512-NEXT: vpor %ymm3, %ymm2, %ymm214017; AVX512-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill14018; AVX512-NEXT: vpbroadcastw 700(%rdi), %xmm214019; AVX512-NEXT: vmovdqa64 672(%rdi), %xmm2214020; AVX512-NEXT: vpshufd {{.*#+}} xmm3 = xmm22[0,1,0,3]14021; AVX512-NEXT: vpshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,4,7,6,7]14022; AVX512-NEXT: vpunpckhdq {{.*#+}} xmm2 = xmm3[2],xmm2[2],xmm3[3],xmm2[3]14023; AVX512-NEXT: vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill14024; AVX512-NEXT: vmovdqa (%rdi), %ymm814025; AVX512-NEXT: vmovdqa 32(%rdi), %ymm514026; AVX512-NEXT: vmovdqa 64(%rdi), %ymm1414027; AVX512-NEXT: vmovdqa 96(%rdi), %ymm1514028; AVX512-NEXT: vpblendd {{.*#+}} ymm3 = ymm15[0],ymm14[1],ymm15[2,3,4],ymm14[5],ymm15[6,7]14029; AVX512-NEXT: vpermq {{.*#+}} ymm3 = ymm3[0,2,2,3]14030; AVX512-NEXT: vpshufb %ymm1, %ymm3, %ymm114031; AVX512-NEXT: vpblendd {{.*#+}} ymm3 = ymm8[0,1],ymm5[2],ymm8[3,4,5],ymm5[6],ymm8[7]14032; AVX512-NEXT: vmovdqa %ymm5, %ymm614033; AVX512-NEXT: vextracti128 $1, %ymm3, %xmm414034; AVX512-NEXT: vpblendw {{.*#+}} xmm3 = xmm3[0,1,2,3],xmm4[4],xmm3[5],xmm4[6],xmm3[7]14035; AVX512-NEXT: vpshufb %ymm0, %ymm3, %ymm014036; AVX512-NEXT: vpor %ymm1, %ymm0, %ymm014037; AVX512-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill14038; AVX512-NEXT: vmovdqa 128(%rdi), %ymm914039; AVX512-NEXT: vmovdqa 160(%rdi), %ymm1114040; AVX512-NEXT: vmovdqa64 192(%rdi), %ymm2114041; AVX512-NEXT: vpermq {{.*#+}} ymm24 = ymm21[0,1,0,2]14042; AVX512-NEXT: vpbroadcastw 252(%rdi), %xmm014043; AVX512-NEXT: vmovdqa 224(%rdi), %xmm414044; AVX512-NEXT: vpshufd {{.*#+}} xmm3 = xmm4[0,1,0,3]14045; AVX512-NEXT: vpshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,4,7,6,7]14046; AVX512-NEXT: vpunpckhdq {{.*#+}} xmm0 = xmm3[2],xmm0[2],xmm3[3],xmm0[3]14047; AVX512-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill14048; AVX512-NEXT: vmovdqa 80(%rdi), %xmm014049; AVX512-NEXT: vpblendd {{.*#+}} ymm3 = ymm15[0,1],ymm14[2],ymm15[3,4],ymm14[5],ymm15[6,7]14050; AVX512-NEXT: vpblendw {{.*#+}} ymm0 = ymm3[0,1,2],ymm0[3],ymm3[4,5,6,7,8,9,10],ymm0[11],ymm3[12,13,14,15]14051; AVX512-NEXT: vmovdqa {{.*#+}} ymm3 = [128,128,128,128,128,128,128,128,128,128,8,9,6,7,4,5,18,19,128,128,128,128,128,128,128,128,128,128,128,128,128,128]14052; AVX512-NEXT: vpshufb %ymm3, %ymm0, %ymm014053; AVX512-NEXT: vpblendd {{.*#+}} ymm5 = ymm8[0,1,2],ymm5[3],ymm8[4,5],ymm5[6],ymm8[7]14054; AVX512-NEXT: vmovdqa64 %ymm8, %ymm1714055; AVX512-NEXT: vmovdqa64 %ymm6, %ymm1914056; AVX512-NEXT: vextracti128 $1, %ymm5, %xmm614057; AVX512-NEXT: vpblendw {{.*#+}} xmm5 = xmm6[0],xmm5[1],xmm6[2,3,4,5],xmm5[6],xmm6[7]14058; AVX512-NEXT: vmovdqa {{.*#+}} ymm6 = [2,3,0,1,14,15,12,13,10,11,128,128,128,128,128,128,128,128,u,u,u,u,u,u,u,u,u,u,u,u,u,u]14059; AVX512-NEXT: vpshufb %ymm6, %ymm5, %ymm514060; AVX512-NEXT: vpor %ymm0, %ymm5, %ymm014061; AVX512-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill14062; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm9[0,1],ymm11[2],ymm9[3,4,5],ymm11[6],ymm9[7]14063; AVX512-NEXT: vmovdqa64 %ymm11, %ymm2014064; AVX512-NEXT: vextracti128 $1, %ymm0, %xmm514065; AVX512-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2,3],xmm5[4],xmm0[5],xmm5[6],xmm0[7]14066; AVX512-NEXT: vmovdqa {{.*#+}} xmm5 = [0,1,0,1,14,15,12,13,10,11,8,9,12,13,14,15]14067; AVX512-NEXT: vpshufb %xmm5, %xmm0, %xmm014068; AVX512-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm014069; AVX512-NEXT: vpshufd {{.*#+}} ymm7 = ymm24[0,1,1,3,4,5,5,7]14070; AVX512-NEXT: vpshufhw {{.*#+}} ymm7 = ymm7[0,1,2,3,4,5,5,6,8,9,10,11,12,13,13,14]14071; AVX512-NEXT: vpblendd {{.*#+}} ymm7 = ymm0[0,1,2,3,4,5,6],ymm7[7]14072; AVX512-NEXT: vmovdqa 240(%rdi), %xmm014073; AVX512-NEXT: vpblendw {{.*#+}} xmm8 = xmm0[0],xmm4[1],xmm0[2,3,4,5,6,7]14074; AVX512-NEXT: vmovdqa64 %xmm0, %xmm2314075; AVX512-NEXT: vpshufd {{.*#+}} xmm8 = xmm8[0,3,2,3]14076; AVX512-NEXT: vpshuflw {{.*#+}} xmm8 = xmm8[1,0,3,3,4,5,6,7]14077; AVX512-NEXT: vinserti32x4 $2, %xmm8, %zmm7, %zmm014078; AVX512-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill14079; AVX512-NEXT: vmovdqa 528(%rdi), %xmm714080; AVX512-NEXT: vmovdqa %ymm10, %ymm1214081; AVX512-NEXT: vpblendd {{.*#+}} ymm8 = ymm10[0,1],ymm13[2],ymm10[3,4],ymm13[5],ymm10[6,7]14082; AVX512-NEXT: vpblendw {{.*#+}} ymm7 = ymm8[0,1,2],ymm7[3],ymm8[4,5,6,7,8,9,10],ymm7[11],ymm8[12,13,14,15]14083; AVX512-NEXT: vpshufb %ymm3, %ymm7, %ymm314084; AVX512-NEXT: vmovdqa64 %ymm16, %ymm1014085; AVX512-NEXT: vmovdqa64 %ymm18, %ymm1114086; AVX512-NEXT: vpblendd {{.*#+}} ymm7 = ymm10[0,1,2],ymm11[3],ymm10[4,5],ymm11[6],ymm10[7]14087; AVX512-NEXT: vextracti128 $1, %ymm7, %xmm814088; AVX512-NEXT: vpblendw {{.*#+}} xmm7 = xmm8[0],xmm7[1],xmm8[2,3,4,5],xmm7[6],xmm8[7]14089; AVX512-NEXT: vpshufb %ymm6, %ymm7, %ymm614090; AVX512-NEXT: vpor %ymm3, %ymm6, %ymm314091; AVX512-NEXT: vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill14092; AVX512-NEXT: vmovdqa 576(%rdi), %ymm014093; AVX512-NEXT: vmovdqa 608(%rdi), %ymm614094; AVX512-NEXT: vpblendd {{.*#+}} ymm3 = ymm0[0,1],ymm6[2],ymm0[3,4,5],ymm6[6],ymm0[7]14095; AVX512-NEXT: vmovdqa64 %ymm6, %ymm2614096; AVX512-NEXT: vmovdqa64 %ymm0, %ymm3014097; AVX512-NEXT: vextracti128 $1, %ymm3, %xmm614098; AVX512-NEXT: vpblendw {{.*#+}} xmm3 = xmm3[0,1,2,3],xmm6[4],xmm3[5],xmm6[6],xmm3[7]14099; AVX512-NEXT: vpshufb %xmm5, %xmm3, %xmm314100; AVX512-NEXT: vmovdqa64 640(%rdi), %ymm1614101; AVX512-NEXT: vpermq {{.*#+}} ymm18 = ymm16[0,1,0,2]14102; AVX512-NEXT: vinserti128 $1, %xmm3, %ymm0, %ymm314103; AVX512-NEXT: vpshufd {{.*#+}} ymm5 = ymm18[0,1,1,3,4,5,5,7]14104; AVX512-NEXT: vpshufhw {{.*#+}} ymm5 = ymm5[0,1,2,3,4,5,5,6,8,9,10,11,12,13,13,14]14105; AVX512-NEXT: vpblendd {{.*#+}} ymm5 = ymm3[0,1,2,3,4,5,6],ymm5[7]14106; AVX512-NEXT: vmovdqa 688(%rdi), %xmm314107; AVX512-NEXT: vmovdqa64 %xmm22, %xmm214108; AVX512-NEXT: vpblendw {{.*#+}} xmm6 = xmm3[0],xmm2[1],xmm3[2,3,4,5,6,7]14109; AVX512-NEXT: vpshufd {{.*#+}} xmm6 = xmm6[0,3,2,3]14110; AVX512-NEXT: vpshuflw {{.*#+}} xmm6 = xmm6[1,0,3,3,4,5,6,7]14111; AVX512-NEXT: vinserti32x4 $2, %xmm6, %zmm5, %zmm014112; AVX512-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill14113; AVX512-NEXT: vpblendd {{.*#+}} ymm5 = ymm15[0,1],ymm14[2,3],ymm15[4,5],ymm14[6,7]14114; AVX512-NEXT: vmovdqu %ymm15, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill14115; AVX512-NEXT: vmovdqu %ymm14, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill14116; AVX512-NEXT: vmovdqa64 %ymm14, %ymm2214117; AVX512-NEXT: vextracti128 $1, %ymm5, %xmm614118; AVX512-NEXT: vpblendw {{.*#+}} ymm5 = ymm5[0,1,2,3],ymm6[4],ymm5[5,6,7,8,9,10,11],ymm6[12],ymm5[13,14,15]14119; AVX512-NEXT: vmovdqa64 %ymm17, %ymm1414120; AVX512-NEXT: vmovdqu64 %ymm17, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill14121; AVX512-NEXT: vmovdqa64 %ymm19, %ymm114122; AVX512-NEXT: vmovdqu64 %ymm19, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill14123; AVX512-NEXT: vpblendd {{.*#+}} ymm6 = ymm1[0],ymm14[1],ymm1[2,3],ymm14[4],ymm1[5,6,7]14124; AVX512-NEXT: vextracti128 $1, %ymm6, %xmm714125; AVX512-NEXT: vpblendw {{.*#+}} xmm6 = xmm6[0],xmm7[1],xmm6[2,3,4,5],xmm7[6],xmm6[7]14126; AVX512-NEXT: vmovdqa {{.*#+}} ymm7 = [128,128,128,128,128,128,128,128,128,128,10,11,8,9,6,7,20,21,128,128,128,128,128,128,128,128,128,128,128,128,128,128]14127; AVX512-NEXT: vpshufb %ymm7, %ymm5, %ymm814128; AVX512-NEXT: vmovdqa {{.*#+}} ymm5 = [4,5,2,3,0,1,14,15,12,13,128,128,128,128,128,128,128,128,u,u,u,u,u,u,u,u,u,u,u,u,u,u]14129; AVX512-NEXT: vpshufb %ymm5, %ymm6, %ymm614130; AVX512-NEXT: vpor %ymm6, %ymm8, %ymm614131; AVX512-NEXT: vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill14132; AVX512-NEXT: vmovdqa64 %ymm20, %ymm014133; AVX512-NEXT: vpblendd {{.*#+}} ymm6 = ymm9[0,1,2],ymm0[3],ymm9[4,5],ymm0[6],ymm9[7]14134; AVX512-NEXT: vmovdqa64 %ymm9, %ymm1914135; AVX512-NEXT: vextracti128 $1, %ymm6, %xmm814136; AVX512-NEXT: vpblendw {{.*#+}} xmm8 = xmm8[0],xmm6[1],xmm8[2,3,4,5],xmm6[6],xmm8[7]14137; AVX512-NEXT: vmovdqa {{.*#+}} xmm6 = [0,1,2,3,0,1,14,15,12,13,10,11,12,13,14,15]14138; AVX512-NEXT: vpshufb %xmm6, %xmm8, %xmm814139; AVX512-NEXT: vinserti128 $1, %xmm8, %ymm0, %ymm814140; AVX512-NEXT: vpermq {{.*#+}} ymm9 = ymm21[0,1,1,2]14141; AVX512-NEXT: vpshufd {{.*#+}} ymm9 = ymm9[0,1,0,3,4,5,4,7]14142; AVX512-NEXT: vpshufhw {{.*#+}} ymm9 = ymm9[0,1,2,3,4,5,4,7,8,9,10,11,12,13,12,15]14143; AVX512-NEXT: vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3,4,5,6],ymm9[7]14144; AVX512-NEXT: vmovdqa64 %xmm23, %xmm014145; AVX512-NEXT: vpunpcklwd {{.*#+}} xmm0 = xmm4[0],xmm0[0],xmm4[1],xmm0[1],xmm4[2],xmm0[2],xmm4[3],xmm0[3]14146; AVX512-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill14147; AVX512-NEXT: vpshufd {{.*#+}} xmm9 = xmm0[2,1,2,3]14148; AVX512-NEXT: vpshuflw {{.*#+}} xmm9 = xmm9[0,3,2,3,4,5,6,7]14149; AVX512-NEXT: vinserti32x4 $2, %xmm9, %zmm8, %zmm014150; AVX512-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill14151; AVX512-NEXT: vpblendd {{.*#+}} ymm8 = ymm12[0,1],ymm13[2,3],ymm12[4,5],ymm13[6,7]14152; AVX512-NEXT: vmovdqu %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill14153; AVX512-NEXT: vmovdqu %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill14154; AVX512-NEXT: vextracti128 $1, %ymm8, %xmm914155; AVX512-NEXT: vpblendw {{.*#+}} ymm8 = ymm8[0,1,2,3],ymm9[4],ymm8[5,6,7,8,9,10,11],ymm9[12],ymm8[13,14,15]14156; AVX512-NEXT: vpshufb %ymm7, %ymm8, %ymm714157; AVX512-NEXT: vpblendd {{.*#+}} ymm8 = ymm11[0],ymm10[1],ymm11[2,3],ymm10[4],ymm11[5,6,7]14158; AVX512-NEXT: vmovdqu %ymm11, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill14159; AVX512-NEXT: vmovdqu %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill14160; AVX512-NEXT: vextracti128 $1, %ymm8, %xmm914161; AVX512-NEXT: vpblendw {{.*#+}} xmm8 = xmm8[0],xmm9[1],xmm8[2,3,4,5],xmm9[6],xmm8[7]14162; AVX512-NEXT: vpshufb %ymm5, %ymm8, %ymm514163; AVX512-NEXT: vpor %ymm7, %ymm5, %ymm514164; AVX512-NEXT: vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill14165; AVX512-NEXT: vmovdqa64 %ymm26, %ymm914166; AVX512-NEXT: vmovdqa64 %ymm30, %ymm014167; AVX512-NEXT: vpblendd {{.*#+}} ymm5 = ymm0[0,1,2],ymm9[3],ymm0[4,5],ymm9[6],ymm0[7]14168; AVX512-NEXT: vextracti128 $1, %ymm5, %xmm714169; AVX512-NEXT: vpblendw {{.*#+}} xmm5 = xmm7[0],xmm5[1],xmm7[2,3,4,5],xmm5[6],xmm7[7]14170; AVX512-NEXT: vpshufb %xmm6, %xmm5, %xmm514171; AVX512-NEXT: vinserti128 $1, %xmm5, %ymm0, %ymm514172; AVX512-NEXT: vpermq {{.*#+}} ymm6 = ymm16[0,1,1,2]14173; AVX512-NEXT: vpshufd {{.*#+}} ymm6 = ymm6[0,1,0,3,4,5,4,7]14174; AVX512-NEXT: vpshufhw {{.*#+}} ymm6 = ymm6[0,1,2,3,4,5,4,7,8,9,10,11,12,13,12,15]14175; AVX512-NEXT: vpblendd {{.*#+}} ymm5 = ymm5[0,1,2,3,4,5,6],ymm6[7]14176; AVX512-NEXT: vpunpcklwd {{.*#+}} xmm0 = xmm2[0],xmm3[0],xmm2[1],xmm3[1],xmm2[2],xmm3[2],xmm2[3],xmm3[3]14177; AVX512-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill14178; AVX512-NEXT: vmovdqa64 %xmm2, %xmm2814179; AVX512-NEXT: vpshufd {{.*#+}} xmm6 = xmm0[2,1,2,3]14180; AVX512-NEXT: vpshuflw {{.*#+}} xmm6 = xmm6[0,3,2,3,4,5,6,7]14181; AVX512-NEXT: vinserti32x4 $2, %xmm6, %zmm5, %zmm014182; AVX512-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill14183; AVX512-NEXT: vpblendd {{.*#+}} ymm5 = ymm1[0],ymm14[1],ymm1[2,3,4],ymm14[5],ymm1[6,7]14184; AVX512-NEXT: vextracti128 $1, %ymm5, %xmm614185; AVX512-NEXT: vpblendw {{.*#+}} xmm7 = xmm6[0],xmm5[1],xmm6[2],xmm5[3],xmm6[4,5,6,7]14186; AVX512-NEXT: vmovdqa64 %ymm22, %ymm014187; AVX512-NEXT: vpblendd {{.*#+}} ymm5 = ymm15[0,1,2],ymm0[3],ymm15[4,5],ymm0[6],ymm15[7]14188; AVX512-NEXT: vpermq {{.*#+}} ymm6 = ymm5[1,3,2,3]14189; AVX512-NEXT: vmovdqa {{.*#+}} ymm5 = [128,128,128,128,128,128,128,128,128,128,4,5,10,11,0,1,22,23,128,128,128,128,128,128,128,128,128,128,128,128,128,128]14190; AVX512-NEXT: vpshufb %ymm5, %ymm6, %ymm814191; AVX512-NEXT: vmovdqa {{.*#+}} ymm6 = [6,7,4,5,2,3,0,1,14,15,128,128,128,128,128,128,128,128,u,u,u,u,u,u,u,u,u,u,u,u,u,u]14192; AVX512-NEXT: vpshufb %ymm6, %ymm7, %ymm714193; AVX512-NEXT: vpor %ymm7, %ymm8, %ymm114194; AVX512-NEXT: vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill14195; AVX512-NEXT: vpblendd {{.*#+}} ymm7 = ymm11[0],ymm10[1],ymm11[2,3,4],ymm10[5],ymm11[6,7]14196; AVX512-NEXT: vextracti128 $1, %ymm7, %xmm814197; AVX512-NEXT: vpblendw {{.*#+}} xmm7 = xmm8[0],xmm7[1],xmm8[2],xmm7[3],xmm8[4,5,6,7]14198; AVX512-NEXT: vpshufb %ymm6, %ymm7, %ymm614199; AVX512-NEXT: vpblendd {{.*#+}} ymm7 = ymm12[0,1,2],ymm13[3],ymm12[4,5],ymm13[6],ymm12[7]14200; AVX512-NEXT: vpermq {{.*#+}} ymm7 = ymm7[1,3,2,3]14201; AVX512-NEXT: vpshufb %ymm5, %ymm7, %ymm514202; AVX512-NEXT: vpor %ymm5, %ymm6, %ymm014203; AVX512-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill14204; AVX512-NEXT: vmovdqa64 %ymm20, %ymm1514205; AVX512-NEXT: vmovdqa64 %ymm19, %ymm1014206; AVX512-NEXT: vpblendd {{.*#+}} ymm5 = ymm15[0],ymm10[1],ymm15[2,3,4],ymm10[5],ymm15[6,7]14207; AVX512-NEXT: vextracti128 $1, %ymm5, %xmm614208; AVX512-NEXT: vpblendw {{.*#+}} xmm5 = xmm6[0],xmm5[1],xmm6[2],xmm5[3],xmm6[4,5,6,7]14209; AVX512-NEXT: vpermq {{.*#+}} ymm19 = ymm21[0,1,1,3]14210; AVX512-NEXT: vmovdqa {{.*#+}} xmm1 = [0,1,6,7,4,5,2,3,0,1,14,15,12,13,14,15]14211; AVX512-NEXT: vpshufb %xmm1, %xmm5, %xmm514212; AVX512-NEXT: vinserti128 $1, %xmm5, %ymm0, %ymm514213; AVX512-NEXT: vpshufd {{.*#+}} ymm6 = ymm19[0,1,2,1,4,5,6,5]14214; AVX512-NEXT: vpshufhw {{.*#+}} ymm6 = ymm6[0,1,2,3,4,5,6,5,8,9,10,11,12,13,14,13]14215; AVX512-NEXT: vpblendd {{.*#+}} ymm5 = ymm5[0,1,2,3,4,5,6],ymm6[7]14216; AVX512-NEXT: vpbroadcastw 232(%rdi), %xmm614217; AVX512-NEXT: vpsrlq $48, %xmm23, %xmm714218; AVX512-NEXT: vpunpcklwd {{.*#+}} xmm6 = xmm6[0],xmm7[0],xmm6[1],xmm7[1],xmm6[2],xmm7[2],xmm6[3],xmm7[3]14219; AVX512-NEXT: vinserti32x4 $2, %xmm6, %zmm5, %zmm014220; AVX512-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill14221; AVX512-NEXT: vmovdqa64 %ymm26, %ymm1214222; AVX512-NEXT: vmovdqa64 %ymm30, %ymm1314223; AVX512-NEXT: vpblendd {{.*#+}} ymm5 = ymm12[0],ymm13[1],ymm12[2,3,4],ymm13[5],ymm12[6,7]14224; AVX512-NEXT: vextracti128 $1, %ymm5, %xmm614225; AVX512-NEXT: vpblendw {{.*#+}} xmm5 = xmm6[0],xmm5[1],xmm6[2],xmm5[3],xmm6[4,5,6,7]14226; AVX512-NEXT: vpshufb %xmm1, %xmm5, %xmm114227; AVX512-NEXT: vpermq {{.*#+}} ymm16 = ymm16[0,1,1,3]14228; AVX512-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm114229; AVX512-NEXT: vpshufd {{.*#+}} ymm5 = ymm16[0,1,2,1,4,5,6,5]14230; AVX512-NEXT: vpshufhw {{.*#+}} ymm5 = ymm5[0,1,2,3,4,5,6,5,8,9,10,11,12,13,14,13]14231; AVX512-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,6],ymm5[7]14232; AVX512-NEXT: vpbroadcastw 680(%rdi), %xmm514233; AVX512-NEXT: vpsrlq $48, %xmm3, %xmm614234; AVX512-NEXT: vpunpcklwd {{.*#+}} xmm5 = xmm5[0],xmm6[0],xmm5[1],xmm6[1],xmm5[2],xmm6[2],xmm5[3],xmm6[3]14235; AVX512-NEXT: vinserti32x4 $2, %xmm5, %zmm1, %zmm014236; AVX512-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill14237; AVX512-NEXT: vpblendd {{.*#+}} ymm1 = ymm15[0,1],ymm10[2],ymm15[3,4],ymm10[5],ymm15[6,7]14238; AVX512-NEXT: vextracti128 $1, %ymm1, %xmm514239; AVX512-NEXT: vpblendw {{.*#+}} xmm5 = xmm5[0,1],xmm1[2],xmm5[3],xmm1[4],xmm5[5,6,7]14240; AVX512-NEXT: vmovdqa {{.*#+}} xmm1 = [8,9,8,9,6,7,4,5,2,3,2,3,2,3,2,3]14241; AVX512-NEXT: vpshufb %xmm1, %xmm5, %xmm514242; AVX512-NEXT: vinserti128 $1, %xmm5, %ymm0, %ymm514243; AVX512-NEXT: vmovdqa 208(%rdi), %xmm614244; AVX512-NEXT: vmovdqa 192(%rdi), %xmm714245; AVX512-NEXT: vpblendw {{.*#+}} xmm8 = xmm7[0,1,2,3,4,5],xmm6[6],xmm7[7]14246; AVX512-NEXT: vpshufd {{.*#+}} xmm8 = xmm8[0,1,0,3]14247; AVX512-NEXT: vpshufhw {{.*#+}} xmm8 = xmm8[0,1,2,3,4,4,7,6]14248; AVX512-NEXT: vinserti128 $1, %xmm8, %ymm0, %ymm814249; AVX512-NEXT: vpblendw {{.*#+}} ymm5 = ymm5[0,1,2,3,4],ymm8[5,6,7],ymm5[8,9,10,11,12],ymm8[13,14,15]14250; AVX512-NEXT: vmovdqa %xmm4, %xmm214251; AVX512-NEXT: vpsrld $16, %xmm4, %xmm814252; AVX512-NEXT: vmovdqa64 %xmm23, %xmm414253; AVX512-NEXT: vpunpckhwd {{.*#+}} xmm8 = xmm8[4],xmm4[4],xmm8[5],xmm4[5],xmm8[6],xmm4[6],xmm8[7],xmm4[7]14254; AVX512-NEXT: vinserti32x4 $2, %xmm8, %zmm5, %zmm014255; AVX512-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill14256; AVX512-NEXT: vpblendd {{.*#+}} ymm5 = ymm12[0,1],ymm13[2],ymm12[3,4],ymm13[5],ymm12[6,7]14257; AVX512-NEXT: vextracti128 $1, %ymm5, %xmm814258; AVX512-NEXT: vpblendw {{.*#+}} xmm5 = xmm8[0,1],xmm5[2],xmm8[3],xmm5[4],xmm8[5,6,7]14259; AVX512-NEXT: vpshufb %xmm1, %xmm5, %xmm114260; AVX512-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm814261; AVX512-NEXT: vmovdqa 656(%rdi), %xmm114262; AVX512-NEXT: vmovdqa 640(%rdi), %xmm514263; AVX512-NEXT: vpblendw {{.*#+}} xmm9 = xmm5[0,1,2,3,4,5],xmm1[6],xmm5[7]14264; AVX512-NEXT: vpshufd {{.*#+}} xmm9 = xmm9[0,1,0,3]14265; AVX512-NEXT: vpshufhw {{.*#+}} xmm9 = xmm9[0,1,2,3,4,4,7,6]14266; AVX512-NEXT: vinserti128 $1, %xmm9, %ymm0, %ymm914267; AVX512-NEXT: vpblendw {{.*#+}} ymm8 = ymm8[0,1,2,3,4],ymm9[5,6,7],ymm8[8,9,10,11,12],ymm9[13,14,15]14268; AVX512-NEXT: vmovdqa64 %xmm28, %xmm1114269; AVX512-NEXT: vpsrld $16, %xmm28, %xmm914270; AVX512-NEXT: vpunpckhwd {{.*#+}} xmm9 = xmm9[4],xmm3[4],xmm9[5],xmm3[5],xmm9[6],xmm3[6],xmm9[7],xmm3[7]14271; AVX512-NEXT: vinserti32x4 $2, %xmm9, %zmm8, %zmm014272; AVX512-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill14273; AVX512-NEXT: vpblendd {{.*#+}} ymm8 = ymm15[0,1],ymm10[2,3],ymm15[4,5],ymm10[6,7]14274; AVX512-NEXT: vextracti128 $1, %ymm8, %xmm914275; AVX512-NEXT: vpblendw {{.*#+}} xmm8 = xmm9[0,1,2],xmm8[3],xmm9[4],xmm8[5],xmm9[6,7]14276; AVX512-NEXT: vpblendw {{.*#+}} xmm7 = xmm6[0],xmm7[1],xmm6[2,3,4,5,6,7]14277; AVX512-NEXT: vmovdqa {{.*#+}} xmm6 = [8,9,10,11,8,9,6,7,4,5,4,5,4,5,4,5]14278; AVX512-NEXT: vpshufb %xmm6, %xmm8, %xmm814279; AVX512-NEXT: vinserti128 $1, %xmm8, %ymm0, %ymm814280; AVX512-NEXT: vpshufd {{.*#+}} xmm7 = xmm7[0,1,0,3]14281; AVX512-NEXT: vpshufhw {{.*#+}} xmm7 = xmm7[0,1,2,3,4,5,4,7]14282; AVX512-NEXT: vinserti128 $1, %xmm7, %ymm0, %ymm714283; AVX512-NEXT: vpblendw {{.*#+}} ymm7 = ymm8[0,1,2,3,4],ymm7[5,6,7],ymm8[8,9,10,11,12],ymm7[13,14,15]14284; AVX512-NEXT: vpunpckhwd {{.*#+}} xmm0 = xmm2[4],xmm4[4],xmm2[5],xmm4[5],xmm2[6],xmm4[6],xmm2[7],xmm4[7]14285; AVX512-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[2,1,2,3]14286; AVX512-NEXT: vpshuflw {{.*#+}} xmm0 = xmm0[0,3,2,3,4,5,6,7]14287; AVX512-NEXT: vinserti32x4 $2, %xmm0, %zmm7, %zmm014288; AVX512-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill14289; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm12[0,1,2],ymm13[3],ymm12[4,5],ymm13[6],ymm12[7]14290; AVX512-NEXT: vextracti128 $1, %ymm0, %xmm414291; AVX512-NEXT: vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,6,4,7]14292; AVX512-NEXT: vpshufd {{.*#+}} xmm4 = xmm4[0,1,2,1]14293; AVX512-NEXT: vpshufhw {{.*#+}} xmm4 = xmm4[0,1,2,3,4,5,7,7]14294; AVX512-NEXT: vpunpckhwd {{.*#+}} xmm0 = xmm0[4],xmm4[4],xmm0[5],xmm4[5],xmm0[6],xmm4[6],xmm0[7],xmm4[7]14295; AVX512-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm014296; AVX512-NEXT: vpshufd {{.*#+}} ymm4 = ymm18[0,1,2,1,4,5,6,5]14297; AVX512-NEXT: vpshufhw {{.*#+}} ymm4 = ymm4[0,1,2,3,4,5,6,5,8,9,10,11,12,13,14,13]14298; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5,6],ymm4[7]14299; AVX512-NEXT: movw $992, %ax # imm = 0x3E014300; AVX512-NEXT: kmovw %eax, %k114301; AVX512-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload14302; AVX512-NEXT: vinserti32x4 $2, {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm2 {%k1} # 16-byte Folded Reload14303; AVX512-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill14304; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm12[0,1],ymm13[2,3],ymm12[4,5],ymm13[6,7]14305; AVX512-NEXT: vmovdqa64 %ymm26, %ymm1714306; AVX512-NEXT: vextracti128 $1, %ymm0, %xmm214307; AVX512-NEXT: vpblendw {{.*#+}} xmm0 = xmm2[0,1,2],xmm0[3],xmm2[4],xmm0[5],xmm2[6,7]14308; AVX512-NEXT: vpshufb %xmm6, %xmm0, %xmm014309; AVX512-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0],xmm5[1],xmm1[2,3,4,5,6,7]14310; AVX512-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm014311; AVX512-NEXT: vpshufd {{.*#+}} xmm1 = xmm1[0,1,0,3]14312; AVX512-NEXT: vpshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,5,4,7]14313; AVX512-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm114314; AVX512-NEXT: vpblendw {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7],ymm0[8,9,10,11,12],ymm1[13,14,15]14315; AVX512-NEXT: vpunpckhwd {{.*#+}} xmm1 = xmm11[4],xmm3[4],xmm11[5],xmm3[5],xmm11[6],xmm3[6],xmm11[7],xmm3[7]14316; AVX512-NEXT: vpshufd {{.*#+}} xmm1 = xmm1[2,1,2,3]14317; AVX512-NEXT: vpshuflw {{.*#+}} xmm1 = xmm1[0,3,2,3,4,5,6,7]14318; AVX512-NEXT: vinserti32x4 $2, %xmm1, %zmm0, %zmm014319; AVX512-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill14320; AVX512-NEXT: vmovdqa 704(%rdi), %ymm714321; AVX512-NEXT: vmovdqa 736(%rdi), %ymm514322; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm5[0,1],ymm7[2,3],ymm5[4,5],ymm7[6,7]14323; AVX512-NEXT: vextracti128 $1, %ymm0, %xmm114324; AVX512-NEXT: vpblendw {{.*#+}} xmm0 = xmm1[0,1,2],xmm0[3],xmm1[4],xmm0[5],xmm1[6,7]14325; AVX512-NEXT: vmovdqa 800(%rdi), %ymm314326; AVX512-NEXT: vmovdqa 768(%rdi), %ymm414327; AVX512-NEXT: vpblendd {{.*#+}} ymm1 = ymm4[0,1,2],ymm3[3],ymm4[4,5],ymm3[6],ymm4[7]14328; AVX512-NEXT: vmovdqa64 %ymm3, %ymm2014329; AVX512-NEXT: vpermq {{.*#+}} ymm2 = ymm1[2,3,0,1]14330; AVX512-NEXT: vpblendw {{.*#+}} ymm2 = ymm1[0,1,2,3,4,5],ymm2[6],ymm1[7,8,9,10,11,12,13],ymm2[14],ymm1[15]14331; AVX512-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[0,2,2,1]14332; AVX512-NEXT: vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,7,6,7]14333; AVX512-NEXT: vmovdqa {{.*#+}} ymm1 = [0,1,14,15,12,13,10,11,4,5,6,7,8,9,2,3,16,17,30,31,28,29,26,27,20,21,22,23,24,25,18,19]14334; AVX512-NEXT: vpshufb %ymm1, %ymm2, %ymm214335; AVX512-NEXT: vpblendw {{.*#+}} xmm0 = xmm2[0,1,2],xmm0[3,4,5,6],xmm2[7]14336; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm2[4,5,6,7]14337; AVX512-NEXT: vmovdqa 832(%rdi), %ymm314338; AVX512-NEXT: vmovdqa 864(%rdi), %ymm814339; AVX512-NEXT: vpblendd {{.*#+}} ymm2 = ymm8[0,1],ymm3[2],ymm8[3,4],ymm3[5],ymm8[6,7]14340; AVX512-NEXT: vmovdqa64 %ymm3, %ymm2114341; AVX512-NEXT: vextracti128 $1, %ymm2, %xmm314342; AVX512-NEXT: vpshuflw {{.*#+}} xmm3 = xmm3[0,1,3,1,4,5,6,7]14343; AVX512-NEXT: vpshufd {{.*#+}} xmm2 = xmm2[2,1,2,3]14344; AVX512-NEXT: vpshuflw {{.*#+}} xmm2 = xmm2[0,1,0,2,4,5,6,7]14345; AVX512-NEXT: vpunpcklwd {{.*#+}} xmm2 = xmm2[0],xmm3[0],xmm2[1],xmm3[1],xmm2[2],xmm3[2],xmm2[3],xmm3[3]14346; AVX512-NEXT: vinserti128 $1, %xmm2, %ymm0, %ymm214347; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm2[6,7]14348; AVX512-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill14349; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm15[0,1,2],ymm10[3],ymm15[4,5],ymm10[6],ymm15[7]14350; AVX512-NEXT: vmovdqa64 %ymm15, %ymm2214351; AVX512-NEXT: vmovdqa64 %ymm10, %ymm2314352; AVX512-NEXT: vextracti128 $1, %ymm0, %xmm214353; AVX512-NEXT: vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,6,4,7]14354; AVX512-NEXT: vpshufd {{.*#+}} xmm2 = xmm2[0,1,2,1]14355; AVX512-NEXT: vpshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,4,5,7,7]14356; AVX512-NEXT: vpunpckhwd {{.*#+}} xmm0 = xmm0[4],xmm2[4],xmm0[5],xmm2[5],xmm0[6],xmm2[6],xmm0[7],xmm2[7]14357; AVX512-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm014358; AVX512-NEXT: vpshufd {{.*#+}} ymm2 = ymm24[0,1,2,1,4,5,6,5]14359; AVX512-NEXT: vpshufhw {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5,6,5,8,9,10,11,12,13,14,13]14360; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5,6],ymm2[7]14361; AVX512-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload14362; AVX512-NEXT: vinserti32x4 $2, {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm2 {%k1} # 16-byte Folded Reload14363; AVX512-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill14364; AVX512-NEXT: vmovdqa 256(%rdi), %ymm214365; AVX512-NEXT: vmovdqa 288(%rdi), %ymm1514366; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm15[0,1],ymm2[2,3],ymm15[4,5],ymm2[6,7]14367; AVX512-NEXT: vmovdqa64 %ymm2, %ymm2514368; AVX512-NEXT: vextracti128 $1, %ymm0, %xmm214369; AVX512-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0,1,2],xmm0[3],xmm2[4],xmm0[5],xmm2[6,7]14370; AVX512-NEXT: vmovdqa 352(%rdi), %ymm1414371; AVX512-NEXT: vmovdqa 320(%rdi), %ymm1014372; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm10[0,1,2],ymm14[3],ymm10[4,5],ymm14[6],ymm10[7]14373; AVX512-NEXT: vpermq {{.*#+}} ymm13 = ymm0[2,3,0,1]14374; AVX512-NEXT: vpblendw {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm13[6],ymm0[7,8,9,10,11,12,13],ymm13[14],ymm0[15]14375; AVX512-NEXT: vpshufb %ymm1, %ymm0, %ymm014376; AVX512-NEXT: vpshufd {{.*#+}} xmm1 = xmm2[0,2,2,1]14377; AVX512-NEXT: vpshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,4,7,6,7]14378; AVX512-NEXT: vpblendw {{.*#+}} xmm1 = xmm0[0,1,2],xmm1[3,4,5,6],xmm0[7]14379; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]14380; AVX512-NEXT: vmovdqa 384(%rdi), %ymm114381; AVX512-NEXT: vmovdqa 416(%rdi), %ymm314382; AVX512-NEXT: vpblendd {{.*#+}} ymm13 = ymm3[0,1],ymm1[2],ymm3[3,4],ymm1[5],ymm3[6,7]14383; AVX512-NEXT: vextracti128 $1, %ymm13, %xmm1214384; AVX512-NEXT: vpshuflw {{.*#+}} xmm12 = xmm12[0,1,3,1,4,5,6,7]14385; AVX512-NEXT: vpshufd {{.*#+}} xmm13 = xmm13[2,1,2,3]14386; AVX512-NEXT: vpshuflw {{.*#+}} xmm13 = xmm13[0,1,0,2,4,5,6,7]14387; AVX512-NEXT: vpunpcklwd {{.*#+}} xmm12 = xmm13[0],xmm12[0],xmm13[1],xmm12[1],xmm13[2],xmm12[2],xmm13[3],xmm12[3]14388; AVX512-NEXT: vinserti128 $1, %xmm12, %ymm0, %ymm1214389; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm12[6,7]14390; AVX512-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill14391; AVX512-NEXT: vmovdqa64 %ymm25, %ymm214392; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm15[0,1,2],ymm2[3],ymm15[4,5],ymm2[6],ymm15[7]14393; AVX512-NEXT: vmovdqa64 %ymm15, %ymm2414394; AVX512-NEXT: vextracti128 $1, %ymm0, %xmm1214395; AVX512-NEXT: vpblendw {{.*#+}} xmm0 = xmm12[0,1,2,3],xmm0[4],xmm12[5],xmm0[6],xmm12[7]14396; AVX512-NEXT: vpblendd {{.*#+}} ymm12 = ymm14[0],ymm10[1],ymm14[2,3],ymm10[4],ymm14[5,6,7]14397; AVX512-NEXT: vpermq {{.*#+}} ymm13 = ymm12[2,3,0,1]14398; AVX512-NEXT: vpblendw {{.*#+}} ymm12 = ymm13[0],ymm12[1,2,3,4,5,6],ymm13[7,8],ymm12[9,10,11,12,13,14],ymm13[15]14399; AVX512-NEXT: vpbroadcastq {{.*#+}} xmm13 = [10,11,8,9,6,7,12,13,10,11,8,9,6,7,12,13]14400; AVX512-NEXT: vpshufb %xmm13, %xmm0, %xmm014401; AVX512-NEXT: vmovdqa {{.*#+}} ymm9 = [2,3,0,1,14,15,12,13,4,5,4,5,4,5,4,5,18,19,16,17,30,31,28,29,20,21,20,21,20,21,20,21]14402; AVX512-NEXT: vpshufb %ymm9, %ymm12, %ymm1214403; AVX512-NEXT: vpblendw {{.*#+}} xmm0 = xmm12[0,1,2],xmm0[3,4,5,6],xmm12[7]14404; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm12[4,5,6,7]14405; AVX512-NEXT: vmovdqa %ymm1, %ymm1514406; AVX512-NEXT: vpblendd {{.*#+}} ymm12 = ymm3[0,1],ymm1[2,3],ymm3[4,5],ymm1[6,7]14407; AVX512-NEXT: vextracti32x4 $1, %ymm12, %xmm2514408; AVX512-NEXT: vpshufd {{.*#+}} xmm11 = xmm25[2,1,2,3]14409; AVX512-NEXT: vpshuflw {{.*#+}} xmm11 = xmm11[0,1,0,2,4,5,6,7]14410; AVX512-NEXT: vpshufd {{.*#+}} xmm12 = xmm12[2,1,2,3]14411; AVX512-NEXT: vpshuflw {{.*#+}} xmm12 = xmm12[0,1,1,3,4,5,6,7]14412; AVX512-NEXT: vpunpcklwd {{.*#+}} xmm11 = xmm12[0],xmm11[0],xmm12[1],xmm11[1],xmm12[2],xmm11[2],xmm12[3],xmm11[3]14413; AVX512-NEXT: vinserti128 $1, %xmm11, %ymm0, %ymm1114414; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm11[6,7]14415; AVX512-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill14416; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm5[0,1,2],ymm7[3],ymm5[4,5],ymm7[6],ymm5[7]14417; AVX512-NEXT: vextracti128 $1, %ymm0, %xmm1114418; AVX512-NEXT: vpblendw {{.*#+}} xmm0 = xmm11[0,1,2,3],xmm0[4],xmm11[5],xmm0[6],xmm11[7]14419; AVX512-NEXT: vpshufb %xmm13, %xmm0, %xmm014420; AVX512-NEXT: vmovdqa64 %ymm20, %ymm614421; AVX512-NEXT: vpblendd {{.*#+}} ymm11 = ymm6[0],ymm4[1],ymm6[2,3],ymm4[4],ymm6[5,6,7]14422; AVX512-NEXT: vpermq {{.*#+}} ymm12 = ymm11[2,3,0,1]14423; AVX512-NEXT: vpblendw {{.*#+}} ymm11 = ymm12[0],ymm11[1,2,3,4,5,6],ymm12[7,8],ymm11[9,10,11,12,13,14],ymm12[15]14424; AVX512-NEXT: vpshufb %ymm9, %ymm11, %ymm114425; AVX512-NEXT: vpblendw {{.*#+}} xmm0 = xmm1[0,1,2],xmm0[3,4,5,6],xmm1[7]14426; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]14427; AVX512-NEXT: vmovdqa64 %ymm21, %ymm914428; AVX512-NEXT: vpblendd {{.*#+}} ymm1 = ymm8[0,1],ymm9[2,3],ymm8[4,5],ymm9[6,7]14429; AVX512-NEXT: vextracti128 $1, %ymm1, %xmm1114430; AVX512-NEXT: vpshufd {{.*#+}} xmm11 = xmm11[2,1,2,3]14431; AVX512-NEXT: vpshuflw {{.*#+}} xmm11 = xmm11[0,1,0,2,4,5,6,7]14432; AVX512-NEXT: vpshufd {{.*#+}} xmm1 = xmm1[2,1,2,3]14433; AVX512-NEXT: vpshuflw {{.*#+}} xmm1 = xmm1[0,1,1,3,4,5,6,7]14434; AVX512-NEXT: vpunpcklwd {{.*#+}} xmm1 = xmm1[0],xmm11[0],xmm1[1],xmm11[1],xmm1[2],xmm11[2],xmm1[3],xmm11[3]14435; AVX512-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm114436; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]14437; AVX512-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill14438; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm14[0],ymm10[1],ymm14[2,3,4],ymm10[5],ymm14[6,7]14439; AVX512-NEXT: vmovdqa64 %ymm14, %ymm2114440; AVX512-NEXT: vmovdqa {{.*#+}} ymm1 = [4,5,u,u,0,1,14,15,8,9,10,11,4,5,6,7,20,21,u,u,16,17,30,31,24,25,26,27,20,21,22,23]14441; AVX512-NEXT: vpshufb %ymm1, %ymm0, %ymm1114442; AVX512-NEXT: vpermq {{.*#+}} ymm0 = ymm0[2,3,0,1]14443; AVX512-NEXT: vpblendw {{.*#+}} ymm0 = ymm11[0],ymm0[1],ymm11[2,3,4,5,6,7,8],ymm0[9],ymm11[10,11,12,13,14,15]14444; AVX512-NEXT: vmovdqa64 %ymm24, %ymm1414445; AVX512-NEXT: vpblendd {{.*#+}} ymm11 = ymm2[0,1],ymm14[2],ymm2[3,4,5],ymm14[6],ymm2[7]14446; AVX512-NEXT: vextracti128 $1, %ymm11, %xmm1214447; AVX512-NEXT: vpblendw {{.*#+}} xmm11 = xmm11[0,1,2,3],xmm12[4],xmm11[5],xmm12[6],xmm11[7]14448; AVX512-NEXT: vmovdqa {{.*#+}} ymm12 = [0,1,2,3,0,1,14,15,12,13,10,11,8,9,128,128,128,128,128,128,128,128,128,128,u,u,u,u,u,u,u,u]14449; AVX512-NEXT: vpshufb %ymm12, %ymm11, %ymm1114450; AVX512-NEXT: vmovdqa64 {{.*#+}} ymm20 = [65535,65535,65535,65535,65535,65535,65535,0,0,0,0,0,65535,65535,65535,65535]14451; AVX512-NEXT: vpternlogq {{.*#+}} ymm11 = ymm11 | (ymm0 & ~ymm20)14452; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm3[0,1,2],ymm15[3],ymm3[4,5],ymm15[6],ymm3[7]14453; AVX512-NEXT: vmovdqa %ymm15, %ymm1314454; AVX512-NEXT: vextracti32x4 $1, %ymm0, %xmm2514455; AVX512-NEXT: vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,5,6,4]14456; AVX512-NEXT: vpshufd {{.*#+}} xmm15 = xmm25[0,1,2,1]14457; AVX512-NEXT: vpshufhw {{.*#+}} xmm15 = xmm15[0,1,2,3,4,5,5,7]14458; AVX512-NEXT: vpunpckhwd {{.*#+}} xmm0 = xmm0[4],xmm15[4],xmm0[5],xmm15[5],xmm0[6],xmm15[6],xmm0[7],xmm15[7]14459; AVX512-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm014460; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm11[0,1,2,3,4,5],ymm0[6,7]14461; AVX512-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill14462; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm6[0],ymm4[1],ymm6[2,3,4],ymm4[5],ymm6[6,7]14463; AVX512-NEXT: vpshufb %ymm1, %ymm0, %ymm114464; AVX512-NEXT: vpermq {{.*#+}} ymm0 = ymm0[2,3,0,1]14465; AVX512-NEXT: vpblendw {{.*#+}} ymm0 = ymm1[0],ymm0[1],ymm1[2,3,4,5,6,7,8],ymm0[9],ymm1[10,11,12,13,14,15]14466; AVX512-NEXT: vpblendd {{.*#+}} ymm1 = ymm7[0,1],ymm5[2],ymm7[3,4,5],ymm5[6],ymm7[7]14467; AVX512-NEXT: vextracti128 $1, %ymm1, %xmm1114468; AVX512-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1,2,3],xmm11[4],xmm1[5],xmm11[6],xmm1[7]14469; AVX512-NEXT: vpshufb %ymm12, %ymm1, %ymm114470; AVX512-NEXT: vpternlogq {{.*#+}} ymm1 = ymm1 | (ymm0 & ~ymm20)14471; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm8[0,1,2],ymm9[3],ymm8[4,5],ymm9[6],ymm8[7]14472; AVX512-NEXT: vextracti128 $1, %ymm0, %xmm1114473; AVX512-NEXT: vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,5,6,4]14474; AVX512-NEXT: vpshufd {{.*#+}} xmm11 = xmm11[0,1,2,1]14475; AVX512-NEXT: vpshufhw {{.*#+}} xmm11 = xmm11[0,1,2,3,4,5,5,7]14476; AVX512-NEXT: vpunpckhwd {{.*#+}} xmm0 = xmm0[4],xmm11[4],xmm0[5],xmm11[5],xmm0[6],xmm11[6],xmm0[7],xmm11[7]14477; AVX512-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm014478; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]14479; AVX512-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill14480; AVX512-NEXT: vmovdqa64 %ymm22, %ymm014481; AVX512-NEXT: vmovdqa64 %ymm23, %ymm114482; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2,3],ymm1[4],ymm0[5,6,7]14483; AVX512-NEXT: vextracti128 $1, %ymm0, %xmm114484; AVX512-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0],xmm1[1],xmm0[2,3,4,5],xmm1[6],xmm0[7]14485; AVX512-NEXT: vpshuflw {{.*#+}} xmm0 = xmm0[0,2,1,0,4,5,6,7]14486; AVX512-NEXT: vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,7,6,6,7]14487; AVX512-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm014488; AVX512-NEXT: vpshufd {{.*#+}} ymm1 = ymm19[0,1,2,0,4,5,6,4]14489; AVX512-NEXT: vpshufhw {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,7,4,8,9,10,11,12,13,15,12]14490; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5,6],ymm1[7]14491; AVX512-NEXT: vpshufhw $230, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload14492; AVX512-NEXT: # xmm1 = mem[0,1,2,3,6,5,6,7]14493; AVX512-NEXT: vpshufd {{.*#+}} xmm1 = xmm1[2,2,2,2]14494; AVX512-NEXT: vinserti32x4 $2, %xmm1, %zmm0, %zmm014495; AVX512-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill14496; AVX512-NEXT: vmovdqa %ymm2, %ymm1514497; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm2[0,1,2],ymm14[3],ymm2[4,5],ymm14[6],ymm2[7]14498; AVX512-NEXT: vextracti128 $1, %ymm0, %xmm114499; AVX512-NEXT: vpblendw {{.*#+}} xmm0 = xmm1[0],xmm0[1],xmm1[2,3,4,5],xmm0[6],xmm1[7]14500; AVX512-NEXT: vpblendd {{.*#+}} ymm1 = ymm13[0,1],ymm3[2],ymm13[3,4,5],ymm3[6],ymm13[7]14501; AVX512-NEXT: vmovdqa64 %ymm3, %ymm1914502; AVX512-NEXT: vmovdqa64 %ymm13, %ymm2614503; AVX512-NEXT: vextracti128 $1, %ymm1, %xmm1114504; AVX512-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1,2,3],xmm11[4],xmm1[5],xmm11[6],xmm1[7]14505; AVX512-NEXT: vmovdqa {{.*#+}} xmm11 = [0,1,2,3,2,3,0,1,14,15,12,13,10,11,128,128]14506; AVX512-NEXT: vpshufb %xmm11, %xmm0, %xmm014507; AVX512-NEXT: vmovdqa %ymm10, %ymm214508; AVX512-NEXT: vmovdqa64 %ymm21, %ymm1014509; AVX512-NEXT: vpblendd {{.*#+}} ymm12 = ymm10[0,1],ymm2[2],ymm10[3,4],ymm2[5],ymm10[6,7]14510; AVX512-NEXT: vpermq {{.*#+}} ymm12 = ymm12[1,1,2,0]14511; AVX512-NEXT: vmovdqa {{.*#+}} ymm13 = [128,128,128,128,128,128,128,128,128,128,128,128,128,128,0,1,22,23,28,29,18,19,128,128,128,128,128,128,128,128,128,128]14512; AVX512-NEXT: vpshufb %ymm13, %ymm12, %ymm1214513; AVX512-NEXT: vpor %ymm0, %ymm12, %ymm014514; AVX512-NEXT: vpshuflw {{.*#+}} xmm1 = xmm1[0,0,0,0,4,5,6,7]14515; AVX512-NEXT: vpshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,7,6,5,4]14516; AVX512-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm114517; AVX512-NEXT: vpblendw {{.*#+}} ymm1 = ymm12[0,1,2],ymm1[3,4,5,6,7],ymm12[8,9,10],ymm1[11,12,13,14,15]14518; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]14519; AVX512-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill14520; AVX512-NEXT: vmovdqa64 %ymm17, %ymm014521; AVX512-NEXT: vmovdqa64 %ymm30, %ymm114522; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2,3],ymm1[4],ymm0[5,6,7]14523; AVX512-NEXT: vextracti128 $1, %ymm0, %xmm114524; AVX512-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0],xmm1[1],xmm0[2,3,4,5],xmm1[6],xmm0[7]14525; AVX512-NEXT: vpshuflw {{.*#+}} xmm0 = xmm0[0,2,1,0,4,5,6,7]14526; AVX512-NEXT: vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,7,6,6,7]14527; AVX512-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm014528; AVX512-NEXT: vpshufd {{.*#+}} ymm1 = ymm16[0,1,2,0,4,5,6,4]14529; AVX512-NEXT: vpshufhw {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,7,4,8,9,10,11,12,13,15,12]14530; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5,6],ymm1[7]14531; AVX512-NEXT: vpshufhw $230, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload14532; AVX512-NEXT: # xmm1 = mem[0,1,2,3,6,5,6,7]14533; AVX512-NEXT: vpshufd {{.*#+}} xmm1 = xmm1[2,2,2,2]14534; AVX512-NEXT: vinserti32x4 $2, %xmm1, %zmm0, %zmm2514535; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm7[0,1,2],ymm5[3],ymm7[4,5],ymm5[6],ymm7[7]14536; AVX512-NEXT: vmovdqa64 %ymm5, %ymm2414537; AVX512-NEXT: vmovdqa64 %ymm7, %ymm2314538; AVX512-NEXT: vextracti128 $1, %ymm0, %xmm114539; AVX512-NEXT: vpblendw {{.*#+}} xmm0 = xmm1[0],xmm0[1],xmm1[2,3,4,5],xmm0[6],xmm1[7]14540; AVX512-NEXT: vpshufb %xmm11, %xmm0, %xmm014541; AVX512-NEXT: vpblendd {{.*#+}} ymm1 = ymm6[0,1],ymm4[2],ymm6[3,4],ymm4[5],ymm6[6,7]14542; AVX512-NEXT: vmovdqa64 %ymm6, %ymm2114543; AVX512-NEXT: vmovdqa64 %ymm4, %ymm2214544; AVX512-NEXT: vpermq {{.*#+}} ymm1 = ymm1[1,1,2,0]14545; AVX512-NEXT: vpshufb %ymm13, %ymm1, %ymm114546; AVX512-NEXT: vpblendd {{.*#+}} ymm11 = ymm9[0,1],ymm8[2],ymm9[3,4,5],ymm8[6],ymm9[7]14547; AVX512-NEXT: vmovdqa %ymm8, %ymm514548; AVX512-NEXT: vmovdqa %ymm9, %ymm414549; AVX512-NEXT: vextracti128 $1, %ymm11, %xmm1214550; AVX512-NEXT: vpblendw {{.*#+}} xmm11 = xmm11[0,1,2,3],xmm12[4],xmm11[5],xmm12[6],xmm11[7]14551; AVX512-NEXT: vpor %ymm1, %ymm0, %ymm014552; AVX512-NEXT: vpshuflw {{.*#+}} xmm11 = xmm11[0,0,0,0,4,5,6,7]14553; AVX512-NEXT: vpshufhw {{.*#+}} xmm11 = xmm11[0,1,2,3,7,6,5,4]14554; AVX512-NEXT: vinserti128 $1, %xmm11, %ymm0, %ymm1114555; AVX512-NEXT: vpblendw {{.*#+}} ymm1 = ymm1[0,1,2],ymm11[3,4,5,6,7],ymm1[8,9,10],ymm11[11,12,13,14,15]14556; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]14557; AVX512-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill14558; AVX512-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload14559; AVX512-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %ymm16 # 32-byte Reload14560; AVX512-NEXT: vmovdqa64 %ymm16, %ymm014561; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1],ymm1[2],ymm0[3,4,5],ymm1[6],ymm0[7]14562; AVX512-NEXT: vmovdqa64 %ymm1, %ymm3114563; AVX512-NEXT: vmovdqa {{.*#+}} ymm3 = [8,9,8,9,8,9,8,9,0,1,14,15,u,u,10,11,24,25,24,25,24,25,24,25,16,17,30,31,u,u,26,27]14564; AVX512-NEXT: vpshufb %ymm3, %ymm0, %ymm1114565; AVX512-NEXT: vpermq {{.*#+}} ymm0 = ymm0[2,3,0,1]14566; AVX512-NEXT: vpblendw {{.*#+}} ymm0 = ymm11[0,1,2,3,4,5],ymm0[6],ymm11[7,8,9,10,11,12,13],ymm0[14],ymm11[15]14567; AVX512-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload14568; AVX512-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %ymm20 # 32-byte Reload14569; AVX512-NEXT: vmovdqa64 %ymm20, %ymm114570; AVX512-NEXT: vpblendd {{.*#+}} ymm11 = ymm6[0,1],ymm1[2],ymm6[3,4],ymm1[5],ymm6[6,7]14571; AVX512-NEXT: vmovdqa64 %ymm6, %ymm2814572; AVX512-NEXT: vextracti128 $1, %ymm11, %xmm1214573; AVX512-NEXT: vpshuflw {{.*#+}} xmm12 = xmm12[3,1,2,3,4,5,6,7]14574; AVX512-NEXT: vpshufd {{.*#+}} xmm11 = xmm11[2,1,2,3]14575; AVX512-NEXT: vpshuflw {{.*#+}} xmm11 = xmm11[0,2,2,3,4,5,6,7]14576; AVX512-NEXT: vpunpcklwd {{.*#+}} xmm11 = xmm11[0],xmm12[0],xmm11[1],xmm12[1],xmm11[2],xmm12[2],xmm11[3],xmm12[3]14577; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm11[0,1],ymm0[2,3,4,5,6,7]14578; AVX512-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill14579; AVX512-NEXT: vmovdqa64 %ymm26, %ymm714580; AVX512-NEXT: vmovdqa64 %ymm19, %ymm814581; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm7[0,1,2],ymm8[3],ymm7[4,5],ymm8[6],ymm7[7]14582; AVX512-NEXT: vextracti128 $1, %ymm0, %xmm1114583; AVX512-NEXT: vpblendw {{.*#+}} xmm0 = xmm11[0],xmm0[1],xmm11[2,3,4,5],xmm0[6],xmm11[7]14584; AVX512-NEXT: vmovdqa %ymm10, %ymm914585; AVX512-NEXT: vpblendd {{.*#+}} ymm11 = ymm10[0,1],ymm2[2,3],ymm10[4,5],ymm2[6,7]14586; AVX512-NEXT: vmovdqa64 %ymm2, %ymm1714587; AVX512-NEXT: vpermq {{.*#+}} ymm13 = ymm10[0,1,0,1]14588; AVX512-NEXT: vpblendw {{.*#+}} ymm11 = ymm11[0,1,2],ymm13[3],ymm11[4,5,6,7,8,9,10],ymm13[11],ymm11[12,13,14,15]14589; AVX512-NEXT: vpblendd {{.*#+}} ymm13 = ymm14[0],ymm15[1],ymm14[2,3],ymm15[4],ymm14[5,6,7]14590; AVX512-NEXT: vmovdqa64 %ymm15, %ymm2614591; AVX512-NEXT: vmovdqa64 %ymm14, %ymm2714592; AVX512-NEXT: vextracti128 $1, %ymm13, %xmm1514593; AVX512-NEXT: vpblendw {{.*#+}} xmm13 = xmm13[0],xmm15[1],xmm13[2,3,4,5],xmm15[6],xmm13[7]14594; AVX512-NEXT: vmovdqa {{.*#+}} xmm6 = [2,3,2,3,2,3,2,3,0,1,14,15,12,13,10,11]14595; AVX512-NEXT: vpshufb %xmm6, %xmm0, %xmm014596; AVX512-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm014597; AVX512-NEXT: vmovdqa {{.*#+}} ymm1 = [128,128,128,128,128,128,128,128,128,128,128,128,128,128,10,11,24,25,22,23,20,21,128,128,128,128,128,128,128,128,128,128]14598; AVX512-NEXT: vpshufb %ymm1, %ymm11, %ymm1114599; AVX512-NEXT: vpblendw {{.*#+}} ymm0 = ymm11[0,1,2],ymm0[3,4,5,6,7],ymm11[8,9,10],ymm0[11,12,13,14,15]14600; AVX512-NEXT: vmovdqa {{.*#+}} xmm2 = [0,1,2,3,4,5,2,3,0,1,14,15,12,13,128,128]14601; AVX512-NEXT: vpshufb %xmm2, %xmm13, %xmm1314602; AVX512-NEXT: vpor %ymm11, %ymm13, %ymm1114603; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm11[0,1,2,3],ymm0[4,5,6,7]14604; AVX512-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill14605; AVX512-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload14606; AVX512-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Reload14607; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm15[0,1],ymm10[2],ymm15[3,4,5],ymm10[6],ymm15[7]14608; AVX512-NEXT: vmovdqa64 %ymm10, %ymm2914609; AVX512-NEXT: vpshufb %ymm3, %ymm0, %ymm314610; AVX512-NEXT: vpermq {{.*#+}} ymm0 = ymm0[2,3,0,1]14611; AVX512-NEXT: vpblendw {{.*#+}} ymm0 = ymm3[0,1,2,3,4,5],ymm0[6],ymm3[7,8,9,10,11,12,13],ymm0[14],ymm3[15]14612; AVX512-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload14613; AVX512-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm13 # 32-byte Reload14614; AVX512-NEXT: vpblendd {{.*#+}} ymm3 = ymm13[0,1],ymm10[2],ymm13[3,4],ymm10[5],ymm13[6,7]14615; AVX512-NEXT: vmovdqa64 %ymm10, %ymm3014616; AVX512-NEXT: vextracti128 $1, %ymm3, %xmm1114617; AVX512-NEXT: vpshuflw {{.*#+}} xmm11 = xmm11[3,1,2,3,4,5,6,7]14618; AVX512-NEXT: vpshufd {{.*#+}} xmm3 = xmm3[2,1,2,3]14619; AVX512-NEXT: vpshuflw {{.*#+}} xmm3 = xmm3[0,2,2,3,4,5,6,7]14620; AVX512-NEXT: vpunpcklwd {{.*#+}} xmm3 = xmm3[0],xmm11[0],xmm3[1],xmm11[1],xmm3[2],xmm11[2],xmm3[3],xmm11[3]14621; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm3[0,1],ymm0[2,3,4,5,6,7]14622; AVX512-NEXT: vmovdqa64 {{.*#+}} zmm19 = [65535,65535,65535,65535,65535,65535,65535,65535,65535,0,0,0,0,0,0,0,0,0,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535]14623; AVX512-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload14624; AVX512-NEXT: vpternlogq {{.*#+}} zmm3 = zmm3 ^ (zmm19 & (zmm3 ^ zmm0))14625; AVX512-NEXT: vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill14626; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm4[0,1,2],ymm5[3],ymm4[4,5],ymm5[6],ymm4[7]14627; AVX512-NEXT: vmovdqa %ymm4, %ymm1414628; AVX512-NEXT: vmovdqa64 %ymm5, %ymm1814629; AVX512-NEXT: vextracti128 $1, %ymm0, %xmm314630; AVX512-NEXT: vpblendw {{.*#+}} xmm0 = xmm3[0],xmm0[1],xmm3[2,3,4,5],xmm0[6],xmm3[7]14631; AVX512-NEXT: vpshufb %xmm6, %xmm0, %xmm014632; AVX512-NEXT: vmovdqa64 %ymm21, %ymm1214633; AVX512-NEXT: vmovdqa64 %ymm22, %ymm414634; AVX512-NEXT: vmovdqu64 %ymm22, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill14635; AVX512-NEXT: vpblendd {{.*#+}} ymm3 = ymm12[0,1],ymm4[2,3],ymm12[4,5],ymm4[6,7]14636; AVX512-NEXT: vpermq {{.*#+}} ymm11 = ymm21[0,1,0,1]14637; AVX512-NEXT: vpblendw {{.*#+}} ymm3 = ymm3[0,1,2],ymm11[3],ymm3[4,5,6,7,8,9,10],ymm11[11],ymm3[12,13,14,15]14638; AVX512-NEXT: vpshufb %ymm1, %ymm3, %ymm114639; AVX512-NEXT: vmovdqa64 %ymm24, %ymm614640; AVX512-NEXT: vmovdqa64 %ymm23, %ymm514641; AVX512-NEXT: vpblendd {{.*#+}} ymm3 = ymm6[0],ymm5[1],ymm6[2,3],ymm5[4],ymm6[5,6,7]14642; AVX512-NEXT: vextracti128 $1, %ymm3, %xmm1114643; AVX512-NEXT: vpblendw {{.*#+}} xmm3 = xmm3[0],xmm11[1],xmm3[2,3,4,5],xmm11[6],xmm3[7]14644; AVX512-NEXT: vpshufb %xmm2, %xmm3, %xmm214645; AVX512-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm014646; AVX512-NEXT: vpblendw {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3,4,5,6,7],ymm1[8,9,10],ymm0[11,12,13,14,15]14647; AVX512-NEXT: vpor %ymm1, %ymm2, %ymm114648; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]14649; AVX512-NEXT: vmovdqu %ymm0, (%rsp) # 32-byte Spill14650; AVX512-NEXT: vmovdqa64 %ymm17, %ymm014651; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm9[0,1,2],ymm0[3],ymm9[4,5],ymm0[6],ymm9[7]14652; AVX512-NEXT: vmovdqa64 %ymm9, %ymm2414653; AVX512-NEXT: vmovdqa64 %ymm17, %ymm2314654; AVX512-NEXT: vpermq {{.*#+}} ymm1 = ymm0[2,3,0,1]14655; AVX512-NEXT: vpblendw {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4],ymm0[5,6,7,8,9,10,11],ymm1[12],ymm0[13,14,15]14656; AVX512-NEXT: vpblendd {{.*#+}} ymm1 = ymm8[0],ymm7[1],ymm8[2,3],ymm7[4],ymm8[5,6,7]14657; AVX512-NEXT: vmovdqa64 %ymm8, %ymm1714658; AVX512-NEXT: vmovdqa64 %ymm7, %ymm2114659; AVX512-NEXT: vextracti128 $1, %ymm1, %xmm214660; AVX512-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0],xmm2[1],xmm1[2,3,4,5],xmm2[6],xmm1[7]14661; AVX512-NEXT: vmovdqa64 %ymm26, %ymm214662; AVX512-NEXT: vmovdqa64 %ymm27, %ymm314663; AVX512-NEXT: vpblendd {{.*#+}} ymm2 = ymm3[0],ymm2[1],ymm3[2,3,4],ymm2[5],ymm3[6,7]14664; AVX512-NEXT: vextracti128 $1, %ymm2, %xmm314665; AVX512-NEXT: vpblendw {{.*#+}} xmm2 = xmm3[0],xmm2[1],xmm3[2],xmm2[3],xmm3[4,5,6,7]14666; AVX512-NEXT: vmovdqa {{.*#+}} ymm3 = [128,128,128,128,128,128,128,128,128,128,128,128,128,128,12,13,26,27,24,25,22,23,128,128,128,128,128,128,128,128,128,128]14667; AVX512-NEXT: vpshufb %ymm3, %ymm0, %ymm014668; AVX512-NEXT: vmovdqa {{.*#+}} xmm11 = [4,5,4,5,4,5,4,5,2,3,0,1,14,15,12,13]14669; AVX512-NEXT: vpshufb %xmm11, %xmm1, %xmm114670; AVX512-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm114671; AVX512-NEXT: vpblendw {{.*#+}} ymm1 = ymm0[0,1,2],ymm1[3,4,5,6,7],ymm0[8,9,10],ymm1[11,12,13,14,15]14672; AVX512-NEXT: vmovdqa {{.*#+}} xmm7 = [0,1,2,3,6,7,4,5,2,3,0,1,14,15,128,128]14673; AVX512-NEXT: vpshufb %xmm7, %xmm2, %xmm214674; AVX512-NEXT: vmovdqa64 %xmm7, %xmm2214675; AVX512-NEXT: vpor %ymm0, %ymm2, %ymm014676; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]14677; AVX512-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill14678; AVX512-NEXT: vmovdqa64 %ymm31, %ymm1014679; AVX512-NEXT: vmovdqa64 %ymm16, %ymm814680; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm8[0,1,2],ymm10[3],ymm8[4,5],ymm10[6],ymm8[7]14681; AVX512-NEXT: vpermq {{.*#+}} ymm1 = ymm0[2,3,0,1]14682; AVX512-NEXT: vpblendw {{.*#+}} ymm0 = ymm1[0],ymm0[1,2,3,4,5,6],ymm1[7,8],ymm0[9,10,11,12,13,14],ymm1[15]14683; AVX512-NEXT: vmovdqa64 %ymm28, %ymm914684; AVX512-NEXT: vmovdqa64 %ymm20, %ymm714685; AVX512-NEXT: vpblendd {{.*#+}} ymm1 = ymm9[0,1],ymm7[2,3],ymm9[4,5],ymm7[6,7]14686; AVX512-NEXT: vextracti128 $1, %ymm1, %xmm214687; AVX512-NEXT: vpshufd {{.*#+}} xmm2 = xmm2[2,1,2,3]14688; AVX512-NEXT: vpshuflw {{.*#+}} xmm2 = xmm2[0,2,2,3,4,5,6,7]14689; AVX512-NEXT: vpshufd {{.*#+}} xmm1 = xmm1[2,1,2,3]14690; AVX512-NEXT: vpshuflw {{.*#+}} xmm1 = xmm1[1,3,2,3,4,5,6,7]14691; AVX512-NEXT: vpunpcklwd {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1],xmm1[2],xmm2[2],xmm1[3],xmm2[3]14692; AVX512-NEXT: vmovdqa {{.*#+}} ymm2 = [10,11,10,11,10,11,10,11,2,3,0,1,14,15,12,13,26,27,26,27,26,27,26,27,18,19,16,17,30,31,28,29]14693; AVX512-NEXT: vpshufb %ymm2, %ymm0, %ymm014694; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]14695; AVX512-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill14696; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm12[0,1,2],ymm4[3],ymm12[4,5],ymm4[6],ymm12[7]14697; AVX512-NEXT: vmovdqa64 %ymm12, %ymm2014698; AVX512-NEXT: vpermq {{.*#+}} ymm1 = ymm0[2,3,0,1]14699; AVX512-NEXT: vpblendw {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4],ymm0[5,6,7,8,9,10,11],ymm1[12],ymm0[13,14,15]14700; AVX512-NEXT: vpshufb %ymm3, %ymm0, %ymm014701; AVX512-NEXT: vmovdqa64 %ymm18, %ymm1214702; AVX512-NEXT: vpblendd {{.*#+}} ymm1 = ymm12[0],ymm14[1],ymm12[2,3],ymm14[4],ymm12[5,6,7]14703; AVX512-NEXT: vextracti128 $1, %ymm1, %xmm314704; AVX512-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0],xmm3[1],xmm1[2,3,4,5],xmm3[6],xmm1[7]14705; AVX512-NEXT: vpshufb %xmm11, %xmm1, %xmm114706; AVX512-NEXT: vpblendd {{.*#+}} ymm3 = ymm6[0],ymm5[1],ymm6[2,3,4],ymm5[5],ymm6[6,7]14707; AVX512-NEXT: vmovdqa64 %ymm5, %ymm2814708; AVX512-NEXT: vmovdqa64 %ymm6, %ymm3114709; AVX512-NEXT: vextracti128 $1, %ymm3, %xmm1114710; AVX512-NEXT: vpblendw {{.*#+}} xmm3 = xmm11[0],xmm3[1],xmm11[2],xmm3[3],xmm11[4,5,6,7]14711; AVX512-NEXT: vmovdqa64 %xmm22, %xmm414712; AVX512-NEXT: vpshufb %xmm4, %xmm3, %xmm314713; AVX512-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm114714; AVX512-NEXT: vpblendw {{.*#+}} ymm1 = ymm0[0,1,2],ymm1[3,4,5,6,7],ymm0[8,9,10],ymm1[11,12,13,14,15]14715; AVX512-NEXT: vpor %ymm0, %ymm3, %ymm014716; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]14717; AVX512-NEXT: vmovdqa64 %ymm0, %ymm1814718; AVX512-NEXT: vmovdqa64 %ymm29, %ymm114719; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm15[0,1,2],ymm1[3],ymm15[4,5],ymm1[6],ymm15[7]14720; AVX512-NEXT: vmovdqa64 %ymm29, %ymm1614721; AVX512-NEXT: vpermq {{.*#+}} ymm1 = ymm0[2,3,0,1]14722; AVX512-NEXT: vpblendw {{.*#+}} ymm0 = ymm1[0],ymm0[1,2,3,4,5,6],ymm1[7,8],ymm0[9,10,11,12,13,14],ymm1[15]14723; AVX512-NEXT: vpshufb %ymm2, %ymm0, %ymm014724; AVX512-NEXT: vmovdqa64 %ymm30, %ymm214725; AVX512-NEXT: vpblendd {{.*#+}} ymm1 = ymm13[0,1],ymm2[2,3],ymm13[4,5],ymm2[6,7]14726; AVX512-NEXT: vmovdqa64 %ymm13, %ymm2914727; AVX512-NEXT: vmovdqa64 %ymm30, %ymm1314728; AVX512-NEXT: vextracti128 $1, %ymm1, %xmm214729; AVX512-NEXT: vpshufd {{.*#+}} xmm2 = xmm2[2,1,2,3]14730; AVX512-NEXT: vpshuflw {{.*#+}} xmm2 = xmm2[0,2,2,3,4,5,6,7]14731; AVX512-NEXT: vpshufd {{.*#+}} xmm1 = xmm1[2,1,2,3]14732; AVX512-NEXT: vpshuflw {{.*#+}} xmm1 = xmm1[1,3,2,3,4,5,6,7]14733; AVX512-NEXT: vpunpcklwd {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1],xmm1[2],xmm2[2],xmm1[3],xmm2[3]14734; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]14735; AVX512-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm30 # 64-byte Reload14736; AVX512-NEXT: vpternlogq {{.*#+}} zmm30 = zmm30 ^ (zmm19 & (zmm30 ^ zmm0))14737; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm10[0],ymm8[1],ymm10[2,3],ymm8[4],ymm10[5,6,7]14738; AVX512-NEXT: vpermq {{.*#+}} ymm1 = ymm0[2,3,0,1]14739; AVX512-NEXT: vpblendw {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2,3,4,5,6,7,8],ymm1[9],ymm0[10,11,12,13,14,15]14740; AVX512-NEXT: vpblendd {{.*#+}} ymm1 = ymm9[0,1,2],ymm7[3],ymm9[4,5],ymm7[6],ymm9[7]14741; AVX512-NEXT: vextracti128 $1, %ymm1, %xmm214742; AVX512-NEXT: vpshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,6,4,6,7]14743; AVX512-NEXT: vpshufd {{.*#+}} xmm2 = xmm2[0,1,2,1]14744; AVX512-NEXT: vpshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,5,7,6,7]14745; AVX512-NEXT: vpunpckhwd {{.*#+}} xmm1 = xmm1[4],xmm2[4],xmm1[5],xmm2[5],xmm1[6],xmm2[6],xmm1[7],xmm2[7]14746; AVX512-NEXT: vmovdqa {{.*#+}} ymm9 = [12,13,12,13,12,13,12,13,4,5,2,3,0,1,14,15,28,29,28,29,28,29,28,29,20,21,18,19,16,17,30,31]14747; AVX512-NEXT: vpshufb %ymm9, %ymm0, %ymm014748; AVX512-NEXT: vpblendd {{.*#+}} ymm11 = ymm1[0,1],ymm0[2,3,4,5,6,7]14749; AVX512-NEXT: vmovdqa64 %ymm17, %ymm014750; AVX512-NEXT: vmovdqa64 %ymm21, %ymm114751; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2,3,4],ymm1[5],ymm0[6,7]14752; AVX512-NEXT: vextracti128 $1, %ymm0, %xmm114753; AVX512-NEXT: vpblendw {{.*#+}} xmm0 = xmm1[0],xmm0[1],xmm1[2],xmm0[3],xmm1[4,5,6,7]14754; AVX512-NEXT: vmovdqa64 %ymm26, %ymm114755; AVX512-NEXT: vmovdqa64 %ymm27, %ymm214756; AVX512-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0,1],ymm1[2],ymm2[3,4],ymm1[5],ymm2[6,7]14757; AVX512-NEXT: vextracti128 $1, %ymm1, %xmm214758; AVX512-NEXT: vpshuflw {{.*#+}} xmm2 = xmm2[0,3,1,3,4,5,6,7]14759; AVX512-NEXT: vpshufd {{.*#+}} xmm1 = xmm1[2,1,2,3]14760; AVX512-NEXT: vpshuflw {{.*#+}} xmm1 = xmm1[0,0,2,3,4,5,6,7]14761; AVX512-NEXT: vpunpcklwd {{.*#+}} xmm6 = xmm1[0],xmm2[0],xmm1[1],xmm2[1],xmm1[2],xmm2[2],xmm1[3],xmm2[3]14762; AVX512-NEXT: vinserti64x4 $1, {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm1 # 32-byte Folded Reload14763; AVX512-NEXT: vinserti64x4 $1, {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm3 # 32-byte Folded Reload14764; AVX512-NEXT: vinserti64x4 $1, {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm2 # 32-byte Folded Reload14765; AVX512-NEXT: vinserti64x4 $1, {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm4 # 32-byte Folded Reload14766; AVX512-NEXT: vmovdqa64 %ymm24, %ymm514767; AVX512-NEXT: vmovdqa64 %ymm23, %ymm714768; AVX512-NEXT: vpblendd {{.*#+}} ymm5 = ymm7[0,1],ymm5[2],ymm7[3,4,5],ymm5[6],ymm7[7]14769; AVX512-NEXT: vpermq {{.*#+}} ymm7 = ymm5[0,1,3,1]14770; AVX512-NEXT: vmovdqa {{.*#+}} ymm5 = [4,5,10,11,0,1,10,11,0,1,4,5,0,1,14,15,20,21,26,27,16,17,26,27,16,17,20,21,16,17,30,31]14771; AVX512-NEXT: vpshufb %ymm5, %ymm7, %ymm714772; AVX512-NEXT: vpblendd {{.*#+}} ymm6 = ymm7[0],ymm6[1,2],ymm7[3,4,5,6,7]14773; AVX512-NEXT: vmovdqa {{.*#+}} xmm7 = [0,1,2,3,12,13,6,7,4,5,2,3,0,1,14,15]14774; AVX512-NEXT: vpshufb %xmm7, %xmm0, %xmm014775; AVX512-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm014776; AVX512-NEXT: vpblendw {{.*#+}} ymm0 = ymm6[0,1,2],ymm0[3,4,5,6,7],ymm6[8,9,10],ymm0[11,12,13,14,15]14777; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm6[0,1,2,3],ymm0[4,5,6,7]14778; AVX512-NEXT: vmovdqa64 %ymm16, %ymm614779; AVX512-NEXT: vpblendd {{.*#+}} ymm6 = ymm6[0],ymm15[1],ymm6[2,3],ymm15[4],ymm6[5,6,7]14780; AVX512-NEXT: vpermq {{.*#+}} ymm8 = ymm6[2,3,0,1]14781; AVX512-NEXT: vpblendw {{.*#+}} ymm6 = ymm6[0],ymm8[1],ymm6[2,3,4,5,6,7,8],ymm8[9],ymm6[10,11,12,13,14,15]14782; AVX512-NEXT: vpshufb %ymm9, %ymm6, %ymm614783; AVX512-NEXT: vmovdqa64 %ymm29, %ymm814784; AVX512-NEXT: vpblendd {{.*#+}} ymm8 = ymm8[0,1,2],ymm13[3],ymm8[4,5],ymm13[6],ymm8[7]14785; AVX512-NEXT: vextracti128 $1, %ymm8, %xmm914786; AVX512-NEXT: vpshufhw {{.*#+}} xmm8 = xmm8[0,1,2,3,6,4,6,7]14787; AVX512-NEXT: vpshufd {{.*#+}} xmm9 = xmm9[0,1,2,1]14788; AVX512-NEXT: vpshufhw {{.*#+}} xmm9 = xmm9[0,1,2,3,5,7,6,7]14789; AVX512-NEXT: vpunpckhwd {{.*#+}} xmm8 = xmm8[4],xmm9[4],xmm8[5],xmm9[5],xmm8[6],xmm9[6],xmm8[7],xmm9[7]14790; AVX512-NEXT: vpblendd {{.*#+}} ymm6 = ymm8[0,1],ymm6[2,3,4,5,6,7]14791; AVX512-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm13 # 64-byte Reload14792; AVX512-NEXT: vpternlogq {{.*#+}} zmm13 = zmm13 ^ (zmm19 & (zmm13 ^ zmm6))14793; AVX512-NEXT: vpblendd {{.*#+}} ymm6 = ymm12[0],ymm14[1],ymm12[2,3,4],ymm14[5],ymm12[6,7]14794; AVX512-NEXT: vextracti128 $1, %ymm6, %xmm814795; AVX512-NEXT: vpblendw {{.*#+}} xmm6 = xmm8[0],xmm6[1],xmm8[2],xmm6[3],xmm8[4,5,6,7]14796; AVX512-NEXT: vpshufb %xmm7, %xmm6, %xmm614797; AVX512-NEXT: vmovdqa64 %ymm28, %ymm714798; AVX512-NEXT: vmovdqa64 %ymm31, %ymm814799; AVX512-NEXT: vpblendd {{.*#+}} ymm7 = ymm8[0,1],ymm7[2],ymm8[3,4],ymm7[5],ymm8[6,7]14800; AVX512-NEXT: vextracti128 $1, %ymm7, %xmm814801; AVX512-NEXT: vpshuflw {{.*#+}} xmm8 = xmm8[0,3,1,3,4,5,6,7]14802; AVX512-NEXT: vpshufd {{.*#+}} xmm7 = xmm7[2,1,2,3]14803; AVX512-NEXT: vpshuflw {{.*#+}} xmm7 = xmm7[0,0,2,3,4,5,6,7]14804; AVX512-NEXT: vpunpcklwd {{.*#+}} xmm7 = xmm7[0],xmm8[0],xmm7[1],xmm8[1],xmm7[2],xmm8[2],xmm7[3],xmm8[3]14805; AVX512-NEXT: vmovdqa64 %ymm20, %ymm814806; AVX512-NEXT: vpblendd $187, {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm8 # 32-byte Folded Reload14807; AVX512-NEXT: # ymm8 = mem[0,1],ymm8[2],mem[3,4,5],ymm8[6],mem[7]14808; AVX512-NEXT: vpmovsxdq {{.*#+}} zmm9 = [0,0,18446744073709486080,18446744073709551615,18446744073709551615,18446744073709551615,18446744073709551615,18446744073709551615]14809; AVX512-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload14810; AVX512-NEXT: vpternlogq $226, {{[-0-9]+}}(%r{{[sb]}}p), %zmm9, %zmm10 # 64-byte Folded Reload14811; AVX512-NEXT: # zmm10 = mem ^ (zmm9 & (zmm10 ^ mem))14812; AVX512-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload14813; AVX512-NEXT: vpternlogq $226, {{[-0-9]+}}(%r{{[sb]}}p), %zmm9, %zmm12 # 64-byte Folded Reload14814; AVX512-NEXT: # zmm12 = mem ^ (zmm9 & (zmm12 ^ mem))14815; AVX512-NEXT: vmovdqa64 {{.*#+}} zmm9 = [65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,0,0,0,0,0,0,0,0,0,0,0,0,0]14816; AVX512-NEXT: vpternlogq $184, {{[-0-9]+}}(%r{{[sb]}}p), %zmm9, %zmm1 # 64-byte Folded Reload14817; AVX512-NEXT: # zmm1 = zmm1 ^ (zmm9 & (zmm1 ^ mem))14818; AVX512-NEXT: vpternlogq $184, {{[-0-9]+}}(%r{{[sb]}}p), %zmm9, %zmm3 # 64-byte Folded Reload14819; AVX512-NEXT: # zmm3 = zmm3 ^ (zmm9 & (zmm3 ^ mem))14820; AVX512-NEXT: vpternlogq {{.*#+}} zmm2 = zmm2 ^ (zmm9 & (zmm2 ^ zmm10))14821; AVX512-NEXT: vpternlogq {{.*#+}} zmm4 = zmm4 ^ (zmm9 & (zmm4 ^ zmm12))14822; AVX512-NEXT: vpermq {{.*#+}} ymm8 = ymm8[0,1,3,1]14823; AVX512-NEXT: vpshufb %ymm5, %ymm8, %ymm514824; AVX512-NEXT: vpblendd {{.*#+}} ymm5 = ymm5[0],ymm7[1,2],ymm5[3,4,5,6,7]14825; AVX512-NEXT: vinserti128 $1, %xmm6, %ymm0, %ymm614826; AVX512-NEXT: vpblendw {{.*#+}} ymm6 = ymm5[0,1,2],ymm6[3,4,5,6,7],ymm5[8,9,10],ymm6[11,12,13,14,15]14827; AVX512-NEXT: vpblendd {{.*#+}} ymm5 = ymm5[0,1,2,3],ymm6[4,5,6,7]14828; AVX512-NEXT: vinserti64x4 $1, {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm6 # 32-byte Folded Reload14829; AVX512-NEXT: vinserti64x4 $1, {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm7 # 32-byte Folded Reload14830; AVX512-NEXT: vinserti64x4 $1, {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm8 # 32-byte Folded Reload14831; AVX512-NEXT: vinserti64x4 $1, {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm9 # 32-byte Folded Reload14832; AVX512-NEXT: vinserti64x4 $1, {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm10 # 32-byte Folded Reload14833; AVX512-NEXT: vinserti64x4 $1, (%rsp), %zmm0, %zmm14 # 32-byte Folded Reload14834; AVX512-NEXT: vinserti64x4 $1, {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm15 # 32-byte Folded Reload14835; AVX512-NEXT: vinserti64x4 $1, %ymm18, %zmm0, %zmm2314836; AVX512-NEXT: vinserti64x4 $1, %ymm0, %zmm0, %zmm014837; AVX512-NEXT: vinserti64x4 $1, %ymm5, %zmm0, %zmm514838; AVX512-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload14839; AVX512-NEXT: vpternlogq $184, {{[-0-9]+}}(%r{{[sb]}}p), %zmm19, %zmm12 # 64-byte Folded Reload14840; AVX512-NEXT: # zmm12 = zmm12 ^ (zmm19 & (zmm12 ^ mem))14841; AVX512-NEXT: movw $-512, %ax # imm = 0xFE0014842; AVX512-NEXT: kmovw %eax, %k114843; AVX512-NEXT: vmovdqa32 %zmm6, %zmm12 {%k1}14844; AVX512-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload14845; AVX512-NEXT: vpternlogq $184, {{[-0-9]+}}(%r{{[sb]}}p), %zmm19, %zmm6 # 64-byte Folded Reload14846; AVX512-NEXT: # zmm6 = zmm6 ^ (zmm19 & (zmm6 ^ mem))14847; AVX512-NEXT: vmovdqa32 %zmm7, %zmm6 {%k1}14848; AVX512-NEXT: vmovdqa64 %zmm6, %zmm714849; AVX512-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload14850; AVX512-NEXT: vpternlogq $184, {{[-0-9]+}}(%r{{[sb]}}p), %zmm19, %zmm6 # 64-byte Folded Reload14851; AVX512-NEXT: # zmm6 = zmm6 ^ (zmm19 & (zmm6 ^ mem))14852; AVX512-NEXT: vmovdqa32 %zmm8, %zmm6 {%k1}14853; AVX512-NEXT: vmovdqa64 %zmm6, %zmm814854; AVX512-NEXT: vpternlogq $184, {{[-0-9]+}}(%r{{[sb]}}p), %zmm19, %zmm25 # 64-byte Folded Reload14855; AVX512-NEXT: # zmm25 = zmm25 ^ (zmm19 & (zmm25 ^ mem))14856; AVX512-NEXT: vmovdqa32 %zmm9, %zmm25 {%k1}14857; AVX512-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload14858; AVX512-NEXT: vpternlogq $226, {{[-0-9]+}}(%r{{[sb]}}p), %zmm19, %zmm6 # 64-byte Folded Reload14859; AVX512-NEXT: # zmm6 = mem ^ (zmm19 & (zmm6 ^ mem))14860; AVX512-NEXT: vmovdqa32 %zmm10, %zmm6 {%k1}14861; AVX512-NEXT: vmovdqa64 %zmm3, (%rsi)14862; AVX512-NEXT: vmovdqa64 %zmm1, 64(%rsi)14863; AVX512-NEXT: vmovdqa64 %zmm4, 64(%rdx)14864; AVX512-NEXT: vmovdqa64 %zmm2, (%rdx)14865; AVX512-NEXT: vmovdqa64 %zmm7, 64(%rcx)14866; AVX512-NEXT: vmovdqa64 %zmm12, (%rcx)14867; AVX512-NEXT: vmovdqa64 %zmm25, 64(%r8)14868; AVX512-NEXT: vmovdqa64 %zmm8, (%r8)14869; AVX512-NEXT: vmovdqa64 %zmm6, (%r9)14870; AVX512-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload14871; AVX512-NEXT: vmovdqa32 %zmm14, %zmm2 {%k1}14872; AVX512-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload14873; AVX512-NEXT: vpternlogq $226, {{[-0-9]+}}(%r{{[sb]}}p), %zmm19, %zmm1 # 64-byte Folded Reload14874; AVX512-NEXT: # zmm1 = mem ^ (zmm19 & (zmm1 ^ mem))14875; AVX512-NEXT: vmovdqa32 %zmm15, %zmm1 {%k1}14876; AVX512-NEXT: vmovdqa64 %zmm2, 64(%r9)14877; AVX512-NEXT: movq {{[0-9]+}}(%rsp), %rax14878; AVX512-NEXT: vmovdqa64 %zmm1, (%rax)14879; AVX512-NEXT: vpternlogq $226, {{[-0-9]+}}(%r{{[sb]}}p), %zmm19, %zmm11 # 64-byte Folded Reload14880; AVX512-NEXT: # zmm11 = mem ^ (zmm19 & (zmm11 ^ mem))14881; AVX512-NEXT: vmovdqa64 %zmm30, %zmm114882; AVX512-NEXT: vmovdqa32 %zmm23, %zmm1 {%k1}14883; AVX512-NEXT: vmovdqa32 %zmm0, %zmm11 {%k1}14884; AVX512-NEXT: vmovdqa64 %zmm1, 64(%rax)14885; AVX512-NEXT: movq {{[0-9]+}}(%rsp), %rax14886; AVX512-NEXT: vmovdqa64 %zmm11, (%rax)14887; AVX512-NEXT: vmovdqa64 %zmm13, %zmm014888; AVX512-NEXT: vmovdqa32 %zmm5, %zmm0 {%k1}14889; AVX512-NEXT: vmovdqa64 %zmm0, 64(%rax)14890; AVX512-NEXT: addq $1864, %rsp # imm = 0x74814891; AVX512-NEXT: vzeroupper14892; AVX512-NEXT: retq14893;14894; AVX512-FCP-LABEL: load_i16_stride7_vf64:14895; AVX512-FCP: # %bb.0:14896; AVX512-FCP-NEXT: subq $1800, %rsp # imm = 0x70814897; AVX512-FCP-NEXT: vmovdqa64 512(%rdi), %zmm2214898; AVX512-FCP-NEXT: vmovdqa64 64(%rdi), %zmm2614899; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} ymm1 = [2,5,9,0,12,0,0,0]14900; AVX512-FCP-NEXT: vpermd %zmm26, %zmm1, %zmm014901; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} ymm3 = [8,1,12,5,12,5,14,15]14902; AVX512-FCP-NEXT: vpermd %zmm26, %zmm3, %zmm214903; AVX512-FCP-NEXT: vpermd %zmm22, %zmm3, %zmm414904; AVX512-FCP-NEXT: vmovdqa 480(%rdi), %ymm514905; AVX512-FCP-NEXT: vmovdqa 448(%rdi), %ymm614906; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm3 = ymm6[0,1],ymm5[2],ymm6[3,4,5],ymm5[6],ymm6[7]14907; AVX512-FCP-NEXT: vmovdqa64 %ymm6, %ymm2114908; AVX512-FCP-NEXT: vmovdqa64 %ymm5, %ymm2314909; AVX512-FCP-NEXT: vextracti128 $1, %ymm3, %xmm514910; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm5 = xmm3[0,1,2,3],xmm5[4],xmm3[5],xmm5[6],xmm3[7]14911; AVX512-FCP-NEXT: vmovdqa {{.*#+}} ymm3 = [0,1,14,15,12,13,10,11,8,9,128,128,128,128,128,128,128,128,128,128,u,u,u,u,u,u,u,u,u,u,u,u]14912; AVX512-FCP-NEXT: vpshufb %ymm3, %ymm5, %ymm614913; AVX512-FCP-NEXT: vmovdqa {{.*#+}} ymm5 = [128,128,128,128,128,128,128,128,128,128,6,7,12,13,2,3,16,17,30,31,128,128,128,128,128,128,128,128,128,128,128,128]14914; AVX512-FCP-NEXT: vpshufb %ymm5, %ymm4, %ymm414915; AVX512-FCP-NEXT: vporq %ymm4, %ymm6, %ymm1714916; AVX512-FCP-NEXT: vmovdqa 672(%rdi), %xmm714917; AVX512-FCP-NEXT: vmovdqa {{.*#+}} xmm4 = [0,1,2,3,4,5,6,7,0,1,14,15,12,13,14,15]14918; AVX512-FCP-NEXT: vpshufb %xmm4, %xmm7, %xmm614919; AVX512-FCP-NEXT: vmovdqa64 %xmm7, %xmm2014920; AVX512-FCP-NEXT: vpbroadcastw 700(%rdi), %xmm714921; AVX512-FCP-NEXT: vpunpckhdq {{.*#+}} xmm28 = xmm6[2],xmm7[2],xmm6[3],xmm7[3]14922; AVX512-FCP-NEXT: vmovdqa64 192(%rdi), %ymm3114923; AVX512-FCP-NEXT: vpermq {{.*#+}} ymm9 = ymm31[0,1,0,2]14924; AVX512-FCP-NEXT: vmovdqu %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill14925; AVX512-FCP-NEXT: vpshufb %ymm5, %ymm2, %ymm214926; AVX512-FCP-NEXT: vmovdqa (%rdi), %ymm814927; AVX512-FCP-NEXT: vmovdqa 32(%rdi), %ymm714928; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm5 = ymm8[0,1],ymm7[2],ymm8[3,4,5],ymm7[6],ymm8[7]14929; AVX512-FCP-NEXT: vextracti128 $1, %ymm5, %xmm614930; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm5 = xmm5[0,1,2,3],xmm6[4],xmm5[5],xmm6[6],xmm5[7]14931; AVX512-FCP-NEXT: vpshufb %ymm3, %ymm5, %ymm314932; AVX512-FCP-NEXT: vporq %ymm2, %ymm3, %ymm1614933; AVX512-FCP-NEXT: vmovdqa 224(%rdi), %xmm1414934; AVX512-FCP-NEXT: vpshufb %xmm4, %xmm14, %xmm214935; AVX512-FCP-NEXT: vpbroadcastw 252(%rdi), %xmm314936; AVX512-FCP-NEXT: vpunpckhdq {{.*#+}} xmm2 = xmm2[2],xmm3[2],xmm2[3],xmm3[3]14937; AVX512-FCP-NEXT: vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill14938; AVX512-FCP-NEXT: vmovdqa 240(%rdi), %xmm1514939; AVX512-FCP-NEXT: vmovdqa {{.*#+}} ymm5 = [128,128,128,128,128,128,128,128,128,128,0,1,6,7,8,9,18,19,128,128,128,128,128,128,128,128,128,128,128,128,128,128]14940; AVX512-FCP-NEXT: vpshufb %ymm5, %ymm0, %ymm014941; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm3 = ymm8[0,1,2],ymm7[3],ymm8[4,5],ymm7[6],ymm8[7]14942; AVX512-FCP-NEXT: vmovdqa64 %ymm8, %ymm1814943; AVX512-FCP-NEXT: vmovdqa64 %ymm7, %ymm1914944; AVX512-FCP-NEXT: vextracti128 $1, %ymm3, %xmm414945; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm3 = xmm4[0],xmm3[1],xmm4[2,3,4,5],xmm3[6],xmm4[7]14946; AVX512-FCP-NEXT: vmovdqa {{.*#+}} ymm8 = [2,3,0,1,14,15,12,13,10,11,128,128,128,128,128,128,128,128,u,u,u,u,u,u,u,u,u,u,u,u,u,u]14947; AVX512-FCP-NEXT: vpshufb %ymm8, %ymm3, %ymm314948; AVX512-FCP-NEXT: vpor %ymm0, %ymm3, %ymm014949; AVX512-FCP-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill14950; AVX512-FCP-NEXT: vmovdqa 160(%rdi), %ymm214951; AVX512-FCP-NEXT: vmovdqa 128(%rdi), %ymm1214952; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm4 = ymm12[0,1],ymm2[2],ymm12[3,4,5],ymm2[6],ymm12[7]14953; AVX512-FCP-NEXT: vextracti128 $1, %ymm4, %xmm614954; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm6 = xmm4[0,1,2,3],xmm6[4],xmm4[5],xmm6[6],xmm4[7]14955; AVX512-FCP-NEXT: vmovdqa {{.*#+}} xmm3 = [0,1,0,1,14,15,12,13,10,11,8,9,12,13,14,15]14956; AVX512-FCP-NEXT: vpshufb %xmm3, %xmm6, %xmm614957; AVX512-FCP-NEXT: vinserti128 $1, %xmm6, %ymm0, %ymm714958; AVX512-FCP-NEXT: vpbroadcastd {{.*#+}} ymm6 = [22,23,28,29,22,23,28,29,22,23,28,29,22,23,28,29,22,23,28,29,22,23,28,29,22,23,28,29,22,23,28,29]14959; AVX512-FCP-NEXT: vpshufb %ymm6, %ymm9, %ymm914960; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm9 = ymm7[0,1,2,3,4,5,6],ymm9[7]14961; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm10 = xmm15[0],xmm14[1],xmm15[2,3,4,5,6,7]14962; AVX512-FCP-NEXT: vmovdqa %xmm15, %xmm714963; AVX512-FCP-NEXT: vmovdqa {{.*#+}} xmm11 = [2,3,0,1,14,15,14,15,8,9,10,11,12,13,14,15]14964; AVX512-FCP-NEXT: vpshufb %xmm11, %xmm10, %xmm1014965; AVX512-FCP-NEXT: vinserti64x4 $1, %ymm10, %zmm9, %zmm914966; AVX512-FCP-NEXT: vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill14967; AVX512-FCP-NEXT: vmovdqa64 %ymm21, %ymm1314968; AVX512-FCP-NEXT: vmovdqa64 %ymm23, %ymm1514969; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm9 = ymm13[0,1,2],ymm15[3],ymm13[4,5],ymm15[6],ymm13[7]14970; AVX512-FCP-NEXT: vextracti128 $1, %ymm9, %xmm1014971; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm9 = xmm10[0],xmm9[1],xmm10[2,3,4,5],xmm9[6],xmm10[7]14972; AVX512-FCP-NEXT: vpshufb %ymm8, %ymm9, %ymm814973; AVX512-FCP-NEXT: vpermd %zmm22, %zmm1, %zmm114974; AVX512-FCP-NEXT: vpshufb %ymm5, %ymm1, %ymm114975; AVX512-FCP-NEXT: vpor %ymm1, %ymm8, %ymm114976; AVX512-FCP-NEXT: vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill14977; AVX512-FCP-NEXT: vmovdqa 608(%rdi), %ymm414978; AVX512-FCP-NEXT: vmovdqa 576(%rdi), %ymm514979; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm8 = ymm5[0,1],ymm4[2],ymm5[3,4,5],ymm4[6],ymm5[7]14980; AVX512-FCP-NEXT: vextracti128 $1, %ymm8, %xmm914981; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm8 = xmm8[0,1,2,3],xmm9[4],xmm8[5],xmm9[6],xmm8[7]14982; AVX512-FCP-NEXT: vmovdqa64 640(%rdi), %ymm2514983; AVX512-FCP-NEXT: vpshufb %xmm3, %xmm8, %xmm814984; AVX512-FCP-NEXT: vpermq {{.*#+}} ymm0 = ymm25[0,1,0,2]14985; AVX512-FCP-NEXT: vinserti128 $1, %xmm8, %ymm0, %ymm814986; AVX512-FCP-NEXT: vpshufb %ymm6, %ymm0, %ymm614987; AVX512-FCP-NEXT: vmovdqa64 %ymm0, %ymm2114988; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm6 = ymm8[0,1,2,3,4,5,6],ymm6[7]14989; AVX512-FCP-NEXT: vmovdqa 688(%rdi), %xmm314990; AVX512-FCP-NEXT: vmovdqa64 %xmm20, %xmm114991; AVX512-FCP-NEXT: vmovdqa64 %xmm20, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill14992; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm8 = xmm3[0],xmm1[1],xmm3[2,3,4,5,6,7]14993; AVX512-FCP-NEXT: vpshufb %xmm11, %xmm8, %xmm814994; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} ymm23 = [2,6,9,0,13,0,0,0]14995; AVX512-FCP-NEXT: vinserti64x4 $1, %ymm8, %zmm6, %zmm014996; AVX512-FCP-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill14997; AVX512-FCP-NEXT: vmovdqa64 %ymm18, %ymm1114998; AVX512-FCP-NEXT: vmovdqu64 %ymm18, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill14999; AVX512-FCP-NEXT: vmovdqa64 %ymm19, %ymm015000; AVX512-FCP-NEXT: vmovdqu64 %ymm19, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill15001; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm6 = ymm0[0],ymm11[1],ymm0[2,3],ymm11[4],ymm0[5,6,7]15002; AVX512-FCP-NEXT: vextracti128 $1, %ymm6, %xmm815003; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm8 = xmm6[0],xmm8[1],xmm6[2,3,4,5],xmm8[6],xmm6[7]15004; AVX512-FCP-NEXT: vmovdqa64 %zmm26, %zmm2915005; AVX512-FCP-NEXT: vmovdqu64 %zmm26, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill15006; AVX512-FCP-NEXT: vpermd %zmm26, %zmm23, %zmm915007; AVX512-FCP-NEXT: vmovdqa {{.*#+}} ymm6 = [128,128,128,128,128,128,128,128,128,128,2,3,4,5,10,11,16,17,128,128,128,128,128,128,128,128,128,128,128,128,128,128]15008; AVX512-FCP-NEXT: vpshufb %ymm6, %ymm9, %ymm915009; AVX512-FCP-NEXT: vmovdqa {{.*#+}} ymm10 = [4,5,2,3,0,1,14,15,12,13,128,128,128,128,128,128,128,128,u,u,u,u,u,u,u,u,u,u,u,u,u,u]15010; AVX512-FCP-NEXT: vpshufb %ymm10, %ymm8, %ymm815011; AVX512-FCP-NEXT: vpor %ymm9, %ymm8, %ymm815012; AVX512-FCP-NEXT: vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill15013; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm8 = ymm12[0,1,2],ymm2[3],ymm12[4,5],ymm2[6],ymm12[7]15014; AVX512-FCP-NEXT: vmovdqa64 %ymm2, %ymm2715015; AVX512-FCP-NEXT: vmovdqa64 %ymm12, %ymm2615016; AVX512-FCP-NEXT: vextracti128 $1, %ymm8, %xmm915017; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm8 = xmm9[0],xmm8[1],xmm9[2,3,4,5],xmm8[6],xmm9[7]15018; AVX512-FCP-NEXT: vmovdqa {{.*#+}} xmm2 = [0,1,2,3,0,1,14,15,12,13,10,11,12,13,14,15]15019; AVX512-FCP-NEXT: vpshufb %xmm2, %xmm8, %xmm815020; AVX512-FCP-NEXT: vmovdqa64 %xmm2, %xmm2415021; AVX512-FCP-NEXT: vinserti128 $1, %xmm8, %ymm0, %ymm815022; AVX512-FCP-NEXT: vpbroadcastq {{.*#+}} ymm18 = [2,5,2,5,2,5,2,5]15023; AVX512-FCP-NEXT: vpermd %ymm31, %ymm18, %ymm1215024; AVX512-FCP-NEXT: vpshufhw {{.*#+}} ymm12 = ymm12[0,1,2,3,4,5,4,7,8,9,10,11,12,13,12,15]15025; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm12 = ymm8[0,1,2,3,4,5,6],ymm12[7]15026; AVX512-FCP-NEXT: vpunpcklwd {{.*#+}} xmm8 = xmm14[0],xmm7[0],xmm14[1],xmm7[1],xmm14[2],xmm7[2],xmm14[3],xmm7[3]15027; AVX512-FCP-NEXT: vmovdqa64 %xmm7, %xmm2015028; AVX512-FCP-NEXT: vmovdqa64 %xmm14, %xmm1915029; AVX512-FCP-NEXT: vmovdqa {{.*#+}} xmm9 = [8,9,6,7,4,5,6,7,8,9,10,11,12,13,14,15]15030; AVX512-FCP-NEXT: vpshufb %xmm9, %xmm8, %xmm1415031; AVX512-FCP-NEXT: vinserti64x4 $1, %ymm14, %zmm12, %zmm215032; AVX512-FCP-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill15033; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm12 = ymm15[0],ymm13[1],ymm15[2,3],ymm13[4],ymm15[5,6,7]15034; AVX512-FCP-NEXT: vmovdqu %ymm15, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill15035; AVX512-FCP-NEXT: vmovdqa %ymm13, %ymm215036; AVX512-FCP-NEXT: vmovdqu %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill15037; AVX512-FCP-NEXT: vextracti128 $1, %ymm12, %xmm1415038; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm12 = xmm12[0],xmm14[1],xmm12[2,3,4,5],xmm14[6],xmm12[7]15039; AVX512-FCP-NEXT: vpshufb %ymm10, %ymm12, %ymm1015040; AVX512-FCP-NEXT: vpermd %zmm22, %zmm23, %zmm715041; AVX512-FCP-NEXT: vmovdqu64 %zmm22, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill15042; AVX512-FCP-NEXT: vpshufb %ymm6, %ymm7, %ymm615043; AVX512-FCP-NEXT: vpor %ymm6, %ymm10, %ymm615044; AVX512-FCP-NEXT: vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill15045; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm6 = ymm5[0,1,2],ymm4[3],ymm5[4,5],ymm4[6],ymm5[7]15046; AVX512-FCP-NEXT: vmovdqa64 %ymm4, %ymm2315047; AVX512-FCP-NEXT: vmovdqa %ymm5, %ymm415048; AVX512-FCP-NEXT: vextracti128 $1, %ymm6, %xmm715049; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm6 = xmm7[0],xmm6[1],xmm7[2,3,4,5],xmm6[6],xmm7[7]15050; AVX512-FCP-NEXT: vmovdqa64 %xmm24, %xmm515051; AVX512-FCP-NEXT: vpshufb %xmm5, %xmm6, %xmm615052; AVX512-FCP-NEXT: vinserti128 $1, %xmm6, %ymm0, %ymm615053; AVX512-FCP-NEXT: vpermd %ymm25, %ymm18, %ymm715054; AVX512-FCP-NEXT: vpshufhw {{.*#+}} ymm7 = ymm7[0,1,2,3,4,5,4,7,8,9,10,11,12,13,12,15]15055; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm6 = ymm6[0,1,2,3,4,5,6],ymm7[7]15056; AVX512-FCP-NEXT: vpunpcklwd {{.*#+}} xmm7 = xmm1[0],xmm3[0],xmm1[1],xmm3[1],xmm1[2],xmm3[2],xmm1[3],xmm3[3]15057; AVX512-FCP-NEXT: vmovdqa64 %xmm3, %xmm1815058; AVX512-FCP-NEXT: vpshufb %xmm9, %xmm7, %xmm915059; AVX512-FCP-NEXT: vinserti64x4 $1, %ymm9, %zmm6, %zmm115060; AVX512-FCP-NEXT: vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill15061; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm6 = ymm0[0],ymm11[1],ymm0[2,3,4],ymm11[5],ymm0[6,7]15062; AVX512-FCP-NEXT: vextracti128 $1, %ymm6, %xmm915063; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm9 = xmm9[0],xmm6[1],xmm9[2],xmm6[3],xmm9[4,5,6,7]15064; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} ymm1 = [10,3,6,15,12,13,6,15]15065; AVX512-FCP-NEXT: vpermd %zmm29, %zmm1, %zmm1015066; AVX512-FCP-NEXT: vmovdqa {{.*#+}} ymm6 = [128,128,128,128,128,128,128,128,128,128,4,5,10,11,0,1,22,23,128,128,128,128,128,128,128,128,128,128,128,128,128,128]15067; AVX512-FCP-NEXT: vpshufb %ymm6, %ymm10, %ymm1015068; AVX512-FCP-NEXT: vmovdqa {{.*#+}} ymm12 = [6,7,4,5,2,3,0,1,14,15,128,128,128,128,128,128,128,128,u,u,u,u,u,u,u,u,u,u,u,u,u,u]15069; AVX512-FCP-NEXT: vpshufb %ymm12, %ymm9, %ymm915070; AVX512-FCP-NEXT: vpor %ymm10, %ymm9, %ymm015071; AVX512-FCP-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill15072; AVX512-FCP-NEXT: vmovdqa64 %ymm27, %ymm315073; AVX512-FCP-NEXT: vmovdqa64 %ymm26, %ymm515074; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm9 = ymm3[0],ymm5[1],ymm3[2,3],ymm5[4],ymm3[5,6,7]15075; AVX512-FCP-NEXT: vextracti128 $1, %ymm9, %xmm1015076; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm9 = xmm9[0],xmm10[1],xmm9[2,3,4,5],xmm10[6],xmm9[7]15077; AVX512-FCP-NEXT: vmovdqa {{.*#+}} xmm10 = [0,1,4,5,2,3,0,1,14,15,12,13,12,13,14,15]15078; AVX512-FCP-NEXT: vpshufb %xmm10, %xmm9, %xmm915079; AVX512-FCP-NEXT: vinserti128 $1, %xmm9, %ymm0, %ymm1415080; AVX512-FCP-NEXT: vpbroadcastd {{.*#+}} ymm11 = [18,19,24,25,18,19,24,25,18,19,24,25,18,19,24,25,18,19,24,25,18,19,24,25,18,19,24,25,18,19,24,25]15081; AVX512-FCP-NEXT: vpermq {{.*#+}} ymm9 = ymm31[0,1,1,3]15082; AVX512-FCP-NEXT: vpshufb %ymm11, %ymm9, %ymm1315083; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm13 = ymm14[0,1,2,3,4,5,6],ymm13[7]15084; AVX512-FCP-NEXT: vpbroadcastd {{.*#+}} xmm14 = [12,13,10,11,12,13,10,11,12,13,10,11,12,13,10,11]15085; AVX512-FCP-NEXT: vpshufb %xmm14, %xmm8, %xmm815086; AVX512-FCP-NEXT: vinserti64x4 $1, %ymm8, %zmm13, %zmm015087; AVX512-FCP-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill15088; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm8 = ymm15[0],ymm2[1],ymm15[2,3,4],ymm2[5],ymm15[6,7]15089; AVX512-FCP-NEXT: vextracti128 $1, %ymm8, %xmm1315090; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm8 = xmm13[0],xmm8[1],xmm13[2],xmm8[3],xmm13[4,5,6,7]15091; AVX512-FCP-NEXT: vpshufb %ymm12, %ymm8, %ymm815092; AVX512-FCP-NEXT: vpermd %zmm22, %zmm1, %zmm1215093; AVX512-FCP-NEXT: vpshufb %ymm6, %ymm12, %ymm615094; AVX512-FCP-NEXT: vpor %ymm6, %ymm8, %ymm015095; AVX512-FCP-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill15096; AVX512-FCP-NEXT: vmovdqa %ymm4, %ymm115097; AVX512-FCP-NEXT: vmovdqa64 %ymm23, %ymm215098; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm6 = ymm2[0],ymm4[1],ymm2[2,3],ymm4[4],ymm2[5,6,7]15099; AVX512-FCP-NEXT: vextracti128 $1, %ymm6, %xmm815100; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm6 = xmm6[0],xmm8[1],xmm6[2,3,4,5],xmm8[6],xmm6[7]15101; AVX512-FCP-NEXT: vpshufb %xmm10, %xmm6, %xmm615102; AVX512-FCP-NEXT: vinserti128 $1, %xmm6, %ymm0, %ymm615103; AVX512-FCP-NEXT: vpermq {{.*#+}} ymm8 = ymm25[0,1,1,3]15104; AVX512-FCP-NEXT: vpshufb %ymm11, %ymm8, %ymm1015105; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm6 = ymm6[0,1,2,3,4,5,6],ymm10[7]15106; AVX512-FCP-NEXT: vpshufb %xmm14, %xmm7, %xmm715107; AVX512-FCP-NEXT: vinserti64x4 $1, %ymm7, %zmm6, %zmm015108; AVX512-FCP-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill15109; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm3[0],ymm5[1],ymm3[2,3,4],ymm5[5],ymm3[6,7]15110; AVX512-FCP-NEXT: vextracti128 $1, %ymm0, %xmm315111; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm3 = xmm3[0],xmm0[1],xmm3[2],xmm0[3],xmm3[4,5,6,7]15112; AVX512-FCP-NEXT: vmovdqa {{.*#+}} xmm0 = [0,1,6,7,4,5,2,3,0,1,14,15,12,13,14,15]15113; AVX512-FCP-NEXT: vpshufb %xmm0, %xmm3, %xmm315114; AVX512-FCP-NEXT: vinserti128 $1, %xmm3, %ymm0, %ymm315115; AVX512-FCP-NEXT: vpbroadcastd {{.*#+}} ymm7 = [20,21,26,27,20,21,26,27,20,21,26,27,20,21,26,27,20,21,26,27,20,21,26,27,20,21,26,27,20,21,26,27]15116; AVX512-FCP-NEXT: vpshufb %ymm7, %ymm9, %ymm615117; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5,6],ymm6[7]15118; AVX512-FCP-NEXT: vpbroadcastw 232(%rdi), %xmm615119; AVX512-FCP-NEXT: vmovdqa64 %xmm20, %xmm515120; AVX512-FCP-NEXT: vpsrlq $48, %xmm20, %xmm915121; AVX512-FCP-NEXT: vpunpcklwd {{.*#+}} xmm6 = xmm6[0],xmm9[0],xmm6[1],xmm9[1],xmm6[2],xmm9[2],xmm6[3],xmm9[3]15122; AVX512-FCP-NEXT: vinserti32x4 $2, %xmm6, %zmm3, %zmm2715123; AVX512-FCP-NEXT: vmovdqa64 %ymm21, %ymm315124; AVX512-FCP-NEXT: vpshufb %ymm7, %ymm3, %ymm415125; AVX512-FCP-NEXT: vmovdqa64 576(%rdi), %zmm2115126; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} ymm24 = [3,6,10,13,3,6,10,13]15127; AVX512-FCP-NEXT: vpermd %zmm21, %zmm24, %zmm615128; AVX512-FCP-NEXT: vmovdqa {{.*#+}} ymm11 = [0,1,2,3,0,1,6,7,8,9,14,15,12,13,14,15,16,17,18,19,16,17,22,23,24,25,30,31,u,u,u,u]15129; AVX512-FCP-NEXT: vpshufb %ymm11, %ymm6, %ymm615130; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm4 = ymm6[0,1,2,3,4,5,6],ymm4[7]15131; AVX512-FCP-NEXT: movw $992, %ax # imm = 0x3E015132; AVX512-FCP-NEXT: kmovw %eax, %k115133; AVX512-FCP-NEXT: vinserti32x4 $2, %xmm28, %zmm4, %zmm17 {%k1}15134; AVX512-FCP-NEXT: vmovdqu64 %zmm17, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill15135; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0],ymm1[1],ymm2[2,3,4],ymm1[5],ymm2[6,7]15136; AVX512-FCP-NEXT: vextracti128 $1, %ymm1, %xmm215137; AVX512-FCP-NEXT: vpblendw {{.*#+}} xmm1 = xmm2[0],xmm1[1],xmm2[2],xmm1[3],xmm2[4,5,6,7]15138; AVX512-FCP-NEXT: vpshufb %xmm0, %xmm1, %xmm015139; AVX512-FCP-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm015140; AVX512-FCP-NEXT: vpshufb %ymm7, %ymm8, %ymm115141; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5,6],ymm1[7]15142; AVX512-FCP-NEXT: vpbroadcastw 680(%rdi), %xmm115143; AVX512-FCP-NEXT: vmovdqa64 %xmm18, %xmm915144; AVX512-FCP-NEXT: vpsrlq $48, %xmm18, %xmm215145; AVX512-FCP-NEXT: vpunpcklwd {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1],xmm1[2],xmm2[2],xmm1[3],xmm2[3]15146; AVX512-FCP-NEXT: vinserti32x4 $2, %xmm1, %zmm0, %zmm2615147; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} ymm2 = [0,3,3,3,0,3,7,7]15148; AVX512-FCP-NEXT: vpermd %ymm31, %ymm2, %ymm015149; AVX512-FCP-NEXT: vmovdqa {{.*#+}} ymm12 = [0,1,6,7,4,5,6,7,8,9,0,1,6,7,8,9,16,17,22,23,20,21,22,23,24,25,16,17,22,23,24,25]15150; AVX512-FCP-NEXT: vpshufb %ymm12, %ymm0, %ymm615151; AVX512-FCP-NEXT: vmovdqa64 128(%rdi), %zmm415152; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} ymm1 = [2,5,9,12,2,5,9,12]15153; AVX512-FCP-NEXT: vpermd %zmm4, %zmm1, %zmm815154; AVX512-FCP-NEXT: vmovdqa {{.*#+}} ymm0 = [0,1,0,1,6,7,8,9,14,15,14,1File truncated to the first 1 MiB.