brintos

brintos / llvm-project-archived public Read only

0
0
Text · 404.2 KiB · f7ddcfc Raw
7026 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_stride4_vf2(ptr %in.vec, ptr %out.vec0, ptr %out.vec1, ptr %out.vec2, ptr %out.vec3) nounwind {19; SSE-LABEL: load_i32_stride4_vf2:20; SSE:       # %bb.0:21; SSE-NEXT:    movdqa (%rdi), %xmm022; SSE-NEXT:    movdqa 16(%rdi), %xmm123; SSE-NEXT:    movdqa %xmm0, %xmm224; SSE-NEXT:    punpckldq {{.*#+}} xmm2 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]25; SSE-NEXT:    movq %xmm2, (%rsi)26; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm2[2,3,2,3]27; SSE-NEXT:    movq %xmm2, (%rdx)28; SSE-NEXT:    punpckhdq {{.*#+}} xmm0 = xmm0[2],xmm1[2],xmm0[3],xmm1[3]29; SSE-NEXT:    movq %xmm0, (%rcx)30; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[2,3,2,3]31; SSE-NEXT:    movq %xmm0, (%r8)32; SSE-NEXT:    retq33;34; AVX-LABEL: load_i32_stride4_vf2:35; AVX:       # %bb.0:36; AVX-NEXT:    vmovdqa (%rdi), %xmm037; AVX-NEXT:    vmovdqa 16(%rdi), %xmm138; AVX-NEXT:    vpunpckldq {{.*#+}} xmm2 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]39; AVX-NEXT:    vmovq %xmm2, (%rsi)40; AVX-NEXT:    vpshufd {{.*#+}} xmm2 = xmm0[1,1,1,1]41; AVX-NEXT:    vpblendw {{.*#+}} xmm2 = xmm2[0,1],xmm1[2,3],xmm2[4,5,6,7]42; AVX-NEXT:    vmovq %xmm2, (%rdx)43; AVX-NEXT:    vpunpckhdq {{.*#+}} xmm0 = xmm0[2],xmm1[2],xmm0[3],xmm1[3]44; AVX-NEXT:    vmovq %xmm0, (%rcx)45; AVX-NEXT:    vpextrq $1, %xmm0, (%r8)46; AVX-NEXT:    retq47;48; AVX2-LABEL: load_i32_stride4_vf2:49; AVX2:       # %bb.0:50; AVX2-NEXT:    vmovdqa (%rdi), %xmm051; AVX2-NEXT:    vmovdqa 16(%rdi), %xmm152; AVX2-NEXT:    vpunpckldq {{.*#+}} xmm2 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]53; AVX2-NEXT:    vmovq %xmm2, (%rsi)54; AVX2-NEXT:    vpshufd {{.*#+}} xmm2 = xmm0[1,1,1,1]55; AVX2-NEXT:    vpblendd {{.*#+}} xmm2 = xmm2[0],xmm1[1],xmm2[2,3]56; AVX2-NEXT:    vmovq %xmm2, (%rdx)57; AVX2-NEXT:    vpunpckhdq {{.*#+}} xmm0 = xmm0[2],xmm1[2],xmm0[3],xmm1[3]58; AVX2-NEXT:    vmovq %xmm0, (%rcx)59; AVX2-NEXT:    vpextrq $1, %xmm0, (%r8)60; AVX2-NEXT:    retq61;62; AVX2-FP-LABEL: load_i32_stride4_vf2:63; AVX2-FP:       # %bb.0:64; AVX2-FP-NEXT:    vmovdqa (%rdi), %xmm065; AVX2-FP-NEXT:    vmovdqa 16(%rdi), %xmm166; AVX2-FP-NEXT:    vpunpckldq {{.*#+}} xmm2 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]67; AVX2-FP-NEXT:    vmovq %xmm2, (%rsi)68; AVX2-FP-NEXT:    vpshufd {{.*#+}} xmm2 = xmm0[1,1,1,1]69; AVX2-FP-NEXT:    vpblendd {{.*#+}} xmm2 = xmm2[0],xmm1[1],xmm2[2,3]70; AVX2-FP-NEXT:    vmovq %xmm2, (%rdx)71; AVX2-FP-NEXT:    vpunpckhdq {{.*#+}} xmm0 = xmm0[2],xmm1[2],xmm0[3],xmm1[3]72; AVX2-FP-NEXT:    vmovq %xmm0, (%rcx)73; AVX2-FP-NEXT:    vpextrq $1, %xmm0, (%r8)74; AVX2-FP-NEXT:    retq75;76; AVX2-FCP-LABEL: load_i32_stride4_vf2:77; AVX2-FCP:       # %bb.0:78; AVX2-FCP-NEXT:    vmovdqa (%rdi), %xmm079; AVX2-FCP-NEXT:    vmovdqa 16(%rdi), %xmm180; AVX2-FCP-NEXT:    vpunpckldq {{.*#+}} xmm2 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]81; AVX2-FCP-NEXT:    vmovq %xmm2, (%rsi)82; AVX2-FCP-NEXT:    vpshufd {{.*#+}} xmm2 = xmm0[1,1,1,1]83; AVX2-FCP-NEXT:    vpblendd {{.*#+}} xmm2 = xmm2[0],xmm1[1],xmm2[2,3]84; AVX2-FCP-NEXT:    vmovq %xmm2, (%rdx)85; AVX2-FCP-NEXT:    vpunpckhdq {{.*#+}} xmm0 = xmm0[2],xmm1[2],xmm0[3],xmm1[3]86; AVX2-FCP-NEXT:    vmovq %xmm0, (%rcx)87; AVX2-FCP-NEXT:    vpextrq $1, %xmm0, (%r8)88; AVX2-FCP-NEXT:    retq89;90; AVX512-LABEL: load_i32_stride4_vf2:91; AVX512:       # %bb.0:92; AVX512-NEXT:    vmovdqa (%rdi), %xmm093; AVX512-NEXT:    vmovdqa 16(%rdi), %xmm194; AVX512-NEXT:    vpunpckldq {{.*#+}} xmm2 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]95; AVX512-NEXT:    vmovq %xmm2, (%rsi)96; AVX512-NEXT:    vpshufd {{.*#+}} xmm2 = xmm0[1,1,1,1]97; AVX512-NEXT:    vpblendd {{.*#+}} xmm2 = xmm2[0],xmm1[1],xmm2[2,3]98; AVX512-NEXT:    vmovq %xmm2, (%rdx)99; AVX512-NEXT:    vpunpckhdq {{.*#+}} xmm0 = xmm0[2],xmm1[2],xmm0[3],xmm1[3]100; AVX512-NEXT:    vmovq %xmm0, (%rcx)101; AVX512-NEXT:    vpextrq $1, %xmm0, (%r8)102; AVX512-NEXT:    retq103;104; AVX512-FCP-LABEL: load_i32_stride4_vf2:105; AVX512-FCP:       # %bb.0:106; AVX512-FCP-NEXT:    vmovdqa (%rdi), %xmm0107; AVX512-FCP-NEXT:    vmovdqa 16(%rdi), %xmm1108; AVX512-FCP-NEXT:    vpunpckldq {{.*#+}} xmm2 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]109; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm3 = [1,5,1,1]110; AVX512-FCP-NEXT:    vpermps (%rdi), %ymm3, %ymm3111; AVX512-FCP-NEXT:    vmovq %xmm2, (%rsi)112; AVX512-FCP-NEXT:    vmovlps %xmm3, (%rdx)113; AVX512-FCP-NEXT:    vpunpckhdq {{.*#+}} xmm0 = xmm0[2],xmm1[2],xmm0[3],xmm1[3]114; AVX512-FCP-NEXT:    vmovq %xmm0, (%rcx)115; AVX512-FCP-NEXT:    vpextrq $1, %xmm0, (%r8)116; AVX512-FCP-NEXT:    vzeroupper117; AVX512-FCP-NEXT:    retq118;119; AVX512DQ-LABEL: load_i32_stride4_vf2:120; AVX512DQ:       # %bb.0:121; AVX512DQ-NEXT:    vmovdqa (%rdi), %xmm0122; AVX512DQ-NEXT:    vmovdqa 16(%rdi), %xmm1123; AVX512DQ-NEXT:    vpunpckldq {{.*#+}} xmm2 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]124; AVX512DQ-NEXT:    vmovq %xmm2, (%rsi)125; AVX512DQ-NEXT:    vpshufd {{.*#+}} xmm2 = xmm0[1,1,1,1]126; AVX512DQ-NEXT:    vpblendd {{.*#+}} xmm2 = xmm2[0],xmm1[1],xmm2[2,3]127; AVX512DQ-NEXT:    vmovq %xmm2, (%rdx)128; AVX512DQ-NEXT:    vpunpckhdq {{.*#+}} xmm0 = xmm0[2],xmm1[2],xmm0[3],xmm1[3]129; AVX512DQ-NEXT:    vmovq %xmm0, (%rcx)130; AVX512DQ-NEXT:    vpextrq $1, %xmm0, (%r8)131; AVX512DQ-NEXT:    retq132;133; AVX512DQ-FCP-LABEL: load_i32_stride4_vf2:134; AVX512DQ-FCP:       # %bb.0:135; AVX512DQ-FCP-NEXT:    vmovdqa (%rdi), %xmm0136; AVX512DQ-FCP-NEXT:    vmovdqa 16(%rdi), %xmm1137; AVX512DQ-FCP-NEXT:    vpunpckldq {{.*#+}} xmm2 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]138; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm3 = [1,5,1,1]139; AVX512DQ-FCP-NEXT:    vpermps (%rdi), %ymm3, %ymm3140; AVX512DQ-FCP-NEXT:    vmovq %xmm2, (%rsi)141; AVX512DQ-FCP-NEXT:    vmovlps %xmm3, (%rdx)142; AVX512DQ-FCP-NEXT:    vpunpckhdq {{.*#+}} xmm0 = xmm0[2],xmm1[2],xmm0[3],xmm1[3]143; AVX512DQ-FCP-NEXT:    vmovq %xmm0, (%rcx)144; AVX512DQ-FCP-NEXT:    vpextrq $1, %xmm0, (%r8)145; AVX512DQ-FCP-NEXT:    vzeroupper146; AVX512DQ-FCP-NEXT:    retq147;148; AVX512BW-LABEL: load_i32_stride4_vf2:149; AVX512BW:       # %bb.0:150; AVX512BW-NEXT:    vmovdqa (%rdi), %xmm0151; AVX512BW-NEXT:    vmovdqa 16(%rdi), %xmm1152; AVX512BW-NEXT:    vpunpckldq {{.*#+}} xmm2 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]153; AVX512BW-NEXT:    vmovq %xmm2, (%rsi)154; AVX512BW-NEXT:    vpshufd {{.*#+}} xmm2 = xmm0[1,1,1,1]155; AVX512BW-NEXT:    vpblendd {{.*#+}} xmm2 = xmm2[0],xmm1[1],xmm2[2,3]156; AVX512BW-NEXT:    vmovq %xmm2, (%rdx)157; AVX512BW-NEXT:    vpunpckhdq {{.*#+}} xmm0 = xmm0[2],xmm1[2],xmm0[3],xmm1[3]158; AVX512BW-NEXT:    vmovq %xmm0, (%rcx)159; AVX512BW-NEXT:    vpextrq $1, %xmm0, (%r8)160; AVX512BW-NEXT:    retq161;162; AVX512BW-FCP-LABEL: load_i32_stride4_vf2:163; AVX512BW-FCP:       # %bb.0:164; AVX512BW-FCP-NEXT:    vmovdqa (%rdi), %xmm0165; AVX512BW-FCP-NEXT:    vmovdqa 16(%rdi), %xmm1166; AVX512BW-FCP-NEXT:    vpunpckldq {{.*#+}} xmm2 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]167; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm3 = [1,5,1,1]168; AVX512BW-FCP-NEXT:    vpermps (%rdi), %ymm3, %ymm3169; AVX512BW-FCP-NEXT:    vmovq %xmm2, (%rsi)170; AVX512BW-FCP-NEXT:    vmovlps %xmm3, (%rdx)171; AVX512BW-FCP-NEXT:    vpunpckhdq {{.*#+}} xmm0 = xmm0[2],xmm1[2],xmm0[3],xmm1[3]172; AVX512BW-FCP-NEXT:    vmovq %xmm0, (%rcx)173; AVX512BW-FCP-NEXT:    vpextrq $1, %xmm0, (%r8)174; AVX512BW-FCP-NEXT:    vzeroupper175; AVX512BW-FCP-NEXT:    retq176;177; AVX512DQ-BW-LABEL: load_i32_stride4_vf2:178; AVX512DQ-BW:       # %bb.0:179; AVX512DQ-BW-NEXT:    vmovdqa (%rdi), %xmm0180; AVX512DQ-BW-NEXT:    vmovdqa 16(%rdi), %xmm1181; AVX512DQ-BW-NEXT:    vpunpckldq {{.*#+}} xmm2 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]182; AVX512DQ-BW-NEXT:    vmovq %xmm2, (%rsi)183; AVX512DQ-BW-NEXT:    vpshufd {{.*#+}} xmm2 = xmm0[1,1,1,1]184; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} xmm2 = xmm2[0],xmm1[1],xmm2[2,3]185; AVX512DQ-BW-NEXT:    vmovq %xmm2, (%rdx)186; AVX512DQ-BW-NEXT:    vpunpckhdq {{.*#+}} xmm0 = xmm0[2],xmm1[2],xmm0[3],xmm1[3]187; AVX512DQ-BW-NEXT:    vmovq %xmm0, (%rcx)188; AVX512DQ-BW-NEXT:    vpextrq $1, %xmm0, (%r8)189; AVX512DQ-BW-NEXT:    retq190;191; AVX512DQ-BW-FCP-LABEL: load_i32_stride4_vf2:192; AVX512DQ-BW-FCP:       # %bb.0:193; AVX512DQ-BW-FCP-NEXT:    vmovdqa (%rdi), %xmm0194; AVX512DQ-BW-FCP-NEXT:    vmovdqa 16(%rdi), %xmm1195; AVX512DQ-BW-FCP-NEXT:    vpunpckldq {{.*#+}} xmm2 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]196; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm3 = [1,5,1,1]197; AVX512DQ-BW-FCP-NEXT:    vpermps (%rdi), %ymm3, %ymm3198; AVX512DQ-BW-FCP-NEXT:    vmovq %xmm2, (%rsi)199; AVX512DQ-BW-FCP-NEXT:    vmovlps %xmm3, (%rdx)200; AVX512DQ-BW-FCP-NEXT:    vpunpckhdq {{.*#+}} xmm0 = xmm0[2],xmm1[2],xmm0[3],xmm1[3]201; AVX512DQ-BW-FCP-NEXT:    vmovq %xmm0, (%rcx)202; AVX512DQ-BW-FCP-NEXT:    vpextrq $1, %xmm0, (%r8)203; AVX512DQ-BW-FCP-NEXT:    vzeroupper204; AVX512DQ-BW-FCP-NEXT:    retq205  %wide.vec = load <8 x i32>, ptr %in.vec, align 64206  %strided.vec0 = shufflevector <8 x i32> %wide.vec, <8 x i32> poison, <2 x i32> <i32 0, i32 4>207  %strided.vec1 = shufflevector <8 x i32> %wide.vec, <8 x i32> poison, <2 x i32> <i32 1, i32 5>208  %strided.vec2 = shufflevector <8 x i32> %wide.vec, <8 x i32> poison, <2 x i32> <i32 2, i32 6>209  %strided.vec3 = shufflevector <8 x i32> %wide.vec, <8 x i32> poison, <2 x i32> <i32 3, i32 7>210  store <2 x i32> %strided.vec0, ptr %out.vec0, align 64211  store <2 x i32> %strided.vec1, ptr %out.vec1, align 64212  store <2 x i32> %strided.vec2, ptr %out.vec2, align 64213  store <2 x i32> %strided.vec3, ptr %out.vec3, align 64214  ret void215}216 217define void @load_i32_stride4_vf4(ptr %in.vec, ptr %out.vec0, ptr %out.vec1, ptr %out.vec2, ptr %out.vec3) nounwind {218; SSE-LABEL: load_i32_stride4_vf4:219; SSE:       # %bb.0:220; SSE-NEXT:    movaps (%rdi), %xmm0221; SSE-NEXT:    movaps 16(%rdi), %xmm1222; SSE-NEXT:    movaps 32(%rdi), %xmm2223; SSE-NEXT:    movaps 48(%rdi), %xmm3224; SSE-NEXT:    movaps %xmm2, %xmm4225; SSE-NEXT:    unpcklps {{.*#+}} xmm4 = xmm4[0],xmm3[0],xmm4[1],xmm3[1]226; SSE-NEXT:    movaps %xmm0, %xmm5227; SSE-NEXT:    unpcklps {{.*#+}} xmm5 = xmm5[0],xmm1[0],xmm5[1],xmm1[1]228; SSE-NEXT:    movaps %xmm5, %xmm6229; SSE-NEXT:    movlhps {{.*#+}} xmm6 = xmm6[0],xmm4[0]230; SSE-NEXT:    unpckhpd {{.*#+}} xmm5 = xmm5[1],xmm4[1]231; SSE-NEXT:    unpckhps {{.*#+}} xmm2 = xmm2[2],xmm3[2],xmm2[3],xmm3[3]232; SSE-NEXT:    unpckhps {{.*#+}} xmm0 = xmm0[2],xmm1[2],xmm0[3],xmm1[3]233; SSE-NEXT:    movaps %xmm0, %xmm1234; SSE-NEXT:    movlhps {{.*#+}} xmm1 = xmm1[0],xmm2[0]235; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm2[1]236; SSE-NEXT:    movaps %xmm6, (%rsi)237; SSE-NEXT:    movaps %xmm5, (%rdx)238; SSE-NEXT:    movaps %xmm1, (%rcx)239; SSE-NEXT:    movaps %xmm0, (%r8)240; SSE-NEXT:    retq241;242; AVX-LABEL: load_i32_stride4_vf4:243; AVX:       # %bb.0:244; AVX-NEXT:    vmovaps (%rdi), %xmm0245; AVX-NEXT:    vmovaps 16(%rdi), %xmm1246; AVX-NEXT:    vmovaps 32(%rdi), %xmm2247; AVX-NEXT:    vmovaps 48(%rdi), %xmm3248; AVX-NEXT:    vmovlhps {{.*#+}} xmm4 = xmm3[0],xmm2[0]249; AVX-NEXT:    vunpcklps {{.*#+}} xmm5 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]250; AVX-NEXT:    vshufps {{.*#+}} xmm4 = xmm5[0,1],xmm4[2,0]251; AVX-NEXT:    vinsertps {{.*#+}} xmm5 = xmm0[1],xmm1[1],zero,zero252; AVX-NEXT:    vunpcklps {{.*#+}} xmm6 = xmm2[0],xmm3[0],xmm2[1],xmm3[1]253; AVX-NEXT:    vmovsd {{.*#+}} xmm5 = xmm5[0],xmm6[1]254; AVX-NEXT:    vunpckhps {{.*#+}} xmm6 = xmm0[2],xmm1[2],xmm0[3],xmm1[3]255; AVX-NEXT:    vinsertps {{.*#+}} xmm7 = zero,zero,xmm2[2],xmm3[2]256; AVX-NEXT:    vmovsd {{.*#+}} xmm6 = xmm6[0],xmm7[1]257; AVX-NEXT:    vunpckhps {{.*#+}} xmm2 = xmm2[2],xmm3[2],xmm2[3],xmm3[3]258; AVX-NEXT:    vshufps {{.*#+}} xmm0 = xmm1[3,0],xmm0[3,0]259; AVX-NEXT:    vshufps {{.*#+}} xmm0 = xmm0[2,0],xmm2[2,3]260; AVX-NEXT:    vmovaps %xmm4, (%rsi)261; AVX-NEXT:    vmovaps %xmm5, (%rdx)262; AVX-NEXT:    vmovaps %xmm6, (%rcx)263; AVX-NEXT:    vmovaps %xmm0, (%r8)264; AVX-NEXT:    retq265;266; AVX2-LABEL: load_i32_stride4_vf4:267; AVX2:       # %bb.0:268; AVX2-NEXT:    vmovddup {{.*#+}} xmm0 = [0,4,0,4]269; AVX2-NEXT:    # xmm0 = mem[0,0]270; AVX2-NEXT:    vmovaps 32(%rdi), %ymm1271; AVX2-NEXT:    vpermps %ymm1, %ymm0, %ymm0272; AVX2-NEXT:    vmovaps (%rdi), %xmm2273; AVX2-NEXT:    vmovaps 16(%rdi), %xmm3274; AVX2-NEXT:    vmovaps 32(%rdi), %xmm4275; AVX2-NEXT:    vunpcklps {{.*#+}} xmm5 = xmm2[0],xmm3[0],xmm2[1],xmm3[1]276; AVX2-NEXT:    vblendps {{.*#+}} xmm0 = xmm5[0,1],xmm0[2,3]277; AVX2-NEXT:    vmovaps 48(%rdi), %xmm5278; AVX2-NEXT:    vunpcklps {{.*#+}} xmm6 = xmm4[0],xmm5[0],xmm4[1],xmm5[1]279; AVX2-NEXT:    vmovsd {{.*#+}} xmm7 = [1,5,0,0]280; AVX2-NEXT:    vmovaps (%rdi), %ymm8281; AVX2-NEXT:    vpermps %ymm8, %ymm7, %ymm7282; AVX2-NEXT:    vblendps {{.*#+}} xmm6 = xmm7[0,1],xmm6[2,3]283; AVX2-NEXT:    vmovddup {{.*#+}} xmm7 = [2,6,2,6]284; AVX2-NEXT:    # xmm7 = mem[0,0]285; AVX2-NEXT:    vpermps %ymm1, %ymm7, %ymm1286; AVX2-NEXT:    vunpckhps {{.*#+}} xmm2 = xmm2[2],xmm3[2],xmm2[3],xmm3[3]287; AVX2-NEXT:    vblendps {{.*#+}} xmm1 = xmm2[0,1],xmm1[2,3]288; AVX2-NEXT:    vunpckhps {{.*#+}} xmm2 = xmm4[2],xmm5[2],xmm4[3],xmm5[3]289; AVX2-NEXT:    vmovsd {{.*#+}} xmm3 = [3,7,0,0]290; AVX2-NEXT:    vpermps %ymm8, %ymm3, %ymm3291; AVX2-NEXT:    vblendps {{.*#+}} xmm2 = xmm3[0,1],xmm2[2,3]292; AVX2-NEXT:    vmovaps %xmm0, (%rsi)293; AVX2-NEXT:    vmovaps %xmm6, (%rdx)294; AVX2-NEXT:    vmovaps %xmm1, (%rcx)295; AVX2-NEXT:    vmovaps %xmm2, (%r8)296; AVX2-NEXT:    vzeroupper297; AVX2-NEXT:    retq298;299; AVX2-FP-LABEL: load_i32_stride4_vf4:300; AVX2-FP:       # %bb.0:301; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm0 = [0,4,0,4]302; AVX2-FP-NEXT:    # xmm0 = mem[0,0]303; AVX2-FP-NEXT:    vmovaps 32(%rdi), %ymm1304; AVX2-FP-NEXT:    vpermps %ymm1, %ymm0, %ymm0305; AVX2-FP-NEXT:    vmovaps (%rdi), %xmm2306; AVX2-FP-NEXT:    vmovaps 16(%rdi), %xmm3307; AVX2-FP-NEXT:    vmovaps 32(%rdi), %xmm4308; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm5 = xmm2[0],xmm3[0],xmm2[1],xmm3[1]309; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm0 = xmm5[0,1],xmm0[2,3]310; AVX2-FP-NEXT:    vmovaps 48(%rdi), %xmm5311; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm6 = xmm4[0],xmm5[0],xmm4[1],xmm5[1]312; AVX2-FP-NEXT:    vmovsd {{.*#+}} xmm7 = [1,5,0,0]313; AVX2-FP-NEXT:    vmovaps (%rdi), %ymm8314; AVX2-FP-NEXT:    vpermps %ymm8, %ymm7, %ymm7315; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm6 = xmm7[0,1],xmm6[2,3]316; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm7 = [2,6,2,6]317; AVX2-FP-NEXT:    # xmm7 = mem[0,0]318; AVX2-FP-NEXT:    vpermps %ymm1, %ymm7, %ymm1319; AVX2-FP-NEXT:    vunpckhps {{.*#+}} xmm2 = xmm2[2],xmm3[2],xmm2[3],xmm3[3]320; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm1 = xmm2[0,1],xmm1[2,3]321; AVX2-FP-NEXT:    vunpckhps {{.*#+}} xmm2 = xmm4[2],xmm5[2],xmm4[3],xmm5[3]322; AVX2-FP-NEXT:    vmovsd {{.*#+}} xmm3 = [3,7,0,0]323; AVX2-FP-NEXT:    vpermps %ymm8, %ymm3, %ymm3324; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm2 = xmm3[0,1],xmm2[2,3]325; AVX2-FP-NEXT:    vmovaps %xmm0, (%rsi)326; AVX2-FP-NEXT:    vmovaps %xmm6, (%rdx)327; AVX2-FP-NEXT:    vmovaps %xmm1, (%rcx)328; AVX2-FP-NEXT:    vmovaps %xmm2, (%r8)329; AVX2-FP-NEXT:    vzeroupper330; AVX2-FP-NEXT:    retq331;332; AVX2-FCP-LABEL: load_i32_stride4_vf4:333; AVX2-FCP:       # %bb.0:334; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm0 = [0,4,0,4]335; AVX2-FCP-NEXT:    # xmm0 = mem[0,0]336; AVX2-FCP-NEXT:    vmovaps 32(%rdi), %ymm1337; AVX2-FCP-NEXT:    vpermps %ymm1, %ymm0, %ymm0338; AVX2-FCP-NEXT:    vmovaps (%rdi), %xmm2339; AVX2-FCP-NEXT:    vmovaps 16(%rdi), %xmm3340; AVX2-FCP-NEXT:    vmovaps 32(%rdi), %xmm4341; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm5 = xmm2[0],xmm3[0],xmm2[1],xmm3[1]342; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm0 = xmm5[0,1],xmm0[2,3]343; AVX2-FCP-NEXT:    vmovaps 48(%rdi), %xmm5344; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm6 = xmm4[0],xmm5[0],xmm4[1],xmm5[1]345; AVX2-FCP-NEXT:    vmovsd {{.*#+}} xmm7 = [1,5,0,0]346; AVX2-FCP-NEXT:    vmovaps (%rdi), %ymm8347; AVX2-FCP-NEXT:    vpermps %ymm8, %ymm7, %ymm7348; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm6 = xmm7[0,1],xmm6[2,3]349; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm7 = [2,6,2,6]350; AVX2-FCP-NEXT:    # xmm7 = mem[0,0]351; AVX2-FCP-NEXT:    vpermps %ymm1, %ymm7, %ymm1352; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} xmm2 = xmm2[2],xmm3[2],xmm2[3],xmm3[3]353; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm1 = xmm2[0,1],xmm1[2,3]354; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} xmm2 = xmm4[2],xmm5[2],xmm4[3],xmm5[3]355; AVX2-FCP-NEXT:    vmovsd {{.*#+}} xmm3 = [3,7,0,0]356; AVX2-FCP-NEXT:    vpermps %ymm8, %ymm3, %ymm3357; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm2 = xmm3[0,1],xmm2[2,3]358; AVX2-FCP-NEXT:    vmovaps %xmm0, (%rsi)359; AVX2-FCP-NEXT:    vmovaps %xmm6, (%rdx)360; AVX2-FCP-NEXT:    vmovaps %xmm1, (%rcx)361; AVX2-FCP-NEXT:    vmovaps %xmm2, (%r8)362; AVX2-FCP-NEXT:    vzeroupper363; AVX2-FCP-NEXT:    retq364;365; AVX512-LABEL: load_i32_stride4_vf4:366; AVX512:       # %bb.0:367; AVX512-NEXT:    vpmovsxbd {{.*#+}} xmm0 = [0,4,8,12]368; AVX512-NEXT:    vmovaps (%rdi), %zmm1369; AVX512-NEXT:    vpermps %zmm1, %zmm0, %zmm0370; AVX512-NEXT:    vpmovsxbd {{.*#+}} xmm2 = [1,5,9,13]371; AVX512-NEXT:    vpermps %zmm1, %zmm2, %zmm2372; AVX512-NEXT:    vpmovsxbd {{.*#+}} xmm3 = [2,6,10,14]373; AVX512-NEXT:    vpermps %zmm1, %zmm3, %zmm3374; AVX512-NEXT:    vpmovsxbd {{.*#+}} xmm4 = [3,7,11,15]375; AVX512-NEXT:    vpermps %zmm1, %zmm4, %zmm1376; AVX512-NEXT:    vmovaps %xmm0, (%rsi)377; AVX512-NEXT:    vmovaps %xmm2, (%rdx)378; AVX512-NEXT:    vmovaps %xmm3, (%rcx)379; AVX512-NEXT:    vmovaps %xmm1, (%r8)380; AVX512-NEXT:    vzeroupper381; AVX512-NEXT:    retq382;383; AVX512-FCP-LABEL: load_i32_stride4_vf4:384; AVX512-FCP:       # %bb.0:385; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm0 = [0,4,8,12]386; AVX512-FCP-NEXT:    vmovaps (%rdi), %zmm1387; AVX512-FCP-NEXT:    vpermps %zmm1, %zmm0, %zmm0388; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm2 = [1,5,9,13]389; AVX512-FCP-NEXT:    vpermps %zmm1, %zmm2, %zmm2390; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm3 = [2,6,10,14]391; AVX512-FCP-NEXT:    vpermps %zmm1, %zmm3, %zmm3392; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm4 = [3,7,11,15]393; AVX512-FCP-NEXT:    vpermps %zmm1, %zmm4, %zmm1394; AVX512-FCP-NEXT:    vmovaps %xmm0, (%rsi)395; AVX512-FCP-NEXT:    vmovaps %xmm2, (%rdx)396; AVX512-FCP-NEXT:    vmovaps %xmm3, (%rcx)397; AVX512-FCP-NEXT:    vmovaps %xmm1, (%r8)398; AVX512-FCP-NEXT:    vzeroupper399; AVX512-FCP-NEXT:    retq400;401; AVX512DQ-LABEL: load_i32_stride4_vf4:402; AVX512DQ:       # %bb.0:403; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} xmm0 = [0,4,8,12]404; AVX512DQ-NEXT:    vmovaps (%rdi), %zmm1405; AVX512DQ-NEXT:    vpermps %zmm1, %zmm0, %zmm0406; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} xmm2 = [1,5,9,13]407; AVX512DQ-NEXT:    vpermps %zmm1, %zmm2, %zmm2408; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} xmm3 = [2,6,10,14]409; AVX512DQ-NEXT:    vpermps %zmm1, %zmm3, %zmm3410; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} xmm4 = [3,7,11,15]411; AVX512DQ-NEXT:    vpermps %zmm1, %zmm4, %zmm1412; AVX512DQ-NEXT:    vmovaps %xmm0, (%rsi)413; AVX512DQ-NEXT:    vmovaps %xmm2, (%rdx)414; AVX512DQ-NEXT:    vmovaps %xmm3, (%rcx)415; AVX512DQ-NEXT:    vmovaps %xmm1, (%r8)416; AVX512DQ-NEXT:    vzeroupper417; AVX512DQ-NEXT:    retq418;419; AVX512DQ-FCP-LABEL: load_i32_stride4_vf4:420; AVX512DQ-FCP:       # %bb.0:421; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm0 = [0,4,8,12]422; AVX512DQ-FCP-NEXT:    vmovaps (%rdi), %zmm1423; AVX512DQ-FCP-NEXT:    vpermps %zmm1, %zmm0, %zmm0424; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm2 = [1,5,9,13]425; AVX512DQ-FCP-NEXT:    vpermps %zmm1, %zmm2, %zmm2426; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm3 = [2,6,10,14]427; AVX512DQ-FCP-NEXT:    vpermps %zmm1, %zmm3, %zmm3428; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm4 = [3,7,11,15]429; AVX512DQ-FCP-NEXT:    vpermps %zmm1, %zmm4, %zmm1430; AVX512DQ-FCP-NEXT:    vmovaps %xmm0, (%rsi)431; AVX512DQ-FCP-NEXT:    vmovaps %xmm2, (%rdx)432; AVX512DQ-FCP-NEXT:    vmovaps %xmm3, (%rcx)433; AVX512DQ-FCP-NEXT:    vmovaps %xmm1, (%r8)434; AVX512DQ-FCP-NEXT:    vzeroupper435; AVX512DQ-FCP-NEXT:    retq436;437; AVX512BW-LABEL: load_i32_stride4_vf4:438; AVX512BW:       # %bb.0:439; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} xmm0 = [0,4,8,12]440; AVX512BW-NEXT:    vmovaps (%rdi), %zmm1441; AVX512BW-NEXT:    vpermps %zmm1, %zmm0, %zmm0442; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} xmm2 = [1,5,9,13]443; AVX512BW-NEXT:    vpermps %zmm1, %zmm2, %zmm2444; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} xmm3 = [2,6,10,14]445; AVX512BW-NEXT:    vpermps %zmm1, %zmm3, %zmm3446; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} xmm4 = [3,7,11,15]447; AVX512BW-NEXT:    vpermps %zmm1, %zmm4, %zmm1448; AVX512BW-NEXT:    vmovaps %xmm0, (%rsi)449; AVX512BW-NEXT:    vmovaps %xmm2, (%rdx)450; AVX512BW-NEXT:    vmovaps %xmm3, (%rcx)451; AVX512BW-NEXT:    vmovaps %xmm1, (%r8)452; AVX512BW-NEXT:    vzeroupper453; AVX512BW-NEXT:    retq454;455; AVX512BW-FCP-LABEL: load_i32_stride4_vf4:456; AVX512BW-FCP:       # %bb.0:457; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm0 = [0,4,8,12]458; AVX512BW-FCP-NEXT:    vmovaps (%rdi), %zmm1459; AVX512BW-FCP-NEXT:    vpermps %zmm1, %zmm0, %zmm0460; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm2 = [1,5,9,13]461; AVX512BW-FCP-NEXT:    vpermps %zmm1, %zmm2, %zmm2462; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm3 = [2,6,10,14]463; AVX512BW-FCP-NEXT:    vpermps %zmm1, %zmm3, %zmm3464; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm4 = [3,7,11,15]465; AVX512BW-FCP-NEXT:    vpermps %zmm1, %zmm4, %zmm1466; AVX512BW-FCP-NEXT:    vmovaps %xmm0, (%rsi)467; AVX512BW-FCP-NEXT:    vmovaps %xmm2, (%rdx)468; AVX512BW-FCP-NEXT:    vmovaps %xmm3, (%rcx)469; AVX512BW-FCP-NEXT:    vmovaps %xmm1, (%r8)470; AVX512BW-FCP-NEXT:    vzeroupper471; AVX512BW-FCP-NEXT:    retq472;473; AVX512DQ-BW-LABEL: load_i32_stride4_vf4:474; AVX512DQ-BW:       # %bb.0:475; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} xmm0 = [0,4,8,12]476; AVX512DQ-BW-NEXT:    vmovaps (%rdi), %zmm1477; AVX512DQ-BW-NEXT:    vpermps %zmm1, %zmm0, %zmm0478; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} xmm2 = [1,5,9,13]479; AVX512DQ-BW-NEXT:    vpermps %zmm1, %zmm2, %zmm2480; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} xmm3 = [2,6,10,14]481; AVX512DQ-BW-NEXT:    vpermps %zmm1, %zmm3, %zmm3482; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} xmm4 = [3,7,11,15]483; AVX512DQ-BW-NEXT:    vpermps %zmm1, %zmm4, %zmm1484; AVX512DQ-BW-NEXT:    vmovaps %xmm0, (%rsi)485; AVX512DQ-BW-NEXT:    vmovaps %xmm2, (%rdx)486; AVX512DQ-BW-NEXT:    vmovaps %xmm3, (%rcx)487; AVX512DQ-BW-NEXT:    vmovaps %xmm1, (%r8)488; AVX512DQ-BW-NEXT:    vzeroupper489; AVX512DQ-BW-NEXT:    retq490;491; AVX512DQ-BW-FCP-LABEL: load_i32_stride4_vf4:492; AVX512DQ-BW-FCP:       # %bb.0:493; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm0 = [0,4,8,12]494; AVX512DQ-BW-FCP-NEXT:    vmovaps (%rdi), %zmm1495; AVX512DQ-BW-FCP-NEXT:    vpermps %zmm1, %zmm0, %zmm0496; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm2 = [1,5,9,13]497; AVX512DQ-BW-FCP-NEXT:    vpermps %zmm1, %zmm2, %zmm2498; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm3 = [2,6,10,14]499; AVX512DQ-BW-FCP-NEXT:    vpermps %zmm1, %zmm3, %zmm3500; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm4 = [3,7,11,15]501; AVX512DQ-BW-FCP-NEXT:    vpermps %zmm1, %zmm4, %zmm1502; AVX512DQ-BW-FCP-NEXT:    vmovaps %xmm0, (%rsi)503; AVX512DQ-BW-FCP-NEXT:    vmovaps %xmm2, (%rdx)504; AVX512DQ-BW-FCP-NEXT:    vmovaps %xmm3, (%rcx)505; AVX512DQ-BW-FCP-NEXT:    vmovaps %xmm1, (%r8)506; AVX512DQ-BW-FCP-NEXT:    vzeroupper507; AVX512DQ-BW-FCP-NEXT:    retq508  %wide.vec = load <16 x i32>, ptr %in.vec, align 64509  %strided.vec0 = shufflevector <16 x i32> %wide.vec, <16 x i32> poison, <4 x i32> <i32 0, i32 4, i32 8, i32 12>510  %strided.vec1 = shufflevector <16 x i32> %wide.vec, <16 x i32> poison, <4 x i32> <i32 1, i32 5, i32 9, i32 13>511  %strided.vec2 = shufflevector <16 x i32> %wide.vec, <16 x i32> poison, <4 x i32> <i32 2, i32 6, i32 10, i32 14>512  %strided.vec3 = shufflevector <16 x i32> %wide.vec, <16 x i32> poison, <4 x i32> <i32 3, i32 7, i32 11, i32 15>513  store <4 x i32> %strided.vec0, ptr %out.vec0, align 64514  store <4 x i32> %strided.vec1, ptr %out.vec1, align 64515  store <4 x i32> %strided.vec2, ptr %out.vec2, align 64516  store <4 x i32> %strided.vec3, ptr %out.vec3, align 64517  ret void518}519 520define void @load_i32_stride4_vf8(ptr %in.vec, ptr %out.vec0, ptr %out.vec1, ptr %out.vec2, ptr %out.vec3) nounwind {521; SSE-LABEL: load_i32_stride4_vf8:522; SSE:       # %bb.0:523; SSE-NEXT:    movaps (%rdi), %xmm0524; SSE-NEXT:    movaps 16(%rdi), %xmm3525; SSE-NEXT:    movaps 32(%rdi), %xmm2526; SSE-NEXT:    movaps 48(%rdi), %xmm4527; SSE-NEXT:    movaps 80(%rdi), %xmm5528; SSE-NEXT:    movaps 64(%rdi), %xmm1529; SSE-NEXT:    movaps 112(%rdi), %xmm6530; SSE-NEXT:    movaps 96(%rdi), %xmm7531; SSE-NEXT:    movaps %xmm7, %xmm8532; SSE-NEXT:    unpcklps {{.*#+}} xmm8 = xmm8[0],xmm6[0],xmm8[1],xmm6[1]533; SSE-NEXT:    movaps %xmm1, %xmm9534; SSE-NEXT:    unpcklps {{.*#+}} xmm9 = xmm9[0],xmm5[0],xmm9[1],xmm5[1]535; SSE-NEXT:    movaps %xmm9, %xmm10536; SSE-NEXT:    movlhps {{.*#+}} xmm10 = xmm10[0],xmm8[0]537; SSE-NEXT:    movaps %xmm2, %xmm11538; SSE-NEXT:    unpcklps {{.*#+}} xmm11 = xmm11[0],xmm4[0],xmm11[1],xmm4[1]539; SSE-NEXT:    movaps %xmm0, %xmm12540; SSE-NEXT:    unpcklps {{.*#+}} xmm12 = xmm12[0],xmm3[0],xmm12[1],xmm3[1]541; SSE-NEXT:    movaps %xmm12, %xmm13542; SSE-NEXT:    movlhps {{.*#+}} xmm13 = xmm13[0],xmm11[0]543; SSE-NEXT:    unpckhpd {{.*#+}} xmm9 = xmm9[1],xmm8[1]544; SSE-NEXT:    unpckhpd {{.*#+}} xmm12 = xmm12[1],xmm11[1]545; SSE-NEXT:    unpckhps {{.*#+}} xmm7 = xmm7[2],xmm6[2],xmm7[3],xmm6[3]546; SSE-NEXT:    unpckhps {{.*#+}} xmm1 = xmm1[2],xmm5[2],xmm1[3],xmm5[3]547; SSE-NEXT:    movaps %xmm1, %xmm5548; SSE-NEXT:    movlhps {{.*#+}} xmm5 = xmm5[0],xmm7[0]549; SSE-NEXT:    unpckhps {{.*#+}} xmm2 = xmm2[2],xmm4[2],xmm2[3],xmm4[3]550; SSE-NEXT:    unpckhps {{.*#+}} xmm0 = xmm0[2],xmm3[2],xmm0[3],xmm3[3]551; SSE-NEXT:    movaps %xmm0, %xmm3552; SSE-NEXT:    movlhps {{.*#+}} xmm3 = xmm3[0],xmm2[0]553; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm7[1]554; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm2[1]555; SSE-NEXT:    movaps %xmm10, 16(%rsi)556; SSE-NEXT:    movaps %xmm13, (%rsi)557; SSE-NEXT:    movaps %xmm9, 16(%rdx)558; SSE-NEXT:    movaps %xmm12, (%rdx)559; SSE-NEXT:    movaps %xmm5, 16(%rcx)560; SSE-NEXT:    movaps %xmm3, (%rcx)561; SSE-NEXT:    movaps %xmm1, 16(%r8)562; SSE-NEXT:    movaps %xmm0, (%r8)563; SSE-NEXT:    retq564;565; AVX-LABEL: load_i32_stride4_vf8:566; AVX:       # %bb.0:567; AVX-NEXT:    vmovaps 64(%rdi), %ymm0568; AVX-NEXT:    vmovaps 96(%rdi), %ymm1569; AVX-NEXT:    vperm2f128 {{.*#+}} ymm2 = ymm1[2,3,0,1]570; AVX-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm1[0],ymm2[0],ymm1[2],ymm2[2]571; AVX-NEXT:    vperm2f128 {{.*#+}} ymm4 = ymm0[2,3,0,1]572; AVX-NEXT:    vunpcklps {{.*#+}} ymm5 = ymm4[0],ymm0[0],ymm4[1],ymm0[1],ymm4[4],ymm0[4],ymm4[5],ymm0[5]573; AVX-NEXT:    vshufps {{.*#+}} ymm3 = ymm5[0,1],ymm3[2,0],ymm5[4,5],ymm3[6,4]574; AVX-NEXT:    vmovaps (%rdi), %xmm5575; AVX-NEXT:    vmovaps 16(%rdi), %xmm6576; AVX-NEXT:    vmovaps 32(%rdi), %xmm7577; AVX-NEXT:    vmovaps 48(%rdi), %xmm8578; AVX-NEXT:    vmovlhps {{.*#+}} xmm9 = xmm8[0],xmm7[0]579; AVX-NEXT:    vunpcklps {{.*#+}} xmm10 = xmm5[0],xmm6[0],xmm5[1],xmm6[1]580; AVX-NEXT:    vshufps {{.*#+}} xmm9 = xmm10[0,1],xmm9[2,0]581; AVX-NEXT:    vblendps {{.*#+}} ymm3 = ymm9[0,1,2,3],ymm3[4,5,6,7]582; AVX-NEXT:    vunpcklps {{.*#+}} ymm9 = ymm2[0],ymm1[0],ymm2[1],ymm1[1],ymm2[4],ymm1[4],ymm2[5],ymm1[5]583; AVX-NEXT:    vshufps {{.*#+}} ymm10 = ymm0[1,0],ymm4[1,0],ymm0[5,4],ymm4[5,4]584; AVX-NEXT:    vshufps {{.*#+}} ymm9 = ymm10[2,0],ymm9[2,3],ymm10[6,4],ymm9[6,7]585; AVX-NEXT:    vinsertps {{.*#+}} xmm10 = xmm5[1],xmm6[1],zero,zero586; AVX-NEXT:    vunpcklps {{.*#+}} xmm11 = xmm7[0],xmm8[0],xmm7[1],xmm8[1]587; AVX-NEXT:    vmovsd {{.*#+}} xmm10 = xmm10[0],xmm11[1]588; AVX-NEXT:    vblendps {{.*#+}} ymm9 = ymm10[0,1,2,3],ymm9[4,5,6,7]589; AVX-NEXT:    vunpckhpd {{.*#+}} ymm10 = ymm1[1],ymm2[1],ymm1[3],ymm2[3]590; AVX-NEXT:    vunpckhps {{.*#+}} ymm11 = ymm4[2],ymm0[2],ymm4[3],ymm0[3],ymm4[6],ymm0[6],ymm4[7],ymm0[7]591; AVX-NEXT:    vshufps {{.*#+}} ymm10 = ymm11[0,1],ymm10[2,0],ymm11[4,5],ymm10[6,4]592; AVX-NEXT:    vunpckhps {{.*#+}} xmm11 = xmm5[2],xmm6[2],xmm5[3],xmm6[3]593; AVX-NEXT:    vinsertps {{.*#+}} xmm12 = zero,zero,xmm7[2],xmm8[2]594; AVX-NEXT:    vmovsd {{.*#+}} xmm11 = xmm11[0],xmm12[1]595; AVX-NEXT:    vblendps {{.*#+}} ymm10 = ymm11[0,1,2,3],ymm10[4,5,6,7]596; AVX-NEXT:    vunpckhps {{.*#+}} ymm1 = ymm2[2],ymm1[2],ymm2[3],ymm1[3],ymm2[6],ymm1[6],ymm2[7],ymm1[7]597; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[3,0],ymm4[3,0],ymm0[7,4],ymm4[7,4]598; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[2,0],ymm1[2,3],ymm0[6,4],ymm1[6,7]599; AVX-NEXT:    vunpckhps {{.*#+}} xmm1 = xmm7[2],xmm8[2],xmm7[3],xmm8[3]600; AVX-NEXT:    vshufps {{.*#+}} xmm2 = xmm6[3,0],xmm5[3,0]601; AVX-NEXT:    vshufps {{.*#+}} xmm1 = xmm2[2,0],xmm1[2,3]602; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]603; AVX-NEXT:    vmovaps %ymm3, (%rsi)604; AVX-NEXT:    vmovaps %ymm9, (%rdx)605; AVX-NEXT:    vmovaps %ymm10, (%rcx)606; AVX-NEXT:    vmovaps %ymm0, (%r8)607; AVX-NEXT:    vzeroupper608; AVX-NEXT:    retq609;610; AVX2-LABEL: load_i32_stride4_vf8:611; AVX2:       # %bb.0:612; AVX2-NEXT:    vmovaps (%rdi), %ymm0613; AVX2-NEXT:    vmovaps 32(%rdi), %ymm3614; AVX2-NEXT:    vmovaps 64(%rdi), %ymm1615; AVX2-NEXT:    vmovaps 96(%rdi), %ymm2616; AVX2-NEXT:    vbroadcastsd {{.*#+}} ymm4 = [0,4,0,4,0,4,0,4]617; AVX2-NEXT:    vpermps %ymm2, %ymm4, %ymm5618; AVX2-NEXT:    vpermps %ymm1, %ymm4, %ymm6619; AVX2-NEXT:    vblendps {{.*#+}} ymm5 = ymm6[0,1,2,3,4,5],ymm5[6,7]620; AVX2-NEXT:    vpermps %ymm3, %ymm4, %ymm4621; AVX2-NEXT:    vmovaps (%rdi), %xmm6622; AVX2-NEXT:    vmovaps 16(%rdi), %xmm7623; AVX2-NEXT:    vmovaps 32(%rdi), %xmm8624; AVX2-NEXT:    vunpcklps {{.*#+}} xmm9 = xmm6[0],xmm7[0],xmm6[1],xmm7[1]625; AVX2-NEXT:    vblendps {{.*#+}} xmm4 = xmm9[0,1],xmm4[2,3]626; AVX2-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm5[4,5,6,7]627; AVX2-NEXT:    vbroadcastsd {{.*#+}} ymm5 = [1,5,1,5,1,5,1,5]628; AVX2-NEXT:    vpermps %ymm2, %ymm5, %ymm9629; AVX2-NEXT:    vpermps %ymm1, %ymm5, %ymm10630; AVX2-NEXT:    vblendps {{.*#+}} ymm9 = ymm10[0,1,2,3,4,5],ymm9[6,7]631; AVX2-NEXT:    vmovaps 48(%rdi), %xmm10632; AVX2-NEXT:    vunpcklps {{.*#+}} xmm11 = xmm8[0],xmm10[0],xmm8[1],xmm10[1]633; AVX2-NEXT:    vpermps %ymm0, %ymm5, %ymm5634; AVX2-NEXT:    vblendps {{.*#+}} xmm5 = xmm5[0,1],xmm11[2,3]635; AVX2-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3],ymm9[4,5,6,7]636; AVX2-NEXT:    vbroadcastsd {{.*#+}} ymm9 = [2,6,2,6,2,6,2,6]637; AVX2-NEXT:    vpermps %ymm2, %ymm9, %ymm11638; AVX2-NEXT:    vpermps %ymm1, %ymm9, %ymm12639; AVX2-NEXT:    vblendps {{.*#+}} ymm11 = ymm12[0,1,2,3,4,5],ymm11[6,7]640; AVX2-NEXT:    vpermps %ymm3, %ymm9, %ymm3641; AVX2-NEXT:    vunpckhps {{.*#+}} xmm6 = xmm6[2],xmm7[2],xmm6[3],xmm7[3]642; AVX2-NEXT:    vblendps {{.*#+}} xmm3 = xmm6[0,1],xmm3[2,3]643; AVX2-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm11[4,5,6,7]644; AVX2-NEXT:    vbroadcastsd {{.*#+}} ymm6 = [3,7,3,7,3,7,3,7]645; AVX2-NEXT:    vpermps %ymm2, %ymm6, %ymm2646; AVX2-NEXT:    vpermps %ymm1, %ymm6, %ymm1647; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]648; AVX2-NEXT:    vunpckhps {{.*#+}} xmm2 = xmm8[2],xmm10[2],xmm8[3],xmm10[3]649; AVX2-NEXT:    vpermps %ymm0, %ymm6, %ymm0650; AVX2-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm2[2,3]651; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]652; AVX2-NEXT:    vmovaps %ymm4, (%rsi)653; AVX2-NEXT:    vmovaps %ymm5, (%rdx)654; AVX2-NEXT:    vmovaps %ymm3, (%rcx)655; AVX2-NEXT:    vmovaps %ymm0, (%r8)656; AVX2-NEXT:    vzeroupper657; AVX2-NEXT:    retq658;659; AVX2-FP-LABEL: load_i32_stride4_vf8:660; AVX2-FP:       # %bb.0:661; AVX2-FP-NEXT:    vmovaps (%rdi), %ymm0662; AVX2-FP-NEXT:    vmovaps 32(%rdi), %ymm3663; AVX2-FP-NEXT:    vmovaps 64(%rdi), %ymm1664; AVX2-FP-NEXT:    vmovaps 96(%rdi), %ymm2665; AVX2-FP-NEXT:    vbroadcastsd {{.*#+}} ymm4 = [0,4,0,4,0,4,0,4]666; AVX2-FP-NEXT:    vpermps %ymm2, %ymm4, %ymm5667; AVX2-FP-NEXT:    vpermps %ymm1, %ymm4, %ymm6668; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm5 = ymm6[0,1,2,3,4,5],ymm5[6,7]669; AVX2-FP-NEXT:    vpermps %ymm3, %ymm4, %ymm4670; AVX2-FP-NEXT:    vmovaps (%rdi), %xmm6671; AVX2-FP-NEXT:    vmovaps 16(%rdi), %xmm7672; AVX2-FP-NEXT:    vmovaps 32(%rdi), %xmm8673; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm9 = xmm6[0],xmm7[0],xmm6[1],xmm7[1]674; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm4 = xmm9[0,1],xmm4[2,3]675; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm5[4,5,6,7]676; AVX2-FP-NEXT:    vbroadcastsd {{.*#+}} ymm5 = [1,5,1,5,1,5,1,5]677; AVX2-FP-NEXT:    vpermps %ymm2, %ymm5, %ymm9678; AVX2-FP-NEXT:    vpermps %ymm1, %ymm5, %ymm10679; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm9 = ymm10[0,1,2,3,4,5],ymm9[6,7]680; AVX2-FP-NEXT:    vmovaps 48(%rdi), %xmm10681; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm11 = xmm8[0],xmm10[0],xmm8[1],xmm10[1]682; AVX2-FP-NEXT:    vpermps %ymm0, %ymm5, %ymm5683; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm5 = xmm5[0,1],xmm11[2,3]684; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3],ymm9[4,5,6,7]685; AVX2-FP-NEXT:    vbroadcastsd {{.*#+}} ymm9 = [2,6,2,6,2,6,2,6]686; AVX2-FP-NEXT:    vpermps %ymm2, %ymm9, %ymm11687; AVX2-FP-NEXT:    vpermps %ymm1, %ymm9, %ymm12688; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm11 = ymm12[0,1,2,3,4,5],ymm11[6,7]689; AVX2-FP-NEXT:    vpermps %ymm3, %ymm9, %ymm3690; AVX2-FP-NEXT:    vunpckhps {{.*#+}} xmm6 = xmm6[2],xmm7[2],xmm6[3],xmm7[3]691; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm3 = xmm6[0,1],xmm3[2,3]692; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm11[4,5,6,7]693; AVX2-FP-NEXT:    vbroadcastsd {{.*#+}} ymm6 = [3,7,3,7,3,7,3,7]694; AVX2-FP-NEXT:    vpermps %ymm2, %ymm6, %ymm2695; AVX2-FP-NEXT:    vpermps %ymm1, %ymm6, %ymm1696; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]697; AVX2-FP-NEXT:    vunpckhps {{.*#+}} xmm2 = xmm8[2],xmm10[2],xmm8[3],xmm10[3]698; AVX2-FP-NEXT:    vpermps %ymm0, %ymm6, %ymm0699; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm2[2,3]700; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]701; AVX2-FP-NEXT:    vmovaps %ymm4, (%rsi)702; AVX2-FP-NEXT:    vmovaps %ymm5, (%rdx)703; AVX2-FP-NEXT:    vmovaps %ymm3, (%rcx)704; AVX2-FP-NEXT:    vmovaps %ymm0, (%r8)705; AVX2-FP-NEXT:    vzeroupper706; AVX2-FP-NEXT:    retq707;708; AVX2-FCP-LABEL: load_i32_stride4_vf8:709; AVX2-FCP:       # %bb.0:710; AVX2-FCP-NEXT:    vmovaps (%rdi), %ymm0711; AVX2-FCP-NEXT:    vmovaps 32(%rdi), %ymm3712; AVX2-FCP-NEXT:    vmovaps 64(%rdi), %ymm1713; AVX2-FCP-NEXT:    vmovaps 96(%rdi), %ymm2714; AVX2-FCP-NEXT:    vbroadcastsd {{.*#+}} ymm4 = [0,4,0,4,0,4,0,4]715; AVX2-FCP-NEXT:    vpermps %ymm2, %ymm4, %ymm5716; AVX2-FCP-NEXT:    vpermps %ymm1, %ymm4, %ymm6717; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm5 = ymm6[0,1,2,3,4,5],ymm5[6,7]718; AVX2-FCP-NEXT:    vpermps %ymm3, %ymm4, %ymm4719; AVX2-FCP-NEXT:    vmovaps (%rdi), %xmm6720; AVX2-FCP-NEXT:    vmovaps 16(%rdi), %xmm7721; AVX2-FCP-NEXT:    vmovaps 32(%rdi), %xmm8722; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm9 = xmm6[0],xmm7[0],xmm6[1],xmm7[1]723; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm4 = xmm9[0,1],xmm4[2,3]724; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm5[4,5,6,7]725; AVX2-FCP-NEXT:    vbroadcastsd {{.*#+}} ymm5 = [1,5,1,5,1,5,1,5]726; AVX2-FCP-NEXT:    vpermps %ymm2, %ymm5, %ymm9727; AVX2-FCP-NEXT:    vpermps %ymm1, %ymm5, %ymm10728; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm9 = ymm10[0,1,2,3,4,5],ymm9[6,7]729; AVX2-FCP-NEXT:    vmovaps 48(%rdi), %xmm10730; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm11 = xmm8[0],xmm10[0],xmm8[1],xmm10[1]731; AVX2-FCP-NEXT:    vpermps %ymm0, %ymm5, %ymm5732; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm5 = xmm5[0,1],xmm11[2,3]733; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3],ymm9[4,5,6,7]734; AVX2-FCP-NEXT:    vbroadcastsd {{.*#+}} ymm9 = [2,6,2,6,2,6,2,6]735; AVX2-FCP-NEXT:    vpermps %ymm2, %ymm9, %ymm11736; AVX2-FCP-NEXT:    vpermps %ymm1, %ymm9, %ymm12737; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm11 = ymm12[0,1,2,3,4,5],ymm11[6,7]738; AVX2-FCP-NEXT:    vpermps %ymm3, %ymm9, %ymm3739; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} xmm6 = xmm6[2],xmm7[2],xmm6[3],xmm7[3]740; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm3 = xmm6[0,1],xmm3[2,3]741; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm11[4,5,6,7]742; AVX2-FCP-NEXT:    vbroadcastsd {{.*#+}} ymm6 = [3,7,3,7,3,7,3,7]743; AVX2-FCP-NEXT:    vpermps %ymm2, %ymm6, %ymm2744; AVX2-FCP-NEXT:    vpermps %ymm1, %ymm6, %ymm1745; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]746; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} xmm2 = xmm8[2],xmm10[2],xmm8[3],xmm10[3]747; AVX2-FCP-NEXT:    vpermps %ymm0, %ymm6, %ymm0748; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm2[2,3]749; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]750; AVX2-FCP-NEXT:    vmovaps %ymm4, (%rsi)751; AVX2-FCP-NEXT:    vmovaps %ymm5, (%rdx)752; AVX2-FCP-NEXT:    vmovaps %ymm3, (%rcx)753; AVX2-FCP-NEXT:    vmovaps %ymm0, (%r8)754; AVX2-FCP-NEXT:    vzeroupper755; AVX2-FCP-NEXT:    retq756;757; AVX512-LABEL: load_i32_stride4_vf8:758; AVX512:       # %bb.0:759; AVX512-NEXT:    vpmovsxbd {{.*#+}} ymm0 = [0,4,8,12,16,20,24,28]760; AVX512-NEXT:    vmovdqa64 (%rdi), %zmm1761; AVX512-NEXT:    vmovdqa64 64(%rdi), %zmm2762; AVX512-NEXT:    vpermi2d %zmm2, %zmm1, %zmm0763; AVX512-NEXT:    vpmovsxbd {{.*#+}} ymm3 = [1,5,9,13,17,21,25,29]764; AVX512-NEXT:    vpermi2d %zmm2, %zmm1, %zmm3765; AVX512-NEXT:    vpmovsxbd {{.*#+}} ymm4 = [2,6,10,14,18,22,26,30]766; AVX512-NEXT:    vpermi2d %zmm2, %zmm1, %zmm4767; AVX512-NEXT:    vpmovsxbd {{.*#+}} ymm5 = [3,7,11,15,19,23,27,31]768; AVX512-NEXT:    vpermi2d %zmm2, %zmm1, %zmm5769; AVX512-NEXT:    vmovdqa %ymm0, (%rsi)770; AVX512-NEXT:    vmovdqa %ymm3, (%rdx)771; AVX512-NEXT:    vmovdqa %ymm4, (%rcx)772; AVX512-NEXT:    vmovdqa %ymm5, (%r8)773; AVX512-NEXT:    vzeroupper774; AVX512-NEXT:    retq775;776; AVX512-FCP-LABEL: load_i32_stride4_vf8:777; AVX512-FCP:       # %bb.0:778; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} ymm0 = [0,4,8,12,16,20,24,28]779; AVX512-FCP-NEXT:    vmovdqa64 (%rdi), %zmm1780; AVX512-FCP-NEXT:    vmovdqa64 64(%rdi), %zmm2781; AVX512-FCP-NEXT:    vpermi2d %zmm2, %zmm1, %zmm0782; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} ymm3 = [1,5,9,13,17,21,25,29]783; AVX512-FCP-NEXT:    vpermi2d %zmm2, %zmm1, %zmm3784; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} ymm4 = [2,6,10,14,18,22,26,30]785; AVX512-FCP-NEXT:    vpermi2d %zmm2, %zmm1, %zmm4786; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} ymm5 = [3,7,11,15,19,23,27,31]787; AVX512-FCP-NEXT:    vpermi2d %zmm2, %zmm1, %zmm5788; AVX512-FCP-NEXT:    vmovdqa %ymm0, (%rsi)789; AVX512-FCP-NEXT:    vmovdqa %ymm3, (%rdx)790; AVX512-FCP-NEXT:    vmovdqa %ymm4, (%rcx)791; AVX512-FCP-NEXT:    vmovdqa %ymm5, (%r8)792; AVX512-FCP-NEXT:    vzeroupper793; AVX512-FCP-NEXT:    retq794;795; AVX512DQ-LABEL: load_i32_stride4_vf8:796; AVX512DQ:       # %bb.0:797; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} ymm0 = [0,4,8,12,16,20,24,28]798; AVX512DQ-NEXT:    vmovdqa64 (%rdi), %zmm1799; AVX512DQ-NEXT:    vmovdqa64 64(%rdi), %zmm2800; AVX512DQ-NEXT:    vpermi2d %zmm2, %zmm1, %zmm0801; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} ymm3 = [1,5,9,13,17,21,25,29]802; AVX512DQ-NEXT:    vpermi2d %zmm2, %zmm1, %zmm3803; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} ymm4 = [2,6,10,14,18,22,26,30]804; AVX512DQ-NEXT:    vpermi2d %zmm2, %zmm1, %zmm4805; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} ymm5 = [3,7,11,15,19,23,27,31]806; AVX512DQ-NEXT:    vpermi2d %zmm2, %zmm1, %zmm5807; AVX512DQ-NEXT:    vmovdqa %ymm0, (%rsi)808; AVX512DQ-NEXT:    vmovdqa %ymm3, (%rdx)809; AVX512DQ-NEXT:    vmovdqa %ymm4, (%rcx)810; AVX512DQ-NEXT:    vmovdqa %ymm5, (%r8)811; AVX512DQ-NEXT:    vzeroupper812; AVX512DQ-NEXT:    retq813;814; AVX512DQ-FCP-LABEL: load_i32_stride4_vf8:815; AVX512DQ-FCP:       # %bb.0:816; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} ymm0 = [0,4,8,12,16,20,24,28]817; AVX512DQ-FCP-NEXT:    vmovdqa64 (%rdi), %zmm1818; AVX512DQ-FCP-NEXT:    vmovdqa64 64(%rdi), %zmm2819; AVX512DQ-FCP-NEXT:    vpermi2d %zmm2, %zmm1, %zmm0820; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} ymm3 = [1,5,9,13,17,21,25,29]821; AVX512DQ-FCP-NEXT:    vpermi2d %zmm2, %zmm1, %zmm3822; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} ymm4 = [2,6,10,14,18,22,26,30]823; AVX512DQ-FCP-NEXT:    vpermi2d %zmm2, %zmm1, %zmm4824; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} ymm5 = [3,7,11,15,19,23,27,31]825; AVX512DQ-FCP-NEXT:    vpermi2d %zmm2, %zmm1, %zmm5826; AVX512DQ-FCP-NEXT:    vmovdqa %ymm0, (%rsi)827; AVX512DQ-FCP-NEXT:    vmovdqa %ymm3, (%rdx)828; AVX512DQ-FCP-NEXT:    vmovdqa %ymm4, (%rcx)829; AVX512DQ-FCP-NEXT:    vmovdqa %ymm5, (%r8)830; AVX512DQ-FCP-NEXT:    vzeroupper831; AVX512DQ-FCP-NEXT:    retq832;833; AVX512BW-LABEL: load_i32_stride4_vf8:834; AVX512BW:       # %bb.0:835; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} ymm0 = [0,4,8,12,16,20,24,28]836; AVX512BW-NEXT:    vmovdqa64 (%rdi), %zmm1837; AVX512BW-NEXT:    vmovdqa64 64(%rdi), %zmm2838; AVX512BW-NEXT:    vpermi2d %zmm2, %zmm1, %zmm0839; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} ymm3 = [1,5,9,13,17,21,25,29]840; AVX512BW-NEXT:    vpermi2d %zmm2, %zmm1, %zmm3841; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} ymm4 = [2,6,10,14,18,22,26,30]842; AVX512BW-NEXT:    vpermi2d %zmm2, %zmm1, %zmm4843; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} ymm5 = [3,7,11,15,19,23,27,31]844; AVX512BW-NEXT:    vpermi2d %zmm2, %zmm1, %zmm5845; AVX512BW-NEXT:    vmovdqa %ymm0, (%rsi)846; AVX512BW-NEXT:    vmovdqa %ymm3, (%rdx)847; AVX512BW-NEXT:    vmovdqa %ymm4, (%rcx)848; AVX512BW-NEXT:    vmovdqa %ymm5, (%r8)849; AVX512BW-NEXT:    vzeroupper850; AVX512BW-NEXT:    retq851;852; AVX512BW-FCP-LABEL: load_i32_stride4_vf8:853; AVX512BW-FCP:       # %bb.0:854; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} ymm0 = [0,4,8,12,16,20,24,28]855; AVX512BW-FCP-NEXT:    vmovdqa64 (%rdi), %zmm1856; AVX512BW-FCP-NEXT:    vmovdqa64 64(%rdi), %zmm2857; AVX512BW-FCP-NEXT:    vpermi2d %zmm2, %zmm1, %zmm0858; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} ymm3 = [1,5,9,13,17,21,25,29]859; AVX512BW-FCP-NEXT:    vpermi2d %zmm2, %zmm1, %zmm3860; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} ymm4 = [2,6,10,14,18,22,26,30]861; AVX512BW-FCP-NEXT:    vpermi2d %zmm2, %zmm1, %zmm4862; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} ymm5 = [3,7,11,15,19,23,27,31]863; AVX512BW-FCP-NEXT:    vpermi2d %zmm2, %zmm1, %zmm5864; AVX512BW-FCP-NEXT:    vmovdqa %ymm0, (%rsi)865; AVX512BW-FCP-NEXT:    vmovdqa %ymm3, (%rdx)866; AVX512BW-FCP-NEXT:    vmovdqa %ymm4, (%rcx)867; AVX512BW-FCP-NEXT:    vmovdqa %ymm5, (%r8)868; AVX512BW-FCP-NEXT:    vzeroupper869; AVX512BW-FCP-NEXT:    retq870;871; AVX512DQ-BW-LABEL: load_i32_stride4_vf8:872; AVX512DQ-BW:       # %bb.0:873; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} ymm0 = [0,4,8,12,16,20,24,28]874; AVX512DQ-BW-NEXT:    vmovdqa64 (%rdi), %zmm1875; AVX512DQ-BW-NEXT:    vmovdqa64 64(%rdi), %zmm2876; AVX512DQ-BW-NEXT:    vpermi2d %zmm2, %zmm1, %zmm0877; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} ymm3 = [1,5,9,13,17,21,25,29]878; AVX512DQ-BW-NEXT:    vpermi2d %zmm2, %zmm1, %zmm3879; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} ymm4 = [2,6,10,14,18,22,26,30]880; AVX512DQ-BW-NEXT:    vpermi2d %zmm2, %zmm1, %zmm4881; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} ymm5 = [3,7,11,15,19,23,27,31]882; AVX512DQ-BW-NEXT:    vpermi2d %zmm2, %zmm1, %zmm5883; AVX512DQ-BW-NEXT:    vmovdqa %ymm0, (%rsi)884; AVX512DQ-BW-NEXT:    vmovdqa %ymm3, (%rdx)885; AVX512DQ-BW-NEXT:    vmovdqa %ymm4, (%rcx)886; AVX512DQ-BW-NEXT:    vmovdqa %ymm5, (%r8)887; AVX512DQ-BW-NEXT:    vzeroupper888; AVX512DQ-BW-NEXT:    retq889;890; AVX512DQ-BW-FCP-LABEL: load_i32_stride4_vf8:891; AVX512DQ-BW-FCP:       # %bb.0:892; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} ymm0 = [0,4,8,12,16,20,24,28]893; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%rdi), %zmm1894; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 64(%rdi), %zmm2895; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm2, %zmm1, %zmm0896; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} ymm3 = [1,5,9,13,17,21,25,29]897; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm2, %zmm1, %zmm3898; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} ymm4 = [2,6,10,14,18,22,26,30]899; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm2, %zmm1, %zmm4900; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} ymm5 = [3,7,11,15,19,23,27,31]901; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm2, %zmm1, %zmm5902; AVX512DQ-BW-FCP-NEXT:    vmovdqa %ymm0, (%rsi)903; AVX512DQ-BW-FCP-NEXT:    vmovdqa %ymm3, (%rdx)904; AVX512DQ-BW-FCP-NEXT:    vmovdqa %ymm4, (%rcx)905; AVX512DQ-BW-FCP-NEXT:    vmovdqa %ymm5, (%r8)906; AVX512DQ-BW-FCP-NEXT:    vzeroupper907; AVX512DQ-BW-FCP-NEXT:    retq908  %wide.vec = load <32 x i32>, ptr %in.vec, align 64909  %strided.vec0 = shufflevector <32 x i32> %wide.vec, <32 x i32> poison, <8 x i32> <i32 0, i32 4, i32 8, i32 12, i32 16, i32 20, i32 24, i32 28>910  %strided.vec1 = shufflevector <32 x i32> %wide.vec, <32 x i32> poison, <8 x i32> <i32 1, i32 5, i32 9, i32 13, i32 17, i32 21, i32 25, i32 29>911  %strided.vec2 = shufflevector <32 x i32> %wide.vec, <32 x i32> poison, <8 x i32> <i32 2, i32 6, i32 10, i32 14, i32 18, i32 22, i32 26, i32 30>912  %strided.vec3 = shufflevector <32 x i32> %wide.vec, <32 x i32> poison, <8 x i32> <i32 3, i32 7, i32 11, i32 15, i32 19, i32 23, i32 27, i32 31>913  store <8 x i32> %strided.vec0, ptr %out.vec0, align 64914  store <8 x i32> %strided.vec1, ptr %out.vec1, align 64915  store <8 x i32> %strided.vec2, ptr %out.vec2, align 64916  store <8 x i32> %strided.vec3, ptr %out.vec3, align 64917  ret void918}919 920define void @load_i32_stride4_vf16(ptr %in.vec, ptr %out.vec0, ptr %out.vec1, ptr %out.vec2, ptr %out.vec3) nounwind {921; SSE-LABEL: load_i32_stride4_vf16:922; SSE:       # %bb.0:923; SSE-NEXT:    subq $24, %rsp924; SSE-NEXT:    movaps 208(%rdi), %xmm2925; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill926; SSE-NEXT:    movaps 240(%rdi), %xmm4927; SSE-NEXT:    movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill928; SSE-NEXT:    movaps 224(%rdi), %xmm12929; SSE-NEXT:    movaps 144(%rdi), %xmm6930; SSE-NEXT:    movaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill931; SSE-NEXT:    movaps 128(%rdi), %xmm3932; SSE-NEXT:    movaps 176(%rdi), %xmm5933; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill934; SSE-NEXT:    movaps 160(%rdi), %xmm9935; SSE-NEXT:    movaps 80(%rdi), %xmm1936; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill937; SSE-NEXT:    movaps 64(%rdi), %xmm11938; SSE-NEXT:    movaps 112(%rdi), %xmm8939; SSE-NEXT:    movaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill940; SSE-NEXT:    movaps 96(%rdi), %xmm7941; SSE-NEXT:    movaps %xmm7, %xmm0942; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm8[0],xmm0[1],xmm8[1]943; SSE-NEXT:    movaps %xmm11, %xmm13944; SSE-NEXT:    unpcklps {{.*#+}} xmm13 = xmm13[0],xmm1[0],xmm13[1],xmm1[1]945; SSE-NEXT:    movaps %xmm13, %xmm1946; SSE-NEXT:    movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]947; SSE-NEXT:    movaps %xmm1, (%rsp) # 16-byte Spill948; SSE-NEXT:    movaps %xmm9, %xmm1949; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm5[0],xmm1[1],xmm5[1]950; SSE-NEXT:    movaps %xmm3, %xmm5951; SSE-NEXT:    unpcklps {{.*#+}} xmm5 = xmm5[0],xmm6[0],xmm5[1],xmm6[1]952; SSE-NEXT:    unpckhpd {{.*#+}} xmm13 = xmm13[1],xmm0[1]953; SSE-NEXT:    movaps %xmm5, %xmm0954; SSE-NEXT:    movlhps {{.*#+}} xmm0 = xmm0[0],xmm1[0]955; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill956; SSE-NEXT:    unpckhpd {{.*#+}} xmm5 = xmm5[1],xmm1[1]957; SSE-NEXT:    movaps %xmm12, %xmm0958; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm4[0],xmm0[1],xmm4[1]959; SSE-NEXT:    movaps 192(%rdi), %xmm10960; SSE-NEXT:    movaps %xmm10, %xmm15961; SSE-NEXT:    unpcklps {{.*#+}} xmm15 = xmm15[0],xmm2[0],xmm15[1],xmm2[1]962; SSE-NEXT:    movaps %xmm15, %xmm1963; SSE-NEXT:    movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]964; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill965; SSE-NEXT:    unpckhpd {{.*#+}} xmm15 = xmm15[1],xmm0[1]966; SSE-NEXT:    movaps 32(%rdi), %xmm2967; SSE-NEXT:    movaps 48(%rdi), %xmm8968; SSE-NEXT:    movaps %xmm2, %xmm1969; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm8[0],xmm1[1],xmm8[1]970; SSE-NEXT:    movaps (%rdi), %xmm0971; SSE-NEXT:    movaps 16(%rdi), %xmm6972; SSE-NEXT:    movaps %xmm0, %xmm14973; SSE-NEXT:    unpcklps {{.*#+}} xmm14 = xmm14[0],xmm6[0],xmm14[1],xmm6[1]974; SSE-NEXT:    movaps %xmm14, %xmm4975; SSE-NEXT:    movlhps {{.*#+}} xmm4 = xmm4[0],xmm1[0]976; SSE-NEXT:    unpckhpd {{.*#+}} xmm14 = xmm14[1],xmm1[1]977; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Folded Reload978; SSE-NEXT:    # xmm7 = xmm7[2],mem[2],xmm7[3],mem[3]979; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Folded Reload980; SSE-NEXT:    # xmm11 = xmm11[2],mem[2],xmm11[3],mem[3]981; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Folded Reload982; SSE-NEXT:    # xmm9 = xmm9[2],mem[2],xmm9[3],mem[3]983; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Folded Reload984; SSE-NEXT:    # xmm3 = xmm3[2],mem[2],xmm3[3],mem[3]985; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Folded Reload986; SSE-NEXT:    # xmm12 = xmm12[2],mem[2],xmm12[3],mem[3]987; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Folded Reload988; SSE-NEXT:    # xmm10 = xmm10[2],mem[2],xmm10[3],mem[3]989; SSE-NEXT:    unpckhps {{.*#+}} xmm2 = xmm2[2],xmm8[2],xmm2[3],xmm8[3]990; SSE-NEXT:    unpckhps {{.*#+}} xmm0 = xmm0[2],xmm6[2],xmm0[3],xmm6[3]991; SSE-NEXT:    movaps %xmm11, %xmm1992; SSE-NEXT:    movlhps {{.*#+}} xmm1 = xmm1[0],xmm7[0]993; SSE-NEXT:    unpckhpd {{.*#+}} xmm11 = xmm11[1],xmm7[1]994; SSE-NEXT:    movaps %xmm3, %xmm6995; SSE-NEXT:    movlhps {{.*#+}} xmm6 = xmm6[0],xmm9[0]996; SSE-NEXT:    unpckhpd {{.*#+}} xmm3 = xmm3[1],xmm9[1]997; SSE-NEXT:    movaps %xmm10, %xmm7998; SSE-NEXT:    movlhps {{.*#+}} xmm7 = xmm7[0],xmm12[0]999; SSE-NEXT:    unpckhpd {{.*#+}} xmm10 = xmm10[1],xmm12[1]1000; SSE-NEXT:    movaps %xmm0, %xmm81001; SSE-NEXT:    movlhps {{.*#+}} xmm8 = xmm8[0],xmm2[0]1002; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm2[1]1003; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload1004; SSE-NEXT:    movaps %xmm2, 48(%rsi)1005; SSE-NEXT:    movaps %xmm4, (%rsi)1006; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload1007; SSE-NEXT:    movaps %xmm2, 32(%rsi)1008; SSE-NEXT:    movaps (%rsp), %xmm2 # 16-byte Reload1009; SSE-NEXT:    movaps %xmm2, 16(%rsi)1010; SSE-NEXT:    movaps %xmm15, 48(%rdx)1011; SSE-NEXT:    movaps %xmm14, (%rdx)1012; SSE-NEXT:    movaps %xmm5, 32(%rdx)1013; SSE-NEXT:    movaps %xmm13, 16(%rdx)1014; SSE-NEXT:    movaps %xmm7, 48(%rcx)1015; SSE-NEXT:    movaps %xmm6, 32(%rcx)1016; SSE-NEXT:    movaps %xmm1, 16(%rcx)1017; SSE-NEXT:    movaps %xmm8, (%rcx)1018; SSE-NEXT:    movaps %xmm10, 48(%r8)1019; SSE-NEXT:    movaps %xmm3, 32(%r8)1020; SSE-NEXT:    movaps %xmm11, 16(%r8)1021; SSE-NEXT:    movaps %xmm0, (%r8)1022; SSE-NEXT:    addq $24, %rsp1023; SSE-NEXT:    retq1024;1025; AVX-LABEL: load_i32_stride4_vf16:1026; AVX:       # %bb.0:1027; AVX-NEXT:    subq $264, %rsp # imm = 0x1081028; AVX-NEXT:    vmovaps 64(%rdi), %ymm51029; AVX-NEXT:    vmovaps 96(%rdi), %ymm41030; AVX-NEXT:    vmovaps 192(%rdi), %ymm101031; AVX-NEXT:    vmovaps 224(%rdi), %ymm141032; AVX-NEXT:    vperm2f128 {{.*#+}} ymm15 = ymm14[2,3,0,1]1033; AVX-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm14[0],ymm15[0],ymm14[2],ymm15[2]1034; AVX-NEXT:    vmovups %ymm14, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1035; AVX-NEXT:    vperm2f128 {{.*#+}} ymm3 = ymm10[2,3,0,1]1036; AVX-NEXT:    vunpcklps {{.*#+}} ymm7 = ymm3[0],ymm10[0],ymm3[1],ymm10[1],ymm3[4],ymm10[4],ymm3[5],ymm10[5]1037; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm7[0,1],ymm0[2,0],ymm7[4,5],ymm0[6,4]1038; AVX-NEXT:    vmovaps 160(%rdi), %xmm11039; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1040; AVX-NEXT:    vmovaps 176(%rdi), %xmm21041; AVX-NEXT:    vmovlhps {{.*#+}} xmm11 = xmm2[0],xmm1[0]1042; AVX-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1043; AVX-NEXT:    vmovaps 144(%rdi), %xmm11044; AVX-NEXT:    vmovaps 128(%rdi), %xmm61045; AVX-NEXT:    vmovaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1046; AVX-NEXT:    vunpcklps {{.*#+}} xmm12 = xmm6[0],xmm1[0],xmm6[1],xmm1[1]1047; AVX-NEXT:    vshufps {{.*#+}} xmm11 = xmm12[0,1],xmm11[2,0]1048; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm11[0,1,2,3],ymm0[4,5,6,7]1049; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1050; AVX-NEXT:    vperm2f128 {{.*#+}} ymm8 = ymm4[2,3,0,1]1051; AVX-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm4[0],ymm8[0],ymm4[2],ymm8[2]1052; AVX-NEXT:    vmovaps %ymm4, %ymm121053; AVX-NEXT:    vmovups %ymm5, (%rsp) # 32-byte Spill1054; AVX-NEXT:    vperm2f128 {{.*#+}} ymm11 = ymm5[2,3,0,1]1055; AVX-NEXT:    vunpcklps {{.*#+}} ymm13 = ymm11[0],ymm5[0],ymm11[1],ymm5[1],ymm11[4],ymm5[4],ymm11[5],ymm5[5]1056; AVX-NEXT:    vshufps {{.*#+}} ymm7 = ymm13[0,1],ymm0[2,0],ymm13[4,5],ymm0[6,4]1057; AVX-NEXT:    vmovaps (%rdi), %xmm91058; AVX-NEXT:    vmovaps 16(%rdi), %xmm51059; AVX-NEXT:    vmovaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1060; AVX-NEXT:    vmovaps 32(%rdi), %xmm61061; AVX-NEXT:    vmovaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1062; AVX-NEXT:    vmovaps 48(%rdi), %xmm01063; AVX-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1064; AVX-NEXT:    vmovlhps {{.*#+}} xmm0 = xmm0[0],xmm6[0]1065; AVX-NEXT:    vunpcklps {{.*#+}} xmm6 = xmm9[0],xmm5[0],xmm9[1],xmm5[1]1066; AVX-NEXT:    vmovaps %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1067; AVX-NEXT:    vshufps {{.*#+}} xmm0 = xmm6[0,1],xmm0[2,0]1068; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm7[4,5,6,7]1069; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1070; AVX-NEXT:    vmovaps %ymm15, %ymm41071; AVX-NEXT:    vmovups %ymm15, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1072; AVX-NEXT:    vunpcklps {{.*#+}} ymm7 = ymm15[0],ymm14[0],ymm15[1],ymm14[1],ymm15[4],ymm14[4],ymm15[5],ymm14[5]1073; AVX-NEXT:    vshufps {{.*#+}} ymm6 = ymm10[1,0],ymm3[1,0],ymm10[5,4],ymm3[5,4]1074; AVX-NEXT:    vmovaps %ymm10, %ymm151075; AVX-NEXT:    vmovaps %ymm3, %ymm131076; AVX-NEXT:    vshufps {{.*#+}} ymm3 = ymm6[2,0],ymm7[2,3],ymm6[6,4],ymm7[6,7]1077; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload1078; AVX-NEXT:    vinsertps {{.*#+}} xmm6 = xmm5[1],xmm1[1],zero,zero1079; AVX-NEXT:    vmovaps %xmm1, %xmm141080; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1081; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload1082; AVX-NEXT:    vunpcklps {{.*#+}} xmm7 = xmm10[0],xmm2[0],xmm10[1],xmm2[1]1083; AVX-NEXT:    vmovsd {{.*#+}} xmm6 = xmm6[0],xmm7[1]1084; AVX-NEXT:    vblendps {{.*#+}} ymm2 = ymm6[0,1,2,3],ymm3[4,5,6,7]1085; AVX-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1086; AVX-NEXT:    vmovaps %ymm12, %ymm01087; AVX-NEXT:    vmovaps %ymm8, %ymm121088; AVX-NEXT:    vunpcklps {{.*#+}} ymm3 = ymm8[0],ymm0[0],ymm8[1],ymm0[1],ymm8[4],ymm0[4],ymm8[5],ymm0[5]1089; AVX-NEXT:    vmovups (%rsp), %ymm2 # 32-byte Reload1090; AVX-NEXT:    vshufps {{.*#+}} ymm6 = ymm2[1,0],ymm11[1,0],ymm2[5,4],ymm11[5,4]1091; AVX-NEXT:    vshufps {{.*#+}} ymm3 = ymm6[2,0],ymm3[2,3],ymm6[6,4],ymm3[6,7]1092; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload1093; AVX-NEXT:    vinsertps {{.*#+}} xmm6 = xmm9[1],xmm8[1],zero,zero1094; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Reload1095; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload1096; AVX-NEXT:    vunpcklps {{.*#+}} xmm7 = xmm9[0],xmm1[0],xmm9[1],xmm1[1]1097; AVX-NEXT:    vmovsd {{.*#+}} xmm6 = xmm6[0],xmm7[1]1098; AVX-NEXT:    vblendps {{.*#+}} ymm3 = ymm6[0,1,2,3],ymm3[4,5,6,7]1099; AVX-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1100; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload1101; AVX-NEXT:    vunpckhpd {{.*#+}} ymm3 = ymm3[1],ymm4[1],ymm3[3],ymm4[3]1102; AVX-NEXT:    vunpckhps {{.*#+}} ymm6 = ymm13[2],ymm15[2],ymm13[3],ymm15[3],ymm13[6],ymm15[6],ymm13[7],ymm15[7]1103; AVX-NEXT:    vshufps {{.*#+}} ymm4 = ymm6[0,1],ymm3[2,0],ymm6[4,5],ymm3[6,4]1104; AVX-NEXT:    vunpckhps {{.*#+}} xmm6 = xmm5[2],xmm14[2],xmm5[3],xmm14[3]1105; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload1106; AVX-NEXT:    vinsertps {{.*#+}} xmm7 = zero,zero,xmm10[2],xmm3[2]1107; AVX-NEXT:    vmovaps %xmm10, %xmm141108; AVX-NEXT:    vmovsd {{.*#+}} xmm6 = xmm6[0],xmm7[1]1109; AVX-NEXT:    vblendps {{.*#+}} ymm4 = ymm6[0,1,2,3],ymm4[4,5,6,7]1110; AVX-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1111; AVX-NEXT:    vunpckhpd {{.*#+}} ymm6 = ymm0[1],ymm12[1],ymm0[3],ymm12[3]1112; AVX-NEXT:    vmovaps %ymm0, %ymm51113; AVX-NEXT:    vunpckhps {{.*#+}} ymm7 = ymm11[2],ymm2[2],ymm11[3],ymm2[3],ymm11[6],ymm2[6],ymm11[7],ymm2[7]1114; AVX-NEXT:    vshufps {{.*#+}} ymm6 = ymm7[0,1],ymm6[2,0],ymm7[4,5],ymm6[6,4]1115; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload1116; AVX-NEXT:    vunpckhps {{.*#+}} xmm7 = xmm10[2],xmm8[2],xmm10[3],xmm8[3]1117; AVX-NEXT:    vinsertps {{.*#+}} xmm0 = zero,zero,xmm9[2],xmm1[2]1118; AVX-NEXT:    vmovsd {{.*#+}} xmm0 = xmm7[0],xmm0[1]1119; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm6[4,5,6,7]1120; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload1121; AVX-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm4 # 32-byte Folded Reload1122; AVX-NEXT:    # ymm4 = ymm2[2],mem[2],ymm2[3],mem[3],ymm2[6],mem[6],ymm2[7],mem[7]1123; AVX-NEXT:    vshufps {{.*#+}} ymm2 = ymm15[3,0],ymm13[3,0],ymm15[7,4],ymm13[7,4]1124; AVX-NEXT:    vshufps {{.*#+}} ymm2 = ymm2[2,0],ymm4[2,3],ymm2[6,4],ymm4[6,7]1125; AVX-NEXT:    vunpckhps {{.*#+}} xmm4 = xmm14[2],xmm3[2],xmm14[3],xmm3[3]1126; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload1127; AVX-NEXT:    vshufps $51, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3, %xmm6 # 16-byte Folded Reload1128; AVX-NEXT:    # xmm6 = xmm3[3,0],mem[3,0]1129; AVX-NEXT:    vshufps {{.*#+}} xmm4 = xmm6[2,0],xmm4[2,3]1130; AVX-NEXT:    vblendps {{.*#+}} ymm2 = ymm4[0,1,2,3],ymm2[4,5,6,7]1131; AVX-NEXT:    vunpckhps {{.*#+}} ymm3 = ymm12[2],ymm5[2],ymm12[3],ymm5[3],ymm12[6],ymm5[6],ymm12[7],ymm5[7]1132; AVX-NEXT:    vmovups (%rsp), %ymm4 # 32-byte Reload1133; AVX-NEXT:    vshufps {{.*#+}} ymm4 = ymm4[3,0],ymm11[3,0],ymm4[7,4],ymm11[7,4]1134; AVX-NEXT:    vshufps {{.*#+}} ymm3 = ymm4[2,0],ymm3[2,3],ymm4[6,4],ymm3[6,7]1135; AVX-NEXT:    vunpckhps {{.*#+}} xmm1 = xmm9[2],xmm1[2],xmm9[3],xmm1[3]1136; AVX-NEXT:    vshufps {{.*#+}} xmm4 = xmm8[3,0],xmm10[3,0]1137; AVX-NEXT:    vshufps {{.*#+}} xmm1 = xmm4[2,0],xmm1[2,3]1138; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm3[4,5,6,7]1139; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload1140; AVX-NEXT:    vmovaps %ymm3, 32(%rsi)1141; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload1142; AVX-NEXT:    vmovaps %ymm3, (%rsi)1143; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload1144; AVX-NEXT:    vmovaps %ymm3, 32(%rdx)1145; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload1146; AVX-NEXT:    vmovaps %ymm3, (%rdx)1147; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload1148; AVX-NEXT:    vmovaps %ymm3, 32(%rcx)1149; AVX-NEXT:    vmovaps %ymm0, (%rcx)1150; AVX-NEXT:    vmovaps %ymm2, 32(%r8)1151; AVX-NEXT:    vmovaps %ymm1, (%r8)1152; AVX-NEXT:    addq $264, %rsp # imm = 0x1081153; AVX-NEXT:    vzeroupper1154; AVX-NEXT:    retq1155;1156; AVX2-LABEL: load_i32_stride4_vf16:1157; AVX2:       # %bb.0:1158; AVX2-NEXT:    subq $104, %rsp1159; AVX2-NEXT:    vmovaps (%rdi), %ymm31160; AVX2-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1161; AVX2-NEXT:    vmovaps 32(%rdi), %ymm81162; AVX2-NEXT:    vmovups %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1163; AVX2-NEXT:    vmovaps 64(%rdi), %ymm41164; AVX2-NEXT:    vmovaps 96(%rdi), %ymm51165; AVX2-NEXT:    vmovaps 160(%rdi), %ymm91166; AVX2-NEXT:    vmovups %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1167; AVX2-NEXT:    vmovaps 192(%rdi), %ymm71168; AVX2-NEXT:    vmovaps 224(%rdi), %ymm21169; AVX2-NEXT:    vbroadcastsd {{.*#+}} ymm0 = [0,4,0,4,0,4,0,4]1170; AVX2-NEXT:    vpermps %ymm2, %ymm0, %ymm11171; AVX2-NEXT:    vpermps %ymm7, %ymm0, %ymm61172; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm6[0,1,2,3,4,5],ymm1[6,7]1173; AVX2-NEXT:    vmovaps 144(%rdi), %xmm101174; AVX2-NEXT:    vmovaps 128(%rdi), %xmm111175; AVX2-NEXT:    vunpcklps {{.*#+}} xmm6 = xmm11[0],xmm10[0],xmm11[1],xmm10[1]1176; AVX2-NEXT:    vpermps %ymm9, %ymm0, %ymm91177; AVX2-NEXT:    vblendps {{.*#+}} xmm6 = xmm6[0,1],xmm9[2,3]1178; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm6[0,1,2,3],ymm1[4,5,6,7]1179; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1180; AVX2-NEXT:    vpermps %ymm5, %ymm0, %ymm11181; AVX2-NEXT:    vpermps %ymm4, %ymm0, %ymm61182; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm6[0,1,2,3,4,5],ymm1[6,7]1183; AVX2-NEXT:    vpermps %ymm8, %ymm0, %ymm01184; AVX2-NEXT:    vmovaps (%rdi), %xmm121185; AVX2-NEXT:    vmovaps 16(%rdi), %xmm131186; AVX2-NEXT:    vunpcklps {{.*#+}} xmm6 = xmm12[0],xmm13[0],xmm12[1],xmm13[1]1187; AVX2-NEXT:    vblendps {{.*#+}} xmm0 = xmm6[0,1],xmm0[2,3]1188; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]1189; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1190; AVX2-NEXT:    vbroadcastsd {{.*#+}} ymm0 = [1,5,1,5,1,5,1,5]1191; AVX2-NEXT:    vpermps %ymm5, %ymm0, %ymm11192; AVX2-NEXT:    vpermps %ymm4, %ymm0, %ymm61193; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm6[0,1,2,3,4,5],ymm1[6,7]1194; AVX2-NEXT:    vmovaps 32(%rdi), %xmm141195; AVX2-NEXT:    vmovaps 48(%rdi), %xmm61196; AVX2-NEXT:    vunpcklps {{.*#+}} xmm9 = xmm14[0],xmm6[0],xmm14[1],xmm6[1]1197; AVX2-NEXT:    vpermps %ymm3, %ymm0, %ymm151198; AVX2-NEXT:    vblendps {{.*#+}} xmm9 = xmm15[0,1],xmm9[2,3]1199; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm9[0,1,2,3],ymm1[4,5,6,7]1200; AVX2-NEXT:    vmovups %ymm1, (%rsp) # 32-byte Spill1201; AVX2-NEXT:    vpermps %ymm2, %ymm0, %ymm11202; AVX2-NEXT:    vpermps %ymm7, %ymm0, %ymm91203; AVX2-NEXT:    vblendps {{.*#+}} ymm9 = ymm9[0,1,2,3,4,5],ymm1[6,7]1204; AVX2-NEXT:    vmovaps 128(%rdi), %ymm151205; AVX2-NEXT:    vpermps %ymm15, %ymm0, %ymm01206; AVX2-NEXT:    vmovaps 176(%rdi), %xmm31207; AVX2-NEXT:    vmovaps 160(%rdi), %xmm11208; AVX2-NEXT:    vunpcklps {{.*#+}} xmm8 = xmm1[0],xmm3[0],xmm1[1],xmm3[1]1209; AVX2-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm8[2,3]1210; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm9[4,5,6,7]1211; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1212; AVX2-NEXT:    vbroadcastsd {{.*#+}} ymm0 = [2,6,2,6,2,6,2,6]1213; AVX2-NEXT:    vpermps %ymm2, %ymm0, %ymm81214; AVX2-NEXT:    vpermps %ymm7, %ymm0, %ymm91215; AVX2-NEXT:    vblendps {{.*#+}} ymm8 = ymm9[0,1,2,3,4,5],ymm8[6,7]1216; AVX2-NEXT:    vunpckhps {{.*#+}} xmm9 = xmm11[2],xmm10[2],xmm11[3],xmm10[3]1217; AVX2-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm10 # 32-byte Folded Reload1218; AVX2-NEXT:    vblendps {{.*#+}} xmm9 = xmm9[0,1],xmm10[2,3]1219; AVX2-NEXT:    vblendps {{.*#+}} ymm8 = ymm9[0,1,2,3],ymm8[4,5,6,7]1220; AVX2-NEXT:    vpermps %ymm5, %ymm0, %ymm91221; AVX2-NEXT:    vpermps %ymm4, %ymm0, %ymm101222; AVX2-NEXT:    vblendps {{.*#+}} ymm9 = ymm10[0,1,2,3,4,5],ymm9[6,7]1223; AVX2-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload1224; AVX2-NEXT:    vunpckhps {{.*#+}} xmm10 = xmm12[2],xmm13[2],xmm12[3],xmm13[3]1225; AVX2-NEXT:    vblendps {{.*#+}} xmm0 = xmm10[0,1],xmm0[2,3]1226; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm9[4,5,6,7]1227; AVX2-NEXT:    vbroadcastsd {{.*#+}} ymm9 = [3,7,3,7,3,7,3,7]1228; AVX2-NEXT:    vpermps %ymm5, %ymm9, %ymm51229; AVX2-NEXT:    vpermps %ymm4, %ymm9, %ymm41230; AVX2-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3,4,5],ymm5[6,7]1231; AVX2-NEXT:    vunpckhps {{.*#+}} xmm5 = xmm14[2],xmm6[2],xmm14[3],xmm6[3]1232; AVX2-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm6 # 32-byte Folded Reload1233; AVX2-NEXT:    vblendps {{.*#+}} xmm5 = xmm6[0,1],xmm5[2,3]1234; AVX2-NEXT:    vblendps {{.*#+}} ymm4 = ymm5[0,1,2,3],ymm4[4,5,6,7]1235; AVX2-NEXT:    vpermps %ymm2, %ymm9, %ymm21236; AVX2-NEXT:    vpermps %ymm7, %ymm9, %ymm51237; AVX2-NEXT:    vblendps {{.*#+}} ymm2 = ymm5[0,1,2,3,4,5],ymm2[6,7]1238; AVX2-NEXT:    vunpckhps {{.*#+}} xmm1 = xmm1[2],xmm3[2],xmm1[3],xmm3[3]1239; AVX2-NEXT:    vpermps %ymm15, %ymm9, %ymm31240; AVX2-NEXT:    vblendps {{.*#+}} xmm1 = xmm3[0,1],xmm1[2,3]1241; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm2[4,5,6,7]1242; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload1243; AVX2-NEXT:    vmovaps %ymm2, 32(%rsi)1244; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload1245; AVX2-NEXT:    vmovaps %ymm2, (%rsi)1246; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload1247; AVX2-NEXT:    vmovaps %ymm2, 32(%rdx)1248; AVX2-NEXT:    vmovups (%rsp), %ymm2 # 32-byte Reload1249; AVX2-NEXT:    vmovaps %ymm2, (%rdx)1250; AVX2-NEXT:    vmovaps %ymm8, 32(%rcx)1251; AVX2-NEXT:    vmovaps %ymm0, (%rcx)1252; AVX2-NEXT:    vmovaps %ymm1, 32(%r8)1253; AVX2-NEXT:    vmovaps %ymm4, (%r8)1254; AVX2-NEXT:    addq $104, %rsp1255; AVX2-NEXT:    vzeroupper1256; AVX2-NEXT:    retq1257;1258; AVX2-FP-LABEL: load_i32_stride4_vf16:1259; AVX2-FP:       # %bb.0:1260; AVX2-FP-NEXT:    subq $104, %rsp1261; AVX2-FP-NEXT:    vmovaps (%rdi), %ymm31262; AVX2-FP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1263; AVX2-FP-NEXT:    vmovaps 32(%rdi), %ymm81264; AVX2-FP-NEXT:    vmovups %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1265; AVX2-FP-NEXT:    vmovaps 64(%rdi), %ymm41266; AVX2-FP-NEXT:    vmovaps 96(%rdi), %ymm51267; AVX2-FP-NEXT:    vmovaps 160(%rdi), %ymm91268; AVX2-FP-NEXT:    vmovups %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1269; AVX2-FP-NEXT:    vmovaps 192(%rdi), %ymm71270; AVX2-FP-NEXT:    vmovaps 224(%rdi), %ymm21271; AVX2-FP-NEXT:    vbroadcastsd {{.*#+}} ymm0 = [0,4,0,4,0,4,0,4]1272; AVX2-FP-NEXT:    vpermps %ymm2, %ymm0, %ymm11273; AVX2-FP-NEXT:    vpermps %ymm7, %ymm0, %ymm61274; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm6[0,1,2,3,4,5],ymm1[6,7]1275; AVX2-FP-NEXT:    vmovaps 144(%rdi), %xmm101276; AVX2-FP-NEXT:    vmovaps 128(%rdi), %xmm111277; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm6 = xmm11[0],xmm10[0],xmm11[1],xmm10[1]1278; AVX2-FP-NEXT:    vpermps %ymm9, %ymm0, %ymm91279; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm6 = xmm6[0,1],xmm9[2,3]1280; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm6[0,1,2,3],ymm1[4,5,6,7]1281; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1282; AVX2-FP-NEXT:    vpermps %ymm5, %ymm0, %ymm11283; AVX2-FP-NEXT:    vpermps %ymm4, %ymm0, %ymm61284; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm6[0,1,2,3,4,5],ymm1[6,7]1285; AVX2-FP-NEXT:    vpermps %ymm8, %ymm0, %ymm01286; AVX2-FP-NEXT:    vmovaps (%rdi), %xmm121287; AVX2-FP-NEXT:    vmovaps 16(%rdi), %xmm131288; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm6 = xmm12[0],xmm13[0],xmm12[1],xmm13[1]1289; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm0 = xmm6[0,1],xmm0[2,3]1290; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]1291; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1292; AVX2-FP-NEXT:    vbroadcastsd {{.*#+}} ymm0 = [1,5,1,5,1,5,1,5]1293; AVX2-FP-NEXT:    vpermps %ymm5, %ymm0, %ymm11294; AVX2-FP-NEXT:    vpermps %ymm4, %ymm0, %ymm61295; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm6[0,1,2,3,4,5],ymm1[6,7]1296; AVX2-FP-NEXT:    vmovaps 32(%rdi), %xmm141297; AVX2-FP-NEXT:    vmovaps 48(%rdi), %xmm61298; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm9 = xmm14[0],xmm6[0],xmm14[1],xmm6[1]1299; AVX2-FP-NEXT:    vpermps %ymm3, %ymm0, %ymm151300; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm9 = xmm15[0,1],xmm9[2,3]1301; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm9[0,1,2,3],ymm1[4,5,6,7]1302; AVX2-FP-NEXT:    vmovups %ymm1, (%rsp) # 32-byte Spill1303; AVX2-FP-NEXT:    vpermps %ymm2, %ymm0, %ymm11304; AVX2-FP-NEXT:    vpermps %ymm7, %ymm0, %ymm91305; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm9 = ymm9[0,1,2,3,4,5],ymm1[6,7]1306; AVX2-FP-NEXT:    vmovaps 128(%rdi), %ymm151307; AVX2-FP-NEXT:    vpermps %ymm15, %ymm0, %ymm01308; AVX2-FP-NEXT:    vmovaps 176(%rdi), %xmm31309; AVX2-FP-NEXT:    vmovaps 160(%rdi), %xmm11310; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm8 = xmm1[0],xmm3[0],xmm1[1],xmm3[1]1311; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm8[2,3]1312; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm9[4,5,6,7]1313; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1314; AVX2-FP-NEXT:    vbroadcastsd {{.*#+}} ymm0 = [2,6,2,6,2,6,2,6]1315; AVX2-FP-NEXT:    vpermps %ymm2, %ymm0, %ymm81316; AVX2-FP-NEXT:    vpermps %ymm7, %ymm0, %ymm91317; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm8 = ymm9[0,1,2,3,4,5],ymm8[6,7]1318; AVX2-FP-NEXT:    vunpckhps {{.*#+}} xmm9 = xmm11[2],xmm10[2],xmm11[3],xmm10[3]1319; AVX2-FP-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm10 # 32-byte Folded Reload1320; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm9 = xmm9[0,1],xmm10[2,3]1321; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm8 = ymm9[0,1,2,3],ymm8[4,5,6,7]1322; AVX2-FP-NEXT:    vpermps %ymm5, %ymm0, %ymm91323; AVX2-FP-NEXT:    vpermps %ymm4, %ymm0, %ymm101324; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm9 = ymm10[0,1,2,3,4,5],ymm9[6,7]1325; AVX2-FP-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload1326; AVX2-FP-NEXT:    vunpckhps {{.*#+}} xmm10 = xmm12[2],xmm13[2],xmm12[3],xmm13[3]1327; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm0 = xmm10[0,1],xmm0[2,3]1328; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm9[4,5,6,7]1329; AVX2-FP-NEXT:    vbroadcastsd {{.*#+}} ymm9 = [3,7,3,7,3,7,3,7]1330; AVX2-FP-NEXT:    vpermps %ymm5, %ymm9, %ymm51331; AVX2-FP-NEXT:    vpermps %ymm4, %ymm9, %ymm41332; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3,4,5],ymm5[6,7]1333; AVX2-FP-NEXT:    vunpckhps {{.*#+}} xmm5 = xmm14[2],xmm6[2],xmm14[3],xmm6[3]1334; AVX2-FP-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm6 # 32-byte Folded Reload1335; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm5 = xmm6[0,1],xmm5[2,3]1336; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm4 = ymm5[0,1,2,3],ymm4[4,5,6,7]1337; AVX2-FP-NEXT:    vpermps %ymm2, %ymm9, %ymm21338; AVX2-FP-NEXT:    vpermps %ymm7, %ymm9, %ymm51339; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm2 = ymm5[0,1,2,3,4,5],ymm2[6,7]1340; AVX2-FP-NEXT:    vunpckhps {{.*#+}} xmm1 = xmm1[2],xmm3[2],xmm1[3],xmm3[3]1341; AVX2-FP-NEXT:    vpermps %ymm15, %ymm9, %ymm31342; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm1 = xmm3[0,1],xmm1[2,3]1343; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm2[4,5,6,7]1344; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload1345; AVX2-FP-NEXT:    vmovaps %ymm2, 32(%rsi)1346; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload1347; AVX2-FP-NEXT:    vmovaps %ymm2, (%rsi)1348; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload1349; AVX2-FP-NEXT:    vmovaps %ymm2, 32(%rdx)1350; AVX2-FP-NEXT:    vmovups (%rsp), %ymm2 # 32-byte Reload1351; AVX2-FP-NEXT:    vmovaps %ymm2, (%rdx)1352; AVX2-FP-NEXT:    vmovaps %ymm8, 32(%rcx)1353; AVX2-FP-NEXT:    vmovaps %ymm0, (%rcx)1354; AVX2-FP-NEXT:    vmovaps %ymm1, 32(%r8)1355; AVX2-FP-NEXT:    vmovaps %ymm4, (%r8)1356; AVX2-FP-NEXT:    addq $104, %rsp1357; AVX2-FP-NEXT:    vzeroupper1358; AVX2-FP-NEXT:    retq1359;1360; AVX2-FCP-LABEL: load_i32_stride4_vf16:1361; AVX2-FCP:       # %bb.0:1362; AVX2-FCP-NEXT:    subq $104, %rsp1363; AVX2-FCP-NEXT:    vmovaps (%rdi), %ymm31364; AVX2-FCP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1365; AVX2-FCP-NEXT:    vmovaps 32(%rdi), %ymm81366; AVX2-FCP-NEXT:    vmovups %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1367; AVX2-FCP-NEXT:    vmovaps 64(%rdi), %ymm41368; AVX2-FCP-NEXT:    vmovaps 96(%rdi), %ymm51369; AVX2-FCP-NEXT:    vmovaps 160(%rdi), %ymm91370; AVX2-FCP-NEXT:    vmovups %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1371; AVX2-FCP-NEXT:    vmovaps 192(%rdi), %ymm71372; AVX2-FCP-NEXT:    vmovaps 224(%rdi), %ymm21373; AVX2-FCP-NEXT:    vbroadcastsd {{.*#+}} ymm0 = [0,4,0,4,0,4,0,4]1374; AVX2-FCP-NEXT:    vpermps %ymm2, %ymm0, %ymm11375; AVX2-FCP-NEXT:    vpermps %ymm7, %ymm0, %ymm61376; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm6[0,1,2,3,4,5],ymm1[6,7]1377; AVX2-FCP-NEXT:    vmovaps 144(%rdi), %xmm101378; AVX2-FCP-NEXT:    vmovaps 128(%rdi), %xmm111379; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm6 = xmm11[0],xmm10[0],xmm11[1],xmm10[1]1380; AVX2-FCP-NEXT:    vpermps %ymm9, %ymm0, %ymm91381; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm6 = xmm6[0,1],xmm9[2,3]1382; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm6[0,1,2,3],ymm1[4,5,6,7]1383; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1384; AVX2-FCP-NEXT:    vpermps %ymm5, %ymm0, %ymm11385; AVX2-FCP-NEXT:    vpermps %ymm4, %ymm0, %ymm61386; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm6[0,1,2,3,4,5],ymm1[6,7]1387; AVX2-FCP-NEXT:    vpermps %ymm8, %ymm0, %ymm01388; AVX2-FCP-NEXT:    vmovaps (%rdi), %xmm121389; AVX2-FCP-NEXT:    vmovaps 16(%rdi), %xmm131390; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm6 = xmm12[0],xmm13[0],xmm12[1],xmm13[1]1391; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm0 = xmm6[0,1],xmm0[2,3]1392; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]1393; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1394; AVX2-FCP-NEXT:    vbroadcastsd {{.*#+}} ymm0 = [1,5,1,5,1,5,1,5]1395; AVX2-FCP-NEXT:    vpermps %ymm5, %ymm0, %ymm11396; AVX2-FCP-NEXT:    vpermps %ymm4, %ymm0, %ymm61397; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm6[0,1,2,3,4,5],ymm1[6,7]1398; AVX2-FCP-NEXT:    vmovaps 32(%rdi), %xmm141399; AVX2-FCP-NEXT:    vmovaps 48(%rdi), %xmm61400; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm9 = xmm14[0],xmm6[0],xmm14[1],xmm6[1]1401; AVX2-FCP-NEXT:    vpermps %ymm3, %ymm0, %ymm151402; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm9 = xmm15[0,1],xmm9[2,3]1403; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm9[0,1,2,3],ymm1[4,5,6,7]1404; AVX2-FCP-NEXT:    vmovups %ymm1, (%rsp) # 32-byte Spill1405; AVX2-FCP-NEXT:    vpermps %ymm2, %ymm0, %ymm11406; AVX2-FCP-NEXT:    vpermps %ymm7, %ymm0, %ymm91407; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm9 = ymm9[0,1,2,3,4,5],ymm1[6,7]1408; AVX2-FCP-NEXT:    vmovaps 128(%rdi), %ymm151409; AVX2-FCP-NEXT:    vpermps %ymm15, %ymm0, %ymm01410; AVX2-FCP-NEXT:    vmovaps 176(%rdi), %xmm31411; AVX2-FCP-NEXT:    vmovaps 160(%rdi), %xmm11412; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm8 = xmm1[0],xmm3[0],xmm1[1],xmm3[1]1413; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm8[2,3]1414; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm9[4,5,6,7]1415; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1416; AVX2-FCP-NEXT:    vbroadcastsd {{.*#+}} ymm0 = [2,6,2,6,2,6,2,6]1417; AVX2-FCP-NEXT:    vpermps %ymm2, %ymm0, %ymm81418; AVX2-FCP-NEXT:    vpermps %ymm7, %ymm0, %ymm91419; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm8 = ymm9[0,1,2,3,4,5],ymm8[6,7]1420; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} xmm9 = xmm11[2],xmm10[2],xmm11[3],xmm10[3]1421; AVX2-FCP-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm10 # 32-byte Folded Reload1422; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm9 = xmm9[0,1],xmm10[2,3]1423; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm8 = ymm9[0,1,2,3],ymm8[4,5,6,7]1424; AVX2-FCP-NEXT:    vpermps %ymm5, %ymm0, %ymm91425; AVX2-FCP-NEXT:    vpermps %ymm4, %ymm0, %ymm101426; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm9 = ymm10[0,1,2,3,4,5],ymm9[6,7]1427; AVX2-FCP-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload1428; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} xmm10 = xmm12[2],xmm13[2],xmm12[3],xmm13[3]1429; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm0 = xmm10[0,1],xmm0[2,3]1430; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm9[4,5,6,7]1431; AVX2-FCP-NEXT:    vbroadcastsd {{.*#+}} ymm9 = [3,7,3,7,3,7,3,7]1432; AVX2-FCP-NEXT:    vpermps %ymm5, %ymm9, %ymm51433; AVX2-FCP-NEXT:    vpermps %ymm4, %ymm9, %ymm41434; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3,4,5],ymm5[6,7]1435; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} xmm5 = xmm14[2],xmm6[2],xmm14[3],xmm6[3]1436; AVX2-FCP-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm6 # 32-byte Folded Reload1437; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm5 = xmm6[0,1],xmm5[2,3]1438; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm4 = ymm5[0,1,2,3],ymm4[4,5,6,7]1439; AVX2-FCP-NEXT:    vpermps %ymm2, %ymm9, %ymm21440; AVX2-FCP-NEXT:    vpermps %ymm7, %ymm9, %ymm51441; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm2 = ymm5[0,1,2,3,4,5],ymm2[6,7]1442; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} xmm1 = xmm1[2],xmm3[2],xmm1[3],xmm3[3]1443; AVX2-FCP-NEXT:    vpermps %ymm15, %ymm9, %ymm31444; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm1 = xmm3[0,1],xmm1[2,3]1445; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm2[4,5,6,7]1446; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload1447; AVX2-FCP-NEXT:    vmovaps %ymm2, 32(%rsi)1448; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload1449; AVX2-FCP-NEXT:    vmovaps %ymm2, (%rsi)1450; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload1451; AVX2-FCP-NEXT:    vmovaps %ymm2, 32(%rdx)1452; AVX2-FCP-NEXT:    vmovups (%rsp), %ymm2 # 32-byte Reload1453; AVX2-FCP-NEXT:    vmovaps %ymm2, (%rdx)1454; AVX2-FCP-NEXT:    vmovaps %ymm8, 32(%rcx)1455; AVX2-FCP-NEXT:    vmovaps %ymm0, (%rcx)1456; AVX2-FCP-NEXT:    vmovaps %ymm1, 32(%r8)1457; AVX2-FCP-NEXT:    vmovaps %ymm4, (%r8)1458; AVX2-FCP-NEXT:    addq $104, %rsp1459; AVX2-FCP-NEXT:    vzeroupper1460; AVX2-FCP-NEXT:    retq1461;1462; AVX512-LABEL: load_i32_stride4_vf16:1463; AVX512:       # %bb.0:1464; AVX512-NEXT:    vmovdqa64 (%rdi), %zmm01465; AVX512-NEXT:    vmovdqa64 64(%rdi), %zmm11466; AVX512-NEXT:    vmovdqa64 128(%rdi), %zmm21467; AVX512-NEXT:    vmovdqa64 192(%rdi), %zmm31468; AVX512-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [0,4,8,12,16,20,24,28,0,4,8,12,16,20,24,28]1469; AVX512-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]1470; AVX512-NEXT:    vmovdqa64 %zmm2, %zmm51471; AVX512-NEXT:    vpermt2d %zmm3, %zmm4, %zmm51472; AVX512-NEXT:    vpermi2d %zmm1, %zmm0, %zmm41473; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm4 = zmm4[0,1,2,3],zmm5[4,5,6,7]1474; AVX512-NEXT:    vbroadcasti64x4 {{.*#+}} zmm5 = [1,5,9,13,17,21,25,29,1,5,9,13,17,21,25,29]1475; AVX512-NEXT:    # zmm5 = mem[0,1,2,3,0,1,2,3]1476; AVX512-NEXT:    vmovdqa64 %zmm2, %zmm61477; AVX512-NEXT:    vpermt2d %zmm3, %zmm5, %zmm61478; AVX512-NEXT:    vpermi2d %zmm1, %zmm0, %zmm51479; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm5 = zmm5[0,1,2,3],zmm6[4,5,6,7]1480; AVX512-NEXT:    vbroadcasti64x4 {{.*#+}} zmm6 = [2,6,10,14,18,22,26,30,2,6,10,14,18,22,26,30]1481; AVX512-NEXT:    # zmm6 = mem[0,1,2,3,0,1,2,3]1482; AVX512-NEXT:    vmovdqa64 %zmm2, %zmm71483; AVX512-NEXT:    vpermt2d %zmm3, %zmm6, %zmm71484; AVX512-NEXT:    vpermi2d %zmm1, %zmm0, %zmm61485; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm6 = zmm6[0,1,2,3],zmm7[4,5,6,7]1486; AVX512-NEXT:    vbroadcasti64x4 {{.*#+}} zmm7 = [3,7,11,15,19,23,27,31,3,7,11,15,19,23,27,31]1487; AVX512-NEXT:    # zmm7 = mem[0,1,2,3,0,1,2,3]1488; AVX512-NEXT:    vpermt2d %zmm3, %zmm7, %zmm21489; AVX512-NEXT:    vpermt2d %zmm1, %zmm7, %zmm01490; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm0 = zmm0[0,1,2,3],zmm2[4,5,6,7]1491; AVX512-NEXT:    vmovdqa64 %zmm4, (%rsi)1492; AVX512-NEXT:    vmovdqa64 %zmm5, (%rdx)1493; AVX512-NEXT:    vmovdqa64 %zmm6, (%rcx)1494; AVX512-NEXT:    vmovdqa64 %zmm0, (%r8)1495; AVX512-NEXT:    vzeroupper1496; AVX512-NEXT:    retq1497;1498; AVX512-FCP-LABEL: load_i32_stride4_vf16:1499; AVX512-FCP:       # %bb.0:1500; AVX512-FCP-NEXT:    vmovdqa64 (%rdi), %zmm01501; AVX512-FCP-NEXT:    vmovdqa64 64(%rdi), %zmm11502; AVX512-FCP-NEXT:    vmovdqa64 128(%rdi), %zmm21503; AVX512-FCP-NEXT:    vmovdqa64 192(%rdi), %zmm31504; AVX512-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [0,4,8,12,16,20,24,28,0,4,8,12,16,20,24,28]1505; AVX512-FCP-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]1506; AVX512-FCP-NEXT:    vmovdqa64 %zmm2, %zmm51507; AVX512-FCP-NEXT:    vpermt2d %zmm3, %zmm4, %zmm51508; AVX512-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm41509; AVX512-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm4 = zmm4[0,1,2,3],zmm5[4,5,6,7]1510; AVX512-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm5 = [1,5,9,13,17,21,25,29,1,5,9,13,17,21,25,29]1511; AVX512-FCP-NEXT:    # zmm5 = mem[0,1,2,3,0,1,2,3]1512; AVX512-FCP-NEXT:    vmovdqa64 %zmm2, %zmm61513; AVX512-FCP-NEXT:    vpermt2d %zmm3, %zmm5, %zmm61514; AVX512-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm51515; AVX512-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm5 = zmm5[0,1,2,3],zmm6[4,5,6,7]1516; AVX512-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm6 = [2,6,10,14,18,22,26,30,2,6,10,14,18,22,26,30]1517; AVX512-FCP-NEXT:    # zmm6 = mem[0,1,2,3,0,1,2,3]1518; AVX512-FCP-NEXT:    vmovdqa64 %zmm2, %zmm71519; AVX512-FCP-NEXT:    vpermt2d %zmm3, %zmm6, %zmm71520; AVX512-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm61521; AVX512-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm6 = zmm6[0,1,2,3],zmm7[4,5,6,7]1522; AVX512-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm7 = [3,7,11,15,19,23,27,31,3,7,11,15,19,23,27,31]1523; AVX512-FCP-NEXT:    # zmm7 = mem[0,1,2,3,0,1,2,3]1524; AVX512-FCP-NEXT:    vpermt2d %zmm3, %zmm7, %zmm21525; AVX512-FCP-NEXT:    vpermt2d %zmm1, %zmm7, %zmm01526; AVX512-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm0 = zmm0[0,1,2,3],zmm2[4,5,6,7]1527; AVX512-FCP-NEXT:    vmovdqa64 %zmm4, (%rsi)1528; AVX512-FCP-NEXT:    vmovdqa64 %zmm5, (%rdx)1529; AVX512-FCP-NEXT:    vmovdqa64 %zmm6, (%rcx)1530; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, (%r8)1531; AVX512-FCP-NEXT:    vzeroupper1532; AVX512-FCP-NEXT:    retq1533;1534; AVX512DQ-LABEL: load_i32_stride4_vf16:1535; AVX512DQ:       # %bb.0:1536; AVX512DQ-NEXT:    vmovdqa64 (%rdi), %zmm01537; AVX512DQ-NEXT:    vmovdqa64 64(%rdi), %zmm11538; AVX512DQ-NEXT:    vmovdqa64 128(%rdi), %zmm21539; AVX512DQ-NEXT:    vmovdqa64 192(%rdi), %zmm31540; AVX512DQ-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [0,4,8,12,16,20,24,28,0,4,8,12,16,20,24,28]1541; AVX512DQ-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]1542; AVX512DQ-NEXT:    vmovdqa64 %zmm2, %zmm51543; AVX512DQ-NEXT:    vpermt2d %zmm3, %zmm4, %zmm51544; AVX512DQ-NEXT:    vpermi2d %zmm1, %zmm0, %zmm41545; AVX512DQ-NEXT:    vshufi64x2 {{.*#+}} zmm4 = zmm4[0,1,2,3],zmm5[4,5,6,7]1546; AVX512DQ-NEXT:    vbroadcasti64x4 {{.*#+}} zmm5 = [1,5,9,13,17,21,25,29,1,5,9,13,17,21,25,29]1547; AVX512DQ-NEXT:    # zmm5 = mem[0,1,2,3,0,1,2,3]1548; AVX512DQ-NEXT:    vmovdqa64 %zmm2, %zmm61549; AVX512DQ-NEXT:    vpermt2d %zmm3, %zmm5, %zmm61550; AVX512DQ-NEXT:    vpermi2d %zmm1, %zmm0, %zmm51551; AVX512DQ-NEXT:    vshufi64x2 {{.*#+}} zmm5 = zmm5[0,1,2,3],zmm6[4,5,6,7]1552; AVX512DQ-NEXT:    vbroadcasti64x4 {{.*#+}} zmm6 = [2,6,10,14,18,22,26,30,2,6,10,14,18,22,26,30]1553; AVX512DQ-NEXT:    # zmm6 = mem[0,1,2,3,0,1,2,3]1554; AVX512DQ-NEXT:    vmovdqa64 %zmm2, %zmm71555; AVX512DQ-NEXT:    vpermt2d %zmm3, %zmm6, %zmm71556; AVX512DQ-NEXT:    vpermi2d %zmm1, %zmm0, %zmm61557; AVX512DQ-NEXT:    vshufi64x2 {{.*#+}} zmm6 = zmm6[0,1,2,3],zmm7[4,5,6,7]1558; AVX512DQ-NEXT:    vbroadcasti64x4 {{.*#+}} zmm7 = [3,7,11,15,19,23,27,31,3,7,11,15,19,23,27,31]1559; AVX512DQ-NEXT:    # zmm7 = mem[0,1,2,3,0,1,2,3]1560; AVX512DQ-NEXT:    vpermt2d %zmm3, %zmm7, %zmm21561; AVX512DQ-NEXT:    vpermt2d %zmm1, %zmm7, %zmm01562; AVX512DQ-NEXT:    vshufi64x2 {{.*#+}} zmm0 = zmm0[0,1,2,3],zmm2[4,5,6,7]1563; AVX512DQ-NEXT:    vmovdqa64 %zmm4, (%rsi)1564; AVX512DQ-NEXT:    vmovdqa64 %zmm5, (%rdx)1565; AVX512DQ-NEXT:    vmovdqa64 %zmm6, (%rcx)1566; AVX512DQ-NEXT:    vmovdqa64 %zmm0, (%r8)1567; AVX512DQ-NEXT:    vzeroupper1568; AVX512DQ-NEXT:    retq1569;1570; AVX512DQ-FCP-LABEL: load_i32_stride4_vf16:1571; AVX512DQ-FCP:       # %bb.0:1572; AVX512DQ-FCP-NEXT:    vmovdqa64 (%rdi), %zmm01573; AVX512DQ-FCP-NEXT:    vmovdqa64 64(%rdi), %zmm11574; AVX512DQ-FCP-NEXT:    vmovdqa64 128(%rdi), %zmm21575; AVX512DQ-FCP-NEXT:    vmovdqa64 192(%rdi), %zmm31576; AVX512DQ-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [0,4,8,12,16,20,24,28,0,4,8,12,16,20,24,28]1577; AVX512DQ-FCP-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]1578; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm2, %zmm51579; AVX512DQ-FCP-NEXT:    vpermt2d %zmm3, %zmm4, %zmm51580; AVX512DQ-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm41581; AVX512DQ-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm4 = zmm4[0,1,2,3],zmm5[4,5,6,7]1582; AVX512DQ-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm5 = [1,5,9,13,17,21,25,29,1,5,9,13,17,21,25,29]1583; AVX512DQ-FCP-NEXT:    # zmm5 = mem[0,1,2,3,0,1,2,3]1584; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm2, %zmm61585; AVX512DQ-FCP-NEXT:    vpermt2d %zmm3, %zmm5, %zmm61586; AVX512DQ-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm51587; AVX512DQ-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm5 = zmm5[0,1,2,3],zmm6[4,5,6,7]1588; AVX512DQ-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm6 = [2,6,10,14,18,22,26,30,2,6,10,14,18,22,26,30]1589; AVX512DQ-FCP-NEXT:    # zmm6 = mem[0,1,2,3,0,1,2,3]1590; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm2, %zmm71591; AVX512DQ-FCP-NEXT:    vpermt2d %zmm3, %zmm6, %zmm71592; AVX512DQ-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm61593; AVX512DQ-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm6 = zmm6[0,1,2,3],zmm7[4,5,6,7]1594; AVX512DQ-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm7 = [3,7,11,15,19,23,27,31,3,7,11,15,19,23,27,31]1595; AVX512DQ-FCP-NEXT:    # zmm7 = mem[0,1,2,3,0,1,2,3]1596; AVX512DQ-FCP-NEXT:    vpermt2d %zmm3, %zmm7, %zmm21597; AVX512DQ-FCP-NEXT:    vpermt2d %zmm1, %zmm7, %zmm01598; AVX512DQ-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm0 = zmm0[0,1,2,3],zmm2[4,5,6,7]1599; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm4, (%rsi)1600; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm5, (%rdx)1601; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm6, (%rcx)1602; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, (%r8)1603; AVX512DQ-FCP-NEXT:    vzeroupper1604; AVX512DQ-FCP-NEXT:    retq1605;1606; AVX512BW-LABEL: load_i32_stride4_vf16:1607; AVX512BW:       # %bb.0:1608; AVX512BW-NEXT:    vmovdqa64 (%rdi), %zmm01609; AVX512BW-NEXT:    vmovdqa64 64(%rdi), %zmm11610; AVX512BW-NEXT:    vmovdqa64 128(%rdi), %zmm21611; AVX512BW-NEXT:    vmovdqa64 192(%rdi), %zmm31612; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [0,4,8,12,16,20,24,28,0,4,8,12,16,20,24,28]1613; AVX512BW-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]1614; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm51615; AVX512BW-NEXT:    vpermt2d %zmm3, %zmm4, %zmm51616; AVX512BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm41617; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm4 = zmm4[0,1,2,3],zmm5[4,5,6,7]1618; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm5 = [1,5,9,13,17,21,25,29,1,5,9,13,17,21,25,29]1619; AVX512BW-NEXT:    # zmm5 = mem[0,1,2,3,0,1,2,3]1620; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm61621; AVX512BW-NEXT:    vpermt2d %zmm3, %zmm5, %zmm61622; AVX512BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm51623; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm5 = zmm5[0,1,2,3],zmm6[4,5,6,7]1624; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm6 = [2,6,10,14,18,22,26,30,2,6,10,14,18,22,26,30]1625; AVX512BW-NEXT:    # zmm6 = mem[0,1,2,3,0,1,2,3]1626; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm71627; AVX512BW-NEXT:    vpermt2d %zmm3, %zmm6, %zmm71628; AVX512BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm61629; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm6 = zmm6[0,1,2,3],zmm7[4,5,6,7]1630; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm7 = [3,7,11,15,19,23,27,31,3,7,11,15,19,23,27,31]1631; AVX512BW-NEXT:    # zmm7 = mem[0,1,2,3,0,1,2,3]1632; AVX512BW-NEXT:    vpermt2d %zmm3, %zmm7, %zmm21633; AVX512BW-NEXT:    vpermt2d %zmm1, %zmm7, %zmm01634; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm0 = zmm0[0,1,2,3],zmm2[4,5,6,7]1635; AVX512BW-NEXT:    vmovdqa64 %zmm4, (%rsi)1636; AVX512BW-NEXT:    vmovdqa64 %zmm5, (%rdx)1637; AVX512BW-NEXT:    vmovdqa64 %zmm6, (%rcx)1638; AVX512BW-NEXT:    vmovdqa64 %zmm0, (%r8)1639; AVX512BW-NEXT:    vzeroupper1640; AVX512BW-NEXT:    retq1641;1642; AVX512BW-FCP-LABEL: load_i32_stride4_vf16:1643; AVX512BW-FCP:       # %bb.0:1644; AVX512BW-FCP-NEXT:    vmovdqa64 (%rdi), %zmm01645; AVX512BW-FCP-NEXT:    vmovdqa64 64(%rdi), %zmm11646; AVX512BW-FCP-NEXT:    vmovdqa64 128(%rdi), %zmm21647; AVX512BW-FCP-NEXT:    vmovdqa64 192(%rdi), %zmm31648; AVX512BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [0,4,8,12,16,20,24,28,0,4,8,12,16,20,24,28]1649; AVX512BW-FCP-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]1650; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm51651; AVX512BW-FCP-NEXT:    vpermt2d %zmm3, %zmm4, %zmm51652; AVX512BW-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm41653; AVX512BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm4 = zmm4[0,1,2,3],zmm5[4,5,6,7]1654; AVX512BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm5 = [1,5,9,13,17,21,25,29,1,5,9,13,17,21,25,29]1655; AVX512BW-FCP-NEXT:    # zmm5 = mem[0,1,2,3,0,1,2,3]1656; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm61657; AVX512BW-FCP-NEXT:    vpermt2d %zmm3, %zmm5, %zmm61658; AVX512BW-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm51659; AVX512BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm5 = zmm5[0,1,2,3],zmm6[4,5,6,7]1660; AVX512BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm6 = [2,6,10,14,18,22,26,30,2,6,10,14,18,22,26,30]1661; AVX512BW-FCP-NEXT:    # zmm6 = mem[0,1,2,3,0,1,2,3]1662; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm71663; AVX512BW-FCP-NEXT:    vpermt2d %zmm3, %zmm6, %zmm71664; AVX512BW-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm61665; AVX512BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm6 = zmm6[0,1,2,3],zmm7[4,5,6,7]1666; AVX512BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm7 = [3,7,11,15,19,23,27,31,3,7,11,15,19,23,27,31]1667; AVX512BW-FCP-NEXT:    # zmm7 = mem[0,1,2,3,0,1,2,3]1668; AVX512BW-FCP-NEXT:    vpermt2d %zmm3, %zmm7, %zmm21669; AVX512BW-FCP-NEXT:    vpermt2d %zmm1, %zmm7, %zmm01670; AVX512BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm0 = zmm0[0,1,2,3],zmm2[4,5,6,7]1671; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm4, (%rsi)1672; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm5, (%rdx)1673; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm6, (%rcx)1674; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, (%r8)1675; AVX512BW-FCP-NEXT:    vzeroupper1676; AVX512BW-FCP-NEXT:    retq1677;1678; AVX512DQ-BW-LABEL: load_i32_stride4_vf16:1679; AVX512DQ-BW:       # %bb.0:1680; AVX512DQ-BW-NEXT:    vmovdqa64 (%rdi), %zmm01681; AVX512DQ-BW-NEXT:    vmovdqa64 64(%rdi), %zmm11682; AVX512DQ-BW-NEXT:    vmovdqa64 128(%rdi), %zmm21683; AVX512DQ-BW-NEXT:    vmovdqa64 192(%rdi), %zmm31684; AVX512DQ-BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [0,4,8,12,16,20,24,28,0,4,8,12,16,20,24,28]1685; AVX512DQ-BW-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]1686; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm2, %zmm51687; AVX512DQ-BW-NEXT:    vpermt2d %zmm3, %zmm4, %zmm51688; AVX512DQ-BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm41689; AVX512DQ-BW-NEXT:    vshufi64x2 {{.*#+}} zmm4 = zmm4[0,1,2,3],zmm5[4,5,6,7]1690; AVX512DQ-BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm5 = [1,5,9,13,17,21,25,29,1,5,9,13,17,21,25,29]1691; AVX512DQ-BW-NEXT:    # zmm5 = mem[0,1,2,3,0,1,2,3]1692; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm2, %zmm61693; AVX512DQ-BW-NEXT:    vpermt2d %zmm3, %zmm5, %zmm61694; AVX512DQ-BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm51695; AVX512DQ-BW-NEXT:    vshufi64x2 {{.*#+}} zmm5 = zmm5[0,1,2,3],zmm6[4,5,6,7]1696; AVX512DQ-BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm6 = [2,6,10,14,18,22,26,30,2,6,10,14,18,22,26,30]1697; AVX512DQ-BW-NEXT:    # zmm6 = mem[0,1,2,3,0,1,2,3]1698; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm2, %zmm71699; AVX512DQ-BW-NEXT:    vpermt2d %zmm3, %zmm6, %zmm71700; AVX512DQ-BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm61701; AVX512DQ-BW-NEXT:    vshufi64x2 {{.*#+}} zmm6 = zmm6[0,1,2,3],zmm7[4,5,6,7]1702; AVX512DQ-BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm7 = [3,7,11,15,19,23,27,31,3,7,11,15,19,23,27,31]1703; AVX512DQ-BW-NEXT:    # zmm7 = mem[0,1,2,3,0,1,2,3]1704; AVX512DQ-BW-NEXT:    vpermt2d %zmm3, %zmm7, %zmm21705; AVX512DQ-BW-NEXT:    vpermt2d %zmm1, %zmm7, %zmm01706; AVX512DQ-BW-NEXT:    vshufi64x2 {{.*#+}} zmm0 = zmm0[0,1,2,3],zmm2[4,5,6,7]1707; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm4, (%rsi)1708; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm5, (%rdx)1709; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm6, (%rcx)1710; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, (%r8)1711; AVX512DQ-BW-NEXT:    vzeroupper1712; AVX512DQ-BW-NEXT:    retq1713;1714; AVX512DQ-BW-FCP-LABEL: load_i32_stride4_vf16:1715; AVX512DQ-BW-FCP:       # %bb.0:1716; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%rdi), %zmm01717; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 64(%rdi), %zmm11718; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 128(%rdi), %zmm21719; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 192(%rdi), %zmm31720; AVX512DQ-BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [0,4,8,12,16,20,24,28,0,4,8,12,16,20,24,28]1721; AVX512DQ-BW-FCP-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]1722; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm51723; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm3, %zmm4, %zmm51724; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm41725; AVX512DQ-BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm4 = zmm4[0,1,2,3],zmm5[4,5,6,7]1726; AVX512DQ-BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm5 = [1,5,9,13,17,21,25,29,1,5,9,13,17,21,25,29]1727; AVX512DQ-BW-FCP-NEXT:    # zmm5 = mem[0,1,2,3,0,1,2,3]1728; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm61729; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm3, %zmm5, %zmm61730; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm51731; AVX512DQ-BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm5 = zmm5[0,1,2,3],zmm6[4,5,6,7]1732; AVX512DQ-BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm6 = [2,6,10,14,18,22,26,30,2,6,10,14,18,22,26,30]1733; AVX512DQ-BW-FCP-NEXT:    # zmm6 = mem[0,1,2,3,0,1,2,3]1734; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm71735; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm3, %zmm6, %zmm71736; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm61737; AVX512DQ-BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm6 = zmm6[0,1,2,3],zmm7[4,5,6,7]1738; AVX512DQ-BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm7 = [3,7,11,15,19,23,27,31,3,7,11,15,19,23,27,31]1739; AVX512DQ-BW-FCP-NEXT:    # zmm7 = mem[0,1,2,3,0,1,2,3]1740; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm3, %zmm7, %zmm21741; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm1, %zmm7, %zmm01742; AVX512DQ-BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm0 = zmm0[0,1,2,3],zmm2[4,5,6,7]1743; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm4, (%rsi)1744; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm5, (%rdx)1745; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm6, (%rcx)1746; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, (%r8)1747; AVX512DQ-BW-FCP-NEXT:    vzeroupper1748; AVX512DQ-BW-FCP-NEXT:    retq1749  %wide.vec = load <64 x i32>, ptr %in.vec, align 641750  %strided.vec0 = shufflevector <64 x i32> %wide.vec, <64 x i32> poison, <16 x i32> <i32 0, i32 4, i32 8, i32 12, i32 16, i32 20, i32 24, i32 28, i32 32, i32 36, i32 40, i32 44, i32 48, i32 52, i32 56, i32 60>1751  %strided.vec1 = shufflevector <64 x i32> %wide.vec, <64 x i32> poison, <16 x i32> <i32 1, i32 5, i32 9, i32 13, i32 17, i32 21, i32 25, i32 29, i32 33, i32 37, i32 41, i32 45, i32 49, i32 53, i32 57, i32 61>1752  %strided.vec2 = shufflevector <64 x i32> %wide.vec, <64 x i32> poison, <16 x i32> <i32 2, i32 6, i32 10, i32 14, i32 18, i32 22, i32 26, i32 30, i32 34, i32 38, i32 42, i32 46, i32 50, i32 54, i32 58, i32 62>1753  %strided.vec3 = shufflevector <64 x i32> %wide.vec, <64 x i32> poison, <16 x i32> <i32 3, i32 7, i32 11, i32 15, i32 19, i32 23, i32 27, i32 31, i32 35, i32 39, i32 43, i32 47, i32 51, i32 55, i32 59, i32 63>1754  store <16 x i32> %strided.vec0, ptr %out.vec0, align 641755  store <16 x i32> %strided.vec1, ptr %out.vec1, align 641756  store <16 x i32> %strided.vec2, ptr %out.vec2, align 641757  store <16 x i32> %strided.vec3, ptr %out.vec3, align 641758  ret void1759}1760 1761define void @load_i32_stride4_vf32(ptr %in.vec, ptr %out.vec0, ptr %out.vec1, ptr %out.vec2, ptr %out.vec3) nounwind {1762; SSE-LABEL: load_i32_stride4_vf32:1763; SSE:       # %bb.0:1764; SSE-NEXT:    subq $456, %rsp # imm = 0x1C81765; SSE-NEXT:    movaps 272(%rdi), %xmm71766; SSE-NEXT:    movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1767; SSE-NEXT:    movaps 304(%rdi), %xmm81768; SSE-NEXT:    movaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1769; SSE-NEXT:    movaps 288(%rdi), %xmm21770; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1771; SSE-NEXT:    movaps 336(%rdi), %xmm101772; SSE-NEXT:    movaps %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1773; SSE-NEXT:    movaps 320(%rdi), %xmm61774; SSE-NEXT:    movaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1775; SSE-NEXT:    movaps 368(%rdi), %xmm111776; SSE-NEXT:    movaps %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1777; SSE-NEXT:    movaps 352(%rdi), %xmm51778; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1779; SSE-NEXT:    movaps 80(%rdi), %xmm91780; SSE-NEXT:    movaps %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1781; SSE-NEXT:    movaps 64(%rdi), %xmm41782; SSE-NEXT:    movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1783; SSE-NEXT:    movaps 112(%rdi), %xmm31784; SSE-NEXT:    movaps 96(%rdi), %xmm01785; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1786; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm3[0],xmm0[1],xmm3[1]1787; SSE-NEXT:    unpcklps {{.*#+}} xmm4 = xmm4[0],xmm9[0],xmm4[1],xmm9[1]1788; SSE-NEXT:    movaps %xmm4, %xmm11789; SSE-NEXT:    movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]1790; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1791; SSE-NEXT:    movaps %xmm5, %xmm11792; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm11[0],xmm1[1],xmm11[1]1793; SSE-NEXT:    movaps %xmm6, %xmm51794; SSE-NEXT:    unpcklps {{.*#+}} xmm5 = xmm5[0],xmm10[0],xmm5[1],xmm10[1]1795; SSE-NEXT:    unpckhpd {{.*#+}} xmm4 = xmm4[1],xmm0[1]1796; SSE-NEXT:    movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1797; SSE-NEXT:    movaps %xmm5, %xmm01798; SSE-NEXT:    movlhps {{.*#+}} xmm0 = xmm0[0],xmm1[0]1799; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1800; SSE-NEXT:    unpckhpd {{.*#+}} xmm5 = xmm5[1],xmm1[1]1801; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1802; SSE-NEXT:    movaps %xmm2, %xmm01803; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm8[0],xmm0[1],xmm8[1]1804; SSE-NEXT:    movaps 256(%rdi), %xmm11805; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1806; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm7[0],xmm1[1],xmm7[1]1807; SSE-NEXT:    movaps %xmm1, %xmm21808; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]1809; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1810; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]1811; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1812; SSE-NEXT:    movaps 240(%rdi), %xmm11813; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1814; SSE-NEXT:    movaps 224(%rdi), %xmm131815; SSE-NEXT:    movaps %xmm13, %xmm01816; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]1817; SSE-NEXT:    movaps 208(%rdi), %xmm21818; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1819; SSE-NEXT:    movaps 192(%rdi), %xmm11820; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1821; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]1822; SSE-NEXT:    movaps %xmm1, %xmm21823; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]1824; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1825; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]1826; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1827; SSE-NEXT:    movaps 496(%rdi), %xmm11828; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1829; SSE-NEXT:    movaps 480(%rdi), %xmm01830; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1831; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]1832; SSE-NEXT:    movaps 464(%rdi), %xmm21833; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1834; SSE-NEXT:    movaps 448(%rdi), %xmm11835; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1836; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]1837; SSE-NEXT:    movaps %xmm1, %xmm21838; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]1839; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1840; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]1841; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1842; SSE-NEXT:    movaps 176(%rdi), %xmm11843; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1844; SSE-NEXT:    movaps 160(%rdi), %xmm41845; SSE-NEXT:    movaps %xmm4, %xmm01846; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]1847; SSE-NEXT:    movaps 144(%rdi), %xmm11848; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1849; SSE-NEXT:    movaps 128(%rdi), %xmm151850; SSE-NEXT:    movaps %xmm15, %xmm141851; SSE-NEXT:    unpcklps {{.*#+}} xmm14 = xmm14[0],xmm1[0],xmm14[1],xmm1[1]1852; SSE-NEXT:    movaps %xmm14, %xmm11853; SSE-NEXT:    movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]1854; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1855; SSE-NEXT:    unpckhpd {{.*#+}} xmm14 = xmm14[1],xmm0[1]1856; SSE-NEXT:    movaps 432(%rdi), %xmm11857; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1858; SSE-NEXT:    movaps 416(%rdi), %xmm101859; SSE-NEXT:    movaps %xmm10, %xmm01860; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]1861; SSE-NEXT:    movaps 400(%rdi), %xmm11862; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1863; SSE-NEXT:    movaps 384(%rdi), %xmm121864; SSE-NEXT:    movaps %xmm12, %xmm71865; SSE-NEXT:    unpcklps {{.*#+}} xmm7 = xmm7[0],xmm1[0],xmm7[1],xmm1[1]1866; SSE-NEXT:    movaps %xmm7, %xmm11867; SSE-NEXT:    movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]1868; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1869; SSE-NEXT:    unpckhpd {{.*#+}} xmm7 = xmm7[1],xmm0[1]1870; SSE-NEXT:    movaps 32(%rdi), %xmm111871; SSE-NEXT:    movaps 48(%rdi), %xmm01872; SSE-NEXT:    movaps %xmm0, (%rsp) # 16-byte Spill1873; SSE-NEXT:    movaps %xmm11, %xmm81874; SSE-NEXT:    unpcklps {{.*#+}} xmm8 = xmm8[0],xmm0[0],xmm8[1],xmm0[1]1875; SSE-NEXT:    movaps (%rdi), %xmm61876; SSE-NEXT:    movaps 16(%rdi), %xmm91877; SSE-NEXT:    movaps %xmm6, %xmm51878; SSE-NEXT:    unpcklps {{.*#+}} xmm5 = xmm5[0],xmm9[0],xmm5[1],xmm9[1]1879; SSE-NEXT:    movaps %xmm5, %xmm01880; SSE-NEXT:    movlhps {{.*#+}} xmm0 = xmm0[0],xmm8[0]1881; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1882; SSE-NEXT:    unpckhpd {{.*#+}} xmm5 = xmm5[1],xmm8[1]1883; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload1884; SSE-NEXT:    unpckhps {{.*#+}} xmm0 = xmm0[2],xmm3[2],xmm0[3],xmm3[3]1885; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload1886; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Folded Reload1887; SSE-NEXT:    # xmm3 = xmm3[2],mem[2],xmm3[3],mem[3]1888; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload1889; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Folded Reload1890; SSE-NEXT:    # xmm8 = xmm8[2],mem[2],xmm8[3],mem[3]1891; SSE-NEXT:    movaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1892; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload1893; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Folded Reload1894; SSE-NEXT:    # xmm8 = xmm8[2],mem[2],xmm8[3],mem[3]1895; SSE-NEXT:    movaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1896; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload1897; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload1898; SSE-NEXT:    # xmm1 = xmm1[2],mem[2],xmm1[3],mem[3]1899; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1900; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload1901; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload1902; SSE-NEXT:    # xmm2 = xmm2[2],mem[2],xmm2[3],mem[3]1903; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Folded Reload1904; SSE-NEXT:    # xmm13 = xmm13[2],mem[2],xmm13[3],mem[3]1905; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload1906; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload1907; SSE-NEXT:    # xmm1 = xmm1[2],mem[2],xmm1[3],mem[3]1908; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload1909; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Folded Reload1910; SSE-NEXT:    # xmm8 = xmm8[2],mem[2],xmm8[3],mem[3]1911; SSE-NEXT:    movaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1912; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload1913; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Folded Reload1914; SSE-NEXT:    # xmm8 = xmm8[2],mem[2],xmm8[3],mem[3]1915; SSE-NEXT:    movaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1916; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload1917; SSE-NEXT:    # xmm4 = xmm4[2],mem[2],xmm4[3],mem[3]1918; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Folded Reload1919; SSE-NEXT:    # xmm15 = xmm15[2],mem[2],xmm15[3],mem[3]1920; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Folded Reload1921; SSE-NEXT:    # xmm10 = xmm10[2],mem[2],xmm10[3],mem[3]1922; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Folded Reload1923; SSE-NEXT:    # xmm12 = xmm12[2],mem[2],xmm12[3],mem[3]1924; SSE-NEXT:    unpckhps (%rsp), %xmm11 # 16-byte Folded Reload1925; SSE-NEXT:    # xmm11 = xmm11[2],mem[2],xmm11[3],mem[3]1926; SSE-NEXT:    unpckhps {{.*#+}} xmm6 = xmm6[2],xmm9[2],xmm6[3],xmm9[3]1927; SSE-NEXT:    movaps %xmm3, %xmm81928; SSE-NEXT:    movlhps {{.*#+}} xmm8 = xmm8[0],xmm0[0]1929; SSE-NEXT:    unpckhpd {{.*#+}} xmm3 = xmm3[1],xmm0[1]1930; SSE-NEXT:    movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1931; SSE-NEXT:    movaps %xmm15, %xmm91932; SSE-NEXT:    movlhps {{.*#+}} xmm9 = xmm9[0],xmm4[0]1933; SSE-NEXT:    unpckhpd {{.*#+}} xmm15 = xmm15[1],xmm4[1]1934; SSE-NEXT:    movaps %xmm1, %xmm41935; SSE-NEXT:    movlhps {{.*#+}} xmm4 = xmm4[0],xmm13[0]1936; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm13[1]1937; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1938; SSE-NEXT:    movaps %xmm2, %xmm01939; SSE-NEXT:    movaps %xmm2, %xmm131940; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload1941; SSE-NEXT:    movlhps {{.*#+}} xmm13 = xmm13[0],xmm2[0]1942; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm2[1]1943; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1944; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload1945; SSE-NEXT:    movaps %xmm1, %xmm01946; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload1947; SSE-NEXT:    movlhps {{.*#+}} xmm0 = xmm0[0],xmm3[0]1948; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm3[1]1949; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1950; SSE-NEXT:    movaps %xmm12, %xmm31951; SSE-NEXT:    movlhps {{.*#+}} xmm3 = xmm3[0],xmm10[0]1952; SSE-NEXT:    unpckhpd {{.*#+}} xmm12 = xmm12[1],xmm10[1]1953; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload1954; SSE-NEXT:    movaps %xmm1, %xmm101955; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload1956; SSE-NEXT:    movlhps {{.*#+}} xmm10 = xmm10[0],xmm2[0]1957; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm2[1]1958; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1959; SSE-NEXT:    movaps %xmm6, %xmm21960; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm11[0]1961; SSE-NEXT:    unpckhpd {{.*#+}} xmm6 = xmm6[1],xmm11[1]1962; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload1963; SSE-NEXT:    movaps %xmm1, 96(%rsi)1964; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload1965; SSE-NEXT:    movaps %xmm1, 32(%rsi)1966; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload1967; SSE-NEXT:    movaps %xmm1, 112(%rsi)1968; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Reload1969; SSE-NEXT:    movaps %xmm11, 48(%rsi)1970; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Reload1971; SSE-NEXT:    movaps %xmm11, 64(%rsi)1972; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload1973; SSE-NEXT:    movaps %xmm1, (%rsi)1974; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Reload1975; SSE-NEXT:    movaps %xmm11, 80(%rsi)1976; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Reload1977; SSE-NEXT:    movaps %xmm11, 16(%rsi)1978; SSE-NEXT:    movaps %xmm7, 96(%rdx)1979; SSE-NEXT:    movaps %xmm14, 32(%rdx)1980; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload1981; SSE-NEXT:    movaps %xmm7, 112(%rdx)1982; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload1983; SSE-NEXT:    movaps %xmm7, 48(%rdx)1984; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload1985; SSE-NEXT:    movaps %xmm7, 64(%rdx)1986; SSE-NEXT:    movaps %xmm5, (%rdx)1987; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload1988; SSE-NEXT:    movaps %xmm1, 80(%rdx)1989; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload1990; SSE-NEXT:    movaps %xmm1, 16(%rdx)1991; SSE-NEXT:    movaps %xmm3, 96(%rcx)1992; SSE-NEXT:    movaps %xmm9, 32(%rcx)1993; SSE-NEXT:    movaps %xmm10, 112(%rcx)1994; SSE-NEXT:    movaps %xmm4, 48(%rcx)1995; SSE-NEXT:    movaps %xmm13, 64(%rcx)1996; SSE-NEXT:    movaps %xmm2, (%rcx)1997; SSE-NEXT:    movaps %xmm0, 80(%rcx)1998; SSE-NEXT:    movaps %xmm8, 16(%rcx)1999; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2000; SSE-NEXT:    movaps %xmm0, 112(%r8)2001; SSE-NEXT:    movaps %xmm12, 96(%r8)2002; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2003; SSE-NEXT:    movaps %xmm0, 80(%r8)2004; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2005; SSE-NEXT:    movaps %xmm0, 64(%r8)2006; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2007; SSE-NEXT:    movaps %xmm0, 48(%r8)2008; SSE-NEXT:    movaps %xmm15, 32(%r8)2009; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2010; SSE-NEXT:    movaps %xmm0, 16(%r8)2011; SSE-NEXT:    movaps %xmm6, (%r8)2012; SSE-NEXT:    addq $456, %rsp # imm = 0x1C82013; SSE-NEXT:    retq2014;2015; AVX-LABEL: load_i32_stride4_vf32:2016; AVX:       # %bb.0:2017; AVX-NEXT:    subq $1000, %rsp # imm = 0x3E82018; AVX-NEXT:    vmovaps 448(%rdi), %ymm32019; AVX-NEXT:    vmovaps 480(%rdi), %ymm42020; AVX-NEXT:    vmovaps 320(%rdi), %ymm22021; AVX-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2022; AVX-NEXT:    vmovaps 352(%rdi), %ymm102023; AVX-NEXT:    vperm2f128 {{.*#+}} ymm15 = ymm10[2,3,0,1]2024; AVX-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm10[0],ymm15[0],ymm10[2],ymm15[2]2025; AVX-NEXT:    vmovups %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2026; AVX-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm2[2,3,0,1]2027; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2028; AVX-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm1[0],ymm2[0],ymm1[1],ymm2[1],ymm1[4],ymm2[4],ymm1[5],ymm2[5]2029; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,0],ymm1[4,5],ymm0[6,4]2030; AVX-NEXT:    vmovaps 288(%rdi), %xmm22031; AVX-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2032; AVX-NEXT:    vmovaps 304(%rdi), %xmm12033; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2034; AVX-NEXT:    vmovlhps {{.*#+}} xmm1 = xmm1[0],xmm2[0]2035; AVX-NEXT:    vmovaps 272(%rdi), %xmm92036; AVX-NEXT:    vmovaps 256(%rdi), %xmm22037; AVX-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2038; AVX-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm2[0],xmm9[0],xmm2[1],xmm9[1]2039; AVX-NEXT:    vmovaps %xmm9, (%rsp) # 16-byte Spill2040; AVX-NEXT:    vshufps {{.*#+}} xmm1 = xmm2[0,1],xmm1[2,0]2041; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]2042; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2043; AVX-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2044; AVX-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm4[2,3,0,1]2045; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2046; AVX-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm4[0],ymm0[0],ymm4[2],ymm0[2]2047; AVX-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2048; AVX-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm3[2,3,0,1]2049; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2050; AVX-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm1[0],ymm3[0],ymm1[1],ymm3[1],ymm1[4],ymm3[4],ymm1[5],ymm3[5]2051; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,0],ymm1[4,5],ymm0[6,4]2052; AVX-NEXT:    vmovaps 416(%rdi), %xmm22053; AVX-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2054; AVX-NEXT:    vmovaps 432(%rdi), %xmm12055; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2056; AVX-NEXT:    vmovlhps {{.*#+}} xmm1 = xmm1[0],xmm2[0]2057; AVX-NEXT:    vmovaps 400(%rdi), %xmm32058; AVX-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2059; AVX-NEXT:    vmovaps 384(%rdi), %xmm22060; AVX-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2061; AVX-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm2[0],xmm3[0],xmm2[1],xmm3[1]2062; AVX-NEXT:    vshufps {{.*#+}} xmm1 = xmm2[0,1],xmm1[2,0]2063; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]2064; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2065; AVX-NEXT:    vmovaps 192(%rdi), %ymm112066; AVX-NEXT:    vmovaps 224(%rdi), %ymm132067; AVX-NEXT:    vperm2f128 {{.*#+}} ymm8 = ymm13[2,3,0,1]2068; AVX-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm13[0],ymm8[0],ymm13[2],ymm8[2]2069; AVX-NEXT:    vmovups %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2070; AVX-NEXT:    vmovups %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2071; AVX-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm11[2,3,0,1]2072; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2073; AVX-NEXT:    vunpcklps {{.*#+}} ymm2 = ymm1[0],ymm11[0],ymm1[1],ymm11[1],ymm1[4],ymm11[4],ymm1[5],ymm11[5]2074; AVX-NEXT:    vmovups %ymm11, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2075; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm2[0,1],ymm0[2,0],ymm2[4,5],ymm0[6,4]2076; AVX-NEXT:    vmovaps 160(%rdi), %xmm12077; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2078; AVX-NEXT:    vmovaps 176(%rdi), %xmm22079; AVX-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2080; AVX-NEXT:    vmovlhps {{.*#+}} xmm2 = xmm2[0],xmm1[0]2081; AVX-NEXT:    vmovaps 144(%rdi), %xmm42082; AVX-NEXT:    vmovaps 128(%rdi), %xmm122083; AVX-NEXT:    vunpcklps {{.*#+}} xmm5 = xmm12[0],xmm4[0],xmm12[1],xmm4[1]2084; AVX-NEXT:    vmovaps %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2085; AVX-NEXT:    vmovaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2086; AVX-NEXT:    vshufps {{.*#+}} xmm2 = xmm5[0,1],xmm2[2,0]2087; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1,2,3],ymm0[4,5,6,7]2088; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2089; AVX-NEXT:    vmovaps 64(%rdi), %ymm02090; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2091; AVX-NEXT:    vmovaps 96(%rdi), %ymm22092; AVX-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2093; AVX-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm2[2,3,0,1]2094; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2095; AVX-NEXT:    vunpcklpd {{.*#+}} ymm5 = ymm2[0],ymm1[0],ymm2[2],ymm1[2]2096; AVX-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm0[2,3,0,1]2097; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2098; AVX-NEXT:    vunpcklps {{.*#+}} ymm7 = ymm1[0],ymm0[0],ymm1[1],ymm0[1],ymm1[4],ymm0[4],ymm1[5],ymm0[5]2099; AVX-NEXT:    vshufps {{.*#+}} ymm1 = ymm7[0,1],ymm5[2,0],ymm7[4,5],ymm5[6,4]2100; AVX-NEXT:    vmovaps (%rdi), %xmm22101; AVX-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2102; AVX-NEXT:    vmovaps 16(%rdi), %xmm72103; AVX-NEXT:    vmovaps 32(%rdi), %xmm02104; AVX-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2105; AVX-NEXT:    vmovaps 48(%rdi), %xmm52106; AVX-NEXT:    vmovaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2107; AVX-NEXT:    vmovlhps {{.*#+}} xmm0 = xmm5[0],xmm0[0]2108; AVX-NEXT:    vunpcklps {{.*#+}} xmm14 = xmm2[0],xmm7[0],xmm2[1],xmm7[1]2109; AVX-NEXT:    vshufps {{.*#+}} xmm0 = xmm14[0,1],xmm0[2,0]2110; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]2111; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2112; AVX-NEXT:    vmovups %ymm15, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2113; AVX-NEXT:    vunpcklps {{.*#+}} ymm0 = ymm15[0],ymm10[0],ymm15[1],ymm10[1],ymm15[4],ymm10[4],ymm15[5],ymm10[5]2114; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload2115; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload2116; AVX-NEXT:    vshufps {{.*#+}} ymm1 = ymm6[1,0],ymm10[1,0],ymm6[5,4],ymm10[5,4]2117; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[2,0],ymm0[2,3],ymm1[6,4],ymm0[6,7]2118; AVX-NEXT:    vinsertps $12, {{[-0-9]+}}(%r{{[sb]}}p), %xmm9, %xmm1 # 16-byte Folded Reload2119; AVX-NEXT:    # xmm1 = mem[0],xmm9[1],zero,zero2120; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Reload2121; AVX-NEXT:    vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %xmm9, %xmm14 # 16-byte Folded Reload2122; AVX-NEXT:    # xmm14 = xmm9[0],mem[0],xmm9[1],mem[1]2123; AVX-NEXT:    vmovsd {{.*#+}} xmm1 = xmm1[0],xmm14[1]2124; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]2125; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2126; AVX-NEXT:    vunpcklps {{.*#+}} ymm0 = ymm8[0],ymm13[0],ymm8[1],ymm13[1],ymm8[4],ymm13[4],ymm8[5],ymm13[5]2127; AVX-NEXT:    vshufps $17, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm1 # 32-byte Folded Reload2128; AVX-NEXT:    # ymm1 = ymm11[1,0],mem[1,0],ymm11[5,4],mem[5,4]2129; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[2,0],ymm0[2,3],ymm1[6,4],ymm0[6,7]2130; AVX-NEXT:    vinsertps {{.*#+}} xmm1 = xmm12[1],xmm4[1],zero,zero2131; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload2132; AVX-NEXT:    vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm14 # 16-byte Folded Reload2133; AVX-NEXT:    # xmm14 = xmm2[0],mem[0],xmm2[1],mem[1]2134; AVX-NEXT:    vmovsd {{.*#+}} xmm1 = xmm1[0],xmm14[1]2135; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]2136; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2137; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload2138; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload2139; AVX-NEXT:    vunpcklps {{.*#+}} ymm14 = ymm0[0],ymm2[0],ymm0[1],ymm2[1],ymm0[4],ymm2[4],ymm0[5],ymm2[5]2140; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload2141; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload2142; AVX-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[1,0],ymm3[1,0],ymm1[5,4],ymm3[5,4]2143; AVX-NEXT:    vshufps {{.*#+}} ymm8 = ymm1[2,0],ymm14[2,3],ymm1[6,4],ymm14[6,7]2144; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload2145; AVX-NEXT:    vinsertps $12, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4, %xmm1 # 16-byte Folded Reload2146; AVX-NEXT:    # xmm1 = mem[0],xmm4[1],zero,zero2147; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload2148; AVX-NEXT:    vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5, %xmm14 # 16-byte Folded Reload2149; AVX-NEXT:    # xmm14 = xmm5[0],mem[0],xmm5[1],mem[1]2150; AVX-NEXT:    vmovsd {{.*#+}} xmm1 = xmm1[0],xmm14[1]2151; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm8[4,5,6,7]2152; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2153; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload2154; AVX-NEXT:    vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm8 # 32-byte Folded Reload2155; AVX-NEXT:    # ymm8 = ymm1[0],mem[0],ymm1[1],mem[1],ymm1[4],mem[4],ymm1[5],mem[5]2156; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Reload2157; AVX-NEXT:    vshufps $17, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm1 # 32-byte Folded Reload2158; AVX-NEXT:    # ymm1 = ymm11[1,0],mem[1,0],ymm11[5,4],mem[5,4]2159; AVX-NEXT:    vshufps {{.*#+}} ymm8 = ymm1[2,0],ymm8[2,3],ymm1[6,4],ymm8[6,7]2160; AVX-NEXT:    vmovaps %xmm7, %xmm122161; AVX-NEXT:    vmovaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2162; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload2163; AVX-NEXT:    vinsertps {{.*#+}} xmm1 = xmm7[1],xmm12[1],zero,zero2164; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload2165; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload2166; AVX-NEXT:    vunpcklps {{.*#+}} xmm14 = xmm14[0],xmm13[0],xmm14[1],xmm13[1]2167; AVX-NEXT:    vmovsd {{.*#+}} xmm1 = xmm1[0],xmm14[1]2168; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm8[4,5,6,7]2169; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2170; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload2171; AVX-NEXT:    vunpckhpd {{.*#+}} ymm8 = ymm1[1],ymm15[1],ymm1[3],ymm15[3]2172; AVX-NEXT:    vunpckhps {{.*#+}} ymm1 = ymm10[2],ymm6[2],ymm10[3],ymm6[3],ymm10[6],ymm6[6],ymm10[7],ymm6[7]2173; AVX-NEXT:    vshufps {{.*#+}} ymm8 = ymm1[0,1],ymm8[2,0],ymm1[4,5],ymm8[6,4]2174; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload2175; AVX-NEXT:    vunpckhps (%rsp), %xmm1, %xmm1 # 16-byte Folded Reload2176; AVX-NEXT:    # xmm1 = xmm1[2],mem[2],xmm1[3],mem[3]2177; AVX-NEXT:    vinsertps $51, {{[-0-9]+}}(%r{{[sb]}}p), %xmm9, %xmm14 # 16-byte Folded Reload2178; AVX-NEXT:    # xmm14 = zero,zero,xmm9[2],mem[0]2179; AVX-NEXT:    vmovsd {{.*#+}} xmm1 = xmm1[0],xmm14[1]2180; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm8[4,5,6,7]2181; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2182; AVX-NEXT:    vunpckhpd {{.*#+}} ymm8 = ymm2[1],ymm0[1],ymm2[3],ymm0[3]2183; AVX-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm1 # 32-byte Folded Reload2184; AVX-NEXT:    # ymm1 = ymm3[2],mem[2],ymm3[3],mem[3],ymm3[6],mem[6],ymm3[7],mem[7]2185; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[0,1],ymm8[2,0],ymm1[4,5],ymm8[6,4]2186; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload2187; AVX-NEXT:    vunpckhps {{.*#+}} xmm1 = xmm1[2],xmm4[2],xmm1[3],xmm4[3]2188; AVX-NEXT:    vinsertps $51, {{[-0-9]+}}(%r{{[sb]}}p), %xmm5, %xmm14 # 16-byte Folded Reload2189; AVX-NEXT:    # xmm14 = zero,zero,xmm5[2],mem[0]2190; AVX-NEXT:    vmovsd {{.*#+}} xmm1 = xmm1[0],xmm14[1]2191; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]2192; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2193; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload2194; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload2195; AVX-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm5[1],ymm6[1],ymm5[3],ymm6[3]2196; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload2197; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload2198; AVX-NEXT:    vunpckhps {{.*#+}} ymm1 = ymm8[2],ymm3[2],ymm8[3],ymm3[3],ymm8[6],ymm3[6],ymm8[7],ymm3[7]2199; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,0],ymm1[4,5],ymm0[6,4]2200; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload2201; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Reload2202; AVX-NEXT:    vunpckhps {{.*#+}} xmm1 = xmm9[2],xmm10[2],xmm9[3],xmm10[3]2203; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload2204; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload2205; AVX-NEXT:    vinsertps {{.*#+}} xmm14 = zero,zero,xmm2[2],xmm4[2]2206; AVX-NEXT:    vmovsd {{.*#+}} xmm1 = xmm1[0],xmm14[1]2207; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]2208; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2209; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Reload2210; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload2211; AVX-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm15[1],ymm0[3],ymm15[3]2212; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload2213; AVX-NEXT:    vunpckhps {{.*#+}} ymm1 = ymm1[2],ymm11[2],ymm1[3],ymm11[3],ymm1[6],ymm11[6],ymm1[7],ymm11[7]2214; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,0],ymm1[4,5],ymm0[6,4]2215; AVX-NEXT:    vunpckhps {{.*#+}} xmm1 = xmm7[2],xmm12[2],xmm7[3],xmm12[3]2216; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload2217; AVX-NEXT:    vinsertps {{.*#+}} xmm14 = zero,zero,xmm7[2],xmm13[2]2218; AVX-NEXT:    vmovsd {{.*#+}} xmm1 = xmm1[0],xmm14[1]2219; AVX-NEXT:    vblendps {{.*#+}} ymm14 = ymm1[0,1,2,3],ymm0[4,5,6,7]2220; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload2221; AVX-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload2222; AVX-NEXT:    # ymm0 = ymm0[2],mem[2],ymm0[3],mem[3],ymm0[6],mem[6],ymm0[7],mem[7]2223; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload2224; AVX-NEXT:    vshufps $51, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload2225; AVX-NEXT:    # ymm1 = ymm1[3,0],mem[3,0],ymm1[7,4],mem[7,4]2226; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[2,0],ymm0[2,3],ymm1[6,4],ymm0[6,7]2227; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload2228; AVX-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload2229; AVX-NEXT:    # xmm1 = xmm1[2],mem[2],xmm1[3],mem[3]2230; AVX-NEXT:    vmovaps (%rsp), %xmm12 # 16-byte Reload2231; AVX-NEXT:    vshufps $51, {{[-0-9]+}}(%r{{[sb]}}p), %xmm12, %xmm12 # 16-byte Folded Reload2232; AVX-NEXT:    # xmm12 = xmm12[3,0],mem[3,0]2233; AVX-NEXT:    vshufps {{.*#+}} xmm1 = xmm12[2,0],xmm1[2,3]2234; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]2235; AVX-NEXT:    vunpckhps {{.*#+}} ymm1 = ymm6[2],ymm5[2],ymm6[3],ymm5[3],ymm6[6],ymm5[6],ymm6[7],ymm5[7]2236; AVX-NEXT:    vshufps {{.*#+}} ymm3 = ymm3[3,0],ymm8[3,0],ymm3[7,4],ymm8[7,4]2237; AVX-NEXT:    vshufps {{.*#+}} ymm1 = ymm3[2,0],ymm1[2,3],ymm3[6,4],ymm1[6,7]2238; AVX-NEXT:    vunpckhps {{.*#+}} xmm3 = xmm2[2],xmm4[2],xmm2[3],xmm4[3]2239; AVX-NEXT:    vshufps {{.*#+}} xmm6 = xmm10[3,0],xmm9[3,0]2240; AVX-NEXT:    vshufps {{.*#+}} xmm3 = xmm6[2,0],xmm3[2,3]2241; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm3[0,1,2,3],ymm1[4,5,6,7]2242; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload2243; AVX-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm3 # 32-byte Folded Reload2244; AVX-NEXT:    # ymm3 = ymm2[2],mem[2],ymm2[3],mem[3],ymm2[6],mem[6],ymm2[7],mem[7]2245; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload2246; AVX-NEXT:    vshufps $51, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm6 # 32-byte Folded Reload2247; AVX-NEXT:    # ymm6 = ymm2[3,0],mem[3,0],ymm2[7,4],mem[7,4]2248; AVX-NEXT:    vshufps {{.*#+}} ymm3 = ymm6[2,0],ymm3[2,3],ymm6[6,4],ymm3[6,7]2249; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload2250; AVX-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm6 # 16-byte Folded Reload2251; AVX-NEXT:    # xmm6 = xmm2[2],mem[2],xmm2[3],mem[3]2252; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload2253; AVX-NEXT:    vshufps $51, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm8 # 16-byte Folded Reload2254; AVX-NEXT:    # xmm8 = xmm2[3,0],mem[3,0]2255; AVX-NEXT:    vshufps {{.*#+}} xmm6 = xmm8[2,0],xmm6[2,3]2256; AVX-NEXT:    vblendps {{.*#+}} ymm3 = ymm6[0,1,2,3],ymm3[4,5,6,7]2257; AVX-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm2 # 32-byte Folded Reload2258; AVX-NEXT:    # ymm2 = ymm15[2],mem[2],ymm15[3],mem[3],ymm15[6],mem[6],ymm15[7],mem[7]2259; AVX-NEXT:    vshufps $51, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm4 # 32-byte Folded Reload2260; AVX-NEXT:    # ymm4 = ymm11[3,0],mem[3,0],ymm11[7,4],mem[7,4]2261; AVX-NEXT:    vshufps {{.*#+}} ymm2 = ymm4[2,0],ymm2[2,3],ymm4[6,4],ymm2[6,7]2262; AVX-NEXT:    vunpckhps {{.*#+}} xmm4 = xmm7[2],xmm13[2],xmm7[3],xmm13[3]2263; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload2264; AVX-NEXT:    vshufps $51, {{[-0-9]+}}(%r{{[sb]}}p), %xmm5, %xmm5 # 16-byte Folded Reload2265; AVX-NEXT:    # xmm5 = xmm5[3,0],mem[3,0]2266; AVX-NEXT:    vshufps {{.*#+}} xmm4 = xmm5[2,0],xmm4[2,3]2267; AVX-NEXT:    vblendps {{.*#+}} ymm2 = ymm4[0,1,2,3],ymm2[4,5,6,7]2268; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload2269; AVX-NEXT:    vmovaps %ymm4, 32(%rsi)2270; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload2271; AVX-NEXT:    vmovaps %ymm4, 96(%rsi)2272; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload2273; AVX-NEXT:    vmovaps %ymm4, 64(%rsi)2274; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload2275; AVX-NEXT:    vmovaps %ymm4, (%rsi)2276; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload2277; AVX-NEXT:    vmovaps %ymm4, 96(%rdx)2278; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload2279; AVX-NEXT:    vmovaps %ymm4, 32(%rdx)2280; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload2281; AVX-NEXT:    vmovaps %ymm4, (%rdx)2282; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload2283; AVX-NEXT:    vmovaps %ymm4, 64(%rdx)2284; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload2285; AVX-NEXT:    vmovaps %ymm4, 32(%rcx)2286; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload2287; AVX-NEXT:    vmovaps %ymm4, 96(%rcx)2288; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload2289; AVX-NEXT:    vmovaps %ymm4, 64(%rcx)2290; AVX-NEXT:    vmovaps %ymm14, (%rcx)2291; AVX-NEXT:    vmovaps %ymm3, 96(%r8)2292; AVX-NEXT:    vmovaps %ymm1, 32(%r8)2293; AVX-NEXT:    vmovaps %ymm0, 64(%r8)2294; AVX-NEXT:    vmovaps %ymm2, (%r8)2295; AVX-NEXT:    addq $1000, %rsp # imm = 0x3E82296; AVX-NEXT:    vzeroupper2297; AVX-NEXT:    retq2298;2299; AVX2-LABEL: load_i32_stride4_vf32:2300; AVX2:       # %bb.0:2301; AVX2-NEXT:    subq $680, %rsp # imm = 0x2A82302; AVX2-NEXT:    vmovaps 192(%rdi), %ymm122303; AVX2-NEXT:    vmovaps 416(%rdi), %ymm82304; AVX2-NEXT:    vmovups %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2305; AVX2-NEXT:    vmovaps 448(%rdi), %ymm42306; AVX2-NEXT:    vmovaps 480(%rdi), %ymm102307; AVX2-NEXT:    vmovaps 288(%rdi), %ymm112308; AVX2-NEXT:    vmovaps 320(%rdi), %ymm62309; AVX2-NEXT:    vmovaps 352(%rdi), %ymm92310; AVX2-NEXT:    vbroadcastsd {{.*#+}} ymm0 = [0,4,0,4,0,4,0,4]2311; AVX2-NEXT:    vpermps %ymm9, %ymm0, %ymm12312; AVX2-NEXT:    vpermps %ymm6, %ymm0, %ymm22313; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]2314; AVX2-NEXT:    vmovaps 272(%rdi), %xmm32315; AVX2-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2316; AVX2-NEXT:    vmovaps 256(%rdi), %xmm22317; AVX2-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2318; AVX2-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm2[0],xmm3[0],xmm2[1],xmm3[1]2319; AVX2-NEXT:    vpermps %ymm11, %ymm0, %ymm32320; AVX2-NEXT:    vblendps {{.*#+}} xmm2 = xmm2[0,1],xmm3[2,3]2321; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]2322; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2323; AVX2-NEXT:    vpermps %ymm10, %ymm0, %ymm12324; AVX2-NEXT:    vpermps %ymm4, %ymm0, %ymm22325; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]2326; AVX2-NEXT:    vmovaps 400(%rdi), %xmm32327; AVX2-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2328; AVX2-NEXT:    vmovaps 384(%rdi), %xmm22329; AVX2-NEXT:    vmovaps %xmm2, (%rsp) # 16-byte Spill2330; AVX2-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm2[0],xmm3[0],xmm2[1],xmm3[1]2331; AVX2-NEXT:    vpermps %ymm8, %ymm0, %ymm32332; AVX2-NEXT:    vblendps {{.*#+}} xmm2 = xmm2[0,1],xmm3[2,3]2333; AVX2-NEXT:    vmovaps 224(%rdi), %ymm82334; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]2335; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2336; AVX2-NEXT:    vpermps %ymm8, %ymm0, %ymm12337; AVX2-NEXT:    vpermps %ymm12, %ymm0, %ymm22338; AVX2-NEXT:    vmovups %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2339; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]2340; AVX2-NEXT:    vmovaps 160(%rdi), %ymm52341; AVX2-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2342; AVX2-NEXT:    vmovaps 144(%rdi), %xmm32343; AVX2-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2344; AVX2-NEXT:    vmovaps 128(%rdi), %xmm22345; AVX2-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2346; AVX2-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm2[0],xmm3[0],xmm2[1],xmm3[1]2347; AVX2-NEXT:    vpermps %ymm5, %ymm0, %ymm32348; AVX2-NEXT:    vblendps {{.*#+}} xmm2 = xmm2[0,1],xmm3[2,3]2349; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]2350; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2351; AVX2-NEXT:    vmovaps 64(%rdi), %ymm142352; AVX2-NEXT:    vmovaps 96(%rdi), %ymm152353; AVX2-NEXT:    vpermps %ymm15, %ymm0, %ymm12354; AVX2-NEXT:    vpermps %ymm14, %ymm0, %ymm22355; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]2356; AVX2-NEXT:    vmovaps 32(%rdi), %ymm22357; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2358; AVX2-NEXT:    vpermps %ymm2, %ymm0, %ymm02359; AVX2-NEXT:    vmovaps (%rdi), %xmm32360; AVX2-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2361; AVX2-NEXT:    vmovaps 16(%rdi), %xmm22362; AVX2-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2363; AVX2-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]2364; AVX2-NEXT:    vblendps {{.*#+}} xmm0 = xmm2[0,1],xmm0[2,3]2365; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]2366; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2367; AVX2-NEXT:    vbroadcastsd {{.*#+}} ymm0 = [1,5,1,5,1,5,1,5]2368; AVX2-NEXT:    vpermps %ymm9, %ymm0, %ymm12369; AVX2-NEXT:    vpermps %ymm6, %ymm0, %ymm22370; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]2371; AVX2-NEXT:    vmovaps 256(%rdi), %ymm52372; AVX2-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2373; AVX2-NEXT:    vmovaps 304(%rdi), %xmm32374; AVX2-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2375; AVX2-NEXT:    vmovaps 288(%rdi), %xmm22376; AVX2-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2377; AVX2-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm2[0],xmm3[0],xmm2[1],xmm3[1]2378; AVX2-NEXT:    vpermps %ymm5, %ymm0, %ymm32379; AVX2-NEXT:    vblendps {{.*#+}} xmm2 = xmm3[0,1],xmm2[2,3]2380; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]2381; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2382; AVX2-NEXT:    vpermps %ymm15, %ymm0, %ymm12383; AVX2-NEXT:    vpermps %ymm14, %ymm0, %ymm22384; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]2385; AVX2-NEXT:    vmovaps (%rdi), %ymm72386; AVX2-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2387; AVX2-NEXT:    vmovaps 32(%rdi), %xmm32388; AVX2-NEXT:    vmovaps 48(%rdi), %xmm22389; AVX2-NEXT:    vunpcklps {{.*#+}} xmm5 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]2390; AVX2-NEXT:    vpermps %ymm7, %ymm0, %ymm72391; AVX2-NEXT:    vblendps {{.*#+}} xmm5 = xmm7[0,1],xmm5[2,3]2392; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm5[0,1,2,3],ymm1[4,5,6,7]2393; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2394; AVX2-NEXT:    vpermps %ymm8, %ymm0, %ymm12395; AVX2-NEXT:    vpermps %ymm12, %ymm0, %ymm52396; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm5[0,1,2,3,4,5],ymm1[6,7]2397; AVX2-NEXT:    vmovaps 128(%rdi), %ymm122398; AVX2-NEXT:    vmovups %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2399; AVX2-NEXT:    vmovaps 176(%rdi), %xmm72400; AVX2-NEXT:    vmovaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2401; AVX2-NEXT:    vmovaps 160(%rdi), %xmm52402; AVX2-NEXT:    vunpcklps {{.*#+}} xmm7 = xmm5[0],xmm7[0],xmm5[1],xmm7[1]2403; AVX2-NEXT:    vpermps %ymm12, %ymm0, %ymm132404; AVX2-NEXT:    vblendps {{.*#+}} xmm7 = xmm13[0,1],xmm7[2,3]2405; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm7[0,1,2,3],ymm1[4,5,6,7]2406; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2407; AVX2-NEXT:    vmovups %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2408; AVX2-NEXT:    vpermps %ymm10, %ymm0, %ymm12409; AVX2-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2410; AVX2-NEXT:    vpermps %ymm4, %ymm0, %ymm72411; AVX2-NEXT:    vblendps {{.*#+}} ymm13 = ymm7[0,1,2,3,4,5],ymm1[6,7]2412; AVX2-NEXT:    vmovaps 384(%rdi), %ymm12413; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2414; AVX2-NEXT:    vpermps %ymm1, %ymm0, %ymm02415; AVX2-NEXT:    vmovaps 432(%rdi), %xmm72416; AVX2-NEXT:    vmovaps 416(%rdi), %xmm12417; AVX2-NEXT:    vunpcklps {{.*#+}} xmm12 = xmm1[0],xmm7[0],xmm1[1],xmm7[1]2418; AVX2-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm12[2,3]2419; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm13[4,5,6,7]2420; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2421; AVX2-NEXT:    vbroadcastsd {{.*#+}} ymm0 = [2,6,2,6,2,6,2,6]2422; AVX2-NEXT:    vpermps %ymm9, %ymm0, %ymm122423; AVX2-NEXT:    vpermps %ymm6, %ymm0, %ymm132424; AVX2-NEXT:    vblendps {{.*#+}} ymm12 = ymm13[0,1,2,3,4,5],ymm12[6,7]2425; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload2426; AVX2-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm13, %xmm13 # 16-byte Folded Reload2427; AVX2-NEXT:    # xmm13 = xmm13[2],mem[2],xmm13[3],mem[3]2428; AVX2-NEXT:    vpermps %ymm11, %ymm0, %ymm112429; AVX2-NEXT:    vblendps {{.*#+}} xmm11 = xmm13[0,1],xmm11[2,3]2430; AVX2-NEXT:    vblendps {{.*#+}} ymm11 = ymm11[0,1,2,3],ymm12[4,5,6,7]2431; AVX2-NEXT:    vmovups %ymm11, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2432; AVX2-NEXT:    vpermps %ymm10, %ymm0, %ymm112433; AVX2-NEXT:    vpermps %ymm4, %ymm0, %ymm122434; AVX2-NEXT:    vblendps {{.*#+}} ymm11 = ymm12[0,1,2,3,4,5],ymm11[6,7]2435; AVX2-NEXT:    vmovaps (%rsp), %xmm4 # 16-byte Reload2436; AVX2-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4, %xmm12 # 16-byte Folded Reload2437; AVX2-NEXT:    # xmm12 = xmm4[2],mem[2],xmm4[3],mem[3]2438; AVX2-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm13 # 32-byte Folded Reload2439; AVX2-NEXT:    vblendps {{.*#+}} xmm12 = xmm12[0,1],xmm13[2,3]2440; AVX2-NEXT:    vblendps {{.*#+}} ymm4 = ymm12[0,1,2,3],ymm11[4,5,6,7]2441; AVX2-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2442; AVX2-NEXT:    vpermps %ymm8, %ymm0, %ymm112443; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload2444; AVX2-NEXT:    vpermps %ymm4, %ymm0, %ymm122445; AVX2-NEXT:    vblendps {{.*#+}} ymm11 = ymm12[0,1,2,3,4,5],ymm11[6,7]2446; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload2447; AVX2-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm10, %xmm12 # 16-byte Folded Reload2448; AVX2-NEXT:    # xmm12 = xmm10[2],mem[2],xmm10[3],mem[3]2449; AVX2-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm13 # 32-byte Folded Reload2450; AVX2-NEXT:    vblendps {{.*#+}} xmm12 = xmm12[0,1],xmm13[2,3]2451; AVX2-NEXT:    vblendps {{.*#+}} ymm10 = ymm12[0,1,2,3],ymm11[4,5,6,7]2452; AVX2-NEXT:    vmovups %ymm10, (%rsp) # 32-byte Spill2453; AVX2-NEXT:    vpermps %ymm15, %ymm0, %ymm112454; AVX2-NEXT:    vpermps %ymm14, %ymm0, %ymm122455; AVX2-NEXT:    vblendps {{.*#+}} ymm11 = ymm12[0,1,2,3,4,5],ymm11[6,7]2456; AVX2-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload2457; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload2458; AVX2-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm10, %xmm12 # 16-byte Folded Reload2459; AVX2-NEXT:    # xmm12 = xmm10[2],mem[2],xmm10[3],mem[3]2460; AVX2-NEXT:    vblendps {{.*#+}} xmm0 = xmm12[0,1],xmm0[2,3]2461; AVX2-NEXT:    vblendps {{.*#+}} ymm13 = ymm0[0,1,2,3],ymm11[4,5,6,7]2462; AVX2-NEXT:    vbroadcastsd {{.*#+}} ymm0 = [3,7,3,7,3,7,3,7]2463; AVX2-NEXT:    vpermps %ymm15, %ymm0, %ymm112464; AVX2-NEXT:    vpermps %ymm14, %ymm0, %ymm122465; AVX2-NEXT:    vblendps {{.*#+}} ymm11 = ymm12[0,1,2,3,4,5],ymm11[6,7]2466; AVX2-NEXT:    vunpckhps {{.*#+}} xmm2 = xmm3[2],xmm2[2],xmm3[3],xmm2[3]2467; AVX2-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm3 # 32-byte Folded Reload2468; AVX2-NEXT:    vblendps {{.*#+}} xmm2 = xmm3[0,1],xmm2[2,3]2469; AVX2-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm11[4,5,6,7]2470; AVX2-NEXT:    vpermps %ymm9, %ymm0, %ymm32471; AVX2-NEXT:    vpermps %ymm6, %ymm0, %ymm62472; AVX2-NEXT:    vblendps {{.*#+}} ymm3 = ymm6[0,1,2,3,4,5],ymm3[6,7]2473; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload2474; AVX2-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm6, %xmm6 # 16-byte Folded Reload2475; AVX2-NEXT:    # xmm6 = xmm6[2],mem[2],xmm6[3],mem[3]2476; AVX2-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm9 # 32-byte Folded Reload2477; AVX2-NEXT:    vblendps {{.*#+}} xmm6 = xmm9[0,1],xmm6[2,3]2478; AVX2-NEXT:    vblendps {{.*#+}} ymm3 = ymm6[0,1,2,3],ymm3[4,5,6,7]2479; AVX2-NEXT:    vpermps %ymm8, %ymm0, %ymm62480; AVX2-NEXT:    vpermps %ymm4, %ymm0, %ymm82481; AVX2-NEXT:    vblendps {{.*#+}} ymm6 = ymm8[0,1,2,3,4,5],ymm6[6,7]2482; AVX2-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5, %xmm5 # 16-byte Folded Reload2483; AVX2-NEXT:    # xmm5 = xmm5[2],mem[2],xmm5[3],mem[3]2484; AVX2-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm8 # 32-byte Folded Reload2485; AVX2-NEXT:    vblendps {{.*#+}} xmm5 = xmm8[0,1],xmm5[2,3]2486; AVX2-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3],ymm6[4,5,6,7]2487; AVX2-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm6 # 32-byte Folded Reload2488; AVX2-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm8 # 32-byte Folded Reload2489; AVX2-NEXT:    vblendps {{.*#+}} ymm6 = ymm8[0,1,2,3,4,5],ymm6[6,7]2490; AVX2-NEXT:    vunpckhps {{.*#+}} xmm1 = xmm1[2],xmm7[2],xmm1[3],xmm7[3]2491; AVX2-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload2492; AVX2-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]2493; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm6[4,5,6,7]2494; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload2495; AVX2-NEXT:    vmovaps %ymm1, 32(%rsi)2496; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload2497; AVX2-NEXT:    vmovaps %ymm1, 96(%rsi)2498; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload2499; AVX2-NEXT:    vmovaps %ymm1, 64(%rsi)2500; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload2501; AVX2-NEXT:    vmovaps %ymm1, (%rsi)2502; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload2503; AVX2-NEXT:    vmovaps %ymm1, 96(%rdx)2504; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload2505; AVX2-NEXT:    vmovaps %ymm1, 32(%rdx)2506; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload2507; AVX2-NEXT:    vmovaps %ymm1, (%rdx)2508; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload2509; AVX2-NEXT:    vmovaps %ymm1, 64(%rdx)2510; AVX2-NEXT:    vmovups (%rsp), %ymm1 # 32-byte Reload2511; AVX2-NEXT:    vmovaps %ymm1, 32(%rcx)2512; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload2513; AVX2-NEXT:    vmovaps %ymm1, 96(%rcx)2514; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload2515; AVX2-NEXT:    vmovaps %ymm1, 64(%rcx)2516; AVX2-NEXT:    vmovaps %ymm13, (%rcx)2517; AVX2-NEXT:    vmovaps %ymm0, 96(%r8)2518; AVX2-NEXT:    vmovaps %ymm5, 32(%r8)2519; AVX2-NEXT:    vmovaps %ymm3, 64(%r8)2520; AVX2-NEXT:    vmovaps %ymm2, (%r8)2521; AVX2-NEXT:    addq $680, %rsp # imm = 0x2A82522; AVX2-NEXT:    vzeroupper2523; AVX2-NEXT:    retq2524;2525; AVX2-FP-LABEL: load_i32_stride4_vf32:2526; AVX2-FP:       # %bb.0:2527; AVX2-FP-NEXT:    subq $680, %rsp # imm = 0x2A82528; AVX2-FP-NEXT:    vmovaps 192(%rdi), %ymm122529; AVX2-FP-NEXT:    vmovaps 416(%rdi), %ymm82530; AVX2-FP-NEXT:    vmovups %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2531; AVX2-FP-NEXT:    vmovaps 448(%rdi), %ymm42532; AVX2-FP-NEXT:    vmovaps 480(%rdi), %ymm102533; AVX2-FP-NEXT:    vmovaps 288(%rdi), %ymm112534; AVX2-FP-NEXT:    vmovaps 320(%rdi), %ymm62535; AVX2-FP-NEXT:    vmovaps 352(%rdi), %ymm92536; AVX2-FP-NEXT:    vbroadcastsd {{.*#+}} ymm0 = [0,4,0,4,0,4,0,4]2537; AVX2-FP-NEXT:    vpermps %ymm9, %ymm0, %ymm12538; AVX2-FP-NEXT:    vpermps %ymm6, %ymm0, %ymm22539; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]2540; AVX2-FP-NEXT:    vmovaps 272(%rdi), %xmm32541; AVX2-FP-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2542; AVX2-FP-NEXT:    vmovaps 256(%rdi), %xmm22543; AVX2-FP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2544; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm2[0],xmm3[0],xmm2[1],xmm3[1]2545; AVX2-FP-NEXT:    vpermps %ymm11, %ymm0, %ymm32546; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm2 = xmm2[0,1],xmm3[2,3]2547; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]2548; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2549; AVX2-FP-NEXT:    vpermps %ymm10, %ymm0, %ymm12550; AVX2-FP-NEXT:    vpermps %ymm4, %ymm0, %ymm22551; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]2552; AVX2-FP-NEXT:    vmovaps 400(%rdi), %xmm32553; AVX2-FP-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2554; AVX2-FP-NEXT:    vmovaps 384(%rdi), %xmm22555; AVX2-FP-NEXT:    vmovaps %xmm2, (%rsp) # 16-byte Spill2556; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm2[0],xmm3[0],xmm2[1],xmm3[1]2557; AVX2-FP-NEXT:    vpermps %ymm8, %ymm0, %ymm32558; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm2 = xmm2[0,1],xmm3[2,3]2559; AVX2-FP-NEXT:    vmovaps 224(%rdi), %ymm82560; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]2561; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2562; AVX2-FP-NEXT:    vpermps %ymm8, %ymm0, %ymm12563; AVX2-FP-NEXT:    vpermps %ymm12, %ymm0, %ymm22564; AVX2-FP-NEXT:    vmovups %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2565; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]2566; AVX2-FP-NEXT:    vmovaps 160(%rdi), %ymm52567; AVX2-FP-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2568; AVX2-FP-NEXT:    vmovaps 144(%rdi), %xmm32569; AVX2-FP-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2570; AVX2-FP-NEXT:    vmovaps 128(%rdi), %xmm22571; AVX2-FP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2572; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm2[0],xmm3[0],xmm2[1],xmm3[1]2573; AVX2-FP-NEXT:    vpermps %ymm5, %ymm0, %ymm32574; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm2 = xmm2[0,1],xmm3[2,3]2575; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]2576; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2577; AVX2-FP-NEXT:    vmovaps 64(%rdi), %ymm142578; AVX2-FP-NEXT:    vmovaps 96(%rdi), %ymm152579; AVX2-FP-NEXT:    vpermps %ymm15, %ymm0, %ymm12580; AVX2-FP-NEXT:    vpermps %ymm14, %ymm0, %ymm22581; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]2582; AVX2-FP-NEXT:    vmovaps 32(%rdi), %ymm22583; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2584; AVX2-FP-NEXT:    vpermps %ymm2, %ymm0, %ymm02585; AVX2-FP-NEXT:    vmovaps (%rdi), %xmm32586; AVX2-FP-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2587; AVX2-FP-NEXT:    vmovaps 16(%rdi), %xmm22588; AVX2-FP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2589; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]2590; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm0 = xmm2[0,1],xmm0[2,3]2591; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]2592; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2593; AVX2-FP-NEXT:    vbroadcastsd {{.*#+}} ymm0 = [1,5,1,5,1,5,1,5]2594; AVX2-FP-NEXT:    vpermps %ymm9, %ymm0, %ymm12595; AVX2-FP-NEXT:    vpermps %ymm6, %ymm0, %ymm22596; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]2597; AVX2-FP-NEXT:    vmovaps 256(%rdi), %ymm52598; AVX2-FP-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2599; AVX2-FP-NEXT:    vmovaps 304(%rdi), %xmm32600; AVX2-FP-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2601; AVX2-FP-NEXT:    vmovaps 288(%rdi), %xmm22602; AVX2-FP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2603; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm2[0],xmm3[0],xmm2[1],xmm3[1]2604; AVX2-FP-NEXT:    vpermps %ymm5, %ymm0, %ymm32605; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm2 = xmm3[0,1],xmm2[2,3]2606; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]2607; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2608; AVX2-FP-NEXT:    vpermps %ymm15, %ymm0, %ymm12609; AVX2-FP-NEXT:    vpermps %ymm14, %ymm0, %ymm22610; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]2611; AVX2-FP-NEXT:    vmovaps (%rdi), %ymm72612; AVX2-FP-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2613; AVX2-FP-NEXT:    vmovaps 32(%rdi), %xmm32614; AVX2-FP-NEXT:    vmovaps 48(%rdi), %xmm22615; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm5 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]2616; AVX2-FP-NEXT:    vpermps %ymm7, %ymm0, %ymm72617; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm5 = xmm7[0,1],xmm5[2,3]2618; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm5[0,1,2,3],ymm1[4,5,6,7]2619; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2620; AVX2-FP-NEXT:    vpermps %ymm8, %ymm0, %ymm12621; AVX2-FP-NEXT:    vpermps %ymm12, %ymm0, %ymm52622; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm5[0,1,2,3,4,5],ymm1[6,7]2623; AVX2-FP-NEXT:    vmovaps 128(%rdi), %ymm122624; AVX2-FP-NEXT:    vmovups %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2625; AVX2-FP-NEXT:    vmovaps 176(%rdi), %xmm72626; AVX2-FP-NEXT:    vmovaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2627; AVX2-FP-NEXT:    vmovaps 160(%rdi), %xmm52628; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm7 = xmm5[0],xmm7[0],xmm5[1],xmm7[1]2629; AVX2-FP-NEXT:    vpermps %ymm12, %ymm0, %ymm132630; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm7 = xmm13[0,1],xmm7[2,3]2631; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm7[0,1,2,3],ymm1[4,5,6,7]2632; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2633; AVX2-FP-NEXT:    vmovups %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2634; AVX2-FP-NEXT:    vpermps %ymm10, %ymm0, %ymm12635; AVX2-FP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2636; AVX2-FP-NEXT:    vpermps %ymm4, %ymm0, %ymm72637; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm13 = ymm7[0,1,2,3,4,5],ymm1[6,7]2638; AVX2-FP-NEXT:    vmovaps 384(%rdi), %ymm12639; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2640; AVX2-FP-NEXT:    vpermps %ymm1, %ymm0, %ymm02641; AVX2-FP-NEXT:    vmovaps 432(%rdi), %xmm72642; AVX2-FP-NEXT:    vmovaps 416(%rdi), %xmm12643; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm12 = xmm1[0],xmm7[0],xmm1[1],xmm7[1]2644; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm12[2,3]2645; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm13[4,5,6,7]2646; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2647; AVX2-FP-NEXT:    vbroadcastsd {{.*#+}} ymm0 = [2,6,2,6,2,6,2,6]2648; AVX2-FP-NEXT:    vpermps %ymm9, %ymm0, %ymm122649; AVX2-FP-NEXT:    vpermps %ymm6, %ymm0, %ymm132650; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm12 = ymm13[0,1,2,3,4,5],ymm12[6,7]2651; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload2652; AVX2-FP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm13, %xmm13 # 16-byte Folded Reload2653; AVX2-FP-NEXT:    # xmm13 = xmm13[2],mem[2],xmm13[3],mem[3]2654; AVX2-FP-NEXT:    vpermps %ymm11, %ymm0, %ymm112655; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm11 = xmm13[0,1],xmm11[2,3]2656; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm11 = ymm11[0,1,2,3],ymm12[4,5,6,7]2657; AVX2-FP-NEXT:    vmovups %ymm11, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2658; AVX2-FP-NEXT:    vpermps %ymm10, %ymm0, %ymm112659; AVX2-FP-NEXT:    vpermps %ymm4, %ymm0, %ymm122660; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm11 = ymm12[0,1,2,3,4,5],ymm11[6,7]2661; AVX2-FP-NEXT:    vmovaps (%rsp), %xmm4 # 16-byte Reload2662; AVX2-FP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4, %xmm12 # 16-byte Folded Reload2663; AVX2-FP-NEXT:    # xmm12 = xmm4[2],mem[2],xmm4[3],mem[3]2664; AVX2-FP-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm13 # 32-byte Folded Reload2665; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm12 = xmm12[0,1],xmm13[2,3]2666; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm4 = ymm12[0,1,2,3],ymm11[4,5,6,7]2667; AVX2-FP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2668; AVX2-FP-NEXT:    vpermps %ymm8, %ymm0, %ymm112669; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload2670; AVX2-FP-NEXT:    vpermps %ymm4, %ymm0, %ymm122671; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm11 = ymm12[0,1,2,3,4,5],ymm11[6,7]2672; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload2673; AVX2-FP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm10, %xmm12 # 16-byte Folded Reload2674; AVX2-FP-NEXT:    # xmm12 = xmm10[2],mem[2],xmm10[3],mem[3]2675; AVX2-FP-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm13 # 32-byte Folded Reload2676; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm12 = xmm12[0,1],xmm13[2,3]2677; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm10 = ymm12[0,1,2,3],ymm11[4,5,6,7]2678; AVX2-FP-NEXT:    vmovups %ymm10, (%rsp) # 32-byte Spill2679; AVX2-FP-NEXT:    vpermps %ymm15, %ymm0, %ymm112680; AVX2-FP-NEXT:    vpermps %ymm14, %ymm0, %ymm122681; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm11 = ymm12[0,1,2,3,4,5],ymm11[6,7]2682; AVX2-FP-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload2683; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload2684; AVX2-FP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm10, %xmm12 # 16-byte Folded Reload2685; AVX2-FP-NEXT:    # xmm12 = xmm10[2],mem[2],xmm10[3],mem[3]2686; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm0 = xmm12[0,1],xmm0[2,3]2687; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm13 = ymm0[0,1,2,3],ymm11[4,5,6,7]2688; AVX2-FP-NEXT:    vbroadcastsd {{.*#+}} ymm0 = [3,7,3,7,3,7,3,7]2689; AVX2-FP-NEXT:    vpermps %ymm15, %ymm0, %ymm112690; AVX2-FP-NEXT:    vpermps %ymm14, %ymm0, %ymm122691; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm11 = ymm12[0,1,2,3,4,5],ymm11[6,7]2692; AVX2-FP-NEXT:    vunpckhps {{.*#+}} xmm2 = xmm3[2],xmm2[2],xmm3[3],xmm2[3]2693; AVX2-FP-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm3 # 32-byte Folded Reload2694; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm2 = xmm3[0,1],xmm2[2,3]2695; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm11[4,5,6,7]2696; AVX2-FP-NEXT:    vpermps %ymm9, %ymm0, %ymm32697; AVX2-FP-NEXT:    vpermps %ymm6, %ymm0, %ymm62698; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm3 = ymm6[0,1,2,3,4,5],ymm3[6,7]2699; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload2700; AVX2-FP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm6, %xmm6 # 16-byte Folded Reload2701; AVX2-FP-NEXT:    # xmm6 = xmm6[2],mem[2],xmm6[3],mem[3]2702; AVX2-FP-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm9 # 32-byte Folded Reload2703; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm6 = xmm9[0,1],xmm6[2,3]2704; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm3 = ymm6[0,1,2,3],ymm3[4,5,6,7]2705; AVX2-FP-NEXT:    vpermps %ymm8, %ymm0, %ymm62706; AVX2-FP-NEXT:    vpermps %ymm4, %ymm0, %ymm82707; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm6 = ymm8[0,1,2,3,4,5],ymm6[6,7]2708; AVX2-FP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5, %xmm5 # 16-byte Folded Reload2709; AVX2-FP-NEXT:    # xmm5 = xmm5[2],mem[2],xmm5[3],mem[3]2710; AVX2-FP-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm8 # 32-byte Folded Reload2711; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm5 = xmm8[0,1],xmm5[2,3]2712; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3],ymm6[4,5,6,7]2713; AVX2-FP-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm6 # 32-byte Folded Reload2714; AVX2-FP-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm8 # 32-byte Folded Reload2715; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm6 = ymm8[0,1,2,3,4,5],ymm6[6,7]2716; AVX2-FP-NEXT:    vunpckhps {{.*#+}} xmm1 = xmm1[2],xmm7[2],xmm1[3],xmm7[3]2717; AVX2-FP-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload2718; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]2719; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm6[4,5,6,7]2720; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload2721; AVX2-FP-NEXT:    vmovaps %ymm1, 32(%rsi)2722; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload2723; AVX2-FP-NEXT:    vmovaps %ymm1, 96(%rsi)2724; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload2725; AVX2-FP-NEXT:    vmovaps %ymm1, 64(%rsi)2726; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload2727; AVX2-FP-NEXT:    vmovaps %ymm1, (%rsi)2728; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload2729; AVX2-FP-NEXT:    vmovaps %ymm1, 96(%rdx)2730; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload2731; AVX2-FP-NEXT:    vmovaps %ymm1, 32(%rdx)2732; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload2733; AVX2-FP-NEXT:    vmovaps %ymm1, (%rdx)2734; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload2735; AVX2-FP-NEXT:    vmovaps %ymm1, 64(%rdx)2736; AVX2-FP-NEXT:    vmovups (%rsp), %ymm1 # 32-byte Reload2737; AVX2-FP-NEXT:    vmovaps %ymm1, 32(%rcx)2738; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload2739; AVX2-FP-NEXT:    vmovaps %ymm1, 96(%rcx)2740; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload2741; AVX2-FP-NEXT:    vmovaps %ymm1, 64(%rcx)2742; AVX2-FP-NEXT:    vmovaps %ymm13, (%rcx)2743; AVX2-FP-NEXT:    vmovaps %ymm0, 96(%r8)2744; AVX2-FP-NEXT:    vmovaps %ymm5, 32(%r8)2745; AVX2-FP-NEXT:    vmovaps %ymm3, 64(%r8)2746; AVX2-FP-NEXT:    vmovaps %ymm2, (%r8)2747; AVX2-FP-NEXT:    addq $680, %rsp # imm = 0x2A82748; AVX2-FP-NEXT:    vzeroupper2749; AVX2-FP-NEXT:    retq2750;2751; AVX2-FCP-LABEL: load_i32_stride4_vf32:2752; AVX2-FCP:       # %bb.0:2753; AVX2-FCP-NEXT:    subq $680, %rsp # imm = 0x2A82754; AVX2-FCP-NEXT:    vmovaps 192(%rdi), %ymm122755; AVX2-FCP-NEXT:    vmovaps 416(%rdi), %ymm82756; AVX2-FCP-NEXT:    vmovups %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2757; AVX2-FCP-NEXT:    vmovaps 448(%rdi), %ymm42758; AVX2-FCP-NEXT:    vmovaps 480(%rdi), %ymm102759; AVX2-FCP-NEXT:    vmovaps 288(%rdi), %ymm112760; AVX2-FCP-NEXT:    vmovaps 320(%rdi), %ymm62761; AVX2-FCP-NEXT:    vmovaps 352(%rdi), %ymm92762; AVX2-FCP-NEXT:    vbroadcastsd {{.*#+}} ymm0 = [0,4,0,4,0,4,0,4]2763; AVX2-FCP-NEXT:    vpermps %ymm9, %ymm0, %ymm12764; AVX2-FCP-NEXT:    vpermps %ymm6, %ymm0, %ymm22765; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]2766; AVX2-FCP-NEXT:    vmovaps 272(%rdi), %xmm32767; AVX2-FCP-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2768; AVX2-FCP-NEXT:    vmovaps 256(%rdi), %xmm22769; AVX2-FCP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2770; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm2[0],xmm3[0],xmm2[1],xmm3[1]2771; AVX2-FCP-NEXT:    vpermps %ymm11, %ymm0, %ymm32772; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm2 = xmm2[0,1],xmm3[2,3]2773; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]2774; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2775; AVX2-FCP-NEXT:    vpermps %ymm10, %ymm0, %ymm12776; AVX2-FCP-NEXT:    vpermps %ymm4, %ymm0, %ymm22777; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]2778; AVX2-FCP-NEXT:    vmovaps 400(%rdi), %xmm32779; AVX2-FCP-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2780; AVX2-FCP-NEXT:    vmovaps 384(%rdi), %xmm22781; AVX2-FCP-NEXT:    vmovaps %xmm2, (%rsp) # 16-byte Spill2782; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm2[0],xmm3[0],xmm2[1],xmm3[1]2783; AVX2-FCP-NEXT:    vpermps %ymm8, %ymm0, %ymm32784; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm2 = xmm2[0,1],xmm3[2,3]2785; AVX2-FCP-NEXT:    vmovaps 224(%rdi), %ymm82786; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]2787; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2788; AVX2-FCP-NEXT:    vpermps %ymm8, %ymm0, %ymm12789; AVX2-FCP-NEXT:    vpermps %ymm12, %ymm0, %ymm22790; AVX2-FCP-NEXT:    vmovups %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2791; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]2792; AVX2-FCP-NEXT:    vmovaps 160(%rdi), %ymm52793; AVX2-FCP-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2794; AVX2-FCP-NEXT:    vmovaps 144(%rdi), %xmm32795; AVX2-FCP-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2796; AVX2-FCP-NEXT:    vmovaps 128(%rdi), %xmm22797; AVX2-FCP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2798; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm2[0],xmm3[0],xmm2[1],xmm3[1]2799; AVX2-FCP-NEXT:    vpermps %ymm5, %ymm0, %ymm32800; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm2 = xmm2[0,1],xmm3[2,3]2801; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]2802; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2803; AVX2-FCP-NEXT:    vmovaps 64(%rdi), %ymm142804; AVX2-FCP-NEXT:    vmovaps 96(%rdi), %ymm152805; AVX2-FCP-NEXT:    vpermps %ymm15, %ymm0, %ymm12806; AVX2-FCP-NEXT:    vpermps %ymm14, %ymm0, %ymm22807; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]2808; AVX2-FCP-NEXT:    vmovaps 32(%rdi), %ymm22809; AVX2-FCP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2810; AVX2-FCP-NEXT:    vpermps %ymm2, %ymm0, %ymm02811; AVX2-FCP-NEXT:    vmovaps (%rdi), %xmm32812; AVX2-FCP-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2813; AVX2-FCP-NEXT:    vmovaps 16(%rdi), %xmm22814; AVX2-FCP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2815; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]2816; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm0 = xmm2[0,1],xmm0[2,3]2817; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]2818; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2819; AVX2-FCP-NEXT:    vbroadcastsd {{.*#+}} ymm0 = [1,5,1,5,1,5,1,5]2820; AVX2-FCP-NEXT:    vpermps %ymm9, %ymm0, %ymm12821; AVX2-FCP-NEXT:    vpermps %ymm6, %ymm0, %ymm22822; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]2823; AVX2-FCP-NEXT:    vmovaps 256(%rdi), %ymm52824; AVX2-FCP-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2825; AVX2-FCP-NEXT:    vmovaps 304(%rdi), %xmm32826; AVX2-FCP-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2827; AVX2-FCP-NEXT:    vmovaps 288(%rdi), %xmm22828; AVX2-FCP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2829; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm2[0],xmm3[0],xmm2[1],xmm3[1]2830; AVX2-FCP-NEXT:    vpermps %ymm5, %ymm0, %ymm32831; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm2 = xmm3[0,1],xmm2[2,3]2832; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]2833; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2834; AVX2-FCP-NEXT:    vpermps %ymm15, %ymm0, %ymm12835; AVX2-FCP-NEXT:    vpermps %ymm14, %ymm0, %ymm22836; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]2837; AVX2-FCP-NEXT:    vmovaps (%rdi), %ymm72838; AVX2-FCP-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2839; AVX2-FCP-NEXT:    vmovaps 32(%rdi), %xmm32840; AVX2-FCP-NEXT:    vmovaps 48(%rdi), %xmm22841; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm5 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]2842; AVX2-FCP-NEXT:    vpermps %ymm7, %ymm0, %ymm72843; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm5 = xmm7[0,1],xmm5[2,3]2844; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm5[0,1,2,3],ymm1[4,5,6,7]2845; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2846; AVX2-FCP-NEXT:    vpermps %ymm8, %ymm0, %ymm12847; AVX2-FCP-NEXT:    vpermps %ymm12, %ymm0, %ymm52848; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm5[0,1,2,3,4,5],ymm1[6,7]2849; AVX2-FCP-NEXT:    vmovaps 128(%rdi), %ymm122850; AVX2-FCP-NEXT:    vmovups %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2851; AVX2-FCP-NEXT:    vmovaps 176(%rdi), %xmm72852; AVX2-FCP-NEXT:    vmovaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2853; AVX2-FCP-NEXT:    vmovaps 160(%rdi), %xmm52854; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm7 = xmm5[0],xmm7[0],xmm5[1],xmm7[1]2855; AVX2-FCP-NEXT:    vpermps %ymm12, %ymm0, %ymm132856; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm7 = xmm13[0,1],xmm7[2,3]2857; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm7[0,1,2,3],ymm1[4,5,6,7]2858; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2859; AVX2-FCP-NEXT:    vmovups %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2860; AVX2-FCP-NEXT:    vpermps %ymm10, %ymm0, %ymm12861; AVX2-FCP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2862; AVX2-FCP-NEXT:    vpermps %ymm4, %ymm0, %ymm72863; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm13 = ymm7[0,1,2,3,4,5],ymm1[6,7]2864; AVX2-FCP-NEXT:    vmovaps 384(%rdi), %ymm12865; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2866; AVX2-FCP-NEXT:    vpermps %ymm1, %ymm0, %ymm02867; AVX2-FCP-NEXT:    vmovaps 432(%rdi), %xmm72868; AVX2-FCP-NEXT:    vmovaps 416(%rdi), %xmm12869; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm12 = xmm1[0],xmm7[0],xmm1[1],xmm7[1]2870; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm12[2,3]2871; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm13[4,5,6,7]2872; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2873; AVX2-FCP-NEXT:    vbroadcastsd {{.*#+}} ymm0 = [2,6,2,6,2,6,2,6]2874; AVX2-FCP-NEXT:    vpermps %ymm9, %ymm0, %ymm122875; AVX2-FCP-NEXT:    vpermps %ymm6, %ymm0, %ymm132876; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm12 = ymm13[0,1,2,3,4,5],ymm12[6,7]2877; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload2878; AVX2-FCP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm13, %xmm13 # 16-byte Folded Reload2879; AVX2-FCP-NEXT:    # xmm13 = xmm13[2],mem[2],xmm13[3],mem[3]2880; AVX2-FCP-NEXT:    vpermps %ymm11, %ymm0, %ymm112881; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm11 = xmm13[0,1],xmm11[2,3]2882; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm11 = ymm11[0,1,2,3],ymm12[4,5,6,7]2883; AVX2-FCP-NEXT:    vmovups %ymm11, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2884; AVX2-FCP-NEXT:    vpermps %ymm10, %ymm0, %ymm112885; AVX2-FCP-NEXT:    vpermps %ymm4, %ymm0, %ymm122886; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm11 = ymm12[0,1,2,3,4,5],ymm11[6,7]2887; AVX2-FCP-NEXT:    vmovaps (%rsp), %xmm4 # 16-byte Reload2888; AVX2-FCP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4, %xmm12 # 16-byte Folded Reload2889; AVX2-FCP-NEXT:    # xmm12 = xmm4[2],mem[2],xmm4[3],mem[3]2890; AVX2-FCP-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm13 # 32-byte Folded Reload2891; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm12 = xmm12[0,1],xmm13[2,3]2892; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm4 = ymm12[0,1,2,3],ymm11[4,5,6,7]2893; AVX2-FCP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2894; AVX2-FCP-NEXT:    vpermps %ymm8, %ymm0, %ymm112895; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload2896; AVX2-FCP-NEXT:    vpermps %ymm4, %ymm0, %ymm122897; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm11 = ymm12[0,1,2,3,4,5],ymm11[6,7]2898; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload2899; AVX2-FCP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm10, %xmm12 # 16-byte Folded Reload2900; AVX2-FCP-NEXT:    # xmm12 = xmm10[2],mem[2],xmm10[3],mem[3]2901; AVX2-FCP-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm13 # 32-byte Folded Reload2902; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm12 = xmm12[0,1],xmm13[2,3]2903; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm10 = ymm12[0,1,2,3],ymm11[4,5,6,7]2904; AVX2-FCP-NEXT:    vmovups %ymm10, (%rsp) # 32-byte Spill2905; AVX2-FCP-NEXT:    vpermps %ymm15, %ymm0, %ymm112906; AVX2-FCP-NEXT:    vpermps %ymm14, %ymm0, %ymm122907; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm11 = ymm12[0,1,2,3,4,5],ymm11[6,7]2908; AVX2-FCP-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload2909; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload2910; AVX2-FCP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm10, %xmm12 # 16-byte Folded Reload2911; AVX2-FCP-NEXT:    # xmm12 = xmm10[2],mem[2],xmm10[3],mem[3]2912; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm0 = xmm12[0,1],xmm0[2,3]2913; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm13 = ymm0[0,1,2,3],ymm11[4,5,6,7]2914; AVX2-FCP-NEXT:    vbroadcastsd {{.*#+}} ymm0 = [3,7,3,7,3,7,3,7]2915; AVX2-FCP-NEXT:    vpermps %ymm15, %ymm0, %ymm112916; AVX2-FCP-NEXT:    vpermps %ymm14, %ymm0, %ymm122917; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm11 = ymm12[0,1,2,3,4,5],ymm11[6,7]2918; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} xmm2 = xmm3[2],xmm2[2],xmm3[3],xmm2[3]2919; AVX2-FCP-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm3 # 32-byte Folded Reload2920; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm2 = xmm3[0,1],xmm2[2,3]2921; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm11[4,5,6,7]2922; AVX2-FCP-NEXT:    vpermps %ymm9, %ymm0, %ymm32923; AVX2-FCP-NEXT:    vpermps %ymm6, %ymm0, %ymm62924; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm6[0,1,2,3,4,5],ymm3[6,7]2925; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload2926; AVX2-FCP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm6, %xmm6 # 16-byte Folded Reload2927; AVX2-FCP-NEXT:    # xmm6 = xmm6[2],mem[2],xmm6[3],mem[3]2928; AVX2-FCP-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm9 # 32-byte Folded Reload2929; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm6 = xmm9[0,1],xmm6[2,3]2930; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm6[0,1,2,3],ymm3[4,5,6,7]2931; AVX2-FCP-NEXT:    vpermps %ymm8, %ymm0, %ymm62932; AVX2-FCP-NEXT:    vpermps %ymm4, %ymm0, %ymm82933; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm6 = ymm8[0,1,2,3,4,5],ymm6[6,7]2934; AVX2-FCP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5, %xmm5 # 16-byte Folded Reload2935; AVX2-FCP-NEXT:    # xmm5 = xmm5[2],mem[2],xmm5[3],mem[3]2936; AVX2-FCP-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm8 # 32-byte Folded Reload2937; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm5 = xmm8[0,1],xmm5[2,3]2938; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3],ymm6[4,5,6,7]2939; AVX2-FCP-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm6 # 32-byte Folded Reload2940; AVX2-FCP-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm8 # 32-byte Folded Reload2941; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm6 = ymm8[0,1,2,3,4,5],ymm6[6,7]2942; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} xmm1 = xmm1[2],xmm7[2],xmm1[3],xmm7[3]2943; AVX2-FCP-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload2944; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]2945; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm6[4,5,6,7]2946; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload2947; AVX2-FCP-NEXT:    vmovaps %ymm1, 32(%rsi)2948; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload2949; AVX2-FCP-NEXT:    vmovaps %ymm1, 96(%rsi)2950; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload2951; AVX2-FCP-NEXT:    vmovaps %ymm1, 64(%rsi)2952; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload2953; AVX2-FCP-NEXT:    vmovaps %ymm1, (%rsi)2954; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload2955; AVX2-FCP-NEXT:    vmovaps %ymm1, 96(%rdx)2956; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload2957; AVX2-FCP-NEXT:    vmovaps %ymm1, 32(%rdx)2958; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload2959; AVX2-FCP-NEXT:    vmovaps %ymm1, (%rdx)2960; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload2961; AVX2-FCP-NEXT:    vmovaps %ymm1, 64(%rdx)2962; AVX2-FCP-NEXT:    vmovups (%rsp), %ymm1 # 32-byte Reload2963; AVX2-FCP-NEXT:    vmovaps %ymm1, 32(%rcx)2964; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload2965; AVX2-FCP-NEXT:    vmovaps %ymm1, 96(%rcx)2966; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload2967; AVX2-FCP-NEXT:    vmovaps %ymm1, 64(%rcx)2968; AVX2-FCP-NEXT:    vmovaps %ymm13, (%rcx)2969; AVX2-FCP-NEXT:    vmovaps %ymm0, 96(%r8)2970; AVX2-FCP-NEXT:    vmovaps %ymm5, 32(%r8)2971; AVX2-FCP-NEXT:    vmovaps %ymm3, 64(%r8)2972; AVX2-FCP-NEXT:    vmovaps %ymm2, (%r8)2973; AVX2-FCP-NEXT:    addq $680, %rsp # imm = 0x2A82974; AVX2-FCP-NEXT:    vzeroupper2975; AVX2-FCP-NEXT:    retq2976;2977; AVX512-LABEL: load_i32_stride4_vf32:2978; AVX512:       # %bb.0:2979; AVX512-NEXT:    vmovdqa64 (%rdi), %zmm02980; AVX512-NEXT:    vmovdqa64 64(%rdi), %zmm12981; AVX512-NEXT:    vmovdqa64 128(%rdi), %zmm22982; AVX512-NEXT:    vmovdqa64 192(%rdi), %zmm32983; AVX512-NEXT:    vmovdqa64 320(%rdi), %zmm42984; AVX512-NEXT:    vmovdqa64 256(%rdi), %zmm52985; AVX512-NEXT:    vmovdqa64 448(%rdi), %zmm62986; AVX512-NEXT:    vmovdqa64 384(%rdi), %zmm72987; AVX512-NEXT:    vbroadcasti64x4 {{.*#+}} zmm8 = [0,4,8,12,16,20,24,28,0,4,8,12,16,20,24,28]2988; AVX512-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3]2989; AVX512-NEXT:    vmovdqa64 %zmm7, %zmm92990; AVX512-NEXT:    vpermt2d %zmm6, %zmm8, %zmm92991; AVX512-NEXT:    vmovdqa64 %zmm5, %zmm102992; AVX512-NEXT:    vpermt2d %zmm4, %zmm8, %zmm102993; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm9 = zmm10[0,1,2,3],zmm9[4,5,6,7]2994; AVX512-NEXT:    vmovdqa64 %zmm2, %zmm102995; AVX512-NEXT:    vpermt2d %zmm3, %zmm8, %zmm102996; AVX512-NEXT:    vpermi2d %zmm1, %zmm0, %zmm82997; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm8 = zmm8[0,1,2,3],zmm10[4,5,6,7]2998; AVX512-NEXT:    vbroadcasti64x4 {{.*#+}} zmm10 = [1,5,9,13,17,21,25,29,1,5,9,13,17,21,25,29]2999; AVX512-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3]3000; AVX512-NEXT:    vmovdqa64 %zmm7, %zmm113001; AVX512-NEXT:    vpermt2d %zmm6, %zmm10, %zmm113002; AVX512-NEXT:    vmovdqa64 %zmm5, %zmm123003; AVX512-NEXT:    vpermt2d %zmm4, %zmm10, %zmm123004; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm11 = zmm12[0,1,2,3],zmm11[4,5,6,7]3005; AVX512-NEXT:    vmovdqa64 %zmm2, %zmm123006; AVX512-NEXT:    vpermt2d %zmm3, %zmm10, %zmm123007; AVX512-NEXT:    vpermi2d %zmm1, %zmm0, %zmm103008; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm10 = zmm10[0,1,2,3],zmm12[4,5,6,7]3009; AVX512-NEXT:    vbroadcasti64x4 {{.*#+}} zmm12 = [2,6,10,14,18,22,26,30,2,6,10,14,18,22,26,30]3010; AVX512-NEXT:    # zmm12 = mem[0,1,2,3,0,1,2,3]3011; AVX512-NEXT:    vmovdqa64 %zmm7, %zmm133012; AVX512-NEXT:    vpermt2d %zmm6, %zmm12, %zmm133013; AVX512-NEXT:    vmovdqa64 %zmm5, %zmm143014; AVX512-NEXT:    vpermt2d %zmm4, %zmm12, %zmm143015; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm13 = zmm14[0,1,2,3],zmm13[4,5,6,7]3016; AVX512-NEXT:    vmovdqa64 %zmm2, %zmm143017; AVX512-NEXT:    vpermt2d %zmm3, %zmm12, %zmm143018; AVX512-NEXT:    vpermi2d %zmm1, %zmm0, %zmm123019; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm12 = zmm12[0,1,2,3],zmm14[4,5,6,7]3020; AVX512-NEXT:    vbroadcasti64x4 {{.*#+}} zmm14 = [3,7,11,15,19,23,27,31,3,7,11,15,19,23,27,31]3021; AVX512-NEXT:    # zmm14 = mem[0,1,2,3,0,1,2,3]3022; AVX512-NEXT:    vpermt2d %zmm6, %zmm14, %zmm73023; AVX512-NEXT:    vpermt2d %zmm4, %zmm14, %zmm53024; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm4 = zmm5[0,1,2,3],zmm7[4,5,6,7]3025; AVX512-NEXT:    vpermt2d %zmm3, %zmm14, %zmm23026; AVX512-NEXT:    vpermt2d %zmm1, %zmm14, %zmm03027; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm0 = zmm0[0,1,2,3],zmm2[4,5,6,7]3028; AVX512-NEXT:    vmovdqa64 %zmm9, 64(%rsi)3029; AVX512-NEXT:    vmovdqa64 %zmm8, (%rsi)3030; AVX512-NEXT:    vmovdqa64 %zmm11, 64(%rdx)3031; AVX512-NEXT:    vmovdqa64 %zmm10, (%rdx)3032; AVX512-NEXT:    vmovdqa64 %zmm13, 64(%rcx)3033; AVX512-NEXT:    vmovdqa64 %zmm12, (%rcx)3034; AVX512-NEXT:    vmovdqa64 %zmm4, 64(%r8)3035; AVX512-NEXT:    vmovdqa64 %zmm0, (%r8)3036; AVX512-NEXT:    vzeroupper3037; AVX512-NEXT:    retq3038;3039; AVX512-FCP-LABEL: load_i32_stride4_vf32:3040; AVX512-FCP:       # %bb.0:3041; AVX512-FCP-NEXT:    vmovdqa64 (%rdi), %zmm03042; AVX512-FCP-NEXT:    vmovdqa64 64(%rdi), %zmm13043; AVX512-FCP-NEXT:    vmovdqa64 128(%rdi), %zmm23044; AVX512-FCP-NEXT:    vmovdqa64 192(%rdi), %zmm33045; AVX512-FCP-NEXT:    vmovdqa64 320(%rdi), %zmm43046; AVX512-FCP-NEXT:    vmovdqa64 256(%rdi), %zmm53047; AVX512-FCP-NEXT:    vmovdqa64 448(%rdi), %zmm63048; AVX512-FCP-NEXT:    vmovdqa64 384(%rdi), %zmm73049; AVX512-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm8 = [0,4,8,12,16,20,24,28,0,4,8,12,16,20,24,28]3050; AVX512-FCP-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3]3051; AVX512-FCP-NEXT:    vmovdqa64 %zmm7, %zmm93052; AVX512-FCP-NEXT:    vpermt2d %zmm6, %zmm8, %zmm93053; AVX512-FCP-NEXT:    vmovdqa64 %zmm5, %zmm103054; AVX512-FCP-NEXT:    vpermt2d %zmm4, %zmm8, %zmm103055; AVX512-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm9 = zmm10[0,1,2,3],zmm9[4,5,6,7]3056; AVX512-FCP-NEXT:    vmovdqa64 %zmm2, %zmm103057; AVX512-FCP-NEXT:    vpermt2d %zmm3, %zmm8, %zmm103058; AVX512-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm83059; AVX512-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm8 = zmm8[0,1,2,3],zmm10[4,5,6,7]3060; AVX512-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm10 = [1,5,9,13,17,21,25,29,1,5,9,13,17,21,25,29]3061; AVX512-FCP-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3]3062; AVX512-FCP-NEXT:    vmovdqa64 %zmm7, %zmm113063; AVX512-FCP-NEXT:    vpermt2d %zmm6, %zmm10, %zmm113064; AVX512-FCP-NEXT:    vmovdqa64 %zmm5, %zmm123065; AVX512-FCP-NEXT:    vpermt2d %zmm4, %zmm10, %zmm123066; AVX512-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm11 = zmm12[0,1,2,3],zmm11[4,5,6,7]3067; AVX512-FCP-NEXT:    vmovdqa64 %zmm2, %zmm123068; AVX512-FCP-NEXT:    vpermt2d %zmm3, %zmm10, %zmm123069; AVX512-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm103070; AVX512-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm10 = zmm10[0,1,2,3],zmm12[4,5,6,7]3071; AVX512-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm12 = [2,6,10,14,18,22,26,30,2,6,10,14,18,22,26,30]3072; AVX512-FCP-NEXT:    # zmm12 = mem[0,1,2,3,0,1,2,3]3073; AVX512-FCP-NEXT:    vmovdqa64 %zmm7, %zmm133074; AVX512-FCP-NEXT:    vpermt2d %zmm6, %zmm12, %zmm133075; AVX512-FCP-NEXT:    vmovdqa64 %zmm5, %zmm143076; AVX512-FCP-NEXT:    vpermt2d %zmm4, %zmm12, %zmm143077; AVX512-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm13 = zmm14[0,1,2,3],zmm13[4,5,6,7]3078; AVX512-FCP-NEXT:    vmovdqa64 %zmm2, %zmm143079; AVX512-FCP-NEXT:    vpermt2d %zmm3, %zmm12, %zmm143080; AVX512-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm123081; AVX512-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm12 = zmm12[0,1,2,3],zmm14[4,5,6,7]3082; AVX512-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm14 = [3,7,11,15,19,23,27,31,3,7,11,15,19,23,27,31]3083; AVX512-FCP-NEXT:    # zmm14 = mem[0,1,2,3,0,1,2,3]3084; AVX512-FCP-NEXT:    vpermt2d %zmm6, %zmm14, %zmm73085; AVX512-FCP-NEXT:    vpermt2d %zmm4, %zmm14, %zmm53086; AVX512-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm4 = zmm5[0,1,2,3],zmm7[4,5,6,7]3087; AVX512-FCP-NEXT:    vpermt2d %zmm3, %zmm14, %zmm23088; AVX512-FCP-NEXT:    vpermt2d %zmm1, %zmm14, %zmm03089; AVX512-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm0 = zmm0[0,1,2,3],zmm2[4,5,6,7]3090; AVX512-FCP-NEXT:    vmovdqa64 %zmm9, 64(%rsi)3091; AVX512-FCP-NEXT:    vmovdqa64 %zmm8, (%rsi)3092; AVX512-FCP-NEXT:    vmovdqa64 %zmm11, 64(%rdx)3093; AVX512-FCP-NEXT:    vmovdqa64 %zmm10, (%rdx)3094; AVX512-FCP-NEXT:    vmovdqa64 %zmm13, 64(%rcx)3095; AVX512-FCP-NEXT:    vmovdqa64 %zmm12, (%rcx)3096; AVX512-FCP-NEXT:    vmovdqa64 %zmm4, 64(%r8)3097; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, (%r8)3098; AVX512-FCP-NEXT:    vzeroupper3099; AVX512-FCP-NEXT:    retq3100;3101; AVX512DQ-LABEL: load_i32_stride4_vf32:3102; AVX512DQ:       # %bb.0:3103; AVX512DQ-NEXT:    vmovdqa64 (%rdi), %zmm03104; AVX512DQ-NEXT:    vmovdqa64 64(%rdi), %zmm13105; AVX512DQ-NEXT:    vmovdqa64 128(%rdi), %zmm23106; AVX512DQ-NEXT:    vmovdqa64 192(%rdi), %zmm33107; AVX512DQ-NEXT:    vmovdqa64 320(%rdi), %zmm43108; AVX512DQ-NEXT:    vmovdqa64 256(%rdi), %zmm53109; AVX512DQ-NEXT:    vmovdqa64 448(%rdi), %zmm63110; AVX512DQ-NEXT:    vmovdqa64 384(%rdi), %zmm73111; AVX512DQ-NEXT:    vbroadcasti64x4 {{.*#+}} zmm8 = [0,4,8,12,16,20,24,28,0,4,8,12,16,20,24,28]3112; AVX512DQ-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3]3113; AVX512DQ-NEXT:    vmovdqa64 %zmm7, %zmm93114; AVX512DQ-NEXT:    vpermt2d %zmm6, %zmm8, %zmm93115; AVX512DQ-NEXT:    vmovdqa64 %zmm5, %zmm103116; AVX512DQ-NEXT:    vpermt2d %zmm4, %zmm8, %zmm103117; AVX512DQ-NEXT:    vshufi64x2 {{.*#+}} zmm9 = zmm10[0,1,2,3],zmm9[4,5,6,7]3118; AVX512DQ-NEXT:    vmovdqa64 %zmm2, %zmm103119; AVX512DQ-NEXT:    vpermt2d %zmm3, %zmm8, %zmm103120; AVX512DQ-NEXT:    vpermi2d %zmm1, %zmm0, %zmm83121; AVX512DQ-NEXT:    vshufi64x2 {{.*#+}} zmm8 = zmm8[0,1,2,3],zmm10[4,5,6,7]3122; AVX512DQ-NEXT:    vbroadcasti64x4 {{.*#+}} zmm10 = [1,5,9,13,17,21,25,29,1,5,9,13,17,21,25,29]3123; AVX512DQ-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3]3124; AVX512DQ-NEXT:    vmovdqa64 %zmm7, %zmm113125; AVX512DQ-NEXT:    vpermt2d %zmm6, %zmm10, %zmm113126; AVX512DQ-NEXT:    vmovdqa64 %zmm5, %zmm123127; AVX512DQ-NEXT:    vpermt2d %zmm4, %zmm10, %zmm123128; AVX512DQ-NEXT:    vshufi64x2 {{.*#+}} zmm11 = zmm12[0,1,2,3],zmm11[4,5,6,7]3129; AVX512DQ-NEXT:    vmovdqa64 %zmm2, %zmm123130; AVX512DQ-NEXT:    vpermt2d %zmm3, %zmm10, %zmm123131; AVX512DQ-NEXT:    vpermi2d %zmm1, %zmm0, %zmm103132; AVX512DQ-NEXT:    vshufi64x2 {{.*#+}} zmm10 = zmm10[0,1,2,3],zmm12[4,5,6,7]3133; AVX512DQ-NEXT:    vbroadcasti64x4 {{.*#+}} zmm12 = [2,6,10,14,18,22,26,30,2,6,10,14,18,22,26,30]3134; AVX512DQ-NEXT:    # zmm12 = mem[0,1,2,3,0,1,2,3]3135; AVX512DQ-NEXT:    vmovdqa64 %zmm7, %zmm133136; AVX512DQ-NEXT:    vpermt2d %zmm6, %zmm12, %zmm133137; AVX512DQ-NEXT:    vmovdqa64 %zmm5, %zmm143138; AVX512DQ-NEXT:    vpermt2d %zmm4, %zmm12, %zmm143139; AVX512DQ-NEXT:    vshufi64x2 {{.*#+}} zmm13 = zmm14[0,1,2,3],zmm13[4,5,6,7]3140; AVX512DQ-NEXT:    vmovdqa64 %zmm2, %zmm143141; AVX512DQ-NEXT:    vpermt2d %zmm3, %zmm12, %zmm143142; AVX512DQ-NEXT:    vpermi2d %zmm1, %zmm0, %zmm123143; AVX512DQ-NEXT:    vshufi64x2 {{.*#+}} zmm12 = zmm12[0,1,2,3],zmm14[4,5,6,7]3144; AVX512DQ-NEXT:    vbroadcasti64x4 {{.*#+}} zmm14 = [3,7,11,15,19,23,27,31,3,7,11,15,19,23,27,31]3145; AVX512DQ-NEXT:    # zmm14 = mem[0,1,2,3,0,1,2,3]3146; AVX512DQ-NEXT:    vpermt2d %zmm6, %zmm14, %zmm73147; AVX512DQ-NEXT:    vpermt2d %zmm4, %zmm14, %zmm53148; AVX512DQ-NEXT:    vshufi64x2 {{.*#+}} zmm4 = zmm5[0,1,2,3],zmm7[4,5,6,7]3149; AVX512DQ-NEXT:    vpermt2d %zmm3, %zmm14, %zmm23150; AVX512DQ-NEXT:    vpermt2d %zmm1, %zmm14, %zmm03151; AVX512DQ-NEXT:    vshufi64x2 {{.*#+}} zmm0 = zmm0[0,1,2,3],zmm2[4,5,6,7]3152; AVX512DQ-NEXT:    vmovdqa64 %zmm9, 64(%rsi)3153; AVX512DQ-NEXT:    vmovdqa64 %zmm8, (%rsi)3154; AVX512DQ-NEXT:    vmovdqa64 %zmm11, 64(%rdx)3155; AVX512DQ-NEXT:    vmovdqa64 %zmm10, (%rdx)3156; AVX512DQ-NEXT:    vmovdqa64 %zmm13, 64(%rcx)3157; AVX512DQ-NEXT:    vmovdqa64 %zmm12, (%rcx)3158; AVX512DQ-NEXT:    vmovdqa64 %zmm4, 64(%r8)3159; AVX512DQ-NEXT:    vmovdqa64 %zmm0, (%r8)3160; AVX512DQ-NEXT:    vzeroupper3161; AVX512DQ-NEXT:    retq3162;3163; AVX512DQ-FCP-LABEL: load_i32_stride4_vf32:3164; AVX512DQ-FCP:       # %bb.0:3165; AVX512DQ-FCP-NEXT:    vmovdqa64 (%rdi), %zmm03166; AVX512DQ-FCP-NEXT:    vmovdqa64 64(%rdi), %zmm13167; AVX512DQ-FCP-NEXT:    vmovdqa64 128(%rdi), %zmm23168; AVX512DQ-FCP-NEXT:    vmovdqa64 192(%rdi), %zmm33169; AVX512DQ-FCP-NEXT:    vmovdqa64 320(%rdi), %zmm43170; AVX512DQ-FCP-NEXT:    vmovdqa64 256(%rdi), %zmm53171; AVX512DQ-FCP-NEXT:    vmovdqa64 448(%rdi), %zmm63172; AVX512DQ-FCP-NEXT:    vmovdqa64 384(%rdi), %zmm73173; AVX512DQ-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm8 = [0,4,8,12,16,20,24,28,0,4,8,12,16,20,24,28]3174; AVX512DQ-FCP-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3]3175; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm7, %zmm93176; AVX512DQ-FCP-NEXT:    vpermt2d %zmm6, %zmm8, %zmm93177; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm5, %zmm103178; AVX512DQ-FCP-NEXT:    vpermt2d %zmm4, %zmm8, %zmm103179; AVX512DQ-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm9 = zmm10[0,1,2,3],zmm9[4,5,6,7]3180; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm2, %zmm103181; AVX512DQ-FCP-NEXT:    vpermt2d %zmm3, %zmm8, %zmm103182; AVX512DQ-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm83183; AVX512DQ-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm8 = zmm8[0,1,2,3],zmm10[4,5,6,7]3184; AVX512DQ-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm10 = [1,5,9,13,17,21,25,29,1,5,9,13,17,21,25,29]3185; AVX512DQ-FCP-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3]3186; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm7, %zmm113187; AVX512DQ-FCP-NEXT:    vpermt2d %zmm6, %zmm10, %zmm113188; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm5, %zmm123189; AVX512DQ-FCP-NEXT:    vpermt2d %zmm4, %zmm10, %zmm123190; AVX512DQ-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm11 = zmm12[0,1,2,3],zmm11[4,5,6,7]3191; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm2, %zmm123192; AVX512DQ-FCP-NEXT:    vpermt2d %zmm3, %zmm10, %zmm123193; AVX512DQ-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm103194; AVX512DQ-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm10 = zmm10[0,1,2,3],zmm12[4,5,6,7]3195; AVX512DQ-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm12 = [2,6,10,14,18,22,26,30,2,6,10,14,18,22,26,30]3196; AVX512DQ-FCP-NEXT:    # zmm12 = mem[0,1,2,3,0,1,2,3]3197; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm7, %zmm133198; AVX512DQ-FCP-NEXT:    vpermt2d %zmm6, %zmm12, %zmm133199; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm5, %zmm143200; AVX512DQ-FCP-NEXT:    vpermt2d %zmm4, %zmm12, %zmm143201; AVX512DQ-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm13 = zmm14[0,1,2,3],zmm13[4,5,6,7]3202; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm2, %zmm143203; AVX512DQ-FCP-NEXT:    vpermt2d %zmm3, %zmm12, %zmm143204; AVX512DQ-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm123205; AVX512DQ-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm12 = zmm12[0,1,2,3],zmm14[4,5,6,7]3206; AVX512DQ-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm14 = [3,7,11,15,19,23,27,31,3,7,11,15,19,23,27,31]3207; AVX512DQ-FCP-NEXT:    # zmm14 = mem[0,1,2,3,0,1,2,3]3208; AVX512DQ-FCP-NEXT:    vpermt2d %zmm6, %zmm14, %zmm73209; AVX512DQ-FCP-NEXT:    vpermt2d %zmm4, %zmm14, %zmm53210; AVX512DQ-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm4 = zmm5[0,1,2,3],zmm7[4,5,6,7]3211; AVX512DQ-FCP-NEXT:    vpermt2d %zmm3, %zmm14, %zmm23212; AVX512DQ-FCP-NEXT:    vpermt2d %zmm1, %zmm14, %zmm03213; AVX512DQ-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm0 = zmm0[0,1,2,3],zmm2[4,5,6,7]3214; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm9, 64(%rsi)3215; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm8, (%rsi)3216; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm11, 64(%rdx)3217; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm10, (%rdx)3218; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm13, 64(%rcx)3219; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm12, (%rcx)3220; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm4, 64(%r8)3221; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, (%r8)3222; AVX512DQ-FCP-NEXT:    vzeroupper3223; AVX512DQ-FCP-NEXT:    retq3224;3225; AVX512BW-LABEL: load_i32_stride4_vf32:3226; AVX512BW:       # %bb.0:3227; AVX512BW-NEXT:    vmovdqa64 (%rdi), %zmm03228; AVX512BW-NEXT:    vmovdqa64 64(%rdi), %zmm13229; AVX512BW-NEXT:    vmovdqa64 128(%rdi), %zmm23230; AVX512BW-NEXT:    vmovdqa64 192(%rdi), %zmm33231; AVX512BW-NEXT:    vmovdqa64 320(%rdi), %zmm43232; AVX512BW-NEXT:    vmovdqa64 256(%rdi), %zmm53233; AVX512BW-NEXT:    vmovdqa64 448(%rdi), %zmm63234; AVX512BW-NEXT:    vmovdqa64 384(%rdi), %zmm73235; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm8 = [0,4,8,12,16,20,24,28,0,4,8,12,16,20,24,28]3236; AVX512BW-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3]3237; AVX512BW-NEXT:    vmovdqa64 %zmm7, %zmm93238; AVX512BW-NEXT:    vpermt2d %zmm6, %zmm8, %zmm93239; AVX512BW-NEXT:    vmovdqa64 %zmm5, %zmm103240; AVX512BW-NEXT:    vpermt2d %zmm4, %zmm8, %zmm103241; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm9 = zmm10[0,1,2,3],zmm9[4,5,6,7]3242; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm103243; AVX512BW-NEXT:    vpermt2d %zmm3, %zmm8, %zmm103244; AVX512BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm83245; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm8 = zmm8[0,1,2,3],zmm10[4,5,6,7]3246; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm10 = [1,5,9,13,17,21,25,29,1,5,9,13,17,21,25,29]3247; AVX512BW-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3]3248; AVX512BW-NEXT:    vmovdqa64 %zmm7, %zmm113249; AVX512BW-NEXT:    vpermt2d %zmm6, %zmm10, %zmm113250; AVX512BW-NEXT:    vmovdqa64 %zmm5, %zmm123251; AVX512BW-NEXT:    vpermt2d %zmm4, %zmm10, %zmm123252; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm11 = zmm12[0,1,2,3],zmm11[4,5,6,7]3253; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm123254; AVX512BW-NEXT:    vpermt2d %zmm3, %zmm10, %zmm123255; AVX512BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm103256; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm10 = zmm10[0,1,2,3],zmm12[4,5,6,7]3257; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm12 = [2,6,10,14,18,22,26,30,2,6,10,14,18,22,26,30]3258; AVX512BW-NEXT:    # zmm12 = mem[0,1,2,3,0,1,2,3]3259; AVX512BW-NEXT:    vmovdqa64 %zmm7, %zmm133260; AVX512BW-NEXT:    vpermt2d %zmm6, %zmm12, %zmm133261; AVX512BW-NEXT:    vmovdqa64 %zmm5, %zmm143262; AVX512BW-NEXT:    vpermt2d %zmm4, %zmm12, %zmm143263; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm13 = zmm14[0,1,2,3],zmm13[4,5,6,7]3264; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm143265; AVX512BW-NEXT:    vpermt2d %zmm3, %zmm12, %zmm143266; AVX512BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm123267; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm12 = zmm12[0,1,2,3],zmm14[4,5,6,7]3268; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm14 = [3,7,11,15,19,23,27,31,3,7,11,15,19,23,27,31]3269; AVX512BW-NEXT:    # zmm14 = mem[0,1,2,3,0,1,2,3]3270; AVX512BW-NEXT:    vpermt2d %zmm6, %zmm14, %zmm73271; AVX512BW-NEXT:    vpermt2d %zmm4, %zmm14, %zmm53272; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm4 = zmm5[0,1,2,3],zmm7[4,5,6,7]3273; AVX512BW-NEXT:    vpermt2d %zmm3, %zmm14, %zmm23274; AVX512BW-NEXT:    vpermt2d %zmm1, %zmm14, %zmm03275; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm0 = zmm0[0,1,2,3],zmm2[4,5,6,7]3276; AVX512BW-NEXT:    vmovdqa64 %zmm9, 64(%rsi)3277; AVX512BW-NEXT:    vmovdqa64 %zmm8, (%rsi)3278; AVX512BW-NEXT:    vmovdqa64 %zmm11, 64(%rdx)3279; AVX512BW-NEXT:    vmovdqa64 %zmm10, (%rdx)3280; AVX512BW-NEXT:    vmovdqa64 %zmm13, 64(%rcx)3281; AVX512BW-NEXT:    vmovdqa64 %zmm12, (%rcx)3282; AVX512BW-NEXT:    vmovdqa64 %zmm4, 64(%r8)3283; AVX512BW-NEXT:    vmovdqa64 %zmm0, (%r8)3284; AVX512BW-NEXT:    vzeroupper3285; AVX512BW-NEXT:    retq3286;3287; AVX512BW-FCP-LABEL: load_i32_stride4_vf32:3288; AVX512BW-FCP:       # %bb.0:3289; AVX512BW-FCP-NEXT:    vmovdqa64 (%rdi), %zmm03290; AVX512BW-FCP-NEXT:    vmovdqa64 64(%rdi), %zmm13291; AVX512BW-FCP-NEXT:    vmovdqa64 128(%rdi), %zmm23292; AVX512BW-FCP-NEXT:    vmovdqa64 192(%rdi), %zmm33293; AVX512BW-FCP-NEXT:    vmovdqa64 320(%rdi), %zmm43294; AVX512BW-FCP-NEXT:    vmovdqa64 256(%rdi), %zmm53295; AVX512BW-FCP-NEXT:    vmovdqa64 448(%rdi), %zmm63296; AVX512BW-FCP-NEXT:    vmovdqa64 384(%rdi), %zmm73297; AVX512BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm8 = [0,4,8,12,16,20,24,28,0,4,8,12,16,20,24,28]3298; AVX512BW-FCP-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3]3299; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm7, %zmm93300; AVX512BW-FCP-NEXT:    vpermt2d %zmm6, %zmm8, %zmm93301; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm103302; AVX512BW-FCP-NEXT:    vpermt2d %zmm4, %zmm8, %zmm103303; AVX512BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm9 = zmm10[0,1,2,3],zmm9[4,5,6,7]3304; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm103305; AVX512BW-FCP-NEXT:    vpermt2d %zmm3, %zmm8, %zmm103306; AVX512BW-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm83307; AVX512BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm8 = zmm8[0,1,2,3],zmm10[4,5,6,7]3308; AVX512BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm10 = [1,5,9,13,17,21,25,29,1,5,9,13,17,21,25,29]3309; AVX512BW-FCP-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3]3310; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm7, %zmm113311; AVX512BW-FCP-NEXT:    vpermt2d %zmm6, %zmm10, %zmm113312; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm123313; AVX512BW-FCP-NEXT:    vpermt2d %zmm4, %zmm10, %zmm123314; AVX512BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm11 = zmm12[0,1,2,3],zmm11[4,5,6,7]3315; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm123316; AVX512BW-FCP-NEXT:    vpermt2d %zmm3, %zmm10, %zmm123317; AVX512BW-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm103318; AVX512BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm10 = zmm10[0,1,2,3],zmm12[4,5,6,7]3319; AVX512BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm12 = [2,6,10,14,18,22,26,30,2,6,10,14,18,22,26,30]3320; AVX512BW-FCP-NEXT:    # zmm12 = mem[0,1,2,3,0,1,2,3]3321; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm7, %zmm133322; AVX512BW-FCP-NEXT:    vpermt2d %zmm6, %zmm12, %zmm133323; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm143324; AVX512BW-FCP-NEXT:    vpermt2d %zmm4, %zmm12, %zmm143325; AVX512BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm13 = zmm14[0,1,2,3],zmm13[4,5,6,7]3326; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm143327; AVX512BW-FCP-NEXT:    vpermt2d %zmm3, %zmm12, %zmm143328; AVX512BW-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm123329; AVX512BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm12 = zmm12[0,1,2,3],zmm14[4,5,6,7]3330; AVX512BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm14 = [3,7,11,15,19,23,27,31,3,7,11,15,19,23,27,31]3331; AVX512BW-FCP-NEXT:    # zmm14 = mem[0,1,2,3,0,1,2,3]3332; AVX512BW-FCP-NEXT:    vpermt2d %zmm6, %zmm14, %zmm73333; AVX512BW-FCP-NEXT:    vpermt2d %zmm4, %zmm14, %zmm53334; AVX512BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm4 = zmm5[0,1,2,3],zmm7[4,5,6,7]3335; AVX512BW-FCP-NEXT:    vpermt2d %zmm3, %zmm14, %zmm23336; AVX512BW-FCP-NEXT:    vpermt2d %zmm1, %zmm14, %zmm03337; AVX512BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm0 = zmm0[0,1,2,3],zmm2[4,5,6,7]3338; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm9, 64(%rsi)3339; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm8, (%rsi)3340; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm11, 64(%rdx)3341; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm10, (%rdx)3342; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm13, 64(%rcx)3343; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm12, (%rcx)3344; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm4, 64(%r8)3345; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, (%r8)3346; AVX512BW-FCP-NEXT:    vzeroupper3347; AVX512BW-FCP-NEXT:    retq3348;3349; AVX512DQ-BW-LABEL: load_i32_stride4_vf32:3350; AVX512DQ-BW:       # %bb.0:3351; AVX512DQ-BW-NEXT:    vmovdqa64 (%rdi), %zmm03352; AVX512DQ-BW-NEXT:    vmovdqa64 64(%rdi), %zmm13353; AVX512DQ-BW-NEXT:    vmovdqa64 128(%rdi), %zmm23354; AVX512DQ-BW-NEXT:    vmovdqa64 192(%rdi), %zmm33355; AVX512DQ-BW-NEXT:    vmovdqa64 320(%rdi), %zmm43356; AVX512DQ-BW-NEXT:    vmovdqa64 256(%rdi), %zmm53357; AVX512DQ-BW-NEXT:    vmovdqa64 448(%rdi), %zmm63358; AVX512DQ-BW-NEXT:    vmovdqa64 384(%rdi), %zmm73359; AVX512DQ-BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm8 = [0,4,8,12,16,20,24,28,0,4,8,12,16,20,24,28]3360; AVX512DQ-BW-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3]3361; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm7, %zmm93362; AVX512DQ-BW-NEXT:    vpermt2d %zmm6, %zmm8, %zmm93363; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm5, %zmm103364; AVX512DQ-BW-NEXT:    vpermt2d %zmm4, %zmm8, %zmm103365; AVX512DQ-BW-NEXT:    vshufi64x2 {{.*#+}} zmm9 = zmm10[0,1,2,3],zmm9[4,5,6,7]3366; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm2, %zmm103367; AVX512DQ-BW-NEXT:    vpermt2d %zmm3, %zmm8, %zmm103368; AVX512DQ-BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm83369; AVX512DQ-BW-NEXT:    vshufi64x2 {{.*#+}} zmm8 = zmm8[0,1,2,3],zmm10[4,5,6,7]3370; AVX512DQ-BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm10 = [1,5,9,13,17,21,25,29,1,5,9,13,17,21,25,29]3371; AVX512DQ-BW-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3]3372; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm7, %zmm113373; AVX512DQ-BW-NEXT:    vpermt2d %zmm6, %zmm10, %zmm113374; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm5, %zmm123375; AVX512DQ-BW-NEXT:    vpermt2d %zmm4, %zmm10, %zmm123376; AVX512DQ-BW-NEXT:    vshufi64x2 {{.*#+}} zmm11 = zmm12[0,1,2,3],zmm11[4,5,6,7]3377; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm2, %zmm123378; AVX512DQ-BW-NEXT:    vpermt2d %zmm3, %zmm10, %zmm123379; AVX512DQ-BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm103380; AVX512DQ-BW-NEXT:    vshufi64x2 {{.*#+}} zmm10 = zmm10[0,1,2,3],zmm12[4,5,6,7]3381; AVX512DQ-BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm12 = [2,6,10,14,18,22,26,30,2,6,10,14,18,22,26,30]3382; AVX512DQ-BW-NEXT:    # zmm12 = mem[0,1,2,3,0,1,2,3]3383; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm7, %zmm133384; AVX512DQ-BW-NEXT:    vpermt2d %zmm6, %zmm12, %zmm133385; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm5, %zmm143386; AVX512DQ-BW-NEXT:    vpermt2d %zmm4, %zmm12, %zmm143387; AVX512DQ-BW-NEXT:    vshufi64x2 {{.*#+}} zmm13 = zmm14[0,1,2,3],zmm13[4,5,6,7]3388; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm2, %zmm143389; AVX512DQ-BW-NEXT:    vpermt2d %zmm3, %zmm12, %zmm143390; AVX512DQ-BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm123391; AVX512DQ-BW-NEXT:    vshufi64x2 {{.*#+}} zmm12 = zmm12[0,1,2,3],zmm14[4,5,6,7]3392; AVX512DQ-BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm14 = [3,7,11,15,19,23,27,31,3,7,11,15,19,23,27,31]3393; AVX512DQ-BW-NEXT:    # zmm14 = mem[0,1,2,3,0,1,2,3]3394; AVX512DQ-BW-NEXT:    vpermt2d %zmm6, %zmm14, %zmm73395; AVX512DQ-BW-NEXT:    vpermt2d %zmm4, %zmm14, %zmm53396; AVX512DQ-BW-NEXT:    vshufi64x2 {{.*#+}} zmm4 = zmm5[0,1,2,3],zmm7[4,5,6,7]3397; AVX512DQ-BW-NEXT:    vpermt2d %zmm3, %zmm14, %zmm23398; AVX512DQ-BW-NEXT:    vpermt2d %zmm1, %zmm14, %zmm03399; AVX512DQ-BW-NEXT:    vshufi64x2 {{.*#+}} zmm0 = zmm0[0,1,2,3],zmm2[4,5,6,7]3400; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm9, 64(%rsi)3401; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm8, (%rsi)3402; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm11, 64(%rdx)3403; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm10, (%rdx)3404; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm13, 64(%rcx)3405; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm12, (%rcx)3406; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm4, 64(%r8)3407; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, (%r8)3408; AVX512DQ-BW-NEXT:    vzeroupper3409; AVX512DQ-BW-NEXT:    retq3410;3411; AVX512DQ-BW-FCP-LABEL: load_i32_stride4_vf32:3412; AVX512DQ-BW-FCP:       # %bb.0:3413; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%rdi), %zmm03414; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 64(%rdi), %zmm13415; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 128(%rdi), %zmm23416; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 192(%rdi), %zmm33417; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 320(%rdi), %zmm43418; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 256(%rdi), %zmm53419; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 448(%rdi), %zmm63420; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 384(%rdi), %zmm73421; AVX512DQ-BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm8 = [0,4,8,12,16,20,24,28,0,4,8,12,16,20,24,28]3422; AVX512DQ-BW-FCP-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3]3423; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm7, %zmm93424; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm6, %zmm8, %zmm93425; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm103426; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm4, %zmm8, %zmm103427; AVX512DQ-BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm9 = zmm10[0,1,2,3],zmm9[4,5,6,7]3428; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm103429; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm3, %zmm8, %zmm103430; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm83431; AVX512DQ-BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm8 = zmm8[0,1,2,3],zmm10[4,5,6,7]3432; AVX512DQ-BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm10 = [1,5,9,13,17,21,25,29,1,5,9,13,17,21,25,29]3433; AVX512DQ-BW-FCP-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3]3434; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm7, %zmm113435; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm6, %zmm10, %zmm113436; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm123437; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm4, %zmm10, %zmm123438; AVX512DQ-BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm11 = zmm12[0,1,2,3],zmm11[4,5,6,7]3439; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm123440; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm3, %zmm10, %zmm123441; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm103442; AVX512DQ-BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm10 = zmm10[0,1,2,3],zmm12[4,5,6,7]3443; AVX512DQ-BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm12 = [2,6,10,14,18,22,26,30,2,6,10,14,18,22,26,30]3444; AVX512DQ-BW-FCP-NEXT:    # zmm12 = mem[0,1,2,3,0,1,2,3]3445; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm7, %zmm133446; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm6, %zmm12, %zmm133447; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm143448; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm4, %zmm12, %zmm143449; AVX512DQ-BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm13 = zmm14[0,1,2,3],zmm13[4,5,6,7]3450; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm143451; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm3, %zmm12, %zmm143452; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm123453; AVX512DQ-BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm12 = zmm12[0,1,2,3],zmm14[4,5,6,7]3454; AVX512DQ-BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm14 = [3,7,11,15,19,23,27,31,3,7,11,15,19,23,27,31]3455; AVX512DQ-BW-FCP-NEXT:    # zmm14 = mem[0,1,2,3,0,1,2,3]3456; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm6, %zmm14, %zmm73457; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm4, %zmm14, %zmm53458; AVX512DQ-BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm4 = zmm5[0,1,2,3],zmm7[4,5,6,7]3459; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm3, %zmm14, %zmm23460; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm1, %zmm14, %zmm03461; AVX512DQ-BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm0 = zmm0[0,1,2,3],zmm2[4,5,6,7]3462; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm9, 64(%rsi)3463; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm8, (%rsi)3464; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm11, 64(%rdx)3465; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm10, (%rdx)3466; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm13, 64(%rcx)3467; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm12, (%rcx)3468; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm4, 64(%r8)3469; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, (%r8)3470; AVX512DQ-BW-FCP-NEXT:    vzeroupper3471; AVX512DQ-BW-FCP-NEXT:    retq3472  %wide.vec = load <128 x i32>, ptr %in.vec, align 643473  %strided.vec0 = shufflevector <128 x i32> %wide.vec, <128 x i32> poison, <32 x i32> <i32 0, i32 4, i32 8, i32 12, i32 16, i32 20, i32 24, i32 28, i32 32, i32 36, i32 40, i32 44, i32 48, i32 52, i32 56, i32 60, i32 64, i32 68, i32 72, i32 76, i32 80, i32 84, i32 88, i32 92, i32 96, i32 100, i32 104, i32 108, i32 112, i32 116, i32 120, i32 124>3474  %strided.vec1 = shufflevector <128 x i32> %wide.vec, <128 x i32> poison, <32 x i32> <i32 1, i32 5, i32 9, i32 13, i32 17, i32 21, i32 25, i32 29, i32 33, i32 37, i32 41, i32 45, i32 49, i32 53, i32 57, i32 61, i32 65, i32 69, i32 73, i32 77, i32 81, i32 85, i32 89, i32 93, i32 97, i32 101, i32 105, i32 109, i32 113, i32 117, i32 121, i32 125>3475  %strided.vec2 = shufflevector <128 x i32> %wide.vec, <128 x i32> poison, <32 x i32> <i32 2, i32 6, i32 10, i32 14, i32 18, i32 22, i32 26, i32 30, i32 34, i32 38, i32 42, i32 46, i32 50, i32 54, i32 58, i32 62, i32 66, i32 70, i32 74, i32 78, i32 82, i32 86, i32 90, i32 94, i32 98, i32 102, i32 106, i32 110, i32 114, i32 118, i32 122, i32 126>3476  %strided.vec3 = shufflevector <128 x i32> %wide.vec, <128 x i32> poison, <32 x i32> <i32 3, i32 7, i32 11, i32 15, i32 19, i32 23, i32 27, i32 31, i32 35, i32 39, i32 43, i32 47, i32 51, i32 55, i32 59, i32 63, i32 67, i32 71, i32 75, i32 79, i32 83, i32 87, i32 91, i32 95, i32 99, i32 103, i32 107, i32 111, i32 115, i32 119, i32 123, i32 127>3477  store <32 x i32> %strided.vec0, ptr %out.vec0, align 643478  store <32 x i32> %strided.vec1, ptr %out.vec1, align 643479  store <32 x i32> %strided.vec2, ptr %out.vec2, align 643480  store <32 x i32> %strided.vec3, ptr %out.vec3, align 643481  ret void3482}3483 3484define void @load_i32_stride4_vf64(ptr %in.vec, ptr %out.vec0, ptr %out.vec1, ptr %out.vec2, ptr %out.vec3) nounwind {3485; SSE-LABEL: load_i32_stride4_vf64:3486; SSE:       # %bb.0:3487; SSE-NEXT:    subq $1224, %rsp # imm = 0x4C83488; SSE-NEXT:    movaps 144(%rdi), %xmm143489; SSE-NEXT:    movaps 176(%rdi), %xmm113490; SSE-NEXT:    movaps %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3491; SSE-NEXT:    movaps 160(%rdi), %xmm53492; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3493; SSE-NEXT:    movaps 208(%rdi), %xmm33494; SSE-NEXT:    movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3495; SSE-NEXT:    movaps 192(%rdi), %xmm83496; SSE-NEXT:    movaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3497; SSE-NEXT:    movaps 240(%rdi), %xmm63498; SSE-NEXT:    movaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3499; SSE-NEXT:    movaps 224(%rdi), %xmm73500; SSE-NEXT:    movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3501; SSE-NEXT:    movaps 80(%rdi), %xmm103502; SSE-NEXT:    movaps %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3503; SSE-NEXT:    movaps 64(%rdi), %xmm43504; SSE-NEXT:    movaps 112(%rdi), %xmm23505; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3506; SSE-NEXT:    movaps 96(%rdi), %xmm03507; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3508; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1]3509; SSE-NEXT:    movaps %xmm4, %xmm23510; SSE-NEXT:    unpcklps {{.*#+}} xmm2 = xmm2[0],xmm10[0],xmm2[1],xmm10[1]3511; SSE-NEXT:    movaps %xmm2, %xmm13512; SSE-NEXT:    movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]3513; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3514; SSE-NEXT:    movaps %xmm7, %xmm13515; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm6[0],xmm1[1],xmm6[1]3516; SSE-NEXT:    movaps %xmm8, %xmm63517; SSE-NEXT:    unpcklps {{.*#+}} xmm6 = xmm6[0],xmm3[0],xmm6[1],xmm3[1]3518; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]3519; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3520; SSE-NEXT:    movaps %xmm6, %xmm03521; SSE-NEXT:    movlhps {{.*#+}} xmm0 = xmm0[0],xmm1[0]3522; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3523; SSE-NEXT:    unpckhpd {{.*#+}} xmm6 = xmm6[1],xmm1[1]3524; SSE-NEXT:    movaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3525; SSE-NEXT:    movaps %xmm5, %xmm03526; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm11[0],xmm0[1],xmm11[1]3527; SSE-NEXT:    movaps 128(%rdi), %xmm23528; SSE-NEXT:    movaps %xmm2, %xmm13529; SSE-NEXT:    movaps %xmm2, %xmm103530; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm14[0],xmm1[1],xmm14[1]3531; SSE-NEXT:    movaps %xmm1, %xmm23532; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]3533; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3534; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]3535; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3536; SSE-NEXT:    movaps 368(%rdi), %xmm123537; SSE-NEXT:    movaps 352(%rdi), %xmm03538; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3539; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm12[0],xmm0[1],xmm12[1]3540; SSE-NEXT:    movaps 336(%rdi), %xmm133541; SSE-NEXT:    movaps 320(%rdi), %xmm113542; SSE-NEXT:    movaps %xmm11, %xmm13543; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm13[0],xmm1[1],xmm13[1]3544; SSE-NEXT:    movaps %xmm1, %xmm23545; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]3546; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3547; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]3548; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3549; SSE-NEXT:    movaps 304(%rdi), %xmm23550; SSE-NEXT:    movaps %xmm2, (%rsp) # 16-byte Spill3551; SSE-NEXT:    movaps 288(%rdi), %xmm83552; SSE-NEXT:    movaps %xmm8, %xmm03553; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1]3554; SSE-NEXT:    movaps 272(%rdi), %xmm33555; SSE-NEXT:    movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3556; SSE-NEXT:    movaps 256(%rdi), %xmm23557; SSE-NEXT:    movaps %xmm2, %xmm13558; SSE-NEXT:    movaps %xmm2, %xmm93559; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm3[0],xmm1[1],xmm3[1]3560; SSE-NEXT:    movaps %xmm1, %xmm23561; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]3562; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3563; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]3564; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3565; SSE-NEXT:    movaps 496(%rdi), %xmm13566; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3567; SSE-NEXT:    movaps 480(%rdi), %xmm03568; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3569; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]3570; SSE-NEXT:    movaps 464(%rdi), %xmm23571; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3572; SSE-NEXT:    movaps 448(%rdi), %xmm13573; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3574; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]3575; SSE-NEXT:    movaps %xmm1, %xmm23576; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]3577; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3578; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]3579; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3580; SSE-NEXT:    movaps 432(%rdi), %xmm23581; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3582; SSE-NEXT:    movaps 416(%rdi), %xmm53583; SSE-NEXT:    movaps %xmm5, %xmm03584; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1]3585; SSE-NEXT:    movaps 400(%rdi), %xmm23586; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3587; SSE-NEXT:    movaps 384(%rdi), %xmm13588; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3589; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]3590; SSE-NEXT:    movaps %xmm1, %xmm23591; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]3592; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3593; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]3594; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3595; SSE-NEXT:    movaps 624(%rdi), %xmm23596; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3597; SSE-NEXT:    movaps 608(%rdi), %xmm73598; SSE-NEXT:    movaps %xmm7, %xmm03599; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1]3600; SSE-NEXT:    movaps 592(%rdi), %xmm23601; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3602; SSE-NEXT:    movaps 576(%rdi), %xmm13603; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3604; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]3605; SSE-NEXT:    movaps %xmm1, %xmm23606; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]3607; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3608; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]3609; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3610; SSE-NEXT:    movaps 560(%rdi), %xmm13611; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3612; SSE-NEXT:    movaps 544(%rdi), %xmm03613; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3614; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]3615; SSE-NEXT:    movaps 528(%rdi), %xmm23616; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3617; SSE-NEXT:    movaps 512(%rdi), %xmm13618; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3619; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]3620; SSE-NEXT:    movaps %xmm1, %xmm23621; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]3622; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3623; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]3624; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3625; SSE-NEXT:    movaps 752(%rdi), %xmm13626; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3627; SSE-NEXT:    movaps 736(%rdi), %xmm03628; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3629; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]3630; SSE-NEXT:    movaps 720(%rdi), %xmm23631; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3632; SSE-NEXT:    movaps 704(%rdi), %xmm13633; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3634; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]3635; SSE-NEXT:    movaps %xmm1, %xmm23636; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]3637; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3638; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]3639; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3640; SSE-NEXT:    movaps 688(%rdi), %xmm13641; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3642; SSE-NEXT:    movaps 672(%rdi), %xmm03643; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3644; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]3645; SSE-NEXT:    movaps 656(%rdi), %xmm33646; SSE-NEXT:    movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3647; SSE-NEXT:    movaps 640(%rdi), %xmm23648; SSE-NEXT:    movaps %xmm2, %xmm13649; SSE-NEXT:    movaps %xmm2, %xmm153650; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm3[0],xmm1[1],xmm3[1]3651; SSE-NEXT:    movaps %xmm1, %xmm23652; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]3653; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3654; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]3655; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3656; SSE-NEXT:    movaps 880(%rdi), %xmm13657; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3658; SSE-NEXT:    movaps 864(%rdi), %xmm03659; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3660; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]3661; SSE-NEXT:    movaps 848(%rdi), %xmm23662; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3663; SSE-NEXT:    movaps 832(%rdi), %xmm13664; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3665; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]3666; SSE-NEXT:    movaps %xmm1, %xmm23667; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]3668; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3669; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]3670; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3671; SSE-NEXT:    movaps 816(%rdi), %xmm13672; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3673; SSE-NEXT:    movaps 800(%rdi), %xmm03674; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3675; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]3676; SSE-NEXT:    movaps 784(%rdi), %xmm23677; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3678; SSE-NEXT:    movaps 768(%rdi), %xmm13679; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3680; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]3681; SSE-NEXT:    movaps %xmm1, %xmm23682; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]3683; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3684; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]3685; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3686; SSE-NEXT:    movaps 1008(%rdi), %xmm13687; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3688; SSE-NEXT:    movaps 992(%rdi), %xmm03689; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3690; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]3691; SSE-NEXT:    movaps 976(%rdi), %xmm33692; SSE-NEXT:    movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3693; SSE-NEXT:    movaps 960(%rdi), %xmm23694; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3695; SSE-NEXT:    unpcklps {{.*#+}} xmm2 = xmm2[0],xmm3[0],xmm2[1],xmm3[1]3696; SSE-NEXT:    movaps %xmm2, %xmm13697; SSE-NEXT:    movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]3698; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3699; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]3700; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3701; SSE-NEXT:    movaps 944(%rdi), %xmm03702; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3703; SSE-NEXT:    movaps 928(%rdi), %xmm13704; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3705; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]3706; SSE-NEXT:    movaps 912(%rdi), %xmm23707; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3708; SSE-NEXT:    movaps 896(%rdi), %xmm03709; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3710; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1]3711; SSE-NEXT:    movaps %xmm0, %xmm23712; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm1[0]3713; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3714; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm1[1]3715; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3716; SSE-NEXT:    movaps 32(%rdi), %xmm23717; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3718; SSE-NEXT:    movaps 48(%rdi), %xmm03719; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3720; SSE-NEXT:    unpcklps {{.*#+}} xmm2 = xmm2[0],xmm0[0],xmm2[1],xmm0[1]3721; SSE-NEXT:    movaps (%rdi), %xmm03722; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3723; SSE-NEXT:    movaps 16(%rdi), %xmm63724; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm6[0],xmm0[1],xmm6[1]3725; SSE-NEXT:    movaps %xmm0, %xmm13726; SSE-NEXT:    movlhps {{.*#+}} xmm1 = xmm1[0],xmm2[0]3727; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3728; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm2[1]3729; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3730; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload3731; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Folded Reload3732; SSE-NEXT:    # xmm3 = xmm3[2],mem[2],xmm3[3],mem[3]3733; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload3734; SSE-NEXT:    # xmm4 = xmm4[2],mem[2],xmm4[3],mem[3]3735; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload3736; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload3737; SSE-NEXT:    # xmm0 = xmm0[2],mem[2],xmm0[3],mem[3]3738; SSE-NEXT:    unpckhps {{.*#+}} xmm10 = xmm10[2],xmm14[2],xmm10[3],xmm14[3]3739; SSE-NEXT:    movaps %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3740; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload3741; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Folded Reload3742; SSE-NEXT:    # xmm14 = xmm14[2],mem[2],xmm14[3],mem[3]3743; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload3744; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload3745; SSE-NEXT:    # xmm2 = xmm2[2],mem[2],xmm2[3],mem[3]3746; SSE-NEXT:    unpckhps (%rsp), %xmm8 # 16-byte Folded Reload3747; SSE-NEXT:    # xmm8 = xmm8[2],mem[2],xmm8[3],mem[3]3748; SSE-NEXT:    movaps %xmm8, (%rsp) # 16-byte Spill3749; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Folded Reload3750; SSE-NEXT:    # xmm9 = xmm9[2],mem[2],xmm9[3],mem[3]3751; SSE-NEXT:    movaps %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3752; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload3753; SSE-NEXT:    unpckhps {{.*#+}} xmm1 = xmm1[2],xmm12[2],xmm1[3],xmm12[3]3754; SSE-NEXT:    unpckhps {{.*#+}} xmm11 = xmm11[2],xmm13[2],xmm11[3],xmm13[3]3755; SSE-NEXT:    movaps %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3756; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Folded Reload3757; SSE-NEXT:    # xmm5 = xmm5[2],mem[2],xmm5[3],mem[3]3758; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3759; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Reload3760; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Folded Reload3761; SSE-NEXT:    # xmm12 = xmm12[2],mem[2],xmm12[3],mem[3]3762; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload3763; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Folded Reload3764; SSE-NEXT:    # xmm13 = xmm13[2],mem[2],xmm13[3],mem[3]3765; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload3766; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Folded Reload3767; SSE-NEXT:    # xmm10 = xmm10[2],mem[2],xmm10[3],mem[3]3768; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Reload3769; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Folded Reload3770; SSE-NEXT:    # xmm11 = xmm11[2],mem[2],xmm11[3],mem[3]3771; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Reload3772; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Folded Reload3773; SSE-NEXT:    # xmm9 = xmm9[2],mem[2],xmm9[3],mem[3]3774; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Folded Reload3775; SSE-NEXT:    # xmm7 = xmm7[2],mem[2],xmm7[3],mem[3]3776; SSE-NEXT:    movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3777; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload3778; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Folded Reload3779; SSE-NEXT:    # xmm5 = xmm5[2],mem[2],xmm5[3],mem[3]3780; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload3781; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Folded Reload3782; SSE-NEXT:    # xmm7 = xmm7[2],mem[2],xmm7[3],mem[3]3783; SSE-NEXT:    movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3784; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Folded Reload3785; SSE-NEXT:    # xmm15 = xmm15[2],mem[2],xmm15[3],mem[3]3786; SSE-NEXT:    movaps %xmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3787; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload3788; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Folded Reload3789; SSE-NEXT:    # xmm8 = xmm8[2],mem[2],xmm8[3],mem[3]3790; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload3791; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Folded Reload3792; SSE-NEXT:    # xmm7 = xmm7[2],mem[2],xmm7[3],mem[3]3793; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload3794; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Folded Reload3795; SSE-NEXT:    # xmm15 = xmm15[2],mem[2],xmm15[3],mem[3]3796; SSE-NEXT:    movaps %xmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3797; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload3798; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Folded Reload3799; SSE-NEXT:    # xmm15 = xmm15[2],mem[2],xmm15[3],mem[3]3800; SSE-NEXT:    movaps %xmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3801; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload3802; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Folded Reload3803; SSE-NEXT:    # xmm15 = xmm15[2],mem[2],xmm15[3],mem[3]3804; SSE-NEXT:    movaps %xmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3805; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload3806; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Folded Reload3807; SSE-NEXT:    # xmm15 = xmm15[2],mem[2],xmm15[3],mem[3]3808; SSE-NEXT:    movaps %xmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3809; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload3810; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Folded Reload3811; SSE-NEXT:    # xmm15 = xmm15[2],mem[2],xmm15[3],mem[3]3812; SSE-NEXT:    movaps %xmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3813; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload3814; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Folded Reload3815; SSE-NEXT:    # xmm15 = xmm15[2],mem[2],xmm15[3],mem[3]3816; SSE-NEXT:    movaps %xmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3817; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload3818; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Folded Reload3819; SSE-NEXT:    # xmm15 = xmm15[2],mem[2],xmm15[3],mem[3]3820; SSE-NEXT:    movaps %xmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3821; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload3822; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Folded Reload3823; SSE-NEXT:    # xmm15 = xmm15[2],mem[2],xmm15[3],mem[3]3824; SSE-NEXT:    movaps %xmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3825; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload3826; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Folded Reload3827; SSE-NEXT:    # xmm15 = xmm15[2],mem[2],xmm15[3],mem[3]3828; SSE-NEXT:    movaps %xmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3829; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload3830; SSE-NEXT:    unpckhps {{.*#+}} xmm15 = xmm15[2],xmm6[2],xmm15[3],xmm6[3]3831; SSE-NEXT:    movaps %xmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3832; SSE-NEXT:    movaps %xmm4, %xmm63833; SSE-NEXT:    movlhps {{.*#+}} xmm6 = xmm6[0],xmm3[0]3834; SSE-NEXT:    movaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3835; SSE-NEXT:    unpckhpd {{.*#+}} xmm4 = xmm4[1],xmm3[1]3836; SSE-NEXT:    movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3837; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload3838; SSE-NEXT:    movaps %xmm3, %xmm43839; SSE-NEXT:    movlhps {{.*#+}} xmm4 = xmm4[0],xmm0[0]3840; SSE-NEXT:    movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3841; SSE-NEXT:    unpckhpd {{.*#+}} xmm3 = xmm3[1],xmm0[1]3842; SSE-NEXT:    movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3843; SSE-NEXT:    movaps %xmm2, %xmm33844; SSE-NEXT:    movlhps {{.*#+}} xmm3 = xmm3[0],xmm14[0]3845; SSE-NEXT:    movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3846; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm14[1]3847; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3848; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload3849; SSE-NEXT:    movaps %xmm0, %xmm33850; SSE-NEXT:    movaps (%rsp), %xmm2 # 16-byte Reload3851; SSE-NEXT:    movlhps {{.*#+}} xmm3 = xmm3[0],xmm2[0]3852; SSE-NEXT:    movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3853; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm2[1]3854; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3855; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload3856; SSE-NEXT:    movaps %xmm0, %xmm23857; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm1[0]3858; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3859; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm1[1]3860; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3861; SSE-NEXT:    movaps %xmm12, %xmm153862; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload3863; SSE-NEXT:    movlhps {{.*#+}} xmm15 = xmm15[0],xmm1[0]3864; SSE-NEXT:    unpckhpd {{.*#+}} xmm12 = xmm12[1],xmm1[1]3865; SSE-NEXT:    movaps %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3866; SSE-NEXT:    movaps %xmm10, %xmm03867; SSE-NEXT:    movlhps {{.*#+}} xmm10 = xmm10[0],xmm13[0]3868; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm13[1]3869; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3870; SSE-NEXT:    movaps %xmm9, %xmm63871; SSE-NEXT:    movlhps {{.*#+}} xmm6 = xmm6[0],xmm11[0]3872; SSE-NEXT:    unpckhpd {{.*#+}} xmm9 = xmm9[1],xmm11[1]3873; SSE-NEXT:    movaps %xmm9, %xmm113874; SSE-NEXT:    movaps %xmm5, %xmm03875; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload3876; SSE-NEXT:    movlhps {{.*#+}} xmm5 = xmm5[0],xmm1[0]3877; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm1[1]3878; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3879; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload3880; SSE-NEXT:    movaps %xmm0, %xmm43881; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload3882; SSE-NEXT:    movlhps {{.*#+}} xmm4 = xmm4[0],xmm1[0]3883; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm1[1]3884; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3885; SSE-NEXT:    movaps %xmm7, %xmm33886; SSE-NEXT:    movlhps {{.*#+}} xmm3 = xmm3[0],xmm8[0]3887; SSE-NEXT:    unpckhpd {{.*#+}} xmm7 = xmm7[1],xmm8[1]3888; SSE-NEXT:    movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3889; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload3890; SSE-NEXT:    movaps %xmm0, %xmm23891; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload3892; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm1[0]3893; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm1[1]3894; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3895; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload3896; SSE-NEXT:    movaps %xmm0, %xmm13897; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload3898; SSE-NEXT:    movlhps {{.*#+}} xmm1 = xmm1[0],xmm7[0]3899; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm7[1]3900; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3901; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload3902; SSE-NEXT:    movaps %xmm0, %xmm123903; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload3904; SSE-NEXT:    movlhps {{.*#+}} xmm12 = xmm12[0],xmm7[0]3905; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm7[1]3906; SSE-NEXT:    movaps %xmm0, %xmm73907; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload3908; SSE-NEXT:    movaps %xmm8, %xmm03909; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Reload3910; SSE-NEXT:    movlhps {{.*#+}} xmm0 = xmm0[0],xmm9[0]3911; SSE-NEXT:    unpckhpd {{.*#+}} xmm8 = xmm8[1],xmm9[1]3912; SSE-NEXT:    movaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3913; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload3914; SSE-NEXT:    movaps %xmm8, %xmm133915; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Reload3916; SSE-NEXT:    movlhps {{.*#+}} xmm13 = xmm13[0],xmm9[0]3917; SSE-NEXT:    unpckhpd {{.*#+}} xmm8 = xmm8[1],xmm9[1]3918; SSE-NEXT:    movaps %xmm8, %xmm93919; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload3920; SSE-NEXT:    movaps %xmm8, 224(%rsi)3921; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload3922; SSE-NEXT:    movaps %xmm8, 160(%rsi)3923; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload3924; SSE-NEXT:    movaps %xmm14, 96(%rsi)3925; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload3926; SSE-NEXT:    movaps %xmm14, 32(%rsi)3927; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload3928; SSE-NEXT:    movaps %xmm8, 240(%rsi)3929; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload3930; SSE-NEXT:    movaps %xmm8, 176(%rsi)3931; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload3932; SSE-NEXT:    movaps %xmm14, 112(%rsi)3933; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload3934; SSE-NEXT:    movaps %xmm14, 48(%rsi)3935; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload3936; SSE-NEXT:    movaps %xmm8, 192(%rsi)3937; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload3938; SSE-NEXT:    movaps %xmm14, 128(%rsi)3939; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload3940; SSE-NEXT:    movaps %xmm14, 64(%rsi)3941; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload3942; SSE-NEXT:    movaps %xmm8, (%rsi)3943; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload3944; SSE-NEXT:    movaps %xmm8, 208(%rsi)3945; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload3946; SSE-NEXT:    movaps %xmm14, 144(%rsi)3947; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload3948; SSE-NEXT:    movaps %xmm14, 80(%rsi)3949; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload3950; SSE-NEXT:    movaps %xmm14, 16(%rsi)3951; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload3952; SSE-NEXT:    movaps %xmm8, 224(%rdx)3953; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload3954; SSE-NEXT:    movaps %xmm8, 240(%rdx)3955; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload3956; SSE-NEXT:    movaps %xmm8, 192(%rdx)3957; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload3958; SSE-NEXT:    movaps %xmm8, 208(%rdx)3959; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload3960; SSE-NEXT:    movaps %xmm8, 160(%rdx)3961; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload3962; SSE-NEXT:    movaps %xmm14, 176(%rdx)3963; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload3964; SSE-NEXT:    movaps %xmm14, 128(%rdx)3965; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload3966; SSE-NEXT:    movaps %xmm14, 144(%rdx)3967; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload3968; SSE-NEXT:    movaps %xmm14, 96(%rdx)3969; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload3970; SSE-NEXT:    movaps %xmm14, 112(%rdx)3971; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload3972; SSE-NEXT:    movaps %xmm14, 64(%rdx)3973; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload3974; SSE-NEXT:    movaps %xmm14, 80(%rdx)3975; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload3976; SSE-NEXT:    movaps %xmm14, 32(%rdx)3977; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload3978; SSE-NEXT:    movaps %xmm14, 48(%rdx)3979; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload3980; SSE-NEXT:    movaps %xmm8, (%rdx)3981; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload3982; SSE-NEXT:    movaps %xmm14, 16(%rdx)3983; SSE-NEXT:    movaps %xmm0, 240(%rcx)3984; SSE-NEXT:    movaps %xmm12, 224(%rcx)3985; SSE-NEXT:    movaps %xmm1, 208(%rcx)3986; SSE-NEXT:    movaps %xmm2, 192(%rcx)3987; SSE-NEXT:    movaps %xmm3, 176(%rcx)3988; SSE-NEXT:    movaps %xmm4, 160(%rcx)3989; SSE-NEXT:    movaps %xmm5, 144(%rcx)3990; SSE-NEXT:    movaps %xmm6, 128(%rcx)3991; SSE-NEXT:    movaps %xmm10, 112(%rcx)3992; SSE-NEXT:    movaps %xmm15, 96(%rcx)3993; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload3994; SSE-NEXT:    movaps %xmm0, 80(%rcx)3995; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload3996; SSE-NEXT:    movaps %xmm0, 64(%rcx)3997; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload3998; SSE-NEXT:    movaps %xmm0, 48(%rcx)3999; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4000; SSE-NEXT:    movaps %xmm0, 32(%rcx)4001; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4002; SSE-NEXT:    movaps %xmm0, 16(%rcx)4003; SSE-NEXT:    movaps %xmm13, (%rcx)4004; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4005; SSE-NEXT:    movaps %xmm0, 240(%r8)4006; SSE-NEXT:    movaps %xmm7, 224(%r8)4007; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4008; SSE-NEXT:    movaps %xmm0, 208(%r8)4009; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4010; SSE-NEXT:    movaps %xmm0, 192(%r8)4011; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4012; SSE-NEXT:    movaps %xmm0, 176(%r8)4013; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4014; SSE-NEXT:    movaps %xmm0, 160(%r8)4015; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4016; SSE-NEXT:    movaps %xmm0, 144(%r8)4017; SSE-NEXT:    movaps %xmm11, 128(%r8)4018; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4019; SSE-NEXT:    movaps %xmm0, 112(%r8)4020; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4021; SSE-NEXT:    movaps %xmm0, 96(%r8)4022; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4023; SSE-NEXT:    movaps %xmm0, 80(%r8)4024; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4025; SSE-NEXT:    movaps %xmm0, 64(%r8)4026; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4027; SSE-NEXT:    movaps %xmm0, 48(%r8)4028; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4029; SSE-NEXT:    movaps %xmm0, 32(%r8)4030; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4031; SSE-NEXT:    movaps %xmm0, 16(%r8)4032; SSE-NEXT:    movaps %xmm9, (%r8)4033; SSE-NEXT:    addq $1224, %rsp # imm = 0x4C84034; SSE-NEXT:    retq4035;4036; AVX-LABEL: load_i32_stride4_vf64:4037; AVX:       # %bb.0:4038; AVX-NEXT:    subq $2184, %rsp # imm = 0x8884039; AVX-NEXT:    vmovaps 448(%rdi), %ymm34040; AVX-NEXT:    vmovaps 480(%rdi), %ymm44041; AVX-NEXT:    vmovaps 192(%rdi), %ymm144042; AVX-NEXT:    vmovaps 224(%rdi), %ymm94043; AVX-NEXT:    vperm2f128 {{.*#+}} ymm8 = ymm9[2,3,0,1]4044; AVX-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm9[0],ymm8[0],ymm9[2],ymm8[2]4045; AVX-NEXT:    vperm2f128 {{.*#+}} ymm7 = ymm14[2,3,0,1]4046; AVX-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm7[0],ymm14[0],ymm7[1],ymm14[1],ymm7[4],ymm14[4],ymm7[5],ymm14[5]4047; AVX-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4048; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,0],ymm1[4,5],ymm0[6,4]4049; AVX-NEXT:    vmovaps 160(%rdi), %xmm14050; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4051; AVX-NEXT:    vmovaps 176(%rdi), %xmm134052; AVX-NEXT:    vmovlhps {{.*#+}} xmm1 = xmm13[0],xmm1[0]4053; AVX-NEXT:    vmovaps 144(%rdi), %xmm24054; AVX-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4055; AVX-NEXT:    vmovaps 128(%rdi), %xmm124056; AVX-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm12[0],xmm2[0],xmm12[1],xmm2[1]4057; AVX-NEXT:    vshufps {{.*#+}} xmm1 = xmm2[0,1],xmm1[2,0]4058; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]4059; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4060; AVX-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm4[2,3,0,1]4061; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4062; AVX-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm4[0],ymm0[0],ymm4[2],ymm0[2]4063; AVX-NEXT:    vmovaps %ymm4, %ymm54064; AVX-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4065; AVX-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4066; AVX-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm3[2,3,0,1]4067; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4068; AVX-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm1[0],ymm3[0],ymm1[1],ymm3[1],ymm1[4],ymm3[4],ymm1[5],ymm3[5]4069; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,0],ymm1[4,5],ymm0[6,4]4070; AVX-NEXT:    vmovaps 416(%rdi), %xmm24071; AVX-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4072; AVX-NEXT:    vmovaps 432(%rdi), %xmm14073; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4074; AVX-NEXT:    vmovlhps {{.*#+}} xmm1 = xmm1[0],xmm2[0]4075; AVX-NEXT:    vmovaps 400(%rdi), %xmm24076; AVX-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4077; AVX-NEXT:    vmovaps 384(%rdi), %xmm64078; AVX-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm6[0],xmm2[0],xmm6[1],xmm2[1]4079; AVX-NEXT:    vmovaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4080; AVX-NEXT:    vshufps {{.*#+}} xmm1 = xmm2[0,1],xmm1[2,0]4081; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]4082; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4083; AVX-NEXT:    vmovaps 704(%rdi), %ymm24084; AVX-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4085; AVX-NEXT:    vmovaps 736(%rdi), %ymm14086; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4087; AVX-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm1[2,3,0,1]4088; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4089; AVX-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]4090; AVX-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm2[2,3,0,1]4091; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4092; AVX-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm1[0],ymm2[0],ymm1[1],ymm2[1],ymm1[4],ymm2[4],ymm1[5],ymm2[5]4093; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,0],ymm1[4,5],ymm0[6,4]4094; AVX-NEXT:    vmovaps 672(%rdi), %xmm24095; AVX-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4096; AVX-NEXT:    vmovaps 688(%rdi), %xmm14097; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4098; AVX-NEXT:    vmovlhps {{.*#+}} xmm1 = xmm1[0],xmm2[0]4099; AVX-NEXT:    vmovaps 656(%rdi), %xmm34100; AVX-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4101; AVX-NEXT:    vmovaps 640(%rdi), %xmm24102; AVX-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4103; AVX-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm2[0],xmm3[0],xmm2[1],xmm3[1]4104; AVX-NEXT:    vshufps {{.*#+}} xmm1 = xmm2[0,1],xmm1[2,0]4105; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]4106; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4107; AVX-NEXT:    vmovaps 960(%rdi), %ymm24108; AVX-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4109; AVX-NEXT:    vmovaps 992(%rdi), %ymm14110; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4111; AVX-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm1[2,3,0,1]4112; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4113; AVX-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]4114; AVX-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm2[2,3,0,1]4115; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4116; AVX-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm1[0],ymm2[0],ymm1[1],ymm2[1],ymm1[4],ymm2[4],ymm1[5],ymm2[5]4117; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,0],ymm1[4,5],ymm0[6,4]4118; AVX-NEXT:    vmovaps 928(%rdi), %xmm24119; AVX-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4120; AVX-NEXT:    vmovaps 944(%rdi), %xmm14121; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4122; AVX-NEXT:    vmovlhps {{.*#+}} xmm1 = xmm1[0],xmm2[0]4123; AVX-NEXT:    vmovaps 912(%rdi), %xmm34124; AVX-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4125; AVX-NEXT:    vmovaps 896(%rdi), %xmm24126; AVX-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4127; AVX-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm2[0],xmm3[0],xmm2[1],xmm3[1]4128; AVX-NEXT:    vshufps {{.*#+}} xmm1 = xmm2[0,1],xmm1[2,0]4129; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]4130; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4131; AVX-NEXT:    vmovaps 320(%rdi), %ymm24132; AVX-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4133; AVX-NEXT:    vmovaps 352(%rdi), %ymm14134; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4135; AVX-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm1[2,3,0,1]4136; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4137; AVX-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]4138; AVX-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm2[2,3,0,1]4139; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4140; AVX-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm1[0],ymm2[0],ymm1[1],ymm2[1],ymm1[4],ymm2[4],ymm1[5],ymm2[5]4141; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,0],ymm1[4,5],ymm0[6,4]4142; AVX-NEXT:    vmovaps 288(%rdi), %xmm24143; AVX-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4144; AVX-NEXT:    vmovaps 304(%rdi), %xmm14145; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4146; AVX-NEXT:    vmovlhps {{.*#+}} xmm1 = xmm1[0],xmm2[0]4147; AVX-NEXT:    vmovaps 272(%rdi), %xmm34148; AVX-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4149; AVX-NEXT:    vmovaps 256(%rdi), %xmm24150; AVX-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4151; AVX-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm2[0],xmm3[0],xmm2[1],xmm3[1]4152; AVX-NEXT:    vshufps {{.*#+}} xmm1 = xmm2[0,1],xmm1[2,0]4153; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]4154; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4155; AVX-NEXT:    vmovaps 576(%rdi), %ymm24156; AVX-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4157; AVX-NEXT:    vmovaps 608(%rdi), %ymm14158; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4159; AVX-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm1[2,3,0,1]4160; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4161; AVX-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]4162; AVX-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm2[2,3,0,1]4163; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4164; AVX-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm1[0],ymm2[0],ymm1[1],ymm2[1],ymm1[4],ymm2[4],ymm1[5],ymm2[5]4165; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,0],ymm1[4,5],ymm0[6,4]4166; AVX-NEXT:    vmovaps 544(%rdi), %xmm24167; AVX-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4168; AVX-NEXT:    vmovaps 560(%rdi), %xmm14169; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4170; AVX-NEXT:    vmovlhps {{.*#+}} xmm1 = xmm1[0],xmm2[0]4171; AVX-NEXT:    vmovaps 528(%rdi), %xmm34172; AVX-NEXT:    vmovaps %xmm3, (%rsp) # 16-byte Spill4173; AVX-NEXT:    vmovaps 512(%rdi), %xmm24174; AVX-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4175; AVX-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm2[0],xmm3[0],xmm2[1],xmm3[1]4176; AVX-NEXT:    vshufps {{.*#+}} xmm1 = xmm2[0,1],xmm1[2,0]4177; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]4178; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4179; AVX-NEXT:    vmovaps 832(%rdi), %ymm24180; AVX-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4181; AVX-NEXT:    vmovaps 864(%rdi), %ymm14182; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4183; AVX-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm1[2,3,0,1]4184; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4185; AVX-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]4186; AVX-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm2[2,3,0,1]4187; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4188; AVX-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm1[0],ymm2[0],ymm1[1],ymm2[1],ymm1[4],ymm2[4],ymm1[5],ymm2[5]4189; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,0],ymm1[4,5],ymm0[6,4]4190; AVX-NEXT:    vmovaps 800(%rdi), %xmm24191; AVX-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4192; AVX-NEXT:    vmovaps 816(%rdi), %xmm14193; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4194; AVX-NEXT:    vmovlhps {{.*#+}} xmm1 = xmm1[0],xmm2[0]4195; AVX-NEXT:    vmovaps 784(%rdi), %xmm24196; AVX-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4197; AVX-NEXT:    vmovaps 768(%rdi), %xmm34198; AVX-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4199; AVX-NEXT:    vunpcklps {{.*#+}} xmm10 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]4200; AVX-NEXT:    vshufps {{.*#+}} xmm1 = xmm10[0,1],xmm1[2,0]4201; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]4202; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4203; AVX-NEXT:    vmovaps 64(%rdi), %ymm04204; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4205; AVX-NEXT:    vmovaps 96(%rdi), %ymm14206; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4207; AVX-NEXT:    vperm2f128 {{.*#+}} ymm2 = ymm1[2,3,0,1]4208; AVX-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4209; AVX-NEXT:    vunpcklpd {{.*#+}} ymm10 = ymm1[0],ymm2[0],ymm1[2],ymm2[2]4210; AVX-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm0[2,3,0,1]4211; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4212; AVX-NEXT:    vunpcklps {{.*#+}} ymm11 = ymm1[0],ymm0[0],ymm1[1],ymm0[1],ymm1[4],ymm0[4],ymm1[5],ymm0[5]4213; AVX-NEXT:    vshufps {{.*#+}} ymm1 = ymm11[0,1],ymm10[2,0],ymm11[4,5],ymm10[6,4]4214; AVX-NEXT:    vmovaps (%rdi), %xmm24215; AVX-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4216; AVX-NEXT:    vmovaps 16(%rdi), %xmm34217; AVX-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4218; AVX-NEXT:    vmovaps 32(%rdi), %xmm44219; AVX-NEXT:    vmovaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4220; AVX-NEXT:    vmovaps 48(%rdi), %xmm04221; AVX-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4222; AVX-NEXT:    vmovlhps {{.*#+}} xmm0 = xmm0[0],xmm4[0]4223; AVX-NEXT:    vunpcklps {{.*#+}} xmm15 = xmm2[0],xmm3[0],xmm2[1],xmm3[1]4224; AVX-NEXT:    vshufps {{.*#+}} xmm0 = xmm15[0,1],xmm0[2,0]4225; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]4226; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4227; AVX-NEXT:    vmovaps %ymm8, %ymm104228; AVX-NEXT:    vmovups %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4229; AVX-NEXT:    vmovaps %ymm9, %ymm24230; AVX-NEXT:    vmovups %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4231; AVX-NEXT:    vunpcklps {{.*#+}} ymm0 = ymm8[0],ymm9[0],ymm8[1],ymm9[1],ymm8[4],ymm9[4],ymm8[5],ymm9[5]4232; AVX-NEXT:    vmovups %ymm14, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4233; AVX-NEXT:    vshufps {{.*#+}} ymm1 = ymm14[1,0],ymm7[1,0],ymm14[5,4],ymm7[5,4]4234; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[2,0],ymm0[2,3],ymm1[6,4],ymm0[6,7]4235; AVX-NEXT:    vmovaps %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4236; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload4237; AVX-NEXT:    vinsertps {{.*#+}} xmm1 = xmm12[1],xmm4[1],zero,zero4238; AVX-NEXT:    vmovaps %xmm13, %xmm74239; AVX-NEXT:    vmovaps %xmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4240; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload4241; AVX-NEXT:    vunpcklps {{.*#+}} xmm15 = xmm3[0],xmm13[0],xmm3[1],xmm13[1]4242; AVX-NEXT:    vmovsd {{.*#+}} xmm1 = xmm1[0],xmm15[1]4243; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]4244; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4245; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload4246; AVX-NEXT:    vunpcklps {{.*#+}} ymm0 = ymm8[0],ymm5[0],ymm8[1],ymm5[1],ymm8[4],ymm5[4],ymm8[5],ymm5[5]4247; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload4248; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload4249; AVX-NEXT:    vshufps {{.*#+}} ymm1 = ymm9[1,0],ymm5[1,0],ymm9[5,4],ymm5[5,4]4250; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[2,0],ymm0[2,3],ymm1[6,4],ymm0[6,7]4251; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload4252; AVX-NEXT:    vinsertps {{.*#+}} xmm1 = xmm6[1],xmm13[1],zero,zero4253; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Reload4254; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload4255; AVX-NEXT:    vunpcklps {{.*#+}} xmm15 = xmm6[0],xmm11[0],xmm6[1],xmm11[1]4256; AVX-NEXT:    vmovsd {{.*#+}} xmm1 = xmm1[0],xmm15[1]4257; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]4258; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4259; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload4260; AVX-NEXT:    vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload4261; AVX-NEXT:    # ymm0 = ymm0[0],mem[0],ymm0[1],mem[1],ymm0[4],mem[4],ymm0[5],mem[5]4262; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload4263; AVX-NEXT:    vshufps $17, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload4264; AVX-NEXT:    # ymm1 = ymm1[1,0],mem[1,0],ymm1[5,4],mem[5,4]4265; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[2,0],ymm0[2,3],ymm1[6,4],ymm0[6,7]4266; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload4267; AVX-NEXT:    vinsertps $12, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload4268; AVX-NEXT:    # xmm1 = mem[0],xmm1[1],zero,zero4269; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload4270; AVX-NEXT:    vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15, %xmm15 # 16-byte Folded Reload4271; AVX-NEXT:    # xmm15 = xmm15[0],mem[0],xmm15[1],mem[1]4272; AVX-NEXT:    vmovsd {{.*#+}} xmm1 = xmm1[0],xmm15[1]4273; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]4274; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4275; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload4276; AVX-NEXT:    vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload4277; AVX-NEXT:    # ymm0 = ymm0[0],mem[0],ymm0[1],mem[1],ymm0[4],mem[4],ymm0[5],mem[5]4278; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload4279; AVX-NEXT:    vshufps $17, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload4280; AVX-NEXT:    # ymm1 = ymm1[1,0],mem[1,0],ymm1[5,4],mem[5,4]4281; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[2,0],ymm0[2,3],ymm1[6,4],ymm0[6,7]4282; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload4283; AVX-NEXT:    vinsertps $12, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload4284; AVX-NEXT:    # xmm1 = mem[0],xmm1[1],zero,zero4285; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload4286; AVX-NEXT:    vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15, %xmm15 # 16-byte Folded Reload4287; AVX-NEXT:    # xmm15 = xmm15[0],mem[0],xmm15[1],mem[1]4288; AVX-NEXT:    vmovsd {{.*#+}} xmm1 = xmm1[0],xmm15[1]4289; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]4290; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4291; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload4292; AVX-NEXT:    vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload4293; AVX-NEXT:    # ymm0 = ymm0[0],mem[0],ymm0[1],mem[1],ymm0[4],mem[4],ymm0[5],mem[5]4294; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload4295; AVX-NEXT:    vshufps $17, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload4296; AVX-NEXT:    # ymm1 = ymm1[1,0],mem[1,0],ymm1[5,4],mem[5,4]4297; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[2,0],ymm0[2,3],ymm1[6,4],ymm0[6,7]4298; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload4299; AVX-NEXT:    vinsertps $12, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload4300; AVX-NEXT:    # xmm1 = mem[0],xmm1[1],zero,zero4301; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload4302; AVX-NEXT:    vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15, %xmm15 # 16-byte Folded Reload4303; AVX-NEXT:    # xmm15 = xmm15[0],mem[0],xmm15[1],mem[1]4304; AVX-NEXT:    vmovsd {{.*#+}} xmm1 = xmm1[0],xmm15[1]4305; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]4306; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4307; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload4308; AVX-NEXT:    vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload4309; AVX-NEXT:    # ymm0 = ymm0[0],mem[0],ymm0[1],mem[1],ymm0[4],mem[4],ymm0[5],mem[5]4310; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload4311; AVX-NEXT:    vshufps $17, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload4312; AVX-NEXT:    # ymm1 = ymm1[1,0],mem[1,0],ymm1[5,4],mem[5,4]4313; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[2,0],ymm0[2,3],ymm1[6,4],ymm0[6,7]4314; AVX-NEXT:    vmovaps (%rsp), %xmm1 # 16-byte Reload4315; AVX-NEXT:    vinsertps $12, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload4316; AVX-NEXT:    # xmm1 = mem[0],xmm1[1],zero,zero4317; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload4318; AVX-NEXT:    vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15, %xmm15 # 16-byte Folded Reload4319; AVX-NEXT:    # xmm15 = xmm15[0],mem[0],xmm15[1],mem[1]4320; AVX-NEXT:    vmovsd {{.*#+}} xmm1 = xmm1[0],xmm15[1]4321; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]4322; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4323; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload4324; AVX-NEXT:    vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload4325; AVX-NEXT:    # ymm0 = ymm0[0],mem[0],ymm0[1],mem[1],ymm0[4],mem[4],ymm0[5],mem[5]4326; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload4327; AVX-NEXT:    vshufps $17, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload4328; AVX-NEXT:    # ymm1 = ymm1[1,0],mem[1,0],ymm1[5,4],mem[5,4]4329; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[2,0],ymm0[2,3],ymm1[6,4],ymm0[6,7]4330; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload4331; AVX-NEXT:    vinsertps $12, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload4332; AVX-NEXT:    # xmm1 = mem[0],xmm1[1],zero,zero4333; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload4334; AVX-NEXT:    vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15, %xmm15 # 16-byte Folded Reload4335; AVX-NEXT:    # xmm15 = xmm15[0],mem[0],xmm15[1],mem[1]4336; AVX-NEXT:    vmovsd {{.*#+}} xmm1 = xmm1[0],xmm15[1]4337; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]4338; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4339; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload4340; AVX-NEXT:    vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload4341; AVX-NEXT:    # ymm0 = ymm0[0],mem[0],ymm0[1],mem[1],ymm0[4],mem[4],ymm0[5],mem[5]4342; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload4343; AVX-NEXT:    vshufps $17, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload4344; AVX-NEXT:    # ymm1 = ymm1[1,0],mem[1,0],ymm1[5,4],mem[5,4]4345; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[2,0],ymm0[2,3],ymm1[6,4],ymm0[6,7]4346; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload4347; AVX-NEXT:    vinsertps $12, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload4348; AVX-NEXT:    # xmm1 = mem[0],xmm1[1],zero,zero4349; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload4350; AVX-NEXT:    vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15, %xmm15 # 16-byte Folded Reload4351; AVX-NEXT:    # xmm15 = xmm15[0],mem[0],xmm15[1],mem[1]4352; AVX-NEXT:    vmovsd {{.*#+}} xmm1 = xmm1[0],xmm15[1]4353; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]4354; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4355; AVX-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm2[1],ymm10[1],ymm2[3],ymm10[3]4356; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload4357; AVX-NEXT:    vunpckhps {{.*#+}} ymm1 = ymm10[2],ymm14[2],ymm10[3],ymm14[3],ymm10[6],ymm14[6],ymm10[7],ymm14[7]4358; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,0],ymm1[4,5],ymm0[6,4]4359; AVX-NEXT:    vunpckhps {{.*#+}} xmm1 = xmm12[2],xmm4[2],xmm12[3],xmm4[3]4360; AVX-NEXT:    vinsertps {{.*#+}} xmm15 = zero,zero,xmm3[2],xmm7[2]4361; AVX-NEXT:    vmovsd {{.*#+}} xmm1 = xmm1[0],xmm15[1]4362; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]4363; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4364; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload4365; AVX-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm7[1],ymm8[1],ymm7[3],ymm8[3]4366; AVX-NEXT:    vunpckhps {{.*#+}} ymm1 = ymm5[2],ymm9[2],ymm5[3],ymm9[3],ymm5[6],ymm9[6],ymm5[7],ymm9[7]4367; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,0],ymm1[4,5],ymm0[6,4]4368; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload4369; AVX-NEXT:    vunpckhps {{.*#+}} xmm1 = xmm14[2],xmm13[2],xmm14[3],xmm13[3]4370; AVX-NEXT:    vinsertps {{.*#+}} xmm15 = zero,zero,xmm6[2],xmm11[2]4371; AVX-NEXT:    vmovsd {{.*#+}} xmm1 = xmm1[0],xmm15[1]4372; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]4373; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4374; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload4375; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload4376; AVX-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm4[1],ymm8[1],ymm4[3],ymm8[3]4377; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Reload4378; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload4379; AVX-NEXT:    vunpckhps {{.*#+}} ymm1 = ymm11[2],ymm5[2],ymm11[3],ymm5[3],ymm11[6],ymm5[6],ymm11[7],ymm5[7]4380; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,0],ymm1[4,5],ymm0[6,4]4381; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload4382; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Reload4383; AVX-NEXT:    vunpckhps {{.*#+}} xmm1 = xmm13[2],xmm12[2],xmm13[3],xmm12[3]4384; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload4385; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload4386; AVX-NEXT:    vinsertps {{.*#+}} xmm15 = zero,zero,xmm2[2],xmm3[2]4387; AVX-NEXT:    vmovsd {{.*#+}} xmm1 = xmm1[0],xmm15[1]4388; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]4389; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4390; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload4391; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload4392; AVX-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm6[1],ymm9[1],ymm6[3],ymm9[3]4393; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload4394; AVX-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload4395; AVX-NEXT:    # ymm1 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]4396; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,0],ymm1[4,5],ymm0[6,4]4397; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload4398; AVX-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload4399; AVX-NEXT:    # xmm1 = xmm1[2],mem[2],xmm1[3],mem[3]4400; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload4401; AVX-NEXT:    vinsertps $51, {{[-0-9]+}}(%r{{[sb]}}p), %xmm15, %xmm15 # 16-byte Folded Reload4402; AVX-NEXT:    # xmm15 = zero,zero,xmm15[2],mem[0]4403; AVX-NEXT:    vmovsd {{.*#+}} xmm1 = xmm1[0],xmm15[1]4404; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]4405; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4406; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload4407; AVX-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload4408; AVX-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]4409; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload4410; AVX-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload4411; AVX-NEXT:    # ymm1 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]4412; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,0],ymm1[4,5],ymm0[6,4]4413; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload4414; AVX-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload4415; AVX-NEXT:    # xmm1 = xmm1[2],mem[2],xmm1[3],mem[3]4416; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload4417; AVX-NEXT:    vinsertps $51, {{[-0-9]+}}(%r{{[sb]}}p), %xmm15, %xmm15 # 16-byte Folded Reload4418; AVX-NEXT:    # xmm15 = zero,zero,xmm15[2],mem[0]4419; AVX-NEXT:    vmovsd {{.*#+}} xmm1 = xmm1[0],xmm15[1]4420; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]4421; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4422; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload4423; AVX-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload4424; AVX-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]4425; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload4426; AVX-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload4427; AVX-NEXT:    # ymm1 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]4428; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,0],ymm1[4,5],ymm0[6,4]4429; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload4430; AVX-NEXT:    vunpckhps (%rsp), %xmm1, %xmm1 # 16-byte Folded Reload4431; AVX-NEXT:    # xmm1 = xmm1[2],mem[2],xmm1[3],mem[3]4432; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload4433; AVX-NEXT:    vinsertps $51, {{[-0-9]+}}(%r{{[sb]}}p), %xmm15, %xmm15 # 16-byte Folded Reload4434; AVX-NEXT:    # xmm15 = zero,zero,xmm15[2],mem[0]4435; AVX-NEXT:    vmovsd {{.*#+}} xmm1 = xmm1[0],xmm15[1]4436; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]4437; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4438; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload4439; AVX-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload4440; AVX-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]4441; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload4442; AVX-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload4443; AVX-NEXT:    # ymm1 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]4444; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,0],ymm1[4,5],ymm0[6,4]4445; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload4446; AVX-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload4447; AVX-NEXT:    # xmm1 = xmm1[2],mem[2],xmm1[3],mem[3]4448; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload4449; AVX-NEXT:    vinsertps $51, {{[-0-9]+}}(%r{{[sb]}}p), %xmm15, %xmm15 # 16-byte Folded Reload4450; AVX-NEXT:    # xmm15 = zero,zero,xmm15[2],mem[0]4451; AVX-NEXT:    vmovsd {{.*#+}} xmm1 = xmm1[0],xmm15[1]4452; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]4453; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4454; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload4455; AVX-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload4456; AVX-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]4457; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload4458; AVX-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload4459; AVX-NEXT:    # ymm1 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]4460; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,0],ymm1[4,5],ymm0[6,4]4461; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload4462; AVX-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload4463; AVX-NEXT:    # xmm1 = xmm1[2],mem[2],xmm1[3],mem[3]4464; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload4465; AVX-NEXT:    vinsertps $51, {{[-0-9]+}}(%r{{[sb]}}p), %xmm15, %xmm15 # 16-byte Folded Reload4466; AVX-NEXT:    # xmm15 = zero,zero,xmm15[2],mem[0]4467; AVX-NEXT:    vmovsd {{.*#+}} xmm1 = xmm1[0],xmm15[1]4468; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]4469; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4470; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload4471; AVX-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload4472; AVX-NEXT:    # ymm0 = ymm0[2],mem[2],ymm0[3],mem[3],ymm0[6],mem[6],ymm0[7],mem[7]4473; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload4474; AVX-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[3,0],ymm10[3,0],ymm1[7,4],ymm10[7,4]4475; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[2,0],ymm0[2,3],ymm1[6,4],ymm0[6,7]4476; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload4477; AVX-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload4478; AVX-NEXT:    # xmm1 = xmm1[2],mem[2],xmm1[3],mem[3]4479; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload4480; AVX-NEXT:    vshufps $51, {{[-0-9]+}}(%r{{[sb]}}p), %xmm10, %xmm15 # 16-byte Folded Reload4481; AVX-NEXT:    # xmm15 = xmm10[3,0],mem[3,0]4482; AVX-NEXT:    vshufps {{.*#+}} xmm1 = xmm15[2,0],xmm1[2,3]4483; AVX-NEXT:    vblendps {{.*#+}} ymm10 = ymm1[0,1,2,3],ymm0[4,5,6,7]4484; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload4485; AVX-NEXT:    vunpckhps {{.*#+}} ymm0 = ymm0[2],ymm7[2],ymm0[3],ymm7[3],ymm0[6],ymm7[6],ymm0[7],ymm7[7]4486; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload4487; AVX-NEXT:    vshufps $51, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload4488; AVX-NEXT:    # ymm1 = ymm1[3,0],mem[3,0],ymm1[7,4],mem[7,4]4489; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[2,0],ymm0[2,3],ymm1[6,4],ymm0[6,7]4490; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload4491; AVX-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload4492; AVX-NEXT:    # xmm1 = xmm1[2],mem[2],xmm1[3],mem[3]4493; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload4494; AVX-NEXT:    vshufps {{.*#+}} xmm15 = xmm7[3,0],xmm14[3,0]4495; AVX-NEXT:    vshufps {{.*#+}} xmm1 = xmm15[2,0],xmm1[2,3]4496; AVX-NEXT:    vblendps {{.*#+}} ymm15 = ymm1[0,1,2,3],ymm0[4,5,6,7]4497; AVX-NEXT:    vunpckhps {{.*#+}} ymm0 = ymm8[2],ymm4[2],ymm8[3],ymm4[3],ymm8[6],ymm4[6],ymm8[7],ymm4[7]4498; AVX-NEXT:    vshufps {{.*#+}} ymm1 = ymm5[3,0],ymm11[3,0],ymm5[7,4],ymm11[7,4]4499; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[2,0],ymm0[2,3],ymm1[6,4],ymm0[6,7]4500; AVX-NEXT:    vunpckhps {{.*#+}} xmm1 = xmm2[2],xmm3[2],xmm2[3],xmm3[3]4501; AVX-NEXT:    vshufps {{.*#+}} xmm14 = xmm12[3,0],xmm13[3,0]4502; AVX-NEXT:    vshufps {{.*#+}} xmm1 = xmm14[2,0],xmm1[2,3]4503; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]4504; AVX-NEXT:    vunpckhps {{.*#+}} ymm1 = ymm9[2],ymm6[2],ymm9[3],ymm6[3],ymm9[6],ymm6[6],ymm9[7],ymm6[7]4505; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload4506; AVX-NEXT:    vshufps $51, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm12 # 32-byte Folded Reload4507; AVX-NEXT:    # ymm12 = ymm2[3,0],mem[3,0],ymm2[7,4],mem[7,4]4508; AVX-NEXT:    vshufps {{.*#+}} ymm1 = ymm12[2,0],ymm1[2,3],ymm12[6,4],ymm1[6,7]4509; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload4510; AVX-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm12 # 16-byte Folded Reload4511; AVX-NEXT:    # xmm12 = xmm2[2],mem[2],xmm2[3],mem[3]4512; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload4513; AVX-NEXT:    vshufps $51, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm13 # 16-byte Folded Reload4514; AVX-NEXT:    # xmm13 = xmm2[3,0],mem[3,0]4515; AVX-NEXT:    vshufps {{.*#+}} xmm12 = xmm13[2,0],xmm12[2,3]4516; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]4517; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload4518; AVX-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm6 # 32-byte Folded Reload4519; AVX-NEXT:    # ymm6 = ymm2[2],mem[2],ymm2[3],mem[3],ymm2[6],mem[6],ymm2[7],mem[7]4520; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload4521; AVX-NEXT:    vshufps $51, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm9 # 32-byte Folded Reload4522; AVX-NEXT:    # ymm9 = ymm2[3,0],mem[3,0],ymm2[7,4],mem[7,4]4523; AVX-NEXT:    vshufps {{.*#+}} ymm6 = ymm9[2,0],ymm6[2,3],ymm9[6,4],ymm6[6,7]4524; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload4525; AVX-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm9 # 16-byte Folded Reload4526; AVX-NEXT:    # xmm9 = xmm2[2],mem[2],xmm2[3],mem[3]4527; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload4528; AVX-NEXT:    vshufps $51, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm12 # 16-byte Folded Reload4529; AVX-NEXT:    # xmm12 = xmm2[3,0],mem[3,0]4530; AVX-NEXT:    vshufps {{.*#+}} xmm9 = xmm12[2,0],xmm9[2,3]4531; AVX-NEXT:    vblendps {{.*#+}} ymm6 = ymm9[0,1,2,3],ymm6[4,5,6,7]4532; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload4533; AVX-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm4 # 32-byte Folded Reload4534; AVX-NEXT:    # ymm4 = ymm2[2],mem[2],ymm2[3],mem[3],ymm2[6],mem[6],ymm2[7],mem[7]4535; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload4536; AVX-NEXT:    vshufps $51, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm8 # 32-byte Folded Reload4537; AVX-NEXT:    # ymm8 = ymm2[3,0],mem[3,0],ymm2[7,4],mem[7,4]4538; AVX-NEXT:    vshufps {{.*#+}} ymm4 = ymm8[2,0],ymm4[2,3],ymm8[6,4],ymm4[6,7]4539; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload4540; AVX-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm8 # 16-byte Folded Reload4541; AVX-NEXT:    # xmm8 = xmm2[2],mem[2],xmm2[3],mem[3]4542; AVX-NEXT:    vmovaps (%rsp), %xmm2 # 16-byte Reload4543; AVX-NEXT:    vshufps $51, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm9 # 16-byte Folded Reload4544; AVX-NEXT:    # xmm9 = xmm2[3,0],mem[3,0]4545; AVX-NEXT:    vshufps {{.*#+}} xmm8 = xmm9[2,0],xmm8[2,3]4546; AVX-NEXT:    vblendps {{.*#+}} ymm4 = ymm8[0,1,2,3],ymm4[4,5,6,7]4547; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload4548; AVX-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload4549; AVX-NEXT:    # ymm2 = ymm2[2],mem[2],ymm2[3],mem[3],ymm2[6],mem[6],ymm2[7],mem[7]4550; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload4551; AVX-NEXT:    vshufps $51, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm7 # 32-byte Folded Reload4552; AVX-NEXT:    # ymm7 = ymm3[3,0],mem[3,0],ymm3[7,4],mem[7,4]4553; AVX-NEXT:    vshufps {{.*#+}} ymm2 = ymm7[2,0],ymm2[2,3],ymm7[6,4],ymm2[6,7]4554; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload4555; AVX-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3, %xmm7 # 16-byte Folded Reload4556; AVX-NEXT:    # xmm7 = xmm3[2],mem[2],xmm3[3],mem[3]4557; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload4558; AVX-NEXT:    vshufps $51, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3, %xmm8 # 16-byte Folded Reload4559; AVX-NEXT:    # xmm8 = xmm3[3,0],mem[3,0]4560; AVX-NEXT:    vshufps {{.*#+}} xmm7 = xmm8[2,0],xmm7[2,3]4561; AVX-NEXT:    vblendps {{.*#+}} ymm2 = ymm7[0,1,2,3],ymm2[4,5,6,7]4562; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload4563; AVX-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm3 # 32-byte Folded Reload4564; AVX-NEXT:    # ymm3 = ymm3[2],mem[2],ymm3[3],mem[3],ymm3[6],mem[6],ymm3[7],mem[7]4565; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload4566; AVX-NEXT:    vshufps $51, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5, %ymm5 # 32-byte Folded Reload4567; AVX-NEXT:    # ymm5 = ymm5[3,0],mem[3,0],ymm5[7,4],mem[7,4]4568; AVX-NEXT:    vshufps {{.*#+}} ymm3 = ymm5[2,0],ymm3[2,3],ymm5[6,4],ymm3[6,7]4569; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload4570; AVX-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5, %xmm5 # 16-byte Folded Reload4571; AVX-NEXT:    # xmm5 = xmm5[2],mem[2],xmm5[3],mem[3]4572; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload4573; AVX-NEXT:    vshufps $51, {{[-0-9]+}}(%r{{[sb]}}p), %xmm7, %xmm7 # 16-byte Folded Reload4574; AVX-NEXT:    # xmm7 = xmm7[3,0],mem[3,0]4575; AVX-NEXT:    vshufps {{.*#+}} xmm5 = xmm7[2,0],xmm5[2,3]4576; AVX-NEXT:    vblendps {{.*#+}} ymm3 = ymm5[0,1,2,3],ymm3[4,5,6,7]4577; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload4578; AVX-NEXT:    vmovaps %ymm5, 192(%rsi)4579; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload4580; AVX-NEXT:    vmovaps %ymm5, 128(%rsi)4581; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload4582; AVX-NEXT:    vmovaps %ymm5, 64(%rsi)4583; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload4584; AVX-NEXT:    vmovaps %ymm5, (%rsi)4585; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload4586; AVX-NEXT:    vmovaps %ymm5, 224(%rsi)4587; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload4588; AVX-NEXT:    vmovaps %ymm5, 160(%rsi)4589; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload4590; AVX-NEXT:    vmovaps %ymm5, 96(%rsi)4591; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload4592; AVX-NEXT:    vmovaps %ymm5, 32(%rsi)4593; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload4594; AVX-NEXT:    vmovaps %ymm5, 192(%rdx)4595; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload4596; AVX-NEXT:    vmovaps %ymm5, 128(%rdx)4597; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload4598; AVX-NEXT:    vmovaps %ymm5, 64(%rdx)4599; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload4600; AVX-NEXT:    vmovaps %ymm5, (%rdx)4601; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload4602; AVX-NEXT:    vmovaps %ymm5, 224(%rdx)4603; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload4604; AVX-NEXT:    vmovaps %ymm5, 160(%rdx)4605; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload4606; AVX-NEXT:    vmovaps %ymm5, 96(%rdx)4607; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload4608; AVX-NEXT:    vmovaps %ymm5, 32(%rdx)4609; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload4610; AVX-NEXT:    vmovaps %ymm5, 192(%rcx)4611; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload4612; AVX-NEXT:    vmovaps %ymm5, 128(%rcx)4613; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload4614; AVX-NEXT:    vmovaps %ymm5, 64(%rcx)4615; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload4616; AVX-NEXT:    vmovaps %ymm5, (%rcx)4617; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload4618; AVX-NEXT:    vmovaps %ymm5, 224(%rcx)4619; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload4620; AVX-NEXT:    vmovaps %ymm5, 160(%rcx)4621; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload4622; AVX-NEXT:    vmovaps %ymm5, 96(%rcx)4623; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload4624; AVX-NEXT:    vmovaps %ymm5, 32(%rcx)4625; AVX-NEXT:    vmovaps %ymm2, 192(%r8)4626; AVX-NEXT:    vmovaps %ymm4, 128(%r8)4627; AVX-NEXT:    vmovaps %ymm6, 64(%r8)4628; AVX-NEXT:    vmovaps %ymm3, (%r8)4629; AVX-NEXT:    vmovaps %ymm1, 224(%r8)4630; AVX-NEXT:    vmovaps %ymm0, 160(%r8)4631; AVX-NEXT:    vmovaps %ymm15, 96(%r8)4632; AVX-NEXT:    vmovaps %ymm10, 32(%r8)4633; AVX-NEXT:    addq $2184, %rsp # imm = 0x8884634; AVX-NEXT:    vzeroupper4635; AVX-NEXT:    retq4636;4637; AVX2-LABEL: load_i32_stride4_vf64:4638; AVX2:       # %bb.0:4639; AVX2-NEXT:    subq $1944, %rsp # imm = 0x7984640; AVX2-NEXT:    vmovaps 704(%rdi), %ymm134641; AVX2-NEXT:    vmovaps 416(%rdi), %ymm84642; AVX2-NEXT:    vmovups %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4643; AVX2-NEXT:    vmovaps 448(%rdi), %ymm44644; AVX2-NEXT:    vmovaps 480(%rdi), %ymm154645; AVX2-NEXT:    vmovaps 160(%rdi), %ymm94646; AVX2-NEXT:    vmovups %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4647; AVX2-NEXT:    vmovaps 192(%rdi), %ymm104648; AVX2-NEXT:    vmovaps 224(%rdi), %ymm144649; AVX2-NEXT:    vbroadcastsd {{.*#+}} ymm2 = [0,4,0,4,0,4,0,4]4650; AVX2-NEXT:    vpermps %ymm14, %ymm2, %ymm04651; AVX2-NEXT:    vpermps %ymm10, %ymm2, %ymm14652; AVX2-NEXT:    vmovups %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4653; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]4654; AVX2-NEXT:    vmovaps 144(%rdi), %xmm34655; AVX2-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4656; AVX2-NEXT:    vmovaps 128(%rdi), %xmm14657; AVX2-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4658; AVX2-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm1[0],xmm3[0],xmm1[1],xmm3[1]4659; AVX2-NEXT:    vpermps %ymm9, %ymm2, %ymm34660; AVX2-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm3[2,3]4661; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]4662; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4663; AVX2-NEXT:    vpermps %ymm15, %ymm2, %ymm04664; AVX2-NEXT:    vpermps %ymm4, %ymm2, %ymm14665; AVX2-NEXT:    vmovaps %ymm4, %ymm94666; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]4667; AVX2-NEXT:    vmovaps 400(%rdi), %xmm34668; AVX2-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4669; AVX2-NEXT:    vmovaps 384(%rdi), %xmm14670; AVX2-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4671; AVX2-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm1[0],xmm3[0],xmm1[1],xmm3[1]4672; AVX2-NEXT:    vpermps %ymm8, %ymm2, %ymm34673; AVX2-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm3[2,3]4674; AVX2-NEXT:    vmovaps 736(%rdi), %ymm114675; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]4676; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4677; AVX2-NEXT:    vpermps %ymm11, %ymm2, %ymm04678; AVX2-NEXT:    vmovups %ymm11, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4679; AVX2-NEXT:    vpermps %ymm13, %ymm2, %ymm14680; AVX2-NEXT:    vmovups %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4681; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]4682; AVX2-NEXT:    vmovaps 672(%rdi), %ymm44683; AVX2-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4684; AVX2-NEXT:    vmovaps 656(%rdi), %xmm34685; AVX2-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4686; AVX2-NEXT:    vmovaps 640(%rdi), %xmm14687; AVX2-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4688; AVX2-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm1[0],xmm3[0],xmm1[1],xmm3[1]4689; AVX2-NEXT:    vpermps %ymm4, %ymm2, %ymm34690; AVX2-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm3[2,3]4691; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]4692; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4693; AVX2-NEXT:    vmovaps 960(%rdi), %ymm34694; AVX2-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4695; AVX2-NEXT:    vmovaps 992(%rdi), %ymm84696; AVX2-NEXT:    vpermps %ymm8, %ymm2, %ymm04697; AVX2-NEXT:    vpermps %ymm3, %ymm2, %ymm14698; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]4699; AVX2-NEXT:    vmovaps 928(%rdi), %ymm44700; AVX2-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4701; AVX2-NEXT:    vmovaps 912(%rdi), %xmm34702; AVX2-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4703; AVX2-NEXT:    vmovaps 896(%rdi), %xmm14704; AVX2-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4705; AVX2-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm1[0],xmm3[0],xmm1[1],xmm3[1]4706; AVX2-NEXT:    vpermps %ymm4, %ymm2, %ymm34707; AVX2-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm3[2,3]4708; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]4709; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4710; AVX2-NEXT:    vmovaps 320(%rdi), %ymm34711; AVX2-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4712; AVX2-NEXT:    vmovaps 352(%rdi), %ymm04713; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4714; AVX2-NEXT:    vpermps %ymm0, %ymm2, %ymm04715; AVX2-NEXT:    vpermps %ymm3, %ymm2, %ymm14716; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]4717; AVX2-NEXT:    vmovaps 288(%rdi), %ymm44718; AVX2-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4719; AVX2-NEXT:    vmovaps 272(%rdi), %xmm34720; AVX2-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4721; AVX2-NEXT:    vmovaps 256(%rdi), %xmm14722; AVX2-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4723; AVX2-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm1[0],xmm3[0],xmm1[1],xmm3[1]4724; AVX2-NEXT:    vpermps %ymm4, %ymm2, %ymm34725; AVX2-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm3[2,3]4726; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]4727; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4728; AVX2-NEXT:    vmovaps 576(%rdi), %ymm34729; AVX2-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4730; AVX2-NEXT:    vmovaps 608(%rdi), %ymm04731; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4732; AVX2-NEXT:    vpermps %ymm0, %ymm2, %ymm04733; AVX2-NEXT:    vpermps %ymm3, %ymm2, %ymm14734; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]4735; AVX2-NEXT:    vmovaps 544(%rdi), %ymm44736; AVX2-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4737; AVX2-NEXT:    vmovaps 528(%rdi), %xmm34738; AVX2-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4739; AVX2-NEXT:    vmovaps 512(%rdi), %xmm14740; AVX2-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4741; AVX2-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm1[0],xmm3[0],xmm1[1],xmm3[1]4742; AVX2-NEXT:    vpermps %ymm4, %ymm2, %ymm34743; AVX2-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm3[2,3]4744; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]4745; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4746; AVX2-NEXT:    vmovaps 832(%rdi), %ymm34747; AVX2-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4748; AVX2-NEXT:    vmovaps 864(%rdi), %ymm04749; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4750; AVX2-NEXT:    vpermps %ymm0, %ymm2, %ymm04751; AVX2-NEXT:    vpermps %ymm3, %ymm2, %ymm14752; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]4753; AVX2-NEXT:    vmovaps 800(%rdi), %ymm44754; AVX2-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4755; AVX2-NEXT:    vmovaps 784(%rdi), %xmm34756; AVX2-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4757; AVX2-NEXT:    vmovaps 768(%rdi), %xmm14758; AVX2-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4759; AVX2-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm1[0],xmm3[0],xmm1[1],xmm3[1]4760; AVX2-NEXT:    vpermps %ymm4, %ymm2, %ymm34761; AVX2-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm3[2,3]4762; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]4763; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4764; AVX2-NEXT:    vmovaps 64(%rdi), %ymm14765; AVX2-NEXT:    vmovaps 96(%rdi), %ymm74766; AVX2-NEXT:    vpermps %ymm7, %ymm2, %ymm04767; AVX2-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4768; AVX2-NEXT:    vpermps %ymm1, %ymm2, %ymm44769; AVX2-NEXT:    vmovaps %ymm1, %ymm34770; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4771; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm4[0,1,2,3,4,5],ymm0[6,7]4772; AVX2-NEXT:    vmovaps 32(%rdi), %ymm14773; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4774; AVX2-NEXT:    vpermps %ymm1, %ymm2, %ymm24775; AVX2-NEXT:    vmovaps (%rdi), %xmm14776; AVX2-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4777; AVX2-NEXT:    vmovaps 16(%rdi), %xmm44778; AVX2-NEXT:    vmovaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4779; AVX2-NEXT:    vunpcklps {{.*#+}} xmm4 = xmm1[0],xmm4[0],xmm1[1],xmm4[1]4780; AVX2-NEXT:    vblendps {{.*#+}} xmm2 = xmm4[0,1],xmm2[2,3]4781; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1,2,3],ymm0[4,5,6,7]4782; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4783; AVX2-NEXT:    vbroadcastsd {{.*#+}} ymm2 = [1,5,1,5,1,5,1,5]4784; AVX2-NEXT:    vpermps %ymm14, %ymm2, %ymm04785; AVX2-NEXT:    vpermps %ymm10, %ymm2, %ymm44786; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm4[0,1,2,3,4,5],ymm0[6,7]4787; AVX2-NEXT:    vmovaps 128(%rdi), %ymm14788; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4789; AVX2-NEXT:    vmovaps 176(%rdi), %xmm54790; AVX2-NEXT:    vmovaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4791; AVX2-NEXT:    vmovaps 160(%rdi), %xmm44792; AVX2-NEXT:    vmovaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4793; AVX2-NEXT:    vunpcklps {{.*#+}} xmm4 = xmm4[0],xmm5[0],xmm4[1],xmm5[1]4794; AVX2-NEXT:    vpermps %ymm1, %ymm2, %ymm54795; AVX2-NEXT:    vblendps {{.*#+}} xmm4 = xmm5[0,1],xmm4[2,3]4796; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm4[0,1,2,3],ymm0[4,5,6,7]4797; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4798; AVX2-NEXT:    vpermps %ymm15, %ymm2, %ymm04799; AVX2-NEXT:    vmovups %ymm15, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4800; AVX2-NEXT:    vpermps %ymm9, %ymm2, %ymm44801; AVX2-NEXT:    vmovaps %ymm9, %ymm104802; AVX2-NEXT:    vmovups %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4803; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm4[0,1,2,3,4,5],ymm0[6,7]4804; AVX2-NEXT:    vmovaps 384(%rdi), %ymm14805; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4806; AVX2-NEXT:    vmovaps 432(%rdi), %xmm54807; AVX2-NEXT:    vmovaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4808; AVX2-NEXT:    vmovaps 416(%rdi), %xmm44809; AVX2-NEXT:    vmovaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4810; AVX2-NEXT:    vunpcklps {{.*#+}} xmm4 = xmm4[0],xmm5[0],xmm4[1],xmm5[1]4811; AVX2-NEXT:    vpermps %ymm1, %ymm2, %ymm54812; AVX2-NEXT:    vblendps {{.*#+}} xmm4 = xmm5[0,1],xmm4[2,3]4813; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm4[0,1,2,3],ymm0[4,5,6,7]4814; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4815; AVX2-NEXT:    vpermps %ymm11, %ymm2, %ymm04816; AVX2-NEXT:    vpermps %ymm13, %ymm2, %ymm44817; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm4[0,1,2,3,4,5],ymm0[6,7]4818; AVX2-NEXT:    vmovaps 640(%rdi), %ymm14819; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4820; AVX2-NEXT:    vmovaps 688(%rdi), %xmm54821; AVX2-NEXT:    vmovaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4822; AVX2-NEXT:    vmovaps 672(%rdi), %xmm44823; AVX2-NEXT:    vmovaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4824; AVX2-NEXT:    vunpcklps {{.*#+}} xmm4 = xmm4[0],xmm5[0],xmm4[1],xmm5[1]4825; AVX2-NEXT:    vpermps %ymm1, %ymm2, %ymm54826; AVX2-NEXT:    vblendps {{.*#+}} xmm4 = xmm5[0,1],xmm4[2,3]4827; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm4[0,1,2,3],ymm0[4,5,6,7]4828; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4829; AVX2-NEXT:    vpermps %ymm8, %ymm2, %ymm04830; AVX2-NEXT:    vmovaps %ymm8, %ymm114831; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload4832; AVX2-NEXT:    vpermps %ymm8, %ymm2, %ymm44833; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm4[0,1,2,3,4,5],ymm0[6,7]4834; AVX2-NEXT:    vmovaps 896(%rdi), %ymm14835; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4836; AVX2-NEXT:    vmovaps 944(%rdi), %xmm54837; AVX2-NEXT:    vmovaps %xmm5, (%rsp) # 16-byte Spill4838; AVX2-NEXT:    vmovaps 928(%rdi), %xmm44839; AVX2-NEXT:    vmovaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4840; AVX2-NEXT:    vunpcklps {{.*#+}} xmm4 = xmm4[0],xmm5[0],xmm4[1],xmm5[1]4841; AVX2-NEXT:    vpermps %ymm1, %ymm2, %ymm54842; AVX2-NEXT:    vblendps {{.*#+}} xmm4 = xmm5[0,1],xmm4[2,3]4843; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm4[0,1,2,3],ymm0[4,5,6,7]4844; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4845; AVX2-NEXT:    vpermps %ymm7, %ymm2, %ymm04846; AVX2-NEXT:    vpermps %ymm3, %ymm2, %ymm44847; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm4[0,1,2,3,4,5],ymm0[6,7]4848; AVX2-NEXT:    vmovaps (%rdi), %ymm14849; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4850; AVX2-NEXT:    vmovaps 32(%rdi), %xmm34851; AVX2-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4852; AVX2-NEXT:    vmovaps 48(%rdi), %xmm44853; AVX2-NEXT:    vmovaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4854; AVX2-NEXT:    vunpcklps {{.*#+}} xmm4 = xmm3[0],xmm4[0],xmm3[1],xmm4[1]4855; AVX2-NEXT:    vpermps %ymm1, %ymm2, %ymm54856; AVX2-NEXT:    vblendps {{.*#+}} xmm4 = xmm5[0,1],xmm4[2,3]4857; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm4[0,1,2,3],ymm0[4,5,6,7]4858; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4859; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload4860; AVX2-NEXT:    vpermps %ymm6, %ymm2, %ymm04861; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload4862; AVX2-NEXT:    vpermps %ymm7, %ymm2, %ymm44863; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm4[0,1,2,3,4,5],ymm0[6,7]4864; AVX2-NEXT:    vmovaps 256(%rdi), %ymm14865; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4866; AVX2-NEXT:    vmovaps 304(%rdi), %xmm34867; AVX2-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4868; AVX2-NEXT:    vmovaps 288(%rdi), %xmm44869; AVX2-NEXT:    vmovaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4870; AVX2-NEXT:    vunpcklps {{.*#+}} xmm4 = xmm4[0],xmm3[0],xmm4[1],xmm3[1]4871; AVX2-NEXT:    vpermps %ymm1, %ymm2, %ymm54872; AVX2-NEXT:    vblendps {{.*#+}} xmm4 = xmm5[0,1],xmm4[2,3]4873; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm4[0,1,2,3],ymm0[4,5,6,7]4874; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4875; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm13 # 32-byte Reload4876; AVX2-NEXT:    vpermps %ymm13, %ymm2, %ymm04877; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm12 # 32-byte Reload4878; AVX2-NEXT:    vpermps %ymm12, %ymm2, %ymm44879; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm4[0,1,2,3,4,5],ymm0[6,7]4880; AVX2-NEXT:    vmovaps 512(%rdi), %ymm14881; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4882; AVX2-NEXT:    vmovaps 560(%rdi), %xmm34883; AVX2-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4884; AVX2-NEXT:    vmovaps 544(%rdi), %xmm44885; AVX2-NEXT:    vmovaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4886; AVX2-NEXT:    vunpcklps {{.*#+}} xmm4 = xmm4[0],xmm3[0],xmm4[1],xmm3[1]4887; AVX2-NEXT:    vpermps %ymm1, %ymm2, %ymm54888; AVX2-NEXT:    vblendps {{.*#+}} xmm4 = xmm5[0,1],xmm4[2,3]4889; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm4[0,1,2,3],ymm0[4,5,6,7]4890; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4891; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload4892; AVX2-NEXT:    vpermps %ymm3, %ymm2, %ymm04893; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload4894; AVX2-NEXT:    vpermps %ymm1, %ymm2, %ymm44895; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm4[0,1,2,3,4,5],ymm0[6,7]4896; AVX2-NEXT:    vmovaps 768(%rdi), %ymm44897; AVX2-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4898; AVX2-NEXT:    vpermps %ymm4, %ymm2, %ymm24899; AVX2-NEXT:    vmovaps 816(%rdi), %xmm54900; AVX2-NEXT:    vmovaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4901; AVX2-NEXT:    vmovaps 800(%rdi), %xmm44902; AVX2-NEXT:    vmovaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4903; AVX2-NEXT:    vunpcklps {{.*#+}} xmm4 = xmm4[0],xmm5[0],xmm4[1],xmm5[1]4904; AVX2-NEXT:    vblendps {{.*#+}} xmm2 = xmm2[0,1],xmm4[2,3]4905; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1,2,3],ymm0[4,5,6,7]4906; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4907; AVX2-NEXT:    vbroadcastsd {{.*#+}} ymm0 = [2,6,2,6,2,6,2,6]4908; AVX2-NEXT:    vpermps %ymm14, %ymm0, %ymm24909; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload4910; AVX2-NEXT:    vpermps %ymm5, %ymm0, %ymm44911; AVX2-NEXT:    vblendps {{.*#+}} ymm2 = ymm4[0,1,2,3,4,5],ymm2[6,7]4912; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload4913; AVX2-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4, %xmm4 # 16-byte Folded Reload4914; AVX2-NEXT:    # xmm4 = xmm4[2],mem[2],xmm4[3],mem[3]4915; AVX2-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm9 # 32-byte Folded Reload4916; AVX2-NEXT:    vblendps {{.*#+}} xmm4 = xmm4[0,1],xmm9[2,3]4917; AVX2-NEXT:    vblendps {{.*#+}} ymm2 = ymm4[0,1,2,3],ymm2[4,5,6,7]4918; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4919; AVX2-NEXT:    vpermps %ymm15, %ymm0, %ymm24920; AVX2-NEXT:    vpermps %ymm10, %ymm0, %ymm44921; AVX2-NEXT:    vblendps {{.*#+}} ymm2 = ymm4[0,1,2,3,4,5],ymm2[6,7]4922; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload4923; AVX2-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4, %xmm4 # 16-byte Folded Reload4924; AVX2-NEXT:    # xmm4 = xmm4[2],mem[2],xmm4[3],mem[3]4925; AVX2-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm9 # 32-byte Folded Reload4926; AVX2-NEXT:    vblendps {{.*#+}} xmm4 = xmm4[0,1],xmm9[2,3]4927; AVX2-NEXT:    vblendps {{.*#+}} ymm2 = ymm4[0,1,2,3],ymm2[4,5,6,7]4928; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4929; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Reload4930; AVX2-NEXT:    vpermps %ymm15, %ymm0, %ymm24931; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload4932; AVX2-NEXT:    vpermps %ymm10, %ymm0, %ymm44933; AVX2-NEXT:    vblendps {{.*#+}} ymm2 = ymm4[0,1,2,3,4,5],ymm2[6,7]4934; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload4935; AVX2-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4, %xmm4 # 16-byte Folded Reload4936; AVX2-NEXT:    # xmm4 = xmm4[2],mem[2],xmm4[3],mem[3]4937; AVX2-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm9 # 32-byte Folded Reload4938; AVX2-NEXT:    vblendps {{.*#+}} xmm4 = xmm4[0,1],xmm9[2,3]4939; AVX2-NEXT:    vblendps {{.*#+}} ymm2 = ymm4[0,1,2,3],ymm2[4,5,6,7]4940; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4941; AVX2-NEXT:    vpermps %ymm11, %ymm0, %ymm24942; AVX2-NEXT:    vpermps %ymm8, %ymm0, %ymm44943; AVX2-NEXT:    vblendps {{.*#+}} ymm2 = ymm4[0,1,2,3,4,5],ymm2[6,7]4944; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload4945; AVX2-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4, %xmm4 # 16-byte Folded Reload4946; AVX2-NEXT:    # xmm4 = xmm4[2],mem[2],xmm4[3],mem[3]4947; AVX2-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm9 # 32-byte Folded Reload4948; AVX2-NEXT:    vblendps {{.*#+}} xmm4 = xmm4[0,1],xmm9[2,3]4949; AVX2-NEXT:    vblendps {{.*#+}} ymm2 = ymm4[0,1,2,3],ymm2[4,5,6,7]4950; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4951; AVX2-NEXT:    vpermps %ymm6, %ymm0, %ymm24952; AVX2-NEXT:    vpermps %ymm7, %ymm0, %ymm44953; AVX2-NEXT:    vblendps {{.*#+}} ymm2 = ymm4[0,1,2,3,4,5],ymm2[6,7]4954; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload4955; AVX2-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4, %xmm4 # 16-byte Folded Reload4956; AVX2-NEXT:    # xmm4 = xmm4[2],mem[2],xmm4[3],mem[3]4957; AVX2-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm9 # 32-byte Folded Reload4958; AVX2-NEXT:    vblendps {{.*#+}} xmm4 = xmm4[0,1],xmm9[2,3]4959; AVX2-NEXT:    vblendps {{.*#+}} ymm2 = ymm4[0,1,2,3],ymm2[4,5,6,7]4960; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4961; AVX2-NEXT:    vpermps %ymm13, %ymm0, %ymm24962; AVX2-NEXT:    vpermps %ymm12, %ymm0, %ymm44963; AVX2-NEXT:    vblendps {{.*#+}} ymm2 = ymm4[0,1,2,3,4,5],ymm2[6,7]4964; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload4965; AVX2-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4, %xmm4 # 16-byte Folded Reload4966; AVX2-NEXT:    # xmm4 = xmm4[2],mem[2],xmm4[3],mem[3]4967; AVX2-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm9 # 32-byte Folded Reload4968; AVX2-NEXT:    vblendps {{.*#+}} xmm4 = xmm4[0,1],xmm9[2,3]4969; AVX2-NEXT:    vblendps {{.*#+}} ymm2 = ymm4[0,1,2,3],ymm2[4,5,6,7]4970; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4971; AVX2-NEXT:    vpermps %ymm3, %ymm0, %ymm24972; AVX2-NEXT:    vpermps %ymm1, %ymm0, %ymm44973; AVX2-NEXT:    vblendps {{.*#+}} ymm2 = ymm4[0,1,2,3,4,5],ymm2[6,7]4974; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload4975; AVX2-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm4 # 16-byte Folded Reload4976; AVX2-NEXT:    # xmm4 = xmm1[2],mem[2],xmm1[3],mem[3]4977; AVX2-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm9 # 32-byte Folded Reload4978; AVX2-NEXT:    vblendps {{.*#+}} xmm4 = xmm4[0,1],xmm9[2,3]4979; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm4[0,1,2,3],ymm2[4,5,6,7]4980; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4981; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload4982; AVX2-NEXT:    vpermps %ymm1, %ymm0, %ymm24983; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload4984; AVX2-NEXT:    vpermps %ymm3, %ymm0, %ymm44985; AVX2-NEXT:    vblendps {{.*#+}} ymm2 = ymm4[0,1,2,3,4,5],ymm2[6,7]4986; AVX2-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload4987; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload4988; AVX2-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4, %xmm4 # 16-byte Folded Reload4989; AVX2-NEXT:    # xmm4 = xmm4[2],mem[2],xmm4[3],mem[3]4990; AVX2-NEXT:    vblendps {{.*#+}} xmm0 = xmm4[0,1],xmm0[2,3]4991; AVX2-NEXT:    vblendps {{.*#+}} ymm9 = ymm0[0,1,2,3],ymm2[4,5,6,7]4992; AVX2-NEXT:    vbroadcastsd {{.*#+}} ymm0 = [3,7,3,7,3,7,3,7]4993; AVX2-NEXT:    vpermps %ymm14, %ymm0, %ymm24994; AVX2-NEXT:    vpermps %ymm5, %ymm0, %ymm44995; AVX2-NEXT:    vblendps {{.*#+}} ymm2 = ymm4[0,1,2,3,4,5],ymm2[6,7]4996; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload4997; AVX2-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4, %xmm4 # 16-byte Folded Reload4998; AVX2-NEXT:    # xmm4 = xmm4[2],mem[2],xmm4[3],mem[3]4999; AVX2-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm14 # 32-byte Folded Reload5000; AVX2-NEXT:    vblendps {{.*#+}} xmm4 = xmm14[0,1],xmm4[2,3]5001; AVX2-NEXT:    vblendps {{.*#+}} ymm2 = ymm4[0,1,2,3],ymm2[4,5,6,7]5002; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5003; AVX2-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm2 # 32-byte Folded Reload5004; AVX2-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm4 # 32-byte Folded Reload5005; AVX2-NEXT:    vblendps {{.*#+}} ymm2 = ymm4[0,1,2,3,4,5],ymm2[6,7]5006; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload5007; AVX2-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4, %xmm4 # 16-byte Folded Reload5008; AVX2-NEXT:    # xmm4 = xmm4[2],mem[2],xmm4[3],mem[3]5009; AVX2-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm14 # 32-byte Folded Reload5010; AVX2-NEXT:    vblendps {{.*#+}} xmm4 = xmm14[0,1],xmm4[2,3]5011; AVX2-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm2[4,5,6,7]5012; AVX2-NEXT:    vpermps %ymm15, %ymm0, %ymm25013; AVX2-NEXT:    vpermps %ymm10, %ymm0, %ymm145014; AVX2-NEXT:    vblendps {{.*#+}} ymm2 = ymm14[0,1,2,3,4,5],ymm2[6,7]5015; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload5016; AVX2-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5, %xmm14 # 16-byte Folded Reload5017; AVX2-NEXT:    # xmm14 = xmm5[2],mem[2],xmm5[3],mem[3]5018; AVX2-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm15 # 32-byte Folded Reload5019; AVX2-NEXT:    vblendps {{.*#+}} xmm14 = xmm15[0,1],xmm14[2,3]5020; AVX2-NEXT:    vblendps {{.*#+}} ymm2 = ymm14[0,1,2,3],ymm2[4,5,6,7]5021; AVX2-NEXT:    vpermps %ymm11, %ymm0, %ymm115022; AVX2-NEXT:    vpermps %ymm8, %ymm0, %ymm145023; AVX2-NEXT:    vblendps {{.*#+}} ymm11 = ymm14[0,1,2,3,4,5],ymm11[6,7]5024; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload5025; AVX2-NEXT:    vunpckhps (%rsp), %xmm5, %xmm14 # 16-byte Folded Reload5026; AVX2-NEXT:    # xmm14 = xmm5[2],mem[2],xmm5[3],mem[3]5027; AVX2-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm15 # 32-byte Folded Reload5028; AVX2-NEXT:    vblendps {{.*#+}} xmm14 = xmm15[0,1],xmm14[2,3]5029; AVX2-NEXT:    vblendps {{.*#+}} ymm11 = ymm14[0,1,2,3],ymm11[4,5,6,7]5030; AVX2-NEXT:    vpermps %ymm1, %ymm0, %ymm15031; AVX2-NEXT:    vpermps %ymm3, %ymm0, %ymm35032; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm3[0,1,2,3,4,5],ymm1[6,7]5033; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload5034; AVX2-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3, %xmm3 # 16-byte Folded Reload5035; AVX2-NEXT:    # xmm3 = xmm3[2],mem[2],xmm3[3],mem[3]5036; AVX2-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm14 # 32-byte Folded Reload5037; AVX2-NEXT:    vblendps {{.*#+}} xmm3 = xmm14[0,1],xmm3[2,3]5038; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm3[0,1,2,3],ymm1[4,5,6,7]5039; AVX2-NEXT:    vpermps %ymm6, %ymm0, %ymm35040; AVX2-NEXT:    vpermps %ymm7, %ymm0, %ymm145041; AVX2-NEXT:    vblendps {{.*#+}} ymm3 = ymm14[0,1,2,3,4,5],ymm3[6,7]5042; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload5043; AVX2-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5, %xmm14 # 16-byte Folded Reload5044; AVX2-NEXT:    # xmm14 = xmm5[2],mem[2],xmm5[3],mem[3]5045; AVX2-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm15 # 32-byte Folded Reload5046; AVX2-NEXT:    vblendps {{.*#+}} xmm14 = xmm15[0,1],xmm14[2,3]5047; AVX2-NEXT:    vblendps {{.*#+}} ymm3 = ymm14[0,1,2,3],ymm3[4,5,6,7]5048; AVX2-NEXT:    vpermps %ymm13, %ymm0, %ymm105049; AVX2-NEXT:    vpermps %ymm12, %ymm0, %ymm145050; AVX2-NEXT:    vblendps {{.*#+}} ymm10 = ymm14[0,1,2,3,4,5],ymm10[6,7]5051; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload5052; AVX2-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5, %xmm13 # 16-byte Folded Reload5053; AVX2-NEXT:    # xmm13 = xmm5[2],mem[2],xmm5[3],mem[3]5054; AVX2-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm14 # 32-byte Folded Reload5055; AVX2-NEXT:    vblendps {{.*#+}} xmm13 = xmm14[0,1],xmm13[2,3]5056; AVX2-NEXT:    vblendps {{.*#+}} ymm10 = ymm13[0,1,2,3],ymm10[4,5,6,7]5057; AVX2-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm7 # 32-byte Folded Reload5058; AVX2-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm8 # 32-byte Folded Reload5059; AVX2-NEXT:    vblendps {{.*#+}} ymm7 = ymm8[0,1,2,3,4,5],ymm7[6,7]5060; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload5061; AVX2-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5, %xmm5 # 16-byte Folded Reload5062; AVX2-NEXT:    # xmm5 = xmm5[2],mem[2],xmm5[3],mem[3]5063; AVX2-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload5064; AVX2-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm5[2,3]5065; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm7[4,5,6,7]5066; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload5067; AVX2-NEXT:    vmovaps %ymm5, 192(%rsi)5068; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload5069; AVX2-NEXT:    vmovaps %ymm5, 128(%rsi)5070; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload5071; AVX2-NEXT:    vmovaps %ymm5, 64(%rsi)5072; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload5073; AVX2-NEXT:    vmovaps %ymm5, (%rsi)5074; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload5075; AVX2-NEXT:    vmovaps %ymm5, 224(%rsi)5076; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload5077; AVX2-NEXT:    vmovaps %ymm5, 160(%rsi)5078; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload5079; AVX2-NEXT:    vmovaps %ymm5, 96(%rsi)5080; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload5081; AVX2-NEXT:    vmovaps %ymm5, 32(%rsi)5082; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload5083; AVX2-NEXT:    vmovaps %ymm5, 192(%rdx)5084; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload5085; AVX2-NEXT:    vmovaps %ymm5, 128(%rdx)5086; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload5087; AVX2-NEXT:    vmovaps %ymm5, 64(%rdx)5088; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload5089; AVX2-NEXT:    vmovaps %ymm5, (%rdx)5090; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload5091; AVX2-NEXT:    vmovaps %ymm5, 224(%rdx)5092; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload5093; AVX2-NEXT:    vmovaps %ymm5, 160(%rdx)5094; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload5095; AVX2-NEXT:    vmovaps %ymm5, 96(%rdx)5096; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload5097; AVX2-NEXT:    vmovaps %ymm5, 32(%rdx)5098; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload5099; AVX2-NEXT:    vmovaps %ymm5, 192(%rcx)5100; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload5101; AVX2-NEXT:    vmovaps %ymm5, 128(%rcx)5102; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload5103; AVX2-NEXT:    vmovaps %ymm5, 64(%rcx)5104; AVX2-NEXT:    vmovaps %ymm9, (%rcx)5105; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload5106; AVX2-NEXT:    vmovaps %ymm5, 224(%rcx)5107; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload5108; AVX2-NEXT:    vmovaps %ymm5, 160(%rcx)5109; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload5110; AVX2-NEXT:    vmovaps %ymm5, 96(%rcx)5111; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload5112; AVX2-NEXT:    vmovaps %ymm5, 32(%rcx)5113; AVX2-NEXT:    vmovaps %ymm0, 192(%r8)5114; AVX2-NEXT:    vmovaps %ymm10, 128(%r8)5115; AVX2-NEXT:    vmovaps %ymm3, 64(%r8)5116; AVX2-NEXT:    vmovaps %ymm1, (%r8)5117; AVX2-NEXT:    vmovaps %ymm11, 224(%r8)5118; AVX2-NEXT:    vmovaps %ymm2, 160(%r8)5119; AVX2-NEXT:    vmovaps %ymm4, 96(%r8)5120; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5121; AVX2-NEXT:    vmovaps %ymm0, 32(%r8)5122; AVX2-NEXT:    addq $1944, %rsp # imm = 0x7985123; AVX2-NEXT:    vzeroupper5124; AVX2-NEXT:    retq5125;5126; AVX2-FP-LABEL: load_i32_stride4_vf64:5127; AVX2-FP:       # %bb.0:5128; AVX2-FP-NEXT:    subq $1944, %rsp # imm = 0x7985129; AVX2-FP-NEXT:    vmovaps 704(%rdi), %ymm135130; AVX2-FP-NEXT:    vmovaps 416(%rdi), %ymm85131; AVX2-FP-NEXT:    vmovups %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5132; AVX2-FP-NEXT:    vmovaps 448(%rdi), %ymm45133; AVX2-FP-NEXT:    vmovaps 480(%rdi), %ymm155134; AVX2-FP-NEXT:    vmovaps 160(%rdi), %ymm95135; AVX2-FP-NEXT:    vmovups %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5136; AVX2-FP-NEXT:    vmovaps 192(%rdi), %ymm105137; AVX2-FP-NEXT:    vmovaps 224(%rdi), %ymm145138; AVX2-FP-NEXT:    vbroadcastsd {{.*#+}} ymm2 = [0,4,0,4,0,4,0,4]5139; AVX2-FP-NEXT:    vpermps %ymm14, %ymm2, %ymm05140; AVX2-FP-NEXT:    vpermps %ymm10, %ymm2, %ymm15141; AVX2-FP-NEXT:    vmovups %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5142; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]5143; AVX2-FP-NEXT:    vmovaps 144(%rdi), %xmm35144; AVX2-FP-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5145; AVX2-FP-NEXT:    vmovaps 128(%rdi), %xmm15146; AVX2-FP-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5147; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm1[0],xmm3[0],xmm1[1],xmm3[1]5148; AVX2-FP-NEXT:    vpermps %ymm9, %ymm2, %ymm35149; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm3[2,3]5150; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]5151; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5152; AVX2-FP-NEXT:    vpermps %ymm15, %ymm2, %ymm05153; AVX2-FP-NEXT:    vpermps %ymm4, %ymm2, %ymm15154; AVX2-FP-NEXT:    vmovaps %ymm4, %ymm95155; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]5156; AVX2-FP-NEXT:    vmovaps 400(%rdi), %xmm35157; AVX2-FP-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5158; AVX2-FP-NEXT:    vmovaps 384(%rdi), %xmm15159; AVX2-FP-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5160; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm1[0],xmm3[0],xmm1[1],xmm3[1]5161; AVX2-FP-NEXT:    vpermps %ymm8, %ymm2, %ymm35162; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm3[2,3]5163; AVX2-FP-NEXT:    vmovaps 736(%rdi), %ymm115164; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]5165; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5166; AVX2-FP-NEXT:    vpermps %ymm11, %ymm2, %ymm05167; AVX2-FP-NEXT:    vmovups %ymm11, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5168; AVX2-FP-NEXT:    vpermps %ymm13, %ymm2, %ymm15169; AVX2-FP-NEXT:    vmovups %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5170; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]5171; AVX2-FP-NEXT:    vmovaps 672(%rdi), %ymm45172; AVX2-FP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5173; AVX2-FP-NEXT:    vmovaps 656(%rdi), %xmm35174; AVX2-FP-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5175; AVX2-FP-NEXT:    vmovaps 640(%rdi), %xmm15176; AVX2-FP-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5177; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm1[0],xmm3[0],xmm1[1],xmm3[1]5178; AVX2-FP-NEXT:    vpermps %ymm4, %ymm2, %ymm35179; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm3[2,3]5180; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]5181; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5182; AVX2-FP-NEXT:    vmovaps 960(%rdi), %ymm35183; AVX2-FP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5184; AVX2-FP-NEXT:    vmovaps 992(%rdi), %ymm85185; AVX2-FP-NEXT:    vpermps %ymm8, %ymm2, %ymm05186; AVX2-FP-NEXT:    vpermps %ymm3, %ymm2, %ymm15187; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]5188; AVX2-FP-NEXT:    vmovaps 928(%rdi), %ymm45189; AVX2-FP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5190; AVX2-FP-NEXT:    vmovaps 912(%rdi), %xmm35191; AVX2-FP-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5192; AVX2-FP-NEXT:    vmovaps 896(%rdi), %xmm15193; AVX2-FP-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5194; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm1[0],xmm3[0],xmm1[1],xmm3[1]5195; AVX2-FP-NEXT:    vpermps %ymm4, %ymm2, %ymm35196; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm3[2,3]5197; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]5198; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5199; AVX2-FP-NEXT:    vmovaps 320(%rdi), %ymm35200; AVX2-FP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5201; AVX2-FP-NEXT:    vmovaps 352(%rdi), %ymm05202; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5203; AVX2-FP-NEXT:    vpermps %ymm0, %ymm2, %ymm05204; AVX2-FP-NEXT:    vpermps %ymm3, %ymm2, %ymm15205; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]5206; AVX2-FP-NEXT:    vmovaps 288(%rdi), %ymm45207; AVX2-FP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5208; AVX2-FP-NEXT:    vmovaps 272(%rdi), %xmm35209; AVX2-FP-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5210; AVX2-FP-NEXT:    vmovaps 256(%rdi), %xmm15211; AVX2-FP-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5212; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm1[0],xmm3[0],xmm1[1],xmm3[1]5213; AVX2-FP-NEXT:    vpermps %ymm4, %ymm2, %ymm35214; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm3[2,3]5215; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]5216; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5217; AVX2-FP-NEXT:    vmovaps 576(%rdi), %ymm35218; AVX2-FP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5219; AVX2-FP-NEXT:    vmovaps 608(%rdi), %ymm05220; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5221; AVX2-FP-NEXT:    vpermps %ymm0, %ymm2, %ymm05222; AVX2-FP-NEXT:    vpermps %ymm3, %ymm2, %ymm15223; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]5224; AVX2-FP-NEXT:    vmovaps 544(%rdi), %ymm45225; AVX2-FP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5226; AVX2-FP-NEXT:    vmovaps 528(%rdi), %xmm35227; AVX2-FP-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5228; AVX2-FP-NEXT:    vmovaps 512(%rdi), %xmm15229; AVX2-FP-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5230; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm1[0],xmm3[0],xmm1[1],xmm3[1]5231; AVX2-FP-NEXT:    vpermps %ymm4, %ymm2, %ymm35232; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm3[2,3]5233; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]5234; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5235; AVX2-FP-NEXT:    vmovaps 832(%rdi), %ymm35236; AVX2-FP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5237; AVX2-FP-NEXT:    vmovaps 864(%rdi), %ymm05238; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5239; AVX2-FP-NEXT:    vpermps %ymm0, %ymm2, %ymm05240; AVX2-FP-NEXT:    vpermps %ymm3, %ymm2, %ymm15241; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]5242; AVX2-FP-NEXT:    vmovaps 800(%rdi), %ymm45243; AVX2-FP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5244; AVX2-FP-NEXT:    vmovaps 784(%rdi), %xmm35245; AVX2-FP-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5246; AVX2-FP-NEXT:    vmovaps 768(%rdi), %xmm15247; AVX2-FP-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5248; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm1[0],xmm3[0],xmm1[1],xmm3[1]5249; AVX2-FP-NEXT:    vpermps %ymm4, %ymm2, %ymm35250; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm3[2,3]5251; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]5252; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5253; AVX2-FP-NEXT:    vmovaps 64(%rdi), %ymm15254; AVX2-FP-NEXT:    vmovaps 96(%rdi), %ymm75255; AVX2-FP-NEXT:    vpermps %ymm7, %ymm2, %ymm05256; AVX2-FP-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5257; AVX2-FP-NEXT:    vpermps %ymm1, %ymm2, %ymm45258; AVX2-FP-NEXT:    vmovaps %ymm1, %ymm35259; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5260; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm4[0,1,2,3,4,5],ymm0[6,7]5261; AVX2-FP-NEXT:    vmovaps 32(%rdi), %ymm15262; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5263; AVX2-FP-NEXT:    vpermps %ymm1, %ymm2, %ymm25264; AVX2-FP-NEXT:    vmovaps (%rdi), %xmm15265; AVX2-FP-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5266; AVX2-FP-NEXT:    vmovaps 16(%rdi), %xmm45267; AVX2-FP-NEXT:    vmovaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5268; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm4 = xmm1[0],xmm4[0],xmm1[1],xmm4[1]5269; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm2 = xmm4[0,1],xmm2[2,3]5270; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1,2,3],ymm0[4,5,6,7]5271; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5272; AVX2-FP-NEXT:    vbroadcastsd {{.*#+}} ymm2 = [1,5,1,5,1,5,1,5]5273; AVX2-FP-NEXT:    vpermps %ymm14, %ymm2, %ymm05274; AVX2-FP-NEXT:    vpermps %ymm10, %ymm2, %ymm45275; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm4[0,1,2,3,4,5],ymm0[6,7]5276; AVX2-FP-NEXT:    vmovaps 128(%rdi), %ymm15277; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5278; AVX2-FP-NEXT:    vmovaps 176(%rdi), %xmm55279; AVX2-FP-NEXT:    vmovaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5280; AVX2-FP-NEXT:    vmovaps 160(%rdi), %xmm45281; AVX2-FP-NEXT:    vmovaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5282; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm4 = xmm4[0],xmm5[0],xmm4[1],xmm5[1]5283; AVX2-FP-NEXT:    vpermps %ymm1, %ymm2, %ymm55284; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm4 = xmm5[0,1],xmm4[2,3]5285; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm4[0,1,2,3],ymm0[4,5,6,7]5286; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5287; AVX2-FP-NEXT:    vpermps %ymm15, %ymm2, %ymm05288; AVX2-FP-NEXT:    vmovups %ymm15, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5289; AVX2-FP-NEXT:    vpermps %ymm9, %ymm2, %ymm45290; AVX2-FP-NEXT:    vmovaps %ymm9, %ymm105291; AVX2-FP-NEXT:    vmovups %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5292; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm4[0,1,2,3,4,5],ymm0[6,7]5293; AVX2-FP-NEXT:    vmovaps 384(%rdi), %ymm15294; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5295; AVX2-FP-NEXT:    vmovaps 432(%rdi), %xmm55296; AVX2-FP-NEXT:    vmovaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5297; AVX2-FP-NEXT:    vmovaps 416(%rdi), %xmm45298; AVX2-FP-NEXT:    vmovaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5299; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm4 = xmm4[0],xmm5[0],xmm4[1],xmm5[1]5300; AVX2-FP-NEXT:    vpermps %ymm1, %ymm2, %ymm55301; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm4 = xmm5[0,1],xmm4[2,3]5302; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm4[0,1,2,3],ymm0[4,5,6,7]5303; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5304; AVX2-FP-NEXT:    vpermps %ymm11, %ymm2, %ymm05305; AVX2-FP-NEXT:    vpermps %ymm13, %ymm2, %ymm45306; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm4[0,1,2,3,4,5],ymm0[6,7]5307; AVX2-FP-NEXT:    vmovaps 640(%rdi), %ymm15308; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5309; AVX2-FP-NEXT:    vmovaps 688(%rdi), %xmm55310; AVX2-FP-NEXT:    vmovaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5311; AVX2-FP-NEXT:    vmovaps 672(%rdi), %xmm45312; AVX2-FP-NEXT:    vmovaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5313; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm4 = xmm4[0],xmm5[0],xmm4[1],xmm5[1]5314; AVX2-FP-NEXT:    vpermps %ymm1, %ymm2, %ymm55315; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm4 = xmm5[0,1],xmm4[2,3]5316; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm4[0,1,2,3],ymm0[4,5,6,7]5317; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5318; AVX2-FP-NEXT:    vpermps %ymm8, %ymm2, %ymm05319; AVX2-FP-NEXT:    vmovaps %ymm8, %ymm115320; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload5321; AVX2-FP-NEXT:    vpermps %ymm8, %ymm2, %ymm45322; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm4[0,1,2,3,4,5],ymm0[6,7]5323; AVX2-FP-NEXT:    vmovaps 896(%rdi), %ymm15324; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5325; AVX2-FP-NEXT:    vmovaps 944(%rdi), %xmm55326; AVX2-FP-NEXT:    vmovaps %xmm5, (%rsp) # 16-byte Spill5327; AVX2-FP-NEXT:    vmovaps 928(%rdi), %xmm45328; AVX2-FP-NEXT:    vmovaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5329; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm4 = xmm4[0],xmm5[0],xmm4[1],xmm5[1]5330; AVX2-FP-NEXT:    vpermps %ymm1, %ymm2, %ymm55331; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm4 = xmm5[0,1],xmm4[2,3]5332; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm4[0,1,2,3],ymm0[4,5,6,7]5333; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5334; AVX2-FP-NEXT:    vpermps %ymm7, %ymm2, %ymm05335; AVX2-FP-NEXT:    vpermps %ymm3, %ymm2, %ymm45336; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm4[0,1,2,3,4,5],ymm0[6,7]5337; AVX2-FP-NEXT:    vmovaps (%rdi), %ymm15338; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5339; AVX2-FP-NEXT:    vmovaps 32(%rdi), %xmm35340; AVX2-FP-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5341; AVX2-FP-NEXT:    vmovaps 48(%rdi), %xmm45342; AVX2-FP-NEXT:    vmovaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5343; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm4 = xmm3[0],xmm4[0],xmm3[1],xmm4[1]5344; AVX2-FP-NEXT:    vpermps %ymm1, %ymm2, %ymm55345; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm4 = xmm5[0,1],xmm4[2,3]5346; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm4[0,1,2,3],ymm0[4,5,6,7]5347; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5348; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload5349; AVX2-FP-NEXT:    vpermps %ymm6, %ymm2, %ymm05350; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload5351; AVX2-FP-NEXT:    vpermps %ymm7, %ymm2, %ymm45352; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm4[0,1,2,3,4,5],ymm0[6,7]5353; AVX2-FP-NEXT:    vmovaps 256(%rdi), %ymm15354; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5355; AVX2-FP-NEXT:    vmovaps 304(%rdi), %xmm35356; AVX2-FP-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5357; AVX2-FP-NEXT:    vmovaps 288(%rdi), %xmm45358; AVX2-FP-NEXT:    vmovaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5359; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm4 = xmm4[0],xmm3[0],xmm4[1],xmm3[1]5360; AVX2-FP-NEXT:    vpermps %ymm1, %ymm2, %ymm55361; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm4 = xmm5[0,1],xmm4[2,3]5362; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm4[0,1,2,3],ymm0[4,5,6,7]5363; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5364; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm13 # 32-byte Reload5365; AVX2-FP-NEXT:    vpermps %ymm13, %ymm2, %ymm05366; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm12 # 32-byte Reload5367; AVX2-FP-NEXT:    vpermps %ymm12, %ymm2, %ymm45368; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm4[0,1,2,3,4,5],ymm0[6,7]5369; AVX2-FP-NEXT:    vmovaps 512(%rdi), %ymm15370; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5371; AVX2-FP-NEXT:    vmovaps 560(%rdi), %xmm35372; AVX2-FP-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5373; AVX2-FP-NEXT:    vmovaps 544(%rdi), %xmm45374; AVX2-FP-NEXT:    vmovaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5375; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm4 = xmm4[0],xmm3[0],xmm4[1],xmm3[1]5376; AVX2-FP-NEXT:    vpermps %ymm1, %ymm2, %ymm55377; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm4 = xmm5[0,1],xmm4[2,3]5378; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm4[0,1,2,3],ymm0[4,5,6,7]5379; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5380; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload5381; AVX2-FP-NEXT:    vpermps %ymm3, %ymm2, %ymm05382; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload5383; AVX2-FP-NEXT:    vpermps %ymm1, %ymm2, %ymm45384; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm4[0,1,2,3,4,5],ymm0[6,7]5385; AVX2-FP-NEXT:    vmovaps 768(%rdi), %ymm45386; AVX2-FP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5387; AVX2-FP-NEXT:    vpermps %ymm4, %ymm2, %ymm25388; AVX2-FP-NEXT:    vmovaps 816(%rdi), %xmm55389; AVX2-FP-NEXT:    vmovaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5390; AVX2-FP-NEXT:    vmovaps 800(%rdi), %xmm45391; AVX2-FP-NEXT:    vmovaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5392; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm4 = xmm4[0],xmm5[0],xmm4[1],xmm5[1]5393; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm2 = xmm2[0,1],xmm4[2,3]5394; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1,2,3],ymm0[4,5,6,7]5395; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5396; AVX2-FP-NEXT:    vbroadcastsd {{.*#+}} ymm0 = [2,6,2,6,2,6,2,6]5397; AVX2-FP-NEXT:    vpermps %ymm14, %ymm0, %ymm25398; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload5399; AVX2-FP-NEXT:    vpermps %ymm5, %ymm0, %ymm45400; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm2 = ymm4[0,1,2,3,4,5],ymm2[6,7]5401; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload5402; AVX2-FP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4, %xmm4 # 16-byte Folded Reload5403; AVX2-FP-NEXT:    # xmm4 = xmm4[2],mem[2],xmm4[3],mem[3]5404; AVX2-FP-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm9 # 32-byte Folded Reload5405; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm4 = xmm4[0,1],xmm9[2,3]5406; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm2 = ymm4[0,1,2,3],ymm2[4,5,6,7]5407; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5408; AVX2-FP-NEXT:    vpermps %ymm15, %ymm0, %ymm25409; AVX2-FP-NEXT:    vpermps %ymm10, %ymm0, %ymm45410; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm2 = ymm4[0,1,2,3,4,5],ymm2[6,7]5411; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload5412; AVX2-FP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4, %xmm4 # 16-byte Folded Reload5413; AVX2-FP-NEXT:    # xmm4 = xmm4[2],mem[2],xmm4[3],mem[3]5414; AVX2-FP-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm9 # 32-byte Folded Reload5415; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm4 = xmm4[0,1],xmm9[2,3]5416; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm2 = ymm4[0,1,2,3],ymm2[4,5,6,7]5417; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5418; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Reload5419; AVX2-FP-NEXT:    vpermps %ymm15, %ymm0, %ymm25420; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload5421; AVX2-FP-NEXT:    vpermps %ymm10, %ymm0, %ymm45422; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm2 = ymm4[0,1,2,3,4,5],ymm2[6,7]5423; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload5424; AVX2-FP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4, %xmm4 # 16-byte Folded Reload5425; AVX2-FP-NEXT:    # xmm4 = xmm4[2],mem[2],xmm4[3],mem[3]5426; AVX2-FP-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm9 # 32-byte Folded Reload5427; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm4 = xmm4[0,1],xmm9[2,3]5428; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm2 = ymm4[0,1,2,3],ymm2[4,5,6,7]5429; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5430; AVX2-FP-NEXT:    vpermps %ymm11, %ymm0, %ymm25431; AVX2-FP-NEXT:    vpermps %ymm8, %ymm0, %ymm45432; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm2 = ymm4[0,1,2,3,4,5],ymm2[6,7]5433; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload5434; AVX2-FP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4, %xmm4 # 16-byte Folded Reload5435; AVX2-FP-NEXT:    # xmm4 = xmm4[2],mem[2],xmm4[3],mem[3]5436; AVX2-FP-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm9 # 32-byte Folded Reload5437; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm4 = xmm4[0,1],xmm9[2,3]5438; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm2 = ymm4[0,1,2,3],ymm2[4,5,6,7]5439; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5440; AVX2-FP-NEXT:    vpermps %ymm6, %ymm0, %ymm25441; AVX2-FP-NEXT:    vpermps %ymm7, %ymm0, %ymm45442; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm2 = ymm4[0,1,2,3,4,5],ymm2[6,7]5443; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload5444; AVX2-FP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4, %xmm4 # 16-byte Folded Reload5445; AVX2-FP-NEXT:    # xmm4 = xmm4[2],mem[2],xmm4[3],mem[3]5446; AVX2-FP-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm9 # 32-byte Folded Reload5447; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm4 = xmm4[0,1],xmm9[2,3]5448; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm2 = ymm4[0,1,2,3],ymm2[4,5,6,7]5449; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5450; AVX2-FP-NEXT:    vpermps %ymm13, %ymm0, %ymm25451; AVX2-FP-NEXT:    vpermps %ymm12, %ymm0, %ymm45452; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm2 = ymm4[0,1,2,3,4,5],ymm2[6,7]5453; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload5454; AVX2-FP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4, %xmm4 # 16-byte Folded Reload5455; AVX2-FP-NEXT:    # xmm4 = xmm4[2],mem[2],xmm4[3],mem[3]5456; AVX2-FP-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm9 # 32-byte Folded Reload5457; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm4 = xmm4[0,1],xmm9[2,3]5458; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm2 = ymm4[0,1,2,3],ymm2[4,5,6,7]5459; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5460; AVX2-FP-NEXT:    vpermps %ymm3, %ymm0, %ymm25461; AVX2-FP-NEXT:    vpermps %ymm1, %ymm0, %ymm45462; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm2 = ymm4[0,1,2,3,4,5],ymm2[6,7]5463; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload5464; AVX2-FP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm4 # 16-byte Folded Reload5465; AVX2-FP-NEXT:    # xmm4 = xmm1[2],mem[2],xmm1[3],mem[3]5466; AVX2-FP-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm9 # 32-byte Folded Reload5467; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm4 = xmm4[0,1],xmm9[2,3]5468; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm4[0,1,2,3],ymm2[4,5,6,7]5469; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5470; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload5471; AVX2-FP-NEXT:    vpermps %ymm1, %ymm0, %ymm25472; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload5473; AVX2-FP-NEXT:    vpermps %ymm3, %ymm0, %ymm45474; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm2 = ymm4[0,1,2,3,4,5],ymm2[6,7]5475; AVX2-FP-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload5476; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload5477; AVX2-FP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4, %xmm4 # 16-byte Folded Reload5478; AVX2-FP-NEXT:    # xmm4 = xmm4[2],mem[2],xmm4[3],mem[3]5479; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm0 = xmm4[0,1],xmm0[2,3]5480; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm9 = ymm0[0,1,2,3],ymm2[4,5,6,7]5481; AVX2-FP-NEXT:    vbroadcastsd {{.*#+}} ymm0 = [3,7,3,7,3,7,3,7]5482; AVX2-FP-NEXT:    vpermps %ymm14, %ymm0, %ymm25483; AVX2-FP-NEXT:    vpermps %ymm5, %ymm0, %ymm45484; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm2 = ymm4[0,1,2,3,4,5],ymm2[6,7]5485; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload5486; AVX2-FP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4, %xmm4 # 16-byte Folded Reload5487; AVX2-FP-NEXT:    # xmm4 = xmm4[2],mem[2],xmm4[3],mem[3]5488; AVX2-FP-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm14 # 32-byte Folded Reload5489; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm4 = xmm14[0,1],xmm4[2,3]5490; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm2 = ymm4[0,1,2,3],ymm2[4,5,6,7]5491; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5492; AVX2-FP-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm2 # 32-byte Folded Reload5493; AVX2-FP-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm4 # 32-byte Folded Reload5494; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm2 = ymm4[0,1,2,3,4,5],ymm2[6,7]5495; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload5496; AVX2-FP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4, %xmm4 # 16-byte Folded Reload5497; AVX2-FP-NEXT:    # xmm4 = xmm4[2],mem[2],xmm4[3],mem[3]5498; AVX2-FP-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm14 # 32-byte Folded Reload5499; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm4 = xmm14[0,1],xmm4[2,3]5500; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm2[4,5,6,7]5501; AVX2-FP-NEXT:    vpermps %ymm15, %ymm0, %ymm25502; AVX2-FP-NEXT:    vpermps %ymm10, %ymm0, %ymm145503; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm2 = ymm14[0,1,2,3,4,5],ymm2[6,7]5504; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload5505; AVX2-FP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5, %xmm14 # 16-byte Folded Reload5506; AVX2-FP-NEXT:    # xmm14 = xmm5[2],mem[2],xmm5[3],mem[3]5507; AVX2-FP-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm15 # 32-byte Folded Reload5508; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm14 = xmm15[0,1],xmm14[2,3]5509; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm2 = ymm14[0,1,2,3],ymm2[4,5,6,7]5510; AVX2-FP-NEXT:    vpermps %ymm11, %ymm0, %ymm115511; AVX2-FP-NEXT:    vpermps %ymm8, %ymm0, %ymm145512; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm11 = ymm14[0,1,2,3,4,5],ymm11[6,7]5513; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload5514; AVX2-FP-NEXT:    vunpckhps (%rsp), %xmm5, %xmm14 # 16-byte Folded Reload5515; AVX2-FP-NEXT:    # xmm14 = xmm5[2],mem[2],xmm5[3],mem[3]5516; AVX2-FP-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm15 # 32-byte Folded Reload5517; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm14 = xmm15[0,1],xmm14[2,3]5518; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm11 = ymm14[0,1,2,3],ymm11[4,5,6,7]5519; AVX2-FP-NEXT:    vpermps %ymm1, %ymm0, %ymm15520; AVX2-FP-NEXT:    vpermps %ymm3, %ymm0, %ymm35521; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm3[0,1,2,3,4,5],ymm1[6,7]5522; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload5523; AVX2-FP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3, %xmm3 # 16-byte Folded Reload5524; AVX2-FP-NEXT:    # xmm3 = xmm3[2],mem[2],xmm3[3],mem[3]5525; AVX2-FP-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm14 # 32-byte Folded Reload5526; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm3 = xmm14[0,1],xmm3[2,3]5527; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm3[0,1,2,3],ymm1[4,5,6,7]5528; AVX2-FP-NEXT:    vpermps %ymm6, %ymm0, %ymm35529; AVX2-FP-NEXT:    vpermps %ymm7, %ymm0, %ymm145530; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm3 = ymm14[0,1,2,3,4,5],ymm3[6,7]5531; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload5532; AVX2-FP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5, %xmm14 # 16-byte Folded Reload5533; AVX2-FP-NEXT:    # xmm14 = xmm5[2],mem[2],xmm5[3],mem[3]5534; AVX2-FP-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm15 # 32-byte Folded Reload5535; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm14 = xmm15[0,1],xmm14[2,3]5536; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm3 = ymm14[0,1,2,3],ymm3[4,5,6,7]5537; AVX2-FP-NEXT:    vpermps %ymm13, %ymm0, %ymm105538; AVX2-FP-NEXT:    vpermps %ymm12, %ymm0, %ymm145539; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm10 = ymm14[0,1,2,3,4,5],ymm10[6,7]5540; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload5541; AVX2-FP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5, %xmm13 # 16-byte Folded Reload5542; AVX2-FP-NEXT:    # xmm13 = xmm5[2],mem[2],xmm5[3],mem[3]5543; AVX2-FP-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm14 # 32-byte Folded Reload5544; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm13 = xmm14[0,1],xmm13[2,3]5545; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm10 = ymm13[0,1,2,3],ymm10[4,5,6,7]5546; AVX2-FP-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm7 # 32-byte Folded Reload5547; AVX2-FP-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm8 # 32-byte Folded Reload5548; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm7 = ymm8[0,1,2,3,4,5],ymm7[6,7]5549; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload5550; AVX2-FP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5, %xmm5 # 16-byte Folded Reload5551; AVX2-FP-NEXT:    # xmm5 = xmm5[2],mem[2],xmm5[3],mem[3]5552; AVX2-FP-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload5553; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm5[2,3]5554; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm7[4,5,6,7]5555; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload5556; AVX2-FP-NEXT:    vmovaps %ymm5, 192(%rsi)5557; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload5558; AVX2-FP-NEXT:    vmovaps %ymm5, 128(%rsi)5559; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload5560; AVX2-FP-NEXT:    vmovaps %ymm5, 64(%rsi)5561; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload5562; AVX2-FP-NEXT:    vmovaps %ymm5, (%rsi)5563; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload5564; AVX2-FP-NEXT:    vmovaps %ymm5, 224(%rsi)5565; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload5566; AVX2-FP-NEXT:    vmovaps %ymm5, 160(%rsi)5567; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload5568; AVX2-FP-NEXT:    vmovaps %ymm5, 96(%rsi)5569; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload5570; AVX2-FP-NEXT:    vmovaps %ymm5, 32(%rsi)5571; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload5572; AVX2-FP-NEXT:    vmovaps %ymm5, 192(%rdx)5573; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload5574; AVX2-FP-NEXT:    vmovaps %ymm5, 128(%rdx)5575; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload5576; AVX2-FP-NEXT:    vmovaps %ymm5, 64(%rdx)5577; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload5578; AVX2-FP-NEXT:    vmovaps %ymm5, (%rdx)5579; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload5580; AVX2-FP-NEXT:    vmovaps %ymm5, 224(%rdx)5581; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload5582; AVX2-FP-NEXT:    vmovaps %ymm5, 160(%rdx)5583; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload5584; AVX2-FP-NEXT:    vmovaps %ymm5, 96(%rdx)5585; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload5586; AVX2-FP-NEXT:    vmovaps %ymm5, 32(%rdx)5587; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload5588; AVX2-FP-NEXT:    vmovaps %ymm5, 192(%rcx)5589; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload5590; AVX2-FP-NEXT:    vmovaps %ymm5, 128(%rcx)5591; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload5592; AVX2-FP-NEXT:    vmovaps %ymm5, 64(%rcx)5593; AVX2-FP-NEXT:    vmovaps %ymm9, (%rcx)5594; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload5595; AVX2-FP-NEXT:    vmovaps %ymm5, 224(%rcx)5596; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload5597; AVX2-FP-NEXT:    vmovaps %ymm5, 160(%rcx)5598; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload5599; AVX2-FP-NEXT:    vmovaps %ymm5, 96(%rcx)5600; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload5601; AVX2-FP-NEXT:    vmovaps %ymm5, 32(%rcx)5602; AVX2-FP-NEXT:    vmovaps %ymm0, 192(%r8)5603; AVX2-FP-NEXT:    vmovaps %ymm10, 128(%r8)5604; AVX2-FP-NEXT:    vmovaps %ymm3, 64(%r8)5605; AVX2-FP-NEXT:    vmovaps %ymm1, (%r8)5606; AVX2-FP-NEXT:    vmovaps %ymm11, 224(%r8)5607; AVX2-FP-NEXT:    vmovaps %ymm2, 160(%r8)5608; AVX2-FP-NEXT:    vmovaps %ymm4, 96(%r8)5609; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5610; AVX2-FP-NEXT:    vmovaps %ymm0, 32(%r8)5611; AVX2-FP-NEXT:    addq $1944, %rsp # imm = 0x7985612; AVX2-FP-NEXT:    vzeroupper5613; AVX2-FP-NEXT:    retq5614;5615; AVX2-FCP-LABEL: load_i32_stride4_vf64:5616; AVX2-FCP:       # %bb.0:5617; AVX2-FCP-NEXT:    subq $1944, %rsp # imm = 0x7985618; AVX2-FCP-NEXT:    vmovaps 704(%rdi), %ymm135619; AVX2-FCP-NEXT:    vmovaps 416(%rdi), %ymm85620; AVX2-FCP-NEXT:    vmovups %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5621; AVX2-FCP-NEXT:    vmovaps 448(%rdi), %ymm45622; AVX2-FCP-NEXT:    vmovaps 480(%rdi), %ymm155623; AVX2-FCP-NEXT:    vmovaps 160(%rdi), %ymm95624; AVX2-FCP-NEXT:    vmovups %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5625; AVX2-FCP-NEXT:    vmovaps 192(%rdi), %ymm105626; AVX2-FCP-NEXT:    vmovaps 224(%rdi), %ymm145627; AVX2-FCP-NEXT:    vbroadcastsd {{.*#+}} ymm2 = [0,4,0,4,0,4,0,4]5628; AVX2-FCP-NEXT:    vpermps %ymm14, %ymm2, %ymm05629; AVX2-FCP-NEXT:    vpermps %ymm10, %ymm2, %ymm15630; AVX2-FCP-NEXT:    vmovups %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5631; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]5632; AVX2-FCP-NEXT:    vmovaps 144(%rdi), %xmm35633; AVX2-FCP-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5634; AVX2-FCP-NEXT:    vmovaps 128(%rdi), %xmm15635; AVX2-FCP-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5636; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm1[0],xmm3[0],xmm1[1],xmm3[1]5637; AVX2-FCP-NEXT:    vpermps %ymm9, %ymm2, %ymm35638; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm3[2,3]5639; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]5640; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5641; AVX2-FCP-NEXT:    vpermps %ymm15, %ymm2, %ymm05642; AVX2-FCP-NEXT:    vpermps %ymm4, %ymm2, %ymm15643; AVX2-FCP-NEXT:    vmovaps %ymm4, %ymm95644; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]5645; AVX2-FCP-NEXT:    vmovaps 400(%rdi), %xmm35646; AVX2-FCP-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5647; AVX2-FCP-NEXT:    vmovaps 384(%rdi), %xmm15648; AVX2-FCP-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5649; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm1[0],xmm3[0],xmm1[1],xmm3[1]5650; AVX2-FCP-NEXT:    vpermps %ymm8, %ymm2, %ymm35651; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm3[2,3]5652; AVX2-FCP-NEXT:    vmovaps 736(%rdi), %ymm115653; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]5654; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5655; AVX2-FCP-NEXT:    vpermps %ymm11, %ymm2, %ymm05656; AVX2-FCP-NEXT:    vmovups %ymm11, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5657; AVX2-FCP-NEXT:    vpermps %ymm13, %ymm2, %ymm15658; AVX2-FCP-NEXT:    vmovups %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5659; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]5660; AVX2-FCP-NEXT:    vmovaps 672(%rdi), %ymm45661; AVX2-FCP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5662; AVX2-FCP-NEXT:    vmovaps 656(%rdi), %xmm35663; AVX2-FCP-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5664; AVX2-FCP-NEXT:    vmovaps 640(%rdi), %xmm15665; AVX2-FCP-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5666; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm1[0],xmm3[0],xmm1[1],xmm3[1]5667; AVX2-FCP-NEXT:    vpermps %ymm4, %ymm2, %ymm35668; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm3[2,3]5669; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]5670; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5671; AVX2-FCP-NEXT:    vmovaps 960(%rdi), %ymm35672; AVX2-FCP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5673; AVX2-FCP-NEXT:    vmovaps 992(%rdi), %ymm85674; AVX2-FCP-NEXT:    vpermps %ymm8, %ymm2, %ymm05675; AVX2-FCP-NEXT:    vpermps %ymm3, %ymm2, %ymm15676; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]5677; AVX2-FCP-NEXT:    vmovaps 928(%rdi), %ymm45678; AVX2-FCP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5679; AVX2-FCP-NEXT:    vmovaps 912(%rdi), %xmm35680; AVX2-FCP-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5681; AVX2-FCP-NEXT:    vmovaps 896(%rdi), %xmm15682; AVX2-FCP-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5683; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm1[0],xmm3[0],xmm1[1],xmm3[1]5684; AVX2-FCP-NEXT:    vpermps %ymm4, %ymm2, %ymm35685; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm3[2,3]5686; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]5687; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5688; AVX2-FCP-NEXT:    vmovaps 320(%rdi), %ymm35689; AVX2-FCP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5690; AVX2-FCP-NEXT:    vmovaps 352(%rdi), %ymm05691; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5692; AVX2-FCP-NEXT:    vpermps %ymm0, %ymm2, %ymm05693; AVX2-FCP-NEXT:    vpermps %ymm3, %ymm2, %ymm15694; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]5695; AVX2-FCP-NEXT:    vmovaps 288(%rdi), %ymm45696; AVX2-FCP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5697; AVX2-FCP-NEXT:    vmovaps 272(%rdi), %xmm35698; AVX2-FCP-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5699; AVX2-FCP-NEXT:    vmovaps 256(%rdi), %xmm15700; AVX2-FCP-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5701; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm1[0],xmm3[0],xmm1[1],xmm3[1]5702; AVX2-FCP-NEXT:    vpermps %ymm4, %ymm2, %ymm35703; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm3[2,3]5704; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]5705; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5706; AVX2-FCP-NEXT:    vmovaps 576(%rdi), %ymm35707; AVX2-FCP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5708; AVX2-FCP-NEXT:    vmovaps 608(%rdi), %ymm05709; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5710; AVX2-FCP-NEXT:    vpermps %ymm0, %ymm2, %ymm05711; AVX2-FCP-NEXT:    vpermps %ymm3, %ymm2, %ymm15712; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]5713; AVX2-FCP-NEXT:    vmovaps 544(%rdi), %ymm45714; AVX2-FCP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5715; AVX2-FCP-NEXT:    vmovaps 528(%rdi), %xmm35716; AVX2-FCP-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5717; AVX2-FCP-NEXT:    vmovaps 512(%rdi), %xmm15718; AVX2-FCP-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5719; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm1[0],xmm3[0],xmm1[1],xmm3[1]5720; AVX2-FCP-NEXT:    vpermps %ymm4, %ymm2, %ymm35721; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm3[2,3]5722; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]5723; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5724; AVX2-FCP-NEXT:    vmovaps 832(%rdi), %ymm35725; AVX2-FCP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5726; AVX2-FCP-NEXT:    vmovaps 864(%rdi), %ymm05727; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5728; AVX2-FCP-NEXT:    vpermps %ymm0, %ymm2, %ymm05729; AVX2-FCP-NEXT:    vpermps %ymm3, %ymm2, %ymm15730; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]5731; AVX2-FCP-NEXT:    vmovaps 800(%rdi), %ymm45732; AVX2-FCP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5733; AVX2-FCP-NEXT:    vmovaps 784(%rdi), %xmm35734; AVX2-FCP-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5735; AVX2-FCP-NEXT:    vmovaps 768(%rdi), %xmm15736; AVX2-FCP-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5737; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm1[0],xmm3[0],xmm1[1],xmm3[1]5738; AVX2-FCP-NEXT:    vpermps %ymm4, %ymm2, %ymm35739; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm3[2,3]5740; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]5741; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5742; AVX2-FCP-NEXT:    vmovaps 64(%rdi), %ymm15743; AVX2-FCP-NEXT:    vmovaps 96(%rdi), %ymm75744; AVX2-FCP-NEXT:    vpermps %ymm7, %ymm2, %ymm05745; AVX2-FCP-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5746; AVX2-FCP-NEXT:    vpermps %ymm1, %ymm2, %ymm45747; AVX2-FCP-NEXT:    vmovaps %ymm1, %ymm35748; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5749; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm4[0,1,2,3,4,5],ymm0[6,7]5750; AVX2-FCP-NEXT:    vmovaps 32(%rdi), %ymm15751; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5752; AVX2-FCP-NEXT:    vpermps %ymm1, %ymm2, %ymm25753; AVX2-FCP-NEXT:    vmovaps (%rdi), %xmm15754; AVX2-FCP-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5755; AVX2-FCP-NEXT:    vmovaps 16(%rdi), %xmm45756; AVX2-FCP-NEXT:    vmovaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5757; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm4 = xmm1[0],xmm4[0],xmm1[1],xmm4[1]5758; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm2 = xmm4[0,1],xmm2[2,3]5759; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1,2,3],ymm0[4,5,6,7]5760; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5761; AVX2-FCP-NEXT:    vbroadcastsd {{.*#+}} ymm2 = [1,5,1,5,1,5,1,5]5762; AVX2-FCP-NEXT:    vpermps %ymm14, %ymm2, %ymm05763; AVX2-FCP-NEXT:    vpermps %ymm10, %ymm2, %ymm45764; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm4[0,1,2,3,4,5],ymm0[6,7]5765; AVX2-FCP-NEXT:    vmovaps 128(%rdi), %ymm15766; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5767; AVX2-FCP-NEXT:    vmovaps 176(%rdi), %xmm55768; AVX2-FCP-NEXT:    vmovaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5769; AVX2-FCP-NEXT:    vmovaps 160(%rdi), %xmm45770; AVX2-FCP-NEXT:    vmovaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5771; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm4 = xmm4[0],xmm5[0],xmm4[1],xmm5[1]5772; AVX2-FCP-NEXT:    vpermps %ymm1, %ymm2, %ymm55773; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm4 = xmm5[0,1],xmm4[2,3]5774; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm4[0,1,2,3],ymm0[4,5,6,7]5775; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5776; AVX2-FCP-NEXT:    vpermps %ymm15, %ymm2, %ymm05777; AVX2-FCP-NEXT:    vmovups %ymm15, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5778; AVX2-FCP-NEXT:    vpermps %ymm9, %ymm2, %ymm45779; AVX2-FCP-NEXT:    vmovaps %ymm9, %ymm105780; AVX2-FCP-NEXT:    vmovups %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5781; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm4[0,1,2,3,4,5],ymm0[6,7]5782; AVX2-FCP-NEXT:    vmovaps 384(%rdi), %ymm15783; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5784; AVX2-FCP-NEXT:    vmovaps 432(%rdi), %xmm55785; AVX2-FCP-NEXT:    vmovaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5786; AVX2-FCP-NEXT:    vmovaps 416(%rdi), %xmm45787; AVX2-FCP-NEXT:    vmovaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5788; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm4 = xmm4[0],xmm5[0],xmm4[1],xmm5[1]5789; AVX2-FCP-NEXT:    vpermps %ymm1, %ymm2, %ymm55790; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm4 = xmm5[0,1],xmm4[2,3]5791; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm4[0,1,2,3],ymm0[4,5,6,7]5792; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5793; AVX2-FCP-NEXT:    vpermps %ymm11, %ymm2, %ymm05794; AVX2-FCP-NEXT:    vpermps %ymm13, %ymm2, %ymm45795; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm4[0,1,2,3,4,5],ymm0[6,7]5796; AVX2-FCP-NEXT:    vmovaps 640(%rdi), %ymm15797; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5798; AVX2-FCP-NEXT:    vmovaps 688(%rdi), %xmm55799; AVX2-FCP-NEXT:    vmovaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5800; AVX2-FCP-NEXT:    vmovaps 672(%rdi), %xmm45801; AVX2-FCP-NEXT:    vmovaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5802; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm4 = xmm4[0],xmm5[0],xmm4[1],xmm5[1]5803; AVX2-FCP-NEXT:    vpermps %ymm1, %ymm2, %ymm55804; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm4 = xmm5[0,1],xmm4[2,3]5805; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm4[0,1,2,3],ymm0[4,5,6,7]5806; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5807; AVX2-FCP-NEXT:    vpermps %ymm8, %ymm2, %ymm05808; AVX2-FCP-NEXT:    vmovaps %ymm8, %ymm115809; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload5810; AVX2-FCP-NEXT:    vpermps %ymm8, %ymm2, %ymm45811; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm4[0,1,2,3,4,5],ymm0[6,7]5812; AVX2-FCP-NEXT:    vmovaps 896(%rdi), %ymm15813; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5814; AVX2-FCP-NEXT:    vmovaps 944(%rdi), %xmm55815; AVX2-FCP-NEXT:    vmovaps %xmm5, (%rsp) # 16-byte Spill5816; AVX2-FCP-NEXT:    vmovaps 928(%rdi), %xmm45817; AVX2-FCP-NEXT:    vmovaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5818; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm4 = xmm4[0],xmm5[0],xmm4[1],xmm5[1]5819; AVX2-FCP-NEXT:    vpermps %ymm1, %ymm2, %ymm55820; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm4 = xmm5[0,1],xmm4[2,3]5821; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm4[0,1,2,3],ymm0[4,5,6,7]5822; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5823; AVX2-FCP-NEXT:    vpermps %ymm7, %ymm2, %ymm05824; AVX2-FCP-NEXT:    vpermps %ymm3, %ymm2, %ymm45825; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm4[0,1,2,3,4,5],ymm0[6,7]5826; AVX2-FCP-NEXT:    vmovaps (%rdi), %ymm15827; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5828; AVX2-FCP-NEXT:    vmovaps 32(%rdi), %xmm35829; AVX2-FCP-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5830; AVX2-FCP-NEXT:    vmovaps 48(%rdi), %xmm45831; AVX2-FCP-NEXT:    vmovaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5832; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm4 = xmm3[0],xmm4[0],xmm3[1],xmm4[1]5833; AVX2-FCP-NEXT:    vpermps %ymm1, %ymm2, %ymm55834; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm4 = xmm5[0,1],xmm4[2,3]5835; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm4[0,1,2,3],ymm0[4,5,6,7]5836; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5837; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload5838; AVX2-FCP-NEXT:    vpermps %ymm6, %ymm2, %ymm05839; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload5840; AVX2-FCP-NEXT:    vpermps %ymm7, %ymm2, %ymm45841; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm4[0,1,2,3,4,5],ymm0[6,7]5842; AVX2-FCP-NEXT:    vmovaps 256(%rdi), %ymm15843; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5844; AVX2-FCP-NEXT:    vmovaps 304(%rdi), %xmm35845; AVX2-FCP-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5846; AVX2-FCP-NEXT:    vmovaps 288(%rdi), %xmm45847; AVX2-FCP-NEXT:    vmovaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5848; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm4 = xmm4[0],xmm3[0],xmm4[1],xmm3[1]5849; AVX2-FCP-NEXT:    vpermps %ymm1, %ymm2, %ymm55850; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm4 = xmm5[0,1],xmm4[2,3]5851; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm4[0,1,2,3],ymm0[4,5,6,7]5852; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5853; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm13 # 32-byte Reload5854; AVX2-FCP-NEXT:    vpermps %ymm13, %ymm2, %ymm05855; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm12 # 32-byte Reload5856; AVX2-FCP-NEXT:    vpermps %ymm12, %ymm2, %ymm45857; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm4[0,1,2,3,4,5],ymm0[6,7]5858; AVX2-FCP-NEXT:    vmovaps 512(%rdi), %ymm15859; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5860; AVX2-FCP-NEXT:    vmovaps 560(%rdi), %xmm35861; AVX2-FCP-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5862; AVX2-FCP-NEXT:    vmovaps 544(%rdi), %xmm45863; AVX2-FCP-NEXT:    vmovaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5864; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm4 = xmm4[0],xmm3[0],xmm4[1],xmm3[1]5865; AVX2-FCP-NEXT:    vpermps %ymm1, %ymm2, %ymm55866; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm4 = xmm5[0,1],xmm4[2,3]5867; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm4[0,1,2,3],ymm0[4,5,6,7]5868; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5869; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload5870; AVX2-FCP-NEXT:    vpermps %ymm3, %ymm2, %ymm05871; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload5872; AVX2-FCP-NEXT:    vpermps %ymm1, %ymm2, %ymm45873; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm4[0,1,2,3,4,5],ymm0[6,7]5874; AVX2-FCP-NEXT:    vmovaps 768(%rdi), %ymm45875; AVX2-FCP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5876; AVX2-FCP-NEXT:    vpermps %ymm4, %ymm2, %ymm25877; AVX2-FCP-NEXT:    vmovaps 816(%rdi), %xmm55878; AVX2-FCP-NEXT:    vmovaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5879; AVX2-FCP-NEXT:    vmovaps 800(%rdi), %xmm45880; AVX2-FCP-NEXT:    vmovaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5881; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm4 = xmm4[0],xmm5[0],xmm4[1],xmm5[1]5882; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm2 = xmm2[0,1],xmm4[2,3]5883; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1,2,3],ymm0[4,5,6,7]5884; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5885; AVX2-FCP-NEXT:    vbroadcastsd {{.*#+}} ymm0 = [2,6,2,6,2,6,2,6]5886; AVX2-FCP-NEXT:    vpermps %ymm14, %ymm0, %ymm25887; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload5888; AVX2-FCP-NEXT:    vpermps %ymm5, %ymm0, %ymm45889; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm2 = ymm4[0,1,2,3,4,5],ymm2[6,7]5890; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload5891; AVX2-FCP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4, %xmm4 # 16-byte Folded Reload5892; AVX2-FCP-NEXT:    # xmm4 = xmm4[2],mem[2],xmm4[3],mem[3]5893; AVX2-FCP-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm9 # 32-byte Folded Reload5894; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm4 = xmm4[0,1],xmm9[2,3]5895; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm2 = ymm4[0,1,2,3],ymm2[4,5,6,7]5896; AVX2-FCP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5897; AVX2-FCP-NEXT:    vpermps %ymm15, %ymm0, %ymm25898; AVX2-FCP-NEXT:    vpermps %ymm10, %ymm0, %ymm45899; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm2 = ymm4[0,1,2,3,4,5],ymm2[6,7]5900; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload5901; AVX2-FCP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4, %xmm4 # 16-byte Folded Reload5902; AVX2-FCP-NEXT:    # xmm4 = xmm4[2],mem[2],xmm4[3],mem[3]5903; AVX2-FCP-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm9 # 32-byte Folded Reload5904; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm4 = xmm4[0,1],xmm9[2,3]5905; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm2 = ymm4[0,1,2,3],ymm2[4,5,6,7]5906; AVX2-FCP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5907; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Reload5908; AVX2-FCP-NEXT:    vpermps %ymm15, %ymm0, %ymm25909; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload5910; AVX2-FCP-NEXT:    vpermps %ymm10, %ymm0, %ymm45911; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm2 = ymm4[0,1,2,3,4,5],ymm2[6,7]5912; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload5913; AVX2-FCP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4, %xmm4 # 16-byte Folded Reload5914; AVX2-FCP-NEXT:    # xmm4 = xmm4[2],mem[2],xmm4[3],mem[3]5915; AVX2-FCP-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm9 # 32-byte Folded Reload5916; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm4 = xmm4[0,1],xmm9[2,3]5917; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm2 = ymm4[0,1,2,3],ymm2[4,5,6,7]5918; AVX2-FCP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5919; AVX2-FCP-NEXT:    vpermps %ymm11, %ymm0, %ymm25920; AVX2-FCP-NEXT:    vpermps %ymm8, %ymm0, %ymm45921; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm2 = ymm4[0,1,2,3,4,5],ymm2[6,7]5922; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload5923; AVX2-FCP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4, %xmm4 # 16-byte Folded Reload5924; AVX2-FCP-NEXT:    # xmm4 = xmm4[2],mem[2],xmm4[3],mem[3]5925; AVX2-FCP-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm9 # 32-byte Folded Reload5926; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm4 = xmm4[0,1],xmm9[2,3]5927; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm2 = ymm4[0,1,2,3],ymm2[4,5,6,7]5928; AVX2-FCP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5929; AVX2-FCP-NEXT:    vpermps %ymm6, %ymm0, %ymm25930; AVX2-FCP-NEXT:    vpermps %ymm7, %ymm0, %ymm45931; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm2 = ymm4[0,1,2,3,4,5],ymm2[6,7]5932; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload5933; AVX2-FCP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4, %xmm4 # 16-byte Folded Reload5934; AVX2-FCP-NEXT:    # xmm4 = xmm4[2],mem[2],xmm4[3],mem[3]5935; AVX2-FCP-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm9 # 32-byte Folded Reload5936; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm4 = xmm4[0,1],xmm9[2,3]5937; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm2 = ymm4[0,1,2,3],ymm2[4,5,6,7]5938; AVX2-FCP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5939; AVX2-FCP-NEXT:    vpermps %ymm13, %ymm0, %ymm25940; AVX2-FCP-NEXT:    vpermps %ymm12, %ymm0, %ymm45941; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm2 = ymm4[0,1,2,3,4,5],ymm2[6,7]5942; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload5943; AVX2-FCP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4, %xmm4 # 16-byte Folded Reload5944; AVX2-FCP-NEXT:    # xmm4 = xmm4[2],mem[2],xmm4[3],mem[3]5945; AVX2-FCP-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm9 # 32-byte Folded Reload5946; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm4 = xmm4[0,1],xmm9[2,3]5947; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm2 = ymm4[0,1,2,3],ymm2[4,5,6,7]5948; AVX2-FCP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5949; AVX2-FCP-NEXT:    vpermps %ymm3, %ymm0, %ymm25950; AVX2-FCP-NEXT:    vpermps %ymm1, %ymm0, %ymm45951; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm2 = ymm4[0,1,2,3,4,5],ymm2[6,7]5952; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload5953; AVX2-FCP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm4 # 16-byte Folded Reload5954; AVX2-FCP-NEXT:    # xmm4 = xmm1[2],mem[2],xmm1[3],mem[3]5955; AVX2-FCP-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm9 # 32-byte Folded Reload5956; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm4 = xmm4[0,1],xmm9[2,3]5957; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm4[0,1,2,3],ymm2[4,5,6,7]5958; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5959; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload5960; AVX2-FCP-NEXT:    vpermps %ymm1, %ymm0, %ymm25961; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload5962; AVX2-FCP-NEXT:    vpermps %ymm3, %ymm0, %ymm45963; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm2 = ymm4[0,1,2,3,4,5],ymm2[6,7]5964; AVX2-FCP-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload5965; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload5966; AVX2-FCP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4, %xmm4 # 16-byte Folded Reload5967; AVX2-FCP-NEXT:    # xmm4 = xmm4[2],mem[2],xmm4[3],mem[3]5968; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm0 = xmm4[0,1],xmm0[2,3]5969; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm9 = ymm0[0,1,2,3],ymm2[4,5,6,7]5970; AVX2-FCP-NEXT:    vbroadcastsd {{.*#+}} ymm0 = [3,7,3,7,3,7,3,7]5971; AVX2-FCP-NEXT:    vpermps %ymm14, %ymm0, %ymm25972; AVX2-FCP-NEXT:    vpermps %ymm5, %ymm0, %ymm45973; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm2 = ymm4[0,1,2,3,4,5],ymm2[6,7]5974; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload5975; AVX2-FCP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4, %xmm4 # 16-byte Folded Reload5976; AVX2-FCP-NEXT:    # xmm4 = xmm4[2],mem[2],xmm4[3],mem[3]5977; AVX2-FCP-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm14 # 32-byte Folded Reload5978; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm4 = xmm14[0,1],xmm4[2,3]5979; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm2 = ymm4[0,1,2,3],ymm2[4,5,6,7]5980; AVX2-FCP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5981; AVX2-FCP-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm2 # 32-byte Folded Reload5982; AVX2-FCP-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm4 # 32-byte Folded Reload5983; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm2 = ymm4[0,1,2,3,4,5],ymm2[6,7]5984; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload5985; AVX2-FCP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4, %xmm4 # 16-byte Folded Reload5986; AVX2-FCP-NEXT:    # xmm4 = xmm4[2],mem[2],xmm4[3],mem[3]5987; AVX2-FCP-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm14 # 32-byte Folded Reload5988; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm4 = xmm14[0,1],xmm4[2,3]5989; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm2[4,5,6,7]5990; AVX2-FCP-NEXT:    vpermps %ymm15, %ymm0, %ymm25991; AVX2-FCP-NEXT:    vpermps %ymm10, %ymm0, %ymm145992; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm2 = ymm14[0,1,2,3,4,5],ymm2[6,7]5993; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload5994; AVX2-FCP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5, %xmm14 # 16-byte Folded Reload5995; AVX2-FCP-NEXT:    # xmm14 = xmm5[2],mem[2],xmm5[3],mem[3]5996; AVX2-FCP-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm15 # 32-byte Folded Reload5997; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm14 = xmm15[0,1],xmm14[2,3]5998; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm2 = ymm14[0,1,2,3],ymm2[4,5,6,7]5999; AVX2-FCP-NEXT:    vpermps %ymm11, %ymm0, %ymm116000; AVX2-FCP-NEXT:    vpermps %ymm8, %ymm0, %ymm146001; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm11 = ymm14[0,1,2,3,4,5],ymm11[6,7]6002; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload6003; AVX2-FCP-NEXT:    vunpckhps (%rsp), %xmm5, %xmm14 # 16-byte Folded Reload6004; AVX2-FCP-NEXT:    # xmm14 = xmm5[2],mem[2],xmm5[3],mem[3]6005; AVX2-FCP-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm15 # 32-byte Folded Reload6006; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm14 = xmm15[0,1],xmm14[2,3]6007; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm11 = ymm14[0,1,2,3],ymm11[4,5,6,7]6008; AVX2-FCP-NEXT:    vpermps %ymm1, %ymm0, %ymm16009; AVX2-FCP-NEXT:    vpermps %ymm3, %ymm0, %ymm36010; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm3[0,1,2,3,4,5],ymm1[6,7]6011; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload6012; AVX2-FCP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3, %xmm3 # 16-byte Folded Reload6013; AVX2-FCP-NEXT:    # xmm3 = xmm3[2],mem[2],xmm3[3],mem[3]6014; AVX2-FCP-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm14 # 32-byte Folded Reload6015; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm3 = xmm14[0,1],xmm3[2,3]6016; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm3[0,1,2,3],ymm1[4,5,6,7]6017; AVX2-FCP-NEXT:    vpermps %ymm6, %ymm0, %ymm36018; AVX2-FCP-NEXT:    vpermps %ymm7, %ymm0, %ymm146019; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm14[0,1,2,3,4,5],ymm3[6,7]6020; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload6021; AVX2-FCP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5, %xmm14 # 16-byte Folded Reload6022; AVX2-FCP-NEXT:    # xmm14 = xmm5[2],mem[2],xmm5[3],mem[3]6023; AVX2-FCP-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm15 # 32-byte Folded Reload6024; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm14 = xmm15[0,1],xmm14[2,3]6025; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm14[0,1,2,3],ymm3[4,5,6,7]6026; AVX2-FCP-NEXT:    vpermps %ymm13, %ymm0, %ymm106027; AVX2-FCP-NEXT:    vpermps %ymm12, %ymm0, %ymm146028; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm10 = ymm14[0,1,2,3,4,5],ymm10[6,7]6029; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload6030; AVX2-FCP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5, %xmm13 # 16-byte Folded Reload6031; AVX2-FCP-NEXT:    # xmm13 = xmm5[2],mem[2],xmm5[3],mem[3]6032; AVX2-FCP-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm14 # 32-byte Folded Reload6033; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm13 = xmm14[0,1],xmm13[2,3]6034; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm10 = ymm13[0,1,2,3],ymm10[4,5,6,7]6035; AVX2-FCP-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm7 # 32-byte Folded Reload6036; AVX2-FCP-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm8 # 32-byte Folded Reload6037; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm7 = ymm8[0,1,2,3,4,5],ymm7[6,7]6038; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload6039; AVX2-FCP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5, %xmm5 # 16-byte Folded Reload6040; AVX2-FCP-NEXT:    # xmm5 = xmm5[2],mem[2],xmm5[3],mem[3]6041; AVX2-FCP-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload6042; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm5[2,3]6043; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm7[4,5,6,7]6044; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload6045; AVX2-FCP-NEXT:    vmovaps %ymm5, 192(%rsi)6046; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload6047; AVX2-FCP-NEXT:    vmovaps %ymm5, 128(%rsi)6048; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload6049; AVX2-FCP-NEXT:    vmovaps %ymm5, 64(%rsi)6050; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload6051; AVX2-FCP-NEXT:    vmovaps %ymm5, (%rsi)6052; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload6053; AVX2-FCP-NEXT:    vmovaps %ymm5, 224(%rsi)6054; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload6055; AVX2-FCP-NEXT:    vmovaps %ymm5, 160(%rsi)6056; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload6057; AVX2-FCP-NEXT:    vmovaps %ymm5, 96(%rsi)6058; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload6059; AVX2-FCP-NEXT:    vmovaps %ymm5, 32(%rsi)6060; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload6061; AVX2-FCP-NEXT:    vmovaps %ymm5, 192(%rdx)6062; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload6063; AVX2-FCP-NEXT:    vmovaps %ymm5, 128(%rdx)6064; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload6065; AVX2-FCP-NEXT:    vmovaps %ymm5, 64(%rdx)6066; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload6067; AVX2-FCP-NEXT:    vmovaps %ymm5, (%rdx)6068; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload6069; AVX2-FCP-NEXT:    vmovaps %ymm5, 224(%rdx)6070; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload6071; AVX2-FCP-NEXT:    vmovaps %ymm5, 160(%rdx)6072; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload6073; AVX2-FCP-NEXT:    vmovaps %ymm5, 96(%rdx)6074; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload6075; AVX2-FCP-NEXT:    vmovaps %ymm5, 32(%rdx)6076; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload6077; AVX2-FCP-NEXT:    vmovaps %ymm5, 192(%rcx)6078; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload6079; AVX2-FCP-NEXT:    vmovaps %ymm5, 128(%rcx)6080; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload6081; AVX2-FCP-NEXT:    vmovaps %ymm5, 64(%rcx)6082; AVX2-FCP-NEXT:    vmovaps %ymm9, (%rcx)6083; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload6084; AVX2-FCP-NEXT:    vmovaps %ymm5, 224(%rcx)6085; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload6086; AVX2-FCP-NEXT:    vmovaps %ymm5, 160(%rcx)6087; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload6088; AVX2-FCP-NEXT:    vmovaps %ymm5, 96(%rcx)6089; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload6090; AVX2-FCP-NEXT:    vmovaps %ymm5, 32(%rcx)6091; AVX2-FCP-NEXT:    vmovaps %ymm0, 192(%r8)6092; AVX2-FCP-NEXT:    vmovaps %ymm10, 128(%r8)6093; AVX2-FCP-NEXT:    vmovaps %ymm3, 64(%r8)6094; AVX2-FCP-NEXT:    vmovaps %ymm1, (%r8)6095; AVX2-FCP-NEXT:    vmovaps %ymm11, 224(%r8)6096; AVX2-FCP-NEXT:    vmovaps %ymm2, 160(%r8)6097; AVX2-FCP-NEXT:    vmovaps %ymm4, 96(%r8)6098; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6099; AVX2-FCP-NEXT:    vmovaps %ymm0, 32(%r8)6100; AVX2-FCP-NEXT:    addq $1944, %rsp # imm = 0x7986101; AVX2-FCP-NEXT:    vzeroupper6102; AVX2-FCP-NEXT:    retq6103;6104; AVX512-LABEL: load_i32_stride4_vf64:6105; AVX512:       # %bb.0:6106; AVX512-NEXT:    vmovdqa64 (%rdi), %zmm06107; AVX512-NEXT:    vmovdqa64 64(%rdi), %zmm16108; AVX512-NEXT:    vmovdqa64 128(%rdi), %zmm26109; AVX512-NEXT:    vmovdqa64 192(%rdi), %zmm36110; AVX512-NEXT:    vmovdqa64 832(%rdi), %zmm46111; AVX512-NEXT:    vmovdqa64 768(%rdi), %zmm56112; AVX512-NEXT:    vmovdqa64 960(%rdi), %zmm106113; AVX512-NEXT:    vmovdqa64 896(%rdi), %zmm76114; AVX512-NEXT:    vmovdqa64 320(%rdi), %zmm146115; AVX512-NEXT:    vmovdqa64 256(%rdi), %zmm156116; AVX512-NEXT:    vmovdqa64 448(%rdi), %zmm176117; AVX512-NEXT:    vmovdqa64 384(%rdi), %zmm166118; AVX512-NEXT:    vmovdqa64 576(%rdi), %zmm86119; AVX512-NEXT:    vmovdqa64 512(%rdi), %zmm96120; AVX512-NEXT:    vmovdqa64 704(%rdi), %zmm126121; AVX512-NEXT:    vmovdqa64 640(%rdi), %zmm116122; AVX512-NEXT:    vbroadcasti64x4 {{.*#+}} zmm19 = [0,4,8,12,16,20,24,28,0,4,8,12,16,20,24,28]6123; AVX512-NEXT:    # zmm19 = mem[0,1,2,3,0,1,2,3]6124; AVX512-NEXT:    vmovdqa64 %zmm11, %zmm66125; AVX512-NEXT:    vpermt2d %zmm12, %zmm19, %zmm66126; AVX512-NEXT:    vmovdqa64 %zmm9, %zmm136127; AVX512-NEXT:    vpermt2d %zmm8, %zmm19, %zmm136128; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm6 = zmm13[0,1,2,3],zmm6[4,5,6,7]6129; AVX512-NEXT:    vmovdqa64 %zmm16, %zmm136130; AVX512-NEXT:    vpermt2d %zmm17, %zmm19, %zmm136131; AVX512-NEXT:    vmovdqa64 %zmm15, %zmm186132; AVX512-NEXT:    vpermt2d %zmm14, %zmm19, %zmm186133; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm13 = zmm18[0,1,2,3],zmm13[4,5,6,7]6134; AVX512-NEXT:    vmovdqa64 %zmm7, %zmm186135; AVX512-NEXT:    vpermt2d %zmm10, %zmm19, %zmm186136; AVX512-NEXT:    vmovdqa64 %zmm5, %zmm206137; AVX512-NEXT:    vpermt2d %zmm4, %zmm19, %zmm206138; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm18 = zmm20[0,1,2,3],zmm18[4,5,6,7]6139; AVX512-NEXT:    vmovdqa64 %zmm2, %zmm206140; AVX512-NEXT:    vpermt2d %zmm3, %zmm19, %zmm206141; AVX512-NEXT:    vpermi2d %zmm1, %zmm0, %zmm196142; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm19 = zmm19[0,1,2,3],zmm20[4,5,6,7]6143; AVX512-NEXT:    vbroadcasti64x4 {{.*#+}} zmm21 = [1,5,9,13,17,21,25,29,1,5,9,13,17,21,25,29]6144; AVX512-NEXT:    # zmm21 = mem[0,1,2,3,0,1,2,3]6145; AVX512-NEXT:    vmovdqa64 %zmm11, %zmm206146; AVX512-NEXT:    vpermt2d %zmm12, %zmm21, %zmm206147; AVX512-NEXT:    vmovdqa64 %zmm9, %zmm226148; AVX512-NEXT:    vpermt2d %zmm8, %zmm21, %zmm226149; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm20 = zmm22[0,1,2,3],zmm20[4,5,6,7]6150; AVX512-NEXT:    vmovdqa64 %zmm16, %zmm226151; AVX512-NEXT:    vpermt2d %zmm17, %zmm21, %zmm226152; AVX512-NEXT:    vmovdqa64 %zmm15, %zmm236153; AVX512-NEXT:    vpermt2d %zmm14, %zmm21, %zmm236154; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm22 = zmm23[0,1,2,3],zmm22[4,5,6,7]6155; AVX512-NEXT:    vmovdqa64 %zmm7, %zmm236156; AVX512-NEXT:    vpermt2d %zmm10, %zmm21, %zmm236157; AVX512-NEXT:    vmovdqa64 %zmm5, %zmm246158; AVX512-NEXT:    vpermt2d %zmm4, %zmm21, %zmm246159; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm23 = zmm24[0,1,2,3],zmm23[4,5,6,7]6160; AVX512-NEXT:    vmovdqa64 %zmm2, %zmm246161; AVX512-NEXT:    vpermt2d %zmm3, %zmm21, %zmm246162; AVX512-NEXT:    vpermi2d %zmm1, %zmm0, %zmm216163; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm21 = zmm21[0,1,2,3],zmm24[4,5,6,7]6164; AVX512-NEXT:    vbroadcasti64x4 {{.*#+}} zmm24 = [2,6,10,14,18,22,26,30,2,6,10,14,18,22,26,30]6165; AVX512-NEXT:    # zmm24 = mem[0,1,2,3,0,1,2,3]6166; AVX512-NEXT:    vmovdqa64 %zmm11, %zmm256167; AVX512-NEXT:    vpermt2d %zmm12, %zmm24, %zmm256168; AVX512-NEXT:    vmovdqa64 %zmm9, %zmm266169; AVX512-NEXT:    vpermt2d %zmm8, %zmm24, %zmm266170; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm25 = zmm26[0,1,2,3],zmm25[4,5,6,7]6171; AVX512-NEXT:    vmovdqa64 %zmm16, %zmm266172; AVX512-NEXT:    vpermt2d %zmm17, %zmm24, %zmm266173; AVX512-NEXT:    vmovdqa64 %zmm15, %zmm276174; AVX512-NEXT:    vpermt2d %zmm14, %zmm24, %zmm276175; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm26 = zmm27[0,1,2,3],zmm26[4,5,6,7]6176; AVX512-NEXT:    vmovdqa64 %zmm7, %zmm276177; AVX512-NEXT:    vpermt2d %zmm10, %zmm24, %zmm276178; AVX512-NEXT:    vmovdqa64 %zmm5, %zmm286179; AVX512-NEXT:    vpermt2d %zmm4, %zmm24, %zmm286180; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm27 = zmm28[0,1,2,3],zmm27[4,5,6,7]6181; AVX512-NEXT:    vmovdqa64 %zmm2, %zmm286182; AVX512-NEXT:    vpermt2d %zmm3, %zmm24, %zmm286183; AVX512-NEXT:    vpermi2d %zmm1, %zmm0, %zmm246184; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm24 = zmm24[0,1,2,3],zmm28[4,5,6,7]6185; AVX512-NEXT:    vbroadcasti64x4 {{.*#+}} zmm28 = [3,7,11,15,19,23,27,31,3,7,11,15,19,23,27,31]6186; AVX512-NEXT:    # zmm28 = mem[0,1,2,3,0,1,2,3]6187; AVX512-NEXT:    vpermt2d %zmm17, %zmm28, %zmm166188; AVX512-NEXT:    vpermt2d %zmm14, %zmm28, %zmm156189; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm14 = zmm15[0,1,2,3],zmm16[4,5,6,7]6190; AVX512-NEXT:    vpermt2d %zmm10, %zmm28, %zmm76191; AVX512-NEXT:    vpermt2d %zmm4, %zmm28, %zmm56192; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm4 = zmm5[0,1,2,3],zmm7[4,5,6,7]6193; AVX512-NEXT:    vpermt2d %zmm12, %zmm28, %zmm116194; AVX512-NEXT:    vpermt2d %zmm8, %zmm28, %zmm96195; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm5 = zmm9[0,1,2,3],zmm11[4,5,6,7]6196; AVX512-NEXT:    vpermt2d %zmm3, %zmm28, %zmm26197; AVX512-NEXT:    vpermt2d %zmm1, %zmm28, %zmm06198; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm0 = zmm0[0,1,2,3],zmm2[4,5,6,7]6199; AVX512-NEXT:    vmovdqa64 %zmm18, 192(%rsi)6200; AVX512-NEXT:    vmovdqa64 %zmm19, (%rsi)6201; AVX512-NEXT:    vmovdqa64 %zmm13, 64(%rsi)6202; AVX512-NEXT:    vmovdqa64 %zmm6, 128(%rsi)6203; AVX512-NEXT:    vmovdqa64 %zmm23, 192(%rdx)6204; AVX512-NEXT:    vmovdqa64 %zmm21, (%rdx)6205; AVX512-NEXT:    vmovdqa64 %zmm22, 64(%rdx)6206; AVX512-NEXT:    vmovdqa64 %zmm20, 128(%rdx)6207; AVX512-NEXT:    vmovdqa64 %zmm27, 192(%rcx)6208; AVX512-NEXT:    vmovdqa64 %zmm24, (%rcx)6209; AVX512-NEXT:    vmovdqa64 %zmm26, 64(%rcx)6210; AVX512-NEXT:    vmovdqa64 %zmm25, 128(%rcx)6211; AVX512-NEXT:    vmovdqa64 %zmm5, 128(%r8)6212; AVX512-NEXT:    vmovdqa64 %zmm4, 192(%r8)6213; AVX512-NEXT:    vmovdqa64 %zmm0, (%r8)6214; AVX512-NEXT:    vmovdqa64 %zmm14, 64(%r8)6215; AVX512-NEXT:    vzeroupper6216; AVX512-NEXT:    retq6217;6218; AVX512-FCP-LABEL: load_i32_stride4_vf64:6219; AVX512-FCP:       # %bb.0:6220; AVX512-FCP-NEXT:    vmovdqa64 (%rdi), %zmm06221; AVX512-FCP-NEXT:    vmovdqa64 64(%rdi), %zmm16222; AVX512-FCP-NEXT:    vmovdqa64 128(%rdi), %zmm26223; AVX512-FCP-NEXT:    vmovdqa64 192(%rdi), %zmm36224; AVX512-FCP-NEXT:    vmovdqa64 832(%rdi), %zmm46225; AVX512-FCP-NEXT:    vmovdqa64 768(%rdi), %zmm56226; AVX512-FCP-NEXT:    vmovdqa64 960(%rdi), %zmm106227; AVX512-FCP-NEXT:    vmovdqa64 896(%rdi), %zmm76228; AVX512-FCP-NEXT:    vmovdqa64 320(%rdi), %zmm146229; AVX512-FCP-NEXT:    vmovdqa64 256(%rdi), %zmm156230; AVX512-FCP-NEXT:    vmovdqa64 448(%rdi), %zmm176231; AVX512-FCP-NEXT:    vmovdqa64 384(%rdi), %zmm166232; AVX512-FCP-NEXT:    vmovdqa64 576(%rdi), %zmm86233; AVX512-FCP-NEXT:    vmovdqa64 512(%rdi), %zmm96234; AVX512-FCP-NEXT:    vmovdqa64 704(%rdi), %zmm126235; AVX512-FCP-NEXT:    vmovdqa64 640(%rdi), %zmm116236; AVX512-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm19 = [0,4,8,12,16,20,24,28,0,4,8,12,16,20,24,28]6237; AVX512-FCP-NEXT:    # zmm19 = mem[0,1,2,3,0,1,2,3]6238; AVX512-FCP-NEXT:    vmovdqa64 %zmm11, %zmm66239; AVX512-FCP-NEXT:    vpermt2d %zmm12, %zmm19, %zmm66240; AVX512-FCP-NEXT:    vmovdqa64 %zmm9, %zmm136241; AVX512-FCP-NEXT:    vpermt2d %zmm8, %zmm19, %zmm136242; AVX512-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm6 = zmm13[0,1,2,3],zmm6[4,5,6,7]6243; AVX512-FCP-NEXT:    vmovdqa64 %zmm16, %zmm136244; AVX512-FCP-NEXT:    vpermt2d %zmm17, %zmm19, %zmm136245; AVX512-FCP-NEXT:    vmovdqa64 %zmm15, %zmm186246; AVX512-FCP-NEXT:    vpermt2d %zmm14, %zmm19, %zmm186247; AVX512-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm13 = zmm18[0,1,2,3],zmm13[4,5,6,7]6248; AVX512-FCP-NEXT:    vmovdqa64 %zmm7, %zmm186249; AVX512-FCP-NEXT:    vpermt2d %zmm10, %zmm19, %zmm186250; AVX512-FCP-NEXT:    vmovdqa64 %zmm5, %zmm206251; AVX512-FCP-NEXT:    vpermt2d %zmm4, %zmm19, %zmm206252; AVX512-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm18 = zmm20[0,1,2,3],zmm18[4,5,6,7]6253; AVX512-FCP-NEXT:    vmovdqa64 %zmm2, %zmm206254; AVX512-FCP-NEXT:    vpermt2d %zmm3, %zmm19, %zmm206255; AVX512-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm196256; AVX512-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm19 = zmm19[0,1,2,3],zmm20[4,5,6,7]6257; AVX512-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm21 = [1,5,9,13,17,21,25,29,1,5,9,13,17,21,25,29]6258; AVX512-FCP-NEXT:    # zmm21 = mem[0,1,2,3,0,1,2,3]6259; AVX512-FCP-NEXT:    vmovdqa64 %zmm11, %zmm206260; AVX512-FCP-NEXT:    vpermt2d %zmm12, %zmm21, %zmm206261; AVX512-FCP-NEXT:    vmovdqa64 %zmm9, %zmm226262; AVX512-FCP-NEXT:    vpermt2d %zmm8, %zmm21, %zmm226263; AVX512-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm20 = zmm22[0,1,2,3],zmm20[4,5,6,7]6264; AVX512-FCP-NEXT:    vmovdqa64 %zmm16, %zmm226265; AVX512-FCP-NEXT:    vpermt2d %zmm17, %zmm21, %zmm226266; AVX512-FCP-NEXT:    vmovdqa64 %zmm15, %zmm236267; AVX512-FCP-NEXT:    vpermt2d %zmm14, %zmm21, %zmm236268; AVX512-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm22 = zmm23[0,1,2,3],zmm22[4,5,6,7]6269; AVX512-FCP-NEXT:    vmovdqa64 %zmm7, %zmm236270; AVX512-FCP-NEXT:    vpermt2d %zmm10, %zmm21, %zmm236271; AVX512-FCP-NEXT:    vmovdqa64 %zmm5, %zmm246272; AVX512-FCP-NEXT:    vpermt2d %zmm4, %zmm21, %zmm246273; AVX512-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm23 = zmm24[0,1,2,3],zmm23[4,5,6,7]6274; AVX512-FCP-NEXT:    vmovdqa64 %zmm2, %zmm246275; AVX512-FCP-NEXT:    vpermt2d %zmm3, %zmm21, %zmm246276; AVX512-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm216277; AVX512-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm21 = zmm21[0,1,2,3],zmm24[4,5,6,7]6278; AVX512-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm24 = [2,6,10,14,18,22,26,30,2,6,10,14,18,22,26,30]6279; AVX512-FCP-NEXT:    # zmm24 = mem[0,1,2,3,0,1,2,3]6280; AVX512-FCP-NEXT:    vmovdqa64 %zmm11, %zmm256281; AVX512-FCP-NEXT:    vpermt2d %zmm12, %zmm24, %zmm256282; AVX512-FCP-NEXT:    vmovdqa64 %zmm9, %zmm266283; AVX512-FCP-NEXT:    vpermt2d %zmm8, %zmm24, %zmm266284; AVX512-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm25 = zmm26[0,1,2,3],zmm25[4,5,6,7]6285; AVX512-FCP-NEXT:    vmovdqa64 %zmm16, %zmm266286; AVX512-FCP-NEXT:    vpermt2d %zmm17, %zmm24, %zmm266287; AVX512-FCP-NEXT:    vmovdqa64 %zmm15, %zmm276288; AVX512-FCP-NEXT:    vpermt2d %zmm14, %zmm24, %zmm276289; AVX512-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm26 = zmm27[0,1,2,3],zmm26[4,5,6,7]6290; AVX512-FCP-NEXT:    vmovdqa64 %zmm7, %zmm276291; AVX512-FCP-NEXT:    vpermt2d %zmm10, %zmm24, %zmm276292; AVX512-FCP-NEXT:    vmovdqa64 %zmm5, %zmm286293; AVX512-FCP-NEXT:    vpermt2d %zmm4, %zmm24, %zmm286294; AVX512-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm27 = zmm28[0,1,2,3],zmm27[4,5,6,7]6295; AVX512-FCP-NEXT:    vmovdqa64 %zmm2, %zmm286296; AVX512-FCP-NEXT:    vpermt2d %zmm3, %zmm24, %zmm286297; AVX512-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm246298; AVX512-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm24 = zmm24[0,1,2,3],zmm28[4,5,6,7]6299; AVX512-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm28 = [3,7,11,15,19,23,27,31,3,7,11,15,19,23,27,31]6300; AVX512-FCP-NEXT:    # zmm28 = mem[0,1,2,3,0,1,2,3]6301; AVX512-FCP-NEXT:    vpermt2d %zmm17, %zmm28, %zmm166302; AVX512-FCP-NEXT:    vpermt2d %zmm14, %zmm28, %zmm156303; AVX512-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm14 = zmm15[0,1,2,3],zmm16[4,5,6,7]6304; AVX512-FCP-NEXT:    vpermt2d %zmm10, %zmm28, %zmm76305; AVX512-FCP-NEXT:    vpermt2d %zmm4, %zmm28, %zmm56306; AVX512-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm4 = zmm5[0,1,2,3],zmm7[4,5,6,7]6307; AVX512-FCP-NEXT:    vpermt2d %zmm12, %zmm28, %zmm116308; AVX512-FCP-NEXT:    vpermt2d %zmm8, %zmm28, %zmm96309; AVX512-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm5 = zmm9[0,1,2,3],zmm11[4,5,6,7]6310; AVX512-FCP-NEXT:    vpermt2d %zmm3, %zmm28, %zmm26311; AVX512-FCP-NEXT:    vpermt2d %zmm1, %zmm28, %zmm06312; AVX512-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm0 = zmm0[0,1,2,3],zmm2[4,5,6,7]6313; AVX512-FCP-NEXT:    vmovdqa64 %zmm18, 192(%rsi)6314; AVX512-FCP-NEXT:    vmovdqa64 %zmm19, (%rsi)6315; AVX512-FCP-NEXT:    vmovdqa64 %zmm13, 64(%rsi)6316; AVX512-FCP-NEXT:    vmovdqa64 %zmm6, 128(%rsi)6317; AVX512-FCP-NEXT:    vmovdqa64 %zmm23, 192(%rdx)6318; AVX512-FCP-NEXT:    vmovdqa64 %zmm21, (%rdx)6319; AVX512-FCP-NEXT:    vmovdqa64 %zmm22, 64(%rdx)6320; AVX512-FCP-NEXT:    vmovdqa64 %zmm20, 128(%rdx)6321; AVX512-FCP-NEXT:    vmovdqa64 %zmm27, 192(%rcx)6322; AVX512-FCP-NEXT:    vmovdqa64 %zmm24, (%rcx)6323; AVX512-FCP-NEXT:    vmovdqa64 %zmm26, 64(%rcx)6324; AVX512-FCP-NEXT:    vmovdqa64 %zmm25, 128(%rcx)6325; AVX512-FCP-NEXT:    vmovdqa64 %zmm5, 128(%r8)6326; AVX512-FCP-NEXT:    vmovdqa64 %zmm4, 192(%r8)6327; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, (%r8)6328; AVX512-FCP-NEXT:    vmovdqa64 %zmm14, 64(%r8)6329; AVX512-FCP-NEXT:    vzeroupper6330; AVX512-FCP-NEXT:    retq6331;6332; AVX512DQ-LABEL: load_i32_stride4_vf64:6333; AVX512DQ:       # %bb.0:6334; AVX512DQ-NEXT:    vmovdqa64 (%rdi), %zmm06335; AVX512DQ-NEXT:    vmovdqa64 64(%rdi), %zmm16336; AVX512DQ-NEXT:    vmovdqa64 128(%rdi), %zmm26337; AVX512DQ-NEXT:    vmovdqa64 192(%rdi), %zmm36338; AVX512DQ-NEXT:    vmovdqa64 832(%rdi), %zmm46339; AVX512DQ-NEXT:    vmovdqa64 768(%rdi), %zmm56340; AVX512DQ-NEXT:    vmovdqa64 960(%rdi), %zmm106341; AVX512DQ-NEXT:    vmovdqa64 896(%rdi), %zmm76342; AVX512DQ-NEXT:    vmovdqa64 320(%rdi), %zmm146343; AVX512DQ-NEXT:    vmovdqa64 256(%rdi), %zmm156344; AVX512DQ-NEXT:    vmovdqa64 448(%rdi), %zmm176345; AVX512DQ-NEXT:    vmovdqa64 384(%rdi), %zmm166346; AVX512DQ-NEXT:    vmovdqa64 576(%rdi), %zmm86347; AVX512DQ-NEXT:    vmovdqa64 512(%rdi), %zmm96348; AVX512DQ-NEXT:    vmovdqa64 704(%rdi), %zmm126349; AVX512DQ-NEXT:    vmovdqa64 640(%rdi), %zmm116350; AVX512DQ-NEXT:    vbroadcasti64x4 {{.*#+}} zmm19 = [0,4,8,12,16,20,24,28,0,4,8,12,16,20,24,28]6351; AVX512DQ-NEXT:    # zmm19 = mem[0,1,2,3,0,1,2,3]6352; AVX512DQ-NEXT:    vmovdqa64 %zmm11, %zmm66353; AVX512DQ-NEXT:    vpermt2d %zmm12, %zmm19, %zmm66354; AVX512DQ-NEXT:    vmovdqa64 %zmm9, %zmm136355; AVX512DQ-NEXT:    vpermt2d %zmm8, %zmm19, %zmm136356; AVX512DQ-NEXT:    vshufi64x2 {{.*#+}} zmm6 = zmm13[0,1,2,3],zmm6[4,5,6,7]6357; AVX512DQ-NEXT:    vmovdqa64 %zmm16, %zmm136358; AVX512DQ-NEXT:    vpermt2d %zmm17, %zmm19, %zmm136359; AVX512DQ-NEXT:    vmovdqa64 %zmm15, %zmm186360; AVX512DQ-NEXT:    vpermt2d %zmm14, %zmm19, %zmm186361; AVX512DQ-NEXT:    vshufi64x2 {{.*#+}} zmm13 = zmm18[0,1,2,3],zmm13[4,5,6,7]6362; AVX512DQ-NEXT:    vmovdqa64 %zmm7, %zmm186363; AVX512DQ-NEXT:    vpermt2d %zmm10, %zmm19, %zmm186364; AVX512DQ-NEXT:    vmovdqa64 %zmm5, %zmm206365; AVX512DQ-NEXT:    vpermt2d %zmm4, %zmm19, %zmm206366; AVX512DQ-NEXT:    vshufi64x2 {{.*#+}} zmm18 = zmm20[0,1,2,3],zmm18[4,5,6,7]6367; AVX512DQ-NEXT:    vmovdqa64 %zmm2, %zmm206368; AVX512DQ-NEXT:    vpermt2d %zmm3, %zmm19, %zmm206369; AVX512DQ-NEXT:    vpermi2d %zmm1, %zmm0, %zmm196370; AVX512DQ-NEXT:    vshufi64x2 {{.*#+}} zmm19 = zmm19[0,1,2,3],zmm20[4,5,6,7]6371; AVX512DQ-NEXT:    vbroadcasti64x4 {{.*#+}} zmm21 = [1,5,9,13,17,21,25,29,1,5,9,13,17,21,25,29]6372; AVX512DQ-NEXT:    # zmm21 = mem[0,1,2,3,0,1,2,3]6373; AVX512DQ-NEXT:    vmovdqa64 %zmm11, %zmm206374; AVX512DQ-NEXT:    vpermt2d %zmm12, %zmm21, %zmm206375; AVX512DQ-NEXT:    vmovdqa64 %zmm9, %zmm226376; AVX512DQ-NEXT:    vpermt2d %zmm8, %zmm21, %zmm226377; AVX512DQ-NEXT:    vshufi64x2 {{.*#+}} zmm20 = zmm22[0,1,2,3],zmm20[4,5,6,7]6378; AVX512DQ-NEXT:    vmovdqa64 %zmm16, %zmm226379; AVX512DQ-NEXT:    vpermt2d %zmm17, %zmm21, %zmm226380; AVX512DQ-NEXT:    vmovdqa64 %zmm15, %zmm236381; AVX512DQ-NEXT:    vpermt2d %zmm14, %zmm21, %zmm236382; AVX512DQ-NEXT:    vshufi64x2 {{.*#+}} zmm22 = zmm23[0,1,2,3],zmm22[4,5,6,7]6383; AVX512DQ-NEXT:    vmovdqa64 %zmm7, %zmm236384; AVX512DQ-NEXT:    vpermt2d %zmm10, %zmm21, %zmm236385; AVX512DQ-NEXT:    vmovdqa64 %zmm5, %zmm246386; AVX512DQ-NEXT:    vpermt2d %zmm4, %zmm21, %zmm246387; AVX512DQ-NEXT:    vshufi64x2 {{.*#+}} zmm23 = zmm24[0,1,2,3],zmm23[4,5,6,7]6388; AVX512DQ-NEXT:    vmovdqa64 %zmm2, %zmm246389; AVX512DQ-NEXT:    vpermt2d %zmm3, %zmm21, %zmm246390; AVX512DQ-NEXT:    vpermi2d %zmm1, %zmm0, %zmm216391; AVX512DQ-NEXT:    vshufi64x2 {{.*#+}} zmm21 = zmm21[0,1,2,3],zmm24[4,5,6,7]6392; AVX512DQ-NEXT:    vbroadcasti64x4 {{.*#+}} zmm24 = [2,6,10,14,18,22,26,30,2,6,10,14,18,22,26,30]6393; AVX512DQ-NEXT:    # zmm24 = mem[0,1,2,3,0,1,2,3]6394; AVX512DQ-NEXT:    vmovdqa64 %zmm11, %zmm256395; AVX512DQ-NEXT:    vpermt2d %zmm12, %zmm24, %zmm256396; AVX512DQ-NEXT:    vmovdqa64 %zmm9, %zmm266397; AVX512DQ-NEXT:    vpermt2d %zmm8, %zmm24, %zmm266398; AVX512DQ-NEXT:    vshufi64x2 {{.*#+}} zmm25 = zmm26[0,1,2,3],zmm25[4,5,6,7]6399; AVX512DQ-NEXT:    vmovdqa64 %zmm16, %zmm266400; AVX512DQ-NEXT:    vpermt2d %zmm17, %zmm24, %zmm266401; AVX512DQ-NEXT:    vmovdqa64 %zmm15, %zmm276402; AVX512DQ-NEXT:    vpermt2d %zmm14, %zmm24, %zmm276403; AVX512DQ-NEXT:    vshufi64x2 {{.*#+}} zmm26 = zmm27[0,1,2,3],zmm26[4,5,6,7]6404; AVX512DQ-NEXT:    vmovdqa64 %zmm7, %zmm276405; AVX512DQ-NEXT:    vpermt2d %zmm10, %zmm24, %zmm276406; AVX512DQ-NEXT:    vmovdqa64 %zmm5, %zmm286407; AVX512DQ-NEXT:    vpermt2d %zmm4, %zmm24, %zmm286408; AVX512DQ-NEXT:    vshufi64x2 {{.*#+}} zmm27 = zmm28[0,1,2,3],zmm27[4,5,6,7]6409; AVX512DQ-NEXT:    vmovdqa64 %zmm2, %zmm286410; AVX512DQ-NEXT:    vpermt2d %zmm3, %zmm24, %zmm286411; AVX512DQ-NEXT:    vpermi2d %zmm1, %zmm0, %zmm246412; AVX512DQ-NEXT:    vshufi64x2 {{.*#+}} zmm24 = zmm24[0,1,2,3],zmm28[4,5,6,7]6413; AVX512DQ-NEXT:    vbroadcasti64x4 {{.*#+}} zmm28 = [3,7,11,15,19,23,27,31,3,7,11,15,19,23,27,31]6414; AVX512DQ-NEXT:    # zmm28 = mem[0,1,2,3,0,1,2,3]6415; AVX512DQ-NEXT:    vpermt2d %zmm17, %zmm28, %zmm166416; AVX512DQ-NEXT:    vpermt2d %zmm14, %zmm28, %zmm156417; AVX512DQ-NEXT:    vshufi64x2 {{.*#+}} zmm14 = zmm15[0,1,2,3],zmm16[4,5,6,7]6418; AVX512DQ-NEXT:    vpermt2d %zmm10, %zmm28, %zmm76419; AVX512DQ-NEXT:    vpermt2d %zmm4, %zmm28, %zmm56420; AVX512DQ-NEXT:    vshufi64x2 {{.*#+}} zmm4 = zmm5[0,1,2,3],zmm7[4,5,6,7]6421; AVX512DQ-NEXT:    vpermt2d %zmm12, %zmm28, %zmm116422; AVX512DQ-NEXT:    vpermt2d %zmm8, %zmm28, %zmm96423; AVX512DQ-NEXT:    vshufi64x2 {{.*#+}} zmm5 = zmm9[0,1,2,3],zmm11[4,5,6,7]6424; AVX512DQ-NEXT:    vpermt2d %zmm3, %zmm28, %zmm26425; AVX512DQ-NEXT:    vpermt2d %zmm1, %zmm28, %zmm06426; AVX512DQ-NEXT:    vshufi64x2 {{.*#+}} zmm0 = zmm0[0,1,2,3],zmm2[4,5,6,7]6427; AVX512DQ-NEXT:    vmovdqa64 %zmm18, 192(%rsi)6428; AVX512DQ-NEXT:    vmovdqa64 %zmm19, (%rsi)6429; AVX512DQ-NEXT:    vmovdqa64 %zmm13, 64(%rsi)6430; AVX512DQ-NEXT:    vmovdqa64 %zmm6, 128(%rsi)6431; AVX512DQ-NEXT:    vmovdqa64 %zmm23, 192(%rdx)6432; AVX512DQ-NEXT:    vmovdqa64 %zmm21, (%rdx)6433; AVX512DQ-NEXT:    vmovdqa64 %zmm22, 64(%rdx)6434; AVX512DQ-NEXT:    vmovdqa64 %zmm20, 128(%rdx)6435; AVX512DQ-NEXT:    vmovdqa64 %zmm27, 192(%rcx)6436; AVX512DQ-NEXT:    vmovdqa64 %zmm24, (%rcx)6437; AVX512DQ-NEXT:    vmovdqa64 %zmm26, 64(%rcx)6438; AVX512DQ-NEXT:    vmovdqa64 %zmm25, 128(%rcx)6439; AVX512DQ-NEXT:    vmovdqa64 %zmm5, 128(%r8)6440; AVX512DQ-NEXT:    vmovdqa64 %zmm4, 192(%r8)6441; AVX512DQ-NEXT:    vmovdqa64 %zmm0, (%r8)6442; AVX512DQ-NEXT:    vmovdqa64 %zmm14, 64(%r8)6443; AVX512DQ-NEXT:    vzeroupper6444; AVX512DQ-NEXT:    retq6445;6446; AVX512DQ-FCP-LABEL: load_i32_stride4_vf64:6447; AVX512DQ-FCP:       # %bb.0:6448; AVX512DQ-FCP-NEXT:    vmovdqa64 (%rdi), %zmm06449; AVX512DQ-FCP-NEXT:    vmovdqa64 64(%rdi), %zmm16450; AVX512DQ-FCP-NEXT:    vmovdqa64 128(%rdi), %zmm26451; AVX512DQ-FCP-NEXT:    vmovdqa64 192(%rdi), %zmm36452; AVX512DQ-FCP-NEXT:    vmovdqa64 832(%rdi), %zmm46453; AVX512DQ-FCP-NEXT:    vmovdqa64 768(%rdi), %zmm56454; AVX512DQ-FCP-NEXT:    vmovdqa64 960(%rdi), %zmm106455; AVX512DQ-FCP-NEXT:    vmovdqa64 896(%rdi), %zmm76456; AVX512DQ-FCP-NEXT:    vmovdqa64 320(%rdi), %zmm146457; AVX512DQ-FCP-NEXT:    vmovdqa64 256(%rdi), %zmm156458; AVX512DQ-FCP-NEXT:    vmovdqa64 448(%rdi), %zmm176459; AVX512DQ-FCP-NEXT:    vmovdqa64 384(%rdi), %zmm166460; AVX512DQ-FCP-NEXT:    vmovdqa64 576(%rdi), %zmm86461; AVX512DQ-FCP-NEXT:    vmovdqa64 512(%rdi), %zmm96462; AVX512DQ-FCP-NEXT:    vmovdqa64 704(%rdi), %zmm126463; AVX512DQ-FCP-NEXT:    vmovdqa64 640(%rdi), %zmm116464; AVX512DQ-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm19 = [0,4,8,12,16,20,24,28,0,4,8,12,16,20,24,28]6465; AVX512DQ-FCP-NEXT:    # zmm19 = mem[0,1,2,3,0,1,2,3]6466; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm11, %zmm66467; AVX512DQ-FCP-NEXT:    vpermt2d %zmm12, %zmm19, %zmm66468; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm9, %zmm136469; AVX512DQ-FCP-NEXT:    vpermt2d %zmm8, %zmm19, %zmm136470; AVX512DQ-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm6 = zmm13[0,1,2,3],zmm6[4,5,6,7]6471; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm16, %zmm136472; AVX512DQ-FCP-NEXT:    vpermt2d %zmm17, %zmm19, %zmm136473; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm15, %zmm186474; AVX512DQ-FCP-NEXT:    vpermt2d %zmm14, %zmm19, %zmm186475; AVX512DQ-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm13 = zmm18[0,1,2,3],zmm13[4,5,6,7]6476; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm7, %zmm186477; AVX512DQ-FCP-NEXT:    vpermt2d %zmm10, %zmm19, %zmm186478; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm5, %zmm206479; AVX512DQ-FCP-NEXT:    vpermt2d %zmm4, %zmm19, %zmm206480; AVX512DQ-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm18 = zmm20[0,1,2,3],zmm18[4,5,6,7]6481; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm2, %zmm206482; AVX512DQ-FCP-NEXT:    vpermt2d %zmm3, %zmm19, %zmm206483; AVX512DQ-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm196484; AVX512DQ-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm19 = zmm19[0,1,2,3],zmm20[4,5,6,7]6485; AVX512DQ-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm21 = [1,5,9,13,17,21,25,29,1,5,9,13,17,21,25,29]6486; AVX512DQ-FCP-NEXT:    # zmm21 = mem[0,1,2,3,0,1,2,3]6487; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm11, %zmm206488; AVX512DQ-FCP-NEXT:    vpermt2d %zmm12, %zmm21, %zmm206489; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm9, %zmm226490; AVX512DQ-FCP-NEXT:    vpermt2d %zmm8, %zmm21, %zmm226491; AVX512DQ-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm20 = zmm22[0,1,2,3],zmm20[4,5,6,7]6492; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm16, %zmm226493; AVX512DQ-FCP-NEXT:    vpermt2d %zmm17, %zmm21, %zmm226494; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm15, %zmm236495; AVX512DQ-FCP-NEXT:    vpermt2d %zmm14, %zmm21, %zmm236496; AVX512DQ-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm22 = zmm23[0,1,2,3],zmm22[4,5,6,7]6497; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm7, %zmm236498; AVX512DQ-FCP-NEXT:    vpermt2d %zmm10, %zmm21, %zmm236499; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm5, %zmm246500; AVX512DQ-FCP-NEXT:    vpermt2d %zmm4, %zmm21, %zmm246501; AVX512DQ-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm23 = zmm24[0,1,2,3],zmm23[4,5,6,7]6502; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm2, %zmm246503; AVX512DQ-FCP-NEXT:    vpermt2d %zmm3, %zmm21, %zmm246504; AVX512DQ-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm216505; AVX512DQ-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm21 = zmm21[0,1,2,3],zmm24[4,5,6,7]6506; AVX512DQ-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm24 = [2,6,10,14,18,22,26,30,2,6,10,14,18,22,26,30]6507; AVX512DQ-FCP-NEXT:    # zmm24 = mem[0,1,2,3,0,1,2,3]6508; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm11, %zmm256509; AVX512DQ-FCP-NEXT:    vpermt2d %zmm12, %zmm24, %zmm256510; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm9, %zmm266511; AVX512DQ-FCP-NEXT:    vpermt2d %zmm8, %zmm24, %zmm266512; AVX512DQ-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm25 = zmm26[0,1,2,3],zmm25[4,5,6,7]6513; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm16, %zmm266514; AVX512DQ-FCP-NEXT:    vpermt2d %zmm17, %zmm24, %zmm266515; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm15, %zmm276516; AVX512DQ-FCP-NEXT:    vpermt2d %zmm14, %zmm24, %zmm276517; AVX512DQ-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm26 = zmm27[0,1,2,3],zmm26[4,5,6,7]6518; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm7, %zmm276519; AVX512DQ-FCP-NEXT:    vpermt2d %zmm10, %zmm24, %zmm276520; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm5, %zmm286521; AVX512DQ-FCP-NEXT:    vpermt2d %zmm4, %zmm24, %zmm286522; AVX512DQ-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm27 = zmm28[0,1,2,3],zmm27[4,5,6,7]6523; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm2, %zmm286524; AVX512DQ-FCP-NEXT:    vpermt2d %zmm3, %zmm24, %zmm286525; AVX512DQ-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm246526; AVX512DQ-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm24 = zmm24[0,1,2,3],zmm28[4,5,6,7]6527; AVX512DQ-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm28 = [3,7,11,15,19,23,27,31,3,7,11,15,19,23,27,31]6528; AVX512DQ-FCP-NEXT:    # zmm28 = mem[0,1,2,3,0,1,2,3]6529; AVX512DQ-FCP-NEXT:    vpermt2d %zmm17, %zmm28, %zmm166530; AVX512DQ-FCP-NEXT:    vpermt2d %zmm14, %zmm28, %zmm156531; AVX512DQ-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm14 = zmm15[0,1,2,3],zmm16[4,5,6,7]6532; AVX512DQ-FCP-NEXT:    vpermt2d %zmm10, %zmm28, %zmm76533; AVX512DQ-FCP-NEXT:    vpermt2d %zmm4, %zmm28, %zmm56534; AVX512DQ-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm4 = zmm5[0,1,2,3],zmm7[4,5,6,7]6535; AVX512DQ-FCP-NEXT:    vpermt2d %zmm12, %zmm28, %zmm116536; AVX512DQ-FCP-NEXT:    vpermt2d %zmm8, %zmm28, %zmm96537; AVX512DQ-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm5 = zmm9[0,1,2,3],zmm11[4,5,6,7]6538; AVX512DQ-FCP-NEXT:    vpermt2d %zmm3, %zmm28, %zmm26539; AVX512DQ-FCP-NEXT:    vpermt2d %zmm1, %zmm28, %zmm06540; AVX512DQ-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm0 = zmm0[0,1,2,3],zmm2[4,5,6,7]6541; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm18, 192(%rsi)6542; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm19, (%rsi)6543; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm13, 64(%rsi)6544; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm6, 128(%rsi)6545; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm23, 192(%rdx)6546; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm21, (%rdx)6547; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm22, 64(%rdx)6548; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm20, 128(%rdx)6549; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm27, 192(%rcx)6550; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm24, (%rcx)6551; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm26, 64(%rcx)6552; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm25, 128(%rcx)6553; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm5, 128(%r8)6554; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm4, 192(%r8)6555; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, (%r8)6556; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm14, 64(%r8)6557; AVX512DQ-FCP-NEXT:    vzeroupper6558; AVX512DQ-FCP-NEXT:    retq6559;6560; AVX512BW-LABEL: load_i32_stride4_vf64:6561; AVX512BW:       # %bb.0:6562; AVX512BW-NEXT:    vmovdqa64 (%rdi), %zmm06563; AVX512BW-NEXT:    vmovdqa64 64(%rdi), %zmm16564; AVX512BW-NEXT:    vmovdqa64 128(%rdi), %zmm26565; AVX512BW-NEXT:    vmovdqa64 192(%rdi), %zmm36566; AVX512BW-NEXT:    vmovdqa64 832(%rdi), %zmm46567; AVX512BW-NEXT:    vmovdqa64 768(%rdi), %zmm56568; AVX512BW-NEXT:    vmovdqa64 960(%rdi), %zmm106569; AVX512BW-NEXT:    vmovdqa64 896(%rdi), %zmm76570; AVX512BW-NEXT:    vmovdqa64 320(%rdi), %zmm146571; AVX512BW-NEXT:    vmovdqa64 256(%rdi), %zmm156572; AVX512BW-NEXT:    vmovdqa64 448(%rdi), %zmm176573; AVX512BW-NEXT:    vmovdqa64 384(%rdi), %zmm166574; AVX512BW-NEXT:    vmovdqa64 576(%rdi), %zmm86575; AVX512BW-NEXT:    vmovdqa64 512(%rdi), %zmm96576; AVX512BW-NEXT:    vmovdqa64 704(%rdi), %zmm126577; AVX512BW-NEXT:    vmovdqa64 640(%rdi), %zmm116578; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm19 = [0,4,8,12,16,20,24,28,0,4,8,12,16,20,24,28]6579; AVX512BW-NEXT:    # zmm19 = mem[0,1,2,3,0,1,2,3]6580; AVX512BW-NEXT:    vmovdqa64 %zmm11, %zmm66581; AVX512BW-NEXT:    vpermt2d %zmm12, %zmm19, %zmm66582; AVX512BW-NEXT:    vmovdqa64 %zmm9, %zmm136583; AVX512BW-NEXT:    vpermt2d %zmm8, %zmm19, %zmm136584; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm6 = zmm13[0,1,2,3],zmm6[4,5,6,7]6585; AVX512BW-NEXT:    vmovdqa64 %zmm16, %zmm136586; AVX512BW-NEXT:    vpermt2d %zmm17, %zmm19, %zmm136587; AVX512BW-NEXT:    vmovdqa64 %zmm15, %zmm186588; AVX512BW-NEXT:    vpermt2d %zmm14, %zmm19, %zmm186589; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm13 = zmm18[0,1,2,3],zmm13[4,5,6,7]6590; AVX512BW-NEXT:    vmovdqa64 %zmm7, %zmm186591; AVX512BW-NEXT:    vpermt2d %zmm10, %zmm19, %zmm186592; AVX512BW-NEXT:    vmovdqa64 %zmm5, %zmm206593; AVX512BW-NEXT:    vpermt2d %zmm4, %zmm19, %zmm206594; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm18 = zmm20[0,1,2,3],zmm18[4,5,6,7]6595; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm206596; AVX512BW-NEXT:    vpermt2d %zmm3, %zmm19, %zmm206597; AVX512BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm196598; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm19 = zmm19[0,1,2,3],zmm20[4,5,6,7]6599; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm21 = [1,5,9,13,17,21,25,29,1,5,9,13,17,21,25,29]6600; AVX512BW-NEXT:    # zmm21 = mem[0,1,2,3,0,1,2,3]6601; AVX512BW-NEXT:    vmovdqa64 %zmm11, %zmm206602; AVX512BW-NEXT:    vpermt2d %zmm12, %zmm21, %zmm206603; AVX512BW-NEXT:    vmovdqa64 %zmm9, %zmm226604; AVX512BW-NEXT:    vpermt2d %zmm8, %zmm21, %zmm226605; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm20 = zmm22[0,1,2,3],zmm20[4,5,6,7]6606; AVX512BW-NEXT:    vmovdqa64 %zmm16, %zmm226607; AVX512BW-NEXT:    vpermt2d %zmm17, %zmm21, %zmm226608; AVX512BW-NEXT:    vmovdqa64 %zmm15, %zmm236609; AVX512BW-NEXT:    vpermt2d %zmm14, %zmm21, %zmm236610; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm22 = zmm23[0,1,2,3],zmm22[4,5,6,7]6611; AVX512BW-NEXT:    vmovdqa64 %zmm7, %zmm236612; AVX512BW-NEXT:    vpermt2d %zmm10, %zmm21, %zmm236613; AVX512BW-NEXT:    vmovdqa64 %zmm5, %zmm246614; AVX512BW-NEXT:    vpermt2d %zmm4, %zmm21, %zmm246615; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm23 = zmm24[0,1,2,3],zmm23[4,5,6,7]6616; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm246617; AVX512BW-NEXT:    vpermt2d %zmm3, %zmm21, %zmm246618; AVX512BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm216619; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm21 = zmm21[0,1,2,3],zmm24[4,5,6,7]6620; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm24 = [2,6,10,14,18,22,26,30,2,6,10,14,18,22,26,30]6621; AVX512BW-NEXT:    # zmm24 = mem[0,1,2,3,0,1,2,3]6622; AVX512BW-NEXT:    vmovdqa64 %zmm11, %zmm256623; AVX512BW-NEXT:    vpermt2d %zmm12, %zmm24, %zmm256624; AVX512BW-NEXT:    vmovdqa64 %zmm9, %zmm266625; AVX512BW-NEXT:    vpermt2d %zmm8, %zmm24, %zmm266626; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm25 = zmm26[0,1,2,3],zmm25[4,5,6,7]6627; AVX512BW-NEXT:    vmovdqa64 %zmm16, %zmm266628; AVX512BW-NEXT:    vpermt2d %zmm17, %zmm24, %zmm266629; AVX512BW-NEXT:    vmovdqa64 %zmm15, %zmm276630; AVX512BW-NEXT:    vpermt2d %zmm14, %zmm24, %zmm276631; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm26 = zmm27[0,1,2,3],zmm26[4,5,6,7]6632; AVX512BW-NEXT:    vmovdqa64 %zmm7, %zmm276633; AVX512BW-NEXT:    vpermt2d %zmm10, %zmm24, %zmm276634; AVX512BW-NEXT:    vmovdqa64 %zmm5, %zmm286635; AVX512BW-NEXT:    vpermt2d %zmm4, %zmm24, %zmm286636; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm27 = zmm28[0,1,2,3],zmm27[4,5,6,7]6637; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm286638; AVX512BW-NEXT:    vpermt2d %zmm3, %zmm24, %zmm286639; AVX512BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm246640; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm24 = zmm24[0,1,2,3],zmm28[4,5,6,7]6641; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm28 = [3,7,11,15,19,23,27,31,3,7,11,15,19,23,27,31]6642; AVX512BW-NEXT:    # zmm28 = mem[0,1,2,3,0,1,2,3]6643; AVX512BW-NEXT:    vpermt2d %zmm17, %zmm28, %zmm166644; AVX512BW-NEXT:    vpermt2d %zmm14, %zmm28, %zmm156645; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm14 = zmm15[0,1,2,3],zmm16[4,5,6,7]6646; AVX512BW-NEXT:    vpermt2d %zmm10, %zmm28, %zmm76647; AVX512BW-NEXT:    vpermt2d %zmm4, %zmm28, %zmm56648; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm4 = zmm5[0,1,2,3],zmm7[4,5,6,7]6649; AVX512BW-NEXT:    vpermt2d %zmm12, %zmm28, %zmm116650; AVX512BW-NEXT:    vpermt2d %zmm8, %zmm28, %zmm96651; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm5 = zmm9[0,1,2,3],zmm11[4,5,6,7]6652; AVX512BW-NEXT:    vpermt2d %zmm3, %zmm28, %zmm26653; AVX512BW-NEXT:    vpermt2d %zmm1, %zmm28, %zmm06654; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm0 = zmm0[0,1,2,3],zmm2[4,5,6,7]6655; AVX512BW-NEXT:    vmovdqa64 %zmm18, 192(%rsi)6656; AVX512BW-NEXT:    vmovdqa64 %zmm19, (%rsi)6657; AVX512BW-NEXT:    vmovdqa64 %zmm13, 64(%rsi)6658; AVX512BW-NEXT:    vmovdqa64 %zmm6, 128(%rsi)6659; AVX512BW-NEXT:    vmovdqa64 %zmm23, 192(%rdx)6660; AVX512BW-NEXT:    vmovdqa64 %zmm21, (%rdx)6661; AVX512BW-NEXT:    vmovdqa64 %zmm22, 64(%rdx)6662; AVX512BW-NEXT:    vmovdqa64 %zmm20, 128(%rdx)6663; AVX512BW-NEXT:    vmovdqa64 %zmm27, 192(%rcx)6664; AVX512BW-NEXT:    vmovdqa64 %zmm24, (%rcx)6665; AVX512BW-NEXT:    vmovdqa64 %zmm26, 64(%rcx)6666; AVX512BW-NEXT:    vmovdqa64 %zmm25, 128(%rcx)6667; AVX512BW-NEXT:    vmovdqa64 %zmm5, 128(%r8)6668; AVX512BW-NEXT:    vmovdqa64 %zmm4, 192(%r8)6669; AVX512BW-NEXT:    vmovdqa64 %zmm0, (%r8)6670; AVX512BW-NEXT:    vmovdqa64 %zmm14, 64(%r8)6671; AVX512BW-NEXT:    vzeroupper6672; AVX512BW-NEXT:    retq6673;6674; AVX512BW-FCP-LABEL: load_i32_stride4_vf64:6675; AVX512BW-FCP:       # %bb.0:6676; AVX512BW-FCP-NEXT:    vmovdqa64 (%rdi), %zmm06677; AVX512BW-FCP-NEXT:    vmovdqa64 64(%rdi), %zmm16678; AVX512BW-FCP-NEXT:    vmovdqa64 128(%rdi), %zmm26679; AVX512BW-FCP-NEXT:    vmovdqa64 192(%rdi), %zmm36680; AVX512BW-FCP-NEXT:    vmovdqa64 832(%rdi), %zmm46681; AVX512BW-FCP-NEXT:    vmovdqa64 768(%rdi), %zmm56682; AVX512BW-FCP-NEXT:    vmovdqa64 960(%rdi), %zmm106683; AVX512BW-FCP-NEXT:    vmovdqa64 896(%rdi), %zmm76684; AVX512BW-FCP-NEXT:    vmovdqa64 320(%rdi), %zmm146685; AVX512BW-FCP-NEXT:    vmovdqa64 256(%rdi), %zmm156686; AVX512BW-FCP-NEXT:    vmovdqa64 448(%rdi), %zmm176687; AVX512BW-FCP-NEXT:    vmovdqa64 384(%rdi), %zmm166688; AVX512BW-FCP-NEXT:    vmovdqa64 576(%rdi), %zmm86689; AVX512BW-FCP-NEXT:    vmovdqa64 512(%rdi), %zmm96690; AVX512BW-FCP-NEXT:    vmovdqa64 704(%rdi), %zmm126691; AVX512BW-FCP-NEXT:    vmovdqa64 640(%rdi), %zmm116692; AVX512BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm19 = [0,4,8,12,16,20,24,28,0,4,8,12,16,20,24,28]6693; AVX512BW-FCP-NEXT:    # zmm19 = mem[0,1,2,3,0,1,2,3]6694; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm11, %zmm66695; AVX512BW-FCP-NEXT:    vpermt2d %zmm12, %zmm19, %zmm66696; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm9, %zmm136697; AVX512BW-FCP-NEXT:    vpermt2d %zmm8, %zmm19, %zmm136698; AVX512BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm6 = zmm13[0,1,2,3],zmm6[4,5,6,7]6699; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm16, %zmm136700; AVX512BW-FCP-NEXT:    vpermt2d %zmm17, %zmm19, %zmm136701; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm15, %zmm186702; AVX512BW-FCP-NEXT:    vpermt2d %zmm14, %zmm19, %zmm186703; AVX512BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm13 = zmm18[0,1,2,3],zmm13[4,5,6,7]6704; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm7, %zmm186705; AVX512BW-FCP-NEXT:    vpermt2d %zmm10, %zmm19, %zmm186706; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm206707; AVX512BW-FCP-NEXT:    vpermt2d %zmm4, %zmm19, %zmm206708; AVX512BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm18 = zmm20[0,1,2,3],zmm18[4,5,6,7]6709; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm206710; AVX512BW-FCP-NEXT:    vpermt2d %zmm3, %zmm19, %zmm206711; AVX512BW-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm196712; AVX512BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm19 = zmm19[0,1,2,3],zmm20[4,5,6,7]6713; AVX512BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm21 = [1,5,9,13,17,21,25,29,1,5,9,13,17,21,25,29]6714; AVX512BW-FCP-NEXT:    # zmm21 = mem[0,1,2,3,0,1,2,3]6715; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm11, %zmm206716; AVX512BW-FCP-NEXT:    vpermt2d %zmm12, %zmm21, %zmm206717; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm9, %zmm226718; AVX512BW-FCP-NEXT:    vpermt2d %zmm8, %zmm21, %zmm226719; AVX512BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm20 = zmm22[0,1,2,3],zmm20[4,5,6,7]6720; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm16, %zmm226721; AVX512BW-FCP-NEXT:    vpermt2d %zmm17, %zmm21, %zmm226722; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm15, %zmm236723; AVX512BW-FCP-NEXT:    vpermt2d %zmm14, %zmm21, %zmm236724; AVX512BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm22 = zmm23[0,1,2,3],zmm22[4,5,6,7]6725; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm7, %zmm236726; AVX512BW-FCP-NEXT:    vpermt2d %zmm10, %zmm21, %zmm236727; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm246728; AVX512BW-FCP-NEXT:    vpermt2d %zmm4, %zmm21, %zmm246729; AVX512BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm23 = zmm24[0,1,2,3],zmm23[4,5,6,7]6730; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm246731; AVX512BW-FCP-NEXT:    vpermt2d %zmm3, %zmm21, %zmm246732; AVX512BW-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm216733; AVX512BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm21 = zmm21[0,1,2,3],zmm24[4,5,6,7]6734; AVX512BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm24 = [2,6,10,14,18,22,26,30,2,6,10,14,18,22,26,30]6735; AVX512BW-FCP-NEXT:    # zmm24 = mem[0,1,2,3,0,1,2,3]6736; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm11, %zmm256737; AVX512BW-FCP-NEXT:    vpermt2d %zmm12, %zmm24, %zmm256738; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm9, %zmm266739; AVX512BW-FCP-NEXT:    vpermt2d %zmm8, %zmm24, %zmm266740; AVX512BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm25 = zmm26[0,1,2,3],zmm25[4,5,6,7]6741; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm16, %zmm266742; AVX512BW-FCP-NEXT:    vpermt2d %zmm17, %zmm24, %zmm266743; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm15, %zmm276744; AVX512BW-FCP-NEXT:    vpermt2d %zmm14, %zmm24, %zmm276745; AVX512BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm26 = zmm27[0,1,2,3],zmm26[4,5,6,7]6746; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm7, %zmm276747; AVX512BW-FCP-NEXT:    vpermt2d %zmm10, %zmm24, %zmm276748; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm286749; AVX512BW-FCP-NEXT:    vpermt2d %zmm4, %zmm24, %zmm286750; AVX512BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm27 = zmm28[0,1,2,3],zmm27[4,5,6,7]6751; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm286752; AVX512BW-FCP-NEXT:    vpermt2d %zmm3, %zmm24, %zmm286753; AVX512BW-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm246754; AVX512BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm24 = zmm24[0,1,2,3],zmm28[4,5,6,7]6755; AVX512BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm28 = [3,7,11,15,19,23,27,31,3,7,11,15,19,23,27,31]6756; AVX512BW-FCP-NEXT:    # zmm28 = mem[0,1,2,3,0,1,2,3]6757; AVX512BW-FCP-NEXT:    vpermt2d %zmm17, %zmm28, %zmm166758; AVX512BW-FCP-NEXT:    vpermt2d %zmm14, %zmm28, %zmm156759; AVX512BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm14 = zmm15[0,1,2,3],zmm16[4,5,6,7]6760; AVX512BW-FCP-NEXT:    vpermt2d %zmm10, %zmm28, %zmm76761; AVX512BW-FCP-NEXT:    vpermt2d %zmm4, %zmm28, %zmm56762; AVX512BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm4 = zmm5[0,1,2,3],zmm7[4,5,6,7]6763; AVX512BW-FCP-NEXT:    vpermt2d %zmm12, %zmm28, %zmm116764; AVX512BW-FCP-NEXT:    vpermt2d %zmm8, %zmm28, %zmm96765; AVX512BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm5 = zmm9[0,1,2,3],zmm11[4,5,6,7]6766; AVX512BW-FCP-NEXT:    vpermt2d %zmm3, %zmm28, %zmm26767; AVX512BW-FCP-NEXT:    vpermt2d %zmm1, %zmm28, %zmm06768; AVX512BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm0 = zmm0[0,1,2,3],zmm2[4,5,6,7]6769; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm18, 192(%rsi)6770; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm19, (%rsi)6771; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm13, 64(%rsi)6772; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm6, 128(%rsi)6773; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm23, 192(%rdx)6774; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm21, (%rdx)6775; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm22, 64(%rdx)6776; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm20, 128(%rdx)6777; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm27, 192(%rcx)6778; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm24, (%rcx)6779; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm26, 64(%rcx)6780; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm25, 128(%rcx)6781; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm5, 128(%r8)6782; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm4, 192(%r8)6783; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, (%r8)6784; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm14, 64(%r8)6785; AVX512BW-FCP-NEXT:    vzeroupper6786; AVX512BW-FCP-NEXT:    retq6787;6788; AVX512DQ-BW-LABEL: load_i32_stride4_vf64:6789; AVX512DQ-BW:       # %bb.0:6790; AVX512DQ-BW-NEXT:    vmovdqa64 (%rdi), %zmm06791; AVX512DQ-BW-NEXT:    vmovdqa64 64(%rdi), %zmm16792; AVX512DQ-BW-NEXT:    vmovdqa64 128(%rdi), %zmm26793; AVX512DQ-BW-NEXT:    vmovdqa64 192(%rdi), %zmm36794; AVX512DQ-BW-NEXT:    vmovdqa64 832(%rdi), %zmm46795; AVX512DQ-BW-NEXT:    vmovdqa64 768(%rdi), %zmm56796; AVX512DQ-BW-NEXT:    vmovdqa64 960(%rdi), %zmm106797; AVX512DQ-BW-NEXT:    vmovdqa64 896(%rdi), %zmm76798; AVX512DQ-BW-NEXT:    vmovdqa64 320(%rdi), %zmm146799; AVX512DQ-BW-NEXT:    vmovdqa64 256(%rdi), %zmm156800; AVX512DQ-BW-NEXT:    vmovdqa64 448(%rdi), %zmm176801; AVX512DQ-BW-NEXT:    vmovdqa64 384(%rdi), %zmm166802; AVX512DQ-BW-NEXT:    vmovdqa64 576(%rdi), %zmm86803; AVX512DQ-BW-NEXT:    vmovdqa64 512(%rdi), %zmm96804; AVX512DQ-BW-NEXT:    vmovdqa64 704(%rdi), %zmm126805; AVX512DQ-BW-NEXT:    vmovdqa64 640(%rdi), %zmm116806; AVX512DQ-BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm19 = [0,4,8,12,16,20,24,28,0,4,8,12,16,20,24,28]6807; AVX512DQ-BW-NEXT:    # zmm19 = mem[0,1,2,3,0,1,2,3]6808; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm11, %zmm66809; AVX512DQ-BW-NEXT:    vpermt2d %zmm12, %zmm19, %zmm66810; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm9, %zmm136811; AVX512DQ-BW-NEXT:    vpermt2d %zmm8, %zmm19, %zmm136812; AVX512DQ-BW-NEXT:    vshufi64x2 {{.*#+}} zmm6 = zmm13[0,1,2,3],zmm6[4,5,6,7]6813; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm16, %zmm136814; AVX512DQ-BW-NEXT:    vpermt2d %zmm17, %zmm19, %zmm136815; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm15, %zmm186816; AVX512DQ-BW-NEXT:    vpermt2d %zmm14, %zmm19, %zmm186817; AVX512DQ-BW-NEXT:    vshufi64x2 {{.*#+}} zmm13 = zmm18[0,1,2,3],zmm13[4,5,6,7]6818; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm7, %zmm186819; AVX512DQ-BW-NEXT:    vpermt2d %zmm10, %zmm19, %zmm186820; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm5, %zmm206821; AVX512DQ-BW-NEXT:    vpermt2d %zmm4, %zmm19, %zmm206822; AVX512DQ-BW-NEXT:    vshufi64x2 {{.*#+}} zmm18 = zmm20[0,1,2,3],zmm18[4,5,6,7]6823; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm2, %zmm206824; AVX512DQ-BW-NEXT:    vpermt2d %zmm3, %zmm19, %zmm206825; AVX512DQ-BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm196826; AVX512DQ-BW-NEXT:    vshufi64x2 {{.*#+}} zmm19 = zmm19[0,1,2,3],zmm20[4,5,6,7]6827; AVX512DQ-BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm21 = [1,5,9,13,17,21,25,29,1,5,9,13,17,21,25,29]6828; AVX512DQ-BW-NEXT:    # zmm21 = mem[0,1,2,3,0,1,2,3]6829; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm11, %zmm206830; AVX512DQ-BW-NEXT:    vpermt2d %zmm12, %zmm21, %zmm206831; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm9, %zmm226832; AVX512DQ-BW-NEXT:    vpermt2d %zmm8, %zmm21, %zmm226833; AVX512DQ-BW-NEXT:    vshufi64x2 {{.*#+}} zmm20 = zmm22[0,1,2,3],zmm20[4,5,6,7]6834; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm16, %zmm226835; AVX512DQ-BW-NEXT:    vpermt2d %zmm17, %zmm21, %zmm226836; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm15, %zmm236837; AVX512DQ-BW-NEXT:    vpermt2d %zmm14, %zmm21, %zmm236838; AVX512DQ-BW-NEXT:    vshufi64x2 {{.*#+}} zmm22 = zmm23[0,1,2,3],zmm22[4,5,6,7]6839; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm7, %zmm236840; AVX512DQ-BW-NEXT:    vpermt2d %zmm10, %zmm21, %zmm236841; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm5, %zmm246842; AVX512DQ-BW-NEXT:    vpermt2d %zmm4, %zmm21, %zmm246843; AVX512DQ-BW-NEXT:    vshufi64x2 {{.*#+}} zmm23 = zmm24[0,1,2,3],zmm23[4,5,6,7]6844; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm2, %zmm246845; AVX512DQ-BW-NEXT:    vpermt2d %zmm3, %zmm21, %zmm246846; AVX512DQ-BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm216847; AVX512DQ-BW-NEXT:    vshufi64x2 {{.*#+}} zmm21 = zmm21[0,1,2,3],zmm24[4,5,6,7]6848; AVX512DQ-BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm24 = [2,6,10,14,18,22,26,30,2,6,10,14,18,22,26,30]6849; AVX512DQ-BW-NEXT:    # zmm24 = mem[0,1,2,3,0,1,2,3]6850; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm11, %zmm256851; AVX512DQ-BW-NEXT:    vpermt2d %zmm12, %zmm24, %zmm256852; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm9, %zmm266853; AVX512DQ-BW-NEXT:    vpermt2d %zmm8, %zmm24, %zmm266854; AVX512DQ-BW-NEXT:    vshufi64x2 {{.*#+}} zmm25 = zmm26[0,1,2,3],zmm25[4,5,6,7]6855; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm16, %zmm266856; AVX512DQ-BW-NEXT:    vpermt2d %zmm17, %zmm24, %zmm266857; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm15, %zmm276858; AVX512DQ-BW-NEXT:    vpermt2d %zmm14, %zmm24, %zmm276859; AVX512DQ-BW-NEXT:    vshufi64x2 {{.*#+}} zmm26 = zmm27[0,1,2,3],zmm26[4,5,6,7]6860; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm7, %zmm276861; AVX512DQ-BW-NEXT:    vpermt2d %zmm10, %zmm24, %zmm276862; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm5, %zmm286863; AVX512DQ-BW-NEXT:    vpermt2d %zmm4, %zmm24, %zmm286864; AVX512DQ-BW-NEXT:    vshufi64x2 {{.*#+}} zmm27 = zmm28[0,1,2,3],zmm27[4,5,6,7]6865; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm2, %zmm286866; AVX512DQ-BW-NEXT:    vpermt2d %zmm3, %zmm24, %zmm286867; AVX512DQ-BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm246868; AVX512DQ-BW-NEXT:    vshufi64x2 {{.*#+}} zmm24 = zmm24[0,1,2,3],zmm28[4,5,6,7]6869; AVX512DQ-BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm28 = [3,7,11,15,19,23,27,31,3,7,11,15,19,23,27,31]6870; AVX512DQ-BW-NEXT:    # zmm28 = mem[0,1,2,3,0,1,2,3]6871; AVX512DQ-BW-NEXT:    vpermt2d %zmm17, %zmm28, %zmm166872; AVX512DQ-BW-NEXT:    vpermt2d %zmm14, %zmm28, %zmm156873; AVX512DQ-BW-NEXT:    vshufi64x2 {{.*#+}} zmm14 = zmm15[0,1,2,3],zmm16[4,5,6,7]6874; AVX512DQ-BW-NEXT:    vpermt2d %zmm10, %zmm28, %zmm76875; AVX512DQ-BW-NEXT:    vpermt2d %zmm4, %zmm28, %zmm56876; AVX512DQ-BW-NEXT:    vshufi64x2 {{.*#+}} zmm4 = zmm5[0,1,2,3],zmm7[4,5,6,7]6877; AVX512DQ-BW-NEXT:    vpermt2d %zmm12, %zmm28, %zmm116878; AVX512DQ-BW-NEXT:    vpermt2d %zmm8, %zmm28, %zmm96879; AVX512DQ-BW-NEXT:    vshufi64x2 {{.*#+}} zmm5 = zmm9[0,1,2,3],zmm11[4,5,6,7]6880; AVX512DQ-BW-NEXT:    vpermt2d %zmm3, %zmm28, %zmm26881; AVX512DQ-BW-NEXT:    vpermt2d %zmm1, %zmm28, %zmm06882; AVX512DQ-BW-NEXT:    vshufi64x2 {{.*#+}} zmm0 = zmm0[0,1,2,3],zmm2[4,5,6,7]6883; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm18, 192(%rsi)6884; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm19, (%rsi)6885; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm13, 64(%rsi)6886; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm6, 128(%rsi)6887; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm23, 192(%rdx)6888; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm21, (%rdx)6889; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm22, 64(%rdx)6890; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm20, 128(%rdx)6891; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm27, 192(%rcx)6892; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm24, (%rcx)6893; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm26, 64(%rcx)6894; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm25, 128(%rcx)6895; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm5, 128(%r8)6896; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm4, 192(%r8)6897; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, (%r8)6898; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm14, 64(%r8)6899; AVX512DQ-BW-NEXT:    vzeroupper6900; AVX512DQ-BW-NEXT:    retq6901;6902; AVX512DQ-BW-FCP-LABEL: load_i32_stride4_vf64:6903; AVX512DQ-BW-FCP:       # %bb.0:6904; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%rdi), %zmm06905; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 64(%rdi), %zmm16906; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 128(%rdi), %zmm26907; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 192(%rdi), %zmm36908; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 832(%rdi), %zmm46909; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 768(%rdi), %zmm56910; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 960(%rdi), %zmm106911; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 896(%rdi), %zmm76912; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 320(%rdi), %zmm146913; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 256(%rdi), %zmm156914; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 448(%rdi), %zmm176915; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 384(%rdi), %zmm166916; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 576(%rdi), %zmm86917; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 512(%rdi), %zmm96918; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 704(%rdi), %zmm126919; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 640(%rdi), %zmm116920; AVX512DQ-BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm19 = [0,4,8,12,16,20,24,28,0,4,8,12,16,20,24,28]6921; AVX512DQ-BW-FCP-NEXT:    # zmm19 = mem[0,1,2,3,0,1,2,3]6922; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm11, %zmm66923; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm12, %zmm19, %zmm66924; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm9, %zmm136925; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm8, %zmm19, %zmm136926; AVX512DQ-BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm6 = zmm13[0,1,2,3],zmm6[4,5,6,7]6927; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm16, %zmm136928; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm17, %zmm19, %zmm136929; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm15, %zmm186930; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm14, %zmm19, %zmm186931; AVX512DQ-BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm13 = zmm18[0,1,2,3],zmm13[4,5,6,7]6932; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm7, %zmm186933; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm10, %zmm19, %zmm186934; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm206935; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm4, %zmm19, %zmm206936; AVX512DQ-BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm18 = zmm20[0,1,2,3],zmm18[4,5,6,7]6937; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm206938; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm3, %zmm19, %zmm206939; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm196940; AVX512DQ-BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm19 = zmm19[0,1,2,3],zmm20[4,5,6,7]6941; AVX512DQ-BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm21 = [1,5,9,13,17,21,25,29,1,5,9,13,17,21,25,29]6942; AVX512DQ-BW-FCP-NEXT:    # zmm21 = mem[0,1,2,3,0,1,2,3]6943; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm11, %zmm206944; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm12, %zmm21, %zmm206945; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm9, %zmm226946; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm8, %zmm21, %zmm226947; AVX512DQ-BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm20 = zmm22[0,1,2,3],zmm20[4,5,6,7]6948; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm16, %zmm226949; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm17, %zmm21, %zmm226950; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm15, %zmm236951; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm14, %zmm21, %zmm236952; AVX512DQ-BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm22 = zmm23[0,1,2,3],zmm22[4,5,6,7]6953; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm7, %zmm236954; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm10, %zmm21, %zmm236955; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm246956; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm4, %zmm21, %zmm246957; AVX512DQ-BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm23 = zmm24[0,1,2,3],zmm23[4,5,6,7]6958; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm246959; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm3, %zmm21, %zmm246960; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm216961; AVX512DQ-BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm21 = zmm21[0,1,2,3],zmm24[4,5,6,7]6962; AVX512DQ-BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm24 = [2,6,10,14,18,22,26,30,2,6,10,14,18,22,26,30]6963; AVX512DQ-BW-FCP-NEXT:    # zmm24 = mem[0,1,2,3,0,1,2,3]6964; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm11, %zmm256965; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm12, %zmm24, %zmm256966; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm9, %zmm266967; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm8, %zmm24, %zmm266968; AVX512DQ-BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm25 = zmm26[0,1,2,3],zmm25[4,5,6,7]6969; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm16, %zmm266970; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm17, %zmm24, %zmm266971; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm15, %zmm276972; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm14, %zmm24, %zmm276973; AVX512DQ-BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm26 = zmm27[0,1,2,3],zmm26[4,5,6,7]6974; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm7, %zmm276975; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm10, %zmm24, %zmm276976; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm286977; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm4, %zmm24, %zmm286978; AVX512DQ-BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm27 = zmm28[0,1,2,3],zmm27[4,5,6,7]6979; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm286980; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm3, %zmm24, %zmm286981; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm246982; AVX512DQ-BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm24 = zmm24[0,1,2,3],zmm28[4,5,6,7]6983; AVX512DQ-BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm28 = [3,7,11,15,19,23,27,31,3,7,11,15,19,23,27,31]6984; AVX512DQ-BW-FCP-NEXT:    # zmm28 = mem[0,1,2,3,0,1,2,3]6985; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm17, %zmm28, %zmm166986; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm14, %zmm28, %zmm156987; AVX512DQ-BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm14 = zmm15[0,1,2,3],zmm16[4,5,6,7]6988; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm10, %zmm28, %zmm76989; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm4, %zmm28, %zmm56990; AVX512DQ-BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm4 = zmm5[0,1,2,3],zmm7[4,5,6,7]6991; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm12, %zmm28, %zmm116992; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm8, %zmm28, %zmm96993; AVX512DQ-BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm5 = zmm9[0,1,2,3],zmm11[4,5,6,7]6994; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm3, %zmm28, %zmm26995; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm1, %zmm28, %zmm06996; AVX512DQ-BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm0 = zmm0[0,1,2,3],zmm2[4,5,6,7]6997; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm18, 192(%rsi)6998; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm19, (%rsi)6999; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm13, 64(%rsi)7000; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm6, 128(%rsi)7001; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm23, 192(%rdx)7002; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm21, (%rdx)7003; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm22, 64(%rdx)7004; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm20, 128(%rdx)7005; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm27, 192(%rcx)7006; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm24, (%rcx)7007; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm26, 64(%rcx)7008; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm25, 128(%rcx)7009; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm5, 128(%r8)7010; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm4, 192(%r8)7011; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, (%r8)7012; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm14, 64(%r8)7013; AVX512DQ-BW-FCP-NEXT:    vzeroupper7014; AVX512DQ-BW-FCP-NEXT:    retq7015  %wide.vec = load <256 x i32>, ptr %in.vec, align 647016  %strided.vec0 = shufflevector <256 x i32> %wide.vec, <256 x i32> poison, <64 x i32> <i32 0, i32 4, i32 8, i32 12, i32 16, i32 20, i32 24, i32 28, i32 32, i32 36, i32 40, i32 44, i32 48, i32 52, i32 56, i32 60, i32 64, i32 68, i32 72, i32 76, i32 80, i32 84, i32 88, i32 92, i32 96, i32 100, i32 104, i32 108, i32 112, i32 116, i32 120, i32 124, i32 128, i32 132, i32 136, i32 140, i32 144, i32 148, i32 152, i32 156, i32 160, i32 164, i32 168, i32 172, i32 176, i32 180, i32 184, i32 188, i32 192, i32 196, i32 200, i32 204, i32 208, i32 212, i32 216, i32 220, i32 224, i32 228, i32 232, i32 236, i32 240, i32 244, i32 248, i32 252>7017  %strided.vec1 = shufflevector <256 x i32> %wide.vec, <256 x i32> poison, <64 x i32> <i32 1, i32 5, i32 9, i32 13, i32 17, i32 21, i32 25, i32 29, i32 33, i32 37, i32 41, i32 45, i32 49, i32 53, i32 57, i32 61, i32 65, i32 69, i32 73, i32 77, i32 81, i32 85, i32 89, i32 93, i32 97, i32 101, i32 105, i32 109, i32 113, i32 117, i32 121, i32 125, i32 129, i32 133, i32 137, i32 141, i32 145, i32 149, i32 153, i32 157, i32 161, i32 165, i32 169, i32 173, i32 177, i32 181, i32 185, i32 189, i32 193, i32 197, i32 201, i32 205, i32 209, i32 213, i32 217, i32 221, i32 225, i32 229, i32 233, i32 237, i32 241, i32 245, i32 249, i32 253>7018  %strided.vec2 = shufflevector <256 x i32> %wide.vec, <256 x i32> poison, <64 x i32> <i32 2, i32 6, i32 10, i32 14, i32 18, i32 22, i32 26, i32 30, i32 34, i32 38, i32 42, i32 46, i32 50, i32 54, i32 58, i32 62, i32 66, i32 70, i32 74, i32 78, i32 82, i32 86, i32 90, i32 94, i32 98, i32 102, i32 106, i32 110, i32 114, i32 118, i32 122, i32 126, i32 130, i32 134, i32 138, i32 142, i32 146, i32 150, i32 154, i32 158, i32 162, i32 166, i32 170, i32 174, i32 178, i32 182, i32 186, i32 190, i32 194, i32 198, i32 202, i32 206, i32 210, i32 214, i32 218, i32 222, i32 226, i32 230, i32 234, i32 238, i32 242, i32 246, i32 250, i32 254>7019  %strided.vec3 = shufflevector <256 x i32> %wide.vec, <256 x i32> poison, <64 x i32> <i32 3, i32 7, i32 11, i32 15, i32 19, i32 23, i32 27, i32 31, i32 35, i32 39, i32 43, i32 47, i32 51, i32 55, i32 59, i32 63, i32 67, i32 71, i32 75, i32 79, i32 83, i32 87, i32 91, i32 95, i32 99, i32 103, i32 107, i32 111, i32 115, i32 119, i32 123, i32 127, i32 131, i32 135, i32 139, i32 143, i32 147, i32 151, i32 155, i32 159, i32 163, i32 167, i32 171, i32 175, i32 179, i32 183, i32 187, i32 191, i32 195, i32 199, i32 203, i32 207, i32 211, i32 215, i32 219, i32 223, i32 227, i32 231, i32 235, i32 239, i32 243, i32 247, i32 251, i32 255>7020  store <64 x i32> %strided.vec0, ptr %out.vec0, align 647021  store <64 x i32> %strided.vec1, ptr %out.vec1, align 647022  store <64 x i32> %strided.vec2, ptr %out.vec2, align 647023  store <64 x i32> %strided.vec3, ptr %out.vec3, align 647024  ret void7025}7026