10017 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_i32_stride5_vf2(ptr %in.vec, ptr %out.vec0, ptr %out.vec1, ptr %out.vec2, ptr %out.vec3, ptr %out.vec4) nounwind {19; SSE-LABEL: load_i32_stride5_vf2:20; SSE: # %bb.0:21; SSE-NEXT: movdqa (%rdi), %xmm022; SSE-NEXT: movdqa 16(%rdi), %xmm123; SSE-NEXT: movdqa 32(%rdi), %xmm224; SSE-NEXT: pshufd {{.*#+}} xmm3 = xmm1[1,1,1,1]25; SSE-NEXT: movdqa %xmm0, %xmm426; SSE-NEXT: punpckldq {{.*#+}} xmm4 = xmm4[0],xmm3[0],xmm4[1],xmm3[1]27; SSE-NEXT: movq %xmm4, (%rsi)28; SSE-NEXT: pshufd {{.*#+}} xmm3 = xmm1[2,3,2,3]29; SSE-NEXT: pshufd {{.*#+}} xmm4 = xmm0[1,1,1,1]30; SSE-NEXT: punpckldq {{.*#+}} xmm4 = xmm4[0],xmm3[0],xmm4[1],xmm3[1]31; SSE-NEXT: movq %xmm4, (%rdx)32; SSE-NEXT: pshufd {{.*#+}} xmm3 = xmm1[2,2,3,3]33; SSE-NEXT: pshufd {{.*#+}} xmm4 = xmm0[3,3,3,3]34; SSE-NEXT: punpckhdq {{.*#+}} xmm0 = xmm0[2],xmm3[2],xmm0[3],xmm3[3]35; SSE-NEXT: movq %xmm0, (%rcx)36; SSE-NEXT: punpckldq {{.*#+}} xmm4 = xmm4[0],xmm2[0],xmm4[1],xmm2[1]37; SSE-NEXT: movq %xmm4, (%r8)38; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm2[1,1,1,1]39; SSE-NEXT: punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]40; SSE-NEXT: movq %xmm1, (%r9)41; SSE-NEXT: retq42;43; AVX-LABEL: load_i32_stride5_vf2:44; AVX: # %bb.0:45; AVX-NEXT: vmovdqa (%rdi), %xmm046; AVX-NEXT: vmovdqa 16(%rdi), %xmm147; AVX-NEXT: vmovdqa 32(%rdi), %xmm248; AVX-NEXT: vpblendw {{.*#+}} xmm3 = xmm0[0,1],xmm1[2,3],xmm0[4,5,6,7]49; AVX-NEXT: vpblendw {{.*#+}} xmm4 = xmm1[0,1],mem[2,3],xmm1[4,5,6,7]50; AVX-NEXT: vmovq %xmm3, (%rsi)51; AVX-NEXT: vpblendw {{.*#+}} xmm3 = xmm0[0,1,2,3],xmm1[4,5,6,7]52; AVX-NEXT: vpshufd {{.*#+}} xmm3 = xmm3[1,2,2,3]53; AVX-NEXT: vmovq %xmm3, (%rdx)54; AVX-NEXT: vpblendw {{.*#+}} xmm1 = xmm0[0,1,2,3,4,5],xmm1[6,7]55; AVX-NEXT: vpextrq $1, %xmm1, (%rcx)56; AVX-NEXT: vpalignr {{.*#+}} xmm0 = xmm0[12,13,14,15],xmm2[0,1,2,3,4,5,6,7,8,9,10,11]57; AVX-NEXT: vmovq %xmm0, (%r8)58; AVX-NEXT: vmovq %xmm4, (%r9)59; AVX-NEXT: retq60;61; AVX2-LABEL: load_i32_stride5_vf2:62; AVX2: # %bb.0:63; AVX2-NEXT: vmovdqa (%rdi), %xmm064; AVX2-NEXT: vmovdqa 16(%rdi), %xmm165; AVX2-NEXT: vmovdqa 32(%rdi), %xmm266; AVX2-NEXT: vpblendd {{.*#+}} xmm3 = xmm0[0],xmm1[1],xmm0[2,3]67; AVX2-NEXT: vpbroadcastd 16(%rdi), %ymm468; AVX2-NEXT: vmovq %xmm3, (%rsi)69; AVX2-NEXT: vpblendd {{.*#+}} xmm3 = xmm0[0,1],xmm1[2,3]70; AVX2-NEXT: vpshufd {{.*#+}} xmm3 = xmm3[1,2,2,3]71; AVX2-NEXT: vmovq %xmm3, (%rdx)72; AVX2-NEXT: vpblendd {{.*#+}} xmm1 = xmm0[0,1,2],xmm1[3]73; AVX2-NEXT: vpextrq $1, %xmm1, (%rcx)74; AVX2-NEXT: vpalignr {{.*#+}} xmm0 = xmm0[12,13,14,15],xmm2[0,1,2,3,4,5,6,7,8,9,10,11]75; AVX2-NEXT: vmovq %xmm0, (%r8)76; AVX2-NEXT: vpblendd {{.*#+}} xmm0 = xmm4[0],xmm2[1],xmm4[2,3]77; AVX2-NEXT: vmovq %xmm0, (%r9)78; AVX2-NEXT: vzeroupper79; AVX2-NEXT: retq80;81; AVX2-FP-LABEL: load_i32_stride5_vf2:82; AVX2-FP: # %bb.0:83; AVX2-FP-NEXT: vmovdqa (%rdi), %xmm084; AVX2-FP-NEXT: vmovdqa 16(%rdi), %xmm185; AVX2-FP-NEXT: vmovdqa 32(%rdi), %xmm286; AVX2-FP-NEXT: vpblendd {{.*#+}} xmm3 = xmm0[0],xmm1[1],xmm0[2,3]87; AVX2-FP-NEXT: vpbroadcastd 16(%rdi), %ymm488; AVX2-FP-NEXT: vmovq %xmm3, (%rsi)89; AVX2-FP-NEXT: vpblendd {{.*#+}} xmm3 = xmm0[0,1],xmm1[2,3]90; AVX2-FP-NEXT: vpshufd {{.*#+}} xmm3 = xmm3[1,2,2,3]91; AVX2-FP-NEXT: vmovq %xmm3, (%rdx)92; AVX2-FP-NEXT: vpblendd {{.*#+}} xmm1 = xmm0[0,1,2],xmm1[3]93; AVX2-FP-NEXT: vpextrq $1, %xmm1, (%rcx)94; AVX2-FP-NEXT: vpalignr {{.*#+}} xmm0 = xmm0[12,13,14,15],xmm2[0,1,2,3,4,5,6,7,8,9,10,11]95; AVX2-FP-NEXT: vmovq %xmm0, (%r8)96; AVX2-FP-NEXT: vpblendd {{.*#+}} xmm0 = xmm4[0],xmm2[1],xmm4[2,3]97; AVX2-FP-NEXT: vmovq %xmm0, (%r9)98; AVX2-FP-NEXT: vzeroupper99; AVX2-FP-NEXT: retq100;101; AVX2-FCP-LABEL: load_i32_stride5_vf2:102; AVX2-FCP: # %bb.0:103; AVX2-FCP-NEXT: vmovdqa (%rdi), %xmm0104; AVX2-FCP-NEXT: vmovdqa 16(%rdi), %xmm1105; AVX2-FCP-NEXT: vmovdqa 32(%rdi), %xmm2106; AVX2-FCP-NEXT: vpblendd {{.*#+}} xmm3 = xmm0[0],xmm1[1],xmm0[2,3]107; AVX2-FCP-NEXT: vpbroadcastd 16(%rdi), %ymm4108; AVX2-FCP-NEXT: vmovq %xmm3, (%rsi)109; AVX2-FCP-NEXT: vpblendd {{.*#+}} xmm3 = xmm0[0,1],xmm1[2,3]110; AVX2-FCP-NEXT: vpshufd {{.*#+}} xmm3 = xmm3[1,2,2,3]111; AVX2-FCP-NEXT: vmovq %xmm3, (%rdx)112; AVX2-FCP-NEXT: vpblendd {{.*#+}} xmm1 = xmm0[0,1,2],xmm1[3]113; AVX2-FCP-NEXT: vpextrq $1, %xmm1, (%rcx)114; AVX2-FCP-NEXT: vpalignr {{.*#+}} xmm0 = xmm0[12,13,14,15],xmm2[0,1,2,3,4,5,6,7,8,9,10,11]115; AVX2-FCP-NEXT: vmovq %xmm0, (%r8)116; AVX2-FCP-NEXT: vpblendd {{.*#+}} xmm0 = xmm4[0],xmm2[1],xmm4[2,3]117; AVX2-FCP-NEXT: vmovq %xmm0, (%r9)118; AVX2-FCP-NEXT: vzeroupper119; AVX2-FCP-NEXT: retq120;121; AVX512-LABEL: load_i32_stride5_vf2:122; AVX512: # %bb.0:123; AVX512-NEXT: vmovdqa (%rdi), %xmm0124; AVX512-NEXT: vmovdqa 16(%rdi), %xmm1125; AVX512-NEXT: vmovdqa 32(%rdi), %xmm2126; AVX512-NEXT: vpextrd $2, %xmm1, %eax127; AVX512-NEXT: vpextrd $3, %xmm1, %r10d128; AVX512-NEXT: vpblendd {{.*#+}} xmm1 = xmm0[0],xmm1[1],xmm0[2,3]129; AVX512-NEXT: vpbroadcastd 8(%rdi), %xmm3130; AVX512-NEXT: vpbroadcastd 16(%rdi), %ymm4131; AVX512-NEXT: vmovq %xmm1, (%rsi)132; AVX512-NEXT: vpshufd {{.*#+}} xmm1 = xmm0[1,1,1,1]133; AVX512-NEXT: vpinsrd $1, %eax, %xmm1, %xmm1134; AVX512-NEXT: vmovq %xmm1, (%rdx)135; AVX512-NEXT: vpinsrd $1, %r10d, %xmm3, %xmm1136; AVX512-NEXT: vmovq %xmm1, (%rcx)137; AVX512-NEXT: vpalignr {{.*#+}} xmm0 = xmm0[12,13,14,15],xmm2[0,1,2,3,4,5,6,7,8,9,10,11]138; AVX512-NEXT: vmovq %xmm0, (%r8)139; AVX512-NEXT: vpblendd {{.*#+}} xmm0 = xmm4[0],xmm2[1],xmm4[2,3]140; AVX512-NEXT: vmovq %xmm0, (%r9)141; AVX512-NEXT: vzeroupper142; AVX512-NEXT: retq143;144; AVX512-FCP-LABEL: load_i32_stride5_vf2:145; AVX512-FCP: # %bb.0:146; AVX512-FCP-NEXT: vmovdqa (%rdi), %xmm0147; AVX512-FCP-NEXT: vmovdqa 32(%rdi), %xmm1148; AVX512-FCP-NEXT: vpblendd {{.*#+}} xmm2 = xmm0[0],mem[1],xmm0[2,3]149; AVX512-FCP-NEXT: vpbroadcastd 16(%rdi), %ymm3150; AVX512-FCP-NEXT: vmovaps (%rdi), %ymm4151; AVX512-FCP-NEXT: vmovq %xmm2, (%rsi)152; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} xmm2 = [1,6,0,0]153; AVX512-FCP-NEXT: vpermps %ymm4, %ymm2, %ymm2154; AVX512-FCP-NEXT: vmovlps %xmm2, (%rdx)155; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} xmm2 = [2,7,0,0]156; AVX512-FCP-NEXT: vpermps %ymm4, %ymm2, %ymm2157; AVX512-FCP-NEXT: vmovlps %xmm2, (%rcx)158; AVX512-FCP-NEXT: vpalignr {{.*#+}} xmm0 = xmm0[12,13,14,15],xmm1[0,1,2,3,4,5,6,7,8,9,10,11]159; AVX512-FCP-NEXT: vmovq %xmm0, (%r8)160; AVX512-FCP-NEXT: vpblendd {{.*#+}} xmm0 = xmm3[0],xmm1[1],xmm3[2,3]161; AVX512-FCP-NEXT: vmovq %xmm0, (%r9)162; AVX512-FCP-NEXT: vzeroupper163; AVX512-FCP-NEXT: retq164;165; AVX512DQ-LABEL: load_i32_stride5_vf2:166; AVX512DQ: # %bb.0:167; AVX512DQ-NEXT: vmovdqa (%rdi), %xmm0168; AVX512DQ-NEXT: vmovdqa 16(%rdi), %xmm1169; AVX512DQ-NEXT: vmovdqa 32(%rdi), %xmm2170; AVX512DQ-NEXT: vpextrd $2, %xmm1, %eax171; AVX512DQ-NEXT: vpextrd $3, %xmm1, %r10d172; AVX512DQ-NEXT: vpblendd {{.*#+}} xmm1 = xmm0[0],xmm1[1],xmm0[2,3]173; AVX512DQ-NEXT: vpbroadcastd 8(%rdi), %xmm3174; AVX512DQ-NEXT: vpbroadcastd 16(%rdi), %ymm4175; AVX512DQ-NEXT: vmovq %xmm1, (%rsi)176; AVX512DQ-NEXT: vpshufd {{.*#+}} xmm1 = xmm0[1,1,1,1]177; AVX512DQ-NEXT: vpinsrd $1, %eax, %xmm1, %xmm1178; AVX512DQ-NEXT: vmovq %xmm1, (%rdx)179; AVX512DQ-NEXT: vpinsrd $1, %r10d, %xmm3, %xmm1180; AVX512DQ-NEXT: vmovq %xmm1, (%rcx)181; AVX512DQ-NEXT: vpalignr {{.*#+}} xmm0 = xmm0[12,13,14,15],xmm2[0,1,2,3,4,5,6,7,8,9,10,11]182; AVX512DQ-NEXT: vmovq %xmm0, (%r8)183; AVX512DQ-NEXT: vpblendd {{.*#+}} xmm0 = xmm4[0],xmm2[1],xmm4[2,3]184; AVX512DQ-NEXT: vmovq %xmm0, (%r9)185; AVX512DQ-NEXT: vzeroupper186; AVX512DQ-NEXT: retq187;188; AVX512DQ-FCP-LABEL: load_i32_stride5_vf2:189; AVX512DQ-FCP: # %bb.0:190; AVX512DQ-FCP-NEXT: vmovdqa (%rdi), %xmm0191; AVX512DQ-FCP-NEXT: vmovdqa 32(%rdi), %xmm1192; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} xmm2 = xmm0[0],mem[1],xmm0[2,3]193; AVX512DQ-FCP-NEXT: vpbroadcastd 16(%rdi), %ymm3194; AVX512DQ-FCP-NEXT: vmovaps (%rdi), %ymm4195; AVX512DQ-FCP-NEXT: vmovq %xmm2, (%rsi)196; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} xmm2 = [1,6,0,0]197; AVX512DQ-FCP-NEXT: vpermps %ymm4, %ymm2, %ymm2198; AVX512DQ-FCP-NEXT: vmovlps %xmm2, (%rdx)199; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} xmm2 = [2,7,0,0]200; AVX512DQ-FCP-NEXT: vpermps %ymm4, %ymm2, %ymm2201; AVX512DQ-FCP-NEXT: vmovlps %xmm2, (%rcx)202; AVX512DQ-FCP-NEXT: vpalignr {{.*#+}} xmm0 = xmm0[12,13,14,15],xmm1[0,1,2,3,4,5,6,7,8,9,10,11]203; AVX512DQ-FCP-NEXT: vmovq %xmm0, (%r8)204; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} xmm0 = xmm3[0],xmm1[1],xmm3[2,3]205; AVX512DQ-FCP-NEXT: vmovq %xmm0, (%r9)206; AVX512DQ-FCP-NEXT: vzeroupper207; AVX512DQ-FCP-NEXT: retq208;209; AVX512BW-LABEL: load_i32_stride5_vf2:210; AVX512BW: # %bb.0:211; AVX512BW-NEXT: vmovdqa (%rdi), %xmm0212; AVX512BW-NEXT: vmovdqa 16(%rdi), %xmm1213; AVX512BW-NEXT: vmovdqa 32(%rdi), %xmm2214; AVX512BW-NEXT: vpextrd $2, %xmm1, %eax215; AVX512BW-NEXT: vpextrd $3, %xmm1, %r10d216; AVX512BW-NEXT: vpblendd {{.*#+}} xmm1 = xmm0[0],xmm1[1],xmm0[2,3]217; AVX512BW-NEXT: vpbroadcastd 8(%rdi), %xmm3218; AVX512BW-NEXT: vpbroadcastd 16(%rdi), %ymm4219; AVX512BW-NEXT: vmovq %xmm1, (%rsi)220; AVX512BW-NEXT: vpshufd {{.*#+}} xmm1 = xmm0[1,1,1,1]221; AVX512BW-NEXT: vpinsrd $1, %eax, %xmm1, %xmm1222; AVX512BW-NEXT: vmovq %xmm1, (%rdx)223; AVX512BW-NEXT: vpinsrd $1, %r10d, %xmm3, %xmm1224; AVX512BW-NEXT: vmovq %xmm1, (%rcx)225; AVX512BW-NEXT: vpalignr {{.*#+}} xmm0 = xmm0[12,13,14,15],xmm2[0,1,2,3,4,5,6,7,8,9,10,11]226; AVX512BW-NEXT: vmovq %xmm0, (%r8)227; AVX512BW-NEXT: vpblendd {{.*#+}} xmm0 = xmm4[0],xmm2[1],xmm4[2,3]228; AVX512BW-NEXT: vmovq %xmm0, (%r9)229; AVX512BW-NEXT: vzeroupper230; AVX512BW-NEXT: retq231;232; AVX512BW-FCP-LABEL: load_i32_stride5_vf2:233; AVX512BW-FCP: # %bb.0:234; AVX512BW-FCP-NEXT: vmovdqa (%rdi), %xmm0235; AVX512BW-FCP-NEXT: vmovdqa 32(%rdi), %xmm1236; AVX512BW-FCP-NEXT: vpblendd {{.*#+}} xmm2 = xmm0[0],mem[1],xmm0[2,3]237; AVX512BW-FCP-NEXT: vpbroadcastd 16(%rdi), %ymm3238; AVX512BW-FCP-NEXT: vmovaps (%rdi), %ymm4239; AVX512BW-FCP-NEXT: vmovq %xmm2, (%rsi)240; AVX512BW-FCP-NEXT: vpmovsxbd {{.*#+}} xmm2 = [1,6,0,0]241; AVX512BW-FCP-NEXT: vpermps %ymm4, %ymm2, %ymm2242; AVX512BW-FCP-NEXT: vmovlps %xmm2, (%rdx)243; AVX512BW-FCP-NEXT: vpmovsxbd {{.*#+}} xmm2 = [2,7,0,0]244; AVX512BW-FCP-NEXT: vpermps %ymm4, %ymm2, %ymm2245; AVX512BW-FCP-NEXT: vmovlps %xmm2, (%rcx)246; AVX512BW-FCP-NEXT: vpalignr {{.*#+}} xmm0 = xmm0[12,13,14,15],xmm1[0,1,2,3,4,5,6,7,8,9,10,11]247; AVX512BW-FCP-NEXT: vmovq %xmm0, (%r8)248; AVX512BW-FCP-NEXT: vpblendd {{.*#+}} xmm0 = xmm3[0],xmm1[1],xmm3[2,3]249; AVX512BW-FCP-NEXT: vmovq %xmm0, (%r9)250; AVX512BW-FCP-NEXT: vzeroupper251; AVX512BW-FCP-NEXT: retq252;253; AVX512DQ-BW-LABEL: load_i32_stride5_vf2:254; AVX512DQ-BW: # %bb.0:255; AVX512DQ-BW-NEXT: vmovdqa (%rdi), %xmm0256; AVX512DQ-BW-NEXT: vmovdqa 16(%rdi), %xmm1257; AVX512DQ-BW-NEXT: vmovdqa 32(%rdi), %xmm2258; AVX512DQ-BW-NEXT: vpextrd $2, %xmm1, %eax259; AVX512DQ-BW-NEXT: vpextrd $3, %xmm1, %r10d260; AVX512DQ-BW-NEXT: vpblendd {{.*#+}} xmm1 = xmm0[0],xmm1[1],xmm0[2,3]261; AVX512DQ-BW-NEXT: vpbroadcastd 8(%rdi), %xmm3262; AVX512DQ-BW-NEXT: vpbroadcastd 16(%rdi), %ymm4263; AVX512DQ-BW-NEXT: vmovq %xmm1, (%rsi)264; AVX512DQ-BW-NEXT: vpshufd {{.*#+}} xmm1 = xmm0[1,1,1,1]265; AVX512DQ-BW-NEXT: vpinsrd $1, %eax, %xmm1, %xmm1266; AVX512DQ-BW-NEXT: vmovq %xmm1, (%rdx)267; AVX512DQ-BW-NEXT: vpinsrd $1, %r10d, %xmm3, %xmm1268; AVX512DQ-BW-NEXT: vmovq %xmm1, (%rcx)269; AVX512DQ-BW-NEXT: vpalignr {{.*#+}} xmm0 = xmm0[12,13,14,15],xmm2[0,1,2,3,4,5,6,7,8,9,10,11]270; AVX512DQ-BW-NEXT: vmovq %xmm0, (%r8)271; AVX512DQ-BW-NEXT: vpblendd {{.*#+}} xmm0 = xmm4[0],xmm2[1],xmm4[2,3]272; AVX512DQ-BW-NEXT: vmovq %xmm0, (%r9)273; AVX512DQ-BW-NEXT: vzeroupper274; AVX512DQ-BW-NEXT: retq275;276; AVX512DQ-BW-FCP-LABEL: load_i32_stride5_vf2:277; AVX512DQ-BW-FCP: # %bb.0:278; AVX512DQ-BW-FCP-NEXT: vmovdqa (%rdi), %xmm0279; AVX512DQ-BW-FCP-NEXT: vmovdqa 32(%rdi), %xmm1280; AVX512DQ-BW-FCP-NEXT: vpblendd {{.*#+}} xmm2 = xmm0[0],mem[1],xmm0[2,3]281; AVX512DQ-BW-FCP-NEXT: vpbroadcastd 16(%rdi), %ymm3282; AVX512DQ-BW-FCP-NEXT: vmovaps (%rdi), %ymm4283; AVX512DQ-BW-FCP-NEXT: vmovq %xmm2, (%rsi)284; AVX512DQ-BW-FCP-NEXT: vpmovsxbd {{.*#+}} xmm2 = [1,6,0,0]285; AVX512DQ-BW-FCP-NEXT: vpermps %ymm4, %ymm2, %ymm2286; AVX512DQ-BW-FCP-NEXT: vmovlps %xmm2, (%rdx)287; AVX512DQ-BW-FCP-NEXT: vpmovsxbd {{.*#+}} xmm2 = [2,7,0,0]288; AVX512DQ-BW-FCP-NEXT: vpermps %ymm4, %ymm2, %ymm2289; AVX512DQ-BW-FCP-NEXT: vmovlps %xmm2, (%rcx)290; AVX512DQ-BW-FCP-NEXT: vpalignr {{.*#+}} xmm0 = xmm0[12,13,14,15],xmm1[0,1,2,3,4,5,6,7,8,9,10,11]291; AVX512DQ-BW-FCP-NEXT: vmovq %xmm0, (%r8)292; AVX512DQ-BW-FCP-NEXT: vpblendd {{.*#+}} xmm0 = xmm3[0],xmm1[1],xmm3[2,3]293; AVX512DQ-BW-FCP-NEXT: vmovq %xmm0, (%r9)294; AVX512DQ-BW-FCP-NEXT: vzeroupper295; AVX512DQ-BW-FCP-NEXT: retq296 %wide.vec = load <10 x i32>, ptr %in.vec, align 64297 %strided.vec0 = shufflevector <10 x i32> %wide.vec, <10 x i32> poison, <2 x i32> <i32 0, i32 5>298 %strided.vec1 = shufflevector <10 x i32> %wide.vec, <10 x i32> poison, <2 x i32> <i32 1, i32 6>299 %strided.vec2 = shufflevector <10 x i32> %wide.vec, <10 x i32> poison, <2 x i32> <i32 2, i32 7>300 %strided.vec3 = shufflevector <10 x i32> %wide.vec, <10 x i32> poison, <2 x i32> <i32 3, i32 8>301 %strided.vec4 = shufflevector <10 x i32> %wide.vec, <10 x i32> poison, <2 x i32> <i32 4, i32 9>302 store <2 x i32> %strided.vec0, ptr %out.vec0, align 64303 store <2 x i32> %strided.vec1, ptr %out.vec1, align 64304 store <2 x i32> %strided.vec2, ptr %out.vec2, align 64305 store <2 x i32> %strided.vec3, ptr %out.vec3, align 64306 store <2 x i32> %strided.vec4, ptr %out.vec4, align 64307 ret void308}309 310define void @load_i32_stride5_vf4(ptr %in.vec, ptr %out.vec0, ptr %out.vec1, ptr %out.vec2, ptr %out.vec3, ptr %out.vec4) nounwind {311; SSE-LABEL: load_i32_stride5_vf4:312; SSE: # %bb.0:313; SSE-NEXT: movdqa 64(%rdi), %xmm1314; SSE-NEXT: movdqa (%rdi), %xmm5315; SSE-NEXT: movdqa 16(%rdi), %xmm2316; SSE-NEXT: movdqa 32(%rdi), %xmm4317; SSE-NEXT: movdqa 48(%rdi), %xmm0318; SSE-NEXT: pshufd {{.*#+}} xmm3 = xmm2[1,1,1,1]319; SSE-NEXT: movdqa %xmm5, %xmm6320; SSE-NEXT: punpckldq {{.*#+}} xmm6 = xmm6[0],xmm3[0],xmm6[1],xmm3[1]321; SSE-NEXT: pshufd {{.*#+}} xmm3 = xmm4[2,2,2,2]322; SSE-NEXT: punpckhdq {{.*#+}} xmm3 = xmm3[2],xmm0[2],xmm3[3],xmm0[3]323; SSE-NEXT: movsd {{.*#+}} xmm3 = xmm6[0],xmm3[1]324; SSE-NEXT: pshufd {{.*#+}} xmm6 = xmm2[2,3,2,3]325; SSE-NEXT: pshufd {{.*#+}} xmm7 = xmm5[1,1,1,1]326; SSE-NEXT: punpckldq {{.*#+}} xmm7 = xmm7[0],xmm6[0],xmm7[1],xmm6[1]327; SSE-NEXT: pshufd {{.*#+}} xmm6 = xmm1[0,0,1,1]328; SSE-NEXT: pshufd {{.*#+}} xmm8 = xmm4[2,3,2,3]329; SSE-NEXT: punpckldq {{.*#+}} xmm8 = xmm8[0],xmm6[0],xmm8[1],xmm6[1]330; SSE-NEXT: movsd {{.*#+}} xmm8 = xmm7[0],xmm8[1]331; SSE-NEXT: pshufd {{.*#+}} xmm6 = xmm2[2,2,3,3]332; SSE-NEXT: pshufd {{.*#+}} xmm7 = xmm5[3,3,3,3]333; SSE-NEXT: punpckhdq {{.*#+}} xmm5 = xmm5[2],xmm6[2],xmm5[3],xmm6[3]334; SSE-NEXT: pshufd {{.*#+}} xmm6 = xmm0[0,0,1,1]335; SSE-NEXT: punpckldq {{.*#+}} xmm6 = xmm6[0],xmm1[0],xmm6[1],xmm1[1]336; SSE-NEXT: movsd {{.*#+}} xmm6 = xmm5[0],xmm6[1]337; SSE-NEXT: punpckldq {{.*#+}} xmm7 = xmm7[0],xmm4[0],xmm7[1],xmm4[1]338; SSE-NEXT: pshufd {{.*#+}} xmm5 = xmm1[2,2,3,3]339; SSE-NEXT: pshufd {{.*#+}} xmm9 = xmm0[2,2,2,2]340; SSE-NEXT: punpckldq {{.*#+}} xmm0 = xmm0[0],xmm5[0],xmm0[1],xmm5[1]341; SSE-NEXT: movsd {{.*#+}} xmm0 = xmm7[0],xmm0[1]342; SSE-NEXT: pshufd {{.*#+}} xmm4 = xmm4[1,1,1,1]343; SSE-NEXT: punpckldq {{.*#+}} xmm2 = xmm2[0],xmm4[0],xmm2[1],xmm4[1]344; SSE-NEXT: punpckhdq {{.*#+}} xmm9 = xmm9[2],xmm1[2],xmm9[3],xmm1[3]345; SSE-NEXT: movsd {{.*#+}} xmm9 = xmm2[0],xmm9[1]346; SSE-NEXT: movapd %xmm3, (%rsi)347; SSE-NEXT: movapd %xmm8, (%rdx)348; SSE-NEXT: movapd %xmm6, (%rcx)349; SSE-NEXT: movapd %xmm0, (%r8)350; SSE-NEXT: movapd %xmm9, (%r9)351; SSE-NEXT: retq352;353; AVX-LABEL: load_i32_stride5_vf4:354; AVX: # %bb.0:355; AVX-NEXT: vmovaps 32(%rdi), %ymm0356; AVX-NEXT: vmovaps (%rdi), %ymm1357; AVX-NEXT: vblendps {{.*#+}} ymm2 = ymm1[0,1],ymm0[2,3],ymm1[4,5],ymm0[6,7]358; AVX-NEXT: vextractf128 $1, %ymm2, %xmm3359; AVX-NEXT: vblendps {{.*#+}} xmm2 = xmm2[0],xmm3[1],xmm2[2],xmm3[3]360; AVX-NEXT: vmovaps (%rdi), %xmm3361; AVX-NEXT: vmovaps 32(%rdi), %xmm4362; AVX-NEXT: vmovsd {{.*#+}} xmm5 = xmm3[0],xmm4[1]363; AVX-NEXT: vblendps {{.*#+}} xmm5 = xmm5[0,1],mem[2],xmm5[3]364; AVX-NEXT: vshufps {{.*#+}} xmm5 = xmm5[1,2,3,3]365; AVX-NEXT: vmovaps 64(%rdi), %xmm6366; AVX-NEXT: vinsertps {{.*#+}} xmm5 = xmm5[0,1,2],xmm6[0]367; AVX-NEXT: vblendps {{.*#+}} ymm7 = ymm1[0,1,2,3],ymm0[4,5],ymm1[6,7]368; AVX-NEXT: vextractf128 $1, %ymm7, %xmm7369; AVX-NEXT: vblendps {{.*#+}} xmm7 = xmm7[0,1],mem[2],xmm7[3]370; AVX-NEXT: vshufpd {{.*#+}} xmm7 = xmm7[1,0]371; AVX-NEXT: vinsertps {{.*#+}} xmm7 = xmm7[0,1,2],xmm6[1]372; AVX-NEXT: vmovsd {{.*#+}} xmm3 = xmm4[0],xmm3[1]373; AVX-NEXT: vshufps {{.*#+}} xmm3 = xmm3[3,0],mem[1,3]374; AVX-NEXT: vinsertps {{.*#+}} xmm3 = xmm3[0,1,2],xmm6[2]375; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]376; AVX-NEXT: vextractf128 $1, %ymm0, %xmm0377; AVX-NEXT: vblendps {{.*#+}} xmm0 = xmm0[0],mem[1],xmm0[2,3]378; AVX-NEXT: vblendps {{.*#+}} xmm0 = xmm0[0,1,2],xmm6[3]379; AVX-NEXT: vmovaps %xmm2, (%rsi)380; AVX-NEXT: vmovaps %xmm5, (%rdx)381; AVX-NEXT: vmovaps %xmm7, (%rcx)382; AVX-NEXT: vmovaps %xmm3, (%r8)383; AVX-NEXT: vmovaps %xmm0, (%r9)384; AVX-NEXT: vzeroupper385; AVX-NEXT: retq386;387; AVX2-LABEL: load_i32_stride5_vf4:388; AVX2: # %bb.0:389; AVX2-NEXT: vmovdqa (%rdi), %ymm0390; AVX2-NEXT: vmovdqa 32(%rdi), %ymm1391; AVX2-NEXT: vpmovsxbd {{.*#+}} xmm2 = [0,5,2,7]392; AVX2-NEXT: vpblendd {{.*#+}} ymm3 = ymm0[0,1],ymm1[2,3],ymm0[4,5],ymm1[6,7]393; AVX2-NEXT: vpermd %ymm3, %ymm2, %ymm2394; AVX2-NEXT: vpmovsxbd {{.*#+}} xmm3 = [1,6,3,0]395; AVX2-NEXT: vpblendd {{.*#+}} ymm4 = ymm0[0,1],ymm1[2,3],ymm0[4,5,6,7]396; AVX2-NEXT: vpermd %ymm4, %ymm3, %ymm3397; AVX2-NEXT: vmovdqa 64(%rdi), %xmm4398; AVX2-NEXT: vpbroadcastd %xmm4, %xmm5399; AVX2-NEXT: vpblendd {{.*#+}} xmm3 = xmm3[0,1,2],xmm5[3]400; AVX2-NEXT: vpmovsxbd {{.*#+}} xmm5 = [2,7,4,0]401; AVX2-NEXT: vpblendd {{.*#+}} ymm6 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]402; AVX2-NEXT: vpermd %ymm6, %ymm5, %ymm5403; AVX2-NEXT: vpbroadcastd 68(%rdi), %xmm6404; AVX2-NEXT: vpblendd {{.*#+}} xmm5 = xmm5[0,1,2],xmm6[3]405; AVX2-NEXT: vpshufd {{.*#+}} xmm6 = xmm4[2,2,2,2]406; AVX2-NEXT: vpalignr {{.*#+}} ymm7 = ymm0[12,13,14,15],ymm1[0,1,2,3,4,5,6,7,8,9,10,11],ymm0[28,29,30,31],ymm1[16,17,18,19,20,21,22,23,24,25,26,27]407; AVX2-NEXT: vpermq {{.*#+}} ymm7 = ymm7[0,3,2,3]408; AVX2-NEXT: vpblendd {{.*#+}} xmm6 = xmm7[0,1,2],xmm6[3]409; AVX2-NEXT: vpmovsxbd {{.*#+}} xmm7 = [4,1,6,0]410; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5],ymm1[6,7]411; AVX2-NEXT: vpermd %ymm0, %ymm7, %ymm0412; AVX2-NEXT: vpblendd {{.*#+}} xmm0 = xmm0[0,1,2],xmm4[3]413; AVX2-NEXT: vmovdqa %xmm2, (%rsi)414; AVX2-NEXT: vmovdqa %xmm3, (%rdx)415; AVX2-NEXT: vmovdqa %xmm5, (%rcx)416; AVX2-NEXT: vmovdqa %xmm6, (%r8)417; AVX2-NEXT: vmovdqa %xmm0, (%r9)418; AVX2-NEXT: vzeroupper419; AVX2-NEXT: retq420;421; AVX2-FP-LABEL: load_i32_stride5_vf4:422; AVX2-FP: # %bb.0:423; AVX2-FP-NEXT: vmovdqa (%rdi), %ymm0424; AVX2-FP-NEXT: vmovdqa 32(%rdi), %ymm1425; AVX2-FP-NEXT: vpmovsxbd {{.*#+}} xmm2 = [0,5,2,7]426; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm3 = ymm0[0,1],ymm1[2,3],ymm0[4,5],ymm1[6,7]427; AVX2-FP-NEXT: vpermd %ymm3, %ymm2, %ymm2428; AVX2-FP-NEXT: vpmovsxbd {{.*#+}} xmm3 = [1,6,3,0]429; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm4 = ymm0[0,1],ymm1[2,3],ymm0[4,5,6,7]430; AVX2-FP-NEXT: vpermd %ymm4, %ymm3, %ymm3431; AVX2-FP-NEXT: vmovdqa 64(%rdi), %xmm4432; AVX2-FP-NEXT: vpbroadcastd %xmm4, %xmm5433; AVX2-FP-NEXT: vpblendd {{.*#+}} xmm3 = xmm3[0,1,2],xmm5[3]434; AVX2-FP-NEXT: vpmovsxbd {{.*#+}} xmm5 = [2,7,4,0]435; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm6 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]436; AVX2-FP-NEXT: vpermd %ymm6, %ymm5, %ymm5437; AVX2-FP-NEXT: vpbroadcastd 68(%rdi), %xmm6438; AVX2-FP-NEXT: vpblendd {{.*#+}} xmm5 = xmm5[0,1,2],xmm6[3]439; AVX2-FP-NEXT: vpshufd {{.*#+}} xmm6 = xmm4[2,2,2,2]440; AVX2-FP-NEXT: vpalignr {{.*#+}} ymm7 = ymm0[12,13,14,15],ymm1[0,1,2,3,4,5,6,7,8,9,10,11],ymm0[28,29,30,31],ymm1[16,17,18,19,20,21,22,23,24,25,26,27]441; AVX2-FP-NEXT: vpermq {{.*#+}} ymm7 = ymm7[0,3,2,3]442; AVX2-FP-NEXT: vpblendd {{.*#+}} xmm6 = xmm7[0,1,2],xmm6[3]443; AVX2-FP-NEXT: vpmovsxbd {{.*#+}} xmm7 = [4,1,6,0]444; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5],ymm1[6,7]445; AVX2-FP-NEXT: vpermd %ymm0, %ymm7, %ymm0446; AVX2-FP-NEXT: vpblendd {{.*#+}} xmm0 = xmm0[0,1,2],xmm4[3]447; AVX2-FP-NEXT: vmovdqa %xmm2, (%rsi)448; AVX2-FP-NEXT: vmovdqa %xmm3, (%rdx)449; AVX2-FP-NEXT: vmovdqa %xmm5, (%rcx)450; AVX2-FP-NEXT: vmovdqa %xmm6, (%r8)451; AVX2-FP-NEXT: vmovdqa %xmm0, (%r9)452; AVX2-FP-NEXT: vzeroupper453; AVX2-FP-NEXT: retq454;455; AVX2-FCP-LABEL: load_i32_stride5_vf4:456; AVX2-FCP: # %bb.0:457; AVX2-FCP-NEXT: vmovdqa (%rdi), %ymm0458; AVX2-FCP-NEXT: vmovdqa 32(%rdi), %ymm1459; AVX2-FCP-NEXT: vpmovsxbd {{.*#+}} xmm2 = [0,5,2,7]460; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm3 = ymm0[0,1],ymm1[2,3],ymm0[4,5],ymm1[6,7]461; AVX2-FCP-NEXT: vpermd %ymm3, %ymm2, %ymm2462; AVX2-FCP-NEXT: vpmovsxbd {{.*#+}} xmm3 = [1,6,3,0]463; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm4 = ymm0[0,1],ymm1[2,3],ymm0[4,5,6,7]464; AVX2-FCP-NEXT: vpermd %ymm4, %ymm3, %ymm3465; AVX2-FCP-NEXT: vmovdqa 64(%rdi), %xmm4466; AVX2-FCP-NEXT: vpbroadcastd %xmm4, %xmm5467; AVX2-FCP-NEXT: vpblendd {{.*#+}} xmm3 = xmm3[0,1,2],xmm5[3]468; AVX2-FCP-NEXT: vpmovsxbd {{.*#+}} xmm5 = [2,7,4,0]469; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm6 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]470; AVX2-FCP-NEXT: vpermd %ymm6, %ymm5, %ymm5471; AVX2-FCP-NEXT: vpbroadcastd 68(%rdi), %xmm6472; AVX2-FCP-NEXT: vpblendd {{.*#+}} xmm5 = xmm5[0,1,2],xmm6[3]473; AVX2-FCP-NEXT: vpshufd {{.*#+}} xmm6 = xmm4[2,2,2,2]474; AVX2-FCP-NEXT: vpalignr {{.*#+}} ymm7 = ymm0[12,13,14,15],ymm1[0,1,2,3,4,5,6,7,8,9,10,11],ymm0[28,29,30,31],ymm1[16,17,18,19,20,21,22,23,24,25,26,27]475; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm7 = ymm7[0,3,2,3]476; AVX2-FCP-NEXT: vpblendd {{.*#+}} xmm6 = xmm7[0,1,2],xmm6[3]477; AVX2-FCP-NEXT: vpmovsxbd {{.*#+}} xmm7 = [4,1,6,0]478; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5],ymm1[6,7]479; AVX2-FCP-NEXT: vpermd %ymm0, %ymm7, %ymm0480; AVX2-FCP-NEXT: vpblendd {{.*#+}} xmm0 = xmm0[0,1,2],xmm4[3]481; AVX2-FCP-NEXT: vmovdqa %xmm2, (%rsi)482; AVX2-FCP-NEXT: vmovdqa %xmm3, (%rdx)483; AVX2-FCP-NEXT: vmovdqa %xmm5, (%rcx)484; AVX2-FCP-NEXT: vmovdqa %xmm6, (%r8)485; AVX2-FCP-NEXT: vmovdqa %xmm0, (%r9)486; AVX2-FCP-NEXT: vzeroupper487; AVX2-FCP-NEXT: retq488;489; AVX512-LABEL: load_i32_stride5_vf4:490; AVX512: # %bb.0:491; AVX512-NEXT: vmovdqa64 (%rdi), %zmm0492; AVX512-NEXT: vmovdqa64 64(%rdi), %zmm1493; AVX512-NEXT: vpmovsxbd {{.*#+}} xmm2 = [0,5,10,15]494; AVX512-NEXT: vpermd %zmm0, %zmm2, %zmm2495; AVX512-NEXT: vpmovsxbd {{.*#+}} xmm3 = [1,6,11,16]496; AVX512-NEXT: vpermi2d %zmm1, %zmm0, %zmm3497; AVX512-NEXT: vpmovsxbd {{.*#+}} xmm4 = [2,7,12,17]498; AVX512-NEXT: vpermi2d %zmm1, %zmm0, %zmm4499; AVX512-NEXT: vpmovsxbd {{.*#+}} xmm5 = [3,8,13,18]500; AVX512-NEXT: vpermi2d %zmm1, %zmm0, %zmm5501; AVX512-NEXT: vpmovsxbd {{.*#+}} xmm6 = [4,9,14,19]502; AVX512-NEXT: vpermi2d %zmm1, %zmm0, %zmm6503; AVX512-NEXT: vmovdqa %xmm2, (%rsi)504; AVX512-NEXT: vmovdqa %xmm3, (%rdx)505; AVX512-NEXT: vmovdqa %xmm4, (%rcx)506; AVX512-NEXT: vmovdqa %xmm5, (%r8)507; AVX512-NEXT: vmovdqa %xmm6, (%r9)508; AVX512-NEXT: vzeroupper509; AVX512-NEXT: retq510;511; AVX512-FCP-LABEL: load_i32_stride5_vf4:512; AVX512-FCP: # %bb.0:513; AVX512-FCP-NEXT: vmovdqa64 (%rdi), %zmm0514; AVX512-FCP-NEXT: vmovdqa64 64(%rdi), %zmm1515; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} xmm2 = [0,5,10,15]516; AVX512-FCP-NEXT: vpermd %zmm0, %zmm2, %zmm2517; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} xmm3 = [1,6,11,16]518; AVX512-FCP-NEXT: vpermi2d %zmm1, %zmm0, %zmm3519; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} xmm4 = [2,7,12,17]520; AVX512-FCP-NEXT: vpermi2d %zmm1, %zmm0, %zmm4521; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} xmm5 = [3,8,13,18]522; AVX512-FCP-NEXT: vpermi2d %zmm1, %zmm0, %zmm5523; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} xmm6 = [4,9,14,19]524; AVX512-FCP-NEXT: vpermi2d %zmm1, %zmm0, %zmm6525; AVX512-FCP-NEXT: vmovdqa %xmm2, (%rsi)526; AVX512-FCP-NEXT: vmovdqa %xmm3, (%rdx)527; AVX512-FCP-NEXT: vmovdqa %xmm4, (%rcx)528; AVX512-FCP-NEXT: vmovdqa %xmm5, (%r8)529; AVX512-FCP-NEXT: vmovdqa %xmm6, (%r9)530; AVX512-FCP-NEXT: vzeroupper531; AVX512-FCP-NEXT: retq532;533; AVX512DQ-LABEL: load_i32_stride5_vf4:534; AVX512DQ: # %bb.0:535; AVX512DQ-NEXT: vmovdqa64 (%rdi), %zmm0536; AVX512DQ-NEXT: vmovdqa64 64(%rdi), %zmm1537; AVX512DQ-NEXT: vpmovsxbd {{.*#+}} xmm2 = [0,5,10,15]538; AVX512DQ-NEXT: vpermd %zmm0, %zmm2, %zmm2539; AVX512DQ-NEXT: vpmovsxbd {{.*#+}} xmm3 = [1,6,11,16]540; AVX512DQ-NEXT: vpermi2d %zmm1, %zmm0, %zmm3541; AVX512DQ-NEXT: vpmovsxbd {{.*#+}} xmm4 = [2,7,12,17]542; AVX512DQ-NEXT: vpermi2d %zmm1, %zmm0, %zmm4543; AVX512DQ-NEXT: vpmovsxbd {{.*#+}} xmm5 = [3,8,13,18]544; AVX512DQ-NEXT: vpermi2d %zmm1, %zmm0, %zmm5545; AVX512DQ-NEXT: vpmovsxbd {{.*#+}} xmm6 = [4,9,14,19]546; AVX512DQ-NEXT: vpermi2d %zmm1, %zmm0, %zmm6547; AVX512DQ-NEXT: vmovdqa %xmm2, (%rsi)548; AVX512DQ-NEXT: vmovdqa %xmm3, (%rdx)549; AVX512DQ-NEXT: vmovdqa %xmm4, (%rcx)550; AVX512DQ-NEXT: vmovdqa %xmm5, (%r8)551; AVX512DQ-NEXT: vmovdqa %xmm6, (%r9)552; AVX512DQ-NEXT: vzeroupper553; AVX512DQ-NEXT: retq554;555; AVX512DQ-FCP-LABEL: load_i32_stride5_vf4:556; AVX512DQ-FCP: # %bb.0:557; AVX512DQ-FCP-NEXT: vmovdqa64 (%rdi), %zmm0558; AVX512DQ-FCP-NEXT: vmovdqa64 64(%rdi), %zmm1559; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} xmm2 = [0,5,10,15]560; AVX512DQ-FCP-NEXT: vpermd %zmm0, %zmm2, %zmm2561; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} xmm3 = [1,6,11,16]562; AVX512DQ-FCP-NEXT: vpermi2d %zmm1, %zmm0, %zmm3563; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} xmm4 = [2,7,12,17]564; AVX512DQ-FCP-NEXT: vpermi2d %zmm1, %zmm0, %zmm4565; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} xmm5 = [3,8,13,18]566; AVX512DQ-FCP-NEXT: vpermi2d %zmm1, %zmm0, %zmm5567; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} xmm6 = [4,9,14,19]568; AVX512DQ-FCP-NEXT: vpermi2d %zmm1, %zmm0, %zmm6569; AVX512DQ-FCP-NEXT: vmovdqa %xmm2, (%rsi)570; AVX512DQ-FCP-NEXT: vmovdqa %xmm3, (%rdx)571; AVX512DQ-FCP-NEXT: vmovdqa %xmm4, (%rcx)572; AVX512DQ-FCP-NEXT: vmovdqa %xmm5, (%r8)573; AVX512DQ-FCP-NEXT: vmovdqa %xmm6, (%r9)574; AVX512DQ-FCP-NEXT: vzeroupper575; AVX512DQ-FCP-NEXT: retq576;577; AVX512BW-LABEL: load_i32_stride5_vf4:578; AVX512BW: # %bb.0:579; AVX512BW-NEXT: vmovdqa64 (%rdi), %zmm0580; AVX512BW-NEXT: vmovdqa64 64(%rdi), %zmm1581; AVX512BW-NEXT: vpmovsxbd {{.*#+}} xmm2 = [0,5,10,15]582; AVX512BW-NEXT: vpermd %zmm0, %zmm2, %zmm2583; AVX512BW-NEXT: vpmovsxbd {{.*#+}} xmm3 = [1,6,11,16]584; AVX512BW-NEXT: vpermi2d %zmm1, %zmm0, %zmm3585; AVX512BW-NEXT: vpmovsxbd {{.*#+}} xmm4 = [2,7,12,17]586; AVX512BW-NEXT: vpermi2d %zmm1, %zmm0, %zmm4587; AVX512BW-NEXT: vpmovsxbd {{.*#+}} xmm5 = [3,8,13,18]588; AVX512BW-NEXT: vpermi2d %zmm1, %zmm0, %zmm5589; AVX512BW-NEXT: vpmovsxbd {{.*#+}} xmm6 = [4,9,14,19]590; AVX512BW-NEXT: vpermi2d %zmm1, %zmm0, %zmm6591; AVX512BW-NEXT: vmovdqa %xmm2, (%rsi)592; AVX512BW-NEXT: vmovdqa %xmm3, (%rdx)593; AVX512BW-NEXT: vmovdqa %xmm4, (%rcx)594; AVX512BW-NEXT: vmovdqa %xmm5, (%r8)595; AVX512BW-NEXT: vmovdqa %xmm6, (%r9)596; AVX512BW-NEXT: vzeroupper597; AVX512BW-NEXT: retq598;599; AVX512BW-FCP-LABEL: load_i32_stride5_vf4:600; AVX512BW-FCP: # %bb.0:601; AVX512BW-FCP-NEXT: vmovdqa64 (%rdi), %zmm0602; AVX512BW-FCP-NEXT: vmovdqa64 64(%rdi), %zmm1603; AVX512BW-FCP-NEXT: vpmovsxbd {{.*#+}} xmm2 = [0,5,10,15]604; AVX512BW-FCP-NEXT: vpermd %zmm0, %zmm2, %zmm2605; AVX512BW-FCP-NEXT: vpmovsxbd {{.*#+}} xmm3 = [1,6,11,16]606; AVX512BW-FCP-NEXT: vpermi2d %zmm1, %zmm0, %zmm3607; AVX512BW-FCP-NEXT: vpmovsxbd {{.*#+}} xmm4 = [2,7,12,17]608; AVX512BW-FCP-NEXT: vpermi2d %zmm1, %zmm0, %zmm4609; AVX512BW-FCP-NEXT: vpmovsxbd {{.*#+}} xmm5 = [3,8,13,18]610; AVX512BW-FCP-NEXT: vpermi2d %zmm1, %zmm0, %zmm5611; AVX512BW-FCP-NEXT: vpmovsxbd {{.*#+}} xmm6 = [4,9,14,19]612; AVX512BW-FCP-NEXT: vpermi2d %zmm1, %zmm0, %zmm6613; AVX512BW-FCP-NEXT: vmovdqa %xmm2, (%rsi)614; AVX512BW-FCP-NEXT: vmovdqa %xmm3, (%rdx)615; AVX512BW-FCP-NEXT: vmovdqa %xmm4, (%rcx)616; AVX512BW-FCP-NEXT: vmovdqa %xmm5, (%r8)617; AVX512BW-FCP-NEXT: vmovdqa %xmm6, (%r9)618; AVX512BW-FCP-NEXT: vzeroupper619; AVX512BW-FCP-NEXT: retq620;621; AVX512DQ-BW-LABEL: load_i32_stride5_vf4:622; AVX512DQ-BW: # %bb.0:623; AVX512DQ-BW-NEXT: vmovdqa64 (%rdi), %zmm0624; AVX512DQ-BW-NEXT: vmovdqa64 64(%rdi), %zmm1625; AVX512DQ-BW-NEXT: vpmovsxbd {{.*#+}} xmm2 = [0,5,10,15]626; AVX512DQ-BW-NEXT: vpermd %zmm0, %zmm2, %zmm2627; AVX512DQ-BW-NEXT: vpmovsxbd {{.*#+}} xmm3 = [1,6,11,16]628; AVX512DQ-BW-NEXT: vpermi2d %zmm1, %zmm0, %zmm3629; AVX512DQ-BW-NEXT: vpmovsxbd {{.*#+}} xmm4 = [2,7,12,17]630; AVX512DQ-BW-NEXT: vpermi2d %zmm1, %zmm0, %zmm4631; AVX512DQ-BW-NEXT: vpmovsxbd {{.*#+}} xmm5 = [3,8,13,18]632; AVX512DQ-BW-NEXT: vpermi2d %zmm1, %zmm0, %zmm5633; AVX512DQ-BW-NEXT: vpmovsxbd {{.*#+}} xmm6 = [4,9,14,19]634; AVX512DQ-BW-NEXT: vpermi2d %zmm1, %zmm0, %zmm6635; AVX512DQ-BW-NEXT: vmovdqa %xmm2, (%rsi)636; AVX512DQ-BW-NEXT: vmovdqa %xmm3, (%rdx)637; AVX512DQ-BW-NEXT: vmovdqa %xmm4, (%rcx)638; AVX512DQ-BW-NEXT: vmovdqa %xmm5, (%r8)639; AVX512DQ-BW-NEXT: vmovdqa %xmm6, (%r9)640; AVX512DQ-BW-NEXT: vzeroupper641; AVX512DQ-BW-NEXT: retq642;643; AVX512DQ-BW-FCP-LABEL: load_i32_stride5_vf4:644; AVX512DQ-BW-FCP: # %bb.0:645; AVX512DQ-BW-FCP-NEXT: vmovdqa64 (%rdi), %zmm0646; AVX512DQ-BW-FCP-NEXT: vmovdqa64 64(%rdi), %zmm1647; AVX512DQ-BW-FCP-NEXT: vpmovsxbd {{.*#+}} xmm2 = [0,5,10,15]648; AVX512DQ-BW-FCP-NEXT: vpermd %zmm0, %zmm2, %zmm2649; AVX512DQ-BW-FCP-NEXT: vpmovsxbd {{.*#+}} xmm3 = [1,6,11,16]650; AVX512DQ-BW-FCP-NEXT: vpermi2d %zmm1, %zmm0, %zmm3651; AVX512DQ-BW-FCP-NEXT: vpmovsxbd {{.*#+}} xmm4 = [2,7,12,17]652; AVX512DQ-BW-FCP-NEXT: vpermi2d %zmm1, %zmm0, %zmm4653; AVX512DQ-BW-FCP-NEXT: vpmovsxbd {{.*#+}} xmm5 = [3,8,13,18]654; AVX512DQ-BW-FCP-NEXT: vpermi2d %zmm1, %zmm0, %zmm5655; AVX512DQ-BW-FCP-NEXT: vpmovsxbd {{.*#+}} xmm6 = [4,9,14,19]656; AVX512DQ-BW-FCP-NEXT: vpermi2d %zmm1, %zmm0, %zmm6657; AVX512DQ-BW-FCP-NEXT: vmovdqa %xmm2, (%rsi)658; AVX512DQ-BW-FCP-NEXT: vmovdqa %xmm3, (%rdx)659; AVX512DQ-BW-FCP-NEXT: vmovdqa %xmm4, (%rcx)660; AVX512DQ-BW-FCP-NEXT: vmovdqa %xmm5, (%r8)661; AVX512DQ-BW-FCP-NEXT: vmovdqa %xmm6, (%r9)662; AVX512DQ-BW-FCP-NEXT: vzeroupper663; AVX512DQ-BW-FCP-NEXT: retq664 %wide.vec = load <20 x i32>, ptr %in.vec, align 64665 %strided.vec0 = shufflevector <20 x i32> %wide.vec, <20 x i32> poison, <4 x i32> <i32 0, i32 5, i32 10, i32 15>666 %strided.vec1 = shufflevector <20 x i32> %wide.vec, <20 x i32> poison, <4 x i32> <i32 1, i32 6, i32 11, i32 16>667 %strided.vec2 = shufflevector <20 x i32> %wide.vec, <20 x i32> poison, <4 x i32> <i32 2, i32 7, i32 12, i32 17>668 %strided.vec3 = shufflevector <20 x i32> %wide.vec, <20 x i32> poison, <4 x i32> <i32 3, i32 8, i32 13, i32 18>669 %strided.vec4 = shufflevector <20 x i32> %wide.vec, <20 x i32> poison, <4 x i32> <i32 4, i32 9, i32 14, i32 19>670 store <4 x i32> %strided.vec0, ptr %out.vec0, align 64671 store <4 x i32> %strided.vec1, ptr %out.vec1, align 64672 store <4 x i32> %strided.vec2, ptr %out.vec2, align 64673 store <4 x i32> %strided.vec3, ptr %out.vec3, align 64674 store <4 x i32> %strided.vec4, ptr %out.vec4, align 64675 ret void676}677 678define void @load_i32_stride5_vf8(ptr %in.vec, ptr %out.vec0, ptr %out.vec1, ptr %out.vec2, ptr %out.vec3, ptr %out.vec4) nounwind {679; SSE-LABEL: load_i32_stride5_vf8:680; SSE: # %bb.0:681; SSE-NEXT: movdqa 144(%rdi), %xmm3682; SSE-NEXT: movdqa 64(%rdi), %xmm0683; SSE-NEXT: movdqa 128(%rdi), %xmm4684; SSE-NEXT: movdqa 112(%rdi), %xmm5685; SSE-NEXT: movdqa 80(%rdi), %xmm11686; SSE-NEXT: movdqa 96(%rdi), %xmm1687; SSE-NEXT: movdqa (%rdi), %xmm14688; SSE-NEXT: movdqa 16(%rdi), %xmm7689; SSE-NEXT: movdqa 32(%rdi), %xmm9690; SSE-NEXT: movdqa 48(%rdi), %xmm2691; SSE-NEXT: pshufd {{.*#+}} xmm6 = xmm7[1,1,1,1]692; SSE-NEXT: movdqa %xmm14, %xmm8693; SSE-NEXT: punpckldq {{.*#+}} xmm8 = xmm8[0],xmm6[0],xmm8[1],xmm6[1]694; SSE-NEXT: pshufd {{.*#+}} xmm6 = xmm9[2,2,2,2]695; SSE-NEXT: movdqa %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill696; SSE-NEXT: punpckhdq {{.*#+}} xmm6 = xmm6[2],xmm2[2],xmm6[3],xmm2[3]697; SSE-NEXT: movsd {{.*#+}} xmm6 = xmm8[0],xmm6[1]698; SSE-NEXT: pshufd {{.*#+}} xmm8 = xmm1[1,1,1,1]699; SSE-NEXT: movdqa %xmm11, %xmm10700; SSE-NEXT: punpckldq {{.*#+}} xmm10 = xmm10[0],xmm8[0],xmm10[1],xmm8[1]701; SSE-NEXT: pshufd {{.*#+}} xmm8 = xmm5[2,2,2,2]702; SSE-NEXT: movdqa %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill703; SSE-NEXT: punpckhdq {{.*#+}} xmm8 = xmm8[2],xmm4[2],xmm8[3],xmm4[3]704; SSE-NEXT: movsd {{.*#+}} xmm8 = xmm10[0],xmm8[1]705; SSE-NEXT: pshufd {{.*#+}} xmm10 = xmm7[2,3,2,3]706; SSE-NEXT: pshufd {{.*#+}} xmm12 = xmm14[1,1,1,1]707; SSE-NEXT: punpckldq {{.*#+}} xmm12 = xmm12[0],xmm10[0],xmm12[1],xmm10[1]708; SSE-NEXT: pshufd {{.*#+}} xmm13 = xmm0[0,0,1,1]709; SSE-NEXT: pshufd {{.*#+}} xmm10 = xmm9[2,3,2,3]710; SSE-NEXT: punpckldq {{.*#+}} xmm10 = xmm10[0],xmm13[0],xmm10[1],xmm13[1]711; SSE-NEXT: movsd {{.*#+}} xmm10 = xmm12[0],xmm10[1]712; SSE-NEXT: pshufd {{.*#+}} xmm12 = xmm1[2,3,2,3]713; SSE-NEXT: movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill714; SSE-NEXT: pshufd {{.*#+}} xmm13 = xmm11[1,1,1,1]715; SSE-NEXT: punpckldq {{.*#+}} xmm13 = xmm13[0],xmm12[0],xmm13[1],xmm12[1]716; SSE-NEXT: pshufd {{.*#+}} xmm15 = xmm3[0,0,1,1]717; SSE-NEXT: pshufd {{.*#+}} xmm12 = xmm5[2,3,2,3]718; SSE-NEXT: punpckldq {{.*#+}} xmm12 = xmm12[0],xmm15[0],xmm12[1],xmm15[1]719; SSE-NEXT: movsd {{.*#+}} xmm12 = xmm13[0],xmm12[1]720; SSE-NEXT: pshufd {{.*#+}} xmm13 = xmm7[2,2,3,3]721; SSE-NEXT: pshufd {{.*#+}} xmm15 = xmm14[3,3,3,3]722; SSE-NEXT: punpckhdq {{.*#+}} xmm14 = xmm14[2],xmm13[2],xmm14[3],xmm13[3]723; SSE-NEXT: pshufd {{.*#+}} xmm13 = xmm2[0,0,1,1]724; SSE-NEXT: punpckldq {{.*#+}} xmm13 = xmm13[0],xmm0[0],xmm13[1],xmm0[1]725; SSE-NEXT: movdqa %xmm0, %xmm9726; SSE-NEXT: movsd {{.*#+}} xmm13 = xmm14[0],xmm13[1]727; SSE-NEXT: pshufd {{.*#+}} xmm14 = xmm1[2,2,3,3]728; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm11[3,3,3,3]729; SSE-NEXT: punpckhdq {{.*#+}} xmm11 = xmm11[2],xmm14[2],xmm11[3],xmm14[3]730; SSE-NEXT: pshufd {{.*#+}} xmm14 = xmm4[0,0,1,1]731; SSE-NEXT: punpckldq {{.*#+}} xmm14 = xmm14[0],xmm3[0],xmm14[1],xmm3[1]732; SSE-NEXT: movdqa %xmm3, %xmm5733; SSE-NEXT: movsd {{.*#+}} xmm14 = xmm11[0],xmm14[1]734; SSE-NEXT: pshufd {{.*#+}} xmm3 = xmm0[2,2,3,3]735; SSE-NEXT: pshufd {{.*#+}} xmm11 = xmm2[2,2,2,2]736; SSE-NEXT: punpckldq {{.*#+}} xmm2 = xmm2[0],xmm3[0],xmm2[1],xmm3[1]737; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload738; SSE-NEXT: punpckldq {{.*#+}} xmm15 = xmm15[0],xmm0[0],xmm15[1],xmm0[1]739; SSE-NEXT: movsd {{.*#+}} xmm2 = xmm15[0],xmm2[1]740; SSE-NEXT: pshufd {{.*#+}} xmm3 = xmm5[2,2,3,3]741; SSE-NEXT: pshufd {{.*#+}} xmm15 = xmm4[2,2,2,2]742; SSE-NEXT: punpckldq {{.*#+}} xmm4 = xmm4[0],xmm3[0],xmm4[1],xmm3[1]743; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload744; SSE-NEXT: punpckldq {{.*#+}} xmm1 = xmm1[0],xmm3[0],xmm1[1],xmm3[1]745; SSE-NEXT: movsd {{.*#+}} xmm4 = xmm1[0],xmm4[1]746; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[1,1,1,1]747; SSE-NEXT: punpckldq {{.*#+}} xmm7 = xmm7[0],xmm0[0],xmm7[1],xmm0[1]748; SSE-NEXT: punpckhdq {{.*#+}} xmm11 = xmm11[2],xmm9[2],xmm11[3],xmm9[3]749; SSE-NEXT: movsd {{.*#+}} xmm11 = xmm7[0],xmm11[1]750; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm3[1,1,1,1]751; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload752; SSE-NEXT: punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]753; SSE-NEXT: punpckhdq {{.*#+}} xmm15 = xmm15[2],xmm5[2],xmm15[3],xmm5[3]754; SSE-NEXT: movsd {{.*#+}} xmm15 = xmm1[0],xmm15[1]755; SSE-NEXT: movapd %xmm8, 16(%rsi)756; SSE-NEXT: movapd %xmm6, (%rsi)757; SSE-NEXT: movapd %xmm12, 16(%rdx)758; SSE-NEXT: movapd %xmm10, (%rdx)759; SSE-NEXT: movapd %xmm14, 16(%rcx)760; SSE-NEXT: movapd %xmm13, (%rcx)761; SSE-NEXT: movapd %xmm4, 16(%r8)762; SSE-NEXT: movapd %xmm2, (%r8)763; SSE-NEXT: movapd %xmm15, 16(%r9)764; SSE-NEXT: movapd %xmm11, (%r9)765; SSE-NEXT: retq766;767; AVX-LABEL: load_i32_stride5_vf8:768; AVX: # %bb.0:769; AVX-NEXT: vmovaps 128(%rdi), %ymm0770; AVX-NEXT: vmovaps 64(%rdi), %ymm1771; AVX-NEXT: vmovaps 96(%rdi), %ymm2772; AVX-NEXT: vmovaps 32(%rdi), %ymm3773; AVX-NEXT: vmovaps (%rdi), %ymm4774; AVX-NEXT: vblendps {{.*#+}} ymm5 = ymm4[0,1],ymm3[2,3],ymm4[4,5],ymm3[6,7]775; AVX-NEXT: vextractf128 $1, %ymm5, %xmm6776; AVX-NEXT: vblendps {{.*#+}} xmm5 = xmm5[0],xmm6[1],xmm5[2],xmm6[3]777; AVX-NEXT: vinsertf128 $1, 128(%rdi), %ymm5, %ymm7778; AVX-NEXT: vmovaps 96(%rdi), %xmm6779; AVX-NEXT: vinsertf128 $1, %xmm6, %ymm0, %ymm8780; AVX-NEXT: vblendps {{.*#+}} ymm9 = ymm8[0,1,2,3,4,5],ymm2[6,7]781; AVX-NEXT: vblendps {{.*#+}} ymm9 = ymm9[0,1,2,3],ymm1[4],ymm9[5,6,7]782; AVX-NEXT: vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3],ymm9[4,5,6,7]783; AVX-NEXT: vblendps {{.*#+}} ymm5 = ymm5[0,1,2],ymm7[3],ymm5[4,5,6],ymm7[7]784; AVX-NEXT: vblendps {{.*#+}} ymm7 = ymm1[0,1],ymm2[2,3],ymm1[4,5],ymm2[6,7]785; AVX-NEXT: vperm2f128 {{.*#+}} ymm9 = ymm2[2,3,0,1]786; AVX-NEXT: vshufps {{.*#+}} ymm9 = ymm9[2,1],ymm1[1,3],ymm9[6,5],ymm1[5,7]787; AVX-NEXT: vshufps {{.*#+}} ymm7 = ymm9[2,0],ymm7[3,0],ymm9[6,4],ymm7[7,4]788; AVX-NEXT: vmovaps (%rdi), %xmm9789; AVX-NEXT: vmovaps 32(%rdi), %xmm10790; AVX-NEXT: vmovsd {{.*#+}} xmm11 = xmm9[0],xmm10[1]791; AVX-NEXT: vblendps {{.*#+}} xmm11 = xmm11[0,1],mem[2],xmm11[3]792; AVX-NEXT: vshufps {{.*#+}} xmm11 = xmm11[1,2,3,3]793; AVX-NEXT: vblendps {{.*#+}} ymm7 = ymm11[0,1,2],ymm7[3,4,5,6,7]794; AVX-NEXT: vbroadcastss 144(%rdi), %ymm11795; AVX-NEXT: vblendps {{.*#+}} ymm7 = ymm7[0,1,2,3,4,5,6],ymm11[7]796; AVX-NEXT: vshufps {{.*#+}} ymm8 = ymm8[3,0],ymm1[2,0],ymm8[7,4],ymm1[6,4]797; AVX-NEXT: vshufps {{.*#+}} ymm8 = ymm8[2,0],ymm1[2,1],ymm8[6,4],ymm1[6,5]798; AVX-NEXT: vblendps {{.*#+}} ymm11 = ymm4[0,1,2,3],ymm3[4,5],ymm4[6,7]799; AVX-NEXT: vextractf128 $1, %ymm11, %xmm11800; AVX-NEXT: vblendps {{.*#+}} xmm11 = xmm11[0,1],mem[2],xmm11[3]801; AVX-NEXT: vshufpd {{.*#+}} xmm11 = xmm11[1,0]802; AVX-NEXT: vblendps {{.*#+}} ymm8 = ymm11[0,1,2],ymm8[3,4,5,6,7]803; AVX-NEXT: vperm2f128 {{.*#+}} ymm11 = ymm0[2,3,0,1]804; AVX-NEXT: vshufps {{.*#+}} ymm12 = ymm0[1,0],ymm11[0,0],ymm0[5,4],ymm11[4,4]805; AVX-NEXT: vshufps {{.*#+}} ymm12 = ymm12[0,1,2,0,4,5,6,4]806; AVX-NEXT: vblendps {{.*#+}} ymm8 = ymm8[0,1,2,3,4,5],ymm12[6,7]807; AVX-NEXT: vshufps {{.*#+}} ymm12 = ymm2[0,0],ymm1[3,0],ymm2[4,4],ymm1[7,4]808; AVX-NEXT: vshufps {{.*#+}} ymm12 = ymm12[2,0],ymm1[2,2],ymm12[6,4],ymm1[6,6]809; AVX-NEXT: vmovsd {{.*#+}} xmm9 = xmm10[0],xmm9[1]810; AVX-NEXT: vshufps {{.*#+}} xmm9 = xmm9[3,0],mem[1,3]811; AVX-NEXT: vblendps {{.*#+}} ymm9 = ymm9[0,1,2],ymm12[3,4,5,6,7]812; AVX-NEXT: vshufps {{.*#+}} ymm10 = ymm0[2,0],ymm11[1,0],ymm0[6,4],ymm11[5,4]813; AVX-NEXT: vshufps {{.*#+}} ymm10 = ymm10[0,1,2,0,4,5,6,4]814; AVX-NEXT: vblendps {{.*#+}} ymm9 = ymm9[0,1,2,3,4,5],ymm10[6,7]815; AVX-NEXT: vinsertf128 $1, %xmm6, %ymm1, %ymm1816; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4],ymm2[5],ymm1[6,7]817; AVX-NEXT: vblendps {{.*#+}} ymm2 = ymm3[0,1,2,3],ymm4[4,5],ymm3[6,7]818; AVX-NEXT: vextractf128 $1, %ymm2, %xmm2819; AVX-NEXT: vblendps {{.*#+}} xmm2 = xmm2[0],mem[1],xmm2[2,3]820; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3,4,5,6,7]821; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm11[0,1,2,3,4,5,6],ymm0[7]822; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]823; AVX-NEXT: vmovaps %ymm5, (%rsi)824; AVX-NEXT: vmovaps %ymm7, (%rdx)825; AVX-NEXT: vmovaps %ymm8, (%rcx)826; AVX-NEXT: vmovaps %ymm9, (%r8)827; AVX-NEXT: vmovaps %ymm0, (%r9)828; AVX-NEXT: vzeroupper829; AVX-NEXT: retq830;831; AVX2-LABEL: load_i32_stride5_vf8:832; AVX2: # %bb.0:833; AVX2-NEXT: vmovdqa 128(%rdi), %ymm0834; AVX2-NEXT: vmovdqa (%rdi), %ymm1835; AVX2-NEXT: vmovdqa 32(%rdi), %ymm2836; AVX2-NEXT: vmovdqa 64(%rdi), %ymm3837; AVX2-NEXT: vmovdqa 96(%rdi), %ymm4838; AVX2-NEXT: vpermq {{.*#+}} ymm5 = ymm4[0,1,0,3]839; AVX2-NEXT: vpblendd {{.*#+}} ymm5 = ymm5[0,1,2,3],ymm3[4],ymm5[5,6,7]840; AVX2-NEXT: vpmovsxbd {{.*#+}} xmm6 = [0,5,2,7]841; AVX2-NEXT: vpblendd {{.*#+}} ymm7 = ymm1[0,1],ymm2[2,3],ymm1[4,5],ymm2[6,7]842; AVX2-NEXT: vpermd %ymm7, %ymm6, %ymm6843; AVX2-NEXT: vpblendd {{.*#+}} ymm5 = ymm6[0,1,2,3],ymm5[4,5,6,7]844; AVX2-NEXT: vinserti128 $1, 128(%rdi), %ymm6, %ymm6845; AVX2-NEXT: vpblendd {{.*#+}} ymm5 = ymm5[0,1,2],ymm6[3],ymm5[4,5,6],ymm6[7]846; AVX2-NEXT: vpblendd {{.*#+}} ymm6 = ymm1[0,1],ymm2[2,3],ymm1[4,5,6,7]847; AVX2-NEXT: vpblendd {{.*#+}} ymm7 = ymm3[0,1],ymm4[2,3],ymm3[4,5],ymm4[6,7]848; AVX2-NEXT: vpblendd {{.*#+}} ymm6 = ymm7[0],ymm6[1],ymm7[2],ymm6[3],ymm7[4,5],ymm6[6],ymm7[7]849; AVX2-NEXT: vpmovsxbd {{.*#+}} ymm7 = [1,6,3,0,5,2,7,0]850; AVX2-NEXT: vpermd %ymm6, %ymm7, %ymm6851; AVX2-NEXT: vpbroadcastd 144(%rdi), %ymm7852; AVX2-NEXT: vpblendd {{.*#+}} ymm6 = ymm6[0,1,2,3,4,5,6],ymm7[7]853; AVX2-NEXT: vpmovsxbd {{.*#+}} xmm7 = [2,7,4,0]854; AVX2-NEXT: vpblendd {{.*#+}} ymm8 = ymm1[0,1,2,3],ymm2[4,5],ymm1[6,7]855; AVX2-NEXT: vpermd %ymm8, %ymm7, %ymm7856; AVX2-NEXT: vinserti128 $1, 96(%rdi), %ymm0, %ymm8857; AVX2-NEXT: vpblendd {{.*#+}} ymm8 = ymm3[0,1,2,3,4,5,6],ymm8[7]858; AVX2-NEXT: vpshufd {{.*#+}} ymm8 = ymm8[2,3,0,1,6,7,4,5]859; AVX2-NEXT: vpblendd {{.*#+}} ymm7 = ymm7[0,1,2],ymm8[3,4,5,6,7]860; AVX2-NEXT: vpbroadcastq {{.*#+}} ymm8 = [0,5,0,5,0,5,0,5]861; AVX2-NEXT: vpermd %ymm0, %ymm8, %ymm8862; AVX2-NEXT: vpblendd {{.*#+}} ymm7 = ymm7[0,1,2,3,4,5],ymm8[6,7]863; AVX2-NEXT: vpbroadcastq {{.*#+}} ymm8 = [1,6,1,6,1,6,1,6]864; AVX2-NEXT: vpermd %ymm0, %ymm8, %ymm8865; AVX2-NEXT: vpblendd {{.*#+}} ymm9 = ymm3[0,1,2,3],ymm4[4,5],ymm3[6,7]866; AVX2-NEXT: vpalignr {{.*#+}} ymm10 = ymm1[12,13,14,15],ymm2[0,1,2,3,4,5,6,7,8,9,10,11],ymm1[28,29,30,31],ymm2[16,17,18,19,20,21,22,23,24,25,26,27]867; AVX2-NEXT: vpblendd {{.*#+}} ymm9 = ymm10[0,1],ymm9[2],ymm10[3],ymm9[4],ymm10[5,6],ymm9[7]868; AVX2-NEXT: vpmovsxbd {{.*#+}} ymm10 = [0,1,6,2,7,4,0,0]869; AVX2-NEXT: vpermd %ymm9, %ymm10, %ymm9870; AVX2-NEXT: vpblendd {{.*#+}} ymm8 = ymm9[0,1,2,3,4,5],ymm8[6,7]871; AVX2-NEXT: vperm2i128 {{.*#+}} ymm3 = ymm3[0,1],ymm4[0,1]872; AVX2-NEXT: vpblendd {{.*#+}} ymm3 = ymm3[0,1,2,3,4],ymm4[5],ymm3[6,7]873; AVX2-NEXT: vpmovsxbd {{.*#+}} xmm4 = [4,1,6,0]874; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5],ymm2[6,7]875; AVX2-NEXT: vpermd %ymm1, %ymm4, %ymm1876; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2],ymm3[3,4,5,6,7]877; AVX2-NEXT: vpbroadcastq {{.*#+}} ymm2 = [2,7,2,7,2,7,2,7]878; AVX2-NEXT: vpermd %ymm0, %ymm2, %ymm0879; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]880; AVX2-NEXT: vmovdqa %ymm5, (%rsi)881; AVX2-NEXT: vmovdqa %ymm6, (%rdx)882; AVX2-NEXT: vmovdqa %ymm7, (%rcx)883; AVX2-NEXT: vmovdqa %ymm8, (%r8)884; AVX2-NEXT: vmovdqa %ymm0, (%r9)885; AVX2-NEXT: vzeroupper886; AVX2-NEXT: retq887;888; AVX2-FP-LABEL: load_i32_stride5_vf8:889; AVX2-FP: # %bb.0:890; AVX2-FP-NEXT: vmovdqa 128(%rdi), %ymm0891; AVX2-FP-NEXT: vmovdqa (%rdi), %ymm1892; AVX2-FP-NEXT: vmovdqa 32(%rdi), %ymm2893; AVX2-FP-NEXT: vmovdqa 64(%rdi), %ymm3894; AVX2-FP-NEXT: vmovdqa 96(%rdi), %ymm4895; AVX2-FP-NEXT: vpermq {{.*#+}} ymm5 = ymm4[0,1,0,3]896; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm5 = ymm5[0,1,2,3],ymm3[4],ymm5[5,6,7]897; AVX2-FP-NEXT: vpmovsxbd {{.*#+}} xmm6 = [0,5,2,7]898; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm7 = ymm1[0,1],ymm2[2,3],ymm1[4,5],ymm2[6,7]899; AVX2-FP-NEXT: vpermd %ymm7, %ymm6, %ymm6900; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm5 = ymm6[0,1,2,3],ymm5[4,5,6,7]901; AVX2-FP-NEXT: vinserti128 $1, 128(%rdi), %ymm6, %ymm6902; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm5 = ymm5[0,1,2],ymm6[3],ymm5[4,5,6],ymm6[7]903; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm6 = ymm1[0,1],ymm2[2,3],ymm1[4,5,6,7]904; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm7 = ymm3[0,1],ymm4[2,3],ymm3[4,5],ymm4[6,7]905; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm6 = ymm7[0],ymm6[1],ymm7[2],ymm6[3],ymm7[4,5],ymm6[6],ymm7[7]906; AVX2-FP-NEXT: vpmovsxbd {{.*#+}} ymm7 = [1,6,3,0,5,2,7,0]907; AVX2-FP-NEXT: vpermd %ymm6, %ymm7, %ymm6908; AVX2-FP-NEXT: vpbroadcastd 144(%rdi), %ymm7909; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm6 = ymm6[0,1,2,3,4,5,6],ymm7[7]910; AVX2-FP-NEXT: vpmovsxbd {{.*#+}} xmm7 = [2,7,4,0]911; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm8 = ymm1[0,1,2,3],ymm2[4,5],ymm1[6,7]912; AVX2-FP-NEXT: vpermd %ymm8, %ymm7, %ymm7913; AVX2-FP-NEXT: vinserti128 $1, 96(%rdi), %ymm0, %ymm8914; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm8 = ymm3[0,1,2,3,4,5,6],ymm8[7]915; AVX2-FP-NEXT: vpshufd {{.*#+}} ymm8 = ymm8[2,3,0,1,6,7,4,5]916; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm7 = ymm7[0,1,2],ymm8[3,4,5,6,7]917; AVX2-FP-NEXT: vpbroadcastq {{.*#+}} ymm8 = [0,5,0,5,0,5,0,5]918; AVX2-FP-NEXT: vpermd %ymm0, %ymm8, %ymm8919; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm7 = ymm7[0,1,2,3,4,5],ymm8[6,7]920; AVX2-FP-NEXT: vpbroadcastq {{.*#+}} ymm8 = [1,6,1,6,1,6,1,6]921; AVX2-FP-NEXT: vpermd %ymm0, %ymm8, %ymm8922; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm9 = ymm3[0,1,2,3],ymm4[4,5],ymm3[6,7]923; AVX2-FP-NEXT: vpalignr {{.*#+}} ymm10 = ymm1[12,13,14,15],ymm2[0,1,2,3,4,5,6,7,8,9,10,11],ymm1[28,29,30,31],ymm2[16,17,18,19,20,21,22,23,24,25,26,27]924; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm9 = ymm10[0,1],ymm9[2],ymm10[3],ymm9[4],ymm10[5,6],ymm9[7]925; AVX2-FP-NEXT: vpmovsxbd {{.*#+}} ymm10 = [0,1,6,2,7,4,0,0]926; AVX2-FP-NEXT: vpermd %ymm9, %ymm10, %ymm9927; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm8 = ymm9[0,1,2,3,4,5],ymm8[6,7]928; AVX2-FP-NEXT: vperm2i128 {{.*#+}} ymm3 = ymm3[0,1],ymm4[0,1]929; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm3 = ymm3[0,1,2,3,4],ymm4[5],ymm3[6,7]930; AVX2-FP-NEXT: vpmovsxbd {{.*#+}} xmm4 = [4,1,6,0]931; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5],ymm2[6,7]932; AVX2-FP-NEXT: vpermd %ymm1, %ymm4, %ymm1933; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2],ymm3[3,4,5,6,7]934; AVX2-FP-NEXT: vpbroadcastq {{.*#+}} ymm2 = [2,7,2,7,2,7,2,7]935; AVX2-FP-NEXT: vpermd %ymm0, %ymm2, %ymm0936; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]937; AVX2-FP-NEXT: vmovdqa %ymm5, (%rsi)938; AVX2-FP-NEXT: vmovdqa %ymm6, (%rdx)939; AVX2-FP-NEXT: vmovdqa %ymm7, (%rcx)940; AVX2-FP-NEXT: vmovdqa %ymm8, (%r8)941; AVX2-FP-NEXT: vmovdqa %ymm0, (%r9)942; AVX2-FP-NEXT: vzeroupper943; AVX2-FP-NEXT: retq944;945; AVX2-FCP-LABEL: load_i32_stride5_vf8:946; AVX2-FCP: # %bb.0:947; AVX2-FCP-NEXT: vmovdqa 128(%rdi), %ymm0948; AVX2-FCP-NEXT: vmovdqa (%rdi), %ymm1949; AVX2-FCP-NEXT: vmovdqa 32(%rdi), %ymm2950; AVX2-FCP-NEXT: vmovdqa 64(%rdi), %ymm3951; AVX2-FCP-NEXT: vmovdqa 96(%rdi), %ymm4952; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm5 = ymm4[0,1,0,3]953; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm5 = ymm5[0,1,2,3],ymm3[4],ymm5[5,6,7]954; AVX2-FCP-NEXT: vpmovsxbd {{.*#+}} xmm6 = [0,5,2,7]955; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm7 = ymm1[0,1],ymm2[2,3],ymm1[4,5],ymm2[6,7]956; AVX2-FCP-NEXT: vpermd %ymm7, %ymm6, %ymm6957; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm5 = ymm6[0,1,2,3],ymm5[4,5,6,7]958; AVX2-FCP-NEXT: vinserti128 $1, 128(%rdi), %ymm6, %ymm6959; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm5 = ymm5[0,1,2],ymm6[3],ymm5[4,5,6],ymm6[7]960; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm6 = ymm1[0,1],ymm2[2,3],ymm1[4,5,6,7]961; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm7 = ymm3[0,1],ymm4[2,3],ymm3[4,5],ymm4[6,7]962; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm6 = ymm7[0],ymm6[1],ymm7[2],ymm6[3],ymm7[4,5],ymm6[6],ymm7[7]963; AVX2-FCP-NEXT: vpmovsxbd {{.*#+}} ymm7 = [1,6,3,0,5,2,7,0]964; AVX2-FCP-NEXT: vpermd %ymm6, %ymm7, %ymm6965; AVX2-FCP-NEXT: vpbroadcastd 144(%rdi), %ymm7966; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm6 = ymm6[0,1,2,3,4,5,6],ymm7[7]967; AVX2-FCP-NEXT: vpmovsxbd {{.*#+}} xmm7 = [2,7,4,0]968; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm8 = ymm1[0,1,2,3],ymm2[4,5],ymm1[6,7]969; AVX2-FCP-NEXT: vpermd %ymm8, %ymm7, %ymm7970; AVX2-FCP-NEXT: vinserti128 $1, 96(%rdi), %ymm0, %ymm8971; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm8 = ymm3[0,1,2,3,4,5,6],ymm8[7]972; AVX2-FCP-NEXT: vpshufd {{.*#+}} ymm8 = ymm8[2,3,0,1,6,7,4,5]973; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm7 = ymm7[0,1,2],ymm8[3,4,5,6,7]974; AVX2-FCP-NEXT: vpbroadcastq {{.*#+}} ymm8 = [0,5,0,5,0,5,0,5]975; AVX2-FCP-NEXT: vpermd %ymm0, %ymm8, %ymm8976; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm7 = ymm7[0,1,2,3,4,5],ymm8[6,7]977; AVX2-FCP-NEXT: vpbroadcastq {{.*#+}} ymm8 = [1,6,1,6,1,6,1,6]978; AVX2-FCP-NEXT: vpermd %ymm0, %ymm8, %ymm8979; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm9 = ymm3[0,1,2,3],ymm4[4,5],ymm3[6,7]980; AVX2-FCP-NEXT: vpalignr {{.*#+}} ymm10 = ymm1[12,13,14,15],ymm2[0,1,2,3,4,5,6,7,8,9,10,11],ymm1[28,29,30,31],ymm2[16,17,18,19,20,21,22,23,24,25,26,27]981; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm9 = ymm10[0,1],ymm9[2],ymm10[3],ymm9[4],ymm10[5,6],ymm9[7]982; AVX2-FCP-NEXT: vpmovsxbd {{.*#+}} ymm10 = [0,1,6,2,7,4,0,0]983; AVX2-FCP-NEXT: vpermd %ymm9, %ymm10, %ymm9984; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm8 = ymm9[0,1,2,3,4,5],ymm8[6,7]985; AVX2-FCP-NEXT: vperm2i128 {{.*#+}} ymm3 = ymm3[0,1],ymm4[0,1]986; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm3 = ymm3[0,1,2,3,4],ymm4[5],ymm3[6,7]987; AVX2-FCP-NEXT: vpmovsxbd {{.*#+}} xmm4 = [4,1,6,0]988; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5],ymm2[6,7]989; AVX2-FCP-NEXT: vpermd %ymm1, %ymm4, %ymm1990; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2],ymm3[3,4,5,6,7]991; AVX2-FCP-NEXT: vpbroadcastq {{.*#+}} ymm2 = [2,7,2,7,2,7,2,7]992; AVX2-FCP-NEXT: vpermd %ymm0, %ymm2, %ymm0993; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]994; AVX2-FCP-NEXT: vmovdqa %ymm5, (%rsi)995; AVX2-FCP-NEXT: vmovdqa %ymm6, (%rdx)996; AVX2-FCP-NEXT: vmovdqa %ymm7, (%rcx)997; AVX2-FCP-NEXT: vmovdqa %ymm8, (%r8)998; AVX2-FCP-NEXT: vmovdqa %ymm0, (%r9)999; AVX2-FCP-NEXT: vzeroupper1000; AVX2-FCP-NEXT: retq1001;1002; AVX512-LABEL: load_i32_stride5_vf8:1003; AVX512: # %bb.0:1004; AVX512-NEXT: vmovdqa64 (%rdi), %zmm11005; AVX512-NEXT: vmovdqa64 64(%rdi), %zmm21006; AVX512-NEXT: vpmovsxbd {{.*#+}} ymm0 = [0,5,10,15,20,25,30,0]1007; AVX512-NEXT: vpermi2d %zmm2, %zmm1, %zmm01008; AVX512-NEXT: vinserti128 $1, 128(%rdi), %ymm0, %ymm31009; AVX512-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2],ymm3[3],ymm0[4,5,6],ymm3[7]1010; AVX512-NEXT: vpmovsxbd {{.*#+}} ymm3 = [17,22,27,0,5,10,15,0]1011; AVX512-NEXT: vpermi2d %zmm1, %zmm2, %zmm31012; AVX512-NEXT: vpbroadcastd 144(%rdi), %ymm41013; AVX512-NEXT: vpblendd {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5,6],ymm4[7]1014; AVX512-NEXT: vpmovsxbd {{.*#+}} ymm4 = [2,7,12,17,22,27,0,0]1015; AVX512-NEXT: vpermi2d %zmm2, %zmm1, %zmm41016; AVX512-NEXT: vpmovsxbd {{.*#+}} ymm5 = [0,1,2,3,4,5,8,13]1017; AVX512-NEXT: vmovdqa 128(%rdi), %ymm61018; AVX512-NEXT: vpermi2d %ymm6, %ymm4, %ymm51019; AVX512-NEXT: vpmovsxbd {{.*#+}} ymm4 = [3,8,13,18,23,28,0,0]1020; AVX512-NEXT: vpermi2d %zmm2, %zmm1, %zmm41021; AVX512-NEXT: vpmovsxbd {{.*#+}} ymm7 = [0,1,2,3,4,5,9,14]1022; AVX512-NEXT: vpermi2d %ymm6, %ymm4, %ymm71023; AVX512-NEXT: vpmovsxbd {{.*#+}} ymm4 = [4,9,14,19,24,29,0,0]1024; AVX512-NEXT: vpermi2d %zmm2, %zmm1, %zmm41025; AVX512-NEXT: vpmovsxbd {{.*#+}} ymm1 = [0,1,2,3,4,5,10,15]1026; AVX512-NEXT: vpermi2d %ymm6, %ymm4, %ymm11027; AVX512-NEXT: vmovdqa %ymm0, (%rsi)1028; AVX512-NEXT: vmovdqa %ymm3, (%rdx)1029; AVX512-NEXT: vmovdqa %ymm5, (%rcx)1030; AVX512-NEXT: vmovdqa %ymm7, (%r8)1031; AVX512-NEXT: vmovdqa %ymm1, (%r9)1032; AVX512-NEXT: vzeroupper1033; AVX512-NEXT: retq1034;1035; AVX512-FCP-LABEL: load_i32_stride5_vf8:1036; AVX512-FCP: # %bb.0:1037; AVX512-FCP-NEXT: vmovdqa64 (%rdi), %zmm11038; AVX512-FCP-NEXT: vmovdqa64 64(%rdi), %zmm21039; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} ymm0 = [0,5,10,15,20,25,30,0]1040; AVX512-FCP-NEXT: vpermi2d %zmm2, %zmm1, %zmm01041; AVX512-FCP-NEXT: vinserti128 $1, 128(%rdi), %ymm0, %ymm31042; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2],ymm3[3],ymm0[4,5,6],ymm3[7]1043; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} ymm3 = [17,22,27,0,5,10,15,0]1044; AVX512-FCP-NEXT: vpermi2d %zmm1, %zmm2, %zmm31045; AVX512-FCP-NEXT: vpbroadcastd 144(%rdi), %ymm41046; AVX512-FCP-NEXT: vpblendd {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5,6],ymm4[7]1047; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} ymm4 = [2,7,12,17,22,27,0,0]1048; AVX512-FCP-NEXT: vpermi2d %zmm2, %zmm1, %zmm41049; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} ymm5 = [0,1,2,3,4,5,8,13]1050; AVX512-FCP-NEXT: vmovdqa 128(%rdi), %ymm61051; AVX512-FCP-NEXT: vpermi2d %ymm6, %ymm4, %ymm51052; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} ymm4 = [3,8,13,18,23,28,0,0]1053; AVX512-FCP-NEXT: vpermi2d %zmm2, %zmm1, %zmm41054; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} ymm7 = [0,1,2,3,4,5,9,14]1055; AVX512-FCP-NEXT: vpermi2d %ymm6, %ymm4, %ymm71056; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} ymm4 = [4,9,14,19,24,29,0,0]1057; AVX512-FCP-NEXT: vpermi2d %zmm2, %zmm1, %zmm41058; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} ymm1 = [0,1,2,3,4,5,10,15]1059; AVX512-FCP-NEXT: vpermi2d %ymm6, %ymm4, %ymm11060; AVX512-FCP-NEXT: vmovdqa %ymm0, (%rsi)1061; AVX512-FCP-NEXT: vmovdqa %ymm3, (%rdx)1062; AVX512-FCP-NEXT: vmovdqa %ymm5, (%rcx)1063; AVX512-FCP-NEXT: vmovdqa %ymm7, (%r8)1064; AVX512-FCP-NEXT: vmovdqa %ymm1, (%r9)1065; AVX512-FCP-NEXT: vzeroupper1066; AVX512-FCP-NEXT: retq1067;1068; AVX512DQ-LABEL: load_i32_stride5_vf8:1069; AVX512DQ: # %bb.0:1070; AVX512DQ-NEXT: vmovdqa64 (%rdi), %zmm11071; AVX512DQ-NEXT: vmovdqa64 64(%rdi), %zmm21072; AVX512DQ-NEXT: vpmovsxbd {{.*#+}} ymm0 = [0,5,10,15,20,25,30,0]1073; AVX512DQ-NEXT: vpermi2d %zmm2, %zmm1, %zmm01074; AVX512DQ-NEXT: vinserti128 $1, 128(%rdi), %ymm0, %ymm31075; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2],ymm3[3],ymm0[4,5,6],ymm3[7]1076; AVX512DQ-NEXT: vpmovsxbd {{.*#+}} ymm3 = [17,22,27,0,5,10,15,0]1077; AVX512DQ-NEXT: vpermi2d %zmm1, %zmm2, %zmm31078; AVX512DQ-NEXT: vpbroadcastd 144(%rdi), %ymm41079; AVX512DQ-NEXT: vpblendd {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5,6],ymm4[7]1080; AVX512DQ-NEXT: vpmovsxbd {{.*#+}} ymm4 = [2,7,12,17,22,27,0,0]1081; AVX512DQ-NEXT: vpermi2d %zmm2, %zmm1, %zmm41082; AVX512DQ-NEXT: vpmovsxbd {{.*#+}} ymm5 = [0,1,2,3,4,5,8,13]1083; AVX512DQ-NEXT: vmovdqa 128(%rdi), %ymm61084; AVX512DQ-NEXT: vpermi2d %ymm6, %ymm4, %ymm51085; AVX512DQ-NEXT: vpmovsxbd {{.*#+}} ymm4 = [3,8,13,18,23,28,0,0]1086; AVX512DQ-NEXT: vpermi2d %zmm2, %zmm1, %zmm41087; AVX512DQ-NEXT: vpmovsxbd {{.*#+}} ymm7 = [0,1,2,3,4,5,9,14]1088; AVX512DQ-NEXT: vpermi2d %ymm6, %ymm4, %ymm71089; AVX512DQ-NEXT: vpmovsxbd {{.*#+}} ymm4 = [4,9,14,19,24,29,0,0]1090; AVX512DQ-NEXT: vpermi2d %zmm2, %zmm1, %zmm41091; AVX512DQ-NEXT: vpmovsxbd {{.*#+}} ymm1 = [0,1,2,3,4,5,10,15]1092; AVX512DQ-NEXT: vpermi2d %ymm6, %ymm4, %ymm11093; AVX512DQ-NEXT: vmovdqa %ymm0, (%rsi)1094; AVX512DQ-NEXT: vmovdqa %ymm3, (%rdx)1095; AVX512DQ-NEXT: vmovdqa %ymm5, (%rcx)1096; AVX512DQ-NEXT: vmovdqa %ymm7, (%r8)1097; AVX512DQ-NEXT: vmovdqa %ymm1, (%r9)1098; AVX512DQ-NEXT: vzeroupper1099; AVX512DQ-NEXT: retq1100;1101; AVX512DQ-FCP-LABEL: load_i32_stride5_vf8:1102; AVX512DQ-FCP: # %bb.0:1103; AVX512DQ-FCP-NEXT: vmovdqa64 (%rdi), %zmm11104; AVX512DQ-FCP-NEXT: vmovdqa64 64(%rdi), %zmm21105; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} ymm0 = [0,5,10,15,20,25,30,0]1106; AVX512DQ-FCP-NEXT: vpermi2d %zmm2, %zmm1, %zmm01107; AVX512DQ-FCP-NEXT: vinserti128 $1, 128(%rdi), %ymm0, %ymm31108; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2],ymm3[3],ymm0[4,5,6],ymm3[7]1109; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} ymm3 = [17,22,27,0,5,10,15,0]1110; AVX512DQ-FCP-NEXT: vpermi2d %zmm1, %zmm2, %zmm31111; AVX512DQ-FCP-NEXT: vpbroadcastd 144(%rdi), %ymm41112; AVX512DQ-FCP-NEXT: vpblendd {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5,6],ymm4[7]1113; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} ymm4 = [2,7,12,17,22,27,0,0]1114; AVX512DQ-FCP-NEXT: vpermi2d %zmm2, %zmm1, %zmm41115; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} ymm5 = [0,1,2,3,4,5,8,13]1116; AVX512DQ-FCP-NEXT: vmovdqa 128(%rdi), %ymm61117; AVX512DQ-FCP-NEXT: vpermi2d %ymm6, %ymm4, %ymm51118; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} ymm4 = [3,8,13,18,23,28,0,0]1119; AVX512DQ-FCP-NEXT: vpermi2d %zmm2, %zmm1, %zmm41120; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} ymm7 = [0,1,2,3,4,5,9,14]1121; AVX512DQ-FCP-NEXT: vpermi2d %ymm6, %ymm4, %ymm71122; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} ymm4 = [4,9,14,19,24,29,0,0]1123; AVX512DQ-FCP-NEXT: vpermi2d %zmm2, %zmm1, %zmm41124; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} ymm1 = [0,1,2,3,4,5,10,15]1125; AVX512DQ-FCP-NEXT: vpermi2d %ymm6, %ymm4, %ymm11126; AVX512DQ-FCP-NEXT: vmovdqa %ymm0, (%rsi)1127; AVX512DQ-FCP-NEXT: vmovdqa %ymm3, (%rdx)1128; AVX512DQ-FCP-NEXT: vmovdqa %ymm5, (%rcx)1129; AVX512DQ-FCP-NEXT: vmovdqa %ymm7, (%r8)1130; AVX512DQ-FCP-NEXT: vmovdqa %ymm1, (%r9)1131; AVX512DQ-FCP-NEXT: vzeroupper1132; AVX512DQ-FCP-NEXT: retq1133;1134; AVX512BW-LABEL: load_i32_stride5_vf8:1135; AVX512BW: # %bb.0:1136; AVX512BW-NEXT: vmovdqa64 (%rdi), %zmm11137; AVX512BW-NEXT: vmovdqa64 64(%rdi), %zmm21138; AVX512BW-NEXT: vpmovsxbd {{.*#+}} ymm0 = [0,5,10,15,20,25,30,0]1139; AVX512BW-NEXT: vpermi2d %zmm2, %zmm1, %zmm01140; AVX512BW-NEXT: vinserti128 $1, 128(%rdi), %ymm0, %ymm31141; AVX512BW-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2],ymm3[3],ymm0[4,5,6],ymm3[7]1142; AVX512BW-NEXT: vpmovsxbd {{.*#+}} ymm3 = [17,22,27,0,5,10,15,0]1143; AVX512BW-NEXT: vpermi2d %zmm1, %zmm2, %zmm31144; AVX512BW-NEXT: vpbroadcastd 144(%rdi), %ymm41145; AVX512BW-NEXT: vpblendd {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5,6],ymm4[7]1146; AVX512BW-NEXT: vpmovsxbd {{.*#+}} ymm4 = [2,7,12,17,22,27,0,0]1147; AVX512BW-NEXT: vpermi2d %zmm2, %zmm1, %zmm41148; AVX512BW-NEXT: vpmovsxbd {{.*#+}} ymm5 = [0,1,2,3,4,5,8,13]1149; AVX512BW-NEXT: vmovdqa 128(%rdi), %ymm61150; AVX512BW-NEXT: vpermi2d %ymm6, %ymm4, %ymm51151; AVX512BW-NEXT: vpmovsxbd {{.*#+}} ymm4 = [3,8,13,18,23,28,0,0]1152; AVX512BW-NEXT: vpermi2d %zmm2, %zmm1, %zmm41153; AVX512BW-NEXT: vpmovsxbd {{.*#+}} ymm7 = [0,1,2,3,4,5,9,14]1154; AVX512BW-NEXT: vpermi2d %ymm6, %ymm4, %ymm71155; AVX512BW-NEXT: vpmovsxbd {{.*#+}} ymm4 = [4,9,14,19,24,29,0,0]1156; AVX512BW-NEXT: vpermi2d %zmm2, %zmm1, %zmm41157; AVX512BW-NEXT: vpmovsxbd {{.*#+}} ymm1 = [0,1,2,3,4,5,10,15]1158; AVX512BW-NEXT: vpermi2d %ymm6, %ymm4, %ymm11159; AVX512BW-NEXT: vmovdqa %ymm0, (%rsi)1160; AVX512BW-NEXT: vmovdqa %ymm3, (%rdx)1161; AVX512BW-NEXT: vmovdqa %ymm5, (%rcx)1162; AVX512BW-NEXT: vmovdqa %ymm7, (%r8)1163; AVX512BW-NEXT: vmovdqa %ymm1, (%r9)1164; AVX512BW-NEXT: vzeroupper1165; AVX512BW-NEXT: retq1166;1167; AVX512BW-FCP-LABEL: load_i32_stride5_vf8:1168; AVX512BW-FCP: # %bb.0:1169; AVX512BW-FCP-NEXT: vmovdqa64 (%rdi), %zmm11170; AVX512BW-FCP-NEXT: vmovdqa64 64(%rdi), %zmm21171; AVX512BW-FCP-NEXT: vpmovsxbd {{.*#+}} ymm0 = [0,5,10,15,20,25,30,0]1172; AVX512BW-FCP-NEXT: vpermi2d %zmm2, %zmm1, %zmm01173; AVX512BW-FCP-NEXT: vinserti128 $1, 128(%rdi), %ymm0, %ymm31174; AVX512BW-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2],ymm3[3],ymm0[4,5,6],ymm3[7]1175; AVX512BW-FCP-NEXT: vpmovsxbd {{.*#+}} ymm3 = [17,22,27,0,5,10,15,0]1176; AVX512BW-FCP-NEXT: vpermi2d %zmm1, %zmm2, %zmm31177; AVX512BW-FCP-NEXT: vpbroadcastd 144(%rdi), %ymm41178; AVX512BW-FCP-NEXT: vpblendd {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5,6],ymm4[7]1179; AVX512BW-FCP-NEXT: vpmovsxbd {{.*#+}} ymm4 = [2,7,12,17,22,27,0,0]1180; AVX512BW-FCP-NEXT: vpermi2d %zmm2, %zmm1, %zmm41181; AVX512BW-FCP-NEXT: vpmovsxbd {{.*#+}} ymm5 = [0,1,2,3,4,5,8,13]1182; AVX512BW-FCP-NEXT: vmovdqa 128(%rdi), %ymm61183; AVX512BW-FCP-NEXT: vpermi2d %ymm6, %ymm4, %ymm51184; AVX512BW-FCP-NEXT: vpmovsxbd {{.*#+}} ymm4 = [3,8,13,18,23,28,0,0]1185; AVX512BW-FCP-NEXT: vpermi2d %zmm2, %zmm1, %zmm41186; AVX512BW-FCP-NEXT: vpmovsxbd {{.*#+}} ymm7 = [0,1,2,3,4,5,9,14]1187; AVX512BW-FCP-NEXT: vpermi2d %ymm6, %ymm4, %ymm71188; AVX512BW-FCP-NEXT: vpmovsxbd {{.*#+}} ymm4 = [4,9,14,19,24,29,0,0]1189; AVX512BW-FCP-NEXT: vpermi2d %zmm2, %zmm1, %zmm41190; AVX512BW-FCP-NEXT: vpmovsxbd {{.*#+}} ymm1 = [0,1,2,3,4,5,10,15]1191; AVX512BW-FCP-NEXT: vpermi2d %ymm6, %ymm4, %ymm11192; AVX512BW-FCP-NEXT: vmovdqa %ymm0, (%rsi)1193; AVX512BW-FCP-NEXT: vmovdqa %ymm3, (%rdx)1194; AVX512BW-FCP-NEXT: vmovdqa %ymm5, (%rcx)1195; AVX512BW-FCP-NEXT: vmovdqa %ymm7, (%r8)1196; AVX512BW-FCP-NEXT: vmovdqa %ymm1, (%r9)1197; AVX512BW-FCP-NEXT: vzeroupper1198; AVX512BW-FCP-NEXT: retq1199;1200; AVX512DQ-BW-LABEL: load_i32_stride5_vf8:1201; AVX512DQ-BW: # %bb.0:1202; AVX512DQ-BW-NEXT: vmovdqa64 (%rdi), %zmm11203; AVX512DQ-BW-NEXT: vmovdqa64 64(%rdi), %zmm21204; AVX512DQ-BW-NEXT: vpmovsxbd {{.*#+}} ymm0 = [0,5,10,15,20,25,30,0]1205; AVX512DQ-BW-NEXT: vpermi2d %zmm2, %zmm1, %zmm01206; AVX512DQ-BW-NEXT: vinserti128 $1, 128(%rdi), %ymm0, %ymm31207; AVX512DQ-BW-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2],ymm3[3],ymm0[4,5,6],ymm3[7]1208; AVX512DQ-BW-NEXT: vpmovsxbd {{.*#+}} ymm3 = [17,22,27,0,5,10,15,0]1209; AVX512DQ-BW-NEXT: vpermi2d %zmm1, %zmm2, %zmm31210; AVX512DQ-BW-NEXT: vpbroadcastd 144(%rdi), %ymm41211; AVX512DQ-BW-NEXT: vpblendd {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5,6],ymm4[7]1212; AVX512DQ-BW-NEXT: vpmovsxbd {{.*#+}} ymm4 = [2,7,12,17,22,27,0,0]1213; AVX512DQ-BW-NEXT: vpermi2d %zmm2, %zmm1, %zmm41214; AVX512DQ-BW-NEXT: vpmovsxbd {{.*#+}} ymm5 = [0,1,2,3,4,5,8,13]1215; AVX512DQ-BW-NEXT: vmovdqa 128(%rdi), %ymm61216; AVX512DQ-BW-NEXT: vpermi2d %ymm6, %ymm4, %ymm51217; AVX512DQ-BW-NEXT: vpmovsxbd {{.*#+}} ymm4 = [3,8,13,18,23,28,0,0]1218; AVX512DQ-BW-NEXT: vpermi2d %zmm2, %zmm1, %zmm41219; AVX512DQ-BW-NEXT: vpmovsxbd {{.*#+}} ymm7 = [0,1,2,3,4,5,9,14]1220; AVX512DQ-BW-NEXT: vpermi2d %ymm6, %ymm4, %ymm71221; AVX512DQ-BW-NEXT: vpmovsxbd {{.*#+}} ymm4 = [4,9,14,19,24,29,0,0]1222; AVX512DQ-BW-NEXT: vpermi2d %zmm2, %zmm1, %zmm41223; AVX512DQ-BW-NEXT: vpmovsxbd {{.*#+}} ymm1 = [0,1,2,3,4,5,10,15]1224; AVX512DQ-BW-NEXT: vpermi2d %ymm6, %ymm4, %ymm11225; AVX512DQ-BW-NEXT: vmovdqa %ymm0, (%rsi)1226; AVX512DQ-BW-NEXT: vmovdqa %ymm3, (%rdx)1227; AVX512DQ-BW-NEXT: vmovdqa %ymm5, (%rcx)1228; AVX512DQ-BW-NEXT: vmovdqa %ymm7, (%r8)1229; AVX512DQ-BW-NEXT: vmovdqa %ymm1, (%r9)1230; AVX512DQ-BW-NEXT: vzeroupper1231; AVX512DQ-BW-NEXT: retq1232;1233; AVX512DQ-BW-FCP-LABEL: load_i32_stride5_vf8:1234; AVX512DQ-BW-FCP: # %bb.0:1235; AVX512DQ-BW-FCP-NEXT: vmovdqa64 (%rdi), %zmm11236; AVX512DQ-BW-FCP-NEXT: vmovdqa64 64(%rdi), %zmm21237; AVX512DQ-BW-FCP-NEXT: vpmovsxbd {{.*#+}} ymm0 = [0,5,10,15,20,25,30,0]1238; AVX512DQ-BW-FCP-NEXT: vpermi2d %zmm2, %zmm1, %zmm01239; AVX512DQ-BW-FCP-NEXT: vinserti128 $1, 128(%rdi), %ymm0, %ymm31240; AVX512DQ-BW-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2],ymm3[3],ymm0[4,5,6],ymm3[7]1241; AVX512DQ-BW-FCP-NEXT: vpmovsxbd {{.*#+}} ymm3 = [17,22,27,0,5,10,15,0]1242; AVX512DQ-BW-FCP-NEXT: vpermi2d %zmm1, %zmm2, %zmm31243; AVX512DQ-BW-FCP-NEXT: vpbroadcastd 144(%rdi), %ymm41244; AVX512DQ-BW-FCP-NEXT: vpblendd {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5,6],ymm4[7]1245; AVX512DQ-BW-FCP-NEXT: vpmovsxbd {{.*#+}} ymm4 = [2,7,12,17,22,27,0,0]1246; AVX512DQ-BW-FCP-NEXT: vpermi2d %zmm2, %zmm1, %zmm41247; AVX512DQ-BW-FCP-NEXT: vpmovsxbd {{.*#+}} ymm5 = [0,1,2,3,4,5,8,13]1248; AVX512DQ-BW-FCP-NEXT: vmovdqa 128(%rdi), %ymm61249; AVX512DQ-BW-FCP-NEXT: vpermi2d %ymm6, %ymm4, %ymm51250; AVX512DQ-BW-FCP-NEXT: vpmovsxbd {{.*#+}} ymm4 = [3,8,13,18,23,28,0,0]1251; AVX512DQ-BW-FCP-NEXT: vpermi2d %zmm2, %zmm1, %zmm41252; AVX512DQ-BW-FCP-NEXT: vpmovsxbd {{.*#+}} ymm7 = [0,1,2,3,4,5,9,14]1253; AVX512DQ-BW-FCP-NEXT: vpermi2d %ymm6, %ymm4, %ymm71254; AVX512DQ-BW-FCP-NEXT: vpmovsxbd {{.*#+}} ymm4 = [4,9,14,19,24,29,0,0]1255; AVX512DQ-BW-FCP-NEXT: vpermi2d %zmm2, %zmm1, %zmm41256; AVX512DQ-BW-FCP-NEXT: vpmovsxbd {{.*#+}} ymm1 = [0,1,2,3,4,5,10,15]1257; AVX512DQ-BW-FCP-NEXT: vpermi2d %ymm6, %ymm4, %ymm11258; AVX512DQ-BW-FCP-NEXT: vmovdqa %ymm0, (%rsi)1259; AVX512DQ-BW-FCP-NEXT: vmovdqa %ymm3, (%rdx)1260; AVX512DQ-BW-FCP-NEXT: vmovdqa %ymm5, (%rcx)1261; AVX512DQ-BW-FCP-NEXT: vmovdqa %ymm7, (%r8)1262; AVX512DQ-BW-FCP-NEXT: vmovdqa %ymm1, (%r9)1263; AVX512DQ-BW-FCP-NEXT: vzeroupper1264; AVX512DQ-BW-FCP-NEXT: retq1265 %wide.vec = load <40 x i32>, ptr %in.vec, align 641266 %strided.vec0 = shufflevector <40 x i32> %wide.vec, <40 x i32> poison, <8 x i32> <i32 0, i32 5, i32 10, i32 15, i32 20, i32 25, i32 30, i32 35>1267 %strided.vec1 = shufflevector <40 x i32> %wide.vec, <40 x i32> poison, <8 x i32> <i32 1, i32 6, i32 11, i32 16, i32 21, i32 26, i32 31, i32 36>1268 %strided.vec2 = shufflevector <40 x i32> %wide.vec, <40 x i32> poison, <8 x i32> <i32 2, i32 7, i32 12, i32 17, i32 22, i32 27, i32 32, i32 37>1269 %strided.vec3 = shufflevector <40 x i32> %wide.vec, <40 x i32> poison, <8 x i32> <i32 3, i32 8, i32 13, i32 18, i32 23, i32 28, i32 33, i32 38>1270 %strided.vec4 = shufflevector <40 x i32> %wide.vec, <40 x i32> poison, <8 x i32> <i32 4, i32 9, i32 14, i32 19, i32 24, i32 29, i32 34, i32 39>1271 store <8 x i32> %strided.vec0, ptr %out.vec0, align 641272 store <8 x i32> %strided.vec1, ptr %out.vec1, align 641273 store <8 x i32> %strided.vec2, ptr %out.vec2, align 641274 store <8 x i32> %strided.vec3, ptr %out.vec3, align 641275 store <8 x i32> %strided.vec4, ptr %out.vec4, align 641276 ret void1277}1278 1279define void @load_i32_stride5_vf16(ptr %in.vec, ptr %out.vec0, ptr %out.vec1, ptr %out.vec2, ptr %out.vec3, ptr %out.vec4) nounwind {1280; SSE-LABEL: load_i32_stride5_vf16:1281; SSE: # %bb.0:1282; SSE-NEXT: subq $312, %rsp # imm = 0x1381283; SSE-NEXT: movdqa 288(%rdi), %xmm21284; SSE-NEXT: movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1285; SSE-NEXT: movdqa 272(%rdi), %xmm31286; SSE-NEXT: movdqa 240(%rdi), %xmm141287; SSE-NEXT: movdqa 256(%rdi), %xmm81288; SSE-NEXT: movdqa (%rdi), %xmm111289; SSE-NEXT: movdqa 16(%rdi), %xmm151290; SSE-NEXT: movdqa 32(%rdi), %xmm51291; SSE-NEXT: movdqa 48(%rdi), %xmm41292; SSE-NEXT: movdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1293; SSE-NEXT: movdqa 208(%rdi), %xmm61294; SSE-NEXT: movdqa %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1295; SSE-NEXT: movdqa 192(%rdi), %xmm91296; SSE-NEXT: movdqa 160(%rdi), %xmm101297; SSE-NEXT: movdqa 176(%rdi), %xmm131298; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm13[1,1,1,1]1299; SSE-NEXT: movdqa %xmm10, %xmm11300; SSE-NEXT: punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]1301; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm9[2,2,2,2]1302; SSE-NEXT: movdqa %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1303; SSE-NEXT: punpckhdq {{.*#+}} xmm0 = xmm0[2],xmm6[2],xmm0[3],xmm6[3]1304; SSE-NEXT: movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]1305; SSE-NEXT: movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1306; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm15[1,1,1,1]1307; SSE-NEXT: movdqa %xmm11, %xmm11308; SSE-NEXT: movdqa %xmm11, %xmm61309; SSE-NEXT: punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]1310; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm5[2,2,2,2]1311; SSE-NEXT: movdqa %xmm5, %xmm71312; SSE-NEXT: movdqa %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1313; SSE-NEXT: punpckhdq {{.*#+}} xmm0 = xmm0[2],xmm4[2],xmm0[3],xmm4[3]1314; SSE-NEXT: movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]1315; SSE-NEXT: movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1316; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm8[1,1,1,1]1317; SSE-NEXT: movdqa %xmm14, %xmm11318; SSE-NEXT: punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]1319; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm3[2,2,2,2]1320; SSE-NEXT: movdqa %xmm3, %xmm51321; SSE-NEXT: movdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1322; SSE-NEXT: punpckhdq {{.*#+}} xmm0 = xmm0[2],xmm2[2],xmm0[3],xmm2[3]1323; SSE-NEXT: movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]1324; SSE-NEXT: movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1325; SSE-NEXT: movdqa 80(%rdi), %xmm41326; SSE-NEXT: movdqa 96(%rdi), %xmm111327; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm11[1,1,1,1]1328; SSE-NEXT: movdqa %xmm4, %xmm11329; SSE-NEXT: punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]1330; SSE-NEXT: movdqa 128(%rdi), %xmm21331; SSE-NEXT: movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1332; SSE-NEXT: movdqa 112(%rdi), %xmm121333; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm12[2,2,2,2]1334; SSE-NEXT: movdqa %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1335; SSE-NEXT: punpckhdq {{.*#+}} xmm0 = xmm0[2],xmm2[2],xmm0[3],xmm2[3]1336; SSE-NEXT: movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]1337; SSE-NEXT: movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1338; SSE-NEXT: movdqa %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1339; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm10[1,1,1,1]1340; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm13[2,3,2,3]1341; SSE-NEXT: punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]1342; SSE-NEXT: movdqa 224(%rdi), %xmm11343; SSE-NEXT: movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1344; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[0,0,1,1]1345; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm9[2,3,2,3]1346; SSE-NEXT: punpckldq {{.*#+}} xmm2 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]1347; SSE-NEXT: movsd {{.*#+}} xmm2 = xmm0[0],xmm2[1]1348; SSE-NEXT: movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1349; SSE-NEXT: movdqa %xmm6, %xmm91350; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm6[1,1,1,1]1351; SSE-NEXT: movdqa %xmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1352; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm15[2,3,2,3]1353; SSE-NEXT: punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]1354; SSE-NEXT: movdqa 64(%rdi), %xmm11355; SSE-NEXT: movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1356; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[0,0,1,1]1357; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm7[2,3,2,3]1358; SSE-NEXT: punpckldq {{.*#+}} xmm2 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]1359; SSE-NEXT: movsd {{.*#+}} xmm2 = xmm0[0],xmm2[1]1360; SSE-NEXT: movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1361; SSE-NEXT: movdqa %xmm14, %xmm31362; SSE-NEXT: movdqa %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1363; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm14[1,1,1,1]1364; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm8[2,3,2,3]1365; SSE-NEXT: movdqa %xmm8, (%rsp) # 16-byte Spill1366; SSE-NEXT: punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]1367; SSE-NEXT: movdqa 304(%rdi), %xmm11368; SSE-NEXT: movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1369; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[0,0,1,1]1370; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm5[2,3,2,3]1371; SSE-NEXT: punpckldq {{.*#+}} xmm2 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]1372; SSE-NEXT: movsd {{.*#+}} xmm2 = xmm0[0],xmm2[1]1373; SSE-NEXT: movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1374; SSE-NEXT: movdqa %xmm4, %xmm71375; SSE-NEXT: movdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1376; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm4[1,1,1,1]1377; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm11[2,3,2,3]1378; SSE-NEXT: punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]1379; SSE-NEXT: movdqa 144(%rdi), %xmm11380; SSE-NEXT: movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1381; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[0,0,1,1]1382; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm12[2,3,2,3]1383; SSE-NEXT: punpckldq {{.*#+}} xmm2 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]1384; SSE-NEXT: movsd {{.*#+}} xmm2 = xmm0[0],xmm2[1]1385; SSE-NEXT: movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1386; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm13[2,2,3,3]1387; SSE-NEXT: punpckhdq {{.*#+}} xmm10 = xmm10[2],xmm1[2],xmm10[3],xmm1[3]1388; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload1389; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm14[0,0,1,1]1390; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload1391; SSE-NEXT: punpckldq {{.*#+}} xmm1 = xmm1[0],xmm6[0],xmm1[1],xmm6[1]1392; SSE-NEXT: movsd {{.*#+}} xmm1 = xmm10[0],xmm1[1]1393; SSE-NEXT: movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1394; SSE-NEXT: movdqa %xmm9, %xmm01395; SSE-NEXT: movdqa %xmm9, %xmm101396; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm15[2,2,3,3]1397; SSE-NEXT: punpckhdq {{.*#+}} xmm0 = xmm0[2],xmm1[2],xmm0[3],xmm1[3]1398; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload1399; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm4[0,0,1,1]1400; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload1401; SSE-NEXT: punpckldq {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]1402; SSE-NEXT: movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]1403; SSE-NEXT: movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1404; SSE-NEXT: movdqa %xmm3, %xmm01405; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm8[2,2,3,3]1406; SSE-NEXT: punpckhdq {{.*#+}} xmm0 = xmm0[2],xmm1[2],xmm0[3],xmm1[3]1407; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload1408; SSE-NEXT: pshufd {{.*#+}} xmm12 = xmm5[0,0,1,1]1409; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload1410; SSE-NEXT: punpckldq {{.*#+}} xmm12 = xmm12[0],xmm3[0],xmm12[1],xmm3[1]1411; SSE-NEXT: movsd {{.*#+}} xmm12 = xmm0[0],xmm12[1]1412; SSE-NEXT: movdqa %xmm7, %xmm01413; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm11[2,2,3,3]1414; SSE-NEXT: punpckhdq {{.*#+}} xmm0 = xmm0[2],xmm1[2],xmm0[3],xmm1[3]1415; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload1416; SSE-NEXT: pshufd {{.*#+}} xmm9 = xmm7[0,0,1,1]1417; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload1418; SSE-NEXT: punpckldq {{.*#+}} xmm9 = xmm9[0],xmm1[0],xmm9[1],xmm1[1]1419; SSE-NEXT: movsd {{.*#+}} xmm9 = xmm0[0],xmm9[1]1420; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm6[2,2,3,3]1421; SSE-NEXT: movdqa %xmm14, %xmm81422; SSE-NEXT: movdqa %xmm14, %xmm151423; SSE-NEXT: punpckldq {{.*#+}} xmm8 = xmm8[0],xmm0[0],xmm8[1],xmm0[1]1424; SSE-NEXT: pshufd $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload1425; SSE-NEXT: # xmm0 = mem[3,3,3,3]1426; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload1427; SSE-NEXT: punpckldq {{.*#+}} xmm0 = xmm0[0],xmm14[0],xmm0[1],xmm14[1]1428; SSE-NEXT: movsd {{.*#+}} xmm8 = xmm0[0],xmm8[1]1429; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm2[2,2,3,3]1430; SSE-NEXT: movdqa %xmm4, %xmm61431; SSE-NEXT: punpckldq {{.*#+}} xmm6 = xmm6[0],xmm0[0],xmm6[1],xmm0[1]1432; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm10[3,3,3,3]1433; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload1434; SSE-NEXT: punpckldq {{.*#+}} xmm0 = xmm0[0],xmm10[0],xmm0[1],xmm10[1]1435; SSE-NEXT: movsd {{.*#+}} xmm6 = xmm0[0],xmm6[1]1436; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm3[2,2,3,3]1437; SSE-NEXT: movdqa %xmm5, %xmm21438; SSE-NEXT: punpckldq {{.*#+}} xmm2 = xmm2[0],xmm0[0],xmm2[1],xmm0[1]1439; SSE-NEXT: pshufd $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload1440; SSE-NEXT: # xmm0 = mem[3,3,3,3]1441; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload1442; SSE-NEXT: punpckldq {{.*#+}} xmm0 = xmm0[0],xmm4[0],xmm0[1],xmm4[1]1443; SSE-NEXT: movsd {{.*#+}} xmm2 = xmm0[0],xmm2[1]1444; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm1[2,2,3,3]1445; SSE-NEXT: movdqa %xmm7, %xmm11446; SSE-NEXT: punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]1447; SSE-NEXT: pshufd $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload1448; SSE-NEXT: # xmm0 = mem[3,3,3,3]1449; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload1450; SSE-NEXT: punpckldq {{.*#+}} xmm0 = xmm0[0],xmm3[0],xmm0[1],xmm3[1]1451; SSE-NEXT: movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]1452; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm14[1,1,1,1]1453; SSE-NEXT: punpckldq {{.*#+}} xmm13 = xmm13[0],xmm0[0],xmm13[1],xmm0[1]1454; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm15[2,2,2,2]1455; SSE-NEXT: punpckhdq {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload1456; SSE-NEXT: # xmm0 = xmm0[2],mem[2],xmm0[3],mem[3]1457; SSE-NEXT: movsd {{.*#+}} xmm0 = xmm13[0],xmm0[1]1458; SSE-NEXT: pshufd {{.*#+}} xmm13 = xmm10[1,1,1,1]1459; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload1460; SSE-NEXT: punpckldq {{.*#+}} xmm15 = xmm15[0],xmm13[0],xmm15[1],xmm13[1]1461; SSE-NEXT: pshufd $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Folded Reload1462; SSE-NEXT: # xmm13 = mem[2,2,2,2]1463; SSE-NEXT: punpckhdq {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Folded Reload1464; SSE-NEXT: # xmm13 = xmm13[2],mem[2],xmm13[3],mem[3]1465; SSE-NEXT: movsd {{.*#+}} xmm13 = xmm15[0],xmm13[1]1466; SSE-NEXT: pshufd {{.*#+}} xmm15 = xmm4[1,1,1,1]1467; SSE-NEXT: movdqa (%rsp), %xmm14 # 16-byte Reload1468; SSE-NEXT: punpckldq {{.*#+}} xmm14 = xmm14[0],xmm15[0],xmm14[1],xmm15[1]1469; SSE-NEXT: pshufd {{.*#+}} xmm15 = xmm5[2,2,2,2]1470; SSE-NEXT: punpckhdq {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Folded Reload1471; SSE-NEXT: # xmm15 = xmm15[2],mem[2],xmm15[3],mem[3]1472; SSE-NEXT: movsd {{.*#+}} xmm15 = xmm14[0],xmm15[1]1473; SSE-NEXT: pshufd {{.*#+}} xmm14 = xmm3[1,1,1,1]1474; SSE-NEXT: punpckldq {{.*#+}} xmm11 = xmm11[0],xmm14[0],xmm11[1],xmm14[1]1475; SSE-NEXT: pshufd {{.*#+}} xmm14 = xmm7[2,2,2,2]1476; SSE-NEXT: punpckhdq {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Folded Reload1477; SSE-NEXT: # xmm14 = xmm14[2],mem[2],xmm14[3],mem[3]1478; SSE-NEXT: movsd {{.*#+}} xmm14 = xmm11[0],xmm14[1]1479; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload1480; SSE-NEXT: movaps %xmm3, 16(%rsi)1481; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Reload1482; SSE-NEXT: movaps %xmm11, 48(%rsi)1483; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Reload1484; SSE-NEXT: movaps %xmm11, (%rsi)1485; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Reload1486; SSE-NEXT: movaps %xmm11, 32(%rsi)1487; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload1488; SSE-NEXT: movaps %xmm3, 16(%rdx)1489; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload1490; SSE-NEXT: movaps %xmm3, 48(%rdx)1491; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload1492; SSE-NEXT: movaps %xmm3, (%rdx)1493; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload1494; SSE-NEXT: movaps %xmm3, 32(%rdx)1495; SSE-NEXT: movapd %xmm9, 16(%rcx)1496; SSE-NEXT: movapd %xmm12, 48(%rcx)1497; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload1498; SSE-NEXT: movaps %xmm3, (%rcx)1499; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload1500; SSE-NEXT: movaps %xmm3, 32(%rcx)1501; SSE-NEXT: movapd %xmm1, 16(%r8)1502; SSE-NEXT: movapd %xmm2, 48(%r8)1503; SSE-NEXT: movapd %xmm6, (%r8)1504; SSE-NEXT: movapd %xmm8, 32(%r8)1505; SSE-NEXT: movapd %xmm14, 16(%r9)1506; SSE-NEXT: movapd %xmm15, 48(%r9)1507; SSE-NEXT: movapd %xmm13, (%r9)1508; SSE-NEXT: movapd %xmm0, 32(%r9)1509; SSE-NEXT: addq $312, %rsp # imm = 0x1381510; SSE-NEXT: retq1511;1512; AVX-LABEL: load_i32_stride5_vf16:1513; AVX: # %bb.0:1514; AVX-NEXT: subq $136, %rsp1515; AVX-NEXT: vmovaps 224(%rdi), %ymm21516; AVX-NEXT: vmovaps 256(%rdi), %ymm71517; AVX-NEXT: vmovaps 192(%rdi), %ymm111518; AVX-NEXT: vmovaps 160(%rdi), %ymm131519; AVX-NEXT: vmovaps 64(%rdi), %ymm51520; AVX-NEXT: vmovaps 96(%rdi), %ymm61521; AVX-NEXT: vmovaps 32(%rdi), %ymm141522; AVX-NEXT: vmovaps (%rdi), %ymm121523; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm12[0,1],ymm14[2,3],ymm12[4,5],ymm14[6,7]1524; AVX-NEXT: vmovups %ymm14, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1525; AVX-NEXT: vextractf128 $1, %ymm0, %xmm11526; AVX-NEXT: vblendps {{.*#+}} xmm1 = xmm0[0],xmm1[1],xmm0[2],xmm1[3]1527; AVX-NEXT: vinsertf128 $1, 128(%rdi), %ymm1, %ymm31528; AVX-NEXT: vmovaps 96(%rdi), %xmm01529; AVX-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1530; AVX-NEXT: vinsertf128 $1, %xmm0, %ymm0, %ymm01531; AVX-NEXT: vblendps {{.*#+}} ymm4 = ymm0[0,1,2,3,4,5],ymm6[6,7]1532; AVX-NEXT: vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm5[4],ymm4[5,6,7]1533; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm4[4,5,6,7]1534; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm1[0,1,2],ymm3[3],ymm1[4,5,6],ymm3[7]1535; AVX-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1536; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm13[0,1],ymm11[2,3],ymm13[4,5],ymm11[6,7]1537; AVX-NEXT: vmovups %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1538; AVX-NEXT: vextractf128 $1, %ymm1, %xmm31539; AVX-NEXT: vblendps {{.*#+}} xmm1 = xmm1[0],xmm3[1],xmm1[2],xmm3[3]1540; AVX-NEXT: vinsertf128 $1, 288(%rdi), %ymm1, %ymm41541; AVX-NEXT: vmovaps 256(%rdi), %xmm31542; AVX-NEXT: vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1543; AVX-NEXT: vinsertf128 $1, %xmm3, %ymm0, %ymm31544; AVX-NEXT: vblendps {{.*#+}} ymm8 = ymm3[0,1,2,3,4,5],ymm7[6,7]1545; AVX-NEXT: vblendps {{.*#+}} ymm8 = ymm8[0,1,2,3],ymm2[4],ymm8[5,6,7]1546; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm8[4,5,6,7]1547; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm1[0,1,2],ymm4[3],ymm1[4,5,6],ymm4[7]1548; AVX-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1549; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm5[0,1],ymm6[2,3],ymm5[4,5],ymm6[6,7]1550; AVX-NEXT: vperm2f128 {{.*#+}} ymm4 = ymm6[2,3,0,1]1551; AVX-NEXT: vshufps {{.*#+}} ymm4 = ymm4[2,1],ymm5[1,3],ymm4[6,5],ymm5[5,7]1552; AVX-NEXT: vshufps {{.*#+}} ymm1 = ymm4[2,0],ymm1[3,0],ymm4[6,4],ymm1[7,4]1553; AVX-NEXT: vmovaps (%rdi), %xmm151554; AVX-NEXT: vmovaps 32(%rdi), %xmm101555; AVX-NEXT: vmovsd %xmm15, %xmm10, %xmm41556; AVX-NEXT: vblendps {{.*#+}} xmm4 = xmm4[0,1],mem[2],xmm4[3]1557; AVX-NEXT: vshufps {{.*#+}} xmm4 = xmm4[1,2,3,3]1558; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm4[0,1,2],ymm1[3,4,5,6,7]1559; AVX-NEXT: vbroadcastss 144(%rdi), %ymm41560; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,6],ymm4[7]1561; AVX-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1562; AVX-NEXT: vperm2f128 {{.*#+}} ymm1 = ymm7[2,3,0,1]1563; AVX-NEXT: vshufps {{.*#+}} ymm1 = ymm1[2,1],ymm2[1,3],ymm1[6,5],ymm2[5,7]1564; AVX-NEXT: vblendps {{.*#+}} ymm4 = ymm2[0,1],ymm7[2,3],ymm2[4,5],ymm7[6,7]1565; AVX-NEXT: vshufps {{.*#+}} ymm1 = ymm1[2,0],ymm4[3,0],ymm1[6,4],ymm4[7,4]1566; AVX-NEXT: vmovaps 160(%rdi), %xmm91567; AVX-NEXT: vmovaps 192(%rdi), %xmm81568; AVX-NEXT: vmovsd %xmm9, %xmm8, %xmm41569; AVX-NEXT: vblendps {{.*#+}} xmm4 = xmm4[0,1],mem[2],xmm4[3]1570; AVX-NEXT: vshufps {{.*#+}} xmm4 = xmm4[1,2,3,3]1571; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm4[0,1,2],ymm1[3,4,5,6,7]1572; AVX-NEXT: vbroadcastss 304(%rdi), %ymm41573; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,6],ymm4[7]1574; AVX-NEXT: vmovups %ymm1, (%rsp) # 32-byte Spill1575; AVX-NEXT: vshufps {{.*#+}} ymm0 = ymm0[3,0],ymm5[2,0],ymm0[7,4],ymm5[6,4]1576; AVX-NEXT: vshufps {{.*#+}} ymm0 = ymm0[2,0],ymm5[2,1],ymm0[6,4],ymm5[6,5]1577; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm14[4,5],ymm12[6,7]1578; AVX-NEXT: vextractf128 $1, %ymm1, %xmm11579; AVX-NEXT: vblendps {{.*#+}} xmm1 = xmm1[0,1],mem[2],xmm1[3]1580; AVX-NEXT: vshufpd {{.*#+}} xmm1 = xmm1[1,0]1581; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3,4,5,6,7]1582; AVX-NEXT: vmovaps 128(%rdi), %ymm11583; AVX-NEXT: vperm2f128 {{.*#+}} ymm4 = ymm1[2,3,0,1]1584; AVX-NEXT: vshufps {{.*#+}} ymm14 = ymm1[1,0],ymm4[0,0],ymm1[5,4],ymm4[4,4]1585; AVX-NEXT: vshufps {{.*#+}} ymm14 = ymm14[0,1,2,0,4,5,6,4]1586; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm14[6,7]1587; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1588; AVX-NEXT: vshufps {{.*#+}} ymm0 = ymm3[3,0],ymm2[2,0],ymm3[7,4],ymm2[6,4]1589; AVX-NEXT: vshufps {{.*#+}} ymm0 = ymm0[2,0],ymm2[2,1],ymm0[6,4],ymm2[6,5]1590; AVX-NEXT: vblendps {{.*#+}} ymm3 = ymm13[0,1,2,3],ymm11[4,5],ymm13[6,7]1591; AVX-NEXT: vextractf128 $1, %ymm3, %xmm31592; AVX-NEXT: vblendps {{.*#+}} xmm3 = xmm3[0,1],mem[2],xmm3[3]1593; AVX-NEXT: vshufpd {{.*#+}} xmm3 = xmm3[1,0]1594; AVX-NEXT: vblendps {{.*#+}} ymm14 = ymm3[0,1,2],ymm0[3,4,5,6,7]1595; AVX-NEXT: vmovaps 288(%rdi), %ymm01596; AVX-NEXT: vperm2f128 {{.*#+}} ymm3 = ymm0[2,3,0,1]1597; AVX-NEXT: vshufps {{.*#+}} ymm13 = ymm0[1,0],ymm3[0,0],ymm0[5,4],ymm3[4,4]1598; AVX-NEXT: vshufps {{.*#+}} ymm13 = ymm13[0,1,2,0,4,5,6,4]1599; AVX-NEXT: vblendps {{.*#+}} ymm14 = ymm14[0,1,2,3,4,5],ymm13[6,7]1600; AVX-NEXT: vmovsd {{.*#+}} xmm10 = xmm10[0],xmm15[1]1601; AVX-NEXT: vshufps {{.*#+}} ymm13 = ymm6[0,0],ymm5[3,0],ymm6[4,4],ymm5[7,4]1602; AVX-NEXT: vshufps {{.*#+}} ymm13 = ymm13[2,0],ymm5[2,2],ymm13[6,4],ymm5[6,6]1603; AVX-NEXT: vshufps {{.*#+}} xmm10 = xmm10[3,0],mem[1,3]1604; AVX-NEXT: vblendps {{.*#+}} ymm10 = ymm10[0,1,2],ymm13[3,4,5,6,7]1605; AVX-NEXT: vshufps {{.*#+}} ymm13 = ymm1[2,0],ymm4[1,0],ymm1[6,4],ymm4[5,4]1606; AVX-NEXT: vshufps {{.*#+}} ymm13 = ymm13[0,1,2,0,4,5,6,4]1607; AVX-NEXT: vblendps {{.*#+}} ymm10 = ymm10[0,1,2,3,4,5],ymm13[6,7]1608; AVX-NEXT: vmovsd {{.*#+}} xmm8 = xmm8[0],xmm9[1]1609; AVX-NEXT: vshufps {{.*#+}} ymm9 = ymm7[0,0],ymm2[3,0],ymm7[4,4],ymm2[7,4]1610; AVX-NEXT: vshufps {{.*#+}} ymm9 = ymm9[2,0],ymm2[2,2],ymm9[6,4],ymm2[6,6]1611; AVX-NEXT: vshufps {{.*#+}} xmm8 = xmm8[3,0],mem[1,3]1612; AVX-NEXT: vblendps {{.*#+}} ymm8 = ymm8[0,1,2],ymm9[3,4,5,6,7]1613; AVX-NEXT: vshufps {{.*#+}} ymm9 = ymm0[2,0],ymm3[1,0],ymm0[6,4],ymm3[5,4]1614; AVX-NEXT: vshufps {{.*#+}} ymm9 = ymm9[0,1,2,0,4,5,6,4]1615; AVX-NEXT: vblendps {{.*#+}} ymm8 = ymm8[0,1,2,3,4,5],ymm9[6,7]1616; AVX-NEXT: vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5, %ymm5 # 16-byte Folded Reload1617; AVX-NEXT: vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3,4],ymm6[5],ymm5[6,7]1618; AVX-NEXT: vblendps $207, {{[-0-9]+}}(%r{{[sb]}}p), %ymm12, %ymm6 # 32-byte Folded Reload1619; AVX-NEXT: # ymm6 = mem[0,1,2,3],ymm12[4,5],mem[6,7]1620; AVX-NEXT: vextractf128 $1, %ymm6, %xmm61621; AVX-NEXT: vblendps {{.*#+}} xmm6 = xmm6[0],mem[1],xmm6[2,3]1622; AVX-NEXT: vblendps {{.*#+}} ymm5 = ymm6[0,1,2],ymm5[3,4,5,6,7]1623; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm4[0,1,2,3,4,5,6],ymm1[7]1624; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm5[0,1,2,3,4,5],ymm1[6,7]1625; AVX-NEXT: vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 16-byte Folded Reload1626; AVX-NEXT: vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4],ymm7[5],ymm2[6,7]1627; AVX-NEXT: vblendps $48, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm4 # 32-byte Folded Reload1628; AVX-NEXT: # ymm4 = ymm11[0,1,2,3],mem[4,5],ymm11[6,7]1629; AVX-NEXT: vextractf128 $1, %ymm4, %xmm41630; AVX-NEXT: vblendps {{.*#+}} xmm4 = xmm4[0],mem[1],xmm4[2,3]1631; AVX-NEXT: vblendps {{.*#+}} ymm2 = ymm4[0,1,2],ymm2[3,4,5,6,7]1632; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm3[0,1,2,3,4,5,6],ymm0[7]1633; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm2[0,1,2,3,4,5],ymm0[6,7]1634; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload1635; AVX-NEXT: vmovaps %ymm2, 32(%rsi)1636; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload1637; AVX-NEXT: vmovaps %ymm2, (%rsi)1638; AVX-NEXT: vmovups (%rsp), %ymm2 # 32-byte Reload1639; AVX-NEXT: vmovaps %ymm2, 32(%rdx)1640; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload1641; AVX-NEXT: vmovaps %ymm2, (%rdx)1642; AVX-NEXT: vmovaps %ymm14, 32(%rcx)1643; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload1644; AVX-NEXT: vmovaps %ymm2, (%rcx)1645; AVX-NEXT: vmovaps %ymm8, 32(%r8)1646; AVX-NEXT: vmovaps %ymm10, (%r8)1647; AVX-NEXT: vmovaps %ymm0, 32(%r9)1648; AVX-NEXT: vmovaps %ymm1, (%r9)1649; AVX-NEXT: addq $136, %rsp1650; AVX-NEXT: vzeroupper1651; AVX-NEXT: retq1652;1653; AVX2-LABEL: load_i32_stride5_vf16:1654; AVX2: # %bb.0:1655; AVX2-NEXT: subq $72, %rsp1656; AVX2-NEXT: vmovdqa 128(%rdi), %ymm11657; AVX2-NEXT: vmovdqa (%rdi), %ymm41658; AVX2-NEXT: vmovdqa 32(%rdi), %ymm61659; AVX2-NEXT: vmovdqa 64(%rdi), %ymm81660; AVX2-NEXT: vmovdqa 96(%rdi), %ymm91661; AVX2-NEXT: vmovdqa 224(%rdi), %ymm01662; AVX2-NEXT: vmovdqa 256(%rdi), %ymm21663; AVX2-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1664; AVX2-NEXT: vmovdqa 192(%rdi), %ymm31665; AVX2-NEXT: vmovdqa 160(%rdi), %ymm51666; AVX2-NEXT: vpmovsxbd {{.*#+}} xmm10 = [0,5,2,7]1667; AVX2-NEXT: vpblendd {{.*#+}} ymm7 = ymm5[0,1],ymm3[2,3],ymm5[4,5],ymm3[6,7]1668; AVX2-NEXT: vpermd %ymm7, %ymm10, %ymm71669; AVX2-NEXT: vinserti128 $1, 288(%rdi), %ymm7, %ymm111670; AVX2-NEXT: vpermq {{.*#+}} ymm12 = ymm2[0,1,0,3]1671; AVX2-NEXT: vpblendd {{.*#+}} ymm12 = ymm12[0,1,2,3],ymm0[4],ymm12[5,6,7]1672; AVX2-NEXT: vpblendd {{.*#+}} ymm7 = ymm7[0,1,2,3],ymm12[4,5,6,7]1673; AVX2-NEXT: vpblendd {{.*#+}} ymm7 = ymm7[0,1,2],ymm11[3],ymm7[4,5,6],ymm11[7]1674; AVX2-NEXT: vmovdqu %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1675; AVX2-NEXT: vpermq {{.*#+}} ymm11 = ymm9[0,1,0,3]1676; AVX2-NEXT: vpblendd {{.*#+}} ymm11 = ymm11[0,1,2,3],ymm8[4],ymm11[5,6,7]1677; AVX2-NEXT: vpblendd {{.*#+}} ymm12 = ymm4[0,1],ymm6[2,3],ymm4[4,5],ymm6[6,7]1678; AVX2-NEXT: vpermd %ymm12, %ymm10, %ymm101679; AVX2-NEXT: vpblendd {{.*#+}} ymm11 = ymm10[0,1,2,3],ymm11[4,5,6,7]1680; AVX2-NEXT: vinserti128 $1, 128(%rdi), %ymm10, %ymm101681; AVX2-NEXT: vpblendd {{.*#+}} ymm7 = ymm11[0,1,2],ymm10[3],ymm11[4,5,6],ymm10[7]1682; AVX2-NEXT: vmovdqu %ymm7, (%rsp) # 32-byte Spill1683; AVX2-NEXT: vpblendd {{.*#+}} ymm11 = ymm5[0,1],ymm3[2,3],ymm5[4,5,6,7]1684; AVX2-NEXT: vpblendd {{.*#+}} ymm12 = ymm0[0,1],ymm2[2,3],ymm0[4,5],ymm2[6,7]1685; AVX2-NEXT: vmovdqa %ymm0, %ymm71686; AVX2-NEXT: vpblendd {{.*#+}} ymm11 = ymm12[0],ymm11[1],ymm12[2],ymm11[3],ymm12[4,5],ymm11[6],ymm12[7]1687; AVX2-NEXT: vpmovsxbd {{.*#+}} ymm12 = [1,6,3,0,5,2,7,0]1688; AVX2-NEXT: vpermd %ymm11, %ymm12, %ymm111689; AVX2-NEXT: vpbroadcastd 304(%rdi), %ymm131690; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm11[0,1,2,3,4,5,6],ymm13[7]1691; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1692; AVX2-NEXT: vpblendd {{.*#+}} ymm13 = ymm4[0,1],ymm6[2,3],ymm4[4,5,6,7]1693; AVX2-NEXT: vpblendd {{.*#+}} ymm14 = ymm8[0,1],ymm9[2,3],ymm8[4,5],ymm9[6,7]1694; AVX2-NEXT: vpblendd {{.*#+}} ymm13 = ymm14[0],ymm13[1],ymm14[2],ymm13[3],ymm14[4,5],ymm13[6],ymm14[7]1695; AVX2-NEXT: vpermd %ymm13, %ymm12, %ymm121696; AVX2-NEXT: vpbroadcastd 144(%rdi), %ymm131697; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm12[0,1,2,3,4,5,6],ymm13[7]1698; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1699; AVX2-NEXT: vpmovsxbd {{.*#+}} xmm14 = [2,7,4,0]1700; AVX2-NEXT: vpblendd {{.*#+}} ymm13 = ymm4[0,1,2,3],ymm6[4,5],ymm4[6,7]1701; AVX2-NEXT: vpermd %ymm13, %ymm14, %ymm131702; AVX2-NEXT: vinserti128 $1, 96(%rdi), %ymm0, %ymm151703; AVX2-NEXT: vpblendd {{.*#+}} ymm15 = ymm8[0,1,2,3,4,5,6],ymm15[7]1704; AVX2-NEXT: vpshufd {{.*#+}} ymm15 = ymm15[2,3,0,1,6,7,4,5]1705; AVX2-NEXT: vpblendd {{.*#+}} ymm13 = ymm13[0,1,2],ymm15[3,4,5,6,7]1706; AVX2-NEXT: vpbroadcastq {{.*#+}} ymm0 = [0,5,0,5,0,5,0,5]1707; AVX2-NEXT: vmovdqa %ymm1, %ymm121708; AVX2-NEXT: vpermd %ymm1, %ymm0, %ymm151709; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm13[0,1,2,3,4,5],ymm15[6,7]1710; AVX2-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1711; AVX2-NEXT: vpblendd {{.*#+}} ymm15 = ymm5[0,1,2,3],ymm3[4,5],ymm5[6,7]1712; AVX2-NEXT: vpermd %ymm15, %ymm14, %ymm141713; AVX2-NEXT: vinserti128 $1, 256(%rdi), %ymm0, %ymm151714; AVX2-NEXT: vmovdqa %ymm7, %ymm11715; AVX2-NEXT: vpblendd {{.*#+}} ymm15 = ymm7[0,1,2,3,4,5,6],ymm15[7]1716; AVX2-NEXT: vpshufd {{.*#+}} ymm15 = ymm15[2,3,0,1,6,7,4,5]1717; AVX2-NEXT: vpblendd {{.*#+}} ymm14 = ymm14[0,1,2],ymm15[3,4,5,6,7]1718; AVX2-NEXT: vmovdqa 288(%rdi), %ymm151719; AVX2-NEXT: vpermd %ymm15, %ymm0, %ymm01720; AVX2-NEXT: vpblendd {{.*#+}} ymm14 = ymm14[0,1,2,3,4,5],ymm0[6,7]1721; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm8[0,1,2,3],ymm9[4,5],ymm8[6,7]1722; AVX2-NEXT: vpalignr {{.*#+}} ymm7 = ymm4[12,13,14,15],ymm6[0,1,2,3,4,5,6,7,8,9,10,11],ymm4[28,29,30,31],ymm6[16,17,18,19,20,21,22,23,24,25,26,27]1723; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm7[0,1],ymm0[2],ymm7[3],ymm0[4],ymm7[5,6],ymm0[7]1724; AVX2-NEXT: vpmovsxbd {{.*#+}} ymm7 = [0,1,6,2,7,4,0,0]1725; AVX2-NEXT: vpermd %ymm0, %ymm7, %ymm21726; AVX2-NEXT: vpbroadcastq {{.*#+}} ymm0 = [1,6,1,6,1,6,1,6]1727; AVX2-NEXT: vpermd %ymm12, %ymm0, %ymm101728; AVX2-NEXT: vpblendd {{.*#+}} ymm13 = ymm2[0,1,2,3,4,5],ymm10[6,7]1729; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload1730; AVX2-NEXT: vpblendd {{.*#+}} ymm10 = ymm1[0,1,2,3],ymm2[4,5],ymm1[6,7]1731; AVX2-NEXT: vpalignr {{.*#+}} ymm11 = ymm5[12,13,14,15],ymm3[0,1,2,3,4,5,6,7,8,9,10,11],ymm5[28,29,30,31],ymm3[16,17,18,19,20,21,22,23,24,25,26,27]1732; AVX2-NEXT: vpblendd {{.*#+}} ymm10 = ymm11[0,1],ymm10[2],ymm11[3],ymm10[4],ymm11[5,6],ymm10[7]1733; AVX2-NEXT: vpermd %ymm10, %ymm7, %ymm71734; AVX2-NEXT: vpermd %ymm15, %ymm0, %ymm01735; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm7[0,1,2,3,4,5],ymm0[6,7]1736; AVX2-NEXT: vperm2i128 {{.*#+}} ymm7 = ymm8[0,1],ymm9[0,1]1737; AVX2-NEXT: vpblendd {{.*#+}} ymm7 = ymm7[0,1,2,3,4],ymm9[5],ymm7[6,7]1738; AVX2-NEXT: vpblendd {{.*#+}} ymm4 = ymm6[0,1,2,3],ymm4[4,5],ymm6[6,7]1739; AVX2-NEXT: vpmovsxbd {{.*#+}} xmm6 = [4,1,6,0]1740; AVX2-NEXT: vpermd %ymm4, %ymm6, %ymm41741; AVX2-NEXT: vpblendd {{.*#+}} ymm4 = ymm4[0,1,2],ymm7[3,4,5,6,7]1742; AVX2-NEXT: vpbroadcastq {{.*#+}} ymm7 = [2,7,2,7,2,7,2,7]1743; AVX2-NEXT: vpermd %ymm12, %ymm7, %ymm81744; AVX2-NEXT: vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3,4,5],ymm8[6,7]1745; AVX2-NEXT: vpblendd {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm5[4,5],ymm3[6,7]1746; AVX2-NEXT: vpermd %ymm3, %ymm6, %ymm31747; AVX2-NEXT: vperm2i128 {{.*#+}} ymm5 = ymm1[0,1],ymm2[0,1]1748; AVX2-NEXT: vpblendd {{.*#+}} ymm2 = ymm5[0,1,2,3,4],ymm2[5],ymm5[6,7]1749; AVX2-NEXT: vpblendd {{.*#+}} ymm2 = ymm3[0,1,2],ymm2[3,4,5,6,7]1750; AVX2-NEXT: vpermd %ymm15, %ymm7, %ymm31751; AVX2-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5],ymm3[6,7]1752; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload1753; AVX2-NEXT: vmovaps %ymm3, 32(%rsi)1754; AVX2-NEXT: vmovups (%rsp), %ymm3 # 32-byte Reload1755; AVX2-NEXT: vmovaps %ymm3, (%rsi)1756; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload1757; AVX2-NEXT: vmovaps %ymm3, 32(%rdx)1758; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload1759; AVX2-NEXT: vmovaps %ymm1, (%rdx)1760; AVX2-NEXT: vmovdqa %ymm14, 32(%rcx)1761; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload1762; AVX2-NEXT: vmovaps %ymm1, (%rcx)1763; AVX2-NEXT: vmovdqa %ymm0, 32(%r8)1764; AVX2-NEXT: vmovdqa %ymm13, (%r8)1765; AVX2-NEXT: vmovdqa %ymm2, 32(%r9)1766; AVX2-NEXT: vmovdqa %ymm4, (%r9)1767; AVX2-NEXT: addq $72, %rsp1768; AVX2-NEXT: vzeroupper1769; AVX2-NEXT: retq1770;1771; AVX2-FP-LABEL: load_i32_stride5_vf16:1772; AVX2-FP: # %bb.0:1773; AVX2-FP-NEXT: subq $72, %rsp1774; AVX2-FP-NEXT: vmovdqa 128(%rdi), %ymm11775; AVX2-FP-NEXT: vmovdqa (%rdi), %ymm41776; AVX2-FP-NEXT: vmovdqa 32(%rdi), %ymm61777; AVX2-FP-NEXT: vmovdqa 64(%rdi), %ymm81778; AVX2-FP-NEXT: vmovdqa 96(%rdi), %ymm91779; AVX2-FP-NEXT: vmovdqa 224(%rdi), %ymm01780; AVX2-FP-NEXT: vmovdqa 256(%rdi), %ymm21781; AVX2-FP-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1782; AVX2-FP-NEXT: vmovdqa 192(%rdi), %ymm31783; AVX2-FP-NEXT: vmovdqa 160(%rdi), %ymm51784; AVX2-FP-NEXT: vpmovsxbd {{.*#+}} xmm10 = [0,5,2,7]1785; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm7 = ymm5[0,1],ymm3[2,3],ymm5[4,5],ymm3[6,7]1786; AVX2-FP-NEXT: vpermd %ymm7, %ymm10, %ymm71787; AVX2-FP-NEXT: vinserti128 $1, 288(%rdi), %ymm7, %ymm111788; AVX2-FP-NEXT: vpermq {{.*#+}} ymm12 = ymm2[0,1,0,3]1789; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm12 = ymm12[0,1,2,3],ymm0[4],ymm12[5,6,7]1790; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm7 = ymm7[0,1,2,3],ymm12[4,5,6,7]1791; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm7 = ymm7[0,1,2],ymm11[3],ymm7[4,5,6],ymm11[7]1792; AVX2-FP-NEXT: vmovdqu %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1793; AVX2-FP-NEXT: vpermq {{.*#+}} ymm11 = ymm9[0,1,0,3]1794; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm11 = ymm11[0,1,2,3],ymm8[4],ymm11[5,6,7]1795; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm12 = ymm4[0,1],ymm6[2,3],ymm4[4,5],ymm6[6,7]1796; AVX2-FP-NEXT: vpermd %ymm12, %ymm10, %ymm101797; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm11 = ymm10[0,1,2,3],ymm11[4,5,6,7]1798; AVX2-FP-NEXT: vinserti128 $1, 128(%rdi), %ymm10, %ymm101799; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm7 = ymm11[0,1,2],ymm10[3],ymm11[4,5,6],ymm10[7]1800; AVX2-FP-NEXT: vmovdqu %ymm7, (%rsp) # 32-byte Spill1801; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm11 = ymm5[0,1],ymm3[2,3],ymm5[4,5,6,7]1802; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm12 = ymm0[0,1],ymm2[2,3],ymm0[4,5],ymm2[6,7]1803; AVX2-FP-NEXT: vmovdqa %ymm0, %ymm71804; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm11 = ymm12[0],ymm11[1],ymm12[2],ymm11[3],ymm12[4,5],ymm11[6],ymm12[7]1805; AVX2-FP-NEXT: vpmovsxbd {{.*#+}} ymm12 = [1,6,3,0,5,2,7,0]1806; AVX2-FP-NEXT: vpermd %ymm11, %ymm12, %ymm111807; AVX2-FP-NEXT: vpbroadcastd 304(%rdi), %ymm131808; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm11[0,1,2,3,4,5,6],ymm13[7]1809; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1810; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm13 = ymm4[0,1],ymm6[2,3],ymm4[4,5,6,7]1811; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm14 = ymm8[0,1],ymm9[2,3],ymm8[4,5],ymm9[6,7]1812; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm13 = ymm14[0],ymm13[1],ymm14[2],ymm13[3],ymm14[4,5],ymm13[6],ymm14[7]1813; AVX2-FP-NEXT: vpermd %ymm13, %ymm12, %ymm121814; AVX2-FP-NEXT: vpbroadcastd 144(%rdi), %ymm131815; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm12[0,1,2,3,4,5,6],ymm13[7]1816; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1817; AVX2-FP-NEXT: vpmovsxbd {{.*#+}} xmm14 = [2,7,4,0]1818; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm13 = ymm4[0,1,2,3],ymm6[4,5],ymm4[6,7]1819; AVX2-FP-NEXT: vpermd %ymm13, %ymm14, %ymm131820; AVX2-FP-NEXT: vinserti128 $1, 96(%rdi), %ymm0, %ymm151821; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm15 = ymm8[0,1,2,3,4,5,6],ymm15[7]1822; AVX2-FP-NEXT: vpshufd {{.*#+}} ymm15 = ymm15[2,3,0,1,6,7,4,5]1823; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm13 = ymm13[0,1,2],ymm15[3,4,5,6,7]1824; AVX2-FP-NEXT: vpbroadcastq {{.*#+}} ymm0 = [0,5,0,5,0,5,0,5]1825; AVX2-FP-NEXT: vmovdqa %ymm1, %ymm121826; AVX2-FP-NEXT: vpermd %ymm1, %ymm0, %ymm151827; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm13[0,1,2,3,4,5],ymm15[6,7]1828; AVX2-FP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1829; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm15 = ymm5[0,1,2,3],ymm3[4,5],ymm5[6,7]1830; AVX2-FP-NEXT: vpermd %ymm15, %ymm14, %ymm141831; AVX2-FP-NEXT: vinserti128 $1, 256(%rdi), %ymm0, %ymm151832; AVX2-FP-NEXT: vmovdqa %ymm7, %ymm11833; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm15 = ymm7[0,1,2,3,4,5,6],ymm15[7]1834; AVX2-FP-NEXT: vpshufd {{.*#+}} ymm15 = ymm15[2,3,0,1,6,7,4,5]1835; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm14 = ymm14[0,1,2],ymm15[3,4,5,6,7]1836; AVX2-FP-NEXT: vmovdqa 288(%rdi), %ymm151837; AVX2-FP-NEXT: vpermd %ymm15, %ymm0, %ymm01838; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm14 = ymm14[0,1,2,3,4,5],ymm0[6,7]1839; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm8[0,1,2,3],ymm9[4,5],ymm8[6,7]1840; AVX2-FP-NEXT: vpalignr {{.*#+}} ymm7 = ymm4[12,13,14,15],ymm6[0,1,2,3,4,5,6,7,8,9,10,11],ymm4[28,29,30,31],ymm6[16,17,18,19,20,21,22,23,24,25,26,27]1841; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm7[0,1],ymm0[2],ymm7[3],ymm0[4],ymm7[5,6],ymm0[7]1842; AVX2-FP-NEXT: vpmovsxbd {{.*#+}} ymm7 = [0,1,6,2,7,4,0,0]1843; AVX2-FP-NEXT: vpermd %ymm0, %ymm7, %ymm21844; AVX2-FP-NEXT: vpbroadcastq {{.*#+}} ymm0 = [1,6,1,6,1,6,1,6]1845; AVX2-FP-NEXT: vpermd %ymm12, %ymm0, %ymm101846; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm13 = ymm2[0,1,2,3,4,5],ymm10[6,7]1847; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload1848; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm10 = ymm1[0,1,2,3],ymm2[4,5],ymm1[6,7]1849; AVX2-FP-NEXT: vpalignr {{.*#+}} ymm11 = ymm5[12,13,14,15],ymm3[0,1,2,3,4,5,6,7,8,9,10,11],ymm5[28,29,30,31],ymm3[16,17,18,19,20,21,22,23,24,25,26,27]1850; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm10 = ymm11[0,1],ymm10[2],ymm11[3],ymm10[4],ymm11[5,6],ymm10[7]1851; AVX2-FP-NEXT: vpermd %ymm10, %ymm7, %ymm71852; AVX2-FP-NEXT: vpermd %ymm15, %ymm0, %ymm01853; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm7[0,1,2,3,4,5],ymm0[6,7]1854; AVX2-FP-NEXT: vperm2i128 {{.*#+}} ymm7 = ymm8[0,1],ymm9[0,1]1855; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm7 = ymm7[0,1,2,3,4],ymm9[5],ymm7[6,7]1856; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm4 = ymm6[0,1,2,3],ymm4[4,5],ymm6[6,7]1857; AVX2-FP-NEXT: vpmovsxbd {{.*#+}} xmm6 = [4,1,6,0]1858; AVX2-FP-NEXT: vpermd %ymm4, %ymm6, %ymm41859; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm4 = ymm4[0,1,2],ymm7[3,4,5,6,7]1860; AVX2-FP-NEXT: vpbroadcastq {{.*#+}} ymm7 = [2,7,2,7,2,7,2,7]1861; AVX2-FP-NEXT: vpermd %ymm12, %ymm7, %ymm81862; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3,4,5],ymm8[6,7]1863; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm5[4,5],ymm3[6,7]1864; AVX2-FP-NEXT: vpermd %ymm3, %ymm6, %ymm31865; AVX2-FP-NEXT: vperm2i128 {{.*#+}} ymm5 = ymm1[0,1],ymm2[0,1]1866; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm2 = ymm5[0,1,2,3,4],ymm2[5],ymm5[6,7]1867; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm2 = ymm3[0,1,2],ymm2[3,4,5,6,7]1868; AVX2-FP-NEXT: vpermd %ymm15, %ymm7, %ymm31869; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5],ymm3[6,7]1870; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload1871; AVX2-FP-NEXT: vmovaps %ymm3, 32(%rsi)1872; AVX2-FP-NEXT: vmovups (%rsp), %ymm3 # 32-byte Reload1873; AVX2-FP-NEXT: vmovaps %ymm3, (%rsi)1874; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload1875; AVX2-FP-NEXT: vmovaps %ymm3, 32(%rdx)1876; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload1877; AVX2-FP-NEXT: vmovaps %ymm1, (%rdx)1878; AVX2-FP-NEXT: vmovdqa %ymm14, 32(%rcx)1879; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload1880; AVX2-FP-NEXT: vmovaps %ymm1, (%rcx)1881; AVX2-FP-NEXT: vmovdqa %ymm0, 32(%r8)1882; AVX2-FP-NEXT: vmovdqa %ymm13, (%r8)1883; AVX2-FP-NEXT: vmovdqa %ymm2, 32(%r9)1884; AVX2-FP-NEXT: vmovdqa %ymm4, (%r9)1885; AVX2-FP-NEXT: addq $72, %rsp1886; AVX2-FP-NEXT: vzeroupper1887; AVX2-FP-NEXT: retq1888;1889; AVX2-FCP-LABEL: load_i32_stride5_vf16:1890; AVX2-FCP: # %bb.0:1891; AVX2-FCP-NEXT: subq $72, %rsp1892; AVX2-FCP-NEXT: vmovdqa 128(%rdi), %ymm11893; AVX2-FCP-NEXT: vmovdqa (%rdi), %ymm41894; AVX2-FCP-NEXT: vmovdqa 32(%rdi), %ymm61895; AVX2-FCP-NEXT: vmovdqa 64(%rdi), %ymm81896; AVX2-FCP-NEXT: vmovdqa 96(%rdi), %ymm91897; AVX2-FCP-NEXT: vmovdqa 224(%rdi), %ymm01898; AVX2-FCP-NEXT: vmovdqa 256(%rdi), %ymm21899; AVX2-FCP-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1900; AVX2-FCP-NEXT: vmovdqa 192(%rdi), %ymm31901; AVX2-FCP-NEXT: vmovdqa 160(%rdi), %ymm51902; AVX2-FCP-NEXT: vpmovsxbd {{.*#+}} xmm10 = [0,5,2,7]1903; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm7 = ymm5[0,1],ymm3[2,3],ymm5[4,5],ymm3[6,7]1904; AVX2-FCP-NEXT: vpermd %ymm7, %ymm10, %ymm71905; AVX2-FCP-NEXT: vinserti128 $1, 288(%rdi), %ymm7, %ymm111906; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm12 = ymm2[0,1,0,3]1907; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm12 = ymm12[0,1,2,3],ymm0[4],ymm12[5,6,7]1908; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm7 = ymm7[0,1,2,3],ymm12[4,5,6,7]1909; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm7 = ymm7[0,1,2],ymm11[3],ymm7[4,5,6],ymm11[7]1910; AVX2-FCP-NEXT: vmovdqu %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1911; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm11 = ymm9[0,1,0,3]1912; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm11 = ymm11[0,1,2,3],ymm8[4],ymm11[5,6,7]1913; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm12 = ymm4[0,1],ymm6[2,3],ymm4[4,5],ymm6[6,7]1914; AVX2-FCP-NEXT: vpermd %ymm12, %ymm10, %ymm101915; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm11 = ymm10[0,1,2,3],ymm11[4,5,6,7]1916; AVX2-FCP-NEXT: vinserti128 $1, 128(%rdi), %ymm10, %ymm101917; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm7 = ymm11[0,1,2],ymm10[3],ymm11[4,5,6],ymm10[7]1918; AVX2-FCP-NEXT: vmovdqu %ymm7, (%rsp) # 32-byte Spill1919; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm11 = ymm5[0,1],ymm3[2,3],ymm5[4,5,6,7]1920; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm12 = ymm0[0,1],ymm2[2,3],ymm0[4,5],ymm2[6,7]1921; AVX2-FCP-NEXT: vmovdqa %ymm0, %ymm71922; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm11 = ymm12[0],ymm11[1],ymm12[2],ymm11[3],ymm12[4,5],ymm11[6],ymm12[7]1923; AVX2-FCP-NEXT: vpmovsxbd {{.*#+}} ymm12 = [1,6,3,0,5,2,7,0]1924; AVX2-FCP-NEXT: vpermd %ymm11, %ymm12, %ymm111925; AVX2-FCP-NEXT: vpbroadcastd 304(%rdi), %ymm131926; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm11[0,1,2,3,4,5,6],ymm13[7]1927; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1928; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm13 = ymm4[0,1],ymm6[2,3],ymm4[4,5,6,7]1929; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm14 = ymm8[0,1],ymm9[2,3],ymm8[4,5],ymm9[6,7]1930; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm13 = ymm14[0],ymm13[1],ymm14[2],ymm13[3],ymm14[4,5],ymm13[6],ymm14[7]1931; AVX2-FCP-NEXT: vpermd %ymm13, %ymm12, %ymm121932; AVX2-FCP-NEXT: vpbroadcastd 144(%rdi), %ymm131933; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm12[0,1,2,3,4,5,6],ymm13[7]1934; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1935; AVX2-FCP-NEXT: vpmovsxbd {{.*#+}} xmm14 = [2,7,4,0]1936; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm13 = ymm4[0,1,2,3],ymm6[4,5],ymm4[6,7]1937; AVX2-FCP-NEXT: vpermd %ymm13, %ymm14, %ymm131938; AVX2-FCP-NEXT: vinserti128 $1, 96(%rdi), %ymm0, %ymm151939; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm15 = ymm8[0,1,2,3,4,5,6],ymm15[7]1940; AVX2-FCP-NEXT: vpshufd {{.*#+}} ymm15 = ymm15[2,3,0,1,6,7,4,5]1941; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm13 = ymm13[0,1,2],ymm15[3,4,5,6,7]1942; AVX2-FCP-NEXT: vpbroadcastq {{.*#+}} ymm0 = [0,5,0,5,0,5,0,5]1943; AVX2-FCP-NEXT: vmovdqa %ymm1, %ymm121944; AVX2-FCP-NEXT: vpermd %ymm1, %ymm0, %ymm151945; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm13[0,1,2,3,4,5],ymm15[6,7]1946; AVX2-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1947; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm15 = ymm5[0,1,2,3],ymm3[4,5],ymm5[6,7]1948; AVX2-FCP-NEXT: vpermd %ymm15, %ymm14, %ymm141949; AVX2-FCP-NEXT: vinserti128 $1, 256(%rdi), %ymm0, %ymm151950; AVX2-FCP-NEXT: vmovdqa %ymm7, %ymm11951; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm15 = ymm7[0,1,2,3,4,5,6],ymm15[7]1952; AVX2-FCP-NEXT: vpshufd {{.*#+}} ymm15 = ymm15[2,3,0,1,6,7,4,5]1953; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm14 = ymm14[0,1,2],ymm15[3,4,5,6,7]1954; AVX2-FCP-NEXT: vmovdqa 288(%rdi), %ymm151955; AVX2-FCP-NEXT: vpermd %ymm15, %ymm0, %ymm01956; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm14 = ymm14[0,1,2,3,4,5],ymm0[6,7]1957; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm8[0,1,2,3],ymm9[4,5],ymm8[6,7]1958; AVX2-FCP-NEXT: vpalignr {{.*#+}} ymm7 = ymm4[12,13,14,15],ymm6[0,1,2,3,4,5,6,7,8,9,10,11],ymm4[28,29,30,31],ymm6[16,17,18,19,20,21,22,23,24,25,26,27]1959; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm7[0,1],ymm0[2],ymm7[3],ymm0[4],ymm7[5,6],ymm0[7]1960; AVX2-FCP-NEXT: vpmovsxbd {{.*#+}} ymm7 = [0,1,6,2,7,4,0,0]1961; AVX2-FCP-NEXT: vpermd %ymm0, %ymm7, %ymm21962; AVX2-FCP-NEXT: vpbroadcastq {{.*#+}} ymm0 = [1,6,1,6,1,6,1,6]1963; AVX2-FCP-NEXT: vpermd %ymm12, %ymm0, %ymm101964; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm13 = ymm2[0,1,2,3,4,5],ymm10[6,7]1965; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload1966; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm10 = ymm1[0,1,2,3],ymm2[4,5],ymm1[6,7]1967; AVX2-FCP-NEXT: vpalignr {{.*#+}} ymm11 = ymm5[12,13,14,15],ymm3[0,1,2,3,4,5,6,7,8,9,10,11],ymm5[28,29,30,31],ymm3[16,17,18,19,20,21,22,23,24,25,26,27]1968; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm10 = ymm11[0,1],ymm10[2],ymm11[3],ymm10[4],ymm11[5,6],ymm10[7]1969; AVX2-FCP-NEXT: vpermd %ymm10, %ymm7, %ymm71970; AVX2-FCP-NEXT: vpermd %ymm15, %ymm0, %ymm01971; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm7[0,1,2,3,4,5],ymm0[6,7]1972; AVX2-FCP-NEXT: vperm2i128 {{.*#+}} ymm7 = ymm8[0,1],ymm9[0,1]1973; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm7 = ymm7[0,1,2,3,4],ymm9[5],ymm7[6,7]1974; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm4 = ymm6[0,1,2,3],ymm4[4,5],ymm6[6,7]1975; AVX2-FCP-NEXT: vpmovsxbd {{.*#+}} xmm6 = [4,1,6,0]1976; AVX2-FCP-NEXT: vpermd %ymm4, %ymm6, %ymm41977; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm4 = ymm4[0,1,2],ymm7[3,4,5,6,7]1978; AVX2-FCP-NEXT: vpbroadcastq {{.*#+}} ymm7 = [2,7,2,7,2,7,2,7]1979; AVX2-FCP-NEXT: vpermd %ymm12, %ymm7, %ymm81980; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3,4,5],ymm8[6,7]1981; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm5[4,5],ymm3[6,7]1982; AVX2-FCP-NEXT: vpermd %ymm3, %ymm6, %ymm31983; AVX2-FCP-NEXT: vperm2i128 {{.*#+}} ymm5 = ymm1[0,1],ymm2[0,1]1984; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm5[0,1,2,3,4],ymm2[5],ymm5[6,7]1985; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm3[0,1,2],ymm2[3,4,5,6,7]1986; AVX2-FCP-NEXT: vpermd %ymm15, %ymm7, %ymm31987; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5],ymm3[6,7]1988; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload1989; AVX2-FCP-NEXT: vmovaps %ymm3, 32(%rsi)1990; AVX2-FCP-NEXT: vmovups (%rsp), %ymm3 # 32-byte Reload1991; AVX2-FCP-NEXT: vmovaps %ymm3, (%rsi)1992; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload1993; AVX2-FCP-NEXT: vmovaps %ymm3, 32(%rdx)1994; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload1995; AVX2-FCP-NEXT: vmovaps %ymm1, (%rdx)1996; AVX2-FCP-NEXT: vmovdqa %ymm14, 32(%rcx)1997; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload1998; AVX2-FCP-NEXT: vmovaps %ymm1, (%rcx)1999; AVX2-FCP-NEXT: vmovdqa %ymm0, 32(%r8)2000; AVX2-FCP-NEXT: vmovdqa %ymm13, (%r8)2001; AVX2-FCP-NEXT: vmovdqa %ymm2, 32(%r9)2002; AVX2-FCP-NEXT: vmovdqa %ymm4, (%r9)2003; AVX2-FCP-NEXT: addq $72, %rsp2004; AVX2-FCP-NEXT: vzeroupper2005; AVX2-FCP-NEXT: retq2006;2007; AVX512-LABEL: load_i32_stride5_vf16:2008; AVX512: # %bb.0:2009; AVX512-NEXT: vmovdqa64 256(%rdi), %zmm02010; AVX512-NEXT: vmovdqa64 (%rdi), %zmm12011; AVX512-NEXT: vmovdqa64 64(%rdi), %zmm22012; AVX512-NEXT: vmovdqa64 128(%rdi), %zmm32013; AVX512-NEXT: vmovdqa64 192(%rdi), %zmm42014; AVX512-NEXT: vbroadcasti64x4 {{.*#+}} zmm5 = [8,13,18,23,28,0,0,3,8,13,18,23,28,0,0,3]2015; AVX512-NEXT: # zmm5 = mem[0,1,2,3,0,1,2,3]2016; AVX512-NEXT: vpermi2d %zmm4, %zmm3, %zmm52017; AVX512-NEXT: vpmovsxbd {{.*#+}} ymm6 = [0,5,10,15,20,25,30,0]2018; AVX512-NEXT: vpermi2d %zmm2, %zmm1, %zmm62019; AVX512-NEXT: movw $8064, %ax # imm = 0x1F802020; AVX512-NEXT: kmovw %eax, %k12021; AVX512-NEXT: vmovdqa32 %zmm5, %zmm6 {%k1}2022; AVX512-NEXT: vpmovsxbd {{.*#+}} zmm5 = [0,1,2,3,4,5,6,7,8,9,10,11,12,17,22,27]2023; AVX512-NEXT: vpermi2d %zmm0, %zmm6, %zmm52024; AVX512-NEXT: vbroadcasti64x4 {{.*#+}} zmm6 = [9,14,19,24,29,0,0,4,9,14,19,24,29,0,0,4]2025; AVX512-NEXT: # zmm6 = mem[0,1,2,3,0,1,2,3]2026; AVX512-NEXT: vpermi2d %zmm4, %zmm3, %zmm62027; AVX512-NEXT: vpmovsxbd {{.*#+}} ymm7 = [17,22,27,0,5,10,15,0]2028; AVX512-NEXT: vpermi2d %zmm1, %zmm2, %zmm72029; AVX512-NEXT: vmovdqa32 %zmm6, %zmm7 {%k1}2030; AVX512-NEXT: vpmovsxbd {{.*#+}} zmm6 = [0,1,2,3,4,5,6,7,8,9,10,11,12,18,23,28]2031; AVX512-NEXT: vpermi2d %zmm0, %zmm7, %zmm62032; AVX512-NEXT: vpmovsxbd {{.*#+}} ymm7 = [2,7,12,17,22,27,0,0]2033; AVX512-NEXT: vpermi2d %zmm2, %zmm1, %zmm72034; AVX512-NEXT: vbroadcasti64x4 {{.*#+}} zmm8 = [10,15,20,25,30,0,0,5,10,15,20,25,30,0,0,5]2035; AVX512-NEXT: # zmm8 = mem[0,1,2,3,0,1,2,3]2036; AVX512-NEXT: vpermi2d %zmm4, %zmm3, %zmm82037; AVX512-NEXT: movb $7, %al2038; AVX512-NEXT: kmovw %eax, %k12039; AVX512-NEXT: vmovdqa64 %zmm7, %zmm8 {%k1}2040; AVX512-NEXT: vpmovsxbd {{.*#+}} zmm7 = [0,1,2,3,4,5,6,7,8,9,10,11,12,19,24,29]2041; AVX512-NEXT: vpermi2d %zmm0, %zmm8, %zmm72042; AVX512-NEXT: vpmovsxbd {{.*#+}} ymm8 = [3,8,13,18,23,28,0,0]2043; AVX512-NEXT: vpermi2d %zmm2, %zmm1, %zmm82044; AVX512-NEXT: vbroadcasti64x4 {{.*#+}} zmm9 = [27,0,5,10,15,0,17,22,27,0,5,10,15,0,17,22]2045; AVX512-NEXT: # zmm9 = mem[0,1,2,3,0,1,2,3]2046; AVX512-NEXT: vpermi2d %zmm3, %zmm4, %zmm92047; AVX512-NEXT: vmovdqa64 %zmm8, %zmm9 {%k1}2048; AVX512-NEXT: vpmovsxbd {{.*#+}} zmm8 = [0,1,2,3,4,5,6,7,8,9,10,11,12,20,25,30]2049; AVX512-NEXT: vpermi2d %zmm0, %zmm9, %zmm82050; AVX512-NEXT: vbroadcasti64x4 {{.*#+}} zmm9 = [12,17,22,27,0,0,2,7,12,17,22,27,0,0,2,7]2051; AVX512-NEXT: # zmm9 = mem[0,1,2,3,0,1,2,3]2052; AVX512-NEXT: vpermi2d %zmm4, %zmm3, %zmm92053; AVX512-NEXT: vpmovsxbd {{.*#+}} ymm3 = [4,9,14,19,24,29,0,0]2054; AVX512-NEXT: vpermi2d %zmm2, %zmm1, %zmm32055; AVX512-NEXT: movb $56, %al2056; AVX512-NEXT: kmovw %eax, %k12057; AVX512-NEXT: vmovdqa64 %zmm9, %zmm3 {%k1}2058; AVX512-NEXT: vpmovsxbd {{.*#+}} zmm1 = [0,1,2,3,4,5,6,7,8,9,10,11,16,21,26,31]2059; AVX512-NEXT: vpermi2d %zmm0, %zmm3, %zmm12060; AVX512-NEXT: vmovdqa64 %zmm5, (%rsi)2061; AVX512-NEXT: vmovdqa64 %zmm6, (%rdx)2062; AVX512-NEXT: vmovdqa64 %zmm7, (%rcx)2063; AVX512-NEXT: vmovdqa64 %zmm8, (%r8)2064; AVX512-NEXT: vmovdqa64 %zmm1, (%r9)2065; AVX512-NEXT: vzeroupper2066; AVX512-NEXT: retq2067;2068; AVX512-FCP-LABEL: load_i32_stride5_vf16:2069; AVX512-FCP: # %bb.0:2070; AVX512-FCP-NEXT: vmovdqa64 256(%rdi), %zmm02071; AVX512-FCP-NEXT: vmovdqa64 (%rdi), %zmm12072; AVX512-FCP-NEXT: vmovdqa64 64(%rdi), %zmm22073; AVX512-FCP-NEXT: vmovdqa64 128(%rdi), %zmm32074; AVX512-FCP-NEXT: vmovdqa64 192(%rdi), %zmm42075; AVX512-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm5 = [8,13,18,23,28,0,0,3,8,13,18,23,28,0,0,3]2076; AVX512-FCP-NEXT: # zmm5 = mem[0,1,2,3,0,1,2,3]2077; AVX512-FCP-NEXT: vpermi2d %zmm4, %zmm3, %zmm52078; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} ymm6 = [0,5,10,15,20,25,30,0]2079; AVX512-FCP-NEXT: vpermi2d %zmm2, %zmm1, %zmm62080; AVX512-FCP-NEXT: movw $8064, %ax # imm = 0x1F802081; AVX512-FCP-NEXT: kmovw %eax, %k12082; AVX512-FCP-NEXT: vmovdqa32 %zmm5, %zmm6 {%k1}2083; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} zmm5 = [0,1,2,3,4,5,6,7,8,9,10,11,12,17,22,27]2084; AVX512-FCP-NEXT: vpermi2d %zmm0, %zmm6, %zmm52085; AVX512-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm6 = [9,14,19,24,29,0,0,4,9,14,19,24,29,0,0,4]2086; AVX512-FCP-NEXT: # zmm6 = mem[0,1,2,3,0,1,2,3]2087; AVX512-FCP-NEXT: vpermi2d %zmm4, %zmm3, %zmm62088; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} ymm7 = [17,22,27,0,5,10,15,0]2089; AVX512-FCP-NEXT: vpermi2d %zmm1, %zmm2, %zmm72090; AVX512-FCP-NEXT: vmovdqa32 %zmm6, %zmm7 {%k1}2091; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} zmm6 = [0,1,2,3,4,5,6,7,8,9,10,11,12,18,23,28]2092; AVX512-FCP-NEXT: vpermi2d %zmm0, %zmm7, %zmm62093; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} ymm7 = [2,7,12,17,22,27,0,0]2094; AVX512-FCP-NEXT: vpermi2d %zmm2, %zmm1, %zmm72095; AVX512-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm8 = [10,15,20,25,30,0,0,5,10,15,20,25,30,0,0,5]2096; AVX512-FCP-NEXT: # zmm8 = mem[0,1,2,3,0,1,2,3]2097; AVX512-FCP-NEXT: vpermi2d %zmm4, %zmm3, %zmm82098; AVX512-FCP-NEXT: movb $7, %al2099; AVX512-FCP-NEXT: kmovw %eax, %k12100; AVX512-FCP-NEXT: vmovdqa64 %zmm7, %zmm8 {%k1}2101; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} zmm7 = [0,1,2,3,4,5,6,7,8,9,10,11,12,19,24,29]2102; AVX512-FCP-NEXT: vpermi2d %zmm0, %zmm8, %zmm72103; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} ymm8 = [3,8,13,18,23,28,0,0]2104; AVX512-FCP-NEXT: vpermi2d %zmm2, %zmm1, %zmm82105; AVX512-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm9 = [27,0,5,10,15,0,17,22,27,0,5,10,15,0,17,22]2106; AVX512-FCP-NEXT: # zmm9 = mem[0,1,2,3,0,1,2,3]2107; AVX512-FCP-NEXT: vpermi2d %zmm3, %zmm4, %zmm92108; AVX512-FCP-NEXT: vmovdqa64 %zmm8, %zmm9 {%k1}2109; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} zmm8 = [0,1,2,3,4,5,6,7,8,9,10,11,12,20,25,30]2110; AVX512-FCP-NEXT: vpermi2d %zmm0, %zmm9, %zmm82111; AVX512-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm9 = [12,17,22,27,0,0,2,7,12,17,22,27,0,0,2,7]2112; AVX512-FCP-NEXT: # zmm9 = mem[0,1,2,3,0,1,2,3]2113; AVX512-FCP-NEXT: vpermi2d %zmm4, %zmm3, %zmm92114; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} ymm3 = [4,9,14,19,24,29,0,0]2115; AVX512-FCP-NEXT: vpermi2d %zmm2, %zmm1, %zmm32116; AVX512-FCP-NEXT: movb $56, %al2117; AVX512-FCP-NEXT: kmovw %eax, %k12118; AVX512-FCP-NEXT: vmovdqa64 %zmm9, %zmm3 {%k1}2119; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} zmm1 = [0,1,2,3,4,5,6,7,8,9,10,11,16,21,26,31]2120; AVX512-FCP-NEXT: vpermi2d %zmm0, %zmm3, %zmm12121; AVX512-FCP-NEXT: vmovdqa64 %zmm5, (%rsi)2122; AVX512-FCP-NEXT: vmovdqa64 %zmm6, (%rdx)2123; AVX512-FCP-NEXT: vmovdqa64 %zmm7, (%rcx)2124; AVX512-FCP-NEXT: vmovdqa64 %zmm8, (%r8)2125; AVX512-FCP-NEXT: vmovdqa64 %zmm1, (%r9)2126; AVX512-FCP-NEXT: vzeroupper2127; AVX512-FCP-NEXT: retq2128;2129; AVX512DQ-LABEL: load_i32_stride5_vf16:2130; AVX512DQ: # %bb.0:2131; AVX512DQ-NEXT: vmovdqa64 256(%rdi), %zmm02132; AVX512DQ-NEXT: vmovdqa64 (%rdi), %zmm12133; AVX512DQ-NEXT: vmovdqa64 64(%rdi), %zmm22134; AVX512DQ-NEXT: vmovdqa64 128(%rdi), %zmm32135; AVX512DQ-NEXT: vmovdqa64 192(%rdi), %zmm42136; AVX512DQ-NEXT: vbroadcasti64x4 {{.*#+}} zmm5 = [8,13,18,23,28,0,0,3,8,13,18,23,28,0,0,3]2137; AVX512DQ-NEXT: # zmm5 = mem[0,1,2,3,0,1,2,3]2138; AVX512DQ-NEXT: vpermi2d %zmm4, %zmm3, %zmm52139; AVX512DQ-NEXT: vpmovsxbd {{.*#+}} ymm6 = [0,5,10,15,20,25,30,0]2140; AVX512DQ-NEXT: vpermi2d %zmm2, %zmm1, %zmm62141; AVX512DQ-NEXT: movw $8064, %ax # imm = 0x1F802142; AVX512DQ-NEXT: kmovw %eax, %k12143; AVX512DQ-NEXT: vmovdqa32 %zmm5, %zmm6 {%k1}2144; AVX512DQ-NEXT: vpmovsxbd {{.*#+}} zmm5 = [0,1,2,3,4,5,6,7,8,9,10,11,12,17,22,27]2145; AVX512DQ-NEXT: vpermi2d %zmm0, %zmm6, %zmm52146; AVX512DQ-NEXT: vbroadcasti64x4 {{.*#+}} zmm6 = [9,14,19,24,29,0,0,4,9,14,19,24,29,0,0,4]2147; AVX512DQ-NEXT: # zmm6 = mem[0,1,2,3,0,1,2,3]2148; AVX512DQ-NEXT: vpermi2d %zmm4, %zmm3, %zmm62149; AVX512DQ-NEXT: vpmovsxbd {{.*#+}} ymm7 = [17,22,27,0,5,10,15,0]2150; AVX512DQ-NEXT: vpermi2d %zmm1, %zmm2, %zmm72151; AVX512DQ-NEXT: vmovdqa32 %zmm6, %zmm7 {%k1}2152; AVX512DQ-NEXT: vpmovsxbd {{.*#+}} zmm6 = [0,1,2,3,4,5,6,7,8,9,10,11,12,18,23,28]2153; AVX512DQ-NEXT: vpermi2d %zmm0, %zmm7, %zmm62154; AVX512DQ-NEXT: vpmovsxbd {{.*#+}} ymm7 = [2,7,12,17,22,27,0,0]2155; AVX512DQ-NEXT: vpermi2d %zmm2, %zmm1, %zmm72156; AVX512DQ-NEXT: vbroadcasti64x4 {{.*#+}} zmm8 = [10,15,20,25,30,0,0,5,10,15,20,25,30,0,0,5]2157; AVX512DQ-NEXT: # zmm8 = mem[0,1,2,3,0,1,2,3]2158; AVX512DQ-NEXT: vpermi2d %zmm4, %zmm3, %zmm82159; AVX512DQ-NEXT: movb $7, %al2160; AVX512DQ-NEXT: kmovw %eax, %k12161; AVX512DQ-NEXT: vmovdqa64 %zmm7, %zmm8 {%k1}2162; AVX512DQ-NEXT: vpmovsxbd {{.*#+}} zmm7 = [0,1,2,3,4,5,6,7,8,9,10,11,12,19,24,29]2163; AVX512DQ-NEXT: vpermi2d %zmm0, %zmm8, %zmm72164; AVX512DQ-NEXT: vpmovsxbd {{.*#+}} ymm8 = [3,8,13,18,23,28,0,0]2165; AVX512DQ-NEXT: vpermi2d %zmm2, %zmm1, %zmm82166; AVX512DQ-NEXT: vbroadcasti64x4 {{.*#+}} zmm9 = [27,0,5,10,15,0,17,22,27,0,5,10,15,0,17,22]2167; AVX512DQ-NEXT: # zmm9 = mem[0,1,2,3,0,1,2,3]2168; AVX512DQ-NEXT: vpermi2d %zmm3, %zmm4, %zmm92169; AVX512DQ-NEXT: vmovdqa64 %zmm8, %zmm9 {%k1}2170; AVX512DQ-NEXT: vpmovsxbd {{.*#+}} zmm8 = [0,1,2,3,4,5,6,7,8,9,10,11,12,20,25,30]2171; AVX512DQ-NEXT: vpermi2d %zmm0, %zmm9, %zmm82172; AVX512DQ-NEXT: vbroadcasti64x4 {{.*#+}} zmm9 = [12,17,22,27,0,0,2,7,12,17,22,27,0,0,2,7]2173; AVX512DQ-NEXT: # zmm9 = mem[0,1,2,3,0,1,2,3]2174; AVX512DQ-NEXT: vpermi2d %zmm4, %zmm3, %zmm92175; AVX512DQ-NEXT: vpmovsxbd {{.*#+}} ymm3 = [4,9,14,19,24,29,0,0]2176; AVX512DQ-NEXT: vpermi2d %zmm2, %zmm1, %zmm32177; AVX512DQ-NEXT: movb $56, %al2178; AVX512DQ-NEXT: kmovw %eax, %k12179; AVX512DQ-NEXT: vmovdqa64 %zmm9, %zmm3 {%k1}2180; AVX512DQ-NEXT: vpmovsxbd {{.*#+}} zmm1 = [0,1,2,3,4,5,6,7,8,9,10,11,16,21,26,31]2181; AVX512DQ-NEXT: vpermi2d %zmm0, %zmm3, %zmm12182; AVX512DQ-NEXT: vmovdqa64 %zmm5, (%rsi)2183; AVX512DQ-NEXT: vmovdqa64 %zmm6, (%rdx)2184; AVX512DQ-NEXT: vmovdqa64 %zmm7, (%rcx)2185; AVX512DQ-NEXT: vmovdqa64 %zmm8, (%r8)2186; AVX512DQ-NEXT: vmovdqa64 %zmm1, (%r9)2187; AVX512DQ-NEXT: vzeroupper2188; AVX512DQ-NEXT: retq2189;2190; AVX512DQ-FCP-LABEL: load_i32_stride5_vf16:2191; AVX512DQ-FCP: # %bb.0:2192; AVX512DQ-FCP-NEXT: vmovdqa64 256(%rdi), %zmm02193; AVX512DQ-FCP-NEXT: vmovdqa64 (%rdi), %zmm12194; AVX512DQ-FCP-NEXT: vmovdqa64 64(%rdi), %zmm22195; AVX512DQ-FCP-NEXT: vmovdqa64 128(%rdi), %zmm32196; AVX512DQ-FCP-NEXT: vmovdqa64 192(%rdi), %zmm42197; AVX512DQ-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm5 = [8,13,18,23,28,0,0,3,8,13,18,23,28,0,0,3]2198; AVX512DQ-FCP-NEXT: # zmm5 = mem[0,1,2,3,0,1,2,3]2199; AVX512DQ-FCP-NEXT: vpermi2d %zmm4, %zmm3, %zmm52200; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} ymm6 = [0,5,10,15,20,25,30,0]2201; AVX512DQ-FCP-NEXT: vpermi2d %zmm2, %zmm1, %zmm62202; AVX512DQ-FCP-NEXT: movw $8064, %ax # imm = 0x1F802203; AVX512DQ-FCP-NEXT: kmovw %eax, %k12204; AVX512DQ-FCP-NEXT: vmovdqa32 %zmm5, %zmm6 {%k1}2205; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} zmm5 = [0,1,2,3,4,5,6,7,8,9,10,11,12,17,22,27]2206; AVX512DQ-FCP-NEXT: vpermi2d %zmm0, %zmm6, %zmm52207; AVX512DQ-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm6 = [9,14,19,24,29,0,0,4,9,14,19,24,29,0,0,4]2208; AVX512DQ-FCP-NEXT: # zmm6 = mem[0,1,2,3,0,1,2,3]2209; AVX512DQ-FCP-NEXT: vpermi2d %zmm4, %zmm3, %zmm62210; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} ymm7 = [17,22,27,0,5,10,15,0]2211; AVX512DQ-FCP-NEXT: vpermi2d %zmm1, %zmm2, %zmm72212; AVX512DQ-FCP-NEXT: vmovdqa32 %zmm6, %zmm7 {%k1}2213; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} zmm6 = [0,1,2,3,4,5,6,7,8,9,10,11,12,18,23,28]2214; AVX512DQ-FCP-NEXT: vpermi2d %zmm0, %zmm7, %zmm62215; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} ymm7 = [2,7,12,17,22,27,0,0]2216; AVX512DQ-FCP-NEXT: vpermi2d %zmm2, %zmm1, %zmm72217; AVX512DQ-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm8 = [10,15,20,25,30,0,0,5,10,15,20,25,30,0,0,5]2218; AVX512DQ-FCP-NEXT: # zmm8 = mem[0,1,2,3,0,1,2,3]2219; AVX512DQ-FCP-NEXT: vpermi2d %zmm4, %zmm3, %zmm82220; AVX512DQ-FCP-NEXT: movb $7, %al2221; AVX512DQ-FCP-NEXT: kmovw %eax, %k12222; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm7, %zmm8 {%k1}2223; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} zmm7 = [0,1,2,3,4,5,6,7,8,9,10,11,12,19,24,29]2224; AVX512DQ-FCP-NEXT: vpermi2d %zmm0, %zmm8, %zmm72225; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} ymm8 = [3,8,13,18,23,28,0,0]2226; AVX512DQ-FCP-NEXT: vpermi2d %zmm2, %zmm1, %zmm82227; AVX512DQ-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm9 = [27,0,5,10,15,0,17,22,27,0,5,10,15,0,17,22]2228; AVX512DQ-FCP-NEXT: # zmm9 = mem[0,1,2,3,0,1,2,3]2229; AVX512DQ-FCP-NEXT: vpermi2d %zmm3, %zmm4, %zmm92230; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm8, %zmm9 {%k1}2231; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} zmm8 = [0,1,2,3,4,5,6,7,8,9,10,11,12,20,25,30]2232; AVX512DQ-FCP-NEXT: vpermi2d %zmm0, %zmm9, %zmm82233; AVX512DQ-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm9 = [12,17,22,27,0,0,2,7,12,17,22,27,0,0,2,7]2234; AVX512DQ-FCP-NEXT: # zmm9 = mem[0,1,2,3,0,1,2,3]2235; AVX512DQ-FCP-NEXT: vpermi2d %zmm4, %zmm3, %zmm92236; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} ymm3 = [4,9,14,19,24,29,0,0]2237; AVX512DQ-FCP-NEXT: vpermi2d %zmm2, %zmm1, %zmm32238; AVX512DQ-FCP-NEXT: movb $56, %al2239; AVX512DQ-FCP-NEXT: kmovw %eax, %k12240; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm9, %zmm3 {%k1}2241; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} zmm1 = [0,1,2,3,4,5,6,7,8,9,10,11,16,21,26,31]2242; AVX512DQ-FCP-NEXT: vpermi2d %zmm0, %zmm3, %zmm12243; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm5, (%rsi)2244; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm6, (%rdx)2245; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm7, (%rcx)2246; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm8, (%r8)2247; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm1, (%r9)2248; AVX512DQ-FCP-NEXT: vzeroupper2249; AVX512DQ-FCP-NEXT: retq2250;2251; AVX512BW-LABEL: load_i32_stride5_vf16:2252; AVX512BW: # %bb.0:2253; AVX512BW-NEXT: vmovdqa64 256(%rdi), %zmm02254; AVX512BW-NEXT: vmovdqa64 (%rdi), %zmm12255; AVX512BW-NEXT: vmovdqa64 64(%rdi), %zmm22256; AVX512BW-NEXT: vmovdqa64 128(%rdi), %zmm32257; AVX512BW-NEXT: vmovdqa64 192(%rdi), %zmm42258; AVX512BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm5 = [8,13,18,23,28,0,0,3,8,13,18,23,28,0,0,3]2259; AVX512BW-NEXT: # zmm5 = mem[0,1,2,3,0,1,2,3]2260; AVX512BW-NEXT: vpermi2d %zmm4, %zmm3, %zmm52261; AVX512BW-NEXT: vpmovsxbd {{.*#+}} ymm6 = [0,5,10,15,20,25,30,0]2262; AVX512BW-NEXT: vpermi2d %zmm2, %zmm1, %zmm62263; AVX512BW-NEXT: movw $8064, %ax # imm = 0x1F802264; AVX512BW-NEXT: kmovd %eax, %k12265; AVX512BW-NEXT: vmovdqa32 %zmm5, %zmm6 {%k1}2266; AVX512BW-NEXT: vpmovsxbd {{.*#+}} zmm5 = [0,1,2,3,4,5,6,7,8,9,10,11,12,17,22,27]2267; AVX512BW-NEXT: vpermi2d %zmm0, %zmm6, %zmm52268; AVX512BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm6 = [9,14,19,24,29,0,0,4,9,14,19,24,29,0,0,4]2269; AVX512BW-NEXT: # zmm6 = mem[0,1,2,3,0,1,2,3]2270; AVX512BW-NEXT: vpermi2d %zmm4, %zmm3, %zmm62271; AVX512BW-NEXT: vpmovsxbd {{.*#+}} ymm7 = [17,22,27,0,5,10,15,0]2272; AVX512BW-NEXT: vpermi2d %zmm1, %zmm2, %zmm72273; AVX512BW-NEXT: vmovdqa32 %zmm6, %zmm7 {%k1}2274; AVX512BW-NEXT: vpmovsxbd {{.*#+}} zmm6 = [0,1,2,3,4,5,6,7,8,9,10,11,12,18,23,28]2275; AVX512BW-NEXT: vpermi2d %zmm0, %zmm7, %zmm62276; AVX512BW-NEXT: vpmovsxbd {{.*#+}} ymm7 = [2,7,12,17,22,27,0,0]2277; AVX512BW-NEXT: vpermi2d %zmm2, %zmm1, %zmm72278; AVX512BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm8 = [10,15,20,25,30,0,0,5,10,15,20,25,30,0,0,5]2279; AVX512BW-NEXT: # zmm8 = mem[0,1,2,3,0,1,2,3]2280; AVX512BW-NEXT: vpermi2d %zmm4, %zmm3, %zmm82281; AVX512BW-NEXT: movb $7, %al2282; AVX512BW-NEXT: kmovd %eax, %k12283; AVX512BW-NEXT: vmovdqa64 %zmm7, %zmm8 {%k1}2284; AVX512BW-NEXT: vpmovsxbd {{.*#+}} zmm7 = [0,1,2,3,4,5,6,7,8,9,10,11,12,19,24,29]2285; AVX512BW-NEXT: vpermi2d %zmm0, %zmm8, %zmm72286; AVX512BW-NEXT: vpmovsxbd {{.*#+}} ymm8 = [3,8,13,18,23,28,0,0]2287; AVX512BW-NEXT: vpermi2d %zmm2, %zmm1, %zmm82288; AVX512BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm9 = [27,0,5,10,15,0,17,22,27,0,5,10,15,0,17,22]2289; AVX512BW-NEXT: # zmm9 = mem[0,1,2,3,0,1,2,3]2290; AVX512BW-NEXT: vpermi2d %zmm3, %zmm4, %zmm92291; AVX512BW-NEXT: vmovdqa64 %zmm8, %zmm9 {%k1}2292; AVX512BW-NEXT: vpmovsxbd {{.*#+}} zmm8 = [0,1,2,3,4,5,6,7,8,9,10,11,12,20,25,30]2293; AVX512BW-NEXT: vpermi2d %zmm0, %zmm9, %zmm82294; AVX512BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm9 = [12,17,22,27,0,0,2,7,12,17,22,27,0,0,2,7]2295; AVX512BW-NEXT: # zmm9 = mem[0,1,2,3,0,1,2,3]2296; AVX512BW-NEXT: vpermi2d %zmm4, %zmm3, %zmm92297; AVX512BW-NEXT: vpmovsxbd {{.*#+}} ymm3 = [4,9,14,19,24,29,0,0]2298; AVX512BW-NEXT: vpermi2d %zmm2, %zmm1, %zmm32299; AVX512BW-NEXT: movb $56, %al2300; AVX512BW-NEXT: kmovd %eax, %k12301; AVX512BW-NEXT: vmovdqa64 %zmm9, %zmm3 {%k1}2302; AVX512BW-NEXT: vpmovsxbd {{.*#+}} zmm1 = [0,1,2,3,4,5,6,7,8,9,10,11,16,21,26,31]2303; AVX512BW-NEXT: vpermi2d %zmm0, %zmm3, %zmm12304; AVX512BW-NEXT: vmovdqa64 %zmm5, (%rsi)2305; AVX512BW-NEXT: vmovdqa64 %zmm6, (%rdx)2306; AVX512BW-NEXT: vmovdqa64 %zmm7, (%rcx)2307; AVX512BW-NEXT: vmovdqa64 %zmm8, (%r8)2308; AVX512BW-NEXT: vmovdqa64 %zmm1, (%r9)2309; AVX512BW-NEXT: vzeroupper2310; AVX512BW-NEXT: retq2311;2312; AVX512BW-FCP-LABEL: load_i32_stride5_vf16:2313; AVX512BW-FCP: # %bb.0:2314; AVX512BW-FCP-NEXT: vmovdqa64 256(%rdi), %zmm02315; AVX512BW-FCP-NEXT: vmovdqa64 (%rdi), %zmm12316; AVX512BW-FCP-NEXT: vmovdqa64 64(%rdi), %zmm22317; AVX512BW-FCP-NEXT: vmovdqa64 128(%rdi), %zmm32318; AVX512BW-FCP-NEXT: vmovdqa64 192(%rdi), %zmm42319; AVX512BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm5 = [8,13,18,23,28,0,0,3,8,13,18,23,28,0,0,3]2320; AVX512BW-FCP-NEXT: # zmm5 = mem[0,1,2,3,0,1,2,3]2321; AVX512BW-FCP-NEXT: vpermi2d %zmm4, %zmm3, %zmm52322; AVX512BW-FCP-NEXT: vpmovsxbd {{.*#+}} ymm6 = [0,5,10,15,20,25,30,0]2323; AVX512BW-FCP-NEXT: vpermi2d %zmm2, %zmm1, %zmm62324; AVX512BW-FCP-NEXT: movw $8064, %ax # imm = 0x1F802325; AVX512BW-FCP-NEXT: kmovd %eax, %k12326; AVX512BW-FCP-NEXT: vmovdqa32 %zmm5, %zmm6 {%k1}2327; AVX512BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm5 = [0,1,2,3,4,5,6,7,8,9,10,11,12,17,22,27]2328; AVX512BW-FCP-NEXT: vpermi2d %zmm0, %zmm6, %zmm52329; AVX512BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm6 = [9,14,19,24,29,0,0,4,9,14,19,24,29,0,0,4]2330; AVX512BW-FCP-NEXT: # zmm6 = mem[0,1,2,3,0,1,2,3]2331; AVX512BW-FCP-NEXT: vpermi2d %zmm4, %zmm3, %zmm62332; AVX512BW-FCP-NEXT: vpmovsxbd {{.*#+}} ymm7 = [17,22,27,0,5,10,15,0]2333; AVX512BW-FCP-NEXT: vpermi2d %zmm1, %zmm2, %zmm72334; AVX512BW-FCP-NEXT: vmovdqa32 %zmm6, %zmm7 {%k1}2335; AVX512BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm6 = [0,1,2,3,4,5,6,7,8,9,10,11,12,18,23,28]2336; AVX512BW-FCP-NEXT: vpermi2d %zmm0, %zmm7, %zmm62337; AVX512BW-FCP-NEXT: vpmovsxbd {{.*#+}} ymm7 = [2,7,12,17,22,27,0,0]2338; AVX512BW-FCP-NEXT: vpermi2d %zmm2, %zmm1, %zmm72339; AVX512BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm8 = [10,15,20,25,30,0,0,5,10,15,20,25,30,0,0,5]2340; AVX512BW-FCP-NEXT: # zmm8 = mem[0,1,2,3,0,1,2,3]2341; AVX512BW-FCP-NEXT: vpermi2d %zmm4, %zmm3, %zmm82342; AVX512BW-FCP-NEXT: movb $7, %al2343; AVX512BW-FCP-NEXT: kmovd %eax, %k12344; AVX512BW-FCP-NEXT: vmovdqa64 %zmm7, %zmm8 {%k1}2345; AVX512BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm7 = [0,1,2,3,4,5,6,7,8,9,10,11,12,19,24,29]2346; AVX512BW-FCP-NEXT: vpermi2d %zmm0, %zmm8, %zmm72347; AVX512BW-FCP-NEXT: vpmovsxbd {{.*#+}} ymm8 = [3,8,13,18,23,28,0,0]2348; AVX512BW-FCP-NEXT: vpermi2d %zmm2, %zmm1, %zmm82349; AVX512BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm9 = [27,0,5,10,15,0,17,22,27,0,5,10,15,0,17,22]2350; AVX512BW-FCP-NEXT: # zmm9 = mem[0,1,2,3,0,1,2,3]2351; AVX512BW-FCP-NEXT: vpermi2d %zmm3, %zmm4, %zmm92352; AVX512BW-FCP-NEXT: vmovdqa64 %zmm8, %zmm9 {%k1}2353; AVX512BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm8 = [0,1,2,3,4,5,6,7,8,9,10,11,12,20,25,30]2354; AVX512BW-FCP-NEXT: vpermi2d %zmm0, %zmm9, %zmm82355; AVX512BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm9 = [12,17,22,27,0,0,2,7,12,17,22,27,0,0,2,7]2356; AVX512BW-FCP-NEXT: # zmm9 = mem[0,1,2,3,0,1,2,3]2357; AVX512BW-FCP-NEXT: vpermi2d %zmm4, %zmm3, %zmm92358; AVX512BW-FCP-NEXT: vpmovsxbd {{.*#+}} ymm3 = [4,9,14,19,24,29,0,0]2359; AVX512BW-FCP-NEXT: vpermi2d %zmm2, %zmm1, %zmm32360; AVX512BW-FCP-NEXT: movb $56, %al2361; AVX512BW-FCP-NEXT: kmovd %eax, %k12362; AVX512BW-FCP-NEXT: vmovdqa64 %zmm9, %zmm3 {%k1}2363; AVX512BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm1 = [0,1,2,3,4,5,6,7,8,9,10,11,16,21,26,31]2364; AVX512BW-FCP-NEXT: vpermi2d %zmm0, %zmm3, %zmm12365; AVX512BW-FCP-NEXT: vmovdqa64 %zmm5, (%rsi)2366; AVX512BW-FCP-NEXT: vmovdqa64 %zmm6, (%rdx)2367; AVX512BW-FCP-NEXT: vmovdqa64 %zmm7, (%rcx)2368; AVX512BW-FCP-NEXT: vmovdqa64 %zmm8, (%r8)2369; AVX512BW-FCP-NEXT: vmovdqa64 %zmm1, (%r9)2370; AVX512BW-FCP-NEXT: vzeroupper2371; AVX512BW-FCP-NEXT: retq2372;2373; AVX512DQ-BW-LABEL: load_i32_stride5_vf16:2374; AVX512DQ-BW: # %bb.0:2375; AVX512DQ-BW-NEXT: vmovdqa64 256(%rdi), %zmm02376; AVX512DQ-BW-NEXT: vmovdqa64 (%rdi), %zmm12377; AVX512DQ-BW-NEXT: vmovdqa64 64(%rdi), %zmm22378; AVX512DQ-BW-NEXT: vmovdqa64 128(%rdi), %zmm32379; AVX512DQ-BW-NEXT: vmovdqa64 192(%rdi), %zmm42380; AVX512DQ-BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm5 = [8,13,18,23,28,0,0,3,8,13,18,23,28,0,0,3]2381; AVX512DQ-BW-NEXT: # zmm5 = mem[0,1,2,3,0,1,2,3]2382; AVX512DQ-BW-NEXT: vpermi2d %zmm4, %zmm3, %zmm52383; AVX512DQ-BW-NEXT: vpmovsxbd {{.*#+}} ymm6 = [0,5,10,15,20,25,30,0]2384; AVX512DQ-BW-NEXT: vpermi2d %zmm2, %zmm1, %zmm62385; AVX512DQ-BW-NEXT: movw $8064, %ax # imm = 0x1F802386; AVX512DQ-BW-NEXT: kmovd %eax, %k12387; AVX512DQ-BW-NEXT: vmovdqa32 %zmm5, %zmm6 {%k1}2388; AVX512DQ-BW-NEXT: vpmovsxbd {{.*#+}} zmm5 = [0,1,2,3,4,5,6,7,8,9,10,11,12,17,22,27]2389; AVX512DQ-BW-NEXT: vpermi2d %zmm0, %zmm6, %zmm52390; AVX512DQ-BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm6 = [9,14,19,24,29,0,0,4,9,14,19,24,29,0,0,4]2391; AVX512DQ-BW-NEXT: # zmm6 = mem[0,1,2,3,0,1,2,3]2392; AVX512DQ-BW-NEXT: vpermi2d %zmm4, %zmm3, %zmm62393; AVX512DQ-BW-NEXT: vpmovsxbd {{.*#+}} ymm7 = [17,22,27,0,5,10,15,0]2394; AVX512DQ-BW-NEXT: vpermi2d %zmm1, %zmm2, %zmm72395; AVX512DQ-BW-NEXT: vmovdqa32 %zmm6, %zmm7 {%k1}2396; AVX512DQ-BW-NEXT: vpmovsxbd {{.*#+}} zmm6 = [0,1,2,3,4,5,6,7,8,9,10,11,12,18,23,28]2397; AVX512DQ-BW-NEXT: vpermi2d %zmm0, %zmm7, %zmm62398; AVX512DQ-BW-NEXT: vpmovsxbd {{.*#+}} ymm7 = [2,7,12,17,22,27,0,0]2399; AVX512DQ-BW-NEXT: vpermi2d %zmm2, %zmm1, %zmm72400; AVX512DQ-BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm8 = [10,15,20,25,30,0,0,5,10,15,20,25,30,0,0,5]2401; AVX512DQ-BW-NEXT: # zmm8 = mem[0,1,2,3,0,1,2,3]2402; AVX512DQ-BW-NEXT: vpermi2d %zmm4, %zmm3, %zmm82403; AVX512DQ-BW-NEXT: movb $7, %al2404; AVX512DQ-BW-NEXT: kmovd %eax, %k12405; AVX512DQ-BW-NEXT: vmovdqa64 %zmm7, %zmm8 {%k1}2406; AVX512DQ-BW-NEXT: vpmovsxbd {{.*#+}} zmm7 = [0,1,2,3,4,5,6,7,8,9,10,11,12,19,24,29]2407; AVX512DQ-BW-NEXT: vpermi2d %zmm0, %zmm8, %zmm72408; AVX512DQ-BW-NEXT: vpmovsxbd {{.*#+}} ymm8 = [3,8,13,18,23,28,0,0]2409; AVX512DQ-BW-NEXT: vpermi2d %zmm2, %zmm1, %zmm82410; AVX512DQ-BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm9 = [27,0,5,10,15,0,17,22,27,0,5,10,15,0,17,22]2411; AVX512DQ-BW-NEXT: # zmm9 = mem[0,1,2,3,0,1,2,3]2412; AVX512DQ-BW-NEXT: vpermi2d %zmm3, %zmm4, %zmm92413; AVX512DQ-BW-NEXT: vmovdqa64 %zmm8, %zmm9 {%k1}2414; AVX512DQ-BW-NEXT: vpmovsxbd {{.*#+}} zmm8 = [0,1,2,3,4,5,6,7,8,9,10,11,12,20,25,30]2415; AVX512DQ-BW-NEXT: vpermi2d %zmm0, %zmm9, %zmm82416; AVX512DQ-BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm9 = [12,17,22,27,0,0,2,7,12,17,22,27,0,0,2,7]2417; AVX512DQ-BW-NEXT: # zmm9 = mem[0,1,2,3,0,1,2,3]2418; AVX512DQ-BW-NEXT: vpermi2d %zmm4, %zmm3, %zmm92419; AVX512DQ-BW-NEXT: vpmovsxbd {{.*#+}} ymm3 = [4,9,14,19,24,29,0,0]2420; AVX512DQ-BW-NEXT: vpermi2d %zmm2, %zmm1, %zmm32421; AVX512DQ-BW-NEXT: movb $56, %al2422; AVX512DQ-BW-NEXT: kmovd %eax, %k12423; AVX512DQ-BW-NEXT: vmovdqa64 %zmm9, %zmm3 {%k1}2424; AVX512DQ-BW-NEXT: vpmovsxbd {{.*#+}} zmm1 = [0,1,2,3,4,5,6,7,8,9,10,11,16,21,26,31]2425; AVX512DQ-BW-NEXT: vpermi2d %zmm0, %zmm3, %zmm12426; AVX512DQ-BW-NEXT: vmovdqa64 %zmm5, (%rsi)2427; AVX512DQ-BW-NEXT: vmovdqa64 %zmm6, (%rdx)2428; AVX512DQ-BW-NEXT: vmovdqa64 %zmm7, (%rcx)2429; AVX512DQ-BW-NEXT: vmovdqa64 %zmm8, (%r8)2430; AVX512DQ-BW-NEXT: vmovdqa64 %zmm1, (%r9)2431; AVX512DQ-BW-NEXT: vzeroupper2432; AVX512DQ-BW-NEXT: retq2433;2434; AVX512DQ-BW-FCP-LABEL: load_i32_stride5_vf16:2435; AVX512DQ-BW-FCP: # %bb.0:2436; AVX512DQ-BW-FCP-NEXT: vmovdqa64 256(%rdi), %zmm02437; AVX512DQ-BW-FCP-NEXT: vmovdqa64 (%rdi), %zmm12438; AVX512DQ-BW-FCP-NEXT: vmovdqa64 64(%rdi), %zmm22439; AVX512DQ-BW-FCP-NEXT: vmovdqa64 128(%rdi), %zmm32440; AVX512DQ-BW-FCP-NEXT: vmovdqa64 192(%rdi), %zmm42441; AVX512DQ-BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm5 = [8,13,18,23,28,0,0,3,8,13,18,23,28,0,0,3]2442; AVX512DQ-BW-FCP-NEXT: # zmm5 = mem[0,1,2,3,0,1,2,3]2443; AVX512DQ-BW-FCP-NEXT: vpermi2d %zmm4, %zmm3, %zmm52444; AVX512DQ-BW-FCP-NEXT: vpmovsxbd {{.*#+}} ymm6 = [0,5,10,15,20,25,30,0]2445; AVX512DQ-BW-FCP-NEXT: vpermi2d %zmm2, %zmm1, %zmm62446; AVX512DQ-BW-FCP-NEXT: movw $8064, %ax # imm = 0x1F802447; AVX512DQ-BW-FCP-NEXT: kmovd %eax, %k12448; AVX512DQ-BW-FCP-NEXT: vmovdqa32 %zmm5, %zmm6 {%k1}2449; AVX512DQ-BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm5 = [0,1,2,3,4,5,6,7,8,9,10,11,12,17,22,27]2450; AVX512DQ-BW-FCP-NEXT: vpermi2d %zmm0, %zmm6, %zmm52451; AVX512DQ-BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm6 = [9,14,19,24,29,0,0,4,9,14,19,24,29,0,0,4]2452; AVX512DQ-BW-FCP-NEXT: # zmm6 = mem[0,1,2,3,0,1,2,3]2453; AVX512DQ-BW-FCP-NEXT: vpermi2d %zmm4, %zmm3, %zmm62454; AVX512DQ-BW-FCP-NEXT: vpmovsxbd {{.*#+}} ymm7 = [17,22,27,0,5,10,15,0]2455; AVX512DQ-BW-FCP-NEXT: vpermi2d %zmm1, %zmm2, %zmm72456; AVX512DQ-BW-FCP-NEXT: vmovdqa32 %zmm6, %zmm7 {%k1}2457; AVX512DQ-BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm6 = [0,1,2,3,4,5,6,7,8,9,10,11,12,18,23,28]2458; AVX512DQ-BW-FCP-NEXT: vpermi2d %zmm0, %zmm7, %zmm62459; AVX512DQ-BW-FCP-NEXT: vpmovsxbd {{.*#+}} ymm7 = [2,7,12,17,22,27,0,0]2460; AVX512DQ-BW-FCP-NEXT: vpermi2d %zmm2, %zmm1, %zmm72461; AVX512DQ-BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm8 = [10,15,20,25,30,0,0,5,10,15,20,25,30,0,0,5]2462; AVX512DQ-BW-FCP-NEXT: # zmm8 = mem[0,1,2,3,0,1,2,3]2463; AVX512DQ-BW-FCP-NEXT: vpermi2d %zmm4, %zmm3, %zmm82464; AVX512DQ-BW-FCP-NEXT: movb $7, %al2465; AVX512DQ-BW-FCP-NEXT: kmovd %eax, %k12466; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm7, %zmm8 {%k1}2467; AVX512DQ-BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm7 = [0,1,2,3,4,5,6,7,8,9,10,11,12,19,24,29]2468; AVX512DQ-BW-FCP-NEXT: vpermi2d %zmm0, %zmm8, %zmm72469; AVX512DQ-BW-FCP-NEXT: vpmovsxbd {{.*#+}} ymm8 = [3,8,13,18,23,28,0,0]2470; AVX512DQ-BW-FCP-NEXT: vpermi2d %zmm2, %zmm1, %zmm82471; AVX512DQ-BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm9 = [27,0,5,10,15,0,17,22,27,0,5,10,15,0,17,22]2472; AVX512DQ-BW-FCP-NEXT: # zmm9 = mem[0,1,2,3,0,1,2,3]2473; AVX512DQ-BW-FCP-NEXT: vpermi2d %zmm3, %zmm4, %zmm92474; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm8, %zmm9 {%k1}2475; AVX512DQ-BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm8 = [0,1,2,3,4,5,6,7,8,9,10,11,12,20,25,30]2476; AVX512DQ-BW-FCP-NEXT: vpermi2d %zmm0, %zmm9, %zmm82477; AVX512DQ-BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm9 = [12,17,22,27,0,0,2,7,12,17,22,27,0,0,2,7]2478; AVX512DQ-BW-FCP-NEXT: # zmm9 = mem[0,1,2,3,0,1,2,3]2479; AVX512DQ-BW-FCP-NEXT: vpermi2d %zmm4, %zmm3, %zmm92480; AVX512DQ-BW-FCP-NEXT: vpmovsxbd {{.*#+}} ymm3 = [4,9,14,19,24,29,0,0]2481; AVX512DQ-BW-FCP-NEXT: vpermi2d %zmm2, %zmm1, %zmm32482; AVX512DQ-BW-FCP-NEXT: movb $56, %al2483; AVX512DQ-BW-FCP-NEXT: kmovd %eax, %k12484; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm9, %zmm3 {%k1}2485; AVX512DQ-BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm1 = [0,1,2,3,4,5,6,7,8,9,10,11,16,21,26,31]2486; AVX512DQ-BW-FCP-NEXT: vpermi2d %zmm0, %zmm3, %zmm12487; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm5, (%rsi)2488; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm6, (%rdx)2489; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm7, (%rcx)2490; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm8, (%r8)2491; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm1, (%r9)2492; AVX512DQ-BW-FCP-NEXT: vzeroupper2493; AVX512DQ-BW-FCP-NEXT: retq2494 %wide.vec = load <80 x i32>, ptr %in.vec, align 642495 %strided.vec0 = shufflevector <80 x i32> %wide.vec, <80 x i32> poison, <16 x i32> <i32 0, i32 5, i32 10, i32 15, i32 20, i32 25, i32 30, i32 35, i32 40, i32 45, i32 50, i32 55, i32 60, i32 65, i32 70, i32 75>2496 %strided.vec1 = shufflevector <80 x i32> %wide.vec, <80 x i32> poison, <16 x i32> <i32 1, i32 6, i32 11, i32 16, i32 21, i32 26, i32 31, i32 36, i32 41, i32 46, i32 51, i32 56, i32 61, i32 66, i32 71, i32 76>2497 %strided.vec2 = shufflevector <80 x i32> %wide.vec, <80 x i32> poison, <16 x i32> <i32 2, i32 7, i32 12, i32 17, i32 22, i32 27, i32 32, i32 37, i32 42, i32 47, i32 52, i32 57, i32 62, i32 67, i32 72, i32 77>2498 %strided.vec3 = shufflevector <80 x i32> %wide.vec, <80 x i32> poison, <16 x i32> <i32 3, i32 8, i32 13, i32 18, i32 23, i32 28, i32 33, i32 38, i32 43, i32 48, i32 53, i32 58, i32 63, i32 68, i32 73, i32 78>2499 %strided.vec4 = shufflevector <80 x i32> %wide.vec, <80 x i32> poison, <16 x i32> <i32 4, i32 9, i32 14, i32 19, i32 24, i32 29, i32 34, i32 39, i32 44, i32 49, i32 54, i32 59, i32 64, i32 69, i32 74, i32 79>2500 store <16 x i32> %strided.vec0, ptr %out.vec0, align 642501 store <16 x i32> %strided.vec1, ptr %out.vec1, align 642502 store <16 x i32> %strided.vec2, ptr %out.vec2, align 642503 store <16 x i32> %strided.vec3, ptr %out.vec3, align 642504 store <16 x i32> %strided.vec4, ptr %out.vec4, align 642505 ret void2506}2507 2508define void @load_i32_stride5_vf32(ptr %in.vec, ptr %out.vec0, ptr %out.vec1, ptr %out.vec2, ptr %out.vec3, ptr %out.vec4) nounwind {2509; SSE-LABEL: load_i32_stride5_vf32:2510; SSE: # %bb.0:2511; SSE-NEXT: subq $904, %rsp # imm = 0x3882512; SSE-NEXT: movdqa (%rdi), %xmm112513; SSE-NEXT: movdqa 16(%rdi), %xmm52514; SSE-NEXT: movdqa %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2515; SSE-NEXT: movdqa 32(%rdi), %xmm92516; SSE-NEXT: movdqa %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2517; SSE-NEXT: movdqa 48(%rdi), %xmm82518; SSE-NEXT: movdqa %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2519; SSE-NEXT: movdqa 448(%rdi), %xmm32520; SSE-NEXT: movdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2521; SSE-NEXT: movdqa 432(%rdi), %xmm42522; SSE-NEXT: movdqa 400(%rdi), %xmm102523; SSE-NEXT: movdqa 416(%rdi), %xmm142524; SSE-NEXT: movdqa 128(%rdi), %xmm62525; SSE-NEXT: movdqa %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2526; SSE-NEXT: movdqa 112(%rdi), %xmm72527; SSE-NEXT: movdqa 80(%rdi), %xmm122528; SSE-NEXT: movdqa 96(%rdi), %xmm152529; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm15[1,1,1,1]2530; SSE-NEXT: movdqa %xmm12, %xmm12531; SSE-NEXT: movdqa %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2532; SSE-NEXT: punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]2533; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm7[2,2,2,2]2534; SSE-NEXT: movdqa %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2535; SSE-NEXT: punpckhdq {{.*#+}} xmm0 = xmm0[2],xmm6[2],xmm0[3],xmm6[3]2536; SSE-NEXT: movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]2537; SSE-NEXT: movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2538; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm14[1,1,1,1]2539; SSE-NEXT: movdqa %xmm10, %xmm12540; SSE-NEXT: movdqa %xmm10, %xmm62541; SSE-NEXT: punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]2542; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm4[2,2,2,2]2543; SSE-NEXT: movdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2544; SSE-NEXT: punpckhdq {{.*#+}} xmm0 = xmm0[2],xmm3[2],xmm0[3],xmm3[3]2545; SSE-NEXT: movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]2546; SSE-NEXT: movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2547; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm5[1,1,1,1]2548; SSE-NEXT: movdqa %xmm11, %xmm12549; SSE-NEXT: movdqa %xmm11, %xmm52550; SSE-NEXT: punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]2551; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm9[2,2,2,2]2552; SSE-NEXT: punpckhdq {{.*#+}} xmm0 = xmm0[2],xmm8[2],xmm0[3],xmm8[3]2553; SSE-NEXT: movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]2554; SSE-NEXT: movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2555; SSE-NEXT: movdqa 320(%rdi), %xmm12556; SSE-NEXT: movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2557; SSE-NEXT: movdqa 336(%rdi), %xmm92558; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm9[1,1,1,1]2559; SSE-NEXT: movdqa %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2560; SSE-NEXT: punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]2561; SSE-NEXT: movdqa 368(%rdi), %xmm22562; SSE-NEXT: movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2563; SSE-NEXT: movdqa 352(%rdi), %xmm112564; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm11[2,2,2,2]2565; SSE-NEXT: movdqa %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2566; SSE-NEXT: punpckhdq {{.*#+}} xmm0 = xmm0[2],xmm2[2],xmm0[3],xmm2[3]2567; SSE-NEXT: movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]2568; SSE-NEXT: movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2569; SSE-NEXT: movdqa 240(%rdi), %xmm12570; SSE-NEXT: movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2571; SSE-NEXT: movdqa 256(%rdi), %xmm02572; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2573; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[1,1,1,1]2574; SSE-NEXT: punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]2575; SSE-NEXT: movdqa 288(%rdi), %xmm22576; SSE-NEXT: movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2577; SSE-NEXT: movdqa 272(%rdi), %xmm02578; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2579; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[2,2,2,2]2580; SSE-NEXT: punpckhdq {{.*#+}} xmm0 = xmm0[2],xmm2[2],xmm0[3],xmm2[3]2581; SSE-NEXT: movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]2582; SSE-NEXT: movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2583; SSE-NEXT: movdqa 560(%rdi), %xmm12584; SSE-NEXT: movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2585; SSE-NEXT: movdqa 576(%rdi), %xmm82586; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm8[1,1,1,1]2587; SSE-NEXT: punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]2588; SSE-NEXT: movdqa 608(%rdi), %xmm22589; SSE-NEXT: movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2590; SSE-NEXT: movdqa 592(%rdi), %xmm132591; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm13[2,2,2,2]2592; SSE-NEXT: movdqa %xmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2593; SSE-NEXT: punpckhdq {{.*#+}} xmm0 = xmm0[2],xmm2[2],xmm0[3],xmm2[3]2594; SSE-NEXT: movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]2595; SSE-NEXT: movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2596; SSE-NEXT: movdqa 160(%rdi), %xmm12597; SSE-NEXT: movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2598; SSE-NEXT: movdqa 176(%rdi), %xmm02599; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2600; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[1,1,1,1]2601; SSE-NEXT: punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]2602; SSE-NEXT: movdqa 208(%rdi), %xmm22603; SSE-NEXT: movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2604; SSE-NEXT: movdqa 192(%rdi), %xmm02605; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2606; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[2,2,2,2]2607; SSE-NEXT: punpckhdq {{.*#+}} xmm0 = xmm0[2],xmm2[2],xmm0[3],xmm2[3]2608; SSE-NEXT: movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]2609; SSE-NEXT: movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2610; SSE-NEXT: movdqa 480(%rdi), %xmm12611; SSE-NEXT: movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2612; SSE-NEXT: movdqa 496(%rdi), %xmm02613; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2614; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[1,1,1,1]2615; SSE-NEXT: punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]2616; SSE-NEXT: movdqa 528(%rdi), %xmm32617; SSE-NEXT: movdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2618; SSE-NEXT: movdqa 512(%rdi), %xmm02619; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2620; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[2,2,2,2]2621; SSE-NEXT: punpckhdq {{.*#+}} xmm0 = xmm0[2],xmm3[2],xmm0[3],xmm3[3]2622; SSE-NEXT: movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]2623; SSE-NEXT: movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2624; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm12[1,1,1,1]2625; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm15[2,3,2,3]2626; SSE-NEXT: movdqa %xmm15, %xmm102627; SSE-NEXT: movdqa %xmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2628; SSE-NEXT: punpckldq {{.*#+}} xmm2 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]2629; SSE-NEXT: movdqa 144(%rdi), %xmm02630; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2631; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm0[0,0,1,1]2632; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm7[2,3,2,3]2633; SSE-NEXT: punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]2634; SSE-NEXT: movsd {{.*#+}} xmm0 = xmm2[0],xmm0[1]2635; SSE-NEXT: movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2636; SSE-NEXT: movdqa %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2637; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm6[1,1,1,1]2638; SSE-NEXT: movdqa %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2639; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm14[2,3,2,3]2640; SSE-NEXT: punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]2641; SSE-NEXT: movdqa 464(%rdi), %xmm12642; SSE-NEXT: movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2643; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[0,0,1,1]2644; SSE-NEXT: pshufd {{.*#+}} xmm6 = xmm4[2,3,2,3]2645; SSE-NEXT: punpckldq {{.*#+}} xmm6 = xmm6[0],xmm1[0],xmm6[1],xmm1[1]2646; SSE-NEXT: movsd {{.*#+}} xmm6 = xmm0[0],xmm6[1]2647; SSE-NEXT: movapd %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2648; SSE-NEXT: movdqa %xmm5, %xmm122649; SSE-NEXT: movdqa %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2650; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm5[1,1,1,1]2651; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload2652; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm5[2,3,2,3]2653; SSE-NEXT: punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]2654; SSE-NEXT: movdqa 64(%rdi), %xmm12655; SSE-NEXT: movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2656; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[0,0,1,1]2657; SSE-NEXT: pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload2658; SSE-NEXT: # xmm4 = mem[2,3,2,3]2659; SSE-NEXT: punpckldq {{.*#+}} xmm4 = xmm4[0],xmm1[0],xmm4[1],xmm1[1]2660; SSE-NEXT: movsd {{.*#+}} xmm4 = xmm0[0],xmm4[1]2661; SSE-NEXT: movapd %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2662; SSE-NEXT: pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload2663; SSE-NEXT: # xmm0 = mem[1,1,1,1]2664; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm9[2,3,2,3]2665; SSE-NEXT: punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]2666; SSE-NEXT: movdqa 384(%rdi), %xmm12667; SSE-NEXT: movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2668; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[0,0,1,1]2669; SSE-NEXT: pshufd {{.*#+}} xmm4 = xmm11[2,3,2,3]2670; SSE-NEXT: punpckldq {{.*#+}} xmm4 = xmm4[0],xmm1[0],xmm4[1],xmm1[1]2671; SSE-NEXT: movsd {{.*#+}} xmm4 = xmm0[0],xmm4[1]2672; SSE-NEXT: movapd %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2673; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload2674; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm6[1,1,1,1]2675; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload2676; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm4[2,3,2,3]2677; SSE-NEXT: punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]2678; SSE-NEXT: movdqa 304(%rdi), %xmm142679; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm14[0,0,1,1]2680; SSE-NEXT: movdqa %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2681; SSE-NEXT: pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Folded Reload2682; SSE-NEXT: # xmm7 = mem[2,3,2,3]2683; SSE-NEXT: punpckldq {{.*#+}} xmm7 = xmm7[0],xmm1[0],xmm7[1],xmm1[1]2684; SSE-NEXT: movsd {{.*#+}} xmm7 = xmm0[0],xmm7[1]2685; SSE-NEXT: movapd %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2686; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload2687; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm15[1,1,1,1]2688; SSE-NEXT: movdqa %xmm8, %xmm112689; SSE-NEXT: movdqa %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2690; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm8[2,3,2,3]2691; SSE-NEXT: punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]2692; SSE-NEXT: movdqa 624(%rdi), %xmm12693; SSE-NEXT: movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2694; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[0,0,1,1]2695; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm13[2,3,2,3]2696; SSE-NEXT: punpckldq {{.*#+}} xmm2 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]2697; SSE-NEXT: movsd {{.*#+}} xmm2 = xmm0[0],xmm2[1]2698; SSE-NEXT: movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2699; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload2700; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm3[1,1,1,1]2701; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Reload2702; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm9[2,3,2,3]2703; SSE-NEXT: punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]2704; SSE-NEXT: movdqa 224(%rdi), %xmm12705; SSE-NEXT: movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2706; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[0,0,1,1]2707; SSE-NEXT: pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload2708; SSE-NEXT: # xmm2 = mem[2,3,2,3]2709; SSE-NEXT: punpckldq {{.*#+}} xmm2 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]2710; SSE-NEXT: movsd {{.*#+}} xmm2 = xmm0[0],xmm2[1]2711; SSE-NEXT: movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2712; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload2713; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm7[1,1,1,1]2714; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload2715; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm8[2,3,2,3]2716; SSE-NEXT: punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]2717; SSE-NEXT: movdqa 544(%rdi), %xmm12718; SSE-NEXT: movdqa %xmm1, (%rsp) # 16-byte Spill2719; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[0,0,1,1]2720; SSE-NEXT: pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload2721; SSE-NEXT: # xmm2 = mem[2,3,2,3]2722; SSE-NEXT: punpckldq {{.*#+}} xmm2 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]2723; SSE-NEXT: movsd {{.*#+}} xmm2 = xmm0[0],xmm2[1]2724; SSE-NEXT: movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2725; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2726; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm10[2,2,3,3]2727; SSE-NEXT: punpckhdq {{.*#+}} xmm0 = xmm0[2],xmm1[2],xmm0[3],xmm1[3]2728; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload2729; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm13[0,0,1,1]2730; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload2731; SSE-NEXT: punpckldq {{.*#+}} xmm1 = xmm1[0],xmm10[0],xmm1[1],xmm10[1]2732; SSE-NEXT: movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]2733; SSE-NEXT: movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2734; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm5[2,2,3,3]2735; SSE-NEXT: punpckhdq {{.*#+}} xmm12 = xmm12[2],xmm1[2],xmm12[3],xmm1[3]2736; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload2737; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm5[0,0,1,1]2738; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload2739; SSE-NEXT: punpckldq {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]2740; SSE-NEXT: movsd {{.*#+}} xmm1 = xmm12[0],xmm1[1]2741; SSE-NEXT: movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2742; SSE-NEXT: movdqa %xmm6, %xmm02743; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm4[2,2,3,3]2744; SSE-NEXT: punpckhdq {{.*#+}} xmm0 = xmm0[2],xmm1[2],xmm0[3],xmm1[3]2745; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload2746; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm6[0,0,1,1]2747; SSE-NEXT: punpckldq {{.*#+}} xmm1 = xmm1[0],xmm14[0],xmm1[1],xmm14[1]2748; SSE-NEXT: movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]2749; SSE-NEXT: movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2750; SSE-NEXT: movdqa %xmm3, %xmm02751; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm9[2,2,3,3]2752; SSE-NEXT: punpckhdq {{.*#+}} xmm0 = xmm0[2],xmm1[2],xmm0[3],xmm1[3]2753; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Reload2754; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm12[0,0,1,1]2755; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload2756; SSE-NEXT: punpckldq {{.*#+}} xmm1 = xmm1[0],xmm3[0],xmm1[1],xmm3[1]2757; SSE-NEXT: movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]2758; SSE-NEXT: movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2759; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2760; SSE-NEXT: pshufd $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload2761; SSE-NEXT: # xmm1 = mem[2,2,3,3]2762; SSE-NEXT: punpckhdq {{.*#+}} xmm0 = xmm0[2],xmm1[2],xmm0[3],xmm1[3]2763; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload2764; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm14[0,0,1,1]2765; SSE-NEXT: punpckldq {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload2766; SSE-NEXT: # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]2767; SSE-NEXT: movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]2768; SSE-NEXT: movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2769; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2770; SSE-NEXT: pshufd $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload2771; SSE-NEXT: # xmm1 = mem[2,2,3,3]2772; SSE-NEXT: punpckhdq {{.*#+}} xmm0 = xmm0[2],xmm1[2],xmm0[3],xmm1[3]2773; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Reload2774; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm9[0,0,1,1]2775; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload2776; SSE-NEXT: punpckldq {{.*#+}} xmm1 = xmm1[0],xmm4[0],xmm1[1],xmm4[1]2777; SSE-NEXT: movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]2778; SSE-NEXT: movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2779; SSE-NEXT: movdqa %xmm15, %xmm02780; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm11[2,2,3,3]2781; SSE-NEXT: punpckhdq {{.*#+}} xmm0 = xmm0[2],xmm1[2],xmm0[3],xmm1[3]2782; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload2783; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm15[0,0,1,1]2784; SSE-NEXT: punpckldq {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload2785; SSE-NEXT: # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]2786; SSE-NEXT: movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]2787; SSE-NEXT: movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2788; SSE-NEXT: movdqa %xmm7, %xmm02789; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm8[2,2,3,3]2790; SSE-NEXT: punpckhdq {{.*#+}} xmm0 = xmm0[2],xmm1[2],xmm0[3],xmm1[3]2791; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Reload2792; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm11[0,0,1,1]2793; SSE-NEXT: movdqa (%rsp), %xmm7 # 16-byte Reload2794; SSE-NEXT: punpckldq {{.*#+}} xmm1 = xmm1[0],xmm7[0],xmm1[1],xmm7[1]2795; SSE-NEXT: movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]2796; SSE-NEXT: movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2797; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm2[2,2,3,3]2798; SSE-NEXT: movdqa %xmm5, %xmm12799; SSE-NEXT: punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]2800; SSE-NEXT: pshufd $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload2801; SSE-NEXT: # xmm0 = mem[3,3,3,3]2802; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload2803; SSE-NEXT: punpckldq {{.*#+}} xmm0 = xmm0[0],xmm8[0],xmm0[1],xmm8[1]2804; SSE-NEXT: movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]2805; SSE-NEXT: movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2806; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm10[2,2,3,3]2807; SSE-NEXT: punpckldq {{.*#+}} xmm13 = xmm13[0],xmm0[0],xmm13[1],xmm0[1]2808; SSE-NEXT: pshufd $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload2809; SSE-NEXT: # xmm0 = mem[3,3,3,3]2810; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload2811; SSE-NEXT: punpckldq {{.*#+}} xmm0 = xmm0[0],xmm5[0],xmm0[1],xmm5[1]2812; SSE-NEXT: movsd {{.*#+}} xmm13 = xmm0[0],xmm13[1]2813; SSE-NEXT: movapd %xmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2814; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm3[2,2,3,3]2815; SSE-NEXT: movdqa %xmm12, %xmm12816; SSE-NEXT: punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]2817; SSE-NEXT: pshufd $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload2818; SSE-NEXT: # xmm0 = mem[3,3,3,3]2819; SSE-NEXT: punpckldq {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload2820; SSE-NEXT: # xmm0 = xmm0[0],mem[0],xmm0[1],mem[1]2821; SSE-NEXT: movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]2822; SSE-NEXT: movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2823; SSE-NEXT: pshufd $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload2824; SSE-NEXT: # xmm0 = mem[2,2,3,3]2825; SSE-NEXT: movdqa %xmm6, %xmm132826; SSE-NEXT: punpckldq {{.*#+}} xmm13 = xmm13[0],xmm0[0],xmm13[1],xmm0[1]2827; SSE-NEXT: pshufd $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload2828; SSE-NEXT: # xmm0 = mem[3,3,3,3]2829; SSE-NEXT: punpckldq {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload2830; SSE-NEXT: # xmm0 = xmm0[0],mem[0],xmm0[1],mem[1]2831; SSE-NEXT: movsd {{.*#+}} xmm13 = xmm0[0],xmm13[1]2832; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm4[2,2,3,3]2833; SSE-NEXT: movdqa %xmm9, %xmm122834; SSE-NEXT: punpckldq {{.*#+}} xmm12 = xmm12[0],xmm0[0],xmm12[1],xmm0[1]2835; SSE-NEXT: pshufd $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload2836; SSE-NEXT: # xmm0 = mem[3,3,3,3]2837; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload2838; SSE-NEXT: punpckldq {{.*#+}} xmm0 = xmm0[0],xmm3[0],xmm0[1],xmm3[1]2839; SSE-NEXT: movsd {{.*#+}} xmm12 = xmm0[0],xmm12[1]2840; SSE-NEXT: pshufd $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload2841; SSE-NEXT: # xmm0 = mem[2,2,3,3]2842; SSE-NEXT: movdqa %xmm14, %xmm102843; SSE-NEXT: punpckldq {{.*#+}} xmm10 = xmm10[0],xmm0[0],xmm10[1],xmm0[1]2844; SSE-NEXT: pshufd $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload2845; SSE-NEXT: # xmm0 = mem[3,3,3,3]2846; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload2847; SSE-NEXT: punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]2848; SSE-NEXT: movsd {{.*#+}} xmm10 = xmm0[0],xmm10[1]2849; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm7[2,2,3,3]2850; SSE-NEXT: movdqa %xmm11, %xmm92851; SSE-NEXT: punpckldq {{.*#+}} xmm9 = xmm9[0],xmm0[0],xmm9[1],xmm0[1]2852; SSE-NEXT: pshufd $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload2853; SSE-NEXT: # xmm0 = mem[3,3,3,3]2854; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload2855; SSE-NEXT: punpckldq {{.*#+}} xmm0 = xmm0[0],xmm14[0],xmm0[1],xmm14[1]2856; SSE-NEXT: movsd {{.*#+}} xmm9 = xmm0[0],xmm9[1]2857; SSE-NEXT: pshufd $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload2858; SSE-NEXT: # xmm0 = mem[2,2,3,3]2859; SSE-NEXT: movdqa %xmm15, %xmm72860; SSE-NEXT: punpckldq {{.*#+}} xmm7 = xmm7[0],xmm0[0],xmm7[1],xmm0[1]2861; SSE-NEXT: pshufd $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload2862; SSE-NEXT: # xmm0 = mem[3,3,3,3]2863; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Reload2864; SSE-NEXT: punpckldq {{.*#+}} xmm0 = xmm0[0],xmm11[0],xmm0[1],xmm11[1]2865; SSE-NEXT: movsd {{.*#+}} xmm7 = xmm0[0],xmm7[1]2866; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm8[1,1,1,1]2867; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload2868; SSE-NEXT: punpckldq {{.*#+}} xmm2 = xmm2[0],xmm0[0],xmm2[1],xmm0[1]2869; SSE-NEXT: pshufd $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Folded Reload2870; SSE-NEXT: # xmm8 = mem[2,2,2,2]2871; SSE-NEXT: punpckhdq {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Folded Reload2872; SSE-NEXT: # xmm8 = xmm8[2],mem[2],xmm8[3],mem[3]2873; SSE-NEXT: movsd {{.*#+}} xmm8 = xmm2[0],xmm8[1]2874; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm5[1,1,1,1]2875; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload2876; SSE-NEXT: punpckldq {{.*#+}} xmm2 = xmm2[0],xmm0[0],xmm2[1],xmm0[1]2877; SSE-NEXT: pshufd $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Folded Reload2878; SSE-NEXT: # xmm6 = mem[2,2,2,2]2879; SSE-NEXT: punpckhdq {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Folded Reload2880; SSE-NEXT: # xmm6 = xmm6[2],mem[2],xmm6[3],mem[3]2881; SSE-NEXT: movsd {{.*#+}} xmm6 = xmm2[0],xmm6[1]2882; SSE-NEXT: pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload2883; SSE-NEXT: # xmm0 = mem[1,1,1,1]2884; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload2885; SSE-NEXT: punpckldq {{.*#+}} xmm2 = xmm2[0],xmm0[0],xmm2[1],xmm0[1]2886; SSE-NEXT: pshufd $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Folded Reload2887; SSE-NEXT: # xmm5 = mem[2,2,2,2]2888; SSE-NEXT: punpckhdq {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Folded Reload2889; SSE-NEXT: # xmm5 = xmm5[2],mem[2],xmm5[3],mem[3]2890; SSE-NEXT: movsd {{.*#+}} xmm5 = xmm2[0],xmm5[1]2891; SSE-NEXT: pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload2892; SSE-NEXT: # xmm0 = mem[1,1,1,1]2893; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload2894; SSE-NEXT: punpckldq {{.*#+}} xmm2 = xmm2[0],xmm0[0],xmm2[1],xmm0[1]2895; SSE-NEXT: pshufd $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload2896; SSE-NEXT: # xmm4 = mem[2,2,2,2]2897; SSE-NEXT: punpckhdq {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload2898; SSE-NEXT: # xmm4 = xmm4[2],mem[2],xmm4[3],mem[3]2899; SSE-NEXT: movsd {{.*#+}} xmm4 = xmm2[0],xmm4[1]2900; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm3[1,1,1,1]2901; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload2902; SSE-NEXT: punpckldq {{.*#+}} xmm15 = xmm15[0],xmm0[0],xmm15[1],xmm0[1]2903; SSE-NEXT: pshufd $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Folded Reload2904; SSE-NEXT: # xmm3 = mem[2,2,2,2]2905; SSE-NEXT: punpckhdq {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Folded Reload2906; SSE-NEXT: # xmm3 = xmm3[2],mem[2],xmm3[3],mem[3]2907; SSE-NEXT: movsd {{.*#+}} xmm3 = xmm15[0],xmm3[1]2908; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm1[1,1,1,1]2909; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload2910; SSE-NEXT: punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]2911; SSE-NEXT: pshufd $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload2912; SSE-NEXT: # xmm2 = mem[2,2,2,2]2913; SSE-NEXT: punpckhdq {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload2914; SSE-NEXT: # xmm2 = xmm2[2],mem[2],xmm2[3],mem[3]2915; SSE-NEXT: movsd {{.*#+}} xmm2 = xmm1[0],xmm2[1]2916; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm14[1,1,1,1]2917; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload2918; SSE-NEXT: punpckldq {{.*#+}} xmm15 = xmm15[0],xmm0[0],xmm15[1],xmm0[1]2919; SSE-NEXT: pshufd $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload2920; SSE-NEXT: # xmm1 = mem[2,2,2,2]2921; SSE-NEXT: punpckhdq (%rsp), %xmm1 # 16-byte Folded Reload2922; SSE-NEXT: # xmm1 = xmm1[2],mem[2],xmm1[3],mem[3]2923; SSE-NEXT: movsd {{.*#+}} xmm1 = xmm15[0],xmm1[1]2924; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm11[1,1,1,1]2925; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload2926; SSE-NEXT: punpckldq {{.*#+}} xmm15 = xmm15[0],xmm0[0],xmm15[1],xmm0[1]2927; SSE-NEXT: pshufd $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload2928; SSE-NEXT: # xmm0 = mem[2,2,2,2]2929; SSE-NEXT: punpckhdq {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload2930; SSE-NEXT: # xmm0 = xmm0[2],mem[2],xmm0[3],mem[3]2931; SSE-NEXT: movsd {{.*#+}} xmm0 = xmm15[0],xmm0[1]2932; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload2933; SSE-NEXT: movaps %xmm15, 96(%rsi)2934; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload2935; SSE-NEXT: movaps %xmm15, 32(%rsi)2936; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload2937; SSE-NEXT: movaps %xmm15, 112(%rsi)2938; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload2939; SSE-NEXT: movaps %xmm15, 48(%rsi)2940; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload2941; SSE-NEXT: movaps %xmm15, 64(%rsi)2942; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload2943; SSE-NEXT: movaps %xmm15, (%rsi)2944; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload2945; SSE-NEXT: movaps %xmm15, 80(%rsi)2946; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload2947; SSE-NEXT: movaps %xmm15, 16(%rsi)2948; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Reload2949; SSE-NEXT: movaps %xmm11, 96(%rdx)2950; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Reload2951; SSE-NEXT: movaps %xmm11, 32(%rdx)2952; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Reload2953; SSE-NEXT: movaps %xmm11, 112(%rdx)2954; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Reload2955; SSE-NEXT: movaps %xmm11, 48(%rdx)2956; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Reload2957; SSE-NEXT: movaps %xmm11, 64(%rdx)2958; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Reload2959; SSE-NEXT: movaps %xmm11, (%rdx)2960; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload2961; SSE-NEXT: movaps %xmm15, 80(%rdx)2962; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload2963; SSE-NEXT: movaps %xmm15, 16(%rdx)2964; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Reload2965; SSE-NEXT: movaps %xmm11, 96(%rcx)2966; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Reload2967; SSE-NEXT: movaps %xmm11, 112(%rcx)2968; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Reload2969; SSE-NEXT: movaps %xmm11, 64(%rcx)2970; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Reload2971; SSE-NEXT: movaps %xmm11, 80(%rcx)2972; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Reload2973; SSE-NEXT: movaps %xmm11, 32(%rcx)2974; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Reload2975; SSE-NEXT: movaps %xmm11, 48(%rcx)2976; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Reload2977; SSE-NEXT: movaps %xmm11, (%rcx)2978; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Reload2979; SSE-NEXT: movaps %xmm11, 16(%rcx)2980; SSE-NEXT: movapd %xmm7, 112(%r8)2981; SSE-NEXT: movapd %xmm9, 96(%r8)2982; SSE-NEXT: movapd %xmm10, 80(%r8)2983; SSE-NEXT: movapd %xmm12, 64(%r8)2984; SSE-NEXT: movapd %xmm13, 48(%r8)2985; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload2986; SSE-NEXT: movaps %xmm7, 32(%r8)2987; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload2988; SSE-NEXT: movaps %xmm7, 16(%r8)2989; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload2990; SSE-NEXT: movaps %xmm7, (%r8)2991; SSE-NEXT: movapd %xmm0, 112(%r9)2992; SSE-NEXT: movapd %xmm1, 96(%r9)2993; SSE-NEXT: movapd %xmm2, 80(%r9)2994; SSE-NEXT: movapd %xmm3, 64(%r9)2995; SSE-NEXT: movapd %xmm4, 48(%r9)2996; SSE-NEXT: movapd %xmm5, 32(%r9)2997; SSE-NEXT: movapd %xmm6, 16(%r9)2998; SSE-NEXT: movapd %xmm8, (%r9)2999; SSE-NEXT: addq $904, %rsp # imm = 0x3883000; SSE-NEXT: retq3001;3002; AVX-LABEL: load_i32_stride5_vf32:3003; AVX: # %bb.0:3004; AVX-NEXT: subq $952, %rsp # imm = 0x3B83005; AVX-NEXT: vmovaps 32(%rdi), %ymm33006; AVX-NEXT: vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3007; AVX-NEXT: vmovaps 544(%rdi), %ymm143008; AVX-NEXT: vmovaps 576(%rdi), %ymm53009; AVX-NEXT: vmovaps 512(%rdi), %ymm43010; AVX-NEXT: vmovaps 480(%rdi), %ymm63011; AVX-NEXT: vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3012; AVX-NEXT: vmovaps 224(%rdi), %ymm83013; AVX-NEXT: vmovaps 256(%rdi), %ymm93014; AVX-NEXT: vmovaps 192(%rdi), %ymm73015; AVX-NEXT: vmovaps 160(%rdi), %ymm03016; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3017; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm7[2,3],ymm0[4,5],ymm7[6,7]3018; AVX-NEXT: vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3019; AVX-NEXT: vextractf128 $1, %ymm0, %xmm13020; AVX-NEXT: vblendps {{.*#+}} xmm0 = xmm0[0],xmm1[1],xmm0[2],xmm1[3]3021; AVX-NEXT: vinsertf128 $1, 288(%rdi), %ymm0, %ymm13022; AVX-NEXT: vmovaps 256(%rdi), %xmm23023; AVX-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3024; AVX-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm133025; AVX-NEXT: vblendps {{.*#+}} ymm2 = ymm13[0,1,2,3,4,5],ymm9[6,7]3026; AVX-NEXT: vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm8[4],ymm2[5,6,7]3027; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm2[4,5,6,7]3028; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3],ymm0[4,5,6],ymm1[7]3029; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3030; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm6[0,1],ymm4[2,3],ymm6[4,5],ymm4[6,7]3031; AVX-NEXT: vmovaps %ymm4, %ymm63032; AVX-NEXT: vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3033; AVX-NEXT: vextractf128 $1, %ymm0, %xmm13034; AVX-NEXT: vblendps {{.*#+}} xmm0 = xmm0[0],xmm1[1],xmm0[2],xmm1[3]3035; AVX-NEXT: vmovaps 576(%rdi), %xmm13036; AVX-NEXT: vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3037; AVX-NEXT: vinsertf128 $1, %xmm1, %ymm0, %ymm123038; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm12[0,1,2,3,4,5],ymm5[6,7]3039; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm14[4],ymm1[5,6,7]3040; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm0[0,1,2,3],ymm1[4,5,6,7]3041; AVX-NEXT: vinsertf128 $1, 608(%rdi), %ymm0, %ymm03042; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3],ymm1[4,5,6],ymm0[7]3043; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3044; AVX-NEXT: vmovaps (%rdi), %ymm153045; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm15[0,1],ymm3[2,3],ymm15[4,5],ymm3[6,7]3046; AVX-NEXT: vmovups %ymm15, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3047; AVX-NEXT: vextractf128 $1, %ymm0, %xmm13048; AVX-NEXT: vblendps {{.*#+}} xmm0 = xmm0[0],xmm1[1],xmm0[2],xmm1[3]3049; AVX-NEXT: vmovaps 64(%rdi), %ymm113050; AVX-NEXT: vmovaps 96(%rdi), %ymm33051; AVX-NEXT: vmovaps 96(%rdi), %xmm13052; AVX-NEXT: vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3053; AVX-NEXT: vinsertf128 $1, %xmm1, %ymm0, %ymm13054; AVX-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3055; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm3[6,7]3056; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm11[4],ymm1[5,6,7]3057; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm0[0,1,2,3],ymm1[4,5,6,7]3058; AVX-NEXT: vinsertf128 $1, 128(%rdi), %ymm0, %ymm03059; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3],ymm1[4,5,6],ymm0[7]3060; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3061; AVX-NEXT: vmovaps 352(%rdi), %ymm13062; AVX-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3063; AVX-NEXT: vmovaps 320(%rdi), %ymm03064; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3065; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3],ymm0[4,5],ymm1[6,7]3066; AVX-NEXT: vextractf128 $1, %ymm0, %xmm13067; AVX-NEXT: vblendps {{.*#+}} xmm0 = xmm0[0],xmm1[1],xmm0[2],xmm1[3]3068; AVX-NEXT: vmovaps 384(%rdi), %ymm103069; AVX-NEXT: vmovaps 416(%rdi), %ymm43070; AVX-NEXT: vmovaps 416(%rdi), %xmm13071; AVX-NEXT: vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3072; AVX-NEXT: vinsertf128 $1, %xmm1, %ymm0, %ymm13073; AVX-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3074; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm4[6,7]3075; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm10[4],ymm1[5,6,7]3076; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm0[0,1,2,3],ymm1[4,5,6,7]3077; AVX-NEXT: vinsertf128 $1, 448(%rdi), %ymm0, %ymm03078; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3],ymm1[4,5,6],ymm0[7]3079; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3080; AVX-NEXT: vmovups %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3081; AVX-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm9[2,3,0,1]3082; AVX-NEXT: vshufps {{.*#+}} ymm0 = ymm0[2,1],ymm8[1,3],ymm0[6,5],ymm8[5,7]3083; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm8[0,1],ymm9[2,3],ymm8[4,5],ymm9[6,7]3084; AVX-NEXT: vshufps {{.*#+}} ymm2 = ymm0[2,0],ymm1[3,0],ymm0[6,4],ymm1[7,4]3085; AVX-NEXT: vmovaps 160(%rdi), %xmm13086; AVX-NEXT: vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3087; AVX-NEXT: vmovaps 192(%rdi), %xmm03088; AVX-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3089; AVX-NEXT: vmovsd {{.*#+}} xmm1 = xmm1[0],xmm0[1]3090; AVX-NEXT: vblendps {{.*#+}} xmm1 = xmm1[0,1],mem[2],xmm1[3]3091; AVX-NEXT: vshufps {{.*#+}} xmm1 = xmm1[1,2,3,3]3092; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2],ymm2[3,4,5,6,7]3093; AVX-NEXT: vbroadcastss 304(%rdi), %ymm13094; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5,6],ymm1[7]3095; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3096; AVX-NEXT: vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3097; AVX-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm5[2,3,0,1]3098; AVX-NEXT: vshufps {{.*#+}} ymm0 = ymm0[2,1],ymm14[1,3],ymm0[6,5],ymm14[5,7]3099; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm14[0,1],ymm5[2,3],ymm14[4,5],ymm5[6,7]3100; AVX-NEXT: vshufps {{.*#+}} ymm0 = ymm0[2,0],ymm1[3,0],ymm0[6,4],ymm1[7,4]3101; AVX-NEXT: vmovaps 480(%rdi), %xmm23102; AVX-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3103; AVX-NEXT: vmovaps 512(%rdi), %xmm13104; AVX-NEXT: vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3105; AVX-NEXT: vmovsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]3106; AVX-NEXT: vblendps {{.*#+}} xmm1 = xmm1[0,1],mem[2],xmm1[3]3107; AVX-NEXT: vshufps {{.*#+}} xmm1 = xmm1[1,2,3,3]3108; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3,4,5,6,7]3109; AVX-NEXT: vbroadcastss 624(%rdi), %ymm13110; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5,6],ymm1[7]3111; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3112; AVX-NEXT: vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3113; AVX-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm3[2,3,0,1]3114; AVX-NEXT: vshufps {{.*#+}} ymm0 = ymm0[2,1],ymm11[1,3],ymm0[6,5],ymm11[5,7]3115; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm11[0,1],ymm3[2,3],ymm11[4,5],ymm3[6,7]3116; AVX-NEXT: vshufps {{.*#+}} ymm0 = ymm0[2,0],ymm1[3,0],ymm0[6,4],ymm1[7,4]3117; AVX-NEXT: vmovaps (%rdi), %xmm23118; AVX-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3119; AVX-NEXT: vmovaps 32(%rdi), %xmm13120; AVX-NEXT: vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3121; AVX-NEXT: vmovsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]3122; AVX-NEXT: vblendps {{.*#+}} xmm1 = xmm1[0,1],mem[2],xmm1[3]3123; AVX-NEXT: vshufps {{.*#+}} xmm1 = xmm1[1,2,3,3]3124; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3,4,5,6,7]3125; AVX-NEXT: vbroadcastss 144(%rdi), %ymm13126; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5,6],ymm1[7]3127; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3128; AVX-NEXT: vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3129; AVX-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm4[2,3,0,1]3130; AVX-NEXT: vshufps {{.*#+}} ymm0 = ymm0[2,1],ymm10[1,3],ymm0[6,5],ymm10[5,7]3131; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm10[0,1],ymm4[2,3],ymm10[4,5],ymm4[6,7]3132; AVX-NEXT: vshufps {{.*#+}} ymm0 = ymm0[2,0],ymm1[3,0],ymm0[6,4],ymm1[7,4]3133; AVX-NEXT: vmovaps 320(%rdi), %xmm33134; AVX-NEXT: vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3135; AVX-NEXT: vmovaps 352(%rdi), %xmm13136; AVX-NEXT: vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3137; AVX-NEXT: vmovsd {{.*#+}} xmm1 = xmm3[0],xmm1[1]3138; AVX-NEXT: vblendps {{.*#+}} xmm1 = xmm1[0,1],mem[2],xmm1[3]3139; AVX-NEXT: vshufps {{.*#+}} xmm1 = xmm1[1,2,3,3]3140; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3,4,5,6,7]3141; AVX-NEXT: vbroadcastss 464(%rdi), %ymm13142; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5,6],ymm1[7]3143; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3144; AVX-NEXT: vshufps {{.*#+}} ymm0 = ymm13[3,0],ymm8[2,0],ymm13[7,4],ymm8[6,4]3145; AVX-NEXT: vshufps {{.*#+}} ymm0 = ymm0[2,0],ymm8[2,1],ymm0[6,4],ymm8[6,5]3146; AVX-NEXT: vblendps $207, {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm1 # 32-byte Folded Reload3147; AVX-NEXT: # ymm1 = mem[0,1,2,3],ymm7[4,5],mem[6,7]3148; AVX-NEXT: vextractf128 $1, %ymm1, %xmm13149; AVX-NEXT: vblendps {{.*#+}} xmm1 = xmm1[0,1],mem[2],xmm1[3]3150; AVX-NEXT: vshufpd {{.*#+}} xmm1 = xmm1[1,0]3151; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3,4,5,6,7]3152; AVX-NEXT: vmovaps 288(%rdi), %ymm53153; AVX-NEXT: vperm2f128 {{.*#+}} ymm3 = ymm5[2,3,0,1]3154; AVX-NEXT: vshufps {{.*#+}} ymm1 = ymm5[1,0],ymm3[0,0],ymm5[5,4],ymm3[4,4]3155; AVX-NEXT: vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3156; AVX-NEXT: vshufps {{.*#+}} ymm1 = ymm1[0,1,2,0,4,5,6,4]3157; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]3158; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3159; AVX-NEXT: vshufps {{.*#+}} ymm0 = ymm12[3,0],ymm14[2,0],ymm12[7,4],ymm14[6,4]3160; AVX-NEXT: vshufps {{.*#+}} ymm0 = ymm0[2,0],ymm14[2,1],ymm0[6,4],ymm14[6,5]3161; AVX-NEXT: vblendps $207, {{[-0-9]+}}(%r{{[sb]}}p), %ymm6, %ymm1 # 32-byte Folded Reload3162; AVX-NEXT: # ymm1 = mem[0,1,2,3],ymm6[4,5],mem[6,7]3163; AVX-NEXT: vextractf128 $1, %ymm1, %xmm13164; AVX-NEXT: vblendps {{.*#+}} xmm1 = xmm1[0,1],mem[2],xmm1[3]3165; AVX-NEXT: vshufpd {{.*#+}} xmm1 = xmm1[1,0]3166; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3,4,5,6,7]3167; AVX-NEXT: vmovaps 608(%rdi), %ymm73168; AVX-NEXT: vperm2f128 {{.*#+}} ymm2 = ymm7[2,3,0,1]3169; AVX-NEXT: vshufps {{.*#+}} ymm1 = ymm7[1,0],ymm2[0,0],ymm7[5,4],ymm2[4,4]3170; AVX-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3171; AVX-NEXT: vshufps {{.*#+}} ymm1 = ymm1[0,1,2,0,4,5,6,4]3172; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]3173; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3174; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3175; AVX-NEXT: vshufps {{.*#+}} ymm0 = ymm0[3,0],ymm11[2,0],ymm0[7,4],ymm11[6,4]3176; AVX-NEXT: vshufps {{.*#+}} ymm0 = ymm0[2,0],ymm11[2,1],ymm0[6,4],ymm11[6,5]3177; AVX-NEXT: vblendps $48, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm1 # 32-byte Folded Reload3178; AVX-NEXT: # ymm1 = ymm15[0,1,2,3],mem[4,5],ymm15[6,7]3179; AVX-NEXT: vextractf128 $1, %ymm1, %xmm13180; AVX-NEXT: vblendps {{.*#+}} xmm1 = xmm1[0,1],mem[2],xmm1[3]3181; AVX-NEXT: vshufpd {{.*#+}} xmm1 = xmm1[1,0]3182; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3,4,5,6,7]3183; AVX-NEXT: vmovaps 128(%rdi), %ymm93184; AVX-NEXT: vperm2f128 {{.*#+}} ymm13 = ymm9[2,3,0,1]3185; AVX-NEXT: vshufps {{.*#+}} ymm6 = ymm9[1,0],ymm13[0,0],ymm9[5,4],ymm13[4,4]3186; AVX-NEXT: vshufps {{.*#+}} ymm6 = ymm6[0,1,2,0,4,5,6,4]3187; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm6[6,7]3188; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3189; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3190; AVX-NEXT: vshufps {{.*#+}} ymm0 = ymm0[3,0],ymm10[2,0],ymm0[7,4],ymm10[6,4]3191; AVX-NEXT: vshufps {{.*#+}} ymm0 = ymm0[2,0],ymm10[2,1],ymm0[6,4],ymm10[6,5]3192; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload3193; AVX-NEXT: vblendps $207, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm6 # 32-byte Folded Reload3194; AVX-NEXT: # ymm6 = mem[0,1,2,3],ymm1[4,5],mem[6,7]3195; AVX-NEXT: vextractf128 $1, %ymm6, %xmm63196; AVX-NEXT: vblendps {{.*#+}} xmm6 = xmm6[0,1],mem[2],xmm6[3]3197; AVX-NEXT: vshufpd {{.*#+}} xmm6 = xmm6[1,0]3198; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm6[0,1,2],ymm0[3,4,5,6,7]3199; AVX-NEXT: vmovaps 448(%rdi), %ymm63200; AVX-NEXT: vperm2f128 {{.*#+}} ymm12 = ymm6[2,3,0,1]3201; AVX-NEXT: vshufps {{.*#+}} ymm15 = ymm6[1,0],ymm12[0,0],ymm6[5,4],ymm12[4,4]3202; AVX-NEXT: vshufps {{.*#+}} ymm15 = ymm15[0,1,2,0,4,5,6,4]3203; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm15[6,7]3204; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3205; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload3206; AVX-NEXT: vblendps $3, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload3207; AVX-NEXT: # xmm0 = mem[0,1],xmm0[2,3]3208; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload3209; AVX-NEXT: vshufps {{.*#+}} ymm15 = ymm4[0,0],ymm8[3,0],ymm4[4,4],ymm8[7,4]3210; AVX-NEXT: vshufps {{.*#+}} ymm15 = ymm15[2,0],ymm8[2,2],ymm15[6,4],ymm8[6,6]3211; AVX-NEXT: vshufps {{.*#+}} xmm0 = xmm0[3,0],mem[1,3]3212; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm15[3,4,5,6,7]3213; AVX-NEXT: vshufps {{.*#+}} ymm15 = ymm5[2,0],ymm3[1,0],ymm5[6,4],ymm3[5,4]3214; AVX-NEXT: vshufps {{.*#+}} ymm15 = ymm15[0,1,2,0,4,5,6,4]3215; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm15[6,7]3216; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3217; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload3218; AVX-NEXT: vblendps $3, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload3219; AVX-NEXT: # xmm0 = mem[0,1],xmm0[2,3]3220; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload3221; AVX-NEXT: vshufps {{.*#+}} ymm15 = ymm3[0,0],ymm14[3,0],ymm3[4,4],ymm14[7,4]3222; AVX-NEXT: vshufps {{.*#+}} ymm15 = ymm15[2,0],ymm14[2,2],ymm15[6,4],ymm14[6,6]3223; AVX-NEXT: vshufps {{.*#+}} xmm0 = xmm0[3,0],mem[1,3]3224; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm15[3,4,5,6,7]3225; AVX-NEXT: vshufps {{.*#+}} ymm15 = ymm7[2,0],ymm2[1,0],ymm7[6,4],ymm2[5,4]3226; AVX-NEXT: vshufps {{.*#+}} ymm15 = ymm15[0,1,2,0,4,5,6,4]3227; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm15[6,7]3228; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3229; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload3230; AVX-NEXT: vblendps $3, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload3231; AVX-NEXT: # xmm0 = mem[0,1],xmm0[2,3]3232; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload3233; AVX-NEXT: vshufps {{.*#+}} ymm15 = ymm2[0,0],ymm11[3,0],ymm2[4,4],ymm11[7,4]3234; AVX-NEXT: vshufps {{.*#+}} ymm15 = ymm15[2,0],ymm11[2,2],ymm15[6,4],ymm11[6,6]3235; AVX-NEXT: vshufps {{.*#+}} xmm0 = xmm0[3,0],mem[1,3]3236; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm15[3,4,5,6,7]3237; AVX-NEXT: vshufps {{.*#+}} ymm15 = ymm9[2,0],ymm13[1,0],ymm9[6,4],ymm13[5,4]3238; AVX-NEXT: vshufps {{.*#+}} ymm15 = ymm15[0,1,2,0,4,5,6,4]3239; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm15[6,7]3240; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3241; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload3242; AVX-NEXT: vblendps $3, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload3243; AVX-NEXT: # xmm0 = mem[0,1],xmm0[2,3]3244; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload3245; AVX-NEXT: vshufps {{.*#+}} ymm15 = ymm1[0,0],ymm10[3,0],ymm1[4,4],ymm10[7,4]3246; AVX-NEXT: vshufps {{.*#+}} ymm15 = ymm15[2,0],ymm10[2,2],ymm15[6,4],ymm10[6,6]3247; AVX-NEXT: vshufps {{.*#+}} xmm0 = xmm0[3,0],mem[1,3]3248; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm15[3,4,5,6,7]3249; AVX-NEXT: vshufps {{.*#+}} ymm15 = ymm6[2,0],ymm12[1,0],ymm6[6,4],ymm12[5,4]3250; AVX-NEXT: vshufps {{.*#+}} ymm15 = ymm15[0,1,2,0,4,5,6,4]3251; AVX-NEXT: vblendps {{.*#+}} ymm15 = ymm0[0,1,2,3,4,5],ymm15[6,7]3252; AVX-NEXT: vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm0 # 16-byte Folded Reload3253; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm4[5],ymm0[6,7]3254; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload3255; AVX-NEXT: vblendps $48, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm8 # 32-byte Folded Reload3256; AVX-NEXT: # ymm8 = ymm4[0,1,2,3],mem[4,5],ymm4[6,7]3257; AVX-NEXT: vextractf128 $1, %ymm8, %xmm83258; AVX-NEXT: vblendps {{.*#+}} xmm8 = xmm8[0],mem[1],xmm8[2,3]3259; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm8[0,1,2],ymm0[3,4,5,6,7]3260; AVX-NEXT: vblendps $127, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5, %ymm5 # 32-byte Folded Reload3261; AVX-NEXT: # ymm5 = mem[0,1,2,3,4,5,6],ymm5[7]3262; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm5[6,7]3263; AVX-NEXT: vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm5 # 16-byte Folded Reload3264; AVX-NEXT: vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3,4],ymm3[5],ymm5[6,7]3265; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload3266; AVX-NEXT: vblendps $48, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm8 # 32-byte Folded Reload3267; AVX-NEXT: # ymm8 = ymm3[0,1,2,3],mem[4,5],ymm3[6,7]3268; AVX-NEXT: vextractf128 $1, %ymm8, %xmm83269; AVX-NEXT: vblendps {{.*#+}} xmm8 = xmm8[0],mem[1],xmm8[2,3]3270; AVX-NEXT: vblendps {{.*#+}} ymm5 = ymm8[0,1,2],ymm5[3,4,5,6,7]3271; AVX-NEXT: vblendps $127, {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm3 # 32-byte Folded Reload3272; AVX-NEXT: # ymm3 = mem[0,1,2,3,4,5,6],ymm7[7]3273; AVX-NEXT: vblendps {{.*#+}} ymm3 = ymm5[0,1,2,3,4,5],ymm3[6,7]3274; AVX-NEXT: vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm5 # 16-byte Folded Reload3275; AVX-NEXT: vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3,4],ymm2[5],ymm5[6,7]3276; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload3277; AVX-NEXT: vblendps $207, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm7 # 32-byte Folded Reload3278; AVX-NEXT: # ymm7 = mem[0,1,2,3],ymm2[4,5],mem[6,7]3279; AVX-NEXT: vextractf128 $1, %ymm7, %xmm73280; AVX-NEXT: vblendps {{.*#+}} xmm7 = xmm7[0],mem[1],xmm7[2,3]3281; AVX-NEXT: vblendps {{.*#+}} ymm5 = ymm7[0,1,2],ymm5[3,4,5,6,7]3282; AVX-NEXT: vblendps {{.*#+}} ymm2 = ymm13[0,1,2,3,4,5,6],ymm9[7]3283; AVX-NEXT: vblendps {{.*#+}} ymm2 = ymm5[0,1,2,3,4,5],ymm2[6,7]3284; AVX-NEXT: vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm10, %ymm4 # 16-byte Folded Reload3285; AVX-NEXT: vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3,4],ymm1[5],ymm4[6,7]3286; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload3287; AVX-NEXT: vblendps $48, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5, %ymm5 # 32-byte Folded Reload3288; AVX-NEXT: # ymm5 = ymm5[0,1,2,3],mem[4,5],ymm5[6,7]3289; AVX-NEXT: vextractf128 $1, %ymm5, %xmm53290; AVX-NEXT: vblendps {{.*#+}} xmm5 = xmm5[0],mem[1],xmm5[2,3]3291; AVX-NEXT: vblendps {{.*#+}} ymm4 = ymm5[0,1,2],ymm4[3,4,5,6,7]3292; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm12[0,1,2,3,4,5,6],ymm6[7]3293; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm4[0,1,2,3,4,5],ymm1[6,7]3294; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload3295; AVX-NEXT: vmovaps %ymm4, 64(%rsi)3296; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload3297; AVX-NEXT: vmovaps %ymm4, (%rsi)3298; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload3299; AVX-NEXT: vmovaps %ymm4, 96(%rsi)3300; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload3301; AVX-NEXT: vmovaps %ymm4, 32(%rsi)3302; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload3303; AVX-NEXT: vmovaps %ymm4, 64(%rdx)3304; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload3305; AVX-NEXT: vmovaps %ymm4, (%rdx)3306; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload3307; AVX-NEXT: vmovaps %ymm4, 96(%rdx)3308; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload3309; AVX-NEXT: vmovaps %ymm4, 32(%rdx)3310; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload3311; AVX-NEXT: vmovaps %ymm4, 64(%rcx)3312; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload3313; AVX-NEXT: vmovaps %ymm4, (%rcx)3314; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload3315; AVX-NEXT: vmovaps %ymm4, 96(%rcx)3316; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload3317; AVX-NEXT: vmovaps %ymm4, 32(%rcx)3318; AVX-NEXT: vmovaps %ymm15, 64(%r8)3319; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload3320; AVX-NEXT: vmovaps %ymm4, (%r8)3321; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload3322; AVX-NEXT: vmovaps %ymm4, 96(%r8)3323; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload3324; AVX-NEXT: vmovaps %ymm4, 32(%r8)3325; AVX-NEXT: vmovaps %ymm1, 64(%r9)3326; AVX-NEXT: vmovaps %ymm2, (%r9)3327; AVX-NEXT: vmovaps %ymm3, 96(%r9)3328; AVX-NEXT: vmovaps %ymm0, 32(%r9)3329; AVX-NEXT: addq $952, %rsp # imm = 0x3B83330; AVX-NEXT: vzeroupper3331; AVX-NEXT: retq3332;3333; AVX2-LABEL: load_i32_stride5_vf32:3334; AVX2: # %bb.0:3335; AVX2-NEXT: subq $968, %rsp # imm = 0x3C83336; AVX2-NEXT: vmovdqa 384(%rdi), %ymm43337; AVX2-NEXT: vmovdqa 416(%rdi), %ymm53338; AVX2-NEXT: vmovdqa 352(%rdi), %ymm63339; AVX2-NEXT: vmovdqa 320(%rdi), %ymm73340; AVX2-NEXT: vmovdqa 544(%rdi), %ymm83341; AVX2-NEXT: vmovdqu %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3342; AVX2-NEXT: vmovdqa 576(%rdi), %ymm93343; AVX2-NEXT: vmovdqa 512(%rdi), %ymm103344; AVX2-NEXT: vmovdqu %ymm10, (%rsp) # 32-byte Spill3345; AVX2-NEXT: vmovdqa 480(%rdi), %ymm153346; AVX2-NEXT: vmovdqa 224(%rdi), %ymm133347; AVX2-NEXT: vmovdqa 256(%rdi), %ymm143348; AVX2-NEXT: vmovdqa 192(%rdi), %ymm113349; AVX2-NEXT: vmovdqa 160(%rdi), %ymm13350; AVX2-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3351; AVX2-NEXT: vpmovsxbd {{.*#+}} xmm0 = [0,5,2,7]3352; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1],ymm11[2,3],ymm1[4,5],ymm11[6,7]3353; AVX2-NEXT: vpermd %ymm1, %ymm0, %ymm13354; AVX2-NEXT: vinserti128 $1, 288(%rdi), %ymm1, %ymm23355; AVX2-NEXT: vpermq {{.*#+}} ymm3 = ymm14[0,1,0,3]3356; AVX2-NEXT: vmovdqu %ymm14, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3357; AVX2-NEXT: vpblendd {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm13[4],ymm3[5,6,7]3358; AVX2-NEXT: vmovdqu %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3359; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm3[4,5,6,7]3360; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2],ymm2[3],ymm1[4,5,6],ymm2[7]3361; AVX2-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3362; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm15[0,1],ymm10[2,3],ymm15[4,5],ymm10[6,7]3363; AVX2-NEXT: vmovdqu %ymm15, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3364; AVX2-NEXT: vpermd %ymm1, %ymm0, %ymm13365; AVX2-NEXT: vpermq {{.*#+}} ymm2 = ymm9[0,1,0,3]3366; AVX2-NEXT: vmovdqu %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3367; AVX2-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm8[4],ymm2[5,6,7]3368; AVX2-NEXT: vpblendd {{.*#+}} ymm2 = ymm1[0,1,2,3],ymm2[4,5,6,7]3369; AVX2-NEXT: vinserti128 $1, 608(%rdi), %ymm1, %ymm13370; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3],ymm2[4,5,6],ymm1[7]3371; AVX2-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3372; AVX2-NEXT: vmovdqu %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3373; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm7[0,1],ymm6[2,3],ymm7[4,5],ymm6[6,7]3374; AVX2-NEXT: vmovdqa %ymm7, %ymm103375; AVX2-NEXT: vmovdqu %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3376; AVX2-NEXT: vpermd %ymm1, %ymm0, %ymm13377; AVX2-NEXT: vmovdqu %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3378; AVX2-NEXT: vpermq {{.*#+}} ymm2 = ymm5[0,1,0,3]3379; AVX2-NEXT: vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3380; AVX2-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm4[4],ymm2[5,6,7]3381; AVX2-NEXT: vpblendd {{.*#+}} ymm2 = ymm1[0,1,2,3],ymm2[4,5,6,7]3382; AVX2-NEXT: vinserti128 $1, 448(%rdi), %ymm1, %ymm13383; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3],ymm2[4,5,6],ymm1[7]3384; AVX2-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3385; AVX2-NEXT: vmovdqa (%rdi), %ymm73386; AVX2-NEXT: vmovdqa 32(%rdi), %ymm83387; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm7[0,1],ymm8[2,3],ymm7[4,5],ymm8[6,7]3388; AVX2-NEXT: vpermd %ymm1, %ymm0, %ymm03389; AVX2-NEXT: vmovdqa 64(%rdi), %ymm123390; AVX2-NEXT: vmovdqa 96(%rdi), %ymm13391; AVX2-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3392; AVX2-NEXT: vpermq {{.*#+}} ymm1 = ymm1[0,1,0,3]3393; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm12[4],ymm1[5,6,7]3394; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm0[0,1,2,3],ymm1[4,5,6,7]3395; AVX2-NEXT: vinserti128 $1, 128(%rdi), %ymm0, %ymm03396; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3],ymm1[4,5,6],ymm0[7]3397; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3398; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload3399; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm3[0,1],ymm11[2,3],ymm3[4,5,6,7]3400; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm13[0,1],ymm14[2,3],ymm13[4,5],ymm14[6,7]3401; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0],ymm0[1],ymm1[2],ymm0[3],ymm1[4,5],ymm0[6],ymm1[7]3402; AVX2-NEXT: vpmovsxbd {{.*#+}} ymm1 = [1,6,3,0,5,2,7,0]3403; AVX2-NEXT: vpermd %ymm0, %ymm1, %ymm03404; AVX2-NEXT: vpbroadcastd 304(%rdi), %ymm23405; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5,6],ymm2[7]3406; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3407; AVX2-NEXT: vmovdqu (%rsp), %ymm14 # 32-byte Reload3408; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm15[0,1],ymm14[2,3],ymm15[4,5,6,7]3409; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Reload3410; AVX2-NEXT: vpblendd {{.*#+}} ymm2 = ymm15[0,1],ymm9[2,3],ymm15[4,5],ymm9[6,7]3411; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm2[0],ymm0[1],ymm2[2],ymm0[3],ymm2[4,5],ymm0[6],ymm2[7]3412; AVX2-NEXT: vpermd %ymm0, %ymm1, %ymm03413; AVX2-NEXT: vpbroadcastd 624(%rdi), %ymm23414; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5,6],ymm2[7]3415; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3416; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm10[0,1],ymm6[2,3],ymm10[4,5,6,7]3417; AVX2-NEXT: vpblendd {{.*#+}} ymm2 = ymm4[0,1],ymm5[2,3],ymm4[4,5],ymm5[6,7]3418; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm2[0],ymm0[1],ymm2[2],ymm0[3],ymm2[4,5],ymm0[6],ymm2[7]3419; AVX2-NEXT: vpermd %ymm0, %ymm1, %ymm03420; AVX2-NEXT: vpbroadcastd 464(%rdi), %ymm23421; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5,6],ymm2[7]3422; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3423; AVX2-NEXT: vmovdqu %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3424; AVX2-NEXT: vmovdqu %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3425; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm7[0,1],ymm8[2,3],ymm7[4,5,6,7]3426; AVX2-NEXT: vmovdqa %ymm12, %ymm93427; AVX2-NEXT: vpblendd $204, {{[-0-9]+}}(%r{{[sb]}}p), %ymm12, %ymm2 # 32-byte Folded Reload3428; AVX2-NEXT: # ymm2 = ymm12[0,1],mem[2,3],ymm12[4,5],mem[6,7]3429; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm2[0],ymm0[1],ymm2[2],ymm0[3],ymm2[4,5],ymm0[6],ymm2[7]3430; AVX2-NEXT: vpermd %ymm0, %ymm1, %ymm03431; AVX2-NEXT: vpbroadcastd 144(%rdi), %ymm13432; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5,6],ymm1[7]3433; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3434; AVX2-NEXT: vpmovsxbd {{.*#+}} xmm5 = [2,7,4,0]3435; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm3[0,1,2,3],ymm11[4,5],ymm3[6,7]3436; AVX2-NEXT: vmovdqa %ymm3, %ymm123437; AVX2-NEXT: vmovdqa %ymm11, %ymm133438; AVX2-NEXT: vmovdqu %ymm11, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3439; AVX2-NEXT: vpermd %ymm1, %ymm5, %ymm13440; AVX2-NEXT: vinserti128 $1, 256(%rdi), %ymm0, %ymm23441; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload3442; AVX2-NEXT: vpblendd {{.*#+}} ymm2 = ymm6[0,1,2,3,4,5,6],ymm2[7]3443; AVX2-NEXT: vpshufd {{.*#+}} ymm2 = ymm2[2,3,0,1,6,7,4,5]3444; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2],ymm2[3,4,5,6,7]3445; AVX2-NEXT: vmovdqa 288(%rdi), %ymm23446; AVX2-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3447; AVX2-NEXT: vpbroadcastq {{.*#+}} ymm0 = [0,5,0,5,0,5,0,5]3448; AVX2-NEXT: vpermd %ymm2, %ymm0, %ymm23449; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]3450; AVX2-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3451; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload3452; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm4[0,1,2,3],ymm14[4,5],ymm4[6,7]3453; AVX2-NEXT: vpermd %ymm1, %ymm5, %ymm13454; AVX2-NEXT: vinserti128 $1, 576(%rdi), %ymm0, %ymm23455; AVX2-NEXT: vpblendd {{.*#+}} ymm2 = ymm15[0,1,2,3,4,5,6],ymm2[7]3456; AVX2-NEXT: vmovdqa %ymm15, %ymm143457; AVX2-NEXT: vpshufd {{.*#+}} ymm2 = ymm2[2,3,0,1,6,7,4,5]3458; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2],ymm2[3,4,5,6,7]3459; AVX2-NEXT: vmovdqa 608(%rdi), %ymm23460; AVX2-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3461; AVX2-NEXT: vpermd %ymm2, %ymm0, %ymm23462; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]3463; AVX2-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3464; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm7[0,1,2,3],ymm8[4,5],ymm7[6,7]3465; AVX2-NEXT: vpermd %ymm1, %ymm5, %ymm13466; AVX2-NEXT: vinserti128 $1, 96(%rdi), %ymm0, %ymm23467; AVX2-NEXT: vpblendd {{.*#+}} ymm2 = ymm9[0,1,2,3,4,5,6],ymm2[7]3468; AVX2-NEXT: vpshufd {{.*#+}} ymm2 = ymm2[2,3,0,1,6,7,4,5]3469; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2],ymm2[3,4,5,6,7]3470; AVX2-NEXT: vmovdqa 128(%rdi), %ymm73471; AVX2-NEXT: vpermd %ymm7, %ymm0, %ymm103472; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm10[6,7]3473; AVX2-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3474; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload3475; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload3476; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm3[0,1,2,3],ymm2[4,5],ymm3[6,7]3477; AVX2-NEXT: vpermd %ymm1, %ymm5, %ymm83478; AVX2-NEXT: vinserti128 $1, 416(%rdi), %ymm0, %ymm53479; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload3480; AVX2-NEXT: vpblendd {{.*#+}} ymm5 = ymm1[0,1,2,3,4,5,6],ymm5[7]3481; AVX2-NEXT: vpshufd {{.*#+}} ymm5 = ymm5[2,3,0,1,6,7,4,5]3482; AVX2-NEXT: vpblendd {{.*#+}} ymm5 = ymm8[0,1,2],ymm5[3,4,5,6,7]3483; AVX2-NEXT: vmovdqa 448(%rdi), %ymm83484; AVX2-NEXT: vmovdqu %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3485; AVX2-NEXT: vpermd %ymm8, %ymm0, %ymm03486; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm5[0,1,2,3,4,5],ymm0[6,7]3487; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3488; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Reload3489; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm6[0,1,2,3],ymm11[4,5],ymm6[6,7]3490; AVX2-NEXT: vmovdqa %ymm12, %ymm63491; AVX2-NEXT: vpalignr {{.*#+}} ymm5 = ymm12[12,13,14,15],ymm13[0,1,2,3,4,5,6,7,8,9,10,11],ymm12[28,29,30,31],ymm13[16,17,18,19,20,21,22,23,24,25,26,27]3492; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm5[0,1],ymm0[2],ymm5[3],ymm0[4],ymm5[5,6],ymm0[7]3493; AVX2-NEXT: vpmovsxbd {{.*#+}} ymm5 = [0,1,6,2,7,4,0,0]3494; AVX2-NEXT: vpermd %ymm0, %ymm5, %ymm03495; AVX2-NEXT: vpbroadcastq {{.*#+}} ymm10 = [1,6,1,6,1,6,1,6]3496; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm12 # 32-byte Reload3497; AVX2-NEXT: vpermd %ymm12, %ymm10, %ymm153498; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm15[6,7]3499; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3500; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm13 # 32-byte Reload3501; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm14[0,1,2,3],ymm13[4,5],ymm14[6,7]3502; AVX2-NEXT: vmovdqu (%rsp), %ymm8 # 32-byte Reload3503; AVX2-NEXT: vpalignr {{.*#+}} ymm15 = ymm4[12,13,14,15],ymm8[0,1,2,3,4,5,6,7,8,9,10,11],ymm4[28,29,30,31],ymm8[16,17,18,19,20,21,22,23,24,25,26,27]3504; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm15[0,1],ymm0[2],ymm15[3],ymm0[4],ymm15[5,6],ymm0[7]3505; AVX2-NEXT: vpermd %ymm0, %ymm5, %ymm03506; AVX2-NEXT: vpermd {{[-0-9]+}}(%r{{[sb]}}p), %ymm10, %ymm15 # 32-byte Folded Reload3507; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm15[6,7]3508; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3509; AVX2-NEXT: vpblendd $48, {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm0 # 32-byte Folded Reload3510; AVX2-NEXT: # ymm0 = ymm9[0,1,2,3],mem[4,5],ymm9[6,7]3511; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload3512; AVX2-NEXT: vpalignr $12, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm15 # 32-byte Folded Reload3513; AVX2-NEXT: # ymm15 = mem[12,13,14,15],ymm4[0,1,2,3,4,5,6,7,8,9,10,11],mem[28,29,30,31],ymm4[16,17,18,19,20,21,22,23,24,25,26,27]3514; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm15[0,1],ymm0[2],ymm15[3],ymm0[4],ymm15[5,6],ymm0[7]3515; AVX2-NEXT: vpermd %ymm0, %ymm5, %ymm03516; AVX2-NEXT: vpermd %ymm7, %ymm10, %ymm153517; AVX2-NEXT: vmovdqa %ymm7, %ymm143518; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm15[6,7]3519; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3520; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload3521; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm7[4,5],ymm1[6,7]3522; AVX2-NEXT: vpalignr {{.*#+}} ymm15 = ymm3[12,13,14,15],ymm2[0,1,2,3,4,5,6,7,8,9,10,11],ymm3[28,29,30,31],ymm2[16,17,18,19,20,21,22,23,24,25,26,27]3523; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm15[0,1],ymm0[2],ymm15[3],ymm0[4],ymm15[5,6],ymm0[7]3524; AVX2-NEXT: vpermd %ymm0, %ymm5, %ymm03525; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Reload3526; AVX2-NEXT: vpermd %ymm15, %ymm10, %ymm53527; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm5[6,7]3528; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3529; AVX2-NEXT: vpblendd $207, {{[-0-9]+}}(%r{{[sb]}}p), %ymm6, %ymm0 # 32-byte Folded Reload3530; AVX2-NEXT: # ymm0 = mem[0,1,2,3],ymm6[4,5],mem[6,7]3531; AVX2-NEXT: vperm2i128 $2, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm5 # 32-byte Folded Reload3532; AVX2-NEXT: # ymm5 = mem[0,1],ymm11[0,1]3533; AVX2-NEXT: vpblendd {{.*#+}} ymm5 = ymm5[0,1,2,3,4],ymm11[5],ymm5[6,7]3534; AVX2-NEXT: vpmovsxbd {{.*#+}} xmm10 = [4,1,6,0]3535; AVX2-NEXT: vpermd %ymm0, %ymm10, %ymm03536; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2],ymm5[3,4,5,6,7]3537; AVX2-NEXT: vpbroadcastq {{.*#+}} ymm5 = [2,7,2,7,2,7,2,7]3538; AVX2-NEXT: vpermd %ymm12, %ymm5, %ymm43539; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm4[6,7]3540; AVX2-NEXT: vpblendd $48, {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm4 # 32-byte Folded Reload3541; AVX2-NEXT: # ymm4 = ymm8[0,1,2,3],mem[4,5],ymm8[6,7]3542; AVX2-NEXT: vperm2i128 $2, {{[-0-9]+}}(%r{{[sb]}}p), %ymm13, %ymm11 # 32-byte Folded Reload3543; AVX2-NEXT: # ymm11 = mem[0,1],ymm13[0,1]3544; AVX2-NEXT: vpblendd {{.*#+}} ymm11 = ymm11[0,1,2,3,4],ymm13[5],ymm11[6,7]3545; AVX2-NEXT: vpermd %ymm4, %ymm10, %ymm43546; AVX2-NEXT: vpblendd {{.*#+}} ymm4 = ymm4[0,1,2],ymm11[3,4,5,6,7]3547; AVX2-NEXT: vpermd {{[-0-9]+}}(%r{{[sb]}}p), %ymm5, %ymm3 # 32-byte Folded Reload3548; AVX2-NEXT: vpblendd {{.*#+}} ymm3 = ymm4[0,1,2,3,4,5],ymm3[6,7]3549; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload3550; AVX2-NEXT: vperm2i128 {{.*#+}} ymm4 = ymm9[0,1],ymm1[0,1]3551; AVX2-NEXT: vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3,4],ymm1[5],ymm4[6,7]3552; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload3553; AVX2-NEXT: vpblendd $207, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm6 # 32-byte Folded Reload3554; AVX2-NEXT: # ymm6 = mem[0,1,2,3],ymm1[4,5],mem[6,7]3555; AVX2-NEXT: vpermd %ymm6, %ymm10, %ymm63556; AVX2-NEXT: vpblendd {{.*#+}} ymm4 = ymm6[0,1,2],ymm4[3,4,5,6,7]3557; AVX2-NEXT: vpermd %ymm14, %ymm5, %ymm23558; AVX2-NEXT: vpblendd {{.*#+}} ymm2 = ymm4[0,1,2,3,4,5],ymm2[6,7]3559; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload3560; AVX2-NEXT: vpblendd $207, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm4 # 32-byte Folded Reload3561; AVX2-NEXT: # ymm4 = mem[0,1,2,3],ymm1[4,5],mem[6,7]3562; AVX2-NEXT: vpermd %ymm4, %ymm10, %ymm43563; AVX2-NEXT: vperm2i128 $2, {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm6 # 32-byte Folded Reload3564; AVX2-NEXT: # ymm6 = mem[0,1],ymm7[0,1]3565; AVX2-NEXT: vpblendd {{.*#+}} ymm6 = ymm6[0,1,2,3,4],ymm7[5],ymm6[6,7]3566; AVX2-NEXT: vpblendd {{.*#+}} ymm4 = ymm4[0,1,2],ymm6[3,4,5,6,7]3567; AVX2-NEXT: vpermd %ymm15, %ymm5, %ymm13568; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm4[0,1,2,3,4,5],ymm1[6,7]3569; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload3570; AVX2-NEXT: vmovaps %ymm4, 64(%rsi)3571; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload3572; AVX2-NEXT: vmovaps %ymm4, (%rsi)3573; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload3574; AVX2-NEXT: vmovaps %ymm4, 96(%rsi)3575; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload3576; AVX2-NEXT: vmovaps %ymm4, 32(%rsi)3577; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload3578; AVX2-NEXT: vmovaps %ymm4, 64(%rdx)3579; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload3580; AVX2-NEXT: vmovaps %ymm4, (%rdx)3581; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload3582; AVX2-NEXT: vmovaps %ymm4, 96(%rdx)3583; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload3584; AVX2-NEXT: vmovaps %ymm4, 32(%rdx)3585; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload3586; AVX2-NEXT: vmovaps %ymm4, 64(%rcx)3587; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload3588; AVX2-NEXT: vmovaps %ymm4, (%rcx)3589; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload3590; AVX2-NEXT: vmovaps %ymm4, 96(%rcx)3591; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload3592; AVX2-NEXT: vmovaps %ymm4, 32(%rcx)3593; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload3594; AVX2-NEXT: vmovaps %ymm4, 64(%r8)3595; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload3596; AVX2-NEXT: vmovaps %ymm4, (%r8)3597; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload3598; AVX2-NEXT: vmovaps %ymm4, 96(%r8)3599; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload3600; AVX2-NEXT: vmovaps %ymm4, 32(%r8)3601; AVX2-NEXT: vmovdqa %ymm1, 64(%r9)3602; AVX2-NEXT: vmovdqa %ymm2, (%r9)3603; AVX2-NEXT: vmovdqa %ymm3, 96(%r9)3604; AVX2-NEXT: vmovdqa %ymm0, 32(%r9)3605; AVX2-NEXT: addq $968, %rsp # imm = 0x3C83606; AVX2-NEXT: vzeroupper3607; AVX2-NEXT: retq3608;3609; AVX2-FP-LABEL: load_i32_stride5_vf32:3610; AVX2-FP: # %bb.0:3611; AVX2-FP-NEXT: subq $968, %rsp # imm = 0x3C83612; AVX2-FP-NEXT: vmovdqa 384(%rdi), %ymm43613; AVX2-FP-NEXT: vmovdqa 416(%rdi), %ymm53614; AVX2-FP-NEXT: vmovdqa 352(%rdi), %ymm63615; AVX2-FP-NEXT: vmovdqa 320(%rdi), %ymm73616; AVX2-FP-NEXT: vmovdqa 544(%rdi), %ymm83617; AVX2-FP-NEXT: vmovdqu %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3618; AVX2-FP-NEXT: vmovdqa 576(%rdi), %ymm93619; AVX2-FP-NEXT: vmovdqa 512(%rdi), %ymm103620; AVX2-FP-NEXT: vmovdqu %ymm10, (%rsp) # 32-byte Spill3621; AVX2-FP-NEXT: vmovdqa 480(%rdi), %ymm153622; AVX2-FP-NEXT: vmovdqa 224(%rdi), %ymm133623; AVX2-FP-NEXT: vmovdqa 256(%rdi), %ymm143624; AVX2-FP-NEXT: vmovdqa 192(%rdi), %ymm113625; AVX2-FP-NEXT: vmovdqa 160(%rdi), %ymm13626; AVX2-FP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3627; AVX2-FP-NEXT: vpmovsxbd {{.*#+}} xmm0 = [0,5,2,7]3628; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1],ymm11[2,3],ymm1[4,5],ymm11[6,7]3629; AVX2-FP-NEXT: vpermd %ymm1, %ymm0, %ymm13630; AVX2-FP-NEXT: vinserti128 $1, 288(%rdi), %ymm1, %ymm23631; AVX2-FP-NEXT: vpermq {{.*#+}} ymm3 = ymm14[0,1,0,3]3632; AVX2-FP-NEXT: vmovdqu %ymm14, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3633; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm13[4],ymm3[5,6,7]3634; AVX2-FP-NEXT: vmovdqu %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3635; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm3[4,5,6,7]3636; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2],ymm2[3],ymm1[4,5,6],ymm2[7]3637; AVX2-FP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3638; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm15[0,1],ymm10[2,3],ymm15[4,5],ymm10[6,7]3639; AVX2-FP-NEXT: vmovdqu %ymm15, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3640; AVX2-FP-NEXT: vpermd %ymm1, %ymm0, %ymm13641; AVX2-FP-NEXT: vpermq {{.*#+}} ymm2 = ymm9[0,1,0,3]3642; AVX2-FP-NEXT: vmovdqu %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3643; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm8[4],ymm2[5,6,7]3644; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm2 = ymm1[0,1,2,3],ymm2[4,5,6,7]3645; AVX2-FP-NEXT: vinserti128 $1, 608(%rdi), %ymm1, %ymm13646; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3],ymm2[4,5,6],ymm1[7]3647; AVX2-FP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3648; AVX2-FP-NEXT: vmovdqu %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3649; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm7[0,1],ymm6[2,3],ymm7[4,5],ymm6[6,7]3650; AVX2-FP-NEXT: vmovdqa %ymm7, %ymm103651; AVX2-FP-NEXT: vmovdqu %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3652; AVX2-FP-NEXT: vpermd %ymm1, %ymm0, %ymm13653; AVX2-FP-NEXT: vmovdqu %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3654; AVX2-FP-NEXT: vpermq {{.*#+}} ymm2 = ymm5[0,1,0,3]3655; AVX2-FP-NEXT: vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3656; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm4[4],ymm2[5,6,7]3657; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm2 = ymm1[0,1,2,3],ymm2[4,5,6,7]3658; AVX2-FP-NEXT: vinserti128 $1, 448(%rdi), %ymm1, %ymm13659; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3],ymm2[4,5,6],ymm1[7]3660; AVX2-FP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3661; AVX2-FP-NEXT: vmovdqa (%rdi), %ymm73662; AVX2-FP-NEXT: vmovdqa 32(%rdi), %ymm83663; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm7[0,1],ymm8[2,3],ymm7[4,5],ymm8[6,7]3664; AVX2-FP-NEXT: vpermd %ymm1, %ymm0, %ymm03665; AVX2-FP-NEXT: vmovdqa 64(%rdi), %ymm123666; AVX2-FP-NEXT: vmovdqa 96(%rdi), %ymm13667; AVX2-FP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3668; AVX2-FP-NEXT: vpermq {{.*#+}} ymm1 = ymm1[0,1,0,3]3669; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm12[4],ymm1[5,6,7]3670; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm0[0,1,2,3],ymm1[4,5,6,7]3671; AVX2-FP-NEXT: vinserti128 $1, 128(%rdi), %ymm0, %ymm03672; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3],ymm1[4,5,6],ymm0[7]3673; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3674; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload3675; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm3[0,1],ymm11[2,3],ymm3[4,5,6,7]3676; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm13[0,1],ymm14[2,3],ymm13[4,5],ymm14[6,7]3677; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0],ymm0[1],ymm1[2],ymm0[3],ymm1[4,5],ymm0[6],ymm1[7]3678; AVX2-FP-NEXT: vpmovsxbd {{.*#+}} ymm1 = [1,6,3,0,5,2,7,0]3679; AVX2-FP-NEXT: vpermd %ymm0, %ymm1, %ymm03680; AVX2-FP-NEXT: vpbroadcastd 304(%rdi), %ymm23681; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5,6],ymm2[7]3682; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3683; AVX2-FP-NEXT: vmovdqu (%rsp), %ymm14 # 32-byte Reload3684; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm15[0,1],ymm14[2,3],ymm15[4,5,6,7]3685; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Reload3686; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm2 = ymm15[0,1],ymm9[2,3],ymm15[4,5],ymm9[6,7]3687; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm2[0],ymm0[1],ymm2[2],ymm0[3],ymm2[4,5],ymm0[6],ymm2[7]3688; AVX2-FP-NEXT: vpermd %ymm0, %ymm1, %ymm03689; AVX2-FP-NEXT: vpbroadcastd 624(%rdi), %ymm23690; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5,6],ymm2[7]3691; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3692; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm10[0,1],ymm6[2,3],ymm10[4,5,6,7]3693; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm2 = ymm4[0,1],ymm5[2,3],ymm4[4,5],ymm5[6,7]3694; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm2[0],ymm0[1],ymm2[2],ymm0[3],ymm2[4,5],ymm0[6],ymm2[7]3695; AVX2-FP-NEXT: vpermd %ymm0, %ymm1, %ymm03696; AVX2-FP-NEXT: vpbroadcastd 464(%rdi), %ymm23697; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5,6],ymm2[7]3698; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3699; AVX2-FP-NEXT: vmovdqu %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3700; AVX2-FP-NEXT: vmovdqu %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3701; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm7[0,1],ymm8[2,3],ymm7[4,5,6,7]3702; AVX2-FP-NEXT: vmovdqa %ymm12, %ymm93703; AVX2-FP-NEXT: vpblendd $204, {{[-0-9]+}}(%r{{[sb]}}p), %ymm12, %ymm2 # 32-byte Folded Reload3704; AVX2-FP-NEXT: # ymm2 = ymm12[0,1],mem[2,3],ymm12[4,5],mem[6,7]3705; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm2[0],ymm0[1],ymm2[2],ymm0[3],ymm2[4,5],ymm0[6],ymm2[7]3706; AVX2-FP-NEXT: vpermd %ymm0, %ymm1, %ymm03707; AVX2-FP-NEXT: vpbroadcastd 144(%rdi), %ymm13708; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5,6],ymm1[7]3709; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3710; AVX2-FP-NEXT: vpmovsxbd {{.*#+}} xmm5 = [2,7,4,0]3711; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm3[0,1,2,3],ymm11[4,5],ymm3[6,7]3712; AVX2-FP-NEXT: vmovdqa %ymm3, %ymm123713; AVX2-FP-NEXT: vmovdqa %ymm11, %ymm133714; AVX2-FP-NEXT: vmovdqu %ymm11, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3715; AVX2-FP-NEXT: vpermd %ymm1, %ymm5, %ymm13716; AVX2-FP-NEXT: vinserti128 $1, 256(%rdi), %ymm0, %ymm23717; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload3718; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm2 = ymm6[0,1,2,3,4,5,6],ymm2[7]3719; AVX2-FP-NEXT: vpshufd {{.*#+}} ymm2 = ymm2[2,3,0,1,6,7,4,5]3720; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2],ymm2[3,4,5,6,7]3721; AVX2-FP-NEXT: vmovdqa 288(%rdi), %ymm23722; AVX2-FP-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3723; AVX2-FP-NEXT: vpbroadcastq {{.*#+}} ymm0 = [0,5,0,5,0,5,0,5]3724; AVX2-FP-NEXT: vpermd %ymm2, %ymm0, %ymm23725; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]3726; AVX2-FP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3727; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload3728; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm4[0,1,2,3],ymm14[4,5],ymm4[6,7]3729; AVX2-FP-NEXT: vpermd %ymm1, %ymm5, %ymm13730; AVX2-FP-NEXT: vinserti128 $1, 576(%rdi), %ymm0, %ymm23731; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm2 = ymm15[0,1,2,3,4,5,6],ymm2[7]3732; AVX2-FP-NEXT: vmovdqa %ymm15, %ymm143733; AVX2-FP-NEXT: vpshufd {{.*#+}} ymm2 = ymm2[2,3,0,1,6,7,4,5]3734; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2],ymm2[3,4,5,6,7]3735; AVX2-FP-NEXT: vmovdqa 608(%rdi), %ymm23736; AVX2-FP-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3737; AVX2-FP-NEXT: vpermd %ymm2, %ymm0, %ymm23738; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]3739; AVX2-FP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3740; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm7[0,1,2,3],ymm8[4,5],ymm7[6,7]3741; AVX2-FP-NEXT: vpermd %ymm1, %ymm5, %ymm13742; AVX2-FP-NEXT: vinserti128 $1, 96(%rdi), %ymm0, %ymm23743; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm2 = ymm9[0,1,2,3,4,5,6],ymm2[7]3744; AVX2-FP-NEXT: vpshufd {{.*#+}} ymm2 = ymm2[2,3,0,1,6,7,4,5]3745; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2],ymm2[3,4,5,6,7]3746; AVX2-FP-NEXT: vmovdqa 128(%rdi), %ymm73747; AVX2-FP-NEXT: vpermd %ymm7, %ymm0, %ymm103748; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm10[6,7]3749; AVX2-FP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3750; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload3751; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload3752; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm3[0,1,2,3],ymm2[4,5],ymm3[6,7]3753; AVX2-FP-NEXT: vpermd %ymm1, %ymm5, %ymm83754; AVX2-FP-NEXT: vinserti128 $1, 416(%rdi), %ymm0, %ymm53755; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload3756; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm5 = ymm1[0,1,2,3,4,5,6],ymm5[7]3757; AVX2-FP-NEXT: vpshufd {{.*#+}} ymm5 = ymm5[2,3,0,1,6,7,4,5]3758; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm5 = ymm8[0,1,2],ymm5[3,4,5,6,7]3759; AVX2-FP-NEXT: vmovdqa 448(%rdi), %ymm83760; AVX2-FP-NEXT: vmovdqu %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3761; AVX2-FP-NEXT: vpermd %ymm8, %ymm0, %ymm03762; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm5[0,1,2,3,4,5],ymm0[6,7]3763; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3764; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Reload3765; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm6[0,1,2,3],ymm11[4,5],ymm6[6,7]3766; AVX2-FP-NEXT: vmovdqa %ymm12, %ymm63767; AVX2-FP-NEXT: vpalignr {{.*#+}} ymm5 = ymm12[12,13,14,15],ymm13[0,1,2,3,4,5,6,7,8,9,10,11],ymm12[28,29,30,31],ymm13[16,17,18,19,20,21,22,23,24,25,26,27]3768; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm5[0,1],ymm0[2],ymm5[3],ymm0[4],ymm5[5,6],ymm0[7]3769; AVX2-FP-NEXT: vpmovsxbd {{.*#+}} ymm5 = [0,1,6,2,7,4,0,0]3770; AVX2-FP-NEXT: vpermd %ymm0, %ymm5, %ymm03771; AVX2-FP-NEXT: vpbroadcastq {{.*#+}} ymm10 = [1,6,1,6,1,6,1,6]3772; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm12 # 32-byte Reload3773; AVX2-FP-NEXT: vpermd %ymm12, %ymm10, %ymm153774; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm15[6,7]3775; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3776; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm13 # 32-byte Reload3777; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm14[0,1,2,3],ymm13[4,5],ymm14[6,7]3778; AVX2-FP-NEXT: vmovdqu (%rsp), %ymm8 # 32-byte Reload3779; AVX2-FP-NEXT: vpalignr {{.*#+}} ymm15 = ymm4[12,13,14,15],ymm8[0,1,2,3,4,5,6,7,8,9,10,11],ymm4[28,29,30,31],ymm8[16,17,18,19,20,21,22,23,24,25,26,27]3780; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm15[0,1],ymm0[2],ymm15[3],ymm0[4],ymm15[5,6],ymm0[7]3781; AVX2-FP-NEXT: vpermd %ymm0, %ymm5, %ymm03782; AVX2-FP-NEXT: vpermd {{[-0-9]+}}(%r{{[sb]}}p), %ymm10, %ymm15 # 32-byte Folded Reload3783; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm15[6,7]3784; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3785; AVX2-FP-NEXT: vpblendd $48, {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm0 # 32-byte Folded Reload3786; AVX2-FP-NEXT: # ymm0 = ymm9[0,1,2,3],mem[4,5],ymm9[6,7]3787; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload3788; AVX2-FP-NEXT: vpalignr $12, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm15 # 32-byte Folded Reload3789; AVX2-FP-NEXT: # ymm15 = mem[12,13,14,15],ymm4[0,1,2,3,4,5,6,7,8,9,10,11],mem[28,29,30,31],ymm4[16,17,18,19,20,21,22,23,24,25,26,27]3790; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm15[0,1],ymm0[2],ymm15[3],ymm0[4],ymm15[5,6],ymm0[7]3791; AVX2-FP-NEXT: vpermd %ymm0, %ymm5, %ymm03792; AVX2-FP-NEXT: vpermd %ymm7, %ymm10, %ymm153793; AVX2-FP-NEXT: vmovdqa %ymm7, %ymm143794; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm15[6,7]3795; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3796; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload3797; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm7[4,5],ymm1[6,7]3798; AVX2-FP-NEXT: vpalignr {{.*#+}} ymm15 = ymm3[12,13,14,15],ymm2[0,1,2,3,4,5,6,7,8,9,10,11],ymm3[28,29,30,31],ymm2[16,17,18,19,20,21,22,23,24,25,26,27]3799; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm15[0,1],ymm0[2],ymm15[3],ymm0[4],ymm15[5,6],ymm0[7]3800; AVX2-FP-NEXT: vpermd %ymm0, %ymm5, %ymm03801; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Reload3802; AVX2-FP-NEXT: vpermd %ymm15, %ymm10, %ymm53803; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm5[6,7]3804; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3805; AVX2-FP-NEXT: vpblendd $207, {{[-0-9]+}}(%r{{[sb]}}p), %ymm6, %ymm0 # 32-byte Folded Reload3806; AVX2-FP-NEXT: # ymm0 = mem[0,1,2,3],ymm6[4,5],mem[6,7]3807; AVX2-FP-NEXT: vperm2i128 $2, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm5 # 32-byte Folded Reload3808; AVX2-FP-NEXT: # ymm5 = mem[0,1],ymm11[0,1]3809; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm5 = ymm5[0,1,2,3,4],ymm11[5],ymm5[6,7]3810; AVX2-FP-NEXT: vpmovsxbd {{.*#+}} xmm10 = [4,1,6,0]3811; AVX2-FP-NEXT: vpermd %ymm0, %ymm10, %ymm03812; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2],ymm5[3,4,5,6,7]3813; AVX2-FP-NEXT: vpbroadcastq {{.*#+}} ymm5 = [2,7,2,7,2,7,2,7]3814; AVX2-FP-NEXT: vpermd %ymm12, %ymm5, %ymm43815; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm4[6,7]3816; AVX2-FP-NEXT: vpblendd $48, {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm4 # 32-byte Folded Reload3817; AVX2-FP-NEXT: # ymm4 = ymm8[0,1,2,3],mem[4,5],ymm8[6,7]3818; AVX2-FP-NEXT: vperm2i128 $2, {{[-0-9]+}}(%r{{[sb]}}p), %ymm13, %ymm11 # 32-byte Folded Reload3819; AVX2-FP-NEXT: # ymm11 = mem[0,1],ymm13[0,1]3820; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm11 = ymm11[0,1,2,3,4],ymm13[5],ymm11[6,7]3821; AVX2-FP-NEXT: vpermd %ymm4, %ymm10, %ymm43822; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm4 = ymm4[0,1,2],ymm11[3,4,5,6,7]3823; AVX2-FP-NEXT: vpermd {{[-0-9]+}}(%r{{[sb]}}p), %ymm5, %ymm3 # 32-byte Folded Reload3824; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm3 = ymm4[0,1,2,3,4,5],ymm3[6,7]3825; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload3826; AVX2-FP-NEXT: vperm2i128 {{.*#+}} ymm4 = ymm9[0,1],ymm1[0,1]3827; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3,4],ymm1[5],ymm4[6,7]3828; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload3829; AVX2-FP-NEXT: vpblendd $207, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm6 # 32-byte Folded Reload3830; AVX2-FP-NEXT: # ymm6 = mem[0,1,2,3],ymm1[4,5],mem[6,7]3831; AVX2-FP-NEXT: vpermd %ymm6, %ymm10, %ymm63832; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm4 = ymm6[0,1,2],ymm4[3,4,5,6,7]3833; AVX2-FP-NEXT: vpermd %ymm14, %ymm5, %ymm23834; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm2 = ymm4[0,1,2,3,4,5],ymm2[6,7]3835; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload3836; AVX2-FP-NEXT: vpblendd $207, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm4 # 32-byte Folded Reload3837; AVX2-FP-NEXT: # ymm4 = mem[0,1,2,3],ymm1[4,5],mem[6,7]3838; AVX2-FP-NEXT: vpermd %ymm4, %ymm10, %ymm43839; AVX2-FP-NEXT: vperm2i128 $2, {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm6 # 32-byte Folded Reload3840; AVX2-FP-NEXT: # ymm6 = mem[0,1],ymm7[0,1]3841; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm6 = ymm6[0,1,2,3,4],ymm7[5],ymm6[6,7]3842; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm4 = ymm4[0,1,2],ymm6[3,4,5,6,7]3843; AVX2-FP-NEXT: vpermd %ymm15, %ymm5, %ymm13844; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm4[0,1,2,3,4,5],ymm1[6,7]3845; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload3846; AVX2-FP-NEXT: vmovaps %ymm4, 64(%rsi)3847; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload3848; AVX2-FP-NEXT: vmovaps %ymm4, (%rsi)3849; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload3850; AVX2-FP-NEXT: vmovaps %ymm4, 96(%rsi)3851; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload3852; AVX2-FP-NEXT: vmovaps %ymm4, 32(%rsi)3853; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload3854; AVX2-FP-NEXT: vmovaps %ymm4, 64(%rdx)3855; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload3856; AVX2-FP-NEXT: vmovaps %ymm4, (%rdx)3857; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload3858; AVX2-FP-NEXT: vmovaps %ymm4, 96(%rdx)3859; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload3860; AVX2-FP-NEXT: vmovaps %ymm4, 32(%rdx)3861; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload3862; AVX2-FP-NEXT: vmovaps %ymm4, 64(%rcx)3863; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload3864; AVX2-FP-NEXT: vmovaps %ymm4, (%rcx)3865; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload3866; AVX2-FP-NEXT: vmovaps %ymm4, 96(%rcx)3867; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload3868; AVX2-FP-NEXT: vmovaps %ymm4, 32(%rcx)3869; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload3870; AVX2-FP-NEXT: vmovaps %ymm4, 64(%r8)3871; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload3872; AVX2-FP-NEXT: vmovaps %ymm4, (%r8)3873; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload3874; AVX2-FP-NEXT: vmovaps %ymm4, 96(%r8)3875; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload3876; AVX2-FP-NEXT: vmovaps %ymm4, 32(%r8)3877; AVX2-FP-NEXT: vmovdqa %ymm1, 64(%r9)3878; AVX2-FP-NEXT: vmovdqa %ymm2, (%r9)3879; AVX2-FP-NEXT: vmovdqa %ymm3, 96(%r9)3880; AVX2-FP-NEXT: vmovdqa %ymm0, 32(%r9)3881; AVX2-FP-NEXT: addq $968, %rsp # imm = 0x3C83882; AVX2-FP-NEXT: vzeroupper3883; AVX2-FP-NEXT: retq3884;3885; AVX2-FCP-LABEL: load_i32_stride5_vf32:3886; AVX2-FCP: # %bb.0:3887; AVX2-FCP-NEXT: subq $968, %rsp # imm = 0x3C83888; AVX2-FCP-NEXT: vmovdqa 384(%rdi), %ymm43889; AVX2-FCP-NEXT: vmovdqa 416(%rdi), %ymm53890; AVX2-FCP-NEXT: vmovdqa 352(%rdi), %ymm63891; AVX2-FCP-NEXT: vmovdqa 320(%rdi), %ymm73892; AVX2-FCP-NEXT: vmovdqa 544(%rdi), %ymm83893; AVX2-FCP-NEXT: vmovdqu %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3894; AVX2-FCP-NEXT: vmovdqa 576(%rdi), %ymm93895; AVX2-FCP-NEXT: vmovdqa 512(%rdi), %ymm103896; AVX2-FCP-NEXT: vmovdqu %ymm10, (%rsp) # 32-byte Spill3897; AVX2-FCP-NEXT: vmovdqa 480(%rdi), %ymm153898; AVX2-FCP-NEXT: vmovdqa 224(%rdi), %ymm133899; AVX2-FCP-NEXT: vmovdqa 256(%rdi), %ymm143900; AVX2-FCP-NEXT: vmovdqa 192(%rdi), %ymm113901; AVX2-FCP-NEXT: vmovdqa 160(%rdi), %ymm13902; AVX2-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3903; AVX2-FCP-NEXT: vpmovsxbd {{.*#+}} xmm0 = [0,5,2,7]3904; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1],ymm11[2,3],ymm1[4,5],ymm11[6,7]3905; AVX2-FCP-NEXT: vpermd %ymm1, %ymm0, %ymm13906; AVX2-FCP-NEXT: vinserti128 $1, 288(%rdi), %ymm1, %ymm23907; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm3 = ymm14[0,1,0,3]3908; AVX2-FCP-NEXT: vmovdqu %ymm14, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3909; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm13[4],ymm3[5,6,7]3910; AVX2-FCP-NEXT: vmovdqu %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3911; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm3[4,5,6,7]3912; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2],ymm2[3],ymm1[4,5,6],ymm2[7]3913; AVX2-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3914; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm15[0,1],ymm10[2,3],ymm15[4,5],ymm10[6,7]3915; AVX2-FCP-NEXT: vmovdqu %ymm15, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3916; AVX2-FCP-NEXT: vpermd %ymm1, %ymm0, %ymm13917; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm2 = ymm9[0,1,0,3]3918; AVX2-FCP-NEXT: vmovdqu %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3919; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm8[4],ymm2[5,6,7]3920; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm1[0,1,2,3],ymm2[4,5,6,7]3921; AVX2-FCP-NEXT: vinserti128 $1, 608(%rdi), %ymm1, %ymm13922; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3],ymm2[4,5,6],ymm1[7]3923; AVX2-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3924; AVX2-FCP-NEXT: vmovdqu %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3925; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm7[0,1],ymm6[2,3],ymm7[4,5],ymm6[6,7]3926; AVX2-FCP-NEXT: vmovdqa %ymm7, %ymm103927; AVX2-FCP-NEXT: vmovdqu %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3928; AVX2-FCP-NEXT: vpermd %ymm1, %ymm0, %ymm13929; AVX2-FCP-NEXT: vmovdqu %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3930; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm2 = ymm5[0,1,0,3]3931; AVX2-FCP-NEXT: vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3932; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm4[4],ymm2[5,6,7]3933; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm1[0,1,2,3],ymm2[4,5,6,7]3934; AVX2-FCP-NEXT: vinserti128 $1, 448(%rdi), %ymm1, %ymm13935; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3],ymm2[4,5,6],ymm1[7]3936; AVX2-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3937; AVX2-FCP-NEXT: vmovdqa (%rdi), %ymm73938; AVX2-FCP-NEXT: vmovdqa 32(%rdi), %ymm83939; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm7[0,1],ymm8[2,3],ymm7[4,5],ymm8[6,7]3940; AVX2-FCP-NEXT: vpermd %ymm1, %ymm0, %ymm03941; AVX2-FCP-NEXT: vmovdqa 64(%rdi), %ymm123942; AVX2-FCP-NEXT: vmovdqa 96(%rdi), %ymm13943; AVX2-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3944; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm1 = ymm1[0,1,0,3]3945; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm12[4],ymm1[5,6,7]3946; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm0[0,1,2,3],ymm1[4,5,6,7]3947; AVX2-FCP-NEXT: vinserti128 $1, 128(%rdi), %ymm0, %ymm03948; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3],ymm1[4,5,6],ymm0[7]3949; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3950; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload3951; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm3[0,1],ymm11[2,3],ymm3[4,5,6,7]3952; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm13[0,1],ymm14[2,3],ymm13[4,5],ymm14[6,7]3953; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0],ymm0[1],ymm1[2],ymm0[3],ymm1[4,5],ymm0[6],ymm1[7]3954; AVX2-FCP-NEXT: vpmovsxbd {{.*#+}} ymm1 = [1,6,3,0,5,2,7,0]3955; AVX2-FCP-NEXT: vpermd %ymm0, %ymm1, %ymm03956; AVX2-FCP-NEXT: vpbroadcastd 304(%rdi), %ymm23957; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5,6],ymm2[7]3958; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3959; AVX2-FCP-NEXT: vmovdqu (%rsp), %ymm14 # 32-byte Reload3960; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm15[0,1],ymm14[2,3],ymm15[4,5,6,7]3961; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Reload3962; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm15[0,1],ymm9[2,3],ymm15[4,5],ymm9[6,7]3963; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm2[0],ymm0[1],ymm2[2],ymm0[3],ymm2[4,5],ymm0[6],ymm2[7]3964; AVX2-FCP-NEXT: vpermd %ymm0, %ymm1, %ymm03965; AVX2-FCP-NEXT: vpbroadcastd 624(%rdi), %ymm23966; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5,6],ymm2[7]3967; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3968; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm10[0,1],ymm6[2,3],ymm10[4,5,6,7]3969; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm4[0,1],ymm5[2,3],ymm4[4,5],ymm5[6,7]3970; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm2[0],ymm0[1],ymm2[2],ymm0[3],ymm2[4,5],ymm0[6],ymm2[7]3971; AVX2-FCP-NEXT: vpermd %ymm0, %ymm1, %ymm03972; AVX2-FCP-NEXT: vpbroadcastd 464(%rdi), %ymm23973; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5,6],ymm2[7]3974; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3975; AVX2-FCP-NEXT: vmovdqu %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3976; AVX2-FCP-NEXT: vmovdqu %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3977; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm7[0,1],ymm8[2,3],ymm7[4,5,6,7]3978; AVX2-FCP-NEXT: vmovdqa %ymm12, %ymm93979; AVX2-FCP-NEXT: vpblendd $204, {{[-0-9]+}}(%r{{[sb]}}p), %ymm12, %ymm2 # 32-byte Folded Reload3980; AVX2-FCP-NEXT: # ymm2 = ymm12[0,1],mem[2,3],ymm12[4,5],mem[6,7]3981; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm2[0],ymm0[1],ymm2[2],ymm0[3],ymm2[4,5],ymm0[6],ymm2[7]3982; AVX2-FCP-NEXT: vpermd %ymm0, %ymm1, %ymm03983; AVX2-FCP-NEXT: vpbroadcastd 144(%rdi), %ymm13984; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5,6],ymm1[7]3985; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3986; AVX2-FCP-NEXT: vpmovsxbd {{.*#+}} xmm5 = [2,7,4,0]3987; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm3[0,1,2,3],ymm11[4,5],ymm3[6,7]3988; AVX2-FCP-NEXT: vmovdqa %ymm3, %ymm123989; AVX2-FCP-NEXT: vmovdqa %ymm11, %ymm133990; AVX2-FCP-NEXT: vmovdqu %ymm11, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3991; AVX2-FCP-NEXT: vpermd %ymm1, %ymm5, %ymm13992; AVX2-FCP-NEXT: vinserti128 $1, 256(%rdi), %ymm0, %ymm23993; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload3994; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm6[0,1,2,3,4,5,6],ymm2[7]3995; AVX2-FCP-NEXT: vpshufd {{.*#+}} ymm2 = ymm2[2,3,0,1,6,7,4,5]3996; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2],ymm2[3,4,5,6,7]3997; AVX2-FCP-NEXT: vmovdqa 288(%rdi), %ymm23998; AVX2-FCP-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3999; AVX2-FCP-NEXT: vpbroadcastq {{.*#+}} ymm0 = [0,5,0,5,0,5,0,5]4000; AVX2-FCP-NEXT: vpermd %ymm2, %ymm0, %ymm24001; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]4002; AVX2-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4003; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload4004; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm4[0,1,2,3],ymm14[4,5],ymm4[6,7]4005; AVX2-FCP-NEXT: vpermd %ymm1, %ymm5, %ymm14006; AVX2-FCP-NEXT: vinserti128 $1, 576(%rdi), %ymm0, %ymm24007; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm15[0,1,2,3,4,5,6],ymm2[7]4008; AVX2-FCP-NEXT: vmovdqa %ymm15, %ymm144009; AVX2-FCP-NEXT: vpshufd {{.*#+}} ymm2 = ymm2[2,3,0,1,6,7,4,5]4010; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2],ymm2[3,4,5,6,7]4011; AVX2-FCP-NEXT: vmovdqa 608(%rdi), %ymm24012; AVX2-FCP-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4013; AVX2-FCP-NEXT: vpermd %ymm2, %ymm0, %ymm24014; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]4015; AVX2-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4016; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm7[0,1,2,3],ymm8[4,5],ymm7[6,7]4017; AVX2-FCP-NEXT: vpermd %ymm1, %ymm5, %ymm14018; AVX2-FCP-NEXT: vinserti128 $1, 96(%rdi), %ymm0, %ymm24019; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm9[0,1,2,3,4,5,6],ymm2[7]4020; AVX2-FCP-NEXT: vpshufd {{.*#+}} ymm2 = ymm2[2,3,0,1,6,7,4,5]4021; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2],ymm2[3,4,5,6,7]4022; AVX2-FCP-NEXT: vmovdqa 128(%rdi), %ymm74023; AVX2-FCP-NEXT: vpermd %ymm7, %ymm0, %ymm104024; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm10[6,7]4025; AVX2-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4026; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload4027; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload4028; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm3[0,1,2,3],ymm2[4,5],ymm3[6,7]4029; AVX2-FCP-NEXT: vpermd %ymm1, %ymm5, %ymm84030; AVX2-FCP-NEXT: vinserti128 $1, 416(%rdi), %ymm0, %ymm54031; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload4032; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm5 = ymm1[0,1,2,3,4,5,6],ymm5[7]4033; AVX2-FCP-NEXT: vpshufd {{.*#+}} ymm5 = ymm5[2,3,0,1,6,7,4,5]4034; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm5 = ymm8[0,1,2],ymm5[3,4,5,6,7]4035; AVX2-FCP-NEXT: vmovdqa 448(%rdi), %ymm84036; AVX2-FCP-NEXT: vmovdqu %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4037; AVX2-FCP-NEXT: vpermd %ymm8, %ymm0, %ymm04038; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm5[0,1,2,3,4,5],ymm0[6,7]4039; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4040; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Reload4041; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm6[0,1,2,3],ymm11[4,5],ymm6[6,7]4042; AVX2-FCP-NEXT: vmovdqa %ymm12, %ymm64043; AVX2-FCP-NEXT: vpalignr {{.*#+}} ymm5 = ymm12[12,13,14,15],ymm13[0,1,2,3,4,5,6,7,8,9,10,11],ymm12[28,29,30,31],ymm13[16,17,18,19,20,21,22,23,24,25,26,27]4044; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm5[0,1],ymm0[2],ymm5[3],ymm0[4],ymm5[5,6],ymm0[7]4045; AVX2-FCP-NEXT: vpmovsxbd {{.*#+}} ymm5 = [0,1,6,2,7,4,0,0]4046; AVX2-FCP-NEXT: vpermd %ymm0, %ymm5, %ymm04047; AVX2-FCP-NEXT: vpbroadcastq {{.*#+}} ymm10 = [1,6,1,6,1,6,1,6]4048; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm12 # 32-byte Reload4049; AVX2-FCP-NEXT: vpermd %ymm12, %ymm10, %ymm154050; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm15[6,7]4051; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4052; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm13 # 32-byte Reload4053; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm14[0,1,2,3],ymm13[4,5],ymm14[6,7]4054; AVX2-FCP-NEXT: vmovdqu (%rsp), %ymm8 # 32-byte Reload4055; AVX2-FCP-NEXT: vpalignr {{.*#+}} ymm15 = ymm4[12,13,14,15],ymm8[0,1,2,3,4,5,6,7,8,9,10,11],ymm4[28,29,30,31],ymm8[16,17,18,19,20,21,22,23,24,25,26,27]4056; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm15[0,1],ymm0[2],ymm15[3],ymm0[4],ymm15[5,6],ymm0[7]4057; AVX2-FCP-NEXT: vpermd %ymm0, %ymm5, %ymm04058; AVX2-FCP-NEXT: vpermd {{[-0-9]+}}(%r{{[sb]}}p), %ymm10, %ymm15 # 32-byte Folded Reload4059; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm15[6,7]4060; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4061; AVX2-FCP-NEXT: vpblendd $48, {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm0 # 32-byte Folded Reload4062; AVX2-FCP-NEXT: # ymm0 = ymm9[0,1,2,3],mem[4,5],ymm9[6,7]4063; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload4064; AVX2-FCP-NEXT: vpalignr $12, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm15 # 32-byte Folded Reload4065; AVX2-FCP-NEXT: # ymm15 = mem[12,13,14,15],ymm4[0,1,2,3,4,5,6,7,8,9,10,11],mem[28,29,30,31],ymm4[16,17,18,19,20,21,22,23,24,25,26,27]4066; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm15[0,1],ymm0[2],ymm15[3],ymm0[4],ymm15[5,6],ymm0[7]4067; AVX2-FCP-NEXT: vpermd %ymm0, %ymm5, %ymm04068; AVX2-FCP-NEXT: vpermd %ymm7, %ymm10, %ymm154069; AVX2-FCP-NEXT: vmovdqa %ymm7, %ymm144070; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm15[6,7]4071; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4072; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload4073; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm7[4,5],ymm1[6,7]4074; AVX2-FCP-NEXT: vpalignr {{.*#+}} ymm15 = ymm3[12,13,14,15],ymm2[0,1,2,3,4,5,6,7,8,9,10,11],ymm3[28,29,30,31],ymm2[16,17,18,19,20,21,22,23,24,25,26,27]4075; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm15[0,1],ymm0[2],ymm15[3],ymm0[4],ymm15[5,6],ymm0[7]4076; AVX2-FCP-NEXT: vpermd %ymm0, %ymm5, %ymm04077; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Reload4078; AVX2-FCP-NEXT: vpermd %ymm15, %ymm10, %ymm54079; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm5[6,7]4080; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4081; AVX2-FCP-NEXT: vpblendd $207, {{[-0-9]+}}(%r{{[sb]}}p), %ymm6, %ymm0 # 32-byte Folded Reload4082; AVX2-FCP-NEXT: # ymm0 = mem[0,1,2,3],ymm6[4,5],mem[6,7]4083; AVX2-FCP-NEXT: vperm2i128 $2, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm5 # 32-byte Folded Reload4084; AVX2-FCP-NEXT: # ymm5 = mem[0,1],ymm11[0,1]4085; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm5 = ymm5[0,1,2,3,4],ymm11[5],ymm5[6,7]4086; AVX2-FCP-NEXT: vpmovsxbd {{.*#+}} xmm10 = [4,1,6,0]4087; AVX2-FCP-NEXT: vpermd %ymm0, %ymm10, %ymm04088; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2],ymm5[3,4,5,6,7]4089; AVX2-FCP-NEXT: vpbroadcastq {{.*#+}} ymm5 = [2,7,2,7,2,7,2,7]4090; AVX2-FCP-NEXT: vpermd %ymm12, %ymm5, %ymm44091; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm4[6,7]4092; AVX2-FCP-NEXT: vpblendd $48, {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm4 # 32-byte Folded Reload4093; AVX2-FCP-NEXT: # ymm4 = ymm8[0,1,2,3],mem[4,5],ymm8[6,7]4094; AVX2-FCP-NEXT: vperm2i128 $2, {{[-0-9]+}}(%r{{[sb]}}p), %ymm13, %ymm11 # 32-byte Folded Reload4095; AVX2-FCP-NEXT: # ymm11 = mem[0,1],ymm13[0,1]4096; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm11 = ymm11[0,1,2,3,4],ymm13[5],ymm11[6,7]4097; AVX2-FCP-NEXT: vpermd %ymm4, %ymm10, %ymm44098; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm4 = ymm4[0,1,2],ymm11[3,4,5,6,7]4099; AVX2-FCP-NEXT: vpermd {{[-0-9]+}}(%r{{[sb]}}p), %ymm5, %ymm3 # 32-byte Folded Reload4100; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm3 = ymm4[0,1,2,3,4,5],ymm3[6,7]4101; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload4102; AVX2-FCP-NEXT: vperm2i128 {{.*#+}} ymm4 = ymm9[0,1],ymm1[0,1]4103; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3,4],ymm1[5],ymm4[6,7]4104; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload4105; AVX2-FCP-NEXT: vpblendd $207, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm6 # 32-byte Folded Reload4106; AVX2-FCP-NEXT: # ymm6 = mem[0,1,2,3],ymm1[4,5],mem[6,7]4107; AVX2-FCP-NEXT: vpermd %ymm6, %ymm10, %ymm64108; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm4 = ymm6[0,1,2],ymm4[3,4,5,6,7]4109; AVX2-FCP-NEXT: vpermd %ymm14, %ymm5, %ymm24110; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm4[0,1,2,3,4,5],ymm2[6,7]4111; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload4112; AVX2-FCP-NEXT: vpblendd $207, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm4 # 32-byte Folded Reload4113; AVX2-FCP-NEXT: # ymm4 = mem[0,1,2,3],ymm1[4,5],mem[6,7]4114; AVX2-FCP-NEXT: vpermd %ymm4, %ymm10, %ymm44115; AVX2-FCP-NEXT: vperm2i128 $2, {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm6 # 32-byte Folded Reload4116; AVX2-FCP-NEXT: # ymm6 = mem[0,1],ymm7[0,1]4117; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm6 = ymm6[0,1,2,3,4],ymm7[5],ymm6[6,7]4118; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm4 = ymm4[0,1,2],ymm6[3,4,5,6,7]4119; AVX2-FCP-NEXT: vpermd %ymm15, %ymm5, %ymm14120; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm4[0,1,2,3,4,5],ymm1[6,7]4121; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload4122; AVX2-FCP-NEXT: vmovaps %ymm4, 64(%rsi)4123; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload4124; AVX2-FCP-NEXT: vmovaps %ymm4, (%rsi)4125; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload4126; AVX2-FCP-NEXT: vmovaps %ymm4, 96(%rsi)4127; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload4128; AVX2-FCP-NEXT: vmovaps %ymm4, 32(%rsi)4129; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload4130; AVX2-FCP-NEXT: vmovaps %ymm4, 64(%rdx)4131; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload4132; AVX2-FCP-NEXT: vmovaps %ymm4, (%rdx)4133; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload4134; AVX2-FCP-NEXT: vmovaps %ymm4, 96(%rdx)4135; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload4136; AVX2-FCP-NEXT: vmovaps %ymm4, 32(%rdx)4137; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload4138; AVX2-FCP-NEXT: vmovaps %ymm4, 64(%rcx)4139; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload4140; AVX2-FCP-NEXT: vmovaps %ymm4, (%rcx)4141; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload4142; AVX2-FCP-NEXT: vmovaps %ymm4, 96(%rcx)4143; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload4144; AVX2-FCP-NEXT: vmovaps %ymm4, 32(%rcx)4145; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload4146; AVX2-FCP-NEXT: vmovaps %ymm4, 64(%r8)4147; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload4148; AVX2-FCP-NEXT: vmovaps %ymm4, (%r8)4149; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload4150; AVX2-FCP-NEXT: vmovaps %ymm4, 96(%r8)4151; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload4152; AVX2-FCP-NEXT: vmovaps %ymm4, 32(%r8)4153; AVX2-FCP-NEXT: vmovdqa %ymm1, 64(%r9)4154; AVX2-FCP-NEXT: vmovdqa %ymm2, (%r9)4155; AVX2-FCP-NEXT: vmovdqa %ymm3, 96(%r9)4156; AVX2-FCP-NEXT: vmovdqa %ymm0, 32(%r9)4157; AVX2-FCP-NEXT: addq $968, %rsp # imm = 0x3C84158; AVX2-FCP-NEXT: vzeroupper4159; AVX2-FCP-NEXT: retq4160;4161; AVX512-LABEL: load_i32_stride5_vf32:4162; AVX512: # %bb.0:4163; AVX512-NEXT: vmovdqa64 576(%rdi), %zmm24164; AVX512-NEXT: vmovdqa64 384(%rdi), %zmm34165; AVX512-NEXT: vmovdqa64 320(%rdi), %zmm04166; AVX512-NEXT: vmovdqa64 512(%rdi), %zmm54167; AVX512-NEXT: vmovdqa64 448(%rdi), %zmm44168; AVX512-NEXT: vmovdqa64 256(%rdi), %zmm74169; AVX512-NEXT: vmovdqa64 (%rdi), %zmm14170; AVX512-NEXT: vmovdqa64 64(%rdi), %zmm104171; AVX512-NEXT: vmovdqa64 128(%rdi), %zmm94172; AVX512-NEXT: vmovdqa64 192(%rdi), %zmm114173; AVX512-NEXT: vbroadcasti64x4 {{.*#+}} zmm12 = [8,13,18,23,28,0,0,3,8,13,18,23,28,0,0,3]4174; AVX512-NEXT: # zmm12 = mem[0,1,2,3,0,1,2,3]4175; AVX512-NEXT: vmovdqa64 %zmm9, %zmm134176; AVX512-NEXT: vpermt2d %zmm11, %zmm12, %zmm134177; AVX512-NEXT: vpmovsxbd {{.*#+}} ymm6 = [0,5,10,15,20,25,30,0]4178; AVX512-NEXT: vmovdqa64 %zmm1, %zmm84179; AVX512-NEXT: vpermt2d %zmm10, %zmm6, %zmm84180; AVX512-NEXT: movw $8064, %ax # imm = 0x1F804181; AVX512-NEXT: kmovw %eax, %k14182; AVX512-NEXT: vmovdqa32 %zmm13, %zmm8 {%k1}4183; AVX512-NEXT: vpmovsxbd {{.*#+}} zmm13 = [0,1,2,3,4,5,6,7,8,9,10,11,12,17,22,27]4184; AVX512-NEXT: vpermt2d %zmm7, %zmm13, %zmm84185; AVX512-NEXT: vpermi2d %zmm5, %zmm4, %zmm124186; AVX512-NEXT: vpermi2d %zmm3, %zmm0, %zmm64187; AVX512-NEXT: vmovdqa32 %zmm12, %zmm6 {%k1}4188; AVX512-NEXT: vpermt2d %zmm2, %zmm13, %zmm64189; AVX512-NEXT: vbroadcasti64x4 {{.*#+}} zmm14 = [9,14,19,24,29,0,0,4,9,14,19,24,29,0,0,4]4190; AVX512-NEXT: # zmm14 = mem[0,1,2,3,0,1,2,3]4191; AVX512-NEXT: vmovdqa64 %zmm9, %zmm154192; AVX512-NEXT: vpermt2d %zmm11, %zmm14, %zmm154193; AVX512-NEXT: vpmovsxbd {{.*#+}} ymm12 = [17,22,27,0,5,10,15,0]4194; AVX512-NEXT: vmovdqa64 %zmm10, %zmm134195; AVX512-NEXT: vpermt2d %zmm1, %zmm12, %zmm134196; AVX512-NEXT: vmovdqa32 %zmm15, %zmm13 {%k1}4197; AVX512-NEXT: vpmovsxbd {{.*#+}} zmm15 = [0,1,2,3,4,5,6,7,8,9,10,11,12,18,23,28]4198; AVX512-NEXT: vpermt2d %zmm7, %zmm15, %zmm134199; AVX512-NEXT: vpermi2d %zmm5, %zmm4, %zmm144200; AVX512-NEXT: vpermi2d %zmm0, %zmm3, %zmm124201; AVX512-NEXT: vmovdqa32 %zmm14, %zmm12 {%k1}4202; AVX512-NEXT: vpermt2d %zmm2, %zmm15, %zmm124203; AVX512-NEXT: vpmovsxbd {{.*#+}} ymm16 = [2,7,12,17,22,27,0,0]4204; AVX512-NEXT: vmovdqa64 %zmm1, %zmm174205; AVX512-NEXT: vpermt2d %zmm10, %zmm16, %zmm174206; AVX512-NEXT: vbroadcasti64x4 {{.*#+}} zmm15 = [10,15,20,25,30,0,0,5,10,15,20,25,30,0,0,5]4207; AVX512-NEXT: # zmm15 = mem[0,1,2,3,0,1,2,3]4208; AVX512-NEXT: vmovdqa64 %zmm9, %zmm144209; AVX512-NEXT: vpermt2d %zmm11, %zmm15, %zmm144210; AVX512-NEXT: movb $7, %al4211; AVX512-NEXT: kmovw %eax, %k14212; AVX512-NEXT: vmovdqa64 %zmm17, %zmm14 {%k1}4213; AVX512-NEXT: vpmovsxbd {{.*#+}} zmm17 = [0,1,2,3,4,5,6,7,8,9,10,11,12,19,24,29]4214; AVX512-NEXT: vpermt2d %zmm7, %zmm17, %zmm144215; AVX512-NEXT: vpermi2d %zmm5, %zmm4, %zmm154216; AVX512-NEXT: vpermi2d %zmm3, %zmm0, %zmm164217; AVX512-NEXT: vmovdqa64 %zmm16, %zmm15 {%k1}4218; AVX512-NEXT: vpermt2d %zmm2, %zmm17, %zmm154219; AVX512-NEXT: vpmovsxbd {{.*#+}} ymm16 = [3,8,13,18,23,28,0,0]4220; AVX512-NEXT: vmovdqa64 %zmm1, %zmm174221; AVX512-NEXT: vpermt2d %zmm10, %zmm16, %zmm174222; AVX512-NEXT: vbroadcasti64x4 {{.*#+}} zmm18 = [27,0,5,10,15,0,17,22,27,0,5,10,15,0,17,22]4223; AVX512-NEXT: # zmm18 = mem[0,1,2,3,0,1,2,3]4224; AVX512-NEXT: vmovdqa64 %zmm11, %zmm194225; AVX512-NEXT: vpermt2d %zmm9, %zmm18, %zmm194226; AVX512-NEXT: vmovdqa64 %zmm17, %zmm19 {%k1}4227; AVX512-NEXT: vpmovsxbd {{.*#+}} zmm17 = [0,1,2,3,4,5,6,7,8,9,10,11,12,20,25,30]4228; AVX512-NEXT: vpermt2d %zmm7, %zmm17, %zmm194229; AVX512-NEXT: vpermi2d %zmm4, %zmm5, %zmm184230; AVX512-NEXT: vpermi2d %zmm3, %zmm0, %zmm164231; AVX512-NEXT: vmovdqa64 %zmm16, %zmm18 {%k1}4232; AVX512-NEXT: vpermt2d %zmm2, %zmm17, %zmm184233; AVX512-NEXT: vbroadcasti64x4 {{.*#+}} zmm16 = [12,17,22,27,0,0,2,7,12,17,22,27,0,0,2,7]4234; AVX512-NEXT: # zmm16 = mem[0,1,2,3,0,1,2,3]4235; AVX512-NEXT: vpermt2d %zmm11, %zmm16, %zmm94236; AVX512-NEXT: vpmovsxbd {{.*#+}} ymm11 = [4,9,14,19,24,29,0,0]4237; AVX512-NEXT: vpermt2d %zmm10, %zmm11, %zmm14238; AVX512-NEXT: movb $56, %al4239; AVX512-NEXT: kmovw %eax, %k14240; AVX512-NEXT: vmovdqa64 %zmm9, %zmm1 {%k1}4241; AVX512-NEXT: vpmovsxbd {{.*#+}} zmm9 = [0,1,2,3,4,5,6,7,8,9,10,11,16,21,26,31]4242; AVX512-NEXT: vpermt2d %zmm7, %zmm9, %zmm14243; AVX512-NEXT: vpermt2d %zmm5, %zmm16, %zmm44244; AVX512-NEXT: vpermt2d %zmm3, %zmm11, %zmm04245; AVX512-NEXT: vmovdqa64 %zmm4, %zmm0 {%k1}4246; AVX512-NEXT: vpermt2d %zmm2, %zmm9, %zmm04247; AVX512-NEXT: vmovdqa64 %zmm6, 64(%rsi)4248; AVX512-NEXT: vmovdqa64 %zmm8, (%rsi)4249; AVX512-NEXT: vmovdqa64 %zmm12, 64(%rdx)4250; AVX512-NEXT: vmovdqa64 %zmm13, (%rdx)4251; AVX512-NEXT: vmovdqa64 %zmm15, 64(%rcx)4252; AVX512-NEXT: vmovdqa64 %zmm14, (%rcx)4253; AVX512-NEXT: vmovdqa64 %zmm18, 64(%r8)4254; AVX512-NEXT: vmovdqa64 %zmm19, (%r8)4255; AVX512-NEXT: vmovdqa64 %zmm0, 64(%r9)4256; AVX512-NEXT: vmovdqa64 %zmm1, (%r9)4257; AVX512-NEXT: vzeroupper4258; AVX512-NEXT: retq4259;4260; AVX512-FCP-LABEL: load_i32_stride5_vf32:4261; AVX512-FCP: # %bb.0:4262; AVX512-FCP-NEXT: vmovdqa64 576(%rdi), %zmm24263; AVX512-FCP-NEXT: vmovdqa64 384(%rdi), %zmm34264; AVX512-FCP-NEXT: vmovdqa64 320(%rdi), %zmm04265; AVX512-FCP-NEXT: vmovdqa64 512(%rdi), %zmm54266; AVX512-FCP-NEXT: vmovdqa64 448(%rdi), %zmm44267; AVX512-FCP-NEXT: vmovdqa64 256(%rdi), %zmm74268; AVX512-FCP-NEXT: vmovdqa64 (%rdi), %zmm14269; AVX512-FCP-NEXT: vmovdqa64 64(%rdi), %zmm104270; AVX512-FCP-NEXT: vmovdqa64 128(%rdi), %zmm94271; AVX512-FCP-NEXT: vmovdqa64 192(%rdi), %zmm114272; AVX512-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm12 = [8,13,18,23,28,0,0,3,8,13,18,23,28,0,0,3]4273; AVX512-FCP-NEXT: # zmm12 = mem[0,1,2,3,0,1,2,3]4274; AVX512-FCP-NEXT: vmovdqa64 %zmm9, %zmm134275; AVX512-FCP-NEXT: vpermt2d %zmm11, %zmm12, %zmm134276; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} ymm6 = [0,5,10,15,20,25,30,0]4277; AVX512-FCP-NEXT: vmovdqa64 %zmm1, %zmm84278; AVX512-FCP-NEXT: vpermt2d %zmm10, %zmm6, %zmm84279; AVX512-FCP-NEXT: movw $8064, %ax # imm = 0x1F804280; AVX512-FCP-NEXT: kmovw %eax, %k14281; AVX512-FCP-NEXT: vmovdqa32 %zmm13, %zmm8 {%k1}4282; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} zmm13 = [0,1,2,3,4,5,6,7,8,9,10,11,12,17,22,27]4283; AVX512-FCP-NEXT: vpermt2d %zmm7, %zmm13, %zmm84284; AVX512-FCP-NEXT: vpermi2d %zmm5, %zmm4, %zmm124285; AVX512-FCP-NEXT: vpermi2d %zmm3, %zmm0, %zmm64286; AVX512-FCP-NEXT: vmovdqa32 %zmm12, %zmm6 {%k1}4287; AVX512-FCP-NEXT: vpermt2d %zmm2, %zmm13, %zmm64288; AVX512-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm14 = [9,14,19,24,29,0,0,4,9,14,19,24,29,0,0,4]4289; AVX512-FCP-NEXT: # zmm14 = mem[0,1,2,3,0,1,2,3]4290; AVX512-FCP-NEXT: vmovdqa64 %zmm9, %zmm154291; AVX512-FCP-NEXT: vpermt2d %zmm11, %zmm14, %zmm154292; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} ymm12 = [17,22,27,0,5,10,15,0]4293; AVX512-FCP-NEXT: vmovdqa64 %zmm10, %zmm134294; AVX512-FCP-NEXT: vpermt2d %zmm1, %zmm12, %zmm134295; AVX512-FCP-NEXT: vmovdqa32 %zmm15, %zmm13 {%k1}4296; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} zmm15 = [0,1,2,3,4,5,6,7,8,9,10,11,12,18,23,28]4297; AVX512-FCP-NEXT: vpermt2d %zmm7, %zmm15, %zmm134298; AVX512-FCP-NEXT: vpermi2d %zmm5, %zmm4, %zmm144299; AVX512-FCP-NEXT: vpermi2d %zmm0, %zmm3, %zmm124300; AVX512-FCP-NEXT: vmovdqa32 %zmm14, %zmm12 {%k1}4301; AVX512-FCP-NEXT: vpermt2d %zmm2, %zmm15, %zmm124302; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} ymm16 = [2,7,12,17,22,27,0,0]4303; AVX512-FCP-NEXT: vmovdqa64 %zmm1, %zmm174304; AVX512-FCP-NEXT: vpermt2d %zmm10, %zmm16, %zmm174305; AVX512-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm15 = [10,15,20,25,30,0,0,5,10,15,20,25,30,0,0,5]4306; AVX512-FCP-NEXT: # zmm15 = mem[0,1,2,3,0,1,2,3]4307; AVX512-FCP-NEXT: vmovdqa64 %zmm9, %zmm144308; AVX512-FCP-NEXT: vpermt2d %zmm11, %zmm15, %zmm144309; AVX512-FCP-NEXT: movb $7, %al4310; AVX512-FCP-NEXT: kmovw %eax, %k14311; AVX512-FCP-NEXT: vmovdqa64 %zmm17, %zmm14 {%k1}4312; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} zmm17 = [0,1,2,3,4,5,6,7,8,9,10,11,12,19,24,29]4313; AVX512-FCP-NEXT: vpermt2d %zmm7, %zmm17, %zmm144314; AVX512-FCP-NEXT: vpermi2d %zmm5, %zmm4, %zmm154315; AVX512-FCP-NEXT: vpermi2d %zmm3, %zmm0, %zmm164316; AVX512-FCP-NEXT: vmovdqa64 %zmm16, %zmm15 {%k1}4317; AVX512-FCP-NEXT: vpermt2d %zmm2, %zmm17, %zmm154318; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} ymm16 = [3,8,13,18,23,28,0,0]4319; AVX512-FCP-NEXT: vmovdqa64 %zmm1, %zmm174320; AVX512-FCP-NEXT: vpermt2d %zmm10, %zmm16, %zmm174321; AVX512-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm18 = [27,0,5,10,15,0,17,22,27,0,5,10,15,0,17,22]4322; AVX512-FCP-NEXT: # zmm18 = mem[0,1,2,3,0,1,2,3]4323; AVX512-FCP-NEXT: vmovdqa64 %zmm11, %zmm194324; AVX512-FCP-NEXT: vpermt2d %zmm9, %zmm18, %zmm194325; AVX512-FCP-NEXT: vmovdqa64 %zmm17, %zmm19 {%k1}4326; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} zmm17 = [0,1,2,3,4,5,6,7,8,9,10,11,12,20,25,30]4327; AVX512-FCP-NEXT: vpermt2d %zmm7, %zmm17, %zmm194328; AVX512-FCP-NEXT: vpermi2d %zmm4, %zmm5, %zmm184329; AVX512-FCP-NEXT: vpermi2d %zmm3, %zmm0, %zmm164330; AVX512-FCP-NEXT: vmovdqa64 %zmm16, %zmm18 {%k1}4331; AVX512-FCP-NEXT: vpermt2d %zmm2, %zmm17, %zmm184332; AVX512-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm16 = [12,17,22,27,0,0,2,7,12,17,22,27,0,0,2,7]4333; AVX512-FCP-NEXT: # zmm16 = mem[0,1,2,3,0,1,2,3]4334; AVX512-FCP-NEXT: vpermt2d %zmm11, %zmm16, %zmm94335; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} ymm11 = [4,9,14,19,24,29,0,0]4336; AVX512-FCP-NEXT: vpermt2d %zmm10, %zmm11, %zmm14337; AVX512-FCP-NEXT: movb $56, %al4338; AVX512-FCP-NEXT: kmovw %eax, %k14339; AVX512-FCP-NEXT: vmovdqa64 %zmm9, %zmm1 {%k1}4340; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} zmm9 = [0,1,2,3,4,5,6,7,8,9,10,11,16,21,26,31]4341; AVX512-FCP-NEXT: vpermt2d %zmm7, %zmm9, %zmm14342; AVX512-FCP-NEXT: vpermt2d %zmm5, %zmm16, %zmm44343; AVX512-FCP-NEXT: vpermt2d %zmm3, %zmm11, %zmm04344; AVX512-FCP-NEXT: vmovdqa64 %zmm4, %zmm0 {%k1}4345; AVX512-FCP-NEXT: vpermt2d %zmm2, %zmm9, %zmm04346; AVX512-FCP-NEXT: vmovdqa64 %zmm6, 64(%rsi)4347; AVX512-FCP-NEXT: vmovdqa64 %zmm8, (%rsi)4348; AVX512-FCP-NEXT: vmovdqa64 %zmm12, 64(%rdx)4349; AVX512-FCP-NEXT: vmovdqa64 %zmm13, (%rdx)4350; AVX512-FCP-NEXT: vmovdqa64 %zmm15, 64(%rcx)4351; AVX512-FCP-NEXT: vmovdqa64 %zmm14, (%rcx)4352; AVX512-FCP-NEXT: vmovdqa64 %zmm18, 64(%r8)4353; AVX512-FCP-NEXT: vmovdqa64 %zmm19, (%r8)4354; AVX512-FCP-NEXT: vmovdqa64 %zmm0, 64(%r9)4355; AVX512-FCP-NEXT: vmovdqa64 %zmm1, (%r9)4356; AVX512-FCP-NEXT: vzeroupper4357; AVX512-FCP-NEXT: retq4358;4359; AVX512DQ-LABEL: load_i32_stride5_vf32:4360; AVX512DQ: # %bb.0:4361; AVX512DQ-NEXT: vmovdqa64 576(%rdi), %zmm24362; AVX512DQ-NEXT: vmovdqa64 384(%rdi), %zmm34363; AVX512DQ-NEXT: vmovdqa64 320(%rdi), %zmm04364; AVX512DQ-NEXT: vmovdqa64 512(%rdi), %zmm54365; AVX512DQ-NEXT: vmovdqa64 448(%rdi), %zmm44366; AVX512DQ-NEXT: vmovdqa64 256(%rdi), %zmm74367; AVX512DQ-NEXT: vmovdqa64 (%rdi), %zmm14368; AVX512DQ-NEXT: vmovdqa64 64(%rdi), %zmm104369; AVX512DQ-NEXT: vmovdqa64 128(%rdi), %zmm94370; AVX512DQ-NEXT: vmovdqa64 192(%rdi), %zmm114371; AVX512DQ-NEXT: vbroadcasti64x4 {{.*#+}} zmm12 = [8,13,18,23,28,0,0,3,8,13,18,23,28,0,0,3]4372; AVX512DQ-NEXT: # zmm12 = mem[0,1,2,3,0,1,2,3]4373; AVX512DQ-NEXT: vmovdqa64 %zmm9, %zmm134374; AVX512DQ-NEXT: vpermt2d %zmm11, %zmm12, %zmm134375; AVX512DQ-NEXT: vpmovsxbd {{.*#+}} ymm6 = [0,5,10,15,20,25,30,0]4376; AVX512DQ-NEXT: vmovdqa64 %zmm1, %zmm84377; AVX512DQ-NEXT: vpermt2d %zmm10, %zmm6, %zmm84378; AVX512DQ-NEXT: movw $8064, %ax # imm = 0x1F804379; AVX512DQ-NEXT: kmovw %eax, %k14380; AVX512DQ-NEXT: vmovdqa32 %zmm13, %zmm8 {%k1}4381; AVX512DQ-NEXT: vpmovsxbd {{.*#+}} zmm13 = [0,1,2,3,4,5,6,7,8,9,10,11,12,17,22,27]4382; AVX512DQ-NEXT: vpermt2d %zmm7, %zmm13, %zmm84383; AVX512DQ-NEXT: vpermi2d %zmm5, %zmm4, %zmm124384; AVX512DQ-NEXT: vpermi2d %zmm3, %zmm0, %zmm64385; AVX512DQ-NEXT: vmovdqa32 %zmm12, %zmm6 {%k1}4386; AVX512DQ-NEXT: vpermt2d %zmm2, %zmm13, %zmm64387; AVX512DQ-NEXT: vbroadcasti64x4 {{.*#+}} zmm14 = [9,14,19,24,29,0,0,4,9,14,19,24,29,0,0,4]4388; AVX512DQ-NEXT: # zmm14 = mem[0,1,2,3,0,1,2,3]4389; AVX512DQ-NEXT: vmovdqa64 %zmm9, %zmm154390; AVX512DQ-NEXT: vpermt2d %zmm11, %zmm14, %zmm154391; AVX512DQ-NEXT: vpmovsxbd {{.*#+}} ymm12 = [17,22,27,0,5,10,15,0]4392; AVX512DQ-NEXT: vmovdqa64 %zmm10, %zmm134393; AVX512DQ-NEXT: vpermt2d %zmm1, %zmm12, %zmm134394; AVX512DQ-NEXT: vmovdqa32 %zmm15, %zmm13 {%k1}4395; AVX512DQ-NEXT: vpmovsxbd {{.*#+}} zmm15 = [0,1,2,3,4,5,6,7,8,9,10,11,12,18,23,28]4396; AVX512DQ-NEXT: vpermt2d %zmm7, %zmm15, %zmm134397; AVX512DQ-NEXT: vpermi2d %zmm5, %zmm4, %zmm144398; AVX512DQ-NEXT: vpermi2d %zmm0, %zmm3, %zmm124399; AVX512DQ-NEXT: vmovdqa32 %zmm14, %zmm12 {%k1}4400; AVX512DQ-NEXT: vpermt2d %zmm2, %zmm15, %zmm124401; AVX512DQ-NEXT: vpmovsxbd {{.*#+}} ymm16 = [2,7,12,17,22,27,0,0]4402; AVX512DQ-NEXT: vmovdqa64 %zmm1, %zmm174403; AVX512DQ-NEXT: vpermt2d %zmm10, %zmm16, %zmm174404; AVX512DQ-NEXT: vbroadcasti64x4 {{.*#+}} zmm15 = [10,15,20,25,30,0,0,5,10,15,20,25,30,0,0,5]4405; AVX512DQ-NEXT: # zmm15 = mem[0,1,2,3,0,1,2,3]4406; AVX512DQ-NEXT: vmovdqa64 %zmm9, %zmm144407; AVX512DQ-NEXT: vpermt2d %zmm11, %zmm15, %zmm144408; AVX512DQ-NEXT: movb $7, %al4409; AVX512DQ-NEXT: kmovw %eax, %k14410; AVX512DQ-NEXT: vmovdqa64 %zmm17, %zmm14 {%k1}4411; AVX512DQ-NEXT: vpmovsxbd {{.*#+}} zmm17 = [0,1,2,3,4,5,6,7,8,9,10,11,12,19,24,29]4412; AVX512DQ-NEXT: vpermt2d %zmm7, %zmm17, %zmm144413; AVX512DQ-NEXT: vpermi2d %zmm5, %zmm4, %zmm154414; AVX512DQ-NEXT: vpermi2d %zmm3, %zmm0, %zmm164415; AVX512DQ-NEXT: vmovdqa64 %zmm16, %zmm15 {%k1}4416; AVX512DQ-NEXT: vpermt2d %zmm2, %zmm17, %zmm154417; AVX512DQ-NEXT: vpmovsxbd {{.*#+}} ymm16 = [3,8,13,18,23,28,0,0]4418; AVX512DQ-NEXT: vmovdqa64 %zmm1, %zmm174419; AVX512DQ-NEXT: vpermt2d %zmm10, %zmm16, %zmm174420; AVX512DQ-NEXT: vbroadcasti64x4 {{.*#+}} zmm18 = [27,0,5,10,15,0,17,22,27,0,5,10,15,0,17,22]4421; AVX512DQ-NEXT: # zmm18 = mem[0,1,2,3,0,1,2,3]4422; AVX512DQ-NEXT: vmovdqa64 %zmm11, %zmm194423; AVX512DQ-NEXT: vpermt2d %zmm9, %zmm18, %zmm194424; AVX512DQ-NEXT: vmovdqa64 %zmm17, %zmm19 {%k1}4425; AVX512DQ-NEXT: vpmovsxbd {{.*#+}} zmm17 = [0,1,2,3,4,5,6,7,8,9,10,11,12,20,25,30]4426; AVX512DQ-NEXT: vpermt2d %zmm7, %zmm17, %zmm194427; AVX512DQ-NEXT: vpermi2d %zmm4, %zmm5, %zmm184428; AVX512DQ-NEXT: vpermi2d %zmm3, %zmm0, %zmm164429; AVX512DQ-NEXT: vmovdqa64 %zmm16, %zmm18 {%k1}4430; AVX512DQ-NEXT: vpermt2d %zmm2, %zmm17, %zmm184431; AVX512DQ-NEXT: vbroadcasti64x4 {{.*#+}} zmm16 = [12,17,22,27,0,0,2,7,12,17,22,27,0,0,2,7]4432; AVX512DQ-NEXT: # zmm16 = mem[0,1,2,3,0,1,2,3]4433; AVX512DQ-NEXT: vpermt2d %zmm11, %zmm16, %zmm94434; AVX512DQ-NEXT: vpmovsxbd {{.*#+}} ymm11 = [4,9,14,19,24,29,0,0]4435; AVX512DQ-NEXT: vpermt2d %zmm10, %zmm11, %zmm14436; AVX512DQ-NEXT: movb $56, %al4437; AVX512DQ-NEXT: kmovw %eax, %k14438; AVX512DQ-NEXT: vmovdqa64 %zmm9, %zmm1 {%k1}4439; AVX512DQ-NEXT: vpmovsxbd {{.*#+}} zmm9 = [0,1,2,3,4,5,6,7,8,9,10,11,16,21,26,31]4440; AVX512DQ-NEXT: vpermt2d %zmm7, %zmm9, %zmm14441; AVX512DQ-NEXT: vpermt2d %zmm5, %zmm16, %zmm44442; AVX512DQ-NEXT: vpermt2d %zmm3, %zmm11, %zmm04443; AVX512DQ-NEXT: vmovdqa64 %zmm4, %zmm0 {%k1}4444; AVX512DQ-NEXT: vpermt2d %zmm2, %zmm9, %zmm04445; AVX512DQ-NEXT: vmovdqa64 %zmm6, 64(%rsi)4446; AVX512DQ-NEXT: vmovdqa64 %zmm8, (%rsi)4447; AVX512DQ-NEXT: vmovdqa64 %zmm12, 64(%rdx)4448; AVX512DQ-NEXT: vmovdqa64 %zmm13, (%rdx)4449; AVX512DQ-NEXT: vmovdqa64 %zmm15, 64(%rcx)4450; AVX512DQ-NEXT: vmovdqa64 %zmm14, (%rcx)4451; AVX512DQ-NEXT: vmovdqa64 %zmm18, 64(%r8)4452; AVX512DQ-NEXT: vmovdqa64 %zmm19, (%r8)4453; AVX512DQ-NEXT: vmovdqa64 %zmm0, 64(%r9)4454; AVX512DQ-NEXT: vmovdqa64 %zmm1, (%r9)4455; AVX512DQ-NEXT: vzeroupper4456; AVX512DQ-NEXT: retq4457;4458; AVX512DQ-FCP-LABEL: load_i32_stride5_vf32:4459; AVX512DQ-FCP: # %bb.0:4460; AVX512DQ-FCP-NEXT: vmovdqa64 576(%rdi), %zmm24461; AVX512DQ-FCP-NEXT: vmovdqa64 384(%rdi), %zmm34462; AVX512DQ-FCP-NEXT: vmovdqa64 320(%rdi), %zmm04463; AVX512DQ-FCP-NEXT: vmovdqa64 512(%rdi), %zmm54464; AVX512DQ-FCP-NEXT: vmovdqa64 448(%rdi), %zmm44465; AVX512DQ-FCP-NEXT: vmovdqa64 256(%rdi), %zmm74466; AVX512DQ-FCP-NEXT: vmovdqa64 (%rdi), %zmm14467; AVX512DQ-FCP-NEXT: vmovdqa64 64(%rdi), %zmm104468; AVX512DQ-FCP-NEXT: vmovdqa64 128(%rdi), %zmm94469; AVX512DQ-FCP-NEXT: vmovdqa64 192(%rdi), %zmm114470; AVX512DQ-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm12 = [8,13,18,23,28,0,0,3,8,13,18,23,28,0,0,3]4471; AVX512DQ-FCP-NEXT: # zmm12 = mem[0,1,2,3,0,1,2,3]4472; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm9, %zmm134473; AVX512DQ-FCP-NEXT: vpermt2d %zmm11, %zmm12, %zmm134474; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} ymm6 = [0,5,10,15,20,25,30,0]4475; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm1, %zmm84476; AVX512DQ-FCP-NEXT: vpermt2d %zmm10, %zmm6, %zmm84477; AVX512DQ-FCP-NEXT: movw $8064, %ax # imm = 0x1F804478; AVX512DQ-FCP-NEXT: kmovw %eax, %k14479; AVX512DQ-FCP-NEXT: vmovdqa32 %zmm13, %zmm8 {%k1}4480; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} zmm13 = [0,1,2,3,4,5,6,7,8,9,10,11,12,17,22,27]4481; AVX512DQ-FCP-NEXT: vpermt2d %zmm7, %zmm13, %zmm84482; AVX512DQ-FCP-NEXT: vpermi2d %zmm5, %zmm4, %zmm124483; AVX512DQ-FCP-NEXT: vpermi2d %zmm3, %zmm0, %zmm64484; AVX512DQ-FCP-NEXT: vmovdqa32 %zmm12, %zmm6 {%k1}4485; AVX512DQ-FCP-NEXT: vpermt2d %zmm2, %zmm13, %zmm64486; AVX512DQ-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm14 = [9,14,19,24,29,0,0,4,9,14,19,24,29,0,0,4]4487; AVX512DQ-FCP-NEXT: # zmm14 = mem[0,1,2,3,0,1,2,3]4488; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm9, %zmm154489; AVX512DQ-FCP-NEXT: vpermt2d %zmm11, %zmm14, %zmm154490; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} ymm12 = [17,22,27,0,5,10,15,0]4491; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm10, %zmm134492; AVX512DQ-FCP-NEXT: vpermt2d %zmm1, %zmm12, %zmm134493; AVX512DQ-FCP-NEXT: vmovdqa32 %zmm15, %zmm13 {%k1}4494; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} zmm15 = [0,1,2,3,4,5,6,7,8,9,10,11,12,18,23,28]4495; AVX512DQ-FCP-NEXT: vpermt2d %zmm7, %zmm15, %zmm134496; AVX512DQ-FCP-NEXT: vpermi2d %zmm5, %zmm4, %zmm144497; AVX512DQ-FCP-NEXT: vpermi2d %zmm0, %zmm3, %zmm124498; AVX512DQ-FCP-NEXT: vmovdqa32 %zmm14, %zmm12 {%k1}4499; AVX512DQ-FCP-NEXT: vpermt2d %zmm2, %zmm15, %zmm124500; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} ymm16 = [2,7,12,17,22,27,0,0]4501; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm1, %zmm174502; AVX512DQ-FCP-NEXT: vpermt2d %zmm10, %zmm16, %zmm174503; AVX512DQ-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm15 = [10,15,20,25,30,0,0,5,10,15,20,25,30,0,0,5]4504; AVX512DQ-FCP-NEXT: # zmm15 = mem[0,1,2,3,0,1,2,3]4505; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm9, %zmm144506; AVX512DQ-FCP-NEXT: vpermt2d %zmm11, %zmm15, %zmm144507; AVX512DQ-FCP-NEXT: movb $7, %al4508; AVX512DQ-FCP-NEXT: kmovw %eax, %k14509; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm17, %zmm14 {%k1}4510; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} zmm17 = [0,1,2,3,4,5,6,7,8,9,10,11,12,19,24,29]4511; AVX512DQ-FCP-NEXT: vpermt2d %zmm7, %zmm17, %zmm144512; AVX512DQ-FCP-NEXT: vpermi2d %zmm5, %zmm4, %zmm154513; AVX512DQ-FCP-NEXT: vpermi2d %zmm3, %zmm0, %zmm164514; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm16, %zmm15 {%k1}4515; AVX512DQ-FCP-NEXT: vpermt2d %zmm2, %zmm17, %zmm154516; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} ymm16 = [3,8,13,18,23,28,0,0]4517; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm1, %zmm174518; AVX512DQ-FCP-NEXT: vpermt2d %zmm10, %zmm16, %zmm174519; AVX512DQ-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm18 = [27,0,5,10,15,0,17,22,27,0,5,10,15,0,17,22]4520; AVX512DQ-FCP-NEXT: # zmm18 = mem[0,1,2,3,0,1,2,3]4521; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm11, %zmm194522; AVX512DQ-FCP-NEXT: vpermt2d %zmm9, %zmm18, %zmm194523; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm17, %zmm19 {%k1}4524; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} zmm17 = [0,1,2,3,4,5,6,7,8,9,10,11,12,20,25,30]4525; AVX512DQ-FCP-NEXT: vpermt2d %zmm7, %zmm17, %zmm194526; AVX512DQ-FCP-NEXT: vpermi2d %zmm4, %zmm5, %zmm184527; AVX512DQ-FCP-NEXT: vpermi2d %zmm3, %zmm0, %zmm164528; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm16, %zmm18 {%k1}4529; AVX512DQ-FCP-NEXT: vpermt2d %zmm2, %zmm17, %zmm184530; AVX512DQ-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm16 = [12,17,22,27,0,0,2,7,12,17,22,27,0,0,2,7]4531; AVX512DQ-FCP-NEXT: # zmm16 = mem[0,1,2,3,0,1,2,3]4532; AVX512DQ-FCP-NEXT: vpermt2d %zmm11, %zmm16, %zmm94533; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} ymm11 = [4,9,14,19,24,29,0,0]4534; AVX512DQ-FCP-NEXT: vpermt2d %zmm10, %zmm11, %zmm14535; AVX512DQ-FCP-NEXT: movb $56, %al4536; AVX512DQ-FCP-NEXT: kmovw %eax, %k14537; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm9, %zmm1 {%k1}4538; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} zmm9 = [0,1,2,3,4,5,6,7,8,9,10,11,16,21,26,31]4539; AVX512DQ-FCP-NEXT: vpermt2d %zmm7, %zmm9, %zmm14540; AVX512DQ-FCP-NEXT: vpermt2d %zmm5, %zmm16, %zmm44541; AVX512DQ-FCP-NEXT: vpermt2d %zmm3, %zmm11, %zmm04542; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm4, %zmm0 {%k1}4543; AVX512DQ-FCP-NEXT: vpermt2d %zmm2, %zmm9, %zmm04544; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm6, 64(%rsi)4545; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm8, (%rsi)4546; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm12, 64(%rdx)4547; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm13, (%rdx)4548; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm15, 64(%rcx)4549; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm14, (%rcx)4550; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm18, 64(%r8)4551; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm19, (%r8)4552; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm0, 64(%r9)4553; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm1, (%r9)4554; AVX512DQ-FCP-NEXT: vzeroupper4555; AVX512DQ-FCP-NEXT: retq4556;4557; AVX512BW-LABEL: load_i32_stride5_vf32:4558; AVX512BW: # %bb.0:4559; AVX512BW-NEXT: vmovdqa64 576(%rdi), %zmm24560; AVX512BW-NEXT: vmovdqa64 384(%rdi), %zmm34561; AVX512BW-NEXT: vmovdqa64 320(%rdi), %zmm04562; AVX512BW-NEXT: vmovdqa64 512(%rdi), %zmm54563; AVX512BW-NEXT: vmovdqa64 448(%rdi), %zmm44564; AVX512BW-NEXT: vmovdqa64 256(%rdi), %zmm74565; AVX512BW-NEXT: vmovdqa64 (%rdi), %zmm14566; AVX512BW-NEXT: vmovdqa64 64(%rdi), %zmm104567; AVX512BW-NEXT: vmovdqa64 128(%rdi), %zmm94568; AVX512BW-NEXT: vmovdqa64 192(%rdi), %zmm114569; AVX512BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm12 = [8,13,18,23,28,0,0,3,8,13,18,23,28,0,0,3]4570; AVX512BW-NEXT: # zmm12 = mem[0,1,2,3,0,1,2,3]4571; AVX512BW-NEXT: vmovdqa64 %zmm9, %zmm134572; AVX512BW-NEXT: vpermt2d %zmm11, %zmm12, %zmm134573; AVX512BW-NEXT: vpmovsxbd {{.*#+}} ymm6 = [0,5,10,15,20,25,30,0]4574; AVX512BW-NEXT: vmovdqa64 %zmm1, %zmm84575; AVX512BW-NEXT: vpermt2d %zmm10, %zmm6, %zmm84576; AVX512BW-NEXT: movw $8064, %ax # imm = 0x1F804577; AVX512BW-NEXT: kmovd %eax, %k14578; AVX512BW-NEXT: vmovdqa32 %zmm13, %zmm8 {%k1}4579; AVX512BW-NEXT: vpmovsxbd {{.*#+}} zmm13 = [0,1,2,3,4,5,6,7,8,9,10,11,12,17,22,27]4580; AVX512BW-NEXT: vpermt2d %zmm7, %zmm13, %zmm84581; AVX512BW-NEXT: vpermi2d %zmm5, %zmm4, %zmm124582; AVX512BW-NEXT: vpermi2d %zmm3, %zmm0, %zmm64583; AVX512BW-NEXT: vmovdqa32 %zmm12, %zmm6 {%k1}4584; AVX512BW-NEXT: vpermt2d %zmm2, %zmm13, %zmm64585; AVX512BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm14 = [9,14,19,24,29,0,0,4,9,14,19,24,29,0,0,4]4586; AVX512BW-NEXT: # zmm14 = mem[0,1,2,3,0,1,2,3]4587; AVX512BW-NEXT: vmovdqa64 %zmm9, %zmm154588; AVX512BW-NEXT: vpermt2d %zmm11, %zmm14, %zmm154589; AVX512BW-NEXT: vpmovsxbd {{.*#+}} ymm12 = [17,22,27,0,5,10,15,0]4590; AVX512BW-NEXT: vmovdqa64 %zmm10, %zmm134591; AVX512BW-NEXT: vpermt2d %zmm1, %zmm12, %zmm134592; AVX512BW-NEXT: vmovdqa32 %zmm15, %zmm13 {%k1}4593; AVX512BW-NEXT: vpmovsxbd {{.*#+}} zmm15 = [0,1,2,3,4,5,6,7,8,9,10,11,12,18,23,28]4594; AVX512BW-NEXT: vpermt2d %zmm7, %zmm15, %zmm134595; AVX512BW-NEXT: vpermi2d %zmm5, %zmm4, %zmm144596; AVX512BW-NEXT: vpermi2d %zmm0, %zmm3, %zmm124597; AVX512BW-NEXT: vmovdqa32 %zmm14, %zmm12 {%k1}4598; AVX512BW-NEXT: vpermt2d %zmm2, %zmm15, %zmm124599; AVX512BW-NEXT: vpmovsxbd {{.*#+}} ymm16 = [2,7,12,17,22,27,0,0]4600; AVX512BW-NEXT: vmovdqa64 %zmm1, %zmm174601; AVX512BW-NEXT: vpermt2d %zmm10, %zmm16, %zmm174602; AVX512BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm15 = [10,15,20,25,30,0,0,5,10,15,20,25,30,0,0,5]4603; AVX512BW-NEXT: # zmm15 = mem[0,1,2,3,0,1,2,3]4604; AVX512BW-NEXT: vmovdqa64 %zmm9, %zmm144605; AVX512BW-NEXT: vpermt2d %zmm11, %zmm15, %zmm144606; AVX512BW-NEXT: movb $7, %al4607; AVX512BW-NEXT: kmovd %eax, %k14608; AVX512BW-NEXT: vmovdqa64 %zmm17, %zmm14 {%k1}4609; AVX512BW-NEXT: vpmovsxbd {{.*#+}} zmm17 = [0,1,2,3,4,5,6,7,8,9,10,11,12,19,24,29]4610; AVX512BW-NEXT: vpermt2d %zmm7, %zmm17, %zmm144611; AVX512BW-NEXT: vpermi2d %zmm5, %zmm4, %zmm154612; AVX512BW-NEXT: vpermi2d %zmm3, %zmm0, %zmm164613; AVX512BW-NEXT: vmovdqa64 %zmm16, %zmm15 {%k1}4614; AVX512BW-NEXT: vpermt2d %zmm2, %zmm17, %zmm154615; AVX512BW-NEXT: vpmovsxbd {{.*#+}} ymm16 = [3,8,13,18,23,28,0,0]4616; AVX512BW-NEXT: vmovdqa64 %zmm1, %zmm174617; AVX512BW-NEXT: vpermt2d %zmm10, %zmm16, %zmm174618; AVX512BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm18 = [27,0,5,10,15,0,17,22,27,0,5,10,15,0,17,22]4619; AVX512BW-NEXT: # zmm18 = mem[0,1,2,3,0,1,2,3]4620; AVX512BW-NEXT: vmovdqa64 %zmm11, %zmm194621; AVX512BW-NEXT: vpermt2d %zmm9, %zmm18, %zmm194622; AVX512BW-NEXT: vmovdqa64 %zmm17, %zmm19 {%k1}4623; AVX512BW-NEXT: vpmovsxbd {{.*#+}} zmm17 = [0,1,2,3,4,5,6,7,8,9,10,11,12,20,25,30]4624; AVX512BW-NEXT: vpermt2d %zmm7, %zmm17, %zmm194625; AVX512BW-NEXT: vpermi2d %zmm4, %zmm5, %zmm184626; AVX512BW-NEXT: vpermi2d %zmm3, %zmm0, %zmm164627; AVX512BW-NEXT: vmovdqa64 %zmm16, %zmm18 {%k1}4628; AVX512BW-NEXT: vpermt2d %zmm2, %zmm17, %zmm184629; AVX512BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm16 = [12,17,22,27,0,0,2,7,12,17,22,27,0,0,2,7]4630; AVX512BW-NEXT: # zmm16 = mem[0,1,2,3,0,1,2,3]4631; AVX512BW-NEXT: vpermt2d %zmm11, %zmm16, %zmm94632; AVX512BW-NEXT: vpmovsxbd {{.*#+}} ymm11 = [4,9,14,19,24,29,0,0]4633; AVX512BW-NEXT: vpermt2d %zmm10, %zmm11, %zmm14634; AVX512BW-NEXT: movb $56, %al4635; AVX512BW-NEXT: kmovd %eax, %k14636; AVX512BW-NEXT: vmovdqa64 %zmm9, %zmm1 {%k1}4637; AVX512BW-NEXT: vpmovsxbd {{.*#+}} zmm9 = [0,1,2,3,4,5,6,7,8,9,10,11,16,21,26,31]4638; AVX512BW-NEXT: vpermt2d %zmm7, %zmm9, %zmm14639; AVX512BW-NEXT: vpermt2d %zmm5, %zmm16, %zmm44640; AVX512BW-NEXT: vpermt2d %zmm3, %zmm11, %zmm04641; AVX512BW-NEXT: vmovdqa64 %zmm4, %zmm0 {%k1}4642; AVX512BW-NEXT: vpermt2d %zmm2, %zmm9, %zmm04643; AVX512BW-NEXT: vmovdqa64 %zmm6, 64(%rsi)4644; AVX512BW-NEXT: vmovdqa64 %zmm8, (%rsi)4645; AVX512BW-NEXT: vmovdqa64 %zmm12, 64(%rdx)4646; AVX512BW-NEXT: vmovdqa64 %zmm13, (%rdx)4647; AVX512BW-NEXT: vmovdqa64 %zmm15, 64(%rcx)4648; AVX512BW-NEXT: vmovdqa64 %zmm14, (%rcx)4649; AVX512BW-NEXT: vmovdqa64 %zmm18, 64(%r8)4650; AVX512BW-NEXT: vmovdqa64 %zmm19, (%r8)4651; AVX512BW-NEXT: vmovdqa64 %zmm0, 64(%r9)4652; AVX512BW-NEXT: vmovdqa64 %zmm1, (%r9)4653; AVX512BW-NEXT: vzeroupper4654; AVX512BW-NEXT: retq4655;4656; AVX512BW-FCP-LABEL: load_i32_stride5_vf32:4657; AVX512BW-FCP: # %bb.0:4658; AVX512BW-FCP-NEXT: vmovdqa64 576(%rdi), %zmm24659; AVX512BW-FCP-NEXT: vmovdqa64 384(%rdi), %zmm34660; AVX512BW-FCP-NEXT: vmovdqa64 320(%rdi), %zmm04661; AVX512BW-FCP-NEXT: vmovdqa64 512(%rdi), %zmm54662; AVX512BW-FCP-NEXT: vmovdqa64 448(%rdi), %zmm44663; AVX512BW-FCP-NEXT: vmovdqa64 256(%rdi), %zmm74664; AVX512BW-FCP-NEXT: vmovdqa64 (%rdi), %zmm14665; AVX512BW-FCP-NEXT: vmovdqa64 64(%rdi), %zmm104666; AVX512BW-FCP-NEXT: vmovdqa64 128(%rdi), %zmm94667; AVX512BW-FCP-NEXT: vmovdqa64 192(%rdi), %zmm114668; AVX512BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm12 = [8,13,18,23,28,0,0,3,8,13,18,23,28,0,0,3]4669; AVX512BW-FCP-NEXT: # zmm12 = mem[0,1,2,3,0,1,2,3]4670; AVX512BW-FCP-NEXT: vmovdqa64 %zmm9, %zmm134671; AVX512BW-FCP-NEXT: vpermt2d %zmm11, %zmm12, %zmm134672; AVX512BW-FCP-NEXT: vpmovsxbd {{.*#+}} ymm6 = [0,5,10,15,20,25,30,0]4673; AVX512BW-FCP-NEXT: vmovdqa64 %zmm1, %zmm84674; AVX512BW-FCP-NEXT: vpermt2d %zmm10, %zmm6, %zmm84675; AVX512BW-FCP-NEXT: movw $8064, %ax # imm = 0x1F804676; AVX512BW-FCP-NEXT: kmovd %eax, %k14677; AVX512BW-FCP-NEXT: vmovdqa32 %zmm13, %zmm8 {%k1}4678; AVX512BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm13 = [0,1,2,3,4,5,6,7,8,9,10,11,12,17,22,27]4679; AVX512BW-FCP-NEXT: vpermt2d %zmm7, %zmm13, %zmm84680; AVX512BW-FCP-NEXT: vpermi2d %zmm5, %zmm4, %zmm124681; AVX512BW-FCP-NEXT: vpermi2d %zmm3, %zmm0, %zmm64682; AVX512BW-FCP-NEXT: vmovdqa32 %zmm12, %zmm6 {%k1}4683; AVX512BW-FCP-NEXT: vpermt2d %zmm2, %zmm13, %zmm64684; AVX512BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm14 = [9,14,19,24,29,0,0,4,9,14,19,24,29,0,0,4]4685; AVX512BW-FCP-NEXT: # zmm14 = mem[0,1,2,3,0,1,2,3]4686; AVX512BW-FCP-NEXT: vmovdqa64 %zmm9, %zmm154687; AVX512BW-FCP-NEXT: vpermt2d %zmm11, %zmm14, %zmm154688; AVX512BW-FCP-NEXT: vpmovsxbd {{.*#+}} ymm12 = [17,22,27,0,5,10,15,0]4689; AVX512BW-FCP-NEXT: vmovdqa64 %zmm10, %zmm134690; AVX512BW-FCP-NEXT: vpermt2d %zmm1, %zmm12, %zmm134691; AVX512BW-FCP-NEXT: vmovdqa32 %zmm15, %zmm13 {%k1}4692; AVX512BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm15 = [0,1,2,3,4,5,6,7,8,9,10,11,12,18,23,28]4693; AVX512BW-FCP-NEXT: vpermt2d %zmm7, %zmm15, %zmm134694; AVX512BW-FCP-NEXT: vpermi2d %zmm5, %zmm4, %zmm144695; AVX512BW-FCP-NEXT: vpermi2d %zmm0, %zmm3, %zmm124696; AVX512BW-FCP-NEXT: vmovdqa32 %zmm14, %zmm12 {%k1}4697; AVX512BW-FCP-NEXT: vpermt2d %zmm2, %zmm15, %zmm124698; AVX512BW-FCP-NEXT: vpmovsxbd {{.*#+}} ymm16 = [2,7,12,17,22,27,0,0]4699; AVX512BW-FCP-NEXT: vmovdqa64 %zmm1, %zmm174700; AVX512BW-FCP-NEXT: vpermt2d %zmm10, %zmm16, %zmm174701; AVX512BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm15 = [10,15,20,25,30,0,0,5,10,15,20,25,30,0,0,5]4702; AVX512BW-FCP-NEXT: # zmm15 = mem[0,1,2,3,0,1,2,3]4703; AVX512BW-FCP-NEXT: vmovdqa64 %zmm9, %zmm144704; AVX512BW-FCP-NEXT: vpermt2d %zmm11, %zmm15, %zmm144705; AVX512BW-FCP-NEXT: movb $7, %al4706; AVX512BW-FCP-NEXT: kmovd %eax, %k14707; AVX512BW-FCP-NEXT: vmovdqa64 %zmm17, %zmm14 {%k1}4708; AVX512BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm17 = [0,1,2,3,4,5,6,7,8,9,10,11,12,19,24,29]4709; AVX512BW-FCP-NEXT: vpermt2d %zmm7, %zmm17, %zmm144710; AVX512BW-FCP-NEXT: vpermi2d %zmm5, %zmm4, %zmm154711; AVX512BW-FCP-NEXT: vpermi2d %zmm3, %zmm0, %zmm164712; AVX512BW-FCP-NEXT: vmovdqa64 %zmm16, %zmm15 {%k1}4713; AVX512BW-FCP-NEXT: vpermt2d %zmm2, %zmm17, %zmm154714; AVX512BW-FCP-NEXT: vpmovsxbd {{.*#+}} ymm16 = [3,8,13,18,23,28,0,0]4715; AVX512BW-FCP-NEXT: vmovdqa64 %zmm1, %zmm174716; AVX512BW-FCP-NEXT: vpermt2d %zmm10, %zmm16, %zmm174717; AVX512BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm18 = [27,0,5,10,15,0,17,22,27,0,5,10,15,0,17,22]4718; AVX512BW-FCP-NEXT: # zmm18 = mem[0,1,2,3,0,1,2,3]4719; AVX512BW-FCP-NEXT: vmovdqa64 %zmm11, %zmm194720; AVX512BW-FCP-NEXT: vpermt2d %zmm9, %zmm18, %zmm194721; AVX512BW-FCP-NEXT: vmovdqa64 %zmm17, %zmm19 {%k1}4722; AVX512BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm17 = [0,1,2,3,4,5,6,7,8,9,10,11,12,20,25,30]4723; AVX512BW-FCP-NEXT: vpermt2d %zmm7, %zmm17, %zmm194724; AVX512BW-FCP-NEXT: vpermi2d %zmm4, %zmm5, %zmm184725; AVX512BW-FCP-NEXT: vpermi2d %zmm3, %zmm0, %zmm164726; AVX512BW-FCP-NEXT: vmovdqa64 %zmm16, %zmm18 {%k1}4727; AVX512BW-FCP-NEXT: vpermt2d %zmm2, %zmm17, %zmm184728; AVX512BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm16 = [12,17,22,27,0,0,2,7,12,17,22,27,0,0,2,7]4729; AVX512BW-FCP-NEXT: # zmm16 = mem[0,1,2,3,0,1,2,3]4730; AVX512BW-FCP-NEXT: vpermt2d %zmm11, %zmm16, %zmm94731; AVX512BW-FCP-NEXT: vpmovsxbd {{.*#+}} ymm11 = [4,9,14,19,24,29,0,0]4732; AVX512BW-FCP-NEXT: vpermt2d %zmm10, %zmm11, %zmm14733; AVX512BW-FCP-NEXT: movb $56, %al4734; AVX512BW-FCP-NEXT: kmovd %eax, %k14735; AVX512BW-FCP-NEXT: vmovdqa64 %zmm9, %zmm1 {%k1}4736; AVX512BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm9 = [0,1,2,3,4,5,6,7,8,9,10,11,16,21,26,31]4737; AVX512BW-FCP-NEXT: vpermt2d %zmm7, %zmm9, %zmm14738; AVX512BW-FCP-NEXT: vpermt2d %zmm5, %zmm16, %zmm44739; AVX512BW-FCP-NEXT: vpermt2d %zmm3, %zmm11, %zmm04740; AVX512BW-FCP-NEXT: vmovdqa64 %zmm4, %zmm0 {%k1}4741; AVX512BW-FCP-NEXT: vpermt2d %zmm2, %zmm9, %zmm04742; AVX512BW-FCP-NEXT: vmovdqa64 %zmm6, 64(%rsi)4743; AVX512BW-FCP-NEXT: vmovdqa64 %zmm8, (%rsi)4744; AVX512BW-FCP-NEXT: vmovdqa64 %zmm12, 64(%rdx)4745; AVX512BW-FCP-NEXT: vmovdqa64 %zmm13, (%rdx)4746; AVX512BW-FCP-NEXT: vmovdqa64 %zmm15, 64(%rcx)4747; AVX512BW-FCP-NEXT: vmovdqa64 %zmm14, (%rcx)4748; AVX512BW-FCP-NEXT: vmovdqa64 %zmm18, 64(%r8)4749; AVX512BW-FCP-NEXT: vmovdqa64 %zmm19, (%r8)4750; AVX512BW-FCP-NEXT: vmovdqa64 %zmm0, 64(%r9)4751; AVX512BW-FCP-NEXT: vmovdqa64 %zmm1, (%r9)4752; AVX512BW-FCP-NEXT: vzeroupper4753; AVX512BW-FCP-NEXT: retq4754;4755; AVX512DQ-BW-LABEL: load_i32_stride5_vf32:4756; AVX512DQ-BW: # %bb.0:4757; AVX512DQ-BW-NEXT: vmovdqa64 576(%rdi), %zmm24758; AVX512DQ-BW-NEXT: vmovdqa64 384(%rdi), %zmm34759; AVX512DQ-BW-NEXT: vmovdqa64 320(%rdi), %zmm04760; AVX512DQ-BW-NEXT: vmovdqa64 512(%rdi), %zmm54761; AVX512DQ-BW-NEXT: vmovdqa64 448(%rdi), %zmm44762; AVX512DQ-BW-NEXT: vmovdqa64 256(%rdi), %zmm74763; AVX512DQ-BW-NEXT: vmovdqa64 (%rdi), %zmm14764; AVX512DQ-BW-NEXT: vmovdqa64 64(%rdi), %zmm104765; AVX512DQ-BW-NEXT: vmovdqa64 128(%rdi), %zmm94766; AVX512DQ-BW-NEXT: vmovdqa64 192(%rdi), %zmm114767; AVX512DQ-BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm12 = [8,13,18,23,28,0,0,3,8,13,18,23,28,0,0,3]4768; AVX512DQ-BW-NEXT: # zmm12 = mem[0,1,2,3,0,1,2,3]4769; AVX512DQ-BW-NEXT: vmovdqa64 %zmm9, %zmm134770; AVX512DQ-BW-NEXT: vpermt2d %zmm11, %zmm12, %zmm134771; AVX512DQ-BW-NEXT: vpmovsxbd {{.*#+}} ymm6 = [0,5,10,15,20,25,30,0]4772; AVX512DQ-BW-NEXT: vmovdqa64 %zmm1, %zmm84773; AVX512DQ-BW-NEXT: vpermt2d %zmm10, %zmm6, %zmm84774; AVX512DQ-BW-NEXT: movw $8064, %ax # imm = 0x1F804775; AVX512DQ-BW-NEXT: kmovd %eax, %k14776; AVX512DQ-BW-NEXT: vmovdqa32 %zmm13, %zmm8 {%k1}4777; AVX512DQ-BW-NEXT: vpmovsxbd {{.*#+}} zmm13 = [0,1,2,3,4,5,6,7,8,9,10,11,12,17,22,27]4778; AVX512DQ-BW-NEXT: vpermt2d %zmm7, %zmm13, %zmm84779; AVX512DQ-BW-NEXT: vpermi2d %zmm5, %zmm4, %zmm124780; AVX512DQ-BW-NEXT: vpermi2d %zmm3, %zmm0, %zmm64781; AVX512DQ-BW-NEXT: vmovdqa32 %zmm12, %zmm6 {%k1}4782; AVX512DQ-BW-NEXT: vpermt2d %zmm2, %zmm13, %zmm64783; AVX512DQ-BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm14 = [9,14,19,24,29,0,0,4,9,14,19,24,29,0,0,4]4784; AVX512DQ-BW-NEXT: # zmm14 = mem[0,1,2,3,0,1,2,3]4785; AVX512DQ-BW-NEXT: vmovdqa64 %zmm9, %zmm154786; AVX512DQ-BW-NEXT: vpermt2d %zmm11, %zmm14, %zmm154787; AVX512DQ-BW-NEXT: vpmovsxbd {{.*#+}} ymm12 = [17,22,27,0,5,10,15,0]4788; AVX512DQ-BW-NEXT: vmovdqa64 %zmm10, %zmm134789; AVX512DQ-BW-NEXT: vpermt2d %zmm1, %zmm12, %zmm134790; AVX512DQ-BW-NEXT: vmovdqa32 %zmm15, %zmm13 {%k1}4791; AVX512DQ-BW-NEXT: vpmovsxbd {{.*#+}} zmm15 = [0,1,2,3,4,5,6,7,8,9,10,11,12,18,23,28]4792; AVX512DQ-BW-NEXT: vpermt2d %zmm7, %zmm15, %zmm134793; AVX512DQ-BW-NEXT: vpermi2d %zmm5, %zmm4, %zmm144794; AVX512DQ-BW-NEXT: vpermi2d %zmm0, %zmm3, %zmm124795; AVX512DQ-BW-NEXT: vmovdqa32 %zmm14, %zmm12 {%k1}4796; AVX512DQ-BW-NEXT: vpermt2d %zmm2, %zmm15, %zmm124797; AVX512DQ-BW-NEXT: vpmovsxbd {{.*#+}} ymm16 = [2,7,12,17,22,27,0,0]4798; AVX512DQ-BW-NEXT: vmovdqa64 %zmm1, %zmm174799; AVX512DQ-BW-NEXT: vpermt2d %zmm10, %zmm16, %zmm174800; AVX512DQ-BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm15 = [10,15,20,25,30,0,0,5,10,15,20,25,30,0,0,5]4801; AVX512DQ-BW-NEXT: # zmm15 = mem[0,1,2,3,0,1,2,3]4802; AVX512DQ-BW-NEXT: vmovdqa64 %zmm9, %zmm144803; AVX512DQ-BW-NEXT: vpermt2d %zmm11, %zmm15, %zmm144804; AVX512DQ-BW-NEXT: movb $7, %al4805; AVX512DQ-BW-NEXT: kmovd %eax, %k14806; AVX512DQ-BW-NEXT: vmovdqa64 %zmm17, %zmm14 {%k1}4807; AVX512DQ-BW-NEXT: vpmovsxbd {{.*#+}} zmm17 = [0,1,2,3,4,5,6,7,8,9,10,11,12,19,24,29]4808; AVX512DQ-BW-NEXT: vpermt2d %zmm7, %zmm17, %zmm144809; AVX512DQ-BW-NEXT: vpermi2d %zmm5, %zmm4, %zmm154810; AVX512DQ-BW-NEXT: vpermi2d %zmm3, %zmm0, %zmm164811; AVX512DQ-BW-NEXT: vmovdqa64 %zmm16, %zmm15 {%k1}4812; AVX512DQ-BW-NEXT: vpermt2d %zmm2, %zmm17, %zmm154813; AVX512DQ-BW-NEXT: vpmovsxbd {{.*#+}} ymm16 = [3,8,13,18,23,28,0,0]4814; AVX512DQ-BW-NEXT: vmovdqa64 %zmm1, %zmm174815; AVX512DQ-BW-NEXT: vpermt2d %zmm10, %zmm16, %zmm174816; AVX512DQ-BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm18 = [27,0,5,10,15,0,17,22,27,0,5,10,15,0,17,22]4817; AVX512DQ-BW-NEXT: # zmm18 = mem[0,1,2,3,0,1,2,3]4818; AVX512DQ-BW-NEXT: vmovdqa64 %zmm11, %zmm194819; AVX512DQ-BW-NEXT: vpermt2d %zmm9, %zmm18, %zmm194820; AVX512DQ-BW-NEXT: vmovdqa64 %zmm17, %zmm19 {%k1}4821; AVX512DQ-BW-NEXT: vpmovsxbd {{.*#+}} zmm17 = [0,1,2,3,4,5,6,7,8,9,10,11,12,20,25,30]4822; AVX512DQ-BW-NEXT: vpermt2d %zmm7, %zmm17, %zmm194823; AVX512DQ-BW-NEXT: vpermi2d %zmm4, %zmm5, %zmm184824; AVX512DQ-BW-NEXT: vpermi2d %zmm3, %zmm0, %zmm164825; AVX512DQ-BW-NEXT: vmovdqa64 %zmm16, %zmm18 {%k1}4826; AVX512DQ-BW-NEXT: vpermt2d %zmm2, %zmm17, %zmm184827; AVX512DQ-BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm16 = [12,17,22,27,0,0,2,7,12,17,22,27,0,0,2,7]4828; AVX512DQ-BW-NEXT: # zmm16 = mem[0,1,2,3,0,1,2,3]4829; AVX512DQ-BW-NEXT: vpermt2d %zmm11, %zmm16, %zmm94830; AVX512DQ-BW-NEXT: vpmovsxbd {{.*#+}} ymm11 = [4,9,14,19,24,29,0,0]4831; AVX512DQ-BW-NEXT: vpermt2d %zmm10, %zmm11, %zmm14832; AVX512DQ-BW-NEXT: movb $56, %al4833; AVX512DQ-BW-NEXT: kmovd %eax, %k14834; AVX512DQ-BW-NEXT: vmovdqa64 %zmm9, %zmm1 {%k1}4835; AVX512DQ-BW-NEXT: vpmovsxbd {{.*#+}} zmm9 = [0,1,2,3,4,5,6,7,8,9,10,11,16,21,26,31]4836; AVX512DQ-BW-NEXT: vpermt2d %zmm7, %zmm9, %zmm14837; AVX512DQ-BW-NEXT: vpermt2d %zmm5, %zmm16, %zmm44838; AVX512DQ-BW-NEXT: vpermt2d %zmm3, %zmm11, %zmm04839; AVX512DQ-BW-NEXT: vmovdqa64 %zmm4, %zmm0 {%k1}4840; AVX512DQ-BW-NEXT: vpermt2d %zmm2, %zmm9, %zmm04841; AVX512DQ-BW-NEXT: vmovdqa64 %zmm6, 64(%rsi)4842; AVX512DQ-BW-NEXT: vmovdqa64 %zmm8, (%rsi)4843; AVX512DQ-BW-NEXT: vmovdqa64 %zmm12, 64(%rdx)4844; AVX512DQ-BW-NEXT: vmovdqa64 %zmm13, (%rdx)4845; AVX512DQ-BW-NEXT: vmovdqa64 %zmm15, 64(%rcx)4846; AVX512DQ-BW-NEXT: vmovdqa64 %zmm14, (%rcx)4847; AVX512DQ-BW-NEXT: vmovdqa64 %zmm18, 64(%r8)4848; AVX512DQ-BW-NEXT: vmovdqa64 %zmm19, (%r8)4849; AVX512DQ-BW-NEXT: vmovdqa64 %zmm0, 64(%r9)4850; AVX512DQ-BW-NEXT: vmovdqa64 %zmm1, (%r9)4851; AVX512DQ-BW-NEXT: vzeroupper4852; AVX512DQ-BW-NEXT: retq4853;4854; AVX512DQ-BW-FCP-LABEL: load_i32_stride5_vf32:4855; AVX512DQ-BW-FCP: # %bb.0:4856; AVX512DQ-BW-FCP-NEXT: vmovdqa64 576(%rdi), %zmm24857; AVX512DQ-BW-FCP-NEXT: vmovdqa64 384(%rdi), %zmm34858; AVX512DQ-BW-FCP-NEXT: vmovdqa64 320(%rdi), %zmm04859; AVX512DQ-BW-FCP-NEXT: vmovdqa64 512(%rdi), %zmm54860; AVX512DQ-BW-FCP-NEXT: vmovdqa64 448(%rdi), %zmm44861; AVX512DQ-BW-FCP-NEXT: vmovdqa64 256(%rdi), %zmm74862; AVX512DQ-BW-FCP-NEXT: vmovdqa64 (%rdi), %zmm14863; AVX512DQ-BW-FCP-NEXT: vmovdqa64 64(%rdi), %zmm104864; AVX512DQ-BW-FCP-NEXT: vmovdqa64 128(%rdi), %zmm94865; AVX512DQ-BW-FCP-NEXT: vmovdqa64 192(%rdi), %zmm114866; AVX512DQ-BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm12 = [8,13,18,23,28,0,0,3,8,13,18,23,28,0,0,3]4867; AVX512DQ-BW-FCP-NEXT: # zmm12 = mem[0,1,2,3,0,1,2,3]4868; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm9, %zmm134869; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm11, %zmm12, %zmm134870; AVX512DQ-BW-FCP-NEXT: vpmovsxbd {{.*#+}} ymm6 = [0,5,10,15,20,25,30,0]4871; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm1, %zmm84872; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm10, %zmm6, %zmm84873; AVX512DQ-BW-FCP-NEXT: movw $8064, %ax # imm = 0x1F804874; AVX512DQ-BW-FCP-NEXT: kmovd %eax, %k14875; AVX512DQ-BW-FCP-NEXT: vmovdqa32 %zmm13, %zmm8 {%k1}4876; AVX512DQ-BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm13 = [0,1,2,3,4,5,6,7,8,9,10,11,12,17,22,27]4877; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm7, %zmm13, %zmm84878; AVX512DQ-BW-FCP-NEXT: vpermi2d %zmm5, %zmm4, %zmm124879; AVX512DQ-BW-FCP-NEXT: vpermi2d %zmm3, %zmm0, %zmm64880; AVX512DQ-BW-FCP-NEXT: vmovdqa32 %zmm12, %zmm6 {%k1}4881; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm2, %zmm13, %zmm64882; AVX512DQ-BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm14 = [9,14,19,24,29,0,0,4,9,14,19,24,29,0,0,4]4883; AVX512DQ-BW-FCP-NEXT: # zmm14 = mem[0,1,2,3,0,1,2,3]4884; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm9, %zmm154885; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm11, %zmm14, %zmm154886; AVX512DQ-BW-FCP-NEXT: vpmovsxbd {{.*#+}} ymm12 = [17,22,27,0,5,10,15,0]4887; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm10, %zmm134888; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm1, %zmm12, %zmm134889; AVX512DQ-BW-FCP-NEXT: vmovdqa32 %zmm15, %zmm13 {%k1}4890; AVX512DQ-BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm15 = [0,1,2,3,4,5,6,7,8,9,10,11,12,18,23,28]4891; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm7, %zmm15, %zmm134892; AVX512DQ-BW-FCP-NEXT: vpermi2d %zmm5, %zmm4, %zmm144893; AVX512DQ-BW-FCP-NEXT: vpermi2d %zmm0, %zmm3, %zmm124894; AVX512DQ-BW-FCP-NEXT: vmovdqa32 %zmm14, %zmm12 {%k1}4895; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm2, %zmm15, %zmm124896; AVX512DQ-BW-FCP-NEXT: vpmovsxbd {{.*#+}} ymm16 = [2,7,12,17,22,27,0,0]4897; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm1, %zmm174898; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm10, %zmm16, %zmm174899; AVX512DQ-BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm15 = [10,15,20,25,30,0,0,5,10,15,20,25,30,0,0,5]4900; AVX512DQ-BW-FCP-NEXT: # zmm15 = mem[0,1,2,3,0,1,2,3]4901; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm9, %zmm144902; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm11, %zmm15, %zmm144903; AVX512DQ-BW-FCP-NEXT: movb $7, %al4904; AVX512DQ-BW-FCP-NEXT: kmovd %eax, %k14905; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm17, %zmm14 {%k1}4906; AVX512DQ-BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm17 = [0,1,2,3,4,5,6,7,8,9,10,11,12,19,24,29]4907; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm7, %zmm17, %zmm144908; AVX512DQ-BW-FCP-NEXT: vpermi2d %zmm5, %zmm4, %zmm154909; AVX512DQ-BW-FCP-NEXT: vpermi2d %zmm3, %zmm0, %zmm164910; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm16, %zmm15 {%k1}4911; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm2, %zmm17, %zmm154912; AVX512DQ-BW-FCP-NEXT: vpmovsxbd {{.*#+}} ymm16 = [3,8,13,18,23,28,0,0]4913; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm1, %zmm174914; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm10, %zmm16, %zmm174915; AVX512DQ-BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm18 = [27,0,5,10,15,0,17,22,27,0,5,10,15,0,17,22]4916; AVX512DQ-BW-FCP-NEXT: # zmm18 = mem[0,1,2,3,0,1,2,3]4917; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm11, %zmm194918; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm9, %zmm18, %zmm194919; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm17, %zmm19 {%k1}4920; AVX512DQ-BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm17 = [0,1,2,3,4,5,6,7,8,9,10,11,12,20,25,30]4921; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm7, %zmm17, %zmm194922; AVX512DQ-BW-FCP-NEXT: vpermi2d %zmm4, %zmm5, %zmm184923; AVX512DQ-BW-FCP-NEXT: vpermi2d %zmm3, %zmm0, %zmm164924; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm16, %zmm18 {%k1}4925; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm2, %zmm17, %zmm184926; AVX512DQ-BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm16 = [12,17,22,27,0,0,2,7,12,17,22,27,0,0,2,7]4927; AVX512DQ-BW-FCP-NEXT: # zmm16 = mem[0,1,2,3,0,1,2,3]4928; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm11, %zmm16, %zmm94929; AVX512DQ-BW-FCP-NEXT: vpmovsxbd {{.*#+}} ymm11 = [4,9,14,19,24,29,0,0]4930; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm10, %zmm11, %zmm14931; AVX512DQ-BW-FCP-NEXT: movb $56, %al4932; AVX512DQ-BW-FCP-NEXT: kmovd %eax, %k14933; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm9, %zmm1 {%k1}4934; AVX512DQ-BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm9 = [0,1,2,3,4,5,6,7,8,9,10,11,16,21,26,31]4935; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm7, %zmm9, %zmm14936; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm5, %zmm16, %zmm44937; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm3, %zmm11, %zmm04938; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm4, %zmm0 {%k1}4939; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm2, %zmm9, %zmm04940; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm6, 64(%rsi)4941; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm8, (%rsi)4942; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm12, 64(%rdx)4943; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm13, (%rdx)4944; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm15, 64(%rcx)4945; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm14, (%rcx)4946; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm18, 64(%r8)4947; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm19, (%r8)4948; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm0, 64(%r9)4949; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm1, (%r9)4950; AVX512DQ-BW-FCP-NEXT: vzeroupper4951; AVX512DQ-BW-FCP-NEXT: retq4952 %wide.vec = load <160 x i32>, ptr %in.vec, align 644953 %strided.vec0 = shufflevector <160 x i32> %wide.vec, <160 x i32> poison, <32 x i32> <i32 0, i32 5, i32 10, i32 15, i32 20, i32 25, i32 30, i32 35, i32 40, i32 45, i32 50, i32 55, i32 60, i32 65, i32 70, i32 75, i32 80, i32 85, i32 90, i32 95, i32 100, i32 105, i32 110, i32 115, i32 120, i32 125, i32 130, i32 135, i32 140, i32 145, i32 150, i32 155>4954 %strided.vec1 = shufflevector <160 x i32> %wide.vec, <160 x i32> poison, <32 x i32> <i32 1, i32 6, i32 11, i32 16, i32 21, i32 26, i32 31, i32 36, i32 41, i32 46, i32 51, i32 56, i32 61, i32 66, i32 71, i32 76, i32 81, i32 86, i32 91, i32 96, i32 101, i32 106, i32 111, i32 116, i32 121, i32 126, i32 131, i32 136, i32 141, i32 146, i32 151, i32 156>4955 %strided.vec2 = shufflevector <160 x i32> %wide.vec, <160 x i32> poison, <32 x i32> <i32 2, i32 7, i32 12, i32 17, i32 22, i32 27, i32 32, i32 37, i32 42, i32 47, i32 52, i32 57, i32 62, i32 67, i32 72, i32 77, i32 82, i32 87, i32 92, i32 97, i32 102, i32 107, i32 112, i32 117, i32 122, i32 127, i32 132, i32 137, i32 142, i32 147, i32 152, i32 157>4956 %strided.vec3 = shufflevector <160 x i32> %wide.vec, <160 x i32> poison, <32 x i32> <i32 3, i32 8, i32 13, i32 18, i32 23, i32 28, i32 33, i32 38, i32 43, i32 48, i32 53, i32 58, i32 63, i32 68, i32 73, i32 78, i32 83, i32 88, i32 93, i32 98, i32 103, i32 108, i32 113, i32 118, i32 123, i32 128, i32 133, i32 138, i32 143, i32 148, i32 153, i32 158>4957 %strided.vec4 = shufflevector <160 x i32> %wide.vec, <160 x i32> poison, <32 x i32> <i32 4, i32 9, i32 14, i32 19, i32 24, i32 29, i32 34, i32 39, i32 44, i32 49, i32 54, i32 59, i32 64, i32 69, i32 74, i32 79, i32 84, i32 89, i32 94, i32 99, i32 104, i32 109, i32 114, i32 119, i32 124, i32 129, i32 134, i32 139, i32 144, i32 149, i32 154, i32 159>4958 store <32 x i32> %strided.vec0, ptr %out.vec0, align 644959 store <32 x i32> %strided.vec1, ptr %out.vec1, align 644960 store <32 x i32> %strided.vec2, ptr %out.vec2, align 644961 store <32 x i32> %strided.vec3, ptr %out.vec3, align 644962 store <32 x i32> %strided.vec4, ptr %out.vec4, align 644963 ret void4964}4965 4966define void @load_i32_stride5_vf64(ptr %in.vec, ptr %out.vec0, ptr %out.vec1, ptr %out.vec2, ptr %out.vec3, ptr %out.vec4) nounwind {4967; SSE-LABEL: load_i32_stride5_vf64:4968; SSE: # %bb.0:4969; SSE-NEXT: subq $1928, %rsp # imm = 0x7884970; SSE-NEXT: movdqa 768(%rdi), %xmm24971; SSE-NEXT: movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4972; SSE-NEXT: movdqa 752(%rdi), %xmm44973; SSE-NEXT: movdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4974; SSE-NEXT: movdqa 720(%rdi), %xmm114975; SSE-NEXT: movdqa %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4976; SSE-NEXT: movdqa 736(%rdi), %xmm34977; SSE-NEXT: movdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4978; SSE-NEXT: movdqa 448(%rdi), %xmm64979; SSE-NEXT: movdqa %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4980; SSE-NEXT: movdqa 432(%rdi), %xmm84981; SSE-NEXT: movdqa %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4982; SSE-NEXT: movdqa 400(%rdi), %xmm104983; SSE-NEXT: movdqa %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4984; SSE-NEXT: movdqa 416(%rdi), %xmm94985; SSE-NEXT: movdqa %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4986; SSE-NEXT: movdqa 128(%rdi), %xmm74987; SSE-NEXT: movdqa %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4988; SSE-NEXT: movdqa 112(%rdi), %xmm54989; SSE-NEXT: movdqa %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4990; SSE-NEXT: movdqa 80(%rdi), %xmm14991; SSE-NEXT: movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4992; SSE-NEXT: movdqa 96(%rdi), %xmm04993; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4994; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[1,1,1,1]4995; SSE-NEXT: punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]4996; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm5[2,2,2,2]4997; SSE-NEXT: punpckhdq {{.*#+}} xmm0 = xmm0[2],xmm7[2],xmm0[3],xmm7[3]4998; SSE-NEXT: movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]4999; SSE-NEXT: movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5000; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm9[1,1,1,1]5001; SSE-NEXT: movdqa %xmm10, %xmm15002; SSE-NEXT: punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]5003; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm8[2,2,2,2]5004; SSE-NEXT: punpckhdq {{.*#+}} xmm0 = xmm0[2],xmm6[2],xmm0[3],xmm6[3]5005; SSE-NEXT: movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]5006; SSE-NEXT: movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5007; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm3[1,1,1,1]5008; SSE-NEXT: movdqa %xmm11, %xmm15009; SSE-NEXT: punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]5010; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm4[2,2,2,2]5011; SSE-NEXT: punpckhdq {{.*#+}} xmm0 = xmm0[2],xmm2[2],xmm0[3],xmm2[3]5012; SSE-NEXT: movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]5013; SSE-NEXT: movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5014; SSE-NEXT: movdqa 1040(%rdi), %xmm15015; SSE-NEXT: movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5016; SSE-NEXT: movdqa 1056(%rdi), %xmm05017; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5018; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[1,1,1,1]5019; SSE-NEXT: punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]5020; SSE-NEXT: movdqa 1088(%rdi), %xmm25021; SSE-NEXT: movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5022; SSE-NEXT: movdqa 1072(%rdi), %xmm05023; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5024; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[2,2,2,2]5025; SSE-NEXT: punpckhdq {{.*#+}} xmm0 = xmm0[2],xmm2[2],xmm0[3],xmm2[3]5026; SSE-NEXT: movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]5027; SSE-NEXT: movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5028; SSE-NEXT: movdqa (%rdi), %xmm15029; SSE-NEXT: movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5030; SSE-NEXT: movdqa 16(%rdi), %xmm145031; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm14[1,1,1,1]5032; SSE-NEXT: punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]5033; SSE-NEXT: movdqa 32(%rdi), %xmm125034; SSE-NEXT: movdqa 48(%rdi), %xmm25035; SSE-NEXT: movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5036; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm12[2,2,2,2]5037; SSE-NEXT: movdqa %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5038; SSE-NEXT: punpckhdq {{.*#+}} xmm0 = xmm0[2],xmm2[2],xmm0[3],xmm2[3]5039; SSE-NEXT: movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]5040; SSE-NEXT: movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5041; SSE-NEXT: movdqa 320(%rdi), %xmm15042; SSE-NEXT: movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5043; SSE-NEXT: movdqa 336(%rdi), %xmm05044; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5045; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[1,1,1,1]5046; SSE-NEXT: punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]5047; SSE-NEXT: movdqa 368(%rdi), %xmm25048; SSE-NEXT: movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5049; SSE-NEXT: movdqa 352(%rdi), %xmm05050; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5051; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[2,2,2,2]5052; SSE-NEXT: punpckhdq {{.*#+}} xmm0 = xmm0[2],xmm2[2],xmm0[3],xmm2[3]5053; SSE-NEXT: movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]5054; SSE-NEXT: movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5055; SSE-NEXT: movdqa 640(%rdi), %xmm15056; SSE-NEXT: movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5057; SSE-NEXT: movdqa 656(%rdi), %xmm05058; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5059; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[1,1,1,1]5060; SSE-NEXT: punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]5061; SSE-NEXT: movdqa 688(%rdi), %xmm25062; SSE-NEXT: movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5063; SSE-NEXT: movdqa 672(%rdi), %xmm05064; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5065; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[2,2,2,2]5066; SSE-NEXT: punpckhdq {{.*#+}} xmm0 = xmm0[2],xmm2[2],xmm0[3],xmm2[3]5067; SSE-NEXT: movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]5068; SSE-NEXT: movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5069; SSE-NEXT: movdqa 960(%rdi), %xmm15070; SSE-NEXT: movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5071; SSE-NEXT: movdqa 976(%rdi), %xmm05072; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5073; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[1,1,1,1]5074; SSE-NEXT: punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]5075; SSE-NEXT: movdqa 1008(%rdi), %xmm25076; SSE-NEXT: movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5077; SSE-NEXT: movdqa 992(%rdi), %xmm05078; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5079; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[2,2,2,2]5080; SSE-NEXT: punpckhdq {{.*#+}} xmm0 = xmm0[2],xmm2[2],xmm0[3],xmm2[3]5081; SSE-NEXT: movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]5082; SSE-NEXT: movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5083; SSE-NEXT: movdqa 240(%rdi), %xmm15084; SSE-NEXT: movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5085; SSE-NEXT: movdqa 256(%rdi), %xmm45086; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm4[1,1,1,1]5087; SSE-NEXT: movdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5088; SSE-NEXT: punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]5089; SSE-NEXT: movdqa 288(%rdi), %xmm25090; SSE-NEXT: movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5091; SSE-NEXT: movdqa 272(%rdi), %xmm115092; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm11[2,2,2,2]5093; SSE-NEXT: movdqa %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5094; SSE-NEXT: punpckhdq {{.*#+}} xmm0 = xmm0[2],xmm2[2],xmm0[3],xmm2[3]5095; SSE-NEXT: movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]5096; SSE-NEXT: movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5097; SSE-NEXT: movdqa 560(%rdi), %xmm15098; SSE-NEXT: movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5099; SSE-NEXT: movdqa 576(%rdi), %xmm05100; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5101; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[1,1,1,1]5102; SSE-NEXT: punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]5103; SSE-NEXT: movdqa 608(%rdi), %xmm25104; SSE-NEXT: movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5105; SSE-NEXT: movdqa 592(%rdi), %xmm155106; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm15[2,2,2,2]5107; SSE-NEXT: movdqa %xmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5108; SSE-NEXT: punpckhdq {{.*#+}} xmm0 = xmm0[2],xmm2[2],xmm0[3],xmm2[3]5109; SSE-NEXT: movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]5110; SSE-NEXT: movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5111; SSE-NEXT: movdqa 880(%rdi), %xmm15112; SSE-NEXT: movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5113; SSE-NEXT: movdqa 896(%rdi), %xmm05114; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5115; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[1,1,1,1]5116; SSE-NEXT: punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]5117; SSE-NEXT: movdqa 928(%rdi), %xmm25118; SSE-NEXT: movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5119; SSE-NEXT: movdqa 912(%rdi), %xmm05120; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5121; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[2,2,2,2]5122; SSE-NEXT: punpckhdq {{.*#+}} xmm0 = xmm0[2],xmm2[2],xmm0[3],xmm2[3]5123; SSE-NEXT: movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]5124; SSE-NEXT: movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5125; SSE-NEXT: movdqa 1200(%rdi), %xmm15126; SSE-NEXT: movdqa %xmm1, (%rsp) # 16-byte Spill5127; SSE-NEXT: movdqa 1216(%rdi), %xmm05128; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5129; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[1,1,1,1]5130; SSE-NEXT: punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]5131; SSE-NEXT: movdqa 1248(%rdi), %xmm35132; SSE-NEXT: movdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5133; SSE-NEXT: movdqa 1232(%rdi), %xmm05134; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5135; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[2,2,2,2]5136; SSE-NEXT: punpckhdq {{.*#+}} xmm0 = xmm0[2],xmm3[2],xmm0[3],xmm3[3]5137; SSE-NEXT: movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]5138; SSE-NEXT: movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5139; SSE-NEXT: movdqa 160(%rdi), %xmm35140; SSE-NEXT: movdqa 176(%rdi), %xmm85141; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm8[1,1,1,1]5142; SSE-NEXT: movdqa %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5143; SSE-NEXT: movdqa %xmm3, %xmm15144; SSE-NEXT: movdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5145; SSE-NEXT: punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]5146; SSE-NEXT: movdqa 208(%rdi), %xmm25147; SSE-NEXT: movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5148; SSE-NEXT: movdqa 192(%rdi), %xmm75149; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm7[2,2,2,2]5150; SSE-NEXT: movdqa %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5151; SSE-NEXT: punpckhdq {{.*#+}} xmm0 = xmm0[2],xmm2[2],xmm0[3],xmm2[3]5152; SSE-NEXT: movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]5153; SSE-NEXT: movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5154; SSE-NEXT: movdqa 480(%rdi), %xmm95155; SSE-NEXT: movdqa 496(%rdi), %xmm135156; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm13[1,1,1,1]5157; SSE-NEXT: movdqa %xmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5158; SSE-NEXT: movdqa %xmm9, %xmm15159; SSE-NEXT: movdqa %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5160; SSE-NEXT: punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]5161; SSE-NEXT: movdqa 528(%rdi), %xmm25162; SSE-NEXT: movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5163; SSE-NEXT: movdqa 512(%rdi), %xmm105164; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm10[2,2,2,2]5165; SSE-NEXT: movdqa %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5166; SSE-NEXT: punpckhdq {{.*#+}} xmm0 = xmm0[2],xmm2[2],xmm0[3],xmm2[3]5167; SSE-NEXT: movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]5168; SSE-NEXT: movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5169; SSE-NEXT: movdqa 800(%rdi), %xmm15170; SSE-NEXT: movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5171; SSE-NEXT: movdqa 816(%rdi), %xmm05172; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5173; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[1,1,1,1]5174; SSE-NEXT: punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]5175; SSE-NEXT: movdqa 848(%rdi), %xmm25176; SSE-NEXT: movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5177; SSE-NEXT: movdqa 832(%rdi), %xmm05178; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5179; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[2,2,2,2]5180; SSE-NEXT: punpckhdq {{.*#+}} xmm0 = xmm0[2],xmm2[2],xmm0[3],xmm2[3]5181; SSE-NEXT: movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]5182; SSE-NEXT: movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5183; SSE-NEXT: movdqa 1120(%rdi), %xmm15184; SSE-NEXT: movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5185; SSE-NEXT: movdqa 1136(%rdi), %xmm05186; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5187; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[1,1,1,1]5188; SSE-NEXT: punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]5189; SSE-NEXT: movdqa 1168(%rdi), %xmm25190; SSE-NEXT: movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5191; SSE-NEXT: movdqa 1152(%rdi), %xmm05192; SSE-NEXT: movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5193; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[2,2,2,2]5194; SSE-NEXT: punpckhdq {{.*#+}} xmm0 = xmm0[2],xmm2[2],xmm0[3],xmm2[3]5195; SSE-NEXT: movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]5196; SSE-NEXT: movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5197; SSE-NEXT: pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload5198; SSE-NEXT: # xmm0 = mem[1,1,1,1]5199; SSE-NEXT: pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload5200; SSE-NEXT: # xmm1 = mem[2,3,2,3]5201; SSE-NEXT: punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]5202; SSE-NEXT: movdqa 144(%rdi), %xmm15203; SSE-NEXT: movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5204; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[0,0,1,1]5205; SSE-NEXT: pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Folded Reload5206; SSE-NEXT: # xmm6 = mem[2,3,2,3]5207; SSE-NEXT: punpckldq {{.*#+}} xmm6 = xmm6[0],xmm1[0],xmm6[1],xmm1[1]5208; SSE-NEXT: movsd {{.*#+}} xmm6 = xmm0[0],xmm6[1]5209; SSE-NEXT: movapd %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5210; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload5211; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm5[1,1,1,1]5212; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm14[2,3,2,3]5213; SSE-NEXT: movdqa %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5214; SSE-NEXT: punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]5215; SSE-NEXT: movdqa 64(%rdi), %xmm15216; SSE-NEXT: movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5217; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[0,0,1,1]5218; SSE-NEXT: pshufd {{.*#+}} xmm6 = xmm12[2,3,2,3]5219; SSE-NEXT: punpckldq {{.*#+}} xmm6 = xmm6[0],xmm1[0],xmm6[1],xmm1[1]5220; SSE-NEXT: movsd {{.*#+}} xmm6 = xmm0[0],xmm6[1]5221; SSE-NEXT: movapd %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5222; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload5223; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm6[1,1,1,1]5224; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm4[2,3,2,3]5225; SSE-NEXT: punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]5226; SSE-NEXT: movdqa 304(%rdi), %xmm15227; SSE-NEXT: movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5228; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[0,0,1,1]5229; SSE-NEXT: pshufd {{.*#+}} xmm4 = xmm11[2,3,2,3]5230; SSE-NEXT: punpckldq {{.*#+}} xmm4 = xmm4[0],xmm1[0],xmm4[1],xmm1[1]5231; SSE-NEXT: movsd {{.*#+}} xmm4 = xmm0[0],xmm4[1]5232; SSE-NEXT: movapd %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5233; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm3[1,1,1,1]5234; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm8[2,3,2,3]5235; SSE-NEXT: punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]5236; SSE-NEXT: movdqa 224(%rdi), %xmm85237; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm8[0,0,1,1]5238; SSE-NEXT: pshufd {{.*#+}} xmm3 = xmm7[2,3,2,3]5239; SSE-NEXT: punpckldq {{.*#+}} xmm3 = xmm3[0],xmm1[0],xmm3[1],xmm1[1]5240; SSE-NEXT: movsd {{.*#+}} xmm3 = xmm0[0],xmm3[1]5241; SSE-NEXT: movapd %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5242; SSE-NEXT: pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload5243; SSE-NEXT: # xmm0 = mem[1,1,1,1]5244; SSE-NEXT: pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload5245; SSE-NEXT: # xmm1 = mem[2,3,2,3]5246; SSE-NEXT: punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]5247; SSE-NEXT: movdqa 464(%rdi), %xmm15248; SSE-NEXT: movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5249; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[0,0,1,1]5250; SSE-NEXT: pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Folded Reload5251; SSE-NEXT: # xmm3 = mem[2,3,2,3]5252; SSE-NEXT: punpckldq {{.*#+}} xmm3 = xmm3[0],xmm1[0],xmm3[1],xmm1[1]5253; SSE-NEXT: movsd {{.*#+}} xmm3 = xmm0[0],xmm3[1]5254; SSE-NEXT: movapd %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5255; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Reload5256; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm11[1,1,1,1]5257; SSE-NEXT: pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload5258; SSE-NEXT: # xmm1 = mem[2,3,2,3]5259; SSE-NEXT: punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]5260; SSE-NEXT: movdqa 384(%rdi), %xmm15261; SSE-NEXT: movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5262; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[0,0,1,1]5263; SSE-NEXT: pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload5264; SSE-NEXT: # xmm4 = mem[2,3,2,3]5265; SSE-NEXT: punpckldq {{.*#+}} xmm4 = xmm4[0],xmm1[0],xmm4[1],xmm1[1]5266; SSE-NEXT: movsd {{.*#+}} xmm4 = xmm0[0],xmm4[1]5267; SSE-NEXT: movapd %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5268; SSE-NEXT: pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload5269; SSE-NEXT: # xmm0 = mem[1,1,1,1]5270; SSE-NEXT: pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload5271; SSE-NEXT: # xmm1 = mem[2,3,2,3]5272; SSE-NEXT: punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]5273; SSE-NEXT: movdqa 624(%rdi), %xmm15274; SSE-NEXT: movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5275; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[0,0,1,1]5276; SSE-NEXT: pshufd {{.*#+}} xmm4 = xmm15[2,3,2,3]5277; SSE-NEXT: punpckldq {{.*#+}} xmm4 = xmm4[0],xmm1[0],xmm4[1],xmm1[1]5278; SSE-NEXT: movsd {{.*#+}} xmm4 = xmm0[0],xmm4[1]5279; SSE-NEXT: movapd %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5280; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm9[1,1,1,1]5281; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm13[2,3,2,3]5282; SSE-NEXT: punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]5283; SSE-NEXT: movdqa 544(%rdi), %xmm15284; SSE-NEXT: movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5285; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[0,0,1,1]5286; SSE-NEXT: pshufd {{.*#+}} xmm4 = xmm10[2,3,2,3]5287; SSE-NEXT: punpckldq {{.*#+}} xmm4 = xmm4[0],xmm1[0],xmm4[1],xmm1[1]5288; SSE-NEXT: movsd {{.*#+}} xmm4 = xmm0[0],xmm4[1]5289; SSE-NEXT: movapd %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5290; SSE-NEXT: pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload5291; SSE-NEXT: # xmm0 = mem[1,1,1,1]5292; SSE-NEXT: pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload5293; SSE-NEXT: # xmm1 = mem[2,3,2,3]5294; SSE-NEXT: punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]5295; SSE-NEXT: movdqa 784(%rdi), %xmm15296; SSE-NEXT: movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5297; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[0,0,1,1]5298; SSE-NEXT: pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload5299; SSE-NEXT: # xmm4 = mem[2,3,2,3]5300; SSE-NEXT: punpckldq {{.*#+}} xmm4 = xmm4[0],xmm1[0],xmm4[1],xmm1[1]5301; SSE-NEXT: movsd {{.*#+}} xmm4 = xmm0[0],xmm4[1]5302; SSE-NEXT: movapd %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5303; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5304; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[1,1,1,1]5305; SSE-NEXT: pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload5306; SSE-NEXT: # xmm1 = mem[2,3,2,3]5307; SSE-NEXT: punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]5308; SSE-NEXT: movdqa 704(%rdi), %xmm15309; SSE-NEXT: movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5310; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[0,0,1,1]5311; SSE-NEXT: pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload5312; SSE-NEXT: # xmm4 = mem[2,3,2,3]5313; SSE-NEXT: punpckldq {{.*#+}} xmm4 = xmm4[0],xmm1[0],xmm4[1],xmm1[1]5314; SSE-NEXT: movsd {{.*#+}} xmm4 = xmm0[0],xmm4[1]5315; SSE-NEXT: movapd %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5316; SSE-NEXT: pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload5317; SSE-NEXT: # xmm0 = mem[1,1,1,1]5318; SSE-NEXT: pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload5319; SSE-NEXT: # xmm1 = mem[2,3,2,3]5320; SSE-NEXT: punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]5321; SSE-NEXT: movdqa 944(%rdi), %xmm15322; SSE-NEXT: movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5323; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[0,0,1,1]5324; SSE-NEXT: pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload5325; SSE-NEXT: # xmm4 = mem[2,3,2,3]5326; SSE-NEXT: punpckldq {{.*#+}} xmm4 = xmm4[0],xmm1[0],xmm4[1],xmm1[1]5327; SSE-NEXT: movsd {{.*#+}} xmm4 = xmm0[0],xmm4[1]5328; SSE-NEXT: movapd %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5329; SSE-NEXT: pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload5330; SSE-NEXT: # xmm0 = mem[1,1,1,1]5331; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload5332; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm13[2,3,2,3]5333; SSE-NEXT: punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]5334; SSE-NEXT: movdqa 864(%rdi), %xmm15335; SSE-NEXT: movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5336; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[0,0,1,1]5337; SSE-NEXT: pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Folded Reload5338; SSE-NEXT: # xmm3 = mem[2,3,2,3]5339; SSE-NEXT: punpckldq {{.*#+}} xmm3 = xmm3[0],xmm1[0],xmm3[1],xmm1[1]5340; SSE-NEXT: movsd {{.*#+}} xmm3 = xmm0[0],xmm3[1]5341; SSE-NEXT: movapd %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5342; SSE-NEXT: pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload5343; SSE-NEXT: # xmm0 = mem[1,1,1,1]5344; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload5345; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[2,3,2,3]5346; SSE-NEXT: punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]5347; SSE-NEXT: movdqa 1104(%rdi), %xmm15348; SSE-NEXT: movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5349; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[0,0,1,1]5350; SSE-NEXT: pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload5351; SSE-NEXT: # xmm2 = mem[2,3,2,3]5352; SSE-NEXT: punpckldq {{.*#+}} xmm2 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]5353; SSE-NEXT: movsd {{.*#+}} xmm2 = xmm0[0],xmm2[1]5354; SSE-NEXT: movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5355; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload5356; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm10[1,1,1,1]5357; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Reload5358; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm12[2,3,2,3]5359; SSE-NEXT: punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]5360; SSE-NEXT: movdqa 1024(%rdi), %xmm15361; SSE-NEXT: movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5362; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[0,0,1,1]5363; SSE-NEXT: pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload5364; SSE-NEXT: # xmm2 = mem[2,3,2,3]5365; SSE-NEXT: punpckldq {{.*#+}} xmm2 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]5366; SSE-NEXT: movsd {{.*#+}} xmm2 = xmm0[0],xmm2[1]5367; SSE-NEXT: movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5368; SSE-NEXT: pshufd $85, (%rsp), %xmm0 # 16-byte Folded Reload5369; SSE-NEXT: # xmm0 = mem[1,1,1,1]5370; SSE-NEXT: pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload5371; SSE-NEXT: # xmm1 = mem[2,3,2,3]5372; SSE-NEXT: punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]5373; SSE-NEXT: movdqa 1264(%rdi), %xmm15374; SSE-NEXT: movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5375; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[0,0,1,1]5376; SSE-NEXT: pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload5377; SSE-NEXT: # xmm2 = mem[2,3,2,3]5378; SSE-NEXT: punpckldq {{.*#+}} xmm2 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]5379; SSE-NEXT: movsd {{.*#+}} xmm2 = xmm0[0],xmm2[1]5380; SSE-NEXT: movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5381; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload5382; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm4[1,1,1,1]5383; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload5384; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm15[2,3,2,3]5385; SSE-NEXT: punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]5386; SSE-NEXT: movdqa 1184(%rdi), %xmm15387; SSE-NEXT: movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5388; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[0,0,1,1]5389; SSE-NEXT: pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Folded Reload5390; SSE-NEXT: # xmm3 = mem[2,3,2,3]5391; SSE-NEXT: punpckldq {{.*#+}} xmm3 = xmm3[0],xmm1[0],xmm3[1],xmm1[1]5392; SSE-NEXT: movsd {{.*#+}} xmm3 = xmm0[0],xmm3[1]5393; SSE-NEXT: movapd %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5394; SSE-NEXT: movdqa %xmm5, %xmm05395; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm14[2,2,3,3]5396; SSE-NEXT: punpckhdq {{.*#+}} xmm0 = xmm0[2],xmm1[2],xmm0[3],xmm1[3]5397; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload5398; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm14[0,0,1,1]5399; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload5400; SSE-NEXT: punpckldq {{.*#+}} xmm1 = xmm1[0],xmm3[0],xmm1[1],xmm3[1]5401; SSE-NEXT: movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]5402; SSE-NEXT: movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5403; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5404; SSE-NEXT: pshufd $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload5405; SSE-NEXT: # xmm1 = mem[2,2,3,3]5406; SSE-NEXT: punpckhdq {{.*#+}} xmm0 = xmm0[2],xmm1[2],xmm0[3],xmm1[3]5407; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload5408; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm7[0,0,1,1]5409; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload5410; SSE-NEXT: punpckldq {{.*#+}} xmm1 = xmm1[0],xmm5[0],xmm1[1],xmm5[1]5411; SSE-NEXT: movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]5412; SSE-NEXT: movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5413; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5414; SSE-NEXT: pshufd $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload5415; SSE-NEXT: # xmm1 = mem[2,2,3,3]5416; SSE-NEXT: punpckhdq {{.*#+}} xmm0 = xmm0[2],xmm1[2],xmm0[3],xmm1[3]5417; SSE-NEXT: pshufd $80, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload5418; SSE-NEXT: # xmm1 = mem[0,0,1,1]5419; SSE-NEXT: movdqa %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5420; SSE-NEXT: punpckldq {{.*#+}} xmm1 = xmm1[0],xmm8[0],xmm1[1],xmm8[1]5421; SSE-NEXT: movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]5422; SSE-NEXT: movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5423; SSE-NEXT: movdqa %xmm6, %xmm05424; SSE-NEXT: pshufd $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload5425; SSE-NEXT: # xmm1 = mem[2,2,3,3]5426; SSE-NEXT: punpckhdq {{.*#+}} xmm0 = xmm0[2],xmm1[2],xmm0[3],xmm1[3]5427; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Reload5428; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm9[0,0,1,1]5429; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload5430; SSE-NEXT: punpckldq {{.*#+}} xmm1 = xmm1[0],xmm6[0],xmm1[1],xmm6[1]5431; SSE-NEXT: movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]5432; SSE-NEXT: movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5433; SSE-NEXT: movdqa %xmm11, %xmm05434; SSE-NEXT: pshufd $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload5435; SSE-NEXT: # xmm1 = mem[2,2,3,3]5436; SSE-NEXT: punpckhdq {{.*#+}} xmm0 = xmm0[2],xmm1[2],xmm0[3],xmm1[3]5437; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Reload5438; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm11[0,0,1,1]5439; SSE-NEXT: punpckldq {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload5440; SSE-NEXT: # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]5441; SSE-NEXT: movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]5442; SSE-NEXT: movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5443; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5444; SSE-NEXT: pshufd $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload5445; SSE-NEXT: # xmm1 = mem[2,2,3,3]5446; SSE-NEXT: punpckhdq {{.*#+}} xmm0 = xmm0[2],xmm1[2],xmm0[3],xmm1[3]5447; SSE-NEXT: pshufd $80, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload5448; SSE-NEXT: # xmm1 = mem[0,0,1,1]5449; SSE-NEXT: punpckldq {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload5450; SSE-NEXT: # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]5451; SSE-NEXT: movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]5452; SSE-NEXT: movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5453; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5454; SSE-NEXT: pshufd $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload5455; SSE-NEXT: # xmm1 = mem[2,2,3,3]5456; SSE-NEXT: punpckhdq {{.*#+}} xmm0 = xmm0[2],xmm1[2],xmm0[3],xmm1[3]5457; SSE-NEXT: pshufd $80, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload5458; SSE-NEXT: # xmm1 = mem[0,0,1,1]5459; SSE-NEXT: punpckldq {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload5460; SSE-NEXT: # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]5461; SSE-NEXT: movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]5462; SSE-NEXT: movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5463; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5464; SSE-NEXT: pshufd $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload5465; SSE-NEXT: # xmm1 = mem[2,2,3,3]5466; SSE-NEXT: punpckhdq {{.*#+}} xmm0 = xmm0[2],xmm1[2],xmm0[3],xmm1[3]5467; SSE-NEXT: pshufd $80, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload5468; SSE-NEXT: # xmm1 = mem[0,0,1,1]5469; SSE-NEXT: punpckldq {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload5470; SSE-NEXT: # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]5471; SSE-NEXT: movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]5472; SSE-NEXT: movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5473; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5474; SSE-NEXT: pshufd $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload5475; SSE-NEXT: # xmm1 = mem[2,2,3,3]5476; SSE-NEXT: punpckhdq {{.*#+}} xmm0 = xmm0[2],xmm1[2],xmm0[3],xmm1[3]5477; SSE-NEXT: pshufd $80, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload5478; SSE-NEXT: # xmm1 = mem[0,0,1,1]5479; SSE-NEXT: punpckldq {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload5480; SSE-NEXT: # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]5481; SSE-NEXT: movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]5482; SSE-NEXT: movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5483; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5484; SSE-NEXT: pshufd $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload5485; SSE-NEXT: # xmm1 = mem[2,2,3,3]5486; SSE-NEXT: punpckhdq {{.*#+}} xmm0 = xmm0[2],xmm1[2],xmm0[3],xmm1[3]5487; SSE-NEXT: pshufd $80, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload5488; SSE-NEXT: # xmm1 = mem[0,0,1,1]5489; SSE-NEXT: punpckldq {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload5490; SSE-NEXT: # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]5491; SSE-NEXT: movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]5492; SSE-NEXT: movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5493; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5494; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm13[2,2,3,3]5495; SSE-NEXT: punpckhdq {{.*#+}} xmm0 = xmm0[2],xmm1[2],xmm0[3],xmm1[3]5496; SSE-NEXT: pshufd $80, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload5497; SSE-NEXT: # xmm1 = mem[0,0,1,1]5498; SSE-NEXT: punpckldq {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload5499; SSE-NEXT: # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]5500; SSE-NEXT: movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]5501; SSE-NEXT: movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5502; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5503; SSE-NEXT: pshufd $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload5504; SSE-NEXT: # xmm1 = mem[2,2,3,3]5505; SSE-NEXT: punpckhdq {{.*#+}} xmm0 = xmm0[2],xmm1[2],xmm0[3],xmm1[3]5506; SSE-NEXT: pshufd $80, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload5507; SSE-NEXT: # xmm1 = mem[0,0,1,1]5508; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload5509; SSE-NEXT: punpckldq {{.*#+}} xmm1 = xmm1[0],xmm13[0],xmm1[1],xmm13[1]5510; SSE-NEXT: movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]5511; SSE-NEXT: movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5512; SSE-NEXT: movdqa %xmm10, %xmm05513; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm12[2,2,3,3]5514; SSE-NEXT: punpckhdq {{.*#+}} xmm0 = xmm0[2],xmm1[2],xmm0[3],xmm1[3]5515; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload5516; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm10[0,0,1,1]5517; SSE-NEXT: punpckldq {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload5518; SSE-NEXT: # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]5519; SSE-NEXT: movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]5520; SSE-NEXT: movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5521; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5522; SSE-NEXT: pshufd $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload5523; SSE-NEXT: # xmm1 = mem[2,2,3,3]5524; SSE-NEXT: punpckhdq {{.*#+}} xmm0 = xmm0[2],xmm1[2],xmm0[3],xmm1[3]5525; SSE-NEXT: pshufd $80, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload5526; SSE-NEXT: # xmm1 = mem[0,0,1,1]5527; SSE-NEXT: punpckldq {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload5528; SSE-NEXT: # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]5529; SSE-NEXT: movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]5530; SSE-NEXT: movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5531; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm15[2,2,3,3]5532; SSE-NEXT: punpckhdq {{.*#+}} xmm4 = xmm4[2],xmm1[2],xmm4[3],xmm1[3]5533; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Reload5534; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm12[0,0,1,1]5535; SSE-NEXT: punpckldq {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload5536; SSE-NEXT: # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]5537; SSE-NEXT: movsd {{.*#+}} xmm1 = xmm4[0],xmm1[1]5538; SSE-NEXT: movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5539; SSE-NEXT: movdqa (%rsp), %xmm0 # 16-byte Reload5540; SSE-NEXT: pshufd $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload5541; SSE-NEXT: # xmm1 = mem[2,2,3,3]5542; SSE-NEXT: punpckhdq {{.*#+}} xmm0 = xmm0[2],xmm1[2],xmm0[3],xmm1[3]5543; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload5544; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm15[0,0,1,1]5545; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload5546; SSE-NEXT: punpckldq {{.*#+}} xmm2 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]5547; SSE-NEXT: movsd {{.*#+}} xmm2 = xmm0[0],xmm2[1]5548; SSE-NEXT: movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5549; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm3[2,2,3,3]5550; SSE-NEXT: movdqa %xmm14, %xmm25551; SSE-NEXT: punpckldq {{.*#+}} xmm2 = xmm2[0],xmm0[0],xmm2[1],xmm0[1]5552; SSE-NEXT: pshufd $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload5553; SSE-NEXT: # xmm0 = mem[3,3,3,3]5554; SSE-NEXT: punpckldq {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload5555; SSE-NEXT: # xmm0 = xmm0[0],mem[0],xmm0[1],mem[1]5556; SSE-NEXT: movsd {{.*#+}} xmm2 = xmm0[0],xmm2[1]5557; SSE-NEXT: movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5558; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm5[2,2,3,3]5559; SSE-NEXT: punpckldq {{.*#+}} xmm7 = xmm7[0],xmm0[0],xmm7[1],xmm0[1]5560; SSE-NEXT: pshufd $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload5561; SSE-NEXT: # xmm0 = mem[3,3,3,3]5562; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload5563; SSE-NEXT: punpckldq {{.*#+}} xmm0 = xmm0[0],xmm14[0],xmm0[1],xmm14[1]5564; SSE-NEXT: movsd {{.*#+}} xmm7 = xmm0[0],xmm7[1]5565; SSE-NEXT: movapd %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5566; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm8[2,2,3,3]5567; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload5568; SSE-NEXT: punpckldq {{.*#+}} xmm2 = xmm2[0],xmm0[0],xmm2[1],xmm0[1]5569; SSE-NEXT: pshufd $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload5570; SSE-NEXT: # xmm0 = mem[3,3,3,3]5571; SSE-NEXT: punpckldq {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload5572; SSE-NEXT: # xmm0 = xmm0[0],mem[0],xmm0[1],mem[1]5573; SSE-NEXT: movsd {{.*#+}} xmm2 = xmm0[0],xmm2[1]5574; SSE-NEXT: movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5575; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm6[2,2,3,3]5576; SSE-NEXT: punpckldq {{.*#+}} xmm9 = xmm9[0],xmm0[0],xmm9[1],xmm0[1]5577; SSE-NEXT: pshufd $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload5578; SSE-NEXT: # xmm0 = mem[3,3,3,3]5579; SSE-NEXT: punpckldq {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload5580; SSE-NEXT: # xmm0 = xmm0[0],mem[0],xmm0[1],mem[1]5581; SSE-NEXT: movsd {{.*#+}} xmm9 = xmm0[0],xmm9[1]5582; SSE-NEXT: movapd %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5583; SSE-NEXT: pshufd $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload5584; SSE-NEXT: # xmm0 = mem[2,2,3,3]5585; SSE-NEXT: punpckldq {{.*#+}} xmm11 = xmm11[0],xmm0[0],xmm11[1],xmm0[1]5586; SSE-NEXT: pshufd $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload5587; SSE-NEXT: # xmm0 = mem[3,3,3,3]5588; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Reload5589; SSE-NEXT: punpckldq {{.*#+}} xmm0 = xmm0[0],xmm9[0],xmm0[1],xmm9[1]5590; SSE-NEXT: movsd {{.*#+}} xmm11 = xmm0[0],xmm11[1]5591; SSE-NEXT: movapd %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5592; SSE-NEXT: pshufd $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload5593; SSE-NEXT: # xmm0 = mem[2,2,3,3]5594; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload5595; SSE-NEXT: punpckldq {{.*#+}} xmm2 = xmm2[0],xmm0[0],xmm2[1],xmm0[1]5596; SSE-NEXT: pshufd $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload5597; SSE-NEXT: # xmm0 = mem[3,3,3,3]5598; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload5599; SSE-NEXT: punpckldq {{.*#+}} xmm0 = xmm0[0],xmm7[0],xmm0[1],xmm7[1]5600; SSE-NEXT: movsd {{.*#+}} xmm2 = xmm0[0],xmm2[1]5601; SSE-NEXT: movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5602; SSE-NEXT: pshufd $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload5603; SSE-NEXT: # xmm0 = mem[2,2,3,3]5604; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload5605; SSE-NEXT: punpckldq {{.*#+}} xmm2 = xmm2[0],xmm0[0],xmm2[1],xmm0[1]5606; SSE-NEXT: pshufd $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload5607; SSE-NEXT: # xmm0 = mem[3,3,3,3]5608; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload5609; SSE-NEXT: punpckldq {{.*#+}} xmm0 = xmm0[0],xmm6[0],xmm0[1],xmm6[1]5610; SSE-NEXT: movsd {{.*#+}} xmm2 = xmm0[0],xmm2[1]5611; SSE-NEXT: movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5612; SSE-NEXT: pshufd $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload5613; SSE-NEXT: # xmm0 = mem[2,2,3,3]5614; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload5615; SSE-NEXT: punpckldq {{.*#+}} xmm3 = xmm3[0],xmm0[0],xmm3[1],xmm0[1]5616; SSE-NEXT: pshufd $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload5617; SSE-NEXT: # xmm0 = mem[3,3,3,3]5618; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload5619; SSE-NEXT: punpckldq {{.*#+}} xmm0 = xmm0[0],xmm8[0],xmm0[1],xmm8[1]5620; SSE-NEXT: movsd {{.*#+}} xmm3 = xmm0[0],xmm3[1]5621; SSE-NEXT: movapd %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5622; SSE-NEXT: pshufd $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload5623; SSE-NEXT: # xmm0 = mem[2,2,3,3]5624; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload5625; SSE-NEXT: punpckldq {{.*#+}} xmm3 = xmm3[0],xmm0[0],xmm3[1],xmm0[1]5626; SSE-NEXT: pshufd $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload5627; SSE-NEXT: # xmm0 = mem[3,3,3,3]5628; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload5629; SSE-NEXT: punpckldq {{.*#+}} xmm0 = xmm0[0],xmm5[0],xmm0[1],xmm5[1]5630; SSE-NEXT: movsd {{.*#+}} xmm3 = xmm0[0],xmm3[1]5631; SSE-NEXT: movapd %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5632; SSE-NEXT: pshufd $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload5633; SSE-NEXT: # xmm0 = mem[2,2,3,3]5634; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload5635; SSE-NEXT: punpckldq {{.*#+}} xmm4 = xmm4[0],xmm0[0],xmm4[1],xmm0[1]5636; SSE-NEXT: pshufd $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload5637; SSE-NEXT: # xmm0 = mem[3,3,3,3]5638; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload5639; SSE-NEXT: punpckldq {{.*#+}} xmm0 = xmm0[0],xmm3[0],xmm0[1],xmm3[1]5640; SSE-NEXT: movsd {{.*#+}} xmm4 = xmm0[0],xmm4[1]5641; SSE-NEXT: movapd %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5642; SSE-NEXT: pshufd $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload5643; SSE-NEXT: # xmm0 = mem[2,2,3,3]5644; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload5645; SSE-NEXT: punpckldq {{.*#+}} xmm4 = xmm4[0],xmm0[0],xmm4[1],xmm0[1]5646; SSE-NEXT: pshufd $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload5647; SSE-NEXT: # xmm0 = mem[3,3,3,3]5648; SSE-NEXT: punpckldq {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload5649; SSE-NEXT: # xmm0 = xmm0[0],mem[0],xmm0[1],mem[1]5650; SSE-NEXT: movsd {{.*#+}} xmm4 = xmm0[0],xmm4[1]5651; SSE-NEXT: movapd %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5652; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm13[2,2,3,3]5653; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Reload5654; SSE-NEXT: punpckldq {{.*#+}} xmm11 = xmm11[0],xmm0[0],xmm11[1],xmm0[1]5655; SSE-NEXT: pshufd $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload5656; SSE-NEXT: # xmm0 = mem[3,3,3,3]5657; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload5658; SSE-NEXT: punpckldq {{.*#+}} xmm0 = xmm0[0],xmm4[0],xmm0[1],xmm4[1]5659; SSE-NEXT: movsd {{.*#+}} xmm11 = xmm0[0],xmm11[1]5660; SSE-NEXT: movapd %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5661; SSE-NEXT: pshufd $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload5662; SSE-NEXT: # xmm0 = mem[2,2,3,3]5663; SSE-NEXT: punpckldq {{.*#+}} xmm10 = xmm10[0],xmm0[0],xmm10[1],xmm0[1]5664; SSE-NEXT: pshufd $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload5665; SSE-NEXT: # xmm0 = mem[3,3,3,3]5666; SSE-NEXT: punpckldq {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload5667; SSE-NEXT: # xmm0 = xmm0[0],mem[0],xmm0[1],mem[1]5668; SSE-NEXT: movsd {{.*#+}} xmm10 = xmm0[0],xmm10[1]5669; SSE-NEXT: movapd %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5670; SSE-NEXT: pshufd $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload5671; SSE-NEXT: # xmm0 = mem[2,2,3,3]5672; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload5673; SSE-NEXT: punpckldq {{.*#+}} xmm10 = xmm10[0],xmm0[0],xmm10[1],xmm0[1]5674; SSE-NEXT: pshufd $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload5675; SSE-NEXT: # xmm0 = mem[3,3,3,3]5676; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload5677; SSE-NEXT: punpckldq {{.*#+}} xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1]5678; SSE-NEXT: movsd {{.*#+}} xmm10 = xmm0[0],xmm10[1]5679; SSE-NEXT: movapd %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5680; SSE-NEXT: pshufd $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload5681; SSE-NEXT: # xmm0 = mem[2,2,3,3]5682; SSE-NEXT: punpckldq {{.*#+}} xmm12 = xmm12[0],xmm0[0],xmm12[1],xmm0[1]5683; SSE-NEXT: pshufd $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload5684; SSE-NEXT: # xmm0 = mem[3,3,3,3]5685; SSE-NEXT: punpckldq {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload5686; SSE-NEXT: # xmm0 = xmm0[0],mem[0],xmm0[1],mem[1]5687; SSE-NEXT: movsd {{.*#+}} xmm12 = xmm0[0],xmm12[1]5688; SSE-NEXT: movapd %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5689; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm1[2,2,3,3]5690; SSE-NEXT: movdqa %xmm15, %xmm135691; SSE-NEXT: punpckldq {{.*#+}} xmm13 = xmm13[0],xmm0[0],xmm13[1],xmm0[1]5692; SSE-NEXT: pshufd $255, (%rsp), %xmm0 # 16-byte Folded Reload5693; SSE-NEXT: # xmm0 = mem[3,3,3,3]5694; SSE-NEXT: punpckldq {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload5695; SSE-NEXT: # xmm0 = xmm0[0],mem[0],xmm0[1],mem[1]5696; SSE-NEXT: movsd {{.*#+}} xmm13 = xmm0[0],xmm13[1]5697; SSE-NEXT: pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload5698; SSE-NEXT: # xmm0 = mem[1,1,1,1]5699; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload5700; SSE-NEXT: punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]5701; SSE-NEXT: pshufd $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload5702; SSE-NEXT: # xmm0 = mem[2,2,2,2]5703; SSE-NEXT: punpckhdq {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload5704; SSE-NEXT: # xmm0 = xmm0[2],mem[2],xmm0[3],mem[3]5705; SSE-NEXT: movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]5706; SSE-NEXT: movapd %xmm0, (%rsp) # 16-byte Spill5707; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm14[1,1,1,1]5708; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload5709; SSE-NEXT: punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]5710; SSE-NEXT: pshufd $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload5711; SSE-NEXT: # xmm0 = mem[2,2,2,2]5712; SSE-NEXT: punpckhdq {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload5713; SSE-NEXT: # xmm0 = xmm0[2],mem[2],xmm0[3],mem[3]5714; SSE-NEXT: movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]5715; SSE-NEXT: movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5716; SSE-NEXT: pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload5717; SSE-NEXT: # xmm0 = mem[1,1,1,1]5718; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload5719; SSE-NEXT: punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]5720; SSE-NEXT: pshufd $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Folded Reload5721; SSE-NEXT: # xmm14 = mem[2,2,2,2]5722; SSE-NEXT: punpckhdq {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Folded Reload5723; SSE-NEXT: # xmm14 = xmm14[2],mem[2],xmm14[3],mem[3]5724; SSE-NEXT: movsd {{.*#+}} xmm14 = xmm1[0],xmm14[1]5725; SSE-NEXT: pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload5726; SSE-NEXT: # xmm0 = mem[1,1,1,1]5727; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload5728; SSE-NEXT: punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]5729; SSE-NEXT: pshufd $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Folded Reload5730; SSE-NEXT: # xmm12 = mem[2,2,2,2]5731; SSE-NEXT: punpckhdq {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Folded Reload5732; SSE-NEXT: # xmm12 = xmm12[2],mem[2],xmm12[3],mem[3]5733; SSE-NEXT: movsd {{.*#+}} xmm12 = xmm1[0],xmm12[1]5734; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm9[1,1,1,1]5735; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload5736; SSE-NEXT: punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]5737; SSE-NEXT: pshufd $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Folded Reload5738; SSE-NEXT: # xmm11 = mem[2,2,2,2]5739; SSE-NEXT: punpckhdq {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Folded Reload5740; SSE-NEXT: # xmm11 = xmm11[2],mem[2],xmm11[3],mem[3]5741; SSE-NEXT: movsd {{.*#+}} xmm11 = xmm1[0],xmm11[1]5742; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm7[1,1,1,1]5743; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload5744; SSE-NEXT: punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]5745; SSE-NEXT: pshufd $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Folded Reload5746; SSE-NEXT: # xmm10 = mem[2,2,2,2]5747; SSE-NEXT: punpckhdq {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Folded Reload5748; SSE-NEXT: # xmm10 = xmm10[2],mem[2],xmm10[3],mem[3]5749; SSE-NEXT: movsd {{.*#+}} xmm10 = xmm1[0],xmm10[1]5750; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm6[1,1,1,1]5751; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload5752; SSE-NEXT: punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]5753; SSE-NEXT: pshufd $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Folded Reload5754; SSE-NEXT: # xmm9 = mem[2,2,2,2]5755; SSE-NEXT: punpckhdq {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Folded Reload5756; SSE-NEXT: # xmm9 = xmm9[2],mem[2],xmm9[3],mem[3]5757; SSE-NEXT: movsd {{.*#+}} xmm9 = xmm1[0],xmm9[1]5758; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm8[1,1,1,1]5759; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload5760; SSE-NEXT: punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]5761; SSE-NEXT: pshufd $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Folded Reload5762; SSE-NEXT: # xmm8 = mem[2,2,2,2]5763; SSE-NEXT: punpckhdq {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Folded Reload5764; SSE-NEXT: # xmm8 = xmm8[2],mem[2],xmm8[3],mem[3]5765; SSE-NEXT: movsd {{.*#+}} xmm8 = xmm1[0],xmm8[1]5766; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm5[1,1,1,1]5767; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload5768; SSE-NEXT: punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]5769; SSE-NEXT: pshufd $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Folded Reload5770; SSE-NEXT: # xmm7 = mem[2,2,2,2]5771; SSE-NEXT: punpckhdq {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Folded Reload5772; SSE-NEXT: # xmm7 = xmm7[2],mem[2],xmm7[3],mem[3]5773; SSE-NEXT: movsd {{.*#+}} xmm7 = xmm1[0],xmm7[1]5774; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm3[1,1,1,1]5775; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload5776; SSE-NEXT: punpckldq {{.*#+}} xmm3 = xmm3[0],xmm0[0],xmm3[1],xmm0[1]5777; SSE-NEXT: pshufd $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Folded Reload5778; SSE-NEXT: # xmm6 = mem[2,2,2,2]5779; SSE-NEXT: punpckhdq {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Folded Reload5780; SSE-NEXT: # xmm6 = xmm6[2],mem[2],xmm6[3],mem[3]5781; SSE-NEXT: movsd {{.*#+}} xmm6 = xmm3[0],xmm6[1]5782; SSE-NEXT: pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload5783; SSE-NEXT: # xmm0 = mem[1,1,1,1]5784; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload5785; SSE-NEXT: punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]5786; SSE-NEXT: pshufd $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Folded Reload5787; SSE-NEXT: # xmm5 = mem[2,2,2,2]5788; SSE-NEXT: punpckhdq {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Folded Reload5789; SSE-NEXT: # xmm5 = xmm5[2],mem[2],xmm5[3],mem[3]5790; SSE-NEXT: movsd {{.*#+}} xmm5 = xmm1[0],xmm5[1]5791; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm4[1,1,1,1]5792; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload5793; SSE-NEXT: punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]5794; SSE-NEXT: pshufd $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload5795; SSE-NEXT: # xmm4 = mem[2,2,2,2]5796; SSE-NEXT: punpckhdq {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload5797; SSE-NEXT: # xmm4 = xmm4[2],mem[2],xmm4[3],mem[3]5798; SSE-NEXT: movsd {{.*#+}} xmm4 = xmm1[0],xmm4[1]5799; SSE-NEXT: pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload5800; SSE-NEXT: # xmm0 = mem[1,1,1,1]5801; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload5802; SSE-NEXT: punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]5803; SSE-NEXT: pshufd $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Folded Reload5804; SSE-NEXT: # xmm3 = mem[2,2,2,2]5805; SSE-NEXT: punpckhdq {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Folded Reload5806; SSE-NEXT: # xmm3 = xmm3[2],mem[2],xmm3[3],mem[3]5807; SSE-NEXT: movsd {{.*#+}} xmm3 = xmm1[0],xmm3[1]5808; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm2[1,1,1,1]5809; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload5810; SSE-NEXT: punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]5811; SSE-NEXT: pshufd $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload5812; SSE-NEXT: # xmm2 = mem[2,2,2,2]5813; SSE-NEXT: punpckhdq {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload5814; SSE-NEXT: # xmm2 = xmm2[2],mem[2],xmm2[3],mem[3]5815; SSE-NEXT: movsd {{.*#+}} xmm2 = xmm1[0],xmm2[1]5816; SSE-NEXT: pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload5817; SSE-NEXT: # xmm0 = mem[1,1,1,1]5818; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload5819; SSE-NEXT: punpckldq {{.*#+}} xmm15 = xmm15[0],xmm0[0],xmm15[1],xmm0[1]5820; SSE-NEXT: pshufd $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload5821; SSE-NEXT: # xmm1 = mem[2,2,2,2]5822; SSE-NEXT: punpckhdq {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload5823; SSE-NEXT: # xmm1 = xmm1[2],mem[2],xmm1[3],mem[3]5824; SSE-NEXT: movsd {{.*#+}} xmm1 = xmm15[0],xmm1[1]5825; SSE-NEXT: pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload5826; SSE-NEXT: # xmm0 = mem[1,1,1,1]5827; SSE-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload5828; SSE-NEXT: punpckldq {{.*#+}} xmm15 = xmm15[0],xmm0[0],xmm15[1],xmm0[1]5829; SSE-NEXT: pshufd $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload5830; SSE-NEXT: # xmm0 = mem[2,2,2,2]5831; SSE-NEXT: punpckhdq {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload5832; SSE-NEXT: # xmm0 = xmm0[2],mem[2],xmm0[3],mem[3]5833; SSE-NEXT: movsd {{.*#+}} xmm0 = xmm15[0],xmm0[1]5834; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload5835; SSE-NEXT: movaps %xmm15, 224(%rsi)5836; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload5837; SSE-NEXT: movaps %xmm15, 160(%rsi)5838; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload5839; SSE-NEXT: movaps %xmm15, 96(%rsi)5840; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload5841; SSE-NEXT: movaps %xmm15, 32(%rsi)5842; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload5843; SSE-NEXT: movaps %xmm15, 240(%rsi)5844; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload5845; SSE-NEXT: movaps %xmm15, 176(%rsi)5846; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload5847; SSE-NEXT: movaps %xmm15, 112(%rsi)5848; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload5849; SSE-NEXT: movaps %xmm15, 48(%rsi)5850; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload5851; SSE-NEXT: movaps %xmm15, 192(%rsi)5852; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload5853; SSE-NEXT: movaps %xmm15, 128(%rsi)5854; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload5855; SSE-NEXT: movaps %xmm15, 64(%rsi)5856; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload5857; SSE-NEXT: movaps %xmm15, (%rsi)5858; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload5859; SSE-NEXT: movaps %xmm15, 208(%rsi)5860; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload5861; SSE-NEXT: movaps %xmm15, 144(%rsi)5862; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload5863; SSE-NEXT: movaps %xmm15, 80(%rsi)5864; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload5865; SSE-NEXT: movaps %xmm15, 16(%rsi)5866; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload5867; SSE-NEXT: movaps %xmm15, 224(%rdx)5868; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload5869; SSE-NEXT: movaps %xmm15, 240(%rdx)5870; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload5871; SSE-NEXT: movaps %xmm15, 192(%rdx)5872; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload5873; SSE-NEXT: movaps %xmm15, 208(%rdx)5874; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload5875; SSE-NEXT: movaps %xmm15, 160(%rdx)5876; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload5877; SSE-NEXT: movaps %xmm15, 176(%rdx)5878; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload5879; SSE-NEXT: movaps %xmm15, 128(%rdx)5880; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload5881; SSE-NEXT: movaps %xmm15, 144(%rdx)5882; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload5883; SSE-NEXT: movaps %xmm15, 96(%rdx)5884; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload5885; SSE-NEXT: movaps %xmm15, 112(%rdx)5886; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload5887; SSE-NEXT: movaps %xmm15, 64(%rdx)5888; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload5889; SSE-NEXT: movaps %xmm15, 80(%rdx)5890; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload5891; SSE-NEXT: movaps %xmm15, 32(%rdx)5892; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload5893; SSE-NEXT: movaps %xmm15, 48(%rdx)5894; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload5895; SSE-NEXT: movaps %xmm15, (%rdx)5896; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload5897; SSE-NEXT: movaps %xmm15, 16(%rdx)5898; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload5899; SSE-NEXT: movaps %xmm15, 240(%rcx)5900; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload5901; SSE-NEXT: movaps %xmm15, 224(%rcx)5902; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload5903; SSE-NEXT: movaps %xmm15, 208(%rcx)5904; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload5905; SSE-NEXT: movaps %xmm15, 192(%rcx)5906; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload5907; SSE-NEXT: movaps %xmm15, 176(%rcx)5908; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload5909; SSE-NEXT: movaps %xmm15, 160(%rcx)5910; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload5911; SSE-NEXT: movaps %xmm15, 144(%rcx)5912; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload5913; SSE-NEXT: movaps %xmm15, 128(%rcx)5914; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload5915; SSE-NEXT: movaps %xmm15, 112(%rcx)5916; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload5917; SSE-NEXT: movaps %xmm15, 96(%rcx)5918; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload5919; SSE-NEXT: movaps %xmm15, 80(%rcx)5920; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload5921; SSE-NEXT: movaps %xmm15, 64(%rcx)5922; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload5923; SSE-NEXT: movaps %xmm15, 48(%rcx)5924; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload5925; SSE-NEXT: movaps %xmm15, 32(%rcx)5926; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload5927; SSE-NEXT: movaps %xmm15, 16(%rcx)5928; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload5929; SSE-NEXT: movaps %xmm15, (%rcx)5930; SSE-NEXT: movapd %xmm13, 240(%r8)5931; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload5932; SSE-NEXT: movaps %xmm13, 224(%r8)5933; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload5934; SSE-NEXT: movaps %xmm13, 208(%r8)5935; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload5936; SSE-NEXT: movaps %xmm13, 192(%r8)5937; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload5938; SSE-NEXT: movaps %xmm13, 176(%r8)5939; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload5940; SSE-NEXT: movaps %xmm13, 160(%r8)5941; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload5942; SSE-NEXT: movaps %xmm13, 144(%r8)5943; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload5944; SSE-NEXT: movaps %xmm13, 128(%r8)5945; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload5946; SSE-NEXT: movaps %xmm13, 112(%r8)5947; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload5948; SSE-NEXT: movaps %xmm13, 96(%r8)5949; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload5950; SSE-NEXT: movaps %xmm13, 80(%r8)5951; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload5952; SSE-NEXT: movaps %xmm13, 64(%r8)5953; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload5954; SSE-NEXT: movaps %xmm13, 48(%r8)5955; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload5956; SSE-NEXT: movaps %xmm13, 32(%r8)5957; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload5958; SSE-NEXT: movaps %xmm13, 16(%r8)5959; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload5960; SSE-NEXT: movaps %xmm13, (%r8)5961; SSE-NEXT: movapd %xmm0, 240(%r9)5962; SSE-NEXT: movapd %xmm1, 224(%r9)5963; SSE-NEXT: movapd %xmm2, 208(%r9)5964; SSE-NEXT: movapd %xmm3, 192(%r9)5965; SSE-NEXT: movapd %xmm4, 176(%r9)5966; SSE-NEXT: movapd %xmm5, 160(%r9)5967; SSE-NEXT: movapd %xmm6, 144(%r9)5968; SSE-NEXT: movapd %xmm7, 128(%r9)5969; SSE-NEXT: movapd %xmm8, 112(%r9)5970; SSE-NEXT: movapd %xmm9, 96(%r9)5971; SSE-NEXT: movapd %xmm10, 80(%r9)5972; SSE-NEXT: movapd %xmm11, 64(%r9)5973; SSE-NEXT: movapd %xmm12, 48(%r9)5974; SSE-NEXT: movapd %xmm14, 32(%r9)5975; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5976; SSE-NEXT: movaps %xmm0, 16(%r9)5977; SSE-NEXT: movaps (%rsp), %xmm0 # 16-byte Reload5978; SSE-NEXT: movaps %xmm0, (%r9)5979; SSE-NEXT: addq $1928, %rsp # imm = 0x7885980; SSE-NEXT: retq5981;5982; AVX-LABEL: load_i32_stride5_vf64:5983; AVX: # %bb.0:5984; AVX-NEXT: subq $2488, %rsp # imm = 0x9B85985; AVX-NEXT: vmovaps 832(%rdi), %ymm35986; AVX-NEXT: vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5987; AVX-NEXT: vmovaps 544(%rdi), %ymm85988; AVX-NEXT: vmovups %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5989; AVX-NEXT: vmovaps 576(%rdi), %ymm95990; AVX-NEXT: vmovups %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5991; AVX-NEXT: vmovaps 512(%rdi), %ymm65992; AVX-NEXT: vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5993; AVX-NEXT: vmovaps 480(%rdi), %ymm75994; AVX-NEXT: vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5995; AVX-NEXT: vmovaps 224(%rdi), %ymm55996; AVX-NEXT: vmovaps 256(%rdi), %ymm45997; AVX-NEXT: vmovaps 192(%rdi), %ymm15998; AVX-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5999; AVX-NEXT: vmovaps 160(%rdi), %ymm06000; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6001; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3],ymm0[4,5],ymm1[6,7]6002; AVX-NEXT: vextractf128 $1, %ymm0, %xmm16003; AVX-NEXT: vblendps {{.*#+}} xmm0 = xmm0[0],xmm1[1],xmm0[2],xmm1[3]6004; AVX-NEXT: vinsertf128 $1, 288(%rdi), %ymm0, %ymm16005; AVX-NEXT: vmovaps 256(%rdi), %xmm26006; AVX-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6007; AVX-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm26008; AVX-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6009; AVX-NEXT: vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5],ymm4[6,7]6010; AVX-NEXT: vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm5[4],ymm2[5,6,7]6011; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm2[4,5,6,7]6012; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3],ymm0[4,5,6],ymm1[7]6013; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6014; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm7[0,1],ymm6[2,3],ymm7[4,5],ymm6[6,7]6015; AVX-NEXT: vextractf128 $1, %ymm0, %xmm16016; AVX-NEXT: vblendps {{.*#+}} xmm0 = xmm0[0],xmm1[1],xmm0[2],xmm1[3]6017; AVX-NEXT: vmovaps 576(%rdi), %xmm16018; AVX-NEXT: vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6019; AVX-NEXT: vinsertf128 $1, %xmm1, %ymm0, %ymm16020; AVX-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6021; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm9[6,7]6022; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm8[4],ymm1[5,6,7]6023; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm0[0,1,2,3],ymm1[4,5,6,7]6024; AVX-NEXT: vinsertf128 $1, 608(%rdi), %ymm0, %ymm06025; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3],ymm1[4,5,6],ymm0[7]6026; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6027; AVX-NEXT: vmovaps 800(%rdi), %ymm06028; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6029; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm3[2,3],ymm0[4,5],ymm3[6,7]6030; AVX-NEXT: vextractf128 $1, %ymm0, %xmm16031; AVX-NEXT: vblendps {{.*#+}} xmm0 = xmm0[0],xmm1[1],xmm0[2],xmm1[3]6032; AVX-NEXT: vmovaps 864(%rdi), %ymm26033; AVX-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6034; AVX-NEXT: vmovaps 896(%rdi), %ymm96035; AVX-NEXT: vmovaps 896(%rdi), %xmm16036; AVX-NEXT: vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6037; AVX-NEXT: vinsertf128 $1, %xmm1, %ymm0, %ymm16038; AVX-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6039; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm9[6,7]6040; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm2[4],ymm1[5,6,7]6041; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm0[0,1,2,3],ymm1[4,5,6,7]6042; AVX-NEXT: vinsertf128 $1, 928(%rdi), %ymm0, %ymm06043; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3],ymm1[4,5,6],ymm0[7]6044; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6045; AVX-NEXT: vmovaps 1152(%rdi), %ymm16046; AVX-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6047; AVX-NEXT: vmovaps 1120(%rdi), %ymm06048; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6049; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3],ymm0[4,5],ymm1[6,7]6050; AVX-NEXT: vextractf128 $1, %ymm0, %xmm16051; AVX-NEXT: vblendps {{.*#+}} xmm0 = xmm0[0],xmm1[1],xmm0[2],xmm1[3]6052; AVX-NEXT: vmovaps 1184(%rdi), %ymm136053; AVX-NEXT: vmovaps 1216(%rdi), %ymm156054; AVX-NEXT: vmovaps 1216(%rdi), %xmm16055; AVX-NEXT: vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6056; AVX-NEXT: vinsertf128 $1, %xmm1, %ymm0, %ymm16057; AVX-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6058; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm15[6,7]6059; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm13[4],ymm1[5,6,7]6060; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm0[0,1,2,3],ymm1[4,5,6,7]6061; AVX-NEXT: vinsertf128 $1, 1248(%rdi), %ymm0, %ymm06062; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3],ymm1[4,5,6],ymm0[7]6063; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6064; AVX-NEXT: vmovaps 32(%rdi), %ymm16065; AVX-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6066; AVX-NEXT: vmovaps (%rdi), %ymm06067; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6068; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3],ymm0[4,5],ymm1[6,7]6069; AVX-NEXT: vextractf128 $1, %ymm0, %xmm16070; AVX-NEXT: vblendps {{.*#+}} xmm0 = xmm0[0],xmm1[1],xmm0[2],xmm1[3]6071; AVX-NEXT: vmovaps 64(%rdi), %ymm86072; AVX-NEXT: vmovaps 96(%rdi), %ymm116073; AVX-NEXT: vmovaps 96(%rdi), %xmm16074; AVX-NEXT: vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6075; AVX-NEXT: vinsertf128 $1, %xmm1, %ymm0, %ymm16076; AVX-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6077; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm11[6,7]6078; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm8[4],ymm1[5,6,7]6079; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm0[0,1,2,3],ymm1[4,5,6,7]6080; AVX-NEXT: vinsertf128 $1, 128(%rdi), %ymm0, %ymm06081; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3],ymm1[4,5,6],ymm0[7]6082; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6083; AVX-NEXT: vmovaps 352(%rdi), %ymm16084; AVX-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6085; AVX-NEXT: vmovaps 320(%rdi), %ymm06086; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6087; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3],ymm0[4,5],ymm1[6,7]6088; AVX-NEXT: vextractf128 $1, %ymm0, %xmm16089; AVX-NEXT: vblendps {{.*#+}} xmm0 = xmm0[0],xmm1[1],xmm0[2],xmm1[3]6090; AVX-NEXT: vmovaps 384(%rdi), %ymm146091; AVX-NEXT: vmovaps 416(%rdi), %ymm76092; AVX-NEXT: vmovaps 416(%rdi), %xmm16093; AVX-NEXT: vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6094; AVX-NEXT: vinsertf128 $1, %xmm1, %ymm0, %ymm16095; AVX-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6096; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm7[6,7]6097; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm14[4],ymm1[5,6,7]6098; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm0[0,1,2,3],ymm1[4,5,6,7]6099; AVX-NEXT: vinsertf128 $1, 448(%rdi), %ymm0, %ymm06100; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3],ymm1[4,5,6],ymm0[7]6101; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6102; AVX-NEXT: vmovaps 672(%rdi), %ymm06103; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6104; AVX-NEXT: vmovaps 640(%rdi), %ymm16105; AVX-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6106; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3],ymm1[4,5],ymm0[6,7]6107; AVX-NEXT: vextractf128 $1, %ymm0, %xmm16108; AVX-NEXT: vblendps {{.*#+}} xmm0 = xmm0[0],xmm1[1],xmm0[2],xmm1[3]6109; AVX-NEXT: vmovaps 704(%rdi), %ymm126110; AVX-NEXT: vmovaps 736(%rdi), %ymm66111; AVX-NEXT: vmovaps 736(%rdi), %xmm16112; AVX-NEXT: vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6113; AVX-NEXT: vinsertf128 $1, %xmm1, %ymm0, %ymm16114; AVX-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6115; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm6[6,7]6116; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm12[4],ymm1[5,6,7]6117; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm0[0,1,2,3],ymm1[4,5,6,7]6118; AVX-NEXT: vinsertf128 $1, 768(%rdi), %ymm0, %ymm06119; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3],ymm1[4,5,6],ymm0[7]6120; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6121; AVX-NEXT: vmovaps 992(%rdi), %ymm16122; AVX-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6123; AVX-NEXT: vmovaps 960(%rdi), %ymm06124; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6125; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3],ymm0[4,5],ymm1[6,7]6126; AVX-NEXT: vextractf128 $1, %ymm0, %xmm16127; AVX-NEXT: vblendps {{.*#+}} xmm3 = xmm0[0],xmm1[1],xmm0[2],xmm1[3]6128; AVX-NEXT: vmovaps 1024(%rdi), %ymm26129; AVX-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6130; AVX-NEXT: vmovaps 1056(%rdi), %ymm106131; AVX-NEXT: vmovaps 1056(%rdi), %xmm16132; AVX-NEXT: vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6133; AVX-NEXT: vinsertf128 $1, %xmm1, %ymm0, %ymm06134; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6135; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm0[0,1,2,3,4,5],ymm10[6,7]6136; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm2[4],ymm1[5,6,7]6137; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm3[0,1,2,3],ymm1[4,5,6,7]6138; AVX-NEXT: vinsertf128 $1, 1088(%rdi), %ymm3, %ymm06139; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3],ymm1[4,5,6],ymm0[7]6140; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6141; AVX-NEXT: vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6142; AVX-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm4[2,3,0,1]6143; AVX-NEXT: vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6144; AVX-NEXT: vshufps {{.*#+}} ymm0 = ymm0[2,1],ymm5[1,3],ymm0[6,5],ymm5[5,7]6145; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm5[0,1],ymm4[2,3],ymm5[4,5],ymm4[6,7]6146; AVX-NEXT: vshufps {{.*#+}} ymm0 = ymm0[2,0],ymm1[3,0],ymm0[6,4],ymm1[7,4]6147; AVX-NEXT: vmovaps 160(%rdi), %xmm46148; AVX-NEXT: vmovaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6149; AVX-NEXT: vmovaps 192(%rdi), %xmm16150; AVX-NEXT: vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6151; AVX-NEXT: vmovsd {{.*#+}} xmm1 = xmm4[0],xmm1[1]6152; AVX-NEXT: vblendps {{.*#+}} xmm1 = xmm1[0,1],mem[2],xmm1[3]6153; AVX-NEXT: vshufps {{.*#+}} xmm1 = xmm1[1,2,3,3]6154; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3,4,5,6,7]6155; AVX-NEXT: vbroadcastss 304(%rdi), %ymm16156; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5,6],ymm1[7]6157; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6158; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload6159; AVX-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm1[2,3,0,1]6160; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload6161; AVX-NEXT: vshufps {{.*#+}} ymm0 = ymm0[2,1],ymm5[1,3],ymm0[6,5],ymm5[5,7]6162; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm5[0,1],ymm1[2,3],ymm5[4,5],ymm1[6,7]6163; AVX-NEXT: vshufps {{.*#+}} ymm0 = ymm0[2,0],ymm1[3,0],ymm0[6,4],ymm1[7,4]6164; AVX-NEXT: vmovaps 480(%rdi), %xmm26165; AVX-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6166; AVX-NEXT: vmovaps 512(%rdi), %xmm16167; AVX-NEXT: vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6168; AVX-NEXT: vmovsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]6169; AVX-NEXT: vblendps {{.*#+}} xmm1 = xmm1[0,1],mem[2],xmm1[3]6170; AVX-NEXT: vshufps {{.*#+}} xmm1 = xmm1[1,2,3,3]6171; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3,4,5,6,7]6172; AVX-NEXT: vbroadcastss 624(%rdi), %ymm16173; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5,6],ymm1[7]6174; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6175; AVX-NEXT: vmovups %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6176; AVX-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm9[2,3,0,1]6177; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload6178; AVX-NEXT: vshufps {{.*#+}} ymm0 = ymm0[2,1],ymm1[1,3],ymm0[6,5],ymm1[5,7]6179; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm1[0,1],ymm9[2,3],ymm1[4,5],ymm9[6,7]6180; AVX-NEXT: vshufps {{.*#+}} ymm0 = ymm0[2,0],ymm1[3,0],ymm0[6,4],ymm1[7,4]6181; AVX-NEXT: vmovaps 800(%rdi), %xmm26182; AVX-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6183; AVX-NEXT: vmovaps 832(%rdi), %xmm16184; AVX-NEXT: vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6185; AVX-NEXT: vmovsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]6186; AVX-NEXT: vblendps {{.*#+}} xmm1 = xmm1[0,1],mem[2],xmm1[3]6187; AVX-NEXT: vshufps {{.*#+}} xmm1 = xmm1[1,2,3,3]6188; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3,4,5,6,7]6189; AVX-NEXT: vbroadcastss 944(%rdi), %ymm16190; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5,6],ymm1[7]6191; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6192; AVX-NEXT: vmovups %ymm15, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6193; AVX-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm15[2,3,0,1]6194; AVX-NEXT: vshufps {{.*#+}} ymm0 = ymm0[2,1],ymm13[1,3],ymm0[6,5],ymm13[5,7]6195; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm13[0,1],ymm15[2,3],ymm13[4,5],ymm15[6,7]6196; AVX-NEXT: vshufps {{.*#+}} ymm0 = ymm0[2,0],ymm1[3,0],ymm0[6,4],ymm1[7,4]6197; AVX-NEXT: vmovaps 1120(%rdi), %xmm26198; AVX-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6199; AVX-NEXT: vmovaps 1152(%rdi), %xmm16200; AVX-NEXT: vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6201; AVX-NEXT: vmovsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]6202; AVX-NEXT: vblendps {{.*#+}} xmm1 = xmm1[0,1],mem[2],xmm1[3]6203; AVX-NEXT: vshufps {{.*#+}} xmm1 = xmm1[1,2,3,3]6204; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3,4,5,6,7]6205; AVX-NEXT: vbroadcastss 1264(%rdi), %ymm16206; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5,6],ymm1[7]6207; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6208; AVX-NEXT: vmovups %ymm11, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6209; AVX-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm11[2,3,0,1]6210; AVX-NEXT: vshufps {{.*#+}} ymm0 = ymm0[2,1],ymm8[1,3],ymm0[6,5],ymm8[5,7]6211; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm8[0,1],ymm11[2,3],ymm8[4,5],ymm11[6,7]6212; AVX-NEXT: vshufps {{.*#+}} ymm0 = ymm0[2,0],ymm1[3,0],ymm0[6,4],ymm1[7,4]6213; AVX-NEXT: vmovaps (%rdi), %xmm36214; AVX-NEXT: vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6215; AVX-NEXT: vmovaps 32(%rdi), %xmm16216; AVX-NEXT: vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6217; AVX-NEXT: vmovsd {{.*#+}} xmm1 = xmm3[0],xmm1[1]6218; AVX-NEXT: vblendps {{.*#+}} xmm1 = xmm1[0,1],mem[2],xmm1[3]6219; AVX-NEXT: vshufps {{.*#+}} xmm1 = xmm1[1,2,3,3]6220; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3,4,5,6,7]6221; AVX-NEXT: vbroadcastss 144(%rdi), %ymm16222; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5,6],ymm1[7]6223; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6224; AVX-NEXT: vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6225; AVX-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm7[2,3,0,1]6226; AVX-NEXT: vshufps {{.*#+}} ymm0 = ymm0[2,1],ymm14[1,3],ymm0[6,5],ymm14[5,7]6227; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm14[0,1],ymm7[2,3],ymm14[4,5],ymm7[6,7]6228; AVX-NEXT: vshufps {{.*#+}} ymm0 = ymm0[2,0],ymm1[3,0],ymm0[6,4],ymm1[7,4]6229; AVX-NEXT: vmovaps 320(%rdi), %xmm26230; AVX-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6231; AVX-NEXT: vmovaps 352(%rdi), %xmm16232; AVX-NEXT: vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6233; AVX-NEXT: vmovsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]6234; AVX-NEXT: vblendps {{.*#+}} xmm1 = xmm1[0,1],mem[2],xmm1[3]6235; AVX-NEXT: vshufps {{.*#+}} xmm1 = xmm1[1,2,3,3]6236; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3,4,5,6,7]6237; AVX-NEXT: vbroadcastss 464(%rdi), %ymm16238; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5,6],ymm1[7]6239; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6240; AVX-NEXT: vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6241; AVX-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm6[2,3,0,1]6242; AVX-NEXT: vshufps {{.*#+}} ymm0 = ymm0[2,1],ymm12[1,3],ymm0[6,5],ymm12[5,7]6243; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm12[0,1],ymm6[2,3],ymm12[4,5],ymm6[6,7]6244; AVX-NEXT: vmovaps %ymm12, %ymm76245; AVX-NEXT: vshufps {{.*#+}} ymm0 = ymm0[2,0],ymm1[3,0],ymm0[6,4],ymm1[7,4]6246; AVX-NEXT: vmovaps 640(%rdi), %xmm26247; AVX-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6248; AVX-NEXT: vmovaps 672(%rdi), %xmm16249; AVX-NEXT: vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6250; AVX-NEXT: vmovsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]6251; AVX-NEXT: vblendps {{.*#+}} xmm1 = xmm1[0,1],mem[2],xmm1[3]6252; AVX-NEXT: vshufps {{.*#+}} xmm1 = xmm1[1,2,3,3]6253; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3,4,5,6,7]6254; AVX-NEXT: vbroadcastss 784(%rdi), %ymm16255; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5,6],ymm1[7]6256; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6257; AVX-NEXT: vmovaps %ymm10, %ymm16258; AVX-NEXT: vmovups %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6259; AVX-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm10[2,3,0,1]6260; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload6261; AVX-NEXT: vshufps {{.*#+}} ymm0 = ymm0[2,1],ymm10[1,3],ymm0[6,5],ymm10[5,7]6262; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm10[0,1],ymm1[2,3],ymm10[4,5],ymm1[6,7]6263; AVX-NEXT: vshufps {{.*#+}} ymm0 = ymm0[2,0],ymm1[3,0],ymm0[6,4],ymm1[7,4]6264; AVX-NEXT: vmovaps 960(%rdi), %xmm26265; AVX-NEXT: vmovaps %xmm2, (%rsp) # 16-byte Spill6266; AVX-NEXT: vmovaps 992(%rdi), %xmm16267; AVX-NEXT: vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6268; AVX-NEXT: vmovsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]6269; AVX-NEXT: vblendps {{.*#+}} xmm1 = xmm1[0,1],mem[2],xmm1[3]6270; AVX-NEXT: vshufps {{.*#+}} xmm1 = xmm1[1,2,3,3]6271; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3,4,5,6,7]6272; AVX-NEXT: vbroadcastss 1104(%rdi), %ymm16273; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5,6],ymm1[7]6274; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6275; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload6276; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6277; AVX-NEXT: vshufps {{.*#+}} ymm0 = ymm0[3,0],ymm1[2,0],ymm0[7,4],ymm1[6,4]6278; AVX-NEXT: vshufps {{.*#+}} ymm0 = ymm0[2,0],ymm1[2,1],ymm0[6,4],ymm1[6,5]6279; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload6280; AVX-NEXT: vblendps $207, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload6281; AVX-NEXT: # ymm1 = mem[0,1,2,3],ymm1[4,5],mem[6,7]6282; AVX-NEXT: vextractf128 $1, %ymm1, %xmm16283; AVX-NEXT: vblendps {{.*#+}} xmm1 = xmm1[0,1],mem[2],xmm1[3]6284; AVX-NEXT: vshufpd {{.*#+}} xmm1 = xmm1[1,0]6285; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3,4,5,6,7]6286; AVX-NEXT: vmovaps 288(%rdi), %ymm26287; AVX-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6288; AVX-NEXT: vperm2f128 {{.*#+}} ymm1 = ymm2[2,3,0,1]6289; AVX-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6290; AVX-NEXT: vshufps {{.*#+}} ymm1 = ymm2[1,0],ymm1[0,0],ymm2[5,4],ymm1[4,4]6291; AVX-NEXT: vshufps {{.*#+}} ymm1 = ymm1[0,1,2,0,4,5,6,4]6292; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]6293; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6294; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6295; AVX-NEXT: vshufps {{.*#+}} ymm0 = ymm0[3,0],ymm5[2,0],ymm0[7,4],ymm5[6,4]6296; AVX-NEXT: vshufps {{.*#+}} ymm0 = ymm0[2,0],ymm5[2,1],ymm0[6,4],ymm5[6,5]6297; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload6298; AVX-NEXT: vblendps $207, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload6299; AVX-NEXT: # ymm1 = mem[0,1,2,3],ymm1[4,5],mem[6,7]6300; AVX-NEXT: vextractf128 $1, %ymm1, %xmm16301; AVX-NEXT: vblendps {{.*#+}} xmm1 = xmm1[0,1],mem[2],xmm1[3]6302; AVX-NEXT: vshufpd {{.*#+}} xmm1 = xmm1[1,0]6303; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3,4,5,6,7]6304; AVX-NEXT: vmovaps 608(%rdi), %ymm26305; AVX-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6306; AVX-NEXT: vperm2f128 {{.*#+}} ymm1 = ymm2[2,3,0,1]6307; AVX-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6308; AVX-NEXT: vshufps {{.*#+}} ymm1 = ymm2[1,0],ymm1[0,0],ymm2[5,4],ymm1[4,4]6309; AVX-NEXT: vshufps {{.*#+}} ymm1 = ymm1[0,1,2,0,4,5,6,4]6310; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]6311; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6312; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload6313; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6314; AVX-NEXT: vshufps {{.*#+}} ymm0 = ymm0[3,0],ymm1[2,0],ymm0[7,4],ymm1[6,4]6315; AVX-NEXT: vshufps {{.*#+}} ymm0 = ymm0[2,0],ymm1[2,1],ymm0[6,4],ymm1[6,5]6316; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload6317; AVX-NEXT: vblendps $207, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload6318; AVX-NEXT: # ymm1 = mem[0,1,2,3],ymm1[4,5],mem[6,7]6319; AVX-NEXT: vextractf128 $1, %ymm1, %xmm16320; AVX-NEXT: vblendps {{.*#+}} xmm1 = xmm1[0,1],mem[2],xmm1[3]6321; AVX-NEXT: vshufpd {{.*#+}} xmm1 = xmm1[1,0]6322; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3,4,5,6,7]6323; AVX-NEXT: vmovaps 928(%rdi), %ymm26324; AVX-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6325; AVX-NEXT: vperm2f128 {{.*#+}} ymm1 = ymm2[2,3,0,1]6326; AVX-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6327; AVX-NEXT: vshufps {{.*#+}} ymm1 = ymm2[1,0],ymm1[0,0],ymm2[5,4],ymm1[4,4]6328; AVX-NEXT: vshufps {{.*#+}} ymm1 = ymm1[0,1,2,0,4,5,6,4]6329; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]6330; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6331; AVX-NEXT: vmovups %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6332; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6333; AVX-NEXT: vshufps {{.*#+}} ymm0 = ymm0[3,0],ymm13[2,0],ymm0[7,4],ymm13[6,4]6334; AVX-NEXT: vshufps {{.*#+}} ymm0 = ymm0[2,0],ymm13[2,1],ymm0[6,4],ymm13[6,5]6335; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload6336; AVX-NEXT: vblendps $207, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload6337; AVX-NEXT: # ymm1 = mem[0,1,2,3],ymm1[4,5],mem[6,7]6338; AVX-NEXT: vextractf128 $1, %ymm1, %xmm16339; AVX-NEXT: vblendps {{.*#+}} xmm1 = xmm1[0,1],mem[2],xmm1[3]6340; AVX-NEXT: vshufpd {{.*#+}} xmm1 = xmm1[1,0]6341; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3,4,5,6,7]6342; AVX-NEXT: vmovaps 1248(%rdi), %ymm16343; AVX-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6344; AVX-NEXT: vperm2f128 {{.*#+}} ymm6 = ymm1[2,3,0,1]6345; AVX-NEXT: vshufps {{.*#+}} ymm1 = ymm1[1,0],ymm6[0,0],ymm1[5,4],ymm6[4,4]6346; AVX-NEXT: vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6347; AVX-NEXT: vshufps {{.*#+}} ymm1 = ymm1[0,1,2,0,4,5,6,4]6348; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]6349; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6350; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6351; AVX-NEXT: vmovups %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6352; AVX-NEXT: vshufps {{.*#+}} ymm0 = ymm0[3,0],ymm8[2,0],ymm0[7,4],ymm8[6,4]6353; AVX-NEXT: vshufps {{.*#+}} ymm0 = ymm0[2,0],ymm8[2,1],ymm0[6,4],ymm8[6,5]6354; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload6355; AVX-NEXT: vblendps $207, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload6356; AVX-NEXT: # ymm1 = mem[0,1,2,3],ymm1[4,5],mem[6,7]6357; AVX-NEXT: vextractf128 $1, %ymm1, %xmm16358; AVX-NEXT: vblendps {{.*#+}} xmm1 = xmm1[0,1],mem[2],xmm1[3]6359; AVX-NEXT: vshufpd {{.*#+}} xmm1 = xmm1[1,0]6360; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm1[0,1,2],ymm0[3,4,5,6,7]6361; AVX-NEXT: vmovaps 128(%rdi), %ymm46362; AVX-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm4[2,3,0,1]6363; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6364; AVX-NEXT: vshufps {{.*#+}} ymm2 = ymm4[1,0],ymm0[0,0],ymm4[5,4],ymm0[4,4]6365; AVX-NEXT: vshufps {{.*#+}} ymm2 = ymm2[0,1,2,0,4,5,6,4]6366; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm2[6,7]6367; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6368; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6369; AVX-NEXT: vshufps {{.*#+}} ymm1 = ymm0[3,0],ymm14[2,0],ymm0[7,4],ymm14[6,4]6370; AVX-NEXT: vshufps {{.*#+}} ymm1 = ymm1[2,0],ymm14[2,1],ymm1[6,4],ymm14[6,5]6371; AVX-NEXT: vmovaps %ymm14, %ymm86372; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6373; AVX-NEXT: vblendps $207, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm2 # 32-byte Folded Reload6374; AVX-NEXT: # ymm2 = mem[0,1,2,3],ymm0[4,5],mem[6,7]6375; AVX-NEXT: vextractf128 $1, %ymm2, %xmm26376; AVX-NEXT: vblendps {{.*#+}} xmm2 = xmm2[0,1],mem[2],xmm2[3]6377; AVX-NEXT: vshufpd {{.*#+}} xmm2 = xmm2[1,0]6378; AVX-NEXT: vblendps {{.*#+}} ymm2 = ymm2[0,1,2],ymm1[3,4,5,6,7]6379; AVX-NEXT: vmovaps 448(%rdi), %ymm126380; AVX-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm12[2,3,0,1]6381; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6382; AVX-NEXT: vshufps {{.*#+}} ymm3 = ymm12[1,0],ymm0[0,0],ymm12[5,4],ymm0[4,4]6383; AVX-NEXT: vshufps {{.*#+}} ymm3 = ymm3[0,1,2,0,4,5,6,4]6384; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm2[0,1,2,3,4,5],ymm3[6,7]6385; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6386; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6387; AVX-NEXT: vshufps {{.*#+}} ymm2 = ymm0[3,0],ymm7[2,0],ymm0[7,4],ymm7[6,4]6388; AVX-NEXT: vshufps {{.*#+}} ymm2 = ymm2[2,0],ymm7[2,1],ymm2[6,4],ymm7[6,5]6389; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6390; AVX-NEXT: vblendps $48, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm3 # 32-byte Folded Reload6391; AVX-NEXT: # ymm3 = ymm0[0,1,2,3],mem[4,5],ymm0[6,7]6392; AVX-NEXT: vextractf128 $1, %ymm3, %xmm36393; AVX-NEXT: vblendps {{.*#+}} xmm3 = xmm3[0,1],mem[2],xmm3[3]6394; AVX-NEXT: vshufpd {{.*#+}} xmm3 = xmm3[1,0]6395; AVX-NEXT: vblendps {{.*#+}} ymm3 = ymm3[0,1,2],ymm2[3,4,5,6,7]6396; AVX-NEXT: vmovaps 768(%rdi), %ymm136397; AVX-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm13[2,3,0,1]6398; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6399; AVX-NEXT: vshufps {{.*#+}} ymm11 = ymm13[1,0],ymm0[0,0],ymm13[5,4],ymm0[4,4]6400; AVX-NEXT: vshufps {{.*#+}} ymm11 = ymm11[0,1,2,0,4,5,6,4]6401; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm3[0,1,2,3,4,5],ymm11[6,7]6402; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6403; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6404; AVX-NEXT: vshufps {{.*#+}} ymm3 = ymm0[3,0],ymm10[2,0],ymm0[7,4],ymm10[6,4]6405; AVX-NEXT: vshufps {{.*#+}} ymm3 = ymm3[2,0],ymm10[2,1],ymm3[6,4],ymm10[6,5]6406; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6407; AVX-NEXT: vblendps $207, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm11 # 32-byte Folded Reload6408; AVX-NEXT: # ymm11 = mem[0,1,2,3],ymm0[4,5],mem[6,7]6409; AVX-NEXT: vextractf128 $1, %ymm11, %xmm116410; AVX-NEXT: vblendps {{.*#+}} xmm11 = xmm11[0,1],mem[2],xmm11[3]6411; AVX-NEXT: vshufpd {{.*#+}} xmm11 = xmm11[1,0]6412; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm11[0,1,2],ymm3[3,4,5,6,7]6413; AVX-NEXT: vmovaps 1088(%rdi), %ymm116414; AVX-NEXT: vperm2f128 {{.*#+}} ymm3 = ymm11[2,3,0,1]6415; AVX-NEXT: vshufps {{.*#+}} ymm15 = ymm11[1,0],ymm3[0,0],ymm11[5,4],ymm3[4,4]6416; AVX-NEXT: vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6417; AVX-NEXT: vshufps {{.*#+}} ymm15 = ymm15[0,1,2,0,4,5,6,4]6418; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm15[6,7]6419; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6420; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6421; AVX-NEXT: vblendps $3, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload6422; AVX-NEXT: # xmm0 = mem[0,1],xmm0[2,3]6423; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload6424; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload6425; AVX-NEXT: vshufps {{.*#+}} ymm15 = ymm5[0,0],ymm1[3,0],ymm5[4,4],ymm1[7,4]6426; AVX-NEXT: vshufps {{.*#+}} ymm15 = ymm15[2,0],ymm1[2,2],ymm15[6,4],ymm1[6,6]6427; AVX-NEXT: vshufps {{.*#+}} xmm0 = xmm0[3,0],mem[1,3]6428; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm15[3,4,5,6,7]6429; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload6430; AVX-NEXT: vshufps $18, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm15 # 32-byte Folded Reload6431; AVX-NEXT: # ymm15 = ymm1[2,0],mem[1,0],ymm1[6,4],mem[5,4]6432; AVX-NEXT: vshufps {{.*#+}} ymm15 = ymm15[0,1,2,0,4,5,6,4]6433; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm15[6,7]6434; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6435; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6436; AVX-NEXT: vblendps $3, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload6437; AVX-NEXT: # xmm0 = mem[0,1],xmm0[2,3]6438; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload6439; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload6440; AVX-NEXT: vshufps {{.*#+}} ymm15 = ymm2[0,0],ymm1[3,0],ymm2[4,4],ymm1[7,4]6441; AVX-NEXT: vshufps {{.*#+}} ymm15 = ymm15[2,0],ymm1[2,2],ymm15[6,4],ymm1[6,6]6442; AVX-NEXT: vshufps {{.*#+}} xmm0 = xmm0[3,0],mem[1,3]6443; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm15[3,4,5,6,7]6444; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload6445; AVX-NEXT: vshufps $18, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm15 # 32-byte Folded Reload6446; AVX-NEXT: # ymm15 = ymm1[2,0],mem[1,0],ymm1[6,4],mem[5,4]6447; AVX-NEXT: vshufps {{.*#+}} ymm15 = ymm15[0,1,2,0,4,5,6,4]6448; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm15[6,7]6449; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6450; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6451; AVX-NEXT: vblendps $3, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload6452; AVX-NEXT: # xmm0 = mem[0,1],xmm0[2,3]6453; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload6454; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload6455; AVX-NEXT: vshufps {{.*#+}} ymm15 = ymm1[0,0],ymm2[3,0],ymm1[4,4],ymm2[7,4]6456; AVX-NEXT: vshufps {{.*#+}} ymm15 = ymm15[2,0],ymm2[2,2],ymm15[6,4],ymm2[6,6]6457; AVX-NEXT: vshufps {{.*#+}} xmm0 = xmm0[3,0],mem[1,3]6458; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm15[3,4,5,6,7]6459; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload6460; AVX-NEXT: vshufps $18, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm15 # 32-byte Folded Reload6461; AVX-NEXT: # ymm15 = ymm1[2,0],mem[1,0],ymm1[6,4],mem[5,4]6462; AVX-NEXT: vshufps {{.*#+}} ymm15 = ymm15[0,1,2,0,4,5,6,4]6463; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm15[6,7]6464; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6465; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6466; AVX-NEXT: vblendps $3, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload6467; AVX-NEXT: # xmm0 = mem[0,1],xmm0[2,3]6468; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Reload6469; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload6470; AVX-NEXT: vshufps {{.*#+}} ymm15 = ymm15[0,0],ymm1[3,0],ymm15[4,4],ymm1[7,4]6471; AVX-NEXT: vshufps {{.*#+}} ymm15 = ymm15[2,0],ymm1[2,2],ymm15[6,4],ymm1[6,6]6472; AVX-NEXT: vshufps {{.*#+}} xmm0 = xmm0[3,0],mem[1,3]6473; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm15[3,4,5,6,7]6474; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload6475; AVX-NEXT: vshufps {{.*#+}} ymm15 = ymm1[2,0],ymm6[1,0],ymm1[6,4],ymm6[5,4]6476; AVX-NEXT: vshufps {{.*#+}} ymm15 = ymm15[0,1,2,0,4,5,6,4]6477; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm15[6,7]6478; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6479; AVX-NEXT: vmovaps (%rsp), %xmm0 # 16-byte Reload6480; AVX-NEXT: vblendps $3, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload6481; AVX-NEXT: # xmm0 = mem[0,1],xmm0[2,3]6482; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload6483; AVX-NEXT: vshufps {{.*#+}} ymm15 = ymm1[0,0],ymm10[3,0],ymm1[4,4],ymm10[7,4]6484; AVX-NEXT: vshufps {{.*#+}} ymm15 = ymm15[2,0],ymm10[2,2],ymm15[6,4],ymm10[6,6]6485; AVX-NEXT: vshufps {{.*#+}} xmm0 = xmm0[3,0],mem[1,3]6486; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm15[3,4,5,6,7]6487; AVX-NEXT: vshufps {{.*#+}} ymm15 = ymm11[2,0],ymm3[1,0],ymm11[6,4],ymm3[5,4]6488; AVX-NEXT: vshufps {{.*#+}} ymm15 = ymm15[0,1,2,0,4,5,6,4]6489; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm15[6,7]6490; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6491; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6492; AVX-NEXT: vblendps $3, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload6493; AVX-NEXT: # xmm0 = mem[0,1],xmm0[2,3]6494; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload6495; AVX-NEXT: vmovaps %ymm7, %ymm146496; AVX-NEXT: vshufps {{.*#+}} ymm15 = ymm9[0,0],ymm7[3,0],ymm9[4,4],ymm7[7,4]6497; AVX-NEXT: vshufps {{.*#+}} ymm15 = ymm15[2,0],ymm7[2,2],ymm15[6,4],ymm7[6,6]6498; AVX-NEXT: vshufps {{.*#+}} xmm0 = xmm0[3,0],mem[1,3]6499; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm15[3,4,5,6,7]6500; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload6501; AVX-NEXT: vshufps {{.*#+}} ymm15 = ymm13[2,0],ymm10[1,0],ymm13[6,4],ymm10[5,4]6502; AVX-NEXT: vshufps {{.*#+}} ymm15 = ymm15[0,1,2,0,4,5,6,4]6503; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm15[6,7]6504; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6505; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6506; AVX-NEXT: vblendps $3, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload6507; AVX-NEXT: # xmm0 = mem[0,1],xmm0[2,3]6508; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload6509; AVX-NEXT: vmovaps %ymm8, %ymm76510; AVX-NEXT: vshufps {{.*#+}} ymm15 = ymm6[0,0],ymm8[3,0],ymm6[4,4],ymm8[7,4]6511; AVX-NEXT: vshufps {{.*#+}} ymm15 = ymm15[2,0],ymm8[2,2],ymm15[6,4],ymm8[6,6]6512; AVX-NEXT: vshufps {{.*#+}} xmm0 = xmm0[3,0],mem[1,3]6513; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm15[3,4,5,6,7]6514; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload6515; AVX-NEXT: vshufps {{.*#+}} ymm15 = ymm12[2,0],ymm3[1,0],ymm12[6,4],ymm3[5,4]6516; AVX-NEXT: vshufps {{.*#+}} ymm15 = ymm15[0,1,2,0,4,5,6,4]6517; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm15[6,7]6518; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6519; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6520; AVX-NEXT: vblendps $3, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload6521; AVX-NEXT: # xmm0 = mem[0,1],xmm0[2,3]6522; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload6523; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload6524; AVX-NEXT: vshufps {{.*#+}} ymm15 = ymm1[0,0],ymm8[3,0],ymm1[4,4],ymm8[7,4]6525; AVX-NEXT: vshufps {{.*#+}} ymm15 = ymm15[2,0],ymm8[2,2],ymm15[6,4],ymm8[6,6]6526; AVX-NEXT: vshufps {{.*#+}} xmm0 = xmm0[3,0],mem[1,3]6527; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm15[3,4,5,6,7]6528; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload6529; AVX-NEXT: vshufps {{.*#+}} ymm15 = ymm4[2,0],ymm2[1,0],ymm4[6,4],ymm2[5,4]6530; AVX-NEXT: vshufps {{.*#+}} ymm15 = ymm15[0,1,2,0,4,5,6,4]6531; AVX-NEXT: vblendps {{.*#+}} ymm15 = ymm0[0,1,2,3,4,5],ymm15[6,7]6532; AVX-NEXT: vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm0 # 16-byte Folded Reload6533; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5],ymm0[6,7]6534; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload6535; AVX-NEXT: vblendps $48, {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm8 # 32-byte Folded Reload6536; AVX-NEXT: # ymm8 = ymm8[0,1,2,3],mem[4,5],ymm8[6,7]6537; AVX-NEXT: vextractf128 $1, %ymm8, %xmm86538; AVX-NEXT: vblendps {{.*#+}} xmm8 = xmm8[0],mem[1],xmm8[2,3]6539; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm8[0,1,2],ymm0[3,4,5,6,7]6540; AVX-NEXT: vblendps {{.*#+}} ymm4 = ymm2[0,1,2,3,4,5,6],ymm4[7]6541; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm4[6,7]6542; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload6543; AVX-NEXT: vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm4 # 16-byte Folded Reload6544; AVX-NEXT: vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3,4],ymm5[5],ymm4[6,7]6545; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload6546; AVX-NEXT: vblendps $48, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5, %ymm5 # 32-byte Folded Reload6547; AVX-NEXT: # ymm5 = ymm5[0,1,2,3],mem[4,5],ymm5[6,7]6548; AVX-NEXT: vextractf128 $1, %ymm5, %xmm56549; AVX-NEXT: vblendps {{.*#+}} xmm5 = xmm5[0],mem[1],xmm5[2,3]6550; AVX-NEXT: vblendps {{.*#+}} ymm4 = ymm5[0,1,2],ymm4[3,4,5,6,7]6551; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload6552; AVX-NEXT: vblendps $127, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm5 # 32-byte Folded Reload6553; AVX-NEXT: # ymm5 = mem[0,1,2,3,4,5,6],ymm1[7]6554; AVX-NEXT: vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3,4,5],ymm5[6,7]6555; AVX-NEXT: vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm5 # 16-byte Folded Reload6556; AVX-NEXT: vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3,4],ymm6[5],ymm5[6,7]6557; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload6558; AVX-NEXT: vblendps $48, {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm8 # 32-byte Folded Reload6559; AVX-NEXT: # ymm8 = ymm8[0,1,2,3],mem[4,5],ymm8[6,7]6560; AVX-NEXT: vextractf128 $1, %ymm8, %xmm86561; AVX-NEXT: vblendps {{.*#+}} xmm8 = xmm8[0],mem[1],xmm8[2,3]6562; AVX-NEXT: vblendps {{.*#+}} ymm5 = ymm8[0,1,2],ymm5[3,4,5,6,7]6563; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm3[0,1,2,3,4,5,6],ymm12[7]6564; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm5[0,1,2,3,4,5],ymm1[6,7]6565; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload6566; AVX-NEXT: vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm5 # 16-byte Folded Reload6567; AVX-NEXT: vblendps $32, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5, %ymm5 # 32-byte Folded Reload6568; AVX-NEXT: # ymm5 = ymm5[0,1,2,3,4],mem[5],ymm5[6,7]6569; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload6570; AVX-NEXT: vblendps $48, {{[-0-9]+}}(%r{{[sb]}}p), %ymm6, %ymm6 # 32-byte Folded Reload6571; AVX-NEXT: # ymm6 = ymm6[0,1,2,3],mem[4,5],ymm6[6,7]6572; AVX-NEXT: vextractf128 $1, %ymm6, %xmm66573; AVX-NEXT: vblendps {{.*#+}} xmm6 = xmm6[0],mem[1],xmm6[2,3]6574; AVX-NEXT: vblendps {{.*#+}} ymm5 = ymm6[0,1,2],ymm5[3,4,5,6,7]6575; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload6576; AVX-NEXT: vblendps $127, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm6 # 32-byte Folded Reload6577; AVX-NEXT: # ymm6 = mem[0,1,2,3,4,5,6],ymm2[7]6578; AVX-NEXT: vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3,4,5],ymm6[6,7]6579; AVX-NEXT: vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm6 # 16-byte Folded Reload6580; AVX-NEXT: vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3,4],ymm9[5],ymm6[6,7]6581; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload6582; AVX-NEXT: vblendps $207, {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm8 # 32-byte Folded Reload6583; AVX-NEXT: # ymm8 = mem[0,1,2,3],ymm8[4,5],mem[6,7]6584; AVX-NEXT: vextractf128 $1, %ymm8, %xmm86585; AVX-NEXT: vblendps {{.*#+}} xmm8 = xmm8[0],mem[1],xmm8[2,3]6586; AVX-NEXT: vblendps {{.*#+}} ymm6 = ymm8[0,1,2],ymm6[3,4,5,6,7]6587; AVX-NEXT: vblendps {{.*#+}} ymm2 = ymm10[0,1,2,3,4,5,6],ymm13[7]6588; AVX-NEXT: vblendps {{.*#+}} ymm2 = ymm6[0,1,2,3,4,5],ymm2[6,7]6589; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload6590; AVX-NEXT: vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm6 # 16-byte Folded Reload6591; AVX-NEXT: vblendps $32, {{[-0-9]+}}(%r{{[sb]}}p), %ymm6, %ymm6 # 32-byte Folded Reload6592; AVX-NEXT: # ymm6 = ymm6[0,1,2,3,4],mem[5],ymm6[6,7]6593; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload6594; AVX-NEXT: vblendps $48, {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm7 # 32-byte Folded Reload6595; AVX-NEXT: # ymm7 = ymm7[0,1,2,3],mem[4,5],ymm7[6,7]6596; AVX-NEXT: vextractf128 $1, %ymm7, %xmm76597; AVX-NEXT: vblendps {{.*#+}} xmm7 = xmm7[0],mem[1],xmm7[2,3]6598; AVX-NEXT: vblendps {{.*#+}} ymm6 = ymm7[0,1,2],ymm6[3,4,5,6,7]6599; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload6600; AVX-NEXT: vblendps $127, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm7 # 32-byte Folded Reload6601; AVX-NEXT: # ymm7 = mem[0,1,2,3,4,5,6],ymm3[7]6602; AVX-NEXT: vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3,4,5],ymm7[6,7]6603; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload6604; AVX-NEXT: vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm7 # 16-byte Folded Reload6605; AVX-NEXT: vblendps $32, {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm7 # 32-byte Folded Reload6606; AVX-NEXT: # ymm7 = ymm7[0,1,2,3,4],mem[5],ymm7[6,7]6607; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload6608; AVX-NEXT: vblendps $48, {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm8 # 32-byte Folded Reload6609; AVX-NEXT: # ymm8 = ymm8[0,1,2,3],mem[4,5],ymm8[6,7]6610; AVX-NEXT: vextractf128 $1, %ymm8, %xmm86611; AVX-NEXT: vblendps {{.*#+}} xmm8 = xmm8[0],mem[1],xmm8[2,3]6612; AVX-NEXT: vblendps {{.*#+}} ymm7 = ymm8[0,1,2],ymm7[3,4,5,6,7]6613; AVX-NEXT: vblendps $127, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm3 # 32-byte Folded Reload6614; AVX-NEXT: # ymm3 = mem[0,1,2,3,4,5,6],ymm11[7]6615; AVX-NEXT: vblendps {{.*#+}} ymm3 = ymm7[0,1,2,3,4,5],ymm3[6,7]6616; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload6617; AVX-NEXT: vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm7 # 16-byte Folded Reload6618; AVX-NEXT: vblendps $32, {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm7 # 32-byte Folded Reload6619; AVX-NEXT: # ymm7 = ymm7[0,1,2,3,4],mem[5],ymm7[6,7]6620; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload6621; AVX-NEXT: vblendps $48, {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm8 # 32-byte Folded Reload6622; AVX-NEXT: # ymm8 = ymm8[0,1,2,3],mem[4,5],ymm8[6,7]6623; AVX-NEXT: vextractf128 $1, %ymm8, %xmm86624; AVX-NEXT: vblendps {{.*#+}} xmm8 = xmm8[0],mem[1],xmm8[2,3]6625; AVX-NEXT: vblendps {{.*#+}} ymm7 = ymm8[0,1,2],ymm7[3,4,5,6,7]6626; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload6627; AVX-NEXT: vblendps $128, {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm8 # 32-byte Folded Reload6628; AVX-NEXT: # ymm8 = ymm8[0,1,2,3,4,5,6],mem[7]6629; AVX-NEXT: vblendps {{.*#+}} ymm7 = ymm7[0,1,2,3,4,5],ymm8[6,7]6630; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload6631; AVX-NEXT: vmovaps %ymm8, 192(%rsi)6632; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload6633; AVX-NEXT: vmovaps %ymm8, 128(%rsi)6634; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload6635; AVX-NEXT: vmovaps %ymm8, 64(%rsi)6636; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload6637; AVX-NEXT: vmovaps %ymm8, (%rsi)6638; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload6639; AVX-NEXT: vmovaps %ymm8, 224(%rsi)6640; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload6641; AVX-NEXT: vmovaps %ymm8, 160(%rsi)6642; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload6643; AVX-NEXT: vmovaps %ymm8, 96(%rsi)6644; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload6645; AVX-NEXT: vmovaps %ymm8, 32(%rsi)6646; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload6647; AVX-NEXT: vmovaps %ymm8, 192(%rdx)6648; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload6649; AVX-NEXT: vmovaps %ymm8, 128(%rdx)6650; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload6651; AVX-NEXT: vmovaps %ymm8, 64(%rdx)6652; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload6653; AVX-NEXT: vmovaps %ymm8, (%rdx)6654; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload6655; AVX-NEXT: vmovaps %ymm8, 224(%rdx)6656; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload6657; AVX-NEXT: vmovaps %ymm8, 160(%rdx)6658; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload6659; AVX-NEXT: vmovaps %ymm8, 96(%rdx)6660; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload6661; AVX-NEXT: vmovaps %ymm8, 32(%rdx)6662; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload6663; AVX-NEXT: vmovaps %ymm8, 192(%rcx)6664; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload6665; AVX-NEXT: vmovaps %ymm8, 128(%rcx)6666; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload6667; AVX-NEXT: vmovaps %ymm8, 64(%rcx)6668; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload6669; AVX-NEXT: vmovaps %ymm8, (%rcx)6670; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload6671; AVX-NEXT: vmovaps %ymm8, 224(%rcx)6672; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload6673; AVX-NEXT: vmovaps %ymm8, 160(%rcx)6674; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload6675; AVX-NEXT: vmovaps %ymm8, 96(%rcx)6676; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload6677; AVX-NEXT: vmovaps %ymm8, 32(%rcx)6678; AVX-NEXT: vmovaps %ymm15, (%r8)6679; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload6680; AVX-NEXT: vmovaps %ymm8, 64(%r8)6681; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload6682; AVX-NEXT: vmovaps %ymm8, 128(%r8)6683; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload6684; AVX-NEXT: vmovaps %ymm8, 192(%r8)6685; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload6686; AVX-NEXT: vmovaps %ymm8, 224(%r8)6687; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload6688; AVX-NEXT: vmovaps %ymm8, 160(%r8)6689; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload6690; AVX-NEXT: vmovaps %ymm8, 96(%r8)6691; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload6692; AVX-NEXT: vmovaps %ymm8, 32(%r8)6693; AVX-NEXT: vmovaps %ymm7, 224(%r9)6694; AVX-NEXT: vmovaps %ymm3, 192(%r9)6695; AVX-NEXT: vmovaps %ymm6, 160(%r9)6696; AVX-NEXT: vmovaps %ymm2, 128(%r9)6697; AVX-NEXT: vmovaps %ymm5, 96(%r9)6698; AVX-NEXT: vmovaps %ymm1, 64(%r9)6699; AVX-NEXT: vmovaps %ymm4, 32(%r9)6700; AVX-NEXT: vmovaps %ymm0, (%r9)6701; AVX-NEXT: addq $2488, %rsp # imm = 0x9B86702; AVX-NEXT: vzeroupper6703; AVX-NEXT: retq6704;6705; AVX2-LABEL: load_i32_stride5_vf64:6706; AVX2: # %bb.0:6707; AVX2-NEXT: subq $2152, %rsp # imm = 0x8686708; AVX2-NEXT: vmovdqa 864(%rdi), %ymm46709; AVX2-NEXT: vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6710; AVX2-NEXT: vmovdqa 896(%rdi), %ymm56711; AVX2-NEXT: vmovdqu %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6712; AVX2-NEXT: vmovdqa 832(%rdi), %ymm156713; AVX2-NEXT: vmovdqa 800(%rdi), %ymm76714; AVX2-NEXT: vmovdqa 544(%rdi), %ymm86715; AVX2-NEXT: vmovdqa 576(%rdi), %ymm96716; AVX2-NEXT: vmovdqu %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6717; AVX2-NEXT: vmovdqa 512(%rdi), %ymm106718; AVX2-NEXT: vmovdqu %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6719; AVX2-NEXT: vmovdqa 480(%rdi), %ymm116720; AVX2-NEXT: vmovdqu %ymm11, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6721; AVX2-NEXT: vmovdqa 224(%rdi), %ymm126722; AVX2-NEXT: vmovdqu %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6723; AVX2-NEXT: vmovdqa 256(%rdi), %ymm136724; AVX2-NEXT: vmovdqu %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6725; AVX2-NEXT: vmovdqa 192(%rdi), %ymm26726; AVX2-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6727; AVX2-NEXT: vmovdqa 160(%rdi), %ymm16728; AVX2-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6729; AVX2-NEXT: vpmovsxbd {{.*#+}} xmm0 = [0,5,2,7]6730; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1],ymm2[2,3],ymm1[4,5],ymm2[6,7]6731; AVX2-NEXT: vpermd %ymm1, %ymm0, %ymm16732; AVX2-NEXT: vinserti128 $1, 288(%rdi), %ymm1, %ymm26733; AVX2-NEXT: vpermq {{.*#+}} ymm3 = ymm13[0,1,0,3]6734; AVX2-NEXT: vpblendd {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm12[4],ymm3[5,6,7]6735; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm3[4,5,6,7]6736; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2],ymm2[3],ymm1[4,5,6],ymm2[7]6737; AVX2-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6738; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm11[0,1],ymm10[2,3],ymm11[4,5],ymm10[6,7]6739; AVX2-NEXT: vpermd %ymm1, %ymm0, %ymm16740; AVX2-NEXT: vpermq {{.*#+}} ymm2 = ymm9[0,1,0,3]6741; AVX2-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm8[4],ymm2[5,6,7]6742; AVX2-NEXT: vmovdqa %ymm8, %ymm96743; AVX2-NEXT: vpblendd {{.*#+}} ymm2 = ymm1[0,1,2,3],ymm2[4,5,6,7]6744; AVX2-NEXT: vinserti128 $1, 608(%rdi), %ymm1, %ymm16745; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3],ymm2[4,5,6],ymm1[7]6746; AVX2-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6747; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm7[0,1],ymm15[2,3],ymm7[4,5],ymm15[6,7]6748; AVX2-NEXT: vmovdqa %ymm7, %ymm106749; AVX2-NEXT: vmovdqu %ymm15, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6750; AVX2-NEXT: vpermd %ymm1, %ymm0, %ymm16751; AVX2-NEXT: vpermq {{.*#+}} ymm2 = ymm5[0,1,0,3]6752; AVX2-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm4[4],ymm2[5,6,7]6753; AVX2-NEXT: vpblendd {{.*#+}} ymm2 = ymm1[0,1,2,3],ymm2[4,5,6,7]6754; AVX2-NEXT: vinserti128 $1, 928(%rdi), %ymm1, %ymm16755; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3],ymm2[4,5,6],ymm1[7]6756; AVX2-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6757; AVX2-NEXT: vmovdqa 1152(%rdi), %ymm146758; AVX2-NEXT: vmovdqa 1120(%rdi), %ymm16759; AVX2-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6760; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1],ymm14[2,3],ymm1[4,5],ymm14[6,7]6761; AVX2-NEXT: vmovdqu %ymm14, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6762; AVX2-NEXT: vpermd %ymm1, %ymm0, %ymm16763; AVX2-NEXT: vmovdqa 1184(%rdi), %ymm36764; AVX2-NEXT: vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6765; AVX2-NEXT: vmovdqa 1216(%rdi), %ymm26766; AVX2-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6767; AVX2-NEXT: vpermq {{.*#+}} ymm2 = ymm2[0,1,0,3]6768; AVX2-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4],ymm2[5,6,7]6769; AVX2-NEXT: vpblendd {{.*#+}} ymm2 = ymm1[0,1,2,3],ymm2[4,5,6,7]6770; AVX2-NEXT: vinserti128 $1, 1248(%rdi), %ymm1, %ymm16771; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3],ymm2[4,5,6],ymm1[7]6772; AVX2-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6773; AVX2-NEXT: vmovdqa 352(%rdi), %ymm26774; AVX2-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6775; AVX2-NEXT: vmovdqa 320(%rdi), %ymm16776; AVX2-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6777; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1],ymm2[2,3],ymm1[4,5],ymm2[6,7]6778; AVX2-NEXT: vpermd %ymm1, %ymm0, %ymm16779; AVX2-NEXT: vmovdqa 384(%rdi), %ymm36780; AVX2-NEXT: vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6781; AVX2-NEXT: vmovdqa 416(%rdi), %ymm26782; AVX2-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6783; AVX2-NEXT: vpermq {{.*#+}} ymm2 = ymm2[0,1,0,3]6784; AVX2-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4],ymm2[5,6,7]6785; AVX2-NEXT: vpblendd {{.*#+}} ymm2 = ymm1[0,1,2,3],ymm2[4,5,6,7]6786; AVX2-NEXT: vinserti128 $1, 448(%rdi), %ymm1, %ymm16787; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3],ymm2[4,5,6],ymm1[7]6788; AVX2-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6789; AVX2-NEXT: vmovdqa 672(%rdi), %ymm26790; AVX2-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6791; AVX2-NEXT: vmovdqa 640(%rdi), %ymm16792; AVX2-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6793; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1],ymm2[2,3],ymm1[4,5],ymm2[6,7]6794; AVX2-NEXT: vpermd %ymm1, %ymm0, %ymm16795; AVX2-NEXT: vmovdqa 704(%rdi), %ymm36796; AVX2-NEXT: vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6797; AVX2-NEXT: vmovdqa 736(%rdi), %ymm26798; AVX2-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6799; AVX2-NEXT: vpermq {{.*#+}} ymm2 = ymm2[0,1,0,3]6800; AVX2-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4],ymm2[5,6,7]6801; AVX2-NEXT: vpblendd {{.*#+}} ymm2 = ymm1[0,1,2,3],ymm2[4,5,6,7]6802; AVX2-NEXT: vinserti128 $1, 768(%rdi), %ymm1, %ymm16803; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3],ymm2[4,5,6],ymm1[7]6804; AVX2-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6805; AVX2-NEXT: vmovdqa 992(%rdi), %ymm16806; AVX2-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6807; AVX2-NEXT: vmovdqa 960(%rdi), %ymm26808; AVX2-NEXT: vmovdqu %ymm2, (%rsp) # 32-byte Spill6809; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3],ymm2[4,5],ymm1[6,7]6810; AVX2-NEXT: vpermd %ymm1, %ymm0, %ymm16811; AVX2-NEXT: vmovdqa 1024(%rdi), %ymm136812; AVX2-NEXT: vmovdqa 1056(%rdi), %ymm26813; AVX2-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6814; AVX2-NEXT: vpermq {{.*#+}} ymm2 = ymm2[0,1,0,3]6815; AVX2-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm13[4],ymm2[5,6,7]6816; AVX2-NEXT: vmovdqu %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6817; AVX2-NEXT: vpblendd {{.*#+}} ymm2 = ymm1[0,1,2,3],ymm2[4,5,6,7]6818; AVX2-NEXT: vinserti128 $1, 1088(%rdi), %ymm1, %ymm16819; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3],ymm2[4,5,6],ymm1[7]6820; AVX2-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6821; AVX2-NEXT: vmovdqa (%rdi), %ymm46822; AVX2-NEXT: vmovdqa 32(%rdi), %ymm16823; AVX2-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6824; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm4[0,1],ymm1[2,3],ymm4[4,5],ymm1[6,7]6825; AVX2-NEXT: vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6826; AVX2-NEXT: vpermd %ymm1, %ymm0, %ymm06827; AVX2-NEXT: vmovdqa 64(%rdi), %ymm26828; AVX2-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6829; AVX2-NEXT: vmovdqa 96(%rdi), %ymm116830; AVX2-NEXT: vpermq {{.*#+}} ymm1 = ymm11[0,1,0,3]6831; AVX2-NEXT: vmovdqu %ymm11, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6832; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm2[4],ymm1[5,6,7]6833; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm0[0,1,2,3],ymm1[4,5,6,7]6834; AVX2-NEXT: vinserti128 $1, 128(%rdi), %ymm0, %ymm06835; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3],ymm1[4,5,6],ymm0[7]6836; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6837; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload6838; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm12 # 32-byte Reload6839; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm12[0,1],ymm5[2,3],ymm12[4,5,6,7]6840; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload6841; AVX2-NEXT: vpblendd $204, {{[-0-9]+}}(%r{{[sb]}}p), %ymm6, %ymm1 # 32-byte Folded Reload6842; AVX2-NEXT: # ymm1 = ymm6[0,1],mem[2,3],ymm6[4,5],mem[6,7]6843; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0],ymm0[1],ymm1[2],ymm0[3],ymm1[4,5],ymm0[6],ymm1[7]6844; AVX2-NEXT: vpmovsxbd {{.*#+}} ymm0 = [1,6,3,0,5,2,7,0]6845; AVX2-NEXT: vpermd %ymm1, %ymm0, %ymm16846; AVX2-NEXT: vpbroadcastd 304(%rdi), %ymm26847; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,6],ymm2[7]6848; AVX2-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6849; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload6850; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload6851; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm8[0,1],ymm7[2,3],ymm8[4,5,6,7]6852; AVX2-NEXT: vmovdqu %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6853; AVX2-NEXT: vpblendd $204, {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm2 # 32-byte Folded Reload6854; AVX2-NEXT: # ymm2 = ymm9[0,1],mem[2,3],ymm9[4,5],mem[6,7]6855; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0],ymm1[1],ymm2[2],ymm1[3],ymm2[4,5],ymm1[6],ymm2[7]6856; AVX2-NEXT: vpermd %ymm1, %ymm0, %ymm16857; AVX2-NEXT: vpbroadcastd 624(%rdi), %ymm26858; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,6],ymm2[7]6859; AVX2-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6860; AVX2-NEXT: vmovdqu %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6861; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm10[0,1],ymm15[2,3],ymm10[4,5,6,7]6862; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Reload6863; AVX2-NEXT: vpblendd $204, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm2 # 32-byte Folded Reload6864; AVX2-NEXT: # ymm2 = ymm15[0,1],mem[2,3],ymm15[4,5],mem[6,7]6865; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0],ymm1[1],ymm2[2],ymm1[3],ymm2[4,5],ymm1[6],ymm2[7]6866; AVX2-NEXT: vpermd %ymm1, %ymm0, %ymm16867; AVX2-NEXT: vpbroadcastd 944(%rdi), %ymm26868; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,6],ymm2[7]6869; AVX2-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6870; AVX2-NEXT: vpblendd $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm1 # 32-byte Folded Reload6871; AVX2-NEXT: # ymm1 = mem[0,1],ymm14[2,3],mem[4,5,6,7]6872; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload6873; AVX2-NEXT: vpblendd $204, {{[-0-9]+}}(%r{{[sb]}}p), %ymm10, %ymm2 # 32-byte Folded Reload6874; AVX2-NEXT: # ymm2 = ymm10[0,1],mem[2,3],ymm10[4,5],mem[6,7]6875; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0],ymm1[1],ymm2[2],ymm1[3],ymm2[4,5],ymm1[6],ymm2[7]6876; AVX2-NEXT: vpermd %ymm1, %ymm0, %ymm16877; AVX2-NEXT: vpbroadcastd 1264(%rdi), %ymm26878; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,6],ymm2[7]6879; AVX2-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6880; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Reload6881; AVX2-NEXT: vpblendd $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm1 # 32-byte Folded Reload6882; AVX2-NEXT: # ymm1 = mem[0,1],ymm14[2,3],mem[4,5,6,7]6883; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload6884; AVX2-NEXT: vpblendd $204, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload6885; AVX2-NEXT: # ymm2 = ymm2[0,1],mem[2,3],ymm2[4,5],mem[6,7]6886; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0],ymm1[1],ymm2[2],ymm1[3],ymm2[4,5],ymm1[6],ymm2[7]6887; AVX2-NEXT: vpermd %ymm1, %ymm0, %ymm16888; AVX2-NEXT: vpbroadcastd 464(%rdi), %ymm26889; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,6],ymm2[7]6890; AVX2-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6891; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload6892; AVX2-NEXT: vpblendd $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload6893; AVX2-NEXT: # ymm1 = mem[0,1],ymm1[2,3],mem[4,5,6,7]6894; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload6895; AVX2-NEXT: vpblendd $51, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload6896; AVX2-NEXT: # ymm2 = mem[0,1],ymm2[2,3],mem[4,5],ymm2[6,7]6897; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0],ymm1[1],ymm2[2],ymm1[3],ymm2[4,5],ymm1[6],ymm2[7]6898; AVX2-NEXT: vpermd %ymm1, %ymm0, %ymm16899; AVX2-NEXT: vpbroadcastd 784(%rdi), %ymm26900; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,6],ymm2[7]6901; AVX2-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6902; AVX2-NEXT: vmovdqu (%rsp), %ymm1 # 32-byte Reload6903; AVX2-NEXT: vpblendd $12, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload6904; AVX2-NEXT: # ymm1 = ymm1[0,1],mem[2,3],ymm1[4,5,6,7]6905; AVX2-NEXT: vpblendd $204, {{[-0-9]+}}(%r{{[sb]}}p), %ymm13, %ymm2 # 32-byte Folded Reload6906; AVX2-NEXT: # ymm2 = ymm13[0,1],mem[2,3],ymm13[4,5],mem[6,7]6907; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0],ymm1[1],ymm2[2],ymm1[3],ymm2[4,5],ymm1[6],ymm2[7]6908; AVX2-NEXT: vpermd %ymm1, %ymm0, %ymm16909; AVX2-NEXT: vpbroadcastd 1104(%rdi), %ymm26910; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,6],ymm2[7]6911; AVX2-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6912; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload6913; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm4[0,1],ymm3[2,3],ymm4[4,5,6,7]6914; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload6915; AVX2-NEXT: vpblendd {{.*#+}} ymm2 = ymm4[0,1],ymm11[2,3],ymm4[4,5],ymm11[6,7]6916; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0],ymm1[1],ymm2[2],ymm1[3],ymm2[4,5],ymm1[6],ymm2[7]6917; AVX2-NEXT: vpermd %ymm1, %ymm0, %ymm06918; AVX2-NEXT: vpbroadcastd 144(%rdi), %ymm16919; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5,6],ymm1[7]6920; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6921; AVX2-NEXT: vpmovsxbd {{.*#+}} xmm13 = [2,7,4,0]6922; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm12[0,1,2,3],ymm5[4,5],ymm12[6,7]6923; AVX2-NEXT: vpermd %ymm0, %ymm13, %ymm06924; AVX2-NEXT: vinserti128 $1, 256(%rdi), %ymm0, %ymm16925; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm6[0,1,2,3,4,5,6],ymm1[7]6926; AVX2-NEXT: vpshufd {{.*#+}} ymm1 = ymm1[2,3,0,1,6,7,4,5]6927; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm0[0,1,2],ymm1[3,4,5,6,7]6928; AVX2-NEXT: vmovdqa 288(%rdi), %ymm26929; AVX2-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6930; AVX2-NEXT: vpbroadcastq {{.*#+}} ymm0 = [0,5,0,5,0,5,0,5]6931; AVX2-NEXT: vpermd %ymm2, %ymm0, %ymm26932; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]6933; AVX2-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6934; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm8[0,1,2,3],ymm7[4,5],ymm8[6,7]6935; AVX2-NEXT: vpermd %ymm1, %ymm13, %ymm16936; AVX2-NEXT: vinserti128 $1, 576(%rdi), %ymm0, %ymm26937; AVX2-NEXT: vpblendd {{.*#+}} ymm2 = ymm9[0,1,2,3,4,5,6],ymm2[7]6938; AVX2-NEXT: vpshufd {{.*#+}} ymm2 = ymm2[2,3,0,1,6,7,4,5]6939; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2],ymm2[3,4,5,6,7]6940; AVX2-NEXT: vmovdqa 608(%rdi), %ymm26941; AVX2-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6942; AVX2-NEXT: vpermd %ymm2, %ymm0, %ymm26943; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]6944; AVX2-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6945; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm12 # 32-byte Reload6946; AVX2-NEXT: vpblendd $48, {{[-0-9]+}}(%r{{[sb]}}p), %ymm12, %ymm1 # 32-byte Folded Reload6947; AVX2-NEXT: # ymm1 = ymm12[0,1,2,3],mem[4,5],ymm12[6,7]6948; AVX2-NEXT: vpermd %ymm1, %ymm13, %ymm16949; AVX2-NEXT: vinserti128 $1, 896(%rdi), %ymm0, %ymm26950; AVX2-NEXT: vpblendd {{.*#+}} ymm2 = ymm15[0,1,2,3,4,5,6],ymm2[7]6951; AVX2-NEXT: vpshufd {{.*#+}} ymm2 = ymm2[2,3,0,1,6,7,4,5]6952; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2],ymm2[3,4,5,6,7]6953; AVX2-NEXT: vmovdqa 928(%rdi), %ymm26954; AVX2-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6955; AVX2-NEXT: vpermd %ymm2, %ymm0, %ymm26956; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]6957; AVX2-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6958; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Reload6959; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload6960; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm6[0,1,2,3],ymm11[4,5],ymm6[6,7]6961; AVX2-NEXT: vpermd %ymm1, %ymm13, %ymm16962; AVX2-NEXT: vinserti128 $1, 1216(%rdi), %ymm0, %ymm26963; AVX2-NEXT: vpblendd {{.*#+}} ymm2 = ymm10[0,1,2,3,4,5,6],ymm2[7]6964; AVX2-NEXT: vpshufd {{.*#+}} ymm2 = ymm2[2,3,0,1,6,7,4,5]6965; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2],ymm2[3,4,5,6,7]6966; AVX2-NEXT: vmovdqa 1248(%rdi), %ymm96967; AVX2-NEXT: vpermd %ymm9, %ymm0, %ymm26968; AVX2-NEXT: vmovdqu %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6969; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]6970; AVX2-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6971; AVX2-NEXT: vpblendd $207, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm1 # 32-byte Folded Reload6972; AVX2-NEXT: # ymm1 = mem[0,1,2,3],ymm3[4,5],mem[6,7]6973; AVX2-NEXT: vpermd %ymm1, %ymm13, %ymm16974; AVX2-NEXT: vinserti128 $1, 96(%rdi), %ymm0, %ymm26975; AVX2-NEXT: vpblendd {{.*#+}} ymm2 = ymm4[0,1,2,3,4,5,6],ymm2[7]6976; AVX2-NEXT: vpshufd {{.*#+}} ymm2 = ymm2[2,3,0,1,6,7,4,5]6977; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2],ymm2[3,4,5,6,7]6978; AVX2-NEXT: vmovdqa 128(%rdi), %ymm26979; AVX2-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6980; AVX2-NEXT: vpermd %ymm2, %ymm0, %ymm46981; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm4[6,7]6982; AVX2-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6983; AVX2-NEXT: vpblendd $207, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm1 # 32-byte Folded Reload6984; AVX2-NEXT: # ymm1 = mem[0,1,2,3],ymm14[4,5],mem[6,7]6985; AVX2-NEXT: vpermd %ymm1, %ymm13, %ymm16986; AVX2-NEXT: vinserti128 $1, 416(%rdi), %ymm0, %ymm46987; AVX2-NEXT: vpblendd $127, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm4 # 32-byte Folded Reload6988; AVX2-NEXT: # ymm4 = mem[0,1,2,3,4,5,6],ymm4[7]6989; AVX2-NEXT: vpshufd {{.*#+}} ymm4 = ymm4[2,3,0,1,6,7,4,5]6990; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2],ymm4[3,4,5,6,7]6991; AVX2-NEXT: vmovdqa 448(%rdi), %ymm26992; AVX2-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6993; AVX2-NEXT: vpermd %ymm2, %ymm0, %ymm56994; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm5[6,7]6995; AVX2-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6996; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload6997; AVX2-NEXT: vpblendd $48, {{[-0-9]+}}(%r{{[sb]}}p), %ymm10, %ymm1 # 32-byte Folded Reload6998; AVX2-NEXT: # ymm1 = ymm10[0,1,2,3],mem[4,5],ymm10[6,7]6999; AVX2-NEXT: vpermd %ymm1, %ymm13, %ymm17000; AVX2-NEXT: vinserti128 $1, 736(%rdi), %ymm0, %ymm57001; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload7002; AVX2-NEXT: vpblendd {{.*#+}} ymm5 = ymm4[0,1,2,3,4,5,6],ymm5[7]7003; AVX2-NEXT: vpshufd {{.*#+}} ymm5 = ymm5[2,3,0,1,6,7,4,5]7004; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2],ymm5[3,4,5,6,7]7005; AVX2-NEXT: vmovdqa 768(%rdi), %ymm27006; AVX2-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7007; AVX2-NEXT: vpermd %ymm2, %ymm0, %ymm157008; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm15[6,7]7009; AVX2-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7010; AVX2-NEXT: vmovdqu (%rsp), %ymm7 # 32-byte Reload7011; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload7012; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm7[0,1,2,3],ymm8[4,5],ymm7[6,7]7013; AVX2-NEXT: vpermd %ymm1, %ymm13, %ymm17014; AVX2-NEXT: vinserti128 $1, 1056(%rdi), %ymm0, %ymm37015; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload7016; AVX2-NEXT: vpblendd {{.*#+}} ymm3 = ymm2[0,1,2,3,4,5,6],ymm3[7]7017; AVX2-NEXT: vpshufd {{.*#+}} ymm3 = ymm3[2,3,0,1,6,7,4,5]7018; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2],ymm3[3,4,5,6,7]7019; AVX2-NEXT: vmovdqa 1088(%rdi), %ymm147020; AVX2-NEXT: vpermd %ymm14, %ymm0, %ymm07021; AVX2-NEXT: vmovdqu %ymm14, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7022; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]7023; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7024; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload7025; AVX2-NEXT: vpblendd $207, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm0 # 32-byte Folded Reload7026; AVX2-NEXT: # ymm0 = mem[0,1,2,3],ymm3[4,5],mem[6,7]7027; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload7028; AVX2-NEXT: vpalignr $12, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload7029; AVX2-NEXT: # ymm1 = mem[12,13,14,15],ymm1[0,1,2,3,4,5,6,7,8,9,10,11],mem[28,29,30,31],ymm1[16,17,18,19,20,21,22,23,24,25,26,27]7030; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2],ymm1[3],ymm0[4],ymm1[5,6],ymm0[7]7031; AVX2-NEXT: vpmovsxbd {{.*#+}} ymm1 = [0,1,6,2,7,4,0,0]7032; AVX2-NEXT: vpermd %ymm0, %ymm1, %ymm157033; AVX2-NEXT: vpbroadcastq {{.*#+}} ymm0 = [1,6,1,6,1,6,1,6]7034; AVX2-NEXT: vpermd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm13 # 32-byte Folded Reload7035; AVX2-NEXT: vpblendd {{.*#+}} ymm5 = ymm15[0,1,2,3,4,5],ymm13[6,7]7036; AVX2-NEXT: vmovdqu %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7037; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload7038; AVX2-NEXT: vpblendd $48, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5, %ymm13 # 32-byte Folded Reload7039; AVX2-NEXT: # ymm13 = ymm5[0,1,2,3],mem[4,5],ymm5[6,7]7040; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload7041; AVX2-NEXT: vpalignr $12, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5, %ymm15 # 32-byte Folded Reload7042; AVX2-NEXT: # ymm15 = mem[12,13,14,15],ymm5[0,1,2,3,4,5,6,7,8,9,10,11],mem[28,29,30,31],ymm5[16,17,18,19,20,21,22,23,24,25,26,27]7043; AVX2-NEXT: vpblendd {{.*#+}} ymm13 = ymm15[0,1],ymm13[2],ymm15[3],ymm13[4],ymm15[5,6],ymm13[7]7044; AVX2-NEXT: vpermd %ymm13, %ymm1, %ymm137045; AVX2-NEXT: vpermd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm15 # 32-byte Folded Reload7046; AVX2-NEXT: vpblendd {{.*#+}} ymm5 = ymm13[0,1,2,3,4,5],ymm15[6,7]7047; AVX2-NEXT: vmovdqu %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7048; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload7049; AVX2-NEXT: vpblendd $48, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5, %ymm13 # 32-byte Folded Reload7050; AVX2-NEXT: # ymm13 = ymm5[0,1,2,3],mem[4,5],ymm5[6,7]7051; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload7052; AVX2-NEXT: vpalignr {{.*#+}} ymm15 = ymm12[12,13,14,15],ymm5[0,1,2,3,4,5,6,7,8,9,10,11],ymm12[28,29,30,31],ymm5[16,17,18,19,20,21,22,23,24,25,26,27]7053; AVX2-NEXT: vpblendd {{.*#+}} ymm13 = ymm15[0,1],ymm13[2],ymm15[3],ymm13[4],ymm15[5,6],ymm13[7]7054; AVX2-NEXT: vpermd %ymm13, %ymm1, %ymm137055; AVX2-NEXT: vpermd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm15 # 32-byte Folded Reload7056; AVX2-NEXT: vpblendd {{.*#+}} ymm5 = ymm13[0,1,2,3,4,5],ymm15[6,7]7057; AVX2-NEXT: vmovdqu %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7058; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload7059; AVX2-NEXT: vpblendd $48, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5, %ymm13 # 32-byte Folded Reload7060; AVX2-NEXT: # ymm13 = ymm5[0,1,2,3],mem[4,5],ymm5[6,7]7061; AVX2-NEXT: vpalignr {{.*#+}} ymm15 = ymm6[12,13,14,15],ymm11[0,1,2,3,4,5,6,7,8,9,10,11],ymm6[28,29,30,31],ymm11[16,17,18,19,20,21,22,23,24,25,26,27]7062; AVX2-NEXT: vpblendd {{.*#+}} ymm13 = ymm15[0,1],ymm13[2],ymm15[3],ymm13[4],ymm15[5,6],ymm13[7]7063; AVX2-NEXT: vpermd %ymm13, %ymm1, %ymm137064; AVX2-NEXT: vpermd %ymm9, %ymm0, %ymm157065; AVX2-NEXT: vpblendd {{.*#+}} ymm5 = ymm13[0,1,2,3,4,5],ymm15[6,7]7066; AVX2-NEXT: vmovdqu %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7067; AVX2-NEXT: vpblendd $48, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm13 # 32-byte Folded Reload7068; AVX2-NEXT: # ymm13 = ymm2[0,1,2,3],mem[4,5],ymm2[6,7]7069; AVX2-NEXT: vpalignr {{.*#+}} ymm15 = ymm7[12,13,14,15],ymm8[0,1,2,3,4,5,6,7,8,9,10,11],ymm7[28,29,30,31],ymm8[16,17,18,19,20,21,22,23,24,25,26,27]7070; AVX2-NEXT: vpblendd {{.*#+}} ymm13 = ymm15[0,1],ymm13[2],ymm15[3],ymm13[4],ymm15[5,6],ymm13[7]7071; AVX2-NEXT: vpermd %ymm13, %ymm1, %ymm137072; AVX2-NEXT: vpermd %ymm14, %ymm0, %ymm157073; AVX2-NEXT: vpblendd {{.*#+}} ymm2 = ymm13[0,1,2,3,4,5],ymm15[6,7]7074; AVX2-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7075; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm12 # 32-byte Reload7076; AVX2-NEXT: vpblendd {{.*#+}} ymm13 = ymm4[0,1,2,3],ymm12[4,5],ymm4[6,7]7077; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Reload7078; AVX2-NEXT: vpalignr {{.*#+}} ymm15 = ymm10[12,13,14,15],ymm11[0,1,2,3,4,5,6,7,8,9,10,11],ymm10[28,29,30,31],ymm11[16,17,18,19,20,21,22,23,24,25,26,27]7079; AVX2-NEXT: vpblendd {{.*#+}} ymm13 = ymm15[0,1],ymm13[2],ymm15[3],ymm13[4],ymm15[5,6],ymm13[7]7080; AVX2-NEXT: vpermd %ymm13, %ymm1, %ymm137081; AVX2-NEXT: vpermd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm15 # 32-byte Folded Reload7082; AVX2-NEXT: vpblendd {{.*#+}} ymm2 = ymm13[0,1,2,3,4,5],ymm15[6,7]7083; AVX2-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7084; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Reload7085; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload7086; AVX2-NEXT: vpblendd {{.*#+}} ymm13 = ymm5[0,1,2,3],ymm14[4,5],ymm5[6,7]7087; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload7088; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload7089; AVX2-NEXT: vpalignr {{.*#+}} ymm15 = ymm9[12,13,14,15],ymm4[0,1,2,3,4,5,6,7,8,9,10,11],ymm9[28,29,30,31],ymm4[16,17,18,19,20,21,22,23,24,25,26,27]7090; AVX2-NEXT: vpblendd {{.*#+}} ymm13 = ymm15[0,1],ymm13[2],ymm15[3],ymm13[4],ymm15[5,6],ymm13[7]7091; AVX2-NEXT: vpermd %ymm13, %ymm1, %ymm137092; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload7093; AVX2-NEXT: vpermd %ymm10, %ymm0, %ymm157094; AVX2-NEXT: vpblendd {{.*#+}} ymm2 = ymm13[0,1,2,3,4,5],ymm15[6,7]7095; AVX2-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7096; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload7097; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload7098; AVX2-NEXT: vpblendd {{.*#+}} ymm13 = ymm8[0,1,2,3],ymm7[4,5],ymm8[6,7]7099; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload7100; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload7101; AVX2-NEXT: vpalignr {{.*#+}} ymm15 = ymm6[12,13,14,15],ymm2[0,1,2,3,4,5,6,7,8,9,10,11],ymm6[28,29,30,31],ymm2[16,17,18,19,20,21,22,23,24,25,26,27]7102; AVX2-NEXT: vpblendd {{.*#+}} ymm13 = ymm15[0,1],ymm13[2],ymm15[3],ymm13[4],ymm15[5,6],ymm13[7]7103; AVX2-NEXT: vpermd %ymm13, %ymm1, %ymm17104; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Reload7105; AVX2-NEXT: vpermd %ymm15, %ymm0, %ymm07106; AVX2-NEXT: vpblendd {{.*#+}} ymm13 = ymm1[0,1,2,3,4,5],ymm0[6,7]7107; AVX2-NEXT: vperm2i128 {{.*#+}} ymm0 = ymm8[0,1],ymm7[0,1]7108; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm7[5],ymm0[6,7]7109; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm6[4,5],ymm2[6,7]7110; AVX2-NEXT: vpmovsxbd {{.*#+}} xmm8 = [4,1,6,0]7111; AVX2-NEXT: vpermd %ymm1, %ymm8, %ymm17112; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3,4,5,6,7]7113; AVX2-NEXT: vpbroadcastq {{.*#+}} ymm7 = [2,7,2,7,2,7,2,7]7114; AVX2-NEXT: vpermd %ymm15, %ymm7, %ymm17115; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]7116; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload7117; AVX2-NEXT: vpblendd $48, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload7118; AVX2-NEXT: # ymm1 = ymm1[0,1,2,3],mem[4,5],ymm1[6,7]7119; AVX2-NEXT: vperm2i128 $2, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm2 # 32-byte Folded Reload7120; AVX2-NEXT: # ymm2 = mem[0,1],ymm3[0,1]7121; AVX2-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3,4],ymm3[5],ymm2[6,7]7122; AVX2-NEXT: vpermd %ymm1, %ymm8, %ymm17123; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2],ymm2[3,4,5,6,7]7124; AVX2-NEXT: vpermd {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm2 # 32-byte Folded Reload7125; AVX2-NEXT: vpblendd {{.*#+}} ymm6 = ymm1[0,1,2,3,4,5],ymm2[6,7]7126; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm4[0,1,2,3],ymm9[4,5],ymm4[6,7]7127; AVX2-NEXT: vperm2i128 {{.*#+}} ymm2 = ymm5[0,1],ymm14[0,1]7128; AVX2-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3,4],ymm14[5],ymm2[6,7]7129; AVX2-NEXT: vpermd %ymm1, %ymm8, %ymm17130; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2],ymm2[3,4,5,6,7]7131; AVX2-NEXT: vpermd %ymm10, %ymm7, %ymm27132; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]7133; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload7134; AVX2-NEXT: vpblendd $207, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload7135; AVX2-NEXT: # ymm2 = mem[0,1,2,3],ymm2[4,5],mem[6,7]7136; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload7137; AVX2-NEXT: vperm2i128 $2, {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm4 # 32-byte Folded Reload7138; AVX2-NEXT: # ymm4 = mem[0,1],ymm9[0,1]7139; AVX2-NEXT: vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3,4],ymm9[5],ymm4[6,7]7140; AVX2-NEXT: vpermd %ymm2, %ymm8, %ymm27141; AVX2-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2],ymm4[3,4,5,6,7]7142; AVX2-NEXT: vpermd {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm4 # 32-byte Folded Reload7143; AVX2-NEXT: vpblendd {{.*#+}} ymm9 = ymm2[0,1,2,3,4,5],ymm4[6,7]7144; AVX2-NEXT: vpblendd $48, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm2 # 32-byte Folded Reload7145; AVX2-NEXT: # ymm2 = ymm11[0,1,2,3],mem[4,5],ymm11[6,7]7146; AVX2-NEXT: vperm2i128 $2, {{[-0-9]+}}(%r{{[sb]}}p), %ymm12, %ymm4 # 32-byte Folded Reload7147; AVX2-NEXT: # ymm4 = mem[0,1],ymm12[0,1]7148; AVX2-NEXT: vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3,4],ymm12[5],ymm4[6,7]7149; AVX2-NEXT: vpermd %ymm2, %ymm8, %ymm27150; AVX2-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2],ymm4[3,4,5,6,7]7151; AVX2-NEXT: vpermd {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm4 # 32-byte Folded Reload7152; AVX2-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5],ymm4[6,7]7153; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload7154; AVX2-NEXT: vpblendd $207, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm4 # 32-byte Folded Reload7155; AVX2-NEXT: # ymm4 = mem[0,1,2,3],ymm3[4,5],mem[6,7]7156; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload7157; AVX2-NEXT: vperm2i128 $2, {{[-0-9]+}}(%r{{[sb]}}p), %ymm10, %ymm5 # 32-byte Folded Reload7158; AVX2-NEXT: # ymm5 = mem[0,1],ymm10[0,1]7159; AVX2-NEXT: vpblendd {{.*#+}} ymm5 = ymm5[0,1,2,3,4],ymm10[5],ymm5[6,7]7160; AVX2-NEXT: vpermd %ymm4, %ymm8, %ymm47161; AVX2-NEXT: vpblendd {{.*#+}} ymm4 = ymm4[0,1,2],ymm5[3,4,5,6,7]7162; AVX2-NEXT: vpermd {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm5 # 32-byte Folded Reload7163; AVX2-NEXT: vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3,4,5],ymm5[6,7]7164; AVX2-NEXT: vmovdqu (%rsp), %ymm3 # 32-byte Reload7165; AVX2-NEXT: vpblendd $207, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm5 # 32-byte Folded Reload7166; AVX2-NEXT: # ymm5 = mem[0,1,2,3],ymm3[4,5],mem[6,7]7167; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Reload7168; AVX2-NEXT: vperm2i128 $2, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm10 # 32-byte Folded Reload7169; AVX2-NEXT: # ymm10 = mem[0,1],ymm11[0,1]7170; AVX2-NEXT: vpblendd {{.*#+}} ymm10 = ymm10[0,1,2,3,4],ymm11[5],ymm10[6,7]7171; AVX2-NEXT: vpermd %ymm5, %ymm8, %ymm57172; AVX2-NEXT: vpblendd {{.*#+}} ymm5 = ymm5[0,1,2],ymm10[3,4,5,6,7]7173; AVX2-NEXT: vpermd {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm3 # 32-byte Folded Reload7174; AVX2-NEXT: vpblendd {{.*#+}} ymm3 = ymm5[0,1,2,3,4,5],ymm3[6,7]7175; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload7176; AVX2-NEXT: vpblendd $48, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5, %ymm5 # 32-byte Folded Reload7177; AVX2-NEXT: # ymm5 = ymm5[0,1,2,3],mem[4,5],ymm5[6,7]7178; AVX2-NEXT: vpermd %ymm5, %ymm8, %ymm57179; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload7180; AVX2-NEXT: vperm2i128 $2, {{[-0-9]+}}(%r{{[sb]}}p), %ymm10, %ymm8 # 32-byte Folded Reload7181; AVX2-NEXT: # ymm8 = mem[0,1],ymm10[0,1]7182; AVX2-NEXT: vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3,4],ymm10[5],ymm8[6,7]7183; AVX2-NEXT: vpblendd {{.*#+}} ymm5 = ymm5[0,1,2],ymm8[3,4,5,6,7]7184; AVX2-NEXT: vpermd {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm7 # 32-byte Folded Reload7185; AVX2-NEXT: vpblendd {{.*#+}} ymm5 = ymm5[0,1,2,3,4,5],ymm7[6,7]7186; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload7187; AVX2-NEXT: vmovaps %ymm7, 192(%rsi)7188; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload7189; AVX2-NEXT: vmovaps %ymm7, 128(%rsi)7190; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload7191; AVX2-NEXT: vmovaps %ymm7, 64(%rsi)7192; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload7193; AVX2-NEXT: vmovaps %ymm7, (%rsi)7194; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload7195; AVX2-NEXT: vmovaps %ymm7, 224(%rsi)7196; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload7197; AVX2-NEXT: vmovaps %ymm7, 160(%rsi)7198; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload7199; AVX2-NEXT: vmovaps %ymm7, 96(%rsi)7200; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload7201; AVX2-NEXT: vmovaps %ymm7, 32(%rsi)7202; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload7203; AVX2-NEXT: vmovaps %ymm7, 192(%rdx)7204; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload7205; AVX2-NEXT: vmovaps %ymm7, 128(%rdx)7206; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload7207; AVX2-NEXT: vmovaps %ymm7, 64(%rdx)7208; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload7209; AVX2-NEXT: vmovaps %ymm7, (%rdx)7210; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload7211; AVX2-NEXT: vmovaps %ymm7, 224(%rdx)7212; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload7213; AVX2-NEXT: vmovaps %ymm7, 160(%rdx)7214; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload7215; AVX2-NEXT: vmovaps %ymm7, 96(%rdx)7216; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload7217; AVX2-NEXT: vmovaps %ymm7, 32(%rdx)7218; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload7219; AVX2-NEXT: vmovaps %ymm7, 192(%rcx)7220; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload7221; AVX2-NEXT: vmovaps %ymm7, 128(%rcx)7222; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload7223; AVX2-NEXT: vmovaps %ymm7, 64(%rcx)7224; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload7225; AVX2-NEXT: vmovaps %ymm7, (%rcx)7226; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload7227; AVX2-NEXT: vmovaps %ymm7, 224(%rcx)7228; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload7229; AVX2-NEXT: vmovaps %ymm7, 160(%rcx)7230; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload7231; AVX2-NEXT: vmovaps %ymm7, 96(%rcx)7232; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload7233; AVX2-NEXT: vmovaps %ymm7, 32(%rcx)7234; AVX2-NEXT: vmovdqa %ymm13, (%r8)7235; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload7236; AVX2-NEXT: vmovaps %ymm7, 64(%r8)7237; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload7238; AVX2-NEXT: vmovaps %ymm7, 128(%r8)7239; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload7240; AVX2-NEXT: vmovaps %ymm7, 192(%r8)7241; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload7242; AVX2-NEXT: vmovaps %ymm7, 224(%r8)7243; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload7244; AVX2-NEXT: vmovaps %ymm7, 160(%r8)7245; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload7246; AVX2-NEXT: vmovaps %ymm7, 96(%r8)7247; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload7248; AVX2-NEXT: vmovaps %ymm7, 32(%r8)7249; AVX2-NEXT: vmovdqa %ymm5, 224(%r9)7250; AVX2-NEXT: vmovdqa %ymm3, 192(%r9)7251; AVX2-NEXT: vmovdqa %ymm4, 160(%r9)7252; AVX2-NEXT: vmovdqa %ymm2, 128(%r9)7253; AVX2-NEXT: vmovdqa %ymm9, 96(%r9)7254; AVX2-NEXT: vmovdqa %ymm1, 64(%r9)7255; AVX2-NEXT: vmovdqa %ymm6, 32(%r9)7256; AVX2-NEXT: vmovdqa %ymm0, (%r9)7257; AVX2-NEXT: addq $2152, %rsp # imm = 0x8687258; AVX2-NEXT: vzeroupper7259; AVX2-NEXT: retq7260;7261; AVX2-FP-LABEL: load_i32_stride5_vf64:7262; AVX2-FP: # %bb.0:7263; AVX2-FP-NEXT: subq $2152, %rsp # imm = 0x8687264; AVX2-FP-NEXT: vmovdqa 864(%rdi), %ymm47265; AVX2-FP-NEXT: vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7266; AVX2-FP-NEXT: vmovdqa 896(%rdi), %ymm57267; AVX2-FP-NEXT: vmovdqu %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7268; AVX2-FP-NEXT: vmovdqa 832(%rdi), %ymm157269; AVX2-FP-NEXT: vmovdqa 800(%rdi), %ymm77270; AVX2-FP-NEXT: vmovdqa 544(%rdi), %ymm87271; AVX2-FP-NEXT: vmovdqa 576(%rdi), %ymm97272; AVX2-FP-NEXT: vmovdqu %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7273; AVX2-FP-NEXT: vmovdqa 512(%rdi), %ymm107274; AVX2-FP-NEXT: vmovdqu %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7275; AVX2-FP-NEXT: vmovdqa 480(%rdi), %ymm117276; AVX2-FP-NEXT: vmovdqu %ymm11, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7277; AVX2-FP-NEXT: vmovdqa 224(%rdi), %ymm127278; AVX2-FP-NEXT: vmovdqu %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7279; AVX2-FP-NEXT: vmovdqa 256(%rdi), %ymm137280; AVX2-FP-NEXT: vmovdqu %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7281; AVX2-FP-NEXT: vmovdqa 192(%rdi), %ymm27282; AVX2-FP-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7283; AVX2-FP-NEXT: vmovdqa 160(%rdi), %ymm17284; AVX2-FP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7285; AVX2-FP-NEXT: vpmovsxbd {{.*#+}} xmm0 = [0,5,2,7]7286; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1],ymm2[2,3],ymm1[4,5],ymm2[6,7]7287; AVX2-FP-NEXT: vpermd %ymm1, %ymm0, %ymm17288; AVX2-FP-NEXT: vinserti128 $1, 288(%rdi), %ymm1, %ymm27289; AVX2-FP-NEXT: vpermq {{.*#+}} ymm3 = ymm13[0,1,0,3]7290; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm12[4],ymm3[5,6,7]7291; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm3[4,5,6,7]7292; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2],ymm2[3],ymm1[4,5,6],ymm2[7]7293; AVX2-FP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7294; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm11[0,1],ymm10[2,3],ymm11[4,5],ymm10[6,7]7295; AVX2-FP-NEXT: vpermd %ymm1, %ymm0, %ymm17296; AVX2-FP-NEXT: vpermq {{.*#+}} ymm2 = ymm9[0,1,0,3]7297; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm8[4],ymm2[5,6,7]7298; AVX2-FP-NEXT: vmovdqa %ymm8, %ymm97299; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm2 = ymm1[0,1,2,3],ymm2[4,5,6,7]7300; AVX2-FP-NEXT: vinserti128 $1, 608(%rdi), %ymm1, %ymm17301; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3],ymm2[4,5,6],ymm1[7]7302; AVX2-FP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7303; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm7[0,1],ymm15[2,3],ymm7[4,5],ymm15[6,7]7304; AVX2-FP-NEXT: vmovdqa %ymm7, %ymm107305; AVX2-FP-NEXT: vmovdqu %ymm15, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7306; AVX2-FP-NEXT: vpermd %ymm1, %ymm0, %ymm17307; AVX2-FP-NEXT: vpermq {{.*#+}} ymm2 = ymm5[0,1,0,3]7308; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm4[4],ymm2[5,6,7]7309; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm2 = ymm1[0,1,2,3],ymm2[4,5,6,7]7310; AVX2-FP-NEXT: vinserti128 $1, 928(%rdi), %ymm1, %ymm17311; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3],ymm2[4,5,6],ymm1[7]7312; AVX2-FP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7313; AVX2-FP-NEXT: vmovdqa 1152(%rdi), %ymm147314; AVX2-FP-NEXT: vmovdqa 1120(%rdi), %ymm17315; AVX2-FP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7316; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1],ymm14[2,3],ymm1[4,5],ymm14[6,7]7317; AVX2-FP-NEXT: vmovdqu %ymm14, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7318; AVX2-FP-NEXT: vpermd %ymm1, %ymm0, %ymm17319; AVX2-FP-NEXT: vmovdqa 1184(%rdi), %ymm37320; AVX2-FP-NEXT: vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7321; AVX2-FP-NEXT: vmovdqa 1216(%rdi), %ymm27322; AVX2-FP-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7323; AVX2-FP-NEXT: vpermq {{.*#+}} ymm2 = ymm2[0,1,0,3]7324; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4],ymm2[5,6,7]7325; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm2 = ymm1[0,1,2,3],ymm2[4,5,6,7]7326; AVX2-FP-NEXT: vinserti128 $1, 1248(%rdi), %ymm1, %ymm17327; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3],ymm2[4,5,6],ymm1[7]7328; AVX2-FP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7329; AVX2-FP-NEXT: vmovdqa 352(%rdi), %ymm27330; AVX2-FP-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7331; AVX2-FP-NEXT: vmovdqa 320(%rdi), %ymm17332; AVX2-FP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7333; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1],ymm2[2,3],ymm1[4,5],ymm2[6,7]7334; AVX2-FP-NEXT: vpermd %ymm1, %ymm0, %ymm17335; AVX2-FP-NEXT: vmovdqa 384(%rdi), %ymm37336; AVX2-FP-NEXT: vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7337; AVX2-FP-NEXT: vmovdqa 416(%rdi), %ymm27338; AVX2-FP-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7339; AVX2-FP-NEXT: vpermq {{.*#+}} ymm2 = ymm2[0,1,0,3]7340; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4],ymm2[5,6,7]7341; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm2 = ymm1[0,1,2,3],ymm2[4,5,6,7]7342; AVX2-FP-NEXT: vinserti128 $1, 448(%rdi), %ymm1, %ymm17343; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3],ymm2[4,5,6],ymm1[7]7344; AVX2-FP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7345; AVX2-FP-NEXT: vmovdqa 672(%rdi), %ymm27346; AVX2-FP-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7347; AVX2-FP-NEXT: vmovdqa 640(%rdi), %ymm17348; AVX2-FP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7349; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1],ymm2[2,3],ymm1[4,5],ymm2[6,7]7350; AVX2-FP-NEXT: vpermd %ymm1, %ymm0, %ymm17351; AVX2-FP-NEXT: vmovdqa 704(%rdi), %ymm37352; AVX2-FP-NEXT: vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7353; AVX2-FP-NEXT: vmovdqa 736(%rdi), %ymm27354; AVX2-FP-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7355; AVX2-FP-NEXT: vpermq {{.*#+}} ymm2 = ymm2[0,1,0,3]7356; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4],ymm2[5,6,7]7357; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm2 = ymm1[0,1,2,3],ymm2[4,5,6,7]7358; AVX2-FP-NEXT: vinserti128 $1, 768(%rdi), %ymm1, %ymm17359; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3],ymm2[4,5,6],ymm1[7]7360; AVX2-FP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7361; AVX2-FP-NEXT: vmovdqa 992(%rdi), %ymm17362; AVX2-FP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7363; AVX2-FP-NEXT: vmovdqa 960(%rdi), %ymm27364; AVX2-FP-NEXT: vmovdqu %ymm2, (%rsp) # 32-byte Spill7365; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3],ymm2[4,5],ymm1[6,7]7366; AVX2-FP-NEXT: vpermd %ymm1, %ymm0, %ymm17367; AVX2-FP-NEXT: vmovdqa 1024(%rdi), %ymm137368; AVX2-FP-NEXT: vmovdqa 1056(%rdi), %ymm27369; AVX2-FP-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7370; AVX2-FP-NEXT: vpermq {{.*#+}} ymm2 = ymm2[0,1,0,3]7371; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm13[4],ymm2[5,6,7]7372; AVX2-FP-NEXT: vmovdqu %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7373; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm2 = ymm1[0,1,2,3],ymm2[4,5,6,7]7374; AVX2-FP-NEXT: vinserti128 $1, 1088(%rdi), %ymm1, %ymm17375; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3],ymm2[4,5,6],ymm1[7]7376; AVX2-FP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7377; AVX2-FP-NEXT: vmovdqa (%rdi), %ymm47378; AVX2-FP-NEXT: vmovdqa 32(%rdi), %ymm17379; AVX2-FP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7380; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm4[0,1],ymm1[2,3],ymm4[4,5],ymm1[6,7]7381; AVX2-FP-NEXT: vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7382; AVX2-FP-NEXT: vpermd %ymm1, %ymm0, %ymm07383; AVX2-FP-NEXT: vmovdqa 64(%rdi), %ymm27384; AVX2-FP-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7385; AVX2-FP-NEXT: vmovdqa 96(%rdi), %ymm117386; AVX2-FP-NEXT: vpermq {{.*#+}} ymm1 = ymm11[0,1,0,3]7387; AVX2-FP-NEXT: vmovdqu %ymm11, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7388; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm2[4],ymm1[5,6,7]7389; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm0[0,1,2,3],ymm1[4,5,6,7]7390; AVX2-FP-NEXT: vinserti128 $1, 128(%rdi), %ymm0, %ymm07391; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3],ymm1[4,5,6],ymm0[7]7392; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7393; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload7394; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm12 # 32-byte Reload7395; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm12[0,1],ymm5[2,3],ymm12[4,5,6,7]7396; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload7397; AVX2-FP-NEXT: vpblendd $204, {{[-0-9]+}}(%r{{[sb]}}p), %ymm6, %ymm1 # 32-byte Folded Reload7398; AVX2-FP-NEXT: # ymm1 = ymm6[0,1],mem[2,3],ymm6[4,5],mem[6,7]7399; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0],ymm0[1],ymm1[2],ymm0[3],ymm1[4,5],ymm0[6],ymm1[7]7400; AVX2-FP-NEXT: vpmovsxbd {{.*#+}} ymm0 = [1,6,3,0,5,2,7,0]7401; AVX2-FP-NEXT: vpermd %ymm1, %ymm0, %ymm17402; AVX2-FP-NEXT: vpbroadcastd 304(%rdi), %ymm27403; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,6],ymm2[7]7404; AVX2-FP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7405; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload7406; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload7407; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm8[0,1],ymm7[2,3],ymm8[4,5,6,7]7408; AVX2-FP-NEXT: vmovdqu %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7409; AVX2-FP-NEXT: vpblendd $204, {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm2 # 32-byte Folded Reload7410; AVX2-FP-NEXT: # ymm2 = ymm9[0,1],mem[2,3],ymm9[4,5],mem[6,7]7411; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0],ymm1[1],ymm2[2],ymm1[3],ymm2[4,5],ymm1[6],ymm2[7]7412; AVX2-FP-NEXT: vpermd %ymm1, %ymm0, %ymm17413; AVX2-FP-NEXT: vpbroadcastd 624(%rdi), %ymm27414; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,6],ymm2[7]7415; AVX2-FP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7416; AVX2-FP-NEXT: vmovdqu %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7417; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm10[0,1],ymm15[2,3],ymm10[4,5,6,7]7418; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Reload7419; AVX2-FP-NEXT: vpblendd $204, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm2 # 32-byte Folded Reload7420; AVX2-FP-NEXT: # ymm2 = ymm15[0,1],mem[2,3],ymm15[4,5],mem[6,7]7421; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0],ymm1[1],ymm2[2],ymm1[3],ymm2[4,5],ymm1[6],ymm2[7]7422; AVX2-FP-NEXT: vpermd %ymm1, %ymm0, %ymm17423; AVX2-FP-NEXT: vpbroadcastd 944(%rdi), %ymm27424; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,6],ymm2[7]7425; AVX2-FP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7426; AVX2-FP-NEXT: vpblendd $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm1 # 32-byte Folded Reload7427; AVX2-FP-NEXT: # ymm1 = mem[0,1],ymm14[2,3],mem[4,5,6,7]7428; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload7429; AVX2-FP-NEXT: vpblendd $204, {{[-0-9]+}}(%r{{[sb]}}p), %ymm10, %ymm2 # 32-byte Folded Reload7430; AVX2-FP-NEXT: # ymm2 = ymm10[0,1],mem[2,3],ymm10[4,5],mem[6,7]7431; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0],ymm1[1],ymm2[2],ymm1[3],ymm2[4,5],ymm1[6],ymm2[7]7432; AVX2-FP-NEXT: vpermd %ymm1, %ymm0, %ymm17433; AVX2-FP-NEXT: vpbroadcastd 1264(%rdi), %ymm27434; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,6],ymm2[7]7435; AVX2-FP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7436; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Reload7437; AVX2-FP-NEXT: vpblendd $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm1 # 32-byte Folded Reload7438; AVX2-FP-NEXT: # ymm1 = mem[0,1],ymm14[2,3],mem[4,5,6,7]7439; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload7440; AVX2-FP-NEXT: vpblendd $204, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload7441; AVX2-FP-NEXT: # ymm2 = ymm2[0,1],mem[2,3],ymm2[4,5],mem[6,7]7442; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0],ymm1[1],ymm2[2],ymm1[3],ymm2[4,5],ymm1[6],ymm2[7]7443; AVX2-FP-NEXT: vpermd %ymm1, %ymm0, %ymm17444; AVX2-FP-NEXT: vpbroadcastd 464(%rdi), %ymm27445; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,6],ymm2[7]7446; AVX2-FP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7447; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload7448; AVX2-FP-NEXT: vpblendd $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload7449; AVX2-FP-NEXT: # ymm1 = mem[0,1],ymm1[2,3],mem[4,5,6,7]7450; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload7451; AVX2-FP-NEXT: vpblendd $51, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload7452; AVX2-FP-NEXT: # ymm2 = mem[0,1],ymm2[2,3],mem[4,5],ymm2[6,7]7453; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0],ymm1[1],ymm2[2],ymm1[3],ymm2[4,5],ymm1[6],ymm2[7]7454; AVX2-FP-NEXT: vpermd %ymm1, %ymm0, %ymm17455; AVX2-FP-NEXT: vpbroadcastd 784(%rdi), %ymm27456; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,6],ymm2[7]7457; AVX2-FP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7458; AVX2-FP-NEXT: vmovdqu (%rsp), %ymm1 # 32-byte Reload7459; AVX2-FP-NEXT: vpblendd $12, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload7460; AVX2-FP-NEXT: # ymm1 = ymm1[0,1],mem[2,3],ymm1[4,5,6,7]7461; AVX2-FP-NEXT: vpblendd $204, {{[-0-9]+}}(%r{{[sb]}}p), %ymm13, %ymm2 # 32-byte Folded Reload7462; AVX2-FP-NEXT: # ymm2 = ymm13[0,1],mem[2,3],ymm13[4,5],mem[6,7]7463; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0],ymm1[1],ymm2[2],ymm1[3],ymm2[4,5],ymm1[6],ymm2[7]7464; AVX2-FP-NEXT: vpermd %ymm1, %ymm0, %ymm17465; AVX2-FP-NEXT: vpbroadcastd 1104(%rdi), %ymm27466; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,6],ymm2[7]7467; AVX2-FP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7468; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload7469; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm4[0,1],ymm3[2,3],ymm4[4,5,6,7]7470; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload7471; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm2 = ymm4[0,1],ymm11[2,3],ymm4[4,5],ymm11[6,7]7472; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0],ymm1[1],ymm2[2],ymm1[3],ymm2[4,5],ymm1[6],ymm2[7]7473; AVX2-FP-NEXT: vpermd %ymm1, %ymm0, %ymm07474; AVX2-FP-NEXT: vpbroadcastd 144(%rdi), %ymm17475; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5,6],ymm1[7]7476; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7477; AVX2-FP-NEXT: vpmovsxbd {{.*#+}} xmm13 = [2,7,4,0]7478; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm12[0,1,2,3],ymm5[4,5],ymm12[6,7]7479; AVX2-FP-NEXT: vpermd %ymm0, %ymm13, %ymm07480; AVX2-FP-NEXT: vinserti128 $1, 256(%rdi), %ymm0, %ymm17481; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm6[0,1,2,3,4,5,6],ymm1[7]7482; AVX2-FP-NEXT: vpshufd {{.*#+}} ymm1 = ymm1[2,3,0,1,6,7,4,5]7483; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm0[0,1,2],ymm1[3,4,5,6,7]7484; AVX2-FP-NEXT: vmovdqa 288(%rdi), %ymm27485; AVX2-FP-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7486; AVX2-FP-NEXT: vpbroadcastq {{.*#+}} ymm0 = [0,5,0,5,0,5,0,5]7487; AVX2-FP-NEXT: vpermd %ymm2, %ymm0, %ymm27488; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]7489; AVX2-FP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7490; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm8[0,1,2,3],ymm7[4,5],ymm8[6,7]7491; AVX2-FP-NEXT: vpermd %ymm1, %ymm13, %ymm17492; AVX2-FP-NEXT: vinserti128 $1, 576(%rdi), %ymm0, %ymm27493; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm2 = ymm9[0,1,2,3,4,5,6],ymm2[7]7494; AVX2-FP-NEXT: vpshufd {{.*#+}} ymm2 = ymm2[2,3,0,1,6,7,4,5]7495; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2],ymm2[3,4,5,6,7]7496; AVX2-FP-NEXT: vmovdqa 608(%rdi), %ymm27497; AVX2-FP-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7498; AVX2-FP-NEXT: vpermd %ymm2, %ymm0, %ymm27499; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]7500; AVX2-FP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7501; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm12 # 32-byte Reload7502; AVX2-FP-NEXT: vpblendd $48, {{[-0-9]+}}(%r{{[sb]}}p), %ymm12, %ymm1 # 32-byte Folded Reload7503; AVX2-FP-NEXT: # ymm1 = ymm12[0,1,2,3],mem[4,5],ymm12[6,7]7504; AVX2-FP-NEXT: vpermd %ymm1, %ymm13, %ymm17505; AVX2-FP-NEXT: vinserti128 $1, 896(%rdi), %ymm0, %ymm27506; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm2 = ymm15[0,1,2,3,4,5,6],ymm2[7]7507; AVX2-FP-NEXT: vpshufd {{.*#+}} ymm2 = ymm2[2,3,0,1,6,7,4,5]7508; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2],ymm2[3,4,5,6,7]7509; AVX2-FP-NEXT: vmovdqa 928(%rdi), %ymm27510; AVX2-FP-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7511; AVX2-FP-NEXT: vpermd %ymm2, %ymm0, %ymm27512; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]7513; AVX2-FP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7514; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Reload7515; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload7516; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm6[0,1,2,3],ymm11[4,5],ymm6[6,7]7517; AVX2-FP-NEXT: vpermd %ymm1, %ymm13, %ymm17518; AVX2-FP-NEXT: vinserti128 $1, 1216(%rdi), %ymm0, %ymm27519; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm2 = ymm10[0,1,2,3,4,5,6],ymm2[7]7520; AVX2-FP-NEXT: vpshufd {{.*#+}} ymm2 = ymm2[2,3,0,1,6,7,4,5]7521; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2],ymm2[3,4,5,6,7]7522; AVX2-FP-NEXT: vmovdqa 1248(%rdi), %ymm97523; AVX2-FP-NEXT: vpermd %ymm9, %ymm0, %ymm27524; AVX2-FP-NEXT: vmovdqu %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7525; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]7526; AVX2-FP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7527; AVX2-FP-NEXT: vpblendd $207, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm1 # 32-byte Folded Reload7528; AVX2-FP-NEXT: # ymm1 = mem[0,1,2,3],ymm3[4,5],mem[6,7]7529; AVX2-FP-NEXT: vpermd %ymm1, %ymm13, %ymm17530; AVX2-FP-NEXT: vinserti128 $1, 96(%rdi), %ymm0, %ymm27531; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm2 = ymm4[0,1,2,3,4,5,6],ymm2[7]7532; AVX2-FP-NEXT: vpshufd {{.*#+}} ymm2 = ymm2[2,3,0,1,6,7,4,5]7533; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2],ymm2[3,4,5,6,7]7534; AVX2-FP-NEXT: vmovdqa 128(%rdi), %ymm27535; AVX2-FP-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7536; AVX2-FP-NEXT: vpermd %ymm2, %ymm0, %ymm47537; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm4[6,7]7538; AVX2-FP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7539; AVX2-FP-NEXT: vpblendd $207, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm1 # 32-byte Folded Reload7540; AVX2-FP-NEXT: # ymm1 = mem[0,1,2,3],ymm14[4,5],mem[6,7]7541; AVX2-FP-NEXT: vpermd %ymm1, %ymm13, %ymm17542; AVX2-FP-NEXT: vinserti128 $1, 416(%rdi), %ymm0, %ymm47543; AVX2-FP-NEXT: vpblendd $127, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm4 # 32-byte Folded Reload7544; AVX2-FP-NEXT: # ymm4 = mem[0,1,2,3,4,5,6],ymm4[7]7545; AVX2-FP-NEXT: vpshufd {{.*#+}} ymm4 = ymm4[2,3,0,1,6,7,4,5]7546; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2],ymm4[3,4,5,6,7]7547; AVX2-FP-NEXT: vmovdqa 448(%rdi), %ymm27548; AVX2-FP-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7549; AVX2-FP-NEXT: vpermd %ymm2, %ymm0, %ymm57550; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm5[6,7]7551; AVX2-FP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7552; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload7553; AVX2-FP-NEXT: vpblendd $48, {{[-0-9]+}}(%r{{[sb]}}p), %ymm10, %ymm1 # 32-byte Folded Reload7554; AVX2-FP-NEXT: # ymm1 = ymm10[0,1,2,3],mem[4,5],ymm10[6,7]7555; AVX2-FP-NEXT: vpermd %ymm1, %ymm13, %ymm17556; AVX2-FP-NEXT: vinserti128 $1, 736(%rdi), %ymm0, %ymm57557; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload7558; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm5 = ymm4[0,1,2,3,4,5,6],ymm5[7]7559; AVX2-FP-NEXT: vpshufd {{.*#+}} ymm5 = ymm5[2,3,0,1,6,7,4,5]7560; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2],ymm5[3,4,5,6,7]7561; AVX2-FP-NEXT: vmovdqa 768(%rdi), %ymm27562; AVX2-FP-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7563; AVX2-FP-NEXT: vpermd %ymm2, %ymm0, %ymm157564; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm15[6,7]7565; AVX2-FP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7566; AVX2-FP-NEXT: vmovdqu (%rsp), %ymm7 # 32-byte Reload7567; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload7568; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm7[0,1,2,3],ymm8[4,5],ymm7[6,7]7569; AVX2-FP-NEXT: vpermd %ymm1, %ymm13, %ymm17570; AVX2-FP-NEXT: vinserti128 $1, 1056(%rdi), %ymm0, %ymm37571; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload7572; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm3 = ymm2[0,1,2,3,4,5,6],ymm3[7]7573; AVX2-FP-NEXT: vpshufd {{.*#+}} ymm3 = ymm3[2,3,0,1,6,7,4,5]7574; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2],ymm3[3,4,5,6,7]7575; AVX2-FP-NEXT: vmovdqa 1088(%rdi), %ymm147576; AVX2-FP-NEXT: vpermd %ymm14, %ymm0, %ymm07577; AVX2-FP-NEXT: vmovdqu %ymm14, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7578; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]7579; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7580; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload7581; AVX2-FP-NEXT: vpblendd $207, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm0 # 32-byte Folded Reload7582; AVX2-FP-NEXT: # ymm0 = mem[0,1,2,3],ymm3[4,5],mem[6,7]7583; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload7584; AVX2-FP-NEXT: vpalignr $12, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload7585; AVX2-FP-NEXT: # ymm1 = mem[12,13,14,15],ymm1[0,1,2,3,4,5,6,7,8,9,10,11],mem[28,29,30,31],ymm1[16,17,18,19,20,21,22,23,24,25,26,27]7586; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2],ymm1[3],ymm0[4],ymm1[5,6],ymm0[7]7587; AVX2-FP-NEXT: vpmovsxbd {{.*#+}} ymm1 = [0,1,6,2,7,4,0,0]7588; AVX2-FP-NEXT: vpermd %ymm0, %ymm1, %ymm157589; AVX2-FP-NEXT: vpbroadcastq {{.*#+}} ymm0 = [1,6,1,6,1,6,1,6]7590; AVX2-FP-NEXT: vpermd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm13 # 32-byte Folded Reload7591; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm5 = ymm15[0,1,2,3,4,5],ymm13[6,7]7592; AVX2-FP-NEXT: vmovdqu %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7593; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload7594; AVX2-FP-NEXT: vpblendd $48, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5, %ymm13 # 32-byte Folded Reload7595; AVX2-FP-NEXT: # ymm13 = ymm5[0,1,2,3],mem[4,5],ymm5[6,7]7596; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload7597; AVX2-FP-NEXT: vpalignr $12, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5, %ymm15 # 32-byte Folded Reload7598; AVX2-FP-NEXT: # ymm15 = mem[12,13,14,15],ymm5[0,1,2,3,4,5,6,7,8,9,10,11],mem[28,29,30,31],ymm5[16,17,18,19,20,21,22,23,24,25,26,27]7599; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm13 = ymm15[0,1],ymm13[2],ymm15[3],ymm13[4],ymm15[5,6],ymm13[7]7600; AVX2-FP-NEXT: vpermd %ymm13, %ymm1, %ymm137601; AVX2-FP-NEXT: vpermd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm15 # 32-byte Folded Reload7602; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm5 = ymm13[0,1,2,3,4,5],ymm15[6,7]7603; AVX2-FP-NEXT: vmovdqu %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7604; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload7605; AVX2-FP-NEXT: vpblendd $48, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5, %ymm13 # 32-byte Folded Reload7606; AVX2-FP-NEXT: # ymm13 = ymm5[0,1,2,3],mem[4,5],ymm5[6,7]7607; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload7608; AVX2-FP-NEXT: vpalignr {{.*#+}} ymm15 = ymm12[12,13,14,15],ymm5[0,1,2,3,4,5,6,7,8,9,10,11],ymm12[28,29,30,31],ymm5[16,17,18,19,20,21,22,23,24,25,26,27]7609; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm13 = ymm15[0,1],ymm13[2],ymm15[3],ymm13[4],ymm15[5,6],ymm13[7]7610; AVX2-FP-NEXT: vpermd %ymm13, %ymm1, %ymm137611; AVX2-FP-NEXT: vpermd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm15 # 32-byte Folded Reload7612; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm5 = ymm13[0,1,2,3,4,5],ymm15[6,7]7613; AVX2-FP-NEXT: vmovdqu %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7614; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload7615; AVX2-FP-NEXT: vpblendd $48, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5, %ymm13 # 32-byte Folded Reload7616; AVX2-FP-NEXT: # ymm13 = ymm5[0,1,2,3],mem[4,5],ymm5[6,7]7617; AVX2-FP-NEXT: vpalignr {{.*#+}} ymm15 = ymm6[12,13,14,15],ymm11[0,1,2,3,4,5,6,7,8,9,10,11],ymm6[28,29,30,31],ymm11[16,17,18,19,20,21,22,23,24,25,26,27]7618; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm13 = ymm15[0,1],ymm13[2],ymm15[3],ymm13[4],ymm15[5,6],ymm13[7]7619; AVX2-FP-NEXT: vpermd %ymm13, %ymm1, %ymm137620; AVX2-FP-NEXT: vpermd %ymm9, %ymm0, %ymm157621; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm5 = ymm13[0,1,2,3,4,5],ymm15[6,7]7622; AVX2-FP-NEXT: vmovdqu %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7623; AVX2-FP-NEXT: vpblendd $48, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm13 # 32-byte Folded Reload7624; AVX2-FP-NEXT: # ymm13 = ymm2[0,1,2,3],mem[4,5],ymm2[6,7]7625; AVX2-FP-NEXT: vpalignr {{.*#+}} ymm15 = ymm7[12,13,14,15],ymm8[0,1,2,3,4,5,6,7,8,9,10,11],ymm7[28,29,30,31],ymm8[16,17,18,19,20,21,22,23,24,25,26,27]7626; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm13 = ymm15[0,1],ymm13[2],ymm15[3],ymm13[4],ymm15[5,6],ymm13[7]7627; AVX2-FP-NEXT: vpermd %ymm13, %ymm1, %ymm137628; AVX2-FP-NEXT: vpermd %ymm14, %ymm0, %ymm157629; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm2 = ymm13[0,1,2,3,4,5],ymm15[6,7]7630; AVX2-FP-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7631; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm12 # 32-byte Reload7632; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm13 = ymm4[0,1,2,3],ymm12[4,5],ymm4[6,7]7633; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Reload7634; AVX2-FP-NEXT: vpalignr {{.*#+}} ymm15 = ymm10[12,13,14,15],ymm11[0,1,2,3,4,5,6,7,8,9,10,11],ymm10[28,29,30,31],ymm11[16,17,18,19,20,21,22,23,24,25,26,27]7635; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm13 = ymm15[0,1],ymm13[2],ymm15[3],ymm13[4],ymm15[5,6],ymm13[7]7636; AVX2-FP-NEXT: vpermd %ymm13, %ymm1, %ymm137637; AVX2-FP-NEXT: vpermd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm15 # 32-byte Folded Reload7638; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm2 = ymm13[0,1,2,3,4,5],ymm15[6,7]7639; AVX2-FP-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7640; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Reload7641; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload7642; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm13 = ymm5[0,1,2,3],ymm14[4,5],ymm5[6,7]7643; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload7644; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload7645; AVX2-FP-NEXT: vpalignr {{.*#+}} ymm15 = ymm9[12,13,14,15],ymm4[0,1,2,3,4,5,6,7,8,9,10,11],ymm9[28,29,30,31],ymm4[16,17,18,19,20,21,22,23,24,25,26,27]7646; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm13 = ymm15[0,1],ymm13[2],ymm15[3],ymm13[4],ymm15[5,6],ymm13[7]7647; AVX2-FP-NEXT: vpermd %ymm13, %ymm1, %ymm137648; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload7649; AVX2-FP-NEXT: vpermd %ymm10, %ymm0, %ymm157650; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm2 = ymm13[0,1,2,3,4,5],ymm15[6,7]7651; AVX2-FP-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7652; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload7653; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload7654; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm13 = ymm8[0,1,2,3],ymm7[4,5],ymm8[6,7]7655; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload7656; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload7657; AVX2-FP-NEXT: vpalignr {{.*#+}} ymm15 = ymm6[12,13,14,15],ymm2[0,1,2,3,4,5,6,7,8,9,10,11],ymm6[28,29,30,31],ymm2[16,17,18,19,20,21,22,23,24,25,26,27]7658; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm13 = ymm15[0,1],ymm13[2],ymm15[3],ymm13[4],ymm15[5,6],ymm13[7]7659; AVX2-FP-NEXT: vpermd %ymm13, %ymm1, %ymm17660; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Reload7661; AVX2-FP-NEXT: vpermd %ymm15, %ymm0, %ymm07662; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm13 = ymm1[0,1,2,3,4,5],ymm0[6,7]7663; AVX2-FP-NEXT: vperm2i128 {{.*#+}} ymm0 = ymm8[0,1],ymm7[0,1]7664; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm7[5],ymm0[6,7]7665; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm6[4,5],ymm2[6,7]7666; AVX2-FP-NEXT: vpmovsxbd {{.*#+}} xmm8 = [4,1,6,0]7667; AVX2-FP-NEXT: vpermd %ymm1, %ymm8, %ymm17668; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3,4,5,6,7]7669; AVX2-FP-NEXT: vpbroadcastq {{.*#+}} ymm7 = [2,7,2,7,2,7,2,7]7670; AVX2-FP-NEXT: vpermd %ymm15, %ymm7, %ymm17671; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]7672; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload7673; AVX2-FP-NEXT: vpblendd $48, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload7674; AVX2-FP-NEXT: # ymm1 = ymm1[0,1,2,3],mem[4,5],ymm1[6,7]7675; AVX2-FP-NEXT: vperm2i128 $2, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm2 # 32-byte Folded Reload7676; AVX2-FP-NEXT: # ymm2 = mem[0,1],ymm3[0,1]7677; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3,4],ymm3[5],ymm2[6,7]7678; AVX2-FP-NEXT: vpermd %ymm1, %ymm8, %ymm17679; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2],ymm2[3,4,5,6,7]7680; AVX2-FP-NEXT: vpermd {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm2 # 32-byte Folded Reload7681; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm6 = ymm1[0,1,2,3,4,5],ymm2[6,7]7682; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm4[0,1,2,3],ymm9[4,5],ymm4[6,7]7683; AVX2-FP-NEXT: vperm2i128 {{.*#+}} ymm2 = ymm5[0,1],ymm14[0,1]7684; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3,4],ymm14[5],ymm2[6,7]7685; AVX2-FP-NEXT: vpermd %ymm1, %ymm8, %ymm17686; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2],ymm2[3,4,5,6,7]7687; AVX2-FP-NEXT: vpermd %ymm10, %ymm7, %ymm27688; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]7689; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload7690; AVX2-FP-NEXT: vpblendd $207, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload7691; AVX2-FP-NEXT: # ymm2 = mem[0,1,2,3],ymm2[4,5],mem[6,7]7692; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload7693; AVX2-FP-NEXT: vperm2i128 $2, {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm4 # 32-byte Folded Reload7694; AVX2-FP-NEXT: # ymm4 = mem[0,1],ymm9[0,1]7695; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3,4],ymm9[5],ymm4[6,7]7696; AVX2-FP-NEXT: vpermd %ymm2, %ymm8, %ymm27697; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2],ymm4[3,4,5,6,7]7698; AVX2-FP-NEXT: vpermd {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm4 # 32-byte Folded Reload7699; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm9 = ymm2[0,1,2,3,4,5],ymm4[6,7]7700; AVX2-FP-NEXT: vpblendd $48, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm2 # 32-byte Folded Reload7701; AVX2-FP-NEXT: # ymm2 = ymm11[0,1,2,3],mem[4,5],ymm11[6,7]7702; AVX2-FP-NEXT: vperm2i128 $2, {{[-0-9]+}}(%r{{[sb]}}p), %ymm12, %ymm4 # 32-byte Folded Reload7703; AVX2-FP-NEXT: # ymm4 = mem[0,1],ymm12[0,1]7704; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3,4],ymm12[5],ymm4[6,7]7705; AVX2-FP-NEXT: vpermd %ymm2, %ymm8, %ymm27706; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2],ymm4[3,4,5,6,7]7707; AVX2-FP-NEXT: vpermd {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm4 # 32-byte Folded Reload7708; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5],ymm4[6,7]7709; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload7710; AVX2-FP-NEXT: vpblendd $207, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm4 # 32-byte Folded Reload7711; AVX2-FP-NEXT: # ymm4 = mem[0,1,2,3],ymm3[4,5],mem[6,7]7712; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload7713; AVX2-FP-NEXT: vperm2i128 $2, {{[-0-9]+}}(%r{{[sb]}}p), %ymm10, %ymm5 # 32-byte Folded Reload7714; AVX2-FP-NEXT: # ymm5 = mem[0,1],ymm10[0,1]7715; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm5 = ymm5[0,1,2,3,4],ymm10[5],ymm5[6,7]7716; AVX2-FP-NEXT: vpermd %ymm4, %ymm8, %ymm47717; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm4 = ymm4[0,1,2],ymm5[3,4,5,6,7]7718; AVX2-FP-NEXT: vpermd {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm5 # 32-byte Folded Reload7719; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3,4,5],ymm5[6,7]7720; AVX2-FP-NEXT: vmovdqu (%rsp), %ymm3 # 32-byte Reload7721; AVX2-FP-NEXT: vpblendd $207, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm5 # 32-byte Folded Reload7722; AVX2-FP-NEXT: # ymm5 = mem[0,1,2,3],ymm3[4,5],mem[6,7]7723; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Reload7724; AVX2-FP-NEXT: vperm2i128 $2, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm10 # 32-byte Folded Reload7725; AVX2-FP-NEXT: # ymm10 = mem[0,1],ymm11[0,1]7726; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm10 = ymm10[0,1,2,3,4],ymm11[5],ymm10[6,7]7727; AVX2-FP-NEXT: vpermd %ymm5, %ymm8, %ymm57728; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm5 = ymm5[0,1,2],ymm10[3,4,5,6,7]7729; AVX2-FP-NEXT: vpermd {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm3 # 32-byte Folded Reload7730; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm3 = ymm5[0,1,2,3,4,5],ymm3[6,7]7731; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload7732; AVX2-FP-NEXT: vpblendd $48, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5, %ymm5 # 32-byte Folded Reload7733; AVX2-FP-NEXT: # ymm5 = ymm5[0,1,2,3],mem[4,5],ymm5[6,7]7734; AVX2-FP-NEXT: vpermd %ymm5, %ymm8, %ymm57735; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload7736; AVX2-FP-NEXT: vperm2i128 $2, {{[-0-9]+}}(%r{{[sb]}}p), %ymm10, %ymm8 # 32-byte Folded Reload7737; AVX2-FP-NEXT: # ymm8 = mem[0,1],ymm10[0,1]7738; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3,4],ymm10[5],ymm8[6,7]7739; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm5 = ymm5[0,1,2],ymm8[3,4,5,6,7]7740; AVX2-FP-NEXT: vpermd {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm7 # 32-byte Folded Reload7741; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm5 = ymm5[0,1,2,3,4,5],ymm7[6,7]7742; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload7743; AVX2-FP-NEXT: vmovaps %ymm7, 192(%rsi)7744; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload7745; AVX2-FP-NEXT: vmovaps %ymm7, 128(%rsi)7746; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload7747; AVX2-FP-NEXT: vmovaps %ymm7, 64(%rsi)7748; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload7749; AVX2-FP-NEXT: vmovaps %ymm7, (%rsi)7750; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload7751; AVX2-FP-NEXT: vmovaps %ymm7, 224(%rsi)7752; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload7753; AVX2-FP-NEXT: vmovaps %ymm7, 160(%rsi)7754; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload7755; AVX2-FP-NEXT: vmovaps %ymm7, 96(%rsi)7756; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload7757; AVX2-FP-NEXT: vmovaps %ymm7, 32(%rsi)7758; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload7759; AVX2-FP-NEXT: vmovaps %ymm7, 192(%rdx)7760; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload7761; AVX2-FP-NEXT: vmovaps %ymm7, 128(%rdx)7762; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload7763; AVX2-FP-NEXT: vmovaps %ymm7, 64(%rdx)7764; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload7765; AVX2-FP-NEXT: vmovaps %ymm7, (%rdx)7766; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload7767; AVX2-FP-NEXT: vmovaps %ymm7, 224(%rdx)7768; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload7769; AVX2-FP-NEXT: vmovaps %ymm7, 160(%rdx)7770; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload7771; AVX2-FP-NEXT: vmovaps %ymm7, 96(%rdx)7772; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload7773; AVX2-FP-NEXT: vmovaps %ymm7, 32(%rdx)7774; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload7775; AVX2-FP-NEXT: vmovaps %ymm7, 192(%rcx)7776; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload7777; AVX2-FP-NEXT: vmovaps %ymm7, 128(%rcx)7778; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload7779; AVX2-FP-NEXT: vmovaps %ymm7, 64(%rcx)7780; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload7781; AVX2-FP-NEXT: vmovaps %ymm7, (%rcx)7782; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload7783; AVX2-FP-NEXT: vmovaps %ymm7, 224(%rcx)7784; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload7785; AVX2-FP-NEXT: vmovaps %ymm7, 160(%rcx)7786; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload7787; AVX2-FP-NEXT: vmovaps %ymm7, 96(%rcx)7788; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload7789; AVX2-FP-NEXT: vmovaps %ymm7, 32(%rcx)7790; AVX2-FP-NEXT: vmovdqa %ymm13, (%r8)7791; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload7792; AVX2-FP-NEXT: vmovaps %ymm7, 64(%r8)7793; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload7794; AVX2-FP-NEXT: vmovaps %ymm7, 128(%r8)7795; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload7796; AVX2-FP-NEXT: vmovaps %ymm7, 192(%r8)7797; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload7798; AVX2-FP-NEXT: vmovaps %ymm7, 224(%r8)7799; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload7800; AVX2-FP-NEXT: vmovaps %ymm7, 160(%r8)7801; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload7802; AVX2-FP-NEXT: vmovaps %ymm7, 96(%r8)7803; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload7804; AVX2-FP-NEXT: vmovaps %ymm7, 32(%r8)7805; AVX2-FP-NEXT: vmovdqa %ymm5, 224(%r9)7806; AVX2-FP-NEXT: vmovdqa %ymm3, 192(%r9)7807; AVX2-FP-NEXT: vmovdqa %ymm4, 160(%r9)7808; AVX2-FP-NEXT: vmovdqa %ymm2, 128(%r9)7809; AVX2-FP-NEXT: vmovdqa %ymm9, 96(%r9)7810; AVX2-FP-NEXT: vmovdqa %ymm1, 64(%r9)7811; AVX2-FP-NEXT: vmovdqa %ymm6, 32(%r9)7812; AVX2-FP-NEXT: vmovdqa %ymm0, (%r9)7813; AVX2-FP-NEXT: addq $2152, %rsp # imm = 0x8687814; AVX2-FP-NEXT: vzeroupper7815; AVX2-FP-NEXT: retq7816;7817; AVX2-FCP-LABEL: load_i32_stride5_vf64:7818; AVX2-FCP: # %bb.0:7819; AVX2-FCP-NEXT: subq $2152, %rsp # imm = 0x8687820; AVX2-FCP-NEXT: vmovdqa 864(%rdi), %ymm47821; AVX2-FCP-NEXT: vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7822; AVX2-FCP-NEXT: vmovdqa 896(%rdi), %ymm57823; AVX2-FCP-NEXT: vmovdqu %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7824; AVX2-FCP-NEXT: vmovdqa 832(%rdi), %ymm157825; AVX2-FCP-NEXT: vmovdqa 800(%rdi), %ymm77826; AVX2-FCP-NEXT: vmovdqa 544(%rdi), %ymm87827; AVX2-FCP-NEXT: vmovdqa 576(%rdi), %ymm97828; AVX2-FCP-NEXT: vmovdqu %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7829; AVX2-FCP-NEXT: vmovdqa 512(%rdi), %ymm107830; AVX2-FCP-NEXT: vmovdqu %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7831; AVX2-FCP-NEXT: vmovdqa 480(%rdi), %ymm117832; AVX2-FCP-NEXT: vmovdqu %ymm11, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7833; AVX2-FCP-NEXT: vmovdqa 224(%rdi), %ymm127834; AVX2-FCP-NEXT: vmovdqu %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7835; AVX2-FCP-NEXT: vmovdqa 256(%rdi), %ymm137836; AVX2-FCP-NEXT: vmovdqu %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7837; AVX2-FCP-NEXT: vmovdqa 192(%rdi), %ymm27838; AVX2-FCP-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7839; AVX2-FCP-NEXT: vmovdqa 160(%rdi), %ymm17840; AVX2-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7841; AVX2-FCP-NEXT: vpmovsxbd {{.*#+}} xmm0 = [0,5,2,7]7842; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1],ymm2[2,3],ymm1[4,5],ymm2[6,7]7843; AVX2-FCP-NEXT: vpermd %ymm1, %ymm0, %ymm17844; AVX2-FCP-NEXT: vinserti128 $1, 288(%rdi), %ymm1, %ymm27845; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm3 = ymm13[0,1,0,3]7846; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm12[4],ymm3[5,6,7]7847; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm3[4,5,6,7]7848; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2],ymm2[3],ymm1[4,5,6],ymm2[7]7849; AVX2-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7850; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm11[0,1],ymm10[2,3],ymm11[4,5],ymm10[6,7]7851; AVX2-FCP-NEXT: vpermd %ymm1, %ymm0, %ymm17852; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm2 = ymm9[0,1,0,3]7853; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm8[4],ymm2[5,6,7]7854; AVX2-FCP-NEXT: vmovdqa %ymm8, %ymm97855; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm1[0,1,2,3],ymm2[4,5,6,7]7856; AVX2-FCP-NEXT: vinserti128 $1, 608(%rdi), %ymm1, %ymm17857; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3],ymm2[4,5,6],ymm1[7]7858; AVX2-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7859; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm7[0,1],ymm15[2,3],ymm7[4,5],ymm15[6,7]7860; AVX2-FCP-NEXT: vmovdqa %ymm7, %ymm107861; AVX2-FCP-NEXT: vmovdqu %ymm15, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7862; AVX2-FCP-NEXT: vpermd %ymm1, %ymm0, %ymm17863; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm2 = ymm5[0,1,0,3]7864; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm4[4],ymm2[5,6,7]7865; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm1[0,1,2,3],ymm2[4,5,6,7]7866; AVX2-FCP-NEXT: vinserti128 $1, 928(%rdi), %ymm1, %ymm17867; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3],ymm2[4,5,6],ymm1[7]7868; AVX2-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7869; AVX2-FCP-NEXT: vmovdqa 1152(%rdi), %ymm147870; AVX2-FCP-NEXT: vmovdqa 1120(%rdi), %ymm17871; AVX2-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7872; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1],ymm14[2,3],ymm1[4,5],ymm14[6,7]7873; AVX2-FCP-NEXT: vmovdqu %ymm14, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7874; AVX2-FCP-NEXT: vpermd %ymm1, %ymm0, %ymm17875; AVX2-FCP-NEXT: vmovdqa 1184(%rdi), %ymm37876; AVX2-FCP-NEXT: vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7877; AVX2-FCP-NEXT: vmovdqa 1216(%rdi), %ymm27878; AVX2-FCP-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7879; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm2 = ymm2[0,1,0,3]7880; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4],ymm2[5,6,7]7881; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm1[0,1,2,3],ymm2[4,5,6,7]7882; AVX2-FCP-NEXT: vinserti128 $1, 1248(%rdi), %ymm1, %ymm17883; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3],ymm2[4,5,6],ymm1[7]7884; AVX2-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7885; AVX2-FCP-NEXT: vmovdqa 352(%rdi), %ymm27886; AVX2-FCP-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7887; AVX2-FCP-NEXT: vmovdqa 320(%rdi), %ymm17888; AVX2-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7889; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1],ymm2[2,3],ymm1[4,5],ymm2[6,7]7890; AVX2-FCP-NEXT: vpermd %ymm1, %ymm0, %ymm17891; AVX2-FCP-NEXT: vmovdqa 384(%rdi), %ymm37892; AVX2-FCP-NEXT: vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7893; AVX2-FCP-NEXT: vmovdqa 416(%rdi), %ymm27894; AVX2-FCP-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7895; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm2 = ymm2[0,1,0,3]7896; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4],ymm2[5,6,7]7897; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm1[0,1,2,3],ymm2[4,5,6,7]7898; AVX2-FCP-NEXT: vinserti128 $1, 448(%rdi), %ymm1, %ymm17899; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3],ymm2[4,5,6],ymm1[7]7900; AVX2-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7901; AVX2-FCP-NEXT: vmovdqa 672(%rdi), %ymm27902; AVX2-FCP-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7903; AVX2-FCP-NEXT: vmovdqa 640(%rdi), %ymm17904; AVX2-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7905; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1],ymm2[2,3],ymm1[4,5],ymm2[6,7]7906; AVX2-FCP-NEXT: vpermd %ymm1, %ymm0, %ymm17907; AVX2-FCP-NEXT: vmovdqa 704(%rdi), %ymm37908; AVX2-FCP-NEXT: vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7909; AVX2-FCP-NEXT: vmovdqa 736(%rdi), %ymm27910; AVX2-FCP-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7911; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm2 = ymm2[0,1,0,3]7912; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4],ymm2[5,6,7]7913; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm1[0,1,2,3],ymm2[4,5,6,7]7914; AVX2-FCP-NEXT: vinserti128 $1, 768(%rdi), %ymm1, %ymm17915; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3],ymm2[4,5,6],ymm1[7]7916; AVX2-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7917; AVX2-FCP-NEXT: vmovdqa 992(%rdi), %ymm17918; AVX2-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7919; AVX2-FCP-NEXT: vmovdqa 960(%rdi), %ymm27920; AVX2-FCP-NEXT: vmovdqu %ymm2, (%rsp) # 32-byte Spill7921; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3],ymm2[4,5],ymm1[6,7]7922; AVX2-FCP-NEXT: vpermd %ymm1, %ymm0, %ymm17923; AVX2-FCP-NEXT: vmovdqa 1024(%rdi), %ymm137924; AVX2-FCP-NEXT: vmovdqa 1056(%rdi), %ymm27925; AVX2-FCP-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7926; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm2 = ymm2[0,1,0,3]7927; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm13[4],ymm2[5,6,7]7928; AVX2-FCP-NEXT: vmovdqu %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7929; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm1[0,1,2,3],ymm2[4,5,6,7]7930; AVX2-FCP-NEXT: vinserti128 $1, 1088(%rdi), %ymm1, %ymm17931; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3],ymm2[4,5,6],ymm1[7]7932; AVX2-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7933; AVX2-FCP-NEXT: vmovdqa (%rdi), %ymm47934; AVX2-FCP-NEXT: vmovdqa 32(%rdi), %ymm17935; AVX2-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7936; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm4[0,1],ymm1[2,3],ymm4[4,5],ymm1[6,7]7937; AVX2-FCP-NEXT: vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7938; AVX2-FCP-NEXT: vpermd %ymm1, %ymm0, %ymm07939; AVX2-FCP-NEXT: vmovdqa 64(%rdi), %ymm27940; AVX2-FCP-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7941; AVX2-FCP-NEXT: vmovdqa 96(%rdi), %ymm117942; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm1 = ymm11[0,1,0,3]7943; AVX2-FCP-NEXT: vmovdqu %ymm11, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7944; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm2[4],ymm1[5,6,7]7945; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm0[0,1,2,3],ymm1[4,5,6,7]7946; AVX2-FCP-NEXT: vinserti128 $1, 128(%rdi), %ymm0, %ymm07947; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3],ymm1[4,5,6],ymm0[7]7948; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7949; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload7950; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm12 # 32-byte Reload7951; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm12[0,1],ymm5[2,3],ymm12[4,5,6,7]7952; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload7953; AVX2-FCP-NEXT: vpblendd $204, {{[-0-9]+}}(%r{{[sb]}}p), %ymm6, %ymm1 # 32-byte Folded Reload7954; AVX2-FCP-NEXT: # ymm1 = ymm6[0,1],mem[2,3],ymm6[4,5],mem[6,7]7955; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0],ymm0[1],ymm1[2],ymm0[3],ymm1[4,5],ymm0[6],ymm1[7]7956; AVX2-FCP-NEXT: vpmovsxbd {{.*#+}} ymm0 = [1,6,3,0,5,2,7,0]7957; AVX2-FCP-NEXT: vpermd %ymm1, %ymm0, %ymm17958; AVX2-FCP-NEXT: vpbroadcastd 304(%rdi), %ymm27959; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,6],ymm2[7]7960; AVX2-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7961; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload7962; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload7963; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm8[0,1],ymm7[2,3],ymm8[4,5,6,7]7964; AVX2-FCP-NEXT: vmovdqu %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7965; AVX2-FCP-NEXT: vpblendd $204, {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm2 # 32-byte Folded Reload7966; AVX2-FCP-NEXT: # ymm2 = ymm9[0,1],mem[2,3],ymm9[4,5],mem[6,7]7967; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0],ymm1[1],ymm2[2],ymm1[3],ymm2[4,5],ymm1[6],ymm2[7]7968; AVX2-FCP-NEXT: vpermd %ymm1, %ymm0, %ymm17969; AVX2-FCP-NEXT: vpbroadcastd 624(%rdi), %ymm27970; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,6],ymm2[7]7971; AVX2-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7972; AVX2-FCP-NEXT: vmovdqu %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7973; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm10[0,1],ymm15[2,3],ymm10[4,5,6,7]7974; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Reload7975; AVX2-FCP-NEXT: vpblendd $204, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm2 # 32-byte Folded Reload7976; AVX2-FCP-NEXT: # ymm2 = ymm15[0,1],mem[2,3],ymm15[4,5],mem[6,7]7977; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0],ymm1[1],ymm2[2],ymm1[3],ymm2[4,5],ymm1[6],ymm2[7]7978; AVX2-FCP-NEXT: vpermd %ymm1, %ymm0, %ymm17979; AVX2-FCP-NEXT: vpbroadcastd 944(%rdi), %ymm27980; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,6],ymm2[7]7981; AVX2-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7982; AVX2-FCP-NEXT: vpblendd $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm1 # 32-byte Folded Reload7983; AVX2-FCP-NEXT: # ymm1 = mem[0,1],ymm14[2,3],mem[4,5,6,7]7984; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload7985; AVX2-FCP-NEXT: vpblendd $204, {{[-0-9]+}}(%r{{[sb]}}p), %ymm10, %ymm2 # 32-byte Folded Reload7986; AVX2-FCP-NEXT: # ymm2 = ymm10[0,1],mem[2,3],ymm10[4,5],mem[6,7]7987; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0],ymm1[1],ymm2[2],ymm1[3],ymm2[4,5],ymm1[6],ymm2[7]7988; AVX2-FCP-NEXT: vpermd %ymm1, %ymm0, %ymm17989; AVX2-FCP-NEXT: vpbroadcastd 1264(%rdi), %ymm27990; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,6],ymm2[7]7991; AVX2-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7992; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Reload7993; AVX2-FCP-NEXT: vpblendd $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm1 # 32-byte Folded Reload7994; AVX2-FCP-NEXT: # ymm1 = mem[0,1],ymm14[2,3],mem[4,5,6,7]7995; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload7996; AVX2-FCP-NEXT: vpblendd $204, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload7997; AVX2-FCP-NEXT: # ymm2 = ymm2[0,1],mem[2,3],ymm2[4,5],mem[6,7]7998; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0],ymm1[1],ymm2[2],ymm1[3],ymm2[4,5],ymm1[6],ymm2[7]7999; AVX2-FCP-NEXT: vpermd %ymm1, %ymm0, %ymm18000; AVX2-FCP-NEXT: vpbroadcastd 464(%rdi), %ymm28001; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,6],ymm2[7]8002; AVX2-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8003; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload8004; AVX2-FCP-NEXT: vpblendd $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload8005; AVX2-FCP-NEXT: # ymm1 = mem[0,1],ymm1[2,3],mem[4,5,6,7]8006; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload8007; AVX2-FCP-NEXT: vpblendd $51, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload8008; AVX2-FCP-NEXT: # ymm2 = mem[0,1],ymm2[2,3],mem[4,5],ymm2[6,7]8009; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0],ymm1[1],ymm2[2],ymm1[3],ymm2[4,5],ymm1[6],ymm2[7]8010; AVX2-FCP-NEXT: vpermd %ymm1, %ymm0, %ymm18011; AVX2-FCP-NEXT: vpbroadcastd 784(%rdi), %ymm28012; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,6],ymm2[7]8013; AVX2-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8014; AVX2-FCP-NEXT: vmovdqu (%rsp), %ymm1 # 32-byte Reload8015; AVX2-FCP-NEXT: vpblendd $12, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload8016; AVX2-FCP-NEXT: # ymm1 = ymm1[0,1],mem[2,3],ymm1[4,5,6,7]8017; AVX2-FCP-NEXT: vpblendd $204, {{[-0-9]+}}(%r{{[sb]}}p), %ymm13, %ymm2 # 32-byte Folded Reload8018; AVX2-FCP-NEXT: # ymm2 = ymm13[0,1],mem[2,3],ymm13[4,5],mem[6,7]8019; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0],ymm1[1],ymm2[2],ymm1[3],ymm2[4,5],ymm1[6],ymm2[7]8020; AVX2-FCP-NEXT: vpermd %ymm1, %ymm0, %ymm18021; AVX2-FCP-NEXT: vpbroadcastd 1104(%rdi), %ymm28022; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,6],ymm2[7]8023; AVX2-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8024; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload8025; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm4[0,1],ymm3[2,3],ymm4[4,5,6,7]8026; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload8027; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm4[0,1],ymm11[2,3],ymm4[4,5],ymm11[6,7]8028; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0],ymm1[1],ymm2[2],ymm1[3],ymm2[4,5],ymm1[6],ymm2[7]8029; AVX2-FCP-NEXT: vpermd %ymm1, %ymm0, %ymm08030; AVX2-FCP-NEXT: vpbroadcastd 144(%rdi), %ymm18031; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5,6],ymm1[7]8032; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8033; AVX2-FCP-NEXT: vpmovsxbd {{.*#+}} xmm13 = [2,7,4,0]8034; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm12[0,1,2,3],ymm5[4,5],ymm12[6,7]8035; AVX2-FCP-NEXT: vpermd %ymm0, %ymm13, %ymm08036; AVX2-FCP-NEXT: vinserti128 $1, 256(%rdi), %ymm0, %ymm18037; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm6[0,1,2,3,4,5,6],ymm1[7]8038; AVX2-FCP-NEXT: vpshufd {{.*#+}} ymm1 = ymm1[2,3,0,1,6,7,4,5]8039; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm0[0,1,2],ymm1[3,4,5,6,7]8040; AVX2-FCP-NEXT: vmovdqa 288(%rdi), %ymm28041; AVX2-FCP-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8042; AVX2-FCP-NEXT: vpbroadcastq {{.*#+}} ymm0 = [0,5,0,5,0,5,0,5]8043; AVX2-FCP-NEXT: vpermd %ymm2, %ymm0, %ymm28044; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]8045; AVX2-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8046; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm8[0,1,2,3],ymm7[4,5],ymm8[6,7]8047; AVX2-FCP-NEXT: vpermd %ymm1, %ymm13, %ymm18048; AVX2-FCP-NEXT: vinserti128 $1, 576(%rdi), %ymm0, %ymm28049; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm9[0,1,2,3,4,5,6],ymm2[7]8050; AVX2-FCP-NEXT: vpshufd {{.*#+}} ymm2 = ymm2[2,3,0,1,6,7,4,5]8051; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2],ymm2[3,4,5,6,7]8052; AVX2-FCP-NEXT: vmovdqa 608(%rdi), %ymm28053; AVX2-FCP-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8054; AVX2-FCP-NEXT: vpermd %ymm2, %ymm0, %ymm28055; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]8056; AVX2-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8057; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm12 # 32-byte Reload8058; AVX2-FCP-NEXT: vpblendd $48, {{[-0-9]+}}(%r{{[sb]}}p), %ymm12, %ymm1 # 32-byte Folded Reload8059; AVX2-FCP-NEXT: # ymm1 = ymm12[0,1,2,3],mem[4,5],ymm12[6,7]8060; AVX2-FCP-NEXT: vpermd %ymm1, %ymm13, %ymm18061; AVX2-FCP-NEXT: vinserti128 $1, 896(%rdi), %ymm0, %ymm28062; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm15[0,1,2,3,4,5,6],ymm2[7]8063; AVX2-FCP-NEXT: vpshufd {{.*#+}} ymm2 = ymm2[2,3,0,1,6,7,4,5]8064; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2],ymm2[3,4,5,6,7]8065; AVX2-FCP-NEXT: vmovdqa 928(%rdi), %ymm28066; AVX2-FCP-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8067; AVX2-FCP-NEXT: vpermd %ymm2, %ymm0, %ymm28068; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]8069; AVX2-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8070; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Reload8071; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload8072; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm6[0,1,2,3],ymm11[4,5],ymm6[6,7]8073; AVX2-FCP-NEXT: vpermd %ymm1, %ymm13, %ymm18074; AVX2-FCP-NEXT: vinserti128 $1, 1216(%rdi), %ymm0, %ymm28075; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm10[0,1,2,3,4,5,6],ymm2[7]8076; AVX2-FCP-NEXT: vpshufd {{.*#+}} ymm2 = ymm2[2,3,0,1,6,7,4,5]8077; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2],ymm2[3,4,5,6,7]8078; AVX2-FCP-NEXT: vmovdqa 1248(%rdi), %ymm98079; AVX2-FCP-NEXT: vpermd %ymm9, %ymm0, %ymm28080; AVX2-FCP-NEXT: vmovdqu %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8081; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]8082; AVX2-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8083; AVX2-FCP-NEXT: vpblendd $207, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm1 # 32-byte Folded Reload8084; AVX2-FCP-NEXT: # ymm1 = mem[0,1,2,3],ymm3[4,5],mem[6,7]8085; AVX2-FCP-NEXT: vpermd %ymm1, %ymm13, %ymm18086; AVX2-FCP-NEXT: vinserti128 $1, 96(%rdi), %ymm0, %ymm28087; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm4[0,1,2,3,4,5,6],ymm2[7]8088; AVX2-FCP-NEXT: vpshufd {{.*#+}} ymm2 = ymm2[2,3,0,1,6,7,4,5]8089; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2],ymm2[3,4,5,6,7]8090; AVX2-FCP-NEXT: vmovdqa 128(%rdi), %ymm28091; AVX2-FCP-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8092; AVX2-FCP-NEXT: vpermd %ymm2, %ymm0, %ymm48093; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm4[6,7]8094; AVX2-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8095; AVX2-FCP-NEXT: vpblendd $207, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm1 # 32-byte Folded Reload8096; AVX2-FCP-NEXT: # ymm1 = mem[0,1,2,3],ymm14[4,5],mem[6,7]8097; AVX2-FCP-NEXT: vpermd %ymm1, %ymm13, %ymm18098; AVX2-FCP-NEXT: vinserti128 $1, 416(%rdi), %ymm0, %ymm48099; AVX2-FCP-NEXT: vpblendd $127, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm4 # 32-byte Folded Reload8100; AVX2-FCP-NEXT: # ymm4 = mem[0,1,2,3,4,5,6],ymm4[7]8101; AVX2-FCP-NEXT: vpshufd {{.*#+}} ymm4 = ymm4[2,3,0,1,6,7,4,5]8102; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2],ymm4[3,4,5,6,7]8103; AVX2-FCP-NEXT: vmovdqa 448(%rdi), %ymm28104; AVX2-FCP-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8105; AVX2-FCP-NEXT: vpermd %ymm2, %ymm0, %ymm58106; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm5[6,7]8107; AVX2-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8108; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload8109; AVX2-FCP-NEXT: vpblendd $48, {{[-0-9]+}}(%r{{[sb]}}p), %ymm10, %ymm1 # 32-byte Folded Reload8110; AVX2-FCP-NEXT: # ymm1 = ymm10[0,1,2,3],mem[4,5],ymm10[6,7]8111; AVX2-FCP-NEXT: vpermd %ymm1, %ymm13, %ymm18112; AVX2-FCP-NEXT: vinserti128 $1, 736(%rdi), %ymm0, %ymm58113; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload8114; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm5 = ymm4[0,1,2,3,4,5,6],ymm5[7]8115; AVX2-FCP-NEXT: vpshufd {{.*#+}} ymm5 = ymm5[2,3,0,1,6,7,4,5]8116; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2],ymm5[3,4,5,6,7]8117; AVX2-FCP-NEXT: vmovdqa 768(%rdi), %ymm28118; AVX2-FCP-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8119; AVX2-FCP-NEXT: vpermd %ymm2, %ymm0, %ymm158120; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm15[6,7]8121; AVX2-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8122; AVX2-FCP-NEXT: vmovdqu (%rsp), %ymm7 # 32-byte Reload8123; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload8124; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm7[0,1,2,3],ymm8[4,5],ymm7[6,7]8125; AVX2-FCP-NEXT: vpermd %ymm1, %ymm13, %ymm18126; AVX2-FCP-NEXT: vinserti128 $1, 1056(%rdi), %ymm0, %ymm38127; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload8128; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm3 = ymm2[0,1,2,3,4,5,6],ymm3[7]8129; AVX2-FCP-NEXT: vpshufd {{.*#+}} ymm3 = ymm3[2,3,0,1,6,7,4,5]8130; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2],ymm3[3,4,5,6,7]8131; AVX2-FCP-NEXT: vmovdqa 1088(%rdi), %ymm148132; AVX2-FCP-NEXT: vpermd %ymm14, %ymm0, %ymm08133; AVX2-FCP-NEXT: vmovdqu %ymm14, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8134; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]8135; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8136; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload8137; AVX2-FCP-NEXT: vpblendd $207, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm0 # 32-byte Folded Reload8138; AVX2-FCP-NEXT: # ymm0 = mem[0,1,2,3],ymm3[4,5],mem[6,7]8139; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload8140; AVX2-FCP-NEXT: vpalignr $12, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload8141; AVX2-FCP-NEXT: # ymm1 = mem[12,13,14,15],ymm1[0,1,2,3,4,5,6,7,8,9,10,11],mem[28,29,30,31],ymm1[16,17,18,19,20,21,22,23,24,25,26,27]8142; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2],ymm1[3],ymm0[4],ymm1[5,6],ymm0[7]8143; AVX2-FCP-NEXT: vpmovsxbd {{.*#+}} ymm1 = [0,1,6,2,7,4,0,0]8144; AVX2-FCP-NEXT: vpermd %ymm0, %ymm1, %ymm158145; AVX2-FCP-NEXT: vpbroadcastq {{.*#+}} ymm0 = [1,6,1,6,1,6,1,6]8146; AVX2-FCP-NEXT: vpermd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm13 # 32-byte Folded Reload8147; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm5 = ymm15[0,1,2,3,4,5],ymm13[6,7]8148; AVX2-FCP-NEXT: vmovdqu %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8149; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload8150; AVX2-FCP-NEXT: vpblendd $48, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5, %ymm13 # 32-byte Folded Reload8151; AVX2-FCP-NEXT: # ymm13 = ymm5[0,1,2,3],mem[4,5],ymm5[6,7]8152; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload8153; AVX2-FCP-NEXT: vpalignr $12, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5, %ymm15 # 32-byte Folded Reload8154; AVX2-FCP-NEXT: # ymm15 = mem[12,13,14,15],ymm5[0,1,2,3,4,5,6,7,8,9,10,11],mem[28,29,30,31],ymm5[16,17,18,19,20,21,22,23,24,25,26,27]8155; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm13 = ymm15[0,1],ymm13[2],ymm15[3],ymm13[4],ymm15[5,6],ymm13[7]8156; AVX2-FCP-NEXT: vpermd %ymm13, %ymm1, %ymm138157; AVX2-FCP-NEXT: vpermd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm15 # 32-byte Folded Reload8158; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm5 = ymm13[0,1,2,3,4,5],ymm15[6,7]8159; AVX2-FCP-NEXT: vmovdqu %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8160; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload8161; AVX2-FCP-NEXT: vpblendd $48, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5, %ymm13 # 32-byte Folded Reload8162; AVX2-FCP-NEXT: # ymm13 = ymm5[0,1,2,3],mem[4,5],ymm5[6,7]8163; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload8164; AVX2-FCP-NEXT: vpalignr {{.*#+}} ymm15 = ymm12[12,13,14,15],ymm5[0,1,2,3,4,5,6,7,8,9,10,11],ymm12[28,29,30,31],ymm5[16,17,18,19,20,21,22,23,24,25,26,27]8165; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm13 = ymm15[0,1],ymm13[2],ymm15[3],ymm13[4],ymm15[5,6],ymm13[7]8166; AVX2-FCP-NEXT: vpermd %ymm13, %ymm1, %ymm138167; AVX2-FCP-NEXT: vpermd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm15 # 32-byte Folded Reload8168; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm5 = ymm13[0,1,2,3,4,5],ymm15[6,7]8169; AVX2-FCP-NEXT: vmovdqu %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8170; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload8171; AVX2-FCP-NEXT: vpblendd $48, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5, %ymm13 # 32-byte Folded Reload8172; AVX2-FCP-NEXT: # ymm13 = ymm5[0,1,2,3],mem[4,5],ymm5[6,7]8173; AVX2-FCP-NEXT: vpalignr {{.*#+}} ymm15 = ymm6[12,13,14,15],ymm11[0,1,2,3,4,5,6,7,8,9,10,11],ymm6[28,29,30,31],ymm11[16,17,18,19,20,21,22,23,24,25,26,27]8174; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm13 = ymm15[0,1],ymm13[2],ymm15[3],ymm13[4],ymm15[5,6],ymm13[7]8175; AVX2-FCP-NEXT: vpermd %ymm13, %ymm1, %ymm138176; AVX2-FCP-NEXT: vpermd %ymm9, %ymm0, %ymm158177; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm5 = ymm13[0,1,2,3,4,5],ymm15[6,7]8178; AVX2-FCP-NEXT: vmovdqu %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8179; AVX2-FCP-NEXT: vpblendd $48, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm13 # 32-byte Folded Reload8180; AVX2-FCP-NEXT: # ymm13 = ymm2[0,1,2,3],mem[4,5],ymm2[6,7]8181; AVX2-FCP-NEXT: vpalignr {{.*#+}} ymm15 = ymm7[12,13,14,15],ymm8[0,1,2,3,4,5,6,7,8,9,10,11],ymm7[28,29,30,31],ymm8[16,17,18,19,20,21,22,23,24,25,26,27]8182; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm13 = ymm15[0,1],ymm13[2],ymm15[3],ymm13[4],ymm15[5,6],ymm13[7]8183; AVX2-FCP-NEXT: vpermd %ymm13, %ymm1, %ymm138184; AVX2-FCP-NEXT: vpermd %ymm14, %ymm0, %ymm158185; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm13[0,1,2,3,4,5],ymm15[6,7]8186; AVX2-FCP-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8187; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm12 # 32-byte Reload8188; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm13 = ymm4[0,1,2,3],ymm12[4,5],ymm4[6,7]8189; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Reload8190; AVX2-FCP-NEXT: vpalignr {{.*#+}} ymm15 = ymm10[12,13,14,15],ymm11[0,1,2,3,4,5,6,7,8,9,10,11],ymm10[28,29,30,31],ymm11[16,17,18,19,20,21,22,23,24,25,26,27]8191; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm13 = ymm15[0,1],ymm13[2],ymm15[3],ymm13[4],ymm15[5,6],ymm13[7]8192; AVX2-FCP-NEXT: vpermd %ymm13, %ymm1, %ymm138193; AVX2-FCP-NEXT: vpermd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm15 # 32-byte Folded Reload8194; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm13[0,1,2,3,4,5],ymm15[6,7]8195; AVX2-FCP-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8196; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Reload8197; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload8198; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm13 = ymm5[0,1,2,3],ymm14[4,5],ymm5[6,7]8199; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload8200; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload8201; AVX2-FCP-NEXT: vpalignr {{.*#+}} ymm15 = ymm9[12,13,14,15],ymm4[0,1,2,3,4,5,6,7,8,9,10,11],ymm9[28,29,30,31],ymm4[16,17,18,19,20,21,22,23,24,25,26,27]8202; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm13 = ymm15[0,1],ymm13[2],ymm15[3],ymm13[4],ymm15[5,6],ymm13[7]8203; AVX2-FCP-NEXT: vpermd %ymm13, %ymm1, %ymm138204; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload8205; AVX2-FCP-NEXT: vpermd %ymm10, %ymm0, %ymm158206; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm13[0,1,2,3,4,5],ymm15[6,7]8207; AVX2-FCP-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8208; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload8209; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload8210; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm13 = ymm8[0,1,2,3],ymm7[4,5],ymm8[6,7]8211; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload8212; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload8213; AVX2-FCP-NEXT: vpalignr {{.*#+}} ymm15 = ymm6[12,13,14,15],ymm2[0,1,2,3,4,5,6,7,8,9,10,11],ymm6[28,29,30,31],ymm2[16,17,18,19,20,21,22,23,24,25,26,27]8214; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm13 = ymm15[0,1],ymm13[2],ymm15[3],ymm13[4],ymm15[5,6],ymm13[7]8215; AVX2-FCP-NEXT: vpermd %ymm13, %ymm1, %ymm18216; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Reload8217; AVX2-FCP-NEXT: vpermd %ymm15, %ymm0, %ymm08218; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm13 = ymm1[0,1,2,3,4,5],ymm0[6,7]8219; AVX2-FCP-NEXT: vperm2i128 {{.*#+}} ymm0 = ymm8[0,1],ymm7[0,1]8220; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm7[5],ymm0[6,7]8221; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm6[4,5],ymm2[6,7]8222; AVX2-FCP-NEXT: vpmovsxbd {{.*#+}} xmm8 = [4,1,6,0]8223; AVX2-FCP-NEXT: vpermd %ymm1, %ymm8, %ymm18224; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3,4,5,6,7]8225; AVX2-FCP-NEXT: vpbroadcastq {{.*#+}} ymm7 = [2,7,2,7,2,7,2,7]8226; AVX2-FCP-NEXT: vpermd %ymm15, %ymm7, %ymm18227; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]8228; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload8229; AVX2-FCP-NEXT: vpblendd $48, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload8230; AVX2-FCP-NEXT: # ymm1 = ymm1[0,1,2,3],mem[4,5],ymm1[6,7]8231; AVX2-FCP-NEXT: vperm2i128 $2, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm2 # 32-byte Folded Reload8232; AVX2-FCP-NEXT: # ymm2 = mem[0,1],ymm3[0,1]8233; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3,4],ymm3[5],ymm2[6,7]8234; AVX2-FCP-NEXT: vpermd %ymm1, %ymm8, %ymm18235; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2],ymm2[3,4,5,6,7]8236; AVX2-FCP-NEXT: vpermd {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm2 # 32-byte Folded Reload8237; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm6 = ymm1[0,1,2,3,4,5],ymm2[6,7]8238; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm4[0,1,2,3],ymm9[4,5],ymm4[6,7]8239; AVX2-FCP-NEXT: vperm2i128 {{.*#+}} ymm2 = ymm5[0,1],ymm14[0,1]8240; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3,4],ymm14[5],ymm2[6,7]8241; AVX2-FCP-NEXT: vpermd %ymm1, %ymm8, %ymm18242; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2],ymm2[3,4,5,6,7]8243; AVX2-FCP-NEXT: vpermd %ymm10, %ymm7, %ymm28244; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]8245; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload8246; AVX2-FCP-NEXT: vpblendd $207, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload8247; AVX2-FCP-NEXT: # ymm2 = mem[0,1,2,3],ymm2[4,5],mem[6,7]8248; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload8249; AVX2-FCP-NEXT: vperm2i128 $2, {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm4 # 32-byte Folded Reload8250; AVX2-FCP-NEXT: # ymm4 = mem[0,1],ymm9[0,1]8251; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3,4],ymm9[5],ymm4[6,7]8252; AVX2-FCP-NEXT: vpermd %ymm2, %ymm8, %ymm28253; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2],ymm4[3,4,5,6,7]8254; AVX2-FCP-NEXT: vpermd {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm4 # 32-byte Folded Reload8255; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm9 = ymm2[0,1,2,3,4,5],ymm4[6,7]8256; AVX2-FCP-NEXT: vpblendd $48, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm2 # 32-byte Folded Reload8257; AVX2-FCP-NEXT: # ymm2 = ymm11[0,1,2,3],mem[4,5],ymm11[6,7]8258; AVX2-FCP-NEXT: vperm2i128 $2, {{[-0-9]+}}(%r{{[sb]}}p), %ymm12, %ymm4 # 32-byte Folded Reload8259; AVX2-FCP-NEXT: # ymm4 = mem[0,1],ymm12[0,1]8260; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3,4],ymm12[5],ymm4[6,7]8261; AVX2-FCP-NEXT: vpermd %ymm2, %ymm8, %ymm28262; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2],ymm4[3,4,5,6,7]8263; AVX2-FCP-NEXT: vpermd {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm4 # 32-byte Folded Reload8264; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5],ymm4[6,7]8265; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload8266; AVX2-FCP-NEXT: vpblendd $207, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm4 # 32-byte Folded Reload8267; AVX2-FCP-NEXT: # ymm4 = mem[0,1,2,3],ymm3[4,5],mem[6,7]8268; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload8269; AVX2-FCP-NEXT: vperm2i128 $2, {{[-0-9]+}}(%r{{[sb]}}p), %ymm10, %ymm5 # 32-byte Folded Reload8270; AVX2-FCP-NEXT: # ymm5 = mem[0,1],ymm10[0,1]8271; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm5 = ymm5[0,1,2,3,4],ymm10[5],ymm5[6,7]8272; AVX2-FCP-NEXT: vpermd %ymm4, %ymm8, %ymm48273; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm4 = ymm4[0,1,2],ymm5[3,4,5,6,7]8274; AVX2-FCP-NEXT: vpermd {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm5 # 32-byte Folded Reload8275; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3,4,5],ymm5[6,7]8276; AVX2-FCP-NEXT: vmovdqu (%rsp), %ymm3 # 32-byte Reload8277; AVX2-FCP-NEXT: vpblendd $207, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm5 # 32-byte Folded Reload8278; AVX2-FCP-NEXT: # ymm5 = mem[0,1,2,3],ymm3[4,5],mem[6,7]8279; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Reload8280; AVX2-FCP-NEXT: vperm2i128 $2, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm10 # 32-byte Folded Reload8281; AVX2-FCP-NEXT: # ymm10 = mem[0,1],ymm11[0,1]8282; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm10 = ymm10[0,1,2,3,4],ymm11[5],ymm10[6,7]8283; AVX2-FCP-NEXT: vpermd %ymm5, %ymm8, %ymm58284; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm5 = ymm5[0,1,2],ymm10[3,4,5,6,7]8285; AVX2-FCP-NEXT: vpermd {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm3 # 32-byte Folded Reload8286; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm3 = ymm5[0,1,2,3,4,5],ymm3[6,7]8287; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload8288; AVX2-FCP-NEXT: vpblendd $48, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5, %ymm5 # 32-byte Folded Reload8289; AVX2-FCP-NEXT: # ymm5 = ymm5[0,1,2,3],mem[4,5],ymm5[6,7]8290; AVX2-FCP-NEXT: vpermd %ymm5, %ymm8, %ymm58291; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload8292; AVX2-FCP-NEXT: vperm2i128 $2, {{[-0-9]+}}(%r{{[sb]}}p), %ymm10, %ymm8 # 32-byte Folded Reload8293; AVX2-FCP-NEXT: # ymm8 = mem[0,1],ymm10[0,1]8294; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3,4],ymm10[5],ymm8[6,7]8295; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm5 = ymm5[0,1,2],ymm8[3,4,5,6,7]8296; AVX2-FCP-NEXT: vpermd {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm7 # 32-byte Folded Reload8297; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm5 = ymm5[0,1,2,3,4,5],ymm7[6,7]8298; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload8299; AVX2-FCP-NEXT: vmovaps %ymm7, 192(%rsi)8300; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload8301; AVX2-FCP-NEXT: vmovaps %ymm7, 128(%rsi)8302; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload8303; AVX2-FCP-NEXT: vmovaps %ymm7, 64(%rsi)8304; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload8305; AVX2-FCP-NEXT: vmovaps %ymm7, (%rsi)8306; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload8307; AVX2-FCP-NEXT: vmovaps %ymm7, 224(%rsi)8308; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload8309; AVX2-FCP-NEXT: vmovaps %ymm7, 160(%rsi)8310; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload8311; AVX2-FCP-NEXT: vmovaps %ymm7, 96(%rsi)8312; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload8313; AVX2-FCP-NEXT: vmovaps %ymm7, 32(%rsi)8314; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload8315; AVX2-FCP-NEXT: vmovaps %ymm7, 192(%rdx)8316; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload8317; AVX2-FCP-NEXT: vmovaps %ymm7, 128(%rdx)8318; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload8319; AVX2-FCP-NEXT: vmovaps %ymm7, 64(%rdx)8320; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload8321; AVX2-FCP-NEXT: vmovaps %ymm7, (%rdx)8322; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload8323; AVX2-FCP-NEXT: vmovaps %ymm7, 224(%rdx)8324; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload8325; AVX2-FCP-NEXT: vmovaps %ymm7, 160(%rdx)8326; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload8327; AVX2-FCP-NEXT: vmovaps %ymm7, 96(%rdx)8328; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload8329; AVX2-FCP-NEXT: vmovaps %ymm7, 32(%rdx)8330; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload8331; AVX2-FCP-NEXT: vmovaps %ymm7, 192(%rcx)8332; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload8333; AVX2-FCP-NEXT: vmovaps %ymm7, 128(%rcx)8334; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload8335; AVX2-FCP-NEXT: vmovaps %ymm7, 64(%rcx)8336; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload8337; AVX2-FCP-NEXT: vmovaps %ymm7, (%rcx)8338; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload8339; AVX2-FCP-NEXT: vmovaps %ymm7, 224(%rcx)8340; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload8341; AVX2-FCP-NEXT: vmovaps %ymm7, 160(%rcx)8342; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload8343; AVX2-FCP-NEXT: vmovaps %ymm7, 96(%rcx)8344; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload8345; AVX2-FCP-NEXT: vmovaps %ymm7, 32(%rcx)8346; AVX2-FCP-NEXT: vmovdqa %ymm13, (%r8)8347; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload8348; AVX2-FCP-NEXT: vmovaps %ymm7, 64(%r8)8349; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload8350; AVX2-FCP-NEXT: vmovaps %ymm7, 128(%r8)8351; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload8352; AVX2-FCP-NEXT: vmovaps %ymm7, 192(%r8)8353; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload8354; AVX2-FCP-NEXT: vmovaps %ymm7, 224(%r8)8355; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload8356; AVX2-FCP-NEXT: vmovaps %ymm7, 160(%r8)8357; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload8358; AVX2-FCP-NEXT: vmovaps %ymm7, 96(%r8)8359; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload8360; AVX2-FCP-NEXT: vmovaps %ymm7, 32(%r8)8361; AVX2-FCP-NEXT: vmovdqa %ymm5, 224(%r9)8362; AVX2-FCP-NEXT: vmovdqa %ymm3, 192(%r9)8363; AVX2-FCP-NEXT: vmovdqa %ymm4, 160(%r9)8364; AVX2-FCP-NEXT: vmovdqa %ymm2, 128(%r9)8365; AVX2-FCP-NEXT: vmovdqa %ymm9, 96(%r9)8366; AVX2-FCP-NEXT: vmovdqa %ymm1, 64(%r9)8367; AVX2-FCP-NEXT: vmovdqa %ymm6, 32(%r9)8368; AVX2-FCP-NEXT: vmovdqa %ymm0, (%r9)8369; AVX2-FCP-NEXT: addq $2152, %rsp # imm = 0x8688370; AVX2-FCP-NEXT: vzeroupper8371; AVX2-FCP-NEXT: retq8372;8373; AVX512-LABEL: load_i32_stride5_vf64:8374; AVX512: # %bb.0:8375; AVX512-NEXT: subq $584, %rsp # imm = 0x2488376; AVX512-NEXT: vmovdqa64 1152(%rdi), %zmm208377; AVX512-NEXT: vmovdqa64 1088(%rdi), %zmm18378; AVX512-NEXT: vmovdqa64 832(%rdi), %zmm178379; AVX512-NEXT: vmovdqa64 768(%rdi), %zmm28380; AVX512-NEXT: vmovdqa64 384(%rdi), %zmm118381; AVX512-NEXT: vmovdqa64 512(%rdi), %zmm268382; AVX512-NEXT: vmovdqa64 448(%rdi), %zmm08383; AVX512-NEXT: vmovdqa64 (%rdi), %zmm138384; AVX512-NEXT: vmovdqa64 64(%rdi), %zmm218385; AVX512-NEXT: vmovdqa64 128(%rdi), %zmm38386; AVX512-NEXT: vmovdqa64 192(%rdi), %zmm308387; AVX512-NEXT: vbroadcasti64x4 {{.*#+}} zmm19 = [8,13,18,23,28,0,0,3,8,13,18,23,28,0,0,3]8388; AVX512-NEXT: # zmm19 = mem[0,1,2,3,0,1,2,3]8389; AVX512-NEXT: vmovdqa64 %zmm3, %zmm48390; AVX512-NEXT: vpermt2d %zmm30, %zmm19, %zmm48391; AVX512-NEXT: vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8392; AVX512-NEXT: vpmovsxbd {{.*#+}} ymm15 = [0,5,10,15,20,25,30,0]8393; AVX512-NEXT: vmovdqa64 %zmm13, %zmm48394; AVX512-NEXT: vpermt2d %zmm21, %zmm15, %zmm48395; AVX512-NEXT: vmovdqa64 %zmm0, %zmm58396; AVX512-NEXT: vpermt2d %zmm26, %zmm19, %zmm58397; AVX512-NEXT: vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8398; AVX512-NEXT: vmovdqa64 %zmm2, %zmm58399; AVX512-NEXT: vpermt2d %zmm17, %zmm19, %zmm58400; AVX512-NEXT: vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8401; AVX512-NEXT: vpermi2d %zmm20, %zmm1, %zmm198402; AVX512-NEXT: vbroadcasti64x4 {{.*#+}} zmm16 = [9,14,19,24,29,0,0,4,9,14,19,24,29,0,0,4]8403; AVX512-NEXT: # zmm16 = mem[0,1,2,3,0,1,2,3]8404; AVX512-NEXT: vmovdqa64 %zmm3, %zmm58405; AVX512-NEXT: vpermt2d %zmm30, %zmm16, %zmm58406; AVX512-NEXT: vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8407; AVX512-NEXT: vpmovsxbd {{.*#+}} ymm12 = [17,22,27,0,5,10,15,0]8408; AVX512-NEXT: vmovdqa64 %zmm21, %zmm248409; AVX512-NEXT: vpermt2d %zmm13, %zmm12, %zmm248410; AVX512-NEXT: vmovdqa64 %zmm2, %zmm58411; AVX512-NEXT: vpermt2d %zmm17, %zmm16, %zmm58412; AVX512-NEXT: vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8413; AVX512-NEXT: vmovdqa64 %zmm0, %zmm58414; AVX512-NEXT: vpermt2d %zmm26, %zmm16, %zmm58415; AVX512-NEXT: vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8416; AVX512-NEXT: vpermi2d %zmm20, %zmm1, %zmm168417; AVX512-NEXT: vpmovsxbd {{.*#+}} ymm25 = [2,7,12,17,22,27,0,0]8418; AVX512-NEXT: vmovdqa64 %zmm13, %zmm58419; AVX512-NEXT: vpermt2d %zmm21, %zmm25, %zmm58420; AVX512-NEXT: vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8421; AVX512-NEXT: vbroadcasti64x4 {{.*#+}} zmm14 = [10,15,20,25,30,0,0,5,10,15,20,25,30,0,0,5]8422; AVX512-NEXT: # zmm14 = mem[0,1,2,3,0,1,2,3]8423; AVX512-NEXT: vmovdqa64 %zmm3, %zmm238424; AVX512-NEXT: vmovdqa64 %zmm3, %zmm58425; AVX512-NEXT: vpermt2d %zmm30, %zmm14, %zmm238426; AVX512-NEXT: vmovdqa64 %zmm2, %zmm188427; AVX512-NEXT: vpermt2d %zmm17, %zmm14, %zmm188428; AVX512-NEXT: vmovdqa64 %zmm0, %zmm38429; AVX512-NEXT: vmovdqa64 %zmm0, %zmm228430; AVX512-NEXT: vpermt2d %zmm26, %zmm14, %zmm228431; AVX512-NEXT: vpermi2d %zmm20, %zmm1, %zmm148432; AVX512-NEXT: vbroadcasti64x4 {{.*#+}} zmm28 = [27,0,5,10,15,0,17,22,27,0,5,10,15,0,17,22]8433; AVX512-NEXT: # zmm28 = mem[0,1,2,3,0,1,2,3]8434; AVX512-NEXT: vmovdqa64 %zmm30, %zmm278435; AVX512-NEXT: vpermt2d %zmm5, %zmm28, %zmm278436; AVX512-NEXT: vbroadcasti64x4 {{.*#+}} zmm0 = [12,17,22,27,0,0,2,7,12,17,22,27,0,0,2,7]8437; AVX512-NEXT: # zmm0 = mem[0,1,2,3,0,1,2,3]8438; AVX512-NEXT: vpermt2d %zmm30, %zmm0, %zmm58439; AVX512-NEXT: vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8440; AVX512-NEXT: vmovdqa64 %zmm26, %zmm308441; AVX512-NEXT: vpermt2d %zmm3, %zmm28, %zmm308442; AVX512-NEXT: vpermt2d %zmm26, %zmm0, %zmm38443; AVX512-NEXT: vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8444; AVX512-NEXT: vmovdqa64 %zmm17, %zmm268445; AVX512-NEXT: vpermt2d %zmm2, %zmm28, %zmm268446; AVX512-NEXT: vpermi2d %zmm1, %zmm20, %zmm288447; AVX512-NEXT: vpermt2d %zmm20, %zmm0, %zmm18448; AVX512-NEXT: vmovdqu64 %zmm1, (%rsp) # 64-byte Spill8449; AVX512-NEXT: vpmovsxbd {{.*#+}} ymm5 = [3,8,13,18,23,28,0,0]8450; AVX512-NEXT: vpermt2d %zmm17, %zmm0, %zmm28451; AVX512-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8452; AVX512-NEXT: vmovdqa64 %zmm13, %zmm298453; AVX512-NEXT: vpermt2d %zmm21, %zmm5, %zmm298454; AVX512-NEXT: vpmovsxbd {{.*#+}} ymm9 = [4,9,14,19,24,29,0,0]8455; AVX512-NEXT: vpermt2d %zmm21, %zmm9, %zmm138456; AVX512-NEXT: vmovdqa64 320(%rdi), %zmm178457; AVX512-NEXT: vmovdqa64 %zmm17, %zmm318458; AVX512-NEXT: vpermt2d %zmm11, %zmm15, %zmm318459; AVX512-NEXT: vmovdqa64 %zmm11, %zmm208460; AVX512-NEXT: vpermt2d %zmm17, %zmm12, %zmm208461; AVX512-NEXT: vmovdqa64 %zmm17, %zmm88462; AVX512-NEXT: vpermt2d %zmm11, %zmm25, %zmm88463; AVX512-NEXT: vmovdqa64 %zmm17, %zmm108464; AVX512-NEXT: vpermt2d %zmm11, %zmm5, %zmm108465; AVX512-NEXT: vpermt2d %zmm11, %zmm9, %zmm178466; AVX512-NEXT: vmovdqa64 704(%rdi), %zmm18467; AVX512-NEXT: vmovdqa64 640(%rdi), %zmm118468; AVX512-NEXT: vmovdqa64 %zmm11, %zmm28469; AVX512-NEXT: vpermt2d %zmm1, %zmm15, %zmm28470; AVX512-NEXT: vmovdqa64 1024(%rdi), %zmm08471; AVX512-NEXT: vmovdqa64 960(%rdi), %zmm218472; AVX512-NEXT: vpermi2d %zmm0, %zmm21, %zmm158473; AVX512-NEXT: vmovdqa64 %zmm1, %zmm38474; AVX512-NEXT: vpermt2d %zmm11, %zmm12, %zmm38475; AVX512-NEXT: vpermi2d %zmm21, %zmm0, %zmm128476; AVX512-NEXT: vmovdqa64 %zmm11, %zmm68477; AVX512-NEXT: vpermt2d %zmm1, %zmm25, %zmm68478; AVX512-NEXT: vpermi2d %zmm0, %zmm21, %zmm258479; AVX512-NEXT: vmovdqa64 %zmm11, %zmm78480; AVX512-NEXT: vpermt2d %zmm1, %zmm5, %zmm78481; AVX512-NEXT: vpermi2d %zmm0, %zmm21, %zmm58482; AVX512-NEXT: vpermt2d %zmm0, %zmm9, %zmm218483; AVX512-NEXT: vpermt2d %zmm1, %zmm9, %zmm118484; AVX512-NEXT: movw $8064, %ax # imm = 0x1F808485; AVX512-NEXT: kmovw %eax, %k18486; AVX512-NEXT: vmovdqa64 %zmm4, %zmm08487; AVX512-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload8488; AVX512-NEXT: vmovdqa32 %zmm1, %zmm0 {%k1}8489; AVX512-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload8490; AVX512-NEXT: vmovdqa32 %zmm1, %zmm31 {%k1}8491; AVX512-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload8492; AVX512-NEXT: vmovdqa32 %zmm1, %zmm2 {%k1}8493; AVX512-NEXT: vmovdqa32 %zmm19, %zmm15 {%k1}8494; AVX512-NEXT: vmovdqa64 256(%rdi), %zmm18495; AVX512-NEXT: vpmovsxbd {{.*#+}} zmm4 = [0,1,2,3,4,5,6,7,8,9,10,11,12,17,22,27]8496; AVX512-NEXT: vpermt2d %zmm1, %zmm4, %zmm08497; AVX512-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8498; AVX512-NEXT: vmovdqa64 576(%rdi), %zmm98499; AVX512-NEXT: vpermt2d %zmm9, %zmm4, %zmm318500; AVX512-NEXT: vmovdqa64 896(%rdi), %zmm198501; AVX512-NEXT: vpermt2d %zmm19, %zmm4, %zmm28502; AVX512-NEXT: vmovdqa64 1216(%rdi), %zmm08503; AVX512-NEXT: vpermt2d %zmm0, %zmm4, %zmm158504; AVX512-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload8505; AVX512-NEXT: vmovdqa32 %zmm4, %zmm24 {%k1}8506; AVX512-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload8507; AVX512-NEXT: vmovdqa32 %zmm4, %zmm3 {%k1}8508; AVX512-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload8509; AVX512-NEXT: vmovdqa32 %zmm4, %zmm20 {%k1}8510; AVX512-NEXT: vmovdqa32 %zmm16, %zmm12 {%k1}8511; AVX512-NEXT: vpmovsxbd {{.*#+}} zmm4 = [0,1,2,3,4,5,6,7,8,9,10,11,12,18,23,28]8512; AVX512-NEXT: vpermt2d %zmm1, %zmm4, %zmm248513; AVX512-NEXT: vpermt2d %zmm19, %zmm4, %zmm38514; AVX512-NEXT: vpermt2d %zmm9, %zmm4, %zmm208515; AVX512-NEXT: vpermt2d %zmm0, %zmm4, %zmm128516; AVX512-NEXT: movb $7, %al8517; AVX512-NEXT: kmovw %eax, %k18518; AVX512-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload8519; AVX512-NEXT: vmovdqa64 %zmm4, %zmm23 {%k1}8520; AVX512-NEXT: vmovdqa64 %zmm6, %zmm18 {%k1}8521; AVX512-NEXT: vmovdqa64 %zmm8, %zmm22 {%k1}8522; AVX512-NEXT: vmovdqa64 %zmm25, %zmm14 {%k1}8523; AVX512-NEXT: vpmovsxbd {{.*#+}} zmm4 = [0,1,2,3,4,5,6,7,8,9,10,11,12,19,24,29]8524; AVX512-NEXT: vpermt2d %zmm1, %zmm4, %zmm238525; AVX512-NEXT: vpermt2d %zmm19, %zmm4, %zmm188526; AVX512-NEXT: vpermt2d %zmm9, %zmm4, %zmm228527; AVX512-NEXT: vpermt2d %zmm0, %zmm4, %zmm148528; AVX512-NEXT: vmovdqa64 %zmm29, %zmm27 {%k1}8529; AVX512-NEXT: vmovdqa64 %zmm7, %zmm26 {%k1}8530; AVX512-NEXT: vmovdqa64 %zmm10, %zmm30 {%k1}8531; AVX512-NEXT: vmovdqa64 %zmm5, %zmm28 {%k1}8532; AVX512-NEXT: vpmovsxbd {{.*#+}} zmm4 = [0,1,2,3,4,5,6,7,8,9,10,11,12,20,25,30]8533; AVX512-NEXT: vpermt2d %zmm1, %zmm4, %zmm278534; AVX512-NEXT: vpermt2d %zmm19, %zmm4, %zmm268535; AVX512-NEXT: vpermt2d %zmm9, %zmm4, %zmm308536; AVX512-NEXT: vpermt2d %zmm0, %zmm4, %zmm288537; AVX512-NEXT: movb $56, %al8538; AVX512-NEXT: kmovw %eax, %k18539; AVX512-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload8540; AVX512-NEXT: vmovdqa64 %zmm4, %zmm13 {%k1}8541; AVX512-NEXT: vpmovsxbd {{.*#+}} zmm4 = [0,1,2,3,4,5,6,7,8,9,10,11,16,21,26,31]8542; AVX512-NEXT: vpermt2d %zmm1, %zmm4, %zmm138543; AVX512-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload8544; AVX512-NEXT: vmovdqa64 %zmm1, %zmm17 {%k1}8545; AVX512-NEXT: vpermt2d %zmm9, %zmm4, %zmm178546; AVX512-NEXT: vmovdqu64 (%rsp), %zmm1 # 64-byte Reload8547; AVX512-NEXT: vmovdqa64 %zmm1, %zmm21 {%k1}8548; AVX512-NEXT: vpermt2d %zmm0, %zmm4, %zmm218549; AVX512-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8550; AVX512-NEXT: vmovdqa64 %zmm0, %zmm11 {%k1}8551; AVX512-NEXT: vpermt2d %zmm19, %zmm4, %zmm118552; AVX512-NEXT: vmovdqa64 %zmm15, 192(%rsi)8553; AVX512-NEXT: vmovdqa64 %zmm2, 128(%rsi)8554; AVX512-NEXT: vmovdqa64 %zmm31, 64(%rsi)8555; AVX512-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8556; AVX512-NEXT: vmovaps %zmm0, (%rsi)8557; AVX512-NEXT: vmovdqa64 %zmm12, 192(%rdx)8558; AVX512-NEXT: vmovdqa64 %zmm24, (%rdx)8559; AVX512-NEXT: vmovdqa64 %zmm20, 64(%rdx)8560; AVX512-NEXT: vmovdqa64 %zmm3, 128(%rdx)8561; AVX512-NEXT: vmovdqa64 %zmm14, 192(%rcx)8562; AVX512-NEXT: vmovdqa64 %zmm23, (%rcx)8563; AVX512-NEXT: vmovdqa64 %zmm22, 64(%rcx)8564; AVX512-NEXT: vmovdqa64 %zmm18, 128(%rcx)8565; AVX512-NEXT: vmovdqa64 %zmm28, 192(%r8)8566; AVX512-NEXT: vmovdqa64 %zmm27, (%r8)8567; AVX512-NEXT: vmovdqa64 %zmm30, 64(%r8)8568; AVX512-NEXT: vmovdqa64 %zmm26, 128(%r8)8569; AVX512-NEXT: vmovdqa64 %zmm11, 128(%r9)8570; AVX512-NEXT: vmovdqa64 %zmm21, 192(%r9)8571; AVX512-NEXT: vmovdqa64 %zmm13, (%r9)8572; AVX512-NEXT: vmovdqa64 %zmm17, 64(%r9)8573; AVX512-NEXT: addq $584, %rsp # imm = 0x2488574; AVX512-NEXT: vzeroupper8575; AVX512-NEXT: retq8576;8577; AVX512-FCP-LABEL: load_i32_stride5_vf64:8578; AVX512-FCP: # %bb.0:8579; AVX512-FCP-NEXT: subq $584, %rsp # imm = 0x2488580; AVX512-FCP-NEXT: vmovdqa64 1152(%rdi), %zmm208581; AVX512-FCP-NEXT: vmovdqa64 1088(%rdi), %zmm18582; AVX512-FCP-NEXT: vmovdqa64 832(%rdi), %zmm178583; AVX512-FCP-NEXT: vmovdqa64 768(%rdi), %zmm28584; AVX512-FCP-NEXT: vmovdqa64 384(%rdi), %zmm118585; AVX512-FCP-NEXT: vmovdqa64 512(%rdi), %zmm268586; AVX512-FCP-NEXT: vmovdqa64 448(%rdi), %zmm08587; AVX512-FCP-NEXT: vmovdqa64 (%rdi), %zmm138588; AVX512-FCP-NEXT: vmovdqa64 64(%rdi), %zmm218589; AVX512-FCP-NEXT: vmovdqa64 128(%rdi), %zmm38590; AVX512-FCP-NEXT: vmovdqa64 192(%rdi), %zmm308591; AVX512-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm19 = [8,13,18,23,28,0,0,3,8,13,18,23,28,0,0,3]8592; AVX512-FCP-NEXT: # zmm19 = mem[0,1,2,3,0,1,2,3]8593; AVX512-FCP-NEXT: vmovdqa64 %zmm3, %zmm48594; AVX512-FCP-NEXT: vpermt2d %zmm30, %zmm19, %zmm48595; AVX512-FCP-NEXT: vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8596; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} ymm15 = [0,5,10,15,20,25,30,0]8597; AVX512-FCP-NEXT: vmovdqa64 %zmm13, %zmm48598; AVX512-FCP-NEXT: vpermt2d %zmm21, %zmm15, %zmm48599; AVX512-FCP-NEXT: vmovdqa64 %zmm0, %zmm58600; AVX512-FCP-NEXT: vpermt2d %zmm26, %zmm19, %zmm58601; AVX512-FCP-NEXT: vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8602; AVX512-FCP-NEXT: vmovdqa64 %zmm2, %zmm58603; AVX512-FCP-NEXT: vpermt2d %zmm17, %zmm19, %zmm58604; AVX512-FCP-NEXT: vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8605; AVX512-FCP-NEXT: vpermi2d %zmm20, %zmm1, %zmm198606; AVX512-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm16 = [9,14,19,24,29,0,0,4,9,14,19,24,29,0,0,4]8607; AVX512-FCP-NEXT: # zmm16 = mem[0,1,2,3,0,1,2,3]8608; AVX512-FCP-NEXT: vmovdqa64 %zmm3, %zmm58609; AVX512-FCP-NEXT: vpermt2d %zmm30, %zmm16, %zmm58610; AVX512-FCP-NEXT: vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8611; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} ymm12 = [17,22,27,0,5,10,15,0]8612; AVX512-FCP-NEXT: vmovdqa64 %zmm21, %zmm248613; AVX512-FCP-NEXT: vpermt2d %zmm13, %zmm12, %zmm248614; AVX512-FCP-NEXT: vmovdqa64 %zmm2, %zmm58615; AVX512-FCP-NEXT: vpermt2d %zmm17, %zmm16, %zmm58616; AVX512-FCP-NEXT: vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8617; AVX512-FCP-NEXT: vmovdqa64 %zmm0, %zmm58618; AVX512-FCP-NEXT: vpermt2d %zmm26, %zmm16, %zmm58619; AVX512-FCP-NEXT: vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8620; AVX512-FCP-NEXT: vpermi2d %zmm20, %zmm1, %zmm168621; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} ymm25 = [2,7,12,17,22,27,0,0]8622; AVX512-FCP-NEXT: vmovdqa64 %zmm13, %zmm58623; AVX512-FCP-NEXT: vpermt2d %zmm21, %zmm25, %zmm58624; AVX512-FCP-NEXT: vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8625; AVX512-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm14 = [10,15,20,25,30,0,0,5,10,15,20,25,30,0,0,5]8626; AVX512-FCP-NEXT: # zmm14 = mem[0,1,2,3,0,1,2,3]8627; AVX512-FCP-NEXT: vmovdqa64 %zmm3, %zmm238628; AVX512-FCP-NEXT: vmovdqa64 %zmm3, %zmm58629; AVX512-FCP-NEXT: vpermt2d %zmm30, %zmm14, %zmm238630; AVX512-FCP-NEXT: vmovdqa64 %zmm2, %zmm188631; AVX512-FCP-NEXT: vpermt2d %zmm17, %zmm14, %zmm188632; AVX512-FCP-NEXT: vmovdqa64 %zmm0, %zmm38633; AVX512-FCP-NEXT: vmovdqa64 %zmm0, %zmm228634; AVX512-FCP-NEXT: vpermt2d %zmm26, %zmm14, %zmm228635; AVX512-FCP-NEXT: vpermi2d %zmm20, %zmm1, %zmm148636; AVX512-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm28 = [27,0,5,10,15,0,17,22,27,0,5,10,15,0,17,22]8637; AVX512-FCP-NEXT: # zmm28 = mem[0,1,2,3,0,1,2,3]8638; AVX512-FCP-NEXT: vmovdqa64 %zmm30, %zmm278639; AVX512-FCP-NEXT: vpermt2d %zmm5, %zmm28, %zmm278640; AVX512-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm0 = [12,17,22,27,0,0,2,7,12,17,22,27,0,0,2,7]8641; AVX512-FCP-NEXT: # zmm0 = mem[0,1,2,3,0,1,2,3]8642; AVX512-FCP-NEXT: vpermt2d %zmm30, %zmm0, %zmm58643; AVX512-FCP-NEXT: vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8644; AVX512-FCP-NEXT: vmovdqa64 %zmm26, %zmm308645; AVX512-FCP-NEXT: vpermt2d %zmm3, %zmm28, %zmm308646; AVX512-FCP-NEXT: vpermt2d %zmm26, %zmm0, %zmm38647; AVX512-FCP-NEXT: vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8648; AVX512-FCP-NEXT: vmovdqa64 %zmm17, %zmm268649; AVX512-FCP-NEXT: vpermt2d %zmm2, %zmm28, %zmm268650; AVX512-FCP-NEXT: vpermi2d %zmm1, %zmm20, %zmm288651; AVX512-FCP-NEXT: vpermt2d %zmm20, %zmm0, %zmm18652; AVX512-FCP-NEXT: vmovdqu64 %zmm1, (%rsp) # 64-byte Spill8653; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} ymm5 = [3,8,13,18,23,28,0,0]8654; AVX512-FCP-NEXT: vpermt2d %zmm17, %zmm0, %zmm28655; AVX512-FCP-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8656; AVX512-FCP-NEXT: vmovdqa64 %zmm13, %zmm298657; AVX512-FCP-NEXT: vpermt2d %zmm21, %zmm5, %zmm298658; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} ymm9 = [4,9,14,19,24,29,0,0]8659; AVX512-FCP-NEXT: vpermt2d %zmm21, %zmm9, %zmm138660; AVX512-FCP-NEXT: vmovdqa64 320(%rdi), %zmm178661; AVX512-FCP-NEXT: vmovdqa64 %zmm17, %zmm318662; AVX512-FCP-NEXT: vpermt2d %zmm11, %zmm15, %zmm318663; AVX512-FCP-NEXT: vmovdqa64 %zmm11, %zmm208664; AVX512-FCP-NEXT: vpermt2d %zmm17, %zmm12, %zmm208665; AVX512-FCP-NEXT: vmovdqa64 %zmm17, %zmm88666; AVX512-FCP-NEXT: vpermt2d %zmm11, %zmm25, %zmm88667; AVX512-FCP-NEXT: vmovdqa64 %zmm17, %zmm108668; AVX512-FCP-NEXT: vpermt2d %zmm11, %zmm5, %zmm108669; AVX512-FCP-NEXT: vpermt2d %zmm11, %zmm9, %zmm178670; AVX512-FCP-NEXT: vmovdqa64 704(%rdi), %zmm18671; AVX512-FCP-NEXT: vmovdqa64 640(%rdi), %zmm118672; AVX512-FCP-NEXT: vmovdqa64 %zmm11, %zmm28673; AVX512-FCP-NEXT: vpermt2d %zmm1, %zmm15, %zmm28674; AVX512-FCP-NEXT: vmovdqa64 1024(%rdi), %zmm08675; AVX512-FCP-NEXT: vmovdqa64 960(%rdi), %zmm218676; AVX512-FCP-NEXT: vpermi2d %zmm0, %zmm21, %zmm158677; AVX512-FCP-NEXT: vmovdqa64 %zmm1, %zmm38678; AVX512-FCP-NEXT: vpermt2d %zmm11, %zmm12, %zmm38679; AVX512-FCP-NEXT: vpermi2d %zmm21, %zmm0, %zmm128680; AVX512-FCP-NEXT: vmovdqa64 %zmm11, %zmm68681; AVX512-FCP-NEXT: vpermt2d %zmm1, %zmm25, %zmm68682; AVX512-FCP-NEXT: vpermi2d %zmm0, %zmm21, %zmm258683; AVX512-FCP-NEXT: vmovdqa64 %zmm11, %zmm78684; AVX512-FCP-NEXT: vpermt2d %zmm1, %zmm5, %zmm78685; AVX512-FCP-NEXT: vpermi2d %zmm0, %zmm21, %zmm58686; AVX512-FCP-NEXT: vpermt2d %zmm0, %zmm9, %zmm218687; AVX512-FCP-NEXT: vpermt2d %zmm1, %zmm9, %zmm118688; AVX512-FCP-NEXT: movw $8064, %ax # imm = 0x1F808689; AVX512-FCP-NEXT: kmovw %eax, %k18690; AVX512-FCP-NEXT: vmovdqa64 %zmm4, %zmm08691; AVX512-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload8692; AVX512-FCP-NEXT: vmovdqa32 %zmm1, %zmm0 {%k1}8693; AVX512-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload8694; AVX512-FCP-NEXT: vmovdqa32 %zmm1, %zmm31 {%k1}8695; AVX512-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload8696; AVX512-FCP-NEXT: vmovdqa32 %zmm1, %zmm2 {%k1}8697; AVX512-FCP-NEXT: vmovdqa32 %zmm19, %zmm15 {%k1}8698; AVX512-FCP-NEXT: vmovdqa64 256(%rdi), %zmm18699; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} zmm4 = [0,1,2,3,4,5,6,7,8,9,10,11,12,17,22,27]8700; AVX512-FCP-NEXT: vpermt2d %zmm1, %zmm4, %zmm08701; AVX512-FCP-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8702; AVX512-FCP-NEXT: vmovdqa64 576(%rdi), %zmm98703; AVX512-FCP-NEXT: vpermt2d %zmm9, %zmm4, %zmm318704; AVX512-FCP-NEXT: vmovdqa64 896(%rdi), %zmm198705; AVX512-FCP-NEXT: vpermt2d %zmm19, %zmm4, %zmm28706; AVX512-FCP-NEXT: vmovdqa64 1216(%rdi), %zmm08707; AVX512-FCP-NEXT: vpermt2d %zmm0, %zmm4, %zmm158708; AVX512-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload8709; AVX512-FCP-NEXT: vmovdqa32 %zmm4, %zmm24 {%k1}8710; AVX512-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload8711; AVX512-FCP-NEXT: vmovdqa32 %zmm4, %zmm3 {%k1}8712; AVX512-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload8713; AVX512-FCP-NEXT: vmovdqa32 %zmm4, %zmm20 {%k1}8714; AVX512-FCP-NEXT: vmovdqa32 %zmm16, %zmm12 {%k1}8715; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} zmm4 = [0,1,2,3,4,5,6,7,8,9,10,11,12,18,23,28]8716; AVX512-FCP-NEXT: vpermt2d %zmm1, %zmm4, %zmm248717; AVX512-FCP-NEXT: vpermt2d %zmm19, %zmm4, %zmm38718; AVX512-FCP-NEXT: vpermt2d %zmm9, %zmm4, %zmm208719; AVX512-FCP-NEXT: vpermt2d %zmm0, %zmm4, %zmm128720; AVX512-FCP-NEXT: movb $7, %al8721; AVX512-FCP-NEXT: kmovw %eax, %k18722; AVX512-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload8723; AVX512-FCP-NEXT: vmovdqa64 %zmm4, %zmm23 {%k1}8724; AVX512-FCP-NEXT: vmovdqa64 %zmm6, %zmm18 {%k1}8725; AVX512-FCP-NEXT: vmovdqa64 %zmm8, %zmm22 {%k1}8726; AVX512-FCP-NEXT: vmovdqa64 %zmm25, %zmm14 {%k1}8727; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} zmm4 = [0,1,2,3,4,5,6,7,8,9,10,11,12,19,24,29]8728; AVX512-FCP-NEXT: vpermt2d %zmm1, %zmm4, %zmm238729; AVX512-FCP-NEXT: vpermt2d %zmm19, %zmm4, %zmm188730; AVX512-FCP-NEXT: vpermt2d %zmm9, %zmm4, %zmm228731; AVX512-FCP-NEXT: vpermt2d %zmm0, %zmm4, %zmm148732; AVX512-FCP-NEXT: vmovdqa64 %zmm29, %zmm27 {%k1}8733; AVX512-FCP-NEXT: vmovdqa64 %zmm7, %zmm26 {%k1}8734; AVX512-FCP-NEXT: vmovdqa64 %zmm10, %zmm30 {%k1}8735; AVX512-FCP-NEXT: vmovdqa64 %zmm5, %zmm28 {%k1}8736; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} zmm4 = [0,1,2,3,4,5,6,7,8,9,10,11,12,20,25,30]8737; AVX512-FCP-NEXT: vpermt2d %zmm1, %zmm4, %zmm278738; AVX512-FCP-NEXT: vpermt2d %zmm19, %zmm4, %zmm268739; AVX512-FCP-NEXT: vpermt2d %zmm9, %zmm4, %zmm308740; AVX512-FCP-NEXT: vpermt2d %zmm0, %zmm4, %zmm288741; AVX512-FCP-NEXT: movb $56, %al8742; AVX512-FCP-NEXT: kmovw %eax, %k18743; AVX512-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload8744; AVX512-FCP-NEXT: vmovdqa64 %zmm4, %zmm13 {%k1}8745; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} zmm4 = [0,1,2,3,4,5,6,7,8,9,10,11,16,21,26,31]8746; AVX512-FCP-NEXT: vpermt2d %zmm1, %zmm4, %zmm138747; AVX512-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload8748; AVX512-FCP-NEXT: vmovdqa64 %zmm1, %zmm17 {%k1}8749; AVX512-FCP-NEXT: vpermt2d %zmm9, %zmm4, %zmm178750; AVX512-FCP-NEXT: vmovdqu64 (%rsp), %zmm1 # 64-byte Reload8751; AVX512-FCP-NEXT: vmovdqa64 %zmm1, %zmm21 {%k1}8752; AVX512-FCP-NEXT: vpermt2d %zmm0, %zmm4, %zmm218753; AVX512-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8754; AVX512-FCP-NEXT: vmovdqa64 %zmm0, %zmm11 {%k1}8755; AVX512-FCP-NEXT: vpermt2d %zmm19, %zmm4, %zmm118756; AVX512-FCP-NEXT: vmovdqa64 %zmm15, 192(%rsi)8757; AVX512-FCP-NEXT: vmovdqa64 %zmm2, 128(%rsi)8758; AVX512-FCP-NEXT: vmovdqa64 %zmm31, 64(%rsi)8759; AVX512-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8760; AVX512-FCP-NEXT: vmovaps %zmm0, (%rsi)8761; AVX512-FCP-NEXT: vmovdqa64 %zmm12, 192(%rdx)8762; AVX512-FCP-NEXT: vmovdqa64 %zmm24, (%rdx)8763; AVX512-FCP-NEXT: vmovdqa64 %zmm20, 64(%rdx)8764; AVX512-FCP-NEXT: vmovdqa64 %zmm3, 128(%rdx)8765; AVX512-FCP-NEXT: vmovdqa64 %zmm14, 192(%rcx)8766; AVX512-FCP-NEXT: vmovdqa64 %zmm23, (%rcx)8767; AVX512-FCP-NEXT: vmovdqa64 %zmm22, 64(%rcx)8768; AVX512-FCP-NEXT: vmovdqa64 %zmm18, 128(%rcx)8769; AVX512-FCP-NEXT: vmovdqa64 %zmm28, 192(%r8)8770; AVX512-FCP-NEXT: vmovdqa64 %zmm27, (%r8)8771; AVX512-FCP-NEXT: vmovdqa64 %zmm30, 64(%r8)8772; AVX512-FCP-NEXT: vmovdqa64 %zmm26, 128(%r8)8773; AVX512-FCP-NEXT: vmovdqa64 %zmm11, 128(%r9)8774; AVX512-FCP-NEXT: vmovdqa64 %zmm21, 192(%r9)8775; AVX512-FCP-NEXT: vmovdqa64 %zmm13, (%r9)8776; AVX512-FCP-NEXT: vmovdqa64 %zmm17, 64(%r9)8777; AVX512-FCP-NEXT: addq $584, %rsp # imm = 0x2488778; AVX512-FCP-NEXT: vzeroupper8779; AVX512-FCP-NEXT: retq8780;8781; AVX512DQ-LABEL: load_i32_stride5_vf64:8782; AVX512DQ: # %bb.0:8783; AVX512DQ-NEXT: subq $584, %rsp # imm = 0x2488784; AVX512DQ-NEXT: vmovdqa64 1152(%rdi), %zmm208785; AVX512DQ-NEXT: vmovdqa64 1088(%rdi), %zmm18786; AVX512DQ-NEXT: vmovdqa64 832(%rdi), %zmm178787; AVX512DQ-NEXT: vmovdqa64 768(%rdi), %zmm28788; AVX512DQ-NEXT: vmovdqa64 384(%rdi), %zmm118789; AVX512DQ-NEXT: vmovdqa64 512(%rdi), %zmm268790; AVX512DQ-NEXT: vmovdqa64 448(%rdi), %zmm08791; AVX512DQ-NEXT: vmovdqa64 (%rdi), %zmm138792; AVX512DQ-NEXT: vmovdqa64 64(%rdi), %zmm218793; AVX512DQ-NEXT: vmovdqa64 128(%rdi), %zmm38794; AVX512DQ-NEXT: vmovdqa64 192(%rdi), %zmm308795; AVX512DQ-NEXT: vbroadcasti64x4 {{.*#+}} zmm19 = [8,13,18,23,28,0,0,3,8,13,18,23,28,0,0,3]8796; AVX512DQ-NEXT: # zmm19 = mem[0,1,2,3,0,1,2,3]8797; AVX512DQ-NEXT: vmovdqa64 %zmm3, %zmm48798; AVX512DQ-NEXT: vpermt2d %zmm30, %zmm19, %zmm48799; AVX512DQ-NEXT: vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8800; AVX512DQ-NEXT: vpmovsxbd {{.*#+}} ymm15 = [0,5,10,15,20,25,30,0]8801; AVX512DQ-NEXT: vmovdqa64 %zmm13, %zmm48802; AVX512DQ-NEXT: vpermt2d %zmm21, %zmm15, %zmm48803; AVX512DQ-NEXT: vmovdqa64 %zmm0, %zmm58804; AVX512DQ-NEXT: vpermt2d %zmm26, %zmm19, %zmm58805; AVX512DQ-NEXT: vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8806; AVX512DQ-NEXT: vmovdqa64 %zmm2, %zmm58807; AVX512DQ-NEXT: vpermt2d %zmm17, %zmm19, %zmm58808; AVX512DQ-NEXT: vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8809; AVX512DQ-NEXT: vpermi2d %zmm20, %zmm1, %zmm198810; AVX512DQ-NEXT: vbroadcasti64x4 {{.*#+}} zmm16 = [9,14,19,24,29,0,0,4,9,14,19,24,29,0,0,4]8811; AVX512DQ-NEXT: # zmm16 = mem[0,1,2,3,0,1,2,3]8812; AVX512DQ-NEXT: vmovdqa64 %zmm3, %zmm58813; AVX512DQ-NEXT: vpermt2d %zmm30, %zmm16, %zmm58814; AVX512DQ-NEXT: vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8815; AVX512DQ-NEXT: vpmovsxbd {{.*#+}} ymm12 = [17,22,27,0,5,10,15,0]8816; AVX512DQ-NEXT: vmovdqa64 %zmm21, %zmm248817; AVX512DQ-NEXT: vpermt2d %zmm13, %zmm12, %zmm248818; AVX512DQ-NEXT: vmovdqa64 %zmm2, %zmm58819; AVX512DQ-NEXT: vpermt2d %zmm17, %zmm16, %zmm58820; AVX512DQ-NEXT: vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8821; AVX512DQ-NEXT: vmovdqa64 %zmm0, %zmm58822; AVX512DQ-NEXT: vpermt2d %zmm26, %zmm16, %zmm58823; AVX512DQ-NEXT: vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8824; AVX512DQ-NEXT: vpermi2d %zmm20, %zmm1, %zmm168825; AVX512DQ-NEXT: vpmovsxbd {{.*#+}} ymm25 = [2,7,12,17,22,27,0,0]8826; AVX512DQ-NEXT: vmovdqa64 %zmm13, %zmm58827; AVX512DQ-NEXT: vpermt2d %zmm21, %zmm25, %zmm58828; AVX512DQ-NEXT: vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8829; AVX512DQ-NEXT: vbroadcasti64x4 {{.*#+}} zmm14 = [10,15,20,25,30,0,0,5,10,15,20,25,30,0,0,5]8830; AVX512DQ-NEXT: # zmm14 = mem[0,1,2,3,0,1,2,3]8831; AVX512DQ-NEXT: vmovdqa64 %zmm3, %zmm238832; AVX512DQ-NEXT: vmovdqa64 %zmm3, %zmm58833; AVX512DQ-NEXT: vpermt2d %zmm30, %zmm14, %zmm238834; AVX512DQ-NEXT: vmovdqa64 %zmm2, %zmm188835; AVX512DQ-NEXT: vpermt2d %zmm17, %zmm14, %zmm188836; AVX512DQ-NEXT: vmovdqa64 %zmm0, %zmm38837; AVX512DQ-NEXT: vmovdqa64 %zmm0, %zmm228838; AVX512DQ-NEXT: vpermt2d %zmm26, %zmm14, %zmm228839; AVX512DQ-NEXT: vpermi2d %zmm20, %zmm1, %zmm148840; AVX512DQ-NEXT: vbroadcasti64x4 {{.*#+}} zmm28 = [27,0,5,10,15,0,17,22,27,0,5,10,15,0,17,22]8841; AVX512DQ-NEXT: # zmm28 = mem[0,1,2,3,0,1,2,3]8842; AVX512DQ-NEXT: vmovdqa64 %zmm30, %zmm278843; AVX512DQ-NEXT: vpermt2d %zmm5, %zmm28, %zmm278844; AVX512DQ-NEXT: vbroadcasti64x4 {{.*#+}} zmm0 = [12,17,22,27,0,0,2,7,12,17,22,27,0,0,2,7]8845; AVX512DQ-NEXT: # zmm0 = mem[0,1,2,3,0,1,2,3]8846; AVX512DQ-NEXT: vpermt2d %zmm30, %zmm0, %zmm58847; AVX512DQ-NEXT: vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8848; AVX512DQ-NEXT: vmovdqa64 %zmm26, %zmm308849; AVX512DQ-NEXT: vpermt2d %zmm3, %zmm28, %zmm308850; AVX512DQ-NEXT: vpermt2d %zmm26, %zmm0, %zmm38851; AVX512DQ-NEXT: vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8852; AVX512DQ-NEXT: vmovdqa64 %zmm17, %zmm268853; AVX512DQ-NEXT: vpermt2d %zmm2, %zmm28, %zmm268854; AVX512DQ-NEXT: vpermi2d %zmm1, %zmm20, %zmm288855; AVX512DQ-NEXT: vpermt2d %zmm20, %zmm0, %zmm18856; AVX512DQ-NEXT: vmovdqu64 %zmm1, (%rsp) # 64-byte Spill8857; AVX512DQ-NEXT: vpmovsxbd {{.*#+}} ymm5 = [3,8,13,18,23,28,0,0]8858; AVX512DQ-NEXT: vpermt2d %zmm17, %zmm0, %zmm28859; AVX512DQ-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8860; AVX512DQ-NEXT: vmovdqa64 %zmm13, %zmm298861; AVX512DQ-NEXT: vpermt2d %zmm21, %zmm5, %zmm298862; AVX512DQ-NEXT: vpmovsxbd {{.*#+}} ymm9 = [4,9,14,19,24,29,0,0]8863; AVX512DQ-NEXT: vpermt2d %zmm21, %zmm9, %zmm138864; AVX512DQ-NEXT: vmovdqa64 320(%rdi), %zmm178865; AVX512DQ-NEXT: vmovdqa64 %zmm17, %zmm318866; AVX512DQ-NEXT: vpermt2d %zmm11, %zmm15, %zmm318867; AVX512DQ-NEXT: vmovdqa64 %zmm11, %zmm208868; AVX512DQ-NEXT: vpermt2d %zmm17, %zmm12, %zmm208869; AVX512DQ-NEXT: vmovdqa64 %zmm17, %zmm88870; AVX512DQ-NEXT: vpermt2d %zmm11, %zmm25, %zmm88871; AVX512DQ-NEXT: vmovdqa64 %zmm17, %zmm108872; AVX512DQ-NEXT: vpermt2d %zmm11, %zmm5, %zmm108873; AVX512DQ-NEXT: vpermt2d %zmm11, %zmm9, %zmm178874; AVX512DQ-NEXT: vmovdqa64 704(%rdi), %zmm18875; AVX512DQ-NEXT: vmovdqa64 640(%rdi), %zmm118876; AVX512DQ-NEXT: vmovdqa64 %zmm11, %zmm28877; AVX512DQ-NEXT: vpermt2d %zmm1, %zmm15, %zmm28878; AVX512DQ-NEXT: vmovdqa64 1024(%rdi), %zmm08879; AVX512DQ-NEXT: vmovdqa64 960(%rdi), %zmm218880; AVX512DQ-NEXT: vpermi2d %zmm0, %zmm21, %zmm158881; AVX512DQ-NEXT: vmovdqa64 %zmm1, %zmm38882; AVX512DQ-NEXT: vpermt2d %zmm11, %zmm12, %zmm38883; AVX512DQ-NEXT: vpermi2d %zmm21, %zmm0, %zmm128884; AVX512DQ-NEXT: vmovdqa64 %zmm11, %zmm68885; AVX512DQ-NEXT: vpermt2d %zmm1, %zmm25, %zmm68886; AVX512DQ-NEXT: vpermi2d %zmm0, %zmm21, %zmm258887; AVX512DQ-NEXT: vmovdqa64 %zmm11, %zmm78888; AVX512DQ-NEXT: vpermt2d %zmm1, %zmm5, %zmm78889; AVX512DQ-NEXT: vpermi2d %zmm0, %zmm21, %zmm58890; AVX512DQ-NEXT: vpermt2d %zmm0, %zmm9, %zmm218891; AVX512DQ-NEXT: vpermt2d %zmm1, %zmm9, %zmm118892; AVX512DQ-NEXT: movw $8064, %ax # imm = 0x1F808893; AVX512DQ-NEXT: kmovw %eax, %k18894; AVX512DQ-NEXT: vmovdqa64 %zmm4, %zmm08895; AVX512DQ-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload8896; AVX512DQ-NEXT: vmovdqa32 %zmm1, %zmm0 {%k1}8897; AVX512DQ-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload8898; AVX512DQ-NEXT: vmovdqa32 %zmm1, %zmm31 {%k1}8899; AVX512DQ-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload8900; AVX512DQ-NEXT: vmovdqa32 %zmm1, %zmm2 {%k1}8901; AVX512DQ-NEXT: vmovdqa32 %zmm19, %zmm15 {%k1}8902; AVX512DQ-NEXT: vmovdqa64 256(%rdi), %zmm18903; AVX512DQ-NEXT: vpmovsxbd {{.*#+}} zmm4 = [0,1,2,3,4,5,6,7,8,9,10,11,12,17,22,27]8904; AVX512DQ-NEXT: vpermt2d %zmm1, %zmm4, %zmm08905; AVX512DQ-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8906; AVX512DQ-NEXT: vmovdqa64 576(%rdi), %zmm98907; AVX512DQ-NEXT: vpermt2d %zmm9, %zmm4, %zmm318908; AVX512DQ-NEXT: vmovdqa64 896(%rdi), %zmm198909; AVX512DQ-NEXT: vpermt2d %zmm19, %zmm4, %zmm28910; AVX512DQ-NEXT: vmovdqa64 1216(%rdi), %zmm08911; AVX512DQ-NEXT: vpermt2d %zmm0, %zmm4, %zmm158912; AVX512DQ-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload8913; AVX512DQ-NEXT: vmovdqa32 %zmm4, %zmm24 {%k1}8914; AVX512DQ-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload8915; AVX512DQ-NEXT: vmovdqa32 %zmm4, %zmm3 {%k1}8916; AVX512DQ-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload8917; AVX512DQ-NEXT: vmovdqa32 %zmm4, %zmm20 {%k1}8918; AVX512DQ-NEXT: vmovdqa32 %zmm16, %zmm12 {%k1}8919; AVX512DQ-NEXT: vpmovsxbd {{.*#+}} zmm4 = [0,1,2,3,4,5,6,7,8,9,10,11,12,18,23,28]8920; AVX512DQ-NEXT: vpermt2d %zmm1, %zmm4, %zmm248921; AVX512DQ-NEXT: vpermt2d %zmm19, %zmm4, %zmm38922; AVX512DQ-NEXT: vpermt2d %zmm9, %zmm4, %zmm208923; AVX512DQ-NEXT: vpermt2d %zmm0, %zmm4, %zmm128924; AVX512DQ-NEXT: movb $7, %al8925; AVX512DQ-NEXT: kmovw %eax, %k18926; AVX512DQ-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload8927; AVX512DQ-NEXT: vmovdqa64 %zmm4, %zmm23 {%k1}8928; AVX512DQ-NEXT: vmovdqa64 %zmm6, %zmm18 {%k1}8929; AVX512DQ-NEXT: vmovdqa64 %zmm8, %zmm22 {%k1}8930; AVX512DQ-NEXT: vmovdqa64 %zmm25, %zmm14 {%k1}8931; AVX512DQ-NEXT: vpmovsxbd {{.*#+}} zmm4 = [0,1,2,3,4,5,6,7,8,9,10,11,12,19,24,29]8932; AVX512DQ-NEXT: vpermt2d %zmm1, %zmm4, %zmm238933; AVX512DQ-NEXT: vpermt2d %zmm19, %zmm4, %zmm188934; AVX512DQ-NEXT: vpermt2d %zmm9, %zmm4, %zmm228935; AVX512DQ-NEXT: vpermt2d %zmm0, %zmm4, %zmm148936; AVX512DQ-NEXT: vmovdqa64 %zmm29, %zmm27 {%k1}8937; AVX512DQ-NEXT: vmovdqa64 %zmm7, %zmm26 {%k1}8938; AVX512DQ-NEXT: vmovdqa64 %zmm10, %zmm30 {%k1}8939; AVX512DQ-NEXT: vmovdqa64 %zmm5, %zmm28 {%k1}8940; AVX512DQ-NEXT: vpmovsxbd {{.*#+}} zmm4 = [0,1,2,3,4,5,6,7,8,9,10,11,12,20,25,30]8941; AVX512DQ-NEXT: vpermt2d %zmm1, %zmm4, %zmm278942; AVX512DQ-NEXT: vpermt2d %zmm19, %zmm4, %zmm268943; AVX512DQ-NEXT: vpermt2d %zmm9, %zmm4, %zmm308944; AVX512DQ-NEXT: vpermt2d %zmm0, %zmm4, %zmm288945; AVX512DQ-NEXT: movb $56, %al8946; AVX512DQ-NEXT: kmovw %eax, %k18947; AVX512DQ-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload8948; AVX512DQ-NEXT: vmovdqa64 %zmm4, %zmm13 {%k1}8949; AVX512DQ-NEXT: vpmovsxbd {{.*#+}} zmm4 = [0,1,2,3,4,5,6,7,8,9,10,11,16,21,26,31]8950; AVX512DQ-NEXT: vpermt2d %zmm1, %zmm4, %zmm138951; AVX512DQ-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload8952; AVX512DQ-NEXT: vmovdqa64 %zmm1, %zmm17 {%k1}8953; AVX512DQ-NEXT: vpermt2d %zmm9, %zmm4, %zmm178954; AVX512DQ-NEXT: vmovdqu64 (%rsp), %zmm1 # 64-byte Reload8955; AVX512DQ-NEXT: vmovdqa64 %zmm1, %zmm21 {%k1}8956; AVX512DQ-NEXT: vpermt2d %zmm0, %zmm4, %zmm218957; AVX512DQ-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8958; AVX512DQ-NEXT: vmovdqa64 %zmm0, %zmm11 {%k1}8959; AVX512DQ-NEXT: vpermt2d %zmm19, %zmm4, %zmm118960; AVX512DQ-NEXT: vmovdqa64 %zmm15, 192(%rsi)8961; AVX512DQ-NEXT: vmovdqa64 %zmm2, 128(%rsi)8962; AVX512DQ-NEXT: vmovdqa64 %zmm31, 64(%rsi)8963; AVX512DQ-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8964; AVX512DQ-NEXT: vmovaps %zmm0, (%rsi)8965; AVX512DQ-NEXT: vmovdqa64 %zmm12, 192(%rdx)8966; AVX512DQ-NEXT: vmovdqa64 %zmm24, (%rdx)8967; AVX512DQ-NEXT: vmovdqa64 %zmm20, 64(%rdx)8968; AVX512DQ-NEXT: vmovdqa64 %zmm3, 128(%rdx)8969; AVX512DQ-NEXT: vmovdqa64 %zmm14, 192(%rcx)8970; AVX512DQ-NEXT: vmovdqa64 %zmm23, (%rcx)8971; AVX512DQ-NEXT: vmovdqa64 %zmm22, 64(%rcx)8972; AVX512DQ-NEXT: vmovdqa64 %zmm18, 128(%rcx)8973; AVX512DQ-NEXT: vmovdqa64 %zmm28, 192(%r8)8974; AVX512DQ-NEXT: vmovdqa64 %zmm27, (%r8)8975; AVX512DQ-NEXT: vmovdqa64 %zmm30, 64(%r8)8976; AVX512DQ-NEXT: vmovdqa64 %zmm26, 128(%r8)8977; AVX512DQ-NEXT: vmovdqa64 %zmm11, 128(%r9)8978; AVX512DQ-NEXT: vmovdqa64 %zmm21, 192(%r9)8979; AVX512DQ-NEXT: vmovdqa64 %zmm13, (%r9)8980; AVX512DQ-NEXT: vmovdqa64 %zmm17, 64(%r9)8981; AVX512DQ-NEXT: addq $584, %rsp # imm = 0x2488982; AVX512DQ-NEXT: vzeroupper8983; AVX512DQ-NEXT: retq8984;8985; AVX512DQ-FCP-LABEL: load_i32_stride5_vf64:8986; AVX512DQ-FCP: # %bb.0:8987; AVX512DQ-FCP-NEXT: subq $584, %rsp # imm = 0x2488988; AVX512DQ-FCP-NEXT: vmovdqa64 1152(%rdi), %zmm208989; AVX512DQ-FCP-NEXT: vmovdqa64 1088(%rdi), %zmm18990; AVX512DQ-FCP-NEXT: vmovdqa64 832(%rdi), %zmm178991; AVX512DQ-FCP-NEXT: vmovdqa64 768(%rdi), %zmm28992; AVX512DQ-FCP-NEXT: vmovdqa64 384(%rdi), %zmm118993; AVX512DQ-FCP-NEXT: vmovdqa64 512(%rdi), %zmm268994; AVX512DQ-FCP-NEXT: vmovdqa64 448(%rdi), %zmm08995; AVX512DQ-FCP-NEXT: vmovdqa64 (%rdi), %zmm138996; AVX512DQ-FCP-NEXT: vmovdqa64 64(%rdi), %zmm218997; AVX512DQ-FCP-NEXT: vmovdqa64 128(%rdi), %zmm38998; AVX512DQ-FCP-NEXT: vmovdqa64 192(%rdi), %zmm308999; AVX512DQ-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm19 = [8,13,18,23,28,0,0,3,8,13,18,23,28,0,0,3]9000; AVX512DQ-FCP-NEXT: # zmm19 = mem[0,1,2,3,0,1,2,3]9001; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm3, %zmm49002; AVX512DQ-FCP-NEXT: vpermt2d %zmm30, %zmm19, %zmm49003; AVX512DQ-FCP-NEXT: vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill9004; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} ymm15 = [0,5,10,15,20,25,30,0]9005; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm13, %zmm49006; AVX512DQ-FCP-NEXT: vpermt2d %zmm21, %zmm15, %zmm49007; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm0, %zmm59008; AVX512DQ-FCP-NEXT: vpermt2d %zmm26, %zmm19, %zmm59009; AVX512DQ-FCP-NEXT: vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill9010; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm2, %zmm59011; AVX512DQ-FCP-NEXT: vpermt2d %zmm17, %zmm19, %zmm59012; AVX512DQ-FCP-NEXT: vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill9013; AVX512DQ-FCP-NEXT: vpermi2d %zmm20, %zmm1, %zmm199014; AVX512DQ-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm16 = [9,14,19,24,29,0,0,4,9,14,19,24,29,0,0,4]9015; AVX512DQ-FCP-NEXT: # zmm16 = mem[0,1,2,3,0,1,2,3]9016; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm3, %zmm59017; AVX512DQ-FCP-NEXT: vpermt2d %zmm30, %zmm16, %zmm59018; AVX512DQ-FCP-NEXT: vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill9019; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} ymm12 = [17,22,27,0,5,10,15,0]9020; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm21, %zmm249021; AVX512DQ-FCP-NEXT: vpermt2d %zmm13, %zmm12, %zmm249022; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm2, %zmm59023; AVX512DQ-FCP-NEXT: vpermt2d %zmm17, %zmm16, %zmm59024; AVX512DQ-FCP-NEXT: vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill9025; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm0, %zmm59026; AVX512DQ-FCP-NEXT: vpermt2d %zmm26, %zmm16, %zmm59027; AVX512DQ-FCP-NEXT: vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill9028; AVX512DQ-FCP-NEXT: vpermi2d %zmm20, %zmm1, %zmm169029; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} ymm25 = [2,7,12,17,22,27,0,0]9030; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm13, %zmm59031; AVX512DQ-FCP-NEXT: vpermt2d %zmm21, %zmm25, %zmm59032; AVX512DQ-FCP-NEXT: vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill9033; AVX512DQ-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm14 = [10,15,20,25,30,0,0,5,10,15,20,25,30,0,0,5]9034; AVX512DQ-FCP-NEXT: # zmm14 = mem[0,1,2,3,0,1,2,3]9035; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm3, %zmm239036; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm3, %zmm59037; AVX512DQ-FCP-NEXT: vpermt2d %zmm30, %zmm14, %zmm239038; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm2, %zmm189039; AVX512DQ-FCP-NEXT: vpermt2d %zmm17, %zmm14, %zmm189040; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm0, %zmm39041; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm0, %zmm229042; AVX512DQ-FCP-NEXT: vpermt2d %zmm26, %zmm14, %zmm229043; AVX512DQ-FCP-NEXT: vpermi2d %zmm20, %zmm1, %zmm149044; AVX512DQ-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm28 = [27,0,5,10,15,0,17,22,27,0,5,10,15,0,17,22]9045; AVX512DQ-FCP-NEXT: # zmm28 = mem[0,1,2,3,0,1,2,3]9046; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm30, %zmm279047; AVX512DQ-FCP-NEXT: vpermt2d %zmm5, %zmm28, %zmm279048; AVX512DQ-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm0 = [12,17,22,27,0,0,2,7,12,17,22,27,0,0,2,7]9049; AVX512DQ-FCP-NEXT: # zmm0 = mem[0,1,2,3,0,1,2,3]9050; AVX512DQ-FCP-NEXT: vpermt2d %zmm30, %zmm0, %zmm59051; AVX512DQ-FCP-NEXT: vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill9052; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm26, %zmm309053; AVX512DQ-FCP-NEXT: vpermt2d %zmm3, %zmm28, %zmm309054; AVX512DQ-FCP-NEXT: vpermt2d %zmm26, %zmm0, %zmm39055; AVX512DQ-FCP-NEXT: vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill9056; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm17, %zmm269057; AVX512DQ-FCP-NEXT: vpermt2d %zmm2, %zmm28, %zmm269058; AVX512DQ-FCP-NEXT: vpermi2d %zmm1, %zmm20, %zmm289059; AVX512DQ-FCP-NEXT: vpermt2d %zmm20, %zmm0, %zmm19060; AVX512DQ-FCP-NEXT: vmovdqu64 %zmm1, (%rsp) # 64-byte Spill9061; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} ymm5 = [3,8,13,18,23,28,0,0]9062; AVX512DQ-FCP-NEXT: vpermt2d %zmm17, %zmm0, %zmm29063; AVX512DQ-FCP-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill9064; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm13, %zmm299065; AVX512DQ-FCP-NEXT: vpermt2d %zmm21, %zmm5, %zmm299066; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} ymm9 = [4,9,14,19,24,29,0,0]9067; AVX512DQ-FCP-NEXT: vpermt2d %zmm21, %zmm9, %zmm139068; AVX512DQ-FCP-NEXT: vmovdqa64 320(%rdi), %zmm179069; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm17, %zmm319070; AVX512DQ-FCP-NEXT: vpermt2d %zmm11, %zmm15, %zmm319071; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm11, %zmm209072; AVX512DQ-FCP-NEXT: vpermt2d %zmm17, %zmm12, %zmm209073; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm17, %zmm89074; AVX512DQ-FCP-NEXT: vpermt2d %zmm11, %zmm25, %zmm89075; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm17, %zmm109076; AVX512DQ-FCP-NEXT: vpermt2d %zmm11, %zmm5, %zmm109077; AVX512DQ-FCP-NEXT: vpermt2d %zmm11, %zmm9, %zmm179078; AVX512DQ-FCP-NEXT: vmovdqa64 704(%rdi), %zmm19079; AVX512DQ-FCP-NEXT: vmovdqa64 640(%rdi), %zmm119080; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm11, %zmm29081; AVX512DQ-FCP-NEXT: vpermt2d %zmm1, %zmm15, %zmm29082; AVX512DQ-FCP-NEXT: vmovdqa64 1024(%rdi), %zmm09083; AVX512DQ-FCP-NEXT: vmovdqa64 960(%rdi), %zmm219084; AVX512DQ-FCP-NEXT: vpermi2d %zmm0, %zmm21, %zmm159085; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm1, %zmm39086; AVX512DQ-FCP-NEXT: vpermt2d %zmm11, %zmm12, %zmm39087; AVX512DQ-FCP-NEXT: vpermi2d %zmm21, %zmm0, %zmm129088; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm11, %zmm69089; AVX512DQ-FCP-NEXT: vpermt2d %zmm1, %zmm25, %zmm69090; AVX512DQ-FCP-NEXT: vpermi2d %zmm0, %zmm21, %zmm259091; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm11, %zmm79092; AVX512DQ-FCP-NEXT: vpermt2d %zmm1, %zmm5, %zmm79093; AVX512DQ-FCP-NEXT: vpermi2d %zmm0, %zmm21, %zmm59094; AVX512DQ-FCP-NEXT: vpermt2d %zmm0, %zmm9, %zmm219095; AVX512DQ-FCP-NEXT: vpermt2d %zmm1, %zmm9, %zmm119096; AVX512DQ-FCP-NEXT: movw $8064, %ax # imm = 0x1F809097; AVX512DQ-FCP-NEXT: kmovw %eax, %k19098; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm4, %zmm09099; AVX512DQ-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload9100; AVX512DQ-FCP-NEXT: vmovdqa32 %zmm1, %zmm0 {%k1}9101; AVX512DQ-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload9102; AVX512DQ-FCP-NEXT: vmovdqa32 %zmm1, %zmm31 {%k1}9103; AVX512DQ-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload9104; AVX512DQ-FCP-NEXT: vmovdqa32 %zmm1, %zmm2 {%k1}9105; AVX512DQ-FCP-NEXT: vmovdqa32 %zmm19, %zmm15 {%k1}9106; AVX512DQ-FCP-NEXT: vmovdqa64 256(%rdi), %zmm19107; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} zmm4 = [0,1,2,3,4,5,6,7,8,9,10,11,12,17,22,27]9108; AVX512DQ-FCP-NEXT: vpermt2d %zmm1, %zmm4, %zmm09109; AVX512DQ-FCP-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill9110; AVX512DQ-FCP-NEXT: vmovdqa64 576(%rdi), %zmm99111; AVX512DQ-FCP-NEXT: vpermt2d %zmm9, %zmm4, %zmm319112; AVX512DQ-FCP-NEXT: vmovdqa64 896(%rdi), %zmm199113; AVX512DQ-FCP-NEXT: vpermt2d %zmm19, %zmm4, %zmm29114; AVX512DQ-FCP-NEXT: vmovdqa64 1216(%rdi), %zmm09115; AVX512DQ-FCP-NEXT: vpermt2d %zmm0, %zmm4, %zmm159116; AVX512DQ-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload9117; AVX512DQ-FCP-NEXT: vmovdqa32 %zmm4, %zmm24 {%k1}9118; AVX512DQ-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload9119; AVX512DQ-FCP-NEXT: vmovdqa32 %zmm4, %zmm3 {%k1}9120; AVX512DQ-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload9121; AVX512DQ-FCP-NEXT: vmovdqa32 %zmm4, %zmm20 {%k1}9122; AVX512DQ-FCP-NEXT: vmovdqa32 %zmm16, %zmm12 {%k1}9123; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} zmm4 = [0,1,2,3,4,5,6,7,8,9,10,11,12,18,23,28]9124; AVX512DQ-FCP-NEXT: vpermt2d %zmm1, %zmm4, %zmm249125; AVX512DQ-FCP-NEXT: vpermt2d %zmm19, %zmm4, %zmm39126; AVX512DQ-FCP-NEXT: vpermt2d %zmm9, %zmm4, %zmm209127; AVX512DQ-FCP-NEXT: vpermt2d %zmm0, %zmm4, %zmm129128; AVX512DQ-FCP-NEXT: movb $7, %al9129; AVX512DQ-FCP-NEXT: kmovw %eax, %k19130; AVX512DQ-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload9131; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm4, %zmm23 {%k1}9132; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm6, %zmm18 {%k1}9133; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm8, %zmm22 {%k1}9134; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm25, %zmm14 {%k1}9135; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} zmm4 = [0,1,2,3,4,5,6,7,8,9,10,11,12,19,24,29]9136; AVX512DQ-FCP-NEXT: vpermt2d %zmm1, %zmm4, %zmm239137; AVX512DQ-FCP-NEXT: vpermt2d %zmm19, %zmm4, %zmm189138; AVX512DQ-FCP-NEXT: vpermt2d %zmm9, %zmm4, %zmm229139; AVX512DQ-FCP-NEXT: vpermt2d %zmm0, %zmm4, %zmm149140; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm29, %zmm27 {%k1}9141; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm7, %zmm26 {%k1}9142; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm10, %zmm30 {%k1}9143; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm5, %zmm28 {%k1}9144; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} zmm4 = [0,1,2,3,4,5,6,7,8,9,10,11,12,20,25,30]9145; AVX512DQ-FCP-NEXT: vpermt2d %zmm1, %zmm4, %zmm279146; AVX512DQ-FCP-NEXT: vpermt2d %zmm19, %zmm4, %zmm269147; AVX512DQ-FCP-NEXT: vpermt2d %zmm9, %zmm4, %zmm309148; AVX512DQ-FCP-NEXT: vpermt2d %zmm0, %zmm4, %zmm289149; AVX512DQ-FCP-NEXT: movb $56, %al9150; AVX512DQ-FCP-NEXT: kmovw %eax, %k19151; AVX512DQ-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload9152; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm4, %zmm13 {%k1}9153; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} zmm4 = [0,1,2,3,4,5,6,7,8,9,10,11,16,21,26,31]9154; AVX512DQ-FCP-NEXT: vpermt2d %zmm1, %zmm4, %zmm139155; AVX512DQ-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload9156; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm1, %zmm17 {%k1}9157; AVX512DQ-FCP-NEXT: vpermt2d %zmm9, %zmm4, %zmm179158; AVX512DQ-FCP-NEXT: vmovdqu64 (%rsp), %zmm1 # 64-byte Reload9159; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm1, %zmm21 {%k1}9160; AVX512DQ-FCP-NEXT: vpermt2d %zmm0, %zmm4, %zmm219161; AVX512DQ-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload9162; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm0, %zmm11 {%k1}9163; AVX512DQ-FCP-NEXT: vpermt2d %zmm19, %zmm4, %zmm119164; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm15, 192(%rsi)9165; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm2, 128(%rsi)9166; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm31, 64(%rsi)9167; AVX512DQ-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload9168; AVX512DQ-FCP-NEXT: vmovaps %zmm0, (%rsi)9169; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm12, 192(%rdx)9170; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm24, (%rdx)9171; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm20, 64(%rdx)9172; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm3, 128(%rdx)9173; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm14, 192(%rcx)9174; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm23, (%rcx)9175; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm22, 64(%rcx)9176; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm18, 128(%rcx)9177; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm28, 192(%r8)9178; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm27, (%r8)9179; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm30, 64(%r8)9180; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm26, 128(%r8)9181; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm11, 128(%r9)9182; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm21, 192(%r9)9183; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm13, (%r9)9184; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm17, 64(%r9)9185; AVX512DQ-FCP-NEXT: addq $584, %rsp # imm = 0x2489186; AVX512DQ-FCP-NEXT: vzeroupper9187; AVX512DQ-FCP-NEXT: retq9188;9189; AVX512BW-LABEL: load_i32_stride5_vf64:9190; AVX512BW: # %bb.0:9191; AVX512BW-NEXT: subq $584, %rsp # imm = 0x2489192; AVX512BW-NEXT: vmovdqa64 1152(%rdi), %zmm209193; AVX512BW-NEXT: vmovdqa64 1088(%rdi), %zmm19194; AVX512BW-NEXT: vmovdqa64 832(%rdi), %zmm179195; AVX512BW-NEXT: vmovdqa64 768(%rdi), %zmm29196; AVX512BW-NEXT: vmovdqa64 384(%rdi), %zmm119197; AVX512BW-NEXT: vmovdqa64 512(%rdi), %zmm269198; AVX512BW-NEXT: vmovdqa64 448(%rdi), %zmm09199; AVX512BW-NEXT: vmovdqa64 (%rdi), %zmm139200; AVX512BW-NEXT: vmovdqa64 64(%rdi), %zmm219201; AVX512BW-NEXT: vmovdqa64 128(%rdi), %zmm39202; AVX512BW-NEXT: vmovdqa64 192(%rdi), %zmm309203; AVX512BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm19 = [8,13,18,23,28,0,0,3,8,13,18,23,28,0,0,3]9204; AVX512BW-NEXT: # zmm19 = mem[0,1,2,3,0,1,2,3]9205; AVX512BW-NEXT: vmovdqa64 %zmm3, %zmm49206; AVX512BW-NEXT: vpermt2d %zmm30, %zmm19, %zmm49207; AVX512BW-NEXT: vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill9208; AVX512BW-NEXT: vpmovsxbd {{.*#+}} ymm15 = [0,5,10,15,20,25,30,0]9209; AVX512BW-NEXT: vmovdqa64 %zmm13, %zmm49210; AVX512BW-NEXT: vpermt2d %zmm21, %zmm15, %zmm49211; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm59212; AVX512BW-NEXT: vpermt2d %zmm26, %zmm19, %zmm59213; AVX512BW-NEXT: vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill9214; AVX512BW-NEXT: vmovdqa64 %zmm2, %zmm59215; AVX512BW-NEXT: vpermt2d %zmm17, %zmm19, %zmm59216; AVX512BW-NEXT: vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill9217; AVX512BW-NEXT: vpermi2d %zmm20, %zmm1, %zmm199218; AVX512BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm16 = [9,14,19,24,29,0,0,4,9,14,19,24,29,0,0,4]9219; AVX512BW-NEXT: # zmm16 = mem[0,1,2,3,0,1,2,3]9220; AVX512BW-NEXT: vmovdqa64 %zmm3, %zmm59221; AVX512BW-NEXT: vpermt2d %zmm30, %zmm16, %zmm59222; AVX512BW-NEXT: vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill9223; AVX512BW-NEXT: vpmovsxbd {{.*#+}} ymm12 = [17,22,27,0,5,10,15,0]9224; AVX512BW-NEXT: vmovdqa64 %zmm21, %zmm249225; AVX512BW-NEXT: vpermt2d %zmm13, %zmm12, %zmm249226; AVX512BW-NEXT: vmovdqa64 %zmm2, %zmm59227; AVX512BW-NEXT: vpermt2d %zmm17, %zmm16, %zmm59228; AVX512BW-NEXT: vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill9229; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm59230; AVX512BW-NEXT: vpermt2d %zmm26, %zmm16, %zmm59231; AVX512BW-NEXT: vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill9232; AVX512BW-NEXT: vpermi2d %zmm20, %zmm1, %zmm169233; AVX512BW-NEXT: vpmovsxbd {{.*#+}} ymm25 = [2,7,12,17,22,27,0,0]9234; AVX512BW-NEXT: vmovdqa64 %zmm13, %zmm59235; AVX512BW-NEXT: vpermt2d %zmm21, %zmm25, %zmm59236; AVX512BW-NEXT: vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill9237; AVX512BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm14 = [10,15,20,25,30,0,0,5,10,15,20,25,30,0,0,5]9238; AVX512BW-NEXT: # zmm14 = mem[0,1,2,3,0,1,2,3]9239; AVX512BW-NEXT: vmovdqa64 %zmm3, %zmm239240; AVX512BW-NEXT: vmovdqa64 %zmm3, %zmm59241; AVX512BW-NEXT: vpermt2d %zmm30, %zmm14, %zmm239242; AVX512BW-NEXT: vmovdqa64 %zmm2, %zmm189243; AVX512BW-NEXT: vpermt2d %zmm17, %zmm14, %zmm189244; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm39245; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm229246; AVX512BW-NEXT: vpermt2d %zmm26, %zmm14, %zmm229247; AVX512BW-NEXT: vpermi2d %zmm20, %zmm1, %zmm149248; AVX512BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm28 = [27,0,5,10,15,0,17,22,27,0,5,10,15,0,17,22]9249; AVX512BW-NEXT: # zmm28 = mem[0,1,2,3,0,1,2,3]9250; AVX512BW-NEXT: vmovdqa64 %zmm30, %zmm279251; AVX512BW-NEXT: vpermt2d %zmm5, %zmm28, %zmm279252; AVX512BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm0 = [12,17,22,27,0,0,2,7,12,17,22,27,0,0,2,7]9253; AVX512BW-NEXT: # zmm0 = mem[0,1,2,3,0,1,2,3]9254; AVX512BW-NEXT: vpermt2d %zmm30, %zmm0, %zmm59255; AVX512BW-NEXT: vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill9256; AVX512BW-NEXT: vmovdqa64 %zmm26, %zmm309257; AVX512BW-NEXT: vpermt2d %zmm3, %zmm28, %zmm309258; AVX512BW-NEXT: vpermt2d %zmm26, %zmm0, %zmm39259; AVX512BW-NEXT: vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill9260; AVX512BW-NEXT: vmovdqa64 %zmm17, %zmm269261; AVX512BW-NEXT: vpermt2d %zmm2, %zmm28, %zmm269262; AVX512BW-NEXT: vpermi2d %zmm1, %zmm20, %zmm289263; AVX512BW-NEXT: vpermt2d %zmm20, %zmm0, %zmm19264; AVX512BW-NEXT: vmovdqu64 %zmm1, (%rsp) # 64-byte Spill9265; AVX512BW-NEXT: vpmovsxbd {{.*#+}} ymm5 = [3,8,13,18,23,28,0,0]9266; AVX512BW-NEXT: vpermt2d %zmm17, %zmm0, %zmm29267; AVX512BW-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill9268; AVX512BW-NEXT: vmovdqa64 %zmm13, %zmm299269; AVX512BW-NEXT: vpermt2d %zmm21, %zmm5, %zmm299270; AVX512BW-NEXT: vpmovsxbd {{.*#+}} ymm9 = [4,9,14,19,24,29,0,0]9271; AVX512BW-NEXT: vpermt2d %zmm21, %zmm9, %zmm139272; AVX512BW-NEXT: vmovdqa64 320(%rdi), %zmm179273; AVX512BW-NEXT: vmovdqa64 %zmm17, %zmm319274; AVX512BW-NEXT: vpermt2d %zmm11, %zmm15, %zmm319275; AVX512BW-NEXT: vmovdqa64 %zmm11, %zmm209276; AVX512BW-NEXT: vpermt2d %zmm17, %zmm12, %zmm209277; AVX512BW-NEXT: vmovdqa64 %zmm17, %zmm89278; AVX512BW-NEXT: vpermt2d %zmm11, %zmm25, %zmm89279; AVX512BW-NEXT: vmovdqa64 %zmm17, %zmm109280; AVX512BW-NEXT: vpermt2d %zmm11, %zmm5, %zmm109281; AVX512BW-NEXT: vpermt2d %zmm11, %zmm9, %zmm179282; AVX512BW-NEXT: vmovdqa64 704(%rdi), %zmm19283; AVX512BW-NEXT: vmovdqa64 640(%rdi), %zmm119284; AVX512BW-NEXT: vmovdqa64 %zmm11, %zmm29285; AVX512BW-NEXT: vpermt2d %zmm1, %zmm15, %zmm29286; AVX512BW-NEXT: vmovdqa64 1024(%rdi), %zmm09287; AVX512BW-NEXT: vmovdqa64 960(%rdi), %zmm219288; AVX512BW-NEXT: vpermi2d %zmm0, %zmm21, %zmm159289; AVX512BW-NEXT: vmovdqa64 %zmm1, %zmm39290; AVX512BW-NEXT: vpermt2d %zmm11, %zmm12, %zmm39291; AVX512BW-NEXT: vpermi2d %zmm21, %zmm0, %zmm129292; AVX512BW-NEXT: vmovdqa64 %zmm11, %zmm69293; AVX512BW-NEXT: vpermt2d %zmm1, %zmm25, %zmm69294; AVX512BW-NEXT: vpermi2d %zmm0, %zmm21, %zmm259295; AVX512BW-NEXT: vmovdqa64 %zmm11, %zmm79296; AVX512BW-NEXT: vpermt2d %zmm1, %zmm5, %zmm79297; AVX512BW-NEXT: vpermi2d %zmm0, %zmm21, %zmm59298; AVX512BW-NEXT: vpermt2d %zmm0, %zmm9, %zmm219299; AVX512BW-NEXT: vpermt2d %zmm1, %zmm9, %zmm119300; AVX512BW-NEXT: movw $8064, %ax # imm = 0x1F809301; AVX512BW-NEXT: kmovd %eax, %k19302; AVX512BW-NEXT: vmovdqa64 %zmm4, %zmm09303; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload9304; AVX512BW-NEXT: vmovdqa32 %zmm1, %zmm0 {%k1}9305; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload9306; AVX512BW-NEXT: vmovdqa32 %zmm1, %zmm31 {%k1}9307; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload9308; AVX512BW-NEXT: vmovdqa32 %zmm1, %zmm2 {%k1}9309; AVX512BW-NEXT: vmovdqa32 %zmm19, %zmm15 {%k1}9310; AVX512BW-NEXT: vmovdqa64 256(%rdi), %zmm19311; AVX512BW-NEXT: vpmovsxbd {{.*#+}} zmm4 = [0,1,2,3,4,5,6,7,8,9,10,11,12,17,22,27]9312; AVX512BW-NEXT: vpermt2d %zmm1, %zmm4, %zmm09313; AVX512BW-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill9314; AVX512BW-NEXT: vmovdqa64 576(%rdi), %zmm99315; AVX512BW-NEXT: vpermt2d %zmm9, %zmm4, %zmm319316; AVX512BW-NEXT: vmovdqa64 896(%rdi), %zmm199317; AVX512BW-NEXT: vpermt2d %zmm19, %zmm4, %zmm29318; AVX512BW-NEXT: vmovdqa64 1216(%rdi), %zmm09319; AVX512BW-NEXT: vpermt2d %zmm0, %zmm4, %zmm159320; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload9321; AVX512BW-NEXT: vmovdqa32 %zmm4, %zmm24 {%k1}9322; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload9323; AVX512BW-NEXT: vmovdqa32 %zmm4, %zmm3 {%k1}9324; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload9325; AVX512BW-NEXT: vmovdqa32 %zmm4, %zmm20 {%k1}9326; AVX512BW-NEXT: vmovdqa32 %zmm16, %zmm12 {%k1}9327; AVX512BW-NEXT: vpmovsxbd {{.*#+}} zmm4 = [0,1,2,3,4,5,6,7,8,9,10,11,12,18,23,28]9328; AVX512BW-NEXT: vpermt2d %zmm1, %zmm4, %zmm249329; AVX512BW-NEXT: vpermt2d %zmm19, %zmm4, %zmm39330; AVX512BW-NEXT: vpermt2d %zmm9, %zmm4, %zmm209331; AVX512BW-NEXT: vpermt2d %zmm0, %zmm4, %zmm129332; AVX512BW-NEXT: movb $7, %al9333; AVX512BW-NEXT: kmovd %eax, %k19334; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload9335; AVX512BW-NEXT: vmovdqa64 %zmm4, %zmm23 {%k1}9336; AVX512BW-NEXT: vmovdqa64 %zmm6, %zmm18 {%k1}9337; AVX512BW-NEXT: vmovdqa64 %zmm8, %zmm22 {%k1}9338; AVX512BW-NEXT: vmovdqa64 %zmm25, %zmm14 {%k1}9339; AVX512BW-NEXT: vpmovsxbd {{.*#+}} zmm4 = [0,1,2,3,4,5,6,7,8,9,10,11,12,19,24,29]9340; AVX512BW-NEXT: vpermt2d %zmm1, %zmm4, %zmm239341; AVX512BW-NEXT: vpermt2d %zmm19, %zmm4, %zmm189342; AVX512BW-NEXT: vpermt2d %zmm9, %zmm4, %zmm229343; AVX512BW-NEXT: vpermt2d %zmm0, %zmm4, %zmm149344; AVX512BW-NEXT: vmovdqa64 %zmm29, %zmm27 {%k1}9345; AVX512BW-NEXT: vmovdqa64 %zmm7, %zmm26 {%k1}9346; AVX512BW-NEXT: vmovdqa64 %zmm10, %zmm30 {%k1}9347; AVX512BW-NEXT: vmovdqa64 %zmm5, %zmm28 {%k1}9348; AVX512BW-NEXT: vpmovsxbd {{.*#+}} zmm4 = [0,1,2,3,4,5,6,7,8,9,10,11,12,20,25,30]9349; AVX512BW-NEXT: vpermt2d %zmm1, %zmm4, %zmm279350; AVX512BW-NEXT: vpermt2d %zmm19, %zmm4, %zmm269351; AVX512BW-NEXT: vpermt2d %zmm9, %zmm4, %zmm309352; AVX512BW-NEXT: vpermt2d %zmm0, %zmm4, %zmm289353; AVX512BW-NEXT: movb $56, %al9354; AVX512BW-NEXT: kmovd %eax, %k19355; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload9356; AVX512BW-NEXT: vmovdqa64 %zmm4, %zmm13 {%k1}9357; AVX512BW-NEXT: vpmovsxbd {{.*#+}} zmm4 = [0,1,2,3,4,5,6,7,8,9,10,11,16,21,26,31]9358; AVX512BW-NEXT: vpermt2d %zmm1, %zmm4, %zmm139359; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload9360; AVX512BW-NEXT: vmovdqa64 %zmm1, %zmm17 {%k1}9361; AVX512BW-NEXT: vpermt2d %zmm9, %zmm4, %zmm179362; AVX512BW-NEXT: vmovdqu64 (%rsp), %zmm1 # 64-byte Reload9363; AVX512BW-NEXT: vmovdqa64 %zmm1, %zmm21 {%k1}9364; AVX512BW-NEXT: vpermt2d %zmm0, %zmm4, %zmm219365; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload9366; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm11 {%k1}9367; AVX512BW-NEXT: vpermt2d %zmm19, %zmm4, %zmm119368; AVX512BW-NEXT: vmovdqa64 %zmm15, 192(%rsi)9369; AVX512BW-NEXT: vmovdqa64 %zmm2, 128(%rsi)9370; AVX512BW-NEXT: vmovdqa64 %zmm31, 64(%rsi)9371; AVX512BW-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload9372; AVX512BW-NEXT: vmovaps %zmm0, (%rsi)9373; AVX512BW-NEXT: vmovdqa64 %zmm12, 192(%rdx)9374; AVX512BW-NEXT: vmovdqa64 %zmm24, (%rdx)9375; AVX512BW-NEXT: vmovdqa64 %zmm20, 64(%rdx)9376; AVX512BW-NEXT: vmovdqa64 %zmm3, 128(%rdx)9377; AVX512BW-NEXT: vmovdqa64 %zmm14, 192(%rcx)9378; AVX512BW-NEXT: vmovdqa64 %zmm23, (%rcx)9379; AVX512BW-NEXT: vmovdqa64 %zmm22, 64(%rcx)9380; AVX512BW-NEXT: vmovdqa64 %zmm18, 128(%rcx)9381; AVX512BW-NEXT: vmovdqa64 %zmm28, 192(%r8)9382; AVX512BW-NEXT: vmovdqa64 %zmm27, (%r8)9383; AVX512BW-NEXT: vmovdqa64 %zmm30, 64(%r8)9384; AVX512BW-NEXT: vmovdqa64 %zmm26, 128(%r8)9385; AVX512BW-NEXT: vmovdqa64 %zmm11, 128(%r9)9386; AVX512BW-NEXT: vmovdqa64 %zmm21, 192(%r9)9387; AVX512BW-NEXT: vmovdqa64 %zmm13, (%r9)9388; AVX512BW-NEXT: vmovdqa64 %zmm17, 64(%r9)9389; AVX512BW-NEXT: addq $584, %rsp # imm = 0x2489390; AVX512BW-NEXT: vzeroupper9391; AVX512BW-NEXT: retq9392;9393; AVX512BW-FCP-LABEL: load_i32_stride5_vf64:9394; AVX512BW-FCP: # %bb.0:9395; AVX512BW-FCP-NEXT: subq $584, %rsp # imm = 0x2489396; AVX512BW-FCP-NEXT: vmovdqa64 1152(%rdi), %zmm209397; AVX512BW-FCP-NEXT: vmovdqa64 1088(%rdi), %zmm19398; AVX512BW-FCP-NEXT: vmovdqa64 832(%rdi), %zmm179399; AVX512BW-FCP-NEXT: vmovdqa64 768(%rdi), %zmm29400; AVX512BW-FCP-NEXT: vmovdqa64 384(%rdi), %zmm119401; AVX512BW-FCP-NEXT: vmovdqa64 512(%rdi), %zmm269402; AVX512BW-FCP-NEXT: vmovdqa64 448(%rdi), %zmm09403; AVX512BW-FCP-NEXT: vmovdqa64 (%rdi), %zmm139404; AVX512BW-FCP-NEXT: vmovdqa64 64(%rdi), %zmm219405; AVX512BW-FCP-NEXT: vmovdqa64 128(%rdi), %zmm39406; AVX512BW-FCP-NEXT: vmovdqa64 192(%rdi), %zmm309407; AVX512BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm19 = [8,13,18,23,28,0,0,3,8,13,18,23,28,0,0,3]9408; AVX512BW-FCP-NEXT: # zmm19 = mem[0,1,2,3,0,1,2,3]9409; AVX512BW-FCP-NEXT: vmovdqa64 %zmm3, %zmm49410; AVX512BW-FCP-NEXT: vpermt2d %zmm30, %zmm19, %zmm49411; AVX512BW-FCP-NEXT: vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill9412; AVX512BW-FCP-NEXT: vpmovsxbd {{.*#+}} ymm15 = [0,5,10,15,20,25,30,0]9413; AVX512BW-FCP-NEXT: vmovdqa64 %zmm13, %zmm49414; AVX512BW-FCP-NEXT: vpermt2d %zmm21, %zmm15, %zmm49415; AVX512BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm59416; AVX512BW-FCP-NEXT: vpermt2d %zmm26, %zmm19, %zmm59417; AVX512BW-FCP-NEXT: vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill9418; AVX512BW-FCP-NEXT: vmovdqa64 %zmm2, %zmm59419; AVX512BW-FCP-NEXT: vpermt2d %zmm17, %zmm19, %zmm59420; AVX512BW-FCP-NEXT: vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill9421; AVX512BW-FCP-NEXT: vpermi2d %zmm20, %zmm1, %zmm199422; AVX512BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm16 = [9,14,19,24,29,0,0,4,9,14,19,24,29,0,0,4]9423; AVX512BW-FCP-NEXT: # zmm16 = mem[0,1,2,3,0,1,2,3]9424; AVX512BW-FCP-NEXT: vmovdqa64 %zmm3, %zmm59425; AVX512BW-FCP-NEXT: vpermt2d %zmm30, %zmm16, %zmm59426; AVX512BW-FCP-NEXT: vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill9427; AVX512BW-FCP-NEXT: vpmovsxbd {{.*#+}} ymm12 = [17,22,27,0,5,10,15,0]9428; AVX512BW-FCP-NEXT: vmovdqa64 %zmm21, %zmm249429; AVX512BW-FCP-NEXT: vpermt2d %zmm13, %zmm12, %zmm249430; AVX512BW-FCP-NEXT: vmovdqa64 %zmm2, %zmm59431; AVX512BW-FCP-NEXT: vpermt2d %zmm17, %zmm16, %zmm59432; AVX512BW-FCP-NEXT: vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill9433; AVX512BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm59434; AVX512BW-FCP-NEXT: vpermt2d %zmm26, %zmm16, %zmm59435; AVX512BW-FCP-NEXT: vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill9436; AVX512BW-FCP-NEXT: vpermi2d %zmm20, %zmm1, %zmm169437; AVX512BW-FCP-NEXT: vpmovsxbd {{.*#+}} ymm25 = [2,7,12,17,22,27,0,0]9438; AVX512BW-FCP-NEXT: vmovdqa64 %zmm13, %zmm59439; AVX512BW-FCP-NEXT: vpermt2d %zmm21, %zmm25, %zmm59440; AVX512BW-FCP-NEXT: vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill9441; AVX512BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm14 = [10,15,20,25,30,0,0,5,10,15,20,25,30,0,0,5]9442; AVX512BW-FCP-NEXT: # zmm14 = mem[0,1,2,3,0,1,2,3]9443; AVX512BW-FCP-NEXT: vmovdqa64 %zmm3, %zmm239444; AVX512BW-FCP-NEXT: vmovdqa64 %zmm3, %zmm59445; AVX512BW-FCP-NEXT: vpermt2d %zmm30, %zmm14, %zmm239446; AVX512BW-FCP-NEXT: vmovdqa64 %zmm2, %zmm189447; AVX512BW-FCP-NEXT: vpermt2d %zmm17, %zmm14, %zmm189448; AVX512BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm39449; AVX512BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm229450; AVX512BW-FCP-NEXT: vpermt2d %zmm26, %zmm14, %zmm229451; AVX512BW-FCP-NEXT: vpermi2d %zmm20, %zmm1, %zmm149452; AVX512BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm28 = [27,0,5,10,15,0,17,22,27,0,5,10,15,0,17,22]9453; AVX512BW-FCP-NEXT: # zmm28 = mem[0,1,2,3,0,1,2,3]9454; AVX512BW-FCP-NEXT: vmovdqa64 %zmm30, %zmm279455; AVX512BW-FCP-NEXT: vpermt2d %zmm5, %zmm28, %zmm279456; AVX512BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm0 = [12,17,22,27,0,0,2,7,12,17,22,27,0,0,2,7]9457; AVX512BW-FCP-NEXT: # zmm0 = mem[0,1,2,3,0,1,2,3]9458; AVX512BW-FCP-NEXT: vpermt2d %zmm30, %zmm0, %zmm59459; AVX512BW-FCP-NEXT: vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill9460; AVX512BW-FCP-NEXT: vmovdqa64 %zmm26, %zmm309461; AVX512BW-FCP-NEXT: vpermt2d %zmm3, %zmm28, %zmm309462; AVX512BW-FCP-NEXT: vpermt2d %zmm26, %zmm0, %zmm39463; AVX512BW-FCP-NEXT: vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill9464; AVX512BW-FCP-NEXT: vmovdqa64 %zmm17, %zmm269465; AVX512BW-FCP-NEXT: vpermt2d %zmm2, %zmm28, %zmm269466; AVX512BW-FCP-NEXT: vpermi2d %zmm1, %zmm20, %zmm289467; AVX512BW-FCP-NEXT: vpermt2d %zmm20, %zmm0, %zmm19468; AVX512BW-FCP-NEXT: vmovdqu64 %zmm1, (%rsp) # 64-byte Spill9469; AVX512BW-FCP-NEXT: vpmovsxbd {{.*#+}} ymm5 = [3,8,13,18,23,28,0,0]9470; AVX512BW-FCP-NEXT: vpermt2d %zmm17, %zmm0, %zmm29471; AVX512BW-FCP-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill9472; AVX512BW-FCP-NEXT: vmovdqa64 %zmm13, %zmm299473; AVX512BW-FCP-NEXT: vpermt2d %zmm21, %zmm5, %zmm299474; AVX512BW-FCP-NEXT: vpmovsxbd {{.*#+}} ymm9 = [4,9,14,19,24,29,0,0]9475; AVX512BW-FCP-NEXT: vpermt2d %zmm21, %zmm9, %zmm139476; AVX512BW-FCP-NEXT: vmovdqa64 320(%rdi), %zmm179477; AVX512BW-FCP-NEXT: vmovdqa64 %zmm17, %zmm319478; AVX512BW-FCP-NEXT: vpermt2d %zmm11, %zmm15, %zmm319479; AVX512BW-FCP-NEXT: vmovdqa64 %zmm11, %zmm209480; AVX512BW-FCP-NEXT: vpermt2d %zmm17, %zmm12, %zmm209481; AVX512BW-FCP-NEXT: vmovdqa64 %zmm17, %zmm89482; AVX512BW-FCP-NEXT: vpermt2d %zmm11, %zmm25, %zmm89483; AVX512BW-FCP-NEXT: vmovdqa64 %zmm17, %zmm109484; AVX512BW-FCP-NEXT: vpermt2d %zmm11, %zmm5, %zmm109485; AVX512BW-FCP-NEXT: vpermt2d %zmm11, %zmm9, %zmm179486; AVX512BW-FCP-NEXT: vmovdqa64 704(%rdi), %zmm19487; AVX512BW-FCP-NEXT: vmovdqa64 640(%rdi), %zmm119488; AVX512BW-FCP-NEXT: vmovdqa64 %zmm11, %zmm29489; AVX512BW-FCP-NEXT: vpermt2d %zmm1, %zmm15, %zmm29490; AVX512BW-FCP-NEXT: vmovdqa64 1024(%rdi), %zmm09491; AVX512BW-FCP-NEXT: vmovdqa64 960(%rdi), %zmm219492; AVX512BW-FCP-NEXT: vpermi2d %zmm0, %zmm21, %zmm159493; AVX512BW-FCP-NEXT: vmovdqa64 %zmm1, %zmm39494; AVX512BW-FCP-NEXT: vpermt2d %zmm11, %zmm12, %zmm39495; AVX512BW-FCP-NEXT: vpermi2d %zmm21, %zmm0, %zmm129496; AVX512BW-FCP-NEXT: vmovdqa64 %zmm11, %zmm69497; AVX512BW-FCP-NEXT: vpermt2d %zmm1, %zmm25, %zmm69498; AVX512BW-FCP-NEXT: vpermi2d %zmm0, %zmm21, %zmm259499; AVX512BW-FCP-NEXT: vmovdqa64 %zmm11, %zmm79500; AVX512BW-FCP-NEXT: vpermt2d %zmm1, %zmm5, %zmm79501; AVX512BW-FCP-NEXT: vpermi2d %zmm0, %zmm21, %zmm59502; AVX512BW-FCP-NEXT: vpermt2d %zmm0, %zmm9, %zmm219503; AVX512BW-FCP-NEXT: vpermt2d %zmm1, %zmm9, %zmm119504; AVX512BW-FCP-NEXT: movw $8064, %ax # imm = 0x1F809505; AVX512BW-FCP-NEXT: kmovd %eax, %k19506; AVX512BW-FCP-NEXT: vmovdqa64 %zmm4, %zmm09507; AVX512BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload9508; AVX512BW-FCP-NEXT: vmovdqa32 %zmm1, %zmm0 {%k1}9509; AVX512BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload9510; AVX512BW-FCP-NEXT: vmovdqa32 %zmm1, %zmm31 {%k1}9511; AVX512BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload9512; AVX512BW-FCP-NEXT: vmovdqa32 %zmm1, %zmm2 {%k1}9513; AVX512BW-FCP-NEXT: vmovdqa32 %zmm19, %zmm15 {%k1}9514; AVX512BW-FCP-NEXT: vmovdqa64 256(%rdi), %zmm19515; AVX512BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm4 = [0,1,2,3,4,5,6,7,8,9,10,11,12,17,22,27]9516; AVX512BW-FCP-NEXT: vpermt2d %zmm1, %zmm4, %zmm09517; AVX512BW-FCP-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill9518; AVX512BW-FCP-NEXT: vmovdqa64 576(%rdi), %zmm99519; AVX512BW-FCP-NEXT: vpermt2d %zmm9, %zmm4, %zmm319520; AVX512BW-FCP-NEXT: vmovdqa64 896(%rdi), %zmm199521; AVX512BW-FCP-NEXT: vpermt2d %zmm19, %zmm4, %zmm29522; AVX512BW-FCP-NEXT: vmovdqa64 1216(%rdi), %zmm09523; AVX512BW-FCP-NEXT: vpermt2d %zmm0, %zmm4, %zmm159524; AVX512BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload9525; AVX512BW-FCP-NEXT: vmovdqa32 %zmm4, %zmm24 {%k1}9526; AVX512BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload9527; AVX512BW-FCP-NEXT: vmovdqa32 %zmm4, %zmm3 {%k1}9528; AVX512BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload9529; AVX512BW-FCP-NEXT: vmovdqa32 %zmm4, %zmm20 {%k1}9530; AVX512BW-FCP-NEXT: vmovdqa32 %zmm16, %zmm12 {%k1}9531; AVX512BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm4 = [0,1,2,3,4,5,6,7,8,9,10,11,12,18,23,28]9532; AVX512BW-FCP-NEXT: vpermt2d %zmm1, %zmm4, %zmm249533; AVX512BW-FCP-NEXT: vpermt2d %zmm19, %zmm4, %zmm39534; AVX512BW-FCP-NEXT: vpermt2d %zmm9, %zmm4, %zmm209535; AVX512BW-FCP-NEXT: vpermt2d %zmm0, %zmm4, %zmm129536; AVX512BW-FCP-NEXT: movb $7, %al9537; AVX512BW-FCP-NEXT: kmovd %eax, %k19538; AVX512BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload9539; AVX512BW-FCP-NEXT: vmovdqa64 %zmm4, %zmm23 {%k1}9540; AVX512BW-FCP-NEXT: vmovdqa64 %zmm6, %zmm18 {%k1}9541; AVX512BW-FCP-NEXT: vmovdqa64 %zmm8, %zmm22 {%k1}9542; AVX512BW-FCP-NEXT: vmovdqa64 %zmm25, %zmm14 {%k1}9543; AVX512BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm4 = [0,1,2,3,4,5,6,7,8,9,10,11,12,19,24,29]9544; AVX512BW-FCP-NEXT: vpermt2d %zmm1, %zmm4, %zmm239545; AVX512BW-FCP-NEXT: vpermt2d %zmm19, %zmm4, %zmm189546; AVX512BW-FCP-NEXT: vpermt2d %zmm9, %zmm4, %zmm229547; AVX512BW-FCP-NEXT: vpermt2d %zmm0, %zmm4, %zmm149548; AVX512BW-FCP-NEXT: vmovdqa64 %zmm29, %zmm27 {%k1}9549; AVX512BW-FCP-NEXT: vmovdqa64 %zmm7, %zmm26 {%k1}9550; AVX512BW-FCP-NEXT: vmovdqa64 %zmm10, %zmm30 {%k1}9551; AVX512BW-FCP-NEXT: vmovdqa64 %zmm5, %zmm28 {%k1}9552; AVX512BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm4 = [0,1,2,3,4,5,6,7,8,9,10,11,12,20,25,30]9553; AVX512BW-FCP-NEXT: vpermt2d %zmm1, %zmm4, %zmm279554; AVX512BW-FCP-NEXT: vpermt2d %zmm19, %zmm4, %zmm269555; AVX512BW-FCP-NEXT: vpermt2d %zmm9, %zmm4, %zmm309556; AVX512BW-FCP-NEXT: vpermt2d %zmm0, %zmm4, %zmm289557; AVX512BW-FCP-NEXT: movb $56, %al9558; AVX512BW-FCP-NEXT: kmovd %eax, %k19559; AVX512BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload9560; AVX512BW-FCP-NEXT: vmovdqa64 %zmm4, %zmm13 {%k1}9561; AVX512BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm4 = [0,1,2,3,4,5,6,7,8,9,10,11,16,21,26,31]9562; AVX512BW-FCP-NEXT: vpermt2d %zmm1, %zmm4, %zmm139563; AVX512BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload9564; AVX512BW-FCP-NEXT: vmovdqa64 %zmm1, %zmm17 {%k1}9565; AVX512BW-FCP-NEXT: vpermt2d %zmm9, %zmm4, %zmm179566; AVX512BW-FCP-NEXT: vmovdqu64 (%rsp), %zmm1 # 64-byte Reload9567; AVX512BW-FCP-NEXT: vmovdqa64 %zmm1, %zmm21 {%k1}9568; AVX512BW-FCP-NEXT: vpermt2d %zmm0, %zmm4, %zmm219569; AVX512BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload9570; AVX512BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm11 {%k1}9571; AVX512BW-FCP-NEXT: vpermt2d %zmm19, %zmm4, %zmm119572; AVX512BW-FCP-NEXT: vmovdqa64 %zmm15, 192(%rsi)9573; AVX512BW-FCP-NEXT: vmovdqa64 %zmm2, 128(%rsi)9574; AVX512BW-FCP-NEXT: vmovdqa64 %zmm31, 64(%rsi)9575; AVX512BW-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload9576; AVX512BW-FCP-NEXT: vmovaps %zmm0, (%rsi)9577; AVX512BW-FCP-NEXT: vmovdqa64 %zmm12, 192(%rdx)9578; AVX512BW-FCP-NEXT: vmovdqa64 %zmm24, (%rdx)9579; AVX512BW-FCP-NEXT: vmovdqa64 %zmm20, 64(%rdx)9580; AVX512BW-FCP-NEXT: vmovdqa64 %zmm3, 128(%rdx)9581; AVX512BW-FCP-NEXT: vmovdqa64 %zmm14, 192(%rcx)9582; AVX512BW-FCP-NEXT: vmovdqa64 %zmm23, (%rcx)9583; AVX512BW-FCP-NEXT: vmovdqa64 %zmm22, 64(%rcx)9584; AVX512BW-FCP-NEXT: vmovdqa64 %zmm18, 128(%rcx)9585; AVX512BW-FCP-NEXT: vmovdqa64 %zmm28, 192(%r8)9586; AVX512BW-FCP-NEXT: vmovdqa64 %zmm27, (%r8)9587; AVX512BW-FCP-NEXT: vmovdqa64 %zmm30, 64(%r8)9588; AVX512BW-FCP-NEXT: vmovdqa64 %zmm26, 128(%r8)9589; AVX512BW-FCP-NEXT: vmovdqa64 %zmm11, 128(%r9)9590; AVX512BW-FCP-NEXT: vmovdqa64 %zmm21, 192(%r9)9591; AVX512BW-FCP-NEXT: vmovdqa64 %zmm13, (%r9)9592; AVX512BW-FCP-NEXT: vmovdqa64 %zmm17, 64(%r9)9593; AVX512BW-FCP-NEXT: addq $584, %rsp # imm = 0x2489594; AVX512BW-FCP-NEXT: vzeroupper9595; AVX512BW-FCP-NEXT: retq9596;9597; AVX512DQ-BW-LABEL: load_i32_stride5_vf64:9598; AVX512DQ-BW: # %bb.0:9599; AVX512DQ-BW-NEXT: subq $584, %rsp # imm = 0x2489600; AVX512DQ-BW-NEXT: vmovdqa64 1152(%rdi), %zmm209601; AVX512DQ-BW-NEXT: vmovdqa64 1088(%rdi), %zmm19602; AVX512DQ-BW-NEXT: vmovdqa64 832(%rdi), %zmm179603; AVX512DQ-BW-NEXT: vmovdqa64 768(%rdi), %zmm29604; AVX512DQ-BW-NEXT: vmovdqa64 384(%rdi), %zmm119605; AVX512DQ-BW-NEXT: vmovdqa64 512(%rdi), %zmm269606; AVX512DQ-BW-NEXT: vmovdqa64 448(%rdi), %zmm09607; AVX512DQ-BW-NEXT: vmovdqa64 (%rdi), %zmm139608; AVX512DQ-BW-NEXT: vmovdqa64 64(%rdi), %zmm219609; AVX512DQ-BW-NEXT: vmovdqa64 128(%rdi), %zmm39610; AVX512DQ-BW-NEXT: vmovdqa64 192(%rdi), %zmm309611; AVX512DQ-BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm19 = [8,13,18,23,28,0,0,3,8,13,18,23,28,0,0,3]9612; AVX512DQ-BW-NEXT: # zmm19 = mem[0,1,2,3,0,1,2,3]9613; AVX512DQ-BW-NEXT: vmovdqa64 %zmm3, %zmm49614; AVX512DQ-BW-NEXT: vpermt2d %zmm30, %zmm19, %zmm49615; AVX512DQ-BW-NEXT: vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill9616; AVX512DQ-BW-NEXT: vpmovsxbd {{.*#+}} ymm15 = [0,5,10,15,20,25,30,0]9617; AVX512DQ-BW-NEXT: vmovdqa64 %zmm13, %zmm49618; AVX512DQ-BW-NEXT: vpermt2d %zmm21, %zmm15, %zmm49619; AVX512DQ-BW-NEXT: vmovdqa64 %zmm0, %zmm59620; AVX512DQ-BW-NEXT: vpermt2d %zmm26, %zmm19, %zmm59621; AVX512DQ-BW-NEXT: vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill9622; AVX512DQ-BW-NEXT: vmovdqa64 %zmm2, %zmm59623; AVX512DQ-BW-NEXT: vpermt2d %zmm17, %zmm19, %zmm59624; AVX512DQ-BW-NEXT: vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill9625; AVX512DQ-BW-NEXT: vpermi2d %zmm20, %zmm1, %zmm199626; AVX512DQ-BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm16 = [9,14,19,24,29,0,0,4,9,14,19,24,29,0,0,4]9627; AVX512DQ-BW-NEXT: # zmm16 = mem[0,1,2,3,0,1,2,3]9628; AVX512DQ-BW-NEXT: vmovdqa64 %zmm3, %zmm59629; AVX512DQ-BW-NEXT: vpermt2d %zmm30, %zmm16, %zmm59630; AVX512DQ-BW-NEXT: vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill9631; AVX512DQ-BW-NEXT: vpmovsxbd {{.*#+}} ymm12 = [17,22,27,0,5,10,15,0]9632; AVX512DQ-BW-NEXT: vmovdqa64 %zmm21, %zmm249633; AVX512DQ-BW-NEXT: vpermt2d %zmm13, %zmm12, %zmm249634; AVX512DQ-BW-NEXT: vmovdqa64 %zmm2, %zmm59635; AVX512DQ-BW-NEXT: vpermt2d %zmm17, %zmm16, %zmm59636; AVX512DQ-BW-NEXT: vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill9637; AVX512DQ-BW-NEXT: vmovdqa64 %zmm0, %zmm59638; AVX512DQ-BW-NEXT: vpermt2d %zmm26, %zmm16, %zmm59639; AVX512DQ-BW-NEXT: vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill9640; AVX512DQ-BW-NEXT: vpermi2d %zmm20, %zmm1, %zmm169641; AVX512DQ-BW-NEXT: vpmovsxbd {{.*#+}} ymm25 = [2,7,12,17,22,27,0,0]9642; AVX512DQ-BW-NEXT: vmovdqa64 %zmm13, %zmm59643; AVX512DQ-BW-NEXT: vpermt2d %zmm21, %zmm25, %zmm59644; AVX512DQ-BW-NEXT: vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill9645; AVX512DQ-BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm14 = [10,15,20,25,30,0,0,5,10,15,20,25,30,0,0,5]9646; AVX512DQ-BW-NEXT: # zmm14 = mem[0,1,2,3,0,1,2,3]9647; AVX512DQ-BW-NEXT: vmovdqa64 %zmm3, %zmm239648; AVX512DQ-BW-NEXT: vmovdqa64 %zmm3, %zmm59649; AVX512DQ-BW-NEXT: vpermt2d %zmm30, %zmm14, %zmm239650; AVX512DQ-BW-NEXT: vmovdqa64 %zmm2, %zmm189651; AVX512DQ-BW-NEXT: vpermt2d %zmm17, %zmm14, %zmm189652; AVX512DQ-BW-NEXT: vmovdqa64 %zmm0, %zmm39653; AVX512DQ-BW-NEXT: vmovdqa64 %zmm0, %zmm229654; AVX512DQ-BW-NEXT: vpermt2d %zmm26, %zmm14, %zmm229655; AVX512DQ-BW-NEXT: vpermi2d %zmm20, %zmm1, %zmm149656; AVX512DQ-BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm28 = [27,0,5,10,15,0,17,22,27,0,5,10,15,0,17,22]9657; AVX512DQ-BW-NEXT: # zmm28 = mem[0,1,2,3,0,1,2,3]9658; AVX512DQ-BW-NEXT: vmovdqa64 %zmm30, %zmm279659; AVX512DQ-BW-NEXT: vpermt2d %zmm5, %zmm28, %zmm279660; AVX512DQ-BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm0 = [12,17,22,27,0,0,2,7,12,17,22,27,0,0,2,7]9661; AVX512DQ-BW-NEXT: # zmm0 = mem[0,1,2,3,0,1,2,3]9662; AVX512DQ-BW-NEXT: vpermt2d %zmm30, %zmm0, %zmm59663; AVX512DQ-BW-NEXT: vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill9664; AVX512DQ-BW-NEXT: vmovdqa64 %zmm26, %zmm309665; AVX512DQ-BW-NEXT: vpermt2d %zmm3, %zmm28, %zmm309666; AVX512DQ-BW-NEXT: vpermt2d %zmm26, %zmm0, %zmm39667; AVX512DQ-BW-NEXT: vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill9668; AVX512DQ-BW-NEXT: vmovdqa64 %zmm17, %zmm269669; AVX512DQ-BW-NEXT: vpermt2d %zmm2, %zmm28, %zmm269670; AVX512DQ-BW-NEXT: vpermi2d %zmm1, %zmm20, %zmm289671; AVX512DQ-BW-NEXT: vpermt2d %zmm20, %zmm0, %zmm19672; AVX512DQ-BW-NEXT: vmovdqu64 %zmm1, (%rsp) # 64-byte Spill9673; AVX512DQ-BW-NEXT: vpmovsxbd {{.*#+}} ymm5 = [3,8,13,18,23,28,0,0]9674; AVX512DQ-BW-NEXT: vpermt2d %zmm17, %zmm0, %zmm29675; AVX512DQ-BW-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill9676; AVX512DQ-BW-NEXT: vmovdqa64 %zmm13, %zmm299677; AVX512DQ-BW-NEXT: vpermt2d %zmm21, %zmm5, %zmm299678; AVX512DQ-BW-NEXT: vpmovsxbd {{.*#+}} ymm9 = [4,9,14,19,24,29,0,0]9679; AVX512DQ-BW-NEXT: vpermt2d %zmm21, %zmm9, %zmm139680; AVX512DQ-BW-NEXT: vmovdqa64 320(%rdi), %zmm179681; AVX512DQ-BW-NEXT: vmovdqa64 %zmm17, %zmm319682; AVX512DQ-BW-NEXT: vpermt2d %zmm11, %zmm15, %zmm319683; AVX512DQ-BW-NEXT: vmovdqa64 %zmm11, %zmm209684; AVX512DQ-BW-NEXT: vpermt2d %zmm17, %zmm12, %zmm209685; AVX512DQ-BW-NEXT: vmovdqa64 %zmm17, %zmm89686; AVX512DQ-BW-NEXT: vpermt2d %zmm11, %zmm25, %zmm89687; AVX512DQ-BW-NEXT: vmovdqa64 %zmm17, %zmm109688; AVX512DQ-BW-NEXT: vpermt2d %zmm11, %zmm5, %zmm109689; AVX512DQ-BW-NEXT: vpermt2d %zmm11, %zmm9, %zmm179690; AVX512DQ-BW-NEXT: vmovdqa64 704(%rdi), %zmm19691; AVX512DQ-BW-NEXT: vmovdqa64 640(%rdi), %zmm119692; AVX512DQ-BW-NEXT: vmovdqa64 %zmm11, %zmm29693; AVX512DQ-BW-NEXT: vpermt2d %zmm1, %zmm15, %zmm29694; AVX512DQ-BW-NEXT: vmovdqa64 1024(%rdi), %zmm09695; AVX512DQ-BW-NEXT: vmovdqa64 960(%rdi), %zmm219696; AVX512DQ-BW-NEXT: vpermi2d %zmm0, %zmm21, %zmm159697; AVX512DQ-BW-NEXT: vmovdqa64 %zmm1, %zmm39698; AVX512DQ-BW-NEXT: vpermt2d %zmm11, %zmm12, %zmm39699; AVX512DQ-BW-NEXT: vpermi2d %zmm21, %zmm0, %zmm129700; AVX512DQ-BW-NEXT: vmovdqa64 %zmm11, %zmm69701; AVX512DQ-BW-NEXT: vpermt2d %zmm1, %zmm25, %zmm69702; AVX512DQ-BW-NEXT: vpermi2d %zmm0, %zmm21, %zmm259703; AVX512DQ-BW-NEXT: vmovdqa64 %zmm11, %zmm79704; AVX512DQ-BW-NEXT: vpermt2d %zmm1, %zmm5, %zmm79705; AVX512DQ-BW-NEXT: vpermi2d %zmm0, %zmm21, %zmm59706; AVX512DQ-BW-NEXT: vpermt2d %zmm0, %zmm9, %zmm219707; AVX512DQ-BW-NEXT: vpermt2d %zmm1, %zmm9, %zmm119708; AVX512DQ-BW-NEXT: movw $8064, %ax # imm = 0x1F809709; AVX512DQ-BW-NEXT: kmovd %eax, %k19710; AVX512DQ-BW-NEXT: vmovdqa64 %zmm4, %zmm09711; AVX512DQ-BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload9712; AVX512DQ-BW-NEXT: vmovdqa32 %zmm1, %zmm0 {%k1}9713; AVX512DQ-BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload9714; AVX512DQ-BW-NEXT: vmovdqa32 %zmm1, %zmm31 {%k1}9715; AVX512DQ-BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload9716; AVX512DQ-BW-NEXT: vmovdqa32 %zmm1, %zmm2 {%k1}9717; AVX512DQ-BW-NEXT: vmovdqa32 %zmm19, %zmm15 {%k1}9718; AVX512DQ-BW-NEXT: vmovdqa64 256(%rdi), %zmm19719; AVX512DQ-BW-NEXT: vpmovsxbd {{.*#+}} zmm4 = [0,1,2,3,4,5,6,7,8,9,10,11,12,17,22,27]9720; AVX512DQ-BW-NEXT: vpermt2d %zmm1, %zmm4, %zmm09721; AVX512DQ-BW-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill9722; AVX512DQ-BW-NEXT: vmovdqa64 576(%rdi), %zmm99723; AVX512DQ-BW-NEXT: vpermt2d %zmm9, %zmm4, %zmm319724; AVX512DQ-BW-NEXT: vmovdqa64 896(%rdi), %zmm199725; AVX512DQ-BW-NEXT: vpermt2d %zmm19, %zmm4, %zmm29726; AVX512DQ-BW-NEXT: vmovdqa64 1216(%rdi), %zmm09727; AVX512DQ-BW-NEXT: vpermt2d %zmm0, %zmm4, %zmm159728; AVX512DQ-BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload9729; AVX512DQ-BW-NEXT: vmovdqa32 %zmm4, %zmm24 {%k1}9730; AVX512DQ-BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload9731; AVX512DQ-BW-NEXT: vmovdqa32 %zmm4, %zmm3 {%k1}9732; AVX512DQ-BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload9733; AVX512DQ-BW-NEXT: vmovdqa32 %zmm4, %zmm20 {%k1}9734; AVX512DQ-BW-NEXT: vmovdqa32 %zmm16, %zmm12 {%k1}9735; AVX512DQ-BW-NEXT: vpmovsxbd {{.*#+}} zmm4 = [0,1,2,3,4,5,6,7,8,9,10,11,12,18,23,28]9736; AVX512DQ-BW-NEXT: vpermt2d %zmm1, %zmm4, %zmm249737; AVX512DQ-BW-NEXT: vpermt2d %zmm19, %zmm4, %zmm39738; AVX512DQ-BW-NEXT: vpermt2d %zmm9, %zmm4, %zmm209739; AVX512DQ-BW-NEXT: vpermt2d %zmm0, %zmm4, %zmm129740; AVX512DQ-BW-NEXT: movb $7, %al9741; AVX512DQ-BW-NEXT: kmovd %eax, %k19742; AVX512DQ-BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload9743; AVX512DQ-BW-NEXT: vmovdqa64 %zmm4, %zmm23 {%k1}9744; AVX512DQ-BW-NEXT: vmovdqa64 %zmm6, %zmm18 {%k1}9745; AVX512DQ-BW-NEXT: vmovdqa64 %zmm8, %zmm22 {%k1}9746; AVX512DQ-BW-NEXT: vmovdqa64 %zmm25, %zmm14 {%k1}9747; AVX512DQ-BW-NEXT: vpmovsxbd {{.*#+}} zmm4 = [0,1,2,3,4,5,6,7,8,9,10,11,12,19,24,29]9748; AVX512DQ-BW-NEXT: vpermt2d %zmm1, %zmm4, %zmm239749; AVX512DQ-BW-NEXT: vpermt2d %zmm19, %zmm4, %zmm189750; AVX512DQ-BW-NEXT: vpermt2d %zmm9, %zmm4, %zmm229751; AVX512DQ-BW-NEXT: vpermt2d %zmm0, %zmm4, %zmm149752; AVX512DQ-BW-NEXT: vmovdqa64 %zmm29, %zmm27 {%k1}9753; AVX512DQ-BW-NEXT: vmovdqa64 %zmm7, %zmm26 {%k1}9754; AVX512DQ-BW-NEXT: vmovdqa64 %zmm10, %zmm30 {%k1}9755; AVX512DQ-BW-NEXT: vmovdqa64 %zmm5, %zmm28 {%k1}9756; AVX512DQ-BW-NEXT: vpmovsxbd {{.*#+}} zmm4 = [0,1,2,3,4,5,6,7,8,9,10,11,12,20,25,30]9757; AVX512DQ-BW-NEXT: vpermt2d %zmm1, %zmm4, %zmm279758; AVX512DQ-BW-NEXT: vpermt2d %zmm19, %zmm4, %zmm269759; AVX512DQ-BW-NEXT: vpermt2d %zmm9, %zmm4, %zmm309760; AVX512DQ-BW-NEXT: vpermt2d %zmm0, %zmm4, %zmm289761; AVX512DQ-BW-NEXT: movb $56, %al9762; AVX512DQ-BW-NEXT: kmovd %eax, %k19763; AVX512DQ-BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload9764; AVX512DQ-BW-NEXT: vmovdqa64 %zmm4, %zmm13 {%k1}9765; AVX512DQ-BW-NEXT: vpmovsxbd {{.*#+}} zmm4 = [0,1,2,3,4,5,6,7,8,9,10,11,16,21,26,31]9766; AVX512DQ-BW-NEXT: vpermt2d %zmm1, %zmm4, %zmm139767; AVX512DQ-BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload9768; AVX512DQ-BW-NEXT: vmovdqa64 %zmm1, %zmm17 {%k1}9769; AVX512DQ-BW-NEXT: vpermt2d %zmm9, %zmm4, %zmm179770; AVX512DQ-BW-NEXT: vmovdqu64 (%rsp), %zmm1 # 64-byte Reload9771; AVX512DQ-BW-NEXT: vmovdqa64 %zmm1, %zmm21 {%k1}9772; AVX512DQ-BW-NEXT: vpermt2d %zmm0, %zmm4, %zmm219773; AVX512DQ-BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload9774; AVX512DQ-BW-NEXT: vmovdqa64 %zmm0, %zmm11 {%k1}9775; AVX512DQ-BW-NEXT: vpermt2d %zmm19, %zmm4, %zmm119776; AVX512DQ-BW-NEXT: vmovdqa64 %zmm15, 192(%rsi)9777; AVX512DQ-BW-NEXT: vmovdqa64 %zmm2, 128(%rsi)9778; AVX512DQ-BW-NEXT: vmovdqa64 %zmm31, 64(%rsi)9779; AVX512DQ-BW-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload9780; AVX512DQ-BW-NEXT: vmovaps %zmm0, (%rsi)9781; AVX512DQ-BW-NEXT: vmovdqa64 %zmm12, 192(%rdx)9782; AVX512DQ-BW-NEXT: vmovdqa64 %zmm24, (%rdx)9783; AVX512DQ-BW-NEXT: vmovdqa64 %zmm20, 64(%rdx)9784; AVX512DQ-BW-NEXT: vmovdqa64 %zmm3, 128(%rdx)9785; AVX512DQ-BW-NEXT: vmovdqa64 %zmm14, 192(%rcx)9786; AVX512DQ-BW-NEXT: vmovdqa64 %zmm23, (%rcx)9787; AVX512DQ-BW-NEXT: vmovdqa64 %zmm22, 64(%rcx)9788; AVX512DQ-BW-NEXT: vmovdqa64 %zmm18, 128(%rcx)9789; AVX512DQ-BW-NEXT: vmovdqa64 %zmm28, 192(%r8)9790; AVX512DQ-BW-NEXT: vmovdqa64 %zmm27, (%r8)9791; AVX512DQ-BW-NEXT: vmovdqa64 %zmm30, 64(%r8)9792; AVX512DQ-BW-NEXT: vmovdqa64 %zmm26, 128(%r8)9793; AVX512DQ-BW-NEXT: vmovdqa64 %zmm11, 128(%r9)9794; AVX512DQ-BW-NEXT: vmovdqa64 %zmm21, 192(%r9)9795; AVX512DQ-BW-NEXT: vmovdqa64 %zmm13, (%r9)9796; AVX512DQ-BW-NEXT: vmovdqa64 %zmm17, 64(%r9)9797; AVX512DQ-BW-NEXT: addq $584, %rsp # imm = 0x2489798; AVX512DQ-BW-NEXT: vzeroupper9799; AVX512DQ-BW-NEXT: retq9800;9801; AVX512DQ-BW-FCP-LABEL: load_i32_stride5_vf64:9802; AVX512DQ-BW-FCP: # %bb.0:9803; AVX512DQ-BW-FCP-NEXT: subq $584, %rsp # imm = 0x2489804; AVX512DQ-BW-FCP-NEXT: vmovdqa64 1152(%rdi), %zmm209805; AVX512DQ-BW-FCP-NEXT: vmovdqa64 1088(%rdi), %zmm19806; AVX512DQ-BW-FCP-NEXT: vmovdqa64 832(%rdi), %zmm179807; AVX512DQ-BW-FCP-NEXT: vmovdqa64 768(%rdi), %zmm29808; AVX512DQ-BW-FCP-NEXT: vmovdqa64 384(%rdi), %zmm119809; AVX512DQ-BW-FCP-NEXT: vmovdqa64 512(%rdi), %zmm269810; AVX512DQ-BW-FCP-NEXT: vmovdqa64 448(%rdi), %zmm09811; AVX512DQ-BW-FCP-NEXT: vmovdqa64 (%rdi), %zmm139812; AVX512DQ-BW-FCP-NEXT: vmovdqa64 64(%rdi), %zmm219813; AVX512DQ-BW-FCP-NEXT: vmovdqa64 128(%rdi), %zmm39814; AVX512DQ-BW-FCP-NEXT: vmovdqa64 192(%rdi), %zmm309815; AVX512DQ-BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm19 = [8,13,18,23,28,0,0,3,8,13,18,23,28,0,0,3]9816; AVX512DQ-BW-FCP-NEXT: # zmm19 = mem[0,1,2,3,0,1,2,3]9817; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm3, %zmm49818; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm30, %zmm19, %zmm49819; AVX512DQ-BW-FCP-NEXT: vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill9820; AVX512DQ-BW-FCP-NEXT: vpmovsxbd {{.*#+}} ymm15 = [0,5,10,15,20,25,30,0]9821; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm13, %zmm49822; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm21, %zmm15, %zmm49823; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm59824; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm26, %zmm19, %zmm59825; AVX512DQ-BW-FCP-NEXT: vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill9826; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm2, %zmm59827; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm17, %zmm19, %zmm59828; AVX512DQ-BW-FCP-NEXT: vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill9829; AVX512DQ-BW-FCP-NEXT: vpermi2d %zmm20, %zmm1, %zmm199830; AVX512DQ-BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm16 = [9,14,19,24,29,0,0,4,9,14,19,24,29,0,0,4]9831; AVX512DQ-BW-FCP-NEXT: # zmm16 = mem[0,1,2,3,0,1,2,3]9832; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm3, %zmm59833; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm30, %zmm16, %zmm59834; AVX512DQ-BW-FCP-NEXT: vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill9835; AVX512DQ-BW-FCP-NEXT: vpmovsxbd {{.*#+}} ymm12 = [17,22,27,0,5,10,15,0]9836; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm21, %zmm249837; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm13, %zmm12, %zmm249838; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm2, %zmm59839; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm17, %zmm16, %zmm59840; AVX512DQ-BW-FCP-NEXT: vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill9841; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm59842; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm26, %zmm16, %zmm59843; AVX512DQ-BW-FCP-NEXT: vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill9844; AVX512DQ-BW-FCP-NEXT: vpermi2d %zmm20, %zmm1, %zmm169845; AVX512DQ-BW-FCP-NEXT: vpmovsxbd {{.*#+}} ymm25 = [2,7,12,17,22,27,0,0]9846; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm13, %zmm59847; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm21, %zmm25, %zmm59848; AVX512DQ-BW-FCP-NEXT: vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill9849; AVX512DQ-BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm14 = [10,15,20,25,30,0,0,5,10,15,20,25,30,0,0,5]9850; AVX512DQ-BW-FCP-NEXT: # zmm14 = mem[0,1,2,3,0,1,2,3]9851; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm3, %zmm239852; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm3, %zmm59853; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm30, %zmm14, %zmm239854; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm2, %zmm189855; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm17, %zmm14, %zmm189856; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm39857; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm229858; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm26, %zmm14, %zmm229859; AVX512DQ-BW-FCP-NEXT: vpermi2d %zmm20, %zmm1, %zmm149860; AVX512DQ-BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm28 = [27,0,5,10,15,0,17,22,27,0,5,10,15,0,17,22]9861; AVX512DQ-BW-FCP-NEXT: # zmm28 = mem[0,1,2,3,0,1,2,3]9862; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm30, %zmm279863; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm5, %zmm28, %zmm279864; AVX512DQ-BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm0 = [12,17,22,27,0,0,2,7,12,17,22,27,0,0,2,7]9865; AVX512DQ-BW-FCP-NEXT: # zmm0 = mem[0,1,2,3,0,1,2,3]9866; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm30, %zmm0, %zmm59867; AVX512DQ-BW-FCP-NEXT: vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill9868; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm26, %zmm309869; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm3, %zmm28, %zmm309870; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm26, %zmm0, %zmm39871; AVX512DQ-BW-FCP-NEXT: vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill9872; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm17, %zmm269873; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm2, %zmm28, %zmm269874; AVX512DQ-BW-FCP-NEXT: vpermi2d %zmm1, %zmm20, %zmm289875; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm20, %zmm0, %zmm19876; AVX512DQ-BW-FCP-NEXT: vmovdqu64 %zmm1, (%rsp) # 64-byte Spill9877; AVX512DQ-BW-FCP-NEXT: vpmovsxbd {{.*#+}} ymm5 = [3,8,13,18,23,28,0,0]9878; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm17, %zmm0, %zmm29879; AVX512DQ-BW-FCP-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill9880; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm13, %zmm299881; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm21, %zmm5, %zmm299882; AVX512DQ-BW-FCP-NEXT: vpmovsxbd {{.*#+}} ymm9 = [4,9,14,19,24,29,0,0]9883; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm21, %zmm9, %zmm139884; AVX512DQ-BW-FCP-NEXT: vmovdqa64 320(%rdi), %zmm179885; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm17, %zmm319886; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm11, %zmm15, %zmm319887; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm11, %zmm209888; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm17, %zmm12, %zmm209889; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm17, %zmm89890; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm11, %zmm25, %zmm89891; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm17, %zmm109892; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm11, %zmm5, %zmm109893; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm11, %zmm9, %zmm179894; AVX512DQ-BW-FCP-NEXT: vmovdqa64 704(%rdi), %zmm19895; AVX512DQ-BW-FCP-NEXT: vmovdqa64 640(%rdi), %zmm119896; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm11, %zmm29897; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm1, %zmm15, %zmm29898; AVX512DQ-BW-FCP-NEXT: vmovdqa64 1024(%rdi), %zmm09899; AVX512DQ-BW-FCP-NEXT: vmovdqa64 960(%rdi), %zmm219900; AVX512DQ-BW-FCP-NEXT: vpermi2d %zmm0, %zmm21, %zmm159901; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm1, %zmm39902; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm11, %zmm12, %zmm39903; AVX512DQ-BW-FCP-NEXT: vpermi2d %zmm21, %zmm0, %zmm129904; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm11, %zmm69905; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm1, %zmm25, %zmm69906; AVX512DQ-BW-FCP-NEXT: vpermi2d %zmm0, %zmm21, %zmm259907; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm11, %zmm79908; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm1, %zmm5, %zmm79909; AVX512DQ-BW-FCP-NEXT: vpermi2d %zmm0, %zmm21, %zmm59910; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm0, %zmm9, %zmm219911; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm1, %zmm9, %zmm119912; AVX512DQ-BW-FCP-NEXT: movw $8064, %ax # imm = 0x1F809913; AVX512DQ-BW-FCP-NEXT: kmovd %eax, %k19914; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm4, %zmm09915; AVX512DQ-BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload9916; AVX512DQ-BW-FCP-NEXT: vmovdqa32 %zmm1, %zmm0 {%k1}9917; AVX512DQ-BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload9918; AVX512DQ-BW-FCP-NEXT: vmovdqa32 %zmm1, %zmm31 {%k1}9919; AVX512DQ-BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload9920; AVX512DQ-BW-FCP-NEXT: vmovdqa32 %zmm1, %zmm2 {%k1}9921; AVX512DQ-BW-FCP-NEXT: vmovdqa32 %zmm19, %zmm15 {%k1}9922; AVX512DQ-BW-FCP-NEXT: vmovdqa64 256(%rdi), %zmm19923; AVX512DQ-BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm4 = [0,1,2,3,4,5,6,7,8,9,10,11,12,17,22,27]9924; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm1, %zmm4, %zmm09925; AVX512DQ-BW-FCP-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill9926; AVX512DQ-BW-FCP-NEXT: vmovdqa64 576(%rdi), %zmm99927; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm9, %zmm4, %zmm319928; AVX512DQ-BW-FCP-NEXT: vmovdqa64 896(%rdi), %zmm199929; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm19, %zmm4, %zmm29930; AVX512DQ-BW-FCP-NEXT: vmovdqa64 1216(%rdi), %zmm09931; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm0, %zmm4, %zmm159932; AVX512DQ-BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload9933; AVX512DQ-BW-FCP-NEXT: vmovdqa32 %zmm4, %zmm24 {%k1}9934; AVX512DQ-BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload9935; AVX512DQ-BW-FCP-NEXT: vmovdqa32 %zmm4, %zmm3 {%k1}9936; AVX512DQ-BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload9937; AVX512DQ-BW-FCP-NEXT: vmovdqa32 %zmm4, %zmm20 {%k1}9938; AVX512DQ-BW-FCP-NEXT: vmovdqa32 %zmm16, %zmm12 {%k1}9939; AVX512DQ-BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm4 = [0,1,2,3,4,5,6,7,8,9,10,11,12,18,23,28]9940; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm1, %zmm4, %zmm249941; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm19, %zmm4, %zmm39942; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm9, %zmm4, %zmm209943; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm0, %zmm4, %zmm129944; AVX512DQ-BW-FCP-NEXT: movb $7, %al9945; AVX512DQ-BW-FCP-NEXT: kmovd %eax, %k19946; AVX512DQ-BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload9947; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm4, %zmm23 {%k1}9948; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm6, %zmm18 {%k1}9949; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm8, %zmm22 {%k1}9950; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm25, %zmm14 {%k1}9951; AVX512DQ-BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm4 = [0,1,2,3,4,5,6,7,8,9,10,11,12,19,24,29]9952; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm1, %zmm4, %zmm239953; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm19, %zmm4, %zmm189954; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm9, %zmm4, %zmm229955; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm0, %zmm4, %zmm149956; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm29, %zmm27 {%k1}9957; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm7, %zmm26 {%k1}9958; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm10, %zmm30 {%k1}9959; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm5, %zmm28 {%k1}9960; AVX512DQ-BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm4 = [0,1,2,3,4,5,6,7,8,9,10,11,12,20,25,30]9961; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm1, %zmm4, %zmm279962; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm19, %zmm4, %zmm269963; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm9, %zmm4, %zmm309964; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm0, %zmm4, %zmm289965; AVX512DQ-BW-FCP-NEXT: movb $56, %al9966; AVX512DQ-BW-FCP-NEXT: kmovd %eax, %k19967; AVX512DQ-BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload9968; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm4, %zmm13 {%k1}9969; AVX512DQ-BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm4 = [0,1,2,3,4,5,6,7,8,9,10,11,16,21,26,31]9970; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm1, %zmm4, %zmm139971; AVX512DQ-BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload9972; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm1, %zmm17 {%k1}9973; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm9, %zmm4, %zmm179974; AVX512DQ-BW-FCP-NEXT: vmovdqu64 (%rsp), %zmm1 # 64-byte Reload9975; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm1, %zmm21 {%k1}9976; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm0, %zmm4, %zmm219977; AVX512DQ-BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload9978; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm11 {%k1}9979; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm19, %zmm4, %zmm119980; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm15, 192(%rsi)9981; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm2, 128(%rsi)9982; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm31, 64(%rsi)9983; AVX512DQ-BW-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload9984; AVX512DQ-BW-FCP-NEXT: vmovaps %zmm0, (%rsi)9985; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm12, 192(%rdx)9986; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm24, (%rdx)9987; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm20, 64(%rdx)9988; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm3, 128(%rdx)9989; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm14, 192(%rcx)9990; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm23, (%rcx)9991; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm22, 64(%rcx)9992; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm18, 128(%rcx)9993; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm28, 192(%r8)9994; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm27, (%r8)9995; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm30, 64(%r8)9996; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm26, 128(%r8)9997; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm11, 128(%r9)9998; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm21, 192(%r9)9999; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm13, (%r9)10000; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm17, 64(%r9)10001; AVX512DQ-BW-FCP-NEXT: addq $584, %rsp # imm = 0x24810002; AVX512DQ-BW-FCP-NEXT: vzeroupper10003; AVX512DQ-BW-FCP-NEXT: retq10004 %wide.vec = load <320 x i32>, ptr %in.vec, align 6410005 %strided.vec0 = shufflevector <320 x i32> %wide.vec, <320 x i32> poison, <64 x i32> <i32 0, i32 5, i32 10, i32 15, i32 20, i32 25, i32 30, i32 35, i32 40, i32 45, i32 50, i32 55, i32 60, i32 65, i32 70, i32 75, i32 80, i32 85, i32 90, i32 95, i32 100, i32 105, i32 110, i32 115, i32 120, i32 125, i32 130, i32 135, i32 140, i32 145, i32 150, i32 155, i32 160, i32 165, i32 170, i32 175, i32 180, i32 185, i32 190, i32 195, i32 200, i32 205, i32 210, i32 215, i32 220, i32 225, i32 230, i32 235, i32 240, i32 245, i32 250, i32 255, i32 260, i32 265, i32 270, i32 275, i32 280, i32 285, i32 290, i32 295, i32 300, i32 305, i32 310, i32 315>10006 %strided.vec1 = shufflevector <320 x i32> %wide.vec, <320 x i32> poison, <64 x i32> <i32 1, i32 6, i32 11, i32 16, i32 21, i32 26, i32 31, i32 36, i32 41, i32 46, i32 51, i32 56, i32 61, i32 66, i32 71, i32 76, i32 81, i32 86, i32 91, i32 96, i32 101, i32 106, i32 111, i32 116, i32 121, i32 126, i32 131, i32 136, i32 141, i32 146, i32 151, i32 156, i32 161, i32 166, i32 171, i32 176, i32 181, i32 186, i32 191, i32 196, i32 201, i32 206, i32 211, i32 216, i32 221, i32 226, i32 231, i32 236, i32 241, i32 246, i32 251, i32 256, i32 261, i32 266, i32 271, i32 276, i32 281, i32 286, i32 291, i32 296, i32 301, i32 306, i32 311, i32 316>10007 %strided.vec2 = shufflevector <320 x i32> %wide.vec, <320 x i32> poison, <64 x i32> <i32 2, i32 7, i32 12, i32 17, i32 22, i32 27, i32 32, i32 37, i32 42, i32 47, i32 52, i32 57, i32 62, i32 67, i32 72, i32 77, i32 82, i32 87, i32 92, i32 97, i32 102, i32 107, i32 112, i32 117, i32 122, i32 127, i32 132, i32 137, i32 142, i32 147, i32 152, i32 157, i32 162, i32 167, i32 172, i32 177, i32 182, i32 187, i32 192, i32 197, i32 202, i32 207, i32 212, i32 217, i32 222, i32 227, i32 232, i32 237, i32 242, i32 247, i32 252, i32 257, i32 262, i32 267, i32 272, i32 277, i32 282, i32 287, i32 292, i32 297, i32 302, i32 307, i32 312, i32 317>10008 %strided.vec3 = shufflevector <320 x i32> %wide.vec, <320 x i32> poison, <64 x i32> <i32 3, i32 8, i32 13, i32 18, i32 23, i32 28, i32 33, i32 38, i32 43, i32 48, i32 53, i32 58, i32 63, i32 68, i32 73, i32 78, i32 83, i32 88, i32 93, i32 98, i32 103, i32 108, i32 113, i32 118, i32 123, i32 128, i32 133, i32 138, i32 143, i32 148, i32 153, i32 158, i32 163, i32 168, i32 173, i32 178, i32 183, i32 188, i32 193, i32 198, i32 203, i32 208, i32 213, i32 218, i32 223, i32 228, i32 233, i32 238, i32 243, i32 248, i32 253, i32 258, i32 263, i32 268, i32 273, i32 278, i32 283, i32 288, i32 293, i32 298, i32 303, i32 308, i32 313, i32 318>10009 %strided.vec4 = shufflevector <320 x i32> %wide.vec, <320 x i32> poison, <64 x i32> <i32 4, i32 9, i32 14, i32 19, i32 24, i32 29, i32 34, i32 39, i32 44, i32 49, i32 54, i32 59, i32 64, i32 69, i32 74, i32 79, i32 84, i32 89, i32 94, i32 99, i32 104, i32 109, i32 114, i32 119, i32 124, i32 129, i32 134, i32 139, i32 144, i32 149, i32 154, i32 159, i32 164, i32 169, i32 174, i32 179, i32 184, i32 189, i32 194, i32 199, i32 204, i32 209, i32 214, i32 219, i32 224, i32 229, i32 234, i32 239, i32 244, i32 249, i32 254, i32 259, i32 264, i32 269, i32 274, i32 279, i32 284, i32 289, i32 294, i32 299, i32 304, i32 309, i32 314, i32 319>10010 store <64 x i32> %strided.vec0, ptr %out.vec0, align 6410011 store <64 x i32> %strided.vec1, ptr %out.vec1, align 6410012 store <64 x i32> %strided.vec2, ptr %out.vec2, align 6410013 store <64 x i32> %strided.vec3, ptr %out.vec3, align 6410014 store <64 x i32> %strided.vec4, ptr %out.vec4, align 6410015 ret void10016}10017